Commit graph

28 commits

Author SHA1 Message Date
Ricardo Luís Vaz Silva
9e2b1f9c4c
Bone Getters Part 2/3, plus fixed warnings for MSVC
* add getters for frame poses

* fix missing joint in GetJointPose

* clean up models_iqm.cpp

* clean up usage of I_GetTimeFrac, split out matrix calculation into its own function

* clean up SetModelBoneRotationInternal

* clean up a few float <-> double and unsigned <-> signed warnings

* fix more warnings

* further clean up warnings

* split mode ObjectToWorldMatrix stuff

* initial work on bone getters, matrix hell

(the matrix/vec3 multiplications are probably wrong af, just gotta add more stuff 'till i can test it)

* clean up matrix math

* GetBone/TransformByBone

* fix GetBoneFramePose

* fix ObjectToWorldMatrix

* fix missing array resize

* raw matrix getters (for use with gutamatics/etc)

* reverse matrix mult order

* replace GetBoneLength/GetBoneDir with GetBoneBaseTRS

* fix GetBonePosition, remove GetBoneWorldMatrix as it's useless

* GetBonePosition

* deduplicate code

* rename GetBonePosition to GetBoneBasePosition to avoid confusion

* GetBoneBaseRotation

* GetBonePosition helper function

* forgot include_offsets
2025-05-09 17:06:16 -03:00
Boondorl
ad3bcfddba Lobby Overhaul
Rewrote lobby to unify common and Doom-specific packet structure, allowing for saner handling of in-game joining. Added a new per-client stage system that allows individual clients to be handled at a time when gathering and sharing info. Reworked lobby UI to display user info and added kick/ban functionalities. Bans are only a temporary per-game IP ban (use passwords to keep unwanted users out). Increased max player count to 64 and unified engine constant.
2025-03-07 20:32:52 -05:00
Boondorl
94be307225 Netcode Overhaul
Rewrote netcode to be more stable and functional. Packet-server mode has been restrategized and will now be the default netmode when playing with 3+ non-LAN players. TryRunTics has been cleaned up with older tick control behavior removed to account for the rewritten renderer. The main thread is now more consistent when playing online to prevent potential slow downs and lock ups. Load barriers are better accounted for to prevent spikes on level transition. Improvements to chat and lobby systems including a force start game button. Added a suite of new host options such as kicking and controlling who can pause the game. Max players increased from 8 to 16 since the new code can now handle it.

Note: Demo functionality is untested. This will be rewritten at a later time alongside improvements to GZDoom's playback features (e.g. freecam mode).
2025-03-05 12:52:52 -05:00
Boondorl
3f4513c571 Updated packet handling
Added "game in progress" message for players trying to join late.  Improved "unknown host" packet logging to only log when truly unknown. Correctly abort network window so game can process fatal errors instead of hanging on waiting to connect. Unexpected disconnects in lobby now correctly update the state of the game.
2024-11-15 23:54:04 -03:00
Christoph Oelckers
f0676cdf01 fixed a few memory leaks 2024-10-05 10:22:05 +02:00
Ștefan Talpalaru
b5eb8f47db GCC-13 support, when precompiled headers are off 2024-02-05 17:40:37 +01:00
Andrey Shustov
0aa140194d Fix "unexpected end of TTF file" error
Changed returnv vector size to 3 by default and set size 5 for WIN32
only.
2024-01-11 16:35:38 +01:00
Magnus Norddahl
8cc531e283 Implement mouse event propagation 2024-01-10 23:23:13 +01:00
Christoph Oelckers
c7778b9332 implemented language selection on the IWAD picker. 2024-01-09 20:52:52 +01:00
Christoph Oelckers
0838433d1f make adjustments to the font substitution and load Japanese and Korean fonts from the Windows font folder. 2024-01-09 16:37:17 +01: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
e7ac2fe741 moved launcher window out of common.
This needs to be different for Raze so it cannot be in shared code.
2024-01-04 20:44:27 +01:00
Christoph Oelckers
a2a7667442 added render backend selection to the new IWAD picker.
Unlike VkDoom we still need this.
2024-01-04 19:25:25 +01:00
Magnus Norddahl
99fc43932b Add the additional parameters edit control from the mac version 2024-01-03 16:50:57 +01:00
Magnus Norddahl
b463c8e656 Fix text word wrapping under scrollbar 2024-01-03 16:50:57 +01:00
Magnus Norddahl
e953f3a0c7 Add scrollbar to the log 2024-01-03 16:50:57 +01:00
Christoph Oelckers
f5c4964902 use a more complete font did some primitive font substitution logic.
NotoSans was chosen because it contains all Latin, Cyrillic and Greek characters in one file.
To test the substitution the separate font files for Armenian and Georgian were also added, even though the languages have not been translated.
2024-01-02 18:58:39 +01:00
Christoph Oelckers
4afe1686da hide the old main window as it no longer contains the startup. 2024-01-02 17:23:05 +01:00
Christoph Oelckers
2431d214e6 adapt widget reader to new resource file API. 2024-01-02 17:05:13 +01:00
Magnus Norddahl
426837e7d4 Implement the timer class
Support calling ShowNetStartPane multiple times
2024-01-02 16:55:52 +01:00
Magnus Norddahl
efde75877d Fix the abort button 2024-01-02 16:55:52 +01:00
Magnus Norddahl
16e578a0f8 Implement NetStartWindow
# Conflicts:
#	src/p_setup.cpp
2024-01-02 16:55:52 +01:00
Magnus Norddahl
da83b546ad Finish the error window implementation 2024-01-02 16:55:27 +01:00
Magnus Norddahl
19c2ea171d Implement launcher window base functionality 2024-01-02 16:55:27 +01:00
Magnus Norddahl
787eb625e5 Use a better font
# Conflicts:
#	wadsrc/static/newmenufont.ttf
2024-01-02 16:55:26 +01:00
Magnus Norddahl
71ff4d3685 Load widget resources from lumps
Add banner
2024-01-02 16:55:17 +01:00
Magnus Norddahl
3f50136c8d Create initial error and netstart windows 2024-01-02 16:55:17 +01:00
Magnus Norddahl
787d18e12b Add launcher window 2024-01-02 16:55:17 +01:00