- Fixed: Decals could spread to walls which had a decal-less texture or
were flagged not to have decals.
- Fixed: DBaseDecal/DImpactDecal::CloneSelf never checked the return value
from their StickToWall call and left unplaced decals behind if that happened.
- Reintroduced Doom.exe's player_t::usedown variable so that respawning a
player does not immediately activate switches. oldbuttons was not usable
for this. This also required that CopyPlayer preserves this info.
- Fixed: When restarting the music there was a NULL pointer check missing
so it crashed when the game was started wi
- Fixed: If the Use key is used to respawn the player it must be cleared
so that it doesn't trigger any subsequent actions after respawning.
- Fixed: Resurrecting a monster did not restore flags5 and flags6.
- Fixed: Projectiles which killed a non-monster were unable to determine
what precisely they hit because MF_CORPSE is only valid for monsters.
A new flag, MF6_KILLED that gets set for all objects that die, was added
for this case.
- Added a generic A_Weave function that exposes all possible options of
A_BishopMissileWeave and A_CStaffMissileSlither. These 2 functions are
no longer needed from DECORATE and therefore deprecated.
- The options menu no longer scales up so quickly, so it can fit wider text
onscreen. In addition, it now uses the whole height available to it. Also,
at lower resolutions, items on the compatibility options menu now cut off
the beginning of the option label rather than the option setting, making
this menu useable where previously it was not.
- Added a channel parameter to the sector overload of SN_StopSequence() so
it can be properly paired with calls to SN_StartSequence().
- Fixed: P_CheckPlayerSprites() ignored the MF4_NOSKIN flag. It now also sets
the X scale, so switching skins while morphed does not produce weird
stretching upon unmorphing.
- Fixed: Calling S_ChangeMusic() with the same song but a different looping
flag now restarts the song so that the new looping setting can be applied.
(This was easier than modifying every music handler to support modifying
loop changes on the fly, which seems like overkill.)
- Fixed: savepatchsize was declared incorrectly in d_dehacked.cpp:DoInclude().
- Changed AFastProjectile::Effect() so that it sets the spawned trail to face
same direction as the projectile.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@672 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: Morphed players tried endlessly to switch to a weapon they picked up.
- fixed: P_DamageMobj just set an ice corpse's velocity to 0 to make it shatter.
But that's insufficient because it doesn't factor in any subsequent velocity
change that happens between the damaging and the next call to A_FreezeDeathChunks.
- fixed: The TimeFreezer did not freeze other players' controls in a
multiplayer game.
- fixed: DECORATE's 'gravity' property incorrectly messed around with the
NOGRAVITY flag.
- fixed: Hitscan attacks didn't check the puff's replacement for damage types.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@661 b0f79afe-0144-0410-b225-9a4edf0717df
- Added a DMG_NO_FACTOR flag for P_DamageMobj(). A_KillChildren, A_KillMaster,
and A_KillSiblings now use it.
- Added a damage type parameter to A_KillChildren, A_KillMaster, and
A_KillSiblings.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@658 b0f79afe-0144-0410-b225-9a4edf0717df
- fixed: Sector height was wrong for sectors that have a slope transfer for
a horizontal plane.
- better error reporting for shader compile errors.
Update to ZDoom r1942:
- Changes to both A_MonsterRail() and A_CustomRailgun(): Save actor's pitch,
use a larger aiming range, ignore non-targets in P_AimLineAttack(), and
aim at the target anyway even if P_AimLineAttack() decides it has no
chance of hitting.
- Added another parameter to P_AimLineAttack(): A target to be aimed at. If
this is non-NULL, then all actors between the shooter and the target will
be ignored.
- Added new sound sequence ACS functions:
SoundSequenceOnActor(int tid, string seqname);
SoundSequenceOnSector(int tag, string seqname, int location);
SoundSequenceOnPolyobj(int polynum, string seqname);
SoundSequenceOnSector takes an extra parameter that specifies where in the
sector the sound comes from (floor, ceiling, interior, or all of it). See
the SECSEQ defines in zdefs.acs.
- Fixed: R_RenderDecal() must save various Wall globals, because the originals
may still be needed. In particular, when drawing a seg with a midtexture is
split by foreground geometry, the first drawseg generated from it will have
the correct WallSZ1,2 values, but subsequent ones will have whatever
R_RenderDecal() left behind. These values are used to calculate the upper
and lower bounds of the midtexture. (Ironically, my work to Build-ify things
had done away with these globals, but that's gone now.)
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@581 b0f79afe-0144-0410-b225-9a4edf0717df
These are fully inheritable by subclasses unlike lights defined in GLDEFS.
The light itself still needs to defined the old way in GLDEFS though. It's only the
attachment that can now be done in DECORATE.
Update to ZDoom r1935:
- Removed the Actor uservar array and replaced it with user-defined variables.
A_SetUserVar/SetUserVariable/GetUserVariable now take a variable name
instead of an array index. A_SetUserArray/SetUserArray/GetUserArray
have been added to access elements in user-defined arrays.
- Rewrote wide sky texture scaling again. This time, it should work for any
size textures at any scale. I also tried doing sky scrolling on the sky
cylinder, but that didn't look so good, so I left it in screen space.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@577 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: 3DMidtex checks were treating the Null texture as a valid texture.
- Fixed: The rail sound's position was not clamped to the actual range between
the trail's start and end point.
- Fixed: Explosions no longer caused splashes.
- Fixed: Copying translations to lower decals had the shade color check wrong.
- Fixed: Waggling floors did not moved attached geometry.
- Cleaned up p_floor.cpp so that related parts of the code are grouped together.
- fixed: The translation addition broke parsing of palette index based translations.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@554 b0f79afe-0144-0410-b225-9a4edf0717df
- added 'defaultterrain' option to terrain parser for mods that want to have
a different default terrain than a generic solid surface.
- added format char processing to A_Print(Bold) and all printable messages
that can be defined in DECORATE.
- Fixed: The railgun code ignored MF3_ALWAYSPUFF.
- added desaturated translations.
- added optional state parameters to A_ReFire and A_GunFlash and A_CountdownArg.
- added ACS CheckActorClass function
- fixed: When a blasted actor collided with another one this other actor's
DONTBLAST flag was not checked.
- added a global DamageFactor actor property. All damage this actor takes is multiplied
by this factor in addition to damage type specific damage factors.
- added better earthquake functions for ACS and DECORATE.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@549 b0f79afe-0144-0410-b225-9a4edf0717df
- Added Gez's seeker missile submission.
- Added Gez's thing activation submission.
- added a NULL pointer check to fog spawning in unmorphing code.
- fixed: frozen corpses need to be treated as solid by z-movement code.
- fixed: AAmbientSound::Serialize was adjusting its timer value for savegames
even when it was set to a 'don't check' value.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@539 b0f79afe-0144-0410-b225-9a4edf0717df
- added PinkSilver's A_Respawn enhancement patch.
- added RandomSpawner update from Gez's experimental build.
- added thing activation types for BUMPSPECIAL and USESPECIAL. Also added
a new ClearSpecial flag to the activation type.
- added MBF's code for dogs jumping down, controlled by the MF6_JUMPDOWN
flag.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@457 b0f79afe-0144-0410-b225-9a4edf0717df
fixed: The Dehacked flags parser fix from May 31 (r1624) was undone by
yesterday's additions. Changed it so that the parser first checks for
the presence of a '-' sign before deciding whether to use strtol or
strtoul to convert the string into a number.
- Added PinkSilver's A_LookEx fix.
- added resources needed for MBF support.
- removed unused score items from DECORATE file.
- Fixed: Argument count for UsePuzzleItem was wrong.
- Added a few things from Gez's experimental build:
* MBF Dehacked emulation but removed the COMPATF_MBFDEHACKED flag because
it wouldn't work and is more or less useless anyway.
* MBF's dog (definition only, no sprites yet.)
* User variables. There's an array of 10. They can be set and checked in
both DECORATE and ACS.
* Made the tag name changeable but eliminated the redundancy of having
both the meta property and the individual actor's one. Having one is
fully sufficient. TO BE FIXED: Names are case insensitive but this
should better be case sensitive. Unfortunately there's currently nothing
better than FName to store a string inside an actor without severely
complicating matters. Also bumped savegame version to avoid problems
with this change.
* MBF grenade and bouncing code.
* several compatibility options.
* info CCMD to print extended actor information (not fully implemented yet)
* summonmbf CCMD.
* Beta BFG code pointer (but not the related missiles yet.)
* PowerInvisibility enhancements.
* ScoreItem with one significant change: Added a score variable that can be
checked through ACS and DECORATE. The engine itself will do nothing with it.
* Nailgun option for A_Explode.
* A_PrintBold and A_Log.
* A_SetSpecial.
* Beta Lost Soul (added DoomEdNum 9037 to it)
* A_Mushroom extensions
* Vavoom compatible MAPINFO keynames.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@452 b0f79afe-0144-0410-b225-9a4edf0717df
- Added directory detection to the -file parameter. This obsoletes -dir, so
that parameter is now gone.
- Removed automatic ".wad" appending from FWadCollection::InitMultipleFiles()
since it isn't needed and prevented files without extensions from being
loaded. D_AddFile() already takes care of adding the extension if the
name as-given does not exist.
- Fixed: Loading single files did not print a newline in the startup text.
- Fixed: A_JumpIf(InTarget)Inventory jumped if the check amount was greater
than the item's max amount and the item was maxed.
- Fixed: Some dmadds wads used zero-length sprites as placeholders. When you
ran dmadds to combine it with the IWAD's sprites, they would be replaced by
the IWAD's sprites, so when loading such wads, we should ignore those as
valid sprites. (Thanks to entryway for finding this.) See 22ventry's
22sprite.wad for an example.
- Replaced the use of autoconf's WORDS_BIGENDIAN with __BIG_ENDIAN__, since
latter comes predefined by GCC.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@433 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: The first lighting plane added to a light stack had the bOverlaps
flag set, causing it to be ignored during rendering. Why this didn't cause
more trouble, I don't know.
- Fixed: The UDMF parser passed the wrong value for "default alpha" for
TranslucentLine to P_FinishLoadingLineDef().
- Fixed: genStringEnter mode acted on key up events rather than key repeat
events.
- Fixed: paletted texture composition with part translucent patches
did not work.
- Fixed: A_SorcOffense2 depended on args being bytes and overflowing.
- Fixed: Even though P_DamageMobj checked an attack's originator
for MF2_NODMGTHRUST the same check was missing from P_RadiusAttack.
- Fixed: A_MinotaurRoam should not assume without check that it was
called by a MinotaurFriend.
- Fixed: The Minotaur declared A_MntrFloorFire which it did not use.
- Fixed: All Spawnspot functions did not check for a spot tid of 0 as
the script's activator.
- Fixed: Friendly monsters ignored team association of their owning
players.
- Fixed: The pause sprite was not centered correctly when it was a scaled
graphic.
- Fixed: P_TestMobjZ() needs THRUSPECIES and THRUACTORS checks, too.
- Fixed: The UDMF loader did not initialize the sectors' sectornum property.
- Fixed: The true color texture compositing code did not clip the edges
of multipatch textures used as patches on other multipatch textures.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@425 b0f79afe-0144-0410-b225-9a4edf0717df
- Added A_Mushroom compatibility option for Dehacked.
- Added Gez's submission for interhubamount DECORATE property.
- Fixed: The big endian version of PalEntry did not add the DWORD d field.
- Fixed: TObjPtr did not use a union to map its 2 pointers together.
- Added a compatibility mode for A_Mushroom. For DECORATE it is an additional
parameter but to force it for Dehacked mods some minor hacks using the
Misc1 variable were needed.
- Moved the terget->velz assignment to the end of A_VileAttack to remove the
influence of vertical thrust from the radius attack, since ZDoom does
explosions in three dimensions, but Doom only did it in two.
- Fixed: The last three parameters to A_VileAttack had their references off
by one. Most notably as a result, the blast radius was used as the thrust,
so it sent you flying far faster than it should have.
- Restored the reactiontime countdown for A_SpawnFly, since some Dehacked
mod could conceivable rely on it. The deadline is now kept in special2
and used in preference as long as it is non-zero.
- Removed -fno-strict-aliasing from the GCC flags for ZDoom and fixed the
issues that caused its inclusion. Is an optimized GCC build any faster
for being able to use strict aliasing rules? I dunno. It's still slower
than a VC++ build.
I did run into two cases where TAutoSegIterator caused intractable problems
with breaking strict aliasing rules, so I removed the templating from it,
and the caller is now responsible for casting the probe value from void *.
- Removed #include "autosegs.h" from several files that did not need it
(in particular, dobject.h when not compiling with VC++).
- gdtoa now performs all type aliasing through unions. -Wall has been added
to the GCC flags for the library to help verify this.
- Changed A_SpawnFly to do nothing if reactiontime is 0. Reactiontime was
originally a counter, so if it started at 0, A_SpawnFly would effectively
never spawn anything. Fixes Dehacked patches that use A_SpawnSound to
play a sound without shooting boss cubes, since it also calls A_SpawnFly.
- Joystick devices now send key up events for any buttons that are held
down when they are destroyed.
- Changed the joystick enable-y menu items to be nonrepeatable so that you
can't create several device scans per second. Changing them with a
controller is also disabled so that you can't, for example, toggle XInput
support using an XInput controller and have things go haywire when the
game receives an infinite number of key down events when the controller
is reinitialized with the other input system.
- Changed menu input to use a consolidated set of buttons, so most menus
can be navigated with a controller as well as a keyboard.
- Changed the way that X/Y analog axes are converted to digital axes.
Previously, this was done by checking if each axis was outside its deadzone.
Now they are checked together based on their angle, so straight up/down/
left/right are much easier to achieve.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@406 b0f79afe-0144-0410-b225-9a4edf0717df
- Added extra states to dehsupp for the MBF additions.
- Removed specific Button_Speed handling from the controllers' AddAxes()
methods. Analog axes now respond to Button_Speed and cl_run in exactly the
same way as digital buttons do.
- Changed rounding slightly for analog axis -> integer in G_BuildTiccmd().
- Fixed: FXInputController::ProcessThumbstick() was slightly off when it
converted to the range [-1.0,+1.0].
- Added default bindings for the Xbox 360 controller buttons.
- Fixed: Redefining an existing skill would set that skills ACSReturn to be
the same as the next new skill defined, if neither definition explicitly set
the value for ACSReturn.
- Added a DefaultSkill property. Adding it to a skill will cause that skill
to be the default one selected in the menu. If none is specified as the
default, then the middle skill is the default.
- Slider controls in the options menu now display their values
numerically next to the slider.
- The minimum value for m_yaw, m_pitch, m_forward, and m_side from the
menu has been dropped from 0.5 to 0, so those particular mouse motions can
be disabled entirely without using the console.
- added compat_anybossdeath to MAPINFO.
- fixed blue colormap
- Added parameters to A_VileAttack.
- Removed redundant definition of use_joystick from SDL/i_input.cpp.
- Turned net decompression into a non fatal error. It now drops the packet
and waits for the sender to send a new, hopefully good, packet.
- Reduced potential for overflow in R_ProjectSprite().
- Moved the IF_ADDITIVETIME check earlier in APowerup::HandlePickup so
that additive time powerups can be activated before the existing
power has entered its blink threshold.
- Added a "BlueMap" for powerup colors.
- Added a NULL screen check when detaching HUD messages.
- Added HotWax's A_SetArg.
- Gez's patch for more A_WeaponReady flags:
* WRF_NOBOB (1): Weapon won't bob
* WRF_NOFIRE (12): Weapon won't fire at all
* WRF_NOSWITCH (2): Weapon can't be switched off
* WRF_NOPRIMARY (4): Weapon will not fire its main attack
* WRF_NOSECONDARY (8): Weapon will not fire its alt attack
- Attempt to add support for Microsoft's SideWinder Strategic Commander.
- Split the joystick menu into two parts: A top level with general options
and a list of all attached controllers, and a second level for configuring
an individual controller.
- Fixed: Pressing Up at the top of a menu with more lines than fit on screen
would find an incorrect bottom position if the menu had a custom top height.
- Added the cvars joy_dinput, joy_ps2raw, and joy_xinput to enable/disable
specific game controller input systems independant of each other.
- Device change broadcasts are now sent to the Doom event queue, so
device scanning can be handled in one common place.
- Added a fast version of IsXInputDevice that uses the Raw Input device
list, because querying WMI for this information is painfully slow.
- Added support for compiling with FMOD Ex 4.26+ and running the game
with an older DLL. This combination will now produce sound.
- added submission for raising master/children/siblings.
- added submission for no decals on wall option.
- removed some useless code from SpawnMissile function.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@402 b0f79afe-0144-0410-b225-9a4edf0717df
- ZDoom now disables the input method editor, since it has no east-Asian
support, and having it open a composition window when you're only expecting
a single keypress is not so good.
- Fixed: Setting intermissioncounter to false in gameinfo drew all the stats
at once, instead of revealing them one line at a time.
- Fixed: The border definition in MAPINFO's gameinfo block used extra braces.
- Added A_SetCrosshair.
- Added A_WeaponBob.
- Dropped the Hexen player classes' JumpZ down to 9, since the original value
now works as it originally did.
- MF2_NODMGTHRUST now works with players, too. (Previously, it was only for
missiles.) Also added PPF_NOTHRUSTWHILEINVUL to prevent invulnerable players
from being thrusted while taking damage. (Non-players were already
unthrusted.)
- A_ZoomFactor now scales turning with the FOV by default. ZOOM_NOSCALETURNING
will leave it unaltered.
- Added Gez's PowerInvisibility changes.
- Fixed: clearflags did not clear flags6.
- Added A_SetAngle, A_SetPitch, A_ScaleVelocity, and A_ChangeVelocity.
- Enough with this "momentum" garbage. What Doom calls "momentum" is really
velocity, and now it's known as such. The actor variables momx/momy/momz
are now known as velx/vely/velz, and the ACS functions GetActorMomX/Y/Z
are now known as GetActorVelX/Y/Z. For compatibility, momx/momy/momz will
continue to work as aliases from DECORATE. The ACS functions, however,
require you to use the new name, since they never saw an official release
yet.
- Added A_ZoomFactor. This lets weapons scale their player's FOV. Each weapon
maintains its own FOV scale independent from any other weapons the player
may have.
- Fixed: When parsing DECORATE functions that were not exported, the parser
crashed after giving you the warning.
- Fixed some improper preprocessor lines in autostart/autozend.cpp.
- Added XInput support. For the benefit of people compiling with MinGW,
the CMakeLists.txt checks for xinput.h and disables it if it cannot
be found. (And much to my surprise, I accidentally discovered that if you
have the DirectX SDK installed, those headers actually do work with GCC,
though they add a few extra warnings.)
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@376 b0f79afe-0144-0410-b225-9a4edf0717df
- Added Gez's submissions for A_M_Saw customization, area damage and
pitch for A_FireCustomMissile.
- Attaching and detaching joysticks once again updates the joystick menu.
- Added joystick axis -> button mapping.
- Added Gez's actor replacement per skill submission.
- Joystick axes can be configured in the menu again. TODO: Config saving
and loading, XInput, allow axes to be used as buttons (for the Xbox
controller's trigger buttons), allow the joystick to move through the
menus, and my PS2 adapter which has no Vista x64 drivers.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@375 b0f79afe-0144-0410-b225-9a4edf0717df
- added a compatibility option to restore the original Heretic bug where
a Minotaur couldn't spawn floor flames when standing in water having its
feet clipped.
- added vid_vsync to display options.
- fixed: Animations of type 'Range' must be disabled if the textures don't
come from the same definition unit (i.e both containing file and use type
are identical.)
- changed: Item pushing is now only done once per P_XYMovement call.
- Increased the push factor of Heretic's pod to 0.5 so that its behavior
more closely matches the original which depended on several bugs in the engine.
- Removed damage thrust clamping in P_DamageMobj and changed the thrust calculation
to use floats to prevent overflows. The prevention of the overflows was the
only reason the clamping was done.
- Added Raven's dagger-like vector sprite for the player to the automap code.
- Changed wad namespacing so that wads with a missing end marker will be
loaded as if they had one more lump with that end marker. This matches the
behaviour of previously released ZDooms. (The warning is still present, so
there's no excuse to release more wads like this.)
- Moved Raw Input processing into a seperate method of FInputDevice so that
all the devices can share the same setup code.
- Removed F16 mapping for SDL, because I guess it's not present in SDL 1.2.
- Added Gez's Skulltag feature patch, including:
* BUMPSPECIAL flag: actors with this flag will run their special if collided on by a player
* WEAPON.NOAUTOAIM flag, though it is restricted to attacks that spawn a missile (it will
not affect autoaim settings for a hitscan or railgun, and that's deliberate)
* A_FireSTGrenade codepointer, extended to be parameterizable
* The grenade (as the default actor for A_FireSTGrenade)
* Protective armors à la RedArmor: they work with a DamageFactor; for example to
recreate the RedArmor from Skulltag, copy its code from skulltag.pk3 but remove
the "native" keyword and add DamageFactor "Fire" 0.1 to its properties.
- Fixed: I_ShutdownInput must NULL all pointers because it can be called twice
if an ENDOOM screen is displayed.
- Fixed: R_DrawSkyStriped used frontyScale without initializing it first.
- Fixed: P_LineAttack may not check the puff actor for MF6_FORCEPAIN because
it's not necessarily spawned yet.
- Fixed: FWeaponSlots::PickNext/PrevWeapon must be limited to one iteration
through the weapon slots. Otherwise they will hang if there's no weapons
in a player's inventory.
- Added Line_SetTextureScale.
- Fixed: sv_smartaim 3 treated the player like a shootable decoration.
- Added A_CheckIfInTargetLOS
- Removed redundant A_CheckIfTargetInSight.
- Fixed: The initial play of a GME song always started track 0.
- Fixed: The RAWINPUT buffer that GetRawInputData() fills in is 40 bytes on
Win32 but 48 bytes on Win64, so Raw Mouse on x64 builds was getting random
data off the stack because I also interpreted the error return incorrectly.
- added parameter to A_FadeOut so that removing the actor can be made an option.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@344 b0f79afe-0144-0410-b225-9a4edf0717df
- Added Hirogen2's unlimited pickup patch.
- Added railgun performance customization CVARs by Spleen.
- Added aspect ratio override submission by SoulPriestess.
- Added a 'resetinventory' MAPINFO option.
- Added MF6_NOFEAR flag.
- Added A_MonsterRefire(probability, jumptarget).
- Added A_JumpIfTargetInSight(state) action function.
- Changed: Puffs set their angle to face the originator of the attack.
- Strife's burning hands originally make the level view fullbright.
changed in ZDoom to do partial brightening.
- Added support for horizontal mouse wheels, and set invprev/invnext as
default bindings for it. This is Vista only. DirectInput mouse (in_mouse 2)
does not support it, because the DirectInput mouse device does not expose
this control.
- Added a label for the F16 key and mapped the kp= key on a Mac keyboard to
the PC98 equivalent so it will be identified as kp=. (Interestingly, F13-
F16 and kp= only generate events when using Raw Input, not when using
DirectInput.
- Added MF6_FORCEPAIN flag that forces the target to go into the pain state
regardless of pain chance.
- Changed screenblocks CVAR to be settable per game.
- Added SpawnSpotForced and SpawnSpotFacingForced ACS functions.
- Added pushfactor actor property.
- Added Gez's GetArmorType submission
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@339 b0f79afe-0144-0410-b225-9a4edf0717df
- Swapped snes_spc out for the full Game Music Emu library.
- Fixed: The Hexen status bar still uses MAX_MANA for some calculations instead
of MaxAmount.
- Added Blzut3's submission for displaying underwater stats in SBARINFO.
- Added Gez's AMMO_CHECKBOTH submission.
- Added Gez's THRUSPECIES submission.
- Added loading directories into the lump directory.
- fixed: The Dehacked parser could not parse flag values with the highest bit
set because it used atoi to convert the string into a number.
- fixed: bouncing sounds were limited to inventory items.
- Rewrote IWAD detection code to use the ResourceFile classes instead of
reading the WAD directory directly. As a side effect it should now be
possible to use Zip and 7z for IWADs, too.
- Added 'EndTitle' nextmap option which goes to the regular title loop after
the game has finished.
- Added NOBOSSRIP flag. Note: we are now at flags6!
- Added SetSkyScrollSpeed(int skyplane, fixed speed) ACS function.
- Added THRUACTORS flag that disables all actor<->actor collision detection.
- Added DONTSEEKINVISIBLE flag for missiles that can't home in on invisible
targets.
- Added SFX_TRANSFERPITCH flag to A_SpawnItemEx.
- Added Ultimate Freedoom IWAD detection.
- Added GetAirSupply and SetAirSupply functions to ACS.
- Fixed: The *surface sound was not played when drowning was switched off
by setting the level's air supply to 0.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@338 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: When setting up a deep water sector with Transfer_Heights the floorclip
information of all actors in the sector needs to be updated.
- Fixed: A_CountdownArg and A_Die must ensure a certain kill.
- Fixed: When using Win32 mouse, windowed mode, alt-tabbing away and then
clicking on the window's title bar moved it practically off the screen.
- Beginnings of i_input.cpp rewrite: Win32 and DirectInput mouse handling has
been moved into classes.
- Changed bounce flags into a property and added real bouncing sound properties.
Compatibility modes to preserve use of the SeeSound are present and the old
flags map to these.
- Fixed: The SBARINFO parser compared an FString in the GAMEINFO with a NULL
pointer and tried to load a lump with an empty name as statusbar script
for non-Doom games.
- Fixed: SetSoundPaused() still needs to call S_PauseSound() to pause music
that isn't piped through the digital sound system. (Was removed in r1004.)
- Added input buffering to the Implode and Shrink routines for a marked
speedup.
- Replaced the Shanno-Fano/Huffman reading routines from FZipExploder with
ones of my own devising, based solely on the specs in the APPNOTE.
- Found a copy of PKZIP 1.1 and verified that Implode support works with
files that use a literal table and 8k dictionary, and that the just-added
Shrink support works at all.
- Replaced the bit-at-a-time Shannon-Fano decoder from GunZip.c64 with the
word-at-a-time one from 7-Zip for a slight speedup when working with
Imploded files.
- Fixed: Monsters should not check the inventory for damage absorbtion when
they have the MF5_NODAMAGE flag set.
- Added patch for saving automap zoom.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@328 b0f79afe-0144-0410-b225-9a4edf0717df
- Added ACS GetChar function.
- Added Gez's submission for polyobjects being able to crush corpses but made
it an explicit MAPINFO option only.
- Changed APlayerPawn::DamageFade to a PalEntry from 3 floats.
- Removed #pragma warnings from cmdlib.h and fixed the places where they were
still triggered.
These #pragmas were responsible for >90% of the GCC warnings that were not
listed in VC++.
- Fixed one bug in the process: DSeqNode::m_Atten was never adjusted when the
parameter handling of the sound functions for attenuation was changed.
Changed m_Atten to a float and fixed the SNDSEQ parser to set proper values.
Also added the option to specify attenuation with direct values in addition
to the predefined names.
- fixed a few Heretic actors:
* The pod generator's attacksound was wrong
* The teleglitter generators need different flags if they are supposed to work
with z-aware spawning of the glitter.
* The knight's axes need the THRUGHOST flag.
- Fixed non-POD passing in G_BuildSaveName() and other things GCC warned
about.
- Added support for imploded zips.
- Fixed: Some missile spawning functions ignored the FastSpeed setting.
- Fixed: P_CheckSwitchRange tried to access a line's backsector without
checking if it is valid.
- Fixed: Fast projectile could not be frozen by the Time freezer.
- Added several new ACS functions: GetActorMomX/Y/Z, GetActorViewHeight,
SetActivator, SetActivatorToTarget.
- Added Species property for actors and separated Hexen's Demon1 and Demon2
into different species.
- Added handling for UDMF user keys.
- Added support for ACS functions that can be defined without recompiling ACC.
- Fixed: The short lump name for embedded files must be cleared so that they
are not found by a normal lump search.
- Added AProp_Notarget actor property.
- Fixed: TraceBleed was missing a NULL pointer check,
- Fixed: P_RandomChaseDir could crash for friendly monsters that belong to
a player which left the game.
- Changed A_PodGrow so that it plays the generator's attack sound instead of
"misc/podgrow".
- Added transference of a select few flags from PowerProtection to its owner.
- Added actor type parameters to A_PodPain() and A_MakePod().
- The savegame path is now passed through NicePath(), since it's user-
specifiable.
- Added save_dir cvar. When non-empty, it controls where savegames go.
- SBARINFO update:
* Added the ability to center things with fullscreenoffsets enabled. Due
to some limitations the syntax is [-]<integer> [+ center].
* Fixed: the translucent flag on drawinventorybar didn't work quite right.
* Fixed: Extremely minor inaccuracy in the Doom SBarInfo code. The
fullscreen inventory bar wasn't scaled correctly.
- fixed: The CHECKSWITCHRANGE line flag was ignored for one sided lines.
- Added more compatibility settings, submitted by Gez.
- Fixed: Doom's fullscreen HUD was limited to 6 keys.
- Made 'next endgame' work again for cases where it is supposed to be
the same as 'next endgame4'.
- GCC nitpick fix: Classes being used as template parameters may not be
defined locally in a function. Fixed FWadFile::SetNamespace for that.
- Improved error reporting for incorrect textures in maps.
- Fixed: When music was stopped this was not set in the global music state.
- Fixed: Friendly monsters did not target enemy players in deathmatch.
- Fixed: Completely empty patches (8 0-bytes) could not be handled by the
texture manager. They now get assigned a new FEmptyTexture object
that is just a 1x1 pixel transparent texture.
- Fixed: Multiple namespace markers of the same type were no longer detected.
- Fixed sprite renaming.
- Maps defined with Hexen-style MAPINFOs now run their scripts in the proper
order.
- Fixed: FWadCollection::CheckNumForName() read the lump each iteration before
checking for the end marker. On 32-bit systems, this is -1, but on 64-bit
systems, it is a very large integer that is highly unlikely to be in mapped
memory.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@325 b0f79afe-0144-0410-b225-9a4edf0717df
- Added ML_BLOCKUSE line flag, accessible through UDMF and Line_SetBlocking.
- Fixed handling of embedded WADs.
- Added Gez's A_CheckCeiling submission.
- Fixed: AM_NewResolution crashed when called from outside a level.
- Added support for Quake PAK files.
- Improved warning messages for WAD files with incorrect marker usage.
- complete restructuring of resource file handling for more flexibility and future
extensions.
- Removed merging of special namespaces. For the texture manager this has
become totally useless so there is no need to do this anymore. Not merging
the namespaces also allows a much more reliable detection of lumps belonging
to special namespaces so the ScanForFlatHack function is no longer needed.
Instead, any lump up to F_END with a length of 4096 will be marked for
inclusion as a flat texture if no F_START marker is found.
- fixed MustConfirm parsing in MAPINFO
- Made the counting of intermission stats in Doom a GAMEINFO option so that
it can be activated in all games.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@324 b0f79afe-0144-0410-b225-9a4edf0717df
- Gave the intermission screen sounds their own SNDINFO entries.
- Removed obsolete snd_surround cvar.
- Changing screen resolution now adjusts the automap scale to be constant
relative to screen resolution.
- Fixed: When FMultiPatchTexture::MakeTexture() needed to work in RGB
colorspace, it didn't zero out the temporary buffer.
- Fixed memory leak from leftover code for 7z loading and added the
LUMPF_ZIPFILE flag to their contents so they have the same semantics
as zips.
- Added support for 7z archives.
- Added -noautoload option.
- Added default Raven automap colors set. Needs to be tested because I can't
compare against the DOS version myself.
- Extened A_PlaySound and A_StopSound to be able to set all parameters of the
internal sound code.
- Changed gravity doubling so that it only happens when you run off a ledge.
- Fixed: World panning was ignored for the X offset of masked midtextures.
- Extended MF5_MOVEWITHSECTOR so that it always keeps the actor on the ground
of a moving floor, regardless of movement speed. For NOBLOCKMAP items this
is necessary because otherwise they can be left in the air and it also adds
some options for other things.
- Changed A_FreezeDeathChunks() so that instead of directly destroying an
actor, it sets it to the "Null" state, which will make it invisible and
destroy it one tic later.
- Added a NULL pointer check to A_Fire() and copied the target to a local
variable inside A_VileAttack() so that if P_DamageMobj() destroys the
target, the function will still have a valid pointer to it (since reading
it from the actor's instance data invokes the read barrier, which would
return NULL).
- Added NOBLOCKMAP/MOVEWITHSECTOR combination to a few items that had their
NOBLOCKMAP flag taken away previously to make them move with a sector.
This should fix the performance problem Claustrophobia had with recent
ZDoom versions.
- Added MF5_MOVEWITHSECTOR flag, so you can have the benefits of MF_NOBLOCKMAP
but still have actors that will move up and down with the floor. IceChunk
now uses both of these flags.
- Performance optimization for FBlockThingsIterator::Next(): Actors that
exist in only one block don't need to be added to the CheckArray or
scanned for in it. Also changed the array used to keep track of visited
actors into a hash table.
- added some default definitions for constants that may miss in some headers.
- replaced __va_copy with va_copy per Chris's suggestion.
- replaced #include <malloc.h> with #include <stdlib.h> where possible.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@322 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: Altering a link type with Sector_SetLink did not work.
- Fixed: player.crouchsprite had no proper means of unsetting the crouch
sprite which is needed by the ChexPlayer.
- Fixed: A_ChangeFlags must unlink the actor from the world before changing
the NOBLOCKMAP and NOSECTOR flags.
- Fixed: Dehacked string replacement did not check the clusters' finaleflats.
- Changed the definition of several typedef'd structs so that they are
properly named.
- Limited DEHSUPP lump lookup to search zdoom.pk3 only. It will no longer
be possible to load DEHSUPP lumps from user WADs.
- Brought back the text-based DEHSUPP parser and changed it to be able to
reference states by label. Also changed label names of
DoomUnusedStates and added proper labels to all states that were
previously forced to be the first state of an actor so that the old
(limited) method could access them. This was done to address the following
bug:
- Fixed: The player's death states calling A_PlayerSkinCheck should not be
part of the state set that is accessible by Dehacked. These will produce
error messages when mapped to non-players.
- Fixed: Reading the RNG states from a savegame calculated the amounts of
RNGs in the savegame wrong.
- Changed random seed initialization so that it uses the system's
cryptographically secure random number generator, if available, instead
of the current time.
- Changed the random number generator from Lee Killough's algorithm to the
SFMT607 variant of the Mersenne Twister.
<http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index.html>
- Made fmodex.dll delay-loaded so the game should be runnable on Windows 95
again, though without sound.
- Changed gameinfo_t and gameborder_t to be named structs instead of
typedef'ed anonymous structs.
- Fixed: P_AutoUseHealth() used autousemodes 0 and 1 instead of 1 and 2.
- Fixed: SBARINFO did not recognize 5:4 aspect ratio.
- Fixed: screenshot_dir was ignored.
- Removed some obsolete code from G_InitLevelLocals that was causing problems
with maps that have no name.
- Fixed: The inner loop in AWeaponSlot::PickWeapon could endlessly loop when
the counter variable became negative.
- Fixed: Implicitly defined clusters were not initialized when being created.
- Fixed: Item tossing did not work anymore.
- Changed: Making the gameinfo customizable by MAPINFO requires different
checks for map specific border flats.
- removed gamemission variable because it wasn't used anywhere.
- removed gamemode variable. All it was used for were some checks that
really should depend on GI_MAPxx.
- Externalized all internal gameinfo definitions.
- added include to MAPINFO parser.
- split IWAD detection code off from d_main.cpp into its own file.
- disabled gamemission based switch filtering because it is not useful.
- added GAMEINFO submission by Blzut3 with significant modifications. There
is no GAMEINFO lump. Instead all information is placed in MAPINFO, except
the data that is needed to decide which WADs to autoload.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@318 b0f79afe-0144-0410-b225-9a4edf0717df
- Added a CopyInfo function to FTexture that contains all code required to
clone a texture. Used for creating warping textures.
- Fixed: P_FindFloorCeiling should not be called before setting the actor's z-
coordinate. For testing 3D Midtex lines and 3D floors the proper position
needs to be set first.
- Added option to specify the amount of ammo to be given by a WeaponGiver.
- fixed: Identification of Doom1 Freedoom IWAD did not work.
- fixed: UDMF did not initialize a sector's light colors.
- fixed implementation of DF2_NOAUTOAIM flag.
- fixed: Parsing of color strings with 6 characters and spaces did not work.
- fixed: State labels must be evaluated for the state's owner, not the calling actor.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@294 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: SBARINFO used GetSpecies instead of GetClass to check weapon types.
- Added a few missing NULL pointer checks to SBARINFO code.
- Changed pickup sounds of local player to unpaused to resolve problems with
the time freezer and make them behave better.
- Fixed: When sounds are paused not all newly started sounds should actually
be played.
- Fixed: SBARINFO had no means to check if a weapon uses any ammo at all and
as a result the inventory icon was misplaced if a no-ammo weapon was selected.
- Fixed: P_CheckMissileSpawn and AFastProjectile didn't adjust their
calculations for missiles with small radii.
- Added a new aiming mode to A_CustomRailgun to aim directly at the target
from the actual point the shot originates from.
- Added a constant name for Skulltag's 128 flag for A_SpawnItemEx. For
compatibility ZDoom needs to define this name, too, even though it doesn't
use it.
- Fixed: The nodebuilder could hang on badly set up polyobjects. Now it aborts
when the loop iterates NumberOfSegs times.
- Fixed: FMOD calls for setting the water reverb must check the return code
for errors.
- Fixed: Hexen's dual attack weapons must check distance to targets in 3D,
not 2D.
- Made several DECORATE errors which do not involve parsing non-fatal.
- Added a static error counter to FScriptPosition class.
- Changed initialization of actor class type properties: fuglyname is gone as
is the postprocessing in FinishThingdef. Instead an empty placeholder class
is now created when a class is first referenced and this placeholder is later
filled in.
- Added option to replace backslash with '^' in state frame definitions because
the backslash is just causing too many problems because it's also an escape
character.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@282 b0f79afe-0144-0410-b225-9a4edf0717df
major slowdowns when used improperly.
Update to ZDoom r1306:
- Fixed: G_DoPlayDemo did not free the demobuffer or the CVAR backups when it
failed to start the demo.
- Added a MF5_BRIGHT flag to always render an actor fullbright.
- Fixed: Calling Door_Animated with a non-zero tag created a new thinker
for each two-sided line of the sector.
- Added Karate Chris's submission for making 'spray' a cheat.
- Added CO2's default parameter additions for several Doom code pointers
submission.
- Added CO2's A_RemoveMaster/A_RemoveChildren submission.
- Added Blzut3's SBARINFO replacement for the Doom statusbar.
- Fixed: SBarInfo still displayed the wrong bar for height 0
- Added A_KillSiblings and A_DamageSiblings code pointers.
- added MaxAbsorb and MaxFullAbsorb properties for Armor.
- Restored the multiplayer scoreboard's former centering so that it doesn't
look awful on widescreen intermissions.
- Fixed horizontal positioning of 'finished' on the Raven games when scaled.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@253 b0f79afe-0144-0410-b225-9a4edf0717df
- WI_drawLF() now draws the level name at the top of the screen, always.
- Fixed: disabling lowerHealthCap didn't affect interpolateHealth.
- The co-op summary screen now has a totals row at the bottom (if it fits).
- Changed WI_drawPercent() when wi_percents is false so that the total
display is optional, and it formats it like Heretic's intermission, with
a slash and a fixed-width right column.
- Font is no longer a property of the screen object. Pass the font to
DrawText and DrawChar directly instead.
- Doom's intermission characters are now collected together as a font
so they can be colorized.
- Fixed: compatf_limitpain must check for 21 Lost Souls, not 20.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@245 b0f79afe-0144-0410-b225-9a4edf0717df
were used for fog.
- deleted obsolete g_hexen/a_weaponpieces.cpp file
Update to ZDoom r1189:
- Fixed: S_RelinkSounds() did not move the SoundChans bitfield to the new
actor.
- Fixed: Stolen channels could be kept around by the high-level channels
indefinitely.
- Fixed: AMageStaffFX2::IsOkayToAttack() / A_MStaffAttack aimed at friendlies.
- Added kill count awareness to A_ChangeFlag.
- P_NightmareRespawn() now clears the MTF_AMBUSH flag, so respawned monsters
aren't dormant (since there would be no way to activate them, and they
were certainly not dormant when they died).
- Made sdl/i_system.cpp:I_GetTimePolled() functionally equivalent to the
Win32 version.
- Updated fmod_wrap.h and fmodsound.cpp for FMOD 4.20.
- GCC warning removal.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@234 b0f79afe-0144-0410-b225-9a4edf0717df
even though they are now passed as class pointers.
- Fixed: The state parser counted one parameter too many for a varargs function.
- Fixed: FStateExpressions could copy unresolved default parameter expressions.
When these were resolved and changed later all copied pointers pointed to
invalid data.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@195 b0f79afe-0144-0410-b225-9a4edf0717df
- 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.
- 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.
- Changed DECORATE sound and color parameters to use expressions.
- 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.
- Game time is now frozen during screen wipes. This obsoletes the DEM_WIPEON
and DEM_WIPEOFF commands. Fixes multimap demos desyncing when played back
or recorded with wipes enabled, and prevents multiplayer games from
starting until all players' wipes have finished.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@189 b0f79afe-0144-0410-b225-9a4edf0717df
- Used the one unused byte in the state structure as a flag to tell what type
the NextState parameter is. The code did some rather unsafe checks with it
to determine its type.
- moved all state related code into a new file: p_states.cpp.
- merged all FindState functions. All the different variations are now inlined
and call the same function to do the real work.
- did some code cleanup and reorganization in thingdef.cpp.
- Replaced the translation parser for TEXTURES with FRemapTable::AddToTranslation.
- To get the game name the screenshot code might as well use the globally
available GameNames array instead of creating its own list.
- Moved backpack names for cheat into gameinfo.
- Fixed: SNDINFO must be loaded before the textures. However, this required
some changes to the MAPINFO parser which tried to access the texture manager
to check if the level name patches exist. That check had to be moved to
where the intermission screen is set up.
- Fixed: 'bloodcolor' ignored the first parameter value when given a list
of integers.
Please note that this creates an incompatibility between old and new
versions so if you want to create something that works with both 2.2.0
and current versions better use the string format version for the color
parameter!
- Rewrote the DECORATE property parser so that the parser is completely
separated from the property handlers. This should allow reuse of all
the handler code for a new format if Doomscript requires one.
- Fixed: PClass::InitializeActorInfo copied too many bytes if a subclass's
defaults were larger than the parent's.
- Moved A_ChangeFlag to thingdef_codeptr.cpp.
- Moved translation related code from thingdef_properties.cpp to r_translate.cpp
and rewrote the translation parser to use FScanner instead of strtol.
- replaced DECORATE's 'alpha default' by 'defaultalpha' for consistency.
Since this was never used outside zdoom.pk3 it's not critical.
- Removed support for game specific pickup messages because the only thing
this was ever used for - Raven's invulnerability item - has already been
split up into a Heretic and Hexen version.
- Fixed: The Timidity config parser always tried to process the note number,
even if it wasn't specified.
- Fixed: When UpdateJoystickMenu() modifies the menu items for different
controllers, the joystick axis selectors need to NULL the d.graycheck
field, since this is shared by the axis sensitivity sliders' step values.
- Fixed: The crosshair must be initialized after the texture manager because
on the fly texture creation for graphics patches is no longer supported.
- Fixed a few Linux compile errors.
- Changed: Replaced weapons should not be given by generic cheats, only
when explicitly giving them.
- Changed 'give weapon' cheat so that in single player it only gives weapons
belonging to the current game or are placed in a weapon slot to avoid
giving the Chex Quest weapons in Doom and vice versa.
- Fixed: The texture manager must be the first thing to be initialized
because MAPINFO and DECORATE both can reference textures and letting them
create their own textures is not safe.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@181 b0f79afe-0144-0410-b225-9a4edf0717df
- Separated low level sound code from all high level dependencies.
- Separated low level sound channel class from high level class which now
is just a subclass of the low level class.
- Moved some more high level sound logic out of FMODSoundRenderer:
The rolloff and channel ended callbacks now call functions in s_sound.cpp
instead of working on the data itself and GSnd->StopSound has been replaced
with S_StopChannel.
- Changed compilation for g_doom, g_heretic, g_hexen and g_strife folders so
that all files are included by a central one instead of compiling each one
separately. This speeds up the compilation process by 25% when doing a
complete rebuild in Visual C.
- Cleaned up some include dependencies.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@179 b0f79afe-0144-0410-b225-9a4edf0717df
- Moved IF_ALWAYSPICKUP and GiveQuest into CallTryPickup so that they are
automatically used by all inventory classes.
- The previous change made it necessary to replace all TryPickup calls with
another function that just calls TryPickup.
- Fixed: AInventory::TryPickup can change the toucher so this must be reported
to subclasses calling the super function. Changed TryPickup to pass the
toucher pointer by reference.
- Prefixed all names of CQ decorations with Chex after seeing some conflicts
with PWADs.
- Removed Chex Quest actors that were just unaltered duplicates of Doom's.
- Added detection for Chex Quest 3 IWAD.
- Cleaned up M_QuitGame because the code was almost incomprehensible and I
wanted to add CQ3's new quit messages.
- Added Chex Quest obituaries and a few other messages from CQ3.
- Fixed: drawbar improperly clipped images when not in the top left quadrant.
- Fixed: Crouching no longer worked due to a bug introduced by the
player input code.
- Added GetPlayerInput() for examining a player's inputs from ACS. Most
buttons are now passed across the network, and there are four new user
buttons specifically for use with this command. Also defined +zoom
and +reload for future implementation.
- Fixed: Hexen's fourth weapon pieces did not play the correct pickup sound,
and when they were fully assembled, they did not play the sound across the
entire level.
- Antialiasing of lines is now controlled solely by the vid_hwaalines cvar,
ignoring what the driver reports, since ATI is apparently just as bad as
NVidia.
- Added a check for D3DLINECAPS_ANTIALIAS, but this is complicated by the
fact that NVidia's don't report it, even though they support it. If there
are any cards that no longer have antialised lines on the automap, please
let me know.
- Added vid_hwaalines cvar to force antialiased lines off for the
Direct3D renderer, in case it doesn't really support them.
- Fixed: The new rolloff values being stored in FSoundChan need to be serialized
for savegames.
- Since loading of the sound lump is now done in S_LoadSound I added an IsNull
method to the SoundRenderer class so that this function doesn't need to
load the sound for the NullSoundRenderer.
- Took some more non-FMOD related code out of fmodsound.cpp, including the
code that checks for raw and Doom sounds. This means that sfxinfo_t is no
longer needed in the SoundRenderer class so I took out all references to it.
- Fixed: FMODSoundRenderer::StartSound3D must set the static variable pointing
to the rolloff information back to NULL when starting the sound fails.
- Fixed: Rolloff information was taken from the sfxinfo that contained the
actual sound data, not the one that was used for starting the sound.
- Fixed: Chex Quest's Super Bootspork was missing the pickup message.
- Added missing Strife automap colors for items and non-monsters.
- Fixed: GetMSLength didn't resolve random and player sounds.
- Moved sound aliasing code out of fmodsound.cpp into S_LoadSound.
- Fixed: The tagged version of TranslucentLine took the information for additive
translucency from the tagged linedef, not the control linedef.
- Added check for additive translucency to TRANMAP checking.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@175 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: The conversion of the strings in wbstartstruct_t to FStrings
caused crashes when reloading the hub data.
- Replaced WALLF_AUTOCONTRAST with WALLF_NOFAKECONTRAST so that the
default setting for the flags is 0.
- Added: doom2day's smoothlighting
- Added: dontincrement argument to A_CheckForReload.
- Fixed: The UDMF parser wrote class filter bits into SkillFilter.
- Fixed: (SBARINFO patch) DrawInventoryBar has a missing argument in
one of its drawgraphic calls.
- Added Gez's patch for Heretic's GIMME cheat.
- Externalized some cheat strings.
- Added Gez's patch for removing MF4_FIRERESIST.
(SBARINFO patch)
- Fixed: DrawBar would not show.
- Fixed: IsSelected took string constants instead of identifiers.
- Put more floor/ceiling properties in sector_t into a substructure and
added wrapper functions.
- Fixed: A_Explode wants the distance parameter as an int, not a fixed_t.
- some minor DECORATE fixes.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@161 b0f79afe-0144-0410-b225-9a4edf0717df
processed by the GL code.
- Fixed: A_Jump used a wrong index into the jump address table.
- Fixed: The recent changes in the DECORATE parser require the special parameter
to A_CallSpecial to be an expression, not a constant.
- Removed game filters from old style decorations. No WAD in existence ever
used them and removing them allows to make the parser more robust.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@159 b0f79afe-0144-0410-b225-9a4edf0717df
- Added a few more macros so that the action function code doesn't have
to reference its arguments directly, except 'self'. This may be helpful if it
becomes necessary to restructure this code once DoomScript becomes real.
- Removed the last remaining global variable related to action functions:
pStateCall. Everything is passed properly as function arguments now.
- fixed: PlayerChunk was missing the NOSKIN flag.
- Macro-fied access to action function parameters.
- Deactivated debug output code in d_Dehacked.cpp.
- fixed: A_FreezeDeathChunks crashed when a player's head got spawned.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@158 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: The chat sound for Strife was misnamed in the gameinfo structure.
- fixed a few DECORATE bugs.
- Changed the action function declaration parser so that optional parameters
can be given a default value. The 'optional' keyword is no longer needed
and was removed, as well as 'evalnot'.
- Restructured the action function interface to remove the dependence on
the global CallingState variable.
- Changed handling of AUTOPAGE texture so that it is properly inserted into
the texture manager even if it is from Raven's IWADs.
- Removed code related to internal ActorInfo definitions from dobjtype.cpp.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@156 b0f79afe-0144-0410-b225-9a4edf0717df
- Ported asm_x86_64/tmap3.nas to AT&T syntax so it can be compiled with gas.
After finding out that gas does have directives to describe the .eh_frame
metadata, I figured that would be significantly easier and quicker than
trying to locate all the scattered docs needed to construct it by hand.
Unfortunately, this now means I have to maintain two versions of exactly
the same code. :(
- Removed 'eval' modifier from DECORATE. All int, float and bool parameters are
'eval' now by default.
- Did a thorough check of all DECORATE conversions and fixed the errors I found.
- Macro-fied all access to action functions.
- Changed action function definition so that they have to be defined with a
DEFINE_ACTION_FUNCTION macro. This should make it easier to improve the
whole system.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@152 b0f79afe-0144-0410-b225-9a4edf0717df
- Removed DECORATE's ParseClass because it was only used to add data to fully
internal actor classes which no longer exist.
- Changed the state structure so that the Tics value doesn't need to be hacked
into misc1 with SF_BIGTIC anymore.
- Changed sprite processing so that sprite names are converted to indices
during parsing so that an additional postprocessing step is no longer needed.
- Fixed: Sprite names in DECORATE were case sensitive.
- Exported AActor's defaults to DECORATE and removed all code for the
internal property parser which is no longer needed.
- Converted the Heresiarch to DECORATE.
- Added an Active and Inactive state for monsters.
- Made the speed a parameter to A_RaiseMobj and A_SinkMobj and deleted
GetRaiseSpeed and GetSinkSpeed.
- Added some remaining DECORATE conversions for Hexen by Karate Chris.
- Changed Windows to use the performance counter instead of rdtsc.
- Changed Linux to use clock_gettime for profiling instead of rdtsc. This
avoids potential erroneous results on multicore and variable speed
processors.
- Converted the last of Hexen's inventory items to DECORATE so that I could
export AInventory.
- Removed AT_GAME_SET because it's no longer used anywhere.
- Converted the last remaining global classes to DECORATE.
- Fixed: Inventory.PickupFlash requires an class name as parameter not an
integer. Some Hexen definitions got it wrong.
- Converted Hexen's Pig to DECORATE.
- Replaced the ActorInfo definitions of all internal inventory classes with
DECORATE definitions.
- Added option to specify a powerup's duration in second by using a negative
number.
- Added Gez's Freedoom detection patch.
- SBARINFO update:
* Added: The ability to have drawkeybar auto detect spacing.
* Added: Offset parameter to drawkeybar to allow two key bars with
different keys.
* Added: Multi-row/column keybar parameters. Spacing can also be auto.
These defualt to left to right/top to bottom but can be switched.
* Added: Drawshadow flag to drawnumber. This will draw a solid color and
translucent number under the normal number.
* Added: hexenarmor to drawimage. This takes a parameter for a hexen
armor type and will fade the image like the hexen status bar.
* Added: centerbottom offset to draw(switchable)image.
* Added: translucent flag to drawinventorybar.
* Fixed: Accidentally removed flag from DrawTexture that allowed negative
coordinates to work with fullscreenoffsets. Hopefully this is the last
major bug in the fullscreenoffsets system.
- Ported vlinetallasm4 to AMD64 assembly. Even with the increased number of
registers AMD64 provides, this routine still needs to be written as self-
modifying code for maximum performance. The additional registers do allow
for further optimization over the x86 version by allowing all four pixels
to be in flight at the same time. The end result is that AMD64 ASM is about
2.18 times faster than AMD64 C and about 1.06 times faster than x86 ASM.
(For further comparison, AMD64 C and x86 C are practically the same for
this function.) Should I port any more assembly to AMD64, mvlineasm4 is the
most likely candidate, but it's not used enough at this point to bother.
Also, this may or may not work with Linux at the moment, since it doesn't
have the eh_handler metadata. Win64 is easier, since I just need to
structure the function prologue and epilogue properly and use some
assembler directives/macros to automatically generate the metadata. And
that brings up another point: You need YASM to assemble the AMD64 code,
because NASM doesn't support the Win64 metadata directives.
- Replaced the ActorInfo definitions of several internal classes with DECORATE definitions
- Converted teleport fog and destinations to DECORATE.
- AActor::PreExplode is gone now that the last item that was using it has been converted.
- Converted the Sigil and the remaining things in a_strifeitems.cpp to DECORATE.
- Exported Point pushers, CustomSprite and AmbientSound to DECORATE.
- Changed increased lightning damage for Centaurs into a damage factor.
- Changed PoisonCloud and Lightning special treatment in P_DamageMobj to use damage
types instead to keep dependencies on specific actor types out of the main engine code.
- Added Korax DECORATE conversion by Gez and a few others by Karate Chris.
- Removed FourthWeaponClass and based Hexen's fourth weapons on the generic weapon
pieces.
- Added DECORATE conversions for Hexen's Fighter weapons by Karate Chris.
- Added aWeaponGiver class to generalize the standing AssaultGun.
- converted a_Strifeweapons.cpp to DECORATE, except for the Sigil.
- Added an SSE version of DoBlending. This is strictly C intrinsics.
VC++ still throws around unneccessary register moves. GCC seems to be
pretty close to optimal, requiring only about 2 cycles/color. They're
both faster than my hand-written MMX routine, so I don't need to feel
bad about not hand-optimizing this for x64 builds.
- Removed an extra instruction from DoBlending_MMX, transposed two
instructions, and unrolled it once, shaving off about 80 cycles from the
time required to blend 256 palette entries. Why? Because I tried writing
a C version of the routine using compiler intrinsics and was appalled by
all the extra movq's VC++ added to the code. GCC was better, but still
generated extra instructions. I only wanted a C version because I can't
use inline assembly with VC++'s x64 compiler, and x64 assembly is a bit
of a pain. (It's a pain because Linux and Windows have different calling
conventions, and you need to maintain extra metadata for functions.) So,
the assembly version stays and the C version stays out.
- Converted the rest of a_strifestuff.cpp to DECORATE.
- Fixed: AStalker::CheckMeleeRange did not perform all checks of AActor::CheckMeleeRange.
I replaced this virtual override with a new flag MF5_NOVERTICALMELEERANGE so that
this feature can also be used by other actors.
- Converted Strife's Stalker to DECORATE.
- Converted ArtiTeleport to DECORATE.
- Removed the NoBlockingSet method from AActor because everything using it has been
converted to DECORATE using DropItem instead.
- Changed: Macil doesn't need the StrifeHumanoid's special death states so he might
as well inherit directly from AActor.
- Converted Strife's Coin, Oracle, Macil and StrifeHumanoid to DECORATE. Also moved
the burning hand states to StrifePlayer where they really belong.
- Added Gez's dropammofactor submission with some necessary changes. Also merged
redundant ammo multiplication code from P_DropItem and ADehackedPickup::TryPickup.
- Restricted native action function definitions to zdoom.pk3.
- Fixed. The Firedemon was missing a game filter.
- Added: disablegrin, disableouch, disablepain, and disablerampage flags to
drawmugshot.
- Fixed: LowerHealthCap did not work properly.
- Fixed: Various bugs I noticed in the fullscreenoffsets code.
- Removed all the pixel doubling r_detail modes, since the one platform they
were intended to assist (486) actually sees very little benefit from them.
- Rewrote CheckMMX in C and renamed it to CheckCPU.
- Fixed: CPUID function 0x80000005 is specified to return detailed L1 cache
only for AMD processors, so we must not use it on other architectures, or
we end up overwriting the L1 cache line size with 0 or some other number
we don't actually understand.
- The x87 precision control is now explicitly set for double precision, since
GCC defaults to extended precision instead, unlike Visual C++.
- Converted Strife's Programmer, Loremaster and Thingstoblowup to DECORATE.
- Fixed: Attacking a merchant in Strife didn't alert the enemies.
- Removed AT_GAME_SET(PowerInvulnerable) due to the problems it caused. The two
occurences in the code that depended on it were changed accordingly.
Invulnerability colormaps are now being set by the items exclusively.
- Changed many checks for the friendly Minotaur to a new flag MF5_SUMMONEDMONSTER
so that it can hopefully be generalized to be usable elsewhere later.
- Added Gez's submission for converting the Minotaur to DECORATE.
- Fixed a few minor DECORATE bugs.
- Changed coordinate storage for EntityBoss so that it works properly even
when the pod is not used to spawn it.
- Converted Strife's Spectres and Entity to DECORATE.
- Added: fullscreenoffsets flag for status bars. This changes the coordinate
system to be relative to the top left corner of the screen. This is useful
for full screen status bars.
- Changed: drawinventorybar will use the width of artibox or invcurs (strife)
to determine the spacing. Let me know if this breaks any released mods.
- Fixed: If a status bar height of 0 was specified in SBarInfo the wrong bar
would be shown.
- Fixed: If a static inventory bar was used the user still had to press invuse
in order to get rid of the "overlay".
- Fixed: forcescaled would not work if the height of the bar was 0.
- Added: keyslot to drawswitchableimage.
- Fixed: The transition effects for the log and keys popups were switched.
- Converted Strife's Crusader, Inquisitor and spectral missiles to
DECORATE.
- Converted Strife's Acolytes, Rebels, Sentinel, Reaver and Templar to
DECORATE.
- Added DECORATE conversions for Hexen's Cleric weapons by Karate Chris.
- Added a check to Zipdir that excludes files with a .orig extension. These
can be left behind by patch.exe and create problems.
- fixed: Unmorphing from chicken caused a crash when reading non-existent
meta-data strings.
- Converted the ScriptedMarines to DECORATE.
- Fixed: DLightTransfer and DWallLightTransfer were declared as actors.
- Converted the PhoenixRod and associated classes to DECORATE to make
the Heretic conversion complete.
- Converted the Minotaur's projectiles to DECORATE so that I can get
rid of the AT_SPEED_SET code.
- Converted Heretic's Blaster and SkullRod to DECORATE.
- Converted the mace and all related actors to DECORATE and generalized
the spawn function that only spawns one mace per level.
- Moved Mace respawning code into AInventory so that it works properly
for replacement actors.
- Added more DECORATE conversions by Karate Chris.
- Cleaned up the new bridge code and exported all related actors to
DECORATE so that the exported code pointers can be used.
- Separated Heretic's and Hexen's invulnerability items for stability
reasons.
- Fixed spurious warnings on 32-bit VC++ debug builds.
- Made the subsong (order) number a proper parameter to MusInfo::Play()
instead of requiring a separate SetPosition() call to do it.
- Added Gez's submission for custom bridge things.
- Fixed: ASpecialSpot must check the array's size before dividing by it.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@151 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: When Heretic's Mace was replaced by a non-child class A_SpawnMace still
treated it as a mace and wrote into some undefined memory.
- Fixed: A_BishopMissileWeave didn't initialize special2 for proper movement.
- Added a speed parameter to A_SkullAttack.
- Fixed: Black as first or only blood color didn't work.
- Fixed: Sounds played in wi_stuff.cpp and f_finale.cpp need the CHAN_UI flag.
- Fixed: Spawning a player could play the *gasp sound.
- Fixed: SBARINFO's health display didn't scale to the proper maximum.
- Added const char &operator[] (unsigned int index) to FString class.
- Added Skulltag's Teleport_NoStop action special.
- Fixed: Strife's EntityBoss didn't copy friendliness information to the
sub-entities.
- Fixed: Friendly spectral monsters should be able to hurt unfriendly ones
and vice versa.
- Fixed: In deathmatch specral missiles spawned by players should hurt other
players.
- Fixed: SpectralLightningBigBall didn't set the proper owner for the lightning
projectiles it spawned.
- Changed the EntityBoss's attack function to call the equivalent spectre
functions instead of duplicating their code.
- Gave many of Strife's code pointers that only had a number as name more
meaningful names.
- Fixed: All spectral attacks must set 'health' first before P_CheckMissileSpawn
is called.
- Added a compatibility option to play sector sounds from the precalculated
center because some maps apparently abuse the behavior to make the sound
play somewhere where it can't be heard by the player to fake silent movement.
- Fixed: The S_Sound variant taking an actor must check if the actor is not
NULL.
- Fixed: ACS's ActivatorSound must check if the activator is valid.
- Changed stats drawing so that multi-line strings can be used.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@132 b0f79afe-0144-0410-b225-9a4edf0717df
- Added a check to G_DoSaveGame() to prevent saving when you're not actually
in a level.
- Fixed: Serialized player data must always be loaded, even if it's simply to
be discarded, so that anything serialized after the players will load from
the correct position in the file when revisiting a hub map.
- Changed: AInventory::Tick now only calls the super method if the item is not
owned. Having owned inventory items interact with the world is not supposed
to happen.
- Fixed: case PCD_SECTORDAMAGE in p_acs.cpp was missing a terminating 'break'.
- Fixed: When a weapon is destroyed, its sister weapon must also be destroyed.
- Added a check for PUFFGETSOWNER to A_BFGSpray.
- Moved the PUFFGETSOWNER check into P_SpawnPuff and removed the limitation
to players only.
- Fixed: P_SpawnMapThing still checked FMapThing::flags for the class bits
instead of FMapThing::ClassFilter.
- Fixed: A_CustomMissile must not let P_SpawnMissile call P_CheckMissileSpawn.
It must do this itself after setting the proper owner.
- Fixed: CCMD(give) increased the total item count.
- Fixed: A_Stop didn't set the player specific variables to 0.
- Fixed: Screenwipes now pause sounds, since there can be sounds playing
during them.
- UI sounds are now omitted from savegames.
- Fixed: Menu sounds had been restricted to one at a time again.
- Moved the P_SerializeSounds() call to the end of G_SerializeLevel() so that
it will occur after the players are loaded.
- Added fixes from FreeBSD for 0-length and very large string buffers
passed to myvsnprintf.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@131 b0f79afe-0144-0410-b225-9a4edf0717df
- Rewrote myvsnprintf to use the StringFormat routines directly so that no
additional memory needs to be allocated from the heap.
- Polyobject sounds now play from their lines, similar to the way sector
sounds are handled.
- Why do polyobjects have a 3D start spot? Flattened it to 2D.
- Moved the sector sound origin calculation out of fmodsound.cpp and into
s_sound.cpp so that the near sound limiting will use the correct sound
location for deciding on neighbors.
- Removed the S_Sound() variant that allows for pointing the origin at an
arbitrary point. It has been replaced with a variant that takes a polyobject
as a source, since that was the only use that couldn't be rewritten with the
other variants. This also fixes the bug that polyobject sounds were not
successfully saved and caused a crash when reloading the game. Note that
this is a significant change to how equality of sound sources is determined,
so some things may not behave quite the same as before. (Which would be a
bug, but hopefully everything still sounds the same.)
- Adjusted the noise debug table so that fractional volume levels do not
run into the adjacent columns.
- Added a NullSoundRenderer so that most of the checks against a NULL GSnd
can be removed.
- Fixed: Looping sounds must always successfully allocate a channel, even if
it's only a pre-evicted channel.
- Added A_ClearReFire code pointer for weapons. Preferably A_WeaponReady should
reset this counter but that can't be done due to unwanted side effects with
existing weapons.
- Changed the 'scale' variable in CVAR(turbo) to double because the calculations
depended on the current floating point precision setting and only worked properly
when set to 'precise' in VC++.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@130 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: Dead players didn't get the MF_CORPSE flag set.
- Fixed: The internal definition of Floor_LowerToNearest had incorrect parameter
settings.
- Fixed: Heretic's ActivatedTimeBomb had the same spawn ID as the inventory item.
- fixed: Heretic's mace did not have its spawn ID set.
- For controls that are not bound, the customize controls menu now displays
a black --- instead of ???.
- Applied Gez's BossBrainPatch3.
- Fixed: P_BulletSlope() did not return the linetarget. This effected
the Sigil, A_JumpIfCloser, and A_JumpIfTargetInLOS.
- Fixed all the new warnings tossed out by GCC 4.3.
- Fixed: PickNext/PrevWeapon() did not check for NULL player actors.
- Fixed compilation issues with GCC.
- Removed special case for nobotnodes in MAPINFO.
- Added support for ST's QUARTERGRAVITY flag.
- Added a generalized version of Skulltag's A_CheckRailReload function.
- Fixed: DrawImage didn't take 0 as a valid image index.
- Added Gez's RandomSpawner submission with significant changes.
- Added optional blocks for MAPINFO map definitions. ZDoom doesn't use
this feature itself but it allows other ports based on ZDoom
to implement their own sets of options without making such a MAPINFO
unreadable by ZDoom.
- Fixed: The mugshot would not reset on re-spawn.
- Fixed: Picking up a weapon would sometimes not activate the grin.
- Changed: Line_SetIdentification will ignore extended parameters when
used in maps defined Hexen style in MAPINFO.
- Fixed: Ambient sounds didn't pass their point of origin to S_StartSound.
- Fixed: UseType was not properly set for textures defined in TEXTURES.
- Fixed: You couldn't set an offset for sprites defined in TEXTURES.
- Added read barriers to all actor pointers within player_t except for
mo, ReadyWeapon and PendingWeapon.
- Added a read barrier to player_t::PrewmorphWeapon.
- Fixed: After spawning a deathmatch player P_PlayerStartStomp must
be called.
- Fixed: SpawnThings must check if the players were spawned before
calling P_PlayerStartStomp.
- Fixed typo in flat scroll interpolation.
- Changed FImageCollection to return translated texture indices so
that animated icons can be done with it.
- Changed FImageCollection to use a TArray to hold its data.
- Fixed: SetChanHeadSettings did an assignment instead of comparing
the channel ID witg CHAN_CEILING.
- Changed sound sequence names for animated doors to FNames.
- Automatically fixed: DCeiling didn't properly serialize its texture id.
- Replaced integers as texture ID representation with a specific new type
to track down all potentially incorrect uses and remaining WORDs used
for texture IDs so that more than 32767 or 65535 textures can be defined.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@124 b0f79afe-0144-0410-b225-9a4edf0717df
- DF2_YES_RESPAWN_INVUL and DF_FORCE_RESPAWN now apply to all multiplayer
games, not just deathmatch, without the need for turning on
alwaysapplydmflags.
- Fixed: DF2_YES_RESPAWN_INVUL only worked in deathmatch, even with
alwaysapplydmflags turned on.
- Fixed: DF_COOP_LOSE_ARMOR did not empty the starting armor items.
- Replaced the naive area sound implementation with one that takes into
consideration the size and shape of the sector producing the sound. See
the lifts on Doom 2 MAP30 and compare with previous versions.
- Fixed: The stop sound for sector-based sound sequences was not played with
the CHAN_AREA flag.
- Removed the distinction between S_Sound() and S_SoundID() functions. Use
S_Sound() for both names and IDs from now on.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@123 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: The UDMF parser stored plane rotation angles as fixed_t, not angle_t.
- Grouped the sector plane texture transformation values into a separate
structure and replaced all access to them with wrapper functions.
- Add environment 255, 255 as a way to get the software underwater effect in
any zone you want.
- Using a too-recent version of FMOD now gives an error, since there may be
breaking changes to the API from one version to the next (excluding
revisions in stable branches, which only represent bug fixes).
- Updated fmod_wrap.h for FMOD 4.16 and corrected a bug that had gone
unnoticed before: The delayhi and delaylo parameters for Channel::setDelay()
and getDelay() were swapped.
- Fixed: P_ChangeSector could incorrectly block movement when checking for
mid textures linked to a moving floor.
- Fixed AActor's bouncefactor definitions which I accidentally changed when
adding wallbouncefactor.
- Fixed: A_SpawnItemEx added the floorclip offset to the z coordinate instead
of subtracting it.
- Fixed: SBARINFO's popup code used 1-based indices to address a C++ array.
- Fixed: ACS's ChangeSky command didn't clean up the stack.
- Fixed: Wall scrolling interpolations incremented their reference count twice.
- Fixed: Before a level's thinkers are loaded all previous interpolations must
be cleared.
- Fixed: deleted interpolations didn't NULL the pointer in the interpolated
object. Also added all interpolation pointers to DSectorMarker to ensure
that they are properyl processed by the garbage collector.
- Added scaling to double size for idmypos display.
- Changed: Players don't telefrag when they are spawned now but after all
actors have been spawned to avoid accidental voodoo doll telefragging.
- Fixed: ACS scripts for non-existent maps were started on the current one.
- Added a 'wallbouncefactor' property to AActor.
- Reverted forceunderwater change from r1026 and fixed the problem for real:
SECF_FORCEDUNDERWATER only has meaning when coming from the heightsec.
So the initial check of the current sector in AActor::UpdateWaterLevel
must only check for SECF_UNDERWATER, not SECF_UNDERWATERMASK.
- Dehacked fix discovered by entryway: Dehacked only changes the blue armor's
armortype. It does not touch the armor given by the megasphere.
- Changed forcewater handling so that only control sectors created by one-
sided lines become swimmable, since there's a good chance that a two-sided
line is creating the control sector out of a normal, accessible portion of
the map. (See e.g. linedef 29242 of zdoomcmp1.)
- Added self-modifying code notifications for Valgrind.
Build with make VALGRIND=1 to turn them on.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@121 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: MAPINFO's 'lookup' option should only work for actual strings but
not for lump and file names.
- Added a few 'activator == NULL' checks to some ACS functions.
- Added line and vertex lists to polyobjects so that I can do some
changes that won't work with only a seg list being maintained.
(SBarInfo update #23)
- Fixed: Drawing the amount of an inventory item in the player's inventory did
not work
- Added: PowerupTime to drawnumber and drawbar. You must specify a
powerupgiver. Although drawnumber goes in seconds the powerup has left
drawbar will use ticks for extra accuracy.
- I have increased cross-port compatibility with Skulltag. If an unknown
game mode is provided for sbarinfo's gamemode command it will ignore it and
continue.
- Added an option to consider intermission screens gameplay for purposes of
capturing the mouse.
- Changed: Telefragging should not thrust the victim if it isn't in precisely the
same position as the killer.
- fixed: A_SpawnItemEx must call P_TeleportMove before checking the spawned
object's position.
- Fixed: Ouch state was far to easy to achieve.
- Made all the basic texture classes local to their implementation.
They are not needed anywhere else.
- Changed the HackHack hack for corrupt 256 pixel high textures that
FMultiPatchTexture only calls a virtual function instead of doing any
type checks of the patch itself.
- Cleaned up the constant definitions in doomdata.h.
- Moved the TEXTUREx structures from doomdata.h to multipatchtexture.cpp
because they are used only in this one file.
- Removed some more typedefs from r_defs.h and doomdata.h
- Moved local polyobject data definitions from p_local.h to po_man.cpp.
- Renamed player_s to player_t globally to get rid of the duplicate names
for this class.
- Added coordinate range checking to DCanvas::ParseDrawTextureTags() to avoid
potential crashes in the situation that con_scaletext is 2 and somebody
uses a hud message as if a hud size was specified, but forgot to actually
set the hud size.
- Consolidated the mug shot code shared by DSBarInfo and DDoomStatusBar
into a single place.
- Fixed: Setting an invalid mug shot state crashed the game.
- Fixed my attempts to be clever with strings yesterday.
- If an actor's current target temporarily goes unshootable, its threshold
is now reset to 0, so it will more readily switch back to it.
- Fixed: Deactivating the game no longer allows reverb effects to continue
playing while the sound is paused.
- Fixed: S_StartNamedSound() looked for SECF_SILENT in MoreFlags instead of
Flags.
- Fixed: DSBarInfo::updateState() and DDoomStatusBar::UpdateState() sprung
leaks and didn't allocate enough space for the fullStateName string.
- Disabled DUMB's mono destination mixers. It's not like I'm ever going to
target an original SoundBlaster, so they're a waste of space to have around.
This trims resample.obj down to ~60k now.
- Fixed: PrtScn/SysRq key did not work on Linux.
- Added an alternate module replay engine that uses foo_dumb's replayer, a
heavily customized version of DUMB (Dynamic Universal Music Bibliotheque).
It has been slightly modified by me:
* Added support for Ogg Vorbis-compressed samples in XM files ala FMOD.
* Removed excessive mallocs from the replay core.
* Rerolled the loops in resample.c. Unrolling them made the object file
~250k large while providing little benefit. Even at ~100k, I think it's
still larger than it ought to be, but I'll live with it for now.
Other than that, it's essentially the same thing you'd hear in foobar2000,
minus some subsong detection features. Release builds of the library look
like they might even be slightly faster than FMOD, which is a plus.
- Fixed: Timidity::font_add() did not release the file reader it created.
- Fixed: The SF2 loader did not free the sample headers in its destructor.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@113 b0f79afe-0144-0410-b225-9a4edf0717df