Christoph Oelckers
6eab4a882c
- narrowing down the public interface of the texture class
...
Cannot refactor if the entire class is this wide open to everything.
Not complete yet, doesn't fully compile!
2018-12-06 01:11:04 +01:00
Christoph Oelckers
6c9d0b166a
Added direct native entry points to a larger number of functions.
2018-12-05 17:34:11 +01:00
Christoph Oelckers
9348baeeb1
Removed all remaining references to AInventory
...
What remains is the class definition and one single reference that will be scriptified.
2018-12-04 17:11:36 +01:00
Christoph Oelckers
cd563cc4db
Removed more literal references to AInventory.
2018-12-04 17:00:48 +01:00
Christoph Oelckers
3d28006eda
- started removing literal references of AInventory, so far only simple stuff.
2018-12-04 00:41:39 +01:00
Christoph Oelckers
a573c63f60
- removed all direct access to AInventory's members.
...
We are getting closer to make class Inventory fully scripted.
2018-12-04 00:22:26 +01:00
Christoph Oelckers
0e095b0c05
- removed all direct references of AInventory::Owner and AInventory::Amount from the C++ code.
2018-12-03 17:41:05 +01:00
Christoph Oelckers
bfcd714186
- started replacing direct references to class AInventory.
...
The easiest part was the type checks which could be changed to the name variant with a global search and replace.
2018-12-02 21:35:55 +01:00
Christoph Oelckers
319f8743db
- consolidated the check for "is actor an owned inventory item" into a subfunction.
...
This check occured 9 times in the source, better have it only once.
2018-12-02 16:53:12 +01:00
Christoph Oelckers
ee08412e49
- scriptified G_PlayerFinishLevel.
...
Outside of SBARINFO this was the biggest remaining piece of code that referenced AInventory internals.
2018-12-02 16:26:02 +01:00
Christoph Oelckers
588ddd185b
- scriptified TakeInventory, including the ACS/FS interfaces.
2018-12-01 17:11:09 +01:00
Christoph Oelckers
eb47fb9adc
- scriptified GiveInventory and made the interface a bit more configurable by mods.
...
Now a child type can decide for itself how to treat 'amount'.
The scripting interfaces to this function in ACS and FraggleScript have been consolidated and also scriptified.
2018-12-01 17:07:09 +01:00
Christoph Oelckers
a0c0e8bdfe
Merge remote-tracking branch 'remotes/origin/weapon_scriptification' into asmjit
...
# Conflicts:
# src/g_inventory/a_pickups.cpp
2018-11-30 21:28:44 +01:00
Christoph Oelckers
f43f0b9bd4
- added a few more direct native entry points.
2018-11-29 00:27:09 +01:00
Christoph Oelckers
d3ff657231
- added a direct native function for NextHighestCeilingAt to test multiple return values.
2018-11-28 21:40:56 +01:00
Christoph Oelckers
6fc63b9b78
- 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.
2018-11-24 13:06:01 +01:00
Christoph Oelckers
bd84a60663
- scriptified the rest of the morph code.
2018-11-24 10:47:42 +01:00
Christoph Oelckers
ac1bffc51b
- scriptified P_MorphMonster.
2018-11-24 09:33:03 +01:00
Christoph Oelckers
97573a0452
- 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.
2018-11-16 19:18:33 +01:00
Christoph Oelckers
c24da62cdd
- 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.
2018-11-16 18:41:27 +01:00
ZZYZX
d85e5afdfb
Destructible geometry - minor fixes and 3D floor support
2018-11-07 00:12:37 +01:00
ZZYZX
b911bbc424
Single commit - destructible geometry feature
2018-10-31 17:22:09 +01:00
alexey.lysiuk
2ae8d39441
Removed all superfluous #include's
...
Automatically optimized by CLion IDE with manual corrections
2018-04-24 14:30:35 +03:00
Christoph Oelckers
e89a598b31
- renamed FTexture's UseType flags and gave them a dedicated type.
...
This was done mainly to reduce the amount of occurences of the word FTexture but it immediately helped detect two small and mostly harmless bugs that were found due to the stricter type checks.
2018-03-25 20:26:16 +02:00
Christoph Oelckers
da74b9df95
- serialize the temporary music volume that can be set through ACS.
2018-03-24 13:07:18 +01:00
Jason Francis
bd7791ad9c
Allow setting string user variables in ACS
2018-03-24 10:20:39 +01:00
Christoph Oelckers
b939836846
- renamed FileRdr back to FileReader.
2018-03-11 19:29:37 +01:00
Christoph Oelckers
247785bca2
- converted map loader to FileRdr and took the opportunity to clean up its interface.
2018-03-10 21:48:33 +01:00
Marrub
66d15dc215
Make the ACS string pool reserve more strings
...
Due to only reserving a single new string when growing the string pool, any ACS code that generates lots of strings will eventually cause massive amounts of lag, to the point where ACSStringPool takes up *most of the execution time*. The proposed change fixes this issue.
2018-02-10 20:18:26 +01:00
alexey.lysiuk
d5bc0a1fa9
Uniform way to guard ACS stack and variables
...
ACS VM stack and map/world/global variables arrays are now checked for out of bounds access
2018-02-03 14:39:01 +02:00
Christoph Oelckers
d207f426c1
Typo.
2018-01-27 12:49:52 +01:00
Christoph Oelckers
1794774f22
- ScriptedMarine already exists as a name so most literal occurences in the source could be replaced with more efficient direct use of the name.
2018-01-27 09:54:33 +01:00
alexey.lysiuk
b5006bbee4
Fixed potential compilation error in ACS loader
...
https://forum.zdoom.org/viewtopic.php?t=59164
2018-01-20 10:34:07 +02:00
alexey.lysiuk
09e2326c63
Use dummy uallong() function for all Intel targets
...
64-bit Intel targets built with GCC/Clang were using strict memory alignment version of this function
2018-01-14 10:13:18 +02:00
alexey.lysiuk
72f181be08
Revert "Added partial bounds check for instruction pointer in ACS VM"
...
This reverts commit 83cd53c9b1
.
2018-01-14 10:04:13 +02:00
alexey.lysiuk
83cd53c9b1
Added partial bounds check for instruction pointer in ACS VM
...
This change adds verification of instruction pointer for indirect usages only, i.e. via NEXT...() macros
2018-01-06 13:26:51 +02:00
alexey.lysiuk
44f01e1dc6
Added bounds check for local variables in ACS VM
2018-01-06 12:13:15 +02:00
alexey.lysiuk
4b044e30d7
- ACS stack checking (proxy commit by Rachael)
2018-01-03 23:35:57 -05:00
alexey.lysiuk
a89bc23789
Fixed crash when loading saved game with missing ACS module
2017-12-10 13:24:16 +02:00
alexey.lysiuk
0d05b41f22
Fixed incomplete ACS string pool state after loading of saved game
...
https://forum.zdoom.org/viewtopic.php?t=58571
2017-12-02 11:51:52 +02:00
alexey.lysiuk
f5f7cd9fed
Fixed broken FOV in SetCameraToTexture() ACS function
2017-09-11 12:22:22 +03:00
nashmuhandes
f96f71044f
Change camera texture FOV to doubles.
2017-09-02 07:44:38 +02:00
alexey.lysiuk
122f5d9515
Fixed crash caused by script number collision of ACS typed scripts
...
Wrong typed script can be picked when the same ACS script number is used for different script types from multiple behavior lumps
Although script in particular state is discarded and null pointer could be dereferenced
https://forum.zdoom.org/viewtopic.php?t=57718
2017-08-31 11:40:16 +03:00
alexey.lysiuk
b077518c89
Fixed crash when morph item is used from ACS
...
https://forum.zdoom.org/viewtopic.php?t=57571
2017-08-13 16:15:31 +03:00
Christoph Oelckers
c1de32896c
- addressed incorrect ACS printbold implementation: For native Hexen maps it will now be correct, but all others will have to set a flag in MAPINFO's 'gameinfo' section to avoid problems with numerous ZDoom maps depending on the incorrect implementation.
2017-08-12 10:20:34 +02:00
Christoph Oelckers
d8d4723ae1
- removed PCD_GetActorZ double check.
2017-05-31 11:52:51 +02:00
Christoph Oelckers
b5dc5ceb3c
- removed some unused static variables
2017-04-26 14:48:33 +02:00
alexey.lysiuk
1d84b28fc2
Added support for bool type in SetUserVariable() ACS function
...
https://mantis.zdoom.org/view.php?id=462
2017-04-18 15:37:45 +03:00
Christoph Oelckers
cd180d29c7
- block direct use of 'new' for DObjects.
...
This is to ensure that the Class pointer can be set right on creation. ZDoom had always depended on handling this lazily which poses some problems for the VM.
So now there is a variadic Create<classtype> function taking care of that, but to ensure that it gets used, direct access to the new operator has been blocked.
This also neccessitated making DArgs a regular object because they get created before the type system is up. Since the few uses of DArgs are easily controllable this wasn't a big issue.
- did a bit of optimization on the bots' decision making whether to pick up a health item or not.
2017-04-14 13:31:58 +02:00
Christoph Oelckers
929affa3cb
- removed MarkACSThinker.
...
The global variable holding a pointer to this thinker should be a weak reference to the instance in the thinker chain, there is no need to mark this global variable, as the thinker's lifetime is only determined by the thinker chain.
- committed a few Posix related file the last commit missed.
2017-04-14 10:59:57 +02:00