Christoph Oelckers
ac754b5e96
- some cleanup on the weapon slot interface.
...
This really shouldn't make any decisions from directly reading weapon class defaults.
2019-04-15 22:29:32 +02:00
Christoph Oelckers
f9dfdace16
- scriptified cht_Takeweaps.
2019-04-15 22:29:30 +02:00
Christoph Oelckers
dadf0394c0
- removed the less-parameters versions of P_SpawnPlayerMissile, because there was only one native call left to them.
2019-04-15 22:29:28 +02:00
Christoph Oelckers
94b0338c31
- scriptified ApplyKickback.
2019-04-15 22:29:26 +02:00
Christoph Oelckers
2145db9fbd
- 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.
2019-04-15 22:29:24 +02:00
Christoph Oelckers
59bffe2f55
- scriptified A_WeaponReady and its subfunctions.
2019-04-15 22:29:22 +02:00
Christoph Oelckers
951ed466b3
- scriptified P_BobWeapon as a virtual function on PlayerPawn.
2019-04-15 22:29:19 +02:00
Christoph Oelckers
04cd432159
- a little bit of cleanup on some code that repeatedly accessed some fields in AWeapon and produced far too many search results when looking for this.
2019-04-15 22:29:17 +02:00
Christoph Oelckers
0515af2bd3
- removed the bot related properties from AWeapon.
...
This stuff is now kept locally in the bot code so that it doesn't infest the rest of the engine.
And please don't read the new botsupp.txt file as some new means to configure bots! This was merely done to get this data out of the way.
The bots are still broken beyond repair and virtually unusable, even if proper data is provided for all weapons.
2019-04-15 22:29:15 +02:00
Christoph Oelckers
d31f67cb43
- consolidated the 3 nearly identical code fragments handling the weapon's YAdjust for the different renderers into a utility function in DPSprite.
...
# Conflicts:
# src/hwrenderer/scene/hw_weapon.cpp
# src/polyrenderer/scene/poly_playersprite.cpp
# src/swrenderer/things/r_playersprite.cpp
2019-04-15 22:07:45 +02:00
Christoph Oelckers
681009e1ea
- exported the blood spawning part of P_LineAttack as a virtual ZScript function.
2019-04-15 21:59:08 +02:00
Christoph Oelckers
82ffdd5e6b
- moved the weapon selection logic to PlayerPawn as overridable virtual functions.
2019-04-15 21:59:07 +02:00
Christoph Oelckers
af4c37471e
- took the weapon selection logic out of the WeaponSlots data and blocked all direct access to the weapon slots internals
...
This seriously needs to be independent from the data store and better abstracted. More work to come to move this to its proper place.
# Conflicts:
# src/g_inventory/a_pickups.cpp
2019-04-15 21:59:05 +02:00
Christoph Oelckers
27c67716df
- change teleport freeze handling to a player property plus virtual override on PlayerPawn for increased configurability.
...
# Conflicts:
# src/g_inventory/a_pickups.cpp
2019-04-15 21:59:03 +02:00
Christoph Oelckers
7c1416cb6f
- scriptified BecomeItem and BecomePickup
...
# Conflicts:
# src/g_inventory/a_pickups.cpp
2019-04-15 21:59:01 +02:00
Christoph Oelckers
08059f718b
- scriptified FilterCoopRespawnInventory.
2019-04-15 21:59:00 +02:00
Christoph Oelckers
1ecada388c
- scriptified some simple sound functions.
2019-04-15 21:58:58 +02:00
Christoph Oelckers
d123230fb1
- scriptified APlayerPawn::Die and fixed a few things I encountered while doing it.
2019-04-15 21:58:56 +02:00
Christoph Oelckers
0eec8b293a
- scriptified ModifyDropAmount as a virtual function hierarchy for Inventory and children.
2019-04-15 21:58:54 +02:00
Christoph Oelckers
f1c7815b16
- scriptified A_Explode and relatives.
2019-04-15 21:58:52 +02:00
Christoph Oelckers
e234d450aa
- scriptified GetDefaultInventory.
2019-04-15 21:58:50 +02:00
Christoph Oelckers
864796a6a2
- removed MeleeWeapon flag from the tomed PhoenixRod and the fighterhammer.
...
In both cases, having this flag on will render the monster-backing-off-check for melee attacks ineffective because it would misinterpret these weapons as close range only - which they aren't. Even for the PhoenixRod the range is longer than what gets checked here.
As a consequence, the bot's check for missile shooting melee weapons has also become pointless because no such weapon is defined anymore.
2019-04-15 21:58:48 +02:00
Christoph Oelckers
beae232f83
- exported one FraggleScript function for testing.
2019-04-15 21:58:46 +02:00
Christoph Oelckers
c326c4c521
- exported a few more weapon handling functions so that the native GetDownState stub could be removed.
2019-04-15 21:58:45 +02:00
Christoph Oelckers
53b41cf32f
- let player_t::Resurrect use P_BringUpWeapon to raise the weapon again instead of doing it directly.
...
This seems a bit safer.
2019-04-15 21:58:43 +02:00
Christoph Oelckers
c1442fae0d
- scriptified P_BringUpWeapon because this was the only native function still referencing AWeapon::GetReadyState.
2019-04-15 21:58:41 +02:00
Christoph Oelckers
8c2c888d82
- scriptified A_SpawnItem(Ex) and A_ThrowGrenade.
...
These were the last native functions referencing AWeapon::DepleteAmmo, so that function is now exclusively on the scripting side.
2019-04-15 21:58:39 +02:00
Christoph Oelckers
1b225588d1
- scriptified 3 more functions in stateprovider.
2019-04-15 21:58:37 +02:00
Christoph Oelckers
05e8a6c62d
- scriptified A_RailAttack.
2019-04-15 21:58:35 +02:00
Christoph Oelckers
394d8e414f
- scriptified A_CustomPunch
2019-04-15 21:58:33 +02:00
Christoph Oelckers
54ba5b4829
- scriptified A_FireProjectile
2019-04-15 21:58:31 +02:00
Christoph Oelckers
d99b46c861
- scriptified A_FireBullets and A_CustomBulletAttack.
2019-04-15 21:58:30 +02:00
Christoph Oelckers
f794cab92f
- deleted redundant native ActivateMorphWeapon method.
2019-04-15 21:58:28 +02:00
Christoph Oelckers
4c7096ffac
- started with a ScriptUtil class which will allow moving function implementations for ACS and FraggleScript to zscript.txt
...
So far 3 functions for testing implemented.
# Conflicts:
# src/p_acs.cpp
2019-04-15 21:58:26 +02:00
Christoph Oelckers
1b6af10f38
- scriptified Weapon.CheckAmmo and Weapon.DepleteAmmo
2019-04-15 21:56:30 +02:00
Christoph Oelckers
9e6279ed5b
- scriptified the rest of the morph code.
2019-04-15 21:56:28 +02:00
Christoph Oelckers
5f5410e35f
- fixed: Since out types cannot be marked as such in a function prototype (as it'd cause parameter mismatches in the resolving pass) it is necessary to check the argflags as well when determining the register type.
2019-04-15 21:56:26 +02:00
Christoph Oelckers
b886219f53
- scriptified P_MorphMonster.
2019-04-15 21:56:23 +02:00
Christoph Oelckers
d4ff49e110
- fixed message output.
2019-04-15 21:56:22 +02:00
Christoph Oelckers
02f785f794
- testing and cleanup of scripted morph code.
2019-04-15 21:56:20 +02:00
Christoph Oelckers
9b1e96262c
- P_UndoPlayerMorph scriptified.
...
Not tested yet and still missing a new native interface.
2019-04-15 21:56:18 +02:00
Christoph Oelckers
395413fc9a
- scriptified P_MorphPlayer and dependencies.
...
It still needs its counterpart scriptified as well before it can work.
# Conflicts:
# src/gi.cpp
# wadsrc/static/zscript/base.txt
2019-04-15 21:56:16 +02:00
Christoph Oelckers
8669dbdcfe
- removed test and debug code.
...
# Conflicts:
# src/gl/scene/gl_scenedrawer.h
2019-04-15 21:50:57 +02:00
drfrag
60e667f732
- Fixed compilation.
2019-04-15 21:48:55 +02:00
Magnus Norddahl
5f7aeb3186
- fix missing include statement
2019-04-15 16:09:14 +02:00
Christoph Oelckers
1fd23f5228
- fixed initialization of default parameters in dynamically created function calls like in the MENUDEF parser
2019-04-15 16:09:13 +02:00
Magnus Norddahl
31f524fd6b
- inline VBTL opcode
...
- remove old META and CLSS implementations
2019-04-15 16:09:11 +02:00
Magnus Norddahl
d4e3bee7c6
- add return type to CreateFuncSignature
2019-04-15 16:09:10 +02:00
Magnus Norddahl
1aebbfb3b5
- fix typo
2019-04-15 16:09:08 +02:00
Magnus Norddahl
815b7d8b7e
- add support in the jit compiler to do direct native calls using the x64 calling convention
2019-04-15 16:09:07 +02:00
Christoph Oelckers
f00892e06d
- exported ADecal to ZScript as a non-native class.
...
Its one function is still native but this was by far the easiest of the remaining actor classes to export.
2019-04-15 16:09:05 +02:00
Christoph Oelckers
cc8e390dce
removed the quite redundant GetStateForButtonName function
...
Since it forwards directly to FindState and has no script bindings there is no need to keep it, it'd only complicate the full scriptification of the weapon class if it stuck around.
2019-04-15 16:09:04 +02:00
Christoph Oelckers
95767fb63a
- fixed some issues with the bodyque and moved this variable into FLevelLocals
...
* it was never saved in savegames, leaving the state of dead bodies undefined
* it shouldn't be subjected to pointer substitution because all it contains is old dead bodies, not live ones.
# Conflicts:
# src/r_data/r_translate.cpp
2019-04-15 16:08:18 +02:00
Christoph Oelckers
edfe8b36c6
- cleaned up the PointerSubstitution code
...
Since the only thing it gets used for is swapping out PlayerPawns it can safely skip all global variables that never point to a live player, which allowed to remove quite a bit of code here that stood in the way of scriptifying more content
2019-04-15 16:06:22 +02:00
Christoph Oelckers
f2fe079ddb
- fixed the reginfo checks for the Draw... functions.
...
They need to be offset by the same amount as the arguments so that the values are properly matched.
# Conflicts:
# src/v_draw.cpp
2019-04-15 16:03:51 +02:00
Christoph Oelckers
5e63252fdc
- moved the type infomation entirely out of VMValue.
...
For the varargs functions that used the Type field to validate their parameters, now a hidden additional argument is passed which contains a byte array with the type info for the current call's arguments. Since this is static per call location it can be better prepared once when the code is being compiled instead of being put in a runtime created array for each invocation. Everything else uses the per-function instance of the same data.
The only thing that still needed the type field with a VMValue is the defaults array, so this uses a different struct type now to store its data.
# Conflicts:
# src/v_draw.cpp
2019-04-15 16:02:17 +02:00
Christoph Oelckers
cb9c1f021c
- generate register type info for the parameter lists of all functions.
...
Currently used for loading parameters into registers.
For checking parameters of native functions some more work is needed to get the info to the function. Currently it doesn't receive the function descriptor.
2019-04-15 15:52:22 +02:00
Magnus Norddahl
a277137d85
- add missing CheckVMFrame call
2019-04-15 15:52:21 +02:00
Magnus Norddahl
0fe213765b
- only allocate stack space for vmframe and call returns when we need them
2019-04-15 15:52:20 +02:00
Magnus Norddahl
03258d1334
- improve dumpjit output slightly
2019-04-15 15:52:19 +02:00
Magnus Norddahl
ec3b491f19
- don't emit VMValue.Type information when we know the receiver isn't going to read it anyway
2019-04-15 15:52:18 +02:00
Magnus Norddahl
fe64de28d4
- delay emitting PARAM and VTBL instructions until CALL/CALL_K
2019-04-15 15:52:16 +02:00
alexey.lysiuk
5d0bf48e22
- use custom offsetof() macro
...
src/scripting/vm/jit_call.cpp:164:38: warning: offset of on non-standard-layout type 'VMScriptFunction' [-Winvalid-offsetof]
src/scripting/vm/jit_load.cpp:87:50: warning: offset of on non-standard-layout type 'DObject' [-Winvalid-offsetof]
src/scripting/vm/jit_load.cpp:96:50: warning: offset of on non-standard-layout type 'DObject' [-Winvalid-offsetof]
src/scripting/vm/jit_load.cpp:257:53: warning: offset of on non-standard-layout type 'DObject' [-Winvalid-offsetof]
2019-04-15 15:52:15 +02:00
alexey.lysiuk
4edcb06a9d
- fixed compilation of POSIX targets
...
src/scripting/backend/vmbuilder.h:169:19: error: no member named 'function' in namespace 'std'
2019-04-15 15:52:14 +02:00
Christoph Oelckers
b33fd19fa2
- missed one OP_RESULT.
2019-04-15 15:52:13 +02:00
Christoph Oelckers
6727301330
- moved all code related to function calls into the helper class so that all future work on the calling convention is in one place only.
2019-04-15 15:52:12 +02:00
Christoph Oelckers
a900390683
- moved all handling for the simple calls into EmitterArray to have it in one place only.
...
The main case of FxVmFunctionCall is not done yet, though.
2019-04-15 15:52:11 +02:00
Christoph Oelckers
054640ce41
- removed OP_TAIL.
...
The amount of support code for this minor optimization was quite large and this stood in the way of streamlining the VM's calling convention, so it was preferable to remove it before moving on.
2019-04-15 15:52:10 +02:00
Magnus Norddahl
33bef2183e
- fix compile errors
2019-04-15 15:52:08 +02:00
Christoph Oelckers
ab689c0984
- fixed TArray's Append methods.
...
I mistakenly assumed that Grow would incease the array's reserved space.
2019-04-15 15:52:07 +02:00
Christoph Oelckers
e9a5f094c9
- changed OP_PARAM handling so that all registers remain allocated until the call instruction and reordered instruction emission so that the param instructions all directly precede the call instruction.
2019-04-15 15:48:37 +02:00
Christoph Oelckers
9380ccb922
- completed the Dehacked fix.
...
I missed some arguments that were specified but set to 'not given'.
2019-04-15 15:48:35 +02:00
Christoph Oelckers
f10c927850
- fixed: The Dehacked function wrappers now need full parameter lists.
2019-04-15 15:48:32 +02:00
Magnus Norddahl
783adc7be1
- disabled code that shows how a thunk function and native setup would look like
2019-04-15 15:48:31 +02:00
Christoph Oelckers
03001991f1
- fixed IJMP code generation for the JIT compiler.
...
With a proper count value available this can be done properly. The only relevant targets are the jumps immediately succeeding the IJMP instructions, nothing else.
2019-04-15 15:48:30 +02:00
Christoph Oelckers
f557c77602
- do not use instructions from too recent instruction set extensions.
...
andn is part of BMI1 which was introduced in 2012, which is far too recent to be used unchecked.
2019-04-15 15:48:29 +02:00
Christoph Oelckers
9456c877d4
- deconstruct A_Jump with multiple labels into A_Jump(chance, RandomPick(label1, label2, label3,...)) to remove this ugly special case from the VM calling convention.
...
This also adds the number of available choices to OP_IJMP.
2019-04-15 15:48:27 +02:00
Magnus Norddahl
44b89bba96
- inline ReadBarrier, GetClass and GetClassMeta
2019-04-15 15:48:25 +02:00
Christoph Oelckers
05fd4d8b62
- fixed RNG setup in FxRandom.
2019-04-15 15:48:24 +02:00
Christoph Oelckers
9d126954d1
- removed the default parameter handling from all native script functions because it is no longer needed.
...
# Conflicts:
# src/p_actionfunctions.cpp
# Conflicts:
# src/hwrenderer/postprocessing/hw_postprocessshader.cpp
# src/v_2ddrawer.cpp
2019-04-15 14:59:00 +02:00
Christoph Oelckers
6d8cf38cef
- fixed FxFRandom setup which used a path in FxRandom that is no longer supported.
2019-04-15 14:37:46 +02:00
Magnus Norddahl
075a666c75
- stop using lambda functions for CreateCall because MSVC lambas use a different calling convention and "converts" them to the right one by generating a thunk function
2019-04-15 14:37:44 +02:00
Magnus Norddahl
51900d5d98
- removed the SetupSimpleFrameMissingArgs logic as the number of args are now guaranteed
2019-04-15 14:37:43 +02:00
Magnus Norddahl
66a970059b
- add warning text when falling back to the VM
2019-04-15 14:37:41 +02:00
Christoph Oelckers
7d2c4a05e2
- removed the unused 'no arguments' cases from the BuiltinRandom functions and split off BuiltinRandom2 into its own function.
...
This removes the last non-vararg cases where a native VM function checks 'numparam'. As of this commit all function calls will pass the complete list of arguments.
2019-04-15 14:37:40 +02:00
Magnus Norddahl
ac01af3ef0
- make functions using too many registers (more than 200) fall back to the VM
2019-04-15 14:37:38 +02:00
Christoph Oelckers
a0b4f5ad68
- always pass complete argument lists in the VM.
2019-04-15 14:37:37 +02:00
Christoph Oelckers
44eee13aa7
- build full argument lists for action function calls.
...
This uses one static global array to avoid frequent reallocations.
2019-04-15 14:37:35 +02:00
Christoph Oelckers
a371a8456a
- implemented VMCallWithDefaults and used it for all calls with variable arguments.
...
This isn't used for the 3 action function calls because it requires an array allocation which would be a bit too costly for something as frequently called as action functions.
They will need a different approach.
2019-04-15 14:37:34 +02:00
Christoph Oelckers
29d7e11937
- fixed last commit.
2019-04-15 14:37:31 +02:00
Christoph Oelckers
28461de6ec
- marked all places where an incomplete parameter list may be passed to the VM by a native call by redirecting VMCall to an intermediate VMCallWithDefaults. This function must later fill in the missing arguments from the default.
2019-04-15 14:37:30 +02:00
Christoph Oelckers
7fe33d336c
Avoid using argument count for any kind of decision making in native VM functions.
...
This allows retaining the functionality, even if for the JIT compiler's benefit all default arguments are pushed onto the stack instead of reading them from the defaults array.
# Conflicts:
# src/r_data/r_sections.h
2019-04-15 14:37:28 +02:00
Magnus Norddahl
2dd03270b2
- remove unused argument
2019-04-15 14:37:26 +02:00
Magnus Norddahl
fd955249fd
- avoid calling VMFillParams for simple stack frames
...
- split Setup into more functions
2019-04-15 14:37:24 +02:00
Magnus Norddahl
5181106264
- add dword store to memset code
2019-04-15 14:37:23 +02:00
Magnus Norddahl
43cfedbd23
- disable jit in 32-bit builds
2019-04-15 14:37:21 +02:00
Magnus Norddahl
18258c6cd5
- fix wrong offsets
2019-04-15 14:37:20 +02:00
Magnus Norddahl
c9a20d56d1
- generate a memset for the allocated stack memory because that's what the VM does
...
(this really shouldn't be done by the VM either - the compiler backend should clear its registers if it wants them to be zero!)
2019-04-15 14:37:19 +02:00
Magnus Norddahl
8fd2bd1d51
- fix operand size mismatch error
2019-04-15 14:37:17 +02:00
Chronos Ouroboros
104f49e589
Fix the code for MODF_RK in the JIT compiler.
2019-04-15 14:37:16 +02:00
Chronos Ouroboros
c8e56f4dda
Fixed the Vector2/3 != operator.
2019-04-15 14:37:14 +02:00
Chronos Ouroboros
c3c100bf9f
Added support for CMP_APPROX to EQV_R and moved the code to a template.
2019-04-15 14:37:13 +02:00
Magnus Norddahl
b4db05a7ff
- modify exception checks to jump ahead if the exception is to be thrown as it limits static misprediction
2019-04-15 14:37:11 +02:00
Magnus Norddahl
3504f48bfa
- fix a typo
2019-04-15 14:37:10 +02:00
Magnus Norddahl
3f952e94cd
- fix the throw messages
2019-04-15 14:37:09 +02:00
Christoph Oelckers
74d02811c7
- fixed vector math instructions to use the same order of operations as the VM.
2019-04-15 14:37:07 +02:00
Magnus Norddahl
64387abcce
- add vm_jit cvar to control JIT compilation
2019-04-15 14:37:05 +02:00
Magnus Norddahl
87744b22ab
- update JIT PARAM handling to match the VM instruction change
2019-04-15 14:37:04 +02:00
Magnus Norddahl
43a6fc7227
- RUNTIME_FUNCTION only exists in 64-bit Windows
2019-04-15 14:37:02 +02:00
Magnus Norddahl
a54dbec73a
- fix wrong shift direction
2019-04-15 14:37:01 +02:00
Magnus Norddahl
bd1f529574
- build enough of the unwind opcodes for visual studio's debugger to produce the correct call stack
2019-04-15 14:36:59 +02:00
Magnus Norddahl
ea8725f03b
- construct our own runtime as the one provided by asmjit is too primitive
2019-04-15 14:36:58 +02:00
Magnus Norddahl
89bf3f0455
- add more names to asmjit objects
2019-04-15 14:36:56 +02:00
Magnus Norddahl
7e9e823674
- remove the frameX registers as they were just constant offsets to vmframe that could be merged into other constant offsets
2019-04-15 14:36:55 +02:00
Magnus Norddahl
475510c8ea
- give the remaining virtual registers names
2019-04-15 14:36:53 +02:00
Magnus Norddahl
68c05a424b
- give temp registers names and reuse the FString object for formatting names
2019-04-15 14:36:52 +02:00
Magnus Norddahl
d48738437b
- skip RESULT opcodes when outputting assembly
2019-04-15 14:36:51 +02:00
Magnus Norddahl
77850c1ec5
- clean up assembly output slightly by only generating labels for the opcodes jumped to
2019-04-15 14:36:49 +02:00
Magnus Norddahl
316010378d
- fix CASTB opcode implementation
2019-04-15 14:36:48 +02:00
Magnus Norddahl
2c89d1e694
- fix missing convert from float to double in LSP and LSP_R opcodes
...
- fix missing convert from double to float in SSP and SSP_R opcodes
2019-04-15 14:36:46 +02:00
Magnus Norddahl
9b9113d0c4
- fix debug build compile error
2019-04-15 14:36:44 +02:00
Magnus Norddahl
7230974c1e
- remove the need to do any VARF_Native runtime checks by making native functions use the same calling convention as the script version
2019-04-15 14:36:43 +02:00
Magnus Norddahl
ae6c7e541c
- do script calls directly from asmjit without using a lambda wrapper
...
- do VARF_Native check at compile time when possible
2019-04-15 14:36:41 +02:00
Magnus Norddahl
37dfbba232
- add -dumpjit command line parameter that dumps the JIT log for all functions to dumpjit.txt
...
# Conflicts:
# src/scripting/backend/vmbuilder.cpp
2019-04-15 14:36:39 +02:00
Magnus Norddahl
a60ac7b47d
- fix return warning
2019-04-15 14:33:49 +02:00
Magnus Norddahl
e7f0b7a0bd
- switch to using setjmp/longjmp for exception handling
2019-04-15 14:33:47 +02:00
Magnus Norddahl
b24ec1f9cc
- add disabled code that attempts to load registers directly from function arguments
2019-04-15 14:33:46 +02:00
Magnus Norddahl
04ba3ede16
- add missing include statement
2019-04-15 14:33:44 +02:00
Magnus Norddahl
6db9b1394c
- allocate VMFrame on the stack for simple functions with no strings
2019-04-15 14:33:43 +02:00
Magnus Norddahl
84d2de34f0
- remove argument not used anymore
2019-04-15 14:33:41 +02:00
Magnus Norddahl
f0c059678b
- move VM creation into the jitted function. this will allow the jit compiler to skip vm frame creation when possible
2019-04-15 14:33:39 +02:00
Magnus Norddahl
baaed0920a
- create ScriptCall function pointer on VMScriptFunction
2019-04-15 14:33:37 +02:00
Magnus Norddahl
03689cf004
- modify the VM calling convention so that the callee sets up its own VM frame
2019-04-15 14:33:35 +02:00
Magnus Norddahl
992c097ad1
- fix wrong registers getting saved when passing parameters by reference
2019-04-15 14:33:34 +02:00
Magnus Norddahl
19ae43be17
- removed CanJit as all opcodes are now implemented
...
- fix some store bugs
2019-04-15 14:33:32 +02:00
Magnus Norddahl
b3aeb37189
- fix 32 bit compile errors
2019-04-15 14:33:31 +02:00
Magnus Norddahl
e2dcca611c
- catch and rethrow c++ exceptions
2019-04-15 14:33:29 +02:00
Magnus Norddahl
22e60d74ad
- reuse temp virtual registers
2019-04-15 14:33:28 +02:00
Magnus Norddahl
80cda43370
- workaround bug in asmjit's register allocator for calls where the return register is already allocated in a physical register needed by one of the call arguments
2019-04-15 14:33:26 +02:00
Magnus Norddahl
bb3d0021d6
- switch ToMemAddress to imm_ptr where allowed
2019-04-15 14:33:25 +02:00
Magnus Norddahl
f90019561d
- switch from ASMJIT_ARCH_X64 to ASMJIT_ARCH_64BIT when checking if we need to use 64-bit pointers
2019-04-15 14:33:23 +02:00
Magnus Norddahl
e0f0511d29
- create a very basic OP_IJMP implementation
2019-04-15 14:33:22 +02:00
Magnus Norddahl
812a4290b1
- create CreateCall helper to get rid of a lot of the cc.call boilerplate
2019-04-15 14:33:20 +02:00
Magnus Norddahl
ff6317d6f4
- implement OP_TAIL and OP_TAIL_K
2019-04-15 14:33:19 +02:00
Magnus Norddahl
be6637dd17
- use the ParamOpcodes array for finding the OP_PARAM's used by a call
2019-04-15 14:33:17 +02:00
Magnus Norddahl
f1f2dca792
- implement string version of OP_CAST
2019-04-15 14:33:16 +02:00
Magnus Norddahl
0cf5f3704b
- implement string part of OP_CASTB
2019-04-15 14:33:14 +02:00
Magnus Norddahl
097de74510
- implement OP_LFP
2019-04-15 14:33:13 +02:00
Magnus Norddahl
7f996b5334
- read the parameters and registers directly off the stack
2019-04-15 14:33:11 +02:00
Jonathan Russell
ff421eda63
- changed a bunch of manual address additions in string opcodes to leas
2019-04-15 14:33:10 +02:00
Magnus Norddahl
b6521467f3
- more load fixes
2019-04-15 14:33:08 +02:00
Magnus Norddahl
e28389ad12
- fix truncated load addresses due to a bug in asmjit
...
- change ToMemAddress to use uint64_t
2019-04-15 14:33:06 +02:00
Magnus Norddahl
db0c516693
- avoid certain x86::ptr overloads as the last argument is not always an offset
2019-04-15 14:33:05 +02:00
Jonathan Russell
0da351bfea
- fixed typo in last commit
2019-04-15 14:33:03 +02:00
Jonathan Russell
2dd2344e80
- implemented SS_R, LCS_R, and LKS_R
2019-04-15 14:33:02 +02:00
Magnus Norddahl
fb7df75011
- fix bug in LKF_R
2019-04-15 14:33:00 +02:00
Magnus Norddahl
d74cc3e49e
- fixed OP_VTBL bug
2019-04-15 14:32:59 +02:00
Magnus Norddahl
e93d9570dc
- fix crash in OP_RET handling
2019-04-15 14:32:57 +02:00
Magnus Norddahl
378e58731a
- simplify some code
2019-04-15 14:32:56 +02:00
Jonathan Russell
b342dbc8db
- added string PARAM and RET
2019-04-15 14:32:54 +02:00
Magnus Norddahl
608f49a4a8
- fix clang errors and warnings
2019-04-15 14:32:53 +02:00
Jonathan Russell
06780bf228
- added OP_MOVES, OP_CONCAT, OP_LENS, OP_CMPS
2019-04-15 14:32:52 +02:00
Magnus Norddahl
a4b3536caf
- fix opcodes not being listed in jit debug assembly
2019-04-15 14:32:50 +02:00
Magnus Norddahl
c328f9c85c
- move EmitRESULT to jit_call
2019-04-15 14:32:49 +02:00
Magnus Norddahl
ff8d21b2ec
- minor cleanups in header file
2019-04-15 14:32:47 +02:00
Magnus Norddahl
9d970a1acb
- split JitCompiler into multiple files
2019-04-15 14:32:46 +02:00
Jonathan Russell
8905701df7
- added strings and a few string opcodes
2019-04-15 14:32:44 +02:00
Magnus Norddahl
f3ca96373a
- fix CALL_K and disable CALL
2019-04-15 14:32:43 +02:00
Magnus Norddahl
56fe7af9d3
- implement OP_CALL and OP_CALL_K
2019-04-15 14:32:41 +02:00
Magnus Norddahl
60ee2c91a4
- fix misc integer opcodes and remove mov statements when they have no effect
2019-04-15 14:32:40 +02:00
Jonathan Russell
279e97fcc9
- changed the way EmitComparisonOpcode works to get rid of the temporary register that was used previously
2019-04-15 14:32:38 +02:00
Magnus Norddahl
c248fad17f
- implement PARAM and PARAMI
2019-04-15 14:32:37 +02:00
Magnus Norddahl
53b11dd0d8
- fix missing zero extend
2019-04-15 14:32:36 +02:00
Magnus Norddahl
29f6258d33
- fix that the code for META and CLSS was swapped
2019-04-15 14:32:34 +02:00
Magnus Norddahl
c2669d3a03
- some jump fixes
2019-04-15 14:32:33 +02:00
Magnus Norddahl
f7dd6a1313
- fix jump direction in EmitComparisonOpcode
2019-04-15 14:32:31 +02:00
Jonathan Russell
9530a2e43c
- more spelling mistakes...
2019-04-15 14:32:29 +02:00
Jonathan Russell
a770b3af16
- fix minor spelling error
2019-04-15 14:32:28 +02:00
Jonathan Russell
821c336c5e
- add vector comparison opcodes
2019-04-15 14:32:26 +02:00
Magnus Norddahl
14d6aa8cac
- remove some macros and add functions checking if a register needs to be copied
2019-04-15 14:32:25 +02:00
Magnus Norddahl
35a8162022
- implemented LBIT, SBIT, VTBL, SCOPE, NEW, NEW_K, THROW, EQA_R and EQA_K
2019-04-15 14:32:23 +02:00
Magnus Norddahl
4cab630871
- implement emitter functions for LKP_R, META, CLSS, LO, LO_R, LP, LP_R, SO, SO_R, SP, SP_R
...
- add emit code for throwing exceptions on null pointers
2019-04-15 14:32:22 +02:00
Magnus Norddahl
2efaa7846d
- improve jit debug output slightly
2019-04-15 14:32:20 +02:00
Magnus Norddahl
f0dbc8414a
- fix offsetting bug when loading address registers
2019-04-15 14:32:19 +02:00
Magnus Norddahl
db78d02d79
- fix swapped operands in EmitSUBF_KR
2019-04-15 14:32:17 +02:00
Magnus Norddahl
ede8c6d86b
- implement MODF_RR, MODF_RK and MODF_KR
2019-04-15 14:32:16 +02:00
Magnus Norddahl
708362b31f
- fix mul using wrong instruction
2019-04-15 14:32:14 +02:00
Magnus Norddahl
c46a4d4483
- implement BOUND opcodes and add logging the resulting assembly code if asmjit throws an exception
2019-04-15 14:32:13 +02:00
Magnus Norddahl
c2938926a7
- implement a few more opcodes and fix some bugs
2019-04-15 14:32:11 +02:00
Magnus Norddahl
9427e22d7c
- implemented pow, min, max
2019-04-15 14:32:10 +02:00
Magnus Norddahl
f4181be6b8
- implement ATAN2 and FLOP
2019-04-15 14:32:08 +02:00
Magnus Norddahl
77fe376eca
- implement DYNCAST*, TEST, TESTN and JMP opcodes
2019-04-15 14:32:07 +02:00
Magnus Norddahl
9474a2554d
- convert JitCompile's switch into a class to enable easier code reuse
2019-04-15 14:32:05 +02:00
Magnus Norddahl
9889d2fbb6
- fix clang compile error
2019-04-15 14:32:03 +02:00
Magnus Norddahl
976a7fab3a
- implement throwing by storing exception information in a struct, then return from the jitted function and throw from c++
2019-04-15 14:32:02 +02:00
Jonathan Russell
45bc0d266e
- removed the ability to use printf-like formatting in emitAbortExceptionCall, it barely worked
2019-04-15 14:32:00 +02:00
Jonathan Russell
197b20af5d
- add first draft of abort exceptions
2019-04-15 14:31:58 +02:00
Magnus Norddahl
c65b7076eb
- call play sqrt when calculating lengths
2019-04-15 14:31:57 +02:00
Magnus Norddahl
50d0049460
- fix 8 and 16 bit store
2019-04-15 14:31:55 +02:00
Magnus Norddahl
76c08bf725
- destroy the jit runtime when all script functions are destroyed
2019-04-15 14:31:54 +02:00
Magnus Norddahl
4820c32794
- disable all unimplemented opcodes in the switch to ensure 'Unknown VM opcode' fatal error is generated if CanJit has a bug
2019-04-15 14:31:52 +02:00
Magnus Norddahl
e9914f38af
Fix compile errors on macOS
2019-04-15 14:31:51 +02:00
Jonathan Russell
601c492cf2
- added remaining int arithmetic opcodes (and fixed float loading offset issue)
2019-04-15 14:31:49 +02:00
Jonathan Russell
e771064657
- forgot to turn off debug switch in last commit
2019-04-15 14:31:47 +02:00
Jonathan Russell
4228891da2
- made absMaskInt const
2019-04-15 14:31:46 +02:00
Jonathan Russell
8306815292
- implemented CMP_APPROX for OP_EQF_*, making ~== work for doubles
2019-04-15 14:31:44 +02:00
Chronos Ouroboros
e07af1428c
Updated CanJit's supported opcodes list.
2019-04-15 14:31:43 +02:00
Chronos Ouroboros
63cda1c13d
Pointer addition opcodes must leave NULL pointers as they are.
2019-04-15 14:31:41 +02:00
Chronos Ouroboros
3c8aa9f641
Changed binary int ops to use a temporary register, fixed some opcodes.
...
For some reason, binary ops might reuse one of the input registers as the output register.
This is a problem for very obvious reasons.
2019-04-15 14:31:39 +02:00
Jonathan Russell
62ece01c0a
- made CMP_CHECK checking compile time
2019-04-15 14:31:37 +02:00
Jonathan Russell
f897f2bfd3
- added exact floating point comparison opcodes
2019-04-15 14:31:36 +02:00
Jonathan Russell
5846357268
- implemented all integer comparison operators
2019-04-15 14:31:34 +02:00
Jonathan Russell
166ce87a86
- adds OP_EQ_R, the first instruction using jumps
2019-04-15 14:31:33 +02:00
Magnus Norddahl
5c3ef8ac15
- add misc float opcodes
2019-04-15 14:31:31 +02:00
Jonathan Russell
b242ffdbbe
- added most vector maths opcodes
2019-04-15 14:31:29 +02:00
Chronos Ouroboros
73892f4a6e
Fix floats and implement some more opcodes.
2019-04-15 14:31:27 +02:00
Magnus Norddahl
113714990e
- copy initial register values from the VM frame
2019-04-15 14:31:26 +02:00
Magnus Norddahl
10a6ab4d56
- implement most of the integer math opcodes
2019-04-15 14:31:24 +02:00
Magnus Norddahl
d651c02b17
- embed and use asmjit to JIT ZScript VM functions
2019-04-15 14:31:22 +02:00
drfrag
2039a306ae
- Disable HRTF by default, it's slow on weak CPUs with many ambient sounds.
2019-04-15 13:30:21 +02:00
drfrag666
eafac3db33
- Fixed bad merge of "- more options for Doom 64 style gradients on walls".
2018-12-08 10:07:51 +01:00
drfrag666
6eca20a592
- Bumped version number for a new beta.
2018-12-04 18:54:17 +01:00
drfrag666
825a720b09
- Default gender for sound classes should be male and not other since it could be undefined in SNDINFO.
2018-12-03 20:19:46 +01:00
Player701
d72d820bba
- Exported AActor::Grind to ZScript.
2018-11-30 10:18:43 +01:00
drfrag666
cdb60486c7
- Fixed compilation of previous commit.
2018-11-30 10:16:55 +01:00
Magnus Norddahl
e76a9c3085
- forgot to set the light level
2018-11-29 11:26:32 +01:00
Magnus Norddahl
20d5b904b2
- use psprite renderstyle on HUD models
2018-11-29 11:26:20 +01:00
Christoph Oelckers
7600b65810
- fixed: P_Recalculate3DFloors may not be called before the vertex buffer has been set up.
...
Since this function creates dynamic copies for 3D floors that need to be split it requires the vertex buffer index to be set up.
In older versions this did not produce errors because there was a fallback render path that was less efficient.
Now with that fallback removed this resulted in temporary 3D floors being created without valid vertex data.
# Conflicts:
# src/p_setup.cpp
# Conflicts:
# src/p_setup.cpp
2018-11-29 11:26:08 +01:00
Christoph Oelckers
0ddb5038c3
- fixed the mapping of additive translucency to color-based translucency.
...
The destination mode sould be 'One', not 'InvSrcColor'.
Now both of these are available as explicit modes, not just through the optional mapping.
# Conflicts:
# src/hwrenderer/scene/hw_sprites.cpp
# src/r_data/renderstyle.cpp
# src/r_data/renderstyle.h
With additional render styles from " - abstraction of render style in render state.". drfrag
# Conflicts:
# src/r_data/renderstyle.cpp
# src/r_data/renderstyle.h
With additional render styles from "- made the screen blend work for the software renderer.". drfrag
2018-11-28 14:39:54 +01:00
Christoph Oelckers
273c02ee73
- fixed: The serializer must treat object that were already destroyed or are declared transient like a null pointer and not ignore them.
...
This caused FraggleScript's SpawnedThings array to go out of sync.
2018-11-26 11:28:31 +01:00
Marrub
3cf4a77c30
Fix null pointer access in p_terrain.cpp
2018-11-24 11:27:51 +01:00
Marisa Kirisame
9022c98732
expose defaultbloodcolor to ZScript.
2018-11-24 00:18:24 +01:00
alexey.lysiuk
9cf8be0259
- fixed compilation of POSIX targets
...
src/doomerrors.h:74:14: error: exception specification of overriding function is more lax than base version
src/posix/sdl/i_main.cpp:272:28: error: 'class std::exception' has no member named 'GetMessage'
2018-11-23 19:41:07 +01:00
Magnus Norddahl
7675e7a6dc
- use std::runtime_error instead as the constructor on std::exception is a MSVC extension
2018-11-23 19:41:06 +01:00
Christoph Oelckers
831cfd5280
- made CDoomError inherit from std::exception so that the main catch block can also deal with exceptions thrown by the STL.
...
- Also do not ignore empty exception messages as irrelevant. The only irrelevant exception type is CNoRunExit.
2018-11-23 19:41:05 +01:00
drfrag666
e1c521f4ce
- Made previous condition more clear.
2018-11-22 11:16:46 +01:00
Rachael Alexanderson
d24d25ef55
- fix inverted logic of Intel check
2018-11-22 10:59:17 +01:00
Magnus Norddahl
edd58e6abf
- only use shader cache on Intel
...
# Conflicts:
# src/gl/shaders/gl_shaderprogram.cpp
2018-11-22 10:59:05 +01:00
Magnus Norddahl
ff761c9864
- fix compile error
2018-11-21 20:19:14 +01:00
Christoph Oelckers
34e003f7cd
- regenerated gl_load with full OpenGL 4.5 declarations, mostly to get the direct state access functions.
2018-11-21 20:18:45 +01:00
Magnus Norddahl
e4dc685202
- implement a shader cache
...
# Conflicts:
# src/gl/shaders/gl_shader.cpp
# src/gl/shaders/gl_shaderprogram.cpp
# Conflicts:
# src/gl/shaders/gl_shader.cpp
# src/gl/shaders/gl_shaderprogram.h
2018-11-21 14:26:37 +01:00
Christoph Oelckers
b8ca67f426
- fixed the type checks for object arrays.
...
Null pointers must be allowed and non-object pointers which are not null must be explicitly checked for because the code could crash on them when performing a static_cast on an incorrect type.
2018-11-18 21:57:12 +01:00
Major Cooke
eb1c356d41
P_Thing_Raise fixes & cleanup
...
- Transfer flags directly into the function and process inside instead of the action functions
- Pass in raiser for all function calls
2018-11-18 21:57:11 +01:00
Christoph Oelckers
ebf46b8d04
- fixed: FTexture::SmoothEdges must forward its result to the base texture in case a redirection is in effect.
...
Both need the bMasked flag, or some code will think that the texture is not fully opaque if no holes were found.
# Conflicts:
# src/gl/textures/gl_material.h
# src/textures/texture.cpp
2018-11-17 21:12:22 +01:00
Christoph Oelckers
6c76566bb1
- use the same formula for calculating 3DMidTex offsets as the renderer when per-sidedef scaling is used.
...
This reuses the FTexCoordInfo class the hardware renderer had been using to calculate wall texture offsetting.
The software renderers still need this sorted out to bring them in line with the rest of the code, though, but they do not have this code sufficiently well organized to make this a straightforward task.
# Conflicts:
# src/hwrenderer/textures/hw_material.cpp
# src/textures/textures.h
2018-11-17 20:43:52 +01:00
Christoph Oelckers
40bd248da2
- fixed parameter mixup with P_CanResurrect.
2018-11-17 20:20:03 +01:00
Christoph Oelckers
17a33b609a
- fixed: CVar.ResetToDefault was missing a check for use outside of menus.
2018-11-17 20:19:21 +01:00
Christoph Oelckers
692d6e9045
- Restricted argument count check to the void return case.
...
There were some issues here:
* a check for mismatching count is too strict because it is legal to omit return values
* it failed to detect returning multiple values in a single expression.
2018-11-16 21:33:22 +01:00
Christoph Oelckers
c1edaa317d
fixed right shift operator for unsigned values
...
This is version protected to avoid breaking old code.
2018-11-16 21:33:20 +01:00
Christoph Oelckers
38fe0b2fe1
- fixed: FxUnaryNotBitwise modified the source operand instead of allocating a new one.
2018-11-16 21:33:19 +01:00
Christoph Oelckers
c9f389770d
- fixed: AActor' friction field was not saved
2018-11-16 21:33:18 +01:00
Player701
3bd16afc0f
- Readonly pointer casting now works in ZScript.
2018-11-16 21:33:17 +01:00
Christoph Oelckers
834a96662b
Make BounceFlags 32 bit wide.
2018-11-16 21:33:13 +01:00
Cacodemon345
0f2a4abe8f
BOUNCEONUNRIPPABLES flag; makes actors bounce on actors with DONTRIP flag
2018-11-16 21:33:12 +01:00
alexey.lysiuk
6e922761a8
- fixed compilation of targets with optimization
2018-11-16 21:33:11 +01:00
Christoph Oelckers
645c7fb192
- extended state caller check to work on CustomInventory items as well
...
Since CallStateChain is a public member in CustomInventory we cannot really be sure that the given state is valid so it needs checking as well.
# Conflicts:
# .gitignore
2018-11-16 21:31:53 +01:00
Christoph Oelckers
67bde8090a
Added a run time check for calling a state action from the wrong actor type.
...
This can happen if a state that's retrieved with FindState gets used with a different actor type and can lead to hard to trace problems if not checked.
2018-11-16 21:28:10 +01:00
Magnus Norddahl
7567462328
- fix missing type check when using Push or Insert for typed arrays
2018-11-16 21:26:33 +01:00
drfrag666
f9fff8bbce
- fixed incompletely initialized secplanes in sprite splitting code.
...
(patch by Graf)
# Conflicts:
# src/hwrenderer/scene/hw_sprites.cpp
LZDoom was not affected tough.
# Conflicts:
# src/gl/scene/gl_sprite.cpp
2018-11-16 21:26:15 +01:00
Major Cooke
57efd617fa
Changed A_RaiseActor to just RaiseActor.
2018-11-16 21:17:53 +01:00
Major Cooke
bddf94d780
Fixed inconsistency.
...
- P_Thing_Raise returned true while P_Thing_CanRaise returned false for the condition of having no raise state. P_Thing_Raise now returns false.
2018-11-16 21:17:52 +01:00
Major Cooke
a083eb6421
Added A_RaiseActor(Actor other, int flags = 0)
2018-11-16 21:17:51 +01:00
Major Cooke
24fdaf751c
Added CanResurrect(Actor other, bool passive)
...
- Works similarly to CanCollideWith.
- Passive means the caller is trying to be resurrected by 'other'.
- Non-passive means the caller is trying to resurrect 'other'.
2018-11-16 21:17:49 +01:00
Christoph Oelckers
1dad5101f1
- fixed: ZScript's finalization code used the last parsed lump for of one translation unit as reference, not the base lump.
...
This resulted in incorrect messages but also could produce some more subtle errors.
2018-11-16 21:17:46 +01:00
Christoph Oelckers
4183615495
- added ZScript export for side_t::SetSpecialColor.
2018-11-16 21:17:45 +01:00
Christoph Oelckers
79b2a7e043
- removed test code that was accidentally left in.
2018-11-16 21:17:11 +01:00
Christoph Oelckers
8368331481
- more options for Doom 64 style gradients on walls:
...
* Colors can npw be defined per sidedef, not only per sector.
* Gradients can be selectively disabled or vertically flipped per wall tier.
* Gradients can be clamped to their respective tier, i.e top and bottom of the tier, not the front sector defines where it starts.
The per-wall colors are implemented for hardware and softpoly renderer only, but not for the classic software renderer, because its code is far too scattered to do this efficiently.
# Conflicts:
# src/hwrenderer/scene/hw_renderstate.h
# src/hwrenderer/scene/hw_walls.cpp
# Conflicts:
# src/gl/scene/gl_walls_draw.cpp
2018-11-16 21:16:15 +01:00
Player701
e00db66432
- Fixed: Decal generator should be taken from the current weapon instance instead of the default instance.
2018-11-16 20:40:05 +01:00
drfrag666
f232ebb5b6
- Fixed TArray::Reset().
...
(patch by Graf)
2018-11-16 20:39:52 +01:00
Christoph Oelckers
07d5efcacb
- instead of copying the sector planes to GLWall, just store pointers to the front and back sector for later use.
...
Until now this wasn't doable because these could have come from hw_FakeFlat which only were local copies on the stack.
With the recent change these faked sectors live long enough so that they can be passed around here.
# Conflicts:
# src/hwrenderer/scene/hw_decal.cpp
# src/hwrenderer/scene/hw_walls.cpp
# Conflicts:
# src/gl/scene/gl_wall.h
# src/gl/scene/gl_walls.cpp
# src/gl/scene/gl_walls_draw.cpp
# src/hwrenderer/scene/hw_decal.cpp
2018-11-16 20:39:22 +01:00
Christoph Oelckers
103f3f4cf9
- cache the results of hw_FakeFlat for the remainder of the current scene instead of storing this in local variables.
...
An exception is made for the sprite drawer which needs to call this in the worker thread on some occasions for as-yet unprocessed sectors.
This case may not alter the cache to avoid having to add thread synchronization to it.
The main reason for this change is that pointers to such manipulated sectors can now be considered static in the renderer.
Due to them being short lived local buffers it was not possible to carry them along with the render data for information retrieval.
# Conflicts:
# src/gl/renderer/gl_renderer.cpp
# src/hwrenderer/scene/hw_bsp.cpp
# src/hwrenderer/scene/hw_drawinfo.h
# src/hwrenderer/scene/hw_drawlist.cpp
# src/hwrenderer/scene/hw_fakeflat.cpp
# src/hwrenderer/scene/hw_renderhacks.cpp
# Conflicts:
# src/gl/renderer/gl_renderer.cpp
# src/gl/renderer/gl_renderer.h
# src/gl/scene/gl_bsp.cpp
# src/gl/scene/gl_drawinfo.cpp
# src/gl/scene/gl_fakeflat.cpp
# src/gl/scene/gl_renderhacks.cpp
# src/gl/scene/gl_scene.cpp
# src/hwrenderer/scene/hw_drawinfo.h
# src/hwrenderer/scene/hw_drawlist.cpp
# src/hwrenderer/scene/hw_fakeflat.h
# src/hwrenderer/scene/hw_sprites.cpp
# src/hwrenderer/scene/hw_weapon.cpp
2018-11-16 15:10:50 +01:00
drfrag666
7f5bf11f12
- Forgot to update the version number after the beta 2 release.
2018-11-14 11:46:22 +01:00
Major Cooke
be2d5ba9ec
Added DMG_NO_ENHANCE for DamageMobj.
...
- Disables PowerDamage's effect, similar to DMG_NO_PROTECT disabling PowerProtect.
2018-11-12 22:04:17 +01:00
alexey.lysiuk
e820880d46
- fixed compilation on POSIX-like platforms
...
src/p_udmf.cpp:2052:6: error: no matching member function for call to 'OpenMem'
src/sc_man.h:24:7: note: candidate function not viable: expects an l-value for 2nd argument
src/sc_man.h:23:7: note: candidate function not viable: requires 3 arguments, but 2 were provided
src/resourcefiles/file_directory.cpp:198:32: error: use of undeclared identifier 'Filename'; did you mean 'FileName'?
2018-11-12 21:53:14 +01:00
Christoph Oelckers
2fe54f4a53
- use TArray and FString in resource file management.
2018-11-12 21:53:13 +01:00
Christoph Oelckers
9a8e4a6285
- a few more buffers converted.
...
# Conflicts:
# src/f_wipe.cpp
2018-11-12 21:53:12 +01:00
Christoph Oelckers
f744b9a0f8
- use TArray for most buffers in p_glnodes.cpp.
2018-11-12 21:53:11 +01:00
Christoph Oelckers
91663e1202
- replaced a few temporary allocations with TArray and added a few convenience loader functions for this.
...
Amazingly with today's optimizers this creates code which is just as good as doing it all manually with the added benefit of being safer.
2018-11-12 21:53:10 +01:00
Christoph Oelckers
3db6fc0900
- made some minor changes to TArray after finding out that "new int()" is not the same as "new int".
...
With parentheses this initializes to 0 which created needless initialization code in a few places.
2018-11-12 21:53:09 +01:00
drfrag666
ab66abfdc1
- Some TArray changes.
...
(patches by Graf)
2018-11-12 21:53:08 +01:00
drfrag666
5740421d54
- Even more TArray changes.
...
(patches by Graf)
2018-11-12 21:52:16 +01:00
drfrag666
63edabba16
- Changed default GL fuzz type to software.
2018-11-12 11:16:01 +01:00
drfrag666
c2a3895bfe
Revert "- add dithering to present shader"
...
This reverts commit 60ae0915b9
.
This was extremely slow on intel, the dither matrix was recreated on every frame even when not used.
2018-11-12 11:11:28 +01:00
Christoph Oelckers
709a573355
- clear spechit before leaving P_CheckPosition.
...
Otherwise this may contain residual data from the last call.
One can only hope that this doesn't cause other side effects - this entire code is one horrendous mess of bad ideas.
2018-11-10 11:19:25 +01:00
Major Cooke
484a44a0be
Changed IsPointInMap to use P_PointOnDivlineSide.
2018-11-08 16:18:30 +01:00
Major Cooke
b34bc0947e
Added IsPointInMap(Vector3 p).
...
- Checks if a point is inside the map geometry or not.
2018-11-08 16:18:29 +01:00
Christoph Oelckers
e261c73b31
- added copyright header to p_destructible.cpp
2018-11-08 00:18:09 +01:00
ZZYZX
7905a0e041
Exported destructible geometry to ZScript
2018-11-07 11:00:08 +01:00
ZZYZX
89bdd1adf0
Explode bouncing projectiles if hit damageable geometry
2018-11-07 11:00:06 +01:00
ZZYZX
b581648d6f
Destructible geometry - minor fixes and 3D floor support
2018-11-07 11:00:05 +01:00
Christoph Oelckers
b6e032e9ae
- fixed typo in sight checking code.
2018-11-07 11:00:02 +01:00
Christoph Oelckers
a42f30b3ea
- reinstated the sector light clamping threshold from before version 3.3.
...
It turned out that without the clamping the feature does not work well, thanks to a poorly chosen scale of the original arguments.
2018-11-05 01:38:45 +01:00
Player701
ce481b2553
- undid the save version bump
2018-11-05 01:38:37 +01:00
Player701
4751181eb6
- Added a function to get the actor's age in ticks.
2018-11-05 01:38:37 +01:00
Player701
905146d87c
- Added a new field to the Actor class which stores the amount of ticks passed since the game started on the moment the actor was spawned.
...
- Added a function to the Actor class to get its spawn time relative to the current level.
- Added spawn time information to the output of the "info" console command.
2018-11-05 01:38:35 +01:00
Cacodemon345
57e51debec
Extend SKYEXPLODE flag for LineAttack
2018-11-03 21:52:25 +01:00
Christoph Oelckers
0357cd451e
- added a method to FileReader to read the contents into an array and used it on the MIDI sources for testing.
2018-11-02 14:41:28 +01:00
Christoph Oelckers
a2760d7da2
- use a single TArray to allocate the memory for the lump manager's hash lists.
...
# Conflicts:
# src/w_wad.cpp
# src/w_wad.h
2018-11-02 14:40:51 +01:00
alexey.lysiuk
08dfdd2687
- added warning for constant conditional expression
...
ZScript code like `if (x = 0) // ...` no longer causes assertion failure in Debug but produces a warning regadless of configuration
https://forum.zdoom.org/viewtopic.php?t=62422
2018-11-02 13:31:43 +01:00
alexey.lysiuk
bde980d5e8
- fixed potential crash when drawing status bar log
...
src/g_statusbar/shared_sbar.cpp:1133:34: warning: comparison of integers of different signs: 'unsigned int' and 'int'
[-Wsign-compare]
2018-11-02 13:31:41 +01:00