source: Daodan/src/Oni/GameState.h@ 1012

Last change on this file since 1012 was 992, checked in by alloc, 11 years ago

Daodan: Removed unused MSVC tree, build folders; reorganized source layout; removed Flatline from current Daodan

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