-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathConfigurationMode.h
92 lines (78 loc) · 2.61 KB
/
ConfigurationMode.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#pragma once
#include "Skeleton.h"
namespace F4VRBody {
/// <summary>
/// Handle the in-game configuration matrix UI.
/// Triggered by pressing down both sticks.
/// Allows configuration of:
/// - Player height
/// - Dampen hands
/// - Etc.
/// </summary>
class ConfigurationMode
{
public:
ConfigurationMode(Skeleton* skelly, OpenVRHookManagerAPI* hook) {
_skelly = skelly;
_vrhook = hook;
}
inline bool isCalibrateModeActive() const {
return _calibrateModeActive;
}
inline bool isPipBoyConfigModeActive() const {
return _isPBConfigModeActive;
}
void onUpdate();
void exitPBConfig();
private:
void configModeExit();
void pipboyConfigurationMode();
void mainConfigurationMode();
void checkWeaponRepositionPipboyConflict();
Skeleton* _skelly;
OpenVRHookManagerAPI* _vrhook;
// persistant fields to be used for general configuration menu
bool _MCTouchbuttons[10] = { false, false, false, false, false, false, false, false, false, false };
bool _calibrationModeUIActive = false;
bool _calibrateModeActive = false;
bool _isHandsButtonPressed = false;
bool _isWeaponButtonPressed = false;
bool _isGripButtonPressed = false;
// persistant fields to be used for pipboy configuration menu
bool _PBTouchbuttons[12] = { false, false, false, false, false, false, false, false, false, false, false, false };
bool _isPBConfigModeActive = false;
bool _exitAndSavePressed = false;
bool _exitWithoutSavePressed = false;
bool _selfieButtonPressed = false;
bool _UIHeightButtonPressed = false;
bool _dampenHandsButtonPressed = false;
int _configModeTimer = 0;
int _configModeTimer2 = 0;
bool _isSaveButtonPressed = false;
bool _isModelSwapButtonPressed = false;
bool _isGlanceButtonPressed = false;
bool _isDampenScreenButtonPressed = false;
int _PBConfigModeEnterCounter = 0;
// backup and resture if erxist config without saving
float _armLength_bkup = 0;
float _powerArmor_up_bkup = 0;
float _playerOffset_up_bkup = 0;
float _rootOffset_bkup = 0;
float _PARootOffset_bkup = 0;
float _fVrScale_bkup = 0;
float _playerOffset_forward_bkup = 0;
float _powerArmor_forward_bkup = 0;
float _cameraHeight_bkup = 0;
float _PACameraHeight_bkup = 0;
};
// Not a fan of globals but it may be easiest to refactor code right now
extern ConfigurationMode* g_configurationMode;
static void initConfigurationMode(Skeleton* skelly, OpenVRHookManagerAPI* hook) {
if (g_configurationMode) {
_ERROR("ERROR: configuration mode already initialized");
return;
}
_MESSAGE("Init configuration mode...");
g_configurationMode = new ConfigurationMode(skelly, hook);
}
}