Commit graph

220 commits

Author SHA1 Message Date
Major Cooke
b6b1b25035 Added ZSprites.
- Effectively similar to Actors, but without the excess.
- Can be created with either the `level` function or the static `Spawn` function in ZSprite.
- STAT_SPRITE belongs to ZSprites only; ZSprites cannot be moved out of, nor can anything else be moved in to, this statnum.

Misc:

- Fixed (Sprite)Offset taking roll into account.

Crediting phantombeta, RicardoLuis0 and RaveYard for assistance.
2023-11-17 08:06:11 -05:00
Christoph Oelckers
578a398981 use FTranslationID in the 2D code. 2023-11-09 23:04:11 +01:00
Christoph Oelckers
9f90c64727 use FTranslationID in the high level parts of the hardware renderer. 2023-11-09 23:04:11 +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
Christoph Oelckers
28400a12f1 fixed savegame file name check.
Writer and reader for the savegame metadata were mismatched so the readback of non-ASCII filenames failed.
2023-10-25 17:27:41 +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
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
Ricardo Luís Vaz Silva
5e96dbc981 Add final and sealed as class options 2023-10-07 17:29:29 +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
Cacodemon345
ba9ce0e83f Switch to miniz from zlib 2023-09-17 23:52:51 +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
ffa7891719 - remove pointless assert. 2023-09-14 16:39:21 +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
bf0e74447d add float.equal_epsilon and double.equal_epsilon 2023-09-07 10:19:10 -04:00
Christoph Oelckers
ebb71cebf1 - put the entire filesystem code into a namespace and created some subdirectories. 2023-08-22 22:54:54 +02:00
Christoph Oelckers
2c2bf0265f - refactored all places which treated FileData as zero terminated. 2023-08-22 22:54:53 +02:00
Christoph Oelckers
8a5d3c096b - return a std::string from GetFileFullPath 2023-08-22 22:18:54 +02:00
Christoph Oelckers
5398045f7d - got rid of FileSystem::GetFileData.
Using FMemFile is better in all these places.
2023-08-22 22:18:53 +02:00
Christoph Oelckers
21d6eb99eb use std::vector as return value for the FileReader's buffer readers. 2023-08-22 22:18:21 +02:00
Christoph Oelckers
2671394961 - only use standard types in WriteZip's API. 2023-08-22 21:49:55 +02:00
Christoph Oelckers
2524ea6b0e - moved linked textures from file system to texture manager. 2023-08-22 21:49:54 +02:00
Christoph Oelckers
b5c1237f93 - removed NOVTABLE #define.
This was used on just two small base classes, the overall savings are zero.
2023-08-12 09:31:33 +02:00
Christoph Oelckers
fdad3186a6 - replaced zstrformat with stb_sprintf.
The main advantage here is that this allows to get rid of the gdtoa dependency, it is also preferable to have some code here that's being maintained.
Feature-wise both are mostly identical, stb also support MSFT integer size modifiers and hexadecimal floats.
2023-08-09 11:51:46 +02:00
Ricardo Luís Vaz Silva
0192392256 Individual Joystick Enable/Disable Toggles 2023-08-02 00:37:24 -04:00
Christoph Oelckers
81fb9a26b2 - backend update from Raze.
* add QualifiedName to VMFunction and allocate these static names from the class data memory arena instead of using FStrings.
* null pointer type checks in the VM added to avoid crash on bad codegen.
2023-07-22 09:55:49 +02:00
Ricardo Luís Vaz Silva
61d68eb2d6 Rewrite changed model rendering code, and change how model skins are handled 2023-06-26 00:36:36 -04:00
Christoph Oelckers
40679294df - fixed some warnings. 2023-06-16 20:50:48 +02:00
l2ksolkov
245dac814e Add missing include guards 2023-05-29 07:35:26 +02:00
Christoph Oelckers
acfe82b9a8 - Backend update from Raze. 2023-05-27 09:31:17 +02:00
Mitchell Richters
f1f6e3a607 - Move invertmouse CVARs into common code.
* Removes duplication of CVAR definitions between Raze and GZDoom.
2023-04-04 17:11:28 +02:00
Mitchell Richters
034202e6f6 - Properly fix default mouse x sensitivity. 2023-04-04 17:08:02 +02:00
Christoph Oelckers
7e1982fa65 - adapted font system to properly handle Turkish.
Those i's are really messy, especially when dealing with allcaps or pure lowercase fonts.
2023-03-31 17:40:19 +02:00
Ricardo Luís Vaz Silva
569263efe9 Extend pseudo-generics system used by maps to dynarrays 2023-02-09 17:02:40 +01:00
Ricardo Luís Vaz Silva
b47aa37919 Add missing methods (GetIfExists/CheckValue) to Map pseudo-generics 2023-01-23 17:15:08 +01:00
0e5c6e37b1 Prevent important messages from being accidentally filtered. 2023-01-04 17:54:09 +01:00
Christoph Oelckers
941c0850ba - Backend update from Raze.
Mainly optimizations for the sound system and texture manager.
2022-12-18 16:19:18 +01:00
Ricardo Luís Vaz Silva
46d36cf5c7 add BobWeapon3D 2022-12-09 21:49:38 +01:00
Ricardo Luís Vaz Silva
8b6a714d41 Map<K,V> and MapIterator<K,V> for ZScript 2022-12-04 15:11:00 +01:00
Christoph Oelckers
65a26d6779 - removed the string constructors from FSoundID.
Due to C++ conversion rules this was a bit too volatile. There's really not enough places where being able to pass a string directly into the sound API was beneficial - the two most frequent functions now got overloaded variants.
2022-11-24 23:52:52 +01:00
Christoph Oelckers
b89c4affae - removed the string assignment operators.
These all caught literal 0's as well
2022-11-24 23:52:52 +01:00
Christoph Oelckers
d173c0453c - handle all remaining places of sound ID conversions after removing the conversion operators. 2022-11-24 23:52:52 +01:00
Christoph Oelckers
160633a4a2 - migrate a large part of the sound code to FSoundIDs.
This has always been a wild mixture of IDs and ints.
2022-11-24 23:52:52 +01:00
Christoph Oelckers
29b4418c3a - added 'foreach' loop to ZScript.
Syntax:

foreach(variable : array)
{
}

the variable's type is automatically deducted.
2022-11-15 21:34:45 +01:00
Christoph Oelckers
4994e114c8 - backported Vector*::Sum() from Raze. 2022-11-14 19:49:37 +01:00
RaveYard
31ac1bd414 Initial implementation of Quaternion type in ZScript 2022-11-13 22:48:19 +01:00