Christoph Oelckers
2cbb980388
Check array size for overflow.
...
Since ZScript is a 32 bit VM, the largest safe value for an array's physical size is 2GB. Any larger value will be destroyed by the compiler which relies on signed 32 bit values too much.
2024-10-28 12:07:15 -04:00
Christoph Oelckers
adeb48d598
Do a check if a local variable exceeds the available stack space.
...
Windows stack is 1 MB so play it safe and allow 512 kb as max. stack space for a single function.
2024-10-28 12:07:10 -04:00
Christoph Oelckers
f0676cdf01
fixed a few memory leaks
2024-10-05 10:22:05 +02:00
Christoph Oelckers
3798fd815f
the MISSILE(EVEN)MORE flags still need to be accessible by ZScript for backwards compatibility.
...
Since these do not exist anymore an internal interface to Handle/CheckDeprecatedFlags was added.
2024-10-03 12:32:09 +02:00
Boondorl
1e96ed31aa
Exported DPrintf
...
Allows for custom debug message handling using the built-in
2024-09-29 17:56:16 -04:00
Rachael Alexanderson
3524d06813
- export FFont::GetChar() to ZScript
2024-09-20 20:00:01 +02:00
Ricardo Luís Vaz Silva
461c2f77b7
restrict new relaxed named arguments to zscript >= 4.13
2024-06-03 10:52:07 -03:00
Ricardo Luís Vaz Silva
20cf8befbf
Rework named arguments
...
Now allows arguments to be in any arbitrary position, and allows required arguments to be named
2024-06-03 10:52:07 -03:00
Christoph Oelckers
ebd4ebf298
StringTable cleanup and improvements
...
cleaned up function interface to avoid referencing the file system in the worker functions.
replaced StringTable's operators with functions.. The main reason is that these are far easier to look up when browsing the source.
This also fixes a premature translation in SBARINFO that was done in the parsing stage, not the printing stage.
2024-04-21 10:34:44 +02:00
Ricardo Luís Vaz Silva
949cd5b746
Fix let ignoring const-ness
2024-04-19 13:28:18 -03:00
Ricardo Luís Vaz Silva
e85ec240bf
Store type together with pointers to allow safe substitution
2024-03-28 15:48:23 -04:00
Ricardo Luís Vaz Silva
682dd1b22d
Can't narrow down the JIT bug yet, so block JIT for functions that call Function Pointers temporarily
2024-03-22 13:28:02 -03:00
Ricardo Luís Vaz Silva
071b5c5180
fix argument pointer wrapping in function pointers
2024-03-22 13:28:02 -03:00
Ricardo Luís Vaz Silva
d848a57bac
Fix readonly for SpecialBounceHit virtual
2024-02-23 07:07:56 +01:00
Ricardo Luís Vaz Silva
bc26c54b15
Fix readonly native structs
2024-02-17 07:23:00 +01:00
Ricardo Luís Vaz Silva
2002396b8b
Fix .. to root folder in relative include
2024-01-31 07:48:59 -05:00
Christoph Oelckers
83aa9388ca
backend update from Raze
...
* moving large allocations off the stack
* use proper printf formatters for size_t and ptrdiff_t.
* adding some missing 'noexcept'.
2024-01-06 15:24:10 +01:00
Christoph Oelckers
ec227383ed
fixed bad comment with non-UTF-8 extended character which MSVC warns about when compiling with /utf-8
2024-01-02 21:05:31 +01:00
Christoph Oelckers
958303556f
warnings and debug code cleanup
2023-12-26 22:16:21 +01:00
Cacodemon345
a368588db6
Export FScanner parser to ZScript as ScriptScanner
2023-12-25 10:52:56 +01:00
Christoph Oelckers
aaea3d52aa
fixed more warnings.
2023-12-14 17:22:29 +01:00
Ricardo Luís Vaz Silva
43c70cdf9d
JIT-Compile all functions during startup
2023-12-06 17:44:51 -05:00
Ricardo Luís Vaz Silva
74ace89d6e
properly serialize int-backed keys for maps
2023-11-25 21:06:39 -05:00
Ricardo Luís Vaz Silva
4ec76afc40
move all doom-specific loops out of common code
2023-11-20 22:11:05 -05:00
Ricardo Luís Vaz Silva
71999e7cf6
add foreach(a/type a : thinkeriterator/actoriterator)
2023-11-20 22:11:05 -05:00
Ricardo Luís Vaz Silva
f5507a7373
add foreach(a/l/a,p/l,p/a,p,f/l,p,f : blocklinesiterator/blockthingsiterator)
2023-11-20 22:11:05 -05:00
Ricardo Luís Vaz Silva
5cb0e3bc5b
add foreach v loop for maps
2023-11-20 22:11:05 -05:00
Ricardo Luís Vaz Silva
c58bd6efb5
add foreach k,v loop for maps
...
* make FxFunctionCall and FxMemberFunctionCall take a temporary for args, since they always move it
* fix type for cast
2023-11-20 22:11:05 -05:00
Christoph Oelckers
c73f805110
restore accidentally deleted 'else'.
2023-11-19 13:01:08 +01:00
Christoph Oelckers
8e319a7669
allow comparisons between ints and translation IDs in pre 4.12 ZScript.
2023-11-19 07:47:23 +01:00
Christoph Oelckers
eaf43dfb96
fixed potential nullptr dereference.
2023-11-19 07:22:12 +01:00
Ricardo Luís Vaz Silva
3056786f38
Add missing loop
2023-11-14 20:14:48 +01:00
Ricardo Luís Vaz Silva
fc130ccaac
Serialize Name Keys as Strings for maps
2023-11-13 06:19:10 +01:00
Christoph Oelckers
8c5eb2c807
use FTranslationID in all places where strict type checking is needed.
...
This means all properties in serializable classes now use this wrapper type. The backend hasn't been changed yet
2023-11-09 23:04:10 +01:00
Christoph Oelckers
f0c9b1765e
gave translations a dedicated scripted type.
...
This is needed for implementing reliable serialization of custom translations. As long as they are merely ints they cannot be restored on loading a savegame because the serialization code does not know that these variables are special.
2023-11-09 23:04:10 +01:00
Christoph Oelckers
d5e9783324
fixed bad parameter types in direct native functions.
...
bool can cause undefined behavior here, these should be int.
2023-11-07 18:06:50 +01:00
Ricardo Luís Vaz Silva
e26f9fb13d
fix int assign optimization constants generating broken code because they weren't expected
2023-11-01 16:51:26 +01:00
Professor Hastig
4d88e82e32
added Wads.GetLumpLength.
2023-10-26 09:41:27 -04:00
Ricardo Luís Vaz Silva
1957c15a41
give error instead of warning for zscript 4.12+ on return count mismatch
2023-10-15 18:51:05 +02:00
Ricardo Luís Vaz Silva
d699ba248e
warn when fewer returns than expected are given for a function
2023-10-15 18:51:05 +02:00
Ricardo Luís Vaz Silva
dccce46d5b
allow "&" instead of "out" in function pointer parameters
2023-10-11 19:46:53 +02:00
Ricardo Luís Vaz Silva
c935a95cb0
Add function pointer Properties
2023-10-11 19:12:48 +02:00
Ricardo Luís Vaz Silva
0e9135132d
Allow FindFunctionPointer to return non-virtual methods
2023-10-11 19:12:48 +02:00
Ricardo Luís Vaz Silva
d9a88d7080
Fix deserialization of methods inside function pointers
2023-10-11 19:12:48 +02:00
Ricardo Luís Vaz Silva
e61bd10bbf
Finish implementing function pointers
...
Allow using function literals with function pointers, allow narrowing classes parameter types, and widening classes in return types, allow pointers to non-static, non-virtual functions, add null checking to function calls
2023-10-11 19:12:48 +02:00
Ricardo Luís Vaz Silva
23c21b23c3
cleanup.
2023-10-11 19:12:48 +02:00
Ricardo Luís Vaz Silva
e3704605d8
Implement Static Function Pointers
2023-10-11 19:12:48 +02:00
Christoph Oelckers
79f2fc6553
backend update from Raze.
...
Mainly a VMFunction script type and some associated utilities.
2023-10-09 18:45:30 +02:00
Christoph Oelckers
7a5a2858a2
yet even more GetChars calls added.
2023-10-07 23:29:24 +02:00
Christoph Oelckers
c94c63110e
added a third batch of GetChars call to FStrings.
2023-10-07 23:03:40 +02:00