2022-10-09 05:13:17 +00:00
|
|
|
#ifndef _CGAMEOPTIONS
|
|
|
|
#define _CGAMEOPTIONS
|
2022-04-10 00:17:06 +00:00
|
|
|
|
|
|
|
#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"
|
2022-10-31 18:59:13 +00:00
|
|
|
#include "Kyoto/SObjectTag.hpp"
|
2022-07-18 22:42:58 +00:00
|
|
|
#include "MetroidPrime/TGameTypes.hpp"
|
2022-04-10 00:17:06 +00:00
|
|
|
|
2022-10-31 16:19:28 +00:00
|
|
|
class CInputStream;
|
|
|
|
class CMemoryStreamOut;
|
|
|
|
|
2022-04-10 00:17:06 +00:00
|
|
|
class CGameOptions {
|
|
|
|
public:
|
|
|
|
CGameOptions();
|
|
|
|
CGameOptions(CInputStream& in);
|
|
|
|
|
2022-10-31 16:19:28 +00:00
|
|
|
void PutTo(CMemoryStreamOut&);
|
|
|
|
|
|
|
|
void InitSoundMode();
|
|
|
|
void ResetToDefaults();
|
2022-04-10 00:17:06 +00:00
|
|
|
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; }
|
2022-04-10 00:17:06 +00:00
|
|
|
|
|
|
|
private:
|
2022-10-31 16:19:28 +00:00
|
|
|
rstl::reserved_vector< uchar, 64 > x0_;
|
|
|
|
int x44_soundMode;
|
|
|
|
int x48_screenBrightness;
|
2022-09-05 04:01:13 +00:00
|
|
|
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;
|
2022-04-10 00:17:06 +00:00
|
|
|
bool x68_24_hudLag : 1;
|
|
|
|
bool x68_25_invertY : 1;
|
|
|
|
bool x68_26_rumble : 1;
|
2022-10-31 18:59:13 +00:00
|
|
|
bool x68_27_swapBeamsControls : 1;
|
2022-04-10 00:17:06 +00:00
|
|
|
bool x68_28_hintSystem : 1;
|
2022-04-15 19:24:52 +00:00
|
|
|
rstl::vector< rstl::pair< CAssetId, CAssetId > > x6c_controlTxtrMap;
|
2022-04-10 00:17:06 +00:00
|
|
|
};
|
|
|
|
|
2022-10-09 05:13:17 +00:00
|
|
|
#endif // _CGAMEOPTIONS
|