Commit Graph

597 Commits

Author SHA1 Message Date
Jan ddb4670354
Remove Vector3 Constructor (#494)
- Packing was enabled because the compiler may add padding which we don't want.
- Constructors were removed because they were either rather primitive or broken (the `pRawFloats` one).
- Use of constructor was replaced with a simple cast, which works just as well.
2023-07-25 16:31:02 +02:00
EladNLG cf8b267d31
Safe I/O 2 - Electric Boogaloo! (#404)
* Safe I/O initial commit

* Formatting

* Formatting 2

* God help us all.

* fix diffs part 1

* fix diffs 2

* Fix invalid filter file

* Update NorthstarLauncher.vcxproj

* Remove newline at EOF

* fix the damn thing

* God help the diffs

* diff hate

* diff hate the 2nd

* Add comments since this code is unreadable

Now, this code may look readable, but I barely understand what I did here myself.

* Remove char limit and file definitions

* Fix build

* organization stuff

* Fix build

* More funcs, more stuff

* format fix

* oops, this is wrong.

* fix a thing

* Add max folder size (250MB) and add getallfiles

* Fix build also size cap

* reduce max folder size to 50MB

* he forgor

* i give up

* aync edition?????

* Fix max size bypass

* fix it

* Remove logs

* Add max folder size launch arg

* boop

* FUCK SHIT

* FUCKKKKKKKKKKK

* Fix build

* Fix crash

* Fix error FINAL!!!

* fix scriptjson.h not being found

* fix scriptjson.h not appearing correctly

* shit diffself

* format fix

* Fix indentation (thank you vscode)

* Fix indentation again

* adadasa

* shit diffself

adadasa

Fix indentation (thank you vscode)

Fix indentation again

* format fix

* Revert "shit diffself"

This reverts commit b49a62b5b3.

* Revert "Merge branch 'safe-io-rewrite' of https://github.com/EladNLG/NorthstarLauncher into safe-io-rewrite"

This reverts commit 761eb8a1cb, reversing
changes made to 65549b2f79.

* Fix the diff finally

* more diff fixes

* Fix more diffs

* Allow non-ascii characters that aren't NUL

* format fix :(

* this is untested and I don't wanna update the safe i/o test thing

* fix build :(

* fix mayhaps?

* fix build

* Fix lotsa stuff :D

* FIxed :D

* Rewrite error messages, rename CheckFileName to IsPathSafe

* Shout out to clang-format!

* oops, wrong error message :3

* SHOUT OUT TO CLANG-FORMAT!!!

* Revert "SHOUT OUT TO CLANG-FORMAT!!!"

This reverts commit c536384073.

* :(

* oop

* Add failure callback (launcher)

* unnecessary comment

* holy shit format fix
boooooo. BOOOOOO!

* restrict path to ASCII

* Fix ascii check I hate you all

* reformat

* Clang-format my beloved :)

* Move the thing

* Apply suggestions from code review

Co-authored-by: Rémy Raes <contact@remyraes.com>

* clang-format no like code suggestions :(

* name change

* doc'd

* - Replace the mutex map with a single mutex for all file actions
- Fix Load calls sometimes failing and not calling NSHandleLoadResult
- Add NSGetTotalSpaceRemaining which checks how much space a mod has, in KB
- Add contstant MAX_FOLDER_SIZE which holds the maximum save folder size, in KB

* add safe-io stuff to cmake

* surrounds IsPathSafe with a try/catch

---------

Co-authored-by: Rémy Raes <contact@remyraes.com>
Co-authored-by: uniboi <kami.0.katze@gmail.com>
2023-07-22 21:02:22 +01:00
Jan d3fb76f889
Replace vendored libcurl and minhook with submodules (#500)
* Replace vendored libcurl and minhook with submodules
* Add cmake utility for checking submodules and initializing them
* Update build instructions to use Git
2023-07-22 02:22:26 +02:00
F1F7Y 9841d698f8
Search for Northstar.dll in profile directory (#451)
Looks for `Northstar.dll` in the specified profile directory using `-profile=<dir>`. If it doesn't exist it defaults to the `Northstar.dll` in the root directory.

This allows for having a separate DLL for each profile.
2023-07-17 20:26:59 +02:00
Jan 06825e3096
Add OS, Wine and Proton logging (#502)
Adds logging for OS, Wine, and Proton versions.
2023-07-16 22:05:37 +02:00
Jan 24248c7419
CMAKE: set build type if not previously set, turn bin dir message into status (#497) 2023-07-16 21:43:26 +02:00
GeckoEidechse 0309af134e
Add support for loading Thunderstore mods natively (#503)
Allows for loading Thunderstore mods directly from a separate directory called `packages`.
2023-07-16 21:23:50 +02:00
Jack 9f9e3a906f
Improve logging for mods (#445)
- Removes the log spam of "changing mod search path"
- Logs mods as they are loaded, alongside their ConVars, Scripts, ConCommands, etc.
- Warns in the console about errors in the mod.json instead of silently skipping things
2023-07-07 17:11:43 +02:00
F1F7Y 513705e33f
Memory class renaming (#469)
- Renames `MemoryAddress` to `CMemoryAddress`
- Renames `CMemoryAddress::As` to `CMemoryAddress::RCast`
2023-07-07 12:28:35 +02:00
GeckoEidechse 043fb83d8f
Improve `ShouldLoadNorthstar()` logic readability (#499) 2023-07-02 09:54:01 -04:00
F1F7Y 10cb6e53ac
Basic mods blacklisting (#474) 2023-07-02 13:24:41 +02:00
GeckoEidechse e4de2f3145
Update gitattributes vendored code path (#496) 2023-07-01 20:06:37 -04:00
F1F7Y 71f0ee98cc
Reorganize third-party dependencies into `thirdparty` directory (#491)
* rename `include` to `thirdparty`
* remove duplicate minhook in wsock32
* move minhook into its own directory
* move openssl lib into separate directories
2023-06-29 21:10:24 -04:00
Jan efd907105c
Code cleanup (#478)
* turn implicit type casts into standard compliant explicit type casts
* correct includes and library names
* correct implicit use of std-namespaced functions
* turn incomplete virtual implementations into pure virtuals (this also follows what the Source SDK tier0 header does)
* define SqRecurseArgs ahead of implementation to fix templating problems
* switch out removed getentity with getthisentity
* fix calls to curl_easy_escape with wrong types
* replace winapi-specific function with std starts_with function
* format squirrel header
2023-06-28 23:22:33 -04:00
Jan b5c4e4e7ed
Replace dependent names with explicit template definition (#490) 2023-06-28 23:19:34 -04:00
F1F7Y 2bd882e9aa
Add RelWithDebInfo configuration (#483) 2023-06-28 23:16:30 -04:00
Jan d7f8dd7612
Fix const pointer const (#488) 2023-06-28 23:12:19 -04:00
Jan d50739ac01
Remove pragma once from source file (#487) 2023-06-28 23:11:46 -04:00
Jan de970c559c
Use correctly typed values for variables (#486) 2023-06-28 23:11:30 -04:00
Jan 58a2324828
Cast types in MAKEHOOK macro to follow C++ Standard (#489) 2023-06-28 23:10:08 -04:00
F1F7Y 23594f24d3
Update release action to match push action (#476) 2023-06-22 21:56:40 +02:00
F1F7Y 89996405ee
Move to cmake (#467)
Moves the entire project to cmake as the build system
2023-06-22 11:47:46 +02:00
cat_or_not 9cf27a61fd
Restore `-noplugins` argument (#459) 2023-06-07 18:57:19 -04:00
F1F7Y 6fe1805914
Fix `maps *` command, expose to squirrel (#442) 2023-06-07 18:54:53 -04:00
cat_or_not 6857b93f62
Support loading plugins from subdirs (#460)
Support loading plugins from subdirs to allow for better organising plugins and easier mod-manager installation
2023-05-05 18:20:51 +02:00
uniboi 6fa48abd33
Use structs for the Script Server Browser (#453)
* 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)
2023-04-27 14:55:06 +02:00
cat_or_not c50441f67a
Fix initscript issue (#457)
Fix initscript issue that prevented Northstar from being run without any mods enabled/installed.
2023-04-23 13:10:50 +02:00
pg9182 7c2b56b1e9
Replace `set-output` in GitHub Actions workflows (#452)
`set-output` is being deprecated as per https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
2023-04-22 02:34:48 +02:00
pg9182 10b6839d9c
Remove leftover LoadPlugins declaration (#449)
Doesn't exist since 450d0b1ed4 (#343).
2023-04-19 18:06:43 -04:00
pg9182 34af81a7d8
Fix parsing string ConVar/ConCommand.Flags from `mod.json` (#450)
Fix parsing string ConVar/ConCommand.Flags from mod.json

The ParseConVarFlagsString function introduced in 64100065b5 (#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
2023-04-19 18:05:59 -04:00
Glacir e1dcf7a6b6
Fix incorrect script ConCommand argc (#446) 2023-04-19 09:43:46 -04:00
EladNLG 4e341f156b
Fix DecodeJSON fatalParseErrors param (#443)
Previously, DecodeJSON would log a warning and swallow the error silently, even if the second argument (fatalParseErrors) was true (default is false).
2023-04-18 19:28:07 -04:00
uniboi ca45fcc4c5
Fix getvector returning garbage data (#448)
* fix vector garbage data
* change typedef to use IDA's types
2023-04-18 18:49:46 -04:00
pg9182 c173e8fad8 Set default server auth failure reason
Not all error paths set it.
2023-04-17 14:53:23 -04:00
pg9182 009482fcb8 Use detailed master server error messages when available
The error.msg field has always been around, but we never used it.
2023-04-17 14:53:23 -04:00
pg9182 b1aed577e4 Remove httplib 2023-04-17 14:50:10 -04:00
pg9182 87bd14cbe8 Replace HTTP auth server with Atlas connectionless packet 2023-04-17 14:50:10 -04:00
pg9182 45819c0ef2 Add missing curl lib deps 2023-04-17 14:50:10 -04:00
pg9182 35e91aa120 Implement Atlas sigreq1 connectionless packet
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.
2023-04-17 14:50:10 -04:00
pg9182 29c6aeca11 Add support for Atlas connectionless packets 2023-04-17 14:50:10 -04:00
pg9182 2c889a0bc0 Extract ProcessConnectionlessPacket hook to separate file 2023-04-17 14:50:10 -04:00
Emma Miler 450d0b1ed4
Plugin system v2 (#343)
* 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 <41955154+catornot@users.noreply.github.com>
2023-04-11 20:49:16 +02:00
Jack 72da1da5b4
Fix stringcmd limits causing unnecessary disconnects (#447)
revert some changes made by #411
2023-04-08 21:14:00 +02:00
GeckoEidechse d7637c7ab5
Bump download-artifact action to v3 (#444)
v2 is deprecated
2023-04-07 21:24:30 +02:00
cat_or_not 35696d3f9e
Bring back sq_getobject and sq_getthisentity for the client and ui vm (#428)
bring sq funcs back
2023-03-31 00:16:39 +02:00
GeckoEidechse 5d946ca2c1
CI create release and upload files on tag (#439)
* CI create release and upload files on tag

On tag creation, this creates a new release and uploads the corresponding compiled launcher and debug files.

* Remove leftover `ls`

* Remove condition to not build RCs

Release candidates should also be built and uploaded. The condition for not building them was a leftover from copy-pasting code.

* Move condition to parent

* Make sure files are in root of zip

Previously they were in a subfolder inside the zip

* Remove leftover content from copy/paste
2023-03-19 19:56:29 +01:00
BobTheBob 7720e51493
Fix `sv_alltalk 1` (broken originally by respawn changes) (#291)
* fix sv_alltalk 1 (broken originally by respawn changes)

* nvm i forgor to commit literally the main file

* fix formatting

* unsure why this was buidling but it shouldn't've been? fix build errors
regardless

* remove duplicate alltalk.cpp

* add (experimental) potentially less jank patch

* (now working) better patch for checking if alltalk is enabled

* oops put a z in it boo womp

* fixup formatting
2023-03-08 01:55:12 +01:00
pg9182 06221fab6b
Reject banned players during masterserver auth (#434)
* Reject banned players during masterserver auth

This is backwards-compatible with old masterserver versions (it will
be treated as a general authentication failure).

* Reword server ban message
2023-03-08 01:37:42 +01:00
EladNLG 6f4c6f3e95
me when case inconsistency (#437)
one line fix baby!
2023-03-07 20:27:15 +00:00
pg9182 ecb83ef17e
Fix build errors due to declaration order in scripthttprequesthandler (#430) 2023-03-05 10:55:29 -05:00