source: Daodan/src/Oni_Character.h @ 428

Last change on this file since 428 was 428, checked in by rossy, 13 years ago

getting closer...

File size: 3.6 KB
Line 
1#pragma once
2#ifndef ONI_CHARACTER_H
3#define ONI_CHARACTER_H
4
5#include "Daodan.h"
6#include <stdint.h>
7
8typedef struct {
9        float X;
10        float Y;
11        float Z;       
12} Vector3; //probably move to utilities...
13
14typedef struct {
15        char Type[4];                   //"CHAR" etc.
16        int ObjectId;                   //not needed
17        int Flags;                              //The flags of the object...not used for CHAR
18        Vector3 Position;               //Position of Object
19        Vector3 Rotation;               //Rotation of Object
20        int EditorCallbacks;    //Lets try not to mess with it for now. :P
21        int field_28;                   //unknown
22} OSD_Header;
23
24typedef struct {
25        uint32_t Options;                               //A bitset. Someone had better define these
26        char Class[64];                                 //Name of the ONCC we use. ONCCName in idb
27        char Name[32];                                  //Name of the character. ie: ai2_spawn Muro
28        char Weapon[64];                                //Name of the weapon he holds. ONWCName in idb
29        char ScriptSpawn[32];                   //Script function called when char spawns
30        char ScriptDie[32];                             //Script function called when char dies
31        char ScriptAware[32];                   //Script function called when char detects something
32        char ScriptAlarm[32];                   //Script function called when char is alarmed at something
33        char ScriptHurt[32];                    //Script function called when char is hurt for the first time
34        char ScriptDefeat[32];                  //Script function called when char is at 1 HP
35        char ScriptNoPath[32];                  //Script function called when char loses path. Broken.
36        char ScriptNoAmmo[32];                  //Script function called when char is out of ammo for the first time. Char must have ammo at spawn.
37        int32_t AdditionalHealth;               //Additional Health given to the character
38        int16_t AmmoUsed;                               //Ammo given for the char to use
39        int16_t AmmoDropped;                    //Ammo the char drops
40        int16_t CellsUsed;                              //Cells given for the char to use
41        int16_t CellsDropped;                   //Cells the char drops
42        int16_t HypoUsed;                               //Hypo given for the char to use
43        int16_t HypoDropped;                    //Hypo the char drops
44        int16_t ShieldUsed;                             //Bullet shield given for the char to use
45        int16_t ShieldDropped;                  //Bullet shield the char drops
46        int16_t CloakUsed;                              //Phase Cloak given for the char to use
47        int16_t CloakDropped;                   //Phase Cloak the char drops
48        int16_t NCIUsed;                                //Don't use this...
49        int16_t NCIDropped;                             //Don't use this...
50       
51        int32_t TeamID;                                 //Team ID
52        int32_t AmmoPercent;                    //Percent of weapon ammo full
53        int32_t JobID;                                  //Job ID...
54                                                                        //0 - none
55                                                                        //1 - idle
56                                                                        //2 - guard (never used in Oni)
57                                                                        //3 - patrol
58                                                                        //4 - teambattle (never used in Oni)
59        int16_t PatrolID;                               //patrol path ID (reference to the Patrol_Path.BINA file)
60        int16_t CombatID;                               //combat ID (reference to the Combat.BINA file)
61        int16_t MeleeID;                                //melee ID (reference to the Melee Profile.BINA file)
62        int16_t NeutralID;                              //neutral ID (reference to the Neutral.BINA file)
63        int32_t AlarmGroups;                    //Bitset. http://wiki.oni2.net/CHAR
64        int32_t InitialAlertLevel;              //0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
65        int32_t MinimalAlertLevel;              //0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
66        int32_t StartJobAlertLevel;             //0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
67        int32_t InvestigatingAlertLevel;//0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
68        int32_t PursuitStrongLow;
69        int32_t PursuitWeakLow;
70        int32_t PursuitStrongHigh;
71        int32_t PursuitWeakHigh;
72        int32_t Pursuit5;
73        int32_t field_1FC;
74} CharacterOSD;
75
76typedef struct {
77        OSD_Header Header;
78        CharacterOSD OSD;
79} CharacterObject;
80
81enum {
82        team_konoko,
83        team_tctf,
84        team_syndicate,
85        team_neutral,
86        team_securityguard,
87        team_rougekonoko,
88        team_switzerland,
89        team_syndicateaccessory,
90};
91
92int ONICALL ONrGameState_NewCharacter(CharacterObject* character, void* something);
93
94#endif
Note: See TracBrowser for help on using the repository browser.