source: Daodan/src/Oni_Character.h@ 434

Last change on this file since 434 was 434, checked in by gumby, 15 years ago

Added flags

File size: 4.4 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 {
[432]15 int Type; //'CHAR' etc.
[427]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 int32_t TeamID; //Team ID
51 int32_t AmmoPercent; //Percent of weapon ammo full
52 int32_t JobID; //Job ID...
53 //0 - none
54 //1 - idle
55 //2 - guard (never used in Oni)
56 //3 - patrol
57 //4 - teambattle (never used in Oni)
58 int16_t PatrolID; //patrol path ID (reference to the Patrol_Path.BINA file)
59 int16_t CombatID; //combat ID (reference to the Combat.BINA file)
60 int16_t MeleeID; //melee ID (reference to the Melee Profile.BINA file)
61 int16_t NeutralID; //neutral ID (reference to the Neutral.BINA file)
62 int32_t AlarmGroups; //Bitset. http://wiki.oni2.net/CHAR
63 int32_t InitialAlertLevel; //0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
64 int32_t MinimalAlertLevel; //0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
65 int32_t StartJobAlertLevel; //0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
66 int32_t InvestigatingAlertLevel;//0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
67 int32_t PursuitStrongLow;
68 int32_t PursuitWeakLow;
69 int32_t PursuitStrongHigh;
70 int32_t PursuitWeakHigh;
71 int32_t Pursuit5;
72 int32_t field_1FC;
73} CharacterOSD;
74
75typedef struct {
76 OSD_Header Header;
77 CharacterOSD OSD;
78} CharacterObject;
[428]79
80enum {
81 team_konoko,
82 team_tctf,
83 team_syndicate,
84 team_neutral,
85 team_securityguard,
86 team_rougekonoko,
87 team_switzerland,
88 team_syndicateaccessory,
89};
90
[434]91
92int chr_isplayer = 0x00000001; //is player character
93int chr_randomskin = 0x00000002; //gets random skin from ONCV
94int chr_notprespawned = 0x00000004; //isn't spawned at level creation
95int chr_noncombatant = 0x00000008; //doesn't fight
96int chr_multispawnable = 0x00000010; //can spawn up to 5 without forcing
97int chr_unknown = 0x00000020; //
98int chr_unkillable = 0x00000040; //can only be brought to 1 hp
99int chr_superammo = 0x00000080; //infinite ammo
100int chr_omniscient = 0x00000100; //touchofdeath
101int chr_haslsi = 0x00000200; //drops an lsi
102int chr_boss = 0x00000400; //is a boss character
103int chr_upgradedifficulty = 0x00000800; //upgrade the difficulty if you play on med\hard
104int chr_noautodrop = 0x00001000; //uses drop fields instead of has fields on death
105
[432]106int16_t ONICALL ONrGameState_NewCharacter(CharacterObject* CHAR, void* AISA, void* flag, int* list_location);
[428]107
108#endif
Note: See TracBrowser for help on using the repository browser.