sgdk
map.h
Go to the documentation of this file.
00001 
00026 #ifndef _MAP_H_
00027 #define _MAP_H_
00028 
00029 
00030 #include "vdp.h"
00031 #include "vdp_tile.h"
00032 #include "pal.h"
00033 
00034 
00080 typedef struct
00081 {
00082     u16 w;
00083     u16 h;
00084     u16 hp;
00085     u16 compression;
00086     u16 numMetaTile;
00087     u16 numBlock;
00088     Palette *palette;
00089     TileSet *tileset;
00090     u16 *metaTiles;
00091     void *blocks;
00092     void *blockIndexes;
00093     u16 *blockRowOffsets;
00094 } MapDefinition;
00095 
00096 
00146 typedef struct Map
00147 {
00148     u16 w;
00149     u16 h;
00150     u16 *metaTiles;
00151     void *blocks;
00152     void *blockIndexes;
00153     u16 *blockRowOffsets;
00154     VDPPlane plane;
00155     u16 baseTile;
00156     u32 posX;
00157     u32 posY;
00158     u16 wMask;
00159     u16 hMask;
00160     u16 planeWidthMask;
00161     u16 planeHeightMask;
00162     u16 lastXT;
00163     u16 lastYT;
00164     u16 hScrollTable[240];
00165     u16 vScrollTable[20];
00166     void (*prepareMapDataColumnCB)(struct Map *map, u16 *bufCol1, u16 *bufCol2, u16 xm, u16 ym, u16 height);
00167     void (*prepareMapDataRowCB)(struct Map *map, u16 *bufRow1, u16 *bufRow2, u16 xm, u16 ym, u16 width);
00168     u16  (*getMetaTileCB)(struct Map *map, u16 x, u16 y);
00169     void (*getMetaTilemapRectCB)(struct Map *map, u16 x, u16 y, u16 w, u16 h, u16* dest);
00170 } Map;
00171 
00172 
00192 Map* MAP_create(const MapDefinition* mapDef, VDPPlane plane, u16 baseTile);
00193 
00212 void MAP_scrollTo(Map* map, u32 x, u32 y);
00228 void MAP_scrollToEx(Map* map, u32 x, u32 y, bool forceRedraw);
00229 
00253 u16 MAP_getMetaTile(Map* map, u16 x, u16 y);
00277 u16 MAP_getTile(Map* map, u16 x, u16 y);
00306 void MAP_getMetaTilemapRect(Map* map, u16 x, u16 y, u16 w, u16 h, u16* dest);
00338 void MAP_getTilemapRect(Map* map, u16 x, u16 y, u16 w, u16 h, bool column, u16* dest);
00339 
00340 
00341 #endif // _MAP_H_
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines