1 |
#pragma once |
2 |
#ifndef ONI_CHARACTER_H |
3 |
#define ONI_CHARACTER_H |
4 |
|
5 |
#include "Oni.h" |
6 |
//#include <stdint.h> |
7 |
#include "bool.h" |
8 |
|
9 |
enum { |
10 |
team_konoko, |
11 |
team_tctf, |
12 |
team_syndicate, |
13 |
team_neutral, |
14 |
team_securityguard, |
15 |
team_rougekonoko, |
16 |
team_switzerland, |
17 |
team_syndicateaccessory, |
18 |
}; |
19 |
/* |
20 |
int16_t ONICALL ONrGameState_NewCharacter(CharacterObject* CHAR, void* AISA, void* flag, uint32_t* list_location); |
21 |
int32_t* ONICALL ONrGetActiveCharacter(void* CharacterPtr); |
22 |
//int16_t ONICALL ONrGameState_GetPlayerCharacter(); |
23 |
*/ |
24 |
//probably need to name these better. |
25 |
/* |
26 |
#define char_unkillable (1 << 5) |
27 |
#define char_superammo (1 << 6) |
28 |
#define char_unstoppable (1 << 8) |
29 |
#define char_deathlock (1 << 10) |
30 |
#define char_dontaim (1 << 13) |
31 |
#define char_nocollision (1 << 17) |
32 |
#define char_noshadow (1 << 24) |
33 |
#define char_invincible (1 << 25) |
34 |
#define char_bossshield (1 << 30) |
35 |
#define char_weaponimmune (1 << 31) |
36 |
*/ |
37 |
|
38 |
//We need a Oni_Structs #include file. |
39 |
|
40 |
typedef enum { |
41 |
ONcCharacterFlag_Dead_1_Animating = 0x00000001, // health is 0 |
42 |
ONcCharacterFlag_Dead = ONcCharacterFlag_Dead_1_Animating, |
43 |
ONcCharacterFlag_Dead_2_Moving = 0x00000002, // no longer animating |
44 |
ONcCharacterFlag_Dead_3_Cosmetic = 0x00000004, // no longer moving |
45 |
ONcCharacterFlag_Dead_4_Gone = 0x00000008, // dead except but still drawn |
46 |
|
47 |
ONcCharacterFlag_HastyAnim = 0x00000010, // do this queued animation ASAP |
48 |
ONcCharacterFlag_Unkillable = 0x00000020, // the character cannot be killed, only defeated |
49 |
ONcCharacterFlag_InfiniteAmmo = 0x00000040, // the character always has infinite ammo |
50 |
ONcCharacterFlag_PleaseBlock = 0x00000080, // set if the character should block, cleared once block begins |
51 |
|
52 |
ONcCharacterFlag_Unstoppable = 0x00000100, // this character cannot be knocked down, staggered, stunned, etc |
53 |
ONcCharacterFlag_ScriptControl = 0x00000200, // set if the character is completely under script control |
54 |
ONcCharacterFlag_DeathLock = 0x00000400, // this character should never die all the way |
55 |
ONcCharacterFlag_WasUpdated = 0x00000800, // this character's animation was changed |
56 |
|
57 |
ONcCharacterFlag_BeingThrown = 0x00001000, // this character is being thrown |
58 |
ONcCharacterFlag_DontUseGunVarient = 0x00002000, // this character should not use a weapon varient |
59 |
ONcCharacterFlag_Draw = 0x00004000, // DoFrame has been executed for this character |
60 |
ONcCharacterFlag_InUse = 0x00008000, // this character is active and in use |
61 |
|
62 |
ONcCharacterFlag_DontUseFightVarient = 0x00010000, |
63 |
ONcCharacterFlag_NoCollision = 0x00020000, // no collision for this character |
64 |
ONcCharacterFlag_Teleporting = 0x00040000, // this character is teleporting and does not accept collision |
65 |
ONcCharacterFlag_NoCorpse = 0x00080000, // no corpse for this character |
66 |
|
67 |
ONcCharacterFlag_ActiveLock = 0x00100000, // the character is locked active |
68 |
ONcCharacterFlag_ChrAnimate = 0x00200000, // the character is currently runing a chr_animate command |
69 |
ONcCharacterFlag_AIMovement = 0x00400000, // the character is using AI movement |
70 |
ONcCharacterFlag_NeutralUninterruptable = 0x00800000, // running an uninterruptable neutral interaction |
71 |
|
72 |
ONcCharacterFlag_NoShadow = 0x01000000, // |
73 |
ONcCharacterFlag_Invincible = 0x02000000, // character is invincible |
74 |
ONcCharacterFlag_NoAutoDrop = 0x04000000, // character should not automatically drop items when killed (invisibility, shield, LSI) |
75 |
ONcCharacterFlag_RestrictedMovement = 0x08000000, // character cannot move fast (used for player holding barabbas' gun) |
76 |
|
77 |
ONcCharacterFlag_Boss = 0x10000000, // character is a boss (used for final muro group fight) |
78 |
ONcCharacterFlag_FinalFlash = 0x20000000, // 'final flash' has been played for this character's death |
79 |
ONcCharacterFlag_BossShield = 0x40000000, // this character has the boss shield |
80 |
ONcCharacterFlag_WeaponImmune = 0x80000000 // this character is immune to weapon damage |
81 |
|
82 |
} ONtCharacterFlags; |
83 |
|
84 |
typedef enum { |
85 |
ONcCharacterFlag2_WeaponEmpty = 0x00000001, // character's weapon is empty, punch instead |
86 |
ONcCharacterFlag2_UltraMode = 0x00000002 |
87 |
|
88 |
} ONtCharacterFlags2; |
89 |
|
90 |
#endif |