mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-11-10 23:01:59 +00:00
- Added the A_JumpSet function for what seems to be a fairly common scenario.
It is like A_Jump, except it accepts up to 20 jump targets. The jump probability is still the first parameter and controls whether any jump is taken at all; use 256 if you always want to jump. If a jump is taken, then one of the jump targets will be chosen at random, with each target having an equal chance of being chosen. - Fixed: The unfreeze ccmd was not multiplayer-safe. And I renamed it to thaw, since it has nothing to do with the freeze ccmd. SVN r360 (trunk)
This commit is contained in:
parent
0d5e3cf97e
commit
2efba66558
6 changed files with 46 additions and 2 deletions
|
@ -1,3 +1,13 @@
|
||||||
|
October 23, 2006
|
||||||
|
- Added the A_JumpSet function for what seems to be a fairly common scenario.
|
||||||
|
It is like A_Jump, except it accepts up to 20 jump targets. The jump
|
||||||
|
probability is still the first parameter and controls whether any jump is
|
||||||
|
taken at all; use 256 if you always want to jump. If a jump is taken, then
|
||||||
|
one of the jump targets will be chosen at random, with each target having
|
||||||
|
an equal chance of being chosen.
|
||||||
|
- Fixed: The unfreeze ccmd was not multiplayer-safe. And I renamed it to thaw,
|
||||||
|
since it has nothing to do with the freeze ccmd.
|
||||||
|
|
||||||
October 22, 2006 (Changes by Graf Zahl)
|
October 22, 2006 (Changes by Graf Zahl)
|
||||||
- Added MF5_PIERCEARMOR flag that allows damaging objects that aren't
|
- Added MF5_PIERCEARMOR flag that allows damaging objects that aren't
|
||||||
affected by armor.
|
affected by armor.
|
||||||
|
|
|
@ -817,7 +817,11 @@ CCMD(changesky)
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
CCMD(unfreeze)
|
CCMD(thaw)
|
||||||
{
|
{
|
||||||
if (who != NULL) who->player->cheats &= ~(CF_FROZEN|CF_TOTALLYFROZEN);
|
if (CheckCheatmode())
|
||||||
|
return;
|
||||||
|
|
||||||
|
Net_WriteByte (DEM_GENERICCHEAT);
|
||||||
|
Net_WriteByte (CHT_CLEARFROZENPROPS);
|
||||||
}
|
}
|
||||||
|
|
|
@ -183,6 +183,7 @@ enum ECheatCommand
|
||||||
CHT_DONNYTRUMP,
|
CHT_DONNYTRUMP,
|
||||||
CHT_LEGO,
|
CHT_LEGO,
|
||||||
CHT_RESSURECT, // [GRB]
|
CHT_RESSURECT, // [GRB]
|
||||||
|
CHT_CLEARFROZENPROPS,
|
||||||
};
|
};
|
||||||
|
|
||||||
void StartChunk (int id, BYTE **stream);
|
void StartChunk (int id, BYTE **stream);
|
||||||
|
|
|
@ -399,6 +399,11 @@ void cht_DoCheat (player_t *player, int cheat)
|
||||||
cht_Give (player, "UpgradeAccuracy");
|
cht_Give (player, "UpgradeAccuracy");
|
||||||
msg = "you got the stuff!";
|
msg = "you got the stuff!";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case CHT_CLEARFROZENPROPS:
|
||||||
|
player->cheats &= ~(CF_FROZEN|CF_TOTALLYFROZEN);
|
||||||
|
msg = "Frozen player properties turned off";
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!*msg) // [SO] Don't print blank lines!
|
if (!*msg) // [SO] Don't print blank lines!
|
||||||
|
|
|
@ -457,6 +457,7 @@ ACTOR(PlaySoundEx)
|
||||||
ACTOR(StopSoundEx)
|
ACTOR(StopSoundEx)
|
||||||
ACTOR(SeekerMissile)
|
ACTOR(SeekerMissile)
|
||||||
ACTOR(Jump)
|
ACTOR(Jump)
|
||||||
|
ACTOR(JumpSet)
|
||||||
ACTOR(ExplodeParms)
|
ACTOR(ExplodeParms)
|
||||||
ACTOR(CallSpecial)
|
ACTOR(CallSpecial)
|
||||||
ACTOR(CustomMissile)
|
ACTOR(CustomMissile)
|
||||||
|
@ -677,6 +678,7 @@ AFuncDesc AFTable[]=
|
||||||
FUNC(A_StopSoundEx, "T" )
|
FUNC(A_StopSoundEx, "T" )
|
||||||
FUNC(A_SeekerMissile, "XX" )
|
FUNC(A_SeekerMissile, "XX" )
|
||||||
FUNC(A_Jump, "XL" )
|
FUNC(A_Jump, "XL" )
|
||||||
|
FUNC(A_JumpSet, "XLLllllllllllllllllll")
|
||||||
FUNC(A_CustomMissile, "MXXxxx" )
|
FUNC(A_CustomMissile, "MXXxxx" )
|
||||||
FUNC(A_CustomBulletAttack, "XXXXmx" )
|
FUNC(A_CustomBulletAttack, "XXXXmx" )
|
||||||
FUNC(A_CustomRailgun, "Xxccxxx" )
|
FUNC(A_CustomRailgun, "Xxccxxx" )
|
||||||
|
|
|
@ -413,6 +413,28 @@ void A_Jump(AActor * self)
|
||||||
if (pStateCall != NULL) pStateCall->Result=false; // Jumps should never set the result for inventory state chains!
|
if (pStateCall != NULL) pStateCall->Result=false; // Jumps should never set the result for inventory state chains!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
// State jump function
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
void A_JumpSet(AActor * self)
|
||||||
|
{
|
||||||
|
FState * CallingState;
|
||||||
|
int index=CheckIndex(21, &CallingState);
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (index>=0 && pr_cajump() < clamp<int>(EvalExpressionI (StateParameters[index], self), 0, 256))
|
||||||
|
{
|
||||||
|
// Find out how many targets are actually used
|
||||||
|
for (i = 0; i < 20 && StateParameters[index+i+1] != 0; ++i)
|
||||||
|
{ }
|
||||||
|
DoJump(self, CallingState, StateParameters[index + (pr_cajump() % i) + 1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pStateCall != NULL) pStateCall->Result=false; // Jumps should never set the result for inventory state chains!
|
||||||
|
}
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
// State jump function
|
// State jump function
|
||||||
|
|
Loading…
Reference in a new issue