OpenBarnyard
 
Loading...
Searching...
No Matches
AOptions Class Reference

#include <AOptions.h>

Inheritance diagram for AOptions:

Public Types

enum  Flags_ : Flags { Flags_InvertMouse = BITFLAG( 1 ) }
 
enum  UpdatedSettings_ : UpdatedSettings {
  UpdatedSettings_None = 0 , UpdatedSettings_Audio = BITFLAG( 0 ) , UpdatedSettings_Language = BITFLAG( 1 ) , UpdatedSettings_Input = BITFLAG( 2 ) ,
  UpdatedSettings_ForceUpdate = 0xFFFFFFFFU
}
 
using Flags = TUINT32
 
using UpdatedSettings = TUINT32
 

Public Member Functions

 TDECLARE_CLASS (AOptions, Toshi::TObject)
 
 AOptions ()
 
virtual TBOOL ApplySettings ()
 
void LoadSettings ()
 
void ReloadSettings ()
 
TBOOL IsResolutionCompatible (TINT a_iWidth, TINT a_iHeight)
 
Toshi::T2Locale::Lang GetLanguage () const
 
TFLOAT GetGamma () const
 
TFLOAT GetSensitivity () const
 
TINT GetWidth () const
 
TINT GetHeight () const
 
TBOOL IsWindowed () const
 
TBOOL IsControllerEnabled () const
 
TBOOL IsHighDetailGrassEnabled () const
 

Detailed Description

Definition at line 4 of file AOptions.h.

Member Typedef Documentation

◆ Flags

Definition at line 10 of file AOptions.h.

◆ UpdatedSettings

Definition at line 16 of file AOptions.h.

Member Enumeration Documentation

◆ Flags_

Enumerator
Flags_InvertMouse 

Definition at line 11 of file AOptions.h.

12 {
14 };
#define BITFLAG(x)
Definition Defines.h:10
@ Flags_InvertMouse
Definition AOptions.h:13

◆ UpdatedSettings_

Enumerator
UpdatedSettings_None 
UpdatedSettings_Audio 
UpdatedSettings_Language 
UpdatedSettings_Input 
UpdatedSettings_ForceUpdate 

Definition at line 17 of file AOptions.h.

18 {
23 UpdatedSettings_ForceUpdate = 0xFFFFFFFFU,
24 };
@ UpdatedSettings_Audio
Definition AOptions.h:20
@ UpdatedSettings_None
Definition AOptions.h:19
@ UpdatedSettings_Input
Definition AOptions.h:22
@ UpdatedSettings_ForceUpdate
Definition AOptions.h:23
@ UpdatedSettings_Language
Definition AOptions.h:21

Constructor & Destructor Documentation

◆ AOptions()

AOptions::AOptions ( )

Definition at line 18 of file AOptions.cpp.

19{
20 m_eUpdatedSettings = UpdatedSettings_None;
21 m_eLanguage = ALocaleManager::Lang_UNKNOWN;
22
24}
void ReloadSettings()
Definition AOptions.h:33

Member Function Documentation

◆ ApplySettings()

TBOOL AOptions::ApplySettings ( )
virtual

Definition at line 27 of file AOptions.cpp.

28{
29 TIMPLEMENT();
30
31 if ( m_eUpdatedSettings & UpdatedSettings_Audio )
32 {
33 }
34
35 if ( m_eUpdatedSettings & UpdatedSettings_Language )
36 {
37 T2Locale::GetSingleton()->SetLanguage( ALocaleManager::Lang_EnglishUK );
39 }
40
41 if ( m_eUpdatedSettings & UpdatedSettings_Input )
42 {
43 }
44
45 m_eUpdatedSettings = UpdatedSettings_None;
46 return TTRUE;
47}
#define TIMPLEMENT()
Definition Defines.h:136
#define TTRUE
Definition Typedefs.h:25

◆ GetGamma()

TFLOAT AOptions::GetGamma ( ) const
inline

Definition at line 42 of file AOptions.h.

42{ return m_fGamma; }

◆ GetHeight()

TINT AOptions::GetHeight ( ) const
inline

Definition at line 45 of file AOptions.h.

45{ return m_iHeight; }

◆ GetLanguage()

Toshi::T2Locale::Lang AOptions::GetLanguage ( ) const
inline

Definition at line 41 of file AOptions.h.

41{ return m_eLanguage; }

◆ GetSensitivity()

TFLOAT AOptions::GetSensitivity ( ) const
inline

Definition at line 43 of file AOptions.h.

43{ return m_fSensitivity; }

◆ GetWidth()

TINT AOptions::GetWidth ( ) const
inline

Definition at line 44 of file AOptions.h.

44{ return m_iWidth; }

◆ IsControllerEnabled()

TBOOL AOptions::IsControllerEnabled ( ) const
inline

Definition at line 47 of file AOptions.h.

47{ return m_bControllerEnabled; }

◆ IsHighDetailGrassEnabled()

TBOOL AOptions::IsHighDetailGrassEnabled ( ) const
inline

Definition at line 48 of file AOptions.h.

48{ return m_bHighDetailGrass; }

◆ IsResolutionCompatible()

TBOOL AOptions::IsResolutionCompatible ( TINT a_iWidth,
TINT a_iHeight )

Definition at line 141 of file AOptions.cpp.

