Path: blob/master/SonicMania/Objects/TMZ/TeeterTotter.h
338 views
#ifndef OBJ_TEETERTOTTER_H1#define OBJ_TEETERTOTTER_H23#include "Game.h"45#define TEETERTOTTER_SEGMENT_COUNT (32)67typedef enum {8TEETERTOTTER_COLOR_ORANGEBLUE,9TEETERTOTTER_COLOR_BLUEORANGE,10} TeeterTotterColors;1112// Object Class13struct ObjectTeeterTotter {14RSDK_OBJECT15uint16 aniFrames;16};1718// Entity Class19struct EntityTeeterTotter {20RSDK_ENTITY21StateMachine(state);22uint8 color;23uint32 length;24Vector2 origin;25int32 unused1; // never even set26int32 playerIDs[PLAYER_COUNT];27int32 inactiveSegments;28int32 fallPos;29int32 fallVelocity;30int32 unused2; // set, but never used31int32 segmentPosition[TEETERTOTTER_SEGMENT_COUNT];32int32 segmentVelocity[TEETERTOTTER_SEGMENT_COUNT];33Hitbox hitbox;34Animator animator;35};3637// Object Struct38extern ObjectTeeterTotter *TeeterTotter;3940// Standard Entity Events41void TeeterTotter_Update(void);42void TeeterTotter_LateUpdate(void);43void TeeterTotter_StaticUpdate(void);44void TeeterTotter_Draw(void);45void TeeterTotter_Create(void *data);46void TeeterTotter_StageLoad(void);47#if GAME_INCLUDE_EDITOR48void TeeterTotter_EditorDraw(void);49void TeeterTotter_EditorLoad(void);50#endif51void TeeterTotter_Serialize(void);5253// Extra Entity Functions54int32 TeeterTotter_CheckPlayerCollisions(void);55void TeeterTotter_ProcessSegmentGravity(void);56void TeeterTotter_HandleSegmentPositions(void);5758void TeeterTotter_State_Init(void);59void TeeterTotter_State_Teeter(void);60void TeeterTotter_State_Fall(void);6162#endif //! OBJ_TEETERTOTTER_H636465