From 0e9a81b205ae92c4219316f24c9e1c25e1637f79 Mon Sep 17 00:00:00 2001 From: Alessandro Autiero Date: Mon, 11 Nov 2024 21:46:31 +0100 Subject: [PATCH 01/20] Update msbuild.yml --- .github/workflows/msbuild.yml | 40 ++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml index def27c9..c0d8f7a 100644 --- a/.github/workflows/msbuild.yml +++ b/.github/workflows/msbuild.yml @@ -1,19 +1,13 @@ name: MSBuild on: - workflow_call: - inputs: - branch: - required: true - type: string + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] env: - # Path to the solution file relative to the root of the project. SOLUTION_FILE_PATH: . - - # Configuration type to build. - # You can convert this to a build matrix if you need coverage of multiple configuration types. - # https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix BUILD_CONFIGURATION: Release permissions: @@ -25,8 +19,6 @@ jobs: steps: - uses: actions/checkout@v3 - with: - ref: ${{ inputs.branch }} - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v1.0.2 @@ -35,16 +27,26 @@ jobs: working-directory: ${{env.GITHUB_WORKSPACE}} run: nuget restore ${{env.SOLUTION_FILE_PATH}} - - name: Build + - name: Build Reboot working-directory: ${{env.GITHUB_WORKSPACE}} - # Add additional options to the MSBuild command line here (like platform or verbosity level). - # See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference - run: msbuild /m /p:Configuration=${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}} - - - name: Upload Release Artifact + run: msbuild /m /p:Configuration=${{env.BUILD_CONFIGURATION}} /p:DefineConstants="" ${{env.SOLUTION_FILE_PATH}} + + - name: Upload Artifact without ABOVE_S20 uses: actions/upload-artifact@v3 with: - name: Release + name: Reboot + path: ${{env.SOLUTION_FILE_PATH}}/x64/Release + if-no-files-found: warn + retention-days: 60 + + - name: Build RebootS20 + working-directory: ${{env.GITHUB_WORKSPACE}} + run: msbuild /m /p:Configuration=${{env.BUILD_CONFIGURATION}} /p:DefineConstants="ABOVE_S20" ${{env.SOLUTION_FILE_PATH}} + + - name: Upload Artifact with ABOVE_S20 + uses: actions/upload-artifact@v3 + with: + name: RebootS20 path: ${{env.SOLUTION_FILE_PATH}}/x64/Release if-no-files-found: warn retention-days: 60 From 2e88f141959576bb4fe72eac01df54ddcd1f87d9 Mon Sep 17 00:00:00 2001 From: Alessandro Autiero Date: Mon, 11 Nov 2024 21:47:02 +0100 Subject: [PATCH 02/20] Delete .github/workflows/aboveS20.yml --- .github/workflows/aboveS20.yml | 47 ---------------------------------- 1 file changed, 47 deletions(-) delete mode 100644 .github/workflows/aboveS20.yml diff --git a/.github/workflows/aboveS20.yml b/.github/workflows/aboveS20.yml deleted file mode 100644 index f539085..0000000 --- a/.github/workflows/aboveS20.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: Update aboveS20 Branches - -on: - push: - branches: - - master - -permissions: - contents: write - -jobs: - update-branches: - runs-on: ubuntu-latest - steps: - - name: Checkout master branch - uses: actions/checkout@v3 - - - name: Set up Git user - run: | - git config user.name "GitHub Actions" - git config user.email "actions@github.com" - - - name: Delete branches locally and on remote - run: | - git push origin --delete aboveS20 || true - git branch -D aboveS20 || true - - - name: Create aboveS20 branch from master and modify inc.h - run: | - git checkout master - git checkout -b aboveS20 - echo '#define ABOVE_S20' | cat - "./Project Reboot 3.0/inc.h" > temp && mv temp "./Project Reboot 3.0/inc.h" - git add "./Project Reboot 3.0/inc.h" - git commit -m "Add #define ABOVE_S20 to inc.h in aboveS20 branch" - git push origin aboveS20 - - build-master: - uses: ./.github/workflows/msbuild.yml - needs: update-branches - with: - branch: master - - build-aboveS20: - uses: ./.github/workflows/msbuild.yml - needs: update-branches - with: - branch: aboveS20 From 516f9ae97e32ec072a24c91bfa41d22ee5ecebda Mon Sep 17 00:00:00 2001 From: Alessandro Autiero Date: Thu, 5 Dec 2024 20:20:26 +0100 Subject: [PATCH 03/20] Update msbuild.yml --- .github/workflows/msbuild.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml index c0d8f7a..6e4381c 100644 --- a/.github/workflows/msbuild.yml +++ b/.github/workflows/msbuild.yml @@ -29,7 +29,7 @@ jobs: - name: Build Reboot working-directory: ${{env.GITHUB_WORKSPACE}} - run: msbuild /m /p:Configuration=${{env.BUILD_CONFIGURATION}} /p:DefineConstants="" ${{env.SOLUTION_FILE_PATH}} + run: msbuild ${{env.SOLUTION_FILE_PATH}} /t:Clean,Build /p:Configuration=Release - name: Upload Artifact without ABOVE_S20 uses: actions/upload-artifact@v3 @@ -41,7 +41,7 @@ jobs: - name: Build RebootS20 working-directory: ${{env.GITHUB_WORKSPACE}} - run: msbuild /m /p:Configuration=${{env.BUILD_CONFIGURATION}} /p:DefineConstants="ABOVE_S20" ${{env.SOLUTION_FILE_PATH}} + run: msbuild /p:DefineConstants=ABOVE_S20 ${{env.SOLUTION_FILE_PATH}} /t:Clean,Build /p:Configuration=Release - name: Upload Artifact with ABOVE_S20 uses: actions/upload-artifact@v3 From a8d929445d5a4c67a85bd85e6521d29a80533b81 Mon Sep 17 00:00:00 2001 From: Alessandro Autiero Date: Sun, 8 Dec 2024 21:42:26 +0100 Subject: [PATCH 04/20] Update msbuild.yml --- .github/workflows/msbuild.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml index 6e4381c..10a767d 100644 --- a/.github/workflows/msbuild.yml +++ b/.github/workflows/msbuild.yml @@ -41,7 +41,7 @@ jobs: - name: Build RebootS20 working-directory: ${{env.GITHUB_WORKSPACE}} - run: msbuild /p:DefineConstants=ABOVE_S20 ${{env.SOLUTION_FILE_PATH}} /t:Clean,Build /p:Configuration=Release + run: msbuild ${{env.SOLUTION_FILE_PATH}} /p:DefineConstants="ABOVE_S20" /t:Clean,Build /p:Configuration=Release - name: Upload Artifact with ABOVE_S20 uses: actions/upload-artifact@v3 From 291ff00173199510899231968a15d7b1d44d87ea Mon Sep 17 00:00:00 2001 From: Alessandro Autiero Date: Sun, 8 Dec 2024 22:03:58 +0100 Subject: [PATCH 05/20] Update msbuild.yml --- .github/workflows/msbuild.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml index 10a767d..8cd1a15 100644 --- a/.github/workflows/msbuild.yml +++ b/.github/workflows/msbuild.yml @@ -41,7 +41,7 @@ jobs: - name: Build RebootS20 working-directory: ${{env.GITHUB_WORKSPACE}} - run: msbuild ${{env.SOLUTION_FILE_PATH}} /p:DefineConstants="ABOVE_S20" /t:Clean,Build /p:Configuration=Release + run: msbuild ${{env.SOLUTION_FILE_PATH}} /p:DefineConstants=ABOVE_S20 /p:PreprocessorDefinitions=ABOVE_S20 /t:Clean,Build /p:Configuration=Release - name: Upload Artifact with ABOVE_S20 uses: actions/upload-artifact@v3 From 8e77b12421616db3ffd78562bef303e0e24a33a9 Mon Sep 17 00:00:00 2001 From: Alessandro Autiero Date: Sun, 8 Dec 2024 23:09:45 +0100 Subject: [PATCH 06/20] Update msbuild.yml --- .github/workflows/msbuild.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml index 8cd1a15..fea1b08 100644 --- a/.github/workflows/msbuild.yml +++ b/.github/workflows/msbuild.yml @@ -41,7 +41,7 @@ jobs: - name: Build RebootS20 working-directory: ${{env.GITHUB_WORKSPACE}} - run: msbuild ${{env.SOLUTION_FILE_PATH}} /p:DefineConstants=ABOVE_S20 /p:PreprocessorDefinitions=ABOVE_S20 /t:Clean,Build /p:Configuration=Release + run: msbuild ${{env.SOLUTION_FILE_PATH}} /p:AboveS20=TRUE /t:Clean,Build /p:Configuration=Release - name: Upload Artifact with ABOVE_S20 uses: actions/upload-artifact@v3 From 90d834b286c4386f58446db08ad2e6a4845d0970 Mon Sep 17 00:00:00 2001 From: Alessandro Autiero Date: Sun, 8 Dec 2024 23:11:34 +0100 Subject: [PATCH 07/20] Update Project Reboot 3.0.vcxproj --- Project Reboot 3.0/Project Reboot 3.0.vcxproj | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Project Reboot 3.0/Project Reboot 3.0.vcxproj b/Project Reboot 3.0/Project Reboot 3.0.vcxproj index d346fac..8725bcc 100644 --- a/Project Reboot 3.0/Project Reboot 3.0.vcxproj +++ b/Project Reboot 3.0/Project Reboot 3.0.vcxproj @@ -77,7 +77,7 @@ Level3 true - WIN32;_DEBUG;PROJECTREBOOT30_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + ABOVE_S20=$(AboveS20);WIN32;_DEBUG;PROJECTREBOOT30_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true NotUsing pch.h @@ -99,7 +99,7 @@ true true true - WIN32;NDEBUG;PROJECTREBOOT30_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + ABOVE_S20=$(AboveS20);WIN32;NDEBUG;PROJECTREBOOT30_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true NotUsing pch.h @@ -123,7 +123,7 @@ Level3 true - _DEBUG;PROJECTREBOOT30_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + ABOVE_S20=$(AboveS20);_DEBUG;PROJECTREBOOT30_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true NotUsing pch.h @@ -145,7 +145,7 @@ true true true - NDEBUG;PROJECTREBOOT30_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + ABOVE_S20=$(AboveS20);NDEBUG;PROJECTREBOOT30_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true NotUsing pch.h @@ -513,4 +513,4 @@ - \ No newline at end of file + From 9bb3939395a69e56c873eb414514d0d1e73c8a99 Mon Sep 17 00:00:00 2001 From: Alessandro Autiero Date: Sun, 8 Dec 2024 23:24:00 +0100 Subject: [PATCH 08/20] Update Project Reboot 3.0.vcxproj --- Project Reboot 3.0/Project Reboot 3.0.vcxproj | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Project Reboot 3.0/Project Reboot 3.0.vcxproj b/Project Reboot 3.0/Project Reboot 3.0.vcxproj index 8725bcc..15ce19d 100644 --- a/Project Reboot 3.0/Project Reboot 3.0.vcxproj +++ b/Project Reboot 3.0/Project Reboot 3.0.vcxproj @@ -77,7 +77,8 @@ Level3 true - ABOVE_S20=$(AboveS20);WIN32;_DEBUG;PROJECTREBOOT30_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + WIN32;_DEBUG;PROJECTREBOOT30_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + ABOVE_S20=$(AboveS20);%(PreprocessorDefinitions) true NotUsing pch.h @@ -99,7 +100,8 @@ true true true - ABOVE_S20=$(AboveS20);WIN32;NDEBUG;PROJECTREBOOT30_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + WIN32;NDEBUG;PROJECTREBOOT30_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + ABOVE_S20=$(AboveS20);%(PreprocessorDefinitions) true NotUsing pch.h @@ -123,7 +125,8 @@ Level3 true - ABOVE_S20=$(AboveS20);_DEBUG;PROJECTREBOOT30_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + _DEBUG;PROJECTREBOOT30_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + ABOVE_S20=$(AboveS20);%(PreprocessorDefinitions) true NotUsing pch.h @@ -145,7 +148,8 @@ true true true - ABOVE_S20=$(AboveS20);NDEBUG;PROJECTREBOOT30_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + NDEBUG;PROJECTREBOOT30_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + ABOVE_S20=$(AboveS20);%(PreprocessorDefinitions) true NotUsing pch.h From e39f4a6b7a5f29cd5acd40f13d27dc69c3bf2e8c Mon Sep 17 00:00:00 2001 From: Alessandro Autiero Date: Sun, 8 Dec 2024 23:35:52 +0100 Subject: [PATCH 09/20] Update Project Reboot 3.0.vcxproj --- Project Reboot 3.0/Project Reboot 3.0.vcxproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Project Reboot 3.0/Project Reboot 3.0.vcxproj b/Project Reboot 3.0/Project Reboot 3.0.vcxproj index 15ce19d..921d318 100644 --- a/Project Reboot 3.0/Project Reboot 3.0.vcxproj +++ b/Project Reboot 3.0/Project Reboot 3.0.vcxproj @@ -78,7 +78,7 @@ Level3 true WIN32;_DEBUG;PROJECTREBOOT30_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - ABOVE_S20=$(AboveS20);%(PreprocessorDefinitions) + ABOVE_S20;%(PreprocessorDefinitions) true NotUsing pch.h @@ -101,7 +101,7 @@ true true WIN32;NDEBUG;PROJECTREBOOT30_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - ABOVE_S20=$(AboveS20);%(PreprocessorDefinitions) + ABOVE_S20;%(PreprocessorDefinitions) true NotUsing pch.h @@ -126,7 +126,7 @@ Level3 true _DEBUG;PROJECTREBOOT30_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - ABOVE_S20=$(AboveS20);%(PreprocessorDefinitions) + ABOVE_S20;%(PreprocessorDefinitions) true NotUsing pch.h From 5de4b40e865c2341531e6e7e3a57dc7890973a0e Mon Sep 17 00:00:00 2001 From: ralz <140648578+Ralzify@users.noreply.github.com> Date: Tue, 24 Dec 2024 12:17:13 -0500 Subject: [PATCH 10/20] fix ch2+ editing bug entire reboot cord wanted this --- Project Reboot 3.0/BuildingSMActor.h | 2 +- Project Reboot 3.0/BuildingWeapons.h | 9 --- Project Reboot 3.0/FortPlayerController.cpp | 66 ++++++--------------- 3 files changed, 18 insertions(+), 59 deletions(-) diff --git a/Project Reboot 3.0/BuildingSMActor.h b/Project Reboot 3.0/BuildingSMActor.h index 7b52424..bcff2be 100644 --- a/Project Reboot 3.0/BuildingSMActor.h +++ b/Project Reboot 3.0/BuildingSMActor.h @@ -55,7 +55,7 @@ public: ) { SetNetDormancy((ENetDormancy)(2 - (NewEditingPlayer != 0))); - this->ForceNetUpdate(); + // they do something here GetEditingPlayer() = NewEditingPlayer; } } diff --git a/Project Reboot 3.0/BuildingWeapons.h b/Project Reboot 3.0/BuildingWeapons.h index 506b3e1..561582f 100644 --- a/Project Reboot 3.0/BuildingWeapons.h +++ b/Project Reboot 3.0/BuildingWeapons.h @@ -24,14 +24,5 @@ public: void OnRep_EditActor(); - void SetEditActor(ABuildingSMActor* EditActor) - { - // if (HasAuthority()) - { - GetEditActor() = EditActor; - originalOnRep_EditActor(this); - } - } - static UClass* StaticClass(); }; \ No newline at end of file diff --git a/Project Reboot 3.0/FortPlayerController.cpp b/Project Reboot 3.0/FortPlayerController.cpp index fc3c240..ee68edf 100644 --- a/Project Reboot 3.0/FortPlayerController.cpp +++ b/Project Reboot 3.0/FortPlayerController.cpp @@ -1672,39 +1672,6 @@ void AFortPlayerController::ClientOnPawnDiedHook(AFortPlayerController* PlayerCo return ClientOnPawnDiedOriginal(PlayerController, DeathReport); } -bool Idk(ABuildingSMActor* BuildingActor) -{ - return true; // bIsPlayerBuildable && EditModeSupport && EditModePatternData && GameState->StructuralSupportSystem && ?? && ?? -} - -bool IsOkForEditing(ABuildingSMActor* BuildingActor, AFortPlayerController* Controller) -{ - if (BuildingActor->GetEditingPlayer() && - BuildingActor->GetEditingPlayer() != Controller->GetPlayerState()) - return false; - - return !BuildingActor->IsDestroyed() && - // BuildingActor->GetWorld() && - Idk(BuildingActor); -} - -/* - -The editing dilemma: - -15.10: -Valid edit pattern: -ServerBeginEditingActorblahblah -ServerEdit -ClientForceStop - -WHERE IS END EDITING?!?!??! -Invalid EDitPattern: -ServerBeginEditingActorblahblah -ServerEnd - -*/ - void AFortPlayerController::ServerBeginEditingBuildingActorHook(AFortPlayerController* PlayerController, ABuildingSMActor* BuildingActorToEdit) { if (!BuildingActorToEdit || !BuildingActorToEdit->IsPlayerPlaced()) // We need more checks. @@ -1715,9 +1682,6 @@ void AFortPlayerController::ServerBeginEditingBuildingActorHook(AFortPlayerContr if (!Pawn) return; - if (!IsOkForEditing(BuildingActorToEdit, PlayerController)) - return; - auto PlayerState = PlayerController->GetPlayerState(); if (!PlayerState) @@ -1737,14 +1701,15 @@ void AFortPlayerController::ServerBeginEditingBuildingActorHook(AFortPlayerContr if (!EditToolInstance) return; - AFortWeap_EditingTool* EditTool = nullptr; + Pawn->EquipWeaponDefinition(EditToolDef, EditToolInstance->GetItemEntry()->GetItemGuid()); - EditTool = Cast(Pawn->EquipWeaponDefinition(EditToolDef, EditToolInstance->GetItemEntry()->GetItemGuid())); + auto EditTool = Cast(Pawn->GetCurrentWeapon()); if (!EditTool) return; - EditTool->SetEditActor(BuildingActorToEdit); + EditTool->GetEditActor() = BuildingActorToEdit; + EditTool->OnRep_EditActor(); } void AFortPlayerController::ServerEditBuildingActorHook(UObject* Context, FFrame& Stack, void* Ret) @@ -1767,7 +1732,7 @@ void AFortPlayerController::ServerEditBuildingActorHook(UObject* Context, FFrame // LOG_INFO(LogDev, "RotationIterations: {}", RotationIterations); - if (!BuildingActorToEdit || !NewBuildingClass || BuildingActorToEdit->GetEditingPlayer() != PlayerState || BuildingActorToEdit->IsDestroyed()) + if (!BuildingActorToEdit || !NewBuildingClass || BuildingActorToEdit->IsDestroyed() || BuildingActorToEdit->GetEditingPlayer() != PlayerState) { // LOG_INFO(LogDev, "Cheater?"); // LOG_INFO(LogDev, "BuildingActorToEdit->GetEditingPlayer(): {} PlayerState: {} NewBuildingClass: {} BuildingActorToEdit: {}", BuildingActorToEdit ? __int64(BuildingActorToEdit->GetEditingPlayer()) : -1, __int64(PlayerState), __int64(NewBuildingClass), __int64(BuildingActorToEdit)); @@ -1777,7 +1742,7 @@ void AFortPlayerController::ServerEditBuildingActorHook(UObject* Context, FFrame // if (!PlayerState || PlayerState->GetTeamIndex() != BuildingActorToEdit->GetTeamIndex()) //return ServerEditBuildingActorOriginal(Context, Frame, Ret); - // BuildingActorToEdit->SetEditingPlayer(nullptr); // uh? + BuildingActorToEdit->SetEditingPlayer(nullptr); static ABuildingSMActor* (*BuildingSMActorReplaceBuildingActor)(ABuildingSMActor*, __int64, UClass*, int, int, uint8_t, AFortPlayerController*) = decltype(BuildingSMActorReplaceBuildingActor)(Addresses::ReplaceBuildingActor); @@ -1793,7 +1758,7 @@ void AFortPlayerController::ServerEditBuildingActorHook(UObject* Context, FFrame return ServerEditBuildingActorOriginal(Context, Stack, Ret); } -void AFortPlayerController::ServerEndEditingBuildingActorHook(AFortPlayerController* PlayerController, ABuildingSMActor* BuildingActorToStopEditing) +void AFortPlayerController::ServerEndEditingBuildingActorHook(AFortPlayerController* PlayerController, ABuildingSMActor* BuildingActorToStopEditing) { auto Pawn = PlayerController->GetMyFortPawn(); @@ -1816,13 +1781,16 @@ void AFortPlayerController::ServerEndEditingBuildingActorHook(AFortPlayerControl if (!EditToolInstance) return; - // Pawn->EquipWeaponDefinition(EditToolDef, EditToolInstance->GetItemEntry()->GetItemGuid()); // why do they do this on older builds bru + Pawn->EquipWeaponDefinition(EditToolDef, EditToolInstance->GetItemEntry()->GetItemGuid()); - if (auto EditTool = Cast(Pawn->GetCurrentWeapon())) + auto EditTool = Cast(Pawn->GetCurrentWeapon()); + + BuildingActorToStopEditing->GetEditingPlayer() = nullptr; + // BuildingActorToStopEditing->OnRep_EditingPlayer(); + + if (EditTool) { - EditTool->SetEditActor(nullptr); - // PlayerController->ClientForceCancelBuildingTool(); + EditTool->GetEditActor() = nullptr; + EditTool->OnRep_EditActor(); } - - // PlayerController->ClientForceCancelBuildingTool(); -} +} \ No newline at end of file From 08999bf473f78f2a5cba337a35c1118cd334ce46 Mon Sep 17 00:00:00 2001 From: Gray <84999745+Milxnor@users.noreply.github.com> Date: Sat, 4 Jan 2025 13:19:08 -0500 Subject: [PATCH 11/20] Fix S14(only?) issue on VPS's --- Project Reboot 3.0/addresses.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Project Reboot 3.0/addresses.cpp b/Project Reboot 3.0/addresses.cpp index bd92d98..1ade2d1 100644 --- a/Project Reboot 3.0/addresses.cpp +++ b/Project Reboot 3.0/addresses.cpp @@ -678,6 +678,25 @@ std::vector Addresses::GetFunctionsToNull() } } +#if 0 // untested + auto BeginPlayPedestalStrRef = Memcury::Scanner::FindStringRef("AFortTeamMemberPedestal::BeginPlay - Begun play on pedestal %s"); + + if (BeginPlayPedestalStrRef.Get()) + { + auto Start = BeginPlayPedestalStrRef.ScanFor({ 0x40, 0x53, 0x41, 0x56 }, false); + LOG_INFO(LogDev, "BeginPlayPedestal Start: 0x{:x}", Start); + toNull.push_back(Start.Get()); + } +#else + auto BeginPlayPedestalScanner = Memcury::Scanner::FindPattern("40 53 41 56 48 83 EC 48 48 89 6C 24 ? 48 8B D9 48 89 74 24 ? 48 89 7C 24"); + + if (auto BeginPlayPedestal = BeginPlayPedestalScanner.Get()) + { + LOG_INFO(LogDev, "BeginPlayPedestal Start: 0x{:x}", BeginPlayPedestal - __int64(GetModuleHandleW(0))); + toNull.push_back(BeginPlayPedestal); + } +#endif + toNull.push_back(Addresses::ChangeGameSessionId); return toNull; From 2b2fbcad5e38d4e3663114577d8747c8029e0f8e Mon Sep 17 00:00:00 2001 From: Gray <84999745+Milxnor@users.noreply.github.com> Date: Thu, 6 Mar 2025 06:11:13 -0500 Subject: [PATCH 12/20] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9a167bb..83c1d3d 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ![image](https://github.com/user-attachments/assets/5704e635-31d9-417a-856f-91728f2be7f2) # The reboot discord and my discord account has been terminated -# What does this mean for the future of reboot? This means V4 is definitely not coming. +# New discord at discord.gg/rebootmp # Thanks for all the support over the past years. ![Banner](https://i.imgur.com/p0P4tcI.png) From 081dea244084b1de4a56aa0711ca8113926809ed Mon Sep 17 00:00:00 2001 From: Alessandro Autiero Date: Sat, 8 Mar 2025 12:58:30 +0100 Subject: [PATCH 13/20] Extend retention to 90 days in msbuild.yml --- .github/workflows/msbuild.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml index fea1b08..e2b3c77 100644 --- a/.github/workflows/msbuild.yml +++ b/.github/workflows/msbuild.yml @@ -37,7 +37,7 @@ jobs: name: Reboot path: ${{env.SOLUTION_FILE_PATH}}/x64/Release if-no-files-found: warn - retention-days: 60 + retention-days: 90 - name: Build RebootS20 working-directory: ${{env.GITHUB_WORKSPACE}} @@ -49,4 +49,4 @@ jobs: name: RebootS20 path: ${{env.SOLUTION_FILE_PATH}}/x64/Release if-no-files-found: warn - retention-days: 60 + retention-days: 90 From 48b09e7a84f37ccdafcc3ec0b03664b347a1d479 Mon Sep 17 00:00:00 2001 From: Alessandro Autiero Date: Sat, 8 Mar 2025 13:02:58 +0100 Subject: [PATCH 14/20] Update msbuild.yml --- .github/workflows/msbuild.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml index fea1b08..dd08b8c 100644 --- a/.github/workflows/msbuild.yml +++ b/.github/workflows/msbuild.yml @@ -32,7 +32,7 @@ jobs: run: msbuild ${{env.SOLUTION_FILE_PATH}} /t:Clean,Build /p:Configuration=Release - name: Upload Artifact without ABOVE_S20 - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: Reboot path: ${{env.SOLUTION_FILE_PATH}}/x64/Release @@ -44,7 +44,7 @@ jobs: run: msbuild ${{env.SOLUTION_FILE_PATH}} /p:AboveS20=TRUE /t:Clean,Build /p:Configuration=Release - name: Upload Artifact with ABOVE_S20 - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: RebootS20 path: ${{env.SOLUTION_FILE_PATH}}/x64/Release From 12d3a5ee516703e0240ff6a59c6bdeb607d8fcb8 Mon Sep 17 00:00:00 2001 From: Gray <84999745+Milxnor@users.noreply.github.com> Date: Sat, 8 Mar 2025 09:02:37 -0500 Subject: [PATCH 15/20] Update SavePackage.cpp --- Project Reboot 3.0/SavePackage.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Project Reboot 3.0/SavePackage.cpp b/Project Reboot 3.0/SavePackage.cpp index 968f5ff..589e279 100644 --- a/Project Reboot 3.0/SavePackage.cpp +++ b/Project Reboot 3.0/SavePackage.cpp @@ -4,6 +4,6 @@ UClass* UPackage::StaticClass() { - static auto Class = FindObject("/Script/CoreUObject.Package"); + static auto Class = FindObject(L"/Script/CoreUObject.Package"); return Class; -} \ No newline at end of file +} From a923feef8807f871f7b9f8ba3eb7899e18769591 Mon Sep 17 00:00:00 2001 From: Mariki <68015763+Mar1ki@users.noreply.github.com> Date: Fri, 14 Mar 2025 17:13:25 +0300 Subject: [PATCH 16/20] Added New BattleBus Overrides Added new BattleBus overrides (14.30, 14.50, 14.60) --- Project Reboot 3.0/FortGameModeAthena.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Project Reboot 3.0/FortGameModeAthena.cpp b/Project Reboot 3.0/FortGameModeAthena.cpp index f6ad6f4..42000f9 100644 --- a/Project Reboot 3.0/FortGameModeAthena.cpp +++ b/Project Reboot 3.0/FortGameModeAthena.cpp @@ -1314,6 +1314,18 @@ void AFortGameModeAthena::Athena_HandleStartingNewPlayerHook(AFortGameModeAthena { OverrideBattleBusSkin = FindObject(L"/Game/Athena/Items/Cosmetics/BattleBuses/BBID_WorldCupBus.BBID_WorldCupBus"); // World Cup } + else if (Fortnite_Version == 14.30) + { + OverrideBattleBusSkin = FindObject(L"/Game/Athena/Items/Cosmetics/BattleBuses/BBID_BusUpgrade1.BBID_BusUpgrade1"); + } + else if (Fortnite_Version == 14.50) + { + OverrideBattleBusSkin = FindObject(L"/Game/Athena/Items/Cosmetics/BattleBuses/BBID_BusUpgrade2.BBID_BusUpgrade2"); + } + else if (Fortnite_Version == 14.60) + { + OverrideBattleBusSkin = FindObject(L"/Game/Athena/Items/Cosmetics/BattleBuses/BBID_BusUpgrade3.BBID_BusUpgrade3"); + } if (OverrideBattleBusSkin) OverrideBattleBus(GameState, OverrideBattleBusSkin); From 5b510513f36555fedf22306dc9d69f19ed91a792 Mon Sep 17 00:00:00 2001 From: Heliato Date: Sun, 16 Mar 2025 01:50:10 +0100 Subject: [PATCH 17/20] Add Respawn 14 > --- Project Reboot 3.0/FortPawn.cpp | 8 +++ Project Reboot 3.0/FortPawn.h | 1 + .../FortPlayerControllerAthena.cpp | 56 +++++++++++++++++++ .../FortPlayerControllerAthena.h | 1 + Project Reboot 3.0/FortPlayerStateAthena.h | 12 ++++ Project Reboot 3.0/dllmain.cpp | 7 +++ 6 files changed, 85 insertions(+) diff --git a/Project Reboot 3.0/FortPawn.cpp b/Project Reboot 3.0/FortPawn.cpp index f8aabe1..f1691e1 100644 --- a/Project Reboot 3.0/FortPawn.cpp +++ b/Project Reboot 3.0/FortPawn.cpp @@ -94,6 +94,14 @@ void AFortPawn::SetShield(float NewShield) this->ProcessEvent(SetShieldFn, &NewShield); } +void AFortPawn::SetMaxShield(float NewShieldVal) +{ + static auto SetMaxShieldFn = FindObject("/Script/FortniteGame.FortPawn.SetMaxShield"); + + if (SetMaxShieldFn) + this->ProcessEvent(SetMaxShieldFn, &NewShieldVal); +} + void AFortPawn::NetMulticast_Athena_BatchedDamageCuesHook(UObject* Context, FFrame* Stack, void* Ret) { auto Pawn = (AFortPawn*)Context; diff --git a/Project Reboot 3.0/FortPawn.h b/Project Reboot 3.0/FortPawn.h index 0089f36..25c6ea7 100644 --- a/Project Reboot 3.0/FortPawn.h +++ b/Project Reboot 3.0/FortPawn.h @@ -49,6 +49,7 @@ public: void SetHealth(float NewHealth); void SetMaxHealth(float NewHealthVal); void SetShield(float NewShield); + void SetMaxShield(float NewShieldVal); static void NetMulticast_Athena_BatchedDamageCuesHook(UObject* Context, FFrame* Stack, void* Ret); static void MovingEmoteStoppedHook(UObject* Context, FFrame* Stack, void* Ret); diff --git a/Project Reboot 3.0/FortPlayerControllerAthena.cpp b/Project Reboot 3.0/FortPlayerControllerAthena.cpp index 389e85c..81a2f37 100644 --- a/Project Reboot 3.0/FortPlayerControllerAthena.cpp +++ b/Project Reboot 3.0/FortPlayerControllerAthena.cpp @@ -646,4 +646,60 @@ void AFortPlayerControllerAthena::UpdateTrackedAttributesHook(AFortPlayerControl if (ItemInstancesToRemove.size() > 0) WorldInventory->Update(); +} + +void AFortPlayerControllerAthena::ServerClientIsReadyToRespawnHook(AFortPlayerControllerAthena* PlayerControllerAthena) +{ + AFortPlayerStateAthena* PlayerStateAthena = Cast(PlayerControllerAthena->GetPlayerState()); + AFortGameModeAthena* GameModeAthena = Cast(GetWorld()->GetGameMode()); + + if (!PlayerStateAthena || !GameModeAthena) + return; + + AFortGameStateAthena* GameStateAthena = Cast(GameModeAthena->GetGameState()); + if (!GameStateAthena) return; + + if (GameStateAthena->IsRespawningAllowed(PlayerStateAthena)) + { + FFortRespawnData* RespawnData = PlayerStateAthena->GetRespawnData(); + + if (RespawnData->IsServerReady() && RespawnData->IsRespawnDataAvailable()) + { + const FVector& RespawnLocation = RespawnData->GetRespawnLocation(); + const FRotator& RespawnRotation = RespawnData->GetRespawnRotation(); + + // RestartPlayer doesn't work, idk why + static auto SpawnDefaultPawnAtTransformFn = FindObject(L"/Script/Engine.GameModeBase.SpawnDefaultPawnAtTransform"); + + FTransform SpawnTransform{}; + SpawnTransform.Translation = RespawnLocation; + SpawnTransform.Rotation = RespawnRotation.Quaternion(); + SpawnTransform.Scale3D = FVector(1, 1, 1); + + struct { AController* NewPlayer; FTransform SpawnTransform; APawn* ReturnValue; } + AGameModeBase_SpawnDefaultPawnAtTransform_Params{ PlayerControllerAthena, SpawnTransform }; + + GameModeAthena->ProcessEvent(SpawnDefaultPawnAtTransformFn, &AGameModeBase_SpawnDefaultPawnAtTransform_Params); + + AFortPlayerPawn* PlayerPawn = Cast(AGameModeBase_SpawnDefaultPawnAtTransform_Params.ReturnValue); + + if (!PlayerPawn) + return; + + PlayerPawn->SetOwner(PlayerControllerAthena); + + PlayerControllerAthena->Possess(PlayerPawn); + + PlayerPawn->SetMaxHealth(100); + PlayerPawn->SetHealth(100); + PlayerPawn->SetMaxShield(100); + PlayerPawn->SetShield(100); + + PlayerControllerAthena->RespawnPlayerAfterDeath(true); + + RespawnData->IsClientReady() = true; + } + } + + printf_s(__FUNCTION__"\n"); } \ No newline at end of file diff --git a/Project Reboot 3.0/FortPlayerControllerAthena.h b/Project Reboot 3.0/FortPlayerControllerAthena.h index 1731069..44a7807 100644 --- a/Project Reboot 3.0/FortPlayerControllerAthena.h +++ b/Project Reboot 3.0/FortPlayerControllerAthena.h @@ -264,6 +264,7 @@ public: static void GetPlayerViewPointHook(AFortPlayerControllerAthena* PlayerController, FVector& Location, FRotator& Rotation); static void ServerReadyToStartMatchHook(AFortPlayerControllerAthena* PlayerController); static void UpdateTrackedAttributesHook(AFortPlayerControllerAthena* PlayerController); + static void ServerClientIsReadyToRespawnHook(AFortPlayerControllerAthena* PlayerControllerAthena); // 1:1 static UClass* StaticClass() { diff --git a/Project Reboot 3.0/FortPlayerStateAthena.h b/Project Reboot 3.0/FortPlayerStateAthena.h index 60867d9..e3fff72 100644 --- a/Project Reboot 3.0/FortPlayerStateAthena.h +++ b/Project Reboot 3.0/FortPlayerStateAthena.h @@ -30,6 +30,18 @@ struct FFortRespawnData static auto bServerIsReadyOffset = FindOffsetStruct("/Script/FortniteGame.FortRespawnData", "bServerIsReady"); return *(bool*)(__int64(this) + bServerIsReadyOffset); } + + FVector& GetRespawnLocation() + { + static auto RespawnLocationOffset = FindOffsetStruct("/Script/FortniteGame.FortRespawnData", "RespawnLocation"); + return *(FVector*)(__int64(this) + RespawnLocationOffset); + } + + FRotator& GetRespawnRotation() + { + static auto RespawnRotationOffset = FindOffsetStruct("/Script/FortniteGame.FortRespawnData", "RespawnRotation"); + return *(FRotator*)(__int64(this) + RespawnRotationOffset); + } }; struct FDeathInfo diff --git a/Project Reboot 3.0/dllmain.cpp b/Project Reboot 3.0/dllmain.cpp index 82f2f26..03f51e2 100644 --- a/Project Reboot 3.0/dllmain.cpp +++ b/Project Reboot 3.0/dllmain.cpp @@ -1285,6 +1285,13 @@ DWORD WINAPI Main(LPVOID) Hooking::MinHook::Hook(FortPlayerControllerAthenaDefault, FindObject(L"/Script/FortniteGame.FortPlayerController.ServerReadyToStartMatch"), AFortPlayerControllerAthena::ServerReadyToStartMatchHook, (PVOID*)&AFortPlayerControllerAthena::ServerReadyToStartMatchOriginal, false); + if (Fortnite_Version >= 14) + { + Hooking::MinHook::Hook(FortPlayerControllerAthenaDefault, FindObject(L"/Script/FortniteGame.FortPlayerControllerAthena.ServerClientIsReadyToRespawn"), + AFortPlayerControllerAthena::ServerClientIsReadyToRespawnHook, nullptr, false); + } + + auto ServerRequestSeatChangeFn = FindObject(L"/Script/FortniteGame.FortPlayerControllerZone.ServerRequestSeatChange"); if (ServerRequestSeatChangeFn) From 8a7ae79baf643ceb5ba925f4653a9bd85ec4bf44 Mon Sep 17 00:00:00 2001 From: ralz <140648578+Ralzify@users.noreply.github.com> Date: Wed, 19 Mar 2025 19:49:01 -0400 Subject: [PATCH 18/20] fix extra bot on ch2+ --- Project Reboot 3.0/bots.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Project Reboot 3.0/bots.h b/Project Reboot 3.0/bots.h index e2e9ad2..7637329 100644 --- a/Project Reboot 3.0/bots.h +++ b/Project Reboot 3.0/bots.h @@ -323,8 +323,11 @@ public: PickRandomLoadout(); ApplyCosmeticLoadout(); - GameState->GetPlayersLeft()++; - GameState->OnRep_PlayersLeft(); + if (Fortnite_Version <= 10) + { + GameState->GetPlayersLeft()++; + GameState->OnRep_PlayersLeft(); + } if (auto FortPlayerControllerAthena = Cast(Controller)) GameMode->GetAlivePlayers().Add(FortPlayerControllerAthena); From 2260c9c9e05d7ea995b5711e7622d07d973061ae Mon Sep 17 00:00:00 2001 From: Gray <84999745+Milxnor@users.noreply.github.com> Date: Thu, 20 Mar 2025 19:03:43 -0400 Subject: [PATCH 19/20] real --- .../FortAthenaMutator_InventoryOverride.h | 4 +-- Project Reboot 3.0/FortInventory.cpp | 26 +++++++++++++++++++ Project Reboot 3.0/reboot.h | 2 ++ 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/Project Reboot 3.0/FortAthenaMutator_InventoryOverride.h b/Project Reboot 3.0/FortAthenaMutator_InventoryOverride.h index 3d128bf..3647bdf 100644 --- a/Project Reboot 3.0/FortAthenaMutator_InventoryOverride.h +++ b/Project Reboot 3.0/FortAthenaMutator_InventoryOverride.h @@ -61,7 +61,7 @@ public: if (!TeamLoadouts) return FItemLoadoutTeamMap(); - for (int i = 0; i < TeamLoadouts->Num(); i++) + for (int i = 0; i < TeamLoadouts->Num(); ++i) { auto& TeamLoadout = TeamLoadouts->at(i); @@ -106,7 +106,7 @@ public: return Get(InventoryUpdateOverrideOffset); } - EAthenaLootDropOverride& GetDropAllItemsOverride(uint8_t TeamIndex = 255) + EAthenaLootDropOverride GetDropAllItemsOverride(uint8_t TeamIndex = 255) { if (TeamIndex != 255) { diff --git a/Project Reboot 3.0/FortInventory.cpp b/Project Reboot 3.0/FortInventory.cpp index f18fe37..512073b 100644 --- a/Project Reboot 3.0/FortInventory.cpp +++ b/Project Reboot 3.0/FortInventory.cpp @@ -382,6 +382,32 @@ bool AFortInventory::RemoveItem(const FGuid& ItemGuid, bool* bShouldUpdate, int } } + /* + if (FortPlayerController) + { + if (auto Pawn = FortPlayerController->GetMyFortPawn()) + { + static auto CurrentWeaponListOffset = Pawn->GetOffset("CurrentWeaponList"); + + if (CurrentWeaponListOffset != -1) // shouldnt be possible but better safe than sorry! + { + auto& CurrentWeaponList = Pawn->Get>(CurrentWeaponListOffset); + + for (int i = 0; i < CurrentWeaponList.Num(); ++i) + { + auto Weapon = CurrentWeaponList.At(i); + + if (Weapon->GetItemEntryGuid() == ItemGuid) + { + Weapon->K2_DestroyActor(); + break; + } + } + } + } + } + */ + // todo remove from weaponlist if (bShouldUpdate) diff --git a/Project Reboot 3.0/reboot.h b/Project Reboot 3.0/reboot.h index d7cbaf1..b862778 100644 --- a/Project Reboot 3.0/reboot.h +++ b/Project Reboot 3.0/reboot.h @@ -86,6 +86,8 @@ static inline class UWorld* GetWorld() static auto GameViewportOffset = Engine->GetOffset("GameViewport"); auto GameViewport = Engine->Get(GameViewportOffset); + if (!GameViewport) return nullptr; + static auto WorldOffset = GameViewport->GetOffset("World"); return GameViewport->Get(WorldOffset); From 292c559563bc1c33b8e99b1e28a8134129702814 Mon Sep 17 00:00:00 2001 From: Gray <84999745+Milxnor@users.noreply.github.com> Date: Thu, 20 Mar 2025 19:06:44 -0400 Subject: [PATCH 20/20] re-add aboveS20 cuz yeah --- .github/workflows/aboveS20.yml | 47 +++++++++++++++++++++++++++ .github/workflows/msbuild.yml | 58 +++++++++++++++++----------------- 2 files changed, 76 insertions(+), 29 deletions(-) create mode 100644 .github/workflows/aboveS20.yml diff --git a/.github/workflows/aboveS20.yml b/.github/workflows/aboveS20.yml new file mode 100644 index 0000000..8c0aa4b --- /dev/null +++ b/.github/workflows/aboveS20.yml @@ -0,0 +1,47 @@ +name: Update aboveS20 Branches + +on: + push: + branches: + - master + +permissions: + contents: write + +jobs: + update-branches: + runs-on: ubuntu-latest + steps: + - name: Checkout master branch + uses: actions/checkout@v3 + + - name: Set up Git user + run: | + git config user.name "GitHub Actions" + git config user.email "actions@github.com" + + - name: Delete branches locally and on remote + run: | + git push origin --delete aboveS20 || true + git branch -D aboveS20 || true + + - name: Create aboveS20 branch from master and modify inc.h + run: | + git checkout master + git checkout -b aboveS20 + echo '#define ABOVE_S20' | cat - "./Project Reboot 3.0/inc.h" > temp && mv temp "./Project Reboot 3.0/inc.h" + git add "./Project Reboot 3.0/inc.h" + git commit -m "Add #define ABOVE_S20 to inc.h in aboveS20 branch" + git push origin aboveS20 + + build-master: + uses: ./.github/workflows/msbuild.yml + needs: update-branches + with: + branch: master + + build-aboveS20: + uses: ./.github/workflows/msbuild.yml + needs: update-branches + with: + branch: aboveS20 diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml index a408cca..2a3b4ef 100644 --- a/.github/workflows/msbuild.yml +++ b/.github/workflows/msbuild.yml @@ -2,9 +2,9 @@ name: MSBuild on: push: - branches: [ "master" ] + branches: ["master"] pull_request: - branches: [ "master" ] + branches: ["master"] env: SOLUTION_FILE_PATH: . @@ -18,35 +18,35 @@ jobs: runs-on: windows-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v3 - - name: Add MSBuild to PATH - uses: microsoft/setup-msbuild@v1.0.2 + - name: Add MSBuild to PATH + uses: microsoft/setup-msbuild@v1.0.2 - - name: Restore NuGet packages - working-directory: ${{env.GITHUB_WORKSPACE}} - run: nuget restore ${{env.SOLUTION_FILE_PATH}} + - name: Restore NuGet packages + working-directory: ${{env.GITHUB_WORKSPACE}} + run: nuget restore ${{env.SOLUTION_FILE_PATH}} - - name: Build Reboot - working-directory: ${{env.GITHUB_WORKSPACE}} - run: msbuild ${{env.SOLUTION_FILE_PATH}} /t:Clean,Build /p:Configuration=Release - - - name: Upload Artifact without ABOVE_S20 - uses: actions/upload-artifact@v4 - with: - name: Reboot - path: ${{env.SOLUTION_FILE_PATH}}/x64/Release - if-no-files-found: warn - retention-days: 90 + - name: Build Reboot + working-directory: ${{env.GITHUB_WORKSPACE}} + run: msbuild ${{env.SOLUTION_FILE_PATH}} /t:Clean,Build /p:Configuration=Release - - name: Build RebootS20 - working-directory: ${{env.GITHUB_WORKSPACE}} - run: msbuild ${{env.SOLUTION_FILE_PATH}} /p:AboveS20=TRUE /t:Clean,Build /p:Configuration=Release + - name: Upload Artifact without ABOVE_S20 + uses: actions/upload-artifact@v4 + with: + name: Reboot + path: ${{env.SOLUTION_FILE_PATH}}/x64/Release + if-no-files-found: warn + retention-days: 90 - - name: Upload Artifact with ABOVE_S20 - uses: actions/upload-artifact@v4 - with: - name: RebootS20 - path: ${{env.SOLUTION_FILE_PATH}}/x64/Release - if-no-files-found: warn - retention-days: 90 + - name: Build RebootS20 + working-directory: ${{env.GITHUB_WORKSPACE}} + run: msbuild ${{env.SOLUTION_FILE_PATH}} /p:AboveS20=TRUE /t:Clean,Build /p:Configuration=Release + + - name: Upload Artifact with ABOVE_S20 + uses: actions/upload-artifact@v4 + with: + name: RebootS20 + path: ${{env.SOLUTION_FILE_PATH}}/x64/Release + if-no-files-found: warn + retention-days: 90