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-12 19:52:57 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-12 19:52:57 +0000
commitf7ea0b2ba8851e4c0ceaef0a8b2361adfc218443 (patch)
tree123f26bfb4ad7c053dd0ed660eea0c793762c837 /src/game/server
parent182c77721e60c6a3b68cc3f1f83e485374d85096 (diff)
downloadzcatch-f7ea0b2ba8851e4c0ceaef0a8b2361adfc218443.tar.gz
zcatch-f7ea0b2ba8851e4c0ceaef0a8b2361adfc218443.zip
loads of minor stuff
Diffstat (limited to 'src/game/server')
-rw-r--r--src/game/server/game_server.cpp22
-rw-r--r--src/game/server/srv_common.h3
2 files changed, 20 insertions, 5 deletions
diff --git a/src/game/server/game_server.cpp b/src/game/server/game_server.cpp
index 353e4188..7a075039 100644
--- a/src/game/server/game_server.cpp
+++ b/src/game/server/game_server.cpp
@@ -634,7 +634,8 @@ int player::handle_ninja()
 				// hit a player, give him damage and stuffs...
 				create_sound(ents[i]->pos, SOUND_NINJA_HIT);
 				// set his velocity to fast upward (for now)
-				hitobjects[numobjectshit++] = ents[i];
+				if(numobjectshit < 10)
+					hitobjects[numobjectshit++] = ents[i];
 				ents[i]->take_damage(vec2(0,10.0f), data->weapons[WEAPON_NINJA].meleedamage, client_id,WEAPON_NINJA);
 			}
 		}
@@ -898,7 +899,8 @@ int player::handle_weapons()
 			// set his velocity to fast upward (for now)
 			create_smoke(ents[i]->pos);
 			create_sound(pos, SOUND_HAMMER_HIT);
-			hitobjects[numobjectshit++] = ents[i];
+			if(numobjectshit < 10)
+				hitobjects[numobjectshit++] = ents[i];
 			ents[i]->take_damage(vec2(0,-1.0f), data->weapons[active_weapon].meleedamage, client_id, active_weapon);
 			player* target = (player*)ents[i];
 			vec2 dir;
@@ -1006,9 +1008,25 @@ void player::tick_defered()
 {
 	if(!dead)
 	{
+		vec2 start_pos = core.pos;
+		vec2 start_vel = core.vel;
+		bool stuck_before = test_box(core.pos, vec2(28.0f, 28.0f));
+		
 		core.move();
+		bool stuck_after_move = test_box(core.pos, vec2(28.0f, 28.0f));
 		core.quantize();
+		bool stuck_after_quant = test_box(core.pos, vec2(28.0f, 28.0f));
 		pos = core.pos;
+		
+		if(!stuck_before && (stuck_after_move || stuck_after_quant))
+		{
+			dbg_msg("player", "STUCK!!! %f %f %f %f %x %x %x %x", 
+				start_pos.x, start_pos.y,
+				start_vel.x, start_vel.y,
+				start_pos.x, start_pos.y,
+				start_vel.x, start_vel.y);
+		}
+		
 
 		int events = core.triggered_events;
 		int mask = cmask_all_except_one(client_id);
diff --git a/src/game/server/srv_common.h b/src/game/server/srv_common.h
index 209d99e0..901e37af 100644
--- a/src/game/server/srv_common.h
+++ b/src/game/server/srv_common.h
@@ -44,11 +44,8 @@ private:
 
 	entity *prev_type_entity;
 	entity *next_type_entity;
-
-	int index;
 protected:
 	int id;
-	
 public:
 	float proximity_radius;
 	unsigned flags;