demo playback as 1st person, convenient spect toggling

git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@1893 e016b1c5-ed68-44aa-a2f7-31cac88cffde
This commit is contained in:
driAn
2008-05-07 20:57:00 +00:00
parent c72a58f109
commit 45fc0a0e21
9 changed files with 93 additions and 84 deletions
+2 -4
View File
@@ -447,7 +447,6 @@ void renderclient(playerent *d, const char *mdlname, const char *vwepname, int t
vec o(d->o);
o.z -= d->dyneyeheight();
int basetime = -((int)(size_t)d&0xFFF);
//if(player1->state == CS_SPECTATE && d->clientnum == player1->followplayercn) return; // don't draw followed player (or see below for "see through")
if(d->state==CS_DEAD)
{
if(d==player1 && d->allowmove()) return;
@@ -484,8 +483,7 @@ void renderclient(playerent *d, const char *mdlname, const char *vwepname, int t
}
// FIXME: while networked my state as spectator seems to stay CS_DEAD, not CS_SPECTATE
// flowtron: I fixed this for following at least (see followplayer())
//if((player1->state == CS_DEAD || player1->state == CS_SPECTATE) && d->clientnum == player1->followplayercn && player1->spectating == SM_EMBODYPLAYER) anim |= ANIM_TRANSLUCENT; // see through followed player
if(player1->state == CS_SPECTATE && d->clientnum == player1->followplayercn && player1->spectating == SM_EMBODYPLAYER) anim |= ANIM_TRANSLUCENT; // see through followed player
if(player1->isspectating() && d->clientnum == player1->followplayercn && player1->spectating == SM_FOLLOW3RD_TRANSPARENT) anim |= ANIM_TRANSLUCENT; // see through followed player
rendermodel(mdlname, anim, tex, 1.5f, o, d->yaw+90, d->pitch/4, speed, basetime, d, a);
if(isteam(player1->team, d->team)) renderaboveheadicon(d);
}
@@ -514,7 +512,7 @@ void renderclient(playerent *d)
void renderclients()
{
playerent *d;
loopv(players) if((d = players[i]) && d->state!=CS_SPAWNING) renderclient(d);
loopv(players) if((d = players[i]) && d->state!=CS_SPAWNING && (!player1->isspectating() || player1->spectating != SM_FOLLOW1ST || player1->followplayercn != i)) renderclient(d);
if(player1->state==CS_DEAD || (reflecting && !refracting)) renderclient(player1);
}