Commit graph

10656 commits

Author SHA1 Message Date
Christoph Oelckers
cb295e0441 - added parameter to PLayerPawn::GetMaxHealth to return the real maximum health, including stamina upgrades. 2017-03-01 00:04:17 +01:00
Christoph Oelckers
12915b5f6e - use an inventory flag to decide what items are slipped by DF_NO_HEALTH and DF_NO_ARMOR. With all the changes over the last 10 years this had become too spotty.
- use an enum type for ItemFlags, just like it was done for actor flags. Since the flag word is almost full it may soon be necessary to add a second one and then this kind of security check may become necessary.
2017-02-28 21:45:47 +01:00
Christoph Oelckers
dc6c91042b - fixed misordered ACS functions. 2017-02-28 18:47:18 +01:00
Christoph Oelckers
314a642527 Merge branch 'meta' 2017-02-28 14:47:00 +01:00
nashmuhandes
bb1709228c Changed FOV from a CCMD to a CVar, allowing players' FOV settings to persist. Also exported SetFOV to PlayerInfo for ZScript. 2017-02-28 14:46:30 +01:00
Christoph Oelckers
5f6da0d222 fixed double allocation of metadata. 2017-02-28 14:44:18 +01:00
Christoph Oelckers
168627f549 - native meta variables are not needed anymore. They were only a temporary aid to properly handle this, but now all have been redone. 2017-02-28 14:38:50 +01:00
Christoph Oelckers
bc0ffc4185 - removed access to the PlayerPawn's DisplayName variable. This one has implicit semantics, so wherever a displayable name is needed GetPrintableDisplayName should be called instead to allow later refactoring of the internal handling. 2017-02-28 14:33:46 +01:00
Christoph Oelckers
fc125f7eaf - reworked the obituary system to use scripted virtual overrides. Let's hope this solves the problems with the original code, now that any actor needing special treatment can override it. 2017-02-28 14:30:14 +01:00
Christoph Oelckers
851984efe0 - made GetDeathHeight a virtual scripted function.
- made GetGibHealth a virtual scripted function.
- removed a few more native meta properties.
2017-02-28 13:40:46 +01:00
Christoph Oelckers
d5250d6b9f - made WoundHealth modifiable to allow more control over the wound state. 2017-02-28 12:56:35 +01:00
Christoph Oelckers
2a4a5e7a70 - refactored a few more native meta properties. 2017-02-28 12:47:44 +01:00
Christoph Oelckers
1311f08f47 - scriptified Actor.GetBloodType as a virtual function to allow mods more flexibility here.
- made CameraHeight a modifiable actor property - it was readonly before.
- allow accessing the type constants from ZScript, this required quite a bit of explicit coding because the type system has no capabilities to search for basic types by name.
2017-02-28 12:11:25 +01:00
Christoph Oelckers
b6a1fe7fc6 - scriptified the basic attack functions, its properties and the explosion properties to test the new metadata system. 2017-02-28 10:51:32 +01:00
Christoph Oelckers
a93a7e1cac - handle player meta properties.
Only two really make sense, the rest is never used from scripts and may just remain where it was.
2017-02-28 01:23:12 +01:00
Christoph Oelckers
4a87a598fb - do floatification of the UDMF Health property as it should have been. 2017-02-28 00:59:09 +01:00
Christoph Oelckers
78a66e001a - properly handle all meta properties for inventory items. 2017-02-28 00:45:16 +01:00
Christoph Oelckers
f343d36ea9 - implemented the basics of a working metadata system.
This will store class meta properties in a separate memory block so that it won't have to muck around with PClass - which made the implementation from the scripting branch relatively useless because extending the data wasn't particularly easy and also not well implemented. This can now be handled just like the defaults.
2017-02-27 23:28:19 +01:00
Christoph Oelckers
3700dea336 Revert "- the UDMF health key for actors was not correctly implemented. This addresses the problem by adding a second one and documenting 'Health' as implemented."
This reverts commit e4e023e59a.

