about summary refs log tree commit diff
path: root/src/game/server/srv_ctf.cpp
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-15 10:24:49 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-15 10:24:49 +0000
commita2566b3ebd93e0bbc55a920a7be08054a9377f11 (patch)
tree44a4612805d894168fe4b3b4c065fccc1a1686e9 /src/game/server/srv_ctf.cpp
parentac9873056aa1fe529b098f19ff31e9ffa0e016a2 (diff)
downloadzcatch-a2566b3ebd93e0bbc55a920a7be08054a9377f11.tar.gz
zcatch-a2566b3ebd93e0bbc55a920a7be08054a9377f11.zip
cleaned up code structure a bit
Diffstat (limited to 'src/game/server/srv_ctf.cpp')
-rw-r--r--src/game/server/srv_ctf.cpp178
1 files changed, 0 insertions, 178 deletions
diff --git a/src/game/server/srv_ctf.cpp b/src/game/server/srv_ctf.cpp
deleted file mode 100644
index 2ff4e2df..00000000
--- a/src/game/server/srv_ctf.cpp
+++ /dev/null
@@ -1,178 +0,0 @@
-/* copyright (c) 2007 magnus auvinen, see licence.txt for more info */
-#include "srv_common.h"
-#include "srv_ctf.h"
-
-gameobject_ctf::gameobject_ctf()
-{
-	// fetch flagstands
-	for(int i = 0; i < 2; i++)
-	{
-		mapres_flagstand *stand;
-		stand = (mapres_flagstand *)map_find_item(MAPRES_FLAGSTAND_RED+i, 0);
-		if(stand)
-		{
-			flag *f = new flag(i);
-			f->stand_pos = vec2(stand->x, stand->y);
-			f->pos = f->stand_pos;
-			flags[i] = f;
-			//dbg_msg("game", "flag at %f,%f", f->pos.x, f->pos.y);
-		}
-		else
-		{
-			// report massive failure
-			flags[i] = 0;
-		}
-	}
-
-	is_teamplay = true;
-}
-
-void gameobject_ctf::on_player_spawn(class player *p)
-{
-}
-
-int gameobject_ctf::on_player_death(class player *victim, class player *killer, int weaponid)
-{
-	gameobject::on_player_death(victim, killer, weaponid);
-	int had_flag = 0;
-	
-	// drop flags
-	for(int fi = 0; fi < 2; fi++)
-	{
-		flag *f = flags[fi];
-		if(f && f->carrying_player == killer)
-			had_flag |= 2;
-		if(f && f->carrying_player == victim)
-		{
-			create_sound_global(SOUND_CTF_DROP);
-			f->drop_tick = server_tick();
-			f->carrying_player = 0;
-			f->vel = vec2(0,0);
-			
-			if(killer && killer->team != victim->team)
-				killer->score++;
-				
-			had_flag |= 1;
-		}
-	}
-	
-	return had_flag;
-}
-
-void gameobject_ctf::tick()
-{
-	gameobject::tick();
-
-	do_team_wincheck();
-	
-	// do flags
-	for(int fi = 0; fi < 2; fi++)
-	{
-		flag *f = flags[fi];
-		
-		if(!f)
-			continue;
-		
-		//
-		if(f->carrying_player)
-		{
-			// update flag position
-			f->pos = f->carrying_player->pos;
-			
-			if(flags[fi^1]->at_stand)
-			{
-				if(distance(f->pos, flags[fi^1]->pos) < 24)
-				{
-					// CAPTURE! \o/
-					teamscore[fi^1] += 100;
-					f->carrying_player->score += 5;
-					for(int i = 0; i < 2; i++)
-						flags[i]->reset();
-					
-					dbg_msg("", "capture sound %d", SOUND_CTF_CAPTURE);
-					create_sound_global(SOUND_CTF_CAPTURE);
-				}
-			}			
-		}
-		else
-		{
-			player *players[MAX_CLIENTS];
-			int types[] = {OBJTYPE_PLAYER_CHARACTER};
-			int num = world->find_entities(f->pos, 32.0f, (entity**)players, MAX_CLIENTS, types, 1);
-			for(int i = 0; i < num; i++)
-			{
-				if(players[i]->team == f->team)
-				{
-					// return the flag
-					if(!f->at_stand)
-					{
-						players[i]->score += 1;
-						create_sound_global(SOUND_CTF_RETURN);
-						f->reset();
-					}
-				}
-				else
-				{
-					// take the flag
-					if(f->at_stand)
-						teamscore[fi^1]++;
-					f->at_stand = 0;
-					f->carrying_player = players[i];
-					f->carrying_player->score += 1;
-					create_sound_global(SOUND_CTF_GRAB);
-					break;
-				}
-			}
-			
-			if(!f->carrying_player && !f->at_stand)
-			{
-				if(server_tick() > f->drop_tick + SERVER_TICK_SPEED*30)
-				{
-					create_sound_global(SOUND_CTF_RETURN);
-					f->reset();
-				}
-				else
-				{
-					f->vel.y += gravity;
-					move_box(&f->pos, &f->vel, vec2(f->phys_size, f->phys_size), 0.5f);
-				}
-			}
-		}
-	}
-}
-
-// Flag
-flag::flag(int _team)
-: entity(OBJTYPE_FLAG)
-{
-	team = _team;
-	proximity_radius = phys_size;
-	carrying_player = 0x0;
-	
-	reset();
-	
-	// TODO: should this be done here?
-	world->insert_entity(this);
-}
-
-void flag::reset()
-{
-	carrying_player = 0;
-	at_stand = 1;
-	pos = stand_pos;
-	vel = vec2(0,0);
-}
-
-void flag::snap(int snapping_client)
-{
-	obj_flag *flag = (obj_flag *)snap_new_item(OBJTYPE_FLAG, team, sizeof(obj_flag));
-	flag->x = (int)pos.x;
-	flag->y = (int)pos.y;
-	flag->team = team;
-	flag->carried_by = -1;
-	
-	if(at_stand)
-		flag->carried_by = -2;
-	else if(carrying_player)
-		flag->carried_by = carrying_player->client_id;
-}