about summary refs log tree commit diff
path: root/src/game/server/entities/character.cpp
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2008-09-23 18:08:19 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2008-09-23 18:08:19 +0000
commitd9d37b945ee5796553794ef33249c22490494391 (patch)
tree03c1c97c02732095316fdcbc46fdf777de2ab9b0 /src/game/server/entities/character.cpp
parentc10ce4d17b4e21effecb28e0b43df2386ae1baaf (diff)
downloadzcatch-d9d37b945ee5796553794ef33249c22490494391.tar.gz
zcatch-d9d37b945ee5796553794ef33249c22490494391.zip
some server restructure. added hook no attach sound
Diffstat (limited to 'src/game/server/entities/character.cpp')
-rw-r--r--src/game/server/entities/character.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/game/server/entities/character.cpp b/src/game/server/entities/character.cpp
index 8f47fbe7..60acdca8 100644
--- a/src/game/server/entities/character.cpp
+++ b/src/game/server/entities/character.cpp
@@ -45,8 +45,11 @@ void CHARACTER::reset()
 
 bool CHARACTER::spawn(PLAYER *player, vec2 pos, int team)
 {
+	/*
+	~CHARACTER();
 	mem_zero(this, sizeof(CHARACTER));
-	new(this) CHARACTER();
+	new(this) CHARACTER();*/
+	
 	player_state = PLAYERSTATE_UNKNOWN;
 	emote_stop = -1;
 	last_action = -1;
@@ -657,7 +660,7 @@ void CHARACTER::tick_defered()
 		//if(events&COREEVENT_HOOK_LAUNCH) snd_play_random(CHN_WORLD, SOUND_HOOK_LOOP, 1.0f, pos);
 		if(events&COREEVENT_HOOK_ATTACH_PLAYER) game.create_sound(pos, SOUND_HOOK_ATTACH_PLAYER, cmask_all());
 		if(events&COREEVENT_HOOK_ATTACH_GROUND) game.create_sound(pos, SOUND_HOOK_ATTACH_GROUND, mask);
-		if(events&COREEVENT_HOOK_HIT_NOHOOK) game.create_sound(pos, SOUND_HOOK_LOOP, mask);
+		if(events&COREEVENT_HOOK_HIT_NOHOOK) game.create_sound(pos, SOUND_HOOK_NOATTACH, mask);
 		//if(events&COREEVENT_HOOK_RETRACT) snd_play_random(CHN_WORLD, SOUND_PLAYER_JUMP, 1.0f, pos);
 	//}
 	
@@ -705,7 +708,7 @@ void CHARACTER::die(int killer, int weapon)
 {
 	/*if (dead || team == -1)
 		return;*/
-	int mode_special = game.controller->on_character_death(this, &game.players[killer], weapon);
+	int mode_special = game.controller->on_character_death(this, game.players[killer], weapon);
 
 	dbg_msg("game", "kill killer='%d:%s' victim='%d:%s' weapon=%d special=%d",
 		killer, server_clientname(killer),
@@ -789,7 +792,7 @@ bool CHARACTER::take_damage(vec2 force, int dmg, int from, int weapon)
 
 	// do damage hit sound
 	if(from >= 0 && from != player->client_id)
-		game.create_sound(game.players[from].view_pos, SOUND_HIT, cmask_one(from));
+		game.create_sound(game.players[from]->view_pos, SOUND_HIT, cmask_one(from));
 
 	// check for death
 	if(health <= 0)
@@ -799,7 +802,7 @@ bool CHARACTER::take_damage(vec2 force, int dmg, int from, int weapon)
 		// set attacker's face to happy (taunt!)
 		if (from >= 0 && from != player->client_id)
 		{
-			CHARACTER *chr = &game.players[from].character;
+			CHARACTER *chr = game.players[from]->get_character();
 			chr->emote_type = EMOTE_HAPPY;
 			chr->emote_stop = server_tick() + server_tickspeed();
 		}
@@ -821,7 +824,7 @@ bool CHARACTER::take_damage(vec2 force, int dmg, int from, int weapon)
 
 void CHARACTER::snap(int snaping_client)
 {
-	if(distance(game.players[snaping_client].view_pos, pos) > 1000.0f)
+	if(distance(game.players[snaping_client]->view_pos, pos) > 1000.0f)
 		return;
 	
 	NETOBJ_CHARACTER *character = (NETOBJ_CHARACTER *)snap_new_item(NETOBJTYPE_CHARACTER, player->client_id, sizeof(NETOBJ_CHARACTER));