diff options
-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); |