and two new functions, both of which are intended for use in conjunction with SetHUDSize:
* SetHUDClipRect(x, y, width, height[, wrapwidth]) - Set the clipping rectangle for future
HUD messages. If you do not specify <wrapwidth>, the HUD message will be layed out as
normal, but pixels outside the rectangle will not be drawn. If you specify <wrapwidth>,
then the message will be wrapped to that width. Use SetHUDClipRect(0, 0, 0, 0[, 0]) to
reset everything
back to normal.
* SetHUDWrapWidth(wrapwidth) - Sets the wrapping width for future HUD messages without
altering the clipping rectangle. If you set the wrapping width to 0, messages will wrap
to the full width of the HUD, as normal.
* HUDMSG_NOWRAP - A HUDMessage() flag that disables wrapping for one message. It is
functionally equivalent to SetHUDWrapWidth(0x7FFFFFFF), except that it only affects the
message it's attached to.
SVN r3960 (trunk)
be no conflicts with recently-added named arguments for spawnable things on UDMF maps.
- Change the SpawnableThings array into a map, so there is no longer any particular upper limit on an actor's SpawnID. Also fixes a possible exploit, since an actor's SpawnID was never checked to make sure it was within range.
SVN r3959 (trunk)
OPL2; OPLwriteReg() will now do nothing when called to act on a chip that doesn't exist. This
is so that it can use the second half of a single OPL3.
SVN r3949 (trunk)
but only supports three pan positions and not the full 127 MIDI pan positions.
- Added opl_core cvar to select emulator core. 0 is MAME and 1 is DOSBox.
- Added DOSBox's LGPL OPL core, distantly related to one adlibemu.c written by Ken Silverman
(not to be confused with the ancient MAME-derived and GPL-licensed core also found in DOSBox).
I believe this corresponds to their "compat" emulator, but I'm not sure.
SVN r3946 (trunk)
really long names to -record. On the other hand, if it's long enough to overflow the old
buffer, it'll probably fail to be created now because the name is too long for the OS
functions.
SVN r3936 (trunk)
Full stereo panning for the MIDI player. (The raw OPL players are unaffected.) To get the
mono output back, you can set opl_stereo to false.
- Changed SoftSynthMIDIDevice::OpenStream() to allocate the same number of samples for stereo
and mono streams.
SVN r3929 (trunk)
that it can't be used as an infinite source of ammo when sv_weaponstay is true).
- Fixed: WeaponGiver should not remember the given weapon after it is picked up (to avoid giving
a weapon owned by one player to a different player when sv_weaponstay is true).
SVN r3886 (trunk)
passes doubles to functions anyway.
- Fixed: FRemapTable::AddDesaturation() excluded the final entry from the loop. Also, it was
less forgiving than AddColorRange, in that it did not support ranges in descending order.
SVN r3875 (trunk)
defaults to 200. Setting it to 0 will restore the previous behavior of having no frame rate
limit. Note that vid_maxfps 35 is NOT the same as cl_capfps 1. cl_capfps caps the frame rate
by tying the video update directly to the game timer. With vid_maxfps 35, the video update and
game timer are running on separate timers, and results will not be as good as with cl_capfps 1,
which uses only one timer.
SVN r3872 (trunk)
I could be clever and have the beggar chase after you some after you attack him, with a
random chance to cease pursuit. However, that didn't look much different from his normal
wandering animation, and he usually gave up before getting anywhere near you, so it was
kind of pointless. I kept the action functions around anyway, since they're simple things that
somebody else might find useful.
- Added a melee range check to A_SentinelRefire for actors without missile states. This fixes
Strife's Beggar trying to attack you when you're nowhere near him.
SVN r3863 (trunk)
and RTF_NOTMISSILE so that you can use A_Explode and A_RadiusThrust with non-missiles without
them telling P_RadiusAttack() that the target is the source.
SVN r3860 (trunk)
to put the console up and restore sound before the player days. Needed for actors that make
noise on the first tic of their death. (e.g. Heretic's)
SVN r3859 (trunk)
POSS A 10 A_Look
You can define it as:
POSS A random(10,20) A_Look
and the state will last a random duration between 10 and 20 tics, inclusive.
SVN r3847 (trunk)
so when you return to it without leaving the hub, it will be as if you had never set foot in
it. RememberState is provided to turn this flag off.
SVN r3846 (trunk)
* GruntSpeed: The minimum speed a player must be falling at the time of landing to play *grunt.
* FallingScreamSpeed: When a player is falling within this range of speeds, they will play *falling.
SVN r3829 (trunk)
parameter added to the end of the HudMessage command's existing parameter lists. So for
HUDMSG_PLAIN, it comes after the hold time. For HUDMSG_FADEOUT and HUDMSG_TYPEONE, it comes
after the fade time. And for HUDMSG_FADEINOUT, it comes after the out time.
- Alpha is a fixed point number between 0.0 and 1.0.
- Example:
Without alpha (unchanged from before):
HudMessage(s:"Some text", HUDMSG_PLAIN, 0, CR_UNTRANSLATED, 0.5, 0.5, 3.0);
With alpha (alpha is added to the end):
HudMessage(s:"Some text", HUDMSG_PLAIN, 0, CR_UNTRANSLATED, 0.5, 0.5, 3.0, 0.5 /* this is the alpha */);
SVN r3825 (trunk)
* HUDMSG_NOTWITH3DVIEW : This message does not appear when the 3D view is active.
* HUDMSG_NOTWITHFULLMAP : This message does not appear when the fullscreen automap is active.
* HUDMSG_NOTWITHOVERLAYMAP : This message does not appear when the overlay automap is active.
These flags may be combined, so for example: HUDMSG_NOTWITHFULLMAP | HUDMSG_NOTWITHOVERLAYMAP
would prevent the message from appearing if any form of automap is active.
- Added HUD message layers, which are ORed into the type field:
* HUDMSG_LAYER_OVERHUD : This is the default and standard behavior. The message appear on
top of most HUD elements. This definition is just included for completeness' sake; you
don't need to explicitly use it.
* HUDMSG_LAYER_UNDERHUD : The message appears underneath other HUD elements, such as the status bar.
* HUDMSG_LAYER_OVERMAP : The message appears on top of the fullscreen automap. At the moment,
this layer is functionally equivalent to using the flags HUDMSG_NOTWITH3DVIEW | HUDMSG_NOTWITHOVERLAYMAP.
However, if Blzut3 decides to implement support for drawing the automap permanently on a
second screen, messages on this layer will move to that screen with the automap and be permanently
visible as long as the map is visible on that other screen.
These are not flags, so for example HUDMSG_LAYER_UNDERHUD | HUDMSG_LAYER_OVERHUD is not valid.
SVN r3821 (trunk)
sounds queued up while the Channel Group Target Unit is inactive will all play at the same time
once the unit is made active. To avoid this, it is now only deactivated when the gamestate is
GS_LEVEL. Otherwise, it just gets muted. Fixes http://forum.zdoom.org/viewtopic.php?f=2&t=33592 "Strife voices overlap"
SVN r3818 (trunk)
player bars on the scoreboard.
- Fixed: Having +showscores down during the intermission would draw both the regular intermission
scoreboard plus the HUD scoreboard.
- Fixed: hu_scores used the player icon's unscaled width when calculating sizes.
SVN r3815 (trunk)
- Fixed: When locating WhiteIndex and BlackIndex in the palette index 0 was skipped.
- Fixed: When filling an area black for vid_fps or pillarbox/letterbox use GPalette.BlackIndex instead of assuming palette index 0 is black.
SVN r3807 (trunk)
is supposed to be canceled by sysex events and meta events. This confused FMOD when the
resulting song used used running status right after these events.
SVN r3803 (trunk)
it's far too early to be used with I_FatalError. (But since this should always be available on
every Windows version after 95, this should be a non-issue.)
- Make unknown OS versions default to Windows 2000 instead of Windows 95.
SVN r3802 (trunk)
is more efficient than ThingCount(tid, T_NONE), because it only needs to check for one actor
with the TID and not all of them. It also makes no distinction between dead things and live
things like ThingCount does.
- Added ACS function UniqueTID(tid, limit): It returns a new TID that is not currently used by
any actors. It has two modes of operation. If tid is non-zero, then it checks TIDs one-by-one
starting at the given tid until if finds a free one. If tid is zero, then it returns a completely
random TID. If limit is non-zero, then it will only check that many times for a free TID, so
it might not find a free one. If no free TID is found, 0 is returned. If limit is zero, then
the search is effectively unlimited.
SVN r3798 (trunk)
Goto State1
State1:
Goto State2
State2:
because when "Goto State1" is processed, State1 is still pointing at the string "State2" rather than State2's state, so the goto will end up pointing at a string (which will soon be
freed from memory) instead of at an actual state.
SVN r3784 (trunk)
pickup an item at all. (For instance, normally players in Hexen can still pick up other players'
weapons for ammo. With this flag set, they cannot do that either.)
SVN r3751 (trunk)