Commit graph

1194 commits

Author SHA1 Message Date
alexey.lysiuk
898860eebf - fixed erroneous removal of property flag members
https://forum.zdoom.org/viewtopic.php?t=63520
2020-05-17 02:10:10 +02:00
Christoph Oelckers
ae882d983a - fixed ZScript compiler crash with dereferencing null pointers 2020-04-30 11:45:37 +02:00
Christoph Oelckers
411b287cd9 - block off the Substitute function by making it private to the 3 classes that really need it. 2020-04-19 21:39:25 +02:00
nashmuhandes
72ecc11e8d Added Actor.CopyBloodColor to copy another existing actor's blood color. 2020-03-24 01:36:58 +01:00
alexey.lysiuk
eaa7e392d7 - fixed FLineTraceData scripting definition
https://forum.zdoom.org/viewtopic.php?t=67795

# Conflicts:
#	src/scripting/thingdef_data.cpp
2020-03-14 19:15:27 +01:00
alexey.lysiuk
e276f70dfa - replaced assert() in ZScript fields compilation code
Field pointer can be null if error occurred while compiling its definition
2020-03-14 19:11:45 +01:00
Alexander Kromm
c91c542c23 fix Dictionary and DictionaryIterator memory leaks
# Conflicts:
#	src/version.h
2020-03-09 00:33:48 +01:00
alexey.lysiuk
5946744039 - fixed infinite loop reporting '... before first state' errors
https://forum.zdoom.org/viewtopic.php?t=67729
2020-03-06 13:38:21 +01:00
Rachael Alexanderson
673e52f02f - fix debug assertion, cleanup vestigial A_PlaySound addition 2020-03-04 09:46:09 +01:00
Rachael Alexanderson
c72b64790b - fixed: removed startTime from the wrong function internally. 2020-03-03 10:58:51 +01:00
Rachael Alexanderson
c9476e6188 - remove addition from deprecated A_PlaySound 2020-03-03 10:58:50 +01:00
Rachael Alexanderson
4625925a69 - ported over Nash's startTime for A_StartSound 2020-03-03 10:58:46 +01:00
Major Cooke
45c80916bc Added A_StopSounds(int chanmin, int chanmax).
- If both channels are 0, completely silences the actor.
- Adapted A_StopAllSounds to call A_StopSounds(0,0);
2020-03-01 20:27:03 +01:00
Major Cooke
3e77f9a6bd Added A_StopAllSounds. 2020-02-29 20:02:17 +01:00
Chronos Ouroboros
2d1e19dc4b Fixed a crash when trying to include a missing mixin. 2020-02-15 17:55:40 +01:00
Chronos Ouroboros
0716594437 Mixins now perform a deep copy of the AST. (Fixes default blocks in mixins) 2020-02-11 00:55:19 +01:00
alexey.lysiuk
36cb6b7050 - fixed code generation for very special if+switch combination
CheckReturn() must be called before emitting code, otherwise it will always return false for switch statements
Redundant jump instruction added because of that will point right after the end of function's code when if statement is the last one in the given function
This wasn't a problem for VM because bytecode in question was unreachable
JIT compiler tries to generate native code for a bogus jump destination, and this leads to out-of-bounds read from labels array

https://forum.zdoom.org/viewtopic.php?t=67149
2020-01-30 23:09:43 +01:00
alexey.lysiuk
7d0df9fe3f - exposed Level.MusicVolume to ZScript 2020-01-21 12:17:54 +01:00
alexey.lysiuk
a09d8e40f1 - fixed calling a function on string CVar
https://forum.zdoom.org/viewtopic.php?t=66768
2020-01-19 20:26:37 +01:00
alexey.lysiuk
f42f20ccd3 - added ability to filter VM disassembly dump
Use '-dumpdisasm something' to output functions with 'something' in their printable names
Open and close output file only once when processing code generated by Dehacked, and calculate its sizes as well
2020-01-19 20:26:34 +01:00
drfrag
1ca4e0c98a - Removed ZScript warning. 2020-01-07 20:27:16 +01:00
Chronos Ouroboros
fea9814d19 Disabled default blocks in mixins for now. 2020-01-07 19:55:58 +01:00
Chronos Ouroboros
3c71f23afd Removed a redundant switch and added a default case to the mixin parsing code to shut GCC up. 2020-01-07 19:55:53 +01:00
Christoph Oelckers
ce1f4427cc - cleaned up the parameters of A_StartSound.
There were two booleans that could be merged into the flag word.
This also fixes a bug with CHAN_NOSTOP not working for local sounds because it checked the wrong sound source for the playing sound.
2020-01-07 19:36:52 +01:00
Major Cooke
234e690f77 Added STOPRAILS actor flag.
- An actor with this flag will prevent railgun shots from penetrating further.
2020-01-06 19:20:41 +01:00
Alexander Kromm
a7e6552f0f export TMap<FString, FString> to ZScript
# Conflicts:
#	src/CMakeLists.txt
#	src/serializer.h
2020-01-06 19:18:22 +01:00
Christoph Oelckers
25288d5cea - renamed IsActorPlayingSomething to IsActorPlayingSound and made it clearscope. 2020-01-06 15:08:26 +01:00
Christoph Oelckers
c3759f389c - separated the channel number from the flags in the sound interface so that the 8 channel limit can be eliminated.
- added Marisa Kirisame's CHAN_OVERLAP flag.
- exported S_IsActorPlayingSomething to ZScript.

The sound API change required deprecating A_PlaySound and S_Sound. There are now new variants S_StartSound and A_StartSound which have two distinct parameters for channel and flags.

# Conflicts:
#	src/bbannouncer.cpp
#	src/fragglescript/t_func.cpp
#	src/g_shared/a_lightning.cpp
#	src/p_effect.cpp
#	src/p_mobj.cpp
#	src/p_switch.cpp
#	src/playsim/p_spec.cpp
#	src/sound/s_doomsound.cpp
#	src/sound/s_doomsound.h
#	wadsrc/static/zscript/base.zs

# Conflicts:
#	src/intermission/intermission.cpp
#	src/sound/s_doomsound.cpp
2020-01-06 15:00:05 +01:00
Christoph Oelckers
8adf2c34cd - continued refactoring on sound code.
The game independent part of the code has been mostly isolated.

# Conflicts:
#	src/sound/s_doomsound.cpp
#	src/sound/s_sound.cpp
#	src/sound/s_sound.h

# Conflicts:
#	src/sound/s_sound.cpp
2020-01-06 13:45:19 +01:00
Christoph Oelckers
89bffd17bc - reduced the dependency of the sound system on game state.
Many of the simple wrappers have been moved to a separate file and the sound source handling has been abstracted.
This is only the first phase, the work is not complete yet.
Also changed the license of the sound code to BSD after verifying that this code bears no similarity to id's original sound code anymore, save for a few function names (which are due to be refactored out anyway.)

# Conflicts:
#	src/sound/s_sound.cpp
#	src/sound/s_sound.h
2020-01-06 13:35:40 +01:00
drfrag
2bf731cfa9 Revert "- Made VMFrameStack GlobalVMStack a non thread_local variable for MinGW since that helps to prevent crashes on exit."
This reverts commit 429bd5d843.
2020-01-05 19:55:15 +01:00
drfrag
b78978fa7b Revert "- Addressed crash on exit with MinGW. This is a hack and i've reported it as a bug in the MinGW C runtime."
This reverts commit 0e25e40deb.
2020-01-05 19:54:54 +01:00
Christoph Oelckers
09fe55d462 - cleanup of the remaining music code in the main project
# Conflicts:
#	src/menu/menudef.cpp
#	src/scripting/vmthunks.cpp

