From 43a4985b0e34aafc61192f1c8a47e733898e07e3 Mon Sep 17 00:00:00 2001 From: danij Date: Fri, 21 May 2010 12:45:45 +0100 Subject: [PATCH] Changed All games: Allow camera players to move almost twice as fast as non-camera players when "running". --- doomsday/plugins/common/include/g_common.h | 3 +-- doomsday/plugins/common/src/p_player.c | 25 ++++++++++------------ doomsday/plugins/common/src/p_user.c | 11 +++++----- 3 files changed, 18 insertions(+), 21 deletions(-) diff --git a/doomsday/plugins/common/include/g_common.h b/doomsday/plugins/common/include/g_common.h index 9e8b784993..84b7951f81 100644 --- a/doomsday/plugins/common/include/g_common.h +++ b/doomsday/plugins/common/include/g_common.h @@ -72,8 +72,7 @@ void G_SetGameAction(gameaction_t action); int P_CameraXYMovement(mobj_t* mo); int P_CameraZMovement(mobj_t* mo); -void P_Thrust3D(struct player_s* player, angle_t angle, - float lookdir, int forwardmove, int sidemove); +void P_Thrust3D(struct player_s* player, angle_t angle, float lookdir, float forwardMove, float sideMove); DEFCC( CCmdMakeLocal ); DEFCC( CCmdSetCamera ); diff --git a/doomsday/plugins/common/src/p_player.c b/doomsday/plugins/common/src/p_player.c index 7d7289fa69..e9dc66fa0b 100644 --- a/doomsday/plugins/common/src/p_player.c +++ b/doomsday/plugins/common/src/p_player.c @@ -768,30 +768,27 @@ void P_SetYellowMessage(player_t* pl, char *msg, boolean noHide) } #endif -void P_Thrust3D(player_t *player, angle_t angle, float lookdir, - int forwardmovex, int sidemovex) +void P_Thrust3D(player_t* player, angle_t angle, float lookdir, + float forwardMove, float sideMove) { - angle_t pitch = LOOKDIR2DEG(lookdir) / 360 * ANGLE_MAX; - angle_t sideangle = angle - ANG90; - mobj_t *mo = player->plr->mo; - float zmul; - float mom[3]; - float forwardmove = FIX2FLT(forwardmovex); - float sidemove = FIX2FLT(sidemovex); + angle_t pitch = LOOKDIR2DEG(lookdir) / 360 * ANGLE_MAX; + angle_t sideangle = angle - ANG90; + mobj_t* mo = player->plr->mo; + float zmul, mom[3]; angle >>= ANGLETOFINESHIFT; pitch >>= ANGLETOFINESHIFT; - mom[MX] = forwardmove * FIX2FLT(finecosine[angle]); - mom[MY] = forwardmove * FIX2FLT(finesine[angle]); - mom[MZ] = forwardmove * FIX2FLT(finesine[pitch]); + mom[MX] = forwardMove * FIX2FLT(finecosine[angle]); + mom[MY] = forwardMove * FIX2FLT(finesine[angle]); + mom[MZ] = forwardMove * FIX2FLT(finesine[pitch]); zmul = FIX2FLT(finecosine[pitch]); mom[MX] *= zmul; mom[MY] *= zmul; sideangle >>= ANGLETOFINESHIFT; - mom[MX] += sidemove * FIX2FLT(finecosine[sideangle]); - mom[MY] += sidemove * FIX2FLT(finesine[sideangle]); + mom[MX] += sideMove * FIX2FLT(finecosine[sideangle]); + mom[MY] += sideMove * FIX2FLT(finesine[sideangle]); mo->mom[MX] += mom[MX]; mo->mom[MY] += mom[MY]; diff --git a/doomsday/plugins/common/src/p_user.c b/doomsday/plugins/common/src/p_user.c index 944ae857a8..686bef3d15 100644 --- a/doomsday/plugins/common/src/p_user.c +++ b/doomsday/plugins/common/src/p_user.c @@ -3,8 +3,8 @@ * License: GPL * Online License Link: http://www.gnu.org/licenses/gpl.html * - *\author Copyright © 2000-2009 Jaakko Keränen - *\author Copyright © 2006-2009 Daniel Swanson + *\author Copyright © 2000-2010 Jaakko Keränen + *\author Copyright © 2006-2010 Daniel Swanson *\author Copyright © 1999 Activision *\author Copyright © 1993-1996 by id Software, Inc. * @@ -383,12 +383,13 @@ void P_MovePlayer(player_t *player) onground = P_IsPlayerOnGround(player); if(dp->flags & DDPF_CAMERA) // $democam { - static const fixed_t cameraSpeed[2] = {0x19, 0x31}; + static const float cameraSpeed[2] = { FIX2FLT(0x19), FIX2FLT(0x54) }; + int moveMul = 2048; // Cameramen have a 3D thrusters! P_Thrust3D(player, plrmo->angle, dp->lookDir, - brain->forwardMove * cameraSpeed[speed] * 2048, - brain->sideMove * cameraSpeed[speed] * 2048); + brain->forwardMove * cameraSpeed[speed] * moveMul, + brain->sideMove * cameraSpeed[speed] * moveMul); } else {