Commit Graph

20370 Commits

Author SHA1 Message Date
Shiny Metagross 5b8789977a Another fix, most serialization is working
- Changed some logic when giving an actor that doesn't have a modeldef a modeldef to make sure it knows it doesn't have one when cleared
- Fixed the serialization for modelData. Only problem now is that I was right about needing to push the models on load
2022-07-22 17:11:59 +02:00
Shiny Metagross 83a23c6525 Other updates
- Moved modelDef to modelData
- Replaced TArray.Deletes with TArray.Pop
- Made a few other optimizations in other places in the action function
2022-07-22 17:11:59 +02:00
Shiny Metagross e827e9b086 TArrays to TObjPtr
- Made the 2 TArrays into a class called DActorModelData.
- Removed the skinindex and now just uses one index
- Replaced a bunch of nullptr for modelDef checking with NAME_None
- Added some garbage cleanup to A_ChangeModel itself, as well as removing memory of modelData that is no longer needed
- Attempted serialize code, putting up for review
2022-07-22 17:11:59 +02:00
Shiny Metagross c304a8f974 Changed static arrays to TArrays
- Made the models and skins arrays TArrays
- The issue I described with models not always reverting to default properly was caused by the fact I was unintentionally overwriting smf data. Now intermediate TArrays store the data before the loop instead of overwriting anything
2022-07-22 17:11:59 +02:00
Shiny Metagross 5abadd3aab A_ChangeModeldef
-Added A_ChangeModelDef
A_ChangeModel(modeldef, modelpath, model, modelindex, skinpath, skin, skinid, flags)

This can change the modeldef, model and skins of an actor.

Currently, modelindex and skinindex accept indices from 0-15.

An actor MUST have a modeldef in order to use this function, either defined from modeldef, or given one through the modeldef parameter. You can pass "" to use the same modeldef. Likewise, passing "" for model or skin will just revert to the default model.

Available flags:
CMDL_WEAPONTOPLAYER - If used on a weapon, this instead change's the model on the player instead.

One issue I am aware of right now is that clearing a model by "" sort of works but is buggy. For now you can just manually set the model back using the names explicitly. However, I am stumped and I think getting more eyes on it would help.
2022-07-22 17:11:59 +02:00
Christoph Oelckers e649357d4e - fixed return values of FTextureAnimator::AddAnim 2022-07-22 08:35:56 +02:00
Rachael Alexanderson f4f701a45c - add longsavemessages to simple menu. set longsavemessages default to false. 2022-07-21 13:22:52 -04:00
Christoph Oelckers d2454d4b3b - DirectInput cleanup
Removing ancient code that's only useful on pre-XP OSs.
2022-07-20 14:41:06 +02:00
Christoph Oelckers f13e95ccbe - also allocate FDoorAnimation's frame table from the texture manager's memory arena.
The same lifetime rules as for the regular animations apply here.
2022-07-17 10:22:48 +02:00
Christoph Oelckers 6d635ce715 - optimized storage for animation definitions.
Instead of allocating everything on the heap as single blocks, use a value TArray and allocate the frame arrays from the texture manager's memory arena, since lifetime of the data is identical.
Most importantly this avoids using a variable size array at the end of the struct.
2022-07-17 10:15:09 +02:00
Magnus Norddahl 89f5428a9a Fixes vulkan crash when multisampling is enabled 2022-07-16 17:51:44 +02:00
Christoph Oelckers e4485b01f8 - removed redundant extern declarations from platform code. 2022-07-16 15:12:06 +02:00
Omar Polo 0f0b4b7620 fix gzdoom.pk3 not found error
Move the initialization before BaseFileSearch is called, otherwise
GameConfig is used not initialized and it doesn't find the gzdoom.pk3
file.

