0
|
1 #pragma
|
|
2 #include "BSPModel.h"
|
|
3 #include "OutdoorCamera.h"
|
|
4 #include "Indoor.h"
|
|
5
|
|
6
|
|
7
|
|
8 /* 256 */
|
|
9 #pragma pack(push, 1)
|
|
10 struct ODMHeader
|
|
11 {
|
|
12 int uVersion;
|
|
13 char pMagic[4];
|
|
14 unsigned int uCompressedSize;
|
|
15 unsigned int uDecompressedSize;
|
|
16 };
|
|
17 #pragma pack(pop)
|
|
18
|
|
19
|
|
20
|
|
21 /* 78 */
|
|
22 #pragma pack(push, 1)
|
|
23 struct OutdoorLocationTileType
|
|
24 {
|
|
25 unsigned __int16 uTileGroup;
|
|
26 unsigned __int16 uTileID;
|
|
27 };
|
|
28 #pragma pack(pop)
|
|
29
|
|
30
|
|
31
|
|
32
|
|
33 /* 79 */
|
|
34 #pragma pack(push, 1)
|
|
35 struct OutdoorLocationTerrain
|
|
36 {
|
|
37 //----- (0047C794) --------------------------------------------------------
|
|
38 inline OutdoorLocationTerrain()
|
|
39 {
|
|
40 this->pHeightmap = 0;
|
|
41 this->pTilemap = 0;
|
|
42 this->ptr_C = 0;
|
|
43 this->field_10 = 0;
|
|
44 this->field_12 = 0;
|
|
45 }
|
|
46
|
|
47 void _47C7A9();
|
|
48 void Release();
|
|
49 int _47C80A(int a2, int a3, int a4, int a5);
|
|
50 int _47CB57(int a1, int a2, int a3);
|
|
51 bool ZeroLandscape();
|
|
52 bool Initialize();
|
|
53
|
|
54
|
|
55 unsigned __int8 *pHeightmap;
|
|
56 unsigned __int8 *pTilemap;
|
|
57 unsigned __int8 *pAttributemap;
|
|
58 void *ptr_C;
|
|
59 __int16 field_10;
|
|
60 __int16 field_12;
|
|
61 __int16 field_14;
|
|
62 __int16 field_16;
|
|
63 int field_18;
|
|
64 int field_1C;
|
|
65 };
|
|
66 #pragma pack(pop)
|
|
67
|
|
68
|
|
69 /* 81 */
|
|
70 #pragma pack(push, 1)
|
|
71 struct ODMFace
|
|
72 {
|
|
73 bool HasEventHint();
|
|
74
|
|
75
|
|
76 static bool IsBackfaceCulled(struct ODMFace *a1, struct RenderVertexSoft *a2, struct stru148 *a3);
|
|
77
|
|
78
|
|
79 struct Plane_int_ pFacePlane;
|
|
80 int zCalc1;
|
|
81 int zCalc2;
|
|
82 int zCalc3;
|
|
83 unsigned int uFaceAttributes;
|
|
84 unsigned __int16 pVertexIDs[20];
|
|
85 unsigned __int16 pTextureUIDs[20];
|
|
86 unsigned __int16 pTextureVIDs[20];
|
|
87 unsigned __int16 pXInterceptDisplacements[20];
|
|
88 unsigned __int16 pYInterceptDisplacements[20];
|
|
89 unsigned __int16 pZInterceptDisplacements[20];
|
|
90 unsigned __int16 uTextureID;
|
|
91 __int16 sTextureDeltaU;
|
|
92 __int16 sTextureDeltaV;
|
|
93 struct BBox_short_ pBoundingBox;
|
|
94 __int16 sCogNumber;
|
|
95 __int16 sCogTriggeredID;
|
|
96 __int16 sCogTriggerType;
|
|
97 char field_128;
|
|
98 char field_129;
|
|
99 unsigned __int8 uGradientVertex1;
|
|
100 unsigned __int8 uGradientVertex2;
|
|
101 unsigned __int8 uGradientVertex3;
|
|
102 unsigned __int8 uGradientVertex4;
|
|
103 unsigned __int8 uNumVertices;
|
|
104 unsigned __int8 uPolygonType;
|
|
105 unsigned __int8 uShadeType;
|
|
106 unsigned __int8 bVisible;
|
|
107 char field_132;
|
|
108 char field_133;
|
|
109 };
|
|
110 #pragma pack(pop)
|
|
111
|
|
112
|
|
113
|
|
114 #pragma pack(push, 1)
|
|
115 struct OutdoorLocation
|
|
116 {
|
|
117 //----- (004626BA) --------------------------------------------------------
|
|
118 OutdoorLocation()
|
|
119 {
|
|
120 subconstuctor();
|
|
121 uLastSunlightUpdateMinute = 0;
|
|
122 }
|
|
123 //----- (004626CD) --------------------------------------------------------
|
|
124 void subconstuctor()
|
|
125 {
|
|
126 //OutdoorLocationTerrain::OutdoorLocationTerrain(&this->pTerrain);
|
|
127 field_F0 = 0;
|
|
128 field_F4 = 0x40000000u;
|
|
129 //DLVHeader::DLVHeader(&v1->ddm);
|
|
130 pSpawnPoints = 0;
|
|
131 pBModels = 0;
|
|
132 ptr_D4 = 0;
|
|
133 pFaceIDLIST = 0;
|
|
134 pOMAP = 0;
|
|
135 }
|
|
136
|
|
137 void ExecDraw(unsigned int bRedraw);
|
|
138 unsigned int DrawActors();
|
|
139 void CreateDebugLocation();
|
|
140 void Release();
|
|
141 bool Load(char *pFilename, ODMFace *File, size_t a4, int thisa);
|
|
142 int _47ECC1(signed int a2);
|
|
143 unsigned int DoGetTileTexture(unsigned int uX, unsigned int uZ);
|
|
144 int _47ED83(signed int a2, signed int a3);
|
|
145 int ActuallyGetSomeOtherTileInfo(unsigned int uX, unsigned int uY);
|
|
146 int DoGetHeightOnTerrain(unsigned int uX, unsigned int uZ);
|
|
147 int _47EE49(signed int a2, signed int a3, int a4);
|
|
148 int _47EF60(int a2, int a3, int a4);
|
|
149 bool _47F04C(signed int a2, signed int a3);
|
|
150 bool _47F097(signed int a2, signed int a3);
|
|
151 bool _47F0E2();
|
|
152 int PrepareDecorations();
|
|
153 int _47F223_LooksLikeGenerateMonsterLoot();
|
|
154 bool InitalizeActors(int a1);
|
|
155 bool _47F3EA();
|
|
156 bool _47F420();
|
|
157 double GetFogDensityByTime();
|
|
158 int GetSomeOtherTileInfo(int sX, int sY);
|
|
159 unsigned int GetTileTexture(int sX, int sZ);
|
|
160 int GetHeightOnTerrain(int sX, int sZ);
|
|
161 bool Initialize(const char *pFilename, int File, size_t uRespawnInterval, int thisa);
|
|
162 bool Release2();
|
|
163 bool GetTravelDestination(signed int sPartyX, signed int sPartyZ, char *pOut, signed int a5);
|
|
164 void MessWithLUN();
|
|
165 unsigned int UpdateSunlightVectors();
|
|
166 void UpdateFog();
|
|
167 int GetNumFoodRequiredToRestInCurrentPos(int x, signed int y, int z);
|
|
168 int SetFog();
|
|
169 void Draw();
|
|
170
|
|
171
|
|
172 char pLevelFilename[32];
|
|
173 char pLocationFileName[32];
|
|
174 char pLocationFileDescription[32];
|
|
175 char pSkyTextureName[32];
|
|
176 char pGroundTileset[32];
|
|
177 OutdoorLocationTileType pTileTypes[4];
|
|
178 unsigned int uNumBModels;
|
|
179 struct OutdoorLocationTerrain pTerrain;
|
|
180 void *ptr_D4;
|
|
181 struct BSPModel *pBModels;
|
|
182 int field_DC;
|
|
183 unsigned __int16 *pFaceIDLIST;
|
|
184 unsigned int *pOMAP;
|
|
185 unsigned int uSky_TextureID;
|
|
186 unsigned int uMainTile_BitmapID;
|
|
187 __int16 field_F0;
|
|
188 __int16 field_F2;
|
|
189 int field_F4;
|
|
190 char field_F8[968];
|
|
191 unsigned int uNumSpawnPoints;
|
|
192 struct SpawnPointMM7 *pSpawnPoints;
|
|
193 struct DDM_DLV_Header ddm;
|
|
194 unsigned __int64 uLastVisitDay;
|
|
195 char field_4F8[12];
|
|
196 int day_attrib;
|
|
197 int day_fogrange_1;
|
|
198 int day_fogrange_2;
|
|
199 char field_510[24];
|
|
200 char array_528[968];
|
|
201 char array_8F0[968];
|
|
202 int field_CB8;
|
|
203 int field_CBC_terrain_triangles_shade_type;
|
|
204 int field_CC0;
|
|
205 unsigned int pSpriteIDs_LUN[8];
|
|
206 unsigned int uSpriteID_LUNFULL;
|
|
207 int field_CE8;
|
|
208 unsigned int uSpriteID_LUN3_4_cp;
|
|
209 int field_CF0;
|
|
210 unsigned int uSpriteID_LUN1_2_cp;
|
|
211 int field_CF8;
|
|
212 unsigned int uSpriteID_LUN1_4_cp;
|
|
213 int field_D00;
|
|
214 unsigned __int16 uSpriteID_LUN_SUN;
|
|
215 __int16 field_D06;
|
|
216 int field_D08;
|
|
217 int field_D0C;
|
|
218 int field_D10;
|
|
219 int field_D14;
|
|
220 int field_D18;
|
|
221 int field_D1C;
|
|
222 int field_D20;
|
|
223 int field_D24;
|
|
224 int field_D28;
|
|
225 int field_D2C;
|
|
226 Vec3_int_ vSunlight;
|
|
227 int field_D3C;
|
|
228 int field_D40;
|
|
229 int field_D44;
|
|
230 int field_D48;
|
|
231 int field_D4C;
|
|
232 float field_D50;
|
|
233 int field_D54;
|
|
234 int field_D58;
|
|
235 int field_D5C;
|
|
236 int field_D60;
|
|
237 int field_D64;
|
|
238 char field_D68[111900];
|
|
239 float fFogDensity;
|
|
240 int uLastSunlightUpdateMinute;
|
|
241 };
|
|
242 #pragma pack(pop)
|
|
243
|
|
244
|
|
245 extern struct OutdoorLocation *pOutdoor;
|
|
246
|
|
247
|
|
248
|
|
249
|
|
250
|
|
251
|
|
252
|
|
253
|
|
254
|
|
255
|
|
256
|
|
257
|
|
258
|
|
259 #include "Outdoor_stuff.h" |