World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Структура ViewingParams

#include <Viewport.h>

+ Граф связей класса ViewingParams:

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

 ViewingParams ()
 
void CenterOnPartyZoomIn ()
 
void InitGrayPalette ()
 
void MapViewUp ()
 
void MapViewLeft ()
 
void MapViewDown ()
 
void MapViewRight ()
 
void CenterOnPartyZoomOut ()
 
void AdjustPosition ()
 
void _443365 ()
 

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

int uSomeX
 
int uSomeY
 
int uSomeZ
 
int uSomeW
 
unsigned int uScreen_topL_X
 
unsigned int uScreen_topL_Y
 
unsigned int uScreen_BttmR_X
 
unsigned int uScreen_BttmR_Y
 
int field_20
 
unsigned int uMinimapZoom
 
int field_28
 
unsigned int uMapBookMapZoom
 
int sViewCenterX
 
int sViewCenterY
 
int16_t indoor_center_x
 
int16_t indoor_center_y
 
int field_3C
 
class Imagelocation_minimap
 
int bRedrawGameUI
 
int field_48
 
int field_4C
 
int draw_sw_outlines
 
int draw_d3d_outlines
 
int field_58
 
int field_5C
 
int field_60
 
int field_64
 
int field_68
 
uint16_t pPalette [256]
 

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

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

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

◆ ViewingParams()

ViewingParams::ViewingParams ( )
inline

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

39  {
40  draw_sw_outlines = false;
41  draw_d3d_outlines = false;
42  field_4C = 0;
43  }

Перекрестные ссылки draw_d3d_outlines, draw_sw_outlines и field_4C.

Методы

◆ CenterOnPartyZoomIn()

void ViewingParams::CenterOnPartyZoomIn ( )

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

127  {
128  int MaxZoom;
129 
131  MaxZoom = 1536;
133  MaxZoom = 3072;
134  else
135  assert(false);
136 
137  this->uMapBookMapZoom *= 2;
138  if (this->uMapBookMapZoom > MaxZoom) this->uMapBookMapZoom = MaxZoom;
139 
140  this->sViewCenterX = pParty->vPosition.x;
141  this->sViewCenterY = pParty->vPosition.y;
142  AdjustPosition();
143 }

Перекрестные ссылки AdjustPosition(), LEVEL_Indoor, LEVEL_Outdoor, pParty, sViewCenterX, sViewCenterY, uCurrentlyLoadedLevelType, uMapBookMapZoom и Party::vPosition.

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

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

◆ InitGrayPalette()

void ViewingParams::InitGrayPalette ( )

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

172  {
173  for (unsigned short i = 0; i < 256; ++i) pPalette[i] = Color16(i, i, i);
174 }

Перекрестные ссылки Color16() и pPalette.

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

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

◆ MapViewUp()

void ViewingParams::MapViewUp ( )

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

93  {
94  this->sViewCenterY += 512;
96 }

Перекрестные ссылки AdjustPosition() и sViewCenterY.

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

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

◆ MapViewLeft()

void ViewingParams::MapViewLeft ( )

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

99  {
100  this->sViewCenterX -= 512;
101  AdjustPosition();
102 }

Перекрестные ссылки AdjustPosition() и sViewCenterX.

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

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

◆ MapViewDown()

void ViewingParams::MapViewDown ( )

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

105  {
106  this->sViewCenterY -= 512;
107  AdjustPosition();
108 }

Перекрестные ссылки AdjustPosition() и sViewCenterY.

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

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

◆ MapViewRight()

void ViewingParams::MapViewRight ( )

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

111  {
112  this->sViewCenterX += 512;
113  AdjustPosition();
114 }

Перекрестные ссылки AdjustPosition() и sViewCenterX.

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

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

◆ CenterOnPartyZoomOut()

void ViewingParams::CenterOnPartyZoomOut ( )

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

117  {
118  this->uMapBookMapZoom /= 2;
119  if (this->uMapBookMapZoom < 384) this->uMapBookMapZoom = 384;
120 
121  this->sViewCenterX = pParty->vPosition.x;
122  this->sViewCenterY = pParty->vPosition.y;
123  AdjustPosition();
124 }

Перекрестные ссылки AdjustPosition(), pParty, sViewCenterX, sViewCenterY, uMapBookMapZoom и Party::vPosition.

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

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

◆ AdjustPosition()

