1#pragma once
2
3#include <basis/seadTypes.h>
4
5#include "System/ByamlSave.h"
6
7namespace al {
8class ByamlIter;
9class IUseSceneObjHolder;
10class LayoutActor;
11class Scene;
12} // namespace al
13
14class GameConfigData : public ByamlSave {
15public:
16 GameConfigData();
17 void init();
18 bool isCameraReverseInputH() const;
19 void onCameraReverseInputH();
20 void offCameraReverseInputH();
21 bool isCameraReverseInputV() const;
22 void onCameraReverseInputV();
23 void offCameraReverseInputV();
24 s32 getCameraStickSensitivityLevel() const;
25 void setCameraStickSensitivityLevel(s32);
26 bool isValidCameraGyro() const;
27 void validateCameraGyro();
28 void invalidateCameraGyro();
29 s32 getCameraGyroSensitivityLevel() const;
30 void setCameraGyroSensitivityLevel(s32);
31 bool isUseOpenListAdditionalButton() const;
32 void onUseOpenListAdditionalButton();
33 void offUseOpenListAdditionalButton();
34 bool isValidPadRumble() const;
35 void validatePadRumble();
36 void invalidatePadRumble();
37 s32 getPadRumbleLevel() const;
38 void setPadRumbleLevel(s32);
39 void write(al::ByamlWriter*) override;
40 void read(const al::ByamlIter&) override;
41
42private:
43 s32 mCameraStickSensitivityLevel = -1;
44 bool mIsCameraReverseInputH = false;
45 bool mIsCameraReverseInputV = false;
46 bool mIsValidCameraGyro = true;
47 s32 mCameraGyroSensitivityLevel = -1;
48 bool mIsUseOpenListAdditionalButton = false;
49 bool mIsValidPadRumble = true;
50 s32 mPadRumbleLevel = 0;
51};
52
53namespace rs {
54GameConfigData* getGameConfigData(const al::LayoutActor*);
55void saveGameConfigData(const al::LayoutActor*);
56void applyGameConfigData(al::Scene*, const GameConfigData*);
57bool isUseOpenListAdditionalButton(const al::IUseSceneObjHolder*);
58} // namespace rs
59