summaryrefslogtreecommitdiffstats
path: root/src/render
diff options
context:
space:
mode:
authorRoman Masanin <36927roma@gmail.com>2020-09-28 02:40:58 +0200
committerRoman Masanin <36927roma@gmail.com>2020-09-28 02:40:58 +0200
commit1ea89f5aedbefccd21ad6a7be49afa898a2ab9c4 (patch)
tree093a94660e494cc1c83ac9d43fc1be520809926f /src/render
parentfix for frequency misscalculation (diff)
parentFixes: PS2/PS2-like menu, Hud, new sliding text found (diff)
downloadre3-1ea89f5aedbefccd21ad6a7be49afa898a2ab9c4.tar
re3-1ea89f5aedbefccd21ad6a7be49afa898a2ab9c4.tar.gz
re3-1ea89f5aedbefccd21ad6a7be49afa898a2ab9c4.tar.bz2
re3-1ea89f5aedbefccd21ad6a7be49afa898a2ab9c4.tar.lz
re3-1ea89f5aedbefccd21ad6a7be49afa898a2ab9c4.tar.xz
re3-1ea89f5aedbefccd21ad6a7be49afa898a2ab9c4.tar.zst
re3-1ea89f5aedbefccd21ad6a7be49afa898a2ab9c4.zip
Diffstat (limited to 'src/render')
-rw-r--r--src/render/Coronas.cpp4
-rw-r--r--src/render/Credits.cpp12
-rw-r--r--src/render/Draw.cpp11
-rw-r--r--src/render/Font.cpp4
-rw-r--r--src/render/Hud.cpp47
5 files changed, 52 insertions, 26 deletions
diff --git a/src/render/Coronas.cpp b/src/render/Coronas.cpp
index d2d229f9..33c3f4bf 100644
--- a/src/render/Coronas.cpp
+++ b/src/render/Coronas.cpp
@@ -476,7 +476,11 @@ CCoronas::RenderReflections(void)
int intensity = distanceFade*heightFade * 230.0 * CWeather::WetRoads;
CSprite::RenderBufferedOneXLUSprite(
+#ifdef FIX_BUGS
+ spriteCoors.x, spriteCoors.y, spriteCoors.z,
+#else
spriteCoors.x, spriteCoors.y, RwIm2DGetNearScreenZ(),
+#endif
spritew * aCoronas[i].size * 0.75f,
spriteh * aCoronas[i].size * 2.0f,
(intensity * CCoronas::aCoronas[i].red)>>8,
diff --git a/src/render/Credits.cpp b/src/render/Credits.cpp
index 2cfdba90..6b28ff04 100644
--- a/src/render/Credits.cpp
+++ b/src/render/Credits.cpp
@@ -39,11 +39,11 @@ CCredits::PrintCreditSpace(float space, uint32 &line)
void
CCredits::PrintCreditText(float scaleX, float scaleY, wchar *text, uint32 &lineoffset, float scrolloffset)
{
- float start = SCREEN_HEIGHT + 50.0f;
+ float start = DEFAULT_SCREEN_HEIGHT + 50.0f;
float y = lineoffset + start - scrolloffset;
if(y > -50.0f && y < start){
- CFont::SetScale(scaleX, scaleY);
- CFont::PrintString(SCREEN_WIDTH/2.0f, y, (uint16*)text);
+ CFont::SetScale(SCREEN_SCALE_X(scaleX), SCREEN_SCALE_Y(scaleY));
+ CFont::PrintString(SCREEN_WIDTH/2.0f, SCREEN_SCALE_Y(y), (uint16*)text);
}
lineoffset += scaleY*25.0f;
}
@@ -62,7 +62,7 @@ CCredits::Render(void)
scrolloffset = (CTimer::GetTimeInMilliseconds() - CreditsStartTime) / 24.0f;
CFont::SetJustifyOff();
CFont::SetBackgroundOff();
- CFont::SetCentreSize(SCREEN_WIDTH - 20);
+ CFont::SetCentreSize(SCALE_AND_CENTER_X(DEFAULT_SCREEN_WIDTH - 20));
CFont::SetCentreOn();
CFont::SetPropOn();
CFont::SetColor(CRGBA(220, 220, 220, 220));
@@ -489,11 +489,11 @@ CCredits::Render(void)
if(TheCamera.m_WideScreenOn)
TheCamera.DrawBordersForWideScreen();
- if(lineoffset + SCREEN_HEIGHT - scrolloffset < -10.0f)
+ if(lineoffset + DEFAULT_SCREEN_HEIGHT - scrolloffset < -10.0f)
bCreditsGoing = false;
}
bool CCredits::AreCreditsDone(void)
{
return !bCreditsGoing;
-}
+} \ No newline at end of file
diff --git a/src/render/Draw.cpp b/src/render/Draw.cpp
index db87e76d..4e323ec2 100644
--- a/src/render/Draw.cpp
+++ b/src/render/Draw.cpp
@@ -70,3 +70,14 @@ CDraw::SetFOV(float fov)
#endif
ms_fFOV = fov;
}
+
+#ifdef ASPECT_RATIO_SCALE
+float
+ScaleAndCenterX(float x)
+{
+ if (SCREEN_WIDTH == DEFAULT_SCREEN_WIDTH)
+ return x;
+ else
+ return (SCREEN_WIDTH - SCREEN_SCALE_X(DEFAULT_SCREEN_WIDTH)) / 2 + SCREEN_SCALE_X(x);
+}
+#endif \ No newline at end of file
diff --git a/src/render/Font.cpp b/src/render/Font.cpp
index de7de81a..58e44a5b 100644
--- a/src/render/Font.cpp
+++ b/src/render/Font.cpp
@@ -244,8 +244,8 @@ CFont::Initialise(void)
SetColor(CRGBA(0xFF, 0xFF, 0xFF, 0));
SetJustifyOff();
SetCentreOff();
- SetWrapx(DEFAULT_SCREEN_WIDTH);
- SetCentreSize(DEFAULT_SCREEN_WIDTH);
+ SetWrapx(SCREEN_STRETCH_X(DEFAULT_SCREEN_WIDTH));
+ SetCentreSize(SCREEN_STRETCH_X(DEFAULT_SCREEN_WIDTH));
SetBackgroundOff();
SetBackgroundColor(CRGBA(0x80, 0x80, 0x80, 0x80));
SetBackGroundOnlyTextOff();
diff --git a/src/render/Hud.cpp b/src/render/Hud.cpp
index 08c0cb85..5c0dd86e 100644
--- a/src/render/Hud.cpp
+++ b/src/render/Hud.cpp
@@ -336,7 +336,7 @@ void CHud::Draw()
CFont::SetScale(SCREEN_SCALE_X(0.4f), SCREEN_SCALE_Y(0.6f));
CFont::SetJustifyOff();
CFont::SetCentreOn();
- CFont::SetCentreSize(SCREEN_SCALE_X(640.0f));
+ CFont::SetCentreSize(SCREEN_WIDTH);
CFont::SetPropOn();
CFont::SetFontStyle(FONT_BANK);
@@ -740,7 +740,7 @@ void CHud::Draw()
CFont::SetRightJustifyWrap(0.0f);
CFont::SetFontStyle(FONT_LOCALE(FONT_HEADING));
CFont::SetColor(CRGBA(244, 20, 20, 255));
- CFont::SetWrapx(SCREEN_SCALE_X(640.0f));
+ CFont::SetWrapx(SCREEN_STRETCH_X(DEFAULT_SCREEN_WIDTH));
CFont::SetPropOff();
CFont::SetBackGroundOnlyTextOn();
@@ -869,8 +869,8 @@ void CHud::Draw()
else
CFont::SetCentreOff();
- CFont::SetWrapx(SCREEN_SCALE_X(CTheScripts::IntroTextLines[i].m_fWrapX));
- CFont::SetCentreSize(SCREEN_SCALE_X(CTheScripts::IntroTextLines[i].m_fCenterSize));
+ CFont::SetWrapx(SCALE_AND_CENTER_X(CTheScripts::IntroTextLines[i].m_fWrapX));
+ CFont::SetCentreSize(SCALE_AND_CENTER_X(CTheScripts::IntroTextLines[i].m_fCenterSize));
if (CTheScripts::IntroTextLines[i].m_bBackground)
CFont::SetBackgroundOn();
@@ -890,7 +890,7 @@ void CHud::Draw()
CFont::SetPropOff();
CFont::SetFontStyle(FONT_LOCALE(CTheScripts::IntroTextLines[i].m_nFont));
- CFont::PrintString(SCREEN_SCALE_X(DEFAULT_SCREEN_WIDTH - CTheScripts::IntroTextLines[i].m_fAtX), SCREEN_SCALE_Y(DEFAULT_SCREEN_HEIGHT - CTheScripts::IntroTextLines[i].m_fAtY), CTheScripts::IntroTextLines[i].m_Text);
+ CFont::PrintString(SCALE_AND_CENTER_X(DEFAULT_SCREEN_WIDTH - CTheScripts::IntroTextLines[i].m_fAtX), SCREEN_SCALE_Y(DEFAULT_SCREEN_HEIGHT - CTheScripts::IntroTextLines[i].m_fAtY), CTheScripts::IntroTextLines[i].m_Text);
}
}
for (int i = 0; i < ARRAY_SIZE(CTheScripts::IntroRectangles); i++) {
@@ -957,9 +957,11 @@ void CHud::Draw()
CFont::SetScale(SCREEN_SCALE_X(1.8f), SCREEN_SCALE_Y(1.8f));
CFont::SetPropOn();
CFont::SetCentreOn();
- CFont::SetCentreSize(SCREEN_SCALE_X(615.0f));
+ CFont::SetCentreSize(SCREEN_SCALE_FROM_RIGHT(25.0f));
CFont::SetFontStyle(FONT_HEADING);
+ // Appearently sliding text in here was abandoned very early, since this text is centered now.
+
if (BigMessageX[0] >= SCREEN_SCALE_FROM_RIGHT(20.0f)) {
BigMessageInUse[0] += CTimer::GetTimeStep();
@@ -974,7 +976,7 @@ void CHud::Draw()
}
}
else {
- BigMessageX[0] += (CTimer::GetTimeStepInMilliseconds() * 0.3f);
+ BigMessageX[0] += SCREEN_SCALE_X((CTimer::GetTimeStepInMilliseconds() * 0.3f));
BigMessageAlpha[0] += (CTimer::GetTimeStepInMilliseconds() * 0.3f);
if (BigMessageAlpha[0] > 255.0f)
@@ -983,17 +985,19 @@ void CHud::Draw()
CFont::SetColor(CRGBA(0, 0, 0, BigMessageAlpha[0]));
#ifdef FIX_BUGS
- CFont::PrintString(SCREEN_WIDTH / 2 + SCREEN_SCALE_X(2.0f), (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(18.0f) + SCREEN_SCALE_Y(2.0f), m_BigMessage[0]);
+#define Y_OFFSET 18.0f
#else
- CFont::PrintString(SCREEN_WIDTH / 2 + SCREEN_SCALE_X(2.0f), (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(20.0f) + SCREEN_SCALE_Y(2.0f), m_BigMessage[0]);
+#define Y_OFFSET 20.0f
#endif
-
+ CFont::PrintString(SCREEN_WIDTH / 2 + SCREEN_SCALE_X(2.0f), (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(Y_OFFSET) + SCREEN_SCALE_Y(2.0f), m_BigMessage[0]);
CFont::SetColor(CRGBA(BIGMESSAGE_COLOR.r, BIGMESSAGE_COLOR.g, BIGMESSAGE_COLOR.b, BigMessageAlpha[0]));
CFont::PrintString(SCREEN_WIDTH / 2, (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(18.0f), m_BigMessage[0]);
+
+#undef Y_OFFSET
}
else {
BigMessageAlpha[0] = 0.0f;
- BigMessageX[0] = -60.0f;
+ BigMessageX[0] = SCALE_AND_CENTER_X(-60.0f);
BigMessageInUse[0] = 1.0f;
}
}
@@ -1162,8 +1166,8 @@ void CHud::DrawAfterFade()
else
CFont::SetCentreOff();
- CFont::SetWrapx(SCREEN_SCALE_X(line.m_fWrapX));
- CFont::SetCentreSize(SCREEN_SCALE_X(line.m_fCenterSize));
+ CFont::SetWrapx(SCALE_AND_CENTER_X(line.m_fWrapX));
+ CFont::SetCentreSize(SCALE_AND_CENTER_X(line.m_fCenterSize));
if (line.m_bBackground)
CFont::SetBackgroundOn();
else
@@ -1181,7 +1185,7 @@ void CHud::DrawAfterFade()
CFont::SetPropOff();
CFont::SetFontStyle(line.m_nFont);
- CFont::PrintString(SCREEN_SCALE_X(DEFAULT_SCREEN_WIDTH - line.m_fAtX), SCREEN_SCALE_Y(DEFAULT_SCREEN_HEIGHT - line.m_fAtY), line.m_Text);
+ CFont::PrintString(SCALE_AND_CENTER_X(DEFAULT_SCREEN_WIDTH - line.m_fAtX), SCREEN_SCALE_Y(DEFAULT_SCREEN_HEIGHT - line.m_fAtY), line.m_Text);
}
}
for (int i = 0; i < ARRAY_SIZE(CTheScripts::IntroRectangles); i++) {
@@ -1209,7 +1213,7 @@ void CHud::DrawAfterFade()
CFont::SetScale(SCREEN_SCALE_X(1.2f), SCREEN_SCALE_Y(1.5f));
CFont::SetCentreOn();
CFont::SetPropOn();
- CFont::SetCentreSize(SCREEN_SCALE_X(600.0f));
+ CFont::SetCentreSize(SCREEN_SCALE_FROM_RIGHT(40.0f));
CFont::SetFontStyle(FONT_LOCALE(FONT_BANK));
CFont::SetColor(CRGBA(0, 0, 0, 255));
@@ -1225,7 +1229,7 @@ void CHud::DrawAfterFade()
CFont::SetScale(SCREEN_SCALE_X(1.2f), SCREEN_SCALE_Y(1.5f));
CFont::SetCentreOn();
CFont::SetPropOn();
- CFont::SetCentreSize(SCREEN_SCALE_X(620.0f));
+ CFont::SetCentreSize(SCREEN_SCALE_FROM_RIGHT(20.0f));
CFont::SetColor(CRGBA(0, 0, 0, 255));
CFont::SetFontStyle(FONT_LOCALE(FONT_BANK));
@@ -1329,7 +1333,7 @@ void CHud::DrawAfterFade()
BigMessageAlpha[1] = 0.0f;
}
} else {
- BigMessageX[1] += (CTimer::GetTimeStepInMilliseconds() * 0.3f);
+ BigMessageX[1] += SCREEN_SCALE_X((CTimer::GetTimeStepInMilliseconds() * 0.3f));
BigMessageAlpha[1] += (CTimer::GetTimeStepInMilliseconds() * 0.3f);
if (BigMessageAlpha[1] > 255.0f)
@@ -1337,14 +1341,21 @@ void CHud::DrawAfterFade()
}
CFont::SetColor(CRGBA(40, 40, 40, BigMessageAlpha[1]));
+#ifdef BETA_SLIDING_TEXT
+ CFont::PrintString(SCREEN_SCALE_X(2.0f) + BigMessageX[1], SCREEN_SCALE_FROM_BOTTOM(120.0f) + SCREEN_SCALE_Y(2.0f), m_BigMessage[1]);
+
+ CFont::SetColor(CRGBA(MISSIONTITLE_COLOR.r, MISSIONTITLE_COLOR.g, MISSIONTITLE_COLOR.b, BigMessageAlpha[1]));
+ CFont::PrintString(BigMessageX[1], SCREEN_SCALE_FROM_BOTTOM(120.0f), m_BigMessage[1]);
+#else
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(20.0f) + SCREEN_SCALE_X(2.0f), SCREEN_SCALE_FROM_BOTTOM(120.0f) + SCREEN_SCALE_Y(2.0f), m_BigMessage[1]);
CFont::SetColor(CRGBA(MISSIONTITLE_COLOR.r, MISSIONTITLE_COLOR.g, MISSIONTITLE_COLOR.b, BigMessageAlpha[1]));
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(20.0f), SCREEN_SCALE_FROM_BOTTOM(120.0f), m_BigMessage[1]);
+#endif
}
else {
BigMessageAlpha[1] = 0.0f;
- BigMessageX[1] = -60.0f;
+ BigMessageX[1] = SCALE_AND_CENTER_X(-60.0f);
BigMessageInUse[1] = 1.0f;
}
}