[567] | 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 |
|
---|
[573] | 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
|
---|
[567] | 46 |
|
---|
[573] | 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
|
---|
[567] | 61 |
|
---|
[573] | 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 |
|
---|
[567] | 90 | #endif
|
---|