diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-05-22 15:03:32 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-05-22 15:03:32 +0000 |
| commit | 73aa9b71c1d8b5c5065d1e474f13601da3ca6b20 (patch) | |
| tree | 88b6a0a4a2ebdd33a88f4a25682581d329d33f6b /src/game/game.h | |
| download | zcatch-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.h | 231 |
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), +}; |