* Updated to ZDoom r3350:

- Fixed compilation with FMOD 4.38+. The removal of hardware voices and EAX was a fairly major change, so I'm making no provisions for using older FMOD DLLs when compiled with the 4.38 API. However, sound positioning is still broken like in 4.28, so you are recommended to continue building with 4.26. Also, the Freeverb-based DSP unit is no longer present in FMOD, so the underwater effect is currently unavailable when using 4.38 until I can figure out how to make it work with the SFX Reverb unit instead. (And on that topic, the Freeverb DSP was officially only for stereo outputs, so I really shouldn't have been using it in the first place.)
- Since I would like to eventually figure out the sound positioning issues with the FMODs, the following have been added:
  # snd_drawoutput now labels its outputs with the speakers they represent.
  # DCanvas::DrawTextA was added as an alias for DrawText, since the Windows headers #define DrawText to a Unicode/non-Unicode variant.
  # The loopsound console command was added to spawn an actor at the player's location and have it loop a sound infinitely.
  Hopefully I can figure it out. FMOD's 3D example works, so I assume the problem lies with my code, though I don't really know where to begin looking for the problem.
- Fixed: Line type 49 was wrong for all games. Fixed by adding a new Ceiling_CrushAndRaiseDist special.
- Fixed: If an episode skips the skill menu, it should also skip the confirm skill menu   if the default skill requests confirmation.
- Fixed: Episodes with NoSkillMenu defined had their own idea of default skill that differed   from episodes with skill menus (and completely ignored whichever skill is explicitly defined   as the default skill).
- Remove all restrictions on what you can do with tags as line special arguments in xlat. Something like 「(tag & 5) + (tag & 2) / 2」 is now a valid argument for a standard line translation.
- Added modulus to FParseContext/xlat.
- Fixed: Division of tag arguments for xlat was in the wrong order.
- Added more tag operators for xlat: * / & | ^
- Improve tag support for xlat: Any combination of arguments can now be tags, and you can add (or subtract) a constant to them. If you do wish to add a constant, tag must come first. e.g. tag+3 is good, but 3+tag will not work. (As a bonus, the parser is simpler, too.)
- Fixed: Totally freezing a player did not ignore crouch toggling.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1283 b0f79afe-0144-0410-b225-9a4edf0717df
This commit is contained in:
gez 2012-02-20 12:02:36 +00:00
parent e90377ae9a
commit e6e6f45a91
27 changed files with 609 additions and 338 deletions

View file

@ -2126,9 +2126,7 @@ void P_PlayerThink (player_t *player)
player->mo->flags &= ~MF_JUSTATTACKED;
}
bool totallyfrozen = (player->cheats & CF_TOTALLYFROZEN || gamestate == GS_TITLELEVEL ||
(( level.flags2 & LEVEL2_FROZEN ) && ( player == NULL || !( player->cheats & CF_TIMEFREEZE )))
);
bool totallyfrozen = P_IsPlayerTotallyFrozen(player);
// [RH] Being totally frozen zeros out most input parameters.
if (totallyfrozen)
@ -2723,3 +2721,10 @@ void P_EnumPlayerColorSets(FName classname, TArray<int> *out)
}
}
bool P_IsPlayerTotallyFrozen(const player_t *player)
{
return
gamestate == GS_TITLELEVEL ||
player->cheats & CF_TOTALLYFROZEN ||
((level.flags2 & LEVEL2_FROZEN) && !(player->cheats & CF_TIMEFREEZE));
}