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
0ce4b3e7fb
update/cleanup function pointers
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
Rachael Alexanderson
88b5d9aba1
- fix $PROGDIR expansion being case sensitive
2023-10-10 10:29:01 -04: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
06466b9017
add missing include to a_quake.cpp.
...
The GCC AppImage build reported
/usr/bin/ld: CMakeFiles/zdoom.dir/playsim/mapthinkers/a_quake.cpp.o: in function `AActor::Distance2D(AActor*, bool) const':
a_quake.cpp:(.text._ZNK6AActor10Distance2DEPS_b[_ZNK6AActor10Distance2DEPS_b]+0x2c): undefined reference to `AActor::PosRelative(AActor const*) const'
2023-10-08 12:14:50 +02:00
Christoph Oelckers
ac646e96be
use copystring instead of strdup when reading environments.
...
The mismatched the underlying code which allocates via copystring.
2023-10-08 11:54:14 +02:00
Christoph Oelckers
4f5df7b9ef
allocate temporary state label strings from the compiler backend's allocator.
...
They share appoximate lifetime so this gets rid of 3 more copystring calls.
2023-10-08 11:40:34 +02:00
Christoph Oelckers
c8ee0cd5cc
fixed another bad string validation check involving GetChars
2023-10-08 09:37:12 +02:00
Christoph Oelckers
56929833f0
fixed two bad validations of FName's.
2023-10-08 09:27:46 +02:00
Christoph Oelckers
448ca88bfd
fixed some signed-ness issues.
2023-10-08 08:11:56 +02:00
Ricardo Luís Vaz Silva
bfe589fecd
try to fix gcc thinking the vectors are uninitialized
2023-10-08 07:31:59 +02:00
Ricardo Luís Vaz Silva
04c167f181
final final GetChars fix on linux
2023-10-08 07:31:59 +02:00
Ricardo Luís Vaz Silva
f0be58e862
hopefully the last few GetChars fixes for linux
2023-10-08 07:31:59 +02:00
Ricardo Luís Vaz Silva
f4fb583c6c
more GetChars fixes in linux/macOS
2023-10-08 07:31:59 +02:00
Ricardo Luís Vaz Silva
c69941e49d
fix GetChars in linux/macOS
2023-10-08 07:31:59 +02:00
Christoph Oelckers
6055ff029d
the remaining GetChars additions.
...
The offending operator const char * no longer exists.
2023-10-07 23:44:01 +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
Christoph Oelckers
89535b803a
Backend update from Raze.
2023-10-07 18:42:24 +02:00
Cacodemon345
4497d7fdaa
Update LZMA SDK to 23.01
...
As a bonus, add support for XZ-compressed files in ZIP
2023-10-07 17:31:24 +02:00
Ricardo Luís Vaz Silva
5e96dbc981
Add final and sealed as class options
2023-10-07 17:29:29 +02:00
Ricardo Luís Vaz Silva
42df40941c
change version, improve errors for array/map/struct copy
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
b9104e8aa9
Turn Map/Array assignments into Copy
...
Better error checking for struct assignment
Lock assignments behind version, don't break or "fix" existing code using older ZScript versions
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
a13b19815c
allow "&" instead of "out" in function parameters
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
7a9ca1ad3f
Allow dumping jit for mod functions only
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
3cb8f1be44
Don't try to generate code for abstract functions during JIT dump
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
fa8df5a4e5
make Array::Append faster for simple structs
...
This makes appending arrays of simple types faster
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
65ea4f91b6
fix TMap move insertion, was using the copy constructor due to a missing std::move
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
b60b3fc09a
fix PStruct::AddField not passing mDefFileNo
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
86e4d064e2
fix possible null dereference in FxStructMember::RequestAddress
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
fad350ff80
Make sure maps in return type don't segfault
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
3fc195c5b2
Improve handling of field names in error messages during Map/MapIterator compilation
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
87fcaab512
Fix Typo in Comment
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
766c61b3ed
Deduplicate Map/MapIterator Types' Code
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
3e7de9aafa
Fix inheritance for bNoSaveGame
2023-10-05 16:44:12 +02:00
Professor Hastig
ab8711b57a
removed several bad casts to 'long'.
...
The 'long' type should generally be avoided because its size differs on Windows and Linux/Mac so it is almost guaranteed to cause undefined behavior
2023-10-04 16:47:43 +02:00
Christoph Oelckers
48ba63c022
added even more explicit GetChars() calls.
2023-10-03 15:55:08 +02:00
Christoph Oelckers
1717ff47b2
add GetChars() accessors to many FString uses where const char* is wanted.
...
By no means complete, it's just a start to get rid of that automatic type conversion operator.
2023-10-03 14:27:39 +02:00
alexey.lysiuk
a3eb1ec1fd
- fixed compilation with Clang
...
src/console/c_cmds.cpp:1310:40: error: cannot pass non-trivial object of type 'FString' to variadic function; expected type from format string was 'char *' [-Wnon-pod-varargs]
2023-10-02 10:24:24 +03:00
Christoph Oelckers
a7258de82e
print proper level and music names for mapinfo CCMD
2023-10-01 23:38:14 +02:00
Rachael Alexanderson
99fac235eb
- make clang happy
2023-10-01 20:36:12 +02:00
Rachael Alexanderson
a53d3d6a6e
- add 'mapinfo' ccmd
2023-10-01 20:36:12 +02:00
Rachael Alexanderson
d33f2697a3
- set default backend to Vulkan, if Vulkan fails go GLES not OpenGL
2023-10-01 10:35:11 -04:00
alexey.lysiuk
678cab7994
- fixed DumpCPUInfo()
definition for non-x64 platforms
...
fix #2188
2023-09-26 09:48:11 +03:00
Professor Hastig
3d6664c28e
fix DSDHacked state creation.
...
Several problems here:
* the crucial call did not override 'mustexist'.
* once created an extended stare would not be looked at anymore.
* extended states received no usage flags.
2023-09-25 16:10:10 +02:00
Professor Hastig
22e8bea91b
fixed actor class creation for DSDHacked
...
* the did not get defaults assigned.
* the RETARGETAFTERSLAM flag must also be set for newly created classes here
2023-09-25 16:10:10 +02:00
Christoph Oelckers
79831526cd
- disable survey code again.
2023-09-25 00:08:12 +02:00
Christoph Oelckers
7491361863
- do some cleansing of the GPU string and add CPU name when only getting an anonymous series name.
...
The cleansing is mainly for AMD's Linux drivers which report too much extraneous info here.
The CPU name helps when classifying anonymous iGPU series.
2023-09-24 22:20:50 +02:00
Christoph Oelckers
955b8bae1a
Revert "Add more information in saved game comments"
...
This reverts commit 56c2bd018d
.
Considering the follow-up I think it's best to scrap this.
2023-09-21 19:26:56 +02:00
Rachael Alexanderson
00e0a9fd76
- address GCC error in d_anonstats.cpp
2023-09-20 23:58:30 -04:00
Hugo Locurcio
ffcfec66b3
Store kills/items/secrets in save comment only if visible on HUD
...
This prevents spoiling levels when the HUD information is disabled.
This change is not retroactive: it has no effect on existing savegames.
You need to save again for this change to have an effect.
2023-09-20 23:51:58 -04:00
Christoph Oelckers
5870ec2e7a
- fix missing prototype in Linux
2023-09-20 23:58:01 +02:00
Christoph Oelckers
7f9df12431
- Survey: return more meaningful info for current OS and Vulkan version.
2023-09-20 20:03:07 +02:00
Christoph Oelckers
b3cb2fafc7
stats
2023-09-20 19:49:54 +02:00
Cacodemon345
ba9ce0e83f
Switch to miniz from zlib
2023-09-17 23:52:51 +02:00
Rachael Alexanderson
9b3409b28d
- update stats script
2023-09-17 06:13:21 -04:00
Rachael Alexanderson
25e9561279
- change anonstats cvars in order to allow easier updates to them in the future
2023-09-17 04:46:06 -04:00
Christoph Oelckers
084301f4d6
- refined light mode selection.
...
This is to ensure that if the map specifies light mode Doom (i.e. hardware approximation of software lighting) it is not overridden by the user-selected software emulating light mode.
gl_lightmode should only apply if neither the map nor gl_maplightmode set an explicit light mode.
2023-09-17 08:40:36 +02:00
Christoph Oelckers
5f11fd051b
- fixed the overlapping sector handler in hw_fakeflat.cpp.
...
this picked the wrong plane as the proper texture cutoff.
2023-09-16 22:17:09 +02:00
Christoph Oelckers
f7c379b720
- fixed: The UDMF loader did not adjust the floor/ceiling overlap state after processing UDMF sector plane properties.
2023-09-16 21:55:35 +02:00
Christoph Oelckers
d596e5a8fa
- fixed: EV_DoDonut checked the wrong compatibility variable.
...
This missed all map specified flags.
2023-09-16 21:35:01 +02:00
Christoph Oelckers
e86de4463f
fixed CheckswitchRange logic for multiple switches on a line.
2023-09-16 21:06:10 +02:00
Christoph Oelckers
f55e388d3f
- add description to gl_lightmode
2023-09-16 12:09:57 +02:00
Christoph Oelckers
7fbd99ca0f
- fixed flags for gl_lightmode.
...
With how this is being handled now, the CVAR needs to have the CVAR_GLOBALCONFIG flag and CVAR_NOINITCALL unset or it simply won't work right.
Since its meaning has completely changed now (i.e. it's mainly a performance switch to a less demanding implementation instead of being able to select vastly different lighting methods) making it global is more sensible.
2023-09-16 12:06:42 +02:00
Christoph Oelckers
23ffaaecb0
- changed last commit to not translate the text written to the savegame info.
...
This would be a bit problematic if it was transferred to other systems if the source language cannot be understood.
2023-09-16 11:45:00 +02:00
Hugo Locurcio
56c2bd018d
Add more information in saved game comments
...
Save games now store kills/items/secrets and player health/armor
in the comment string, which is displayed in the save/load game menu.
This change is not retroactive: old savegames will not display
this information until they are overwritten.
2023-09-16 11:42:29 +02:00
John Stebbins
bd4f4f739a
Fix gameinfo load from same directory as file containing gameinfo lump
...
Fixes scenario 2 in https://github.com/ZDoom/gzdoom/issues/2011#issuecomment-1440997829
2023-09-16 10:53:53 +02:00
Christoph Oelckers
ea51c92fda
- validate partner seg index in LoadGLZSegs before using it
...
KDiZD Z1M10 has something bogus in there, this case will now trigger a node rebuild.
2023-09-16 09:48:43 +02:00
Christoph Oelckers
71cc93f42c
- fixed: ZScript's lump reader may not truncate strings at 0 bytes, like all other callers of GetStringFromLump need.
2023-09-16 07:44:58 +02:00
Magnus Norddahl
45a2cbe081
Update zvulkan to latest version
2023-09-16 00:32:15 -04:00
Christoph Oelckers
ef79ec193f
- let P_CheckSwitchRange always check all 3 tiers.
...
To account for cases that a switch is unreachable but another tier got a reachable one.
2023-09-15 22:33:03 +02:00
Christoph Oelckers
b082c50502
- fixed doublebind check with automap.
...
When no doublebinds get passed to C_DoKey it may not set the doubleclick flag.
For the automap C_DoKey gets called twice, once with the automap bindings and once with the regular bindings and doubleclicks.
2023-09-15 22:00:05 +02:00
Christoph Oelckers
7f7edc4f72
- clear the Dehacked string table after passing it to GStrings.
...
For some reason std::move does not work here so make sure it won't stick around.
2023-09-15 21:46:53 +02:00
Christoph Oelckers
d001c3464d
- removed another bad assert from codegen.cpp
2023-09-15 20:51:05 +02:00
Christoph Oelckers
cd31c74ecc
- stop all cutscenes before the ENDOOM screen.
2023-09-15 20:48:39 +02:00
Professor Hastig
85ba35a1f1
- fix Strife-style startup asset check.
...
The STARTUP0 check is not only redundant but also was wrong. It already gets checked and validated in the asset loading loop, and this up-front check did not handle placement as a graphic.
2023-09-15 19:44:12 +02:00
Christoph Oelckers
eb93c764ee
- restrict msglevel filtering only to the notify display, not the console, log and debug output.
2023-09-15 00:40:41 +02:00
Christoph Oelckers
096b9cdc4f
- fixed. Boom's generalized crushers must stop 8 units above the floor
...
This required changing the special, so a new one was added to avoid altering Generic_Crusher.
2023-09-15 00:35:20 +02:00
Sally Coolatta
15521e5181
Fix a very rare crash with complex Polyobjects
...
If all of the worst stars align when compiling Polyobject BSP and splitting a seg into two sets:
- The very first seg in the current set fails all of the metrics for determining which side of a split it is on, and doesn't know which side it should go to. Since there are 0 are in front, it goes to front by default.
- Every other seg in the same set don't fail their metrics, and they all decide they are meant to go to the front side.
- Oops! Now there's nothing in the back side!
I've fixed this by collecting all of the undecided segs in a split, and setting the new side after the other segs. Doing it in the normal loop means there's a non-zero chance the crash prevention will fail depending on how the segs are in memory.
This can technically happen with even the most simplistic Polyobjects, but it becomes more common the more complex it is (add tons of lines, move and rotate it at the same time, so on). Quite an annoying crash since it doesn't always replicate consistently.
2023-09-15 00:13:22 +02:00
Gutawer
23b489960e
- put DTA_Localize at the end of the enum for backwards compat with integer usage
2023-09-14 23:24:42 +02:00
Gutawer
44d134298a
- add support for not localizing some text functions, and modify menu text fields to use this
2023-09-14 23:24:42 +02:00
Christoph Oelckers
04815f9db4
- let Dehacked set the implicit missile flags.
2023-09-14 23:08:59 +02:00
Christoph Oelckers
4fd5f00c4b
- made all FileReader implementations 64 bit capable.
2023-09-14 21:45:38 +02:00
Christoph Oelckers
139d1a7eb6
- use wrapping fixed point conversion for SW rendering coordinates.
2023-09-14 20:34:28 +02:00
Christoph Oelckers
6847a9a5c1
- added a nomirrors compatibility handler and applied it to Conf256's CONF55 map.
...
This is for disabling broken plane reflection setups.
2023-09-14 20:21:35 +02:00
Nikolay Ambartsumov
4ad76f549e
When compat_floormove is enabled prevent sector floor from lowering if a thing is stuck in the ceiling (vanilla behavior)
2023-09-14 20:06:51 +02:00
Christoph Oelckers
30c2524742
- validate text data before drawing the console.
2023-09-14 16:45:06 +02:00
Christoph Oelckers
ffa7891719
- remove pointless assert.
2023-09-14 16:39:21 +02:00
Professor Hastig
a5e1f3bcad
- fixed M_GetSavegamesPath for Linux.
2023-09-14 16:31:48 +02:00
Ricardo Luís Vaz Silva
0e70e95fa4
Add Inventory::ModifyBob and Inventory::ModifyBob3D
2023-09-14 16:28:38 +02:00
Ricardo Luís Vaz Silva
e61ab4cbe2
Expose OF_Transient to actors as bNoSaveGame
2023-09-14 16:28:23 +02:00
Ricardo Luís Vaz Silva
9f24d8babc
Move StartGameDirect from PlayerMenu to Menu
2023-09-14 16:28:08 +02:00
Ricardo Luís Vaz Silva
133fbf1390
Disallow starting a new game during a netgame
2023-09-14 16:28:08 +02:00
Ricardo Luís Vaz Silva
736d38e8c3
add StartGameDirect function
2023-09-14 16:28:08 +02:00
Professor Hastig
fbf7d1025a
- fixed bad clamp in software renderer
...
This one can have its upper bound below its lower bound which triggers the validation within std::clamp.
Fixes #2125
2023-09-14 05:11:02 -04:00
Christoph Oelckers
52ec2b2a5b
- listsounds CCMD
2023-09-13 21:10:08 +02:00
Christoph Oelckers
0980b53881
- fixed: MBF21's BOSS flag implies NORADIUSDMG.
2023-09-13 20:48:57 +02:00