summaryrefslogtreecommitdiffstats
path: root/src/render
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/render/Clouds.cpp14
-rw-r--r--src/render/Clouds.h12
-rw-r--r--src/render/Console.cpp2
-rw-r--r--src/render/Console.h2
-rw-r--r--src/render/Coronas.cpp16
-rw-r--r--src/render/Coronas.h16
-rw-r--r--src/render/Credits.cpp4
-rw-r--r--src/render/Credits.h4
-rw-r--r--src/render/Draw.cpp16
-rw-r--r--src/render/Draw.h16
-rw-r--r--src/render/Font.cpp10
-rw-r--r--src/render/Font.h11
-rw-r--r--src/render/Hud.cpp78
-rw-r--r--src/render/MBlur.cpp6
-rw-r--r--src/render/MBlur.h6
-rw-r--r--src/render/Particle.cpp15
-rw-r--r--src/render/Particle.h7
-rw-r--r--src/render/PointLights.cpp6
-rw-r--r--src/render/PointLights.h4
-rw-r--r--src/render/RenderBuffer.cpp12
-rw-r--r--src/render/RenderBuffer.h12
-rw-r--r--src/render/Shadows.cpp46
-rw-r--r--src/render/Shadows.h30
-rw-r--r--src/render/Sprite.cpp14
-rw-r--r--src/render/Sprite.h8
-rw-r--r--src/render/Sprite2d.cpp2
-rw-r--r--src/render/Sprite2d.h2
-rw-r--r--src/render/Timecycle.cpp190
-rw-r--r--src/render/Timecycle.h184
-rw-r--r--src/render/WaterLevel.cpp4
-rw-r--r--src/render/WaterLevel.h2
-rw-r--r--src/render/Weather.cpp48
-rw-r--r--src/render/Weather.h50
33 files changed, 414 insertions, 435 deletions
diff --git a/src/render/Clouds.cpp b/src/render/Clouds.cpp
index 7debe3d3..02035896 100644
--- a/src/render/Clouds.cpp
+++ b/src/render/Clouds.cpp
@@ -16,15 +16,15 @@
#define SMALLSTRIPHEIGHT 4.0f
#define HORIZSTRIPHEIGHT 48.0f
-RwTexture **gpCloudTex = (RwTexture**)0x9411C0; //[5];
+RwTexture *gpCloudTex[5];
-float &CClouds::CloudRotation = *(float*)0x8F5F40;
-uint32 &CClouds::IndividualRotation = *(uint32*)0x943078;
+float CClouds::CloudRotation;
+uint32 CClouds::IndividualRotation;
-float &CClouds::ms_cameraRoll = *(float*)0x8F29CC;
-float &CClouds::ms_horizonZ = *(float*)0x8F31C0;
-CRGBA &CClouds::ms_colourTop = *(CRGBA*)0x94143C;
-CRGBA &CClouds::ms_colourBottom = *(CRGBA*)0x8F2C38;
+float CClouds::ms_cameraRoll;
+float CClouds::ms_horizonZ;
+CRGBA CClouds::ms_colourTop;
+CRGBA CClouds::ms_colourBottom;
void
CClouds::Init(void)
diff --git a/src/render/Clouds.h b/src/render/Clouds.h
index c8000569..4d8cd2c8 100644
--- a/src/render/Clouds.h
+++ b/src/render/Clouds.h
@@ -3,13 +3,13 @@
class CClouds
{
public:
- static float &CloudRotation;
- static uint32 &IndividualRotation;
+ static float CloudRotation;
+ static uint32 IndividualRotation;
- static float &ms_cameraRoll;
- static float &ms_horizonZ;
- static CRGBA &ms_colourTop;
- static CRGBA &ms_colourBottom;
+ static float ms_cameraRoll;
+ static float ms_horizonZ;
+ static CRGBA ms_colourTop;
+ static CRGBA ms_colourBottom;
static void Init(void);
static void Shutdown(void);
diff --git a/src/render/Console.cpp b/src/render/Console.cpp
index 545122b0..bfdb2701 100644
--- a/src/render/Console.cpp
+++ b/src/render/Console.cpp
@@ -9,7 +9,7 @@
#define CONSOLE_Y_POS (10.0f)
#define CONSOLE_LINE_HEIGHT (12.0f)
-CConsole &TheConsole = *(CConsole*)0x8F6498;
+CConsole TheConsole;
void
CConsole::AddLine(char *s, uint8 r, uint8 g, uint8 b)
diff --git a/src/render/Console.h b/src/render/Console.h
index c454d75e..b4fa60c4 100644
--- a/src/render/Console.h
+++ b/src/render/Console.h
@@ -22,4 +22,4 @@ public:
void Init() { m_nCurrentLine = 0; m_nLineCount = 0; }
};
-extern CConsole &TheConsole;
+extern CConsole TheConsole;
diff --git a/src/render/Coronas.cpp b/src/render/Coronas.cpp
index 68994b0b..d70f70d6 100644
--- a/src/render/Coronas.cpp
+++ b/src/render/Coronas.cpp
@@ -48,16 +48,16 @@ FlareDef HeadLightsFlareDef[] = {
};
-RwTexture **gpCoronaTexture = (RwTexture**)0x5FAF44; //[9]
+RwTexture *gpCoronaTexture[9] = { nil, nil, nil, nil, nil, nil, nil, nil, nil };
-float &CCoronas::LightsMult = *(float*)0x5FB088; // 1.0
-float &CCoronas::SunScreenX = *(float*)0x8F4358;
-float &CCoronas::SunScreenY = *(float*)0x8F4354;
-bool &CCoronas::bSmallMoon = *(bool*)0x95CD49;
-bool &CCoronas::SunBlockedByClouds = *(bool*)0x95CD73;
-int &CCoronas::bChangeBrightnessImmediately = *(int*)0x8E2C30;
+float CCoronas::LightsMult = 1.0f;
+float CCoronas::SunScreenX;
+float CCoronas::SunScreenY;
+bool CCoronas::bSmallMoon;
+bool CCoronas::SunBlockedByClouds;
+int CCoronas::bChangeBrightnessImmediately;
-CRegisteredCorona *CCoronas::aCoronas = (CRegisteredCorona*)0x72E518;
+CRegisteredCorona CCoronas::aCoronas[NUMCORONAS];
const char aCoronaSpriteNames[][32] = {
"coronastar",
diff --git a/src/render/Coronas.h b/src/render/Coronas.h
index 359a34ed..4b49e40e 100644
--- a/src/render/Coronas.h
+++ b/src/render/Coronas.h
@@ -1,6 +1,6 @@
#pragma once
-extern RwTexture **gpCoronaTexture; //[9]
+extern RwTexture *gpCoronaTexture[9];
struct CRegisteredCorona
{
@@ -42,7 +42,7 @@ static_assert(sizeof(CRegisteredCorona) == 0x80, "CRegisteredCorona: error");
class CCoronas
{
- static CRegisteredCorona *aCoronas; //[NUMCORONAS];
+ static CRegisteredCorona aCoronas[NUMCORONAS];
public:
enum {
SUN_CORE = 1,
@@ -77,12 +77,12 @@ public:
STREAK_ON,
};
- static float &LightsMult;
- static float &SunScreenY;
- static float &SunScreenX;
- static bool &bSmallMoon;
- static bool &SunBlockedByClouds;
- static int &bChangeBrightnessImmediately;
+ static float LightsMult;
+ static float SunScreenY;
+ static float SunScreenX;
+ static bool bSmallMoon;
+ static bool SunBlockedByClouds;
+ static int bChangeBrightnessImmediately;
static void Init(void);
static void Shutdown(void);
diff --git a/src/render/Credits.cpp b/src/render/Credits.cpp
index b423fcc0..25f7bbcf 100644
--- a/src/render/Credits.cpp
+++ b/src/render/Credits.cpp
@@ -8,8 +8,8 @@
#include "Text.h"
#include "Credits.h"
-bool &CCredits::bCreditsGoing = *(bool*)0x95CDD3;
-uint32 &CCredits::CreditsStartTime = *(uint32*)0x8F2528;
+bool CCredits::bCreditsGoing;
+uint32 CCredits::CreditsStartTime;
void
CCredits::Init(void)
diff --git a/src/render/Credits.h b/src/render/Credits.h
index c39fb035..e049ce76 100644
--- a/src/render/Credits.h
+++ b/src/render/Credits.h
@@ -2,8 +2,8 @@
class CCredits
{
- static bool &bCreditsGoing;
- static uint32 &CreditsStartTime;
+ static bool bCreditsGoing;
+ static uint32 CreditsStartTime;
public:
static void Init(void);
static void Start(void);
diff --git a/src/render/Draw.cpp b/src/render/Draw.cpp
index 862fc024..dcbb6342 100644
--- a/src/render/Draw.cpp
+++ b/src/render/Draw.cpp
@@ -8,15 +8,15 @@
float CDraw::ms_fAspectRatio = DEFAULT_ASPECT_RATIO;
#endif
-float &CDraw::ms_fNearClipZ = *(float*)0x8E2DC4;
-float &CDraw::ms_fFarClipZ = *(float*)0x9434F0;
-float &CDraw::ms_fFOV = *(float*)0x5FBC6C;
-float &CDraw::ms_fLODDistance = *(float*)0x8F2C30;
+float CDraw::ms_fNearClipZ;
+float CDraw::ms_fFarClipZ;
+float CDraw::ms_fFOV = 45.0f;
+float CDraw::ms_fLODDistance;
-uint8 &CDraw::FadeValue = *(uint8*)0x95CD68;
-uint8 &CDraw::FadeRed = *(uint8*)0x95CD90;
-uint8 &CDraw::FadeGreen = *(uint8*)0x95CD71;
-uint8 &CDraw::FadeBlue = *(uint8*)0x95CD53;
+uint8 CDraw::FadeValue;
+uint8 CDraw::FadeRed;
+uint8 CDraw::FadeGreen;
+uint8 CDraw::FadeBlue;
float
CDraw::FindAspectRatio(void)
diff --git a/src/render/Draw.h b/src/render/Draw.h
index 50e1e294..55958a2a 100644
--- a/src/render/Draw.h
+++ b/src/render/Draw.h
@@ -13,11 +13,11 @@ enum eAspectRatio
class CDraw
{
private:
- static float &ms_fNearClipZ;
- static float &ms_fFarClipZ;
- static float &ms_fFOV;
+ static float ms_fNearClipZ;
+ static float ms_fFarClipZ;
+ static float ms_fFOV;
public:
- static float &ms_fLODDistance; // set but unused?
+ static float ms_fLODDistance; // set but unused?
#ifdef ASPECT_RATIO_SCALE
// we use this variable to scale a lot of 2D elements
@@ -25,10 +25,10 @@ public:
static float ms_fAspectRatio;
#endif
- static uint8 &FadeValue;
- static uint8 &FadeRed;
- static uint8 &FadeGreen;
- static uint8 &FadeBlue;
+ static uint8 FadeValue;
+ static uint8 FadeRed;
+ static uint8 FadeGreen;
+ static uint8 FadeBlue;
static void SetNearClipZ(float nearclip) { ms_fNearClipZ = nearclip; }
static float GetNearClipZ(void) { return ms_fNearClipZ; }
diff --git a/src/render/Font.cpp b/src/render/Font.cpp
index ca15cba7..ba4c4301 100644
--- a/src/render/Font.cpp
+++ b/src/render/Font.cpp
@@ -4,18 +4,18 @@
#include "TxdStore.h"
#include "Font.h"
-CFontDetails &CFont::Details = *(CFontDetails*)0x8F317C;
-int16 &CFont::NewLine = *(int16*)0x95CC94;
-CSprite2d *CFont::Sprite = (CSprite2d*)0x95CC04;
+CFontDetails CFont::Details;
+int16 CFont::NewLine;
+CSprite2d CFont::Sprite[MAX_FONTS];
#ifdef MORE_LANGUAGES
uint8 CFont::LanguageSet = FONT_LANGSET_EFIGS;
int32 CFont::Slot = -1;
-int16 CFont::Size[2][3][193] = {
+int16 CFont::Size[2][MAX_FONTS][193] = {
{
#else
-int16 CFont::Size[3][193] = {
+int16 CFont::Size[MAX_FONTS][193] = {
#endif
{
13, 12, 31, 35, 23, 35, 31, 9, 14, 15, 25, 30, 11, 17, 13, 31,
diff --git a/src/render/Font.h b/src/render/Font.h
index 0659dda1..ebf5e292 100644
--- a/src/render/Font.h
+++ b/src/render/Font.h
@@ -31,6 +31,7 @@ enum {
FONT_BANK,
FONT_PAGER,
FONT_HEADING,
+ MAX_FONTS
};
enum {
@@ -50,16 +51,16 @@ enum
class CFont
{
#ifdef MORE_LANGUAGES
- static int16 Size[2][3][193];
+ static int16 Size[2][MAX_FONTS][193];
static uint8 LanguageSet;
static int32 Slot;
#else
- static int16 Size[3][193];
+ static int16 Size[MAX_FONTS][193];
#endif
- static int16 

- static CSprite2d *Sprite; //[3]
+ static int16 NewLine;
+ static CSprite2d Sprite[MAX_FONTS];
public:
- static CFontDetails& Details;
+ static CFontDetails Details;
static void Initialise(void);
static void Shutdown(void);
diff --git a/src/render/Hud.cpp b/src/render/Hud.cpp
index 9529c4c1..5bcdd450 100644
--- a/src/render/Hud.cpp
+++ b/src/render/Hud.cpp
@@ -21,52 +21,52 @@
#include "User.h"
#include "World.h"
-wchar CHud::m_HelpMessage[256]; // = (wchar*)0x86B888;
-wchar CHud::m_LastHelpMessage[256]; // = (wchar*)0x6E8F28;
-uint32 CHud::m_HelpMessageState; // = *(int32*)0x880E1C;
-uint32 CHud::m_HelpMessageTimer; // = *(int32*)0x880FA4;
-int32 CHud::m_HelpMessageFadeTimer; // = *(int32*)0x8F6258;
-wchar CHud::m_HelpMessageToPrint[256]; // = (wchar*)0x664480;
-float CHud::m_fHelpMessageTime; // *(float *)0x8E2C28;
-bool CHud::m_HelpMessageQuick; // = *(bool*)0x95CCF7;
-uint32 CHud::m_ZoneState; // = *(int32*)0x8F29AC;
+wchar CHud::m_HelpMessage[256];
+wchar CHud::m_LastHelpMessage[256];
+uint32 CHud::m_HelpMessageState;
+uint32 CHud::m_HelpMessageTimer;
+int32 CHud::m_HelpMessageFadeTimer;
+wchar CHud::m_HelpMessageToPrint[256];
+float CHud::m_fHelpMessageTime;
+bool CHud::m_HelpMessageQuick;
+uint32 CHud::m_ZoneState;
int32 CHud::m_ZoneFadeTimer;
-uint32 CHud::m_ZoneNameTimer; // = *(int32*)0x8F1A50;
-wchar *CHud::m_pZoneName; // = *(wchar**)0x8E2C2C;
-wchar *CHud::m_pLastZoneName; // = (wchar*)0x8F432C;
+uint32 CHud::m_ZoneNameTimer;
+wchar *CHud::m_pZoneName;
+wchar *CHud::m_pLastZoneName;
wchar *CHud::m_ZoneToPrint;
-uint32 CHud::m_VehicleState; // = *(int32*)0x940560;
+uint32 CHud::m_VehicleState;
int32 CHud::m_VehicleFadeTimer;
-uint32 CHud::m_VehicleNameTimer; // = *(int32*)0x8F2A14;
-wchar *CHud::m_VehicleName; // = *(wchar**)0x942FB4;
-wchar *CHud::m_pLastVehicleName; // = *(wchar**)0x8E2DD8;
+uint32 CHud::m_VehicleNameTimer;
+wchar *CHud::m_VehicleName;
+wchar *CHud::m_pLastVehicleName;
wchar *CHud::m_pVehicleNameToPrint;
-wchar CHud::m_Message[256];// = (wchar*)0x72E318;
-wchar CHud::m_PagerMessage[256]; // = (wchar*)0x878840;
-bool CHud::m_Wants_To_Draw_Hud; // (bool*)0x95CD89;
-bool CHud::m_Wants_To_Draw_3dMarkers; // = *(bool*)0x95CD62;
-wchar CHud::m_BigMessage[6][128]; // = *(wchar(*)[6][128]) * (uintptr*)0x664CE0;
-int16 CHud::m_ItemToFlash; // = *(int16*)0x95CC82;
+wchar CHud::m_Message[256];
+wchar CHud::m_PagerMessage[256];
+bool CHud::m_Wants_To_Draw_Hud;
+bool CHud::m_Wants_To_Draw_3dMarkers;
+wchar CHud::m_BigMessage[6][128];
+int16 CHud::m_ItemToFlash;
// These aren't really in CHud
float CHud::BigMessageInUse[6];
float CHud::BigMessageAlpha[6];
float CHud::BigMessageX[6];
-float CHud::OddJob2OffTimer; // = *(float*)0x942FA0;
-bool CHud::CounterOnLastFrame; // = *(int8*)0x95CD67;
-float CHud::OddJob2XOffset; // = *(float*)0x8F1B5C;
-uint16 CHud::CounterFlashTimer; // = *(int16*)0x95CC20;
-uint16 CHud::OddJob2Timer; // = *(int16*)0x95CC52;
-bool CHud::TimerOnLastFrame; //= *(int8*)0x95CDA7;
-int16 CHud::OddJob2On; //= *(int16*)0x95CC78;
-uint16 CHud::TimerFlashTimer; //= *(int16*)0x95CC6C;
-int16 CHud::PagerSoundPlayed; //= *(int16*)0x95CC4A;
-int32 CHud::SpriteBrightness; //= *(int32*)0x95CC54;
-float CHud::PagerXOffset; //= *(float*)0x941590;
-int16 CHud::PagerTimer; //= *(int16*)0x95CC3A;
-int16 CHud::PagerOn; //= *(int16*)0x95CCA0;
-
-CSprite2d CHud::Sprites[NUM_HUD_SPRITES]; // = (CSprite2d*)0x95CB9C;
+float CHud::OddJob2OffTimer;
+bool CHud::CounterOnLastFrame;
+float CHud::OddJob2XOffset;
+uint16 CHud::CounterFlashTimer;
+uint16 CHud::OddJob2Timer;
+bool CHud::TimerOnLastFrame;
+int16 CHud::OddJob2On;
+uint16 CHud::TimerFlashTimer;
+int16 CHud::PagerSoundPlayed;
+int32 CHud::SpriteBrightness;
+float CHud::PagerXOffset;
+int16 CHud::PagerTimer;
+int16 CHud::PagerOn;
+
+CSprite2d CHud::Sprites[NUM_HUD_SPRITES];
struct
{
@@ -98,8 +98,8 @@ struct
{"siterocket", "siterocket"}
};
-RwTexture *&gpSniperSightTex = *(RwTexture**)0x8F5834;
-RwTexture *&gpRocketSightTex = *(RwTexture**)0x8E2C20;
+RwTexture *gpSniperSightTex;
+RwTexture *gpRocketSightTex;
void CHud::Draw()
{
diff --git a/src/render/MBlur.cpp b/src/render/MBlur.cpp
index d28671fa..d15fa422 100644
--- a/src/render/MBlur.cpp
+++ b/src/render/MBlur.cpp
@@ -6,9 +6,9 @@
// Originally taken from RW example 'mblur'
-RwRaster *&CMBlur::pFrontBuffer = *(RwRaster**)0x8E2C48;
-bool &CMBlur::ms_bJustInitialised = *(bool*)0x95CDAB;
-bool &CMBlur::BlurOn = *(bool*)0x95CDAD;
+RwRaster *CMBlur::pFrontBuffer;
+bool CMBlur::ms_bJustInitialised;
+bool CMBlur::BlurOn;
static RwIm2DVertex Vertex[4];
static RwImVertexIndex Index[6] = { 0, 1, 2, 0, 2, 3 };
diff --git a/src/render/MBlur.h b/src/render/MBlur.h
index 42827f99..e8a5bef8 100644
--- a/src/render/MBlur.h
+++ b/src/render/MBlur.h
@@ -3,9 +3,9 @@
class CMBlur
{
public:
- static RwRaster *&pFrontBuffer;
- static bool &ms_bJustInitialised;
- static bool &BlurOn;
+ static RwRaster *pFrontBuffer;
+ static bool ms_bJustInitialised;
+ static bool BlurOn;
public:
static void MotionBlurOpen(RwCamera *cam);
diff --git a/src/render/Particle.cpp b/src/render/Particle.cpp
index 6956a887..eb188128 100644
--- a/src/render/Particle.cpp
+++ b/src/render/Particle.cpp
@@ -204,26 +204,21 @@ RwRaster *gpGunShellRaster;
RwRaster *gpWakeOldRaster;
-//RwRaster *gpPointlightRaster; // CPointLights::RenderFogEffect
-RwRaster *&gpPointlightRaster = *(RwRaster **)0x8F5FE0;
+RwRaster *gpPointlightRaster; // CPointLights::RenderFogEffect
-//RwTexture *gpRainDropTex[MAX_RAINDROP_FILES]; // CWeather::RenderRainStreaks
-RwTexture * (&gpRainDropTex)[MAX_RAINDROP_FILES] = *(RwTexture * (*)[MAX_RAINDROP_FILES])*(int *)0x880660;
+RwTexture *gpRainDropTex[MAX_RAINDROP_FILES]; // CWeather::RenderRainStreaks
RwRaster *gpRainDropRaster[MAX_RAINDROP_FILES];
-//Float CParticle::ms_afRandTable[CParticle::RAND_TABLE_SIZE]; //
-float (&CParticle::ms_afRandTable)[CParticle::RAND_TABLE_SIZE] = *(float (*)[CParticle::RAND_TABLE_SIZE])*(int *)0x6E98C8;
+float CParticle::ms_afRandTable[CParticle::RAND_TABLE_SIZE];
CParticle *CParticle::m_pUnusedListHead;
-//Float CParticle::m_SinTable[CParticle::SIN_COS_TABLE_SIZE]; //
-//Float CParticle::m_CosTable[CParticle::SIN_COS_TABLE_SIZE]; /
-float (&CParticle::m_SinTable)[CParticle::SIN_COS_TABLE_SIZE] = *(float (*)[CParticle::SIN_COS_TABLE_SIZE])*(int *)0x877358;
-float (&CParticle::m_CosTable)[CParticle::SIN_COS_TABLE_SIZE] = *(float (*)[CParticle::SIN_COS_TABLE_SIZE])*(int *)0x70DA18;
+float CParticle::m_SinTable[CParticle::SIN_COS_TABLE_SIZE];
+float CParticle::m_CosTable[CParticle::SIN_COS_TABLE_SIZE];
int32 Randomizer;
diff --git a/src/render/Particle.h b/src/render/Particle.h
index 310ef0d4..604fbb82 100644
--- a/src/render/Particle.h
+++ b/src/render/Particle.h
@@ -49,16 +49,11 @@ public:
;
}
- //static float ms_afRandTable[RAND_TABLE_SIZE];
- static float (&ms_afRandTable)[RAND_TABLE_SIZE];
+ static float ms_afRandTable[RAND_TABLE_SIZE];
static CParticle *m_pUnusedListHead;
- /*
static float m_SinTable[SIN_COS_TABLE_SIZE];
static float m_CosTable[SIN_COS_TABLE_SIZE];
- */
- static float (&m_SinTable)[SIN_COS_TABLE_SIZE];
- static float (&m_CosTable)[SIN_COS_TABLE_SIZE];
static float Sin(int32 value) { return m_SinTable[value]; }
static float Cos(int32 value) { return m_CosTable[value]; }
diff --git a/src/render/PointLights.cpp b/src/render/PointLights.cpp
index a015ec54..92a89582 100644
--- a/src/render/PointLights.cpp
+++ b/src/render/PointLights.cpp
@@ -10,8 +10,8 @@
#include "Timer.h"
#include "PointLights.h"
-int16 &CPointLights::NumLights = *(int16*)0x95CC3E;
-CRegisteredPointLight *CPointLights::aLights = (CRegisteredPointLight*)0x7096D0;
+int16 CPointLights::NumLights;
+CRegisteredPointLight CPointLights::aLights[NUMPOINTLIGHTS];
void
CPointLights::InitPerFrame(void)
@@ -114,7 +114,7 @@ CPointLights::GenerateLightsAffectingObject(CVector *objCoors)
return ret;
}
-extern RwRaster *&gpPointlightRaster;
+extern RwRaster *gpPointlightRaster;
void
CPointLights::RemoveLightsAffectingObject(void)
diff --git a/src/render/PointLights.h b/src/render/PointLights.h
index c1dad87f..215e1dc9 100644
--- a/src/render/PointLights.h
+++ b/src/render/PointLights.h
@@ -18,8 +18,8 @@ static_assert(sizeof(CRegisteredPointLight) == 0x2C, "CRegisteredPointLight: err
class CPointLights
{
public:
- static int16 &NumLights;
- static CRegisteredPointLight *aLights; //[NUMPOINTLIGHTS]
+ static int16 NumLights;
+ static CRegisteredPointLight aLights[NUMPOINTLIGHTS];
enum {
LIGHT_POINT,
diff --git a/src/render/RenderBuffer.cpp b/src/render/RenderBuffer.cpp
index f6499451..4225619f 100644
--- a/src/render/RenderBuffer.cpp
+++ b/src/render/RenderBuffer.cpp
@@ -2,14 +2,14 @@
#include "patcher.h"
#include "RenderBuffer.h"
-int32 &TempBufferVerticesStored = *(int32*)0x8F5F78;
-int32 &TempBufferIndicesStored = *(int32*)0x8F1A4C;
+int32 TempBufferVerticesStored;
+int32 TempBufferIndicesStored;
-RwIm3DVertex *TempBufferRenderVertices = (RwIm3DVertex*)0x862330;
-RwImVertexIndex *TempBufferRenderIndexList = (RwImVertexIndex*)0x846288;
+RwIm3DVertex TempBufferRenderVertices[TEMPBUFFERVERTSIZE];
+RwImVertexIndex TempBufferRenderIndexList[TEMPBUFFERINDEXSIZE];
-int &RenderBuffer::VerticesToBeStored = *(int*)0x8F59C4;
-int &RenderBuffer::IndicesToBeStored = *(int*)0x8E28B0;
+int RenderBuffer::VerticesToBeStored;
+int RenderBuffer::IndicesToBeStored;
void
RenderBuffer::ClearRenderBuffer(void)
diff --git a/src/render/RenderBuffer.h b/src/render/RenderBuffer.h
index 2b8a9f86..485d24e3 100644
--- a/src/render/RenderBuffer.h
+++ b/src/render/RenderBuffer.h
@@ -1,8 +1,8 @@
class RenderBuffer
{
public:
- static int &VerticesToBeStored;
- static int &IndicesToBeStored;
+ static int VerticesToBeStored;
+ static int IndicesToBeStored;
static void ClearRenderBuffer(void);
static void StartStoring(int numIndices, int numVertices, RwImVertexIndex **indexStart, RwIm3DVertex **vertexStart);
static void StopStoring(void);
@@ -12,7 +12,7 @@ public:
#define TEMPBUFFERVERTSIZE 256
#define TEMPBUFFERINDEXSIZE 1024
-extern int32 &TempBufferVerticesStored;
-extern int32 &TempBufferIndicesStored;
-extern RwIm3DVertex *TempBufferRenderVertices;
-extern RwImVertexIndex *TempBufferRenderIndexList; \ No newline at end of file
+extern int32 TempBufferVerticesStored;
+extern int32 TempBufferIndicesStored;
+extern RwIm3DVertex TempBufferRenderVertices[TEMPBUFFERVERTSIZE];
+extern RwImVertexIndex TempBufferRenderIndexList[TEMPBUFFERINDEXSIZE]; \ No newline at end of file
diff --git a/src/render/Shadows.cpp b/src/render/Shadows.cpp
index e14b0453..56a93238 100644
--- a/src/render/Shadows.cpp
+++ b/src/render/Shadows.cpp
@@ -20,43 +20,31 @@
SETTWEAKPATH("Shadows");
TWEAKBOOL(gbPrintShite);
-#if 1
RwImVertexIndex ShadowIndexList[24];
-#else
-RwImVertexIndex (&ShadowIndexList)[24] = *(RwImVertexIndex (*)[24])*(int *)0x649188;
-#endif
-RwTexture *&gpShadowCarTex = *(RwTexture **)0x8F2C90;
-RwTexture *&gpShadowPedTex = *(RwTexture **)0x8F59D0;
-RwTexture *&gpShadowHeliTex = *(RwTexture **)0x8E2A90;
-RwTexture *&gpShadowExplosionTex = *(RwTexture **)0x8F2A00;
-RwTexture *&gpShadowHeadLightsTex = *(RwTexture **)0x95CB98;
-RwTexture *&gpOutline1Tex = *(RwTexture **)0x8F1B24;
-RwTexture *&gpOutline2Tex = *(RwTexture **)0x8F1B04;
-RwTexture *&gpOutline3Tex = *(RwTexture **)0x8F1B08;
-RwTexture *&gpBloodPoolTex = *(RwTexture **)0x9415F8;
-RwTexture *&gpReflectionTex = *(RwTexture **)0x8F582C;
-RwTexture *&gpGoalMarkerTex = *(RwTexture **)0x94142C;
-RwTexture *&gpWalkDontTex = *(RwTexture **)0x95CB4C;
-RwTexture *&gpCrackedGlassTex = *(RwTexture **)0x95CB94;
-RwTexture *&gpPostShadowTex = *(RwTexture **)0x8F59D4;
-RwTexture *&gpGoalTex = *(RwTexture**)0x94142C;
-
-#if 1
+RwTexture *gpShadowCarTex;
+RwTexture *gpShadowPedTex;
+RwTexture *gpShadowHeliTex;
+RwTexture *gpShadowExplosionTex;
+RwTexture *gpShadowHeadLightsTex;
+RwTexture *gpOutline1Tex;
+RwTexture *gpOutline2Tex;
+RwTexture *gpOutline3Tex;
+RwTexture *gpBloodPoolTex;
+RwTexture *gpReflectionTex;
+RwTexture *gpGoalMarkerTex;
+RwTexture *gpWalkDontTex;
+RwTexture *gpCrackedGlassTex;
+RwTexture *gpPostShadowTex;
+RwTexture *gpGoalTex;
+
int16 CShadows::ShadowsStoredToBeRendered;
CStoredShadow CShadows::asShadowsStored [MAX_STOREDSHADOWS];
CPolyBunch CShadows::aPolyBunches [MAX_POLYBUNCHES];
CStaticShadow CShadows::aStaticShadows [MAX_STATICSHADOWS];
CPolyBunch *CShadows::pEmptyBunchList;
CPermanentShadow CShadows::aPermanentShadows[MAX_PERMAMENTSHADOWS];
-#else
-int16 &CShadows::ShadowsStoredToBeRendered = *(int16*)0x95CCEE;
-CStoredShadow (&CShadows::asShadowsStored)[MAX_STOREDSHADOWS] = *(CStoredShadow (*)[MAX_STOREDSHADOWS])*(int *)0x779058;
-CPolyBunch (&CShadows::aPolyBunches)[MAX_POLYBUNCHES] = *(CPolyBunch (*)[MAX_POLYBUNCHES])*(int *)0x86F4C8;
-CStaticShadow (&CShadows::aStaticShadows)[MAX_STATICSHADOWS] = *(CStaticShadow (*)[MAX_STATICSHADOWS])*(int *)0x773BE8;
-CPolyBunch *&CShadows::pEmptyBunchList = *(CPolyBunch**)0x8F435C;
-CPermanentShadow (&CShadows::aPermanentShadows)[MAX_PERMAMENTSHADOWS] = *(CPermanentShadow (*)[MAX_PERMAMENTSHADOWS])*(int *)0x712040;
-#endif
+
void
CShadows::Init(void)
diff --git a/src/render/Shadows.h b/src/render/Shadows.h
index ced9f11b..d209fe90 100644
--- a/src/render/Shadows.h
+++ b/src/render/Shadows.h
@@ -174,18 +174,18 @@ public:
static void RenderIndicatorShadow (uint32 nID, uint8 ShadowType, RwTexture *pTexture, CVector *pPosn, float fFrontX, float fFrontY, float fSideX, float fSideY, int16 nIntensity);
};
-extern RwTexture *&gpShadowCarTex;
-extern RwTexture *&gpShadowPedTex;
-extern RwTexture *&gpShadowHeliTex;
-extern RwTexture *&gpShadowExplosionTex;
-extern RwTexture *&gpShadowHeadLightsTex;
-extern RwTexture *&gpOutline1Tex;
-extern RwTexture *&gpOutline2Tex;
-extern RwTexture *&gpOutline3Tex;
-extern RwTexture *&gpBloodPoolTex;
-extern RwTexture *&gpReflectionTex;
-extern RwTexture *&gpGoalMarkerTex;
-extern RwTexture *&gpWalkDontTex;
-extern RwTexture *&gpCrackedGlassTex;
-extern RwTexture *&gpPostShadowTex;
-extern RwTexture *&gpGoalTex;
+extern RwTexture *gpShadowCarTex;
+extern RwTexture *gpShadowPedTex;
+extern RwTexture *gpShadowHeliTex;
+extern RwTexture *gpShadowExplosionTex;
+extern RwTexture *gpShadowHeadLightsTex;
+extern RwTexture *gpOutline1Tex;
+extern RwTexture *gpOutline2Tex;
+extern RwTexture *gpOutline3Tex;
+extern RwTexture *gpBloodPoolTex;
+extern RwTexture *gpReflectionTex;
+extern RwTexture *gpGoalMarkerTex;
+extern RwTexture *gpWalkDontTex;
+extern RwTexture *gpCrackedGlassTex;
+extern RwTexture *gpPostShadowTex;
+extern RwTexture *gpGoalTex;
diff --git a/src/render/Sprite.cpp b/src/render/Sprite.cpp
index 82754121..57ab8f14 100644
--- a/src/render/Sprite.cpp
+++ b/src/render/Sprite.cpp
@@ -5,10 +5,10 @@
#include "Camera.h"
#include "Sprite.h"
-float &CSprite::m_f2DNearScreenZ = *(float*)0x8F1ABC;
-float &CSprite::m_f2DFarScreenZ = *(float*)0x8F2C94;
-float &CSprite::m_fRecipNearClipPlane = *(float*)0x8F5FFC;
-int32 &CSprite::m_bFlushSpriteBufferSwitchZTest = *(int32*)0x8F5FB0;
+float CSprite::m_f2DNearScreenZ;
+float CSprite::m_f2DFarScreenZ;
+float CSprite::m_fRecipNearClipPlane;
+int32 CSprite::m_bFlushSpriteBufferSwitchZTest;
float
CSprite::CalcHorizonCoors(void)
@@ -40,9 +40,9 @@ CSprite::CalcScreenCoors(const RwV3d &in, RwV3d *out, float *outw, float *outh,
}
#define SPRITEBUFFERSIZE 64
-static int32 &nSpriteBufferIndex = *(int32*)0x649A80;
-static RwIm2DVertex *SpriteBufferVerts = (RwIm2DVertex*)0x649A84; //[SPRITEBUFFERSIZE*6];
-static RwIm2DVertex *verts = (RwIm2DVertex*)0x64C484; //[4];
+static int32 nSpriteBufferIndex;
+static RwIm2DVertex SpriteBufferVerts[SPRITEBUFFERSIZE*6];
+static RwIm2DVertex verts[4];
void
CSprite::InitSpriteBuffer(void)
diff --git a/src/render/Sprite.h b/src/render/Sprite.h
index 33953ff3..ec4c1d1b 100644
--- a/src/render/Sprite.h
+++ b/src/render/Sprite.h
@@ -2,10 +2,10 @@
class CSprite
{
- static float &m_f2DNearScreenZ;
- static float &m_f2DFarScreenZ;
- static float &m_fRecipNearClipPlane;
- static int32 &m_bFlushSpriteBufferSwitchZTest;
+ static float m_f2DNearScreenZ;
+ static float m_f2DFarScreenZ;
+ static float m_fRecipNearClipPlane;
+ static int32 m_bFlushSpriteBufferSwitchZTest;
public:
static float CalcHorizonCoors(void);
static bool CalcScreenCoors(const RwV3d &in, RwV3d *out, float *outw, float *outh, bool farclip);
diff --git a/src/render/Sprite2d.cpp b/src/render/Sprite2d.cpp
index 1fe70121..655fd841 100644
--- a/src/render/Sprite2d.cpp
+++ b/src/render/Sprite2d.cpp
@@ -5,7 +5,7 @@
#include "Camera.h"
#include "Sprite2d.h"
-RwIm2DVertex CSprite2d::maVertices[4];
+RwIm2DVertex CSprite2d::maVertices[8];
float CSprite2d::RecipNearClip;
int32 CSprite2d::mCurrentBank;
RwTexture *CSprite2d::mpBankTextures[10];
diff --git a/src/render/Sprite2d.h b/src/render/Sprite2d.h
index 0b073557..0e12d441 100644
--- a/src/render/Sprite2d.h
+++ b/src/render/Sprite2d.h
@@ -8,7 +8,7 @@ class CSprite2d
static int32 mCurrentSprite[10];
static int32 mBankStart[10];
static RwIm2DVertex maBankVertices[500];
- static RwIm2DVertex maVertices[4];
+ static RwIm2DVertex maVertices[8];
public:
RwTexture *m_pTexture;
diff --git a/src/render/Timecycle.cpp b/src/render/Timecycle.cpp
index 7ab3e91e..6e24a76e 100644
--- a/src/render/Timecycle.cpp
+++ b/src/render/Timecycle.cpp
@@ -10,101 +10,101 @@
#include "FileMgr.h"
#include "Timecycle.h"
-int (*CTimeCycle::m_nAmbientRed)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x86AF78;
-int (*CTimeCycle::m_nAmbientGreen)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x665308;
-int (*CTimeCycle::m_nAmbientBlue)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x72CF88;
-int (*CTimeCycle::m_nDirectionalRed)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x6FAB78;
-int (*CTimeCycle::m_nDirectionalGreen)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x6F4528;
-int (*CTimeCycle::m_nDirectionalBlue)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x83CE58;
-int (*CTimeCycle::m_nSkyTopRed)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x87FB90;
-int (*CTimeCycle::m_nSkyTopGreen)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x8460A8;
-int (*CTimeCycle::m_nSkyTopBlue)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x87B158;
-int (*CTimeCycle::m_nSkyBottomRed)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x6FA960;
-int (*CTimeCycle::m_nSkyBottomGreen)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x70D6A8;
-int (*CTimeCycle::m_nSkyBottomBlue)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x83D288;
-int (*CTimeCycle::m_nSunCoreRed)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x878360;
-int (*CTimeCycle::m_nSunCoreGreen)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x6EE088;
-int (*CTimeCycle::m_nSunCoreBlue)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x773A68;
-int (*CTimeCycle::m_nSunCoronaRed)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x664B60;
-int (*CTimeCycle::m_nSunCoronaGreen)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x6F01E0;
-int (*CTimeCycle::m_nSunCoronaBlue)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x6E6340;
-float (*CTimeCycle::m_fSunSize)[NUMWEATHERS] = (float(*)[NUMWEATHERS])0x733510;
-float (*CTimeCycle::m_fSpriteSize)[NUMWEATHERS] = (float(*)[NUMWEATHERS])0x87F820;
-float (*CTimeCycle::m_fSpriteBrightness)[NUMWEATHERS] = (float(*)[NUMWEATHERS])0x6E96F0;
-short (*CTimeCycle::m_nShadowStrength)[NUMWEATHERS] = (short(*)[NUMWEATHERS])0x83CFD8;
-short (*CTimeCycle::m_nLightShadowStrength)[NUMWEATHERS] = (short(*)[NUMWEATHERS])0x72B0F8;
-short (*CTimeCycle::m_nTreeShadowStrength)[NUMWEATHERS] = (short(*)[NUMWEATHERS])0x733450;
-float (*CTimeCycle::m_fFogStart)[NUMWEATHERS] = (float(*)[NUMWEATHERS])0x8806C8;
-float (*CTimeCycle::m_fFarClip)[NUMWEATHERS] = (float(*)[NUMWEATHERS])0x8804E0;
-float (*CTimeCycle::m_fLightsOnGroundBrightness)[NUMWEATHERS] = (float(*)[NUMWEATHERS])0x83D108;
-int (*CTimeCycle::m_nLowCloudsRed)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x726770;
-int (*CTimeCycle::m_nLowCloudsGreen)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x87BF08;
-int (*CTimeCycle::m_nLowCloudsBlue)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x87FA10;
-int (*CTimeCycle::m_nFluffyCloudsTopRed)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x70F2B0;
-int (*CTimeCycle::m_nFluffyCloudsTopGreen)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x72D288;
-int (*CTimeCycle::m_nFluffyCloudsTopBlue)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x86B108;
-int (*CTimeCycle::m_nFluffyCloudsBottomRed)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x6E8DA8;
-int (*CTimeCycle::m_nFluffyCloudsBottomGreen)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x715AA8;
-int (*CTimeCycle::m_nFluffyCloudsBottomBlue)[NUMWEATHERS] = (int(*)[NUMWEATHERS])0x6EE2D0;
-float (*CTimeCycle::m_fBlurRed)[NUMWEATHERS] = (float(*)[NUMWEATHERS])0x87C7E0;
-float (*CTimeCycle::m_fBlurGreen)[NUMWEATHERS] = (float(*)[NUMWEATHERS])0x774C10;
-float (*CTimeCycle::m_fBlurBlue)[NUMWEATHERS] = (float(*)[NUMWEATHERS])0x8784E0;
-float (*CTimeCycle::m_fBlurAlpha)[NUMWEATHERS] = (float(*)[NUMWEATHERS])0x733690;
-
-float &CTimeCycle::m_fCurrentAmbientRed = *(float*)0x8F29B4;
-float &CTimeCycle::m_fCurrentAmbientGreen = *(float*)0x94144C;
-float &CTimeCycle::m_fCurrentAmbientBlue = *(float*)0x942FC0;
-float &CTimeCycle::m_fCurrentDirectionalRed = *(float*)0x8F29D8;
-float &CTimeCycle::m_fCurrentDirectionalGreen = *(float*)0x940594;
-float &CTimeCycle::m_fCurrentDirectionalBlue = *(float*)0x942FAC;
-int &CTimeCycle::m_nCurrentSkyTopRed = *(int*)0x9403C0;
-int &CTimeCycle::m_nCurrentSkyTopGreen = *(int*)0x943074;
-int &CTimeCycle::m_nCurrentSkyTopBlue = *(int*)0x8F29B8;
-int &CTimeCycle::m_nCurrentSkyBottomRed = *(int*)0x9414D0;
-int &CTimeCycle::m_nCurrentSkyBottomGreen = *(int*)0x8F2BD0;
-int &CTimeCycle::m_nCurrentSkyBottomBlue = *(int*)0x8F625C;
-int &CTimeCycle::m_nCurrentSunCoreRed = *(int*)0x8F2534;
-int &CTimeCycle::m_nCurrentSunCoreGreen = *(int*)0x8F6264;
-int &CTimeCycle::m_nCurrentSunCoreBlue = *(int*)0x94149C;
-int &CTimeCycle::m_nCurrentSunCoronaRed = *(int*)0x8F2C1C;
-int &CTimeCycle::m_nCurrentSunCoronaGreen = *(int*)0x885B54;
-int &CTimeCycle::m_nCurrentSunCoronaBlue = *(int*)0x880F60;
-float &CTimeCycle::m_fCurrentSunSize = *(float*)0x940588;
-float &CTimeCycle::m_fCurrentSpriteSize = *(float*)0x8F1AA8;
-float &CTimeCycle::m_fCurrentSpriteBrightness = *(float*)0x8F5FDC;
-int &CTimeCycle::m_nCurrentShadowStrength = *(int*)0x95CC76;
-int &CTimeCycle::m_nCurrentLightShadowStrength = *(int*)0x95CC66;
-int &CTimeCycle::m_nCurrentTreeShadowStrength = *(int*)0x95CC86;
-float &CTimeCycle::m_fCurrentFogStart = *(float*)0x8F1AE0;
-float &CTimeCycle::m_fCurrentFarClip = *(float*)0x8F5FD8;
-float &CTimeCycle::m_fCurrentLightsOnGroundBrightness = *(float*)0x8F1B60;
-int &CTimeCycle::m_nCurrentLowCloudsRed = *(int*)0x95CB54;
-int &CTimeCycle::m_nCurrentLowCloudsGreen = *(int*)0x95CB48;
-int &CTimeCycle::m_nCurrentLowCloudsBlue = *(int*)0x95CC1C;
-int &CTimeCycle::m_nCurrentFluffyCloudsTopRed = *(int*)0x8F2550;
-int &CTimeCycle::m_nCurrentFluffyCloudsTopGreen = *(int*)0x8F59CC;
-int &CTimeCycle::m_nCurrentFluffyCloudsTopBlue = *(int*)0x941434;
-int &CTimeCycle::m_nCurrentFluffyCloudsBottomRed = *(int*)0x8F1A38;
-int &CTimeCycle::m_nCurrentFluffyCloudsBottomGreen = *(int*)0x8E28B8;
-int &CTimeCycle::m_nCurrentFluffyCloudsBottomBlue = *(int*)0x8F3960;
-float &CTimeCycle::m_fCurrentBlurRed = *(float*)0x8F6000;
-float &CTimeCycle::m_fCurrentBlurGreen = *(float*)0x9405A0;
-float &CTimeCycle::m_fCurrentBlurBlue = *(float*)0x8F250C;
-float &CTimeCycle::m_fCurrentBlurAlpha = *(float*)0x940728;
-int &CTimeCycle::m_nCurrentFogColourRed = *(int*)0x940714;
-int &CTimeCycle::m_nCurrentFogColourGreen = *(int*)0x8E2A60;
-int &CTimeCycle::m_nCurrentFogColourBlue = *(int*)0x8F57EC;
-
-int &CTimeCycle::m_FogReduction = *(int*)0x880FB8;
-
-int &CTimeCycle::m_CurrentStoredValue = *(int*)0x94057C;
-CVector *CTimeCycle::m_VectorToSun = (CVector*)0x665548; // [16]
-float *CTimeCycle::m_fShadowFrontX = (float*)0x72CE90;
-float *CTimeCycle::m_fShadowFrontY = (float*)0x72CE50;
-float *CTimeCycle::m_fShadowSideX = (float*)0x87C708;
-float *CTimeCycle::m_fShadowSideY = (float*)0x87C6C8;
-float *CTimeCycle::m_fShadowDisplacementX = (float*)0x6F0748;
-float *CTimeCycle::m_fShadowDisplacementY = (float*)0x6F0788;
+int CTimeCycle::m_nAmbientRed[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nAmbientGreen[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nAmbientBlue[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nDirectionalRed[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nDirectionalGreen[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nDirectionalBlue[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nSkyTopRed[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nSkyTopGreen[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nSkyTopBlue[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nSkyBottomRed[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nSkyBottomGreen[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nSkyBottomBlue[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nSunCoreRed[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nSunCoreGreen[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nSunCoreBlue[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nSunCoronaRed[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nSunCoronaGreen[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nSunCoronaBlue[NUMHOURS][NUMWEATHERS];
+float CTimeCycle::m_fSunSize[NUMHOURS][NUMWEATHERS];
+float CTimeCycle::m_fSpriteSize[NUMHOURS][NUMWEATHERS];
+float CTimeCycle::m_fSpriteBrightness[NUMHOURS][NUMWEATHERS];
+short CTimeCycle::m_nShadowStrength[NUMHOURS][NUMWEATHERS];
+short CTimeCycle::m_nLightShadowStrength[NUMHOURS][NUMWEATHERS];
+short CTimeCycle::m_nTreeShadowStrength[NUMHOURS][NUMWEATHERS];
+float CTimeCycle::m_fFogStart[NUMHOURS][NUMWEATHERS];
+float CTimeCycle::m_fFarClip[NUMHOURS][NUMWEATHERS];
+float CTimeCycle::m_fLightsOnGroundBrightness[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nLowCloudsRed[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nLowCloudsGreen[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nLowCloudsBlue[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nFluffyCloudsTopRed[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nFluffyCloudsTopGreen[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nFluffyCloudsTopBlue[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nFluffyCloudsBottomRed[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nFluffyCloudsBottomGreen[NUMHOURS][NUMWEATHERS];
+int CTimeCycle::m_nFluffyCloudsBottomBlue[NUMHOURS][NUMWEATHERS];
+float CTimeCycle::m_fBlurRed[NUMHOURS][NUMWEATHERS];
+float CTimeCycle::m_fBlurGreen[NUMHOURS][NUMWEATHERS];
+float CTimeCycle::m_fBlurBlue[NUMHOURS][NUMWEATHERS];
+float CTimeCycle::m_fBlurAlpha[NUMHOURS][NUMWEATHERS];
+
+float CTimeCycle::m_fCurrentAmbientRed;
+float CTimeCycle::m_fCurrentAmbientGreen;
+float CTimeCycle::m_fCurrentAmbientBlue;
+float CTimeCycle::m_fCurrentDirectionalRed;
+float CTimeCycle::m_fCurrentDirectionalGreen;
+float CTimeCycle::m_fCurrentDirectionalBlue;
+int CTimeCycle::m_nCurrentSkyTopRed;
+int CTimeCycle::m_nCurrentSkyTopGreen;
+int CTimeCycle::m_nCurrentSkyTopBlue;
+int CTimeCycle::m_nCurrentSkyBottomRed;
+int CTimeCycle::m_nCurrentSkyBottomGreen;
+int CTimeCycle::m_nCurrentSkyBottomBlue;
+int CTimeCycle::m_nCurrentSunCoreRed;
+int CTimeCycle::m_nCurrentSunCoreGreen;
+int CTimeCycle::m_nCurrentSunCoreBlue;
+int CTimeCycle::m_nCurrentSunCoronaRed;
+int CTimeCycle::m_nCurrentSunCoronaGreen;
+int CTimeCycle::m_nCurrentSunCoronaBlue;
+float CTimeCycle::m_fCurrentSunSize;
+float CTimeCycle::m_fCurrentSpriteSize;
+float CTimeCycle::m_fCurrentSpriteBrightness;
+int CTimeCycle::m_nCurrentShadowStrength;
+int CTimeCycle::m_nCurrentLightShadowStrength;
+int CTimeCycle::m_nCurrentTreeShadowStrength;
+float CTimeCycle::m_fCurrentFogStart;
+float CTimeCycle::m_fCurrentFarClip;
+float CTimeCycle::m_fCurrentLightsOnGroundBrightness;
+int CTimeCycle::m_nCurrentLowCloudsRed;
+int CTimeCycle::m_nCurrentLowCloudsGreen;
+int CTimeCycle::m_nCurrentLowCloudsBlue;
+int CTimeCycle::m_nCurrentFluffyCloudsTopRed;
+int CTimeCycle::m_nCurrentFluffyCloudsTopGreen;
+int CTimeCycle::m_nCurrentFluffyCloudsTopBlue;
+int CTimeCycle::m_nCurrentFluffyCloudsBottomRed;
+int CTimeCycle::m_nCurrentFluffyCloudsBottomGreen;
+int CTimeCycle::m_nCurrentFluffyCloudsBottomBlue;
+float CTimeCycle::m_fCurrentBlurRed;
+float CTimeCycle::m_fCurrentBlurGreen;
+float CTimeCycle::m_fCurrentBlurBlue;
+float CTimeCycle::m_fCurrentBlurAlpha;
+int CTimeCycle::m_nCurrentFogColourRed;
+int CTimeCycle::m_nCurrentFogColourGreen;
+int CTimeCycle::m_nCurrentFogColourBlue;
+
+int CTimeCycle::m_FogReduction;
+
+int CTimeCycle::m_CurrentStoredValue;
+CVector CTimeCycle::m_VectorToSun[16];
+float CTimeCycle::m_fShadowFrontX[16];
+float CTimeCycle::m_fShadowFrontY[16];
+float CTimeCycle::m_fShadowSideX[16];
+float CTimeCycle::m_fShadowSideY[16];
+float CTimeCycle::m_fShadowDisplacementX[16];
+float CTimeCycle::m_fShadowDisplacementY[16];
void
diff --git a/src/render/Timecycle.h b/src/render/Timecycle.h
index ed4a026b..28a0b7dd 100644
--- a/src/render/Timecycle.h
+++ b/src/render/Timecycle.h
@@ -2,102 +2,102 @@
class CTimeCycle
{
- static int (*m_nAmbientRed)[NUMWEATHERS];
- static int (*m_nAmbientGreen)[NUMWEATHERS];
- static int (*m_nAmbientBlue)[NUMWEATHERS];
- static int (*m_nDirectionalRed)[NUMWEATHERS];
- static int (*m_nDirectionalGreen)[NUMWEATHERS];
- static int (*m_nDirectionalBlue)[NUMWEATHERS];
- static int (*m_nSkyTopRed)[NUMWEATHERS];
- static int (*m_nSkyTopGreen)[NUMWEATHERS];
- static int (*m_nSkyTopBlue)[NUMWEATHERS];
- static int (*m_nSkyBottomRed)[NUMWEATHERS];
- static int (*m_nSkyBottomGreen)[NUMWEATHERS];
- static int (*m_nSkyBottomBlue)[NUMWEATHERS];
- static int (*m_nSunCoreRed)[NUMWEATHERS];
- static int (*m_nSunCoreGreen)[NUMWEATHERS];
- static int (*m_nSunCoreBlue)[NUMWEATHERS];
- static int (*m_nSunCoronaRed)[NUMWEATHERS];
- static int (*m_nSunCoronaGreen)[NUMWEATHERS];
- static int (*m_nSunCoronaBlue)[NUMWEATHERS];
- static float (*m_fSunSize)[NUMWEATHERS];
- static float (*m_fSpriteSize)[NUMWEATHERS];
- static float (*m_fSpriteBrightness)[NUMWEATHERS];
- static short (*m_nShadowStrength)[NUMWEATHERS];
- static short (*m_nLightShadowStrength)[NUMWEATHERS];
- static short (*m_nTreeShadowStrength)[NUMWEATHERS];
- static float (*m_fFogStart)[NUMWEATHERS];
- static float (*m_fFarClip)[NUMWEATHERS];
- static float (*m_fLightsOnGroundBrightness)[NUMWEATHERS];
- static int (*m_nLowCloudsRed)[NUMWEATHERS];
- static int (*m_nLowCloudsGreen)[NUMWEATHERS];
- static int (*m_nLowCloudsBlue)[NUMWEATHERS];
- static int (*m_nFluffyCloudsTopRed)[NUMWEATHERS];
- static int (*m_nFluffyCloudsTopGreen)[NUMWEATHERS];
- static int (*m_nFluffyCloudsTopBlue)[NUMWEATHERS];
- static int (*m_nFluffyCloudsBottomRed)[NUMWEATHERS];
- static int (*m_nFluffyCloudsBottomGreen)[NUMWEATHERS];
- static int (*m_nFluffyCloudsBottomBlue)[NUMWEATHERS];
- static float (*m_fBlurRed)[NUMWEATHERS];
- static float (*m_fBlurGreen)[NUMWEATHERS];
- static float (*m_fBlurBlue)[NUMWEATHERS];
- static float (*m_fBlurAlpha)[NUMWEATHERS];
+ static int m_nAmbientRed[NUMHOURS][NUMWEATHERS];
+ static int m_nAmbientGreen[NUMHOURS][NUMWEATHERS];
+ static int m_nAmbientBlue[NUMHOURS][NUMWEATHERS];
+ static int m_nDirectionalRed[NUMHOURS][NUMWEATHERS];
+ static int m_nDirectionalGreen[NUMHOURS][NUMWEATHERS];
+ static int m_nDirectionalBlue[NUMHOURS][NUMWEATHERS];
+ static int m_nSkyTopRed[NUMHOURS][NUMWEATHERS];
+ static int m_nSkyTopGreen[NUMHOURS][NUMWEATHERS];
+ static int m_nSkyTopBlue[NUMHOURS][NUMWEATHERS];
+ static int m_nSkyBottomRed[NUMHOURS][NUMWEATHERS];
+ static int m_nSkyBottomGreen[NUMHOURS][NUMWEATHERS];
+ static int m_nSkyBottomBlue[NUMHOURS][NUMWEATHERS];
+ static int m_nSunCoreRed[NUMHOURS][NUMWEATHERS];
+ static int m_nSunCoreGreen[NUMHOURS][NUMWEATHERS];
+ static int m_nSunCoreBlue[NUMHOURS][NUMWEATHERS];
+ static int m_nSunCoronaRed[NUMHOURS][NUMWEATHERS];
+ static int m_nSunCoronaGreen[NUMHOURS][NUMWEATHERS];
+ static int m_nSunCoronaBlue[NUMHOURS][NUMWEATHERS];
+ static float m_fSunSize[NUMHOURS][NUMWEATHERS];
+ static float m_fSpriteSize[NUMHOURS][NUMWEATHERS];
+ static float m_fSpriteBrightness[NUMHOURS][NUMWEATHERS];
+ static short m_nShadowStrength[NUMHOURS][NUMWEATHERS];
+ static short m_nLightShadowStrength[NUMHOURS][NUMWEATHERS];
+ static short m_nTreeShadowStrength[NUMHOURS][NUMWEATHERS];
+ static float m_fFogStart[NUMHOURS][NUMWEATHERS];
+ static float m_fFarClip[NUMHOURS][NUMWEATHERS];
+ static float m_fLightsOnGroundBrightness[NUMHOURS][NUMWEATHERS];
+ static int m_nLowCloudsRed[NUMHOURS][NUMWEATHERS];
+ static int m_nLowCloudsGreen[NUMHOURS][NUMWEATHERS];
+ static int m_nLowCloudsBlue[NUMHOURS][NUMWEATHERS];
+ static int m_nFluffyCloudsTopRed[NUMHOURS][NUMWEATHERS];
+ static int m_nFluffyCloudsTopGreen[NUMHOURS][NUMWEATHERS];
+ static int m_nFluffyCloudsTopBlue[NUMHOURS][NUMWEATHERS];
+ static int m_nFluffyCloudsBottomRed[NUMHOURS][NUMWEATHERS];
+ static int m_nFluffyCloudsBottomGreen[NUMHOURS][NUMWEATHERS];
+ static int m_nFluffyCloudsBottomBlue[NUMHOURS][NUMWEATHERS];
+ static float m_fBlurRed[NUMHOURS][NUMWEATHERS];
+ static float m_fBlurGreen[NUMHOURS][NUMWEATHERS];
+ static float m_fBlurBlue[NUMHOURS][NUMWEATHERS];
+ static float m_fBlurAlpha[NUMHOURS][NUMWEATHERS];
- static float &m_fCurrentAmbientRed;
- static float &m_fCurrentAmbientGreen;
- static float &m_fCurrentAmbientBlue;
- static float &m_fCurrentDirectionalRed;
- static float &m_fCurrentDirectionalGreen;
- static float &m_fCurrentDirectionalBlue;
- static int &m_nCurrentSkyTopRed;
- static int &m_nCurrentSkyTopGreen;
- static int &m_nCurrentSkyTopBlue;
- static int &m_nCurrentSkyBottomRed;
- static int &m_nCurrentSkyBottomGreen;
- static int &m_nCurrentSkyBottomBlue;
- static int &m_nCurrentSunCoreRed;
- static int &m_nCurrentSunCoreGreen;
- static int &m_nCurrentSunCoreBlue;
- static int &m_nCurrentSunCoronaRed;
- static int &m_nCurrentSunCoronaGreen;
- static int &m_nCurrentSunCoronaBlue;
- static float &m_fCurrentSunSize;
- static float &m_fCurrentSpriteSize;
- static float &m_fCurrentSpriteBrightness;
- static int &m_nCurrentShadowStrength;
- static int &m_nCurrentLightShadowStrength;
- static int &m_nCurrentTreeShadowStrength;
- static float &m_fCurrentFogStart;
- static float &m_fCurrentFarClip;
- static float &m_fCurrentLightsOnGroundBrightness;
- static int &m_nCurrentLowCloudsRed;
- static int &m_nCurrentLowCloudsGreen;
- static int &m_nCurrentLowCloudsBlue;
- static int &m_nCurrentFluffyCloudsTopRed;
- static int &m_nCurrentFluffyCloudsTopGreen;
- static int &m_nCurrentFluffyCloudsTopBlue;
- static int &m_nCurrentFluffyCloudsBottomRed;
- static int &m_nCurrentFluffyCloudsBottomGreen;
- static int &m_nCurrentFluffyCloudsBottomBlue;
- static float &m_fCurrentBlurRed;
- static float &m_fCurrentBlurGreen;
- static float &m_fCurrentBlurBlue;
- static float &m_fCurrentBlurAlpha;
- static int &m_nCurrentFogColourRed;
- static int &m_nCurrentFogColourGreen;
- static int &m_nCurrentFogColourBlue;
+ static float m_fCurrentAmbientRed;
+ static float m_fCurrentAmbientGreen;
+ static float m_fCurrentAmbientBlue;
+ static float m_fCurrentDirectionalRed;
+ static float m_fCurrentDirectionalGreen;
+ static float m_fCurrentDirectionalBlue;
+ static int m_nCurrentSkyTopRed;
+ static int m_nCurrentSkyTopGreen;
+ static int m_nCurrentSkyTopBlue;
+ static int m_nCurrentSkyBottomRed;
+ static int m_nCurrentSkyBottomGreen;
+ static int m_nCurrentSkyBottomBlue;
+ static int m_nCurrentSunCoreRed;
+ static int m_nCurrentSunCoreGreen;
+ static int m_nCurrentSunCoreBlue;
+ static int m_nCurrentSunCoronaRed;
+ static int m_nCurrentSunCoronaGreen;
+ static int m_nCurrentSunCoronaBlue;
+ static float m_fCurrentSunSize;
+ static float m_fCurrentSpriteSize;
+ static float m_fCurrentSpriteBrightness;
+ static int m_nCurrentShadowStrength;
+ static int m_nCurrentLightShadowStrength;
+ static int m_nCurrentTreeShadowStrength;
+ static float m_fCurrentFogStart;
+ static float m_fCurrentFarClip;
+ static float m_fCurrentLightsOnGroundBrightness;
+ static int m_nCurrentLowCloudsRed;
+ static int m_nCurrentLowCloudsGreen;
+ static int m_nCurrentLowCloudsBlue;
+ static int m_nCurrentFluffyCloudsTopRed;
+ static int m_nCurrentFluffyCloudsTopGreen;
+ static int m_nCurrentFluffyCloudsTopBlue;
+ static int m_nCurrentFluffyCloudsBottomRed;
+ static int m_nCurrentFluffyCloudsBottomGreen;
+ static int m_nCurrentFluffyCloudsBottomBlue;
+ static float m_fCurrentBlurRed;
+ static float m_fCurrentBlurGreen;
+ static float m_fCurrentBlurBlue;
+ static float m_fCurrentBlurAlpha;
+ static int m_nCurrentFogColourRed;
+ static int m_nCurrentFogColourGreen;
+ static int m_nCurrentFogColourBlue;
- static int &m_FogReduction;
+ static int m_FogReduction;
public:
- static int &m_CurrentStoredValue;
- static CVector *m_VectorToSun; // [16]
- static float *m_fShadowFrontX; // [16]
- static float *m_fShadowFrontY; // [16]
- static float *m_fShadowSideX; // [16]
- static float *m_fShadowSideY; // [16]
- static float *m_fShadowDisplacementX; // [16]
- static float *m_fShadowDisplacementY; // [16]
+ static int m_CurrentStoredValue;
+ static CVector m_VectorToSun[16];
+ static float m_fShadowFrontX[16];
+ static float m_fShadowFrontY[16];
+ static float m_fShadowSideX[16];
+ static float m_fShadowSideY[16];
+ static float m_fShadowDisplacementX[16];
+ static float m_fShadowDisplacementY[16];
static float GetAmbientRed(void) { return m_fCurrentAmbientRed; }
static float GetAmbientGreen(void) { return m_fCurrentAmbientGreen; }
diff --git a/src/render/WaterLevel.cpp b/src/render/WaterLevel.cpp
index a1c2af93..d5a54742 100644
--- a/src/render/WaterLevel.cpp
+++ b/src/render/WaterLevel.cpp
@@ -39,8 +39,8 @@ int16 CWaterLevel::nGeomUsed;
//RwTexture *gpWaterTex;
//RwRaster *gpWaterRaster;
-RwTexture *&gpWaterTex = *(RwTexture **)0x64D070;
-RwRaster *&gpWaterRaster = *(RwRaster **)0x8F5FD4;
+RwTexture *gpWaterTex;
+RwRaster *gpWaterRaster;
const float fAdd1 = 180.0f;
diff --git a/src/render/WaterLevel.h b/src/render/WaterLevel.h
index 827e83d2..a471bc52 100644
--- a/src/render/WaterLevel.h
+++ b/src/render/WaterLevel.h
@@ -64,7 +64,7 @@
#define MAX_BOAT_WAKES 8
-extern RwRaster*& gpWaterRaster;
+extern RwRaster* gpWaterRaster;
class CWaterLevel
{
diff --git a/src/render/Weather.cpp b/src/render/Weather.cpp
index 7aa2778f..1aa6be82 100644
--- a/src/render/Weather.cpp
+++ b/src/render/Weather.cpp
@@ -18,35 +18,35 @@
#include "World.h"
#include "ZoneCull.h"
-int32 &CWeather::SoundHandle = *(int32*)0x5FFBC4;
+int32 CWeather::SoundHandle = -1;
-int32 &CWeather::WeatherTypeInList = *(int32*)0x8F626C;
-int16 &CWeather::OldWeatherType = *(int16*)0x95CCEC;
-int16 &CWeather::NewWeatherType = *(int16*)0x95CC70;
-int16 &CWeather::ForcedWeatherType = *(int16*)0x95CC80;
+int32 CWeather::WeatherTypeInList;
+int16 CWeather::OldWeatherType;
+int16 CWeather::NewWeatherType;
+int16 CWeather::ForcedWeatherType;
-bool &CWeather::LightningFlash = *(bool*)0x95CDA3;
-bool &CWeather::LightningBurst = *(bool*)0x95CDAC;
-uint32 &CWeather::LightningStart = *(uint32*)0x8F5F84;
-uint32 &CWeather::LightningFlashLastChange = *(uint32*)0x8E2C0C;
-uint32 &CWeather::WhenToPlayLightningSound = *(uint32*)0x8F57E4;
-uint32 &CWeather::LightningDuration = *(uint32*)0x940578;
+bool CWeather::LightningFlash;
+bool CWeather::LightningBurst;
+uint32 CWeather::LightningStart;
+uint32 CWeather::LightningFlashLastChange;
+uint32 CWeather::WhenToPlayLightningSound;
+uint32 CWeather::LightningDuration;
-float &CWeather::Foggyness = *(float*)0x885AF4;
-float &CWeather::CloudCoverage = *(float*)0x8E2818;
-float &CWeather::Wind = *(float*)0x8E2BF8;
-float &CWeather::Rain = *(float*)0x8E2BFC;
-float &CWeather::InterpolationValue = *(float*)0x8F2520;
-float &CWeather::WetRoads = *(float*)0x8F5FF8;
-float &CWeather::Rainbow = *(float*)0x940598;
+float CWeather::Foggyness;
+float CWeather::CloudCoverage;
+float CWeather::Wind;
+float CWeather::Rain;
+float CWeather::InterpolationValue;
+float CWeather::WetRoads;
+float CWeather::Rainbow;
-bool &CWeather::bScriptsForceRain = *(bool*)0x95CD7D;
-bool &CWeather::Stored_StateStored = *(bool*)0x95CDC1;
+bool CWeather::bScriptsForceRain;
+bool CWeather::Stored_StateStored;
-float &CWeather::Stored_InterpolationValue = *(float*)0x942F54;
-int16 &CWeather::Stored_OldWeatherType = *(int16*)0x95CC68;
-int16 &CWeather::Stored_NewWeatherType = *(int16*)0x95CCAE;
-float &CWeather::Stored_Rain = *(float*)0x885B4C;
+float CWeather::Stored_InterpolationValue;
+int16 CWeather::Stored_OldWeatherType;
+int16 CWeather::Stored_NewWeatherType;
+float CWeather::Stored_Rain;
tRainStreak Streaks[NUM_RAIN_STREAKS];
diff --git a/src/render/Weather.h b/src/render/Weather.h
index 9e4ea378..9c670317 100644
--- a/src/render/Weather.h
+++ b/src/render/Weather.h
@@ -16,34 +16,34 @@ public:
WEATHER_FOGGY = 3,
WEATHER_TOTAL = 4
};
- static int32 &SoundHandle;
+ static int32 SoundHandle;
- static int32 &WeatherTypeInList;
- static int16 &OldWeatherType;
- static int16 &NewWeatherType;
- static int16 &ForcedWeatherType;
+ 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 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 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 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);
@@ -68,4 +68,4 @@ struct tRainStreak
uint32 timer;
};
-extern RwTexture* (&gpRainDropTex)[4]; \ No newline at end of file
+extern RwTexture* gpRainDropTex[4]; \ No newline at end of file