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:
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user