Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
Use double brackets to let compiler know that assignment inside `if` statement is intentional and not the cause of a missing second `=`.
|
|
|
|
|
|
Assign CreateInterface member instead of creating a new variable. This fixes valid Plugins failing to load.
|
|
Previous logic would always return `true`
|
|
Instance string members only after checking for null pointers to prevent UB
|
|
|
|
Adds and uses a macro to avoid the warning
|
|
Bumps the vendored silver-bun library to the newest commit in upstream
Co-authored-by: F1F7Y <filip.bartos07@proton.me>
Co-authored-by: IcePixelx <41352111+IcePixelx@users.noreply.github.com>
|
|
`map` should only take a single arg that specifies the map to load.
|
|
Properly check string prefix to see if we should open it in browser
|
|
and remove duplicate assignment
|
|
- moves `WSockProxy` to `wsockproxy/CmakeLists`
- remove exepath stuff from dllmain
+ its still done in loader.cpp because its used when reporting failure
- Disabled any Thread Library calls
+ we don't need to know about threads at all in the proxy
- yoink `wsock32.asm` into outer space
+ turns out, we can just call the function in a void shim since that wont touch the registers
- stop copying `wsock32.dll` to the game directory
+ this should improve the state of things when using the EA App
|