- Moved the status bar Tick call after the players have been ticked by P_Ticker(), because P_PlayerThink() is where the check for unspawned players happens. If the player attached to the status bar is one of them, it will crash while ticking.
- Added ACS function CheckFont.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1594 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: Polyobjs that rotated faster than their distance would overshoot on their first tic.
- Reduced the potential for overflow when setting up the speed of a rotating polyobj.
- Fixed: The time freezer power should do nothing while predicting.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1593 b0f79afe-0144-0410-b225-9a4edf0717df
- Addded support for multi-line values in INI files, so you can't maliciously inject stray newline characters into the config file using ACS's SetCVarString.
- When purging ACS strings, free the strings themselves as well as marking them as free.
- Fixed: ACSStringPool::InsertString()'s overflow check was far too low.
- Fixed: When ACSStringPool::InsertString() triggered a garbage collection, it ignored the newly freed space and expanded the array anyway.
- Reduce ACS LineAttack's default range to the standard MISSILERANGE, because making it INT_MAX seems pretty iffy.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1590 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: Don't transform map variable string initializers into global string table entries if they don't really exist in the source string table.
- Fixed: When garbage collecting ACS strings, the active values on the ACS stack also need to be included in the mark phase.
- Added ACS function PlayActorSound. It's functionally equivalent to PlaySound, except instead of taking an actual sound name as its second parameter, it selects the sound to play based on the actor playing the sound and the selector passed as the second parameter.
- fixed: UDMF's Doom namespace needs to retain Boom's sector special flags.
- fixed: UDMF's ZDoomTranslated namespace needs to set the DUMMYSWITCHES flag so that it remains compatible with Doom-format ZDoom maps.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1589 b0f79afe-0144-0410-b225-9a4edf0717df
- Added more string functions to ACS: strcmp, stricmp (aka strcasecmp), strleft, strright, and strmid.
- Clean up excess code around a few calls to SingleActorFromTID(), since that function is already designed specifically to handle the case where tid is 0.
- Added GetActorClass and GetWeapon functions to ACS.
- Added S_ChangeSoundVolume() to change the volume of an already playing sound, accessible through the new ACS function SoundVolume.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1587 b0f79afe-0144-0410-b225-9a4edf0717df
- Added read access to an actor's melee range from DECORATE and ACS, via Blue Shadow.
- Added PlaySound and StopSound functions for ACS. They are mostly analogous to their DECORATE counterparts.
- GetActorProperty now works with the string properties that were formerly restricted to CheckActorProperty.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1585 b0f79afe-0144-0410-b225-9a4edf0717df
- Heretic and Hexen can now have their big fonts overridden by a font named "HBIGFONT". In addition, a font named "BIGFONT" will override the big font for every game.
- Added OverridePalette VOXELDEF flag.
- Added ACS function LineAttack via Ryan Cordell.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1584 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed parameter type for Floatbobphase property.
- Added AFADoomer's patch to set a text highlight color for the list menu.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1583 b0f79afe-0144-0410-b225-9a4edf0717df
- update to ZDoom r4296:
* Added a FloatBobPhase property for DECORATE. Now, if FloatBobPhase is anything but -1 it will be used directly as the initial phase, allowing to define actors that bob in sync. The allowed range of phases is 0 - 63. The main reason for this is that each actor spawn called the pr_spawnmobj RNG just to randomize this value which causes problems with non-interactive actors, in particular GZDoom's dynamic lights.
* Dynamically generated strings returned via strparam and get(user)cvar now last as long as they need to. They do not disappear at the end of each tic. You can now safely store them in variables and hold on to them indefinitely. In addition, strings from libraries no longer require you to load the exact same libraries in the exact same order. You can even store a library's string in a world variable and retrieve it on another map that doesn't load the library at all, and it will still be the correct string.
* ACS library IDs now only get 12 bits instead of 16 so that each string table can hold up to about a million strings instead of just 65536. This shouldn't be a problem, although it means that save games that had strings with the larger IDs stored in variables are no longer compatible. Since many saves don't involve libraries at all, and even many that do are not actually affected, I'm not bumping the min save version. The worst that can happen is that you get no text at all where some was expected.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1579 b0f79afe-0144-0410-b225-9a4edf0717df
- Move bitdepth check outside the loop for grayscale unpacking.
- Added ACS functions SetCVarString and SetUserCVarString.
- Make UCVarValue::String point to a constant string.
- Added ACS functions GetCVarString and GetUserCVarString.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1578 b0f79afe-0144-0410-b225-9a4edf0717df
- Added parentheses for clarity.
- Fixed potential uninitialized access in FMapInfoParser::ParseEndGame().
- Fixed: 4, 2, and 1 bit grayscale images weren't properly supported.
- Fixed: Valgrind uninitialized memory error and a signed/unsigned warning.
- Just remembered that the true color stuff generates textures differently. Changed the previous commit to expand 1, 2, and 4 bit grayscale images while reading the PNG instead of changing the palette.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1576 b0f79afe-0144-0410-b225-9a4edf0717df
- Renamed CVAR_NOSEND to CVAR_IGNORE to better reflect its intent.
- Separated CVAR_MODARCHIVE into CVAR_MOD|CVAR_ARCHIVE so that mod-defined cvars can still be identified when they aren't meant to be archived.
- Re-fixed r4279.
- Added three new ACS functions: GetUserCVar, SetCVar, and SetUserCVar.
- Added edward850's patch to cope with stalled network games.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1575 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: glbsp nodes in a wad file inside a pk3 would not be loaded.
- Fixed: Typo from r4270.
- Fixed: Possible NULL deref in P_RailAttack.
- Changed the way DrawSelectedInventory is casted so that clang doesn't warn about it.
- Fixed: Typo in WaterDropOnFloor actor's active sound.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1573 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: Strife line special 197 should have been marked repeatable.
- Fixed: Strife line special 200 should also be marked as repeatable.
- Added a definition for OB_MPMAULER1 and removed the needless reference to OB_MPMAULER2.
- Added a fallback for accented characters to use unaccented ones.
- Updated Portuguese strings with the version here: http://forum.zdoom.org/viewtopic.php?p=672839#p672839
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1571 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed possible NULL pointer derefs in P_LineAttack().
- Fixed: FxBinaryInts that needed to cast the right-side parameter to an int resolved the left side instead.
- Redo r4259, because I guess those weren't actually whitespace changes. (Although they looked like it to me.)
- Fixed: A_Face() should use other instead of self->target when calculating pitch.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1570 b0f79afe-0144-0410-b225-9a4edf0717df
- Removed the music strings from the Brazilian Portuguese translations. (And apparently some whitespace changes too?)
- Fixed: Missiles with STEPMISSILE set should probably be able to bounce off the floor they step up onto.
- Fix previous fix: Don't zero the velocity when a missile steps up and bounces.
- Fixed possible NULL pointer deref in A_FireBullets.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1569 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed possible NULL pointer deref in PrintDLS().
- Fixed possible NULL pointer deref in P_SpawnPlayerMissile().
- Fixed possible memory leak in the non-Windows version of CreatePath().
- Fixed: TAG_MINEKEY still contained the underscore character.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1568 b0f79afe-0144-0410-b225-9a4edf0717df
- Switched to a generically extensible representation for userinfo.
- Fixed: The playerinfo CCMD did not range check the player number.
- Fixed possible NULL pointer deref in AActor::Grind().
- Fixed possible NULL pointer deref in A_CustomPunch.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1567 b0f79afe-0144-0410-b225-9a4edf0717df
- 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
Instead of setting the default skybox in every sector without an explicit skybox set, set it once in the level struct and then use that for sectors with a NULL skybox. This fixes zpack's E2M3 so that when it removes its sector stacks, you will get the default skybox in their place, since stacked sectors and skyboxes use the same pointers in a sector.
Added Xaser's reactiontime for ACS and DECORATE expression patch.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1553 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