From e69772637c03a8dc013c6a0b003d1541a62fef49 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Wed, 30 Nov 2022 14:56:56 +0100 Subject: [PATCH] - define Duke's skies by name. --- source/core/psky.cpp | 7 +++++++ source/core/psky.h | 1 + source/games/duke/src/dispatch.cpp | 6 ------ source/games/duke/src/flags_d.cpp | 5 ----- source/games/duke/src/flags_r.cpp | 4 ---- source/games/duke/src/game.cpp | 8 ++++---- source/games/duke/src/game_misc.cpp | 3 ++- source/games/duke/src/names.h | 6 ------ 8 files changed, 14 insertions(+), 26 deletions(-) diff --git a/source/core/psky.cpp b/source/core/psky.cpp index e9a71c271..db4352b30 100644 --- a/source/core/psky.cpp +++ b/source/core/psky.cpp @@ -121,3 +121,10 @@ void defineSky(int tilenum, int lognumtiles, const int16_t *tileofs, int yoff, f if (tileofs) memcpy(sky.offsets, tileofs, 2 << lognumtiles); addSky(sky, tilenum); } + +void defineSky(const char* tilename, int lognumtiles, const int16_t* tileofs, int yoff, float yscale, int yoff2) +{ + int tile = TileFiles.tileForName(tilename); + if (tile >= 0) + defineSky(tile, lognumtiles, tileofs, yoff, yscale, yoff2); +} diff --git a/source/core/psky.h b/source/core/psky.h index 4853e6464..28e915696 100644 --- a/source/core/psky.h +++ b/source/core/psky.h @@ -25,4 +25,5 @@ void addSkyCRC(SkyDefinition& sky, int64_t crc32); void SetSkyOverride(float scale, int bits); SkyDefinition getSky(int tilenum); void defineSky(int tilenum, int lognumtiles, const int16_t *tileofs, int yoff = 0, float yscale = 1.f, int yoff2 = 0x7fffffff); +void defineSky(const char* tilename, int lognumtiles, const int16_t* tileofs, int yoff = 0, float yscale = 1.f, int yoff2 = 0x7fffffff); diff --git a/source/games/duke/src/dispatch.cpp b/source/games/duke/src/dispatch.cpp index 5a6497f11..5917dd537 100644 --- a/source/games/duke/src/dispatch.cpp +++ b/source/games/duke/src/dispatch.cpp @@ -179,7 +179,6 @@ void SetDispatcher() int TILE_W_FORCEFIELD; int TILE_APLAYER; int TILE_DRONE; -int TILE_MENUSCREEN; int TILE_SCREENBORDER; int TILE_VIEWBORDER; int TILE_APLAYERTOP; @@ -204,13 +203,8 @@ int TILE_ACCESSSWITCH2; int TILE_GLASSPIECES; int TILE_HEN; int TILE_MIRROR; -int TILE_CLOUDYOCEAN; -int TILE_MOONSKY1; -int TILE_BIGORBIT; -int TILE_LA; int TILE_LOADSCREEN; int TILE_CROSSHAIR; -int TILE_BIGORBIT1; int TILE_EGG; END_DUKE_NS diff --git a/source/games/duke/src/flags_d.cpp b/source/games/duke/src/flags_d.cpp index 6d8c12a53..4167e20c2 100644 --- a/source/games/duke/src/flags_d.cpp +++ b/source/games/duke/src/flags_d.cpp @@ -241,7 +241,6 @@ void initactorflags_d() TILE_W_FORCEFIELD = W_FORCEFIELD; TILE_APLAYER = APLAYER; TILE_DRONE = DRONE; - TILE_MENUSCREEN = MENUSCREEN; TILE_SCREENBORDER = BIGHOLE; TILE_VIEWBORDER = VIEWBORDER; TILE_APLAYERTOP = APLAYERTOP; @@ -263,12 +262,8 @@ void initactorflags_d() TILE_ACCESSSWITCH2 = ACCESSSWITCH2; TILE_GLASSPIECES = GLASSPIECES; TILE_MIRROR = MIRROR; - TILE_CLOUDYOCEAN = CLOUDYOCEAN; - TILE_MOONSKY1 = MOONSKY1; - TILE_LA = LA; TILE_LOADSCREEN = LOADSCREEN; TILE_CROSSHAIR = CROSSHAIR; - TILE_BIGORBIT1 = BIGORBIT1; TILE_EGG = EGG; } diff --git a/source/games/duke/src/flags_r.cpp b/source/games/duke/src/flags_r.cpp index 8f14b935f..6910ccb59 100644 --- a/source/games/duke/src/flags_r.cpp +++ b/source/games/duke/src/flags_r.cpp @@ -238,7 +238,6 @@ void initactorflags_r() TILE_W_FORCEFIELD = W_FORCEFIELD; TILE_APLAYER = APLAYER; TILE_DRONE = DRONE; - TILE_MENUSCREEN = MENUSCREEN; TILE_SCREENBORDER = isRRRA()? 7629 : BIGHOLE; TILE_VIEWBORDER = VIEWBORDER; TILE_APLAYERTOP = APLAYERTOP; @@ -261,11 +260,8 @@ void initactorflags_r() TILE_GLASSPIECES = GLASSPIECES; TILE_MIRROR = MIRROR; TILE_HEN = HEN; - TILE_MOONSKY1 = MOONSKY1; - TILE_LA = LA; TILE_LOADSCREEN = LOADSCREEN; TILE_CROSSHAIR = CROSSHAIR; - TILE_BIGORBIT1 = BIGORBIT1; TILE_EGG = EGG; gs.firstdebris = SCRAP6; diff --git a/source/games/duke/src/game.cpp b/source/games/duke/src/game.cpp index 4ad7d46d9..bab35a048 100644 --- a/source/games/duke/src/game.cpp +++ b/source/games/duke/src/game.cpp @@ -238,10 +238,10 @@ static void setupbackdrop() static const int16_t defoff7[8] = { 7, 0, 1, 2, 3, 4, 5, 6 }; defineSky(DEFAULTPSKY, 3, nullptr); - defineSky(TILE_CLOUDYOCEAN, 3, nullptr); - defineSky(TILE_MOONSKY1, 3, moonoff); - defineSky(TILE_BIGORBIT1, 3, orbitoff); - defineSky(TILE_LA, 3, laoff); + defineSky("CLOUDYOCEAN", 3, nullptr); + defineSky("MOONSKY12", 3, moonoff); + defineSky("BIGORBIT1", 3, orbitoff); + defineSky("LA", 3, laoff); if (isWorldTour()) { defineSky(5284, 3, defoff); diff --git a/source/games/duke/src/game_misc.cpp b/source/games/duke/src/game_misc.cpp index 9c73e6068..542aa59d4 100644 --- a/source/games/duke/src/game_misc.cpp +++ b/source/games/duke/src/game_misc.cpp @@ -151,7 +151,8 @@ void FTA(int q, player_struct* p) void GameInterface::DrawBackground() { twod->ClearScreen(); - auto tex = tileGetTexture(TILE_MENUSCREEN); + auto tex = TexMan.FindGameTexture("MENUSCREEN"); + if (!tex) return; PalEntry color = 0xff808080; if (!hud_bgstretch) DrawTexture(twod, tex, 0, 0, DTA_FullscreenEx, FSMode_ScaleToFit43, DTA_Color, color, TAG_DONE); diff --git a/source/games/duke/src/names.h b/source/games/duke/src/names.h index 8b381ad32..5b8a4c082 100644 --- a/source/games/duke/src/names.h +++ b/source/games/duke/src/names.h @@ -6,7 +6,6 @@ BEGIN_DUKE_NS extern int TILE_W_FORCEFIELD; extern int TILE_APLAYER; extern int TILE_DRONE; -extern int TILE_MENUSCREEN; extern int TILE_SCREENBORDER; extern int TILE_VIEWBORDER; extern int TILE_APLAYERTOP; @@ -29,13 +28,8 @@ extern int TILE_ACCESSSWITCH2; extern int TILE_GLASSPIECES; extern int TILE_HEN; extern int TILE_MIRROR; -extern int TILE_CLOUDYOCEAN; -extern int TILE_MOONSKY1; -extern int TILE_BIGORBIT; -extern int TILE_LA; extern int TILE_LOADSCREEN; extern int TILE_CROSSHAIR; -extern int TILE_BIGORBIT1; extern int TILE_EGG;