Data Structures | |
| struct | OSL_MAP |
Enumerations | |
| enum | OSL_MAP_FORMATS { OSL_MF_U16 = 1, OSL_MF_U16_GBA = 2 } |
| enum | OSL_MAP_FLAGS { OSL_MF_SIMPLE = 1, OSL_MF_TILE1_TRANSPARENT = 2 } |
Functions | |
| OSL_MAP * | oslCreateMap (OSL_IMAGE *img, void *map_data, int tileX, int tileY, int mapSizeX, int mapSizeY, int map_format) |
| void | oslDrawMap (OSL_MAP *m) |
| void | oslDrawMapSimple (OSL_MAP *m) |
| void | oslDeleteMap (OSL_MAP *m) |
| enum OSL_MAP_FORMATS |
| enum OSL_MAP_FLAGS |
| OSL_MAP* oslCreateMap | ( | OSL_IMAGE * | img, | |
| void * | map_data, | |||
| int | tileX, | |||
| int | tileY, | |||
| int | mapSizeX, | |||
| int | mapSizeY, | |||
| int | map_format | |||
| ) |
Creates a new map.
| img | Image used as tileset. Remember the maximum size of images is 512x512, neither the width or the height can exceed 512. In a tileset image, tiles are placed from in lines from left to right and from top to bottom. Each tile has a specific size. | |
| map_data | Binary data representing the map data in its raw format. This is a table of entries, where each entry is 16-bit (or something else depending on the map format) and represents a tile number to be displayed. Please note that tile entries, just like tilesets, are placed from left to right, and then from top to bottom. To retrieve a specific map entry (x = horizontal position, y = vertical position), the algorithm is the following: ((map_type*)map_data)[y * width + x]. | |
| tileX,tileY | Size of a tile in the tileset. | |
| mapSizeX,mapSizeY | Width and height of the map. Maps are wrapped around (that is, when you're all to the right, the left is displayed again, same vertically). | |
| map_format | One of the OSL_MAP_FORMATS values. |
| void oslDrawMap | ( | OSL_MAP * | m | ) |
Draws a map on the screen, using the map properties:
| void oslDrawMapSimple | ( | OSL_MAP * | m | ) |
Same as oslDrawMap, only here for backward compatibility. Do not use!
| void oslDeleteMap | ( | OSL_MAP * | m | ) |
Deletes a map. Call this after you've finished with a map. Please note that the map data you supplied to oslCreateMap was your own data, passed by reference, and thus it will not be freed! Example:
unsigned short *mapData; OSL_MAP *map; //Data for a 128x64 map mapData = malloc(128 * 64 * sizeof(*mapData)); //Create a map with this map = oslCreateMap(anImage, mapData, 16, 16, 128, 64, OSL_MF_U16); //Now delete this map oslDeleteMap(map); //Don't forget to free the map data too free(mapData);
1.5.9