fixed spectator mode freeview

This commit is contained in:
Dominik Geyer 2008-09-09 15:50:41 +00:00
parent 3b086d616a
commit 51a9d23dae
5 changed files with 10 additions and 7 deletions

View file

@ -20,9 +20,7 @@ void CAMERA::on_render()
//vec2 center; //vec2 center;
zoom = 1.0f; zoom = 1.0f;
bool spectate = false; if(gameclient.snap.spectate)
if(spectate)
center = gameclient.controls->mouse_pos; center = gameclient.controls->mouse_pos;
else else
{ {

View file

@ -157,8 +157,6 @@ bool CONTROLS::on_mousemove(float x, float y)
{ {
mouse_pos += vec2(x, y); // TODO: ugly mouse_pos += vec2(x, y); // TODO: ugly
bool spectate = false;
// //
float camera_max_distance = 200.0f; float camera_max_distance = 200.0f;
float follow_factor = config.cl_mouse_followfactor/100.0f; float follow_factor = config.cl_mouse_followfactor/100.0f;
@ -167,7 +165,7 @@ bool CONTROLS::on_mousemove(float x, float y)
//vec2 camera_offset(0, 0); //vec2 camera_offset(0, 0);
if(spectate) if(gameclient.snap.spectate)
{ {
if(mouse_pos.x < 200.0f) mouse_pos.x = 200.0f; if(mouse_pos.x < 200.0f) mouse_pos.x = 200.0f;
if(mouse_pos.y < 200.0f) mouse_pos.y = 200.0f; if(mouse_pos.y < 200.0f) mouse_pos.y = 200.0f;

View file

@ -544,6 +544,9 @@ void GAMECLIENT::on_snapshot()
if(p) if(p)
gameclient.snap.local_prev_character = (NETOBJ_CHARACTER *)p; gameclient.snap.local_prev_character = (NETOBJ_CHARACTER *)p;
} }
if (info->team == -1)
gameclient.snap.spectate = true;
} }
// calculate team-balance // calculate team-balance

View file

@ -58,6 +58,7 @@ public:
const NETOBJ_PLAYER_INFO *info_by_score[MAX_CLIENTS]; const NETOBJ_PLAYER_INFO *info_by_score[MAX_CLIENTS];
int num_players; int num_players;
int team_size[2]; int team_size[2];
bool spectate;
}; };
SNAPSTATE snap; SNAPSTATE snap;

View file

@ -98,6 +98,9 @@ void PLAYER::on_direct_input(NETOBJ_PLAYER_INPUT *new_input)
spawning = true; spawning = true;
dbg_msg("", "I wanna spawn"); dbg_msg("", "I wanna spawn");
} }
if(!chr && team == -1)
view_pos = vec2(new_input->target_x, new_input->target_y);
} }
CHARACTER *PLAYER::get_character() CHARACTER *PLAYER::get_character()