ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/src/Oni_Character.h
(Generate patch)

Comparing Daodan/src/Oni_Character.h (file contents):
Revision 473 by gumby, Fri Oct 30 07:41:39 2009 UTC vs.
Revision 484 by gumby, Fri Dec 11 08:58:07 2009 UTC

# Line 126 | Line 126 | typedef struct {
126          int32_t FILMInstance;
127   } PlayingFilm;
128  
129 + typedef enum {
130 +        chr_isplayer          = 1 << 0,
131 +        chr_randomskin        = 1 << 1,
132 +        chr_notprespawned     = 1 << 2,
133 +        chr_noncombatant      = 1 << 3,
134 +        chr_multispawnable    = 1 << 4,
135 +        chr_unkillable        = 1 << 5,
136 +        chr_superammo         = 1 << 6,
137 +        chr_omniscient        = 1 << 8,
138 +        chr_haslsi            = 1 << 9,
139 +        chr_boss              = 1 << 10,
140 +        chr_upgradedifficulty = 1 << 11,
141 +        chr_noautodrop        = 1 << 12,
142 +        chr_dontaim           = 1 << 13,
143 +        chr_nocollision       = 1 << 17,
144 +        chr_noshadow          = 1 << 24,
145 +        chr_invincible        = 1 << 25,
146 +        chr_bossshield        = 1 << 30,
147 +        chr_weaponimmune      = 1 << 31,
148 + } chr_flags;
149 + /*
150 + enum {
151 + chr_isplayer                    =               0x00000001,     //is player character
152 + chr_randomskin                  =               0x00000002,     //gets random skin from ONCV
153 + chr_notprespawned               =               0x00000004,     //isn't spawned at level creation
154 + chr_noncombatant                =               0x00000008,     //doesn't fight
155 + chr_multispawnable              =               0x00000010,     //can spawn up to 5 without forcing
156 + chr_unknown                             =               0x00000020,     //
157 + chr_unkillable                  =               0x00000040,     //can only be brought to 1 hp
158 + chr_superammo                   =               0x00000080,     //infinite ammo
159 + chr_omniscient                  =               0x00000100,     //touchofdeath
160 + chr_haslsi                              =               0x00000200,     //drops an lsi
161 + chr_boss                                =               0x00000400,     //is a boss character
162 + chr_upgradedifficulty   =               0x00000800,     //upgrade the difficulty if you play on med\hard
163 + chr_noautodrop                  =               0x00001000,     //uses drop fields instead of has fields on death
164 + }; //
165 + */
166 +
167   typedef struct {
168          uint32_t Options;                               //A bitset. Someone had better define these
169          char Class[64];                                 //Name of the ONCC we use. ONCCName in idb
# Line 215 | Line 253 | typedef struct { //Inventory
253          int32_t DoorKeys;               //Lol. We can use this later for other sorts of items.
254   } Inventory;
255  
256 + typedef struct {
257 +        uint32_t SphereTree;
258 +        Vector3 ObBox[8];
259 +        Vector3 * ObBowPtr;
260 +        Vector3 Velocity;
261 +        Quaternion field_74;
262 +        Vector3 Position;
263 +        Quaternion Rotation;
264 +        float Scale;
265 +        Matrix4x3 Matrix;
266 +        Matrix4x3 InitMatrix;
267 +        float field_104;
268 +        float Gravity;
269 +        float field_10C;
270 +        float field_110;
271 +        float Friction_1;
272 +        float Friction_2;
273 +        Vector3 Force;
274 +        uint32_t Flags;
275 +        uint32_t Type;
276 +        char AnimState[0x18];
277 +        void* Callbacks;
278 +        void* Owner;
279 + } PhyContext;
280 +
281   typedef struct { //ActiveCharacter
282          int16_t Number;
283          int16_t field_2; //probably Number is an int32
284 <        int32_t PhyContext;
284 >        PhyContext * PhyContext_;
285          SphereTreeNode SphereTree1;             //probably SphereTree[7]...
286          SphereTreeNode SphereTree3[4];
287          SphereTreeNode SphereTree2[2];
# Line 440 | Line 503 | typedef struct { //Character
503          int16_t ActiveCharacterIndex;
504          int32_t Flags;
505          int32_t field_8;
506 <        int32_t ONCC;                   //change type to ONCC when we get that far...
506 >        int32_t* ONCC;                  //change type to ONCC when we get that far...
507          int16_t field_10;
508          int16_t Team;
509          char Name[32];
# Line 541 | Line 604 | enum {
604          team_switzerland,
605          team_syndicateaccessory,
606   };
607 <
545 < typedef enum {
546 <        chr_isplayer          = 1 << 0,
547 <        chr_randomskin        = 1 << 1,
548 <        chr_notprespawned     = 1 << 2,
549 <        chr_noncombatant      = 1 << 3,
550 <        chr_multispawnable    = 1 << 4,
551 <        chr_unkillable        = 1 << 5,
552 <        chr_superammo         = 1 << 6,
553 <        chr_omniscient        = 1 << 8,
554 <        chr_haslsi            = 1 << 9,
555 <        chr_boss              = 1 << 10,
556 <        chr_upgradedifficulty = 1 << 11,
557 <        chr_noautodrop        = 1 << 12,
558 <        chr_dontaim           = 1 << 13,
559 <        chr_nocollision       = 1 << 17,
560 <        chr_noshadow          = 1 << 24,
561 <        chr_invincible        = 1 << 25,
562 <        chr_bossshield        = 1 << 30,
563 <        chr_weaponimmune      = 1 << 31,
564 < } chr_flags;
565 < /*
566 < enum {
567 < chr_isplayer                    =               0x00000001,     //is player character
568 < chr_randomskin                  =               0x00000002,     //gets random skin from ONCV
569 < chr_notprespawned               =               0x00000004,     //isn't spawned at level creation
570 < chr_noncombatant                =               0x00000008,     //doesn't fight
571 < chr_multispawnable              =               0x00000010,     //can spawn up to 5 without forcing
572 < chr_unknown                             =               0x00000020,     //
573 < chr_unkillable                  =               0x00000040,     //can only be brought to 1 hp
574 < chr_superammo                   =               0x00000080,     //infinite ammo
575 < chr_omniscient                  =               0x00000100,     //touchofdeath
576 < chr_haslsi                              =               0x00000200,     //drops an lsi
577 < chr_boss                                =               0x00000400,     //is a boss character
578 < chr_upgradedifficulty   =               0x00000800,     //upgrade the difficulty if you play on med\hard
579 < chr_noautodrop                  =               0x00001000,     //uses drop fields instead of has fields on death
580 < }; //
581 < */
582 < int16_t ONICALL ONrGameState_NewCharacter(CharacterObject* CHAR, void* AISA, void* flag, int* list_location);
607 > int16_t ONICALL ONrGameState_NewCharacter(CharacterObject* CHAR, void* AISA, void* flag, uint32_t* list_location);
608   int32_t* ONICALL ONrGetActiveCharacter(void* CharacterPtr);
609   //int16_t ONICALL ONrGameState_GetPlayerCharacter();
610  
# Line 595 | Line 620 | int32_t* ONICALL ONrGetActiveCharacter(v
620   #define char_bossshield        (1 << 30)
621   #define char_weaponimmune      (1 << 31)
622  
623 +
624 + //We need a Oni_Structs #include file.
625 +
626 + typedef struct {
627 +        uint32_t TimerMode;
628 +        char TimerName[32];
629 +        uint32_t TimerDuration;
630 +        uint32_t field_28;
631 +        uint32_t field_2C;
632 +        uint32_t Letterbox[3];
633 +        uint32_t field_3C;
634 +        uint32_t field_40;
635 +        uint32_t CutsceneSyncMark;
636 +        uint32_t SomeCutsceneSyncMarkField;
637 +        uint32_t field_4C;
638 +        uint32_t SplashScreenMachineTime;
639 +        uint32_t field_54;
640 +        uint32_t field_58;
641 +        uint32_t field_5C;
642 +        uint32_t field_60;
643 +        uint32_t field_64;
644 +        uint32_t field_68;
645 +        uint32_t field_6C;
646 +        uint32_t field_70;
647 +        uint32_t FadeStartTime;
648 +        uint32_t FadeEndTime;
649 +        uint32_t field_7C;
650 +        uint32_t Camera;
651 +        char PathFindingGraph[0x28];
652 +        struct Character *PlayerCharacter;
653 +        uint32_t field_B0;
654 +        uint32_t field_B4;
655 +        GameInput Input;
656 +        uint32_t field_E8;
657 +        uint32_t field_EC;
658 +        uint32_t ScreenshotEveryFrame; //bool?
659 +        uint32_t field_F4;
660 +        char field_F8;
661 +        char field_F9;
662 +        char field_FA;
663 +        char field_FB;
664 +        uint32_t field_FC;
665 +        uint32_t field_100;
666 +        uint32_t SlowMo;        //bool
667 +        uint32_t SlowMotion;
668 +        uint32_t field_10C;
669 +        uint32_t field_110;
670 +        uint32_t field_114;
671 +        char SplashScreenTextureName[32];
672 +        uint32_t field_138;
673 +        uint32_t field_13C;
674 +        uint32_t field_140;
675 +        uint32_t GameTime;
676 +        uint32_t field_148;
677 +        uint32_t field_14C;
678 +        uint32_t Level;
679 +        uint32_t field_154;
680 +        char MotionBlur[0x44][64];
681 +        uint32_t MotionBlurCount;
682 +        uint16_t field_125C;
683 +        uint16_t field_125E;
684 +        Character CharacterStorage[128];
685 +        uint16_t CharacterCount;
686 +        uint16_t padding_1;
687 +        uint32_t field_B6264;
688 +        char ActiveCharacters[0x2838][64]; //Active Character Struct isn't the proper size atm.
689 +        uint16_t ActiveCharactersCount;
690 +        char Shadows[32][0x804];
691 +        uint32_t field_1670EA;
692 +        uint32_t ShadowCount;
693 +        ActiveCharacter* ActiveCharacterList[128]; //or just Character*? Anyways, we wont need to use this.
694 +        uint32_t ActiveCharacterListCount;
695 +        uint32_t ActiveCharacterListLock;
696 +        Character* LivingCharacterList[128];
697 +        uint32_t LivingCharacterListCount;
698 +        uint32_t LivingCharacterListLock;
699 +        ActiveCharacter* PresentCharacterList[128];
700 +        uint32_t PresentCharacterListCount;
701 +        uint32_t PresentCharacterListLock;
702 +        void* ObjectList;
703 +        char DoorArray[8];
704 +        char Sky[0x290];
705 +        uint32_t field_1679A4;
706 +        uint32_t Triggers;
707 +        char IsGamePaused;
708 +        char IsInputEnabled;
709 +        char field_1679AE;
710 +        char field_1679AF;
711 +        uint32_t LockedActions1;
712 +        uint32_t LockedActions2;
713 +        uint32_t field_1679B8;
714 +        uint32_t WinLose;
715 +        uint32_t ConditionSoundsCount;
716 +        uint32_t ConditionSounds[5];
717 +        uint16_t LevelNumber;
718 +        uint16_t padding_5;
719 +        uint16_t field_1679DC;
720 + } GameState;
721 +
722 +
723   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)