void GfxText32::buildBitmapHeader(byte *bitmap, const int16 width, const int16 height, const uint8 skipColor, const int16 displaceX, const int16 displaceY, const int16 scaledWidth, const int16 scaledHeight, const uint32 hunkPaletteOffset, const bool useRemap) const { WRITE_SCI11ENDIAN_UINT16(bitmap + 0, width); WRITE_SCI11ENDIAN_UINT16(bitmap + 2, height); WRITE_SCI11ENDIAN_UINT16(bitmap + 4, (uint16)displaceX); WRITE_SCI11ENDIAN_UINT16(bitmap + 6, (uint16)displaceY); bitmap[8] = skipColor; bitmap[9] = 0; WRITE_SCI11ENDIAN_UINT16(bitmap + 10, 0); if (useRemap) { bitmap[10] |= 2; } WRITE_SCI11ENDIAN_UINT32(bitmap + 12, width * height); WRITE_SCI11ENDIAN_UINT32(bitmap + 16, 0); if (hunkPaletteOffset) { WRITE_SCI11ENDIAN_UINT32(bitmap + 20, hunkPaletteOffset + BITMAP_HEADER_SIZE); } else { WRITE_SCI11ENDIAN_UINT32(bitmap + 20, 0); } WRITE_SCI11ENDIAN_UINT32(bitmap + 24, BITMAP_HEADER_SIZE); WRITE_SCI11ENDIAN_UINT32(bitmap + 28, BITMAP_HEADER_SIZE); WRITE_SCI11ENDIAN_UINT32(bitmap + 32, 0); WRITE_SCI11ENDIAN_UINT16(bitmap + 36, scaledWidth); WRITE_SCI11ENDIAN_UINT16(bitmap + 38, scaledHeight); }
void HunkPalette::setVersion(const uint32 version) const { if (_numPalettes != _data[10]) { error("Invalid HunkPalette"); } if (_numPalettes) { const EntryHeader header = getEntryHeader(); if (header.version != _version) { error("Invalid HunkPalette"); } WRITE_SCI11ENDIAN_UINT32(getPalPointer() + kEntryVersionOffset, version); _version = version; } }
void HunkPalette::setVersion(const uint32 version) const { if (_numPalettes != _data.getUint8At(kNumPaletteEntriesOffset)) { error("Invalid HunkPalette"); } if (_numPalettes) { const EntryHeader header = getEntryHeader(); if (header.version != _version) { error("Invalid HunkPalette"); } byte *palette = const_cast<byte *>(getPalPointer().getUnsafeDataAt(kEntryVersionOffset, sizeof(uint32))); WRITE_SCI11ENDIAN_UINT32(palette, version); _version = version; } }