From ca0c1d3e6f8b5fa4eb2e0a86fcf47b12fb600786 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sat, 27 Sep 2008 17:16:15 +0000 Subject: mission targets, texture unloading, private messages --- src/game/racetrack.cc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/game/racetrack.cc') diff --git a/src/game/racetrack.cc b/src/game/racetrack.cc index 897a839..cfacb82 100644 --- a/src/game/racetrack.cc +++ b/src/game/racetrack.cc @@ -56,6 +56,9 @@ void RaceTrack::add_checkpoint(CheckPoint *checkpoint) void RaceTrack::reset() { + if (track_player) { + track_player->set_mission_target(0); + } track_player = 0; track_racestart = 0; track_checkpointtime = 0; @@ -64,8 +67,7 @@ void RaceTrack::reset() (*cpit)->set_eventstate(core::Entity::NoPower); } - entity_eventstate |= core::Entity::NoPower; - entity_dirty = true; + set_eventstate(core::Entity::NoPower); } void RaceTrack::frame(float seconds) @@ -93,6 +95,7 @@ void RaceTrack::frame(float seconds) message.append(track_player->name()); message.append(" ^Bactivated the race! Race starts in 5..."); core::server()->broadcast(message); + track_player->set_mission_target(this); return; } } @@ -149,6 +152,7 @@ void RaceTrack::frame(float seconds) track_checkpointtime = core::server()->time() + 15.0f; track_checkpoint = track_checkpoints.begin(); (*track_checkpoint)->set_eventstate(core::Entity::Normal); + track_player->set_mission_target((*track_checkpoint)); } } @@ -175,16 +179,13 @@ void RaceTrack::frame(float seconds) (*track_checkpoint)->set_eventstate(core::Entity::NoPower); track_checkpoint++; (*track_checkpoint)->set_eventstate(core::Entity::Normal); + track_player->set_mission_target((*track_checkpoint)); } else { std::stringstream msgstr; msgstr << "^BRace completed in " << core::server()->time() - track_racestart << " seconds!"; core::server()->broadcast(msgstr.str()); - track_player = 0; - track_racestart = 0; - track_checkpointtime = 0; - reset(); } } -- cgit v1.2.3