summaryrefslogtreecommitdiff
path: root/src/core/Game.cpp
diff options
context:
space:
mode:
authorSergeanur <s.anureev@yandex.ua>2020-06-29 12:56:50 +0300
committerSergeanur <s.anureev@yandex.ua>2020-06-29 12:56:50 +0300
commitb26eec5dafc7720d2c8e61db7dd6da29442cab94 (patch)
tree4dfc58239c4555d4d4e6d0b327b65b7dab6cae65 /src/core/Game.cpp
parent3370ae04cbb051aa5f853de64c8f7956530a4ea7 (diff)
parent7b22b7e2af691a78741199f19397248903b6c2b2 (diff)
Merge remote-tracking branch 'origin/master' into miami
# Conflicts: # src/audio/AudioLogic.cpp # src/audio/soundlist.h # src/control/Script.cpp # src/control/ScriptCommands.h # src/core/Cam.cpp # src/core/Camera.cpp # src/core/Camera.h # src/core/Frontend.cpp # src/core/Frontend.h # src/core/Game.cpp # src/core/MenuScreens.cpp # src/core/Pad.cpp # src/core/Pad.h # src/core/config.h # src/entities/Entity.cpp # src/render/Credits.cpp # src/render/Fluff.cpp # src/render/Hud.cpp # src/render/MBlur.cpp # src/render/Timecycle.cpp # src/skel/glfw/glfw.cpp # src/skel/win/win.cpp # src/text/Text.cpp
Diffstat (limited to 'src/core/Game.cpp')
-rw-r--r--src/core/Game.cpp82
1 files changed, 78 insertions, 4 deletions
diff --git a/src/core/Game.cpp b/src/core/Game.cpp
index 3f75b46b..e3ef8aed 100644
--- a/src/core/Game.cpp
+++ b/src/core/Game.cpp
@@ -43,6 +43,7 @@
#include "Lights.h"
#include "MBlur.h"
#include "Messages.h"
+#include "MemoryCard.h"
#include "Pad.h"
#include "Particle.h"
#include "ParticleObject.h"
@@ -104,6 +105,43 @@ bool CGame::japaneseGame = false;
int gameTxdSlot;
+
+bool DoRWStuffStartOfFrame(int16 TopRed, int16 TopGreen, int16 TopBlue, int16 BottomRed, int16 BottomGreen, int16 BottomBlue, int16 Alpha);
+void DoRWStuffEndOfFrame(void);
+void MessageScreen(char *msg)
+{
+ //TODO: stretch_screen
+
+ CRect rect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
+ CRGBA color(255, 255, 255, 255);
+
+ DoRWStuffStartOfFrame(50, 50, 50, 0, 0, 0, 255);
+
+ CSprite2d::InitPerFrame();
+ CFont::InitPerFrame();
+ DefinedState();
+
+ CSprite2d *splash = LoadSplash(NULL);
+ splash->Draw(rect, color, color, color, color);
+ splash->DrawRect(CRect(SCREEN_SCALE_X(20.0f), SCREEN_SCALE_Y(110.0f), SCREEN_SCALE_X(620.0f), SCREEN_SCALE_Y(300.0f)), CRGBA(50, 50, 50, 192));
+
+ CFont::SetFontStyle(FONT_BANK);
+ CFont::SetBackgroundOff();
+ CFont::SetWrapx(SCREEN_SCALE_FROM_RIGHT(190.0f)); // 450.0f
+ CFont::SetScale(SCREEN_SCALE_X(1.0f), SCREEN_SCALE_Y(1.0f));
+ CFont::SetCentreOn();
+ CFont::SetCentreSize(SCREEN_SCALE_FROM_RIGHT(190.0f)); // 450.0f
+ CFont::SetJustifyOff();
+ CFont::SetColor(CRGBA(255, 255, 255, 255));
+ CFont::SetDropColor(CRGBA(32, 32, 32, 255));
+ CFont::SetDropShadowPosition(3);
+ CFont::SetPropOn();
+ CFont::PrintString(SCREEN_SCALE_X(320.0f), SCREEN_SCALE_Y(130.0f), TheText.Get(msg));
+ CFont::DrawFonts();
+
+ DoRWStuffEndOfFrame();
+}
+
bool
CGame::InitialiseOnceBeforeRW(void)
{
@@ -278,6 +316,7 @@ bool CGame::Initialise(const char* datFile)
COcclusion::Init();
CCollision::Init();
CSetPieces::Init();
+ TheText.Load();
CTheZones::Init();
CUserDisplay::Init();
CMessages::Init();
@@ -286,6 +325,11 @@ bool CGame::Initialise(const char* datFile)
CRestart::Initialise();
CWorld::Initialise();
CParticle::Initialise();
+#ifdef PS2
+ gStartX = -180.0f;
+ gStartY = 180.0f;
+ gStartZ = 14.0f;
+#endif
CAnimManager::Initialise();
CCutsceneMgr::Initialise();
CCarCtrl::Init();
@@ -366,10 +410,16 @@ bool CGame::Initialise(const char* datFile)
CCredits::Init();
CRecordDataForChase::Init();
CReplay::Init();
- LoadingScreen("Loading the Game", "Start script", nil);
+#ifdef PS2_MENU
+ if ( !TheMemoryCard.m_bWantToLoad )
+ {
+#endif
CTheScripts::StartTestScript();
CTheScripts::Process();
TheCamera.Process();
+#ifdef PS2_MENU
+ }
+#endif
LoadingScreen("Loading the Game", "Load scene", nil);
CCollision::ms_collisionInMemory = currLevel;
for (int i = 0; i < MAX_PADS; i++)
@@ -433,8 +483,15 @@ bool CGame::ShutDown(void)
void CGame::ReInitGameObjectVariables(void)
{
CGameLogic::InitAtStartOfGame();
- TheCamera.CCamera::Init();
+#ifdef PS2_MENU
+ if ( !TheMemoryCard.m_bWantToLoad )
+ {
+#endif
+ TheCamera.Init();
TheCamera.SetRwCamera(Scene.camera);
+#ifdef PS2_MENU
+ }
+#endif
CDebug::DebugInitTextBuffer();
CWeather::Init();
CUserDisplay::Init();
@@ -443,6 +500,11 @@ void CGame::ReInitGameObjectVariables(void)
CWorld::bDoingCarCollisions = false;
CHud::ReInitialise();
CRadar::Initialise();
+#ifdef PS2
+ gStartX = -180.0f;
+ gStartY = 180.0f;
+ gStartZ = 14.0f;
+#endif
CCarCtrl::ReInit();
CTimeCycle::Initialise();
CDraw::SetFOV(120.0f);
@@ -458,6 +520,10 @@ void CGame::ReInitGameObjectVariables(void)
CWorld::Players[i].Clear();
CWorld::PlayerInFocus = 0;
+#ifdef PS2
+ CWeaponEffects::Init();
+ CSkidmarks::Init();
+#endif
CAntennas::Init();
CGlass::Init();
gPhoneInfo.Initialise();
@@ -473,11 +539,19 @@ void CGame::ReInitGameObjectVariables(void)
CPickups::Init();
CPacManPickups::Init();
CGarages::Init();
+#ifdef PS2
+ CClouds::Init();
+ CRemote::Init();
+#endif
CSpecialFX::Init();
CWaterCannons::Init();
CParticle::ReloadConfig();
+#ifdef PS2_MENU
+ if ( !TheMemoryCard.m_bWantToLoad )
+#else
if ( !FrontEndMenuManager.m_bWantToLoad )
+#endif
{
CCranes::InitCranes();
CTheScripts::StartTestScript();
@@ -589,8 +663,8 @@ void CGame::Process(void)
ProcessTidyUpMemory();
#endif
TheCamera.SetMotionBlurAlpha(0);
- if (TheCamera.m_BlurType == MBLUR_NONE || TheCamera.m_BlurType == MBLUR_SNIPER || TheCamera.m_BlurType == MBLUR_NORMAL)
- TheCamera.SetMotionBlur(0, 0, 0, 0, MBLUR_NONE);
+ if (TheCamera.m_BlurType == MOTION_BLUR_NONE || TheCamera.m_BlurType == MOTION_BLUR_SNIPER || TheCamera.m_BlurType == MOTION_BLUR_LIGHT_SCENE)
+ TheCamera.SetMotionBlur(0, 0, 0, 0, MOTION_BLUR_NONE);
#ifdef DEBUGMENU
DebugMenuProcess();
#endif