diff options
author | Joel Bodenmann <joel@seriouslyembedded.com> | 2015-11-04 07:11:25 +0100 |
---|---|---|
committer | Joel Bodenmann <joel@seriouslyembedded.com> | 2015-11-04 07:11:25 +0100 |
commit | 96789916e3c6b8db8f4b1aba4ff5c36b0137bf3f (patch) | |
tree | 51b848c65d1fcbe7115759435176447a85df4b7b /demos/3rdparty/doom/p_user.c | |
parent | d4f43afcd2309b0c6205826b571ecf7ab8f33071 (diff) | |
download | uGFX-96789916e3c6b8db8f4b1aba4ff5c36b0137bf3f.tar.gz uGFX-96789916e3c6b8db8f4b1aba4ff5c36b0137bf3f.tar.bz2 uGFX-96789916e3c6b8db8f4b1aba4ff5c36b0137bf3f.zip |
Removing doom demo (will become part of a dedicated demo-projects-repo)
Diffstat (limited to 'demos/3rdparty/doom/p_user.c')
-rw-r--r-- | demos/3rdparty/doom/p_user.c | 386 |
1 files changed, 0 insertions, 386 deletions
diff --git a/demos/3rdparty/doom/p_user.c b/demos/3rdparty/doom/p_user.c deleted file mode 100644 index 22fd6ed4..00000000 --- a/demos/3rdparty/doom/p_user.c +++ /dev/null @@ -1,386 +0,0 @@ -// Emacs style mode select -*- C++ -*- -//----------------------------------------------------------------------------- -// -// $Id:$ -// -// Copyright (C) 1993-1996 by id Software, Inc. -// -// This source is available for distribution and/or modification -// only under the terms of the DOOM Source Code License as -// published by id Software. All rights reserved. -// -// The source is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License -// for more details. -// -// $Log:$ -// -// DESCRIPTION: -// Player related stuff. -// Bobbing POV/weapon, movement. -// Pending weapon. -// -//----------------------------------------------------------------------------- - - -static const char -rcsid[] = "$Id: p_user.c,v 1.3 1997/01/28 22:08:29 b1 Exp $"; - - -#include "doomdef.h" -#include "d_event.h" - -#include "p_local.h" - -#include "doomstat.h" - - - -// Index of the special effects (INVUL inverse) map. -#define INVERSECOLORMAP 32 - - -// -// Movement. -// - -// 16 pixels of bob -#define MAXBOB 0x100000 - -boolean onground; - - -// -// P_Thrust -// Moves the given origin along a given angle. -// -void -P_Thrust -( player_t* player, - angle_t angle, - fixed_t move ) -{ - angle >>= ANGLETOFINESHIFT; - - player->mo->momx += FixedMul(move,finecosine[angle]); - player->mo->momy += FixedMul(move,finesine[angle]); -} - - - - -// -// P_CalcHeight -// Calculate the walking / running height adjustment -// -void P_CalcHeight (player_t* player) -{ - int angle; - fixed_t bob; - - // Regular movement bobbing - // (needs to be calculated for gun swing - // even if not on ground) - // OPTIMIZE: tablify angle - // Note: a LUT allows for effects - // like a ramp with low health. - player->bob = - FixedMul (player->mo->momx, player->mo->momx) - + FixedMul (player->mo->momy,player->mo->momy); - - player->bob >>= 2; - - if (player->bob>MAXBOB) - player->bob = MAXBOB; - - if ((player->cheats & CF_NOMOMENTUM) || !onground) - { - player->viewz = player->mo->z + VIEWHEIGHT; - - if (player->viewz > player->mo->ceilingz-4*FRACUNIT) - player->viewz = player->mo->ceilingz-4*FRACUNIT; - - player->viewz = player->mo->z + player->viewheight; - return; - } - - angle = (FINEANGLES/20*leveltime)&FINEMASK; - bob = FixedMul ( player->bob/2, finesine[angle]); - - - // move viewheight - if (player->playerstate == PST_LIVE) - { - player->viewheight += player->deltaviewheight; - - if (player->viewheight > VIEWHEIGHT) - { - player->viewheight = VIEWHEIGHT; - player->deltaviewheight = 0; - } - - if (player->viewheight < VIEWHEIGHT/2) - { - player->viewheight = VIEWHEIGHT/2; - if (player->deltaviewheight <= 0) - player->deltaviewheight = 1; - } - - if (player->deltaviewheight) - { - player->deltaviewheight += FRACUNIT/4; - if (!player->deltaviewheight) - player->deltaviewheight = 1; - } - } - player->viewz = player->mo->z + player->viewheight + bob; - - if (player->viewz > player->mo->ceilingz-4*FRACUNIT) - player->viewz = player->mo->ceilingz-4*FRACUNIT; -} - - - -// -// P_MovePlayer -// -void P_MovePlayer (player_t* player) -{ - ticcmd_t* cmd; - - cmd = &player->cmd; - - player->mo->angle += (cmd->angleturn<<16); - - // Do not let the player control movement - // if not onground. - onground = (player->mo->z <= player->mo->floorz); - - if (cmd->forwardmove && onground) - P_Thrust (player, player->mo->angle, cmd->forwardmove*2048); - - if (cmd->sidemove && onground) - P_Thrust (player, player->mo->angle-ANG90, cmd->sidemove*2048); - - if ( (cmd->forwardmove || cmd->sidemove) - && player->mo->state == &states[S_PLAY] ) - { - P_SetMobjState (player->mo, S_PLAY_RUN1); - } -} - - - -// -// P_DeathThink -// Fall on your face when dying. -// Decrease POV height to floor height. -// -#define ANG5 (ANG90/18) - -void P_DeathThink (player_t* player) -{ - angle_t angle; - angle_t delta; - - P_MovePsprites (player); - - // fall to the ground - if (player->viewheight > 6*FRACUNIT) - player->viewheight -= FRACUNIT; - - if (player->viewheight < 6*FRACUNIT) - player->viewheight = 6*FRACUNIT; - - player->deltaviewheight = 0; - onground = (player->mo->z <= player->mo->floorz); - P_CalcHeight (player); - - if (player->attacker && player->attacker != player->mo) - { - angle = R_PointToAngle2 (player->mo->x, - player->mo->y, - player->attacker->x, - player->attacker->y); - - delta = angle - player->mo->angle; - - if (delta < ANG5 || delta > (unsigned)-ANG5) - { - // Looking at killer, - // so fade damage flash down. - player->mo->angle = angle; - - if (player->damagecount) - player->damagecount--; - } - else if (delta < ANG180) - player->mo->angle += ANG5; - else - player->mo->angle -= ANG5; - } - else if (player->damagecount) - player->damagecount--; - - - if (player->cmd.buttons & BT_USE) - player->playerstate = PST_REBORN; -} - - - -// -// P_PlayerThink -// -void P_PlayerThink (player_t* player) -{ - ticcmd_t* cmd; - weapontype_t newweapon; - - // fixme: do this in the cheat code - if (player->cheats & CF_NOCLIP) - player->mo->flags |= MF_NOCLIP; - else - player->mo->flags &= ~MF_NOCLIP; - - // chain saw run forward - cmd = &player->cmd; - if (player->mo->flags & MF_JUSTATTACKED) - { - cmd->angleturn = 0; - cmd->forwardmove = 0xc800/512; - cmd->sidemove = 0; - player->mo->flags &= ~MF_JUSTATTACKED; - } - - - if (player->playerstate == PST_DEAD) - { - P_DeathThink (player); - return; - } - - // Move around. - // Reactiontime is used to prevent movement - // for a bit after a teleport. - if (player->mo->reactiontime) - player->mo->reactiontime--; - else - P_MovePlayer (player); - - P_CalcHeight (player); - - if (player->mo->subsector->sector->special) - P_PlayerInSpecialSector (player); - - // Check for weapon change. - - // A special event has no other buttons. - if (cmd->buttons & BT_SPECIAL) - cmd->buttons = 0; - - if (cmd->buttons & BT_CHANGE) - { - // The actual changing of the weapon is done - // when the weapon psprite can do it - // (read: not in the middle of an attack). - newweapon = (cmd->buttons&BT_WEAPONMASK)>>BT_WEAPONSHIFT; - - if (newweapon == wp_fist - && player->weaponowned[wp_chainsaw] - && !(player->readyweapon == wp_chainsaw - && player->powers[pw_strength])) - { - newweapon = wp_chainsaw; - } - - if ( (gamemode == commercial) - && newweapon == wp_shotgun - && player->weaponowned[wp_supershotgun] - && player->readyweapon != wp_supershotgun) - { - newweapon = wp_supershotgun; - } - - - if (player->weaponowned[newweapon] - && newweapon != player->readyweapon) - { - // Do not go to plasma or BFG in shareware, - // even if cheated. - if ((newweapon != wp_plasma - && newweapon != wp_bfg) - || (gamemode != shareware) ) - { - player->pendingweapon = newweapon; - } - } - } - - // check for use - if (cmd->buttons & BT_USE) - { - if (!player->usedown) - { - P_UseLines (player); - player->usedown = true; - } - } - else - player->usedown = false; - - // cycle psprites - P_MovePsprites (player); - - // Counters, time dependend power ups. - - // Strength counts up to diminish fade. - if (player->powers[pw_strength]) - player->powers[pw_strength]++; - - if (player->powers[pw_invulnerability]) - player->powers[pw_invulnerability]--; - - if (player->powers[pw_invisibility]) - if (! --player->powers[pw_invisibility] ) - player->mo->flags &= ~MF_SHADOW; - - if (player->powers[pw_infrared]) - player->powers[pw_infrared]--; - - if (player->powers[pw_ironfeet]) - player->powers[pw_ironfeet]--; - - if (player->damagecount) - player->damagecount--; - - if (player->bonuscount) - player->bonuscount--; - - - // Handling colormaps. - if (player->powers[pw_invulnerability]) - { - if (player->powers[pw_invulnerability] > 4*32 - || (player->powers[pw_invulnerability]&8) ) - player->fixedcolormap = INVERSECOLORMAP; - else - player->fixedcolormap = 0; - } - else if (player->powers[pw_infrared]) - { - if (player->powers[pw_infrared] > 4*32 - || (player->powers[pw_infrared]&8) ) - { - // almost full bright - player->fixedcolormap = 1; - } - else - player->fixedcolormap = 0; - } - else - player->fixedcolormap = 0; -} - - |