diff --git a/polymer/eduke32/build/src/engine.c b/polymer/eduke32/build/src/engine.c index 281d37802..dc2e6744b 100644 --- a/polymer/eduke32/build/src/engine.c +++ b/polymer/eduke32/build/src/engine.c @@ -8537,16 +8537,15 @@ int32_t loadlookups(int32_t fp) { uint8_t numlookups; char remapbuf[256]; - int32_t j; - if (kread(fp, &numlookups, 1) != 1) + if (kread_and_test(fp, &numlookups, 1)) return -1; - for (j=0; j= 256-RESERVEDPALS) @@ -8555,7 +8554,7 @@ int32_t loadlookups(int32_t fp) return -2; } - if (kread(fp, remapbuf, 256) != 256) + if (kread_and_test(fp, remapbuf, 256)) return -1; makepalookup(palnum, remapbuf, 0,0,0, 0); diff --git a/polymer/eduke32/source/astub.c b/polymer/eduke32/source/astub.c index b082cb48d..4e13da346 100644 --- a/polymer/eduke32/source/astub.c +++ b/polymer/eduke32/source/astub.c @@ -2341,17 +2341,6 @@ static inline void SpriteName(int16_t spritenum, char *lo2) Bstrcpy(lo2, names[sprite[spritenum].picnum]); }// end SpriteName -// Returns: did error? -static int32_t ReadPaletteTable(void) -{ - // Make base shade table at shade 0 into the identity map. - // (In the shade table of Duke3D's PALETTE.DAT, palookup[0][239]==143.) - // This makes it possible to sensibly use Lunatic's engine.saveLookupDat(). - palookup[0][239] = 239; - - return G_LoadLookups(); -} - static void m32_showmouse(void) { @@ -9915,8 +9904,7 @@ int32_t ExtPostStartupWindow(void) return -1; } - if (ReadPaletteTable()) - return 0; + G_LoadLookups(); loadtilegroups(default_tiles_cfg); @@ -9946,6 +9934,15 @@ int32_t ExtPostStartupWindow(void) void ExtPostInit(void) { InitCustomColors(); + + // Make base shade table at shade 0 into the identity map. + // (In the shade table of Duke3D's PALETTE.DAT, palookup[0][239]==143.) + // This makes it possible to sensibly use Lunatic's engine.saveLookupDat(). + palookup[0][239] = 239; + + generatefogpals(); + + fillemptylookups(); } void ExtUnInit(void) diff --git a/polymer/eduke32/source/common.c b/polymer/eduke32/source/common.c index 7c091ed75..93343b2aa 100644 --- a/polymer/eduke32/source/common.c +++ b/polymer/eduke32/source/common.c @@ -1009,18 +1009,13 @@ uint8_t *basepaltable[BASEPALCOUNT] = { NULL /*anim_pal*/ }; -int32_t G_LoadLookups(void) +void G_LoadLookups(void) { int32_t fp, j; if ((fp=kopen4loadfrommod("lookup.dat",0)) == -1) - { if ((fp=kopen4loadfrommod("lookup.dat",1)) == -1) - { - initprintf("ERROR: File \"lookup.dat\" not found.\n"); - return 1; - } - } + return; j = loadlookups(fp); @@ -1028,26 +1023,20 @@ int32_t G_LoadLookups(void) { if (j == -1) initprintf("ERROR loading \"lookup.dat\": failed reading enough data.\n"); - return 1; + + return kclose(fp); } for (j=1; j<=5; j++) { // Account for TITLE and REALMS swap between basepal number and on-disk order. - // XXX: this reordering is better off as an argument to us. int32_t basepalnum = (j == 3 || j == 4) ? 4+3-j : j; - if (kread(fp, basepaltable[basepalnum], 768) != 768) - return -1; + if (kread_and_test(fp, basepaltable[basepalnum], 768)) + return kclose(fp); } kclose(fp); - - generatefogpals(); - - fillemptylookups(); - - return 0; } #if defined HAVE_FLAC || defined HAVE_VORBIS diff --git a/polymer/eduke32/source/common_game.h b/polymer/eduke32/source/common_game.h index 4e9077528..2fdb9f32e 100644 --- a/polymer/eduke32/source/common_game.h +++ b/polymer/eduke32/source/common_game.h @@ -126,7 +126,7 @@ void G_DoAutoload(const char *dirname); extern uint8_t *basepaltable[BASEPALCOUNT]; -extern int32_t G_LoadLookups(void); +extern void G_LoadLookups(void); ////////// diff --git a/polymer/eduke32/source/game.c b/polymer/eduke32/source/game.c index 36dfd9d5c..5951996e0 100644 --- a/polymer/eduke32/source/game.c +++ b/polymer/eduke32/source/game.c @@ -10979,16 +10979,18 @@ static inline void G_CheckGametype(void) ud.m_respawn_items = ud.m_respawn_inventory = 1; } -static void G_LoadExtraPalettes(void) +static void G_PostLoadPalette(void) { - G_LoadLookups(); - // Make color index 255 of default/water/slime palette black. Bmemset(&basepaltable[BASEPAL][255*3], 0, 3); Bmemset(&basepaltable[WATERPAL][255*3], 0, 3); Bmemset(&basepaltable[SLIMEPAL][255*3], 0, 3); + generatefogpals(); + E_ReplaceTransparentColorWithBlack(); + + fillemptylookups(); } #define SETFLAG(Tilenum, Flag) g_tile[Tilenum].flags |= Flag @@ -11260,7 +11262,7 @@ static void G_Startup(void) picanm[LOADSCREEN].sf |= PICANM_NOFULLBRIGHT_BIT; // initprintf("Loading palette/lookups...\n"); - G_LoadExtraPalettes(); + G_LoadLookups(); ReadSaveGameHeaders(); @@ -11709,6 +11711,8 @@ int32_t app_main(int32_t argc, const char **argv) if (E_PostInit()) G_FatalEngineError(); + G_PostLoadPalette(); + Gv_ResetSystemDefaults(); // called here to populate our fake tilesizx and tilesizy arrays presented to CON with sizes generated by dummytiles if (numplayers == 1 && boardfilename[0] != 0)