World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Класс Weather

#include <Weather.h>

Открытые члены

 Weather ()
 
void DrawSnow ()
 
void Initialize ()
 
void Draw ()
 
bool OnPlayerTurn (int dangle)
 

Открытые атрибуты

std::array< Point, 1000 > Screen_Coord
 
bool bNight
 
bool bRenderSnow
 

Подробное описание

См. определение в файле Weather.h строка 7

Конструктор(ы)

◆ Weather()

Weather::Weather ( )
inline

См. определение в файле Weather.h строка 9

9 : bNight(false), bRenderSnow(false) {}

Методы

◆ DrawSnow()

void Weather::DrawSnow ( )

См. определение в файле Weather.cpp строка 10

10  {
11  for (unsigned int i = 0; i < Screen_Coord.size(); ++i) {
12  int size = 1;
13  int base = 3;
14  if (i >= 950) {
15  size = 4;
16  base = 10;
17  } else if (i >= 700) {
18  size = 2;
19  base = 5;
20  }
21  Screen_Coord[i].x += rand() % base - base / 2;
22  Screen_Coord[i].y += rand() % size + size;
23  if (Screen_Coord[i].x < (int)viewparams->uScreen_topL_X) {
24  Screen_Coord[i].x = viewparams->uScreen_BttmR_X + rand() % base;
25  } else if (Screen_Coord[i].x >=
26  ((int)viewparams->uScreen_BttmR_X - size)) {
27  Screen_Coord[i].x = viewparams->uScreen_topL_X - rand() % base;
28  }
29  if (Screen_Coord[i].y >= ((int)viewparams->uScreen_BttmR_Y - size)) {
32  (rand() % (viewparams->uScreen_BttmR_X -
34  }
35 
36  render->FillRectFast(Screen_Coord[i].x, Screen_Coord[i].y, size, size,
37  0xFFFF);
38  }
39 }

Перекрестные ссылки render, Screen_Coord, ViewingParams::uScreen_BttmR_X, ViewingParams::uScreen_BttmR_Y, ViewingParams::uScreen_topL_X, ViewingParams::uScreen_topL_Y и viewparams.

Используется в Draw().

+ Граф вызова функции:

◆ Initialize()

void Weather::Initialize ( )

См. определение в файле Weather.cpp строка 41

41  {
44  for (Point &point : Screen_Coord) {
45  point.x = pViewport->uViewportTL_X + rand() % width;
46  point.y = pViewport->uViewportTL_Y + rand() % height;
47  }
48 }

Перекрестные ссылки pViewport, Screen_Coord, Viewport::uScreen_BR_X, Viewport::uScreen_BR_Y, Viewport::uScreen_TL_X, Viewport::uScreen_TL_Y, Viewport::uViewportTL_X и Viewport::uViewportTL_Y.

Используется в ODM_LoadAndInitialize().

+ Граф вызова функции:

◆ Draw()

void Weather::Draw ( )

См. определение в файле Weather.cpp строка 50

50  {
51  if (bRenderSnow && engine->AllowSnow()) {
52  DrawSnow();
53  }
54 }

Перекрестные ссылки bRenderSnow, DrawSnow() и engine.

Используется в Engine::DrawGUI().

+ Граф вызовов:
+ Граф вызова функции:

◆ OnPlayerTurn()

bool Weather::OnPlayerTurn ( int  dangle)

См. определение в файле Weather.cpp строка 56

56  {
57  if (!bRenderSnow) {
58  return false;
59  }
60 
61  unsigned int screen_width =
63 
64  for (Point &point : Screen_Coord) {
65  point.x += dangle;
66  if (point.x < (int)viewparams->uScreen_BttmR_X - 4) {
67  if (point.x >= (int)viewparams->uScreen_topL_X) {
68  continue;
69  }
70  point.x += screen_width;
71  } else {
72  point.x -= screen_width + 4;
73  }
74  }
75 
76  return true;
77 }

Перекрестные ссылки bRenderSnow, Screen_Coord, ViewingParams::uScreen_BttmR_X, ViewingParams::uScreen_topL_X и viewparams.

Используется в Keyboard::ProcessInputActions().

+ Граф вызова функции:

Данные класса

◆ Screen_Coord

std::array<Point, 1000> Weather::Screen_Coord

См. определение в файле Weather.h строка 16

Используется в DrawSnow(), Initialize() и OnPlayerTurn().

◆ bNight

bool Weather::bNight

См. определение в файле Weather.h строка 17

Используется в GetActorTintColor(), OutdoorLocation::GetFogDensityByTime(), GetLevelFogColor() и sub_47C3D7_get_fog_specular().

◆ bRenderSnow

bool Weather::bRenderSnow

См. определение в файле Weather.h строка 18

Используется в Draw(), EventProcessor(), OutdoorLocation::Load(), ODM_LoadAndInitialize(), OnPlayerTurn() и Keyboard::ProcessInputActions().


Объявления и описания членов классов находятся в файлах:
Viewport::uViewportTL_Y
int uViewportTL_Y
Definition: Viewport.h:23
Weather::bRenderSnow
bool bRenderSnow
Definition: Weather.h:18
height
EGLSurface EGLint EGLint EGLint EGLint height
Definition: SDL_egl.h:1596
engine
std::shared_ptr< Engine > engine
Definition: Engine.cpp:130
Viewport::uScreen_TL_X
int uScreen_TL_X
Definition: Viewport.h:18
ViewingParams::uScreen_topL_Y
unsigned int uScreen_topL_Y
Definition: Viewport.h:61
ViewingParams::uScreen_BttmR_X
unsigned int uScreen_BttmR_X
Definition: Viewport.h:62
Viewport::uScreen_TL_Y
int uScreen_TL_Y
Definition: Viewport.h:19
y
EGLSurface EGLint EGLint y
Definition: SDL_egl.h:1596
Viewport::uScreen_BR_Y
int uScreen_BR_Y
Definition: Viewport.h:21
ViewingParams::uScreen_topL_X
unsigned int uScreen_topL_X
Definition: Viewport.h:60
x
EGLSurface EGLint x
Definition: SDL_egl.h:1596
viewparams
struct ViewingParams * viewparams
Definition: mm7_data.cpp:22
Viewport::uScreen_BR_X
int uScreen_BR_X
Definition: Viewport.h:20
width
EGLSurface EGLint EGLint EGLint width
Definition: SDL_egl.h:1596
pViewport
struct Viewport * pViewport
Definition: mm7_data.cpp:21
Weather::bNight
bool bNight
Definition: Weather.h:17
Weather::DrawSnow
void DrawSnow()
Definition: Weather.cpp:10
Point
Definition: Point.h:3
size
GLsizeiptr size
Definition: SDL_opengl_glext.h:540
ViewingParams::uScreen_BttmR_Y
unsigned int uScreen_BttmR_Y
Definition: Viewport.h:63
Weather::Screen_Coord
std::array< Point, 1000 > Screen_Coord
Definition: Weather.h:16
Viewport::uViewportTL_X
int uViewportTL_X
Definition: Viewport.h:22
render
std::shared_ptr< IRender > render
Definition: RenderOpenGL.cpp:52