Commit Graph

11277 Commits

Author SHA1 Message Date
Christoph Oelckers 8bd9c5a983 - moved some ACS enums from p_acs.h to p_acs.cpp.
There is really no point including this in multiple files if only one of them actually uses these constants.
2017-03-09 09:49:07 +01:00
Christoph Oelckers 77bac4f6fa - fixed code generation for min/max when the first operand was a local variable or constant.
The code for constants was not optimal because the first operand of the instructions cannot be constant. This was solved by swapping it with the second choice which will always be non-constant.
The code for local variables did not allocate a new destination register and would overwrite the first parameter's variable.
2017-03-09 09:36:12 +01:00
Rachael Alexanderson 4d70b01da5 - followed through with GZDoom's SQWORD removals. 2017-03-08 21:35:20 -05:00
Rachael Alexanderson cc9a2e5121 Merge https://github.com/coelckers/gzdoom 2017-03-08 21:25:24 -05:00
Magnus Norddahl 279fa7e886 Non-SSE version of the sky drawers 2017-03-08 23:35:13 +01:00
Christoph Oelckers a632fae33f - for some reason the change to c_expr.cpp got lost.
- moved NO_SANITIZE to autosegs.h, because it's the only place where it is used.
2017-03-08 21:14:21 +01:00
Christoph Oelckers b513b32bcf - reduced missing texture messages in the menu to warnings. 2017-03-08 19:04:35 +01:00
Christoph Oelckers f341e7fb6a - removed SQWORD, there were only a handful of occurences. 2017-03-08 19:02:50 +01:00
Christoph Oelckers ba0f5a3f94 - most WORD and SWORD are gone. 2017-03-08 18:55:55 +01:00
Christoph Oelckers 8ab562ef13 - the fourth. 2017-03-08 18:55:54 +01:00
Christoph Oelckers 6dee9ff566 - replaced another large batch of homegrown type use. 2017-03-08 18:55:53 +01:00
Christoph Oelckers 6c6bab73ad - more of the same. 2017-03-08 18:55:53 +01:00
Christoph Oelckers ad41b23506 - replaced the homegrown integer types in all p* sources and headers. 2017-03-08 18:55:52 +01:00
alexey.lysiuk 3a0e29dab9 Added missing linker options for native MIDI support on macOS
Continuous integration is a cool thing: I completely forgot about addition of these frameworks because of my build environment which relies on static libraries and custom command line options
2017-03-08 16:11:04 +02:00
Magnus Norddahl b281a697ce Document the algorithm used for generating the 1D shadow maps 2017-03-08 14:12:59 +01:00
Christoph Oelckers b8f7e305db - changed TObjPtr to take a pointer as its template argument and not the class it points to.
This addresses the main issue with TObjPtr, namely that using it required pulling in the entire class hierarchy in basic headers like r_defs which polluted nearly every single source file in the project.
2017-03-08 13:35:21 +01:00
Christoph Oelckers 1cb89c6b37 - fixed bad call to validate function. 2017-03-08 13:35:21 +01:00
Magnus Norddahl d09c3ad305 Move all GPU handling to gl_shadowmap and rename gl_lightbsp to gl_aabbtree 2017-03-08 13:31:19 +01:00
Magnus Norddahl 8687a9868a Rename Level2DShape to LevelAABBTree and add a bit of documentation to it 2017-03-08 12:40:45 +01:00
alexey.lysiuk de9c9221fe Added AudioToolbox MIDI device for macOS
This device is the default one for OpenAL backend on Apple's platform
2017-03-08 11:23:36 +02:00
alexey.lysiuk 54ca55f070 Default MIDI device is now created by sound backend
OpenAL backend now plays music by default
It uses WinMM device on Windows and OPL on other platforms
2017-03-08 11:04:02 +02:00
Rachael Alexanderson 527a172fcd Merge https://github.com/coelckers/gzdoom 2017-03-07 22:03:56 -05:00
Magnus Norddahl 850e61d1c9 Add shadow test to sprites 2017-03-08 00:34:08 +01:00
Christoph Oelckers d911cdcfe7 - missed a bit. 2017-03-07 22:18:50 +01:00
Christoph Oelckers e2f3a09dd0 - refactored the scope check for VirtualScope calls.
It now uses a dedicated opcode instead of piggybacking on OP_CALL and it passes data that is closer to the VM. Symbols should be avoided at this level.
It also will skip the scope instruction if the code generator detects that both calling function and the self pointer type have the same scope, this assumes that subclasses cannot flip between UI and Play.
2017-03-07 22:17:48 +01:00
Christoph Oelckers 0c686c593b - simplify the runtime checks for OP_NEW.
They are not needed for OP_NEW_K which can evaluate the class relations at compile time and for OP_NEW the calling function can also be checked at compile time, passing only the scope value itself.
2017-03-07 19:57:55 +01:00
Christoph Oelckers 7a0c466b24 - fixed: For reflective floors, closed doors need to be considered an outer boundary, even if the floor below the door is reflective itself. 2017-03-07 18:59:48 +01:00
Rachael Alexanderson 71f400e238 Merge https://github.com/coelckers/gzdoom 2017-03-07 10:00:20 -05:00
Magnus Norddahl 6df3b3fbca Changed the light collision structure uploaded to the GPU to be a binary tree using AABBs for the nodes instead of a BSP plane 2017-03-07 15:58:22 +01:00
ZZYZX 620ce72ebd Fixed E_Responder for mouse events. It being active during console was actually a bug, because console should prevent any events. 2017-03-07 12:46:26 +01:00
ZZYZX 883048b538 Added E_Responder call for direct mouse input interception 2017-03-07 12:46:26 +01:00
Christoph Oelckers 1c95ddacb8 Revert "Moved some ancient playsim mouse input code around so that it works properly with input events"
This reverts commit 2e0eb742eb.

