diff options
author | Nicola Mettifogo | 2007-03-28 20:12:00 +0000 |
---|---|---|
committer | Nicola Mettifogo | 2007-03-28 20:12:00 +0000 |
commit | 3903309af338a1cedab353367a459ecd5f0250d8 (patch) | |
tree | 63aed0b2310a045267ee7e5845e90b360f413517 /engines/parallaction/graphics.h | |
parent | ac1e6c9b75beff06f41302fb76cdaffce1125201 (diff) | |
download | scummvm-rg350-3903309af338a1cedab353367a459ecd5f0250d8.tar.gz scummvm-rg350-3903309af338a1cedab353367a459ecd5f0250d8.tar.bz2 scummvm-rg350-3903309af338a1cedab353367a459ecd5f0250d8.zip |
Overhaul of palette management to bring it back to its original form. Gfx palette code has been updated, and _c_endComment (callable from scripts) has been implemented. As a by-product, palette cycling now finally works!
svn-id: r26314
Diffstat (limited to 'engines/parallaction/graphics.h')
-rw-r--r-- | engines/parallaction/graphics.h | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/engines/parallaction/graphics.h b/engines/parallaction/graphics.h index 2e26e859f5..84a602e9b8 100644 --- a/engines/parallaction/graphics.h +++ b/engines/parallaction/graphics.h @@ -38,8 +38,18 @@ namespace Parallaction { #define SCREENMASK_WIDTH SCREEN_WIDTH/4 #define SCREENPATH_WIDTH SCREEN_WIDTH/8 -#define PALETTE_COLORS 32 -#define PALETTE_SIZE PALETTE_COLORS*3 +#define BASE_PALETTE_COLORS 32 +#define FIRST_BASE_COLOR 0 +#define LAST_BASE_COLOR (FIRST_BASE_COLOR+BASE_PALETTE_COLORS-1) + +#define EHB_PALETTE_COLORS 32 // extra half-brite colors for amiga +#define FIRST_EHB_COLOR (LAST_BASE_COLOR+1) +#define LAST_EHB_COLOR (FIRST_EHB_COLOR+EHB_PALETTE_COLORS-1) + +#define PALETTE_COLORS (BASE_PALETTE_COLORS+EHB_PALETTE_COLORS) + +#define BASE_PALETTE_SIZE BASE_PALETTE_COLORS*3 +#define PALETTE_SIZE PALETTE_COLORS*3 #include "common/pack-start.h" // START STRUCT PACKING @@ -65,6 +75,8 @@ struct GetData; class Gfx { public: + typedef byte Palette[PALETTE_SIZE]; + enum Buffers { // bit buffers kBitFront, @@ -119,13 +131,13 @@ public: void blitCnv(StaticCnv *cnv, int16 x, int16 y, uint16 z, Gfx::Buffers buffer); // palette - void animatePalette(byte *palette); - void setPalette(byte *palette); - void getBlackPalette(byte *palette); - void palUnk0(byte *palette); - void buildBWPalette(byte *palette); - void quickFadePalette(byte *palette); - void fadePalette(byte *palette); + void setPalette(Palette palette, uint32 first = FIRST_BASE_COLOR, uint32 num = PALETTE_COLORS); + void setBlackPalette(); + void animatePalette(); + void fadePalette(Palette palette); + void buildBWPalette(Palette palette); + void quickFadePalette(Palette palette); + void extendPalette(Palette palette); // init Gfx(Parallaction* vm); @@ -141,7 +153,7 @@ public: uint16 _bgLayers[4]; PaletteFxRange _palettefx[6]; - byte _palette[PALETTE_SIZE]; + Palette _palette; protected: Parallaction* _vm; |