summaryrefslogtreecommitdiffstats
path: root/src/render
diff options
context:
space:
mode:
authorFire-Head <Fire-Head@users.noreply.github.com>2020-06-27 23:01:51 +0200
committerFire-Head <Fire-Head@users.noreply.github.com>2020-06-27 23:01:51 +0200
commit1c11a8081f246dda91ff11d4207d87bb93260b1a (patch)
tree226ff4fb914fbd93d67aff62ed24ac896ff2c89a /src/render
parentnullsampman (diff)
downloadre3-1c11a8081f246dda91ff11d4207d87bb93260b1a.tar
re3-1c11a8081f246dda91ff11d4207d87bb93260b1a.tar.gz
re3-1c11a8081f246dda91ff11d4207d87bb93260b1a.tar.bz2
re3-1c11a8081f246dda91ff11d4207d87bb93260b1a.tar.lz
re3-1c11a8081f246dda91ff11d4207d87bb93260b1a.tar.xz
re3-1c11a8081f246dda91ff11d4207d87bb93260b1a.tar.zst
re3-1c11a8081f246dda91ff11d4207d87bb93260b1a.zip
Diffstat (limited to 'src/render')
-rw-r--r--src/render/Credits.cpp56
-rw-r--r--src/render/Fluff.cpp4
-rw-r--r--src/render/Hud.cpp6
-rw-r--r--src/render/MBlur.cpp134
-rw-r--r--src/render/MBlur.h5
-rw-r--r--src/render/Timecycle.cpp4
6 files changed, 147 insertions, 62 deletions
diff --git a/src/render/Credits.cpp b/src/render/Credits.cpp
index dc0b0252..e0134e52 100644
--- a/src/render/Credits.cpp
+++ b/src/render/Credits.cpp
@@ -128,12 +128,12 @@ CCredits::Render(void)
PrintCreditText(1.7f, 1.7f, TheText.Get("CRED040"), lineoffset, scrolloffset);
PrintCreditSpace(2.0f, lineoffset);
PrintCreditText(1.4f, 0.82f, TheText.Get("CRED041"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.5, lineoffset);
PrintCreditText(1.7f, 1.7f, TheText.Get("CRED042"), lineoffset, scrolloffset);
PrintCreditSpace(2.0f, lineoffset);
PrintCreditText(1.7f, 1.0f, TheText.Get("CRED043"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.5, lineoffset);
PrintCreditText(1.7f, 1.7f, TheText.Get("CRED044"), lineoffset, scrolloffset);
PrintCreditSpace(2.0f, lineoffset);
@@ -176,7 +176,7 @@ CCredits::Render(void)
PrintCreditSpace(2.0f, lineoffset);
PrintCreditSpace(2.0f, lineoffset);
PrintCreditText(1.7f, 1.0f, TheText.Get("CRED061"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.5, lineoffset);
PrintCreditText(1.7f, 1.7f, TheText.Get("CRED062"), lineoffset, scrolloffset);
PrintCreditSpace(2.0f, lineoffset);
@@ -191,7 +191,7 @@ CCredits::Render(void)
PrintCreditText(1.7f, 1.7f, TheText.Get("CRED068"), lineoffset, scrolloffset);
PrintCreditSpace(2.0f, lineoffset);
PrintCreditText(1.7f, 1.0f, TheText.Get("CRED069"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.5, lineoffset);
PrintCreditText(1.7f, 1.7f, TheText.Get("CRED070"), lineoffset, scrolloffset);
PrintCreditSpace(2.0f, lineoffset);
@@ -220,7 +220,7 @@ CCredits::Render(void)
PrintCreditText(1.7f, 1.7f, TheText.Get("CRED262"), lineoffset, scrolloffset);
PrintCreditSpace(2.0f, lineoffset);
PrintCreditText(1.7f, 1.0f, TheText.Get("CRED085"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.5, lineoffset);
PrintCreditText(1.7f, 1.7f, TheText.Get("CRED086"), lineoffset, scrolloffset);
PrintCreditSpace(2.0f, lineoffset);
@@ -265,76 +265,76 @@ CCredits::Render(void)
PrintCreditText(1.0, 1.0, TheText.Get("CRED108"), lineoffset, scrolloffset);
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED109"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED110"), lineoffset, scrolloffset);
PrintCreditSpace(2.0f, lineoffset);
PrintCreditText(1.7f, 1.0f, TheText.Get("CRED111"), lineoffset, scrolloffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED112"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED113"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED114"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED115"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED116"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED117"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED118"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED119"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED120"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED121"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED122"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED123"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED124"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED125"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED126"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED127"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED128"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED129"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED130"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED131"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED132"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED133"), lineoffset, scrolloffset);
- if(CMenuManager::m_PrefsLanguage == LANGUAGE_ITALIAN)
+ if(CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_ITALIAN)
PrintCreditSpace(1.0, lineoffset);
PrintCreditText(1.0, 1.0, TheText.Get("CRED134"), lineoffset, scrolloffset);
PrintCreditSpace(2.0f, lineoffset);
diff --git a/src/render/Fluff.cpp b/src/render/Fluff.cpp
index 9f3f6929..1be53825 100644
--- a/src/render/Fluff.cpp
+++ b/src/render/Fluff.cpp
@@ -380,7 +380,7 @@ void CScrollBar::Update()
m_pMessage = FindTimeMessage();
break;
case 6:
- if (CMenuManager::m_PrefsLanguage == LANGUAGE_FRENCH || CMenuManager::m_PrefsLanguage == LANGUAGE_GERMAN)
+ if (CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_FRENCH || CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_GERMAN)
m_pMessage = FindTimeMessage();
else
m_pMessage = "WWW.GRANDTHEFTAUTO3.COM ";
@@ -600,7 +600,7 @@ void CScrollBar::Update()
m_pMessage = "FREE FLUFFY DICE WITH ALL PURCHASES. . .";
break;
case 9:
- if (CMenuManager::m_PrefsLanguage == LANGUAGE_FRENCH || CMenuManager::m_PrefsLanguage == LANGUAGE_GERMAN)
+ if (CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_FRENCH || CMenuManager::m_PrefsLanguage == CMenuManager::LANGUAGE_GERMAN)
m_pMessage = "QUICK, TAKE A LOOK AT OUR CURRENT STOCK )CAUSE THESE AUTOS ARE MOVIN) FAST . . . ";
else
m_pMessage = "HTTP:((ROCKSTARGAMES.COM(GRANDTHEFTAUTO3(CAPITALAUTOS ";
diff --git a/src/render/Hud.cpp b/src/render/Hud.cpp
index c3fcb7bf..a39408cd 100644
--- a/src/render/Hud.cpp
+++ b/src/render/Hud.cpp
@@ -492,7 +492,7 @@ void CHud::Draw()
CFont::SetPropOn();
CFont::SetBackgroundOff();
- if (FrontEndMenuManager.m_PrefsLanguage == LANGUAGE_SPANISH)
+ if (FrontEndMenuManager.m_PrefsLanguage == CMenuManager::LANGUAGE_SPANISH)
CFont::SetScale(SCREEN_SCALE_X(1.2f * 0.8f), SCREEN_SCALE_Y(1.2f));
else
CFont::SetScale(SCREEN_SCALE_X(1.2f), SCREEN_SCALE_Y(1.2f));
@@ -586,7 +586,7 @@ void CHud::Draw()
CFont::SetPropOn();
CFont::SetBackgroundOff();
- if (FrontEndMenuManager.m_PrefsLanguage != LANGUAGE_ITALIAN && FrontEndMenuManager.m_PrefsLanguage != LANGUAGE_SPANISH)
+ if (FrontEndMenuManager.m_PrefsLanguage != CMenuManager::LANGUAGE_ITALIAN && FrontEndMenuManager.m_PrefsLanguage != CMenuManager::LANGUAGE_SPANISH)
CFont::SetScale(SCREEN_SCALE_X(1.2f), SCREEN_SCALE_Y(1.2f));
else
CFont::SetScale(SCREEN_SCALE_X(1.2f * 0.85f), SCREEN_SCALE_Y(1.2f));
@@ -1279,7 +1279,7 @@ void CHud::DrawAfterFade()
CFont::SetJustifyOff();
CFont::SetBackgroundOff();
- if (CGame::frenchGame || FrontEndMenuManager.m_PrefsLanguage == LANGUAGE_SPANISH)
+ if (CGame::frenchGame || FrontEndMenuManager.m_PrefsLanguage == CMenuManager::LANGUAGE_SPANISH)
CFont::SetScale(SCREEN_SCALE_X(0.884f), SCREEN_SCALE_Y(1.36f));
else
CFont::SetScale(SCREEN_SCALE_X(1.04f), SCREEN_SCALE_Y(1.6f));
diff --git a/src/render/MBlur.cpp b/src/render/MBlur.cpp
index 68ec1194..f6c16cfd 100644
--- a/src/render/MBlur.cpp
+++ b/src/render/MBlur.cpp
@@ -1,3 +1,4 @@
+#define WITHWINDOWS
#include "common.h"
#include "RwHelper.h"
@@ -8,48 +9,125 @@
RwRaster *CMBlur::pFrontBuffer;
bool CMBlur::ms_bJustInitialised;
+bool CMBlur::ms_bScaledBlur;
bool CMBlur::BlurOn;
static RwIm2DVertex Vertex[4];
static RwImVertexIndex Index[6] = { 0, 1, 2, 0, 2, 3 };
-void
+RwBool
CMBlur::MotionBlurOpen(RwCamera *cam)
{
- // TODO. this is simplified
-
+#ifdef GTA_PS2
+ RwRect rect = {0, 0, 0, 0};
+
+ if (pFrontBuffer)
+ return TRUE;
+
+ BlurOn = true;
+
+ rect.w = RwRasterGetWidth(RwCameraGetRaster(cam));
+ rect.h = RwRasterGetHeight(RwCameraGetRaster(cam));
+
+ pFrontBuffer = RwRasterCreate(0, 0, 0, rwRASTERDONTALLOCATE|rwRASTERTYPECAMERATEXTURE);
+ if (!pFrontBuffer)
+ {
+ printf("Error creating raster\n");
+ return FALSE;
+ }
+
+ RwRaster *raster = RwRasterSubRaster(pFrontBuffer, RwCameraGetRaster(cam), &rect);
+ if (!raster)
+ {
+ RwRasterDestroy(pFrontBuffer);
+ pFrontBuffer = NULL;
+ printf("Error subrastering\n");
+ return FALSE;
+ }
+
+ CreateImmediateModeData(cam, &rect);
+#else
RwRect rect = { 0, 0, 0, 0 };
if(pFrontBuffer)
MotionBlurClose();
-
- if(BlurOn){
- for(rect.w = 1; rect.w < RwRasterGetWidth(RwCameraGetRaster(cam)); rect.w *= 2);
- for(rect.h = 1; rect.h < RwRasterGetHeight(RwCameraGetRaster(cam)); rect.h *= 2);
- pFrontBuffer = RwRasterCreate(rect.w, rect.h, RwRasterGetDepth(RwCameraGetRaster(cam)), rwRASTERTYPECAMERATEXTURE);
- if(pFrontBuffer)
- ms_bJustInitialised = true;
- else{
- debug("MBlurOpen can't create raster.");
+
+ extern void _GetVideoMemInfo(LPDWORD total, LPDWORD avaible);
+ DWORD total, avaible;
+
+ _GetVideoMemInfo(&total, &avaible);
+ debug("Available video memory %d\n", avaible);
+
+ if(BlurOn)
+ {
+ int32 width = Pow(2.0f, int32(log2(RwRasterGetWidth (RwCameraGetRaster(cam))))+1);
+ int32 height = Pow(2.0f, int32(log2(RwRasterGetHeight(RwCameraGetRaster(cam))))+1);
+ int32 depth = RwRasterGetDepth(RwCameraGetRaster(cam));
+
+#ifndef LIBRW
+ extern D3DCAPS8 _RwD3D8DeviceCaps;
+ extern DWORD _dwMemTotalVideo;
+ if ( _RwD3D8DeviceCaps.MaxTextureWidth >= width && _RwD3D8DeviceCaps.MaxTextureHeight >= height )
+ {
+ total = _dwMemTotalVideo - 3 *
+ ( RwRasterGetDepth(RwCameraGetRaster(cam))
+ * RwRasterGetHeight(RwCameraGetRaster(cam))
+ * RwRasterGetWidth(RwCameraGetRaster(cam)) / 8 );
+ BlurOn = total >= height*width*(depth/8) + (12*1024*1024) /*12 MB*/;
+ }
+ else
BlurOn = false;
+#endif
+
+ if ( BlurOn )
+ {
+ ms_bScaledBlur = false;
+ rect.w = width;
+ rect.h = height;
+
+ pFrontBuffer = RwRasterCreate(rect.w, rect.h, depth, rwRASTERTYPECAMERATEXTURE);
+ if ( !pFrontBuffer )
+ {
+ debug("MBlurOpen can't create raster.");
+ BlurOn = false;
+ rect.w = RwRasterGetWidth(RwCameraGetRaster(cam));
+ rect.h = RwRasterGetHeight(RwCameraGetRaster(cam));
+ }
+ else
+ ms_bJustInitialised = true;
+ }
+ else
+ {
rect.w = RwRasterGetWidth(RwCameraGetRaster(cam));
rect.h = RwRasterGetHeight(RwCameraGetRaster(cam));
}
+
+ _GetVideoMemInfo(&total, &avaible);
+ debug("Available video memory %d\n", avaible);
CreateImmediateModeData(cam, &rect);
- }else{
+ }
+ else
+ {
rect.w = RwRasterGetWidth(RwCameraGetRaster(cam));
rect.h = RwRasterGetHeight(RwCameraGetRaster(cam));
CreateImmediateModeData(cam, &rect);
}
+
+ return TRUE;
+#endif
}
-void
+RwBool
CMBlur::MotionBlurClose(void)
{
if(pFrontBuffer){
RwRasterDestroy(pFrontBuffer);
pFrontBuffer = nil;
+
+ return TRUE;
}
+
+ return FALSE;
}
void
@@ -109,6 +187,10 @@ void
CMBlur::MotionBlurRender(RwCamera *cam, uint32 red, uint32 green, uint32 blue, uint32 blur, int32 type, uint32 addalpha)
{
RwRGBA color = { (RwUInt8)red, (RwUInt8)green, (RwUInt8)blue, (RwUInt8)blur };
+#ifdef GTA_PS2
+ if( pFrontBuffer )
+ OverlayRender(cam, pFrontBuffer, color, type, addalpha);
+#else
if(BlurOn){
if(pFrontBuffer){
if(ms_bJustInitialised)
@@ -122,6 +204,7 @@ CMBlur::MotionBlurRender(RwCamera *cam, uint32 red, uint32 green, uint32 blue, u
}else{
OverlayRender(cam, nil, color, type, addalpha);
}
+#endif
}
void
@@ -136,32 +219,33 @@ CMBlur::OverlayRender(RwCamera *cam, RwRaster *raster, RwRGBA color, int32 type,
DefinedState();
- switch(type){
- case MBLUR_INTRO1:
+ switch(type)
+ {
+ case MOTION_BLUR_SECURITY_CAM:
r = 0;
g = 255;
b = 0;
a = 128;
break;
- case MBLUR_INTRO3:
+ case MOTION_BLUR_INTRO:
r = 100;
g = 220;
b = 230;
a = 158;
break;
- case MBLUR_INTRO4:
+ case MOTION_BLUR_INTRO2:
r = 80;
g = 255;
b = 230;
a = 138;
break;
- case MBLUR_INTRO6:
+ case MOTION_BLUR_INTRO3:
r = 255;
g = 60;
b = 60;
a = 200;
break;
- case MBLUR_UNUSED:
+ case MOTION_BLUR_INTRO4:
r = 255;
g = 180;
b = 180;
@@ -170,11 +254,11 @@ CMBlur::OverlayRender(RwCamera *cam, RwRaster *raster, RwRGBA color, int32 type,
}
if(!BlurOn){
- r *= 0.6f;
- g *= 0.6f;
- b *= 0.6f;
- if(type != 1)
- a *= 0.6f;
+ r = Min(r*0.6f, 255.0f);
+ g = Min(g*0.6f, 255.0f);
+ b = Min(b*0.6f, 255.0f);
+ if(type != MOTION_BLUR_SNIPER)
+ a = Min(a*0.6f, 255.0f);
// game clamps to 255 here, but why?
}
RwIm2DVertexSetIntRGBA(&Vertex[0], r, g, b, a);
diff --git a/src/render/MBlur.h b/src/render/MBlur.h
index e8a5bef8..157f2882 100644
--- a/src/render/MBlur.h
+++ b/src/render/MBlur.h
@@ -5,11 +5,12 @@ class CMBlur
public:
static RwRaster *pFrontBuffer;
static bool ms_bJustInitialised;
+ static bool ms_bScaledBlur;
static bool BlurOn;
public:
- static void MotionBlurOpen(RwCamera *cam);
- static void MotionBlurClose(void);
+ static RwBool MotionBlurOpen(RwCamera *cam);
+ static RwBool MotionBlurClose(void);
static void CreateImmediateModeData(RwCamera *cam, RwRect *rect);
static void MotionBlurRender(RwCamera *cam, uint32 red, uint32 green, uint32 blue, uint32 blur, int32 type, uint32 addalpha);
static void OverlayRender(RwCamera *cam, RwRaster *raster, RwRGBA color, int32 type, uint32 bluralpha);
diff --git a/src/render/Timecycle.cpp b/src/render/Timecycle.cpp
index cf3426d7..84b6f2fe 100644
--- a/src/render/Timecycle.cpp
+++ b/src/render/Timecycle.cpp
@@ -286,8 +286,8 @@ CTimeCycle::Update(void)
m_fCurrentBlurBlue = INTERP(m_fBlurBlue);
m_fCurrentBlurAlpha = INTERP(m_fBlurAlpha);
- if(TheCamera.m_BlurType == MBLUR_NONE || TheCamera.m_BlurType == MBLUR_NORMAL)
- TheCamera.SetMotionBlur(m_fCurrentBlurRed, m_fCurrentBlurGreen, m_fCurrentBlurBlue, m_fCurrentBlurAlpha, MBLUR_NORMAL);
+ if(TheCamera.m_BlurType == MOTION_BLUR_NONE || TheCamera.m_BlurType == MOTION_BLUR_LIGHT_SCENE)
+ TheCamera.SetMotionBlur(m_fCurrentBlurRed, m_fCurrentBlurGreen, m_fCurrentBlurBlue, m_fCurrentBlurAlpha, MOTION_BLUR_LIGHT_SCENE);
if(m_FogReduction != 0)
m_fCurrentFarClip = Max(m_fCurrentFarClip, m_FogReduction/64.0f * 650.0f);