1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
|
#ifndef D_MENU_D_MENU_DMAP_MAP_H
#define D_MENU_D_MENU_DMAP_MAP_H
#include "d/d_menu_dmap.h"
#include <cmath>
class dMenu_DmapMap_c {
public:
virtual ~dMenu_DmapMap_c() {}
void _create(u16, u16, u16, u16, void*);
void _delete();
void setTexture(u16, u16, u16, u16);
void setPos(int, int, f32, f32, f32, bool, f32);
const renderingDmap_c* getRendPointer(int i_no) const { return &mRend[i_no]; }
ResTIMG* getResTIMGPointer(int i_no) const { return mResTIMG[i_no]; }
/* 0x04 */ renderingDmap_c mRend[2];
/* 0x74 */ ResTIMG* mResTIMG[2];
/* 0x7C */ u8* mMapImage_p[2];
/* 0x84 */ int field_0x84;
};
class dMenu_StageMapCtrl_c : public dMenu_DmapMap_c {
public:
dMenu_StageMapCtrl_c() {
field_0x8c = NULL;
field_0x90 = 0.0f;
field_0x94 = 0.0f;
field_0x98 = 0.0f;
field_0x9c = 0.0f;
field_0xa0 = 0.0f;
field_0xa4 = 0.0f;
field_0xa8 = 0.0f;
field_0xac = 0.0f;
field_0xb0 = 0.0f;
field_0xb4 = 0.0f;
field_0xb8 = 0.0f;
field_0xbc = 0.0f;
field_0xc0 = 0.0f;
field_0xc4 = 0.0f;
field_0xc8 = 0.0f;
field_0xcc = 0.0f;
field_0xd0 = 0.0f;
field_0xd4 = 0.0f;
field_0xd8 = 0.0f;
field_0xe4 = 0;
field_0xe6 = 0;
field_0xe7 = 0;
field_0xe8 = 0;
field_0xe9 = 0;
field_0xea = 0;
field_0xeb = 0;
field_0xec = 0;
field_0xed = 0;
field_0xee = 0;
field_0xef = 0;
field_0xf0 = 0;
field_0xf1 = 0;
field_0xf2 = 0;
field_0xf3 = 0;
field_0xf4 = 0;
field_0xf5 = 0;
field_0xf6 = 0;
field_0xf7 = 0;
field_0xf8 = false;
field_0xf9 = false;
}
virtual ~dMenu_StageMapCtrl_c() {}
virtual bool isEnableZoomMove() const = 0;
virtual void calcZoomCenter(f32*, f32*) = 0;
virtual void getInitWholeMapScale(f32*, f32, f32, f32, f32) = 0;
virtual void getInitDispCenter(f32*, f32*) = 0;
virtual void getZoomMinMaxCheck(f32*, f32*, f32*, f32*, bool*, bool*) = 0;
virtual f32 getZoomCmPerPixel() = 0;
void draw() {}
f32 getMapBlendPer() const;
f32 getPixelStageSizeX() const;
f32 getPixelStageSizeZ() const;
f32 getPixelCenterX() const;
f32 getPixelCenterZ() const;
void initGetTreasureList(u8, s8);
bool getTreasureList(f32*, f32*, s8*, u8*, s8*);
void cnvPosTo2Dpos(f32, f32, f32*, f32*) const;
void getPlayerDrawInfo(f32*, f32*, s16*) const;
s8 getRestartDrawInfo(f32*, f32*, s16*) const;
void setPlusNowStayFloorNo(s8, u8);
void moveFloor();
void wait_init_proc();
void wait_proc();
void zoomIn_init_proc();
void initZoomIn(u8);
void initZoomIn(u8, f32, f32);
void initZoomInCenterHold(u8);
void zoomCalcSet(f32);
void zoomIn_proc();
void initZoomOut(u8);
void initZoomWait(f32, f32);
void zoomWait_init_proc();
void zoomWait_proc();
void zoomOut_init_proc();
void zoomOut_proc();
void move();
s8 getPlayerStayFloorNo() const;
void _create(u16, u16, u16, u16, void*);
void _create(u16, u16, u16, u16, s8, void*);
void _delete();
bool isEnableZoomIn();
bool isEnableZoomOut();
void setPlusZoomCenterX(f32);
void setPlusZoomCenterZ(f32);
u8 getDisableZoomMoveFlgX() const { return field_0xf8; }
u8 getDisableZoomMoveFlgZ() const { return field_0xf9; }
s8 getNowStayFloorNo() const { return field_0xe7; }
s8 getTopFloorNo() const { return field_0xed; }
s8 getBottomFloorNo() const { return field_0xee; }
s8 getDispFloorNo() const { return field_0xeb; }
s8 getDispFloor2No() const { return field_0xec; }
f32 getDispCenterX() const { return field_0x9c; }
f32 getDispCenterZ() const { return field_0xa0; }
f32 getStageMapSizeX() const { return dMpath_c::getSizeX(); }
f32 getStageMapSizeZ() const { return dMpath_c::getSizeZ(); }
f32 getZoomCenterMaxX() { return field_0xcc; }
f32 getZoomCenterMinX() { return field_0xc8; }
f32 getZoomCenterMaxZ() { return field_0xd4; }
f32 getZoomCenterMinZ() { return field_0xd0; }
f32 getPixelPerCm() const { return 1.0f / field_0xbc; }
f32 makeStayFloorBlendPer(int param_0, f32 param_1) {
return param_0 + param_1;
}
int getFloorNo(f32 param_0) const {
return std::ceil(param_0);
}
f32 getBlendPer(f32 param_0) const {
return std::fmod(param_0, 1.0f);
}
bool isEndZoomIn() const { return field_0xf5 == 2; }
bool isEndZoomOut() const { return field_0xf5 == 0; }
ResTIMG* getResTIMGPointer(int i_no) const { return dMenu_DmapMap_c::getResTIMGPointer(i_no); }
static f32 m_zoomCenterMinX;
static f32 m_zoomCenterMaxX;
static f32 m_zoomCenterMinZ;
static f32 m_zoomCenterMaxZ;
/* 0x88 */ u8 field_0x88[0x8C - 0x88];
/* 0x8C */ dTres_c::typeGroupData_c* field_0x8c;
/* 0x90 */ f32 field_0x90;
/* 0x94 */ f32 field_0x94;
/* 0x98 */ f32 field_0x98;
/* 0x9C */ f32 field_0x9c;
/* 0xA0 */ f32 field_0xa0;
/* 0xA4 */ f32 field_0xa4;
/* 0xA8 */ f32 field_0xa8;
/* 0xAC */ f32 field_0xac;
/* 0xB0 */ f32 field_0xb0;
/* 0xB4 */ f32 field_0xb4;
/* 0xB8 */ f32 field_0xb8;
/* 0xBC */ f32 field_0xbc;
/* 0xC0 */ f32 field_0xc0;
/* 0xC4 */ f32 field_0xc4;
/* 0xC8 */ f32 field_0xc8;
/* 0xCC */ f32 field_0xcc;
/* 0xD0 */ f32 field_0xd0;
/* 0xD4 */ f32 field_0xd4;
/* 0xD8 */ f32 field_0xd8;
/* 0xDC */ f32 field_0xdc;
/* 0xE0 */ f32 field_0xe0;
/* 0xE4 */ u16 field_0xe4;
/* 0xE6 */ s8 field_0xe6;
/* 0xE7 */ s8 field_0xe7;
/* 0xE8 */ s8 field_0xe8;
/* 0xE9 */ u8 field_0xe9;
/* 0xEA */ s8 field_0xea;
/* 0xEB */ s8 field_0xeb;
/* 0xEC */ s8 field_0xec;
/* 0xED */ s8 field_0xed;
/* 0xEE */ s8 field_0xee;
/* 0xEF */ u8 field_0xef;
/* 0xF0 */ u8 field_0xf0;
/* 0xF1 */ u8 field_0xf1;
/* 0xF2 */ u8 field_0xf2;
/* 0xF3 */ u8 field_0xf3;
/* 0xF4 */ s8 field_0xf4;
/* 0xF5 */ u8 field_0xf5;
/* 0xF6 */ u8 field_0xf6;
/* 0xF7 */ s8 field_0xf7;
/* 0xF8 */ bool field_0xf8;
/* 0xF9 */ bool field_0xf9;
};
class dMenu_DmapMapCtrl_c : public dMenu_StageMapCtrl_c {
public:
virtual bool isEnableZoomMove() const;
virtual void calcZoomCenter(f32*, f32*);
virtual void getInitWholeMapScale(f32*, f32, f32, f32, f32);
virtual void getInitDispCenter(f32*, f32*);
virtual void getZoomMinMaxCheck(f32*, f32*, f32*, f32*, bool*, bool*);
virtual f32 getZoomCmPerPixel();
virtual void draw();
};
#endif /* D_MENU_D_MENU_DMAP_MAP_H */
|