diff options
author | June McEnroe <june@causal.agency> | 2019-03-25 19:06:06 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2019-03-25 19:06:06 -0400 |
commit | 733eb9e2c1824c884c0e04387c1fa20888ce02b4 (patch) | |
tree | e4477a6aec93ba65bd9c2f4d9361e5c88889c495 | |
parent | Fix gcc sign warnings (diff) | |
download | cards-733eb9e2c1824c884c0e04387c1fa20888ce02b4.tar.gz cards-733eb9e2c1824c884c0e04387c1fa20888ce02b4.zip |
Only set palette length for bitsPerPixel < 16
The awful XP card backs are 24-bit.
-rw-r--r-- | cards.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/cards.c b/cards.c index c6403b9..e67317d 100644 --- a/cards.c +++ b/cards.c @@ -51,7 +51,9 @@ dibSurface(SDL_RWops *rw, Uint32 offset, Uint32 length) { if (SDL_RWseek(rw, 0x10, RW_SEEK_CUR) < 0) goto fail; Uint32 paletteLength = SDL_ReadLE32(rw); - if (!paletteLength) paletteLength = 1 << bitsPerPixel; + if (!paletteLength && bitsPerPixel < 16) { + paletteLength = 1 << bitsPerPixel; + } bitmapDataOffset += 4 * paletteLength; } else { @@ -143,6 +145,7 @@ static int setBlackBorders(struct Cards *cards) { return 0; } +// exefmt.txt static int loadNE(struct Cards *cards, SDL_RWops *rw, Uint16 neOffset) { if (SDL_RWseek(rw, neOffset + 0x24, RW_SEEK_SET) < 0) return -1; Uint16 resourceTableOffset = neOffset + SDL_ReadLE16(rw); |