@@ -62,3 +62,169 @@ void CWeatherSA::ResetAmountOfRain()
6262 MemCpy ((LPVOID)0x72BC92 , &originalFstp1, 6 );
6363 MemCpy ((LPVOID)0x72C686 , &originalFstp2, 6 );
6464}
65+
66+ float CWeatherSA::GetWetRoads () const
67+ {
68+ return *(float *)0xC81308 ;
69+ }
70+
71+ bool CWeatherSA::SetWetRoads (float fAmount )
72+ {
73+ MemSet ((LPVOID)(0x72BB9F + 2 ), 0x90 , 3 );
74+ MemSet ((LPVOID)(0x72BBB7 + 2 ), 0x90 , 3 );
75+ MemSet ((LPVOID)(0x72BBD0 + 1 ), 0x90 , 3 );
76+ MemSet ((LPVOID)(0x72BBD7 + 2 ), 0x90 , 3 );
77+
78+ MemPutFast<float >(0xC81308 , fAmount );
79+ return true ;
80+ }
81+
82+ bool CWeatherSA::ResetWetRoads ()
83+ {
84+ BYTE originalCodes[3 ] = {0x08 , 0x13 , 0xC8 };
85+ MemCpy ((LPVOID)(0x72BB9F + 2 ), &originalCodes, 3 );
86+ MemCpy ((LPVOID)(0x72BBB7 + 2 ), &originalCodes, 3 );
87+ MemCpy ((LPVOID)(0x72BBD0 + 1 ), &originalCodes, 3 );
88+ MemCpy ((LPVOID)(0x72BBD7 + 2 ), &originalCodes, 3 );
89+ return true ;
90+ }
91+
92+ float CWeatherSA::GetFoggyness () const
93+ {
94+ return *(float *)0xC81300 ;
95+ }
96+
97+ bool CWeatherSA::SetFoggyness (float fAmount )
98+ {
99+ MemSet ((LPVOID)(0x72BDF5 + 2 ), 0x90 , 3 );
100+ MemSet ((LPVOID)(0x72BDDD + 2 ), 0x90 , 3 );
101+ MemSet ((LPVOID)(0x72BE13 + 2 ), 0x90 , 3 );
102+
103+ MemPutFast<float >(0xC81300 , fAmount );
104+ return true ;
105+ }
106+
107+ bool CWeatherSA::ResetFoggyness ()
108+ {
109+ BYTE originalCodes[3 ] = {0x00 , 0x13 , 0xC8 };
110+ MemCpy ((LPVOID)(0x72BDF5 + 2 ), &originalCodes, 3 );
111+ MemCpy ((LPVOID)(0x72BDDD + 2 ), &originalCodes, 3 );
112+ MemCpy ((LPVOID)(0x72BE13 + 2 ), &originalCodes, 3 );
113+ return true ;
114+ }
115+
116+ float CWeatherSA::GetFog () const
117+ {
118+ return *(float *)0xC812FC ;
119+ }
120+
121+ bool CWeatherSA::SetFog (float fAmount )
122+ {
123+ MemSet ((LPVOID)(0x72BE37 + 2 ), 0x90 , 3 );
124+ MemSet ((LPVOID)(0x72BE1F + 2 ), 0x90 , 3 );
125+ MemSet ((LPVOID)(0x72BE4F + 2 ), 0x90 , 3 );
126+
127+ MemPutFast<float >(0xC812FC , fAmount );
128+ return true ;
129+ }
130+
131+ bool CWeatherSA::ResetFog ()
132+ {
133+ BYTE originalCodes[3 ] = {0xFC , 0x12 , 0xC8 };
134+ MemCpy ((LPVOID)(0x72BE37 + 2 ), &originalCodes, 3 );
135+ MemCpy ((LPVOID)(0x72BE1F + 2 ), &originalCodes, 3 );
136+ MemCpy ((LPVOID)(0x72BE4F + 2 ), &originalCodes, 3 );
137+ return true ;
138+ }
139+
140+ float CWeatherSA::GetRainFog () const
141+ {
142+ return *(float *)0xC81410 ;
143+ }
144+
145+ bool CWeatherSA::SetRainFog (float fAmount )
146+ {
147+ MemSet ((LPVOID)(0x72ADD8 + 2 ), 0x90 , 3 );
148+ MemSet ((LPVOID)(0x72ADE4 + 2 ), 0x90 , 3 );
149+
150+ MemPutFast<float >(0xC81410 , fAmount );
151+ return true ;
152+ }
153+
154+ bool CWeatherSA::ResetRainFog ()
155+ {
156+ BYTE originalCodes[3 ] = {0x10 , 0x14 , 0xC8 };
157+ MemCpy ((LPVOID)(0x72ADD8 + 2 ), &originalCodes, 3 );
158+ MemCpy ((LPVOID)(0x72ADE4 + 2 ), &originalCodes, 3 );
159+ return true ;
160+ }
161+
162+ float CWeatherSA::GetWaterFog () const
163+ {
164+ return *(float *)0xC81338 ;
165+ }
166+
167+ bool CWeatherSA::SetWaterFog (float fAmount )
168+ {
169+ MemSet ((LPVOID)(0x72C35C + 2 ), 0x90 , 3 );
170+ MemSet ((LPVOID)(0x72C38E + 2 ), 0x90 , 3 );
171+ MemSet ((LPVOID)(0x72C36F + 2 ), 0x90 , 3 );
172+
173+ MemPutFast<float >(0xC81338 , fAmount );
174+ return true ;
175+ }
176+
177+ bool CWeatherSA::ResetWaterFog ()
178+ {
179+ BYTE originalCodes[3 ] = {0x38 , 0x13 , 0xC8 };
180+ MemCpy ((LPVOID)(0x72C35C + 2 ), &originalCodes, 3 );
181+ MemCpy ((LPVOID)(0x72C38E + 2 ), &originalCodes, 3 );
182+ MemCpy ((LPVOID)(0x72C36F + 2 ), &originalCodes, 3 );
183+ return true ;
184+ }
185+
186+ float CWeatherSA::GetSandstorm () const
187+ {
188+ return *(float *)0xC812F4 ;
189+ }
190+
191+ bool CWeatherSA::SetSandstorm (float fAmount )
192+ {
193+ MemSet ((LPVOID)(0x72A4B6 + 1 ), 0x90 , 3 );
194+ MemSet ((LPVOID)(0x72BCEB + 1 ), 0x90 , 3 );
195+ MemSet ((LPVOID)(0x72BD0B + 2 ), 0x90 , 3 );
196+
197+ MemPutFast<float >(0xC812F4 , fAmount );
198+ return true ;
199+ }
200+
201+ bool CWeatherSA::ResetSandstorm ()
202+ {
203+ BYTE originalCodes[3 ] = {0xF4 , 0x12 , 0xC8 };
204+ MemCpy ((LPVOID)(0x72A4B6 + 1 ), &originalCodes, 3 );
205+ MemCpy ((LPVOID)(0x72BCEB + 1 ), &originalCodes, 3 );
206+ MemCpy ((LPVOID)(0x72BD0B + 2 ), &originalCodes, 3 );
207+ return true ;
208+ }
209+
210+ float CWeatherSA::GetRainbow () const
211+ {
212+ return *(float *)0xC812E4 ;
213+ }
214+
215+ bool CWeatherSA::SetRainbow (float fAmount )
216+ {
217+ MemSet ((LPVOID)(0x72BF51 + 2 ), 0x90 , 3 );
218+ MemSet ((LPVOID)(0x72BF59 + 2 ), 0x90 , 3 );
219+
220+ MemPutFast<float >(0xC812E4 , fAmount );
221+ return true ;
222+ }
223+
224+ bool CWeatherSA::ResetRainbow ()
225+ {
226+ BYTE originalCodes[3 ] = {0xE4 , 0x12 , 0xC8 };
227+ MemCpy ((LPVOID)(0x72BF51 + 2 ), &originalCodes, 3 );
228+ MemCpy ((LPVOID)(0x72BF59 + 2 ), &originalCodes, 3 );
229+ return true ;
230+ }
0 commit comments