mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-02-02 03:36:14 +00:00
Fix camera not updating when F12ing, fixed camera not taking aiming into account, and minor cleanup
This commit is contained in:
parent
58d9ac899d
commit
953afddd03
4 changed files with 39 additions and 36 deletions
|
|
@ -461,15 +461,16 @@ static int player_set(lua_State *L)
|
|||
else if (fastcmp(field,"viewrollangle"))
|
||||
plr->viewrollangle = luaL_checkangle(L, 3);
|
||||
else if (fastcmp(field,"aiming")) {
|
||||
UINT8 i;
|
||||
plr->aiming = luaL_checkangle(L, 3);
|
||||
if (plr == &players[consoleplayer])
|
||||
localaiming[0] = plr->aiming;
|
||||
else if (plr == &players[displayplayers[1]])
|
||||
localaiming[1] = plr->aiming;
|
||||
else if (plr == &players[displayplayers[2]])
|
||||
localaiming[2] = plr->aiming;
|
||||
else if (plr == &players[displayplayers[3]])
|
||||
localaiming[3] = plr->aiming;
|
||||
for (i = 0; i <= r_splitscreen; i++)
|
||||
{
|
||||
if (plr == &players[displayplayers[i]])
|
||||
{
|
||||
localaiming[i] = plr->aiming;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (fastcmp(field,"drawangle"))
|
||||
plr->drawangle = luaL_checkangle(L, 3);
|
||||
|
|
|
|||
|
|
@ -1161,6 +1161,8 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
|
|||
// if a player avatar dies...
|
||||
if (target->player)
|
||||
{
|
||||
UINT8 i;
|
||||
|
||||
target->flags &= ~(MF_SOLID|MF_SHOOTABLE); // does not block
|
||||
P_UnsetThingPosition(target);
|
||||
target->flags |= MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY;
|
||||
|
|
@ -1176,14 +1178,17 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
|
|||
// switch view prior to dying
|
||||
if (automapactive)
|
||||
AM_Stop();
|
||||
|
||||
//added : 22-02-98: recenter view for next life...
|
||||
localaiming[0] = 0;
|
||||
}
|
||||
|
||||
if (target->player == &players[displayplayers[1]]) localaiming[1] = 0;
|
||||
if (target->player == &players[displayplayers[2]]) localaiming[2] = 0;
|
||||
if (target->player == &players[displayplayers[3]]) localaiming[3] = 0;
|
||||
//added : 22-02-98: recenter view for next life...
|
||||
for (i = 0; i <= r_splitscreen; i++)
|
||||
{
|
||||
if (target->player == &players[displayplayers[i]])
|
||||
{
|
||||
localaiming[i] = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ((gametyperules & GTR_BUMPERS))
|
||||
K_CheckBumpers();
|
||||
|
|
|
|||
|
|
@ -151,7 +151,6 @@ boolean P_IsDisplayPlayer(player_t *player);
|
|||
|
||||
void P_SetPlayerAngle(player_t *player, angle_t angle);
|
||||
angle_t P_GetLocalAngle(player_t *player);
|
||||
void P_SetLocalAngle(player_t *player, angle_t angle);
|
||||
void P_ForceLocalAngle(player_t *player, angle_t angle);
|
||||
boolean P_PlayerFullbright(player_t *player);
|
||||
|
||||
|
|
|
|||
40
src/p_user.c
40
src/p_user.c
|
|
@ -2037,11 +2037,11 @@ static void P_3dMovement(player_t *player)
|
|||
//
|
||||
static void P_UpdatePlayerAngle(player_t *player)
|
||||
{
|
||||
ticcmd_t *cmd = &player->cmd;
|
||||
angle_t angleChange = K_GetKartTurnValue(player, cmd->turning) << TICCMD_REDUCE;
|
||||
angle_t angleChange = K_GetKartTurnValue(player, player->cmd.turning) << TICCMD_REDUCE;
|
||||
UINT8 i;
|
||||
|
||||
player->angleturn += angleChange;
|
||||
P_SetLocalAngle(player, P_GetLocalAngle(player) + angleChange);
|
||||
P_SetPlayerAngle(player, player->angleturn + angleChange);
|
||||
player->mo->angle = player->angleturn;
|
||||
|
||||
if (!cv_allowmlook.value || player->spectator == false)
|
||||
{
|
||||
|
|
@ -2049,11 +2049,18 @@ static void P_UpdatePlayerAngle(player_t *player)
|
|||
}
|
||||
else
|
||||
{
|
||||
player->aiming += (cmd->aiming << TICCMD_REDUCE);
|
||||
player->aiming += (player->cmd.aiming << TICCMD_REDUCE);
|
||||
player->aiming = G_ClipAimingPitch((INT32 *)&player->aiming);
|
||||
}
|
||||
|
||||
player->mo->angle = player->angleturn;
|
||||
for (i = 0; i <= r_splitscreen; i++)
|
||||
{
|
||||
if (player == &players[displayplayers[i]])
|
||||
{
|
||||
localaiming[i] = player->aiming;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
|
|
@ -4653,17 +4660,8 @@ void P_PlayerAfterThink(player_t *player)
|
|||
|
||||
void P_SetPlayerAngle(player_t *player, angle_t angle)
|
||||
{
|
||||
angle_t delta = angle - player->angleturn;
|
||||
|
||||
P_ForceLocalAngle(player, P_GetLocalAngle(player) + delta);
|
||||
player->angleturn += delta;
|
||||
}
|
||||
|
||||
void P_SetLocalAngle(player_t *player, angle_t angle)
|
||||
{
|
||||
angle_t delta = (angle - P_GetLocalAngle(player));
|
||||
|
||||
P_ForceLocalAngle(player, P_GetLocalAngle(player) + delta);
|
||||
P_ForceLocalAngle(player, angle);
|
||||
player->angleturn = angle;
|
||||
}
|
||||
|
||||
angle_t P_GetLocalAngle(player_t *player)
|
||||
|
|
@ -4672,9 +4670,9 @@ angle_t P_GetLocalAngle(player_t *player)
|
|||
// (hint: they have separate variables for all of this shit instead of arrays)
|
||||
UINT8 i;
|
||||
|
||||
for (i = 0; i <= splitscreen; i++)
|
||||
for (i = 0; i <= r_splitscreen; i++)
|
||||
{
|
||||
if (player == &players[g_localplayers[i]])
|
||||
if (player == &players[displayplayers[i]])
|
||||
return localangle[i];
|
||||
}
|
||||
|
||||
|
|
@ -4687,9 +4685,9 @@ void P_ForceLocalAngle(player_t *player, angle_t angle)
|
|||
|
||||
angle = angle & ~UINT16_MAX;
|
||||
|
||||
for (i = 0; i <= splitscreen; i++)
|
||||
for (i = 0; i <= r_splitscreen; i++)
|
||||
{
|
||||
if (player == &players[g_localplayers[i]])
|
||||
if (player == &players[displayplayers[i]])
|
||||
{
|
||||
localangle[i] = angle;
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue