refactored specreset, reset cam when receiving welcome pkg

git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@3656 e016b1c5-ed68-44aa-a2f7-31cac88cffde
This commit is contained in:
driAn
2008-11-19 20:09:12 +00:00
parent a50dc7c109
commit 12b1676484
4 changed files with 20 additions and 8 deletions
+4 -2
View File
@@ -179,6 +179,8 @@ void parsemessages(int cn, playerent *d, ucharbuf &p)
case SV_WELCOME:
joining = getint(p);
player1->resetspec();
resetcamera();
break;
case SV_CLIENT:
@@ -773,8 +775,8 @@ void parsemessages(int cn, playerent *d, ucharbuf &p)
watchingdemo = demoplayback = getint(p)!=0;
if(demoplayback)
{
player1->resetspec();
player1->state = CS_SPECTATE;
player1->spectatemode = SM_NONE;
}
else
{
@@ -782,7 +784,7 @@ void parsemessages(int cn, playerent *d, ucharbuf &p)
loopv(players) zapplayer(players[i]);
clearvote();
player1->state = CS_ALIVE;
player1->spectatemode = SM_NONE;
player1->resetspec();
}
player1->clientnum = getint(p);
break;
+7 -3
View File
@@ -343,7 +343,6 @@ struct playerent : dynent, playerstate
int spectatemode, followplayercn;
int eardamagemillis;
int respawnoffset;
//virtual float eyeheight const { return (state==CS_DEAD || state==CS_SPECTATE) && spectatemode==SM_FLY ? 1.0f : physent::eyeheight; }
bool allowmove() { return state!=CS_DEAD || spectatemode==SM_FLY; }
weapon *weapons[NUMGUNS];
@@ -409,6 +408,12 @@ struct playerent : dynent, playerstate
if(gun==GUN_GRENADE && damage > 50) eardamagemillis = lastmillis+damage*100;
}
void resetspec()
{
spectatemode = SM_NONE;
followplayercn = -1;
}
void respawn()
{
dynent::reset();
@@ -419,8 +424,7 @@ struct playerent : dynent, playerstate
lastattackweapon = NULL;
attacking = false;
weaponchanging = 0;
spectatemode = SM_NONE;
followplayercn = -1; // flowtron : default to non-valid cn
resetspec();
eardamagemillis = 0;
eyeheight = maxeyeheight;
}
+1
View File
@@ -210,6 +210,7 @@ extern void updatefrommaster(int force);
// rendergl
extern glmatrixf mvmatrix, projmatrix, clipmatrix, mvpmatrix, invmvmatrix, invmvpmatrix;
extern void resetcamera();
extern void gl_checkextensions();
extern void gl_init(int w, int h, int bpp, int depth, int fsaa);
+8 -3
View File
@@ -126,7 +126,7 @@ void gl_init(int w, int h, int bpp, int depth, int fsaa)
inittmus();
camera1 = player1;
resetcamera();
}
FVAR(polygonoffsetfactor, -1e4f, -3.0f, 1e4f);
@@ -433,6 +433,11 @@ int farplane;
physent *camera1 = NULL;
void resetcamera()
{
camera1 = player1;
}
void recomputecamera()
{
if((player1->state==CS_SPECTATE || player1->state==CS_DEAD) && !editmode)
@@ -453,7 +458,7 @@ void recomputecamera()
break;
}
case SM_FLY:
camera1 = player1;
resetcamera();
camera1->eyeheight = 1.0f;
break;
case SM_FOLLOW1ST:
@@ -499,7 +504,7 @@ void recomputecamera()
}
else
{
camera1 = player1;
resetcamera();
}
}