mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-02-01 03:20:41 +00:00
next...
This commit is contained in:
parent
42bbc1e6ce
commit
913253bb0c
4 changed files with 55 additions and 110 deletions
|
@ -950,7 +950,59 @@ int parse(void)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// I am not convinced this is even remotely smart to be executed from here...
|
// I am not convinced this is even remotely smart to be executed from here...
|
||||||
P_ResetPlayer(g_p);
|
pickrandomspot(g_p);
|
||||||
|
g_sp->x = hittype[g_i].bposx = ps[g_p].bobposx = ps[g_p].oposx = ps[g_p].posx;
|
||||||
|
g_sp->y = hittype[g_i].bposy = ps[g_p].bobposy = ps[g_p].oposy = ps[g_p].posy;
|
||||||
|
g_sp->z = hittype[g_i].bposy = ps[g_p].oposz = ps[g_p].posz;
|
||||||
|
updatesector(ps[g_p].posx, ps[g_p].posy, &ps[g_p].cursectnum);
|
||||||
|
setsprite(ps[g_p].i, ps[g_p].posx, ps[g_p].posy, ps[g_p].posz + PHEIGHT);
|
||||||
|
g_sp->cstat = 257;
|
||||||
|
|
||||||
|
g_sp->shade = -12;
|
||||||
|
g_sp->clipdist = 64;
|
||||||
|
g_sp->xrepeat = 42;
|
||||||
|
g_sp->yrepeat = 36;
|
||||||
|
g_sp->owner = g_i;
|
||||||
|
g_sp->xoffset = 0;
|
||||||
|
g_sp->pal = ps[g_p].palookup;
|
||||||
|
|
||||||
|
ps[g_p].last_extra = g_sp->extra = max_player_health;
|
||||||
|
ps[g_p].wantweaponfire = -1;
|
||||||
|
ps[g_p].sethoriz(100);
|
||||||
|
ps[g_p].on_crane = -1;
|
||||||
|
ps[g_p].frag_ps = g_p;
|
||||||
|
ps[g_p].sethorizoff(0);
|
||||||
|
ps[g_p].opyoff = 0;
|
||||||
|
ps[g_p].wackedbyactor = -1;
|
||||||
|
ps[g_p].shield_amount = max_armour_amount;
|
||||||
|
ps[g_p].dead_flag = 0;
|
||||||
|
ps[g_p].pals.f = 0;
|
||||||
|
ps[g_p].footprintcount = 0;
|
||||||
|
ps[g_p].weapreccnt = 0;
|
||||||
|
ps[g_p].fta = 0;
|
||||||
|
ps[g_p].ftq = 0;
|
||||||
|
ps[g_p].posxv = ps[g_p].posyv = 0;
|
||||||
|
if (!isRR()) ps[g_p].rotscrnang = 0;
|
||||||
|
|
||||||
|
ps[g_p].falling_counter = 0;
|
||||||
|
|
||||||
|
hittype[g_i].extra = -1;
|
||||||
|
hittype[g_i].owner = g_i;
|
||||||
|
|
||||||
|
hittype[g_i].cgg = 0;
|
||||||
|
hittype[g_i].movflag = 0;
|
||||||
|
hittype[g_i].tempang = 0;
|
||||||
|
hittype[g_i].actorstayput = -1;
|
||||||
|
hittype[g_i].dispicnum = 0;
|
||||||
|
hittype[g_i].owner = ps[g_p].i;
|
||||||
|
hittype[g_i].temp_data[4] = 0;
|
||||||
|
|
||||||
|
resetinventory(g_p);
|
||||||
|
resetweapons(g_p);
|
||||||
|
ps[g_p].movement_lock = 0;
|
||||||
|
|
||||||
|
//cameradist = 0;
|
||||||
|
//cameraclock = totalclock;
|
||||||
}
|
}
|
||||||
setpal(&ps[g_p]);
|
setpal(&ps[g_p]);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -37,7 +37,7 @@ BEGIN_DUKE_NS
|
||||||
//
|
//
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
void pickrandomspot(short snum)
|
void pickrandomspot(int snum)
|
||||||
{
|
{
|
||||||
struct player_struct *p;
|
struct player_struct *p;
|
||||||
short i;
|
short i;
|
||||||
|
|
|
@ -35,7 +35,7 @@ void G_CacheMapData(void);
|
||||||
void G_NewGame(int volumeNum, int levelNum, int skillNum);
|
void G_NewGame(int volumeNum, int levelNum, int skillNum);
|
||||||
void G_ResetTimers(uint8_t keepgtics);
|
void G_ResetTimers(uint8_t keepgtics);
|
||||||
void G_UpdateScreenArea(void);
|
void G_UpdateScreenArea(void);
|
||||||
void P_RandomSpawnPoint(int playerNum);
|
void pickrandomspot(int playerNum);
|
||||||
void resetinventory(int playerNum);
|
void resetinventory(int playerNum);
|
||||||
void P_ResetPlayer(int playerNum);
|
void P_ResetPlayer(int playerNum);
|
||||||
void resetplayerstats(int playerNum);
|
void resetplayerstats(int playerNum);
|
||||||
|
|
|
@ -199,118 +199,11 @@ void G_UpdateScreenArea(void)
|
||||||
pus = NUMPAGES;
|
pus = NUMPAGES;
|
||||||
}
|
}
|
||||||
|
|
||||||
void P_RandomSpawnPoint(int playerNum)
|
|
||||||
{
|
|
||||||
DukePlayer_t *const pPlayer = g_player[playerNum].ps;
|
|
||||||
|
|
||||||
int32_t i = playerNum;
|
|
||||||
|
|
||||||
if ((g_netServer || ud.multimode > 1) && !(g_gametypeFlags[ud.coop] & GAMETYPE_FIXEDRESPAWN))
|
|
||||||
{
|
|
||||||
i = krand2() % numplayersprites;
|
|
||||||
|
|
||||||
if (g_gametypeFlags[ud.coop] & GAMETYPE_TDMSPAWN)
|
|
||||||
{
|
|
||||||
uint32_t pdist = -1;
|
|
||||||
for (bssize_t j=0; j<ud.multimode; j++)
|
|
||||||
{
|
|
||||||
if (j != playerNum && g_player[j].ps->team == pPlayer->team && sprite[g_player[j].ps->i].extra > 0)
|
|
||||||
{
|
|
||||||
for (bssize_t k=0; k<numplayersprites; k++)
|
|
||||||
{
|
|
||||||
uint32_t dist = FindDistance2D(g_player[j].ps->pos.x - g_playerSpawnPoints[k].pos.x,
|
|
||||||
g_player[j].ps->pos.y - g_playerSpawnPoints[k].pos.y);
|
|
||||||
|
|
||||||
if (dist < pdist)
|
|
||||||
i = k, pdist = dist;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pPlayer->pos = g_playerSpawnPoints[i].pos;
|
|
||||||
pPlayer->opos = pPlayer->pos;
|
|
||||||
pPlayer->bobpos = *(vec2_t *)&pPlayer->pos;
|
|
||||||
pPlayer->q16ang = fix16_from_int(g_playerSpawnPoints[i].ang);
|
|
||||||
pPlayer->cursectnum = g_playerSpawnPoints[i].sect;
|
|
||||||
|
|
||||||
sprite[pPlayer->i].cstat = 1 + 256;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void P_ResetTintFade(DukePlayer_t *const pPlayer)
|
static inline void P_ResetTintFade(DukePlayer_t *const pPlayer)
|
||||||
{
|
{
|
||||||
pPlayer->pals.f = 0;
|
pPlayer->pals.f = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void P_ResetPlayer(int playerNum)
|
|
||||||
{
|
|
||||||
DukePlayer_t *const pPlayer = g_player[playerNum].ps;
|
|
||||||
spritetype *const pSprite = &sprite[pPlayer->i];
|
|
||||||
vec3_t tmpvect = pPlayer->pos;
|
|
||||||
|
|
||||||
tmpvect.z += PHEIGHT;
|
|
||||||
|
|
||||||
P_RandomSpawnPoint(playerNum);
|
|
||||||
|
|
||||||
pPlayer->opos = pPlayer->pos;
|
|
||||||
pPlayer->bobpos = *(vec2_t *)&pPlayer->pos;
|
|
||||||
actor[pPlayer->i].bpos = pPlayer->pos;
|
|
||||||
*(vec3_t *)pSprite = pPlayer->pos;
|
|
||||||
|
|
||||||
updatesector(pPlayer->pos.x, pPlayer->pos.y, &pPlayer->cursectnum);
|
|
||||||
setsprite(pPlayer->i, &tmpvect);
|
|
||||||
|
|
||||||
pSprite->cstat = 257;
|
|
||||||
pSprite->shade = -12;
|
|
||||||
pSprite->clipdist = RR ? 32 : 64;
|
|
||||||
pSprite->xrepeat = RR ? 24 : 42;
|
|
||||||
pSprite->yrepeat = RR ? 17 : 36;
|
|
||||||
pSprite->owner = pPlayer->i;
|
|
||||||
pSprite->xoffset = 0;
|
|
||||||
pSprite->pal = pPlayer->palookup;
|
|
||||||
|
|
||||||
pPlayer->last_extra = pSprite->extra = max_player_health;
|
|
||||||
|
|
||||||
pPlayer->wantweaponfire = -1;
|
|
||||||
pPlayer->q16horiz = F16(100);
|
|
||||||
pPlayer->on_crane = -1;
|
|
||||||
pPlayer->frag_ps = playerNum;
|
|
||||||
pPlayer->q16horizoff = 0;
|
|
||||||
pPlayer->opyoff = 0;
|
|
||||||
pPlayer->wackedbyactor = -1;
|
|
||||||
pPlayer->inv_amount[GET_SHIELD] = max_armour_amount;
|
|
||||||
pPlayer->dead_flag = 0;
|
|
||||||
pPlayer->footprintcount = 0;
|
|
||||||
pPlayer->weapreccnt = 0;
|
|
||||||
pPlayer->fta = 0;
|
|
||||||
pPlayer->ftq = 0;
|
|
||||||
pPlayer->vel.x = pPlayer->vel.y = 0;
|
|
||||||
if (!RR) pPlayer->rotscrnang = 0;
|
|
||||||
pPlayer->runspeed = dukefriction;
|
|
||||||
pPlayer->falling_counter = 0;
|
|
||||||
|
|
||||||
P_ResetTintFade(pPlayer);
|
|
||||||
|
|
||||||
actor[pPlayer->i].extra = -1;
|
|
||||||
actor[pPlayer->i].owner = pPlayer->i;
|
|
||||||
actor[pPlayer->i].cgg = 0;
|
|
||||||
actor[pPlayer->i].movflag = 0;
|
|
||||||
actor[pPlayer->i].tempang = 0;
|
|
||||||
actor[pPlayer->i].actorstayput = -1;
|
|
||||||
actor[pPlayer->i].dispicnum = 0;
|
|
||||||
actor[pPlayer->i].owner = pPlayer->i;
|
|
||||||
actor[pPlayer->i].t_data[4] = 0;
|
|
||||||
|
|
||||||
resetinventory(playerNum);
|
|
||||||
resetweapons(playerNum);
|
|
||||||
|
|
||||||
//pPlayer->reloading = 0;
|
|
||||||
pPlayer->movement_lock = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static inline int G_CheckExitSprite(int spriteNum) { return ((uint16_t)sprite[spriteNum].lotag == UINT16_MAX && (sprite[spriteNum].cstat & 16)); }
|
static inline int G_CheckExitSprite(int spriteNum) { return ((uint16_t)sprite[spriteNum].lotag == UINT16_MAX && (sprite[spriteNum].cstat & 16)); }
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue