mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-10 14:51:40 +00:00
- Fixed: POwered up weapons with a different ready state than their base
weapon didn't change back when the powerup expired. - Fixed: The powered up version of Heretic's Gauntlets missed the proper state assignments for Ready, Lower and Raise. - Fixed: The Strife player was missing its pain state. - Fixed: Revenant missiles couldn't home in on targets with a height lower than 40. - Fixed: The code which checked for hitscan traces hitting actors from above and below must test whether the calculated hit position is actually inside the actor being checked. If it crosses the top/bottom plane outside the bounding box there can't be a hit. - Changed: State labels in code pointer calls must now be enclosed in quotation marks. This was done to ensure compatibility with parsers that will parse these as identifier-aware script code later. SVN r554 (trunk)
This commit is contained in:
parent
c81fe8d061
commit
3b477d7022
14 changed files with 66 additions and 12 deletions
|
@ -1,3 +1,23 @@
|
|||
October 19, 2007 (Changes by Graf Zahl)
|
||||
- Fixed: POwered up weapons with a different ready state than their base
|
||||
weapon didn't change back when the powerup expired.
|
||||
- Fixed: The powered up version of Heretic's Gauntlets missed the proper
|
||||
state assignments for Ready, Lower and Raise.
|
||||
|
||||
October 17, 2007 (Changes by Graf Zahl)
|
||||
- Fixed: The Strife player was missing its pain state.
|
||||
|
||||
October 12, 2007 (Changes by Graf Zahl)
|
||||
- Fixed: Revenant missiles couldn't home in on targets with a height lower than
|
||||
40.
|
||||
- Fixed: The code which checked for hitscan traces hitting actors from above
|
||||
and below must test whether the calculated hit position is actually inside
|
||||
the actor being checked. If it crosses the top/bottom plane outside the
|
||||
bounding box there can't be a hit.
|
||||
- Changed: State labels in code pointer calls must now be enclosed in quotation marks.
|
||||
This was done to ensure compatibility with parsers that will parse these as
|
||||
identifier-aware script code later.
|
||||
|
||||
October 8, 2007 (Changes by Graf Zahl)
|
||||
- Fixed: The code that checked hitscans entering an actor from above and below
|
||||
calculated the hit position wrong.
|
||||
|
|
|
@ -183,7 +183,7 @@ void DCajunMaster::ThinkForMove (AActor *actor, ticcmd_t *cmd)
|
|||
}
|
||||
|
||||
//Strafing.
|
||||
if (b->enemy->flags & MF3_ISMONSTER) //It's just a monster so take it down cool.
|
||||
if (b->enemy->flags3 & MF3_ISMONSTER) //It's just a monster so take it down cool.
|
||||
{
|
||||
cmd->ucmd.sidemove = b->sleft ? -SIDEWALK : SIDEWALK;
|
||||
}
|
||||
|
|
|
@ -104,7 +104,15 @@ void A_Tracer (AActor *self)
|
|||
|
||||
if (dist < 1)
|
||||
dist = 1;
|
||||
slope = (dest->z+40*FRACUNIT - self->z) / dist;
|
||||
|
||||
if (dest->height >= 56*FRACUNIT)
|
||||
{
|
||||
slope = (dest->z+40*FRACUNIT - self->z) / dist;
|
||||
}
|
||||
else
|
||||
{
|
||||
slope = (dest->z + self->height*2/3 - self->z) / dist;
|
||||
}
|
||||
|
||||
if (slope < self->momz)
|
||||
self->momz -= FRACUNIT/8;
|
||||
|
|
|
@ -1535,6 +1535,9 @@ END_DEFAULTS
|
|||
|
||||
IMPLEMENT_STATELESS_ACTOR (AGauntletsPowered, Heretic, -1, 0)
|
||||
PROP_Weapon_Flags (WIF_WIMPY_WEAPON|WIF_POWERED_UP|WIF_BOT_MELEE)
|
||||
PROP_Weapon_UpState (S_GAUNTLETUP2)
|
||||
PROP_Weapon_DownState (S_GAUNTLETDOWN2)
|
||||
PROP_Weapon_ReadyState (S_GAUNTLETREADY2)
|
||||
PROP_Weapon_AtkState (S_GAUNTLETATK2)
|
||||
PROP_Weapon_HoldAtkState (S_GAUNTLETATK2+2)
|
||||
PROP_Weapon_SisterType ("Gauntlets")
|
||||
|
|
|
@ -498,7 +498,8 @@ void AWeapon::EndPowerup ()
|
|||
{
|
||||
if (GetReadyState() != SisterWeapon->GetReadyState())
|
||||
{
|
||||
if (Owner->player->PendingWeapon == NULL)
|
||||
if (Owner->player->PendingWeapon == NULL ||
|
||||
Owner->player->PendingWeapon == WP_NOCHANGE)
|
||||
Owner->player->PendingWeapon = SisterWeapon;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -350,7 +350,14 @@ void A_Tracer2 (AActor *self)
|
|||
{
|
||||
dist = 1;
|
||||
}
|
||||
slope = (dest->z + 40*FRACUNIT - self->z) / dist;
|
||||
if (dest->height >= 56*FRACUNIT)
|
||||
{
|
||||
slope = (dest->z+40*FRACUNIT - self->z) / dist;
|
||||
}
|
||||
else
|
||||
{
|
||||
slope = (dest->z + self->height*2/3 - self->z) / dist;
|
||||
}
|
||||
if (slope < self->momz)
|
||||
{
|
||||
self->momz -= FRACUNIT/8;
|
||||
|
|
|
@ -1273,7 +1273,7 @@ FUNC(LS_Thing_Hate)
|
|||
hatee == hater || // can't hate self
|
||||
!(hatee->flags & MF_SHOOTABLE) || // can't hate nonshootable things
|
||||
hatee->health <= 0 || // can't hate dead things
|
||||
(hatee->flags & MF2_DORMANT)); // can't target dormant things
|
||||
(hatee->flags2 & MF2_DORMANT));
|
||||
}
|
||||
|
||||
if (hatee != NULL && hatee != hater && (arg2 == 0 || (hater->goal != NULL && hater->target != hater->goal)))
|
||||
|
|
|
@ -4314,7 +4314,7 @@ void PIT_CeilingRaise (AActor *thing)
|
|||
}
|
||||
P_CheckFakeFloorTriggers (thing, oldz);
|
||||
}
|
||||
else if ((thing->flags & MF2_PASSMOBJ) && !isgood && thing->z + thing->height < thing->ceilingz)
|
||||
else if ((thing->flags2 & MF2_PASSMOBJ) && !isgood && thing->z + thing->height < thing->ceilingz)
|
||||
{
|
||||
if (!P_TestMobjZ (thing) && onmobj->z <= thing->z)
|
||||
{
|
||||
|
|
|
@ -319,6 +319,10 @@ static bool PTR_TraceIterator (intercept_t *in)
|
|||
hitx = trace.x + FixedMul (Vx, dist);
|
||||
hity = trace.y + FixedMul (Vy, dist);
|
||||
hitz = StartZ + FixedMul (Vz, dist);
|
||||
|
||||
// calculated coordinate is outside the actor's bounding box
|
||||
if (abs(hitx - in->d.thing->x) > in->d.thing->radius ||
|
||||
abs(hity - in->d.thing->y) > in->d.thing->radius) return true;
|
||||
}
|
||||
else if (hitz < in->d.thing->z)
|
||||
{ // trace enters below actor
|
||||
|
@ -332,6 +336,10 @@ static bool PTR_TraceIterator (intercept_t *in)
|
|||
hitx = trace.x + FixedMul (Vx, dist);
|
||||
hity = trace.y + FixedMul (Vy, dist);
|
||||
hitz = StartZ + FixedMul (Vz, dist);
|
||||
|
||||
// calculated coordinate is outside the actor's bounding box
|
||||
if (abs(hitx - in->d.thing->x) > in->d.thing->radius ||
|
||||
abs(hity - in->d.thing->y) > in->d.thing->radius) return true;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -772,6 +772,7 @@ FString SC_TokenName (int token, const char *string)
|
|||
"'^='",
|
||||
"'|='",
|
||||
"'>>'",
|
||||
"'>>>'",
|
||||
"'<<'",
|
||||
"'++'",
|
||||
"'--'",
|
||||
|
|
|
@ -788,7 +788,9 @@ do_stop:
|
|||
if (JumpParameters.Size()==0) JumpParameters.Push(NAME_None);
|
||||
|
||||
v = -(int)JumpParameters.Size();
|
||||
FString statestring = ParseStateString();
|
||||
// This forces quotation marks around the state name.
|
||||
SC_MustGetToken(TK_StringConst);
|
||||
FString statestring = sc_String; // ParseStateString();
|
||||
const PClass *stype=NULL;
|
||||
int scope = statestring.IndexOf("::");
|
||||
if (scope >= 0)
|
||||
|
|
|
@ -37,14 +37,14 @@ ACTOR DoomPlayer : PlayerPawn
|
|||
PLAY G 4 A_Pain
|
||||
Goto Spawn
|
||||
Death:
|
||||
PLAY H 10 A_PlayerSkinCheck(AltSkinDeath)
|
||||
PLAY H 10 A_PlayerSkinCheck("AltSkinDeath")
|
||||
PLAY I 10 A_PlayerScream
|
||||
PLAY J 10 A_NoBlocking
|
||||
PLAY KLM 10
|
||||
PLAY N -1
|
||||
Stop
|
||||
XDeath:
|
||||
PLAY O 5 A_PlayerSkinCheck(AltSkinXDeath)
|
||||
PLAY O 5 A_PlayerSkinCheck("AltSkinXDeath")
|
||||
PLAY P 5 A_XScream
|
||||
PLAY Q 5 A_NoBlocking
|
||||
PLAY RSTUV 5
|
||||
|
|
|
@ -29,7 +29,7 @@ ACTOR HereticPlayer : PlayerPawn
|
|||
PLAY G 4 A_Pain
|
||||
Goto Spawn
|
||||
Death:
|
||||
PLAY H 6 A_PlayerSkinCheck(AltSkinDeath)
|
||||
PLAY H 6 A_PlayerSkinCheck("AltSkinDeath")
|
||||
PLAY I 6 A_PlayerScream
|
||||
PLAY JK 6
|
||||
PLAY L 6 A_NoBlocking
|
||||
|
@ -37,7 +37,7 @@ ACTOR HereticPlayer : PlayerPawn
|
|||
PLAY P -1
|
||||
Stop
|
||||
XDeath:
|
||||
PLAY Q 0 A_PlayerSkinCheck(AltSkinXDeath)
|
||||
PLAY Q 0 A_PlayerSkinCheck("AltSkinXDeath")
|
||||
PLAY Q 5 A_PlayerScream
|
||||
PLAY R 0 A_NoBlocking
|
||||
PLAY R 5 A_SkullPop
|
||||
|
@ -99,7 +99,7 @@ ACTOR BloodySkull : PlayerChunk
|
|||
{
|
||||
Spawn:
|
||||
BSKL A 0
|
||||
BSKL ABCDE 5 A_CheckFloor(Hit)
|
||||
BSKL ABCDE 5 A_CheckFloor("Hit")
|
||||
Goto Spawn+1
|
||||
Hit:
|
||||
BSKL F 16 A_CheckPlayerDone
|
||||
|
|
|
@ -31,6 +31,10 @@ ACTOR StrifePlayer : PlayerPawn
|
|||
Melee:
|
||||
PLAY F 6
|
||||
goto Missile
|
||||
Pain:
|
||||
PLAY Q 4
|
||||
PLAY Q 4 A_Pain
|
||||
Goto Spawn
|
||||
Death:
|
||||
PLAY H 3
|
||||
PLAY I 3 A_PlayerScream
|
||||
|
|
Loading…
Reference in a new issue