sgdk
MapDefinition Struct Reference

MapDefinition structure which contains data for large level background.
It's optimized to encode large map using 128x128 block chunk (block chunk are organized in metatile). More...

#include <map.h>

List of all members.

Public Attributes

u16 w
u16 h
u16 hp
u16 compression
u16 numMetaTile
u16 numBlock
Palettepalette
TileSettileset
u16metaTiles
void * blocks
void * blockIndexes
u16blockRowOffsets

Detailed Description

MapDefinition structure which contains data for large level background.
It's optimized to encode large map using 128x128 block chunk (block chunk are organized in metatile).

Parameters:
wmap width in block (128x128 pixels block).
hmap height in block (128x128 pixels block).
hpmap height in block (128x128 pixels block) removing duplicated rows
compressionb0-b3=compression type for metaTiles
b4-b7=compression for blocks data
b8-b11=compression for blockIndexes data
Accepted values:
COMPRESSION_NONE
COMPRESSION_APLIB
COMPRESSION_LZ4W
numMetaTilenumber of MetaTile
numBlocknumber of Block (128x128 pixels chunk)
palettePalette data.
tilesetTileSet data structure (contains tiles definition for the image).
metaTilesmetatiles definition, each metatile is encoded as 2x2 tiles block:
  • b15: priority
  • b14-b13: palette
  • b12: vflip
  • b11: hflip
  • b10-b0: tile index (from tileset)
blocksblocks definition, each block is encoded as 8x8 metatiles:
if numMetaTile <= 256 --> 8 bit index for metaTile
else --> 16 bit index for metaTile
blockIndexesblock index array (referencing blocks) for the w * hp sized map
if numBlock <= 256 --> 8 bit index for block else --> 16 bit index for block
blockRowOffsetsblock row offsets used internally for fast retrieval of block data (index = blockIndexes[blockRowOffsets[y] + x])

The documentation for this struct was generated from the following file:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines