From 53b559bef3407f6376bb61bfa4bf8c8cb70e5b73 Mon Sep 17 00:00:00 2001 From: Jonathan Romano Date: Mon, 14 Nov 2022 09:08:49 -0500 Subject: [PATCH 1/6] Make build script fail if any command fails (#832) --- build.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/build.sh b/build.sh index 4a476cc1..a736a4ee 100755 --- a/build.sh +++ b/build.sh @@ -1,3 +1,6 @@ +# Error if any command fails +set -e + # Create the build directory, preserving it if it already exists mkdir -p build cd build From 37524af549de353d89552ab7dd1f29576deb55de Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell Date: Mon, 14 Nov 2022 12:55:40 -0600 Subject: [PATCH 2/6] fix trigger loading (#838) Fixes #836 --- dZoneManager/Zone.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dZoneManager/Zone.cpp b/dZoneManager/Zone.cpp index 3a1127a4..adf66dc9 100644 --- a/dZoneManager/Zone.cpp +++ b/dZoneManager/Zone.cpp @@ -234,7 +234,7 @@ void Zone::LoadScene(std::istream& file) { std::string luTriggersPath = scene.filename.substr(0, scene.filename.size() - 4) + ".lutriggers"; std::vector triggers; - if(Game::assetManager->HasFile(luTriggersPath.c_str())) triggers = LoadLUTriggers(luTriggersPath, scene.id); + if(Game::assetManager->HasFile((m_ZonePath + luTriggersPath).c_str())) triggers = LoadLUTriggers(luTriggersPath, scene.id); for (LUTriggers::Trigger* trigger : triggers) { scene.triggers.insert({ trigger->id, trigger }); From 3fa6ea4cea758e15f4590fbee38be0024b7fbe4a Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell Date: Mon, 14 Nov 2022 13:57:49 -0600 Subject: [PATCH 3/6] Fix ninjago crashes (#837) Fixed reading speed from rail paths Made the config of rail paths be read in sanely due to not having a type Fixes #835 --- dZoneManager/Zone.cpp | 4 +++- dZoneManager/Zone.h | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/dZoneManager/Zone.cpp b/dZoneManager/Zone.cpp index adf66dc9..ec73237e 100644 --- a/dZoneManager/Zone.cpp +++ b/dZoneManager/Zone.cpp @@ -504,6 +504,8 @@ void Zone::LoadPath(std::istream& file) { BinaryIO::BinaryRead(file, waypoint.racing.planeWidth); BinaryIO::BinaryRead(file, waypoint.racing.planeHeight); BinaryIO::BinaryRead(file, waypoint.racing.shortestDistanceToEnd); + } else if (path.pathType == PathType::Rail) { + if (path.pathVersion > 16) BinaryIO::BinaryRead(file, waypoint.rail.speed); } // object LDF configs @@ -529,7 +531,7 @@ void Zone::LoadPath(std::istream& file) { } LDFBaseData* ldfConfig = nullptr; - if (path.pathType == PathType::Movement) { + if (path.pathType == PathType::Movement || path.pathType == PathType::Rail) { ldfConfig = LDFBaseData::DataFromString(parameter + "=0:" + value); } else { ldfConfig = LDFBaseData::DataFromString(parameter + "=" + value); diff --git a/dZoneManager/Zone.h b/dZoneManager/Zone.h index 0e7ae5eb..978438aa 100644 --- a/dZoneManager/Zone.h +++ b/dZoneManager/Zone.h @@ -75,7 +75,6 @@ struct RacingPathWaypoint { struct RailPathWaypoint { float speed; - std::vector config; }; struct PathWaypoint { From 416021c2081e924fed3faca7202882a7d5aa8cf7 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Mon, 21 Nov 2022 14:18:01 -0800 Subject: [PATCH 4/6] Remove need for Avant Gardens Survival Client Fix This addresses the Avant Gardens Survival bug Does not conflict with clients that have the fix. --- README.md | 16 +++------------- dGame/dGameMessages/GameMessageHandler.cpp | 2 +- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index e588d341..87319c10 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ Some tools utilized to streamline the setup process require Python 3, make sure ### Choosing the right version for your client DLU clients identify themselves using a higher version number than the regular live clients out there. -This was done make sure that older and incomplete clients wouldn't produce false positive bug reports for us, and because we made bug fixes and new content for the client. +This was done make sure that older and incomplete clients wouldn't produce false positive bug reports for us, and because we made bug fixes and new content for the client. If you're using a DLU client you'll have to go into the "CMakeVariables.txt" file and change the NET_VERSION variable to 171023 to match the modified client's version number. @@ -173,7 +173,7 @@ Known good SHA256 checksums of the client: - `0d862f71eedcadc4494c4358261669721b40b2131101cbd6ef476c5a6ec6775b` (unpacked client, includes extra locales, rar compressed) Known good *SHA1* checksum of the DLU client: -- `91498e09b83ce69f46baf9e521d48f23fe502985` (packed client, zip compressed) +- `91498e09b83ce69f46baf9e521d48f23fe502985` (packed client, zip compressed) How to generate a SHA256 checksum: ```bash @@ -273,16 +273,6 @@ To connect to a server follow these steps: * Launch `legouniverse.exe`, through `wine` if on a Unix-like operating system * Note that if you are on WSL2, you will need to configure the public IP in the server and client to be the IP of the WSL2 instance and not localhost, which can be found by running `ifconfig` in the terminal. Windows defaults to WSL1, so this will not apply to most users. -### Survival - -The client script for the survival minigame has a bug in it which can cause the minigame to not load. To fix this, follow these instructions: -* Open `res/scripts/ai/minigame/survival/l_zone_survival_client.lua` -* Navigate to line `617` -* Change `PlayerReady(self)` to `onPlayerReady(self)` -* Save the file, overriding readonly mode if required - -If you still experience the bug, try deleting/renaming `res/pack/scripts.pk`. - ### Brick-By-Brick building Brick-By-Brick building requires `PATCHSERVERIP=0:` in the `boot.cfg` to point to a HTTP server which always returns `HTTP 404 - Not Found` for all requests. This can be achieved by pointing it to `localhost` while having `sudo python -m http.server 80` running in the background. @@ -340,7 +330,7 @@ Here is a summary of the commands available in-game. All commands are prefixed b /instanceinfo - Displays in the chat the current zone, clone, and instance id. + Displays in the chat the current zone, clone, and instance id. diff --git a/dGame/dGameMessages/GameMessageHandler.cpp b/dGame/dGameMessages/GameMessageHandler.cpp index 9cf09bbc..2ce79966 100644 --- a/dGame/dGameMessages/GameMessageHandler.cpp +++ b/dGame/dGameMessages/GameMessageHandler.cpp @@ -157,8 +157,8 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System Game::logger->Log("GameMessageHandler", "Player %s (%llu) loaded.", entity->GetCharacter()->GetName().c_str(), entity->GetObjectID()); // After we've done our thing, tell the client they're ready - GameMessages::SendPlayerReady(dZoneManager::Instance()->GetZoneControlObject(), sysAddr); GameMessages::SendPlayerReady(entity, sysAddr); + GameMessages::SendPlayerReady(dZoneManager::Instance()->GetZoneControlObject(), sysAddr); break; } From 9d62a8cd0bec17febc132c3b84f78b9e122687fd Mon Sep 17 00:00:00 2001 From: Demetri Van Sickle Date: Mon, 21 Nov 2022 14:19:37 -0800 Subject: [PATCH 5/6] Add backwards compatibility with servers using previous setup method * MasterServer will nolonger require cdclient.fdb * Added support for packed/unpacked clients not requiring .fdb file if .sqlite exsits --- dCommon/dClient/AssetManager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dCommon/dClient/AssetManager.cpp b/dCommon/dClient/AssetManager.cpp index 0cb2db31..349b5271 100644 --- a/dCommon/dClient/AssetManager.cpp +++ b/dCommon/dClient/AssetManager.cpp @@ -26,11 +26,11 @@ AssetManager::AssetManager(const std::string& path) { m_RootPath = (m_Path / ".." / ".."); m_ResPath = m_Path; - } else if (std::filesystem::exists(m_Path / "res" / "cdclient.fdb") && !std::filesystem::exists(m_Path / "res" / "pack")) { + } else if ((std::filesystem::exists(m_Path / "res" / "cdclient.fdb") || std::filesystem::exists(m_Path / "res" / "CDServer.sqlite")) && !std::filesystem::exists(m_Path / "res" / "pack")) { m_AssetBundleType = eAssetBundleType::Unpacked; m_ResPath = (m_Path / "res"); - } else if (std::filesystem::exists(m_Path / "cdclient.fdb") && !std::filesystem::exists(m_Path / "pack")) { + } else if ((std::filesystem::exists(m_Path / "cdclient.fdb") || std::filesystem::exists(m_Path / "CDServer.sqlite")) && !std::filesystem::exists(m_Path / "pack")) { m_AssetBundleType = eAssetBundleType::Unpacked; m_ResPath = m_Path; From b17ba56af17f42f47dafdfbe56913caabf49c450 Mon Sep 17 00:00:00 2001 From: Nico Mexis Date: Wed, 23 Nov 2022 19:50:45 +0100 Subject: [PATCH 6/6] Update workflow actions (#844) --- .github/workflows/build-and-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 8f65fd8e..ab3917c1 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -16,7 +16,7 @@ jobs: os: [ windows-2022, ubuntu-20.04, macos-11 ] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: true - name: Add msbuild to PATH (Windows only) @@ -35,7 +35,7 @@ jobs: buildPreset: "ci-${{matrix.os}}" testPreset: "ci-${{matrix.os}}" - name: artifacts - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 if: ${{ github.ref == 'ref/head/main' }} with: name: build-${{matrix.os}}