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.
SVN r1689 (trunk)
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.
SVN r1668 (trunk)
- 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.
SVN r1599 (trunk)
- 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.
SVN r1512 (trunk)
- Fixed: P_RailAttack used the shooting actor or a default puff for some splash
related actions. It should use the puff type passed to it as a parameter instead.
- Changed splash handling in P_LineAttack to use the actual hit position to
spawn the splash and not the puff's spawn position which is offset a little.
- made some precision related changes to P_HitWater. The precise hit coordinate
can now be passed as parameters.
SVN r1350 (trunk)
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.
SVN r1304 (trunk)
- 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.
SVN r1066 (trunk)
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.
SVN r1061 (trunk)
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.)
SVN r1059 (trunk)
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.
SVN r1036 (trunk)
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.
SVN r1014 (trunk)
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.
SVN r1012 (trunk)
(actors being forced to the ground by instantly moving sectors, strife
railing handling and shooting lines with a non-zero but unassigned tag.)
With UDMF such semantics have to be handled diffently.
- finalized UDMF 1.0 implementation.
- Added Martin Howe's latest morph update.
SVN r987 (trunk)
be used to prevent them from dropping through 3DMIDTEX textures.
- Fixed: AMageStaffFX2::IsOkayToAttack overwrote the projectile's angle variable.
SVN r970 (trunk)
- Separated mapthing2_t into mapthinghexen_t and the internal FMapThing so
that it is easier to add new features in the UDMF map format.
- Added some initial code to read UDMF maps.
SVN r956 (trunk)
- Removed FRadiusThingsIterator after discovering that VC++ misoptimized
it in P_CheckPosition. Now FBlockThingsIterator is used with the distance
check being done manually.
SVN r914 (trunk)
to enable Timidity to read its config from Zips.
I put this on hold though after finding out that the sound quality
isn't even near that of Timidity++.
- GCC-Fixes (FString::GetChars() for Printf calls)
- Added a dummy Weapon.NOLMS flag so that Skulltag weapons using this flag
can be loaded
SVN r901 (trunk)
and P_TryMove. Moved BlockingLine and BlockingMobj into AActor because
the global variables can be easily overwritten with certain DECORATE
constructs.
SVN r894 (trunk)
freed and each iterator allocated a new one as a result.
- Split the Xlat parser context class into a generic part that can be
used for other Lemon-based parsers in the future and a smaller
Xlat-specific part.
SVN r892 (trunk)
P_FindFloorCeiling doesn't set it at all. The way it was set in
PIT_FindFloorCeiling didn't look correct.
- Changed P_FindFloorCeiling so that it doesn't need global variables
anymore. I also moved the code to set the calling actor's information
into this function because that's all it is used for. This also fixes
another bug:
- AInventory::BecomePickup called P_FindFloorCeiling to get
proper position values for the item but never set the item's information
to the return value of this call.
SVN r891 (trunk)
P_FindFloorCeiling never did that.
- Merged Check_Sides and PIT_CrossLine into A_PainShootSkull.
- Replaced P_BlockLinesIterator with FBlockLinesIterator in all places it was
used. This also allowed to remove all the global variable saving in
P_CreateSecNodeList.
- Added a new FBlockLinesIterator class that doesn't need a callback
function because debugging the previous bug proved to be a bit annoying
because it involved a P_BlockLinesIterator loop.
- Fixed: The MBF code to move monsters away from dropoffs did not work as
intended due to some random decisions in P_DoNewChaseDir. When in the
avoiding dropoff mode these are ignored now. This should cure the problem
that monsters hanging over a dropoff tended to drop down.
SVN r887 (trunk)
line.
- Fixed: P_SpawnPuff assumed that all melee attacks have the same range
(MELEERANGE) and didn't set the puff to its melee state if the range
was different. Even worse, it checked a global variable for this so
the behavior was undefined when P_SpawnPuff was called from anywhere
else but P_LineAttack. To reduce the amount of parameters I combined
this information with the hitthing and temporary parameters into one
flags parameter. Also changed P_LineAttack so that it gets passed
an additional parameter that specifies whether the attack is a melee
attack or not and set this to true in all calls that are to be considered
melee attacks. I couldn't use the damage type because A_CustomPunch
and A_CustomMeleeAttack allow passing any damage type they want.
- Added a sprite option as an alternative of particles for FX_ROCKET
and FX_GRENADE.
SVN r879 (trunk)
to be able to save the 3dMidtex attachment info.
- Fixed: The TArray serializer needs to be declared as a friend of TArray
in order to be able to access its fields.
- Since there are no backwards compatibility issues due to savegame version
bumping I closed all gaps in the level flag set.
- Bumped min. Savegame version and Netgame version for 3dMidtex related
changes.
- Changed Jump and Crouch DMFlags into 3-way switches:
0: map default, 1: off, 2: on. Since I needed new bits the rest of
the DMFlag bit values had to be changed as a result.
- fixed: PTR_SlideTraverse didn't check ML_BLOCKMONSTERS for sliding
actors without MF3_NOBLOCKMONST.
- Added MAPINFO commands 'checkswitchrange' and 'nocheckswitchrange'
that can enable or disable switch range checking globally per map.
- Changed ML_3DMIDTEX to force ML_CHECKSWITCHRANGE.
- Added a ML_CHECKSWITCHRANGE flag which allows checking whether the
player can actually reach the switch he wants to use.
- Made DActiveButton::EWhere global so that I can use it outside thr
DActiveButton class.
March 17, 2008 (Changes by Graf Zahl)
- Changed P_LineOpening to pass its result in a struct instead of global
variables.
- Added Eternity's 3DMIDTEX feature (no Eternity code used though.)
It should be feature complete with the exception of the ML_BLOCKMONSTERS
flag handling. That particular part of Eternity's implementation is
sub-optimal because it hijacks an existing flag and doesn't seem to make
much sense to me. Maybe I'll implement it as a separate flag later.
SVN r810 (trunk)
function in an easy-to-understand manner.
- Fixed: D_AddWildFile() blindly assumed that all matches were files.
- Added back the dead player check to CheckIfExitIsGood(), but now it
applies only if the next map is part of the same hub. Otherwise, you can
still exit the map while dead.
- Removed the SpawnedPuff global variable and made it a return value from
P_LineAttack().
- Fixed: P_SpawnPuff() played sounds for temporary puffs.
SVN r739 (trunk)
- G_DoSaveGame() now receives the filename and description from its arguments
rather than global variables, so autosaves and manual saves can be done
in close proximity to each other without overwriting the parameters for
one of them.
- Fixed potential buffer overrun in G_SaveGame() and added a check so that
you can't interfere with saves that are still pending.
- Fixed: P_LineAttack() creates temporary puffs to get damage types, but this
had the side effect of creating particles for the puff.
- Fixed: The Heretic status bar tried to use the graphic "SELECTBOX" for the
inventory selector. The correct name is "SELECTBO".
- Fixed: Using allowrespawn for a single-player map would fire off enter
scripts instead of respawn script because the player wasn't assigned the
state PST_REBORN.
- Fixed: P_CheckMissileSpawn() now passes the BlockingMobj to
P_ExplodeMissile() so that it can select the appropriate death state.
- Added the manifest to MinGW-compiled builds of updaterevision so you can
build under Vista with MinGW without needing administrative privileges.
(But I still want to know why Vista thinks it needs elevated privileges
without a manifest telling it otherwise.)
- Using four 0xFF bytes for the final note of an IMF song should signal the
end of the song.
SVN r733 (trunk)
actor's sector in the game engine code with it. This way there's a clear
distinction between renderer-specific and game-specific calls.
SVN r638 (trunk)
crouching motion.
- Fixed: The keypress for nightmare mode verification appeared in the console
if the fullscreen console was open while using the menu.
- Added support for scaling down large console fonts in the customize
controls menu.
- Fixed: Joining a negative team was possible.
SVN r590 (trunk)
resulting in missile attacks not working.
- Fixed: Hitscan attacks used the puff's position to calculate the trajectory for
weapon kickback.
SVN r568 (trunk)
so that I can create the ACS function Thing_Damage2. It's exactly the same as
Thing_Damage, except the damage type is specified by name. When I did this,
I noticed that it didn't do anything useful for a TID of 0, so I made it
affect the activator in that case.
- Added a new SetActorState ACS function:
int SetActorState (int tid, str statename, optional bool exact);
If tid is 0, it affects the script activator, otherwise it affects all the
matching actors. Statename is the name of the state you want to put the
actor in. The final parameter, exact, specifies whether or not partial
state name matches are accepted. If you don't specify it or set it to
false, if you try to do something like:
SetActorState (0, "Foo.Bar");
And the actor has a Foo state but no Foo.Bar state, it will enter the Foo
state. If you set exact to true:
SetActorState (0, "Foo.Bar", true);
Then the actor must have a Foo.Bar state, or it will not change state at
all, even if it has a Foo state.
The return value for this function is the number of actors that successfully
changed state. Note that you should refrain from using this function to
enter special states such as Death, or unpredictable results could occur.
SVN r505 (trunk)
- Moved deathmatch options into their own category in the gameplay options menu.
- Added the sv_smartaim code from GZDoom which tries to avoid autoaiming
at friendlies or shootable decorations if there are monsters that can be shot.
- Added: SetThingSpecial treats a tid of 0 as the activator.
SVN r412 (trunk)