Path: blob/master/SonicMania/Objects/ERZ/PKingAttack.h
338 views
#ifndef OBJ_PKINGATTACK_H1#define OBJ_PKINGATTACK_H23#include "Game.h"45typedef enum {6PKINGATTACK_LASER, // Leftover from LRZ/KingAttack, not used here7PKINGATTACK_ORBIT,8PKINGATTACK_LAUNCHED,9PKINGATTACK_TRAIL,10PKINGATTACK_LARGEBULLET, // Leftover from LRZ/KingAttack, not used here11PKINGATTACK_ENERGYLINE, // Leftover from LRZ/KingAttack, not used here12PKINGATTACK_SMALLBULLET, // Leftover from LRZ/KingAttack, not used here, though (new) code for it does exist13} PKingAttackTypes;1415// Object Class16struct ObjectPKingAttack {17RSDK_OBJECT18// Not Used because he doesn't fire lasers... this object was prolly built off LRZ/KingAttack tbh19TABLE(int32 laserColors[8], { 0x000020, 0x000020, 0xE850D8, 0xE850D8, 0xE850D8, 0xE850D8, 0x000020, 0x000020 });20uint16 sfxPulse;21uint16 aniFrames;22};2324// Entity Class25struct EntityPKingAttack {26RSDK_ENTITY27StateMachine(state);28int32 type;29int32 timer;30Entity *target;31Vector2 targetPos;32Vector2 targetVelocity;33Vector2 laserVertPostions[8]; // Leftover from LRZ/KingAttack, not used here34int32 *laserColors; // Leftover from LRZ/KingAttack, not used here35Hitbox hitbox;36Animator animator;37};3839// Object Struct40extern ObjectPKingAttack *PKingAttack;4142// Standard Entity Events43void PKingAttack_Update(void);44void PKingAttack_LateUpdate(void);45void PKingAttack_StaticUpdate(void);46void PKingAttack_Draw(void);47void PKingAttack_Create(void *data);48void PKingAttack_StageLoad(void);49#if GAME_INCLUDE_EDITOR50void PKingAttack_EditorDraw(void);51void PKingAttack_EditorLoad(void);52#endif53void PKingAttack_Serialize(void);5455// Extra Entity Functions56void PKingAttack_CheckPlayerCollisions(void);5758void PKingAttack_State_OrbitAppear(void);59void PKingAttack_State_Orbiting(void);60void PKingAttack_State_OrbitLaunched(void);61void PKingAttack_State_Trail(void);62void PKingAttack_State_SmallBullet(void);6364#endif //! OBJ_PKINGATTACK_H656667