void ViewingParams::AdjustPosition ( )

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

146  {
147  ViewingParams *v1; // esi@1
148  int v2; // ebx@1
149  signed int v3; // edx@1
150  int v4; // ecx@1
151  int v5; // edi@3
152  int v6; // eax@3
153  int v7; // eax@5
154 
155  v1 = this;
156  v2 = this->indoor_center_y;
157  v3 = 88 >> (this->uMapBookMapZoom / 384);
158  v4 = (44 - v3) << 9;
159  if (v1->sViewCenterY > v2 + v4) v1->sViewCenterY = v2 + v4;
160 
161  v5 = v1->indoor_center_x;
162  v6 = (v3 - 44) << 9;
163  if (v1->sViewCenterX < v5 + v6) v1->sViewCenterX = v5 + v6;
164 
165  v7 = v2 + v6;
166  if (v1->sViewCenterY < v7) v1->sViewCenterY = v7;
167 
168  if (v1->sViewCenterX > v5 + v4) v1->sViewCenterX = v5 + v4;
169 }

Перекрестные ссылки indoor_center_y и uMapBookMapZoom.

Используется в CenterOnPartyZoomIn(), CenterOnPartyZoomOut(), MapViewDown(), MapViewLeft(), MapViewRight() и MapViewUp().

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

◆ _443365()

void ViewingParams::_443365 ( )

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

177  {
178  Vec3_short_ *v3; // eax@4
179  Vec3_short_ *v6; // eax@12
180  int minimum_y; // [sp+10h] [bp-10h]@2
181  int maximum_y; // [sp+14h] [bp-Ch]@2
182  int minimum_x; // [sp+18h] [bp-8h]@2
183  int maximum_x; // [sp+1Ch] [bp-4h]@2
184 
185  InitGrayPalette();
187  minimum_x = 0x40000000;
188  minimum_y = 0x40000000;
189 
190  maximum_x = -0x40000000;
191  maximum_y = -0x40000000;
192  for (int i = 0; i < pIndoor->pMapOutlines->uNumOutlines; ++i) {
193  v3 = &pIndoor
195 
196  if (v3->x < minimum_x) minimum_x = v3->x;
197  if (v3->x > maximum_x) maximum_x = v3->x;
198  if (v3->y < minimum_y) minimum_y = v3->x;
199  if (v3->y > maximum_y) maximum_y = v3->x;
200 
201  v6 = &pIndoor
203 
204  if (v6->x < minimum_x) minimum_x = v3->x;
205  if (v6->x > maximum_x) maximum_x = v3->x;
206 
207  if (v6->y < minimum_y) minimum_y = v3->y;
208  if (v6->y > maximum_y) maximum_y = v3->y;
209  }
210 
211  uMinimapZoom = 1024;
212  indoor_center_x = (signed int)(minimum_x + maximum_x) / 2;
213  field_28 = 10;
214  indoor_center_y = (signed int)(minimum_y + maximum_y) / 2;
215  } else {
216  indoor_center_x = 0;
217  indoor_center_y = 0;
220  }
221  uMapBookMapZoom = 384;
222 }

Перекрестные ссылки _576E2C_current_minimap_zoom, dword_576E28, field_28, indoor_center_x, indoor_center_y, InitGrayPalette(), LEVEL_Indoor, pIndoor, IndoorLocation::pMapOutlines, BLVMapOutlines::pOutlines, IndoorLocation::pVertices, uCurrentlyLoadedLevelType, BLVMapOutline::uFace1ID, BLVMapOutline::uFace2ID, uMapBookMapZoom, uMinimapZoom и BLVMapOutlines::uNumOutlines.

Используется в PrepareToLoadBLV() и PrepareToLoadODM().

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

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

◆ uSomeX

int ViewingParams::uSomeX

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

Используется в FinalInitialization(), ODMRenderParams::Initialize() и MM7Initialization().

◆ uSomeY

int ViewingParams::uSomeY

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

Используется в FinalInitialization() и MM7Initialization().

◆ uSomeZ

int ViewingParams::uSomeZ

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

Используется в FinalInitialization(), ODMRenderParams::Initialize() и MM7Initialization().

◆ uSomeW

int ViewingParams::uSomeW

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

Используется в FinalInitialization() и MM7Initialization().

◆ uScreen_topL_X

unsigned int ViewingParams::uScreen_topL_X

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

