mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-12-31 12:13:16 +00:00
Awayview cleanup
- Moved variables to awayview_t - Arbritrary +20 is no longer added to z pos, it will use the thing position as the camera position directly.
This commit is contained in:
parent
4ff0a8358f
commit
82313de499
15 changed files with 109 additions and 111 deletions
|
|
@ -2557,7 +2557,7 @@ void CL_ClearPlayer(INT32 playernum)
|
|||
|
||||
P_SetTarget(&players[playernum].skybox.viewpoint, NULL);
|
||||
P_SetTarget(&players[playernum].skybox.centerpoint, NULL);
|
||||
P_SetTarget(&players[playernum].awayviewmobj, NULL);
|
||||
P_SetTarget(&players[playernum].awayview.mobj, NULL);
|
||||
P_SetTarget(&players[playernum].followmobj, NULL);
|
||||
P_SetTarget(&players[playernum].hoverhyudoro, NULL);
|
||||
P_SetTarget(&players[playernum].stumbleIndicator, NULL);
|
||||
|
|
|
|||
|
|
@ -384,6 +384,13 @@ typedef struct {
|
|||
boolean flip;
|
||||
} sonicloopvars_t;
|
||||
|
||||
// player_t struct for all alternative viewpoint variables
|
||||
struct altview_t
|
||||
{
|
||||
mobj_t *mobj;
|
||||
INT32 tics;
|
||||
};
|
||||
|
||||
// ========================================================================
|
||||
// PLAYER STRUCTURE
|
||||
// ========================================================================
|
||||
|
|
@ -644,9 +651,7 @@ struct player_t
|
|||
|
||||
INT32 onconveyor; // You are on a conveyor belt if nonzero
|
||||
|
||||
mobj_t *awayviewmobj;
|
||||
INT32 awayviewtics;
|
||||
angle_t awayviewaiming; // Used for cut-away view
|
||||
altview_t awayview;
|
||||
|
||||
boolean spectator;
|
||||
tic_t spectatewait; // reimplementable as UINT8 queue - How long have you been waiting as a spectator
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ static tic_t stoptimer;
|
|||
static boolean keypressed = false;
|
||||
|
||||
static INT32 menuanimtimer; // Title screen: background animation timing
|
||||
mobj_t *titlemapcameraref = NULL;
|
||||
altview_t titlemapcam = {0};
|
||||
|
||||
// menu presentation state
|
||||
char curbgname[9];
|
||||
|
|
@ -1836,7 +1836,7 @@ void F_StartTitleScreen(void)
|
|||
|
||||
gamestate_t prevwipegamestate = wipegamestate;
|
||||
titlemapinaction = true;
|
||||
titlemapcameraref = NULL;
|
||||
P_SetTarget(&titlemapcam.mobj, NULL);
|
||||
gamemap = titleMapNum+1;
|
||||
|
||||
maptol = mapheaderinfo[titleMapNum]->typeoflevel;
|
||||
|
|
@ -2138,7 +2138,7 @@ void F_TitleScreenTicker(boolean run)
|
|||
mobj_t *cameraref = NULL;
|
||||
|
||||
// If there's a Line 422 Switch Cut-Away view, don't force us.
|
||||
if (!titlemapcameraref || titlemapcameraref->type != MT_ALTVIEWMAN)
|
||||
if (titlemapcam.mobj == NULL || titlemapcam.mobj->type != MT_ALTVIEWMAN)
|
||||
{
|
||||
for (th = thlist[THINK_MOBJ].next; th != &thlist[THINK_MOBJ]; th = th->next)
|
||||
{
|
||||
|
|
@ -2153,14 +2153,21 @@ void F_TitleScreenTicker(boolean run)
|
|||
if (mo2->type != MT_ALTVIEWMAN)
|
||||
continue;
|
||||
|
||||
cameraref = titlemapcameraref = mo2;
|
||||
cameraref = mo2;
|
||||
break;
|
||||
}
|
||||
|
||||
if (cameraref != NULL)
|
||||
{
|
||||
P_SetTarget(&titlemapcam.mobj, cameraref);
|
||||
}
|
||||
}
|
||||
else
|
||||
cameraref = titlemapcameraref;
|
||||
{
|
||||
cameraref = titlemapcam.mobj;
|
||||
}
|
||||
|
||||
if (cameraref)
|
||||
if (cameraref != NULL)
|
||||
{
|
||||
camera[0].x = cameraref->x;
|
||||
camera[0].y = cameraref->y;
|
||||
|
|
@ -3136,8 +3143,6 @@ boolean F_StartCeremony(void)
|
|||
{
|
||||
INT32 podiumMapNum = nummapheaders;
|
||||
|
||||
wipegamestate = GS_CEREMONY;
|
||||
|
||||
if (podiummap
|
||||
&& ((podiumMapNum = G_MapNumber(podiummap)) < nummapheaders)
|
||||
&& mapheaderinfo[podiumMapNum]
|
||||
|
|
|
|||
|
|
@ -105,17 +105,10 @@ extern INT16 ttloop;
|
|||
extern UINT16 tttics;
|
||||
extern boolean ttavailable[6];
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
TITLEMAP_OFF = 0,
|
||||
TITLEMAP_LOADING,
|
||||
TITLEMAP_RUNNING
|
||||
} titlemap_enum;
|
||||
|
||||
// Current menu parameters
|
||||
|
||||
extern mobj_t *titlemapcameraref;
|
||||
extern altview_t titlemapcam;
|
||||
|
||||
extern char curbgname[9];
|
||||
extern SINT8 curfadevalue;
|
||||
extern INT32 curbgcolor;
|
||||
|
|
|
|||
|
|
@ -2520,7 +2520,7 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps)
|
|||
{
|
||||
follower = players[player].follower;
|
||||
P_SetTarget(&players[player].follower, NULL);
|
||||
P_SetTarget(&players[player].awayviewmobj, NULL);
|
||||
P_SetTarget(&players[player].awayview.mobj, NULL);
|
||||
P_SetTarget(&players[player].stumbleIndicator, NULL);
|
||||
P_SetTarget(&players[player].followmobj, NULL);
|
||||
|
||||
|
|
|
|||
|
|
@ -2989,7 +2989,7 @@ static void K_drawKartPlayerCheck(void)
|
|||
return;
|
||||
}
|
||||
|
||||
if (stplyr->spectator || stplyr->awayviewtics)
|
||||
if (stplyr->spectator || stplyr->awayview.tics)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -3238,7 +3238,7 @@ static void K_drawKartNameTags(void)
|
|||
return;
|
||||
}
|
||||
|
||||
if (stplyr->awayviewtics)
|
||||
if (stplyr->awayview.tics)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -482,12 +482,10 @@ static int player_get(lua_State *L)
|
|||
lua_pushinteger(L, plr->timeshitprev);
|
||||
else if (fastcmp(field,"onconveyor"))
|
||||
lua_pushinteger(L, plr->onconveyor);
|
||||
else if (fastcmp(field,"awayviewmobj"))
|
||||
LUA_PushUserdata(L, plr->awayviewmobj, META_MOBJ);
|
||||
else if (fastcmp(field,"awayviewtics"))
|
||||
lua_pushinteger(L, plr->awayviewtics);
|
||||
else if (fastcmp(field,"awayviewaiming"))
|
||||
lua_pushangle(L, plr->awayviewaiming);
|
||||
else if (fastcmp(field,"awayviewmobj")) // FIXME: struct
|
||||
LUA_PushUserdata(L, plr->awayview.mobj, META_MOBJ);
|
||||
else if (fastcmp(field,"awayviewtics")) // FIXME: struct
|
||||
lua_pushinteger(L, plr->awayview.tics);
|
||||
|
||||
else if (fastcmp(field,"spectator"))
|
||||
lua_pushboolean(L, plr->spectator);
|
||||
|
|
@ -848,21 +846,19 @@ static int player_set(lua_State *L)
|
|||
plr->timeshitprev = (UINT8)luaL_checkinteger(L, 3);
|
||||
else if (fastcmp(field,"onconveyor"))
|
||||
plr->onconveyor = (INT32)luaL_checkinteger(L, 3);
|
||||
else if (fastcmp(field,"awayviewmobj"))
|
||||
else if (fastcmp(field,"awayviewmobj")) // FIXME: struct
|
||||
{
|
||||
mobj_t *mo = NULL;
|
||||
if (!lua_isnil(L, 3))
|
||||
mo = *((mobj_t **)luaL_checkudata(L, 3, META_MOBJ));
|
||||
P_SetTarget(&plr->awayviewmobj, mo);
|
||||
P_SetTarget(&plr->awayview.mobj, mo);
|
||||
}
|
||||
else if (fastcmp(field,"awayviewtics"))
|
||||
else if (fastcmp(field,"awayviewtics")) // FIXME: struct
|
||||
{
|
||||
plr->awayviewtics = (INT32)luaL_checkinteger(L, 3);
|
||||
if (plr->awayviewtics && !plr->awayviewmobj) // awayviewtics must ALWAYS have an awayviewmobj set!!
|
||||
P_SetTarget(&plr->awayviewmobj, plr->mo); // but since the script might set awayviewmobj immediately AFTER setting awayviewtics, use player mobj as filler for now.
|
||||
plr->awayview.tics = (INT32)luaL_checkinteger(L, 3);
|
||||
if (plr->awayview.tics && !plr->awayview.mobj) // awayviewtics must ALWAYS have an awayviewmobj set!!
|
||||
P_SetTarget(&plr->awayview.mobj, plr->mo); // but since the script might set awayviewmobj immediately AFTER setting awayviewtics, use player mobj as filler for now.
|
||||
}
|
||||
else if (fastcmp(field,"awayviewaiming"))
|
||||
plr->awayviewaiming = luaL_checkangle(L, 3);
|
||||
else if (fastcmp(field,"spectator"))
|
||||
plr->spectator = lua_toboolean(L, 3);
|
||||
else if (fastcmp(field,"bot"))
|
||||
|
|
|
|||
|
|
@ -4165,8 +4165,8 @@ void A_OverlayThink(mobj_t *actor)
|
|||
{
|
||||
angle_t viewingangle;
|
||||
|
||||
if (players[displayplayers[0]].awayviewtics)
|
||||
viewingangle = R_PointToAngle2(actor->target->x, actor->target->y, players[displayplayers[0]].awayviewmobj->x, players[displayplayers[0]].awayviewmobj->y);
|
||||
if (players[displayplayers[0]].awayview.tics)
|
||||
viewingangle = R_PointToAngle2(actor->target->x, actor->target->y, players[displayplayers[0]].awayview.mobj->x, players[displayplayers[0]].awayview.mobj->y);
|
||||
else if (!camera[0].chase && players[displayplayers[0]].mo)
|
||||
viewingangle = R_PointToAngle2(actor->target->x, actor->target->y, players[displayplayers[0]].mo->x, players[displayplayers[0]].mo->y);
|
||||
else
|
||||
|
|
|
|||
22
src/p_mobj.c
22
src/p_mobj.c
|
|
@ -3779,13 +3779,13 @@ void P_CalcChasePostImg(player_t *player, camera_t *thiscam)
|
|||
{
|
||||
postimg = postimg_mirror;
|
||||
}
|
||||
else if (player->awayviewtics && player->awayviewmobj && !P_MobjWasRemoved(player->awayviewmobj)) // Camera must obviously exist
|
||||
else if (player->awayview.tics && player->awayview.mobj && !P_MobjWasRemoved(player->awayview.mobj)) // Camera must obviously exist
|
||||
{
|
||||
camera_t dummycam;
|
||||
dummycam.subsector = player->awayviewmobj->subsector;
|
||||
dummycam.x = player->awayviewmobj->x;
|
||||
dummycam.y = player->awayviewmobj->y;
|
||||
dummycam.z = player->awayviewmobj->z;
|
||||
dummycam.subsector = player->awayview.mobj->subsector;
|
||||
dummycam.x = player->awayview.mobj->x;
|
||||
dummycam.y = player->awayview.mobj->y;
|
||||
dummycam.z = player->awayview.mobj->z;
|
||||
//dummycam.height = 40*FRACUNIT; // alt view height is 20*FRACUNIT
|
||||
dummycam.height = 0; // Why? Remote viewpoint cameras have no height.
|
||||
// Are we in water?
|
||||
|
|
@ -8088,8 +8088,8 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
|||
angle_t viewingangle;
|
||||
statenum_t curstate = ((mobj->tics == 1) ? (mobj->state->nextstate) : ((statenum_t)(mobj->state-states)));
|
||||
|
||||
if (players[displayplayers[0]].awayviewtics)
|
||||
viewingangle = R_PointToAngle2(mobj->target->x, mobj->target->y, players[displayplayers[0]].awayviewmobj->x, players[displayplayers[0]].awayviewmobj->y);
|
||||
if (players[displayplayers[0]].awayview.tics)
|
||||
viewingangle = R_PointToAngle2(mobj->target->x, mobj->target->y, players[displayplayers[0]].awayview.mobj->x, players[displayplayers[0]].awayview.mobj->y);
|
||||
else if (!camera[0].chase && players[displayplayers[0]].mo)
|
||||
viewingangle = R_PointToAngle2(mobj->target->x, mobj->target->y, players[displayplayers[0]].mo->x, players[displayplayers[0]].mo->y);
|
||||
else
|
||||
|
|
@ -8219,8 +8219,8 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
|||
{
|
||||
angle_t viewingangle;
|
||||
|
||||
if (players[displayplayers[0]].awayviewtics)
|
||||
viewingangle = R_PointToAngle2(mobj->target->x, mobj->target->y, players[displayplayers[0]].awayviewmobj->x, players[displayplayers[0]].awayviewmobj->y);
|
||||
if (players[displayplayers[0]].awayview.tics)
|
||||
viewingangle = R_PointToAngle2(mobj->target->x, mobj->target->y, players[displayplayers[0]].awayview.mobj->x, players[displayplayers[0]].awayview.mobj->y);
|
||||
else if (!camera[0].chase && players[displayplayers[0]].mo)
|
||||
viewingangle = R_PointToAngle2(mobj->target->x, mobj->target->y, players[displayplayers[0]].mo->x, players[displayplayers[0]].mo->y);
|
||||
else
|
||||
|
|
@ -8324,8 +8324,8 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
|||
{
|
||||
angle_t viewingangle;
|
||||
|
||||
if (players[displayplayers[0]].awayviewtics)
|
||||
viewingangle = R_PointToAngle2(mobj->target->x, mobj->target->y, players[displayplayers[0]].awayviewmobj->x, players[displayplayers[0]].awayviewmobj->y);
|
||||
if (players[displayplayers[0]].awayview.tics)
|
||||
viewingangle = R_PointToAngle2(mobj->target->x, mobj->target->y, players[displayplayers[0]].awayview.mobj->x, players[displayplayers[0]].awayview.mobj->y);
|
||||
else if (!camera[0].chase && players[displayplayers[0]].mo)
|
||||
viewingangle = R_PointToAngle2(mobj->target->x, mobj->target->y, players[displayplayers[0]].mo->x, players[displayplayers[0]].mo->y);
|
||||
else
|
||||
|
|
|
|||
|
|
@ -137,8 +137,7 @@ static void P_NetArchivePlayers(savebuffer_t *save)
|
|||
WRITEANGLE(save->p, players[i].drawangle);
|
||||
WRITEANGLE(save->p, players[i].viewrollangle);
|
||||
WRITEANGLE(save->p, players[i].tilt);
|
||||
WRITEANGLE(save->p, players[i].awayviewaiming);
|
||||
WRITEINT32(save->p, players[i].awayviewtics);
|
||||
WRITEINT32(save->p, players[i].awayview.tics);
|
||||
|
||||
WRITEUINT8(save->p, players[i].playerstate);
|
||||
WRITEUINT32(save->p, players[i].pflags);
|
||||
|
|
@ -197,7 +196,7 @@ static void P_NetArchivePlayers(savebuffer_t *save)
|
|||
|
||||
WRITEUINT8(save->p, players[i].splitscreenindex);
|
||||
|
||||
if (players[i].awayviewmobj)
|
||||
if (players[i].awayview.mobj)
|
||||
flags |= AWAYVIEW;
|
||||
|
||||
if (players[i].followmobj)
|
||||
|
|
@ -227,7 +226,7 @@ static void P_NetArchivePlayers(savebuffer_t *save)
|
|||
WRITEUINT32(save->p, players[i].skybox.centerpoint->mobjnum);
|
||||
|
||||
if (flags & AWAYVIEW)
|
||||
WRITEUINT32(save->p, players[i].awayviewmobj->mobjnum);
|
||||
WRITEUINT32(save->p, players[i].awayview.mobj->mobjnum);
|
||||
|
||||
if (flags & FOLLOWITEM)
|
||||
WRITEUINT32(save->p, players[i].followmobj->mobjnum);
|
||||
|
|
@ -527,8 +526,7 @@ static void P_NetUnArchivePlayers(savebuffer_t *save)
|
|||
players[i].drawangle = players[i].old_drawangle = READANGLE(save->p);
|
||||
players[i].viewrollangle = READANGLE(save->p);
|
||||
players[i].tilt = READANGLE(save->p);
|
||||
players[i].awayviewaiming = READANGLE(save->p);
|
||||
players[i].awayviewtics = READINT32(save->p);
|
||||
players[i].awayview.tics = READINT32(save->p);
|
||||
|
||||
players[i].playerstate = READUINT8(save->p);
|
||||
players[i].pflags = READUINT32(save->p);
|
||||
|
|
@ -596,7 +594,7 @@ static void P_NetUnArchivePlayers(savebuffer_t *save)
|
|||
players[i].skybox.centerpoint = (mobj_t *)(size_t)READUINT32(save->p);
|
||||
|
||||
if (flags & AWAYVIEW)
|
||||
players[i].awayviewmobj = (mobj_t *)(size_t)READUINT32(save->p);
|
||||
players[i].awayview.mobj = (mobj_t *)(size_t)READUINT32(save->p);
|
||||
|
||||
if (flags & FOLLOWITEM)
|
||||
players[i].followmobj = (mobj_t *)(size_t)READUINT32(save->p);
|
||||
|
|
@ -4684,12 +4682,12 @@ static void P_RelinkPointers(void)
|
|||
if (!P_SetTarget(&players[i].skybox.centerpoint, P_FindNewPosition(temp)))
|
||||
CONS_Debug(DBG_GAMELOGIC, "skybox.centerpoint not found on player %d\n", i);
|
||||
}
|
||||
if (players[i].awayviewmobj)
|
||||
if (players[i].awayview.mobj)
|
||||
{
|
||||
temp = (UINT32)(size_t)players[i].awayviewmobj;
|
||||
players[i].awayviewmobj = NULL;
|
||||
if (!P_SetTarget(&players[i].awayviewmobj, P_FindNewPosition(temp)))
|
||||
CONS_Debug(DBG_GAMELOGIC, "awayviewmobj not found on player %d\n", i);
|
||||
temp = (UINT32)(size_t)players[i].awayview.mobj;
|
||||
players[i].awayview.mobj = NULL;
|
||||
if (!P_SetTarget(&players[i].awayview.mobj, P_FindNewPosition(temp)))
|
||||
CONS_Debug(DBG_GAMELOGIC, "awayview.mobj not found on player %d\n", i);
|
||||
}
|
||||
if (players[i].followmobj)
|
||||
{
|
||||
|
|
|
|||
46
src/p_spec.c
46
src/p_spec.c
|
|
@ -2994,35 +2994,35 @@ boolean P_ProcessSpecial(activator_t *activator, INT16 special, INT32 *args, cha
|
|||
|
||||
case 422: // Cut away to another view
|
||||
{
|
||||
mobj_t *altview;
|
||||
INT32 aim;
|
||||
altview_t *modifyView = NULL;
|
||||
mobj_t *newViewMobj = NULL;
|
||||
|
||||
if ((!mo || !mo->player) && !titlemapinaction) // only players have views, and title screens
|
||||
return false;
|
||||
|
||||
altview = P_FindObjectTypeFromTag(MT_ALTVIEWMAN, args[0]);
|
||||
if (!altview || !altview->spawnpoint)
|
||||
return false;
|
||||
|
||||
// If titlemap, set the camera ref for title's thinker
|
||||
// This is not revoked until overwritten; awayviewtics is ignored
|
||||
if (titlemapinaction)
|
||||
titlemapcameraref = altview;
|
||||
{
|
||||
modifyView = &titlemapcam;
|
||||
}
|
||||
else if (mo != NULL && mo->player != NULL)
|
||||
{
|
||||
modifyView = &mo->player->awayview;
|
||||
}
|
||||
else
|
||||
{
|
||||
P_SetTarget(&mo->player->awayviewmobj, altview);
|
||||
mo->player->awayviewtics = args[1];
|
||||
return false;
|
||||
}
|
||||
|
||||
aim = (backwardsCompat) ? args[2] : altview->spawnpoint->pitch;
|
||||
aim = (aim + 360) % 360;
|
||||
aim *= (ANGLE_90>>8);
|
||||
aim /= 90;
|
||||
aim <<= 8;
|
||||
if (titlemapinaction)
|
||||
titlemapcameraref->cusval = (angle_t)aim;
|
||||
else
|
||||
mo->player->awayviewaiming = (angle_t)aim;
|
||||
newViewMobj = P_FindObjectTypeFromTag(MT_ALTVIEWMAN, args[0]);
|
||||
if (newViewMobj == NULL || newViewMobj->spawnpoint == NULL)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
P_SetTarget(&modifyView->mobj, newViewMobj);
|
||||
|
||||
// If titlemap, awayview.tics is ignored
|
||||
if (titlemapinaction == false)
|
||||
{
|
||||
modifyView->tics = args[1];
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
|
|||
16
src/p_user.c
16
src/p_user.c
|
|
@ -3670,10 +3670,10 @@ static void P_CalcPostImg(player_t *player)
|
|||
else
|
||||
pviewheight = player->mo->z + player->viewheight;
|
||||
|
||||
if (player->awayviewtics && player->awayviewmobj && !P_MobjWasRemoved(player->awayviewmobj))
|
||||
if (player->awayview.tics && player->awayview.mobj && !P_MobjWasRemoved(player->awayview.mobj))
|
||||
{
|
||||
sector = player->awayviewmobj->subsector->sector;
|
||||
pviewheight = player->awayviewmobj->z + 20*FRACUNIT;
|
||||
sector = player->awayview.mobj->subsector->sector;
|
||||
pviewheight = player->awayview.mobj->z;
|
||||
}
|
||||
|
||||
for (i = 0; i <= (unsigned)r_splitscreen; i++)
|
||||
|
|
@ -4020,17 +4020,17 @@ void P_PlayerThink(player_t *player)
|
|||
|
||||
player->old_drawangle = player->drawangle;
|
||||
|
||||
if (player->awayviewmobj && P_MobjWasRemoved(player->awayviewmobj))
|
||||
if (player->awayview.mobj && P_MobjWasRemoved(player->awayview.mobj))
|
||||
{
|
||||
P_SetTarget(&player->awayviewmobj, NULL); // remove awayviewmobj asap if invalid
|
||||
player->awayviewtics = 0; // reset to zero
|
||||
P_SetTarget(&player->awayview.mobj, NULL); // remove awayview.mobj asap if invalid
|
||||
player->awayview.tics = 0; // reset to zero
|
||||
}
|
||||
|
||||
if (player->flashcount)
|
||||
player->flashcount--;
|
||||
|
||||
if (player->awayviewtics && player->awayviewtics != -1)
|
||||
player->awayviewtics--;
|
||||
if (player->awayview.tics && player->awayview.tics != -1)
|
||||
player->awayview.tics--;
|
||||
|
||||
// Track airtime
|
||||
if (P_IsObjectOnGround(player->mo)
|
||||
|
|
|
|||
22
src/r_main.c
22
src/r_main.c
|
|
@ -1192,10 +1192,10 @@ static void R_SetupAimingFrame(int s)
|
|||
player_t *player = &players[displayplayers[s]];
|
||||
camera_t *thiscam = &camera[s];
|
||||
|
||||
if (player->awayviewtics)
|
||||
if (player->awayview.tics)
|
||||
{
|
||||
newview->aim = player->awayviewaiming;
|
||||
newview->angle = player->awayviewmobj->angle;
|
||||
newview->aim = player->awayview.mobj->pitch;
|
||||
newview->angle = player->awayview.mobj->angle;
|
||||
}
|
||||
else if (thiscam && thiscam->chase)
|
||||
{
|
||||
|
|
@ -1237,15 +1237,15 @@ void R_SetupFrame(int s)
|
|||
|
||||
R_SetupAimingFrame(s);
|
||||
|
||||
if (player->awayviewtics)
|
||||
if (player->awayview.tics)
|
||||
{
|
||||
// cut-away view stuff
|
||||
r_viewmobj = player->awayviewmobj; // should be a MT_ALTVIEWMAN
|
||||
r_viewmobj = player->awayview.mobj; // should be a MT_ALTVIEWMAN
|
||||
I_Assert(r_viewmobj != NULL);
|
||||
|
||||
newview->x = r_viewmobj->x;
|
||||
newview->y = r_viewmobj->y;
|
||||
newview->z = r_viewmobj->z + 20*FRACUNIT;
|
||||
newview->z = r_viewmobj->z;
|
||||
|
||||
R_SetupCommonFrame(player, r_viewmobj->subsector);
|
||||
}
|
||||
|
|
@ -1306,10 +1306,10 @@ void R_SkyboxFrame(int s)
|
|||
vector3_t campos = {0,0,0}; // Position of player's actual view point
|
||||
mobj_t *center = player->skybox.centerpoint;
|
||||
|
||||
if (player->awayviewtics) {
|
||||
campos.x = player->awayviewmobj->x;
|
||||
campos.y = player->awayviewmobj->y;
|
||||
campos.z = player->awayviewmobj->z + 20*FRACUNIT;
|
||||
if (player->awayview.tics) {
|
||||
campos.x = player->awayview.mobj->x;
|
||||
campos.y = player->awayview.mobj->y;
|
||||
campos.z = player->awayview.mobj->z;
|
||||
} else if (thiscam->chase) {
|
||||
campos.x = thiscam->x;
|
||||
campos.y = thiscam->y;
|
||||
|
|
@ -1403,7 +1403,7 @@ boolean R_IsViewpointThirdPerson(player_t *player, boolean skybox)
|
|||
boolean chasecam = R_ViewpointHasChasecam(player);
|
||||
|
||||
// cut-away view stuff
|
||||
if (player->awayviewtics || skybox)
|
||||
if (player->awayview.tics || skybox)
|
||||
return chasecam;
|
||||
// use outside cam view
|
||||
else if (!player->spectator && chasecam)
|
||||
|
|
|
|||
|
|
@ -540,9 +540,9 @@ void S_StartSoundAtVolume(const void *origin_p, sfxenum_t sfx_id, INT32 volume)
|
|||
continue;
|
||||
}
|
||||
|
||||
if (player->awayviewtics)
|
||||
if (player->awayview.tics)
|
||||
{
|
||||
listenmobj[i] = player->awayviewmobj;
|
||||
listenmobj[i] = player->awayview.mobj;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -572,7 +572,7 @@ void S_StartSoundAtVolume(const void *origin_p, sfxenum_t sfx_id, INT32 volume)
|
|||
continue;
|
||||
}
|
||||
|
||||
if (camera[i].chase && !player->awayviewtics)
|
||||
if (camera[i].chase && !player->awayview.tics)
|
||||
{
|
||||
listener[i].x = camera[i].x;
|
||||
listener[i].y = camera[i].y;
|
||||
|
|
@ -827,9 +827,9 @@ void S_UpdateSounds(void)
|
|||
continue;
|
||||
}
|
||||
|
||||
if (player->awayviewtics)
|
||||
if (player->awayview.tics)
|
||||
{
|
||||
listenmobj[i] = player->awayviewmobj;
|
||||
listenmobj[i] = player->awayview.mobj;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -858,7 +858,7 @@ void S_UpdateSounds(void)
|
|||
continue;
|
||||
}
|
||||
|
||||
if (camera[i].chase && !player->awayviewtics)
|
||||
if (camera[i].chase && !player->awayview.tics)
|
||||
{
|
||||
listener[i].x = camera[i].x;
|
||||
listener[i].y = camera[i].y;
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ TYPEDEF (respawnvars_t);
|
|||
TYPEDEF (botvars_t);
|
||||
TYPEDEF (skybox_t);
|
||||
TYPEDEF (itemroulette_t);
|
||||
TYPEDEF (altview_t);
|
||||
TYPEDEF (player_t);
|
||||
|
||||
// d_clisrv.h
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue