* 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
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).
* split off the Doom specific lookup with short 8 character names into its own class and cleaned up the interface a bit.
* get rid of all short name aliasing 'optimization' - modern compilers are capable of optimizing memcmp and memcpy to use equally efficient code so none of these hacks are needed anymore.
* added reader for Descent 3's HOG2 format - yet another of these endless uncompressed formats with just a different directory structure...
cleaned up function interface to avoid referencing the file system in the worker functions.
replaced StringTable's operators with functions.. The main reason is that these are far easier to look up when browsing the source.
This also fixes a premature translation in SBARINFO that was done in the parsing stage, not the printing stage.
This is a combination of 2 commits.
Revert "New API for assigning unique network ids to objects"
This reverts commit e37c19b5b4.
This is the commit message #2:
Revert "Fix for Morph virtual"
This reverts commit 0ef042562e.
This was crashing with the move of the V_Init2 call. Instead do it when we first render something so that we can open the window without immediately making the full backend operational.
This was only working on GLES because it performs lazy shader compilation.
This cannot of course set real complevels, so what it does is set all appropriate compatibility flags from the respective preset.
It does leave out a few flags that are preferably left to the user, like infinitely tall actors or wall running.