Используется в Weather::DrawSnow(), MM6_Initialize(), MM7Initialization(), ODM_LoadAndInitialize() и Weather::OnPlayerTurn().

◆ uScreen_topL_Y

unsigned int ViewingParams::uScreen_topL_Y

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

Используется в Weather::DrawSnow(), MM6_Initialize() и MM7Initialization().

◆ uScreen_BttmR_X

unsigned int ViewingParams::uScreen_BttmR_X

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

Используется в Weather::DrawSnow(), MM6_Initialize(), MM7Initialization(), ODM_LoadAndInitialize() и Weather::OnPlayerTurn().

◆ uScreen_BttmR_Y

unsigned int ViewingParams::uScreen_BttmR_Y

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

Используется в Weather::DrawSnow(), MM6_Initialize() и MM7Initialization().

◆ field_20

int ViewingParams::field_20

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

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

◆ uMinimapZoom

unsigned int ViewingParams::uMinimapZoom

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

Используется в _443365(), Engine::DrawGUI(), Application::Game::EventLoop() и GameUI_GetMinimapHintText().

◆ field_28

int ViewingParams::field_28

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

Используется в _443365() и Application::Game::EventLoop().

◆ uMapBookMapZoom

unsigned int ViewingParams::uMapBookMapZoom

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

Используется в _443365(), AdjustPosition(), CenterOnPartyZoomIn(), CenterOnPartyZoomOut(), DrawBook_Map_sub(), GetMapBookHintText() и GUIWindow_MapBook::Update().

◆ sViewCenterX

int ViewingParams::sViewCenterX

◆ sViewCenterY

int ViewingParams::sViewCenterY

◆ indoor_center_x

int16_t ViewingParams::indoor_center_x

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

Используется в _443365(), DrawBook_Map_sub() и GetMapBookHintText().

◆ indoor_center_y

int16_t ViewingParams::indoor_center_y

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

Используется в _443365(), AdjustPosition(), DrawBook_Map_sub() и GetMapBookHintText().

◆ field_3C

int ViewingParams::field_3C

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

◆ location_minimap

class Image* ViewingParams::location_minimap

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

Используется в DrawBook_Map_sub(), GameUI_DrawMinimap() и OutdoorLocation::Load().

◆ bRedrawGameUI

int ViewingParams::bRedrawGameUI

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

Используется в stru262_TurnBased::_406457(), stru262_TurnBased::_4065B0(), CastSpellInfoHelpers::_427E01_cast_spell(), Engine::_461103_load_level_sub(), _493938_regenerate(), _494035_timed_effects__water_walking_damage__etc(), Player::AddVariable(), back_to_game(), BLV_ProcessPartyActions(), CreateParty_EventLoop(), DamagePlayerFromMonster(), DoSavegame(), Engine::Draw(), Engine::DrawGUI(), EnterHouse(), Application::Menu::EventLoop(), Application::Game::EventLoop(), EventProcessor(), Game_QuitGameWhilePlaying(), Game_StartNewGameWhilePlaying(), Application::Game::GameLoop(), GameUI_OnPlayerPortraitLeftClick(), Chest::GrabItem(), ItemInteraction(), LoadGame(), ArcomageGame::Loop(), Actor::LootActor(), MainMenuLoad_EventLoop(), stru262_TurnBased::NextTurn(), ODM_ProcessPartyActions(), Application::GameWindowHandler::OnActivated(), Chest::OnChestLeftClick(), Application::Game::OnEscape(), Player::PlayEmotion(), PrepareToLoadRestUI(), Player::Recover(), Player::SetRecoveryTime(), Player::SetVariable(), Party::Sleep8Hours(), stru262_TurnBased::StepTurnQueue(), Player::SubtractVariable(), GUIWindow_CharacterRecord::ToggleRingsOverlay(), UI_OnMouseRightClick(), UIShop_Buy_Identify_Repair(), GUIWindow_Inventory::Update(), GUIWindow_GameMenu::Update(), GUIWindow_RestWindow::Update(), GUIWindow_BooksButtonOverlay::Update(), GUIWindow_DebugMenu::Update(), OnButtonClick::Update(), OnButtonClick2::Update(), OnButtonClick3::Update(), OnButtonClick4::Update(), OnSaveLoad::Update(), OnCancel::Update(), OnCancel2::Update(), OnCancel3::Update(), UpdateActors_BLV(), UpdateActors_ODM(), Party::UpdatePlayersAndHirelingsEmotions() и Player::UseItem_DrinkPotion_etc().