142{
143 static constexpr struct
144 {
145 TINT iWidth;
146 TINT iHeight;
147 } s_Resolutions[] = {
148 { 600, 800 },
149 { 768, 1024 },
150 { 864, 1152 },
151 { 1024, 1280 },
152 { 640, 480 },
153 { 800, 600 },
154 { 1024, 768 },
155 { 1152, 864 },
156 { 1280, 1024 },
157 { 1600, 1200 },
158 };
159
160 for ( TSIZE i = 0; i < TARRAYSIZE( s_Resolutions ); i++ )
161 {
162 auto pResolution = &s_Resolutions[ i ];
163
164 if ( a_iWidth == pResolution->iWidth && a_iHeight == pResolution->iHeight )
165 {
166 return TTRUE;
167 }
168 }
169
170 return TFALSE;
171}
#define TARRAYSIZE(ARRAY)
Definition Defines.h:70
size_t TSIZE
Definition Typedefs.h:9
int TINT
Definition Typedefs.h:7
#define TFALSE
Definition Typedefs.h:24

◆ IsWindowed()

TBOOL AOptions::IsWindowed ( ) const

Definition at line 173 of file AOptions.cpp.

174{
175 return IsDebuggerPresent() || m_bForcedWindowed;
176}

◆ LoadSettings()

void AOptions::LoadSettings ( )

Definition at line 50 of file AOptions.cpp.

51{
52 m_fGamma = 0.420849f;
53 m_iWidth = 800;
54 m_iHeight = 600;
55 m_fSensitivity = 0.5f;
56 m_bHighDetailGrass = TTRUE;
57 m_bControllerEnabled = TFALSE;
58 m_bForcedWindowed = TFALSE;
59
60 HKEY hKey;
61
62 if ( ERROR_SUCCESS == RegOpenKeyExA( HKEY_CURRENT_USER, "Software\\THQ\\Barnyard", 0, KEY_READ, &hKey ) )
63 {
64 CHAR szBuffer[ 512 ];
65 DWORD dwType = REG_NONE;
66 DWORD dwData = 0;
67 DWORD dwSize = sizeof( dwData );
68
69 if ( ERROR_SUCCESS == RegQueryValueExA( hKey, "RealForcedWindowed", NULL, &dwType, (LPBYTE)&dwData, &dwSize ) &&
70 dwType == REG_DWORD )
71 {
72 m_bForcedWindowed = dwData != FALSE;
73 }
74
75 dwSize = sizeof( dwData );
76 if ( ERROR_SUCCESS == RegQueryValueExA( hKey, "HighDetailGrass", NULL, &dwType, (LPBYTE)&dwData, &dwSize ) &&
77 dwType == REG_DWORD )
78 {
79 m_bHighDetailGrass = dwData != FALSE;
80 }
81
82 dwSize = sizeof( szBuffer );
83 if ( ERROR_SUCCESS == RegQueryValueExA( hKey, "Gamma", NULL, &dwType, (LPBYTE)szBuffer, &dwSize ) &&
84 dwType == REG_SZ )
85 {
86 dwSize -= 1;
87 TMath::Clip( dwSize, (DWORD)0, (DWORD)16 );
88
89 for ( DWORD i = 0; i < dwSize; i++ )
90 {
91 if ( szBuffer[ i ] == ',' )
92 {
93 szBuffer[ i ] = '.';
94 }
95 }
96
97 m_fGamma = TStringManager::String8ToFloat( szBuffer );
98 TMath::Clip( m_fGamma, 0.0f, 1.0f );
99 }
100
101 TINT iWidth = 0;
102 dwSize = sizeof( iWidth );
103 if ( ERROR_SUCCESS == RegQueryValueExA( hKey, "Width", NULL, &dwType, (LPBYTE)&dwData, &dwSize ) &&
104 dwType == REG_DWORD )
105 {
106 iWidth = dwData;
107 }
108
109 TINT iHeight = 0;
110 dwSize = sizeof( iHeight );
111 if ( ERROR_SUCCESS == RegQueryValueExA( hKey, "Height", NULL, &dwType, (LPBYTE)&dwData, &dwSize ) &&
112 dwType == REG_DWORD )
113 {
114 iHeight = dwData;
115 }
116
117 if ( IsResolutionCompatible( iWidth, iHeight ) )
118 {
119 m_iWidth = iWidth;
120 m_iHeight = iHeight;
121 }
122
123 dwSize = sizeof( szBuffer );
124 if ( ERROR_SUCCESS == RegQueryValueExA( hKey, "Sensitivity", NULL, &dwType, (LPBYTE)szBuffer, &dwSize ) &&
125 dwType == REG_SZ )
126 {
127 m_fSensitivity = TStringManager::String8ToFloat( szBuffer );
128 TMath::Clip( m_fSensitivity, 0.0f, 1.0f );
129 }
130
131 dwSize = sizeof( dwData );
132 if ( ERROR_SUCCESS == RegQueryValueExA( hKey, "ControllerEnabled", NULL, &dwType, (LPBYTE)&dwData, &dwSize ) &&
133 dwType == REG_DWORD )
134 {
135 m_bControllerEnabled = dwData != FALSE;
136 }
137 }
138}
TFORCEINLINE void Clip(T &rVal, const T &Min, const T &Max)
static TFLOAT String8ToFloat(const TCHAR *str)
TBOOL IsResolutionCompatible(TINT a_iWidth, TINT a_iHeight)
Definition AOptions.cpp:141

◆ ReloadSettings()

void AOptions::ReloadSettings ( )
inline

Definition at line 33 of file AOptions.h.

34 {
36 m_eUpdatedSettings = UpdatedSettings_ForceUpdate;
37 }
void LoadSettings()
Definition AOptions.cpp:50

◆ TDECLARE_CLASS()

AOptions::TDECLARE_CLASS ( AOptions ,
Toshi::TObject  )

The documentation for this class was generated from the following files: