aboutsummaryrefslogtreecommitdiff
path: root/primedev
AgeCommit message (Collapse)Author
2024-08-27Remove uses of Autohook from `clientvideooverrides.cpp` (#784)Jack
Run callbacks for nested modules, and prevent running callbacks multiple times for the same module. Manually hook BinkOpen Remove AUTOHOOK_INIT and AUTOHOOK_DISPATCH
2024-08-27Remove uses of Autohook from `clientauthhooks.cpp` (#782)Jack
Manually hook AuthWithStryder Manually hook Auth3PToken Remove AUTOHOOK_INIT and AUTOHOOK_DISPATCH
2024-08-27core: Remove unused `CModule` variable (#785)v1.27.4-rc1F1F7Y
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.
2024-08-27hooking: run callbacks for imported modules (#780)v1.27.3-rc6v1.27.3Jack
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.
2024-08-26Format projectNorthstar
2024-08-25Fix manual hooks storing their name badly (#774)v1.27.3-rc4v1.27.3-rc3Jack
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
2024-08-25engine: restore `mat_crosshair_printmaterial` concommand (#763)F1F7Y
Restores the `mat_crosshair_printmaterial` concommand by reimplementing it's callback. Adds `CMaterialGlue` and `CShaderGlue` classes.
2024-08-23Format projectNorthstar
2024-08-23Try loading XInput 1.4 before trying to load 9.1.0 (#769)Barnaby
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
2024-08-19Fix casing of `KERNEL32.DLL` (#768)v1.27.3-rc2v1.27.3-rc1Jack
This is a certified windows moment. Case insensitive but also not sometimes I guess
2024-08-18Refactor DLL callbacks (#665)Jack
Cherry-picked from primedev and slightly modified Co-authored-by: F1F7Y <filip.bartos07@proton.me>
2024-08-09Fix postload crash from missing `rpak.json` (#762)v1.27.2-rc2v1.27.2FourthVolt
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.
2024-07-30Add CreateScriptInstance (#692)v1.27.1-rc1v1.27.1v1.27.0-rc1v1.27.0EladNLG
Adds a function that converts entities to SQObjects to the SquirrelManagers.
2024-07-30Only fetch MAD manifesto on server join (#751)Rémy Raes
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).
2024-07-28Fix logging sometimes not working (#754)v1.26.4-rc3v1.26.4Jack
Revert #741 and remove log message since it's not a big deal
2024-07-10Define `fs` alias in source file where used (#747)v1.26.4-rc2v1.26.4-rc1v1.26.3-rc3v1.26.3-rc2v1.26.3GeckoEidechse
for filesystem namespace instead of relying on implicit include Co-authored-by: Jan <sentrycraft123@gmail.com>
2024-07-10Fix typo in class member function (#750)GeckoEidechse
`pushSQObject` does not exist Co-authored-by: EladNLG <e1lad8955@gmail.com>
2024-07-10fix: Do not crash on unknown MAD manifesto format (#749)Rémy Raes
Verify JSON has attributes before trying to access them
2024-07-06Fix multiple audio file overrides (#677)v1.26.3-rc1v1.26.2v1.26.1-rc5v1.26.1-rc4v1.26.1Rémy Raes
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.
2024-07-04Expose mods remote status to Squirrel VM (#684)v1.26.1-rc3v1.26.1-rc2v1.26.1-rc1v1.26.0-rc4v1.26.0-rc3v1.26.0Rémy Raes
Add a Squirrel VM method to know if a given mod is remote or not.
2024-07-04Make Script Errors from Northstar Callbacks Fatal (#698)v1.26.0-rc2EladNLG
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
2024-07-04Properly handle invalid cvar replications without blocking netmessage (#408)v1.26.0-rc1BobTheBob
Properly handle invalid cvar replications without blocking netmessage entirely and restore `ns_server_name` replication
2024-06-28Remove unused typedefs from precompiled header (#737)v1.25.4-rc2v1.25.4Jan
2024-06-28Remove precompiled header from wsock proxy (#739)Jan
The wsock proxy is so small and self contained that it really does not benefit from a precompiled header.
2024-06-28Remove EXPORT macro from precompiled header (#738)Jan
as its used once and does not warrant being in the precompiled header
2024-06-28Check for Console Window before allocating one (#741)Jan
Check for Console Window before allocating one and remove "console already exists" from error message, we know it doesn't
2024-06-24Add missing object check in mod manager (#731)v1.25.4-rc1Jan
`HasMember` asserts `IsObject()` internally. In release builds this is not an issue but this does not work on Debug builds.
2024-06-23Fix const-qualified assignment in RapidJSON (#717)v1.25.3-rc3v1.25.3Jan
pulls in https://github.com/Tencent/rapidjson/pull/719 resolves https://github.com/Tencent/rapidjson/issues/2277
2024-06-23Restructure primelauncher cmake logic (#727)Jan
Move primelauncher cmake logic into its subdirectory allowing everything related to it to be self contained
2024-06-22Fix memalloc problems (#728)v1.25.3-rc2Jan
alloc declarations to work with CRT implement missing _recalloc_base and _msize
2024-06-22Add overrides to `custom_sink_it_` methods (#708)Jan
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.
2024-06-20Remove useless `this` pointer check (#710)v1.25.2-rc1v1.25.2Jan
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.
2024-06-20Lowercase all linked libraries for building on Linux (#726)Jan
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.
2024-06-20Remove invalid memset in ServerPresence (#709)Jan
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.
2024-06-19Add missing case for switch cases in JSON deserialization function (#712)v1.25.1-rc2v1.25.1Jan
RapidJSON switch gets a new case for null, where we do nothing. Future enum values would result in a new warning.
2024-06-17Don't instantiate templates before declaration, add missing instantiation (#706)Jan
In C++ explicit template instantiations need to be done AFTER template declarations are made.
2024-06-16Add default case for SquirrelContext switch (#716)v1.25.1-rc1v1.25.0-rc2v1.25.0Jan
Add default case for SquirrelContext switch and logs errors so we can catch them if they do ever happen.
2024-06-16Use double brackets to let compiler know assignment is intentional (#707)v1.25.0-rc1v1.24.7-rc6v1.24.7-rc5v1.24.7-rc4v1.24.7-rc3v1.24.7Jan
Use double brackets to let compiler know that assignment inside `if` statement is intentional and not the cause of a missing second `=`.
2024-06-16Check if hook target is non `null` before calling MinHook (#711)Jan
2024-06-16Remove duplicate wsock32 export (#714)Jan
2024-06-15Assign `CreateInterface` member instead of creating a new variable (#705)v1.24.7-rc2v1.24.7-rc1Jan
Assign CreateInterface member instead of creating a new variable. This fixes valid Plugins failing to load.
2024-05-21Fix engine error crash caused by language detection hooks (#699)v1.24.5-rc2v1.24.5wolf109909
Previous logic would always return `true`
2024-05-05Fix plugin with NULL strings causing UB (#695)Jan
Instance string members only after checking for null pointers to prevent UB
2024-03-09Fix crash in silver-bun (#679)v1.24.6-rc1v1.24.4-rc2v1.24.4Jack
2024-03-04Address C4100 compiler warnings (unused var) (#648)v1.24.4-rc1v1.24.3-rc3v1.24.3-rc2v1.24.3Jack
Adds and uses a macro to avoid the warning
2024-03-04Update silver-bun to `72c74b4` (#664)Jack
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>
2024-03-02Don't allow too many arguments to be sent to the map command (#673)v1.24.3-rc1v1.24.2-rc1v1.24.2Jack
`map` should only take a single arg that specifies the map to load.
2024-03-02Check OpenExternalWebBrowser custom flag better (#674)Jack
Properly check string prefix to see if we should open it in browser
2024-02-25Fix bad offsets of `sq_getfunction` (#672)cat_or_not
and remove duplicate assignment
2024-02-18Clean up wsock proxy code and move wsock build system logic (#671)v1.24.1-rc2v1.24.1-rc1v1.24.1Jan
- 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