about summary refs log tree commit diff
path: root/src/game/mapitems.h
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2010-05-29 07:25:38 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2010-05-29 07:25:38 +0000
commit72c06a258940696093f255fb1061beb58e1cdd0b (patch)
tree36b9a7712eec2d4f07837eab9c38ef1c5af85319 /src/game/mapitems.h
parente56feb597bc743677633432f77513b02907fd169 (diff)
downloadzcatch-72c06a258940696093f255fb1061beb58e1cdd0b.tar.gz
zcatch-72c06a258940696093f255fb1061beb58e1cdd0b.zip
copied refactor to trunk
Diffstat (limited to 'src/game/mapitems.h')
-rw-r--r--src/game/mapitems.h179
1 files changed, 179 insertions, 0 deletions
diff --git a/src/game/mapitems.h b/src/game/mapitems.h
new file mode 100644
index 00000000..efbd96f2
--- /dev/null
+++ b/src/game/mapitems.h
@@ -0,0 +1,179 @@
+#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_DEATH,
+	TILE_NOHOOK,
+	
+	TILEFLAG_VFLIP=1,
+	TILEFLAG_HFLIP=2,
+	TILEFLAG_OPAQUE=4,
+	
+	LAYERFLAG_DETAIL=1,
+	
+	ENTITY_OFFSET=255-16*4,
+};
+
+struct CPoint
+{
+	int x, y; // 22.10 fixed point
+};
+
+struct CColor
+{
+	int r, g, b, a;
+};
+
+struct CQuad
+{
+	CPoint m_aPoints[5];
+	CColor m_aColors[4];
+	CPoint m_aTexcoords[4];
+	
+	int m_PosEnv;
+	int m_PosEnvOffset;
+	
+	int m_ColorEnv;
+	int m_ColorEnvOffset;
+};
+
+struct CTile
+{
+	unsigned char m_Index;
+	unsigned char m_Flags;
+	unsigned char m_Skip;
+	unsigned char m_Reserved;
+};
+
+struct CMapItemImage
+{
+	int m_Version;
+	int m_Width;
+	int m_Height;
+	int m_External;
+	int m_ImageName;
+	int m_ImageData;
+} ;
+
+struct CMapItemGroup_v1
+{
+	int m_Version;
+	int m_OffsetX;
+	int m_OffsetY;
+	int m_ParallaxX;
+	int m_ParallaxY;
+
+	int m_StartLayer;
+	int m_NumLayers;
+} ;
+
+
+struct CMapItemGroup : public CMapItemGroup_v1
+{
+	enum { CURRENT_VERSION=2 };
+	
+	int m_UseClipping;
+	int m_ClipX;
+	int m_ClipY;
+	int m_ClipW;
+	int m_ClipH;
+} ;
+
+struct CMapItemLayer
+{
+	int m_Version;
+	int m_Type;
+	int m_Flags;
+} ;
+
+struct CMapItemLayerTilemap
+{
+	CMapItemLayer m_Layer;
+	int m_Version;
+	
+	int m_Width;
+	int m_Height;
+	int m_Flags;
+	
+	CColor m_Color;
+	int m_ColorEnv;
+	int m_ColorEnvOffset;
+	
+	int m_Image;
+	int m_Data;
+} ;
+
+struct CMapItemLayerQuads
+{
+	CMapItemLayer m_Layer;
+	int m_Version;
+	
+	int m_NumQuads;
+	int m_Data;
+	int m_Image;
+} ;
+
+struct CMapItemVersion
+{
+	int m_Version;
+} ;
+
+struct CEnvPoint
+{
+	int m_Time; // in ms
+	int m_Curvetype;
+	int m_aValues[4]; // 1-4 depending on envelope (22.10 fixed point)
+	
+	bool operator<(const CEnvPoint &Other) { return m_Time < Other.m_Time; }
+} ;
+
+struct CMapItemEnvelope
+{
+	int m_Version;
+	int m_Channels;
+	int m_StartPoint;
+	int m_NumPoints;
+	int m_Name;
+} ;
+
+#endif