diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-08-27 20:04:07 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-08-27 20:04:07 +0000 |
| commit | 72ec4f1a9da63ae6364cf72cd10cd5a0966e3f1f (patch) | |
| tree | b7df6647844c9d763e4a24ba3fda7b287f139d30 /src/game/server/gamecontroller.cpp | |
| parent | ae364d4d295f93b42ccdbd5f9e91bd26227cf9f1 (diff) | |
| download | zcatch-72ec4f1a9da63ae6364cf72cd10cd5a0966e3f1f.tar.gz zcatch-72ec4f1a9da63ae6364cf72cd10cd5a0966e3f1f.zip | |
fixed weapon switching
Diffstat (limited to 'src/game/server/gamecontroller.cpp')
| -rw-r--r-- | src/game/server/gamecontroller.cpp | 81 |
1 files changed, 47 insertions, 34 deletions
diff --git a/src/game/server/gamecontroller.cpp b/src/game/server/gamecontroller.cpp index 4e25ff4e..8dec6795 100644 --- a/src/game/server/gamecontroller.cpp +++ b/src/game/server/gamecontroller.cpp @@ -10,6 +10,42 @@ #include "gamecontroller.hpp" #include "gamecontext.hpp" + + +GAMECONTROLLER::GAMECONTROLLER() +{ + // select gametype + if(strcmp(config.sv_gametype, "ctf") == 0) + { + gametype = GAMETYPE_CTF; + dbg_msg("game", "-- Capture The Flag --"); + } + else if(strcmp(config.sv_gametype, "tdm") == 0) + { + gametype = GAMETYPE_TDM; + dbg_msg("game", "-- Team Death Match --"); + } + else + { + gametype = GAMETYPE_DM; + dbg_msg("game", "-- Death Match --"); + } + + // + do_warmup(config.sv_warmup); + game_over_tick = -1; + sudden_death = 0; + round_start_tick = server_tick(); + round_count = 0; + is_teamplay = false; + teamscore[0] = 0; + teamscore[1] = 0; + + num_spawn_points[0] = 0; + num_spawn_points[1] = 0; + num_spawn_points[2] = 0; +} + float GAMECONTROLLER::evaluate_spawn_pos(SPAWNEVAL *eval, vec2 pos) { float score = 0.0f; @@ -72,42 +108,10 @@ bool GAMECONTROLLER::can_spawn(PLAYER *player, vec2 *out_pos) } *out_pos = eval.pos; - return eval.got;} - -GAMECONTROLLER::GAMECONTROLLER() -{ - // select gametype - if(strcmp(config.sv_gametype, "ctf") == 0) - { - gametype = GAMETYPE_CTF; - dbg_msg("game", "-- Capture The Flag --"); - } - else if(strcmp(config.sv_gametype, "tdm") == 0) - { - gametype = GAMETYPE_TDM; - dbg_msg("game", "-- Team Death Match --"); - } - else - { - gametype = GAMETYPE_DM; - dbg_msg("game", "-- Death Match --"); - } - - // - do_warmup(config.sv_warmup); - game_over_tick = -1; - sudden_death = 0; - round_start_tick = server_tick(); - round_count = 0; - is_teamplay = false; - teamscore[0] = 0; - teamscore[1] = 0; - - num_spawn_points[0] = 0; - num_spawn_points[1] = 0; - num_spawn_points[2] = 0; + return eval.got; } + bool GAMECONTROLLER::on_entity(int index, vec2 pos) { int type = -1; @@ -301,6 +305,15 @@ int GAMECONTROLLER::on_character_death(class CHARACTER *victim, class PLAYER *ki return 0; } +void GAMECONTROLLER::on_character_spawn(class CHARACTER *chr) +{ + // give default weapons + chr->weapons[WEAPON_HAMMER].got = 1; + chr->weapons[WEAPON_HAMMER].ammo = -1; + chr->weapons[WEAPON_GUN].got = 1; + chr->weapons[WEAPON_GUN].ammo = 10; +} + void GAMECONTROLLER::do_warmup(int seconds) { warmup = seconds*server_tickspeed(); |