Path: blob/master/SonicMania/Objects/UFO/SpecialClear.h
338 views
#ifndef OBJ_SPECIALCLEAR_H1#define OBJ_SPECIALCLEAR_H23#include "Game.h"45typedef enum {6SC_MSG_SPECIALCLEAR,7SC_MSG_GOTEMERALD,8SC_MSG_ALLEMERALDS,9SC_MSG_SUPER,10} SpecialClearTypes;1112typedef enum {13SC_ANI_SONIC,14SC_ANI_TAILS,15SC_ANI_KNUX,16#if MANIA_USE_PLUS17SC_ANI_MIGHTY,18SC_ANI_RAY,19#endif20SC_ANI_BONUS,21SC_ANI_NUMBERS,22SC_ANI_EMERALDS,23#if MANIA_USE_PLUS24SC_ANI_CONTINUE,25#endif26} SpecialClearAniIDs;2728// Object Class29struct ObjectSpecialClear {30RSDK_OBJECT31uint16 aniFrames;32#if !MANIA_USE_PLUS33uint16 continueFrames;34#endif35uint16 sfxScoreAdd;36uint16 sfxScoreTotal;37uint16 sfxEvent;38uint16 sfxSpecialWarp;39uint16 sfxContinue;40uint16 sfxEmerald;41};4243// Entity Class44struct EntitySpecialClear {45RSDK_ENTITY46StateMachine(state);47bool32 isBSS;48int32 messageType;49int32 timer;50bool32 showFade;51bool32 continueIconVisible;52bool32 hasContinues;53int32 fillColor;54int32 score;55int32 score1UP;56int32 lives;57int32 ringBonus;58int32 perfectBonus;59int32 machBonus;60Vector2 messagePos1;61Vector2 messagePos2;62Vector2 scoreBonusPos;63Vector2 ringBonusPos;64Vector2 perfectBonusPos;65Vector2 machBonusPos;66Vector2 continuePos;67int32 emeraldPositions[7];68int32 emeraldSpeeds[7];69int32 unused1;70int32 unused2;71int32 unused3;72int32 unused4;73int32 unused5;74int32 unused6;75int32 unused7;76int32 unused8;77bool32 saveInProgress;78Animator playerNameAnimator;79Animator bonusAnimator;80Animator numbersAnimator;81Animator emeraldsAnimator;82Animator continueAnimator;83};8485// Object Struct86extern ObjectSpecialClear *SpecialClear;8788// Standard Entity Events89void SpecialClear_Update(void);90void SpecialClear_LateUpdate(void);91void SpecialClear_StaticUpdate(void);92void SpecialClear_Draw(void);93void SpecialClear_Create(void *data);94void SpecialClear_StageLoad(void);95#if GAME_INCLUDE_EDITOR96void SpecialClear_EditorDraw(void);97void SpecialClear_EditorLoad(void);98#endif99void SpecialClear_Serialize(void);100101// Extra Entity Functions102void SpecialClear_DrawNumbers(Vector2 *pos, int32 value);103void SpecialClear_GiveScoreBonus(int32 score);104105#if MANIA_USE_PLUS106void SpecialClear_SaveCB(bool32 success);107#else108void SpecialClear_SaveCB(void);109#endif110111void SpecialClear_State_SetupDelay(void);112void SpecialClear_State_EnterText(void);113void SpecialClear_State_AdjustText(void);114void SpecialClear_HandleEmeraldAppear(void);115void SpecialClear_State_EnterBonuses(void);116void SpecialClear_State_ScoreShownDelay(void);117void SpecialClear_State_TallyScore(void);118void SpecialClear_State_ShowTotalScore_Continues(void);119void SpecialClear_State_ShowTotalScore_NoContinues(void);120void SpecialClear_State_ExitFinishMessage(void);121void SpecialClear_State_EnterSuperMessage(void);122void SpecialClear_State_ShowSuperMessage(void);123void SpecialClear_State_ExitFadeOut(void);124void SpecialClear_State_ExitResults(void);125126#endif //! OBJ_SPECIALCLEAR_H127128129