source: Daodan/src/Oni_Character.h@ 430

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

getting closer...

File size: 3.6 KB
RevLine 
[427]1#pragma once
[428]2#ifndef ONI_CHARACTER_H
3#define ONI_CHARACTER_H
[427]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 {
[428]25 uint32_t Options; //A bitset. Someone had better define these
[427]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;
[428]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.