about summary refs log tree commit diff
path: root/src/game/game.h
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-05-22 15:03:32 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-05-22 15:03:32 +0000
commit73aa9b71c1d8b5c5065d1e474f13601da3ca6b20 (patch)
tree88b6a0a4a2ebdd33a88f4a25682581d329d33f6b /src/game/game.h
downloadzcatch-73aa9b71c1d8b5c5065d1e474f13601da3ca6b20.tar.gz
zcatch-73aa9b71c1d8b5c5065d1e474f13601da3ca6b20.zip
started the major restructure of svn
Diffstat (limited to 'src/game/game.h')
-rw-r--r--src/game/game.h231
1 files changed, 231 insertions, 0 deletions
diff --git a/src/game/game.h b/src/game/game.h
new file mode 100644
index 00000000..a1817eea
--- /dev/null
+++ b/src/game/game.h
@@ -0,0 +1,231 @@
+#include <baselib/system.h>
+#include <baselib/vmath.h>
+#include <math.h>
+#include "../interface.h"
+#include "mapres_col.h"
+
+// Don't tweak :)
+const float pi = 3.14159265358979f;
+
+#define LERP(a,b,t) (a + (b-a) * t)
+#define min(a, b) ( a > b ? b : a)
+#define max(a, b) ( a > b ? a : b)
+
+inline baselib::vec2 get_direction(int angle)
+{
+	float a = angle/256.0f;
+	return baselib::vec2(cosf(a), sinf(a));
+}
+
+inline float get_angle(baselib::vec2 dir)
+{
+	float a = atan(dir.y/dir.x);
+	if(dir.x < 0)
+		a = a+pi;
+	return a;
+}
+
+inline bool col_check_point(float x, float y) { return col_check_point((int)x, (int)y); }
+inline bool col_check_point(baselib::vec2 p) { return col_check_point(p.x, p.y); }
+
+// Network stuff
+
+enum
+{
+	OBJTYPE_NULL=0,
+	OBJTYPE_PLAYER,
+	OBJTYPE_PROJECTILE,
+	OBJTYPE_POWERUP,
+	EVENT_EXPLOSION,
+	EVENT_HEALTHMOD,
+	EVENT_SOUND,
+	EVENT_SMOKE,
+};
+
+enum
+{
+	EMOTE_NORMAL=0,
+	EMOTE_BLINK,
+	EMOTE_WINK,
+	EMOTE_PAIN,
+	EMOTE_HAPPY,
+};
+
+struct player_input
+{
+	int left;
+	int right;
+	int angle;
+	int jump;
+	int fire;
+	int hook;
+	int blink;
+	int activeweapon;
+};
+
+struct ev_explosion
+{
+	int x, y;
+};
+
+struct ev_sound
+{
+	int x, y;
+	int sound; // if (0x80000000 flag is set -> looping) if (0x40000000 is set -> stop looping
+};
+
+struct ev_healthmod
+{
+	int x, y;
+	int amount;
+};
+
+struct obj_projectile
+{
+	int type;
+	int x, y;
+	int vx, vy;
+};
+
+struct obj_powerup
+{
+	int type;
+	int subtype;
+	int x, y;
+	int vx, vy;
+};
+
+struct obj_player
+{
+	int name[8];
+	
+	int local;
+	int clientid;
+
+	int health;
+	int armor;
+	int ammocount;
+	
+	int x, y;
+	int vx, vy;
+	int angle;
+	
+	// current active weapon
+	int weapon;
+	// current active modifier
+	int modifier;
+
+	// num attack ticks left of current attck
+	int attackticks;
+	int attacklen;
+	int visualtimeattack;
+	
+	int score;
+	int emote;
+	
+	int hook_active;
+	int hook_x, hook_y;
+};
+
+enum
+{
+	WEAPON_TYPE_GUN			= 0,
+	WEAPON_TYPE_ROCKET		= 1,
+	WEAPON_TYPE_SHOTGUN		= 2,
+	WEAPON_TYPE_MELEE		= 3,
+	WEAPON_NUMWEAPONS,
+	//WEAPON_TYPE_SNIPER		= 2,
+
+	POWERUP_TYPE_HEALTH			= 0,
+	POWERUP_TYPE_ARMOR			= 1,
+	POWERUP_TYPE_WEAPON			= 2,
+	POWERUP_TYPE_NINJA			= 3,
+	POWERUP_TYPE_TIMEFIELD		= 4,
+	POWERUP_TYPE_NUMPOWERUPS,
+
+	PLAYER_MAXHEALTH			= 10,
+	PLAYER_MAXARMOR				= 10,
+
+	MODIFIER_TYPE_NINJA			= 0,
+	MODIFIER_TYPE_TIMEFIELD		= 1,
+	MODIFIER_NUMMODIFIERS,
+};
+
+
+struct mapres_spawnpoint
+{
+	int x, y;
+	int type;
+};
+
+struct mapres_item
+{
+	int x, y;
+	int type;
+};
+
+enum
+{
+	MAPRES_SPAWNPOINT=1,
+	MAPRES_ITEM=2,
+	
+	ITEM_NULL=0,
+	ITEM_WEAPON_GUN=0x00010001,
+	ITEM_WEAPON_SHOTGUN=0x00010002,
+	ITEM_WEAPON_ROCKET=0x00010003,
+	ITEM_WEAPON_SNIPER=0x00010004,
+	ITEM_WEAPON_HAMMER=0x00010005,
+	ITEM_HEALTH_1 =0x00020001,
+	ITEM_HEALTH_5 =0x00020005,
+	ITEM_HEALTH_10=0x00020010,
+	ITEM_ARMOR_1=0x00030001,
+	ITEM_ARMOR_5=0x00030005,
+	ITEM_ARMOR_10=0x00030010,
+	ITEM_NINJA=0x00040001,
+};
+
+// sound categories and stuff
+enum
+{
+	SOUND_FIRE_GUN = 0,
+	SOUND_FIRE_SHOTGUN,
+	SOUND_FIRE_ROCKET,
+	SOUND_FIRE_MELEE,
+	SOUND_FIRE_NINJA,
+
+
+	// impacts with world
+	SOUND_IMPACT_PROJECTILE_GUN,
+	SOUND_IMPACT_PROJECTILE_SHOTGUN,
+	SOUND_IMPACT_PROJECTILE_ROCKET,
+
+
+	// chain ?
+
+	// Player movement
+	SOUND_PLAYER_JUMP,
+	SOUND_PLAYER_HURT_SHORT,
+	SOUND_PLAYER_HURT_LONG,
+	SOUND_PLAYER_SPAWN,
+	SOUND_PLAYER_CHAIN_LOOP,
+	SOUND_PLAYER_CHAIN_IMPACT,
+	SOUND_PLAYER_IMPACT,
+	SOUND_PLAYER_IMPACT_NINJA,
+	SOUND_PLAYER_DIE,
+	SOUND_PLAYER_SWITCHWEAPON,
+	SOUND_PLAYER_EQUIP,
+	SOUND_PLAYER_LAND,
+
+	SOUND_NUMSOUNDS,
+
+
+	// extra defs (for future?)
+	SOUND_EQUIP_GUN = SOUND_PLAYER_EQUIP,
+	SOUND_EQUIP_ROCKET = SOUND_PLAYER_EQUIP,
+	SOUND_EQUIP_SHOTGUN = SOUND_PLAYER_EQUIP,
+	SOUND_EQUIP_MELEE = SOUND_PLAYER_EQUIP,
+
+	SOUND_LOOPFLAG_STARTLOOP = 0x80000000,
+	SOUND_LOOPFLAG_STOPLOOP = 0x40000000,
+	SOUND_MASK = ~(SOUND_LOOPFLAG_STARTLOOP | SOUND_LOOPFLAG_STOPLOOP),
+};