GameConfig used uninitalized was spotted by @LoneFox78.
2022-07-16 15:04:13 +02:00
Gutawer 937c22ff14
- add a method for filling a shape2d instead of using a texture (#1661)
Co-authored-by: Christoph Oelckers <coelckers@users.noreply.github.com>
2022-07-16 14:57:22 +02:00
Gutawer ee0d90a983
- add stencil buffer support for 2d drawing (#1660)
Co-authored-by: Christoph Oelckers <coelckers@users.noreply.github.com>
2022-07-16 14:56:28 +02:00
Gutawer 1e27fac288 - add a system for setting all of 2D drawing's transform, not just shapes 2022-07-16 14:53:07 +02:00
nashmuhandes c6ae73d6d2 - Expose ConsoleState to scripts
- Make ConsoleState uint8_t sized
2022-07-16 14:38:47 +02:00
Magnus Norddahl 69778667aa Minor cleanup of some vulkan rtx code 2022-07-16 08:55:57 +02:00
Christoph Oelckers 0e90098de8 - rewrote Windows console code for Windows 10's new terminal.
This allows dumping a lot of shit code using deprecated Windows functionality and bringing the code in line with Microsoft's roadmap for terminal/console functionality.
Note that this will cause garbled output of non-ASCII characters on Windows 7 and 8.1, but proper handling on these declining systems is of far lesser importance than future-proofing the feature.
2022-07-15 13:04:02 +02:00
Christoph Oelckers 595975fcc7 - did a test compile as C++20 and fixed all warnings that got emitted. 2022-07-15 09:17:50 +02:00
Christoph Oelckers d310487ad4 - text update 2022-07-15 08:48:18 +02:00
Christoph Oelckers ef8dd4d01e - fixed and consolidated artifact check in cheat code. 2022-07-15 07:56:22 +02:00
Kevin Caccamo ffd8b5ed5a Address Graf's comment 2022-07-15 07:43:57 +02:00
Kevin Caccamo a89d32c850 Attempt to fix #1654 2022-07-15 07:43:57 +02:00
Christoph Oelckers 2c7761926e - removed volatile type punning for clipping against line portals.
This now uses a common base for line_t and HWLinePortal.
2022-07-14 10:39:11 +02:00
Christoph Oelckers fbd604b725 - fixed handling of *dive and *surface sounds.
The old water level needs to be retrieved before handling splashes, because SplashCheck already updates the waterlevel.
This was swapped around by a recent PR.
2022-07-14 08:13:54 +02:00
Christoph Oelckers a952d0f36a -let A_FireProjectile pass through the second return value of SpawnPlayerMissile. 2022-07-14 07:59:52 +02:00
Christoph Oelckers e1c458ab2f - fixed PoisonCloud's looping animation count. 2022-07-14 07:54:19 +02:00
Christoph Oelckers b719ab53f8 - weapons are not artifacts. 2022-07-14 00:12:20 +02:00
Rachael Alexanderson e3238cd5b7 - always print GZDoom version in the startup log 2022-07-13 14:16:41 -04:00
Christoph Oelckers a847dacaaa - fix scale members in actor.zs 2022-07-12 16:56:56 +02:00
Christoph Oelckers ac0a68c7ca - removed the duplicate EPrintLevel definition. 2022-07-11 19:40:58 +02:00
Ricardo Luís Vaz Silva 365131e1e3 rename PrintString to PrintfEx and make it a vararg function 2022-07-11 19:35:51 +02:00
Ricardo Luís Vaz Silva 03c8da8a44 Expose Print Flags to ZScript 2022-07-11 19:35:51 +02:00
Christoph Oelckers aae1d1439a - reverted AActor::scale to a DVector2.
This was causing comparison precision issues with existing script code.
2022-07-11 12:20:34 +02:00
Emile Belanger edc8204a61 If the system uses very high memory addresses this error will be hit 2022-07-10 22:26:57 +02:00
Rachael Alexanderson fae4166fae - add a few njdoom maps to the rebuildnodes comptibility block 2022-07-07 08:59:13 -04:00
Rachael Alexanderson 9050ded1c2 - version.h update 2022-07-07 08:27:33 -04:00
Christoph Oelckers a4aca9bd9c - force node rebuild for Plutonia MAP25. 2022-07-02 10:30:03 +02:00
Christoph Oelckers 7847a55d67 - do not include game specific stuff in the backend. 2022-07-02 10:26:17 +02:00
Christoph Oelckers 9002cdb61d - fixed bad use of local variable. 2022-07-02 10:24:51 +02:00
Christoph Oelckers 35f8aab6bf - fixed names for A_PlaySoundEx
These need to be contiguous because the implementation depends on it.
2022-06-30 21:45:59 +02:00
Christoph Oelckers abaa0f2178 - ENDOOM is not Windows only anymore. 2022-06-29 10:12:55 +02:00
nashmuhandes 8da4f2a212 ZDRay UDMF key update (per-surface sampling distance https://github.com/dpjudas/ZDRay/pull/36) 2022-06-29 09:12:18 +02:00
Christoph Oelckers 44a15bebea - fixed background tiling for summary screen.
Since the background object gets recycled it must clear this flag before loading a new background.
2022-06-29 08:36:01 +02:00
Christoph Oelckers 5cf6a5ab1a - text update 2022-06-29 08:36:01 +02:00
Rachael Alexanderson 00af521846 - add a few maps to the rebuildnodes compatibility block 2022-06-28 22:32:42 -04:00
RaveYard 9a083d2d13 Fix FVector to Vector comparison 2022-06-24 21:38:14 +02:00
alexey.lysiuk 59458cf463 - fixed compilation without JIT
src/common/scripting/vm/vmframe.cpp:674:16: error: call to 'JitCaptureStackTrace' is ambiguous
2022-06-23 13:26:36 +03:00
RaveYard 4c588077c2 Fix FVector incompatible operands errors 2022-06-23 10:54:31 +02:00