diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-10-17 11:23:21 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-10-17 11:23:21 +0000 |
| commit | 35bcd41aa281325112dd09f12dce89236cca937d (patch) | |
| tree | e1256dae0dce1e1183e309a4883a3dc609da61dd /src/game/server | |
| parent | a6be56dbdcbcd7b7a3ebf7dae7cd0537027486ea (diff) | |
| download | zcatch-35bcd41aa281325112dd09f12dce89236cca937d.tar.gz zcatch-35bcd41aa281325112dd09f12dce89236cca937d.zip | |
added hammer hit effect. added reset of all systems on state change. solves a lot of possible memory errors
Diffstat (limited to 'src/game/server')
| -rw-r--r-- | src/game/server/entities/character.cpp | 2 | ||||
| -rw-r--r-- | src/game/server/gamecontext.cpp | 12 | ||||
| -rw-r--r-- | src/game/server/gamecontext.hpp | 1 |
3 files changed, 14 insertions, 1 deletions
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); |