(This was nonsense.)
2017-02-27 22:05:20 +01:00
Christoph Oelckers
d5d383ee93 - added Floor_Stop and Ceiling_Stop action specials. 2017-02-27 21:31:59 +01:00
Christoph Oelckers
1ff4016498 - added ACS math functions floor, ceil and round. 2017-02-27 20:42:12 +01:00
Christoph Oelckers
e511f7f84b - added a damage type parameter to MDK CCMD. 2017-02-27 20:07:21 +01:00
Christoph Oelckers
ac4074a69a - allow sprites and particles simultaneously for puffs. 2017-02-27 19:51:37 +01:00
Christoph Oelckers
321c846d01 - added StealthAlpha actor property for defining a minimum visibility value of a stealth monster. 2017-02-27 19:46:27 +01:00
Christoph Oelckers
f82ab889b2 - added ACS strarg function which can convert a string into a string argument for ACS specials. 2017-02-27 18:44:58 +01:00
Christoph Oelckers
4bcbd5c011 - clear WF_WEAPONBOBBING in P_FireWeapon, because otherwise the first frame of the fire animation will be drawn in the current bobbing position and not centered. 2017-02-27 18:38:01 +01:00
Rachael Alexanderson
e9364fccb8 - Fixed: voxels were not properly remapped after "restart" ccmd 2017-02-27 18:12:49 +01:00
Christoph Oelckers
cc598dfdde - fixed: To get the final error handling from the serializer, Close must be called before the destructor gets invoked.
- added line feeds to all error messages in the serializer.
2017-02-27 15:16:03 +01:00
Christoph Oelckers
78538ed9ef - missed an else. 2017-02-27 14:53:39 +01:00
Christoph Oelckers
f9f9f2d5fc - added selfdamagefactor actor property. 2017-02-27 11:22:51 +01:00
Christoph Oelckers
e84a2899f9 - this needs one more check. 2017-02-27 10:52:29 +01:00
Christoph Oelckers
073e63ed04 - Added a check for all z-movement for floor huggers so that it doesn't skip all the height checks if +NODROPOFF is also given. 2017-02-27 10:50:21 +01:00
Christoph Oelckers
0c660ff29c - added an option to add elements to an existing options menu.
Note that for list menus this does not exist because they require complete setup to work as intended.
2017-02-27 10:37:47 +01:00
Christoph Oelckers
720e05d131 - fixed memory leak in DEM_NETEVENT.
- added handling for DEM_NETEVENT to SkipCommand.
- keep the data of DEM_NETEVENT at a fixed length to simplify handling.
2017-02-27 02:31:19 +01:00
Christoph Oelckers
3a5124e10e - fixed: TakeInventory needs to check for subclasses of PowerInfiniteAmmo. 2017-02-27 02:09:56 +01:00
Christoph Oelckers
c7cf619ff4 - Caution: Wads.GetLumpName with a char pointer is stupid because it doesn't 0-terminate its return. 2017-02-27 01:58:21 +01:00
Christoph Oelckers
1e1194a669 - fixed: Dp mot strip the top level folder name in Zips if they only contain one entry or if the first entry isn't a directory. 2017-02-27 01:53:51 +01:00
Christoph Oelckers
c8445703ac - added a workaround for the 'cannot split a seg' error in the node builder: In order to prevent all segs from ending up on the same side it will now force the bogus seg onto the other side of the node - regardless of whether this is correct or not, because the most important thing here is that the set of segs gets split to prevent the node builder from ending up in an endless recursion trying to split the same set of data and endlessly failing.
Note that this is not a fix, it's merely a countermeasure to avoid the crash in ZPack's E2M6 which this seems to achieve.
2017-02-27 01:41:27 +01:00
Christoph Oelckers
1ed2a0baf9 - fixed: The intermission screen did not show 'entering' for cluster-less maps. 2017-02-26 23:49:53 +01:00
Christoph Oelckers
e4e023e59a - the UDMF health key for actors was not correctly implemented. This addresses the problem by adding a second one and documenting 'Health' as implemented.
- fixed: Several ZDoom-exclusive actor keys did not check the current namespace.
2017-02-26 23:21:56 +01:00
Christoph Oelckers
0514a997db - added a new argument to GlassBreak to allow it to spawn other types of debris than GlassJunk by passing a spawn ID. 2017-02-26 23:07:16 +01:00
Christoph Oelckers
8c30ca213d - allow loading of zips that have one root folder with all content contained within this folder. This top level's folder name will be stripped out from all file names, unless it is a special name that maps to a known namespace. 2017-02-26 22:55:36 +01:00
Christoph Oelckers
f918a9d9a7 - added a BOUNCE_NotOnShootables flag that hopefully helps addressing the biggest glitch in the bouncing code. 2017-02-26 22:31:43 +01:00
Christoph Oelckers
80e9763d64 - added a NOMENU option for skills. 2017-02-26 22:10:35 +01:00
Christoph Oelckers
51b5b327ef - fixed constant names. 2017-02-26 21:38:08 +01:00
Christoph Oelckers
3d500f0495 - added default obituaries for damage types.
Note that this is only implemented for the new official way of doing this in MAPINFO, but not in DECORATE!
2017-02-26 21:36:06 +01:00
Christoph Oelckers
f6dd99d3aa - added A_Morph function. 2017-02-26 21:20:47 +01:00
Christoph Oelckers
24a505ed36 - fixed: The internal and scripted morph flags did not match. 2017-02-26 21:10:53 +01:00
Christoph Oelckers
346ada76bc - allow blocking controller input in the menu. 2017-02-26 20:59:24 +01:00
Christoph Oelckers
8cac2d8c84 - added a NOATTACK sector flag which prevents monsters from going to their attack states if present. 2017-02-26 20:27:02 +01:00