about summary refs log tree commit diff
path: root/src/game/client/gameclient.cpp
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2008-10-17 11:23:21 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2008-10-17 11:23:21 +0000
commit35bcd41aa281325112dd09f12dce89236cca937d (patch)
treee1256dae0dce1e1183e309a4883a3dc609da61dd /src/game/client/gameclient.cpp
parenta6be56dbdcbcd7b7a3ebf7dae7cd0537027486ea (diff)
downloadzcatch-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.cpp12
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;