From fac004b4d261474102fc1912866fedef99e93952 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 12 Apr 2020 07:44:55 +0200 Subject: [PATCH] - palette code cleanup --- source/blood/src/blood.cpp | 2 - source/blood/src/loadsave.cpp | 2 - source/blood/src/screen.cpp | 18 ---- source/blood/src/screen.h | 1 - source/build/include/build.h | 2 - source/build/include/palette.h | 10 +- source/build/src/engine.cpp | 39 ++------ source/build/src/engine_priv.h | 2 +- source/build/src/palette.cpp | 37 ++++---- source/core/2d/v_2ddrawer.cpp | 3 +- source/duke3d/src/screens.cpp | 10 +- source/exhumed/src/d_menu.cpp | 2 +- source/exhumed/src/exhumed.cpp | 7 +- source/exhumed/src/light.cpp | 31 ------- source/exhumed/src/lighting.cpp | 16 ---- source/rr/src/common.cpp | 6 +- source/rr/src/screens.cpp | 10 +- source/sw/src/colormap.cpp | 160 +------------------------------- source/sw/src/colormap.h | 5 - source/sw/src/draw.cpp | 2 +- source/sw/src/game.cpp | 18 ---- source/sw/src/game.h | 3 - source/sw/src/inv.cpp | 7 +- source/sw/src/menus.cpp | 107 ++------------------- source/sw/src/ninja.cpp | 2 - source/sw/src/player.cpp | 18 +--- source/sw/src/save.cpp | 5 - 27 files changed, 61 insertions(+), 464 deletions(-) diff --git a/source/blood/src/blood.cpp b/source/blood/src/blood.cpp index 50166f7b4..786463aad 100644 --- a/source/blood/src/blood.cpp +++ b/source/blood/src/blood.cpp @@ -155,7 +155,6 @@ void ShutDown(void) netDeinitialize(); //sndTerm(); sfxTerm(); - scrUnInit(); // PORT_TODO: Check argument DO_FREE_AND_NULL(pUserTiles); } @@ -582,7 +581,6 @@ void StartLevel(GAMEOPTIONS *gameOptions) Printf("> Modern types erased: %d.\n", modernTypesErased); #endif - scrLoadPLUs(); startpos.z = getflorzofslope(startsectnum,startpos.x,startpos.y); for (int i = 0; i < kMaxPlayers; i++) { gStartZone[i].x = startpos.x; diff --git a/source/blood/src/loadsave.cpp b/source/blood/src/loadsave.cpp index c910953ce..78313ea37 100644 --- a/source/blood/src/loadsave.cpp +++ b/source/blood/src/loadsave.cpp @@ -523,8 +523,6 @@ bool GameInterface::LoadGame(FSaveGameNode* node) LoadSave::hLFile.Close(); FinishSavegameRead(); - if (!gGameStarted) - scrLoadPLUs(); InitSectorFX(); viewInitializePrediction(); PreloadCache(); diff --git a/source/blood/src/screen.cpp b/source/blood/src/screen.cpp index 3cc204897..0c9c20efd 100644 --- a/source/blood/src/screen.cpp +++ b/source/blood/src/screen.cpp @@ -73,18 +73,6 @@ void scrResetPalette(void) void scrLoadPLUs(void) { - if (gFogMode) - { - DICTNODE *pFog = gSysRes.Lookup("FOG", "FLU"); - if (!pFog) - ThrowError("FOG.FLU not found"); - palookup[0] = (char*)gSysRes.Lock(pFog); - for (int i = 0; i < 15; i++) - palookup[PLU[i].id] = palookup[0]; - parallaxvisibility = 3072; - return; - } - // load default palookups for (int i = 0; i < 15; i++) { DICTNODE *pPlu = gSysRes.Lookup(PLU[i].name, "PLU"); @@ -164,12 +152,6 @@ void scrInit(void) curPalette = 0; } -void scrUnInit(void) -{ - memset(palookup, 0, sizeof(palookup)); -} - - void scrSetGameMode(int vidMode, int XRes, int YRes, int nBits) { V_Init2(); diff --git a/source/blood/src/screen.h b/source/blood/src/screen.h index c8a675ed1..36821998f 100644 --- a/source/blood/src/screen.h +++ b/source/blood/src/screen.h @@ -43,7 +43,6 @@ void scrLoadPalette(void); void scrSetPalette(int palId); void scrSetGamma(int nGamma); void scrInit(void); -void scrUnInit(void); void scrSetGameMode(int vidMode, int XRes, int YRes, int nBits); END_BLD_NS diff --git a/source/build/include/build.h b/source/build/include/build.h index b305e86d9..236f51303 100644 --- a/source/build/include/build.h +++ b/source/build/include/build.h @@ -677,8 +677,6 @@ extern uint8_t globalr, globalg, globalb; EXTERN uint16_t h_xsize[MAXTILES], h_ysize[MAXTILES]; EXTERN int8_t h_xoffs[MAXTILES], h_yoffs[MAXTILES]; -EXTERN char *globalpalwritten; - enum { GLOBAL_NO_GL_TILESHADES = 1<<0, GLOBAL_NO_GL_FULLBRIGHT = 1<<1, diff --git a/source/build/include/palette.h b/source/build/include/palette.h index 0d476468e..90cd586a1 100644 --- a/source/build/include/palette.h +++ b/source/build/include/palette.h @@ -47,7 +47,7 @@ struct palette_t typedef struct { uint8_t r, g, b; } rgb24_t; -extern palette_t curpalette[256], palfadergb; +extern palette_t palfadergb; extern unsigned char palfadedelta; void paletteMakeLookupTable(int32_t palnum, const char *remapbuf, uint8_t r, uint8_t g, uint8_t b, char noFloorPal); @@ -83,7 +83,6 @@ extern float frealmaxshade; extern int32_t globalpal; extern int32_t globalblend; extern uint32_t g_lastpalettesum; -extern palette_t paletteGetColor(int32_t col); extern void paletteLoadFromDisk(void); extern void palettePostLoadTables(void); extern uint8_t basepalreset; @@ -102,13 +101,6 @@ extern char britable[16][256]; #ifdef USE_OPENGL extern palette_t palookupfog[MAXPALOOKUPS]; -static inline void bricolor(palette_t *wpptr, int32_t dacol) -{ - wpptr->r = curpalette[dacol].r; - wpptr->g = curpalette[dacol].g; - wpptr->b = curpalette[dacol].b; -} - enum { BLENDFACTOR_ZERO = 0, diff --git a/source/build/src/engine.cpp b/source/build/src/engine.cpp index c4e0b6c05..b6ec47d1a 100644 --- a/source/build/src/engine.cpp +++ b/source/build/src/engine.cpp @@ -119,7 +119,7 @@ static int8_t tempbuf[MAXWALLS]; // referenced from asm int32_t reciptable[2048]; -intptr_t asm1, asm2, asm3; +intptr_t asm1, asm2; int32_t globalx1, globaly2, globalx3, globaly3; static int32_t no_radarang2 = 0; @@ -2138,6 +2138,8 @@ int32_t enginePostInit(void) // // uninitengine // +void paletteFreeAll(); + void engineUnInit(void) { #ifdef USE_OPENGL @@ -2151,20 +2153,7 @@ void engineUnInit(void) TileFiles.CloseAll(); - paletteloaded = 0; - - for (bssize_t i=0; ifloorpal; - if (palookup[sec->floorpal] != globalpalwritten) - { - globalpalwritten = palookup[sec->floorpal]; - if (!globalpalwritten) globalpalwritten = palookup[0]; // JBF: fixes null-pointer crash - //setpalookupaddress(globalpalwritten); - } globalpicnum = sec->floorpicnum; if ((unsigned)globalpicnum >= (unsigned)MAXTILES) globalpicnum = 0; tileUpdatePicnum(&globalpicnum, s); @@ -3121,7 +3104,6 @@ void renderDrawMapView(int32_t dax, int32_t day, int32_t zoome, int16_t ang) else globalshade = ((int32_t)sector[spr->sectnum].floorshade); globalshade = max(min(globalshade+spr->shade+6,numshades-1),0); - asm3 = FP_OFF(palookup[spr->pal]+(globalshade<<8)); globvis = globalhisibility; if (sec->visibility != 0) globvis = mulscale4(globvis, (uint8_t)(sec->visibility+16)); @@ -5049,13 +5031,7 @@ void rotatesprite_(int32_t sx, int32_t sy, int32_t z, int16_t a, int16_t picnum, // void videoClearViewableArea(int32_t dacol) { - if (!in3dmode() && dacol != -1) return; - - if (dacol == -1) dacol = 0; - - palette_t const p = paletteGetColor(dacol); - - GLInterface.ClearScreen(PalEntry(p.r, p.g, p.b), false); + GLInterface.ClearScreen(dacol, false); } @@ -5064,10 +5040,7 @@ void videoClearViewableArea(int32_t dacol) // void videoClearScreen(int32_t dacol) { - if (!in3dmode()) return; - - palette_t const p = paletteGetColor(dacol); - GLInterface.ClearScreen(PalEntry(255, p.r, p.g, p.b)); + GLInterface.ClearScreen(dacol | PalEntry(255,0,0,0)); } diff --git a/source/build/src/engine_priv.h b/source/build/src/engine_priv.h index 7acb80683..d616a40f8 100644 --- a/source/build/src/engine_priv.h +++ b/source/build/src/engine_priv.h @@ -23,7 +23,7 @@ # define YAX_MAXDRAWS 8 #endif - extern intptr_t asm1, asm2, asm3; + extern intptr_t asm1, asm2; extern int32_t globalx1, globaly2; diff --git a/source/build/src/palette.cpp b/source/build/src/palette.cpp index a8558df68..6e99b5fd8 100644 --- a/source/build/src/palette.cpp +++ b/source/build/src/palette.cpp @@ -23,7 +23,6 @@ uint8_t curbasepal; int32_t globalblend; uint32_t g_lastpalettesum = 0; -palette_t curpalette[256]; // the current palette, unadjusted for brightness or tint palette_t palfadergb = { 0, 0, 0, 0 }; unsigned char palfadedelta = 0; ESetPalFlags curpaletteflags; @@ -228,8 +227,6 @@ void palettePostLoadTables(void) { globalpal = 0; - globalpalwritten = palookup[0]; - char const * const palookup0 = palookup[0]; #ifdef DEBUG_TILESIZY_512 @@ -612,8 +609,6 @@ void paletteFreeColorTables() // 32: apply brightness to scene in OpenGL void videoSetPalette(int dabrightness, int dapalid, ESetPalFlags flags) { - int32_t i; - if (/*(unsigned)dapalid >= MAXBASEPALS ||*/ basepaltable[dapalid] == NULL) dapalid = 0; curbasepal = dapalid; @@ -631,15 +626,6 @@ void videoSetPalette(int dabrightness, int dapalid, ESetPalFlags flags) r_scenebrightness = 0; } - for (i = 0; i < 256; i++) - { - // save palette without any brightness adjustment - curpalette[i].r = dapal[i * 3 + 0]; - curpalette[i].g = dapal[i * 3 + 1]; - curpalette[i].b = dapal[i * 3 + 2]; - curpalette[i].f = 0; - } - if ((flags & Pal_DontResetFade) == 0) { palfadergb.r = palfadergb.g = palfadergb.b = 0; @@ -649,11 +635,6 @@ void videoSetPalette(int dabrightness, int dapalid, ESetPalFlags flags) curpaletteflags = flags; } -palette_t paletteGetColor(int32_t col) -{ - return curpalette[col]; -} - // // setpalettefade // @@ -664,3 +645,21 @@ void videoFadePalette(uint8_t r, uint8_t g, uint8_t b, uint8_t offset) palfadergb.b = b; palfadedelta = offset; } + +void paletteFreeAll() +{ + paletteloaded = 0; + + for (bssize_t i = 0; i < MAXPALOOKUPS; i++) + if (i == 0 || palookup[i] != palookup[0]) + { + // Take care of handling aliased ^^^ cases! + Xaligned_free(palookup[i]); + } + Bmemset(palookup, 0, sizeof(palookup)); + + for (bssize_t i = 1; i < MAXBASEPALS; i++) + Xfree(basepaltable[i]); + Bmemset(basepaltable, 0, sizeof(basepaltable)); + basepaltable[0] = palette; +} \ No newline at end of file diff --git a/source/core/2d/v_2ddrawer.cpp b/source/core/2d/v_2ddrawer.cpp index f3ac81637..a656e2925 100644 --- a/source/core/2d/v_2ddrawer.cpp +++ b/source/core/2d/v_2ddrawer.cpp @@ -841,7 +841,8 @@ void drawlinergb(int32_t x1, int32_t y1, int32_t x2, int32_t y2, palette_t p) void renderDrawLine(int32_t x1, int32_t y1, int32_t x2, int32_t y2, uint8_t col) { - drawlinergb(x1, y1, x2, y2, paletteGetColor(palookup[0][col])); + PalEntry color(255, palette[col * 3], palette[col * 3 + 1], palette[col * 3 + 2]); + drawlinergb(x1, y1, x2, y2, color); } diff --git a/source/duke3d/src/screens.cpp b/source/duke3d/src/screens.cpp index e9cb0d7a7..bf6ff18e9 100644 --- a/source/duke3d/src/screens.cpp +++ b/source/duke3d/src/screens.cpp @@ -356,7 +356,7 @@ static void G_DrawOverheadMap(int32_t cposx, int32_t cposy, int32_t czoom, int16 x2 = dmulscale16(ox, xvect, -oy, yvect); y2 = dmulscale16(oy, xvect2, ox, yvect2); - renderDrawLine(x1+(xdim<<11), y1+(ydim<<11), + drawlinergb(x1+(xdim<<11), y1+(ydim<<11), x2+(xdim<<11), y2+(ydim<<11), col); } @@ -412,16 +412,16 @@ static void G_DrawOverheadMap(int32_t cposx, int32_t cposy, int32_t czoom, int16 x4 = dmulscale16(ox, xvect, -oy, yvect); y4 = dmulscale16(oy, xvect2, ox, yvect2); - renderDrawLine(x1+(xdim<<11), y1+(ydim<<11), + drawlinergb(x1+(xdim<<11), y1+(ydim<<11), x2+(xdim<<11), y2+(ydim<<11), col); - renderDrawLine(x2+(xdim<<11), y2+(ydim<<11), + drawlinergb(x2+(xdim<<11), y2+(ydim<<11), x3+(xdim<<11), y3+(ydim<<11), col); - renderDrawLine(x3+(xdim<<11), y3+(ydim<<11), + drawlinergb(x3+(xdim<<11), y3+(ydim<<11), x4+(xdim<<11), y4+(ydim<<11), col); - renderDrawLine(x4+(xdim<<11), y4+(ydim<<11), + drawlinergb(x4+(xdim<<11), y4+(ydim<<11), x1+(xdim<<11), y1+(ydim<<11), col); break; diff --git a/source/exhumed/src/d_menu.cpp b/source/exhumed/src/d_menu.cpp index ef9df7fe8..f8ad58c0e 100644 --- a/source/exhumed/src/d_menu.cpp +++ b/source/exhumed/src/d_menu.cpp @@ -53,7 +53,7 @@ int menu_Menu(int nVal) auto nLogoTile = EXHUMED ? kExhumedLogo : kPowerslaveLogo; int dword_9AB5F = ((int)totalclock / 16) & 3; - videoClearScreen(blackcol); + videoClearScreen(0); overwritesprite(160, 100, kSkullHead, 32, 3, kPalNormal); overwritesprite(161, 130, kSkullJaw, 32, 3, kPalNormal); diff --git a/source/exhumed/src/exhumed.cpp b/source/exhumed/src/exhumed.cpp index ac0967889..7b3389958 100644 --- a/source/exhumed/src/exhumed.cpp +++ b/source/exhumed/src/exhumed.cpp @@ -2766,11 +2766,8 @@ int myprintext(int x, int y, const char *str, int shade) void EraseScreen(int nVal) { - if (nVal == -1) { - nVal = overscanindex; - } - - videoClearScreen(nVal); + // There's no other values than 0 ever coming through here. + videoClearScreen(0); } void InitSpiritHead() diff --git a/source/exhumed/src/light.cpp b/source/exhumed/src/light.cpp index 11d1cfa67..c46584105 100644 --- a/source/exhumed/src/light.cpp +++ b/source/exhumed/src/light.cpp @@ -98,7 +98,6 @@ int LoadPaletteLookups() ALIGNED_FREE_AND_NULL(palookup[i]); paletteSetLookupTable(i, buffer); - // origpalookup[i] = palookup[i]; bGreenPal = 0; #ifdef USE_OPENGL @@ -117,21 +116,11 @@ int LoadPaletteLookups() void SetGreenPal() { bGreenPal = 1; - // for (int i = 0; i < kMaxGrads; i++) - // { - // palookup[i] = palookup[6]; - // } - // - // palookup[5] = origpalookup[5]; } void RestoreGreenPal() { bGreenPal = 0; - // for (int i = 0; i < kMaxGrads; i++) - // { - // palookup[i] = origpalookup[i]; - // } } int HavePLURemap() @@ -174,25 +163,6 @@ void WaitVBL() #endif } -//void MySetPalette(unsigned char *palette) -//{ -// WaitVBL(); -// -// // TODO -// kensetpalette(palette); -// -// memcpy(vgaPalette, palette, sizeof(vgaPalette)); -//} - -//void GetCurPal(unsigned char *palette) -//{ -// if (!palette) { -// memcpy(curpal, vgaPalette, sizeof(curpal)); -// } -// else { -// memcpy(palette, vgaPalette, sizeof(curpal)); -// } -//} void GrabPalette() { @@ -271,7 +241,6 @@ void FadeOut(int bFadeMusic) void StartFadeIn() { - //fadedestpal = curpalette; //fadecurpal = curpal; } diff --git a/source/exhumed/src/lighting.cpp b/source/exhumed/src/lighting.cpp index 4378d96c4..8fa764007 100644 --- a/source/exhumed/src/lighting.cpp +++ b/source/exhumed/src/lighting.cpp @@ -753,22 +753,6 @@ void SetTorch(int nPlayer, int bTorchOnOff) return; } - // char *pTempPal = origpalookup[kPalTorch]; - // palookup[kPalTorch] = palookup[kPalNoTorch]; - // palookup[kPalNoTorch] = pTempPal; - // - // pTempPal = origpalookup[kPalTorch]; - // origpalookup[kPalTorch] = origpalookup[kPalNoTorch]; - // origpalookup[kPalNoTorch] = pTempPal; - // - // pTempPal = origpalookup[kPalTorch2]; - // origpalookup[kPalTorch2] = origpalookup[kPalNoTorch2]; - // origpalookup[kPalNoTorch2] = pTempPal; - // - // pTempPal = palookup[kPalTorch2]; - // palookup[kPalNoTorch2] = palookup[kPalTorch2]; - // palookup[kPalTorch2] = pTempPal; - if (bTorchOnOff == 2) { bTorch = !bTorch; } diff --git a/source/rr/src/common.cpp b/source/rr/src/common.cpp index 132884208..6f09e4ec3 100644 --- a/source/rr/src/common.cpp +++ b/source/rr/src/common.cpp @@ -178,7 +178,11 @@ void G_LoadLookups(void) table[i] = i+192; paletteMakeLookupTable(35, table, 0, 0, 0, 0); if (RRRA) - paletteMakeLookupTable(54, palookup[8], 32*4, 32*4, 32*4, 0); + { + paletteMakeLookupTable(50, NULL, 12 * 4, 12 * 4, 12 * 4, 0); + paletteMakeLookupTable(51, NULL, 12 * 4, 12 * 4, 12 * 4, 0); + paletteMakeLookupTable(54, palookup[8], 32 * 4, 32 * 4, 32 * 4, 0); + } } } diff --git a/source/rr/src/screens.cpp b/source/rr/src/screens.cpp index e6d57b6e0..b6ec763dc 100644 --- a/source/rr/src/screens.cpp +++ b/source/rr/src/screens.cpp @@ -356,7 +356,7 @@ static void G_DrawOverheadMap(int32_t cposx, int32_t cposy, int32_t czoom, int16 x2 = dmulscale16(ox, xvect, -oy, yvect); y2 = dmulscale16(oy, xvect2, ox, yvect2); - renderDrawLine(x1+(xdim<<11), y1+(ydim<<11), + drawlinergb(x1+(xdim<<11), y1+(ydim<<11), x2+(xdim<<11), y2+(ydim<<11), col); } @@ -412,16 +412,16 @@ static void G_DrawOverheadMap(int32_t cposx, int32_t cposy, int32_t czoom, int16 x4 = dmulscale16(ox, xvect, -oy, yvect); y4 = dmulscale16(oy, xvect2, ox, yvect2); - renderDrawLine(x1+(xdim<<11), y1+(ydim<<11), + drawlinergb(x1+(xdim<<11), y1+(ydim<<11), x2+(xdim<<11), y2+(ydim<<11), col); - renderDrawLine(x2+(xdim<<11), y2+(ydim<<11), + drawlinergb(x2+(xdim<<11), y2+(ydim<<11), x3+(xdim<<11), y3+(ydim<<11), col); - renderDrawLine(x3+(xdim<<11), y3+(ydim<<11), + drawlinergb(x3+(xdim<<11), y3+(ydim<<11), x4+(xdim<<11), y4+(ydim<<11), col); - renderDrawLine(x4+(xdim<<11), y4+(ydim<<11), + drawlinergb(x4+(xdim<<11), y4+(ydim<<11), x1+(xdim<<11), y1+(ydim<<11), col); break; diff --git a/source/sw/src/colormap.cpp b/source/sw/src/colormap.cpp index e6bc99f44..8a4c99b41 100644 --- a/source/sw/src/colormap.cpp +++ b/source/sw/src/colormap.cpp @@ -37,8 +37,7 @@ BEGIN_SW_NS short f_c = 3; static char tempbuf[256]; -unsigned char DefaultPalette[256 * 32]; -#if 1 + void MapColors(short num, COLOR_MAP cm, short create) { @@ -61,53 +60,7 @@ MapColors(short num, COLOR_MAP cm, short create) for (i = 0; i < cm.FromRange; i++) tempbuf[i + cm.FromColor] = (i*inc) + cm.ToColor; } -#else -void -MapColors(short num, COLOR_MAP cm, short create) -{ - int i; - if (create) - { - for (i = 0; i < 256; i++) - tempbuf[i] = i; - } - - if (cm.FromRange == 0 || num <= 0 || num >= 256) - { - return; - } - - // from 32 to 32 || 16 to 16 - if (cm.ToRange == cm.FromRange) - { - for (i = 0; i < cm.FromRange; i++) - tempbuf[i + cm.FromColor] = i + cm.ToColor; - - // Quick fix for grey - if (cm.ToColor == LT_GREY) - tempbuf[cm.FromColor+31] = 0; // Set to black - } - else - // from 32 to 16 - if (cm.ToRange == DIV2(cm.FromRange)) - { - for (i = 0; i < cm.FromRange; i++) - tempbuf[cm.FromColor + i] = cm.ToColor + DIV2(i); - } - else - // from 16 to 32 - if (DIV2(cm.ToRange) == cm.FromRange) - { - for (i = 0; i < cm.FromRange; i++) - tempbuf[cm.FromColor + DIV2(i)] = cm.ToColor; - - // Quick fix for grey - if (cm.ToColor == LT_GREY) - tempbuf[cm.FromColor+31] = 0; // Set to black - } -} -#endif #define PLAYER_COLOR_MAPS 15 static COLOR_MAP PlayerColorMap[PLAYER_COLOR_MAPS][1] = @@ -266,17 +219,6 @@ InitPalette(void) unsigned int i; short play; -#if 0 - // I need this for doing fog... Not sure why it wasn't already here. - initfastcolorlookup(1,1,1); -#endif - - // - // Save default palette - // - - memcpy(DefaultPalette, palookup[PALETTE_DEFAULT], 256 * numshades); - // // Dive palettes // @@ -372,104 +314,4 @@ InitPalette(void) } - -/* -2. You must now use my function to set or get any palette - registers.This means that the keywords "3c7", "3c8", and "3c9" should not even exist in your code.I really - didn 't want to force you to use my palette functions, but - since VESA 2.0 supports non VGA compatible cards, you must -do - it this way.If you use setbrightness for all of your - palette setting, then you can ignore this.Note that the - palette format here is VESA 's palette format, which is - different than my other palette control functions.It 's - 4 bytes and RGB are backwards.Here are the function - prototypes: - - VBE_setPalette(int palstart, int palnum, char *dapal); - -VBE_getPalette(int palstart, int palnum, char *dapal); -palstart is the offset of the first palette to set - palnum is the number of the palette entries to set - dapal is a pointer to the palette buffer.The palette - buffer must be in this format: -char Blue, Green, Red, reserved; -I think this format stinks, but since VESA 2.0 uses - it, the code will run fastest if the buffer is not - copied.You can make your own cover up function if - you don 't like this format. - - This example sets up a wasteful gray scale palette: - -char mypalette[1024]; - -for (i = 0; i < 256; i++) - { - mypalette[i * 4 + 0] = (i >> 2); // Blue - mypalette[i * 4 + 1] = (i >> 2); // Green - mypalette[i * 4 + 2] = (i >> 2); // Red - mypalette[i * 4 + 3] = 0; // reserved - } -VBE_setPalette(0, 256, mypalette); -*/ - -#define ORED 0 -#define OGREEN 1 -#define OBLUE 2 - -#define NBLUE 0 -#define NGREEN 1 -#define NRED 2 -#define NRESERVED 3 - -void SetPaletteToVESA(unsigned char *pal) -{ - /* - char pal_buff[1024]; - short i; - - for (i = 0; i < 256; i++) - { - pal_buff[i * 4 + NRED] = pal[i * 3 + ORED]; - pal_buff[i * 4 + NGREEN] = pal[i * 3 + OGREEN]; - pal_buff[i * 4 + NBLUE] = pal[i * 3 + OBLUE]; - pal_buff[i * 4 + NRESERVED] = 0; - } - - VBE_setPalette(0, 256, pal_buff); - */ - paletteSetColorTable(BASEPAL, pal); - videoSetPalette(0, BASEPAL, 0); - // fprintf(stderr,"SetPaletteToVESA() called\n"); -} - -void set_pal(unsigned char *pal) -{ - SetPaletteToVESA(pal); -} - -void GetPaletteFromVESA(unsigned char *pal) -{ - /* - char pal_buff[1024]; - short i; - - VBE_getPalette(0, 256, pal_buff); - - for (i = 0; i < 256; i++) - { - pal[i * 3 + ORED] = pal_buff[i * 4 + NRED]; - pal[i * 3 + OGREEN] = pal_buff[i * 4 + NGREEN]; - pal[i * 3 + OBLUE] = pal_buff[i * 4 + NBLUE]; - } - */ - int i; - for (i=0; i<256; i++) - { - pal[i*3+0] = curpalette[i].r; - pal[i*3+1] = curpalette[i].g; - pal[i*3+2] = curpalette[i].b; - } - // fprintf(stderr,"GetPaletteFromVESA() called\n"); -} END_SW_NS diff --git a/source/sw/src/colormap.h b/source/sw/src/colormap.h index 557213e18..7dc7df64a 100644 --- a/source/sw/src/colormap.h +++ b/source/sw/src/colormap.h @@ -3,14 +3,9 @@ BEGIN_SW_NS -extern unsigned char DefaultPalette[]; void MapColors(short num,COLOR_MAP cm,short create); void InitPalette(void); -void SetPaletteToVESA(unsigned char *pal); -void set_pal(unsigned char *pal); -void GetPaletteFromVESA(unsigned char *pal); -void InitPalette(void); END_SW_NS diff --git a/source/sw/src/draw.cpp b/source/sw/src/draw.cpp index fec572d8b..5a7b1c54b 100644 --- a/source/sw/src/draw.cpp +++ b/source/sw/src/draw.cpp @@ -2107,7 +2107,7 @@ drawscreen(PLAYERp pp) } if (FAF_DebugView) - videoClearViewableArea(255L); + videoClearViewableArea(255); if (dimensionmode != 6)// && !ScreenSavePic) { diff --git a/source/sw/src/game.cpp b/source/sw/src/game.cpp index 7a1819e7d..e967fc92e 100644 --- a/source/sw/src/game.cpp +++ b/source/sw/src/game.cpp @@ -260,8 +260,6 @@ extern short NormalVisibility; extern int quotebot, quotebotgoal; // Multiplayer typing buffer char recbuf[80]; // Used as a temp buffer to hold typing text -extern unsigned char palette_data[256][3]; // Global palette array - #define ACT_STATUE 0 int score; @@ -707,13 +705,6 @@ void AnimateCacheCursor(void) #endif } -void COVERsetbrightness(int bright, unsigned char *pal) -{ - paletteSetColorTable(BASEPAL, pal); - videoSetPalette(bright, BASEPAL, 0); -} - - static int firstnet = 0; // JBF @@ -732,7 +723,6 @@ bool InitGame() timerInit(120); - memcpy(palette_data,palette,768); InitPalette(); // sets numplayers, connecthead, connectpoint2, myconnectindex @@ -865,8 +855,6 @@ bool InitGame() GraphicsMode = TRUE; SetupAspectRatio(); - COVERsetbrightness(0, &palette_data[0][0]); - InitFX(); // JBF: do it down here so we get a hold of the window handle return true; } @@ -3692,18 +3680,12 @@ void getinput(int const playerNum) if (dimensionmode != 2 && screenpeek == playerNum) { // JBF: figure out what's going on here - memcpy(pp->temp_pal, palette_data, sizeof(palette_data)); DoPlayerDivePalette(pp); // Check Dive again DoPlayerNightVisionPalette(pp); // Check Night Vision again } else { PLAYERp tp = Player+screenpeek; - - if (tp->FadeAmt<=0) - memcpy(pp->temp_pal, palette_data, sizeof(palette_data)); - else - memcpy(pp->temp_pal, tp->temp_pal, sizeof(tp->temp_pal)); DoPlayerDivePalette(tp); DoPlayerNightVisionPalette(tp); } diff --git a/source/sw/src/game.h b/source/sw/src/game.h index e7b53be7d..630cc186e 100644 --- a/source/sw/src/game.h +++ b/source/sw/src/game.h @@ -1260,7 +1260,6 @@ struct PLAYERstruct SWBOOL NightVision; // Is player's night vision active? unsigned char StartColor; // Darkest color in color range being used //short electro[64]; - unsigned char temp_pal[768]; // temporary working palette SWBOOL IsAI; // Is this and AI character? short fta,ftq; // First time active and first time quote, for talking in multiplayer games short NumFootPrints; // Number of foot prints left to lay down @@ -2375,7 +2374,6 @@ extern int16_t StatDamageList[STAT_DAMAGE_LIST_SIZE]; #define COLOR_PAIN 128 // Light red range extern void SetFadeAmt(PLAYERp pp, short damage, unsigned char startcolor); extern void DoPaletteFlash(PLAYERp pp); -extern unsigned char palette_data[256][3]; extern SWBOOL NightVision; @@ -2399,7 +2397,6 @@ void AnimateCacheCursor(void); // game.c void TerminateGame(void); // game.c void TerminateLevel(void); // game.c void drawoverheadmap(int cposx,int cposy,int czoom,short cang); // game.c -void COVERsetbrightness(int bright, unsigned char *pal); // game.c void DrawMenuLevelScreen(void); // game.c void DebugWriteString(char *string); // game.c void ManualPlayerInsert(PLAYERp pp); // game.c diff --git a/source/sw/src/inv.cpp b/source/sw/src/inv.cpp index a6fc0c67a..d8a603186 100644 --- a/source/sw/src/inv.cpp +++ b/source/sw/src/inv.cpp @@ -561,13 +561,8 @@ DoPlayerNightVisionPalette(PLAYERp pp) // Put it all back to normal if (pp->StartColor == 148) { - memcpy(pp->temp_pal, palette_data, sizeof(palette_data)); - memcpy(palookup[PALETTE_DEFAULT], DefaultPalette, 256 * 32); pp->FadeAmt = 0; - if (videoGetRenderMode() < REND_POLYMOST) - COVERsetbrightness(0, &palette_data[0][0]); - else - videoFadePalette(0,0,0,0); + videoFadePalette(0,0,0,0); } pp->NightVision = FALSE; } diff --git a/source/sw/src/menus.cpp b/source/sw/src/menus.cpp index 25290ec2a..55faaf194 100644 --- a/source/sw/src/menus.cpp +++ b/source/sw/src/menus.cpp @@ -407,8 +407,6 @@ typedef struct RGB_color_typ unsigned char blue; } RGB_color, * RGB_color_ptr; -unsigned char ppalette[MAX_SW_PLAYERS_REG][768]; -unsigned char palette_data[256][3]; // Global palette array ////////////////////////////////////////// // Set the amount of redness for damage @@ -416,7 +414,6 @@ unsigned char palette_data[256][3]; // Global palette array ////////////////////////////////////////// void SetFadeAmt(PLAYERp pp, short damage, unsigned char startcolor) { - int palreg, usereg = 0, tmpreg1 = 0, tmpreg2 = 0; short fadedamage = 0; RGB_color color; @@ -433,8 +430,6 @@ void SetFadeAmt(PLAYERp pp, short damage, unsigned char startcolor) if (pp == Player + screenpeek) { videoFadePalette(0, 0, 0, 0); - if (pp->FadeAmt <= 0) - GetPaletteFromVESA(&ppalette[screenpeek][0]); } if (damage < -150 && damage > -1000) fadedamage = 150; @@ -465,65 +460,14 @@ void SetFadeAmt(PLAYERp pp, short damage, unsigned char startcolor) pp->FadeTics = 0; - // Set player's palette to current game palette - GetPaletteFromVESA(pp->temp_pal); - - color.red = palette_data[pp->StartColor][0]; - color.green = palette_data[pp->StartColor][1]; - color.blue = palette_data[pp->StartColor][2]; - - for (palreg = 0; palreg < 768; palreg++) - { - tmpreg1 = (int)(pp->temp_pal[palreg]) + ((2 * pp->FadeAmt) + 4); - tmpreg2 = (int)(pp->temp_pal[palreg]) - ((2 * pp->FadeAmt) + 4); - if (tmpreg1 > 255) - tmpreg1 = 255; - if (tmpreg2 < 0) - tmpreg2 = 0; - - if (usereg == 0) - { - if (pp->temp_pal[palreg] < color.red) - { - if ((pp->temp_pal[palreg] = tmpreg1) > color.red) - pp->temp_pal[palreg] = color.red; - } - else if (pp->temp_pal[palreg] > color.red) - if ((pp->temp_pal[palreg] = tmpreg2) < color.red) - pp->temp_pal[palreg] = color.red; - } - else if (usereg == 1) - { - if (pp->temp_pal[palreg] < color.green) - { - if ((pp->temp_pal[palreg] = tmpreg1) > color.green) - pp->temp_pal[palreg] = color.green; - } - else if (pp->temp_pal[palreg] > color.green) - if ((pp->temp_pal[palreg] = tmpreg2) < color.green) - pp->temp_pal[palreg] = color.green; - } - else if (usereg == 2) - { - if (pp->temp_pal[palreg] < color.blue) - { - if ((pp->temp_pal[palreg] = tmpreg1) > color.blue) - pp->temp_pal[palreg] = color.blue; - } - else if (pp->temp_pal[palreg] > color.blue) - if ((pp->temp_pal[palreg] = tmpreg2) < color.blue) - pp->temp_pal[palreg] = color.blue; - } - - if (++usereg > 2) - usereg = 0; - } + color.red = palette[pp->StartColor*3]; + color.green = palette[pp->StartColor*3+1]; + color.blue = palette[pp->StartColor*3+2]; // Do initial palette set if (pp == Player + screenpeek) { - if (videoGetRenderMode() < REND_POLYMOST) set_pal(pp->temp_pal); - else videoFadePalette(color.red, color.green, color.blue, faderamp[min(31, max(0, 32 - abs(pp->FadeAmt)))]); + videoFadePalette(color.red, color.green, color.blue, faderamp[min(31, max(0, 32 - abs(pp->FadeAmt)))]); if (damage < -1000) pp->FadeAmt = 1000; // Don't call DoPaletteFlash for underwater stuff } @@ -535,10 +479,6 @@ void SetFadeAmt(PLAYERp pp, short damage, unsigned char startcolor) #define MAXFADETICS 5 void DoPaletteFlash(PLAYERp pp) { - int palreg, tmpreg1 = 0, tmpreg2 = 0; - unsigned char* pal_ptr = &ppalette[screenpeek][0]; - - if (pp->FadeAmt <= 1) { pp->FadeAmt = 0; @@ -546,7 +486,6 @@ void DoPaletteFlash(PLAYERp pp) if (pp == Player + screenpeek) { videoFadePalette(0, 0, 0, 0); - memcpy(pp->temp_pal, palette_data, sizeof(palette_data)); DoPlayerDivePalette(pp); // Check Dive again DoPlayerNightVisionPalette(pp); // Check Night Vision again } @@ -582,7 +521,6 @@ void DoPaletteFlash(PLAYERp pp) if (pp == Player + screenpeek) { videoFadePalette(0, 0, 0, 0); - memcpy(pp->temp_pal, palette_data, sizeof(palette_data)); DoPlayerDivePalette(pp); // Check Dive again DoPlayerNightVisionPalette(pp); // Check Night Vision again } @@ -590,40 +528,15 @@ void DoPaletteFlash(PLAYERp pp) } else { - //CON_Message("gamavalues = %d, %d, %d",pp->temp_pal[pp->StartColor],pp->temp_pal[pp->StartColor+1],pp->temp_pal[pp->StartColor+2]); - for (palreg = 0; palreg < 768; palreg++) - { - tmpreg1 = (int)(pp->temp_pal[palreg]) + 2; - tmpreg2 = (int)(pp->temp_pal[palreg]) - 2; - if (tmpreg1 > 255) - tmpreg1 = 255; - if (tmpreg2 < 0) - tmpreg2 = 0; - - if (pp->temp_pal[palreg] < pal_ptr[palreg]) - { - if ((pp->temp_pal[palreg] = tmpreg1) > pal_ptr[palreg]) - pp->temp_pal[palreg] = pal_ptr[palreg]; - } - else if (pp->temp_pal[palreg] > pal_ptr[palreg]) - if ((pp->temp_pal[palreg] = tmpreg2) < pal_ptr[palreg]) - pp->temp_pal[palreg] = pal_ptr[palreg]; - - } - // Only hard set the palette if this is currently the player's view if (pp == Player + screenpeek) { - if (videoGetRenderMode() < REND_POLYMOST) set_pal(pp->temp_pal); - else - { - videoFadePalette( - palette_data[pp->StartColor][0], - palette_data[pp->StartColor][1], - palette_data[pp->StartColor][2], - faderamp[min(31, max(0, 32 - abs(pp->FadeAmt)))] - ); - } + videoFadePalette( + palette[pp->StartColor*3], + palette[pp->StartColor*3+1], + palette[pp->StartColor*3+2], + faderamp[min(31, max(0, 32 - abs(pp->FadeAmt)))] + ); } } diff --git a/source/sw/src/ninja.cpp b/source/sw/src/ninja.cpp index 2fe8f42f5..ed6c0999f 100644 --- a/source/sw/src/ninja.cpp +++ b/source/sw/src/ninja.cpp @@ -2364,7 +2364,6 @@ PlayerGameReset(PLAYERp pp) if (pp == Player+screenpeek) { videoFadePalette(0,0,0,0); - memcpy(pp->temp_pal, palette_data, sizeof(palette_data)); } pp->NightVision = FALSE; pp->StartColor = 0; @@ -2464,7 +2463,6 @@ InitPlayerSprite(PLAYERp pp) if (pp == Player+screenpeek) { videoFadePalette(0,0,0,0); - memcpy(pp->temp_pal, palette_data, sizeof(palette_data)); } pp->NightVision = FALSE; diff --git a/source/sw/src/player.cpp b/source/sw/src/player.cpp index 73f4779c0..1ada29093 100644 --- a/source/sw/src/player.cpp +++ b/source/sw/src/player.cpp @@ -83,7 +83,6 @@ void pWeaponForceRest(PLAYERp pp); extern SWBOOL NoMeters; #define TEST_UNDERWATER(pp) (TEST(sector[(pp)->cursectnum].extra, SECTFX_UNDERWATER)) -extern unsigned char palette_data[256][3]; // Global palette array //#define PLAYER_MIN_HEIGHT (Z(30)) //#define PLAYER_MIN_HEIGHT_JUMP (Z(20)) @@ -4583,12 +4582,7 @@ DoPlayerDivePalette(PLAYERp pp) // Put it all back to normal if (pp->StartColor == 210) { - memcpy(pp->temp_pal, palette_data, sizeof(palette_data)); - memcpy(palookup[PALETTE_DEFAULT], DefaultPalette, 256 * 32); - if (videoGetRenderMode() < REND_POLYMOST) - COVERsetbrightness(0, &palette_data[0][0]); - else - videoFadePalette(0,0,0,0); + videoFadePalette(0,0,0,0); pp->FadeAmt = 0; } } @@ -6385,12 +6379,7 @@ void DoPlayerDeathCheckKeys(PLAYERp pp) if (pp == Player + screenpeek) { - if (videoGetRenderMode() < REND_POLYMOST) - COVERsetbrightness(0,&palette_data[0][0]); - else - videoFadePalette(0,0,0,0); - //memcpy(&palette_data[0][0],&palette_data[0][0],768); - memcpy(&pp->temp_pal[0],&palette_data[0][0],768); + videoFadePalette(0,0,0,0); } pp->NightVision = FALSE; @@ -7587,8 +7576,6 @@ domovethings(void) } -extern unsigned char palette_data[256][3]; // Global palette array - void InitAllPlayers(void) { @@ -7649,7 +7636,6 @@ InitAllPlayers(void) pp->FadeTics = 0; pp->StartColor = 0; pp->q16horizoff = 0; - memcpy(&pp->temp_pal[0],&palette_data[0][0],768); INITLIST(&pp->PanelSpriteList); } diff --git a/source/sw/src/save.cpp b/source/sw/src/save.cpp index 5e0c52c08..b82b5d9b3 100644 --- a/source/sw/src/save.cpp +++ b/source/sw/src/save.cpp @@ -653,7 +653,6 @@ bool GameInterface::SaveGame(FSaveGameNode *sv) // game settings MWRITE(&gNet,sizeof(gNet),1,fil); - MWRITE(palette_data,sizeof(palette_data),1,fil); MWRITE(&gs,sizeof(gs),1,fil); for (int i = 0; i < MAXTILES; i++) { @@ -1046,8 +1045,6 @@ bool GameInterface::LoadGame(FSaveGameNode* sv) // game settings MREAD(&gNet,sizeof(gNet),1,fil); - MREAD(palette_data,sizeof(palette_data),1,fil); - MREAD(&gs,sizeof(gs),1,fil); for (int i = 0; i < MAXTILES; i++) @@ -1147,8 +1144,6 @@ bool GameInterface::LoadGame(FSaveGameNode* sv) SetupAspectRatio(); SetRedrawScreen(Player + myconnectindex); - COVERsetbrightness(0,&palette_data[0][0]); - screenpeek = myconnectindex; PlayingLevel = Level;