diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-08-17 08:52:24 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-08-17 08:52:24 +0000 |
| commit | d711dd190cac809a9bd278fba03ed974812bb863 (patch) | |
| tree | 00300227625894bcf1e162be2a15e30b77807542 /src/game/mapitems.hpp | |
| parent | 16912026dbdd7dc9e238492d9d83e37270ae4f06 (diff) | |
| download | zcatch-d711dd190cac809a9bd278fba03ed974812bb863.tar.gz zcatch-d711dd190cac809a9bd278fba03ed974812bb863.zip | |
continued with clean up
Diffstat (limited to 'src/game/mapitems.hpp')
| -rw-r--r-- | src/game/mapitems.hpp | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/src/game/mapitems.hpp b/src/game/mapitems.hpp new file mode 100644 index 00000000..8093435a --- /dev/null +++ b/src/game/mapitems.hpp @@ -0,0 +1,177 @@ +/* copyright (c) 2007 magnus auvinen, see licence.txt for more info */ +#ifndef GAME_MAPITEMS_H +#define GAME_MAPITEMS_H + +// layer types +enum +{ + LAYERTYPE_INVALID=0, + LAYERTYPE_GAME, // not used + LAYERTYPE_TILES, + LAYERTYPE_QUADS, + + MAPITEMTYPE_VERSION=0, + MAPITEMTYPE_INFO, + MAPITEMTYPE_IMAGE, + MAPITEMTYPE_ENVELOPE, + MAPITEMTYPE_GROUP, + MAPITEMTYPE_LAYER, + MAPITEMTYPE_ENVPOINTS, + + + CURVETYPE_STEP=0, + CURVETYPE_LINEAR, + CURVETYPE_SLOW, + CURVETYPE_FAST, + CURVETYPE_SMOOTH, + NUM_CURVETYPES, + + // game layer tiles + ENTITY_NULL=0, + ENTITY_SPAWN, + ENTITY_SPAWN_RED, + ENTITY_SPAWN_BLUE, + ENTITY_FLAGSTAND_RED, + ENTITY_FLAGSTAND_BLUE, + ENTITY_ARMOR_1, + ENTITY_HEALTH_1, + ENTITY_WEAPON_SHOTGUN, + ENTITY_WEAPON_GRENADE, + ENTITY_POWERUP_NINJA, + ENTITY_WEAPON_RIFLE, + NUM_ENTITIES, + + TILE_AIR=0, + TILE_SOLID, + TILE_NOHOOK, + + TILEFLAG_VFLIP=1, + TILEFLAG_HFLIP=2, + TILEFLAG_OPAQUE=4, + + LAYERFLAG_DETAIL=1, + + ENTITY_OFFSET=255-16*4, +}; + +typedef struct +{ + int x, y; // 22.10 fixed point +} POINT; + +typedef struct +{ + int r, g, b, a; +} COLOR; + +typedef struct +{ + POINT points[5]; + COLOR colors[4]; + POINT texcoords[4]; + + int pos_env; + int pos_env_offset; + + int color_env; + int color_env_offset; +} QUAD; + +typedef struct +{ + unsigned char index; + unsigned char flags; + unsigned char skip; + unsigned char reserved; +} TILE; + +typedef struct +{ + int version; + int width; + int height; + int external; + int image_name; + int image_data; +} MAPITEM_IMAGE; + +struct MAPITEM_GROUP_v1 +{ + int version; + int offset_x; + int offset_y; + int parallax_x; + int parallax_y; + + int start_layer; + int num_layers; +} ; + + +struct MAPITEM_GROUP : public MAPITEM_GROUP_v1 +{ + enum { CURRENT_VERSION=2 }; + + int use_clipping; + int clip_x; + int clip_y; + int clip_w; + int clip_h; +} ; + +typedef struct +{ + int version; + int type; + int flags; +} MAPITEM_LAYER; + +typedef struct +{ + MAPITEM_LAYER layer; + int version; + + int width; + int height; + int flags; + + COLOR color; + int color_env; + int color_env_offset; + + int image; + int data; +} MAPITEM_LAYER_TILEMAP; + +typedef struct +{ + MAPITEM_LAYER layer; + int version; + + int num_quads; + int data; + int image; +} MAPITEM_LAYER_QUADS; + +typedef struct +{ + int version; +} MAPITEM_VERSION; + +typedef struct +{ + int time; // in ms + int curvetype; + int values[4]; // 1-4 depending on envelope (22.10 fixed point) +} ENVPOINT; + +typedef struct +{ + int version; + int channels; + int start_point; + int num_points; + int name; +} MAPITEM_ENVELOPE; + +#endif |