mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-10 14:51:51 +00:00
- added NeuralStunner's player.userange submission, but changed it to use the value directly from the PlayerPawn data.
- bumped savegame version for addition of APlayerPawn::userange.
This commit is contained in:
parent
db562142f0
commit
83bd8ba1b8
6 changed files with 32 additions and 7 deletions
|
@ -140,6 +140,7 @@ public:
|
|||
int SpawnMask;
|
||||
FNameNoInit MorphWeapon;
|
||||
fixed_t AttackZOffset; // attack height, relative to player center
|
||||
fixed_t UseRange; // [NS] Distance at which player can +use
|
||||
const PClass *FlechetteType;
|
||||
|
||||
// [CW] Fades for when you are being damaged.
|
||||
|
|
|
@ -4359,14 +4359,17 @@ bool P_NoWayTraverse (AActor *usething, fixed_t endx, fixed_t endy)
|
|||
void P_UseLines (player_t *player)
|
||||
{
|
||||
angle_t angle;
|
||||
fixed_t x1, y1;
|
||||
fixed_t x1, y1, usedist;
|
||||
bool foundline;
|
||||
|
||||
foundline = false;
|
||||
|
||||
angle = player->mo->angle >> ANGLETOFINESHIFT;
|
||||
x1 = player->mo->x + (USERANGE>>FRACBITS)*finecosine[angle];
|
||||
y1 = player->mo->y + (USERANGE>>FRACBITS)*finesine[angle];
|
||||
usedist = player->mo->UseRange;
|
||||
|
||||
// [NS] Now queries the Player's UseRange.
|
||||
x1 = player->mo->x + FixedMul(usedist, finecosine[angle]);
|
||||
y1 = player->mo->y + FixedMul(usedist, finesine[angle]);
|
||||
|
||||
// old code:
|
||||
//
|
||||
|
@ -4398,13 +4401,20 @@ void P_UseLines (player_t *player)
|
|||
bool P_UsePuzzleItem (AActor *PuzzleItemUser, int PuzzleItemType)
|
||||
{
|
||||
int angle;
|
||||
fixed_t x1, y1, x2, y2;
|
||||
fixed_t x1, y1, x2, y2, usedist;
|
||||
|
||||
angle = PuzzleItemUser->angle>>ANGLETOFINESHIFT;
|
||||
x1 = PuzzleItemUser->x;
|
||||
y1 = PuzzleItemUser->y;
|
||||
x2 = x1+(USERANGE>>FRACBITS)*finecosine[angle];
|
||||
y2 = y1+(USERANGE>>FRACBITS)*finesine[angle];
|
||||
|
||||
// [NS] If it's a Player, get their UseRange.
|
||||
if (PuzzleItemUser->player)
|
||||
usedist = PuzzleItemUser->player->mo->UseRange;
|
||||
else
|
||||
usedist = USERANGE;
|
||||
|
||||
x2 = x1 + FixedMul(usedist, finecosine[angle]);
|
||||
y2 = y1 + FixedMul(usedist, finesine[angle]);
|
||||
|
||||
FPathTraverse it(x1, y1, x2, y2, PT_ADDLINES|PT_ADDTHINGS);
|
||||
intercept_t *in;
|
||||
|
|
|
@ -474,6 +474,10 @@ void APlayerPawn::Serialize (FArchive &arc)
|
|||
{
|
||||
arc << GruntSpeed << FallingScreamMinSpeed << FallingScreamMaxSpeed;
|
||||
}
|
||||
if (SaveVersion >= 4502)
|
||||
{
|
||||
arc << UseRange;
|
||||
}
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
|
|
|
@ -2410,6 +2410,15 @@ DEFINE_CLASS_PROPERTY_PREFIX(player, viewheight, F, PlayerPawn)
|
|||
defaults->ViewHeight = z;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//==========================================================================
|
||||
DEFINE_CLASS_PROPERTY_PREFIX(player, userange, F, PlayerPawn)
|
||||
{
|
||||
PROP_FIXED_PARM(z, 0);
|
||||
defaults->UseRange = z;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//==========================================================================
|
||||
|
|
|
@ -76,7 +76,7 @@ const char *GetVersionString();
|
|||
|
||||
// Use 4500 as the base git save version, since it's higher than the
|
||||
// SVN revision ever got.
|
||||
#define SAVEVER 4501
|
||||
#define SAVEVER 4502
|
||||
|
||||
#define SAVEVERSTRINGIFY2(x) #x
|
||||
#define SAVEVERSTRINGIFY(x) SAVEVERSTRINGIFY2(x)
|
||||
|
|
|
@ -24,6 +24,7 @@ Actor PlayerPawn : Actor native
|
|||
Player.GruntSpeed 12
|
||||
Player.FallingScreamSpeed 35,40
|
||||
Player.ViewHeight 41
|
||||
Player.UseRange 64
|
||||
Player.ForwardMove 1,1
|
||||
Player.SideMove 1,1
|
||||
Player.ColorRange 0,0
|
||||
|
|
Loading…
Reference in a new issue