# Conflicts:
#	src/p_acs.cpp
2020-01-05 14:39:00 +01:00
Chronos Ouroboros
ab617c3a91 Fixed the JIT's OP_VTBL check not checking if it's already at the start of the code. 2019-12-07 00:42:41 +01:00
Player701
d7542a8cd9 - Implemented scale parameter for BaseStatusBar::DrawString
# Conflicts:
#	src/g_statusbar/shared_sbar.cpp

# Conflicts:
#	src/g_statusbar/shared_sbar.cpp
2019-11-25 12:10:58 +01:00
alexey.lysiuk
21079752ba - fixed missing checks for function calls from DECORATE
State functions could call ZScript code with incompatible self pointer, e.g. weapon's function could be called with self pointed to player pawn
DECORATE scripts that contain such errors are no longer accepted

https://forum.zdoom.org/viewtopic.php?t=66429
2019-11-21 18:04:03 +01:00
alexey.lysiuk
29e4f34de6 - improved handling of return value mismatches
Prohibit returning more values than declared in function
The exception is a void function returning one value, but only for compatibility with old scripts

https://forum.zdoom.org/viewtopic.php?t=66341
2019-11-13 19:29:45 +01:00
Player701
f2202cca4f - Fixed erroneous "Return type mismatch error" when returning value of derived type 2019-11-13 19:29:42 +01:00
Chronos Ouroboros
7bc42a30be Fixed mixins. 2019-11-06 17:51:00 +01:00
Chronos Ouroboros
9403fa2f48 Fixed a bug in the flagdef processing code. 2019-11-02 10:48:09 +01:00
Chronos Ouroboros
8b52477cd5 Added mixins for classes. 2019-11-02 10:48:05 +01:00
drfrag
3e0fa5cc1b - Bumped ZScript version to be the same as in GZDoom as Graf suggested. 2019-10-31 17:37:54 +01:00
alexey.lysiuk
edcc0dc4ab - fixed usage of uninitialized object in BlockLinesIterator
DBlockLinesIterator::check was used by FMultiBlockLinesIterator before it was constructed

https://forum.zdoom.org/viewtopic.php?t=66224

# Conflicts:
#	src/scripting/vmiterators.cpp
2019-10-26 12:15:00 +02:00
Chronos Ouroboros
632708bccb Fixed dynamic arrays as function arguments. 2019-10-24 13:25:16 +02:00
alexey.lysiuk
62d3f61bac - do not accept read-only variable as out argument
https://forum.zdoom.org/viewtopic.php?t=66179
2019-10-22 10:59:34 +02:00
alexey.lysiuk
c9641ce335 - fixed variable's stack offset for implicit dynarray clearing
https://forum.zdoom.org/viewtopic.php?t=66187
https://forum.zdoom.org/viewtopic.php?t=66189
https://forum.zdoom.org/viewtopic.php?t=66198
2019-10-22 10:59:31 +02:00
Chronos Ouroboros
93d111ef29 Fixed Vector2/3 out parameters in the ZScript compiler. 2019-10-22 10:59:28 +02:00
alexey.lysiuk
ef06ef5977 - added explicit clearing of global VM stask
When exception is thrown from JITed code, VM stask isn't cleared during unwinding
It needs to be clear explicitly to avoid memory leaks and references to destructed objects on shutdown

https://forum.zdoom.org/viewtopic.php?t=66172

# Conflicts:
#	src/dthinker.cpp
2019-10-22 10:59:25 +02:00
alexey.lysiuk
9aff83cfdc - implicitly clear local dynamic arrays
https://forum.zdoom.org/viewtopic.php?t=62710
2019-10-20 12:30:00 +02:00
drfrag
b52ac9b556 Revert "AsmJit update"
This reverts commit 275ecb2623.

This had to be reverted because it breaks exception handling which is a critical problem.
With the updated code any exception thrown inside code that had a JITed call stack would crash.
2019-10-20 11:34:23 +02:00