summaryrefslogtreecommitdiffstats
path: root/src/render
diff options
context:
space:
mode:
Diffstat (limited to 'src/render')
-rw-r--r--src/render/Console.h2
-rw-r--r--src/render/Coronas.cpp2
-rw-r--r--src/render/Glass.cpp4
-rw-r--r--src/render/Hud.cpp30
-rw-r--r--src/render/Particle.cpp17
-rw-r--r--src/render/Renderer.cpp69
-rw-r--r--src/render/Renderer.h8
-rw-r--r--src/render/Sprite.cpp8
-rw-r--r--src/render/WaterLevel.cpp45
-rw-r--r--src/render/Weather.cpp2
10 files changed, 120 insertions, 67 deletions
diff --git a/src/render/Console.h b/src/render/Console.h
index b4fa60c4..9f22236f 100644
--- a/src/render/Console.h
+++ b/src/render/Console.h
@@ -23,3 +23,5 @@ public:
};
extern CConsole TheConsole;
+
+void cprintf(char*, ...); \ No newline at end of file
diff --git a/src/render/Coronas.cpp b/src/render/Coronas.cpp
index 68e57b16..e9f9e662 100644
--- a/src/render/Coronas.cpp
+++ b/src/render/Coronas.cpp
@@ -481,7 +481,7 @@ CCoronas::RenderReflections(void)
if(spriteCoors.z < drawDist){
float fadeDistance = drawDist / 2.0f;
float distanceFade = spriteCoors.z < fadeDistance ? 1.0f : 1.0f - (spriteCoors.z - fadeDistance)/fadeDistance;
- distanceFade = clamp(distanceFade, 0.0f, 1.0f);
+ distanceFade = Clamp(distanceFade, 0.0f, 1.0f);
float recipz = 1.0f/RwCameraGetNearClipPlane(Scene.camera);
float heightFade = (20.0f - aCoronas[i].heightAboveRoad)/20.0f;
int intensity = distanceFade*heightFade * 230.0 * CWeather::WetRoads;
diff --git a/src/render/Glass.cpp b/src/render/Glass.cpp
index ede06ba1..cc45648c 100644
--- a/src/render/Glass.cpp
+++ b/src/render/Glass.cpp
@@ -139,9 +139,9 @@ CFallingGlassPane::Render(void)
uint8 alpha = CGlass::CalcAlphaWithNormal(&fwdNorm);
#ifdef FIX_BUGS
- uint16 time = clamp(CTimer::GetTimeInMilliseconds() > m_nTimer ? CTimer::GetTimeInMilliseconds() - m_nTimer : 0u, 0u, 500u);
+ uint16 time = Clamp(CTimer::GetTimeInMilliseconds() > m_nTimer ? CTimer::GetTimeInMilliseconds() - m_nTimer : 0u, 0u, 500u);
#else
- uint16 time = clamp(CTimer::GetTimeInMilliseconds() - m_nTimer, 0, 500);
+ uint16 time = Clamp(CTimer::GetTimeInMilliseconds() - m_nTimer, 0, 500);
#endif
uint8 color = int32( float(alpha) * (float(time) / 500) );
diff --git a/src/render/Hud.cpp b/src/render/Hud.cpp
index 4991e024..bba8c525 100644
--- a/src/render/Hud.cpp
+++ b/src/render/Hud.cpp
@@ -75,6 +75,12 @@
#define SCALE_AND_CENTER_X_FIX(a) (a)
#endif
+#ifdef FIX_BUGS
+#define FRAMECOUNTER CTimer::GetLogicalFrameCounter()
+#else
+#define FRAMECOUNTER CTimer::GetFrameCounter()
+#endif
+
// Game has colors inlined in code.
// For easier modification we collect them here:
CRGBA MONEY_COLOR(89, 115, 150, 255);
@@ -577,12 +583,12 @@ void CHud::Draw()
CFont::SetPropOff();
CFont::SetFontStyle(FONT_HEADING);
- if (m_ItemToFlash == ITEM_HEALTH && CTimer::GetFrameCounter() & 8
+ if (m_ItemToFlash == ITEM_HEALTH && FRAMECOUNTER & 8
|| m_ItemToFlash != ITEM_HEALTH
|| FindPlayerPed()->m_fHealth < 10
- && CTimer::GetFrameCounter() & 8) {
+ && FRAMECOUNTER & 8) {
if (FindPlayerPed()->m_fHealth >= 10
- || FindPlayerPed()->m_fHealth < 10 && CTimer::GetFrameCounter() & 8) {
+ || FindPlayerPed()->m_fHealth < 10 && FRAMECOUNTER & 8) {
AsciiToUnicode("{", sPrintIcon);
#ifdef FIX_BUGS
@@ -594,14 +600,14 @@ void CHud::Draw()
CFont::SetColor(CRGBA(0, 0, 0, 255));
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(HEALTH_X) + SCREEN_SCALE_X_FIX(2.0f), SCREEN_SCALE_Y(65.0f) + SCREEN_SCALE_Y_FIX(2.0f), sPrint);
- if (!CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastHealthLoss || CTimer::GetTimeInMilliseconds() > CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastHealthLoss + 2000 || CTimer::GetFrameCounter() & 4)
+ if (!CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastHealthLoss || CTimer::GetTimeInMilliseconds() > CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastHealthLoss + 2000 || FRAMECOUNTER & 4)
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(HEALTH_X) + SCREEN_SCALE_X_FIX(2.0f) - SCREEN_SCALE_X(56.0f) + SCREEN_SCALE_X(2.0f), SCREEN_SCALE_Y(65.0f) + SCREEN_SCALE_Y_FIX(2.0f), sPrintIcon);
CFont::SetColor(HEALTH_COLOR);
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(HEALTH_X), SCREEN_SCALE_Y(65.0f), sPrint);
- if (!CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastHealthLoss || CTimer::GetTimeInMilliseconds() > CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastHealthLoss + 2000 || CTimer::GetFrameCounter() & 4)
+ if (!CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastHealthLoss || CTimer::GetTimeInMilliseconds() > CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastHealthLoss + 2000 || FRAMECOUNTER & 4)
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(HEALTH_X) + SCREEN_SCALE_X_FIX(2.0f) - SCREEN_SCALE_X(56.0f), SCREEN_SCALE_Y(65.0f), sPrintIcon);
}
}
@@ -609,7 +615,7 @@ void CHud::Draw()
/*
DrawArmour
*/
- if (m_ItemToFlash == ITEM_ARMOUR && CTimer::GetFrameCounter() & 8 || m_ItemToFlash != ITEM_ARMOUR) {
+ if (m_ItemToFlash == ITEM_ARMOUR && FRAMECOUNTER & 8 || m_ItemToFlash != ITEM_ARMOUR) {
CFont::SetScale(SCREEN_SCALE_X(0.8f), SCREEN_SCALE_Y(1.35f));
if (FindPlayerPed()->m_fArmour > 1.0f) {
AsciiToUnicode("[", sPrintIcon);
@@ -623,14 +629,14 @@ void CHud::Draw()
CFont::SetColor(CRGBA(0, 0, 0, 255));
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(182.0f) + SCREEN_SCALE_X_FIX(2.0f), SCREEN_SCALE_Y(65.0f) + SCREEN_SCALE_Y_FIX(2.0f), sPrint);
- if (!CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastArmourLoss || CTimer::GetTimeInMilliseconds() > CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastArmourLoss + 2000 || CTimer::GetFrameCounter() & 4)
+ if (!CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastArmourLoss || CTimer::GetTimeInMilliseconds() > CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastArmourLoss + 2000 || FRAMECOUNTER & 4)
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(182.0f) + SCREEN_SCALE_X_FIX(2.0f) - SCREEN_SCALE_X(54.0f) + SCREEN_SCALE_X(2.0f), SCREEN_SCALE_Y(65.0f) + SCREEN_SCALE_Y_FIX(2.0f), sPrintIcon);
CFont::SetColor(ARMOUR_COLOR);
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(182.0f), SCREEN_SCALE_Y(65.0f), sPrint);
- if (!CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastArmourLoss || CTimer::GetTimeInMilliseconds() > CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastArmourLoss + 2000 || CTimer::GetFrameCounter() & 1) {
+ if (!CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastArmourLoss || CTimer::GetTimeInMilliseconds() > CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastArmourLoss + 2000 || FRAMECOUNTER & 1) {
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(182.0f) - SCREEN_SCALE_X(54.0f) + SCREEN_SCALE_X(2.0f), SCREEN_SCALE_Y(65.0f), sPrintIcon);
}
}
@@ -657,7 +663,7 @@ void CHud::Draw()
if (FindPlayerPed()->m_pWanted->GetWantedLevel() > i
&& (CTimer::GetTimeInMilliseconds() > FindPlayerPed()->m_pWanted->m_nLastWantedLevelChange
- + 2000 || CTimer::GetFrameCounter() & 4)) {
+ + 2000 || FRAMECOUNTER & 4)) {
CFont::SetColor(WANTED_COLOR);
CFont::PrintString(fStarsX, SCREEN_SCALE_Y(87.0f), sPrintIcon);
@@ -904,7 +910,7 @@ void CHud::Draw()
TimerFlashTimer = 0;
}
- if (CTimer::GetFrameCounter() & 4 || !TimerFlashTimer) {
+ if (FRAMECOUNTER & 4 || !TimerFlashTimer) {
AsciiToUnicode(CUserDisplay::OnscnTimer.m_sEntries[0].m_bTimerBuffer, sTimer);
CFont::SetPropOn();
CFont::SetBackgroundOff();
@@ -941,7 +947,7 @@ void CHud::Draw()
CounterFlashTimer = 0;
}
- if (CTimer::GetFrameCounter() & 4 || !CounterFlashTimer) {
+ if (FRAMECOUNTER & 4 || !CounterFlashTimer) {
if (CUserDisplay::OnscnTimer.m_sEntries[0].m_nType == COUNTER_DISPLAY_NUMBER) {
AsciiToUnicode(CUserDisplay::OnscnTimer.m_sEntries[0].m_bCounterBuffer, sTimer);
CFont::SetPropOn();
@@ -1053,7 +1059,7 @@ void CHud::Draw()
/*
DrawRadar
*/
- if (m_ItemToFlash == ITEM_RADAR && CTimer::GetFrameCounter() & 8 || m_ItemToFlash != ITEM_RADAR) {
+ if (m_ItemToFlash == ITEM_RADAR && FRAMECOUNTER & 8 || m_ItemToFlash != ITEM_RADAR) {
CRadar::DrawMap();
CRect rect(0.0f, 0.0f, SCREEN_SCALE_X(RADAR_WIDTH), SCREEN_SCALE_Y(RADAR_HEIGHT));
rect.Translate(SCREEN_SCALE_X_FIX(RADAR_LEFT), SCREEN_SCALE_FROM_BOTTOM(RADAR_BOTTOM + RADAR_HEIGHT));
diff --git a/src/render/Particle.cpp b/src/render/Particle.cpp
index 07e80abe..76ddde50 100644
--- a/src/render/Particle.cpp
+++ b/src/render/Particle.cpp
@@ -14,6 +14,7 @@
#include "ParticleObject.h"
#include "Particle.h"
#include "soundlist.h"
+#include "debugmenu.h"
#define MAX_PARTICLES_ON_SCREEN (1000)
@@ -879,15 +880,15 @@ CParticle *CParticle::AddParticle(tParticleType type, CVector const &vecPos, CVe
int32 ColorVariation = CGeneral::GetRandomNumberInRange(-psystem->m_InitialColorVariation, psystem->m_InitialColorVariation);
//Float ColorVariation = CGeneral::GetRandomNumberInRange((float)-psystem->m_InitialColorVariation, (float)psystem->m_InitialColorVariation);
- pParticle->m_Color.red = clamp(pParticle->m_Color.red +
+ pParticle->m_Color.red = Clamp(pParticle->m_Color.red +
PERCENT(pParticle->m_Color.red, ColorVariation),
0, 255);
- pParticle->m_Color.green = clamp(pParticle->m_Color.green +
+ pParticle->m_Color.green = Clamp(pParticle->m_Color.green +
PERCENT(pParticle->m_Color.green, ColorVariation),
0, 255);
- pParticle->m_Color.blue = clamp(pParticle->m_Color.blue +
+ pParticle->m_Color.blue = Clamp(pParticle->m_Color.blue +
PERCENT(pParticle->m_Color.blue, ColorVariation),
0, 255);
}
@@ -1082,15 +1083,15 @@ void CParticle::Update()
{
float colorMul = 1.0f - float(particle->m_nTimeWhenColorWillBeChanged - CTimer::GetTimeInMilliseconds()) / float(psystem->m_ColorFadeTime);
- particle->m_Color.red = clamp(
+ particle->m_Color.red = Clamp(
psystem->m_RenderColouring.red + int32(float(psystem->m_FadeDestinationColor.red - psystem->m_RenderColouring.red) * colorMul),
0, 255);
- particle->m_Color.green = clamp(
+ particle->m_Color.green = Clamp(
psystem->m_RenderColouring.green + int32(float(psystem->m_FadeDestinationColor.green - psystem->m_RenderColouring.green) * colorMul),
0, 255);
- particle->m_Color.blue = clamp(
+ particle->m_Color.blue = Clamp(
psystem->m_RenderColouring.blue + int32(float(psystem->m_FadeDestinationColor.blue - psystem->m_RenderColouring.blue) * colorMul),
0, 255);
}
@@ -1379,7 +1380,7 @@ void CParticle::Update()
{
particle->m_nFadeToBlackTimer = 0;
- particle->m_nColorIntensity = clamp(particle->m_nColorIntensity - psystem->m_nFadeToBlackAmount,
+ particle->m_nColorIntensity = Clamp(particle->m_nColorIntensity - psystem->m_nFadeToBlackAmount,
0, 255);
}
else
@@ -1392,7 +1393,7 @@ void CParticle::Update()
{
particle->m_nFadeAlphaTimer = 0;
- particle->m_nAlpha = clamp(particle->m_nAlpha - psystem->m_nFadeAlphaAmount,
+ particle->m_nAlpha = Clamp(particle->m_nAlpha - psystem->m_nFadeAlphaAmount,
0, 255);
#ifdef PC_PARTICLE
if ( particle->m_nAlpha == 0 )
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index 9e60fe22..1c0bd445 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -75,6 +75,8 @@ int32 CRenderer::ms_nNoOfVisibleVehicles;
CEntity *CRenderer::ms_aVisibleVehiclePtrs[NUMVISIBLEENTITIES];
int32 CRenderer::ms_nNoOfVisibleBuildings;
CEntity *CRenderer::ms_aVisibleBuildingPtrs[NUMVISIBLEENTITIES];
+
+CLinkList<EntityInfo> gSortedBuildings;
#endif
CVector CRenderer::ms_vecCameraPosition;
@@ -82,14 +84,6 @@ CVehicle *CRenderer::m_pFirstPersonVehicle;
bool CRenderer::m_loadingPriority;
float CRenderer::ms_lodDistScale = 1.2f;
-#ifdef EXTRA_MODEL_FLAGS
-#define BACKFACE_CULLING_ON SetCullMode(rwCULLMODECULLBACK)
-#define BACKFACE_CULLING_OFF SetCullMode(rwCULLMODECULLNONE)
-#else
-#define BACKFACE_CULLING_ON
-#define BACKFACE_CULLING_OFF
-#endif
-
// unused
BlockedRange CRenderer::aBlockedRanges[16];
BlockedRange *CRenderer::pFullBlockedRanges;
@@ -100,12 +94,18 @@ CRenderer::Init(void)
{
gSortedVehiclesAndPeds.Init(40);
SortBIGBuildings();
+#ifdef NEW_RENDERER
+ gSortedBuildings.Init(NUMVISIBLEENTITIES);
+#endif
}
void
CRenderer::Shutdown(void)
{
gSortedVehiclesAndPeds.Shutdown();
+#ifdef NEW_RENDERER
+ gSortedBuildings.Shutdown();
+#endif
}
void
@@ -122,8 +122,12 @@ CRenderer::PreRender(void)
for(i = 0; i < ms_nNoOfVisibleVehicles; i++)
ms_aVisibleVehiclePtrs[i]->PreRender();
// How is this done with cWorldStream?
- for(i = 0; i < ms_nNoOfVisibleBuildings; i++)
- ms_aVisibleBuildingPtrs[i]->PreRender();
+ //for(i = 0; i < ms_nNoOfVisibleBuildings; i++)
+ // ms_aVisibleBuildingPtrs[i]->PreRender();
+ for(CLink<EntityInfo> *node = gSortedBuildings.head.next;
+ node != &gSortedBuildings.tail;
+ node = node->next)
+ ((CEntity*)node->item.ent)->PreRender();
for(node = CVisibilityPlugins::m_alphaBuildingList.head.next;
node != &CVisibilityPlugins::m_alphaBuildingList.tail;
node = node->next)
@@ -442,6 +446,14 @@ CRenderer::RenderOneBuilding(CEntity *ent, float camdist)
RpAtomic *atomic = (RpAtomic*)ent->m_rwObject;
CSimpleModelInfo *mi = (CSimpleModelInfo*)CModelInfo::GetModelInfo(ent->GetModelIndex());
+#ifdef EXTRA_MODEL_FLAGS
+ bool resetCull = false;
+ if(!ent->IsBuilding() || mi->RenderDoubleSided()){
+ resetCull = true;
+ BACKFACE_CULLING_OFF;
+ }
+#endif
+
int pass = PASS_BLEND;
if(mi->m_additive) // very questionable
pass = PASS_ADD;
@@ -471,6 +483,11 @@ CRenderer::RenderOneBuilding(CEntity *ent, float camdist)
}else
WorldRender::AtomicFirstPass(atomic, pass);
+#ifdef EXTRA_MODEL_FLAGS
+ if(resetCull)
+ BACKFACE_CULLING_ON;
+#endif
+
ent->bImBeingRendered = false; // TODO: this seems wrong, but do we even need it?
}
@@ -482,6 +499,7 @@ CRenderer::RenderWorld(int pass)
CLink<CVisibilityPlugins::AlphaObjectInfo> *node;
RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void*)TRUE);
+ BACKFACE_CULLING_ON;
DeActivateDirectional();
SetAmbientColours();
@@ -491,11 +509,20 @@ CRenderer::RenderWorld(int pass)
// Roads
PUSH_RENDERGROUP("CRenderer::RenderWorld - Roads");
RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE);
+/*
for(i = 0; i < ms_nNoOfVisibleBuildings; i++){
e = ms_aVisibleBuildingPtrs[i];
if(e->bIsBIGBuilding || IsRoad(e))
RenderOneBuilding(e);
}
+*/
+ for(CLink<EntityInfo> *node = gSortedBuildings.tail.prev;
+ node != &gSortedBuildings.head;
+ node = node->prev){
+ e = node->item.ent;
+ if(e->bIsBIGBuilding || IsRoad(e))
+ RenderOneBuilding(e);
+ }
for(node = CVisibilityPlugins::m_alphaBuildingList.tail.prev;
node != &CVisibilityPlugins::m_alphaBuildingList.head;
node = node->prev){
@@ -516,11 +543,20 @@ CRenderer::RenderWorld(int pass)
// Opaque
PUSH_RENDERGROUP("CRenderer::RenderWorld - Opaque");
RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE);
+/*
for(i = 0; i < ms_nNoOfVisibleBuildings; i++){
e = ms_aVisibleBuildingPtrs[i];
if(!(e->bIsBIGBuilding || IsRoad(e)))
RenderOneBuilding(e);
}
+*/
+ for(CLink<EntityInfo> *node = gSortedBuildings.tail.prev;
+ node != &gSortedBuildings.head;
+ node = node->prev){
+ e = node->item.ent;
+ if(!(e->bIsBIGBuilding || IsRoad(e)))
+ RenderOneBuilding(e);
+ }
for(node = CVisibilityPlugins::m_alphaBuildingList.tail.prev;
node != &CVisibilityPlugins::m_alphaBuildingList.head;
node = node->prev){
@@ -634,6 +670,7 @@ CRenderer::ClearForFrame(void)
ms_nNoOfVisibleBuildings = 0;
ms_nNoOfInVisibleEntities = 0;
gSortedVehiclesAndPeds.Clear();
+ gSortedBuildings.Clear();
WorldRender::numBlendInsts[PASS_NOZ] = 0;
WorldRender::numBlendInsts[PASS_ADD] = 0;
@@ -1432,9 +1469,13 @@ CRenderer::InsertEntityIntoList(CEntity *ent)
// TODO: there are more flags being checked here
if(gbNewRenderer && (ent->IsVehicle() || ent->IsPed()))
ms_aVisibleVehiclePtrs[ms_nNoOfVisibleVehicles++] = ent;
- else if(gbNewRenderer && ent->IsBuilding())
- ms_aVisibleBuildingPtrs[ms_nNoOfVisibleBuildings++] = ent;
- else
+ else if(gbNewRenderer && ent->IsBuilding()){
+ EntityInfo info;
+ info.ent = ent;
+ info.sort = -(ent->GetPosition() - ms_vecCameraPosition).MagnitudeSqr();
+ gSortedBuildings.InsertSorted(info);
+// ms_aVisibleBuildingPtrs[ms_nNoOfVisibleBuildings++] = ent;
+ }else
#endif
ms_aVisibleEntityPtrs[ms_nNoOfVisibleEntities++] = ent;
}
@@ -1451,7 +1492,7 @@ CRenderer::ScanBigBuildingList(CPtrList &list)
// all missing from game actually
TestedBigBuildings++;
#endif
- if(!ent->bZoneCulled){
+ if(!ent->bZoneCulled || gbDisableZoneCull){
if(SetupBigBuildingVisibility(ent) == VIS_VISIBLE)
InsertEntityIntoList(ent);
#ifndef MASTER
diff --git a/src/render/Renderer.h b/src/render/Renderer.h
index 35b43a0b..0322939c 100644
--- a/src/render/Renderer.h
+++ b/src/render/Renderer.h
@@ -10,6 +10,14 @@ class CEntity;
#define FADE_DISTANCE 20.0f
#define STREAM_DISTANCE 30.0f
+#ifdef EXTRA_MODEL_FLAGS
+#define BACKFACE_CULLING_ON SetCullMode(rwCULLMODECULLBACK)
+#define BACKFACE_CULLING_OFF SetCullMode(rwCULLMODECULLNONE)
+#else
+#define BACKFACE_CULLING_ON
+#define BACKFACE_CULLING_OFF
+#endif
+
extern bool gbShowPedRoadGroups;
extern bool gbShowCarRoadGroups;
extern bool gbShowCollisionPolys;
diff --git a/src/render/Sprite.cpp b/src/render/Sprite.cpp
index a441e08b..3fef0733 100644
--- a/src/render/Sprite.cpp
+++ b/src/render/Sprite.cpp
@@ -405,13 +405,13 @@ CSprite::RenderBufferedOneXLUSprite_Rotate_2Colours(float x, float y, float z, f
// Colour factors, cx/y is the direction in which colours change from rgb1 to rgb2
cf[0] = (cx*(-c-s) + cy*(-c+s))*0.5f + 0.5f;
- cf[0] = clamp(cf[0], 0.0f, 1.0f);
+ cf[0] = Clamp(cf[0], 0.0f, 1.0f);
cf[1] = (cx*(-c+s) + cy*( c+s))*0.5f + 0.5f;
- cf[1] = clamp(cf[1], 0.0f, 1.0f);
+ cf[1] = Clamp(cf[1], 0.0f, 1.0f);
cf[2] = (cx*( c+s) + cy*( c-s))*0.5f + 0.5f;
- cf[2] = clamp(cf[2], 0.0f, 1.0f);
+ cf[2] = Clamp(cf[2], 0.0f, 1.0f);
cf[3] = (cx*( c-s) + cy*(-c-s))*0.5f + 0.5f;
- cf[3] = clamp(cf[3], 0.0f, 1.0f);
+ cf[3] = Clamp(cf[3], 0.0f, 1.0f);
float screenz = m_f2DNearScreenZ +
(z-CDraw::GetNearClipZ())*(m_f2DFarScreenZ-m_f2DNearScreenZ)*CDraw::GetFarClipZ() /
diff --git a/src/render/WaterLevel.cpp b/src/render/WaterLevel.cpp
index bccaea39..7001c0cf 100644
--- a/src/render/WaterLevel.cpp
+++ b/src/render/WaterLevel.cpp
@@ -126,10 +126,10 @@ CWaterLevel::Initialise(Const char *pWaterDat)
#ifdef FIX_BUGS
// water.dat has rects that go out of bounds
// which causes memory corruption
- l = clamp(l, 0, MAX_SMALL_SECTORS - 1);
- r = clamp(r, 0, MAX_SMALL_SECTORS - 1);
- t = clamp(t, 0, MAX_SMALL_SECTORS - 1);
- b = clamp(b, 0, MAX_SMALL_SECTORS - 1);
+ l = Clamp(l, 0, MAX_SMALL_SECTORS - 1);
+ r = Clamp(r, 0, MAX_SMALL_SECTORS - 1);
+ t = Clamp(t, 0, MAX_SMALL_SECTORS - 1);
+ b = Clamp(b, 0, MAX_SMALL_SECTORS - 1);
#endif
for (int32 x = l; x <= r; x++)
@@ -432,14 +432,14 @@ CWaterLevel::TestVisibilityForFineWaterBlocks(const CVector &worldPos)
if ((lineEnd.x > WORLD_MIN_X && lineEnd.x < WORLD_MAX_X) && (lineEnd.y > WORLD_MIN_Y && lineEnd.y < WORLD_MAX_Y))
{
- if (!CWorld::ProcessLineOfSight(lineStart, lineEnd, col, entity, true, false, false, false, true, false, nil))
+ if (!CWorld::ProcessLineOfSight(lineStart, lineEnd, col, entity, true, false, false, false, true, false))
{
lineStart.x += 0.4f;
lineStart.y += 0.4f;
lineEnd.x += 0.4f;
lineEnd.y += 0.4f;
- if (!CWorld::ProcessLineOfSight(lineStart, lineEnd, col, entity, true, false, false, false, true, false, nil))
+ if (!CWorld::ProcessLineOfSight(lineStart, lineEnd, col, entity, true, false, false, false, true, false))
{
return false;
}
@@ -713,10 +713,10 @@ CWaterLevel::RenderWater()
if ( bUseCamEndY )
nEndY = WATER_TO_HUGE_SECTOR_Y(camPos.y);
- nStartX = clamp(nStartX, 0, MAX_HUGE_SECTORS - 1);
- nEndX = clamp(nEndX, 0, MAX_HUGE_SECTORS - 1);
- nStartY = clamp(nStartY, 0, MAX_HUGE_SECTORS - 1);
- nEndY = clamp(nEndY, 0, MAX_HUGE_SECTORS - 1);
+ nStartX = Clamp(nStartX, 0, MAX_HUGE_SECTORS - 1);
+ nEndX = Clamp(nEndX, 0, MAX_HUGE_SECTORS - 1);
+ nStartY = Clamp(nStartY, 0, MAX_HUGE_SECTORS - 1);
+ nEndY = Clamp(nEndY, 0, MAX_HUGE_SECTORS - 1);
for ( int32 x = nStartX; x <= nEndX; x++ )
{
@@ -740,8 +740,7 @@ CWaterLevel::RenderWater()
if ( fHugeSectorMaxRenderDistSqr > fHugeSectorDistToCamSqr )
{
- if ( TheCamera.IsSphereVisible(CVector(vecHugeSectorCentre.x, vecHugeSectorCentre.y, 0.0f), SectorRadius(HUGE_SECTOR_SIZE),
- &TheCamera.GetCameraMatrix()) )
+ if ( TheCamera.IsSphereVisible(CVector(vecHugeSectorCentre.x, vecHugeSectorCentre.y, 0.0f), SectorRadius(HUGE_SECTOR_SIZE)) )
{
if ( fHugeSectorDistToCamSqr >= SQR(500.0f) /*fHugeSectorNearDist*/ )
{
@@ -782,8 +781,7 @@ CWaterLevel::RenderWater()
if ( fLargeSectorDistToCamSqr < fHugeSectorMaxRenderDistSqr )
{
- if ( TheCamera.IsSphereVisible(CVector(vecLargeSectorCentre.x, vecLargeSectorCentre.y, 0.0f), SectorRadius(LARGE_SECTOR_SIZE), //90.879997f,
- &TheCamera.GetCameraMatrix()) )
+ if ( TheCamera.IsSphereVisible(CVector(vecLargeSectorCentre.x, vecLargeSectorCentre.y, 0.0f), SectorRadius(LARGE_SECTOR_SIZE)) ) //90.879997f,
{
// Render four small(32x32) sectors, or one large(64x64).
@@ -945,8 +943,7 @@ CWaterLevel::RenderWater()
if ( fCamDistToSector < fHugeSectorMaxRenderDistSqr )
{
- if ( TheCamera.IsSphereVisible(CVector(vecExtraHugeSectorCentre.x, vecExtraHugeSectorCentre.y, 0.0f), SectorRadius(EXTRAHUGE_SECTOR_SIZE),
- &TheCamera.GetCameraMatrix()) )
+ if ( TheCamera.IsSphereVisible(CVector(vecExtraHugeSectorCentre.x, vecExtraHugeSectorCentre.y, 0.0f), SectorRadius(EXTRAHUGE_SECTOR_SIZE)) )
{
RenderOneFlatExtraHugeWaterPoly(
vecExtraHugeSectorCentre.x - EXTRAHUGE_SECTOR_SIZE/2,
@@ -979,8 +976,7 @@ CWaterLevel::RenderWater()
if ( fCamDistToSector < fHugeSectorMaxRenderDistSqr )
{
- if ( TheCamera.IsSphereVisible(CVector(vecExtraHugeSectorCentre.x, vecExtraHugeSectorCentre.y, 0.0f), SectorRadius(EXTRAHUGE_SECTOR_SIZE),
- &TheCamera.GetCameraMatrix()) )
+ if ( TheCamera.IsSphereVisible(CVector(vecExtraHugeSectorCentre.x, vecExtraHugeSectorCentre.y, 0.0f), SectorRadius(EXTRAHUGE_SECTOR_SIZE)) )
{
RenderOneFlatExtraHugeWaterPoly(
vecExtraHugeSectorCentre.x - EXTRAHUGE_SECTOR_SIZE/2,
@@ -1003,8 +999,7 @@ CWaterLevel::RenderWater()
if ( fCamDistToSector < fHugeSectorMaxRenderDistSqr )
{
- if ( TheCamera.IsSphereVisible(CVector(vecExtraHugeSectorCentre.x, vecExtraHugeSectorCentre.y, 0.0f), SectorRadius(EXTRAHUGE_SECTOR_SIZE),
- &TheCamera.GetCameraMatrix()) )
+ if ( TheCamera.IsSphereVisible(CVector(vecExtraHugeSectorCentre.x, vecExtraHugeSectorCentre.y, 0.0f), SectorRadius(EXTRAHUGE_SECTOR_SIZE)) )
{
RenderOneFlatExtraHugeWaterPoly(
vecExtraHugeSectorCentre.x - EXTRAHUGE_SECTOR_SIZE/2,
@@ -1411,10 +1406,10 @@ CWaterLevel::CalcDistanceToWater(float fX, float fY)
int32 nStartY = WATER_TO_SMALL_SECTOR_Y(fY - fSectorMaxRenderDist) - 1;
int32 nEndY = WATER_TO_SMALL_SECTOR_Y(fY + fSectorMaxRenderDist) + 1;
- nStartX = clamp(nStartX, 0, MAX_SMALL_SECTORS - 1);
- nEndX = clamp(nEndX, 0, MAX_SMALL_SECTORS - 1);
- nStartY = clamp(nStartY, 0, MAX_SMALL_SECTORS - 1);
- nEndY = clamp(nEndY, 0, MAX_SMALL_SECTORS - 1);
+ nStartX = Clamp(nStartX, 0, MAX_SMALL_SECTORS - 1);
+ nEndX = Clamp(nEndX, 0, MAX_SMALL_SECTORS - 1);
+ nStartY = Clamp(nStartY, 0, MAX_SMALL_SECTORS - 1);
+ nEndY = Clamp(nEndY, 0, MAX_SMALL_SECTORS - 1);
float fDistSqr = 1.0e10f;
@@ -1438,7 +1433,7 @@ CWaterLevel::CalcDistanceToWater(float fX, float fY)
}
}
- return clamp(Sqrt(fDistSqr) - 23.0f, 0.0f, fSectorMaxRenderDist);
+ return Clamp(Sqrt(fDistSqr) - 23.0f, 0.0f, fSectorMaxRenderDist);
}
void
diff --git a/src/render/Weather.cpp b/src/render/Weather.cpp
index 771f85de..e57d57d6 100644
--- a/src/render/Weather.cpp
+++ b/src/render/Weather.cpp
@@ -114,7 +114,7 @@ void CWeather::Init(void)
ForcedWeatherType = WEATHER_RANDOM;
SoundHandle = DMAudio.CreateEntity(AUDIOTYPE_WEATHER, (void*)1);
if (SoundHandle >= 0)
- DMAudio.SetEntityStatus(SoundHandle, true);
+ DMAudio.SetEntityStatus(SoundHandle, TRUE);
}
void CWeather::Update(void)