This effectively nullifies the attempt to get a higher mouse update rate for the display.
2017-03-07 10:26:03 +01:00
ZZYZX a681b5b706 Just in case, don't send useless mouse move events to G_Responder. 2017-03-07 09:47:47 +01:00
ZZYZX 2e0eb742eb Moved some ancient playsim mouse input code around so that it works properly with input events 2017-03-07 09:47:47 +01:00
Rachael Alexanderson bd50b5d05a Merge https://github.com/coelckers/gzdoom 2017-03-06 19:40:55 -05:00
Magnus Norddahl 65f8d65858 Minor code clean up 2017-03-06 23:27:02 +01:00
Rachael Alexanderson cb8b2de287 - somehow, this missed a few. 2017-03-06 16:58:48 -05:00
Christoph Oelckers 9d6b5f7015 - switched the menu code over to the data types of the event system.
Note that this will require adjustment of all menu code which overrides the Responder method!
2017-03-06 22:27:51 +01:00
Rachael Alexanderson 28abc96aef - fully implemented "nolightfade" to turn off diminishing lights in the software renderer.
- unfortunately, LIGHT2SHADE had to be transformed into a namespaced function.
2017-03-06 16:14:54 -05:00
Rachael Alexanderson 5c3b9d81ad Merge remote-tracking branch 'origin/no-diminishing-light' 2017-03-06 13:47:33 -05:00
Christoph Oelckers 4f97db74f2 - fixed: The deprecation checks in the compiler backend were wrong. 2017-03-06 19:24:31 +01:00
Rachael Alexanderson 134c2f3f38 Merge https://github.com/coelckers/gzdoom 2017-03-06 12:36:34 -05:00
Major Cooke e111b0b92e Fixed: Deprecated functions could not act because FxVMFunctionCall::CheckAccessibility returned false on warning. 2017-03-06 17:37:18 +01:00
alexey.lysiuk cf23deef74 Fixed ssize_t type definition for mpg123 (affects MSVC x64 only)
According to MinGW headers (which is used for compiling libmpg123) ssize_t type must be 64-bit in size on 64-bit Windows
Moreover it was impossible to build GZDoom with the recent versions of libmpg123 because of wrong type redifinition
Tested MP3 music on Deus Vult II with Release x64 and OpenAL backend
2017-03-06 18:05:06 +02:00
ZZYZX 21ecd714ec Added a way to tell apart console-executed events from code-executed SendNetworkEvent 2017-03-06 11:23:36 +01:00
alexey.lysiuk 4eb9f662cb Fixed compilation with Clang
src/scripting/backend/codegen.cpp:8568:10: error: cannot initialize return object of type 'FxExpression *' with an rvalue of type 'bool'
2017-03-06 10:41:17 +02:00
Rachael Alexanderson 7ef8ed5867 Merge https://github.com/coelckers/gzdoom 2017-03-05 18:40:44 -05:00
Gaerzi ad89d3eea0 Added SLADE3's colourise and tint translations.
Includes support for ACS.
Added tokens for '#' and '@' in sc_man_scanner.re.
2017-03-05 22:50:35 +01:00
Rachael Alexanderson b4079b9915 - implemented "hazardcolor" and "hazardflash" properties. This affects strife's sector damage type that passively builds up over time. setting "hazardcolor" changes the gradual blend that is used when palette flash is disabled. setting "hazardflash" changes the flashing blend that is used when palette flash is turned on. 2017-03-05 22:48:46 +01:00
Christoph Oelckers 2b5fea4ea8 - added version checks for function calls and virtual overrides.
- restricted the UI functions in inventory.
2017-03-05 21:44:10 +01:00
Christoph Oelckers 8a5daf211c - added version check for member variables. 2017-03-05 20:41:41 +01:00
alexey.lysiuk f9e543bed3 Fixed black target screen during wipe (legacy renderer only)
Credits: NiTROACTiVE and Erick194
https://www.doomworld.com/vb/source-ports/93179-two-issues-im-having-with-gzdoom-v2-3-2/
2017-03-05 20:51:48 +02:00
Rachael Alexanderson effe8a1e80 Revert "- started adding ARM support. incomplete. won't compile. don't try."
This reverts commit be8abba344.
2017-03-05 13:07:25 -05:00
ZZYZX 8400961a00 Did some cleanup - since FScopeBarrier is not in codegen now, it's possible to include it properly from vm.h 2017-03-05 18:39:59 +01:00
Christoph Oelckers 456ac64723 - implemented version checks for compile-time type determination and for class inheritance.
Note that in this system, DECORATE counts as version 2.0, so any data that should be available to DECORATE should not use version restriction.
2017-03-05 17:58:55 +01:00
Magnus Norddahl eb7955694b Disable diminishing light in software renderer 2017-03-05 16:57:58 +01:00
Christoph Oelckers 7df698dad8 - implemented the parser basics of a ZScript versioning system.
Note that this completely disables the newly added keywords 'play' and 'ui' for unversioned code to allow using them as identifiers as I have found at least one mod that uses a variable named 'play' that would have been rendered broken otherwise.
This also disables many ZScript only keywords for other parsing jobs.
2017-03-05 14:13:00 +01:00
alexey.lysiuk 5d3244c3a7 Fixed minor issues in config file reader
Removed hardcoded values from long lines handling and made sure that pointer to the last character is always initialized
2017-03-05 13:07:51 +02:00
alexey.lysiuk 27376b1697 Fixed compilation of Debug configuration
src/scripting/vm/vmexec.cpp:204:44: error: no member named 'Native' in 'VMScriptFunction'
2017-03-05 11:39:25 +02:00
ZZYZX 38b86ad83c No need for explicit EFX_Self check in FxStructMember::RequestAddress if self is set to readonly elsewhere. 2017-03-05 09:49:31 +01:00
ZZYZX 1832531726 Fixed: check protected fields against analog of OwningClass in functions, as opposed to the type that the field was accessed from. 2017-03-05 09:49:31 +01:00
ZZYZX 3eafc13b08 Removed BarrierSide from VMFunction, since it's obsolete with addition of VarFlags 2017-03-05 09:49:31 +01:00
ZZYZX 7cbabfb0d4 Implemented implicit 'protected' inheritance in virtual functions 2017-03-05 09:49:31 +01:00
ZZYZX b87f9b540e Implemented 'protected' on fields and methods 2017-03-05 09:49:31 +01:00
ZZYZX 9d4179ca06 Protected on methods of StaticEventHandler is completely useless 2017-03-05 09:49:31 +01:00
ZZYZX 6af5c1fa2b Produce a warning if clearscope is used on non-inner structs. Also now checking for outer class presence correctly. 2017-03-05 09:49:31 +01:00
ZZYZX 86a494aacd Can use clearscope on struct to signify that it should be plain data even if defined inside a play/ui class 2017-03-05 09:49:31 +01:00
ZZYZX 6c90d05407 By default, inner struct in class should take the scope of it's outer class 2017-03-05 09:49:31 +01:00
ZZYZX 0a7aebae93 Fixed const method qualifier. Also, fixed: const is not clearscope, treat differently. 2017-03-05 09:49:31 +01:00
Rachael Alexanderson 2c27b74e34 Merge https://github.com/coelckers/gzdoom 2017-03-05 02:55:38 -05:00
Christoph Oelckers f07bd5ec65 - fixed some mess by two nearly similarly named flags. 2017-03-05 00:36:32 +01:00
Christoph Oelckers 600f57405f - fixed typo in TexMan.GetSize. 2017-03-05 00:28:15 +01:00
Rachael Alexanderson be8abba344 - started adding ARM support. incomplete. won't compile. don't try. 2017-03-04 16:50:42 -05:00
Rachael Alexanderson b8b5360de1 Merge https://github.com/coelckers/gzdoom 2017-03-04 07:28:02 -05:00
Christoph Oelckers cfafbfe4f2 - removed FStringNoInit.
This was development garbage.
2017-03-04 12:55:20 +01:00
Christoph Oelckers 7dbc6939c4 - declared most native getters in Actor as const.
- made the self pointer of const functions readonly.

This seems to work fine. Both calling a non-const function and trying to assign a value to a member fail with an error message.
2017-03-04 12:43:07 +01:00
Christoph Oelckers b3ba5bfe2c - allow 'const' on class functions. This is preferable to 'clearscope' so that the UI code can call getter functions without having to declare things as 'clearscope'.
Clearscope is a dangerous context and should be limited to the minimum extent possible and preferably be blocked in user code.
This may still need some work on const functions but better have it in now.
2017-03-04 12:07:45 +01:00
Christoph Oelckers 5551f3a8c5 - declared the sectorplanes in Sector as read only and marked all relevant functions in the planes themselves const.
This is to block modification of the planes directly. For future-proofness with renderer changes everything that alters these values should go through he function interface.
2017-03-04 11:48:36 +01:00
Christoph Oelckers 3879e67cee - the #if was in the wrong place. 2017-03-04 11:34:53 +01:00
alexey.lysiuk a5edd48996 Fixed remaining warning reported by Clang
src/scripting/zscript/zcc_compile.cpp:2456:54: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
2017-03-04 12:23:15 +02:00
alexey.lysiuk d8cee4d3a5 Fixed most of warnings reported by Clang
src/scripting/zscript/zcc_compile.cpp: warning: comparison of integers of different signs: 'int' and 'unsigned long' [-Wsign-compare]
src/p_acs.cpp: warning: format specifies type 'char *' but the argument has type 'PClass *' [-Wformat]
2017-03-04 12:17:53 +02:00
alexey.lysiuk 8a1e0ee4b5 Fixed compilation with GCC/Clang
src/menu/menu.cpp:806:20: error: cannot pass non-trivial object of type 'FString' to variadic function; expected type from format string was 'char *' [-Wnon-pod-varargs]
2017-03-04 12:03:31 +02:00
Christoph Oelckers a7fdf4b90d - fixed: M_Init needs to catch VM exceptions from MENUDEF init to print out meaningful error messages in case something goes wrong. 2017-03-04 10:58:34 +01:00
Christoph Oelckers fd4727e701 - did a bit of cleanup.
- disabled the runtime check in OP_CALL because as implemented it doesn't clean up properly and is not fully implemented.
2017-03-04 10:28:51 +01:00
Magnus Norddahl 8515f9720a 1D shadow maps are now working 2017-03-04 09:14:01 +01:00
ZZYZX 3338fb7f33 Added SendNetworkEvent static method to EventHandler; Fixed qualified static method call from own class (previously was 'shadowed' by qualified virtual method call) 2017-03-04 00:57:41 +02:00
ZZYZX c9a994a885 Fixed: clearscope should also clear the inherited scope (through struct member access chain); Fixed: struct member access chain should ONLY work for structs (forgot that FxClassMember inherits FxStructMember) 2017-03-04 00:04:19 +02:00
ZZYZX 723f9770a4 Merge remote-tracking branch 'gz/master' into gz_master2 2017-03-03 23:33:02 +02:00
Rachael Alexanderson 21a8964bea Merge remote-tracking branch 'gzdoom/master'
# Conflicts:
#	src/v_video.cpp
2017-03-03 16:29:33 -05:00
ZZYZX a924564bf3 Implemented hard separation between playsim ConsoleEvent and networked ConsoleEvent (ConsoleProcess, NetworkProcess) 2017-03-03 23:21:12 +02:00
Rachael Alexanderson 4b63092c7a - disable size checking in windowed mode for vid_setmode, allowing it to set arbitrary sizes. 2017-03-03 22:19:58 +01: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
Christoph Oelckers fd20e1d78f - allow hooking custom serializers into PPointer so that serializable types can be handled without having to create new type classes which would be a bit unwieldy thanks to how the type system works. 2017-03-03 20:11:13 +01:00
Christoph Oelckers c630b07011 - replaced SDWORD with int32_t globally.
This type wasn't used in the software rendering code so it could be removed already. The other homegrown types will have to be dealt with later.
2017-03-03 19:35:08 +01:00
Christoph Oelckers f563a296c2 - added an ACS ScriptCall function. So far only superficially tested. 2017-03-03 19:23:27 +01:00
Christoph Oelckers 217bcb847d - fixed: When the savegame code errors out, some cleanup is required in G_DoSaveGame. 2017-03-03 19:19:19 +01:00
Christoph Oelckers 7736e42740 - fixed: The respawn event handler was not called for a regular in-game respawn, only for a cheat resurrection. 2017-03-03 18:53:11 +01:00
Magnus Norddahl 6055f136d8 Make sure SwapInterval is only ever called while the default frame buffer is bound to avoid problems with some drivers 2017-03-03 16:55:18 +01:00
Rachael Alexanderson b3a69e1df8 Merge https://github.com/coelckers/gzdoom 2017-03-02 18:13:33 -05:00
Magnus Norddahl 0d1deddae5 Bind shadow map texture for main.fp and sample from the shadowmap texture 2017-03-02 19:10:57 +01:00
Christoph Oelckers 1761da6079 - fixed: AActor::Howl checked HowlSound for the wrong type. 2017-03-02 18:40:01 +01:00
Christoph Oelckers 8253b91d97 - fixed: The stair and donut builders did not initialize FFloor::m_Instant. 2017-03-02 18:18:34 +01:00
Magnus Norddahl 538d516c9a Upload shadow map index for each light to main.fp
Move storage buffer binding location
2017-03-02 18:07:47 +01:00
Magnus Norddahl 62c285f7b3 Create a shadowmap texture and upload light list 2017-03-02 16:19:06 +01:00
Magnus Norddahl 7a4b01471d Add class updating and managing the shadow map texture 2017-03-02 16:19:06 +01:00
Magnus Norddahl 6363c6cf58 Add a shadowmap shader 2017-03-02 16:19:06 +01:00
Magnus Norddahl 58c7c3c902 Upload BSP tree to the GPU 2017-03-02 16:19:06 +01:00
Rachael Alexanderson 26f7902c3f - fixed: If player is killed by world, attacker was not checked for nullptr, causing a crash. 2017-03-02 13:02:25 +01:00
Christoph Oelckers ff88ecd3f0 - a bit more reordering for another minor performance gain. 2017-03-02 12:55:04 +01:00
Christoph Oelckers 4dc0599a6c - did a bit of reordering AActor's variables to group the ones together which are accessed by the renderer. Tested with some actor-heavy maps this does provide a small, approx 3-4% speedup in the OpenGL sprite processing function. 2017-03-02 12:37:25 +01:00
Christoph Oelckers 3532e50575 - check for RF_MASKROTATION before calling IsInsideVisibleAngles, because it is a bit faster this way. 2017-03-02 12:14:00 +01:00
Christoph Oelckers cfda1a49d4 - forgot to save the last fix for the previous commit.
- let the script compiler also output the size of the allocated data for the script functions in addition to the actual code size.
2017-03-02 11:58:30 +01:00
Christoph Oelckers b194ba205a - backported Zandronum's MaxHealth base class for the MaxHealthBonus item. 2017-03-02 11:39:52 +01:00
Christoph Oelckers 00dc59ebdc - separated the blood translation index from the BloodColor variable to allow more than 255 blood translations and as a prerequisite for allowing to change the blood color. 2017-03-02 10:26:23 +01:00
Rachael Alexanderson d84ba4b953 Merge https://github.com/coelckers/gzdoom 2017-03-02 04:22:32 -05:00
Christoph Oelckers 59bd4d608c - fixed: Be a bit more paranoid about what to consider a mod with an empty top-level directory.
This should only be accepted if the subdirectory contains at least one identifiable game definition lump to avoid catching some patch mods with only a few files.
2017-03-02 10:00:22 +01:00
Christoph Oelckers 3c21ca9cb1 - added a compatibility option to move vertices and applied it to E1M6 of Masters of Chaos.
This map has a door/lift combination that could trap the player without any chance to get out because both elements are so close together that it was almost impossible to trigger the lift. Moved two vertices by one map unit to make enough room.
2017-03-01 22:06:39 +01:00
Christoph Oelckers 9b2f31e692 - had to add a hack because some people had to exploit implementation-dependent behavior of the PulseLight type. 2017-03-01 20:54:37 +01:00
Christoph Oelckers 0de79042d4 - fixed: 'Bloodtype' cannot use the generic property definition because it needs special handling for optional arguments. This reinstates the native handler. 2017-03-01 20:20:46 +01:00
Christoph Oelckers b5d4a59465 - fixed: Meta properties must not be serialized. 2017-03-01 20:10:24 +01:00
Rachael Alexanderson bb3a2b25ff Merge branch 'qzdoom-gpuswitch' 2017-03-01 10:26:15 -05:00
Rachael Alexanderson 4ebd25171c - Implemented a simple graphics switch. This currently affects NVidia Optimus-enabled notebooks only. 2017-03-01 09:58:56 -05:00
Matthew McAllister 0583691670 Add bash-style console shortcuts 2017-03-01 11:33:14 +01:00
Rachael Alexanderson 5e5f88b629 Merge commit '5aec906' into testmaster 2017-02-28 21:34:36 -05:00
Rachael Alexanderson d6169ea75e Merge https://github.com/coelckers/gzdoom 2017-02-28 18:55:17 -05:00
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
Rachael Alexanderson 5aec906031 Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/version.h
2017-02-28 04:46:23 -05: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 869de7554f - fixed: Opening automap without 2D acceleration and rgb666 blending crashed due to bad color calculations. (Attempted to pass rgb888 values into rgb666 array) 2017-02-27 12:15:17 -05:00
Rachael Alexanderson e9364fccb8 - Fixed: voxels were not properly remapped after "restart" ccmd 2017-02-27 18:12:49 +01:00
Rachael Alexanderson 4a9845a6c0 - Fixed: voxels were not properly remapped after "restart" ccmd 2017-02-27 12:02:46 -05: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
Rachael Alexanderson fa6a94f789 Merge https://github.com/coelckers/gzdoom 2017-02-27 08:22:53 -05:00
Rachael Alexanderson bd61e9f3f4 - Disabled dynlights during invulnerability/lightamp (or any FixedColormap or FixedLightLevel) 2017-02-27 08:20:26 -05: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
Rachael Alexanderson 2a847ca570 Merge https://github.com/coelckers/gzdoom 2017-02-27 01:06:00 -05: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 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 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
Christoph Oelckers 9aff224891 - allow a link between the same sector's floor and ceiling. 2017-02-26 20:11:24 +01:00
Christoph Oelckers 0eebaf9f6b - allow nightmare respawn if the current state has the 'canraise' flag. 2017-02-26 20:06:16 +01:00
Christoph Oelckers 7a1f36bfb0 - added RF_DONTINTERPOLATE flag. 2017-02-26 20:01:39 +01:00
Rachael Alexanderson 8c46ab40b1 Merge https://github.com/coelckers/gzdoom 2017-02-26 13:42:12 -05:00
Christoph Oelckers 4d043f086e - missed a spot. 2017-02-26 19:41:39 +01:00
Rachael Alexanderson 7a5df2bc28 Merge commit 'b0eb19b' 2017-02-26 13:41:02 -05:00
Christoph Oelckers 7267e608cf - added kickback factor skill property. 2017-02-26 19:37:25 +01:00
Christoph Oelckers b0eb19bbc8 - added an option to define untranslated fonts through FONTDEFS. Note that due to how the fonts work they cannot be colorized AT ALL! 2017-02-26 19:29:27 +01:00
Christoph Oelckers 0cc46a2aaf - added a FORCEINFIGHTING flag. 2017-02-26 19:05:20 +01:00
Christoph Oelckers 92b916fd5d - fixed: ACS's SetMugshotState function was essentially broken in multiplayer because it contained no checks if the script's activator is connected to the current console player.
Ideally this should also be fixed for singleplayer but that would probably break half the mods using this function...
2017-02-26 18:49:40 +01:00
Christoph Oelckers fb3d4bd42a - added A_SetMugshotState. 2017-02-26 18:46:06 +01:00
Christoph Oelckers 5fe04dfd20 - added A_SprayDecal function. 2017-02-26 18:37:12 +01:00
Christoph Oelckers c4b546404a - added a 'nocheck' parameter to A_Raise* and Thing_Raise. 2017-02-26 17:50:48 +01:00
Christoph Oelckers 3f5ef48dac - allow setting a global dialogue lump through gameinfo. 2017-02-26 17:22:02 +01:00
Christoph Oelckers f31ddbc57c - allow specifying specials in ZSDF by name.
- allow specifying a decal ID by name in UDMF.
2017-02-26 17:05:04 +01:00
Christoph Oelckers ee6e427e78 - fixed: USDF did not allow specials > 255. 2017-02-26 16:54:09 +01:00
Christoph Oelckers d80dc098bd - added a RESETITEMS MAPINFO flag. 2017-02-26 16:48:24 +01:00
Christoph Oelckers e6b31dde27 - added some flexibility to some Skulltag powerups.
- handle these powerups by actual item checks instead of cheat flags. (The same should also be done for the Frightener and Buddha but those are a bit more complex because they are also real cheats.)
2017-02-26 16:23:22 +01:00
Christoph Oelckers 8b2a5c75a1 - added an old submission for PowerReflection, although it had to be seriously reworked and improved. 2017-02-26 15:47:37 +01:00
Christoph Oelckers a0b830c198 - allow all actor list CCMDs to filter by tid. 2017-02-26 15:20:43 +01:00
Christoph Oelckers a6761463af - added a new showtriggerlines mode that doesn't exclude doors.
- use lambdas for the AM checker functions.
2017-02-26 15:01:55 +01:00
Christoph Oelckers bb7e191208 - allow specification of intermission music based on the destination map. 2017-02-26 14:50:02 +01:00
Christoph Oelckers 03ac816e83 - added a gme_stereodepth CVAR. 2017-02-26 14:04:30 +01:00
Christoph Oelckers 3412bdf5dc Revert "Fixed splitting of long lines in message box menu"
This reverts commit 76a44ebf9c.

