Path: blob/master/SonicMania/Objects/SSZ/Hotaru.h
338 views
#ifndef OBJ_HOTARU_H1#define OBJ_HOTARU_H23#include "Game.h"45typedef enum {6HOTARU_GOOD,7HOTARU_BAD,8} HotaruQualities;910typedef enum {11HOTARU_ATTACK_IDLE,12HOTARU_ATTACK_CHARGING,13HOTARU_ATTACK_ATTACKING,14} HotaruAttackStates;1516// Object Class17struct ObjectHotaru {18RSDK_OBJECT19Hitbox hitboxBadnik;20Hitbox hitboxTrigger;21int32 unused1;22int32 unused2;23Hitbox hitboxElectricity;24uint16 aniFrames;25};2627// Entity Class28struct EntityHotaru {29RSDK_ENTITY30StateMachine(state);31uint8 quality;32Vector2 dist;33int32 distX1;34int32 distX2;35int32 speed;36uint8 preset;37Vector2 offset2;38Vector2 offset1;39uint8 hotaruDir;40uint8 destroyedHotarus;41Vector2 startPos;42uint8 startDir;43uint8 screenID;44int32 timer;45EntityPlayer *playerPtr;46uint8 unused1;47uint8 unused2;48uint8 attackState;49Vector2 electricityOffset;50Animator mainAnimator;51Animator bulbAnimator;52Animator electricityAnimator;53};5455// Object Struct56extern ObjectHotaru *Hotaru;5758// Standard Entity Events59void Hotaru_Update(void);60void Hotaru_LateUpdate(void);61void Hotaru_StaticUpdate(void);62void Hotaru_Draw(void);63void Hotaru_Create(void *data);64void Hotaru_StageLoad(void);65#if GAME_INCLUDE_EDITOR66void Hotaru_EditorDraw(void);67void Hotaru_EditorLoad(void);68#endif69void Hotaru_Serialize(void);7071// Extra Entity Functions72void Hotaru_DebugSpawn(void);73void Hotaru_DebugDraw(void);7475void Hotaru_CheckPlayerCollisions(void);76void Hotaru_CheckOffScreen(void);7778void Hotaru_State_Init(void);79void Hotaru_State_CheckPlayerInRange(void);80void Hotaru_State_FoundPlayer(void);81void Hotaru_State_FlyOnScreen(void);82void Hotaru_State_AttachedToScreen(void);83void Hotaru_State_Charging(void);84void Hotaru_State_Attacking(void);85void Hotaru_State_FinishedAttacking(void);8687#endif //! OBJ_HOTARU_H888990