Path: blob/master/SonicMania/Objects/Helpers/Options.h
338 views
#ifndef OBJ_OPTIONS_H1#define OBJ_OPTIONS_H23#include "Game.h"45// Using a seperate OptionsRAM struct6// Normally (and officially) the EntityOptions struct was used here7// but due to v5U updating the entity (and thus the OptionsRAM "spec")8// EntityOptions is no longer easily compatible across versions9// so I gave it dummy data and will be using this struct to interact with optionsRAM10typedef struct {11uint8 padding[0x58];1213uint8 language;14int32 overrideLanguage;15int32 screenShader;16bool32 overrideShader;17int32 volMusic;18bool32 overrideMusicVol;19int32 volSfx;20bool32 overrideSfxVol;21bool32 vSync;22uint8 windowSize;23bool32 windowBorder;24bool32 windowed;25bool32 tripleBuffering;26} OptionsRAM;2728// Object Class29struct ObjectOptions {30#if !MANIA_USE_PLUS31RSDK_OBJECT32Entity *loadEntityPtr;33void (*loadCallback)(bool32 success);34Entity *saveEntityPtr;35void (*saveCallback)(void);36#else37Entity *loadEntityPtr;38void (*loadCallback)(bool32 success);39Entity *saveEntityPtr;40void (*saveCallback)(bool32 success);41#endif42bool32 changed;43};4445// Entity Class46struct EntityOptions {47RSDK_ENTITY48// padding to match whatever it would be normally49// not required, but its for safety :)50uint8 padding[sizeof(OptionsRAM) - sizeof(Entity)];51};5253// Object Struct54extern ObjectOptions *Options;5556// Standard Entity Events57void Options_Update(void);58void Options_LateUpdate(void);59void Options_StaticUpdate(void);60void Options_Draw(void);61void Options_Create(void *data);62void Options_StageLoad(void);63#if GAME_INCLUDE_EDITOR64void Options_EditorDraw(void);65void Options_EditorLoad(void);66#endif67void Options_Serialize(void);6869// Extra Entity Functions70OptionsRAM *Options_GetOptionsRAM(void);71void Options_Reload(void);72void Options_GetWinSize(void);73void Options_LoadCallback(bool32 success);74void Options_LoadFile(void (*callback)(bool32 success));75#if MANIA_USE_PLUS76void Options_SaveFile(void (*callback)(bool32 success));77#else78void Options_SaveFile(void (*callback)(void));79#endif80void Options_SetLanguage(int32 language);81void Options_LoadValuesFromSettings(OptionsRAM *options);82void Options_LoadOptionsCallback(int32 status);83void Options_SaveOptionsCallback(int32 status);8485#endif //! OBJ_OPTIONS_H868788