From f7ab5cb7c4be22fed5b12a194591dafcfad8d651 Mon Sep 17 00:00:00 2001 From: aap Date: Fri, 22 Jan 2021 00:41:34 +0100 Subject: loadscreens, not accurate --- src/core/main.cpp | 48 ++++++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 22 deletions(-) (limited to 'src/core/main.cpp') diff --git a/src/core/main.cpp b/src/core/main.cpp index 7f73c311..5d18c5fa 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -101,7 +101,7 @@ RwRGBA gColourTop; bool gameAlreadyInitialised; float NumberOfChunksLoaded; -#define TOTALNUMCHUNKS 95.0f +#define TOTALNUMCHUNKS 52.0f bool g_SlowMode = false; char version_name[64]; @@ -572,11 +572,11 @@ GetRandomSplashScreen(void) static char splashName[128]; static int splashIndex[12] = { 1, 2, - 3, 4, - 5, 11, - 6, 8, - 9, 10, - 7, 12 + 3, 0, + 1, 2, + 3, 0, + 1, 2, + 3, 0 }; index = splashIndex[2*index2 + CGeneral::GetRandomNumberInRange(0, 2)]; @@ -590,11 +590,12 @@ GetRandomSplashScreen(void) Const char* GetLevelSplashScreen(int level) { - static Const char *splashScreens[4] = { + static Const char *splashScreens[5] = { nil, "splash1", "splash2", "splash3", + "loadsc0", }; return splashScreens[level]; @@ -606,7 +607,7 @@ ResetLoadingScreenBar() NumberOfChunksLoaded = 0.0f; } -//--MIAMI: done +//--LCS: not the real thing void LoadingScreen(const char *str1, const char *str2, const char *splashscreen) { @@ -618,7 +619,7 @@ LoadingScreen(const char *str1, const char *str2, const char *splashscreen) #endif #ifndef RANDOMSPLASH - splashscreen = "LOADSC0"; + splashscreen = "SCEELEE"; #endif splash = LoadSplash(splashscreen); @@ -640,24 +641,27 @@ LoadingScreen(const char *str1, const char *str2, const char *splashscreen) NumberOfChunksLoaded += 1; #ifndef RANDOMSPLASH + // this looks nice float hpos = SCREEN_SCALE_X(40); float length = SCREEN_WIDTH - SCREEN_SCALE_X(80); - float top = SCREEN_HEIGHT - SCREEN_SCALE_Y(14); - float bottom = top + SCREEN_SCALE_Y(5); + float top = SCREEN_HEIGHT - SCREEN_SCALE_Y(30); + float bottom = top + SCREEN_SCALE_Y(8); #else - float hpos = SCREEN_STRETCH_X(40); - float length = SCREEN_STRETCH_X(440); - // this is rather weird - float top = SCREEN_STRETCH_Y(407.4f - 7.0f/3.0f); - float bottom = SCREEN_STRETCH_Y(407.4f + 7.0f/3.0f); + // should correspond to PS2 position + float hpos = SCREEN_STRETCH_X(44); + float length = SCREEN_STRETCH_X(176); + float top = SCREEN_STRETCH_Y(420); + float bottom = top + SCREEN_STRETCH_Y(8); #endif - CSprite2d::DrawRect(CRect(hpos-1.0f, top-1.0f, hpos+length+1.0f, bottom+1.0f), CRGBA(40, 53, 68, 255)); + CSprite2d::DrawRect(CRect(hpos+4.0f, top+6.0f, hpos+length+4.0f, bottom+6.0f), CRGBA(0, 0, 0, 200)); - CSprite2d::DrawRect(CRect(hpos, top, hpos+length, bottom), CRGBA(155, 50, 125, 255)); + CSprite2d::DrawRect(CRect(hpos, top, hpos+length, bottom), CRGBA(0, 0, 0, 255)); + + CSprite2d::DrawRect(CRect(hpos+1.0f, top+1.0f, hpos+length-1.0f, bottom-1.0f), CRGBA(99, 99, 99, 255)); length *= NumberOfChunksLoaded/TOTALNUMCHUNKS; - CSprite2d::DrawRect(CRect(hpos, top, hpos+length, bottom), CRGBA(255, 150, 225, 255)); + CSprite2d::DrawRect(CRect(hpos+1.0f, top+1.0f, hpos+length-1.0f, bottom-1.0f), CRGBA(126, 15, 0, 255)); // this is done by the game but is unused CFont::SetBackgroundOff(); @@ -672,7 +676,7 @@ LoadingScreen(const char *str1, const char *str2, const char *splashscreen) // my attempt static wchar tmpstr[80]; float yscale = SCREEN_SCALE_Y(0.9f); - top -= 45*yscale; + top = bottom+5*yscale; CFont::SetScale(SCREEN_SCALE_X(0.75f), yscale); CFont::SetPropOn(); CFont::SetRightJustifyOff(); @@ -693,13 +697,13 @@ LoadingScreen(const char *str1, const char *str2, const char *splashscreen) } } -//--MIAMI: done +//--LCS: slightly fixed void LoadingIslandScreen(const char *levelName) { CSprite2d *splash; - splash = LoadSplash(nil); + splash = LoadSplash(GetLevelSplashScreen(CGame::currLevel)); if(!DoRWStuffStartOfFrame(0, 0, 0, 0, 0, 0, 255)) return; -- cgit v1.2.3