mirror of
https://github.com/ZDoom/gzdoom-last-svn.git
synced 2025-06-01 09:41:58 +00:00
- Fixed: Items which should stay but had an IF_ALWAYSPICKUP flag were removed.
- Fixed: The pickup flash must only play when an item is picked up so the correct place to spawn it is in AInventory::Touch, not in AInventory::GoAway. git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@193 b0f79afe-0144-0410-b225-9a4edf0717df
This commit is contained in:
parent
f1b237d90f
commit
f71f47eaab
4 changed files with 60 additions and 20 deletions
|
@ -1,8 +1,35 @@
|
|||
October 26, 2008 (Changes by Graf Zahl)
|
||||
- Added read and write barriers to the actor pointer in the sound channel
|
||||
structure.
|
||||
- Fixed: Items which should stay but had an IF_ALWAYSPICKUP flag were removed.
|
||||
- Fixed: The pickup flash must only play when an item is picked up so the
|
||||
correct place to spawn it is in AInventory::Touch, not in AInventory::GoAway.
|
||||
- Fixed: A_Jump didn't properly determine a state's owner anymore when called
|
||||
from weapons.
|
||||
|
||||
October 25, 2008 (Changes by Graf Zahl)
|
||||
- Added NULL checks to all places where class names are passed as DECORATE
|
||||
parameters.
|
||||
- All DECORATE parameters are passed as expressions now. This change allows
|
||||
for compile time checks of all class names being used in DECORATE so many
|
||||
incorrect definitions may output warnings now.
|
||||
|
||||
October 23, 2008 (Changes by Graf Zahl)
|
||||
- Changed: S_StopChannel now resets the actor's sound flags. The previous bug
|
||||
made me think that delaying this until FMod calls the end of sound callback
|
||||
may simply be too late.
|
||||
- Fixed: The high level sound code must not rely on FMod immediately returning
|
||||
the sound channel data when a sound is being stopped. This caused
|
||||
an endless loop when changing levels with Strife's Flamethrower active.
|
||||
|
||||
October 22, 2008 (Changes by Graf Zahl)
|
||||
- Changed DECORATE sound and color parameters to use expressions.
|
||||
|
||||
October 21, 2008 (Changes by Graf Zahl)
|
||||
- Added a proper function parser to the expression evaluator and converted
|
||||
sin/cos and action specials to use it. The old evaluator is gone now.
|
||||
- fixed some GCC problems with autosegs.
|
||||
|
||||
October 20, 2008
|
||||
- Game time is now frozen during screen wipes. This obsoletes the DEM_WIPEON
|
||||
and DEM_WIPEOFF commands. Fixes multimap demos desyncing when played back
|
||||
|
|
|
@ -553,19 +553,11 @@ bool AInventory::GoAway ()
|
|||
// Dropped items never stick around
|
||||
if (flags & MF_DROPPED)
|
||||
{
|
||||
if (PickupFlash != NULL)
|
||||
{
|
||||
Spawn(PickupFlash, x, y, z, ALLOW_REPLACE);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!ShouldStay ())
|
||||
{
|
||||
if (PickupFlash != NULL)
|
||||
{
|
||||
Spawn(PickupFlash, x, y, z, ALLOW_REPLACE);
|
||||
}
|
||||
Hide ();
|
||||
if (ShouldRespawn ())
|
||||
{
|
||||
|
@ -893,8 +885,13 @@ void AInventory::Touch (AActor *toucher)
|
|||
toucher = toucher->player->mo;
|
||||
}
|
||||
|
||||
if (!CallTryPickup (toucher))
|
||||
return;
|
||||
// This is the only situation when a pickup flash should ever play.
|
||||
if (!CallTryPickup (toucher)) return;
|
||||
|
||||
if (PickupFlash != NULL && !ShouldStay())
|
||||
{
|
||||
Spawn(PickupFlash, x, y, z, ALLOW_REPLACE);
|
||||
}
|
||||
|
||||
if (!(ItemFlags & IF_QUIET))
|
||||
{
|
||||
|
@ -1264,7 +1261,7 @@ bool AInventory::CallTryPickup (AActor *toucher)
|
|||
{
|
||||
bool res = TryPickup(toucher);
|
||||
|
||||
if (!res && (ItemFlags & IF_ALWAYSPICKUP))
|
||||
if (!res && (ItemFlags & IF_ALWAYSPICKUP) && !ShouldStay())
|
||||
{
|
||||
res = true;
|
||||
GoAwayAndDie();
|
||||
|
|
|
@ -1637,9 +1637,13 @@ void M_NewGame(int choice)
|
|||
}
|
||||
else if (EpiDef.numitems <= 1)
|
||||
{
|
||||
if (EpisodeNoSkill[0])
|
||||
if (AllSkills.Size() == 1)
|
||||
{
|
||||
M_ChooseSkill(2);
|
||||
M_ChooseSkill(0);
|
||||
}
|
||||
else if (EpisodeNoSkill[0])
|
||||
{
|
||||
M_ChooseSkill(AllSkills.Size() == 2? 1:2);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1823,12 +1827,16 @@ void M_Episode (int choice)
|
|||
|
||||
epi = choice;
|
||||
|
||||
if (EpisodeNoSkill[choice])
|
||||
if (AllSkills.Size() == 1)
|
||||
{
|
||||
M_ChooseSkill(2);
|
||||
M_ChooseSkill(0);
|
||||
return;
|
||||
}
|
||||
else if (EpisodeNoSkill[choice])
|
||||
{
|
||||
M_ChooseSkill(AllSkills.Size() == 2? 1:2);
|
||||
return;
|
||||
}
|
||||
|
||||
M_StartupSkillMenu(NULL);
|
||||
}
|
||||
|
||||
|
@ -1858,13 +1866,17 @@ static void SCClass (int option)
|
|||
{
|
||||
M_SetupNextMenu (&EpiDef);
|
||||
}
|
||||
else if (AllSkills.Size() == 1)
|
||||
{
|
||||
M_ChooseSkill(0);
|
||||
}
|
||||
else if (!EpisodeNoSkill[0])
|
||||
{
|
||||
M_StartupSkillMenu(playerclass);
|
||||
}
|
||||
else
|
||||
{
|
||||
M_ChooseSkill(2);
|
||||
M_ChooseSkill(AllSkills.Size() == 2? 1:2);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1886,9 +1898,13 @@ static void M_ChooseClass (int choice)
|
|||
{
|
||||
M_SetupNextMenu (&EpiDef);
|
||||
}
|
||||
else if (AllSkills.Size() == 1)
|
||||
{
|
||||
M_ChooseSkill(0);
|
||||
}
|
||||
else if (EpisodeNoSkill[0])
|
||||
{
|
||||
M_ChooseSkill(2);
|
||||
M_ChooseSkill(AllSkills.Size() == 2? 1:2);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -3,5 +3,5 @@
|
|||
// This file was automatically generated by the
|
||||
// updaterevision tool. Do not edit by hand.
|
||||
|
||||
#define ZD_SVN_REVISION_STRING "1276"
|
||||
#define ZD_SVN_REVISION_NUMBER 1276
|
||||
#define ZD_SVN_REVISION_STRING "1278"
|
||||
#define ZD_SVN_REVISION_NUMBER 1278
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue