#pragma once #ifndef ONI_CHARACTER_H #define ONI_CHARACTER_H //#include #include "bool.h" enum { team_konoko, team_tctf, team_syndicate, team_neutral, team_securityguard, team_rougekonoko, team_switzerland, team_syndicateaccessory, }; /* int16_t ONICALL ONrGameState_NewCharacter(CharacterObject* CHAR, void* AISA, void* flag, uint32_t* list_location); int32_t* ONICALL ONrGetActiveCharacter(void* CharacterPtr); //int16_t ONICALL ONrGameState_GetPlayerCharacter(); */ //probably need to name these better. /* #define char_unkillable (1 << 5) #define char_superammo (1 << 6) #define char_unstoppable (1 << 8) #define char_deathlock (1 << 10) #define char_dontaim (1 << 13) #define char_nocollision (1 << 17) #define char_noshadow (1 << 24) #define char_invincible (1 << 25) #define char_bossshield (1 << 30) #define char_weaponimmune (1 << 31) */ //We need a Oni_Structs #include file. typedef enum { ONcCharacterFlag_Dead_1_Animating = 0x00000001, // health is 0 ONcCharacterFlag_Dead = ONcCharacterFlag_Dead_1_Animating, ONcCharacterFlag_Dead_2_Moving = 0x00000002, // no longer animating ONcCharacterFlag_Dead_3_Cosmetic = 0x00000004, // no longer moving ONcCharacterFlag_Dead_4_Gone = 0x00000008, // dead except but still drawn ONcCharacterFlag_HastyAnim = 0x00000010, // do this queued animation ASAP ONcCharacterFlag_Unkillable = 0x00000020, // the character cannot be killed, only defeated ONcCharacterFlag_InfiniteAmmo = 0x00000040, // the character always has infinite ammo ONcCharacterFlag_PleaseBlock = 0x00000080, // set if the character should block, cleared once block begins ONcCharacterFlag_Unstoppable = 0x00000100, // this character cannot be knocked down, staggered, stunned, etc ONcCharacterFlag_ScriptControl = 0x00000200, // set if the character is completely under script control ONcCharacterFlag_DeathLock = 0x00000400, // this character should never die all the way ONcCharacterFlag_WasUpdated = 0x00000800, // this character's animation was changed ONcCharacterFlag_BeingThrown = 0x00001000, // this character is being thrown ONcCharacterFlag_DontUseGunVarient = 0x00002000, // this character should not use a weapon varient ONcCharacterFlag_Draw = 0x00004000, // DoFrame has been executed for this character ONcCharacterFlag_InUse = 0x00008000, // this character is active and in use ONcCharacterFlag_DontUseFightVarient = 0x00010000, ONcCharacterFlag_NoCollision = 0x00020000, // no collision for this character ONcCharacterFlag_Teleporting = 0x00040000, // this character is teleporting and does not accept collision ONcCharacterFlag_NoCorpse = 0x00080000, // no corpse for this character ONcCharacterFlag_ActiveLock = 0x00100000, // the character is locked active ONcCharacterFlag_ChrAnimate = 0x00200000, // the character is currently runing a chr_animate command ONcCharacterFlag_AIMovement = 0x00400000, // the character is using AI movement ONcCharacterFlag_NeutralUninterruptable = 0x00800000, // running an uninterruptable neutral interaction ONcCharacterFlag_NoShadow = 0x01000000, // ONcCharacterFlag_Invincible = 0x02000000, // character is invincible ONcCharacterFlag_NoAutoDrop = 0x04000000, // character should not automatically drop items when killed (invisibility, shield, LSI) ONcCharacterFlag_RestrictedMovement = 0x08000000, // character cannot move fast (used for player holding barabbas' gun) ONcCharacterFlag_Boss = 0x10000000, // character is a boss (used for final muro group fight) ONcCharacterFlag_FinalFlash = 0x20000000, // 'final flash' has been played for this character's death ONcCharacterFlag_BossShield = 0x40000000, // this character has the boss shield ONcCharacterFlag_WeaponImmune = 0x80000000 // this character is immune to weapon damage } ONtCharacterFlags; typedef enum { ONcCharacterFlag2_WeaponEmpty = 0x00000001, // character's weapon is empty, punch instead ONcCharacterFlag2_UltraMode = 0x00000002 } ONtCharacterFlags2; #endif