YourCityInvadedByAliens
Documentation for code of the game
render_road0.h
Go to the documentation of this file.
1 
2 #pragma once
3 #include "render.h"
4 #include "ylog.h"
5 
6 enum class RoadPart {
7  NONE = -1,
8  VERTICAL = 0,
9  HORIZONTAL = 1,
10  RIGHT_DOWN = 2,
11  LEFT_DOWN = 3,
12  LEFT_UP = 4,
13  RIGHT_UP = 5,
14  CROSS = 6,
15  LEFT_UP_DOWN = 7,
16  LEFT_RIGHT_UP = 8,
17  RIGHT_UP_DOWN = 9,
18  LEFT_RIGHT_DOWN = 10,
19 };
20 
21 static RoadPart convertStringToRoadPart(const std::string &sRoadPart) {
22  if (sRoadPart == "vertical") {
23  return RoadPart::VERTICAL;
24  } else if (sRoadPart == "horizontal") {
25  return RoadPart::HORIZONTAL;
26  } else if (sRoadPart == "right-down") {
27  return RoadPart::RIGHT_DOWN;
28  } else if (sRoadPart == "left-down") {
29  return RoadPart::LEFT_DOWN;
30  } else if (sRoadPart == "left-up") {
31  return RoadPart::LEFT_UP;
32  } else if (sRoadPart == "right-up") {
33  return RoadPart::RIGHT_UP;
34  } else if (sRoadPart == "cross") {
35  return RoadPart::CROSS;
36  } else if (sRoadPart == "left-up-down") {
38  } else if (sRoadPart == "left-right-up") {
40  } else if (sRoadPart == "right-up-down") {
42  } else if (sRoadPart == "left-right-down") {
44  }
45  YLog::throw_err("convertStringToRoadPart", "'" + sRoadPart + "' not expected");
46  return RoadPart::NONE;
47 };
48 
49 class RenderRoad0 : public RenderObject {
50 
51  public:
53  const CoordXY &pos,
54  SDL_Texture* tex,
55  RoadPart nTile
56  );
57  virtual void modify(const GameState& state, IRenderWindow* pRenderWindow) override;
58  virtual bool canDraw(const GameState& state) override;
59  virtual void draw(SDL_Renderer* renderer) override;
60 
61  private:
67 
68  SDL_Rect m_currentFrame;
69  SDL_Texture* m_pTexture;
70 };
RoadPart::VERTICAL
@ VERTICAL
render.h
RoadPart::LEFT_UP
@ LEFT_UP
RoadPart::HORIZONTAL
@ HORIZONTAL
MoveObjectDirection::NONE
@ NONE
RoadPart::RIGHT_UP_DOWN
@ RIGHT_UP_DOWN
RenderRoad0::m_coordRenderEnd
CoordXY m_coordRenderEnd
Definition: render_road0.h:65
RenderRoad0::draw
virtual void draw(SDL_Renderer *renderer) override
Definition: render_road0.cpp:33
convertStringToRoadPart
static RoadPart convertStringToRoadPart(const std::string &sRoadPart)
Definition: render_road0.h:21
RenderRoad0::m_coordPos
CoordXY m_coordPos
Definition: render_road0.h:62
RenderRoad0::m_coordRender
CoordXY m_coordRender
Definition: render_road0.h:64
RenderRoad0::m_pTexture
SDL_Texture * m_pTexture
Definition: render_road0.h:69
RoadPart::LEFT_DOWN
@ LEFT_DOWN
RoadPart::CROSS
@ CROSS
RenderRoad0::m_currentFrame
SDL_Rect m_currentFrame
Definition: render_road0.h:68
RoadPart::NONE
@ NONE
RoadPart::LEFT_UP_DOWN
@ LEFT_UP_DOWN
ylog.h
RenderRoad0::m_nNumberOfTile
int m_nNumberOfTile
Definition: render_road0.h:66
RoadPart
RoadPart
Definition: render_road0.h:6
CoordXY
Definition: coordxy.h:5
RenderObject
Definition: render_base.h:42
RenderRoad0::m_coordPosEnd
CoordXY m_coordPosEnd
Definition: render_road0.h:63
RenderRoad0::canDraw
virtual bool canDraw(const GameState &state) override
Definition: render_road0.cpp:26
RoadPart::RIGHT_UP
@ RIGHT_UP
GameState
Definition: game_state.h:10
IRenderWindow
Definition: render_base.h:26
RenderRoad0
Definition: render_road0.h:49
RoadPart::LEFT_RIGHT_UP
@ LEFT_RIGHT_UP
YLog::throw_err
static void throw_err(const std::string &sTag, const std::string &sMessage)
Definition: ylog.cpp:18
RenderRoad0::modify
virtual void modify(const GameState &state, IRenderWindow *pRenderWindow) override
Definition: render_road0.cpp:21
RoadPart::LEFT_RIGHT_DOWN
@ LEFT_RIGHT_DOWN
RoadPart::RIGHT_DOWN
@ RIGHT_DOWN
RenderRoad0::RenderRoad0
RenderRoad0(const CoordXY &pos, SDL_Texture *tex, RoadPart nTile)
Definition: render_road0.cpp:8