Age | Commit message (Collapse) | Author |
|
Removes AUTOHOOK macros from `audio.cpp` and replaces them with `HookAttach`.
|
|
Adds documentation explaining the coding standards to follow.
Co-authored-by: F1F7Y <64418963+F1F7Y@users.noreply.github.com>
|
|
Manually hook DrawRUIFunc
Remove AUTOHOOK_INIT and AUTOHOOK_DISPATCH
|
|
Run callbacks for nested modules, and prevent running callbacks multiple times for the same module.
Manually hook BinkOpen
Remove AUTOHOOK_INIT and AUTOHOOK_DISPATCH
|
|
Manually hook AuthWithStryder
Manually hook Auth3PToken
Remove AUTOHOOK_INIT and AUTOHOOK_DISPATCH
|
|
Removes unused `CModule` var. CModule crashes when you give it a dll tha's been loaded as one of these: `LOAD_LIBRARY_AS_DATAFILE`, `LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE`, `LOAD_LIBRARY_AS_IMAGE_RESOURCE`. We have guards for this in libsys but not here.
|
|
Previously we only ran callbacks for modules loaded using WinAPI. This now also runs callbacks for modules imported by those loaded by WinAPI. This fixes callbacks for miles and bink dlls.
|
|
|
|
|
|
|
|
Fix manual hooks storing their name wrong and move to just using std::string since it's much more convenient and this isn't C
|
|
Restores the `mat_crosshair_printmaterial` concommand by reimplementing it's callback. Adds `CMaterialGlue` and `CShaderGlue` classes.
|
|
|
|
|
|
Allow short inline functions to be on one line as otherwise short getters and setters are expanded way too much.
|
|
XInput 9.1.0 has some limitations to do with XInputGetCapabilities that may make the game behave differently when we use it as a replacement for XInput 1.3
XInput 1.4 doesn't have this issue, which means that if it works correctly we should always prioritise using this version over 9.1.0
|
|
This is a certified windows moment. Case insensitive but also not sometimes I guess
|
|
Cherry-picked from primedev and slightly modified
Co-authored-by: F1F7Y <filip.bartos07@proton.me>
|
|
Missing `rpak.json` would previously crash the game due to faulty boolean logic in the `if` statement. This change ensures that a missing `rpak.json` is handled gracefully.
|
|
so that labels can easily be updated if need be
|
|
|
|
Adds a function that converts entities to SQObjects to the SquirrelManagers.
|
|
Previously, the verified mods manifesto was fetched on game start without checking if the verified mod feature is enabled Squirrel-side; with this, the manifesto is only fetched when the user wants to download a mod (meaning they enabled the feature beforehand).
|
|
Revert #741 and remove log message since it's not a big deal
|
|
for filesystem namespace instead of relying on implicit include
Co-authored-by: Jan <sentrycraft123@gmail.com>
|
|
`pushSQObject` does not exist
Co-authored-by: EladNLG <e1lad8955@gmail.com>
|
|
Verify JSON has attributes before trying to access them
|
|
This basically prevents audio files from being loaded into memory if matching audio event has already been overriden by a previous mod, preventing a crash from occurring.
This means that audio mods now respect the load priority, i.e. mods with higher priority (= lower int value) will have priority over other mods on audio overrides.
|
|
Add a Squirrel VM method to know if a given mod is remote or not.
|
|
Because:
- Errors are incredibly confusing when non-fatal - there is no indicator that an error is happening
- The error is unknown without a try/catch block
- Errors cannot be tracked to a line, or file, and its location has to be figured out manually
- They can throw a game into an unexpected state with no indicator, confusing both players AND developers
|
|
Properly handle invalid cvar replications without blocking netmessage entirely and restore `ns_server_name` replication
|
|
|
|
The wsock proxy is so small and self contained that it really does not benefit from a precompiled header.
|
|
as its used once and does not warrant being in the precompiled header
|
|
Check for Console Window before allocating one and remove "console already exists" from error message, we know it doesn't
|
|
`HasMember` asserts `IsObject()` internally.
In release builds this is not an issue but this does not work on Debug builds.
|
|
pulls in https://github.com/Tencent/rapidjson/pull/719
resolves https://github.com/Tencent/rapidjson/issues/2277
|
|
Move primelauncher cmake logic into its subdirectory allowing everything related to it to be self contained
|
|
alloc declarations to work with CRT
implement missing _recalloc_base and _msize
|
|
I think its best if we use the static runtime to remove more dynamic dependencies that we can't anticipate.
|
|
the compiler knows we want to override here, since the original `custom_sink_it_` is virtual but we should be explicit to prevent any mistakes.
|
|
The standard states that this must always be a valid pointer so these checks are optimized out anyway.
Sane compilers, such as clang, also complain about this and state that this is pointless.
|
|
Microsoft, in their infinite wisdom, decided to suffix some libraries with `.Lib` instead of `.lib`
This causes issues with cmake on Linux because it only looks for `.lib` which it won't be able to resolve because the file system is case sensitive.
Microsoft does this for backwards compatibility, in cmake this is a limitation so the best solution is to bite the bullet and lowercase all libraries which setups such as wine-msvc and xwin already do.
|
|
The use of sizeof is incorrect here since `this` is a pointer and sizeof is used on the pointer directly, instead of what the pointer points to.
It seems to work without issue due to padding but could cause issues if an instanced class like `std::string` gets nulled.
|
|
RapidJSON switch gets a new case for null, where we do nothing. Future enum values would result in a new warning.
|
|
v3 is outdated and will soon be deprecated
Co-authored-by: Jan <sentrycraft123@gmail.com>
|
|
Builds Northstar with the Microsoft provided clang-cl build next to MSVC
Release builds are unchanged and still only built with MSVC
|
|
v3 is outdated and will soon be deprecated
Co-authored-by: Jan <sentrycraft123@gmail.com>
|
|
In C++ explicit template instantiations need to be done AFTER template declarations are made.
|
|
Add default case for SquirrelContext switch and logs errors so we can catch them if they do ever happen.
|