Fix was done in the wrong place, it should be inside the script so that script-side calls to open a confirmation screen also get proper treatment.
2017-02-26 12:51:24 +01:00
Christoph Oelckers 2663414f72 Merge branch 'master' of https://github.com/coelckers/gzdoom 2017-02-26 12:47:34 +01:00
Christoph Oelckers 90b8dbb096 - removed the separate SSE2 version of the node builder's ClassifyLine function and all code associated with it.
Like everything else related to doing standard math with SSE2 vs. x87, there's nothing to be gained here with anything but first generation SSE2 systems which are irrelevant these days.

Taking 'thespir2.wad' from https://forum.zdoom.org/viewtopic.php?f=1&t=10655 the SSE2 version is reproducably ~3% slower than the x87 version on my Core i7, which quite closely mirrors all my previous tests since 2007.
Overall this just looks like an optimization not worth doing.
2017-02-26 12:47:16 +01:00
alexey.lysiuk 76a44ebf9c Fixed splitting of long lines in message box menu
https://mantis.zdoom.org/view.php?id=338
2017-02-26 12:04:34 +02:00
Christoph Oelckers bfa7a2d737 - fixed: DStaticEventHandler did not declare its pointers. 2017-02-26 10:59:05 +01:00
alexey.lysiuk c150f9d737 Fixed incorrect pointers for Actor.Used()
https://mantis.zdoom.org/view.php?id=340
2017-02-26 11:39:27 +02:00
alexey.lysiuk 6ae91ac9ea Fixed scripting type of demoplayback global variable
https://mantis.zdoom.org/view.php?id=334
2017-02-26 10:36:03 +02:00
Rachael Alexanderson 404b326812 Merge https://github.com/coelckers/gzdoom 2017-02-25 18:32:06 -05:00
Rachael Alexanderson e7a1a59053 - Disabled alpha-masking textures for now, since they do not yet work. (needs texman fix) 2017-02-25 16:36:57 -05:00
Christoph Oelckers 43e5f035e4 - added a 'brief' mode to linetarget and info. 2017-02-25 21:48:15 +01:00
Rachael Alexanderson 9b40aa9605 - Fixed two typos as identified by dpJudas. 2017-02-25 15:32:50 -05:00
Christoph Oelckers 35552ce0cb - added a Death.Sky state for missiles that gets used when they hit a sky plane.
- fixed: The Alt HUD did not draw the crosshair in HUD off mode.
2017-02-25 20:45:28 +01:00
Christoph Oelckers 7f78b42f21 - added an 'inventory change' and 'weapon change' sound, which by default are not defined. 2017-02-25 20:20:43 +01:00
Christoph Oelckers 35033891ac - added MF7_NOINFIGHTSPECIES flag. 2017-02-25 20:12:30 +01:00
Christoph Oelckers 8dac678200 - added DAMAGE_NO_ARMOR flag for ACS's SectorDamage function. 2017-02-25 19:10:49 +01:00
Christoph Oelckers 89a43feb7a - split the intermission background handling into its own class.
This means that 1/3 of wi_stuff can be left as-is when scriptifying the rest.
2017-02-25 17:55:20 +01:00
Christoph Oelckers 13c6cebef3 - call WI_updateAnimatedBack only once from WI_Ticker instead of from each single WI_update function. 2017-02-25 16:57:46 +01:00
Christoph Oelckers d39ee1daf3 - added a new thinker statnum STAT_STATIC which do not get deleted between levels. 2017-02-25 16:56:49 +01:00
Rachael Alexanderson ed4fe39fbb Merge https://github.com/coelckers/gzdoom 2017-02-25 10:20:22 -05:00
Christoph Oelckers 10c6b7a80b - added a NULL check to the VM's entry point, in case some bad but non-fatal DECORATE results in a function not having generated any code. 2017-02-25 10:57:12 +01:00
Rachael Alexanderson 05b092a8a1 Merge https://github.com/coelckers/gzdoom 2017-02-25 01:24:45 -05:00
Magnus Norddahl 735157aea4 Bump minimum architecture to SSE 2 on the x86 platform (a Pentium 4 from 2001!) 2017-02-25 01:22:54 +01:00
Christoph Oelckers 43c5fa93f9 - fixed handling of PlayerEntered event.
This was done in P_SpawnPlayer where it would be called not only on voodoo dolls but also on temporary player pawns. The second case was attempted to avoid, but this would break intra-hub travels to unvisited levels.
Moved the handling to G_DoLoadLevel for all cases where we have a clear and unambiguous situation with all players being set up and no voodoo dolls that might trigger an event.
2017-02-24 21:45:53 +01:00
Rachael Alexanderson 5c5b6a55d5 Merge https://github.com/coelckers/gzdoom 2017-02-24 13:24:44 -05:00
Christoph Oelckers 555f339924 - fixed: Sight checks through portals must disable all early-outs.
These can also be triggered from lines outside the actually valid range because the checks are done before the lines get ordered by distance.
2017-02-24 19:01:19 +01:00
Christoph Oelckers c6a5e74c75 - added GC support to the events. OF_Fixed is not recommended because it can seriously impede the GC's functionality if just being used as a lazy means to avoid collection. 2017-02-24 19:01:19 +01:00
Magnus Norddahl e697746e7d Remove the php drawers and their generated output 2017-02-24 16:59:45 +01:00
Magnus Norddahl 51b872b30b Created template version of sprite drawers 2017-02-24 16:52:13 +01:00
Magnus Norddahl d3812e32f8 Created templated version of wall drawers 2017-02-24 15:31:47 +01:00
Magnus Norddahl 2a7bdaad79 Switched to a template version of the span32 drawers 2017-02-24 13:56:20 +01:00
alexey.lysiuk fd615713d5 Fixed handling of default values for Menu.SetMenu() and Menu.StartMessage() arguments 2017-02-24 11:09:25 +02:00
Magnus Norddahl 298d68865c Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2017-02-24 04:32:50 +01:00
Magnus Norddahl 616e800635 Don't copy the SpriteDrawerArgs members now that drawer args are grouped by drawer family 2017-02-24 04:32:40 +01:00
Rachael Alexanderson e35be9c0a3 Merge https://github.com/coelckers/gzdoom 2017-02-23 22:07:40 -05:00
Magnus Norddahl 218708571e Don't copy the SkyDrawerArgs members now that drawer args are grouped by drawer family 2017-02-24 04:03:27 +01:00
Magnus Norddahl f76a039a76 Don't copy the WallDrawerArgs members now that drawer args are grouped by drawer family 2017-02-24 02:37:13 +01:00
Christoph Oelckers 58be506a73 - made intermission screen more scripting friendly. 2017-02-24 00:28:33 +01:00
Magnus Norddahl 8bd0df1ace Simplify CalcTiltedLighting in hope that this function is what made GCC break 2017-02-23 23:53:38 +01:00
Magnus Norddahl b4b391c51e Fix palette light artifacts caused by dynamic lights in some rare cases 2017-02-23 23:13:21 +01:00
Christoph Oelckers 5bc26763cb - fixed: String CVARs get stored as a const char *, not an FString, so the ls opcode cannot be used to read their content. 2017-02-23 22:01:46 +01:00
Magnus Norddahl 4d161fbd42 Add dynamic light to sprites in palette mode 2017-02-23 21:50:16 +01:00
Magnus Norddahl 563b64b5e3 Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2017-02-23 21:08:26 +01:00
Magnus Norddahl 832790f5ba Fix sprite light bug 2017-02-23 21:08:08 +01:00
Thomas Hume c4cb94123f Do not change indentation of the licence... 2017-02-23 21:01:09 +01:00
Thomas Hume c1cafd3bbc Consistency of indents, removes false-pos warnings
Clang reports missleading indentation with non bracketed if in the
presence of mixed tabs/spaces
2017-02-23 21:01:09 +01:00
Thomas Hume 06119987a8 Prevents possible pointer miss-alignment error 2017-02-23 21:01:09 +01:00
Rachael Alexanderson 80d3fd58ff Merge https://github.com/coelckers/gzdoom 2017-02-23 15:00:09 -05:00
Christoph Oelckers 73cceea994 - also added the 'amount' parameter to DropInventroy and A_DropInventory script functions. 2017-02-23 20:55:12 +01:00
Christoph Oelckers e2d5a708f8 - added an amount parameter to the 'drop' CCMD. 2017-02-23 20:18:02 +01:00
Christoph Oelckers fc101049c6 - exported gamestate variable and forced it to 32 bit internally.
- forced gameaction_t to 32 bit to avoid problems with undefined size issues.
2017-02-23 19:29:43 +01:00
Christoph Oelckers 65c4653f59 - restored some code in PClass::CreateDerivedClass that accidentally got removed. 2017-02-23 19:03:31 +01:00
Christoph Oelckers 4bae6e81db - turned the texture pointers in wbstartstruct_t into scripting compatible texture IDs. 2017-02-23 18:33:49 +01:00
Rachael Alexanderson 10e268ebc0 - Change "clipmidtex" compatflag to be accessible in compatibility.txt only. 2017-02-23 06:32:53 -05:00
Magnus Norddahl 3c3917f1f3 Change dynlight sprite math to not overflow when used with dynamic colormaps 2017-02-23 10:55:44 +01:00
Thomas Hume 17f04c5043 Correct two overflows in PInt ctor 2017-02-23 10:10:58 +01:00
Rachael Alexanderson 1a9b1de9a1 - Added "clipmidtex" compatflag and applied it to unloved.pk3 2017-02-23 03:39:04 -05:00
Magnus Norddahl 0702e4523d Fix that sprite light wasn't calculated using the center of the sprite 2017-02-23 09:27:00 +01:00
alexey.lysiuk 91f8f5b556 Restored EndGameMenu as a pseudo-class
Fixes the following error: Attempting to open menu of unknown type 'EndGameMenu'
At least Adventures of Square is using this class in main menu
2017-02-23 10:20:02 +02:00
Magnus Norddahl 56045c1293 Remove r_drawers.h and move softpoly drawer related stuff out of the swrenderer 2017-02-23 09:02:13 +01:00
Magnus Norddahl ad507ca246 Removed drawergen tool and all LLVM dependencies (don't let the door hit you on your way out, llvm!) 2017-02-23 08:28:18 +01:00
Magnus Norddahl c5683bbde5 Clamp dynlights to 0-1 range on sprites 2017-02-23 07:49:02 +01:00
Magnus Norddahl 92e6f070b4 Fix sprite dynlight distance check 2017-02-23 07:05:21 +01:00
Magnus Norddahl 548aec01ec Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2017-02-23 06:01:23 +01:00
Magnus Norddahl ef41e8e54e Add dynamic light to sprites 2017-02-23 06:01:01 +01:00
Rachael Alexanderson 271c75ab9b Merge https://github.com/coelckers/gzdoom 2017-02-22 22:39:34 -05:00
Magnus Norddahl c6235fb674 Added light to span drawers 2017-02-23 04:26:37 +01:00
Magnus Norddahl e9efb64a0b Fix light offset 2017-02-23 03:50:24 +01:00
Christoph Oelckers d295186378 - made all fields of in_anim_t script-safe (except for the texture pointer which will have to be replaced by a Texture ID. 2017-02-23 00:16:14 +01:00
Christoph Oelckers 47ff6ec33f - converted the intermission stat screen into a class so that its contents can be better exposed to ZScript. 2017-02-22 23:52:25 +01:00
Edoardo Prezioso 59d304274f - Fixed some scripts showing up as 'unknown'.
See https://mantis.zdoom.org/view.php?id=322 .
2017-02-22 23:49:28 +01:00
alexey.lysiuk eb40e8bcf0 Removed DYNLIGHT preprocessor definition
https://mantis.zdoom.org/view.php?id=318
2017-02-22 23:02:58 +02:00
alexey.lysiuk 61de40c678 Relaxed error check for menu textures
Null texture is acceptable as menu patch
Total conversion IWADs like Adventures of Square may use this technique

https://mantis.zdoom.org/view.php?id=320
2017-02-22 17:39:04 +02:00
alexey.lysiuk b45418d363 Removed problematic assert() from garbage collector
DObject::GetClass() cannot be called from Barrier() function
Lazy evaluation it contains screwed up object type if called from base class constructor

Example:
DSeqSectorNode::DSeqSectorNode() -> DSeqNode::DSeqNode() -> GC::WriteBarrier() -> Barrier()

https://mantis.zdoom.org/view.php?id=299
2017-02-22 12:21:27 +02:00
Magnus Norddahl 01a8df7eb3 Add dynlights to wall drawer 2017-02-22 08:05:23 +01:00
Magnus Norddahl 38453d0435 Added most of the blend modes 2017-02-22 00:27:06 +01:00
alexey.lysiuk bdd20d3887 Fixed initialization of Strife dialogs internal structures
Explicit assignment to members, no more memset() on non-PoD types
https://mantis.zdoom.org/view.php?id=317
2017-02-21 22:36:20 +02:00
Magnus Norddahl c918950ff6 Add php drawer for the poly renderer 2017-02-21 09:08:51 +01:00
Magnus Norddahl e73031b3c9 Added sky drawers 2017-02-21 01:25:08 +01:00
Magnus Norddahl 5fa5b062d6 Added php script for the span drawers 2017-02-20 22:49:52 +01:00
Rachael Alexanderson 257f48de97 Merge https://github.com/coelckers/gzdoom 2017-02-20 04:55:54 -05:00
Magnus Norddahl fe854fb71f Fix php drawer blend modes 2017-02-20 07:09:30 +01:00
Christoph Oelckers bb6e667f33 - removed some unneeded version.h #includes. 2017-02-20 01:42:53 +01:00
Christoph Oelckers 051a394f47 - fixed some mess in the graphics organization for the Strife status bar.
This alternatingly loaded two different patch sets but it was entirely unclear which was supposed to be loaded when so they now are merged into one. It should have been two different variables from the start.
2017-02-20 00:22:36 +01:00
Rachael Alexanderson 7825c7b244 Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/version.h
2017-02-19 17:42:00 -05:00
Rachael Alexanderson 84ca9fd63c Merge remote-tracking branch 'origin/versionstr-change' into versionstr-change 2017-02-19 17:40:44 -05:00
Rachael Alexanderson b134ea5b4f - fixed: Change compiled exe version strings to match git repo numbers. This is viewable in Windows by right-clicking on the executable and selecting "Properties". 2017-02-19 23:23:53 +01:00
Christoph Oelckers 26144340b8 - fixed: Hexen's poison cloud needs to call P_DamageMobj, even with a damage value of 0. Added a new flag to handle this case because normally this is not desirable. 2017-02-19 23:20:09 +01:00
Rachael Alexanderson c2eed19b51 - fixed: Change compiled exe version strings to match git repo numbers. This is viewable in Windows by right-clicking on the executable and selecting "Properties". 2017-02-19 16:29:30 -05:00
Christoph Oelckers 4ca20e0297 - fixed: AActor::SetPortalTransition set an incorrect value for the previous position. 2017-02-19 21:35:06 +01:00
Rachael Alexanderson 11d6f46e2d Merge https://github.com/coelckers/gzdoom 2017-02-19 13:05:32 -05:00
Christoph Oelckers 6c9558459d - allow menu items to inherit their parent's Init method for MENUDEFS. 2017-02-19 18:15:40 +01:00
Christoph Oelckers 68b47d81de - fixed WP_NOCHANGE changes with a restart, so this must be taken into account for the script variable holding it. 2017-02-19 17:58:54 +01:00
Christoph Oelckers f3b6343e53 - use floats for menu item coordinates. This only has an effect in the ListMenu because the OptionMenu uses fixed offsets which work differently. 2017-02-19 17:24:30 +01:00
Christoph Oelckers c0f588e234 - let M_ClearMenus destroy all open menus so that they can properly deinitialize. 2017-02-19 16:08:10 +01:00
Christoph Oelckers fb52b034b0 - added a GenericMenu class, so that all menus can be given a virtual Init method.
Doing this to Menu itself would not work because the different menus require different parameters.
This also means that all menus that are routed through menu items must inherit from either ListMenu, OptionMenu or GenericMenu.
All other types can only be used internally.

This should complete the menu scriptification.
2017-02-19 15:35:28 +01:00
Christoph Oelckers 9089beb110 - scriptified most of the remaining parts of DMenu. Only the engine interface remains native now. 2017-02-19 15:23:33 +01:00
Christoph Oelckers e05242e44d - scriptified the remaining parts of the conversationmenu.
- do not resolve the backdrop texture to a texture ID at load time. This will allow custom menu classes to use this info differently.
- added a new ZSDF userstring property to dialog pages to give mods more means for customization.
- allow overriding the conversation menu class both globally through MAPINFO and per conversation in ZSDF.
2017-02-19 14:21:49 +01:00
Christoph Oelckers d85b9cdd71 - scriptified the input methods of DConversationMenu.
- fixed handling of DimAllowed.
2017-02-19 13:07:49 +01:00
Christoph Oelckers 3c8a5fdbe7 - scriptified the drawer functions of the conversation menu. 2017-02-19 12:28:05 +01:00
Christoph Oelckers c4a90f39af - split up DConversationMenu::Drawer for future flexibility.
- fixed: The in-conversation gold display did not work because it relied on an unused global variable.
2017-02-19 11:49:59 +01:00
Rachael Alexanderson 75b81381f6 Merge https://github.com/coelckers/gzdoom 2017-02-19 05:26:51 -05:00
Christoph Oelckers 129787546d - transitioned the Conversation menu from FBrokenLines to DBrokenLines so that the internal representation matches scriptable types. 2017-02-19 10:46:53 +01:00
Christoph Oelckers 8db1646056 - fixed: Strife dialogues remembered the last menu's selection index, but with the possibility of changing sets of replies between calls of the same dialogue it should be the reply's index in the list of replies that gets remembered. 2017-02-19 10:34:47 +01:00
alexey.lysiuk 033792078c Fixed compilation with GCC/Clang
src/menu/messagebox.cpp:70:95: error: no viable conversion from 'hfunc' (aka 'void (*)()') to 'VMValue'
2017-02-19 11:31:58 +02:00
Magnus Norddahl ee3bcb6f78 Fix sampling 2017-02-19 03:51:49 +01:00
Magnus Norddahl 42a7dbe33a Merge remote-tracking branch 'gzdoom/master' into qzdoom
# Conflicts:
#	src/v_video.cpp
2017-02-19 03:49:13 +01:00
Magnus Norddahl dfcfd0462f Hook up sprite php drawers (but disable them for now as they don't fully work yet) 2017-02-19 01:23:16 +01:00
Christoph Oelckers c0dd37e16e - ncopystring is not needed anymore. 2017-02-19 01:14:31 +01:00
Christoph Oelckers b1a7941414 - some preparations of the Strife dialogue data to make it usable for ZScript, most importantly this means to replace all const char * with FString. 2017-02-19 01:11:52 +01:00
Magnus Norddahl 2bedfca071 Add php script for sprite drawers 2017-02-19 00:49:46 +01:00
Christoph Oelckers 2440951811 -scriptified the ReadThis screen. 2017-02-19 00:08:30 +01:00
Christoph Oelckers e46571c192 - DMessageBoxMenu is fully scriptified. 2017-02-18 23:39:02 +01:00
Christoph Oelckers 62b594a499 - DMessageBoxMenu::Drawer scriptified. 2017-02-18 23:18:55 +01:00
Christoph Oelckers aabcc1f92e - scriptified the input functions of DMessageBoxMenu. 2017-02-18 23:05:01 +01:00
Christoph Oelckers 6e0e2b2457 - replaced all subclasses of DMessageBoxMenu with a callback option and lambdas to reduce the amount of menu code to port over. Now this is only one class. 2017-02-18 22:07:28 +01:00
Christoph Oelckers de1e7661eb - removed all native remnants of TextEnterMenu. 2017-02-18 21:25:19 +01:00
Christoph Oelckers f5a0f6b3bf - almost done with TextEnterMenu. 2017-02-18 21:18:23 +01:00
Christoph Oelckers 0c41a9dee7 - scriptified DTextEnterMenu::Drawer. 2017-02-18 20:12:06 +01:00
Christoph Oelckers 06141338f1 - made DMenu's static variables regular global variables because that class is going to go completely scripted soon. 2017-02-18 19:19:14 +01:00
Christoph Oelckers 1b4c9e13b8 - cleaned out some cruft from the menu code, now that ListMenu is fully scripted. 2017-02-18 19:11:53 +01:00
Christoph Oelckers b7a5437af6 - scriptified parts of ListMenu. 2017-02-18 18:35:44 +01:00
Christoph Oelckers 6a65f02257 - completed scriptification of LoadSaveMenu. 2017-02-18 18:01:24 +01:00
Christoph Oelckers e46d378fb2 - sciptified DLoadSaveMenu::Drawer. 2017-02-18 17:51:40 +01:00
Christoph Oelckers 4a6d0f1fa5 - scriptified DLoadSaveMenu::MenuEvent. 2017-02-18 17:35:01 +01:00
Christoph Oelckers ee6a90deec - scriptified DLoadSaveMenu::Responder.
- scriptified DSaveMenu.
2017-02-18 16:40:32 +01:00
Christoph Oelckers e58a03de9b - the savegame manager needs a destructor 2017-02-18 14:18:27 +01:00
Christoph Oelckers 872969eb14 - scriptified the LoadMenu class and exported the entire interface to handle the LoadSaveMenu. 2017-02-18 14:08:16 +01:00
Christoph Oelckers 9d51266145 - some more encapsulation of savegame data in the savegame manager, because some of its info is not in a state that can be accessed directly through script code and needs a few helper functions. 2017-02-18 13:05:33 +01:00
Christoph Oelckers 128dfdeee6 - made some of the load/save menu's data a bit more scripting friendly, this mostly means removal of static string buffers. 2017-02-18 12:36:31 +01:00
alexey.lysiuk 0ffd475d8c Fixed compilation with GCC/Clang
src/r_data/sprites.cpp:805:79: error: cannot pass non-trivial object of type 'FString' to variadic function; expected type from format string was 'char *' [-Wnon-pod-varargs]
2017-02-18 10:34:27 +02:00
Magnus Norddahl 4fc352a50d Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2017-02-18 09:18:40 +01:00
Magnus Norddahl 8f06b5f9a1 Updated wall drawers to process two lines at a time 2017-02-18 09:17:47 +01:00
Rachael Alexanderson e644adf3b8 - added "vid_glswfb" CVAR for linux, defaults to false, to allow init without GL framebuffer. This will need to be ultimately finished at a later date. 2017-02-18 02:46:30 -05: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
Rachael Alexanderson 65122ed19e Merge https://github.com/coelckers/gzdoom 2017-02-18 00:18:45 -05:00
ZZYZX afc9050a43 Marked Thinker play. Marked OnDestroy and Destroy virtualscope. It compiles :D 2017-02-18 06:56:00 +02:00
Magnus Norddahl 097dda38a9 Hook up all php generated wall drawers and enable them per default 2017-02-18 05:34:26 +01: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
Christoph Oelckers 013e52fabd - fixed: newly created list menus did not call their scripted virtual Init method. 2017-02-18 01:31:01 +01:00
Christoph Oelckers 5f1241a55c - scriptified the rest of the player menu. This compiles and runs but doesn't work yet, it will be fixed in the next commit. 2017-02-18 01:20:07 +01:00
Christoph Oelckers 49a07180c0 - scriptified ClassChanged. 2017-02-17 23:56:22 +01: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
Christoph Oelckers 50d2846e40 - scriptified UpdateColorsets. 2017-02-17 23:16:07 +01:00
Magnus Norddahl 89a2e434d4 Fix typo where __m128 should have been __m128i 2017-02-17 23:03:48 +01:00
Magnus Norddahl 4240a15f3a Hook up php generated wall drawer 2017-02-17 22:58:55 +01:00
ZZYZX 014db18f2a Fixed some things around 2017-02-17 23:36:16 +02:00
Christoph Oelckers 97eed1e6df - scriptified UpdateSkins. 2017-02-17 22:12:56 +01:00
ZZYZX 3056570ea9 Implemented a call check between ui/play/data 2017-02-17 23:02:43 +02:00
Christoph Oelckers 498da825a5 - made the Skins array scripting friendly and exported it. 2017-02-17 21:51:23 +01: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
Christoph Oelckers 6a2525b737 - scriptified PickPlayerClass. 2017-02-17 20:58:11 +01:00
Christoph Oelckers b375657509 - scriptified DPlayerMenu::SkinChanged. 2017-02-17 20:49:04 +01:00
Christoph Oelckers 51493cde8c - scriptified DPlayerMenu::MenuEvent. 2017-02-17 20:02:26 +01: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
Christoph Oelckers f4e9cd0009 - scriptified DPlayerMenu::MouseEvent. 2017-02-17 18:21:59 +01: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
Christoph Oelckers 416911587e - scriptified PlayerMenu.Drawer 2017-02-17 16:53:36 +01:00
Magnus Norddahl cd2179e62a Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2017-02-17 05:35:15 +01:00
Magnus Norddahl e42f914efa Added php script generating the 32 bit wall drawers 2017-02-17 05:34:33 +01:00
Rachael Alexanderson 80f762f8a4 Merge https://github.com/coelckers/gzdoom 2017-02-16 20:40:07 -05:00
Christoph Oelckers 18925d07be - fixed a typo. 2017-02-16 23:17:19 +01:00
Christoph Oelckers b523aa13c8 - fixed crash with bad state labels. 2017-02-16 21:51:32 +01:00
Christoph Oelckers 1d52037779 - skip the Direct3D setup if building with a non-XP toolset on Visual Studio. 2017-02-16 21:01:52 +01:00
Christoph Oelckers 36e5bab657 - removed the fixed search path for FMod on drive E: because this can cause problems with automated builds on unknown systems.
This should never have been set up like this.
2017-02-16 19:45:03 +01:00
Christoph Oelckers 944f2bf266 - fixed armor save percentage values in Dehacked. 2017-02-16 19:29:07 +01:00
Christoph Oelckers ccb083ed25 - fixed initialization of joystick menu with bogus MENUDEFS 2017-02-16 18:55:36 +01:00
Christoph Oelckers cfeb1724fe - added a Door_AnimatedClose special. 2017-02-16 18:35:58 +01:00
Christoph Oelckers 4d99b58f96 - allow using the default menu settings classes when none is specified in MENUDEFS. 2017-02-16 17:45:51 +01: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
alexey.lysiuk 59db1a882f Fixed compilation warnings reported by MSVC
src\s_sound.cpp(1259): warning C4244: 'argument': conversion from 'double' to 'float', possible loss of data
src\c_bind.cpp(479): warning C4101: 'c': unreferenced local variable
2017-02-16 11:01:06 +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
Rachael Alexanderson ef22d10756 Merge https://github.com/coelckers/gzdoom 2017-02-15 20:08:21 -05: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
Christoph Oelckers 304e989496 - allow splashing on non-swimmable, non-solid 3D floors if they are marked liquid and have a splash assigned. 2017-02-15 23:06:24 +01:00
Christoph Oelckers 4df2a221a8 - fixed: The special called by the InterpolationSpecial actor must have no activator.
This required splitting A_CallSpecial into a direct wrapper around P_ExecuteSpecial and implementing itself as a script function calling ExecuteSpecial so that this special case can use a version of the function that can be used without an activator.
2017-02-15 22:49:13 +01:00
Christoph Oelckers b3d7980b90 - fixed: PowerProtection clamped its damage minimum to 1, but should do it to 0. 2017-02-15 21:20:11 +01:00
Rachael Alexanderson bf1aa71194 Merge https://github.com/coelckers/gzdoom 2017-02-15 11:19:51 -05: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
Magnus Norddahl c95a52166d Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2017-02-15 13:26:52 +01:00
Magnus Norddahl 01cbb14f14 Change wall project to use the fixed version from GZDoom as it was most likely more tested 2017-02-15 13:26:43 +01:00