From 35bcd41aa281325112dd09f12dce89236cca937d Mon Sep 17 00:00:00 2001 From: Magnus Auvinen Date: Fri, 17 Oct 2008 11:23:21 +0000 Subject: added hammer hit effect. added reset of all systems on state change. solves a lot of possible memory errors --- src/game/server/entities/character.cpp | 2 +- src/game/server/gamecontext.cpp | 12 ++++++++++++ src/game/server/gamecontext.hpp | 1 + 3 files changed, 14 insertions(+), 1 deletion(-) (limited to 'src/game/server') diff --git a/src/game/server/entities/character.cpp b/src/game/server/entities/character.cpp index cc0145b0..539e250d 100644 --- a/src/game/server/entities/character.cpp +++ b/src/game/server/entities/character.cpp @@ -306,7 +306,7 @@ void CHARACTER::fire_weapon() vec2 fdir = normalize(ents[i]->pos - pos); // set his velocity to fast upward (for now) - game.create_sound(pos, SOUND_HAMMER_HIT); + game.create_hammerhit(pos); ents[i]->take_damage(vec2(0,-1.0f), data->weapons.hammer.base->damage, player->client_id, active_weapon); vec2 dir; if (length(target->pos - pos) > 0.0f) diff --git a/src/game/server/gamecontext.cpp b/src/game/server/gamecontext.cpp index a36a9144..76609fe6 100644 --- a/src/game/server/gamecontext.cpp +++ b/src/game/server/gamecontext.cpp @@ -45,6 +45,18 @@ void GAMECONTEXT::create_damageind(vec2 p, float angle, int amount) } } +void GAMECONTEXT::create_hammerhit(vec2 p) +{ + // create the event + NETEVENT_HAMMERHIT *ev = (NETEVENT_HAMMERHIT *)events.create(NETEVENTTYPE_HAMMERHIT, sizeof(NETEVENT_HAMMERHIT)); + if(ev) + { + ev->x = (int)p.x; + ev->y = (int)p.y; + } +} + + void GAMECONTEXT::create_explosion(vec2 p, int owner, int weapon, bool bnodamage) { // create the event diff --git a/src/game/server/gamecontext.hpp b/src/game/server/gamecontext.hpp index 6e833178..106efd5f 100644 --- a/src/game/server/gamecontext.hpp +++ b/src/game/server/gamecontext.hpp @@ -58,6 +58,7 @@ public: void create_damageind(vec2 p, float angle_mod, int amount); void create_explosion(vec2 p, int owner, int weapon, bool bnodamage); void create_smoke(vec2 p); + void create_hammerhit(vec2 p); void create_playerspawn(vec2 p); void create_death(vec2 p, int who); void create_sound(vec2 pos, int sound, int mask=-1); -- cgit 1.4.1