Path: blob/master/SonicMania/Objects/Global/PauseMenu.h
338 views
#ifndef OBJ_PAUSEMENU_H1#define OBJ_PAUSEMENU_H23#include "Game.h"45#define PAUSEMENU_BUTTON_COUNT (3)67// Object Class8struct ObjectPauseMenu {9RSDK_OBJECT10uint16 sfxBleep;11uint16 sfxAccept;12bool32 disableEvents;13bool32 controllerDisconnect;14bool32 forcedDisconnect;15bool32 signOutDetected;16#if MANIA_USE_PLUS17bool32 plusChanged;18#endif19bool32 activeChannels[0x10];20#if MANIA_USE_PLUS21uint16 tintLookupTable[0x10000];22#endif23};2425// Entity Class26struct EntityPauseMenu {27RSDK_ENTITY28StateMachine(state);29StateMachine(stateDraw);30int32 timer;31int32 tintAlpha;32Vector2 headerPos;33Vector2 yellowTrianglePos;34EntityUIControl *manager;35uint8 triggerPlayer;36bool32 disableRestart;37int32 buttonCount;38uint8 buttonIDs[PAUSEMENU_BUTTON_COUNT];39void (*buttonActions[PAUSEMENU_BUTTON_COUNT])(void);40EntityUIButton *buttonPtrs[PAUSEMENU_BUTTON_COUNT];41int32 paused;42int32 fadeTimer;43bool32 (*disconnectCheck)(void);44int32 forcePaused;45Animator animator;46void (*fadeoutCB)(void);47int32 unused1;48int32 unused2; // these may possibly be leftover or editor things49};5051// Object Struct52extern ObjectPauseMenu *PauseMenu;5354// Standard Entity Events55void PauseMenu_Update(void);56void PauseMenu_LateUpdate(void);57void PauseMenu_StaticUpdate(void);58void PauseMenu_Draw(void);59void PauseMenu_Create(void *data);60void PauseMenu_StageLoad(void);61#if GAME_INCLUDE_EDITOR62void PauseMenu_EditorDraw(void);63void PauseMenu_EditorLoad(void);64#endif65void PauseMenu_Serialize(void);6667// Helper Functions68void PauseMenu_SetupMenu(void);69void PauseMenu_SetupTintTable(void);7071void PauseMenu_AddButton(uint8 id, void *action);72void PauseMenu_ClearButtons(EntityPauseMenu *entity);73void PauseMenu_HandleButtonPositions(void);7475void PauseMenu_PauseSound(void);76void PauseMenu_ResumeSound(void);77void PauseMenu_StopSound(void);7879void PauseMenu_FocusCamera(void);80void PauseMenu_UpdateCameras(void);8182void PauseMenu_CheckAndReassignControllers(void);83bool32 PauseMenu_IsDisconnected(void);8485uint8 PauseMenu_GetPlayerCount(void);8687// Callbacks88void PauseMenu_ResumeButtonCB(void);89void PauseMenu_RestartButtonCB(void);90void PauseMenu_ExitButtonCB(void);9192void PauseMenu_RestartDialog_YesCB(void);93void PauseMenu_ExitDialog_YesCB(void);94void PauseMenu_RestartFadeCB(void);95void PauseMenu_ExitFadeCB(void);9697void PauseMenu_ActionCB_Button(void);9899// States100void PauseMenu_State_SetupButtons(void);101102void PauseMenu_State_StartPause(void);103void PauseMenu_State_StartPauseCompetition(void);104105void PauseMenu_State_Paused(void);106void PauseMenu_State_ForcedPause(void);107void PauseMenu_State_ForcedPauseCompetition(void);108109void PauseMenu_State_Resume(void);110void PauseMenu_State_ResumeCompetition(void);111void PauseMenu_State_ForcedResumeCompetition(void);112113void PauseMenu_State_SetupTitleFade(void);114void PauseMenu_State_FadeToTitle(void);115void PauseMenu_State_HandleFadeout(void);116117// Draw States118void PauseMenu_DrawPauseMenu(void);119void PauseMenu_Draw_RegularPause(void);120121void PauseMenu_Draw_ForcePause(void);122123#endif //! OBJ_PAUSEMENU_H124125126