prime/include/MetroidPrime/Player/CGameOptions.hpp

70 lines
1.6 KiB
C++
Raw Permalink Normal View History

#ifndef _CGAMEOPTIONS
#define _CGAMEOPTIONS
#include "types.h"
#include "rstl/pair.hpp"
#include "rstl/reserved_vector.hpp"
#include "rstl/vector.hpp"
2022-10-31 16:19:28 +00:00
#include "Kyoto/Audio/CAudioSys.hpp"
#include "Kyoto/SObjectTag.hpp"
2022-07-18 22:42:58 +00:00
#include "MetroidPrime/TGameTypes.hpp"
2022-10-31 16:19:28 +00:00
class CInputStream;
class CMemoryStreamOut;
class CGameOptions {
public:
CGameOptions();
CGameOptions(CInputStream& in);
2022-10-31 16:19:28 +00:00
void PutTo(CMemoryStreamOut&);
void InitSoundMode();
void ResetToDefaults();
void EnsureOptions();
2022-10-31 16:19:28 +00:00
void SetScreenBrightness(int, bool);
float TuneScreenBrightness();
void SetScreenPositionX(int, bool);
void SetScreenPositionY(int, bool);
void SetScreenStretch(int, bool);
void SetSfxVolume(int, bool);
void SetMusicVolume(int, bool);
void SetSurroundMode(CAudioSys::ESurroundModes, bool);
float GetHudAlpha() const;
float GetHelmetAlpha() const;
void SetHelmetAlpha(int);
void SetHUDLag(bool);
void SetIsHintSystemEnabled(bool);
void SetInvertYAxis(bool);
void ToggleControls(bool);
void ResetControllerAssets(int);
void SetControls(int);
2022-10-17 11:10:16 +00:00
void SetIsRumbleEnabled(bool rumble);
bool GetIsRumbleEnabled() const { return x68_26_rumble; }
private:
2022-10-31 16:19:28 +00:00
rstl::reserved_vector< uchar, 64 > x0_;
int x44_soundMode;
int x48_screenBrightness;
int x4c_screenXOffset;
int x50_screenYOffset;
int x54_screenStretch;
uint x58_sfxVol;
uint x5c_musicVol;
2022-10-31 16:19:28 +00:00
int x60_hudAlpha;
int x64_helmetAlpha;
bool x68_24_hudLag : 1;
bool x68_25_invertY : 1;
bool x68_26_rumble : 1;
bool x68_27_swapBeamsControls : 1;
bool x68_28_hintSystem : 1;
rstl::vector< rstl::pair< CAssetId, CAssetId > > x6c_controlTxtrMap;
};
#endif // _CGAMEOPTIONS