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;
88
89 for ( DWORD i = 0; i < dwSize; i++ )
90 {
91 if ( szBuffer[ i ] == ',' )
92 {
93 szBuffer[ i ] = '.';
94 }
95 }
96
99 }
100
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
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
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 {
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)