Path: blob/master/SonicMania/Objects/AIZ/MonkeyDude.h
338 views
#ifndef OBJ_MONKEYDUDE_H1#define OBJ_MONKEYDUDE_H23#include "Game.h"45#define MonkeyDude_ArmJointCount (4)67// Object Class8struct ObjectMonkeyDude {9RSDK_OBJECT10Hitbox hitboxBadnik;11Hitbox hitboxCoconut;12Animator armAnimator;13Animator tailAnimator;14Animator coconutAnimator;15uint16 aniFrames;16#if MANIA_USE_PLUS17uint16 sfxDrop;18#endif19};2021// Entity Class22struct EntityMonkeyDude {23RSDK_ENTITY24StateMachine(state);25int32 timer;26int32 activeArmNodes;27int32 currentAngle;28StateMachine(armStates[MonkeyDude_ArmJointCount]);29int32 armAngles[MonkeyDude_ArmJointCount];30int32 armMoveDir[MonkeyDude_ArmJointCount];31int32 armTimers[MonkeyDude_ArmJointCount];32uint8 armNodeID;33Vector2 startPos;34uint8 startDir;35int32 armY;36int32 moveCount;37int32 nummoves;38int32 throwCount;39int32 angleVel;40Animator bodyAnimator;41Animator handAnimator;42int32 coconutFrame;43};4445// Object Struct46extern ObjectMonkeyDude *MonkeyDude;4748// Standard Entity Events49void MonkeyDude_Update(void);50void MonkeyDude_LateUpdate(void);51void MonkeyDude_StaticUpdate(void);52void MonkeyDude_Draw(void);53void MonkeyDude_Create(void *data);54void MonkeyDude_StageLoad(void);55#if GAME_INCLUDE_EDITOR56void MonkeyDude_EditorDraw(void);57void MonkeyDude_EditorLoad(void);58#endif59void MonkeyDude_Serialize(void);6061// Extra Entity Functions62void MonkeyDude_DebugDraw(void);63void MonkeyDude_DebugSpawn(void);6465void MonkeyDude_State_Init(void);66void MonkeyDude_HandleBodyPart(void);67#if MANIA_USE_PLUS68void MonkeyDude_HandleStates(void);69#endif70void MonkeyDude_State_Laugh(void);71void MonkeyDude_State_MoveArm(void);72void MonkeyDude_State_MoveBody(void);73void MonkeyDude_StateBody_ArmRaise(void);74void MonkeyDude_StateBody_Throw(void);75#if MANIA_USE_PLUS76void MonkeyDude_State_Coconut(void);77#endif7879#endif //! OBJ_MONKEYDUDE_H808182