16 Commits

Author SHA1 Message Date
Kawe Mazidjatari
46390ba875 Additional reduction of untyped variables
These were not caught by the regex due to typos, or additional symbols that were not taken into account when making the regex.
2023-07-03 00:02:08 +02:00
Amos
d76ed1098a Improve VFTable address logging
More standardized VFTable address logging.
2023-01-25 11:19:53 +01:00
Kawe Mazidjatari
a618990937 Detour code refactor
This change was planned for a long time. This moves all REGISTER calls to a single translation unit, this is required as we currently added a very dirty workaround for not registering duplicates by checking if VFTable pointer was already present in the vector... Registering from single translation unit prevents duplicate instances that gets created if header is included by more cpp files.
Reworking this reduced 100kb+ of compiled code. This commit also reworked the way functions/variables/constant gets logged with their addresses; the new code formats them on the fly, and allows for resize at any time. Formatting is no longer required by programmer.

TODO: currently there are some compile errors for dedicated and client dll's. These will be resolved very soon as they need to be properly worked out still (server & client only stuff needs to be properly split). Use the 'main' (stable) branch for the time being if you need to compile these dll's.
2023-01-25 02:26:52 +01:00
Kawe Mazidjatari
4cc3c28985 Deref VFTable pointer only once to obtain CShaderGlue::SetupShader
Due to the new cache changes, the pointer should only be dereferenced once.
2022-12-02 01:33:49 +01:00
Kawe Mazidjatari
5548a74d59 Major cleanup (see description)
* Fix all compiler error for GameSDK on S0 and S1.
* Remove some unused patterns and globals (launch performance gains of 100ms).
* Remove most duplicate patterns.
* Relocate globals from engine to a more appropriate location.
* Renamed some unknown vars to a more appropriate name (most of these where obtained a while back, but as we reversed more parts of the engine, some of these vars become known).
* Renamed some vars to fit the naming convention used in the SDK.
* Fixed pattern debug logging using the wrong pointer, thus displaying the wrong address.
2022-08-18 02:15:23 +02:00
Kawe Mazidjatari
8bf6dac3d8 Code improvements
* Use GetVirtualMethodTable for VFTable pointers.
* Pack CClientState to 4 bytes (this aligns it properly in memory).
* Use CClientState members directly for setting m_bRestrictServerCommands/m_bRestrictClientCommands.
2022-08-15 22:29:16 +02:00
Kawe Mazidjatari
8c6ee8a834 Remove 'm' prefix from dll globals
Large commit.
2022-08-09 03:02:00 +02:00
PixieCore
178aeeb3fd Use GetVirtualMethodTable for VTable consts. 2022-07-21 20:36:47 +02:00
rexx
dad356b0c3 rename materialglue/shaderglue members 2022-07-18 22:00:03 +01:00
PixieCore
1b2c0cecd0 CShaderGlue changes and RTech implementation.
* Added RTech::LoadShaderSet for the asset load routine
* Grabbing CShaderGlue::SetupShader and CShaderGlue::m_pVTable dynamically now
* Everything verified for every season, cross-compatible!
2022-07-04 22:52:10 +02:00
PixieCore
8860d9b1b8 fix compilation 2022-07-03 22:57:07 +02:00
PixieCore
2b1374cff8 Added CShaderGlue VTable context 2022-07-03 22:44:25 +02:00
PixieCore
1e2bfe6dd2 90% Fully reversed CShaderGlue 2022-07-03 21:55:35 +02:00
PixieCore
6a90314fc1 Update cshaderglue.h 2022-07-03 13:57:24 +02:00
PixieCore
3efd7ece3b Changed a datatype in CShaderGlue 2022-07-01 22:53:46 +02:00
PixieCore
2e559863a8 CMaterialGlue and CShaderGlue
* Cleaned up CMaterialGlue
* Added slight implementation of CShaderGlue
2022-07-01 22:50:22 +02:00