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;
zoom = 1.0f;
bool spectate = false;
if(spectate)
if(gameclient.snap.spectate)
center = gameclient.controls->mouse_pos;
else
{

View file

@ -157,8 +157,6 @@ bool CONTROLS::on_mousemove(float x, float y)
{
mouse_pos += vec2(x, y); // TODO: ugly
bool spectate = false;
//
float camera_max_distance = 200.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);
if(spectate)
if(gameclient.snap.spectate)
{
if(mouse_pos.x < 200.0f) mouse_pos.x = 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)
gameclient.snap.local_prev_character = (NETOBJ_CHARACTER *)p;
}
if (info->team == -1)
gameclient.snap.spectate = true;
}
// calculate team-balance

View file

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

View file

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