Commit Graph

10506 Commits

Author SHA1 Message Date
ZZYZX a924564bf3 Implemented hard separation between playsim ConsoleEvent and networked ConsoleEvent (ConsoleProcess, NetworkProcess) 2017-03-03 23:21:12 +02:00
ZZYZX 43d3e3e5c3 Assigned barrier sides to Event structures, added clearscope to ConsoleProcess because it handles both sides 2017-03-03 23:17:21 +02:00
ZZYZX f4a546aee6 Moved menus to ui side, moved AlterWeaponSprite to ui side, moved StaticEventHandler to play side (except ui virtuals) 2017-03-03 23:15:18 +02:00
ZZYZX 421f78c771 Fixed potential crash with new() in anonymous functions (is that even allowed?); Added compile-time check for disallowed new() 2017-03-03 22:52:35 +02:00
ZZYZX 3a57a9809f Removed nonew class modifier 2017-03-03 22:42:12 +02:00
ZZYZX 78533cc316 Fixed: the name of accessed field is now properly retrieved in FxStructMember::RequestAddress 2017-03-03 22:38:33 +02:00
ZZYZX 6ec7d9af59 No more crashing in anonymous functions during runtime check of virtualscope 2017-02-18 08:02:38 +02:00
ZZYZX fb9b8c8870 Re-enabled clearscope for methods; made isBlinking() clearscope 2017-02-18 07:51:41 +02:00
ZZYZX ab07b30d5e Fixed: implicit method call without specifying self should be checked as well 2017-02-18 07:48:28 +02:00
ZZYZX 463620c3b8 ClearScope is not needed for methods either. Disabled, but not removed - reenable if needed later 2017-02-18 07:33:27 +02:00
ZZYZX d7f5d8a403 ClearScope for fields essentially means 'world-writable'. We don't want to support that - disallowed 2017-02-18 07:31:07 +02:00
ZZYZX dbc595f886 Marked DrawPowerup as ui, still compiles and somewhat works :D 2017-02-18 07:30:20 +02:00
ZZYZX afc9050a43 Marked Thinker play. Marked OnDestroy and Destroy virtualscope. It compiles :D 2017-02-18 06:56:00 +02:00
ZZYZX e0ae0fdb2e Dynamic virtualscope checking. May yet be buggy. 2017-02-18 06:27:28 +02:00
ZZYZX b5ab011bb9 Static virtualscope checking. This is possible, because virtualscope can't produce false positives (data readable for everyone), only false negatives (which are handled at runtime later) 2017-02-18 04:07:12 +02:00
ZZYZX 12aa18a92b Preparing to do class-based method scopes: can't change class scope once defined (play stays play, ui stays ui) 2017-02-18 00:39:57 +02:00
ZZYZX 014db18f2a Fixed some things around 2017-02-17 23:36:16 +02:00
ZZYZX 3056570ea9 Implemented a call check between ui/play/data 2017-02-17 23:02:43 +02:00
ZZYZX a2f3d8511d Implemented a read check between ui/play/data fields with a meaningful error 2017-02-17 22:46:18 +02:00
ZZYZX a7a4406bb1 Supposedly implemented a write check between ui/play/data 2017-02-17 22:41:04 +02:00
ZZYZX 8b0dee6f66 My am dumb: PStruct is a base for PClass 2017-02-17 22:00:47 +02:00
ZZYZX ecd4f5a32d Removed supposedly debug value added in commit b0f3121bec 2017-02-17 20:25:11 +02:00
ZZYZX 496b2a74ce Disallow const qualifier for classes 2017-02-17 20:04:40 +02:00
ZZYZX 195ae24dcb const method cannot write to self 2017-02-17 19:54:59 +02:00
ZZYZX 338e676e73 Allow calling const methods on readonly structs 2017-02-17 19:25:29 +02:00
ZZYZX 0f031c5f22 Renamed 'allowui' to 'clearscope'. 'allowui' doesn't reflect the real meaning of the keyword which clears implicit 'play' or 'ui' inherited from parent class (for classes) or owning type (for methods/fields) 2017-02-17 18:24:01 +02:00
ZZYZX 2b20abff02 Fixed consistency of checks 2017-02-17 18:01:39 +02:00
ZZYZX 4fe9c7d8c8 Added parsing of ui, play, allowui and const qualifiers 2017-02-17 17:58:16 +02:00
ZZYZX 5e5d0d3e57 Using separate keyword 'nonew' as reverse abstract; nonew is inherited, and nonew class can only be created from the first nonew class in the hierarchy 2017-02-16 12:40:09 +02:00
ZZYZX 0803faf596 Compile time check for abstract class instantiation to reduce programming errors ASAP 2017-02-16 04:22:14 +02:00
ZZYZX 0819dd8d89 Actually pass PFunction to OP_NEW 2017-02-16 04:14:21 +02:00
ZZYZX 7d3663500f Disallow creation of abstract classes outside of their own class (this is so that modders can create their own factory methods, not just for native) 2017-02-16 03:49:03 +02:00
ZZYZX 363990a105 Class abstractness should be inherited 2017-02-16 02:31:20 +02:00
ZZYZX 3577e4eddc Fixed possible nullptr dereferencing on c->Type() == nullptr 2017-02-16 02:14:49 +02:00
Rachael Alexanderson bd86abede3 - fixed Skulltag rune bugs.
1) When used in a hub, returning to a previous level in the hub deactivated the runes if they were a permanent powerup.
2) When picking up two different runes with the same effect, one rune wearing off removed the effect completely.
3) This entire system was done through an extremely hacky CheatFlags implementation. This was a gross hack, and it was no wonder it didn't always work properly.
2017-02-15 16:37:45 +01:00
Christoph Oelckers 46d12635ce - fixed warning 2017-02-15 13:17:20 +01:00
Christoph Oelckers 67f6f28b55 - fixed: When finding the highest floor plane on a given side of a linedef, the necessary tests may not depend on the actual highest floor, which may originate from the other side of the line and cause valid planes that are between the currently set plane and the actual highest floor to be skipped. 2017-02-15 13:14:59 +01:00
Christoph Oelckers d8b8767ee9 - disabled render events pending further discussion and evaluation. 2017-02-15 12:27:50 +01:00
Christoph Oelckers c8db1f151e - fixed: All FNames inside actor classes need to be FNameNoInit or their constructor will overwrite them after copying the defaults. 2017-02-15 12:16:24 +01:00
Christoph Oelckers d8ebbcfc08 - fixed: When loading a savegame the player class in the userinfo needs to be updated.
- fixed: Class pointers should not be added to the list of garbage collected pointers.
- fixed several warnings in the event code.
2017-02-15 11:55:08 +01:00
Christoph Oelckers 6fef653aa1 - exported GetUDMF methods to scripting. 2017-02-15 01:03:47 +01:00
Christoph Oelckers 8d7a64bd17 - added a virtual 'used' method that gets called when the player presses use on an actor. This method will only be called if the actor does not have the USESPECIAL flag - that one will be handled as before. 2017-02-15 00:43:30 +01:00
Christoph Oelckers c01289e999 - added ZScript property handling for names, sounds and colors. 2017-02-14 23:28:49 +01:00
Christoph Oelckers 2f1b5c375e - fixed: Line_SetPortal crashed with one-way portals. 2017-02-14 23:13:29 +01:00
Christoph Oelckers c5204f34ca - fixed: The code to play the mage lightning's attack sound was converted wrong, because it used the same structure as looping sounds normally so, but doesn't actually loop. 2017-02-14 22:51:53 +01:00
Christoph Oelckers a6156297ce - don't adjust sprite offsets of IWAD sprites in sequences which have been replaced partially. This can be overridden by specifying 'iwadforced' in the SPROFS lump. 2017-02-14 22:04:52 +01:00
Christoph Oelckers 3170591e32 - restated some weird number manipulation in SBARINFO for powerup time. This appears to be needed to distinguish between non-expiring items and non-present items. 2017-02-14 22:04:52 +01:00
alexey.lysiuk a9f650c3f2 Fixed compilation warnings reported by GCC/Clang
src/events.cpp:167:66: warning: format specifies type 'char *' but the argument has type 'char' [-Wformat]
src/events.cpp:167:84: warning: data argument not used by format string [-Wformat-extra-args]
src/events.cpp:1036:20: warning: comparison of integers of different signs: 'int' and 'unsigned long' [-Wsign-compare]
2017-02-14 22:13:31 +02:00
alexey.lysiuk dd0f55e8d8 Fixed compilation of Cocoa backend 2017-02-14 22:02:47 +02:00
Christoph Oelckers b7b0e64471 - separated splash detection from water level setting.
This could cause problems if 3D floors with different properties for slashing and waterlevel were occupied at the same time. By keeping the slash code separate both parts can be handled without having to look out for the other.
2017-02-14 20:11:30 +01:00