re3/src/render/Weather.h

71 lines
1.4 KiB
C++

enum {
WEATHER_SUNNY,
WEATHER_CLOUDY,
WEATHER_RAINY,
WEATHER_FOGGY
};
class CWeather
{
public:
enum {
WEATHER_RANDOM = -1,
WEATHER_SUNNY = 0,
WEATHER_CLOUDY = 1,
WEATHER_RAINY = 2,
WEATHER_FOGGY = 3,
WEATHER_TOTAL = 4
};
static int32 &SoundHandle;
static int32 &WeatherTypeInList;
static int16 &OldWeatherType;
static int16 &NewWeatherType;
static int16 &ForcedWeatherType;
static bool &LightningFlash;
static bool &LightningBurst;
static uint32 &LightningStart;
static uint32 &LightningFlashLastChange;
static uint32 &WhenToPlayLightningSound;
static uint32 &LightningDuration;
static float &Foggyness;
static float &CloudCoverage;
static float &Wind;
static float &Rain;
static float &InterpolationValue;
static float &WetRoads;
static float &Rainbow;
static bool &bScriptsForceRain;
static bool &Stored_StateStored;
static float &Stored_InterpolationValue;
static int16 &Stored_OldWeatherType;
static int16 &Stored_NewWeatherType;
static float &Stored_Rain;
static void RenderRainStreaks(void);
static void Update(void);
static void Init(void);
static void ReleaseWeather();
static void ForceWeather(int16);
static void ForceWeatherNow(int16);
static void StoreWeatherState();
static void RestoreWeatherState();
static void AddRain();
};
enum {
NUM_RAIN_STREAKS = 35
};
struct tRainStreak
{
CVector position;
CVector direction;
uint32 timer;
};
extern RwTexture* (&gpRainDropTex)[4];