From f909b82074c73e03dcf8055237b03c4a975f3d88 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Tue, 20 Jun 2017 09:10:19 +0200 Subject: [PATCH] - fixed: Blood translations did not properly treat color 0 as transparent. --- src/gl/scene/gl_sprite.cpp | 1 - src/r_data/r_translate.cpp | 6 ++++-- src/r_data/r_translate.h | 2 -- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/gl/scene/gl_sprite.cpp b/src/gl/scene/gl_sprite.cpp index c49845688..bc8275ddd 100644 --- a/src/gl/scene/gl_sprite.cpp +++ b/src/gl/scene/gl_sprite.cpp @@ -79,7 +79,6 @@ EXTERN_CVAR (Float, transsouls) extern TArray sprites; extern TArray SpriteFrames; -extern TArray BloodTranslationColors; enum HWRenderStyle { diff --git a/src/r_data/r_translate.cpp b/src/r_data/r_translate.cpp index 2b8849b68..d8bff43d4 100644 --- a/src/r_data/r_translate.cpp +++ b/src/r_data/r_translate.cpp @@ -726,7 +726,7 @@ int FRemapTable::StoreTranslation(int slot) // //---------------------------------------------------------------------------- -TArray BloodTranslationColors; +static TArray BloodTranslationColors; int CreateBloodTranslation(PalEntry color) { @@ -754,7 +754,9 @@ int CreateBloodTranslation(PalEntry color) I_Error("Too many blood colors"); } FRemapTable *trans = new FRemapTable; - for (i = 0; i < 256; i++) + trans->Palette[0] = 0; + trans->Remap[0] = 0; + for (i = 1; i < 256; i++) { int bright = MAX(MAX(GPalette.BaseColors[i].r, GPalette.BaseColors[i].g), GPalette.BaseColors[i].b); PalEntry pe = PalEntry(255, color.r*bright/255, color.g*bright/255, color.b*bright/255); diff --git a/src/r_data/r_translate.h b/src/r_data/r_translate.h index f3c2c55c3..7c8f821b0 100644 --- a/src/r_data/r_translate.h +++ b/src/r_data/r_translate.h @@ -108,8 +108,6 @@ void R_GetPlayerTranslation (int color, const struct FPlayerColorSet *colorset, extern const uint8_t IcePalette[16][3]; -extern TArray BloodTranslationColors; - int CreateBloodTranslation(PalEntry color); int R_FindCustomTranslation(FName name);