- merged FPalette and PaletteContainer.

This commit is contained in:
Christoph Oelckers 2020-04-11 18:19:05 +02:00
commit ac610d87e5
28 changed files with 162 additions and 181 deletions

View file

@ -54,10 +54,6 @@
#include "gi.h"
PaletteContainer palMgr;
const uint8_t IcePalette[16][3] =
{
{ 10, 8, 18 },
@ -115,10 +111,10 @@ void StaticSerializeTranslations(FSerializer &arc)
int w;
if (arc.isWriting())
{
auto size = palMgr.NumTranslations(TRANSLATION_LevelScripted);
auto size = GPalette.NumTranslations(TRANSLATION_LevelScripted);
for (unsigned int i = 0; i < size; ++i)
{
trans = palMgr.TranslationToTable(TRANSLATION(TRANSLATION_LevelScripted, i));
trans = GPalette.TranslationToTable(TRANSLATION(TRANSLATION_LevelScripted, i));
if (trans != NULL && !trans->IsIdentity())
{
if (arc.BeginObject(nullptr))
@ -137,7 +133,7 @@ void StaticSerializeTranslations(FSerializer &arc)
arc("index", w);
FRemapTable remap;
SerializeRemap(arc, remap);
palMgr.UpdateTranslation(TRANSLATION(TRANSLATION_LevelScripted, w), &remap);
GPalette.UpdateTranslation(TRANSLATION(TRANSLATION_LevelScripted, w), &remap);
arc.EndObject();
}
}
@ -160,7 +156,7 @@ int CreateBloodTranslation(PalEntry color)
if (BloodTranslationColors.Size() == 0)
{
// Don't use the first slot.
palMgr.PushIdentityTable(TRANSLATION_Blood);
GPalette.PushIdentityTable(TRANSLATION_Blood);
BloodTranslationColors.Push(0);
}
@ -190,7 +186,7 @@ int CreateBloodTranslation(PalEntry color)
trans.Palette[i] = pe;
trans.Remap[i] = entry;
}
palMgr.AddTranslation(TRANSLATION_Blood, &trans);
GPalette.AddTranslation(TRANSLATION_Blood, &trans);
return BloodTranslationColors.Push(color);
}
@ -212,12 +208,12 @@ void R_InitTranslationTables ()
// maps until then so they won't be invalid.
for (i = 0; i < MAXPLAYERS; ++i)
{
palMgr.PushIdentityTable(TRANSLATION_Players);
palMgr.PushIdentityTable(TRANSLATION_PlayersExtra);
palMgr.PushIdentityTable(TRANSLATION_RainPillar);
GPalette.PushIdentityTable(TRANSLATION_Players);
GPalette.PushIdentityTable(TRANSLATION_PlayersExtra);
GPalette.PushIdentityTable(TRANSLATION_RainPillar);
}
// The menu player also gets a separate translation table
palMgr.PushIdentityTable(TRANSLATION_Players);
GPalette.PushIdentityTable(TRANSLATION_Players);
// The three standard translations from Doom or Heretic (seven for Strife),
// plus the generic ice translation.
@ -231,7 +227,7 @@ void R_InitTranslationTables ()
// color if the player who created them changes theirs.
for (i = 0; i < FLevelLocals::BODYQUESIZE; ++i)
{
palMgr.PushIdentityTable(TRANSLATION_PlayerCorpses);
GPalette.PushIdentityTable(TRANSLATION_PlayerCorpses);
}
// Create the standard translation tables
@ -367,7 +363,7 @@ void R_InitTranslationTables ()
remap->Remap[i] = v;
remap->Palette[i] = PalEntry(255, v, v, v);
}
palMgr.AddTranslation(TRANSLATION_Standard, stdremaps, 10);
GPalette.AddTranslation(TRANSLATION_Standard, stdremaps, 10);
}
@ -645,9 +641,9 @@ void R_BuildPlayerTranslation (int player)
FRemapTable remaps[3];
R_CreatePlayerTranslation (h, s, v, colorset, &Skins[players[player].userinfo.GetSkin()], &remaps[0], &remaps[1], &remaps[2]);
palMgr.UpdateTranslation(TRANSLATION(TRANSLATION_Players, player), &remaps[0]);
palMgr.UpdateTranslation(TRANSLATION(TRANSLATION_PlayersExtra, player), &remaps[1]);
palMgr.UpdateTranslation(TRANSLATION(TRANSLATION_RainPillar, player), &remaps[2]);
GPalette.UpdateTranslation(TRANSLATION(TRANSLATION_Players, player), &remaps[0]);
GPalette.UpdateTranslation(TRANSLATION(TRANSLATION_PlayersExtra, player), &remaps[1]);
GPalette.UpdateTranslation(TRANSLATION(TRANSLATION_RainPillar, player), &remaps[2]);
}
//----------------------------------------------------------------------------
@ -694,7 +690,7 @@ DEFINE_ACTION_FUNCTION(_Translation, SetPlayerTranslation)
FRemapTable remap;
R_GetPlayerTranslation(PlayerColor, GetColorSet(cls->Type, PlayerColorset),
&Skins[PlayerSkin], &remap);
palMgr.UpdateTranslation(TRANSLATION(tgroup, tnum), &remap);
GPalette.UpdateTranslation(TRANSLATION(tgroup, tnum), &remap);
}
ACTION_RETURN_BOOL(true);
}
@ -758,7 +754,7 @@ DEFINE_ACTION_FUNCTION(_Translation, GetID)
void R_ParseTrnslate()
{
customTranslationMap.Clear();
palMgr.ClearTranslationSlot(TRANSLATION_Custom);
GPalette.ClearTranslationSlot(TRANSLATION_Custom);
int lump;
int lastlump = 0;
@ -781,7 +777,7 @@ void R_ParseTrnslate()
{
sc.ScriptError("Translation must be in the range [0,%d]", max);
}
NewTranslation = *palMgr.TranslationToTable(TRANSLATION(TRANSLATION_Standard, sc.Number));
NewTranslation = *GPalette.TranslationToTable(TRANSLATION(TRANSLATION_Standard, sc.Number));
}
else if (sc.TokenType == TK_Identifier)
{
@ -790,7 +786,7 @@ void R_ParseTrnslate()
{
sc.ScriptError("Base translation '%s' not found in '%s'", sc.String, newtrans.GetChars());
}
NewTranslation = *palMgr.TranslationToTable(tnum);
NewTranslation = *GPalette.TranslationToTable(tnum);
}
else
{
@ -829,7 +825,7 @@ void R_ParseTrnslate()
}
} while (sc.CheckToken(','));
int trans = palMgr.StoreTranslation(TRANSLATION_Custom, &NewTranslation);
int trans = GPalette.StoreTranslation(TRANSLATION_Custom, &NewTranslation);
customTranslationMap[newtrans] = trans;
}
}
@ -856,7 +852,7 @@ DEFINE_ACTION_FUNCTION(_Translation, AddTranslation)
{
NewTranslation.Remap[i] = ColorMatcher.Pick(self->colors[i]);
}
int trans = palMgr.StoreTranslation(TRANSLATION_Custom, &NewTranslation);
int trans = GPalette.StoreTranslation(TRANSLATION_Custom, &NewTranslation);
ACTION_RETURN_INT(trans);
}