Changeset 435 for Daodan


Ignore:
Timestamp:
Jul 17, 2009, 3:50:03 AM (15 years ago)
Author:
gumby
Message:

Added ActiveCharacter struct and associated structs...

Location:
Daodan/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • Daodan/src/Daodan_WindowHack.c

    r430 r435  
    1717        {
    1818                case WM_KEYDOWN:
    19                         if (wParam == VK_F5)
     19                        if (wParam == VK_F5) {
     20                                MessageBox(0, "test", "", 0);
    2021                                CHARTest();
     22                        }
    2123                case WM_ACTIVATE:
    2224                case WM_CHAR:
     
    4042                        break;
    4143                case WM_CLOSE:
    42                         DestroyWindow(hwnd);
     44                        CHARTest();
    4345                        break;
    4446                case WM_DESTROY:
  • Daodan/src/Oni_Character.h

    r434 r435  
    1111        float Z;       
    1212} 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        Sphere Sphere_; //fix this name
     33        int Child1;
     34        int Child2;     
     35} SphereTreeNode;
     36
     37typedef struct {
     38        Vector3 Min;
     39        Vector3 Max;
     40} BoundingBox;
     41
     42
     43enum { //action flags
     44        Action_Escape                    = 1,
     45        Action_Console                   = 2,
     46        Action_PauseScreen               = 4,
     47        Action_Cutscene_1                = 8,
     48        Action_Cutscene_2                = 0x10,
     49        Action_F4                        = 0x20,
     50        Action_F5                        = 0x40,
     51        Action_F6                        = 0x80,
     52        Action_F7                        = 0x100,
     53        Action_F8                        = 0x200,
     54        Action_StartRecord               = 0x400,
     55        Action_StopRecord                = 0x800,
     56        Action_PlayRecord                = 0x1000,
     57        Action_F12                       = 0x2000,
     58        Action_Unknown1                  = 0x4000,
     59        Action_LookMode                  = 0x8000,
     60        Action_Screenshot                = 0x10000,
     61        Action_Unknown2                  = 0x20000,
     62        Action_Unknown3                  = 0x40000,
     63        Action_Unknown4                  = 0x80000,
     64        Action_Unknown5                  = 0x100000,
     65        Action_Forward                   = 0x200000,
     66        Action_Backward                  = 0x400000,
     67        Action_TurnLeft                  = 0x800000,
     68        Action_TurnRight                 = 0x1000000,
     69        Action_StepLeft                  = 0x2000000,
     70        Action_StepRight                 = 0x4000000,
     71        Action_Jump                      = 0x8000000,
     72        Action_Crouch                    = 0x10000000,
     73        Action_Punch                     = 0x20000000,
     74        Action_Kick                      = 0x40000000,
     75        Action_Block                     = 0x80000000,
     76        //used in second action field
     77        Action2_Walk                     = 1,
     78        Action2_Action                   = 2,
     79        Action2_Hypo                     = 4,
     80        Action2_Reload                   = 8,
     81        Action2_Swap                     = 0x10,
     82        Action2_Drop                     = 0x20,
     83        Action2_Fire1                    = 0x40,
     84        Action2_Fire2                    = 0x80,
     85        Action2_Fire3                    = 0x100
     86};
     87
     88
     89typedef struct {
     90        int32_t Actions1;
     91        int32_t Actions2;
     92} InputAction;
     93
     94
     95typedef struct {
     96        float MouseDeltaX;
     97        float MouseDeltaY;
     98        float field_8;
     99        float field_C;
     100        InputAction Current;
     101        InputAction Stopped;
     102        InputAction Start;
     103        InputAction Stop;
     104} GameInput;
    13105
    14106typedef struct {
     
    21113        int field_28;                   //unknown
    22114} OSD_Header;
     115
     116typedef struct {
     117        int32_t Flags;
     118        int32_t Frame;
     119        int32_t field_8;
     120        int32_t field_C;
     121        int32_t field_10;
     122        int32_t field_14;
     123        int32_t field_18;
     124        int32_t field_1C;
     125        int32_t FILMInstance;
     126} PlayingFilm;
    23127
    24128typedef struct {
     
    78182} CharacterObject;
    79183
     184typedef struct {
     185        Vector3 Center;
     186        float Radius;
     187} BoundingSphere;
     188
     189typedef struct {
     190        int32_t ONCP; //probably pointer
     191        int32_t field_4;        //who knows?
     192        int32_t Instance; //probably link to actual particle
     193        int32_t Bone; //duh
     194} AttachedParticle;
     195typedef struct { //Inventory
     196        int32_t Weapons[3];
     197        int16_t field_1A0; //10 bucks says this is the current weapon
     198        int16_t AmmoUsed;                               //Ammo given for the char to use
     199        int16_t HypoUsed;                               //Hypo given for the char to use
     200        int16_t CellsUsed;                              //Cells given for the char to use
     201        int16_t AmmoDropped;                    //Ammo the char drops
     202        int16_t HypoDropped;                    //Hypo the char drops
     203        int16_t CellsDropped;                   //Cells the char drops
     204        int16_t field_1A;       //who knows? InverseHypoRegenRate?
     205        int16_t field_1C;       
     206        int16_t field_1E;
     207        int16_t hasLSI;
     208        int16_t field_1B6;
     209        int16_t ShieldUsed;                             //Bullet shield given for the char to use
     210        int16_t CloakUsed;                              //Phase Cloak given for the char to use
     211        int16_t field_28;                       //probably bullet shield dropped
     212        int16_t DoorKeys;               //Lol. We can use this later for other sorts of items.
     213} Inventory;
     214
     215typedef strcut { //ActiveCharacter
     216        int16_t Number;
     217        int16_t field_2; //probably Number is an int32
     218        int32_t PhyContext;
     219        SphereTree SphereTree1;         //probably SphereTree[7]...
     220        SphereTree SphereTree3[4];
     221        SphereTree SphereTree2[2];
     222        int16_t field_B0;
     223        int16_t field_B2;
     224        int16_t field_B4;
     225        int16_t field_B6;
     226        Vector3 field_B8;
     227        Vector3 AccelerateWith;
     228        int16_t field_D0;
     229        Vector3 field_D4;
     230        int32_t field_E0;
     231        int32_t field_E4;
     232        int32_t field_E8;
     233        int32_t field_EC;
     234        int32_t field_F0;
     235        int32_t field_F4;
     236        int32_t field_E0;
     237        int16_t IsInAir;
     238        Vector3 FallingVelocity;
     239        Vector3 JumpVelocity;
     240        int16_t field_110;
     241        int16_t field_112;
     242        int32_t field_114;
     243        int32_t field_118;
     244        int32_t field_11C;
     245        int32_t field_120;
     246        int32_t field_124;
     247        int32_t field_128;
     248        int32_t field_12C;
     249        BoundingSphere BoundingSphere_; //fix this name
     250        Vector3 field_140;
     251        Vector3 field_14C;
     252        int32_t field_158;
     253        int32_t field_15C;
     254        Vector3 Location;
     255        int32_t field_16C[6]; //16C-184 ???
     256        int32_t AkiraNode;
     257        int32_t GraphNode;
     258        int32_t PelvisHeight;
     259        int32_t MovementStatePtr;
     260        int32_t ActiveWeapon;           //NOTE: FIGURE OUT THIS MESS OF INVENTORY...
     261        int32_t field_198;              //maybe weap 3, maybe not...
     262        int32_t InventoryWeapon;
     263        int16_t field_1A0;      //unused?
     264        int16_t AmmoUsable;                             //Ammo given for the char to use
     265        int16_t HypoUsable;                             //Hypo given for the char to use
     266        int16_t CellsUsable;                            //Cells given for the char to use
     267        int16_t AmmoDropped;                    //Ammo the char drops
     268        int16_t HypoDropped;                    //Hypo the char drops
     269        int16_t CellsDropped;                   //Cells the char drops
     270        int16_t field_1AE;     
     271        int16_t InverseHypoRegenRate;
     272        int16_t ShieldDropped;
     273        int16_t CloakDropped;
     274        int16_t field_1B4;
     275        int16_t field_1B6;
     276        int16_t ShieldUsable;
     277        int16_t CloakUsable;
     278        int16_t field_1BC[9]; //1BC-1E0
     279        int32_t NotIdleStartTime;
     280        int32_t TimeToIdle;
     281        int32_t field_1E8[1315]; //1E8-1648 what the hell is all this?
     282        BoundingBox BoundingBox_; //fix this name
     283        int32_t field_1660;
     284        int32_t field_1664;
     285        int32_t ShieldPower; //Same as Boss Shield Power???
     286        int32_t field_166C;
     287        int32_t NumberOfKills; //^_^
     288        int32_t InflictedDamage; //^_^
     289        int32_t field_1678[260];        //1678-1A88 more wtf
     290        int32_t field_1A88; //here starts animation junk? It was 4 bools in idb O_o
     291        int32_t Executor_AimingDirection; //possibly throw junk?
     292        int32_t field_1A98;
     293        int32_t field_1A9C;
     294        int32_t Executor_ActualMovementMode;
     295        int32_t field_1AA4;
     296        int32_t field_1AA8;
     297        int32_t field_1AAC;
     298        int32_t Executor_HasFacingOverride; //a bool...
     299        float   Executor_AimingSpeed;
     300        bool    field_1AB8; //actually a bitset...
     301        bool    Executor_HasMoveOverride;
     302        int16_t field_1ABA;
     303        int32_t field_1ABC;
     304        int32_t field_1AC0;
     305        int32_t field_1AC4;
     306        int32_t Executor_FacingOverride;
     307        int32_t Executor_HasAttackOverride; //another bool :P
     308        int32_t field_1AC4;
     309        int32_t field_1AD0;
     310        int32_t field_1AD4;
     311        int32_t field_1AD8;
     312        int32_t field_1ADC;
     313        int32_t field_1AE0;
     314        int32_t field_1AE4;
     315        int32_t Executor_HasThrowOverride; //another another bool
     316        int32_t field_1AEC;
     317        int32_t field_1AF0;
     318        int32_t field_1AF4;
     319        int32_t Animation;
     320        int16_t AnimationToState;
     321        int16_t AnimationFromState;
     322        int16_t AnimationType;
     323        int16_t NextAnimationType;
     324        int16_t field_1B04;
     325        int16_t field_1B06;
     326        int32_t Stitch; //bool
     327        float StitchHeight;
     328        int16_t InterpolationFromState;
     329        int16_t field_1B12;
     330        Vector3 StitchVelocity;
     331        int16_t InterpolationCurrentFrame;
     332        int16_t InterpolationLength;
     333        Quaternion InterpolationStartRotations[19];
     334        int32_t field_1C54;
     335        int32_t field_1C58;
     336        int32_t field_1C5C;
     337        int32_t field_1C60;
     338        int32_t Overlay;
     339        int32_t field_1C60;
     340        int32_t field_1C64;
     341        int32_t field_1C68;
     342        int32_t field_1C6C;
     343        int32_t field_1C70;
     344        int32_t field_1C74;
     345        int32_t field_1C78;
     346        int32_t field_1C7C;
     347        int32_t field_1C80;
     348        int32_t field_1C84;
     349        int16_t Frame;
     350        int16_t SoftPause;
     351        int16_t HardPause;
     352        int16_t field1C8E;
     353        int32_t field1C90;
     354        int16_t field1C94;
     355        int16_t field1C96;
     356        int16_t Dizzy;
     357        int16_t field1C9A;
     358        int32_t field1C9C;
     359        int16_t AnimationVarient;
     360        int16_t TimeToPeace;
     361        int16_t NumAnimationAttachedParticles;
     362        int16_t field_1CA6; //spacing
     363        AttachedParticle AnimationAttachedParticles[16];
     364        int32_t TRAMParticles;
     365        bool FixedParticlesAttached;
     366        bool FixedParticlesStarted;
     367        int16_t NumFixedParticles;
     368        AttachedParticle FixedParticles[16];
     369        int16_t CurrentAnimationType;
     370        int16_t field_1EB2; //spacing
     371        int32_t field_1EB4;
     372        int32_t field_1EB8;
     373        int32_t field_1EBC;
     374        int32_t field_1EC0;
     375        int32_t field_1EC4;
     376        int32_t field_1EC8;
     377        int32_t field_1ED0;
     378        int32_t field_1ED4;
     379        int32_t field_1ED8;
     380        int32_t field_1EE0;
     381        int32_t field_1EE4;
     382        int32_t field_1EE8;
     383        Quaternion Rotations[19];
     384        Quaternion OverlayRotations[19];
     385        int32_t field_2150;
     386        int32_t field_2154;
     387        GameInput Input;
     388        InputAction PreviousActions;
     389        int32_t SprintTimer;
     390        int32_t field_2194;
     391        Vector3 field_2198;
     392        int32_t field_21A4;
     393        int32_t field_21A8;
     394        int32_t field_21AC;
     395        Vector3 field_21B0;
     396        float HeadFacing;
     397        float HeadPitch;
     398        int32_t field_21C4;
     399        int32_t field_21C8;
     400        int32_t field_21D0;
     401        int32_t field_21D4;
     402        bool field_21D8;
     403        bool field_21D9;
     404        bool field_21DA;
     405        bool field_21DB;
     406        bool field_21DC;
     407        bool field_21DD;
     408        bool field_21DE;
     409        bool field_21DF;
     410        bool field_21E0;
     411        bool HasAlternateTrigger;
     412        bool field_21E2;
     413        bool ReleaseTrigger;
     414        bool ReleaseAlternateTrigger;
     415        bool TurningLeft;
     416        bool TurningRight;
     417        bool field_21E7;
     418        int32_t field_21E8;
     419        int32_t field_21EC;
     420        int32_t field_21F0;
     421        PlayingFilm PlayingFilm_; //fix this name
     422        int32_t field_2218[24]; //2218-2278
     423        Matrix4x3 BoneMatrices[19];
     424        Matrix4x3 WeaponMatrix;
     425        int32_t field_2638[113]; //2638-27FC
     426        int16_t ShadowIndex;
     427        int16_t field_27FE;
     428        int16_t field_2780;
     429        bool ShieldParts[19];
     430        bool field_2815; //padding...
     431        bool field_2816;
     432        bool field_2817;
     433        int32_t field_2818[8];
     434} ActiveCharacter;
     435
     436
     437typedef struct { //Character
     438        int16_t Number;
     439        int16_t ActiveCharacterIndex;
     440        int32_t Flags;
     441        int16_t field_8;
     442        int32_t ONCC;                   //change type to ONCC when we get that far...
     443        int32_t field_10;
     444        int16_t Team;
     445        char Name[32];
     446        float BodySize;
     447        int32_t Health;
     448        int32_t MaxHealth;
     449        int32_t ASIA_ID; //might be 16 with 2 byte padding
     450        int32_t field_44;
     451        char ScriptSpawn[32];                   //Script function called when char spawns
     452        char ScriptDie[32];                             //Script function called when char dies
     453        char ScriptAware[32];                   //Script function called when char detects something
     454        char ScriptAlarm[32];                   //Script function called when char is alarmed at something
     455        char ScriptHurt[32];                    //Script function called when char is hurt for the first time
     456        char ScriptDefeat[32];                  //Script function called when char is at 1 HP
     457        char ScriptNoAmmo[32];                  //Script function called when char is out of ammo for the first time. Char must have ammo at spawn.
     458        char ScriptNoPath[32];                  //Script function called when char loses path. Broken.
     459        Vector3 Position;
     460        Vector3 LastPosition;
     461        Vector3 Location;
     462        float Facing;
     463        float DesiredFacing;
     464        float CosmeticFacing;
     465        float field_178;
     466        float field_17C;
     467        float field_180;
     468        int32_t BNV;
     469        int32_t GraphNode;
     470        int32_t PelvisHeight;
     471        int32_t GraphNode;
     472        float PelvisHeight;
     473        float field_190;
     474        Inventory Inventory_; //is there a better way to do this?
     475        Vector3 Velocity;
     476        int32_t field_1D0;
     477        int32_t field_1D4;
     478        int32_t field_1D8;
     479        int32_t field_1DC;
     480        int32_t field_1E0;
     481        int32_t IdleDelay;
     482        int32_t field_1E8;
     483        int32_t field_1DC;
     484        int32_t CombatFlags;
     485        int32_t JobId;
     486        int32_t Goal;
     487        int32_t field_1FC;
     488        int32_t field_200;
     489        int32_t field_204;
     490        int32_t field_208[107]; //its all undocumented through here
     491        int32_t CombatState;    //I think....
     492        int32_t field_8BB;
     493        int32_t PatrolPathOSD[10];      //actually another struct. Not needed atm.
     494        int32_t PatrolPathPoints[5][64] //64 of another struct
     495        int32_t field_DE8[98];  //DE8-F70
     496        int32_t CombatStatePtr;
     497        int32_t KnowledgeState[4]; //Another struct
     498        int32_t field_F84;
     499        int32_t AlertDecayTimer;
     500        int32_t field_F8C;
     501        int32_t field_F90;
     502        int32_t InitialAlertLevel;              //0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
     503        int32_t MinimalAlertLevel;              //0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
     504        int32_t StartJobAlertLevel;             //0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
     505        int32_t InvestigatingAlertLevel;//0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
     506        int32_t StartleTime;
     507        int32_t field_FA8;
     508        int32_t field_FAC;
     509        int32_t field_FB0;
     510        int32_t PursuitStrongLow;
     511        int32_t PursuitWeakLow;
     512        int32_t PursuitStrongHigh;
     513        int32_t PursuitWeakHigh;
     514        int32_t Pursuit5;
     515        int32_t field_FC8[16];
     516        int32_t AlarmGroups; //a bitset
     517        int32_t field_FDC[16]; //FDC-F68
     518        int32_t field_F68;
     519        int32_t DazeTimer;
     520        int32_t field_1024[16]; //1024-1064
     521        int32_t MeleePtr; //probably MELE. Looks somewhat important.
     522        int32_t field_106C[270]; //106C-14A4 skipping lots of junk and a little pathfinding stuff that we might want later.
     523        int32_t MovementModifiers; //hopefully sprinting, pistol, rifle, etc.
     524        int32_t field_14B4[101]; //14B4-1648 Glossing over a few other things we don't need having to do with AI direction.
     525        int32_t BossShieldPower;        //a multiplier? or just a flag? who knows
     526        int32_t field_1668[6];
     527        int32_t CurrentConsoleActionMarker; //not sure.
     528        int32_t field_1684[7]; // done. hopefully i didnt screw this up somewhere.
     529} Character;
     530
    80531enum {
    81532        team_konoko,
     
    105556
    106557int16_t ONICALL ONrGameState_NewCharacter(CharacterObject* CHAR, void* AISA, void* flag, int* list_location);
     558//int16_t ONICALL ONrGameState_GetPlayerCharacter();
     559
    107560
    108561#endif
  • Daodan/src/Oni_Symbols.S

    r431 r435  
    5050// Character
    5151symbol ( @ONrGameState_NewCharacter@16       , 0x000daC50 )
     52symbol ( ONrGameState_GetPlayerCharacter@0       , 0x000B63A7 )
Note: See TracChangeset for help on using the changeset viewer.