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/client/gameclient.cpp | |
| 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/client/gameclient.cpp')
| -rw-r--r-- | src/game/client/gameclient.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/game/client/gameclient.cpp b/src/game/client/gameclient.cpp index 22800a7a..4ac9c50a 100644 --- a/src/game/client/gameclient.cpp +++ b/src/game/client/gameclient.cpp @@ -432,7 +432,12 @@ void GAMECLIENT::on_statechange(int new_state, int old_state) { // clear out the invalid pointers mem_zero(&gameclient.snap, sizeof(gameclient.snap)); - + + // first issue a reset to all + for(int i = 0; i < all.num; i++) + all.components[i]->on_reset(); + + // then change the state for(int i = 0; i < all.num; i++) all.components[i]->on_statechange(new_state, old_state); } @@ -463,6 +468,11 @@ void GAMECLIENT::process_events() NETEVENT_EXPLOSION *ev = (NETEVENT_EXPLOSION *)data; gameclient.effects->explosion(vec2(ev->x, ev->y)); } + else if(item.type == NETEVENTTYPE_HAMMERHIT) + { + NETEVENT_HAMMERHIT *ev = (NETEVENT_HAMMERHIT *)data; + gameclient.effects->hammerhit(vec2(ev->x, ev->y)); + } else if(item.type == NETEVENTTYPE_SPAWN) { NETEVENT_SPAWN *ev = (NETEVENT_SPAWN *)data; |