◆ field_48

◆ field_4C

int ViewingParams::field_4C

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

Используется в Application::GameWindowHandler::OnChar(), Application::GameWindowHandler::OnVkDown() и ViewingParams().

◆ draw_sw_outlines

int ViewingParams::draw_sw_outlines

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

Используется в BLVRenderParams::Reset() и ViewingParams().

◆ draw_d3d_outlines

int ViewingParams::draw_d3d_outlines

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

Используется в OutdoorLocation::ExecDraw(), BLVRenderParams::Reset() и ViewingParams().

◆ field_58

int ViewingParams::field_58

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

◆ field_5C

int ViewingParams::field_5C

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

◆ field_60

int ViewingParams::field_60

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

◆ field_64

int ViewingParams::field_64

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

◆ field_68

int ViewingParams::field_68

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

◆ pPalette

uint16_t ViewingParams::pPalette[256]

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

Используется в GameUI_DrawMinimap() и InitGrayPalette().


Объявления и описания членов структур находятся в файлах:
Party::vPosition
Vec3_int_ vPosition
Definition: Party.h:250
ViewingParams::field_28
int field_28
Definition: Viewport.h:66
BLVMapOutlines::uNumOutlines
int uNumOutlines
Definition: Indoor.h:569
ViewingParams::indoor_center_x
int16_t indoor_center_x
Definition: Viewport.h:70
ViewingParams::draw_d3d_outlines
int draw_d3d_outlines
Definition: Viewport.h:78
_576E2C_current_minimap_zoom
int _576E2C_current_minimap_zoom
Definition: mm7_data.cpp:600
pIndoor
IndoorLocation * pIndoor
Definition: Indoor.cpp:49
ViewingParams::field_4C
int field_4C
Definition: Viewport.h:76
pParty
Party * pParty
Definition: Party.cpp:30
ViewingParams::uMinimapZoom
unsigned int uMinimapZoom
Definition: Viewport.h:65
ViewingParams::indoor_center_y
int16_t indoor_center_y
Definition: Viewport.h:71
ViewingParams::AdjustPosition
void AdjustPosition()
Definition: Viewport.cpp:146
ViewingParams
Definition: Viewport.h:38
BLVMapOutline::uFace2ID
uint16_t uFace2ID
Definition: Indoor.h:416
BLVMapOutline::uFace1ID
uint16_t uFace1ID
Definition: Indoor.h:415
v1
GLfloat GLfloat v1
Definition: SDL_opengl_glext.h:694
IndoorLocation::pMapOutlines
BLVMapOutlines * pMapOutlines
Definition: Indoor.h:641
LEVEL_Outdoor
@ LEVEL_Outdoor
Definition: Indoor.h:287
ViewingParams::InitGrayPalette
void InitGrayPalette()
Definition: Viewport.cpp:172
LEVEL_Indoor
@ LEVEL_Indoor
Definition: Indoor.h:286
dword_576E28
int dword_576E28
Definition: mm7_data.cpp:599
ViewingParams::pPalette
uint16_t pPalette[256]
Definition: Viewport.h:84
BLVMapOutlines::pOutlines
BLVMapOutline pOutlines[7000]
Definition: Indoor.h:570
v2
GLfloat GLfloat GLfloat v2
Definition: SDL_opengl_glext.h:695
v3
GLfloat GLfloat GLfloat GLfloat v3
Definition: SDL_opengl_glext.h:696
IndoorLocation::pVertices
struct Vec3_short_ * pVertices
Definition: Indoor.h:628
ViewingParams::sViewCenterY
int sViewCenterY
Definition: Viewport.h:69
uCurrentlyLoadedLevelType
LEVEL_TYPE uCurrentlyLoadedLevelType
Definition: Indoor.cpp:52
ViewingParams::sViewCenterX
int sViewCenterX
Definition: Viewport.h:68
ViewingParams::draw_sw_outlines
int draw_sw_outlines
Definition: Viewport.h:77
Color16
uint16_t Color16(uint32_t r, uint32_t g, uint32_t b)
Definition: Engine.cpp:148
ViewingParams::uMapBookMapZoom
unsigned int uMapBookMapZoom
Definition: Viewport.h:67