Path: blob/master/SonicMania/Objects/SSZ/HotaruMKII.h
338 views
#ifndef OBJ_HOTARUMKII_H1#define OBJ_HOTARUMKII_H23#include "Game.h"45typedef enum {6HOTARUMKII_MAIN,7HOTARUMKII_FLASH,8HOTARUMKII_LASER,9} HotaruMKIITypes;1011// Object Class12struct ObjectHotaruMKII {13RSDK_OBJECT14Hitbox hitboxBadnik;15Hitbox hitboxLaser;16uint16 aniFrames;17uint16 sfxAppear;18uint16 sfxLaser;19uint16 sfxFly;20uint16 sfxCharge;21};2223// Entity Class24struct EntityHotaruMKII {25RSDK_ENTITY26StateMachine(state);27Vector2 startPos;28uint8 startDir;29int32 timer;30Vector2 moveAcceleration;31uint8 unused1;32uint8 unused2;33uint8 childCount;34Vector2 curOffset;35uint8 origin;36Vector2 offset1;37Vector2 offset2;38Vector2 offset3;39int32 offsetID;40EntityPlayer *playerPtr;41int32 type;42Vector2 triggerSize;43Hitbox hitboxTrigger;44Animator mainAnimator;45Animator flashAnimator;46Animator unusedAnimator;47};4849// Object Struct50extern ObjectHotaruMKII *HotaruMKII;5152// Standard Entity Events53void HotaruMKII_Update(void);54void HotaruMKII_LateUpdate(void);55void HotaruMKII_StaticUpdate(void);56void HotaruMKII_Draw(void);57void HotaruMKII_Create(void *data);58void HotaruMKII_StageLoad(void);59#if GAME_INCLUDE_EDITOR60void HotaruMKII_EditorDraw(void);61void HotaruMKII_EditorLoad(void);62#endif63void HotaruMKII_Serialize(void);6465// Extra Entity Functions66void HotaruMKII_DebugSpawn(void);67void HotaruMKII_DebugDraw(void);6869void HotaruMKII_CheckPlayerCollisions(void);70void HotaruMKII_CheckOffScreen(void);71void HotaruMKII_HandleDistances(EntityPlayer *player);7273void HotaruMKII_State_Init(void);74void HotaruMKII_State_CheckPlayerInRange(void);75void HotaruMKII_State_FlyAway(void);76void HotaruMKII_State_FlyOnScreen(void);77void HotaruMKII_State_AttackDelay(void);78void HotaruMKII_State_Charging(void);79void HotaruMKII_State_LaserAttack(void);8081void HotaruMKII_State_Flash(void);8283void HotaruMKII_State_Laser(void);84void HotaruMKII_State_LaserStrike(void);8586#endif //! OBJ_HOTARUMKII_H878889