- Added bounce states. Set the BOUNCE_UseBounceState flag to use them (+USEBOUNCESTATE via DECORATE).
- Added a big-endian fix for actor flag fields that aren't four bytes wide.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1565 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: r4225 accidentally removed the sky texture check for markceiling disabling. [Software only; OpenGL not concerned.]
- Remove now-unused dropammofactor variable from AWeaponGiver::TryPickup().
- Fixed: Ever since r1078, D'Sparil has been too quiet.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1563 b0f79afe-0144-0410-b225-9a4edf0717df
- For the sake of better testing, use 2D sprite sorting unconditionally and not just when a voxel is in view. [Software only. Irrelevant to OpenGL.]
- Fixed crash when an actor's spawn state ends by destroying the actor and the first state has NoDelay set and it only consists of 0-tic states.
- Added a DropAmmoFactor field to WeaponGiver so that ModifyDropAmount() can record the drop amount modifier into it without fiddling with the actual AmmoGiveX fields.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1562 b0f79afe-0144-0410-b225-9a4edf0717df
- Be consistent with whitespace tabs.
- Stylistic changes.
- Fixed: A_RemoveSiblings and [A_RaiseSiblings] did not check that the caller had a master to deduce siblings from.
- Fixed: WeaponGiver did not give half ammo when dropped.
- Fixed: The constructor for single-lump fonts did not initialize the Cursor field.
- Added a NODELAY state flag. This is only valid for a state immediately following a Spawn label. When set, the actor will run this state during its first tick. This means Spawn states may now run an action function if you set this flag. Note that this action function is executed during the actor's first tick, which is not the same as when it is spawned.
- Fixed: r4226 [ported in r1557] had bad copy-paste angles for Demon2's XDeath.
- A_KillSiblings and A_DamageSiblings didn't check for a valid master.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1560 b0f79afe-0144-0410-b225-9a4edf0717df
- Lets try fixing the extra tic issue by evaluating the zero delay states at PostBeginPlay. This requires delaying the state cycling until the next tick.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1559 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: noextratic fix skipped over infinite duration states.
- Try that last fix again. This time check to see if we enter an infinite duration state and break out of the loop.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1558 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: Hexen's A_DemonDeath and A_Demon2Death had been converted to incorrect generic Decorate.
- Fixed: A_MinotaurChase should switch to the Idle state, not the Spawn state.
- Fixed: There's more than one place where the CROUCHABLEMORPH flag needs to be checked.
- Added an alternate 2D sprite sorting comparison function which seems to work better with large voxels than the standard 1D sprite sort. [Software only; OpenGL had no such problem to begin with.]
- P_RailAttack() now checks the puff's MF3_FOILINVUL flag.
- Added Blzut3's noextratic fix.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1557 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: r4220 broke 3D floor rendering in software, because 3D floors have the floor and ceiling orientations reversed compared to normal conventions. [OpenGL wasn't affected by the change in r4220.]
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1555 b0f79afe-0144-0410-b225-9a4edf0717df
- Dropped items with the DONTGIB flag set will no longer be destroyed by crushers.
- Fixed: Voxel rendering completely fell apart when a mirror came into view. [Software renderer only. OpenGL was and still is fine.]
- Force all voxel mip levels to use the same pivot point as the first level.
- Added DONTGIB flag to Key, so key-dropping enemies can be used reliably near crushers.
- Fixed: When trying to unmorph a monster, make sure the morphed version doesn't have the TOUCHY flag set, or checking the position of the unmorphed version will kill the morphed version, since they will both exist in the same place at the same time, and TOUCHY is really touchy about that.
- Use tests less prone to overflow on very steep slopes when detecting which side of a plane the camera is on. Mostly, this means testing the distance of the camera to the plane rather than computing the plane's Z at the camera and comparing that with the camera's Z. [Software only, OpenGL was and still is fine.]
- Added CROUCHABLEMORPH flag for the PlayerPawn class. Use this to indicate that a morphed player class can crouch. (Regular players can always crouch, hence the name CROUCHABLEMORPH and not CANMORPH or ALLOWMORPH.)
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1552 b0f79afe-0144-0410-b225-9a4edf0717df
- Multiply the resulting velocity by the player's speed when "jumping" underwater.
- Remove the requirement that only action function default parameters can accept a constant expression that evaluates to the class 'None'.
- Fixed: AInventory::Touch() should check for a local player view before trying the pickup.
- Do copy a monster's special to its morphed version so that it can be properly restored when it unmorphs.
- Fixed: Monsters with STAYMORPHED set would still unmorph.
- Fixed: A_Face should take into account the target's height when aiming pitch.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1551 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: Skin mugshots didn't load. (This adds a texture usetype for skin graphics.)
- Always spawn RocketSmokeTrail and GrenadeSmokeTrail actors, and make them invisible for players who don't want to see them. This is needed for multiplayer sync between players with different settings for cl_rockettrails.
- Added FDARI's CLOFF_JUMP_ON_MISS and CLOFF_AIM_VERT_NOOFFSET flags.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1548 b0f79afe-0144-0410-b225-9a4edf0717df
- Added Weapon.MinSelectionAmmo1 and Weapon.MinSelectionAmmo2 to exclude weapons from autoselection even if they have enough ammo to be used.
- Made FName::NameManager::Inited a static member variable.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1547 b0f79afe-0144-0410-b225-9a4edf0717df
- Added SXF_TRANSFERSPECIAL and SXF_CLEARCALLERSPECIAL flags for A_SpawnItemEx.
- Added an enum for the values a Trace callback function can return.
- Added a userdata parameter to pass to the Trace callback function.
- Added FDARI's A_CheckLOF, modified to use a Trace callback function.
- Stop storing rail hits in a global variable, and consolidate the two railgun callbacks into a single function.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1546 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: Used the wrong actor's radius in P_Thing_Projectile() to get the maxdist for P_CheckMissileSpawn().
- Always at least halve the advance vector in P_CheckMissileSpawn().
- Fixed: Don't return false from PIT_CheckThing when a shootable missile hits a nonmonster and infighting is disabled; let the normal conditions apply. Otherwise, you end up with situations where monster-fired projectiles can collide with pickups.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1544 b0f79afe-0144-0410-b225-9a4edf0717df
- When moving polyobjects, recalculate the floors and ceilings for the actors in their bounding boxes. (See http://forum.zdoom.org/viewtopic.php?f=2&t=35616)
- Fixed: Putting a lightlist in a sector caused that sector's floorlight and ceilinglight to be ignored.
- Random spawners no longer move the missile forward when spawning them, because presumably whatever spawned the random spawner already took care of this.
- Added a maxdist parameter to P_CheckMissileSpawn() to help ensure that it doesn't completely move the spawned missile outside of its shooter (and potentially beyond a wall the shooter might happen to be standing next to).
- A player's Speed is now applied to their upmove as well as their forwardmove and sidemove.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1543 b0f79afe-0144-0410-b225-9a4edf0717df
- Allow negative force for A_RadiusThrust.
- Added flags SXF_CLEARCALLERTID, SXF_MULTIPLYSPEED, and SXF_TRANSFERSCALE for A_SpawnItemEx.
- Use a missile's MaxTargetRange property as the range for P_AimLineAttack() inside P_SpawnPlayerMissile().
- Make teleport fogs target the teleported actor.
- Added spawnofs_z parameter to A_RailAttack and A_CustomRailgun.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1542 b0f79afe-0144-0410-b225-9a4edf0717df
- Use a TArray for backing up cvars overwritten by a demo.
- Added C_GetMassCVarString(), which C_WriteCVars() is now a wrapper around.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1540 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: changemap allowed changing the map in "demo mode."
- Fixed: Crash when using the console at the title screen.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1538 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: P_SpawnPlayerMissile() should not 0 the pitch for weapons that don't autoaim. This allows A_FireOldBFG to work properly when freelook is disabled.
- Fixed: The sc_man scanner must use an unsigned character type, or it won't properly recognize any unquoted characters with the eighth bit set.
- Added A_SetDamageType.
- Added Xaser's SXF_USEBLOODCOLOR for A_SpawnItemEx submission.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1537 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: Playing strife forced the inventory to be used immediately instead of being determined by the presence of an inventory overlay.
- Fixed: file_directory tried to free its input parameter.
- Fixed: Don't start the MAPINFO music just to have it replaced by the saved music when returning to a level in a hub.
- More Visual Studio with CMake fixes.
- Missing NORANDOMPUFFZ code.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1536 b0f79afe-0144-0410-b225-9a4edf0717df
- Comment out star and bstar stuff in wi_stuff.cpp.
- Redo r4164 fix: Don't clear fake planes when clearing skybox planes.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1535 b0f79afe-0144-0410-b225-9a4edf0717df
- Moved all BorderNeedRefresh and SB_state updating code into separate functions that won't crash if screen is NULL.
- Fixed: G_DoLoadLevel() has a for loop where it resets player cameras that incremented and checked the wrong variable.
- Fixed: Players using colorsets instead of custom colors overrode their team colors.
- Added TheFortuneTeller's NORANDOMPUFFZ submission.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1534 b0f79afe-0144-0410-b225-9a4edf0717df
- Properly transfer powerups between morphed and unmorphed actors by calling EndEffect() on the powerups before they transfer ownership, then calling InitEffect() on them after they transfer ownership.
- Fixed: stat skyboxes output was broken.
- Fixed: Skyboxes never cleared planes when a 3D floor was in view.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1532 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: RandomSpawner could hang on lists with monsters when nomonsters is enabled or with 'None' items.
- Fixed: A TITLEMAP defined with SpawnWithWeaponRaised set caused a crash.
- Fixed: r4067 completely disabled weapon switching via A_ReFire.
- Fixed: r3860 inadvertently inverted the damage check for thrusting in P_RadiusAttack().
- Cleared GCC warnings.
- Fixed: strcpy on map arrays didn't properly translate the array number.
- Fixed: the ExplosiveBarrel's height was wrong.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1531 b0f79afe-0144-0410-b225-9a4edf0717df
- Use a temporary bitmap when when copying true color pixels of a multipatch texture, the blend operation is not BLEND_NONE, and it doesn't just redirect straight to a direct texture.
- Fixed: The change in r3951 knew nothing about 3D floors.
- Fixed: RandomSpawner should observe the nomonsters flags when deciding what to spawn.
- Add weapon slots to key configuration menu.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1530 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: PCD_MORPHACTOR and P_MorphMonster() needed NULL pointer checks.
- Make the DOOM 3 BFG Edition the last Steam path checked, so it won't override the regular doom.wad.
- Allow negative parameters to A_Light.
- Added IF_NOSCREENFLASH.
- Added NOTRAIL flag for PowerSpeed.
- Added NoRandomPlayerclass flag for MAPINFO.
- Added time display for alt hud.
- Added Brazilian Portuguese translation.
- Fixed: APowerSpeed::Serialize needs to call the super method.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1529 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: If you hit a wall at the right moment you would some times come out of a teleporter with sliding velocity.
- Fixed incorrect -= operators in vectors.h.
- Add support for user variables on things in UDMF maps. If you include an actor's user variable in its UDMF thing definition, that user variable will be set to the desired value for that actor when the map is loaded.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1528 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: spynext/prev were unreliable with player prediction.
- Fixed: The changemap CCMD did not work for maps not defined by MAPINFO.
- Fixed: When adding a forwardmove value, P_Bob() needs to do the same pitch-dependent scaling as P_ForwardThrust().
- Changed the "notrelevant" checks in R_RenderMaskedSegRange() to not include equality in their comparison operators. Fixes one map (http://forum.zdoom.org/viewtopic.php?f=2&t=34082); might break others. Maybe. [This does not concern the OpenGL renderer.]
- Fixed: info CCMD listed bounce flags twice, under separate names.
- Skip the MF2_PASSMOBJ height checks in PIT_CheckThing() for ripper missiles.
- Fixed: Because P_OpenMapData() now reopens the containing file for the map, P_LoadGLNodes() needs a new check for if the map came from a regular wad.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1527 b0f79afe-0144-0410-b225-9a4edf0717df
- Don't use the global numsectors variable when testing if a map is a Build map in P_IsBuildMap() and P_LoadBuildMap().
- In P_SetSafeFlash(), check the requested state against every actor when Dehacked moves the flash to some other class's states instead of just assuming it's good.
- In A_ReFire, allow refiring when a weapon is pending, but weapon switching is not okay at this time.
- P_MovePsprites() should now always call P_CheckWeaponSwitch(), because the latter function now has its own WF_WEAPONSWITCHOK check in the correct place.
- When doing kickback in P_DamageMobj(), choose a random direction if the target and origin are in the exact same spot.
- Fixed: G_CheckSpot() should not use the player start's z position unless LEVEL_USEPLAYERSTARTZ is set.
- Force node building for garrison.wad from The Master Levels so that the teleporter to the red key won't leave you in the ground.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1517 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed CF_DOUBLEFIRINGSPEED is in player->cheats, not player->WeaponState.
- Added WRF_DISABLESWITCH flag for A_WeaponReady to indicate that any attempts to switch the weapon should be discarded.
- Moved MF4_BOSSSPAWNED flag copying from A_PainShootSkull to AActor::CopyFriendliness().
- Allow terrain definitions to work with overrides and non-flats.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1515 b0f79afe-0144-0410-b225-9a4edf0717df
- Added ACS profiling information.
- Do not print imported functions in the profile list.
- More options for acsprofile command.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1514 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: DrawBar's clipping didn't take the texture offset into account.
- Fixed: Using interpolation on drawbar would sometimes result in the last pixel hanging longer than it should.
- Improved draw bar clipping fix from last commit.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1513 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: Lost Souls spawned by Pain Elementals were not killed by DF2_KILLBOSSMONST.
- Reorder the althud level time map entries to match their displayed order.
- Use "Map time color" for single maps, whether in a hub or not. Only use "Hub time color" for hub times.
- Removed the netdemo flag, because it's redundant with (netgame && demoplayback).
- Fixed: The string displayed when attempting to start a new game during a netgame is "NEWGAME", not "NETGAME".
- Fixed: The menu treated netdemos as actual netgames.
- Fixed: Floor_RaiseAndCrush is not Floor_RaiseToLowestCeilingAndCrush.
- Revert r4043: WRF_NoFire is two bits, not just one.
- Fixed: A_Lower needs to check player->cheats for WF_INSTANTWEAPSWITCH, not player->WeaponState.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1512 b0f79afe-0144-0410-b225-9a4edf0717df
- Revert WRF_NOSWITCH changes from r4024.
- In P_PoisonPlayer(), keep track of the source as the poisoner, so you can get accurate kill accounting. Also, if the poisoner is a missile, remembering it is pretty pointless, since it's likely to be gone before the player ever dies from the poison.
- Separate the player weapon state flags from the other player "cheat" flags.
- Be more concise for WRF_NoFire in A_WeaponReady.
- Use P_DropWeapon() everywhere it makes sense.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1510 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: DBaseStatusBar::Draw shouldn't run for the AltHud.
- Added A_UnSetInvulnerable() to the FireDemon (aka Afrit)'s Pain state, in case it gets pained before entering its Chase state.
- P_DaggerAlert() now puts the emitter into its Pain.Dagger state if it has one, but will still use the regular Pain state if not.
- Shorten text of the longest lines in the gameplay options menu.
- Sync A_LookEx with A_Look, with regards to COMPATF_SOUNDTARGET.
- Retain the Scroll_Texture_(Left|Right|Up|Down) specials on lines for the sake of compat_useblocking.
- Fixed: The health bonuses atop the pillars in the starting room of Void could not be picked up because they no longer physically clip through the floor.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1509 b0f79afe-0144-0410-b225-9a4edf0717df
- Updated USDF spec to version 2.1
- Fixed: BobStyle was assigned as if they were flags.
- Fixed: If AInventory::SpecialDropAction returns true the item should be destroyed.
- Fixed: Building with SSE disabled triggered an error.
- Fixed: 0 duration A_Lower loops could cause an infinite loop since A_Lower checked if the player was dead in two different ways and returned before the second one.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1506 b0f79afe-0144-0410-b225-9a4edf0717df
- Do not clear the CF_WEAPONSWITCHOK flag each tic, so that the last setting from A_WeaponReady will carry over until the next A_WeaponReady. Changed P_CheckWeaponSwitch() to clear any pending weapon requests while weapon switching is disabled.
- Removed the BuildString() override that took a char** argv, because it was used nowhere.
- Fixed: BuildString() failed to properly generate command lines for arguments with embedded " characters.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1505 b0f79afe-0144-0410-b225-9a4edf0717df