summaryrefslogtreecommitdiff
path: root/src/T2DLL/T2WeatherFilter.h
blob: 0a188b3d111f934ee92d5176205f2587bf79f074 (plain)
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
#ifndef T2DLL_T2WEATHERFILTER_H
#define T2DLL_T2WEATHERFILTER_H
#include "../common.h"

enum WeatherCode {
	WeatherCode_0,
	WeatherCode_1,
	WeatherCode_2,
	WeatherCode_3
};

class AFX_CLASS_EXPORT T2WeatherFilter {
public:
	T2WeatherFilter();
	~T2WeatherFilter();

	void SetWeather(WeatherCode weather);
	void ColorFilter(RGBQUAD*);
	void SkyColorFilter(RGBQUAD*);
	void Tick();

protected:
	void ClearFilter(unsigned long, RGBQUAD*);
	void RainyFilter(unsigned long, RGBQUAD*);
	void SnowyFilter(unsigned long, RGBQUAD*);
	void ColorFade(unsigned long, RGBQUAD*, RGBQUAD*);
	void ClearSkyFilter(unsigned long, RGBQUAD*);
	void RainySkyFilter(unsigned long, RGBQUAD*);
	void SnowySkyFilter(unsigned long, RGBQUAD*);
	void ColorBlend(int, RGBQUAD*, RGBQUAD*);

	WeatherCode mCurrentWeather;
	WeatherCode mNextWeather;
	int mPhase;
	int mLightningTime;
	DWORD mLastChange;
	DWORD mTimeSinceLastChange;
};
#endif