diff --git a/source/src/clientgame.cpp b/source/src/clientgame.cpp index 2ed52259..1714bc4e 100644 --- a/source/src/clientgame.cpp +++ b/source/src/clientgame.cpp @@ -851,6 +851,13 @@ void spectate() { if(player1->state==CS_ALIVE) return; showscores(false); + if(player1->spectating != SM_NONE && players.inrange(player1->followplayercn)) + { + // set spectator location to last followed player + playerent *f = players[player1->followplayercn]; + player1->o = f->o; + player1->yaw = f->yaw; + } player1->spectating = SM_FLY; } diff --git a/source/src/clients2c.cpp b/source/src/clients2c.cpp index f0fc39e2..f6983a3f 100644 --- a/source/src/clients2c.cpp +++ b/source/src/clients2c.cpp @@ -653,7 +653,7 @@ void parsemessages(int cn, playerent *d, ucharbuf &p) if(demoplayback) { player1->state = CS_SPECTATE; - player1->spectating = SM_FLY; + player1->spectating = SM_EMBODYPLAYER; } else {