Commit Graph

561 Commits

Author SHA1 Message Date
EladNLG 210dab2b0e
Fix SERVER | CLIENT context specifier error (#566) 2023-12-14 22:34:05 +01:00
Rémy Raes 5a7ad2249b
Mod download UI integration (#595)
UI integration for the mod downloading feature. Feature activation locked behind a convar.
2023-12-14 22:19:21 +01:00
cat_or_not 43f0bce059
Add plugin dependency constants (#458)
Adds dependency constants for plugins so mods can rely on plugins without always producing script errors when the plugin is missing
2023-12-14 13:07:02 +01:00
Jack 0976a3500e
Rework `-vanilla` to be a vanilla compatibility mode (#601)
Old `-vanilla` behaviour is now handled by `-nonorthstardll`.

New squirrel constant called `VANILLA`. Set to true when in vanilla compatibility mode.

Differences when in vanilla compatibility mode:
- Doesn't restrict server commands (same as `-norestrictservercommands`)
- Doesn't block FairFight screenshot functions 
- Doesn't do Atlas-related stuff (except for mainmenupromos)
2023-12-14 13:00:26 +01:00
Jan 8a4107191b
Disable more compression methods for minizip (#602)
Only use the absolute necessary compression methods in order to still allow compilation under Wine.
2023-12-13 14:56:23 +01:00
Northstar de5a5006f1 Format project 2023-12-07 21:20:15 +01:00
uniboi 2a30a0d58e
Add clang-format config to pack constructor initializers (#608)
The setting will set each initializer in a new line if all of them don't fit in one line
2023-12-07 21:17:50 +01:00
GeckoEidechse ad1b6ae61b
Bump clang format action to 0.16.2 (#609)
Current is 0.13 which was released October 2021. This bumps it latest at the time of writing, i.e. 0.16.2
2023-12-04 12:20:47 +01:00
GeckoEidechse a27c702b7d
Revert "Move player auth to `CServer::ConnectClient` (#548)" (#610)
This reverts commit 17217a3968 (PR #548) which introduced a regression allowing auth to progress further than intended.
2023-12-01 21:31:20 +01:00
GeckoEidechse da7061a846
Add a safeguard to map command (#564)
Adds safeguard to the `map` command that prevents it from executing if the requested map is invalid or no map argument is given.

Retry of #529

Co-authored-by: cat_or_not <41955154+catornot@users.noreply.github.com>
2023-11-28 00:05:42 +01:00
Maya c427fe4abc
Load plugin dependencies from lib folder (#590)
Disables recursive search for plugins in plugin folders and if it exists adds lib folder within plugin folder to DLL load dirs
2023-11-27 23:50:38 +01:00
Jan cfc53081ff
Replace audio event fetching with hook (#603)
Takes the previous audio event code, which relied on reading out a register using masm, and replaces it with a new hook.
Adapted from NorthstarPrime https://github.com/F1F7Y/NorthstarPrime

Co-authored-by: F1F7Y <filip.bartos07@proton.me>
2023-11-23 18:53:04 +01:00
cat_or_not 17217a3968
Move player auth to `CServer::ConnectClient` (#548)
Fixes bots crashing servers when they are the first to connect to it. Also moves player auth to `CServer::ConnectClient`. This allows the removal of `iNextPlayerUid` and `pNextPlayerToken` which were the cause of issues previously since they were not initialized by bots.
2023-11-22 02:17:35 +01:00
Jan 90e0376ebc
Improve replacing `xinput1_3` with `xinput9_1` (#583)
The previous logic incorrectly loaded compared the whole argument, which may be a path, to the string literal.
This fix checks if the argument ends with the string literal instead.
2023-11-22 02:16:22 +01:00
Cyn aeecd7a69b
Add mod versions when logging that a mod has loaded (#596)
Prints the version of the mod when loaded succesfully
2023-11-21 01:14:37 +01:00
Jack 86c20013c8
Don't log masterserver registration errors in the lobby (#543)
The main purpose of this PR is to not flood the console with errors that aren't really errors, thus preventing various tickets or misleading users.
2023-11-21 00:54:07 +01:00
GeckoEidechse 407bcc7647
Update link for verified mods JSON file (#600)
File was moved with https://github.com/R2Northstar/VerifiedMods/pull/8
2023-11-17 22:06:03 +01:00
cat_or_not bb822b7638
Plugins v3 (#472)
- nuked presence logic ( moved to the discord rpc plugin )
- more exposed sq functions
- exposed dll addresses
- `g_pCVar` is exposed
- added "userdata" to plugin's async call
- added runframe to plugins
2023-11-06 02:21:50 +01:00
GeckoEidechse 583bae6e1a
Plugin related log error expecting more args (#591)
The related line expected 3 args but only 2 args are passed.

Co-authored-by: cat_or_not <41955154+catornot@users.noreply.github.com>
2023-11-05 20:20:08 +01:00
H0L0 2b269d22a4
Convar print commands (#539)
Adds various concommands such as 
- `convar_findByFlags`
- `convar_list`
- `convar_differences`
- `convar_find`

The first 3 listed above are already registered as concommands natively but didn't seem to do anything when tested.
`convar_findByFlags` and `convar_find` were already implemented by Bob under the names `findflags` and `find` respectively but the names have been changed to reflect already existing convars.
2023-11-05 13:36:06 +01:00
Jack 35581f1ff2
Expose `Northstar.dll` version to squirrel (#558)
Exposes the version number in the form of individual digits to script.
2023-11-05 13:22:59 +01:00
Rémy Raes 13f2facdb6
Inital native code for verified mod auto-downloading (#545)
Allows client to download a mod archive from the Thunderstore API, and extract included mods in the remote mods folder of the current game profile.

Not all mods can be automatically downloaded, as it would cause some security issues, and Thunderstore mod name cannot be deduced from actual mod name: to be eligible to auto-downloading, a mod must appear in the list of verified mods.

Said list and complete mod verification procedure are described here: https://github.com/R2Northstar/VerifiedMods

Exposes two commands to test the feature:
- `fetch_verified_mods` retrieves verified mods list from the GitHub organization, and stores it locally;
- `download_mod` does the actual mod downloading/extraction job.
2023-11-03 16:32:41 +01:00
Jack 6e32a58480
Refactor `debugoverlay.cpp` (fix smart pistol lines) (#538)
Refactors `debugoverlay.cpp` based on primedev and fixes smart pistol lines in the process.

Co-authored-by: F1F7Y <64418963+F1F7Y@users.noreply.github.com>
2023-10-30 20:29:15 +01:00
Jack cfc32a6bd6
Run add-to-project on new PRs (#584)
Fix the add to project workflow so that it works on PRs from forks, securely
2023-10-23 22:41:52 +02:00
Jan db5eac19f6
Replace field preprocessors with less hacky solutions (#492)
This behavior is a lot simpler and less dependent on how constants are represented during the preprocessing step.
2023-10-23 15:53:16 +02:00
Jack d463a43474
Use 4th digit in version number for CI build number (#541)
Sets the 4th digit of the version number to the current CI run number.
This is done to more easily link a binary back to the PR or commit it came from.
2023-10-16 14:51:24 +02:00
Jan f763e66a1f
Fix proton detection output (#534)
Fixes Proton detection logic printing incorrect basename
2023-10-15 22:18:19 +02:00
H0L0 f24089e2d7
Add check for r2/maps folder (#575)
Adds a fix to check if `r2/maps` folder exists before trying to iterate through it.
2023-10-15 22:12:02 +02:00
Jack 98af0dcbb4
Move plugin communication handler init out of plugin manager init (#581)
Plugin state requires this to be initialised even if `-noplugins` is passed, but if `-noplugins` is passed, it doesn't get initialised.

Moving this to `dllmain` guarantees that it is initialised properly and prevents #580
2023-10-15 21:57:41 +02:00
Jan fb7b538c2f
Revert "Update libcurl to 8.4.0" (#574)
Newer releases of libcurl break the docker container

This reverts commit 99c5c86e18.
2023-10-15 11:22:03 +02:00
GeckoEidechse db5ef8d6b0
Only run `add-to-project` action on issues (#577)
Only run on issues
PRs from forks are triggered from that fork which means that they don't have access to the necessary token
2023-10-15 02:05:58 +02:00
Jack 2dd19ab51f
Add workflow for adding PRs and Issues to the project board (#572)
Automatically adds all opened issues and pull requests to the project board.
2023-10-14 22:55:56 +02:00
Jan 99c5c86e18
Update libcurl to 8.4.0 (#568)
Addresses:
- https://curl.se/docs/CVE-2023-38545.html
- https://curl.se/docs/CVE-2023-38546.html
2023-10-12 03:01:47 +02:00
Jan 9adf88f46d
Correct submodule detection (#569)
The contents of the submodules were incorrectly counted resulting in a git submodule update on every cmake invocation
2023-10-11 22:55:25 +02:00
GeckoEidechse 16f85420b3
Make link to BUILD.md relative to README.md (#571)
Make link to BUILD.md relative to README.md instead of a hardcoded link to relevant GitHub page
2023-10-11 17:43:06 +02:00
GeckoEidechse 14c01e829c Trim trailing whitespace 2023-10-11 15:44:55 +02:00
GeckoEidechse a9a1e0822c
Fixed mixed indentation in utils.cmake (#570)
The file had mixed indentation (spaces and tabs) when really it
should've been spaces only from the beginning
2023-10-11 15:41:34 +02:00
GeckoEidechse 57201649e7
Fix incorrect help string text (#567)
Help strings for `ns_server_name` and `ns_server_desc` were swapped.

Co-authored-by: BobTheBob <32057864+BobTheBob9@users.noreply.github.com>
2023-10-10 14:29:24 +02:00
F1F7Y c1745b29ad
Add `mileslog_enable` convar (#515)
Adds a convar to toggle whether we should log from the miles log func

Most of these warnings are warnings about events being starved, in some cases slowing down the game due to the number of log calls.
2023-10-10 02:28:32 +02:00
Rémy Raes a040bff98c
Create mod entry in `enabledmods.json` if it doesn't exist (#410)
Currently, when you add a new mod to your `mods/` directory, when there's no associated entry in the `enabledmods.json` file, it is considered enabled by default; mod entries are only written in `enabledmods.json` when toggling them via the mods interface.

In this pull request, I propose to create mod entries in `enabledmods.json` on startup when detecting they don't exist.
2023-10-09 01:34:47 +02:00
F1F7Y 70a0114caa
Rewrite crash handler (#477)
The goal of this commit is to make the crash handler code more readable and fix some issues.

- Format registers
- Format Modules
- Format stacktrace
- Format mods
- Create minidump
2023-10-08 22:11:55 +02:00
Jack 024605399a
Reduce warnings due to calling conventions (#555)
Fix instances of "anachronism used: modifiers on data are ignored"
2023-10-07 14:28:43 +02:00
Jack c093ee10f0
Expose origin auth state and errors to squirrel (#468)
Also moves `NSIsMasterServerAuthenticated` out of `scriptserverbrowser.cpp` because it didn't really fit there

This will be used for showing failed origin auth errors in the game's UI
2023-10-07 12:25:09 +02:00
H0L0 9d8bedf580
Write date to logs (#565)
Next to time also write date to log files.
2023-10-06 00:50:53 +02:00
GeckoEidechse b269c4df61
Define indent size in editorconfig (#550)
Setting indent size in `.editorconfig` means that things like GitHub web
preview will default to showing tab indent size as 4 spaces.
2023-10-04 13:57:34 +02:00
Jan 5798c6369c
Give `g_pMemAllocSingleton` a default value (#563)
Give default value as standard does not define value if uninitialised.
2023-10-04 13:56:48 +02:00
Jack 1d30b2d5ee
Always allow the local player through the banlist (#540)
Adds a check to always allow local player through banlist to aid with players accidentally banning themselves.
2023-10-04 01:04:32 +02:00
GeckoEidechse 2a3be90915
Revert "Add a safeguard to map command" (#561)
Revert "Add a safeguard to map command (#529)"

This reverts commit cde626b041.
2023-10-03 19:32:14 +02:00
Jack d6f0cd508d
Fix crash when running `disconnect %%s` (#554)
Co-authored-by: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com>
2023-10-02 23:44:27 +02:00
cat_or_not cde626b041
Add a safeguard to map command (#529)
Adds safeguard to the `map` command that prevents it from executing if the requested map is invalid or no map argument is given.
2023-10-02 23:17:22 +02:00