Christoph Oelckers
d358e401ee
- removed all access to the consoleplayer variable from the play code
...
There is one exception in ACS for a net arbitrator check.
Aside from this the bot_observer CVAR was also removed. This was never implemented properly and could stomp upon custom player settings.
2019-02-01 17:02:10 +01:00
Christoph Oelckers
ddab2c3e78
- removed the playernum parameter from CheckLocalView
...
This was always used with 'consoleplayer' which really is the only thing making sense here. But this is a part of the global state which should be avoided in play code.
In particular, this makes no real sense in case of secondary maps where it should always return false.
2019-01-31 03:29:25 +01:00
Christoph Oelckers
e30f116faf
- moved bglobal into FLevelLocals
...
This is still all static data, only the location has changed, but none of the access.
2019-01-30 01:38:18 +01:00
Christoph Oelckers
8bbdee5c28
- redirect most references to the global players array through FLevelLocals.
...
The Map loader may not access any global state at all - everything it can touch must be exchangable.
Furthermore, if we want to sandbox each level, there may be no direct access to any kind of global state whatsoever from the play code.
2019-01-30 01:15:32 +01:00
Christoph Oelckers
4ad327d7e0
- moved G_ChangeLevel and other exit functions into FLevelLocals.
2019-01-29 23:45:14 +01:00
Christoph Oelckers
1dc11c5032
- changed infighting check so that the static skill checker does not access the level
...
Instead the level needs to be queried now.
2019-01-28 14:31:23 +01:00
Christoph Oelckers
06ba8c4c00
- 50 more simple replacements of 'level'
2019-01-27 17:35:50 +01:00
alexey.lysiuk
11958b713e
- fixed many compilation errors with GCC and Clang
2019-01-23 20:45:01 +01:00
Christoph Oelckers
a11eea98b5
- replaced some NULLs with nullptr.
2019-01-06 09:39:35 +01:00
Christoph Oelckers
7b235ea13e
- moved the per-level ACS state into FLevelLocals.
2019-01-05 18:19:35 +01:00
Christoph Oelckers
9521b6cd1f
- removed all remaining native parts of APlayerPawn.
...
Unlike the other classes, the places where variables from this class were accessed were quite scattered so there isn't much scriptified code. Instead, most of these places are now using the script variable access methods.
This was the last remaining subclass of AActor, meaning that class Actor can now be opened for user-side extensions.
2019-01-03 22:05:49 +01:00
Christoph Oelckers
c18e895272
- exported all native components of APlayerPawn.
...
Only the class definition itself remains and needs to be taken care of.
2019-01-03 18:01:58 +01:00
Christoph Oelckers
2258a71c36
- took several methods out of the native PlayerPawn implementation, either by scriptification or moving them to other places.
2019-01-03 13:59:46 +01:00
Major Cooke
8bbbd95dfd
- Fixed: NODAMAGE was not accounted for with pain.
2019-01-02 15:37:43 +01:00
Major Cooke
7acf43741a
Fixed: IsFakePain received the modified damage instead of the raw, preventing ALLOWPAIN from working as intended.
2018-12-28 17:23:55 +01:00
Major Cooke
1e741446d7
Reduced redundancy by putting all function aftermath handling in a subfunction.
2018-12-26 11:55:42 +01:00
Major Cooke
6372cdaa41
Split off pain chance triggering from ReactToDamage into its own function and gave ZScript access to it.
...
- TriggerPainChance(Name mod, bool forcedPain)
- One exception: PainThrehold is only checked in ReactToDamage, since this function does not require checking damage amount.
2018-12-26 11:55:42 +01:00
Major Cooke
2f7fae2fb0
DamageMobj Refactor
...
- Split off all reactive functionality (pain, infighting, etc) into its own function, ReactToDamage.
- Refactored all DamageMobj's damage <= 0 values.
- Any unconditional cancellations now return -1. ReactToDamage will not be called if values < 0.
- All pain/wound/target changing allowances return 0.
2018-12-26 11:55:42 +01:00
Christoph Oelckers
9348baeeb1
Removed all remaining references to AInventory
...
What remains is the class definition and one single reference that will be scriptified.
2018-12-04 17:11:36 +01:00
Christoph Oelckers
cd563cc4db
Removed more literal references to AInventory.
2018-12-04 17:00:48 +01:00
Christoph Oelckers
3d28006eda
- started removing literal references of AInventory, so far only simple stuff.
2018-12-04 00:41:39 +01:00
Christoph Oelckers
39d90d022b
- made the BUddha checks readable again.
2018-12-03 09:48:05 +01:00
Major Cooke
6fd3bea38c
- fixed: P_PoisonPlayer and P_PoisonDamage did not check for NODAMAGE.
...
- fixed: P_PoisonDamage's check for Buddha2 and the Buddha powerup were inverted.
- fixed: P_PoisonDamage checked the modified damage instead of the raw, allowing amplifiers to boost the damage beyond telefrag and circumventing regular buddha.
2018-12-02 21:14:22 +01:00
Christoph Oelckers
2e383073e8
- scriptified the AutoUseHealth feature.
...
This again is a piece of code that reads and even writes to inventory items' properties, so better have it on the script side.
2018-12-02 19:45:45 +01:00
Christoph Oelckers
2cb0b2db87
- took the last methods aside from Tick and Serialize out of AInventory.
2018-12-02 14:56:10 +01:00
Christoph Oelckers
460c400315
- scriptified ApplyKickback.
2018-11-25 01:12:45 +01:00
Christoph Oelckers
e856e3c830
- moved the kickback code in P_DamageMobj into a subfunction.
...
This is a first attempt to reduce the complexity of that 600+ lines monstrosity, and also a good first target for scriptification.
2018-11-25 01:01:34 +01:00
Christoph Oelckers
595208f2fd
- exported a few more weapon handling functions so that the native GetDownState stub could be removed.
2018-11-24 18:21:40 +01:00
Christoph Oelckers
bd84a60663
- scriptified the rest of the morph code.
2018-11-24 10:47:42 +01:00
Christoph Oelckers
94ed30e782
- removed the default parameter handling from all native script functions because it is no longer needed.
2018-11-17 10:03:40 +01:00
Major Cooke
9a7f570b19
Added DMG_NO_ENHANCE for DamageMobj.
...
- Disables PowerDamage's effect, similar to DMG_NO_PROTECT disabling PowerProtect.
2018-11-10 16:18:33 +01:00
Christoph Oelckers
9df7ce1f9a
- fixed: P_DamageMobj should clear reactiontime only for non-players.
...
For players this variable has an entirely different meaning which does not agree with being modified here.
2018-11-01 09:27:38 +01:00
Marrub
0b460ccb03
Squashed commit of the following:
...
commit 767e3a64f0d5fd27ef56de6e93221e9b2016a0c7
Author: Marrub <marrub.xz@gmail.com>
Date: Tue Oct 30 04:01:09 2018 -0400
ProMessage -> PronounMessage
commit 305477f63fb669f8cf2d9f6d609ed3988f437664
Author: Marrub <marrub.xz@gmail.com>
Date: Mon Oct 29 23:56:58 2018 -0400
improve variable naming
commit f3f0245d0cdcc1b0a8a9b74806bc8954be747f40
Author: Marrub <marrub.xz@gmail.com>
Date: Mon Oct 29 19:52:32 2018 -0400
add "neutral" gender option and better obit formatting
2018-10-30 21:42:09 +01:00
Christoph Oelckers
fad406c4c9
- got rid of FNameNoInit and made the default constructor of FName non-initializing.
...
This setup has been a constant source of problems so now I reviewed all uses of FName to make sure that everything that needs to be initialized is done manually.
This also merges the player_t constructor into the class definition as default values.
2018-08-19 08:19:19 +02:00
Christoph Oelckers
ff69d945e1
- fixed: A global variable was used to pass MeansOfDeath to ClientObituary.
...
The problem here is that this affects the public scripting interface so it cannot be committed to master without further adjustments.
# Conflicts:
# src/p_interaction.cpp
2018-07-29 17:00:05 +02:00
alexey.lysiuk
7009755c52
- fix crash on dying when player class has no death states
...
https://forum.zdoom.org/viewtopic.php?t=60815
2018-06-05 11:06:31 +03:00
alexey.lysiuk
fc91827900
- trigger WorldThingDamaged event before WorldThingDied
...
https://forum.zdoom.org/viewtopic.php?t=60597
2018-05-16 20:48:59 +02:00
alexey.lysiuk
2ae8d39441
Removed all superfluous #include's
...
Automatically optimized by CLion IDE with manual corrections
2018-04-24 14:30:35 +03:00
Major Cooke
0d841ab4df
- Added DMG_NO_PAIN for DamageMobj.
2017-12-16 12:17:55 -05:00
Rachael Alexanderson
012496ee98
- added cheat protection to sv_damagefactor*
2017-07-26 13:32:45 -04:00
Rachael Alexanderson
2e6c4eeab9
- removed NOSAVE flags from sv_damagefactor* cvars so that they get put in a savegame
2017-07-22 08:25:39 -04:00
Rachael Alexanderson
77617a2757
Merge branch 'master' into qzdoom-merge
2017-07-19 17:32:41 -04:00
Rachael Alexanderson
5918167fb3
- added 'kill baddies' cheat - does the same thing as 'kill monsters' only it ignores friendly monsters
2017-07-19 15:03:27 -04:00
Rachael Alexanderson
9eb0b64ab0
- Added new "sv_damagefactor*" variables.
...
sv_damagefactorplayer: Scales damage for player
sv_damagefactorfriendly: Scales damage for all other +FRIENDLY objects
sv_damagefactormobj: Scales damage for everything else (incl. monsters and decorations)
2017-07-15 03:38:10 -04:00
Rachael Alexanderson
a93efb1e9e
- slightly increase source code readability by moving a flag from one line to another.
2017-05-16 09:52:50 +02:00
Rachael Alexanderson
c6946cc672
- removed all instances of CF_POWERBUDDHA
2017-05-16 09:52:50 +02:00
Rachael Alexanderson
fe023b5ca4
- changed Buddha powerup from a flag to an inventory check
2017-05-16 09:52:50 +02:00
Major Cooke
b1a8ef54f6
- Fixed bitwise comparison.
2017-05-16 09:52:50 +02:00
Major Cooke
6bbbd28a08
- Added missing LAXTELEFRAGDMG support to SelfDamageFactor.
2017-05-15 19:19:35 +02:00
Major Cooke
795f8f0578
- Added a separate cheat flag to handle buddha powerups. Currently, Buddha powerups could interfere and disable the actual player cheat unintentionally, when the player may not want their actual cheat to be turned off.
...
- Set some overlooked 1000000 damage points to TELEFRAG_DAMAGE inside the falling damage code.
2017-05-14 17:22:46 +02:00