Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge upstream #1

Open
wants to merge 439 commits into
base: main
Choose a base branch
from
Open

Merge upstream #1

wants to merge 439 commits into from

Conversation

Mauler125
Copy link
Owner

No description provided.

GeckoEidechse and others added 29 commits April 7, 2023 21:24
* Some work

* Rewrite gamestate presence

* Add plugin system logger

* Format changes

* Format chjange

* Fix gamestate stuff

* some callback stuff

* move around invite stuff

* move invite to funcs

* fix presence server data

* Actually call InformSQVMCreated

* bruh

* Fix TODO's

* Formatting

* Fix filters

* Add InformDLLLoads

* Fix plugin handle always being 0

* Formatting

* Fix merge issues

* Formatting

* Mods can add files compiled at SQVM init

* Some Small Fixes

* Add changes from review

* Fix load failure

* Add new squirrel functions

* actually call InformSQVMDestroyed

* add CreateObject function

* answers to complaints

* remove snake cases from GameStatePresence

---------

Co-authored-by: cat_or_not <[email protected]>
Consists of a JSON object including a type key and a HMAC-SHA256
signature using the gameserver-specific token from the masterserver
as the key.
The error.msg field has always been around, but we never used it.
Not all error paths set it.
* fix vector garbage data
* change typedef to use IDA's types
Previously, DecodeJSON would log a warning and swallow the error silently, even if the second argument (fatalParseErrors) was true (default is false).
Fix parsing string ConVar/ConCommand.Flags from mod.json

The ParseConVarFlagsString function introduced in 6410006 (#373)
is utterly broken. It only parses the first flag, logs misleading
warnings, has an undefined return value in some codepaths, and is
somewhat convoluted.

Luckily, this doesn't appear to affect most (if not all) existing mods,
as they all seem to be using integer values for Flags, which is
taken as-is.

https://github.com/search?q=path%3A**%2Fmod.json+ConVars+Flags&type=code
Fix initscript issue that prevented Northstar from being run without any mods enabled/installed.
* fix vector garbage data

* use structs for script server browser

* use sq struct api wrappers

* use sqfloat return type for getvector

* use const references for access

* move fn to make the diff more readable (hopefully)
Support loading plugins from subdirs to allow for better organising plugins and easier mod-manager installation
Moves the entire project to cmake as the build system
GeckoEidechse and others added 30 commits September 4, 2024 23:00
Adds more types of crashes to the `crash_test` concommand
`SourceInteface` class goes back to icepick and is not good. We have a replacement, let's use it.
This reworks how rpaks are loaded, unloaded and tracked.
It allows for rpak reloading between map loads, meaning that skins and map overhauls could be enabled and disabled on the fly.
Previous methods of loading rpaks still work.
Updates the launcher code to deal with adjusted verified mods JSON structure from the default manifest source
The idea here is to allow installing mods from other sources than Thunderstore.
Adds nice thread names that can be visible in crash dumps, non-attachable debuggers and generally in all places where old method of throwing exceptions to attached debugger on game start wouldn't work
Removes use of AUTOHOOK macro from dedicated.cpp
…#800)

Removes AUTOHOOK macro from dedicatedmaterialsystem.cpp
Removes use of AUTOHOOK macro from hoststate.cpp.
to avoid instant crashes on older Windows platforms.
Removes unused `SourceInterface` class, moves `InterfaceStatus` enum to `tier1.h`.
…rpak (#825)

Replace incorrect variable with hardcoded `-1`
Don't account for the modded path in pak aliases
Allows plugins to specify a custom colour for their indicator in the logs
Manually hook
- `CBaseServer__ConnectClient`
- `CBaseClient__Connect`
- `CBaseClient__ActivatePlayer`
- `CBaseClient__Disconnect`

Remove `AUTOHOOK_INIT` and `AUTOHOOK_DISPATCH`
* Manually hook CHudChat__AddGameLine
* Remove AUTOHOOK_INIT and AUTOHOOK_DISPATCH
* Manually hook CAI_NetworkBuilder__Build
* Manually hook LoadAINFile
* Remove AUTOHOOK_INIT and AUTOHOOK_DISPATCH
* Manually hook CEngine__Frame
* Remove AUTOHOOK_INIT and AUTOHOOK_DISPATCH
* Manually hook TextMsg
* Manually hook fprintf
* Manually hook ConCommand_echo
* Manually hook EngineSpewFunc
* Manually hook Status_ConMsg
* Manually hook CClientState_ProcessPrint
* Remove AUTOHOOK_INIT and AUTOHOOK_DISPATCH_MODULE
Adds struct containing mod information instead of getting every info with its dedicated function
Adds logic to make an active mod download via MAD cancellable.
…682)

Restricts file types that can be created via Safe I/O to a list of whitelisted file types
Instead of just RequiredOnClient mods and mods that have pdiff

The idea here is that it gives clients a better overview of what mods are enabled on the server they are joining.
Moves the `Mod` class and related logic to its own source files
Moves the logic that goes through all the paths where mods can be installed to its own function as part of improving code maintainability and future refactoring.
Mods are no longer marked as successfully installed when the process failed.
When mod downloading/extraction fails, the mod directory is removed again.
…#833)

* Manually hook OpenExternalWebBrowser
* Remove AUTOHOOK_INIT and AUTOHOOK_DISPATCH
Individually reload all plugins instead of dropping them all and loading them all at once
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.