about summary refs log tree commit diff
path: root/src/game/server
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-13 20:28:22 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-13 20:28:22 +0000
commitc3b492b4be53cd6ec4be3948d86bbc993f187787 (patch)
tree2f2d2eca75c98d6fe2a97aeaf092288fc7745d03 /src/game/server
parent8f39b81ab0c49bd2c46dcdd191e626d577b7ba1d (diff)
downloadzcatch-c3b492b4be53cd6ec4be3948d86bbc993f187787.tar.gz
zcatch-c3b492b4be53cd6ec4be3948d86bbc993f187787.zip
variuos crash fixes and fixed ninja
Diffstat (limited to 'src/game/server')
-rw-r--r--src/game/server/game_server.cpp12
-rw-r--r--src/game/server/srv_common.h2
2 files changed, 10 insertions, 4 deletions
diff --git a/src/game/server/game_server.cpp b/src/game/server/game_server.cpp
index 5ca2b3db..3d8550a6 100644
--- a/src/game/server/game_server.cpp
+++ b/src/game/server/game_server.cpp
@@ -356,7 +356,6 @@ void player::init()
 	client_id = -1;
 	team = -1; // -1 == spectator
 	extrapowerflags = 0;
-	ninjaactivationtick = 0;
 
 	latency_accum = 0;
 	latency_accum_min = 0;
@@ -390,6 +389,9 @@ void player::reset()
 	emote_stop = 0;
 	damage_taken_tick = 0;
 	attack_tick = 0;
+	numobjectshit = 0;
+	ninjaactivationtick = 0;
+	currentmovetime = 0;
 	
 	active_weapon = WEAPON_GUN;
 	last_weapon = WEAPON_HAMMER;
@@ -571,6 +573,7 @@ int player::handle_ninja()
 		activationdir = direction;
 		currentmovetime = data->weapons[WEAPON_NINJA].movetime * server_tickspeed() / 1000;
 		currentcooldown = data->weapons[WEAPON_NINJA].firedelay * server_tickspeed() / 1000 + server_tick();
+		
 		// reset hit objects
 		numobjectshit = 0;
 
@@ -1038,8 +1041,11 @@ void player::tick_defered()
 		{
 			create_sound(pos, SOUND_PLAYER_JUMP, mask);
 			ev_common *c = (ev_common *)::events.create(EVENT_AIR_JUMP, sizeof(ev_common), mask);
-			c->x = (int)pos.x;
-			c->y = (int)pos.y;
+			if(c)
+			{
+				c->x = (int)pos.x;
+				c->y = (int)pos.y;
+			}
 		}
 		
 		//if(events&COREEVENT_HOOK_LAUNCH) snd_play_random(CHN_WORLD, SOUND_HOOK_LOOP, 1.0f, pos);
diff --git a/src/game/server/srv_common.h b/src/game/server/srv_common.h
index 901e37af..b28d3066 100644
--- a/src/game/server/srv_common.h
+++ b/src/game/server/srv_common.h
@@ -14,7 +14,7 @@ inline bool cmask_is_set(int mask, int cid) { return (mask&cmask_one(cid)) != 0;
 class event_handler
 {
 	static const int MAX_EVENTS = 128;
-	static const int MAX_DATASIZE = 128*4;
+	static const int MAX_DATASIZE = 128*64;
 
 	int types[MAX_EVENTS];  // TODO: remove some of these arrays
 	int offsets[MAX_EVENTS];