summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/blitter/32bpp_anim.cpp8
-rw-r--r--src/gfx.cpp10
-rw-r--r--src/gfx_type.h9
3 files changed, 17 insertions, 10 deletions
diff --git a/src/blitter/32bpp_anim.cpp b/src/blitter/32bpp_anim.cpp
index 1c91911ff..c989f9b2e 100644
--- a/src/blitter/32bpp_anim.cpp
+++ b/src/blitter/32bpp_anim.cpp
@@ -161,16 +161,16 @@ inline void Blitter_32bppAnim::Draw(const Blitter::BlitterParams *bp, ZoomLevel
do {
/* Compiler assumes pointer aliasing, can't optimise this on its own */
uint m = *src_n++;
- /* Above 217 is palette animation */
+ /* Above 217 (PALETTE_ANIM_SIZE_START) is palette animation */
*anim++ = m;
- *dst++ = (m >= 217) ? this->LookupColourInPalette(m) : *src_px;
+ *dst++ = (m >= PALETTE_ANIM_SIZE_START) ? this->LookupColourInPalette(m) : *src_px;
src_px++;
} while (--n != 0);
} else {
do {
uint m = *src_n++;
*anim++ = m;
- if (m >= 217) {
+ if (m >= PALETTE_ANIM_SIZE_START) {
*dst = ComposeColourPANoCheck(this->LookupColourInPalette(m), src_px->a, *dst);
} else {
*dst = ComposeColourRGBANoCheck(src_px->r, src_px->g, src_px->b, src_px->a, *dst);
@@ -327,7 +327,7 @@ void Blitter_32bppAnim::CopyFromBuffer(void *video, const void *src, int width,
}
/* We update the palette (or the pixels that do animation) immediatly, to avoid graphical glitches */
- this->PaletteAnimate(217, _use_dos_palette ? 38 : 28);
+ this->PaletteAnimate(PALETTE_ANIM_SIZE_START, _use_dos_palette ? PALETTE_ANIM_SIZE_DOS : PALETTE_ANIM_SIZE_WIN);
}
void Blitter_32bppAnim::CopyToBuffer(const void *video, void *dst, int width, int height)
diff --git a/src/gfx.cpp b/src/gfx.cpp
index ad215d1bf..262a4ee31 100644
--- a/src/gfx.cpp
+++ b/src/gfx.cpp
@@ -997,8 +997,8 @@ void DoPaletteAnimations()
* A few more for the DOS palette, because the water colors are
* 245-254 for DOS and 217-226 for Windows. */
const ExtraPaletteValues *ev = &_extra_palette_values;
- int c = _use_dos_palette ? 38 : 28;
- Colour old_val[38];
+ int c = _use_dos_palette ? PALETTE_ANIM_SIZE_DOS : PALETTE_ANIM_SIZE_WIN;
+ Colour old_val[PALETTE_ANIM_SIZE_DOS];
uint i;
uint j;
uint old_tc = _palette_animation_counter;
@@ -1007,7 +1007,7 @@ void DoPaletteAnimations()
_palette_animation_counter = 0;
}
- d = &_cur_palette[217];
+ d = &_cur_palette[PALETTE_ANIM_SIZE_START];
memcpy(old_val, d, c * sizeof(*old_val));
/* Dark blue water */
@@ -1101,8 +1101,8 @@ void DoPaletteAnimations()
if (blitter != NULL && blitter->UsePaletteAnimation() == Blitter::PALETTE_ANIMATION_NONE) {
_palette_animation_counter = old_tc;
} else {
- if (memcmp(old_val, &_cur_palette[217], c * sizeof(*old_val)) != 0) {
- _pal_first_dirty = 217;
+ if (memcmp(old_val, &_cur_palette[PALETTE_ANIM_SIZE_START], c * sizeof(*old_val)) != 0) {
+ _pal_first_dirty = PALETTE_ANIM_SIZE_START;
_pal_count_dirty = c;
}
}
diff --git a/src/gfx_type.h b/src/gfx_type.h
index a85a32434..87785343b 100644
--- a/src/gfx_type.h
+++ b/src/gfx_type.h
@@ -191,7 +191,7 @@ enum Colours {
COLOUR_GREY,
COLOUR_WHITE,
COLOUR_END,
- INVALID_COLOUR = 0xFF
+ INVALID_COLOUR = 0xFF,
};
/** Colour of the strings, see _string_colormap in table/palettes.h or docs/ottd-colourtext-palette.png */
@@ -216,6 +216,13 @@ enum TextColour {
TC_BLACK = 0x10,
};
+/** Defines a few values that are related to animations using palette changes */
+enum PaletteAnimationSizes {
+ PALETTE_ANIM_SIZE_WIN = 28, ///< number of animated colours in Windows palette
+ PALETTE_ANIM_SIZE_DOS = 38, ///< number of animated colours in DOS palette
+ PALETTE_ANIM_SIZE_START = 217, ///< Index in the _palettes array from which all animations are taking places (table/palettes.h)
+};
+
enum StringColorFlags {
IS_PALETTE_COLOR = 0x100, ///< color value is already a real palette color index, not an index of a StringColor
};