Commit Graph

15113 Commits

Author SHA1 Message Date
Magnus Norddahl 01ea329cd4 - only render visual portals if they are front facing 2018-08-23 18:19:53 +02:00
Kevin Caccamo cbbf4fb662 Add 1280x1024 to the resolution preset menu 2018-08-21 20:16:46 +02:00
argv-minus-one 1d930b45cf Add ZScript method `LevelLocals.SphericalCoords`.
It computes spherical coordinates from one point in the world to another. Useful for checking whether one actor is inside another actor's view cone.
2018-08-21 08:22:16 +02:00
Magnus Norddahl 17813e4b3e - implement ATAN2 and FLOP 2018-08-20 01:40:37 +02:00
Christopher Bruns 03fa1a12cb Avoid overriding vr eye-specific buffer binding during 2D rendering. 2018-08-20 00:59:52 +02:00
Magnus Norddahl 38fa25d0c5 - implement DYNCAST*, TEST, TESTN and JMP opcodes 2018-08-20 00:44:48 +02:00
Christoph Oelckers fad406c4c9 - got rid of FNameNoInit and made the default constructor of FName non-initializing.
This setup has been a constant source of problems so now I reviewed all uses of FName to make sure that everything that needs to be initialized is done manually.
This also merges the player_t constructor into the class definition as default values.
2018-08-19 08:19:19 +02:00
Magnus Norddahl 302d753d17 - convert JitCompile's switch into a class to enable easier code reuse 2018-08-19 01:46:56 +02:00
Magnus Norddahl c17be9eb21 - fix clang compile error 2018-08-18 22:46:18 +02:00
Magnus Norddahl 3453f05f06 - implement throwing by storing exception information in a struct, then return from the jitted function and throw from c++ 2018-08-18 22:41:18 +02:00
Magnus Norddahl b6f52c319a
Merge pull request #551 from Gutawer/asmjit
Add a first draft of exception handling
2018-08-18 21:41:14 +02:00
Jonathan Russell d983ae66c7 - removed the ability to use printf-like formatting in emitAbortExceptionCall, it barely worked 2018-08-18 20:37:55 +01:00
Jonathan Russell 6424190cbf - add first draft of abort exceptions 2018-08-18 18:03:18 +01:00
Magnus Norddahl c89d8bb9bb - call play sqrt when calculating lengths 2018-08-18 18:41:35 +02:00
Magnus Norddahl b159b5667a - fix 8 and 16 bit store 2018-08-18 18:21:52 +02:00
Magnus Norddahl e557e8fac0 - destroy the jit runtime when all script functions are destroyed 2018-08-18 17:50:47 +02:00
alexey.lysiuk 34f2d8f310
- fixed typo in error message 2018-08-18 17:45:26 +03:00
alexey.lysiuk 12b8510574 - cleaned up inconsistent leading whitespaces
Bump copyright year as well
2018-08-18 16:05:33 +03:00
alexey.lysiuk 31bd7cfc04
- prohibit assignment of dynamic arrays
https://forum.zdoom.org/viewtopic.php?t=61682
2018-08-18 15:20:38 +03:00
Magnus Norddahl 9d68d43ce7 - disable all unimplemented opcodes in the switch to ensure 'Unknown VM opcode' fatal error is generated if CanJit has a bug 2018-08-18 13:18:52 +02:00
Magnus Norddahl 68b2cd58d8 Fix compile errors on macOS 2018-08-18 12:37:33 +02:00
alexey.lysiuk d965c9aa76
- support static const arrays inside structs
https://forum.zdoom.org/viewtopic.php?t=61677
2018-08-18 13:00:33 +03:00
Magnus Norddahl 1757acacff
Merge pull request #549 from Gutawer/asmjit
Added remaining int arithmetic opcodes
2018-08-18 00:57:53 +02:00
Jonathan Russell 6a40e092fe - added remaining int arithmetic opcodes (and fixed float loading offset issue) 2018-08-17 22:06:12 +01:00
Marisa Kirisame 20b6db30d7 Added missing check for HITOWNER on bouncers with 0 damage. 2018-08-17 21:39:41 +02:00
Magnus Norddahl 9bf47b7ed6
Merge pull request #546 from Gutawer/asmjit
Implemented CMP_APPROX for OP_EQF_*, making ~== work for doubles
2018-08-17 21:03:25 +02:00
Jonathan Russell 758ee5cbfb - forgot to turn off debug switch in last commit 2018-08-17 19:15:27 +01:00
Jonathan Russell 08c0ac541f - made absMaskInt const 2018-08-17 19:14:31 +01:00
Jonathan Russell d137b3c94e - implemented CMP_APPROX for OP_EQF_*, making ~== work for doubles 2018-08-17 19:08:19 +01:00
Marisa Kirisame 155afebb65 Add HITOWNER flag, when set, allows a projectile to collide with its shooter. 2018-08-17 19:47:12 +02:00
Chronos Ouroboros 079391e5ac Updated CanJit's supported opcodes list. 2018-08-16 21:45:04 +02:00
Chronos Ouroboros a8ce626708 Pointer addition opcodes must leave NULL pointers as they are. 2018-08-16 21:45:04 +02:00
Marisa Kirisame 02926a5567 Add "IsFinal" parameter for CheckReplacement.
If set to true it guarantees that the replacement is final and will not go through the rest of the replacement chain.
2018-08-16 21:44:21 +02:00
Marisa Kirisame 4e690b1f60 Fix SDL window "sticking" to the center of the screen after using vid_setsize. 2018-08-15 21:03:07 +02:00
Marisa Kirisame e18b17217f Added CheckReplacement to event handlers, a function inspired by its namesake in Unreal's Mutator class.
Performs runtime replacement of actor classes.
Takes priority over the "replaces" keyword in both DECORATE and ZScript.
2018-08-15 19:31:09 +02:00
Magnus Norddahl ac462638d3
Merge pull request #540 from Doom2fan/asmjit
Changed binary int ops to use a temporary register, fixed some opcodes.
2018-08-15 01:33:21 +02:00
Chronos Ouroboros 591783087d 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.
2018-08-14 20:08:04 -03:00
Magnus Norddahl 1a52c2ba00
Merge pull request #539 from Gutawer/asmjit
Added exact floating point comparison opcodes
2018-08-14 22:33:37 +02:00
Jonathan Russell dc03cb7a80 - made CMP_CHECK checking compile time 2018-08-14 20:50:32 +01:00
Christoph Oelckers 7d40edd6ac - disable runtime buffer security check in release build.
This has a minor but measurable effect on performance because it gets inserted into every function which uses a local stack space structure.
2018-08-14 21:29:14 +02:00
Christoph Oelckers 96ec6b1dc6 - fixed FS camera for real. 2018-08-14 21:12:50 +02:00
Jonathan Russell 740415246e - added exact floating point comparison opcodes 2018-08-14 18:32:17 +01:00
Magnus Norddahl f862b96763
Merge pull request #538 from Gutawer/asmjit
Added all integer comparison opcodes
2018-08-14 16:47:18 +02:00
Jonathan Russell 167693f102 - implemented all integer comparison operators 2018-08-14 15:07:09 +01:00
Jonathan Russell b30df47499 - adds OP_EQ_R, the first instruction using jumps 2018-08-14 13:02:56 +01:00
argv-minus-one 0717f5aede Make various getter and pure-math Actor methods clearscope.
These methods do not examine or change playsim state. They only perform math or look at class metadata.

Methods changed are:

• deltaangle
• absangle
• AngleToVector
• RotateVector
• Normalize180
• BobSin
• GetDefaultSpeed
• FindState
• GetDropItems (which changes the scope of the returned struct, but the returned struct is all-readonly anyway)
2018-08-14 11:52:44 +02:00
Magnus Norddahl 0ced612d2c - add misc float opcodes 2018-08-14 01:07:30 +02:00
Magnus Norddahl eb20e5482d
Merge pull request #535 from Gutawer/asmjit
- added most vector maths opcodes
2018-08-13 22:38:42 +02:00
Jonathan Russell cdb5a9d91e - added most vector maths opcodes 2018-08-13 21:36:55 +01:00
Christoph Oelckers 57ed4df85e - fixed FraggleScript's moving camera.
The logic here was a bit more complicated than I assumed but it was all buried in a heap of code that tried to deal with angular wraparounds in the BAM format.
2018-08-13 20:48:27 +02:00