1 |
#ifndef ONI_GAMESTATE_H |
2 |
#define ONI_GAMESTATE_H |
3 |
#include "Oni_Character.h" |
4 |
|
5 |
|
6 |
typedef struct { |
7 |
float X; |
8 |
float Y; |
9 |
float Z; |
10 |
} Vector3; //probably move to utilities... |
11 |
|
12 |
typedef struct { |
13 |
float X; |
14 |
float Y; |
15 |
float Z; |
16 |
float W; |
17 |
} Quaternion; |
18 |
|
19 |
typedef struct { |
20 |
float RotationScale[9]; |
21 |
Vector3 Translation; |
22 |
} Matrix4x3; |
23 |
|
24 |
typedef struct { |
25 |
Vector3 Center; |
26 |
float Radius; |
27 |
} Sphere; |
28 |
|
29 |
typedef struct |
30 |
{ |
31 |
int StartTime; |
32 |
int field_4; |
33 |
char Active; |
34 |
char field_9; |
35 |
} Letterbox; |
36 |
|
37 |
typedef struct |
38 |
{ |
39 |
__int16 Count; |
40 |
__int16 field_2; |
41 |
int Memory; |
42 |
} DoorArray; |
43 |
|
44 |
typedef struct |
45 |
{ |
46 |
int Count; |
47 |
int Head; |
48 |
}PHNodeList; |
49 |
|
50 |
typedef struct |
51 |
{ |
52 |
PHNodeList OutList; |
53 |
PHNodeList InList; |
54 |
int AKVA; |
55 |
int field_14; |
56 |
int XTiles; |
57 |
int ZTiles; |
58 |
int GridSize; |
59 |
char field_24; |
60 |
char NoGrid; |
61 |
char gap_26[2]; |
62 |
int GridData; |
63 |
int field_2D; |
64 |
__int16 field_31; |
65 |
char gap_32[2]; |
66 |
int DynamicGrid; |
67 |
int field_39; |
68 |
int field_3D; |
69 |
int field_41; |
70 |
int field_45; |
71 |
int field_49; |
72 |
int field_4D; |
73 |
int field_51; |
74 |
int field_55; |
75 |
int field_59; |
76 |
int field_5D; |
77 |
int field_61; |
78 |
int field_65; |
79 |
int field_69; |
80 |
int field_6D; |
81 |
int field_71; |
82 |
int field_75; |
83 |
__int16 Visited; |
84 |
__int16 field_7A; |
85 |
int TraverseQueueNext; |
86 |
int field_81; |
87 |
int field_85; |
88 |
int field_89; |
89 |
int field_8D; |
90 |
int field_91; |
91 |
int field_95; |
92 |
int field_99; |
93 |
} PHGraphNode; |
94 |
typedef struct |
95 |
{ |
96 |
int field_0; |
97 |
int field_4; |
98 |
int field_8; |
99 |
int field_C; |
100 |
int field_10; |
101 |
int field_14; |
102 |
int field_18; |
103 |
int field_1C; |
104 |
int field_20; |
105 |
int field_24; |
106 |
int field_28; |
107 |
int field_2C; |
108 |
int field_30; |
109 |
int field_34; |
110 |
int field_38; |
111 |
int field_3C; |
112 |
int field_40; |
113 |
} MotionBlur; |
114 |
|
115 |
typedef struct |
116 |
{ |
117 |
char field_0[2052]; |
118 |
} Shadow; |
119 |
|
120 |
typedef struct |
121 |
{ |
122 |
int ONSK; |
123 |
Vector3 PlanetPositions[8]; |
124 |
int StarSpriteArray; |
125 |
int Skybox; |
126 |
int field_6C; |
127 |
int field_70; |
128 |
int field_74; |
129 |
int field_78; |
130 |
int field_7C; |
131 |
int field_80; |
132 |
int field_84; |
133 |
int field_88; |
134 |
int field_8C; |
135 |
int field_90; |
136 |
int field_94; |
137 |
int field_98; |
138 |
int field_9C; |
139 |
int field_A0; |
140 |
int field_A4; |
141 |
int field_A8; |
142 |
int field_AC; |
143 |
int field_B0; |
144 |
int field_B4; |
145 |
int field_B8; |
146 |
int field_BC; |
147 |
int field_C0; |
148 |
int field_C4; |
149 |
int field_C8; |
150 |
int field_CC; |
151 |
int field_D0; |
152 |
int field_D4; |
153 |
int field_D8; |
154 |
int field_DC; |
155 |
float field_E0; |
156 |
int field_E4; |
157 |
int field_E8; |
158 |
int field_EC; |
159 |
int field_F0; |
160 |
int field_F4; |
161 |
int field_F8; |
162 |
int field_FC; |
163 |
int field_100; |
164 |
int field_104; |
165 |
int field_108; |
166 |
int field_10C; |
167 |
int field_110; |
168 |
int field_114; |
169 |
int field_118; |
170 |
int field_11C; |
171 |
int field_120; |
172 |
int field_124; |
173 |
int field_128; |
174 |
int field_12C; |
175 |
int field_130; |
176 |
int field_134; |
177 |
int field_138; |
178 |
int field_13C; |
179 |
int field_140; |
180 |
int field_144; |
181 |
int field_148; |
182 |
int field_14C; |
183 |
int field_150; |
184 |
int field_154; |
185 |
int field_158; |
186 |
int field_15C; |
187 |
int field_160; |
188 |
float field_164; |
189 |
int field_168; |
190 |
int field_16C; |
191 |
int field_170; |
192 |
int field_174; |
193 |
int field_178; |
194 |
int field_17C; |
195 |
int field_180; |
196 |
int field_184; |
197 |
int field_188; |
198 |
int field_18C; |
199 |
int field_190; |
200 |
int field_194; |
201 |
int field_198; |
202 |
int field_19C; |
203 |
int field_1A0; |
204 |
int field_1A4; |
205 |
int field_1A8; |
206 |
int field_1AC; |
207 |
int field_1B0; |
208 |
int field_1B4; |
209 |
int field_1B8; |
210 |
int field_1BC; |
211 |
int field_1C0; |
212 |
int field_1C4; |
213 |
int field_1C8; |
214 |
int field_1CC; |
215 |
int field_1D0; |
216 |
int field_1D4; |
217 |
int field_1D8; |
218 |
int field_1DC; |
219 |
int field_1E0; |
220 |
int field_1E4; |
221 |
int field_1E8; |
222 |
int field_1EC; |
223 |
int field_1F0; |
224 |
int field_1F4; |
225 |
int field_1F8; |
226 |
int field_1FC; |
227 |
int field_200; |
228 |
float field_204; |
229 |
int field_208; |
230 |
int field_20C; |
231 |
int field_210; |
232 |
int field_214; |
233 |
int field_218; |
234 |
int field_21C; |
235 |
int field_220; |
236 |
int field_224; |
237 |
int field_228; |
238 |
int field_22C; |
239 |
int field_230; |
240 |
int field_234; |
241 |
int field_238; |
242 |
int field_23C; |
243 |
int field_240; |
244 |
int field_244; |
245 |
int field_248; |
246 |
Vector3 SunFlarePosition; |
247 |
Vector3 field_258; |
248 |
int field_264; |
249 |
int field_268; |
250 |
int field_26C; |
251 |
int field_270; |
252 |
Vector3 field_274; |
253 |
int field_280; |
254 |
int field_284; |
255 |
int field_288; |
256 |
int field_28C; |
257 |
} Sky; |
258 |
|
259 |
|
260 |
|
261 |
typedef struct { |
262 |
Sphere Sphere_; //fix this name |
263 |
int Child1; |
264 |
int Child2; |
265 |
} SphereTreeNode; |
266 |
|
267 |
typedef struct { |
268 |
Vector3 Min; |
269 |
Vector3 Max; |
270 |
} BoundingBox; |
271 |
|
272 |
|
273 |
/* 202 */ typedef struct |
274 |
{ |
275 |
char Name[32]; |
276 |
__int16 Id; |
277 |
__int16 field_22; |
278 |
int Length; |
279 |
} PatrolPathOSD; |
280 |
|
281 |
/* 396 */ typedef struct |
282 |
{ |
283 |
int Type; |
284 |
int field_4; |
285 |
int field_8; |
286 |
int field_C; |
287 |
int field_10; |
288 |
} PatrolPathPoint; |
289 |
|
290 |
enum { //action flags |
291 |
Action_Escape = 1, |
292 |
Action_Console = 2, |
293 |
Action_PauseScreen = 4, |
294 |
Action_Cutscene_1 = 8, |
295 |
Action_Cutscene_2 = 0x10, |
296 |
Action_F4 = 0x20, |
297 |
Action_F5 = 0x40, |
298 |
Action_F6 = 0x80, |
299 |
Action_F7 = 0x100, |
300 |
Action_F8 = 0x200, |
301 |
Action_StartRecord = 0x400, |
302 |
Action_StopRecord = 0x800, |
303 |
Action_PlayRecord = 0x1000, |
304 |
Action_F12 = 0x2000, |
305 |
Action_Unknown1 = 0x4000, |
306 |
Action_LookMode = 0x8000, |
307 |
Action_Screenshot = 0x10000, |
308 |
Action_Unknown2 = 0x20000, |
309 |
Action_Unknown3 = 0x40000, |
310 |
Action_Unknown4 = 0x80000, |
311 |
Action_Unknown5 = 0x100000, |
312 |
Action_Forward = 0x200000, |
313 |
Action_Backward = 0x400000, |
314 |
Action_TurnLeft = 0x800000, |
315 |
Action_TurnRight = 0x1000000, |
316 |
Action_StepLeft = 0x2000000, |
317 |
Action_StepRight = 0x4000000, |
318 |
Action_Jump = 0x8000000, |
319 |
Action_Crouch = 0x10000000, |
320 |
Action_Punch = 0x20000000, |
321 |
Action_Kick = 0x40000000, |
322 |
Action_Block = 0x80000000, |
323 |
//used in second action field |
324 |
Action2_Walk = 1, |
325 |
Action2_Action = 2, |
326 |
Action2_Hypo = 4, |
327 |
Action2_Reload = 8, |
328 |
Action2_Swap = 0x10, |
329 |
Action2_Drop = 0x20, |
330 |
Action2_Fire1 = 0x40, |
331 |
Action2_Fire2 = 0x80, |
332 |
Action2_Fire3 = 0x100, |
333 |
}; |
334 |
|
335 |
|
336 |
typedef struct { |
337 |
int32_t Actions1; |
338 |
int32_t Actions2; |
339 |
} InputAction; |
340 |
|
341 |
|
342 |
typedef struct { |
343 |
float MouseDeltaX; |
344 |
float MouseDeltaY; |
345 |
float field_8; |
346 |
float field_C; |
347 |
InputAction Current; |
348 |
InputAction Stopped; |
349 |
InputAction Start; |
350 |
InputAction Stop; |
351 |
} GameInput; |
352 |
|
353 |
typedef struct { |
354 |
int Type; //'CHAR' etc. |
355 |
int ObjectId; //not needed |
356 |
int Flags; //The flags of the object...not used for CHAR |
357 |
Vector3 Position; //Position of Object |
358 |
Vector3 Rotation; //Rotation of Object |
359 |
int EditorCallbacks; //Lets try not to mess with it for now. :P |
360 |
int field_28; //unknown |
361 |
} OSD_Header; |
362 |
|
363 |
typedef struct |
364 |
{ |
365 |
short ID; |
366 |
short flags; |
367 |
|
368 |
short keys; |
369 |
short open_time; |
370 |
|
371 |
float activate_radius_squared; |
372 |
|
373 |
short state; |
374 |
short blocked_frames; |
375 |
|
376 |
short open_time_left; |
377 |
short some_timer; |
378 |
|
379 |
Vector3 center_offset; |
380 |
char name[63]; |
381 |
char pad; |
382 |
void *class; |
383 |
} DoorOSD; |
384 |
|
385 |
typedef struct { |
386 |
OSD_Header OSD; |
387 |
DoorOSD Door; //incomplete |
388 |
} DoorObject; |
389 |
|
390 |
typedef struct { |
391 |
int32_t Flags; |
392 |
int32_t Frame; |
393 |
int32_t field_8; |
394 |
int32_t field_C; |
395 |
int32_t field_10; |
396 |
int32_t field_14; |
397 |
int32_t field_18; |
398 |
int32_t field_1C; |
399 |
int32_t FILMInstance; |
400 |
} PlayingFilm; |
401 |
|
402 |
typedef enum { |
403 |
chr_isplayer = 1 << 0, |
404 |
chr_randomskin = 1 << 1, |
405 |
chr_notprespawned = 1 << 2, |
406 |
chr_noncombatant = 1 << 3, |
407 |
chr_multispawnable = 1 << 4, |
408 |
chr_unkillable = 1 << 5, |
409 |
chr_superammo = 1 << 6, |
410 |
chr_omniscient = 1 << 8, |
411 |
chr_haslsi = 1 << 9, |
412 |
chr_boss = 1 << 10, |
413 |
chr_upgradedifficulty = 1 << 11, |
414 |
chr_noautodrop = 1 << 12, |
415 |
chr_dontaim = 1 << 13, |
416 |
chr_nocollision = 1 << 17, |
417 |
chr_noshadow = 1 << 24, |
418 |
chr_invincible = 1 << 25, |
419 |
chr_bossshield = 1 << 30, |
420 |
chr_weaponimmune = 1 << 31, |
421 |
} chr_flags; |
422 |
/* |
423 |
enum { |
424 |
chr_isplayer = 0x00000001, //is player character |
425 |
chr_randomskin = 0x00000002, //gets random skin from ONCV |
426 |
chr_notprespawned = 0x00000004, //isn't spawned at level creation |
427 |
chr_noncombatant = 0x00000008, //doesn't fight |
428 |
chr_multispawnable = 0x00000010, //can spawn up to 5 without forcing |
429 |
chr_unknown = 0x00000020, // |
430 |
chr_unkillable = 0x00000040, //can only be brought to 1 hp |
431 |
chr_superammo = 0x00000080, //infinite ammo |
432 |
chr_omniscient = 0x00000100, //touchofdeath |
433 |
chr_haslsi = 0x00000200, //drops an lsi |
434 |
chr_boss = 0x00000400, //is a boss character |
435 |
chr_upgradedifficulty = 0x00000800, //upgrade the difficulty if you play on med\hard |
436 |
chr_noautodrop = 0x00001000, //uses drop fields instead of has fields on death |
437 |
}; // |
438 |
*/ |
439 |
|
440 |
typedef struct { |
441 |
uint32_t Options; //A bitset. Someone had better define these |
442 |
char Class[64]; //Name of the ONCC we use. ONCCName in idb |
443 |
char Name[32]; //Name of the character. ie: ai2_spawn Muro |
444 |
char Weapon[64]; //Name of the weapon he holds. ONWCName in idb |
445 |
char ScriptSpawn[32]; //Script function called when char spawns |
446 |
char ScriptDie[32]; //Script function called when char dies |
447 |
char ScriptAware[32]; //Script function called when char detects something |
448 |
char ScriptAlarm[32]; //Script function called when char is alarmed at something |
449 |
char ScriptHurt[32]; //Script function called when char is hurt for the first time |
450 |
char ScriptDefeat[32]; //Script function called when char is at 1 HP |
451 |
char ScriptNoPath[32]; //Script function called when char loses path. Broken. |
452 |
char ScriptNoAmmo[32]; //Script function called when char is out of ammo for the first time. Char must have ammo at spawn. |
453 |
int32_t AdditionalHealth; //Additional Health given to the character |
454 |
int16_t AmmoUsed; //Ammo given for the char to use |
455 |
int16_t AmmoDropped; //Ammo the char drops |
456 |
int16_t CellsUsed; //Cells given for the char to use |
457 |
int16_t CellsDropped; //Cells the char drops |
458 |
int16_t HypoUsed; //Hypo given for the char to use |
459 |
int16_t HypoDropped; //Hypo the char drops |
460 |
int16_t ShieldUsed; //Bullet shield given for the char to use |
461 |
int16_t ShieldDropped; //Bullet shield the char drops |
462 |
int16_t CloakUsed; //Phase Cloak given for the char to use |
463 |
int16_t CloakDropped; //Phase Cloak the char drops |
464 |
int16_t NCIUsed; //Don't use this... |
465 |
int16_t NCIDropped; //Don't use this... |
466 |
int32_t TeamID; //Team ID |
467 |
int32_t AmmoPercent; //Percent of weapon ammo full |
468 |
int32_t JobID; //Job ID... |
469 |
//0 - none |
470 |
//1 - idle |
471 |
//2 - guard (never used in Oni) |
472 |
//3 - patrol |
473 |
//4 - teambattle (never used in Oni) |
474 |
int16_t PatrolID; //patrol path ID (reference to the Patrol_Path.BINA file) |
475 |
int16_t CombatID; //combat ID (reference to the Combat.BINA file) |
476 |
int16_t MeleeID; //melee ID (reference to the Melee Profile.BINA file) |
477 |
int16_t NeutralID; //neutral ID (reference to the Neutral.BINA file) |
478 |
int32_t AlarmGroups; //Bitset. http://wiki.oni2.net/CHAR |
479 |
int32_t InitialAlertLevel; //0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat |
480 |
int32_t MinimalAlertLevel; //0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat |
481 |
int32_t StartJobAlertLevel; //0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat |
482 |
int32_t InvestigatingAlertLevel;//0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat |
483 |
int32_t PursuitStrongLow; |
484 |
int32_t PursuitWeakLow; |
485 |
int32_t PursuitStrongHigh; |
486 |
int32_t PursuitWeakHigh; |
487 |
int32_t Pursuit5; |
488 |
int32_t field_1FC; |
489 |
} CharacterOSD; |
490 |
|
491 |
typedef struct { |
492 |
OSD_Header Header; |
493 |
CharacterOSD OSD; |
494 |
} CharacterObject; |
495 |
|
496 |
typedef struct { |
497 |
Vector3 Center; |
498 |
float Radius; |
499 |
} BoundingSphere; |
500 |
|
501 |
typedef struct { |
502 |
int32_t ONCP; //probably pointer |
503 |
int32_t field_4; //who knows? |
504 |
int32_t Instance; //probably link to actual particle |
505 |
int32_t Bone; //duh |
506 |
} AttachedParticle; |
507 |
|
508 |
|
509 |
typedef struct |
510 |
{ |
511 |
__int16 Index; |
512 |
__int16 Flags; |
513 |
int Class; |
514 |
int Character; |
515 |
Matrix4x3 Matrix; |
516 |
int PhyContext; |
517 |
int Facing; |
518 |
__int16 FadeTimer; |
519 |
__int16 TimeToFade; |
520 |
int CreationTime; |
521 |
__int16 ShotDelay1; |
522 |
__int16 ShotDelay2; |
523 |
__int16 PauseBeforeReload; |
524 |
__int16 PauseAfterReload; |
525 |
__int16 ActiveFireModeLength; |
526 |
__int16 AmmoCount; |
527 |
__int16 field_58; |
528 |
__int16 FiringDelays[16]; |
529 |
char gap_7a[2]; |
530 |
int ParticleInstances[16]; |
531 |
int field_BC[16]; |
532 |
int field_FC; |
533 |
int DodgeFiringSpreadPtr; |
534 |
int field_104; |
535 |
int field_108; |
536 |
int field_10C; |
537 |
char gap_110[20]; |
538 |
Vector3 Center; |
539 |
int NodeList[16]; |
540 |
} Weapon; |
541 |
|
542 |
typedef struct { //Inventory |
543 |
Weapon* Weapons[3]; |
544 |
int8_t z_forced_holster; |
545 |
int8_t z_forced_holster_is_magic; |
546 |
int16_t AmmoUsed; //Ammo given for the char to use |
547 |
int16_t HypoUsed; //Hypo given for the char to use |
548 |
int16_t CellsUsed; //Cells given for the char to use |
549 |
int16_t AmmoDropped; //Ammo the char drops |
550 |
int16_t HypoDropped; //Hypo the char drops |
551 |
int16_t CellsDropped; //Cells the char drops |
552 |
int16_t hypoRemaining; //who knows? InverseHypoRegenRate? |
553 |
int16_t hypoTimer; |
554 |
int16_t pad; |
555 |
char hasLSI; |
556 |
char field_1B5; |
557 |
int16_t shieldDisplayAmount; |
558 |
int16_t ShieldUsed; //Bullet shield given for the char to use |
559 |
int16_t CloakUsed; //Phase Cloak given for the char to use |
560 |
int32_t numInvisibleFrames; //probably bullet shield dropped |
561 |
int32_t DoorKeys; //Lol. We can use this later for other sorts of items. |
562 |
} Inventory; |
563 |
|
564 |
typedef struct { |
565 |
uint32_t SphereTree; |
566 |
Vector3 ObBox[8]; |
567 |
Vector3 * ObBowPtr; |
568 |
Vector3 Velocity; |
569 |
Quaternion field_74; |
570 |
Vector3 Position; |
571 |
Quaternion Rotation; |
572 |
float Scale; |
573 |
Matrix4x3 Matrix; |
574 |
Matrix4x3 InitMatrix; |
575 |
float field_104; |
576 |
float Gravity; |
577 |
float field_10C; |
578 |
float field_110; |
579 |
float Friction_1; |
580 |
float Friction_2; |
581 |
Vector3 Force; |
582 |
uint32_t Flags; |
583 |
uint32_t Type; |
584 |
char AnimState[0x18]; |
585 |
void* Callbacks; |
586 |
void* Owner; |
587 |
} PhyContext; |
588 |
typedef struct |
589 |
{ |
590 |
int field_0; |
591 |
int NumContacts; |
592 |
int FirstContact; |
593 |
int NotifyKnowledgeCallback; |
594 |
} AI2KnowledgeState; |
595 |
|
596 |
typedef struct |
597 |
{ |
598 |
char Name[128]; |
599 |
__int16 ImpactId; |
600 |
} ONCCImpact; |
601 |
|
602 |
typedef struct |
603 |
{ |
604 |
int RecoilCompensation; |
605 |
int BestAimingAngle; |
606 |
int ShotGroupError; |
607 |
int ShotGroupDecay; |
608 |
int ShotingInaccuracyMultiplier; |
609 |
__int16 MinDelayBetweenShots; |
610 |
__int16 MaxDelayBetweenShots; |
611 |
} ONCCWeaponSkill; |
612 |
|
613 |
typedef struct |
614 |
{ |
615 |
__int16 field_0; |
616 |
__int16 field_2; |
617 |
__int16 field_4; |
618 |
__int16 field_6; |
619 |
__int16 field_8; |
620 |
__int16 field_A; |
621 |
__int16 field_C; |
622 |
__int16 field_E; |
623 |
__int16 field_10; |
624 |
__int16 field_12; |
625 |
__int16 field_14; |
626 |
char Loaded; |
627 |
char field_17; |
628 |
int field_18; |
629 |
char HurtLightSoundName[32]; |
630 |
char HurtMediumSoundName[32]; |
631 |
char HurtHeavySoundName[32]; |
632 |
char DeathSoundName[32]; |
633 |
int HurtLightSoundPtr; |
634 |
int HurtMediumSoundPtr; |
635 |
int HurtHeavySoundPtr; |
636 |
int DeathSoundPtr; |
637 |
}HurtParams; |
638 |
|
639 |
|
640 |
typedef struct |
641 |
{ |
642 |
int field_0; |
643 |
int Gravity; |
644 |
float JumpStartVelocity; |
645 |
float MaxFallingVelocity; |
646 |
float JumpAcceleration; |
647 |
__int16 field_14; |
648 |
__int16 JetpackTimer; |
649 |
float MaxFallingHeightWithoutDamage; |
650 |
float MaxFallingHeightWithDamage; |
651 |
int ShadowTexture; |
652 |
float ShadowMaxHeight; |
653 |
float ShadowFadeHeight; |
654 |
float ShadowSize1; |
655 |
float ShadowSize2; |
656 |
float ShadowSize3; |
657 |
__int16 field_38; |
658 |
__int16 field_3A; |
659 |
int field_3C; |
660 |
char field_40; |
661 |
char field_41; |
662 |
__int16 field_42; |
663 |
int field_44; |
664 |
int field_48; |
665 |
int field_4C; |
666 |
int field_50; |
667 |
int field_54; |
668 |
int field_58; |
669 |
__int16 InverseHypoRegenerationRate; |
670 |
__int16 field_5E; |
671 |
int field_60; |
672 |
int field_64; |
673 |
int field_68; |
674 |
int field_6C; |
675 |
int field_70; |
676 |
HurtParams HurtParams; |
677 |
int AIOptions; |
678 |
int AIRotationSpeed; |
679 |
__int16 MinimalDazeTime; |
680 |
__int16 MaximalDazeTime; |
681 |
__int16 MinimalRealiseFiringSpreadTime; |
682 |
__int16 MaximalRealiseFiringSpreadTime; |
683 |
int MinimalFiringSpreadDodge; |
684 |
int MaximalFiringSpreadDodge; |
685 |
int field_138; |
686 |
int field_13C; |
687 |
int field_140; |
688 |
int field_144; |
689 |
int field_148; |
690 |
int field_14C; |
691 |
int field_150; |
692 |
ONCCWeaponSkill WeaponSkills[13]; |
693 |
int field_28C; |
694 |
int field_290; |
695 |
int field_294; |
696 |
int TauntChance; |
697 |
int GoForGunChance; |
698 |
int RunPickupChance; |
699 |
__int16 CombatId; |
700 |
__int16 MeleeId; |
701 |
char SoundProbabilities[10]; |
702 |
char gap_2b2[2]; |
703 |
char TauntSound[32]; |
704 |
char AlertSound[32]; |
705 |
char StartleSound[32]; |
706 |
char CheckBodySound[32]; |
707 |
char PursueSound[32]; |
708 |
char CoverSound[32]; |
709 |
char SuperpunchSound[32]; |
710 |
char SuperKickSound[32]; |
711 |
char Super3Sound[32]; |
712 |
char Super4Sound[32]; |
713 |
int CentralVisionRange; |
714 |
int PeripheralVisionRange; |
715 |
int HFov; |
716 |
int CentralVisionCurve; |
717 |
int CentralVFOV; |
718 |
int PeripheralVisionCurve; |
719 |
int PeripheralVFOV; |
720 |
int HostileThreatDefiniteTimer; |
721 |
int HostileThreatStrongTimer; |
722 |
int HostileThreatWeakTimer; |
723 |
int FriendlyThreadDefiniteTimer; |
724 |
int FriendlyThreatStrongTimer; |
725 |
int FriendlyThreatWeakTimer; |
726 |
int EarshotRadius; |
727 |
int ONCV; |
728 |
int ONCP; |
729 |
int ONIA; |
730 |
char ImpactsLoaded; |
731 |
char gap_439[1]; |
732 |
__int16 ImpactModifier; |
733 |
char ImpactModifierName[16]; |
734 |
ONCCImpact Impacts[15]; |
735 |
char gap_bea[2]; |
736 |
char DeathParticleName[64]; |
737 |
int DeathParticlePtr; |
738 |
int BodySurfaceCache; |
739 |
int TRBS; |
740 |
int TRMA; |
741 |
int CBPM; |
742 |
int CBPI; |
743 |
int PeaceTimer; |
744 |
int IdleTimer1; |
745 |
int IdleTimer2; |
746 |
int BaseHealth; |
747 |
int field_C54; |
748 |
int MinBodySizeFactor; |
749 |
int MaxBodySizeFactor; |
750 |
int field_C60[7]; |
751 |
int field_C7C; |
752 |
int TRAC; |
753 |
int TRSC; |
754 |
char gap_c88[2]; |
755 |
__int16 DeathDeleteTimer; |
756 |
char WeaponHand; |
757 |
char HasDaodanPowers; |
758 |
char HasSuperShield; |
759 |
char CantTouchThis; |
760 |
} ONCC; |
761 |
|
762 |
|
763 |
/* 398 */ typedef struct |
764 |
{ |
765 |
char Number; |
766 |
char gap_1[1]; |
767 |
__int16 ActiveCharacterIndex; |
768 |
int Flags; |
769 |
int field_8; |
770 |
ONCC* ONCC; |
771 |
__int16 ONCCnumber; |
772 |
__int16 Team; |
773 |
char Name[32]; |
774 |
int BodySize; |
775 |
int Health; |
776 |
int MaxHealth; |
777 |
__int16 AISA_ID; |
778 |
char gap_42[2]; |
779 |
int field_44; |
780 |
char ScriptNew[32]; |
781 |
char ScriptDie[32]; |
782 |
char ScriptSeen[32]; |
783 |
char ScriptAlarm[32]; |
784 |
char ScriptHurt[32]; |
785 |
char ScriptDefeat[32]; |
786 |
char ScriptLowAmmo[32]; |
787 |
//char ScriptNoPath[32]; |
788 |
char ScriptNoPath[28]; |
789 |
int RegenHax; |
790 |
Vector3 Position; |
791 |
Vector3 LastPosition; |
792 |
Vector3 Location; |
793 |
float Facing; |
794 |
float DesiredFacing; |
795 |
float CosmeticFacing; |
796 |
int field_178; |
797 |
int field_17C; |
798 |
int field_180; |
799 |
int BNV; |
800 |
int GraphNode; |
801 |
float PelvisHeight; |
802 |
int field_190; |
803 |
Inventory Inventory; |
804 |
Vector3 Velocity; |
805 |
int field_1D0; |
806 |
int field_1D4; |
807 |
int field_1D8; |
808 |
int field_1DC; |
809 |
int field_1E0; |
810 |
int IdleDelay; |
811 |
int charType; |
812 |
char gap_1ec[4]; |
813 |
int CombatFlags; |
814 |
int JobId; |
815 |
int Goal; |
816 |
int field_1FC; |
817 |
__int16 field_200; |
818 |
char gap_202[6]; |
819 |
int field_208; |
820 |
char gap_20c[588]; |
821 |
char field_458; |
822 |
char gap_459[352]; |
823 |
char field_5B9; |
824 |
char gap_5ba[14]; |
825 |
char field_5C8; |
826 |
char gap_5c9[359]; |
827 |
int field_730; |
828 |
int field_734; |
829 |
int field_738; |
830 |
char gap_73c[380]; |
831 |
char CombatState; |
832 |
char gap_8b9[7]; |
833 |
PatrolPathOSD PatrolPathOSD_; |
834 |
PatrolPathPoint PatrolPathPoints[64]; |
835 |
char gap_de8[392]; |
836 |
int Combat_StatePtr; |
837 |
AI2KnowledgeState KnowledgeState_; |
838 |
char gap_f84[4]; |
839 |
int AlertDecayTimer; |
840 |
int field_F8C; |
841 |
int field_F90; |
842 |
int AlertLevel; |
843 |
int MinimalAlertLevel; |
844 |
int StartJobAlertLevel; |
845 |
int InvestigatingAlertLevel; |
846 |
int StartleTime; |
847 |
int field_FA8; |
848 |
int field_FAC; |
849 |
int field_FB0; |
850 |
int Pursue1; |
851 |
int Pursue2; |
852 |
int Pursue3; |
853 |
int Pursue4; |
854 |
int Pursue5; |
855 |
char field_FC8; |
856 |
char gap_fc9[3]; |
857 |
int field_FCC; |
858 |
char gap_fd0[8]; |
859 |
int AlarmGroups; |
860 |
int field_FDC; |
861 |
int field_FE0; |
862 |
int field_FE4; |
863 |
int field_FE8; |
864 |
int field_FEC; |
865 |
int field_FF0; |
866 |
int field_FF4; |
867 |
int field_FF8; |
868 |
int field_FFC; |
869 |
int field_1000; |
870 |
int field_1004; |
871 |
int field_1008; |
872 |
__int16 field_100C; |
873 |
__int16 field_100E; |
874 |
int field_1010; |
875 |
int field_1014; |
876 |
int field_1018; |
877 |
char field_101C; |
878 |
char gap_101d[3]; |
879 |
int DazeTimer; |
880 |
__int16 field_1024; |
881 |
__int16 field_1026; |
882 |
__int16 field_1028; |
883 |
__int16 field_102A; |
884 |
int field_102C; |
885 |
int field_1030; |
886 |
int field_1034; |
887 |
char gap_1038[20]; |
888 |
int field_104C; |
889 |
int field_1050; |
890 |
int field_1054; |
891 |
int field_1058; |
892 |
int field_105C; |
893 |
int field_1060; |
894 |
int field_1064; |
895 |
int MeleePtr; |
896 |
int field_106C; |
897 |
__int16 field_1070; |
898 |
char gap_1072[126]; |
899 |
int Path_DestinationType; |
900 |
int Path_TypeSpecificInfo; |
901 |
char Path_MovementState; |
902 |
char gap_10f9[3]; |
903 |
int Path_OrientTo; |
904 |
Vector3 Path_DestinationPoint; |
905 |
int field_110C; |
906 |
int field_1110; |
907 |
Vector3 field_1114; |
908 |
Vector3 field_1120; |
909 |
char Path_State; |
910 |
char field_112D; |
911 |
char field_112E; |
912 |
char gap_112f[1]; |
913 |
Vector3 field_1130; |
914 |
int field_113C; |
915 |
int field_1140; |
916 |
int field_1144; |
917 |
char field_1148; |
918 |
char gap_1149[3]; |
919 |
int Path_CurrentNodeNumber; |
920 |
int Path_NumNodes; |
921 |
Vector3 Path_From; |
922 |
Vector3 Path_To; |
923 |
int Path_GraphFromNodePtr; |
924 |
int Path_GraphToNodePtr; |
925 |
int field_1174; |
926 |
char gap_1178[12]; |
927 |
int field_1184; |
928 |
char gap_1188[776]; |
929 |
int Path_LastError; |
930 |
int Path_RepathDelay; |
931 |
int Path_Repaths; |
932 |
int Path_RepathDecayTimer; |
933 |
int field_14A0; |
934 |
int MovementMode; |
935 |
char field_14A8; |
936 |
char gap_14a9[3]; |
937 |
int field_14AC; |
938 |
int MovementModifiers; |
939 |
int field_14B4; |
940 |
char gap_14b8[188]; |
941 |
int field_1574; |
942 |
int FacingState; |
943 |
int FacingAt_Destination; |
944 |
char field_1580; |
945 |
char field_1581; |
946 |
char gap_1582[2]; |
947 |
int Aiming_At_Type; |
948 |
Vector3 Aiming_At; |
949 |
int field_1594; |
950 |
int field_1598; |
951 |
int field_159C; |
952 |
int GlancingState; |
953 |
Vector3 GlancingDirOrPos; |
954 |
char field_15B0; |
955 |
char gap_15b1[3]; |
956 |
int field_15B4; |
957 |
int field_15B8; |
958 |
int field_15BC; |
959 |
int field_15C0; |
960 |
int field_15C4; |
961 |
int field_15C8; |
962 |
int field_15CC; |
963 |
int field_15D0; |
964 |
int field_15D4; |
965 |
int field_15D8; |
966 |
int field_15DC; |
967 |
int field_15E0; |
968 |
int field_15E4; |
969 |
int field_15E8; |
970 |
int AIBlockFunction; |
971 |
char field_15F0; |
972 |
char field_15F1; |
973 |
char field_15F2; |
974 |
char gap_15f3[1]; |
975 |
int field_15F4; |
976 |
int field_15F8; |
977 |
int field_15FC; |
978 |
int field_1600; |
979 |
char gap_1604[4]; |
980 |
int field_1608; |
981 |
int field_160C; |
982 |
char gap_1610[4]; |
983 |
int field_1614; |
984 |
char gap_1618[20]; |
985 |
int field_162C; |
986 |
int field_1630; |
987 |
int field_1634; |
988 |
int field_1638; |
989 |
int field_163C; |
990 |
int field_1640; |
991 |
__int16 field_1644; |
992 |
char gap_1646[2]; |
993 |
BoundingBox BoundingBox_; |
994 |
char gap_1660[4]; |
995 |
int BossShieldPower; |
996 |
int field_1668; |
997 |
char gap_166c[4]; |
998 |
uint32_t Kills; |
999 |
uint32_t Damage; |
1000 |
int field_1678; |
1001 |
int field_167C; |
1002 |
int CurrentConsoleActionMarker; |
1003 |
int field_1684; |
1004 |
__int16 field_1688; |
1005 |
__int16 field_168A; |
1006 |
int field_168C; |
1007 |
int field_1690; |
1008 |
char field_1694; |
1009 |
char field_1695; |
1010 |
__int16 field_1696; |
1011 |
int field_1698; |
1012 |
int field_169C; |
1013 |
} Character; |
1014 |
|
1015 |
typedef struct |
1016 |
{ |
1017 |
int Nodes; |
1018 |
int NodeCount; |
1019 |
int field_8; |
1020 |
int TraverseQueueHead; |
1021 |
int field_10; |
1022 |
int CacheLrar; |
1023 |
int CacheMem; |
1024 |
int field_1C; |
1025 |
int field_20; |
1026 |
int field_24; |
1027 |
}PHGraph |
1028 |
; |
1029 |
|
1030 |
/* 388 */ typedef struct //activecharacter |
1031 |
{ |
1032 |
__int16 Number; |
1033 |
__int16 field_2; |
1034 |
PhyContext* PhyContext; |
1035 |
SphereTreeNode SphereTree; |
1036 |
SphereTreeNode SphereTree3[4]; |
1037 |
SphereTreeNode SphereTree2[2]; |
1038 |
__int16 field_B0; |
1039 |
__int16 field_B2; |
1040 |
__int16 field_B4; |
1041 |
char field_B6; |
1042 |
char gap_b7[1]; |
1043 |
Vector3 field_B8; |
1044 |
Vector3 AccelerateWith; |
1045 |
int field_D0; |
1046 |
Vector3 field_D4; |
1047 |
__int16 field_E0; |
1048 |
char gap_e2[2]; |
1049 |
int field_E4; |
1050 |
int field_E8; |
1051 |
int field_EC; |
1052 |
int field_F0; |
1053 |
__int16 field_F4; |
1054 |
__int16 IsInAir; |
1055 |
Vector3 FallingVelocity; |
1056 |
Vector3 JumpVelocity; |
1057 |
char field_110; |
1058 |
char field_111; |
1059 |
__int16 field_112; |
1060 |
__int16 field_114; |
1061 |
char gap_116[2]; |
1062 |
int field_118; |
1063 |
int field_11C; |
1064 |
int field_120; |
1065 |
int field_124; |
1066 |
int field_128; |
1067 |
int field_12C; |
1068 |
BoundingSphere BoundingSphere; |
1069 |
Vector3 field_140; |
1070 |
Vector3 field_14C; |
1071 |
int field_158; |
1072 |
int field_15C; |
1073 |
Vector3 Location; |
1074 |
char gap_16c[24]; |
1075 |
int AkiraNode; |
1076 |
int GraphNode; |
1077 |
int PelvisHeight; |
1078 |
int Movement_StatePtr; |
1079 |
int ActiveWeapon; |
1080 |
int field_198; |
1081 |
int InventoryWeapon; |
1082 |
char gap_1a0[2]; |
1083 |
__int16 RedAmmoClipCount; |
1084 |
__int16 HypoCount; |
1085 |
__int16 GreenAmmoClipCount; |
1086 |
__int16 RedAmmoClipDropCount; |
1087 |
__int16 HypoDropCount; |
1088 |
__int16 GreenAmmoClipDropCount; |
1089 |
__int16 field_1AE; |
1090 |
__int16 InverseHypoRegenerationRate; |
1091 |
char DropShield; |
1092 |
char DropPhaseCloack; |
1093 |
char field_1B4; |
1094 |
char gap_1b5[1]; |
1095 |
__int16 field_1B6; |
1096 |
__int16 Shield; |
1097 |
__int16 PhaseCloacking; |
1098 |
int field_1BC; |
1099 |
char gap_1c0[4]; |
1100 |
__int16 field_1C4; |
1101 |
char gap_1c6[10]; |
1102 |
int field_1D0; |
1103 |
int field_1D4; |
1104 |
char gap_1d8[4]; |
1105 |
int field_1DC; |
1106 |
int NotIdleStartTime; |
1107 |
int TimeToIdle; |
1108 |
int field_1E8; |
1109 |
char gap_1ec[4]; |
1110 |
int field_1F0; |
1111 |
char gap_1f4[2048]; |
1112 |
int field_9F4; |
1113 |
char gap_9f8[36]; |
1114 |
int field_A1C; |
1115 |
char gap_a20[3020]; |
1116 |
int field_15EC; |
1117 |
char gap_15f0[60]; |
1118 |
int field_162C; |
1119 |
int field_1630; |
1120 |
int field_1634; |
1121 |
int field_1638; |
1122 |
int field_163C; |
1123 |
char gap_1640[8]; |
1124 |
BoundingBox BoundingBox; |
1125 |
int field_1660; |
1126 |
char gap_1664[4]; |
1127 |
int ShieldPower; |
1128 |
char gap_166c[4]; |
1129 |
int NumberOfKills; |
1130 |
int InflictedDamage; |
1131 |
int field_1678; |
1132 |
int field_167C; |
1133 |
char gap_1680[8]; |
1134 |
__int16 field_1688; |
1135 |
__int16 field_168A; |
1136 |
int field_168C; |
1137 |
int field_1690; |
1138 |
char field_1694; |
1139 |
char field_1695; |
1140 |
__int16 field_1696; |
1141 |
int field_1698; |
1142 |
int field_169C; |
1143 |
char gap_16a0[2]; |
1144 |
int field_16A2; |
1145 |
char gap_16a6[994]; |
1146 |
char field_1A88; |
1147 |
char field_1A89; |
1148 |
char field_1A8A; |
1149 |
char field_1A8B; |
1150 |
Vector3 Executor_AimingDirection; |
1151 |
int field_1A98; |
1152 |
int field_1A9C; |
1153 |
int Executor_ActualMovementMode; |
1154 |
int field_1AA4; |
1155 |
int field_1AA8; |
1156 |
int field_1AAC; |
1157 |
char Executor_HasFacingOverride; |
1158 |
char gap_1ab1[3]; |
1159 |
int Executor_AimingSpeed; |
1160 |
char field_1AB8; |
1161 |
char Executor_HasMoveOverride; |
1162 |
char gap_1aba[6]; |
1163 |
int field_1AC0; |
1164 |
int field_1AC4; |
1165 |
int Executor_FacingOverride; |
1166 |
char Executor_HasAttackOverride; |
1167 |
char gap_1acd[1]; |
1168 |
__int16 field_1ACE; |
1169 |
__int16 field_1AD0; |
1170 |
char gap_1ad2[6]; |
1171 |
int field_1AD8; |
1172 |
int field_1ADC; |
1173 |
int field_1AE0; |
1174 |
int field_1AE4; |
1175 |
char Executor_HasThrowOverride; |
1176 |
char gap_1ae9[3]; |
1177 |
int field_1AEC; |
1178 |
int field_1AF0; |
1179 |
int field_1AF4; |
1180 |
void* Animation; |
1181 |
__int16 AnimationToState; |
1182 |
__int16 AnimationFromState; |
1183 |
__int16 AnimationType; |
1184 |
__int16 NextAnimationType; |
1185 |
__int16 PrevAnimationType; |
1186 |
__int16 field_1B06; |
1187 |
char Stitch; |
1188 |
char gap_1b09[3]; |
1189 |
int StitchHeight; |
1190 |
__int16 InterpolationFromState; |
1191 |
char gap_1b12[2]; |
1192 |
Vector3 StitchVelocity; |
1193 |
__int16 InterpolationCurrentFrame; |
1194 |
__int16 InterpolationLength; |
1195 |
Quaternion InterpolationStartRotations[19]; |
1196 |
char gap_1c54[4]; |
1197 |
int field_1C58; |
1198 |
int field_1C5C; |
1199 |
int field_1C60; |
1200 |
int Overlay; |
1201 |
__int16 field_1C68; |
1202 |
__int16 field_1C6A; |
1203 |
int field_1C6C; |
1204 |
int field_1C70; |
1205 |
__int16 field_1C74; |
1206 |
char gap_1c76[2]; |
1207 |
int field_1C78; |
1208 |
char gap_1c7c[12]; |
1209 |
__int16 Frame; |
1210 |
__int16 SoftPause; |
1211 |
__int16 HardPause; |
1212 |
__int16 field_1C8E; |
1213 |
int field_1C90; |
1214 |
__int16 field_1C94; |
1215 |
__int16 field_1C96; |
1216 |
__int16 Dizzy; |
1217 |
__int16 field_1C9A; |
1218 |
int field_1C9C; |
1219 |
__int16 AnimationVarient; |
1220 |
__int16 TimeToPeace; |
1221 |
char NumAnimationAttachedParticles; |
1222 |
char gap_1ca5[1]; |
1223 |
__int16 field_1CA6; |
1224 |
AttachedParticle AnimationAttachedParticles[16]; |
1225 |
int TRAMParticles; |
1226 |
char FixedParticlesAttached; |
1227 |
char FixedParticlesStarted; |
1228 |
__int16 NumFixedParticles; |
1229 |
AttachedParticle FixedParticles[16]; |
1230 |
__int16 CurrentAnimationType; |
1231 |
char gap_1eb2[2]; |
1232 |
int field_1EB4; |
1233 |
char field_1EB8; |
1234 |
char gap_1eb9[30]; |
1235 |
char field_1ED7; |
1236 |
__int16 throwing; |
1237 |
__int16 thrownBy; |
1238 |
Character* ThrowTargetCharacter; |
1239 |
void* targetThrow; //animation |
1240 |
int field_1EE4; |
1241 |
int field_1EE8; |
1242 |
int field_1EEC; |
1243 |
Quaternion Rotations[19]; |
1244 |
Quaternion OverlayRotations[19]; |
1245 |
int field_2150; |
1246 |
char gap_2154[4]; |
1247 |
GameInput Input; |
1248 |
int PrevActions1; |
1249 |
int PrevActions2; |
1250 |
int SprintTimer; |
1251 |
char field_2194; |
1252 |
char field_2195; |
1253 |
char gap_2196[2]; |
1254 |
Vector3 field_2198; |
1255 |
int field_21A4; |
1256 |
int field_21A8; |
1257 |
int field_21AC; |
1258 |
Vector3 field_21B0; |
1259 |
float HeadFacing; |
1260 |
float HeadPitch; |
1261 |
int field_21C4; |
1262 |
int field_21C8; |
1263 |
int field_21CC; |
1264 |
int field_21D0; |
1265 |
char field_21D4; |
1266 |
char gap_21d5[3]; |
1267 |
int field_21D8; |
1268 |
char field_21DC; |
1269 |
char field_21DD; |
1270 |
char field_21DE; |
1271 |
char field_21DF; |
1272 |
char field_21E0; |
1273 |
char HasAlternateTrigger; |
1274 |
char field_21E2; |
1275 |
char ReleaseTrigger; |
1276 |
char ReleaseAlternateTrigger; |
1277 |
char TurningLeft; |
1278 |
char TurningRight; |
1279 |
char gap_21e7[1]; |
1280 |
int field_21E8; |
1281 |
int field_21EC; |
1282 |
__int16 field_21F0; |
1283 |
char gap_21f2[2]; |
1284 |
PlayingFilm PlayingFilm; |
1285 |
char gap_2218[4]; |
1286 |
int field_221C; |
1287 |
char gap_2220[8]; |
1288 |
Matrix4x3 * ExtraBody; |
1289 |
char gap_222c[76]; |
1290 |
Matrix4x3 BoneMatrices[19]; |
1291 |
Matrix4x3 WeaponMatrix; |
1292 |
char gap_2638[432]; |
1293 |
int field_27E8; |
1294 |
char gap_27ec[4]; |
1295 |
__int16 field_27F0; |
1296 |
__int16 field_27F2; |
1297 |
int field_27F4; |
1298 |
int field_27F8; |
1299 |
__int16 ShadowIndex; |
1300 |
char field_27FE; |
1301 |
char gap_27ff[1]; |
1302 |
char field_2800; |
1303 |
char field_2801; |
1304 |
char ShieldParts[19]; |
1305 |
char field_2815; |
1306 |
char gap_2816[2]; |
1307 |
int field_2818; |
1308 |
__int16 field_281C; |
1309 |
char gap_281e[2]; |
1310 |
int field_2820; |
1311 |
int field_2824; |
1312 |
int field_2828; |
1313 |
int field_282C; |
1314 |
__int16 field_2830; |
1315 |
__int16 field_2832; |
1316 |
char gap_2834[1]; |
1317 |
char field_2835; |
1318 |
char field_2836; |
1319 |
char field_2837; |
1320 |
} ActiveCharacter; |
1321 |
|
1322 |
typedef struct |
1323 |
{ |
1324 |
char name[64]; // Must be same as ONcMaxLevelName above (for TE) |
1325 |
|
1326 |
void *env; |
1327 |
void *objectsetup; |
1328 |
void *markers; |
1329 |
void *flags; |
1330 |
void *triggers; |
1331 |
|
1332 |
void *Sky; |
1333 |
float SkyHeight; |
1334 |
|
1335 |
|
1336 |
} OniLevel; |
1337 |
|
1338 |
typedef struct |
1339 |
{ |
1340 |
int TimerMode; |
1341 |
char TimerName[32]; |
1342 |
int TimerDuration; |
1343 |
char field_28; |
1344 |
char gap_29[3]; |
1345 |
int field_2C; |
1346 |
Letterbox Letterbox; |
1347 |
char gap_3a[2]; |
1348 |
char field_3C; |
1349 |
char gap_3d[3]; |
1350 |
int field_40; |
1351 |
int CutsceneSyncMark; |
1352 |
char field_48; |
1353 |
char gap_49[3]; |
1354 |
int field_4C; |
1355 |
int field_50; |
1356 |
int field_54; |
1357 |
int field_58; |
1358 |
int field_5C; |
1359 |
int field_60; |
1360 |
int field_64; |
1361 |
int field_68; |
1362 |
int field_6C; |
1363 |
int field_70; |
1364 |
int FadeStartTime; |
1365 |
int FadeEndTime; |
1366 |
char field_7C; |
1367 |
char gap_7d[3]; |
1368 |
int Camera; |
1369 |
PHGraph PathFindingGraph; |
1370 |
Character* PlayerCharacter; |
1371 |
int field_B0; |
1372 |
char gap_b4[4]; |
1373 |
GameInput Input; |
1374 |
int field_E8; |
1375 |
int field_EC; |
1376 |
char ScreenShotEveryFrame; |
1377 |
char gap_f1[7]; |
1378 |
char field_F8; |
1379 |
char field_F9; |
1380 |
char field_FA; |
1381 |
char gap_fb[1]; |
1382 |
int field_FC; |
1383 |
int field_100; |
1384 |
char field_104; |
1385 |
char gap_105[3]; |
1386 |
int SlowMotion; |
1387 |
char gap_10c[4]; |
1388 |
int field_110; |
1389 |
int field_114; |
1390 |
char SplashScreenTextureName[32]; |
1391 |
char field_138; |
1392 |
char gap_139[7]; |
1393 |
int field_140; |
1394 |
int GameTime; |
1395 |
int field_148; |
1396 |
int field_14C; |
1397 |
OniLevel* Level; |
1398 |
int field_154; |
1399 |
MotionBlur MotionBlur_[64]; |
1400 |
int MotionBlurCount; |
1401 |
__int16 field_125C; |
1402 |
__int16 field_125E; |
1403 |
Character CharacterStorage[128]; |
1404 |
__int16 CharacterCount; |
1405 |
char gap_b6262[2]; |
1406 |
int field_B6264; |
1407 |
ActiveCharacter ActiveCharacters[64]; |
1408 |
__int16 ActiveCharacterCount; |
1409 |
Shadow Shadows[32]; |
1410 |
__int16 field_1670EA; |
1411 |
int ShadowCount; |
1412 |
int ActiveCharacterList[128]; |
1413 |
int ActiveCharacterListCount; |
1414 |
int ActiveCharacterListLock; |
1415 |
int LivingCharacterList[128]; |
1416 |
int LivingCharacterListCount; |
1417 |
int LivingCharacterListLock; |
1418 |
Character* PresentCharacterList[128]; |
1419 |
int PresentCharacterListCount; |
1420 |
int PresentCharacterListLock; |
1421 |
int ObjectList; |
1422 |
DoorArray DoorArray_; |
1423 |
Sky Sky_; |
1424 |
int field_1679A4; |
1425 |
int Triggers; |
1426 |
char IsGamePaused; |
1427 |
char IsInputEnabled; |
1428 |
char field_1679AE; |
1429 |
char gap_1679af[1]; |
1430 |
int LastInputActions1; |
1431 |
int LastInputActions2; |
1432 |
int field_1679B8; |
1433 |
int WinLose; |
1434 |
int field_1679C0; |
1435 |
int field_1679C4; |
1436 |
int field_1679C8; |
1437 |
int field_1679CC; |
1438 |
int field_1679D0; |
1439 |
int field_1679D4; |
1440 |
__int16 field_1679D8; |
1441 |
char gap_1679da[2]; |
1442 |
int field_1679DC; |
1443 |
} GameState; |
1444 |
|
1445 |
|
1446 |
typedef struct |
1447 |
{ |
1448 |
int priority; |
1449 |
int timer; // amount of time to display the text |
1450 |
char prefix[10]; // prefix for the line |
1451 |
char text[502]; // text on the line |
1452 |
const char *identifier; |
1453 |
int text_color; |
1454 |
int text_shadow; |
1455 |
} COtTextEntry; |
1456 |
|
1457 |
typedef struct |
1458 |
{ |
1459 |
void *font_family; |
1460 |
void *text_context; // text context to do the drawing |
1461 |
short formatting; |
1462 |
short font_size; |
1463 |
char scale_font; |
1464 |
char bottom_justify; |
1465 |
char display_completion; |
1466 |
char fade_over_bounds; |
1467 |
char use_formatting_commands; |
1468 |
|
1469 |
short bounds[4]; |
1470 |
short num_text_entries; |
1471 |
short max_text_entries; |
1472 |
char pad[3]; |
1473 |
COtTextEntry *text_entries; // an array (num_text_entries long) of COtTextEntry |
1474 |
int blah; |
1475 |
int blah2; |
1476 |
int blah3; |
1477 |
} COtTextArea; |
1478 |
#endif |