From d75b38d457add27113b1d3d998c13252644a3544 Mon Sep 17 00:00:00 2001 From: louis Date: Sat, 1 Oct 2022 17:49:48 -0400 Subject: [PATCH 1/7] fix MQ forest --- .../GC_MQ_D/objects/object_mori_hineri1.xml | 1 + .../GC_MQ_D/objects/object_mori_hineri1a.xml | 1 + .../GC_MQ_D/objects/object_mori_hineri2.xml | 1 + .../GC_MQ_D/objects/object_mori_hineri2a.xml | 1 + .../GC_MQ_D/objects/object_mori_objects.xml | 1 + .../xml/GC_MQ_D/objects/object_mori_tex.xml | 29 +++++++++++++++++-- 6 files changed, 32 insertions(+), 2 deletions(-) diff --git a/soh/assets/xml/GC_MQ_D/objects/object_mori_hineri1.xml b/soh/assets/xml/GC_MQ_D/objects/object_mori_hineri1.xml index 517c02780..bb1b31e2f 100644 --- a/soh/assets/xml/GC_MQ_D/objects/object_mori_hineri1.xml +++ b/soh/assets/xml/GC_MQ_D/objects/object_mori_hineri1.xml @@ -1,4 +1,5 @@ + diff --git a/soh/assets/xml/GC_MQ_D/objects/object_mori_hineri1a.xml b/soh/assets/xml/GC_MQ_D/objects/object_mori_hineri1a.xml index fb20482dd..c750ce20d 100644 --- a/soh/assets/xml/GC_MQ_D/objects/object_mori_hineri1a.xml +++ b/soh/assets/xml/GC_MQ_D/objects/object_mori_hineri1a.xml @@ -1,4 +1,5 @@ + diff --git a/soh/assets/xml/GC_MQ_D/objects/object_mori_hineri2.xml b/soh/assets/xml/GC_MQ_D/objects/object_mori_hineri2.xml index a23d9060c..785b85857 100644 --- a/soh/assets/xml/GC_MQ_D/objects/object_mori_hineri2.xml +++ b/soh/assets/xml/GC_MQ_D/objects/object_mori_hineri2.xml @@ -1,4 +1,5 @@ + diff --git a/soh/assets/xml/GC_MQ_D/objects/object_mori_hineri2a.xml b/soh/assets/xml/GC_MQ_D/objects/object_mori_hineri2a.xml index 282fd267f..ad1bb4d5f 100644 --- a/soh/assets/xml/GC_MQ_D/objects/object_mori_hineri2a.xml +++ b/soh/assets/xml/GC_MQ_D/objects/object_mori_hineri2a.xml @@ -1,4 +1,5 @@ + diff --git a/soh/assets/xml/GC_MQ_D/objects/object_mori_objects.xml b/soh/assets/xml/GC_MQ_D/objects/object_mori_objects.xml index bef9686f5..58ea8c085 100644 --- a/soh/assets/xml/GC_MQ_D/objects/object_mori_objects.xml +++ b/soh/assets/xml/GC_MQ_D/objects/object_mori_objects.xml @@ -1,4 +1,5 @@ + diff --git a/soh/assets/xml/GC_MQ_D/objects/object_mori_tex.xml b/soh/assets/xml/GC_MQ_D/objects/object_mori_tex.xml index ad4ba38e3..b1a4b803c 100644 --- a/soh/assets/xml/GC_MQ_D/objects/object_mori_tex.xml +++ b/soh/assets/xml/GC_MQ_D/objects/object_mori_tex.xml @@ -1,5 +1,30 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + From 37ffc8b9c8758b2966284bf04a13a437cd5c45f8 Mon Sep 17 00:00:00 2001 From: Ada Date: Sun, 2 Oct 2022 00:10:13 +0100 Subject: [PATCH 2/7] Fixes Y-Axis inversion in C Up view --- soh/src/overlays/actors/ovl_player_actor/z_player.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soh/src/overlays/actors/ovl_player_actor/z_player.c b/soh/src/overlays/actors/ovl_player_actor/z_player.c index ed7ad12bf..d07384be3 100644 --- a/soh/src/overlays/actors/ovl_player_actor/z_player.c +++ b/soh/src/overlays/actors/ovl_player_actor/z_player.c @@ -11176,7 +11176,7 @@ s16 func_8084ABD8(GlobalContext* globalCtx, Player* this, s32 arg2, s16 arg3) { if (!func_8002DD78(this) && !func_808334B4(this) && (arg2 == 0)) { if (!CVar_GetS32("gDisableAutoCenterView", 0)) { - temp2 = sControlInput->rel.stick_y * 240.0f * (CVar_GetS32("gInvertYAxis", 1) ? -1 : 1); + temp2 = sControlInput->rel.stick_y * 240.0f * (CVar_GetS32("gInvertYAxis", 1) ? 1 : -1); Math_SmoothStepToS(&this->actor.focus.rot.x, temp2, 14, 4000, 30); temp2 = sControlInput->rel.stick_x * -16.0f * (CVar_GetS32("gInvertXAxis", 0) ? -1 : 1); From 6b6a352205327df3d7654253a77d5e1e7d1471e7 Mon Sep 17 00:00:00 2001 From: aMannus Date: Sun, 2 Oct 2022 20:32:05 +0200 Subject: [PATCH 3/7] Rando: Fix "Scrubsanity Off" using mysterious text (#1679) --- soh/soh/Enhancements/randomizer/randomizerTypes.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soh/soh/Enhancements/randomizer/randomizerTypes.h b/soh/soh/Enhancements/randomizer/randomizerTypes.h index d65fa21f7..bcac9e69e 100644 --- a/soh/soh/Enhancements/randomizer/randomizerTypes.h +++ b/soh/soh/Enhancements/randomizer/randomizerTypes.h @@ -1040,7 +1040,7 @@ typedef struct ScrubIdentity { RandomizerCheck randomizerCheck; GetItemID getItemId; int32_t itemPrice; - bool isShuffled; + uint8_t isShuffled; } ScrubIdentity; typedef struct ShopItemIdentity { From 2ad0b37fa5905bde8f492129b9db1320a4fdbc31 Mon Sep 17 00:00:00 2001 From: Garrett Cox Date: Mon, 3 Oct 2022 01:49:53 -0500 Subject: [PATCH 4/7] [#1675] Fix for business scrubs crashing on expensive scrub shuffle (#1676) --- soh/src/overlays/actors/ovl_En_Dns/z_en_dns.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soh/src/overlays/actors/ovl_En_Dns/z_en_dns.c b/soh/src/overlays/actors/ovl_En_Dns/z_en_dns.c index 5b6f097d0..419e443d0 100644 --- a/soh/src/overlays/actors/ovl_En_Dns/z_en_dns.c +++ b/soh/src/overlays/actors/ovl_En_Dns/z_en_dns.c @@ -172,7 +172,7 @@ void EnDns_Init(Actor* thisx, GlobalContext* globalCtx) { s16 respawnData = gSaveContext.respawn[RESPAWN_MODE_RETURN].data & ((1 << 8) - 1); this->scrubIdentity = Randomizer_IdentifyScrub(globalCtx->sceneNum, this->actor.params, respawnData); - if (Randomizer_GetSettingValue(RSK_SHUFFLE_SCRUBS) == 1 || Randomizer_GetSettingValue(RSK_SHUFFLE_SCRUBS) == 3 && this->scrubIdentity.itemPrice != -1) { + if ((Randomizer_GetSettingValue(RSK_SHUFFLE_SCRUBS) == 1 || Randomizer_GetSettingValue(RSK_SHUFFLE_SCRUBS) == 3) && this->scrubIdentity.itemPrice != -1) { this->dnsItemEntry->itemPrice = this->scrubIdentity.itemPrice; } From 02c0caff4fff3ab922e844ccd0fb875f163df2d7 Mon Sep 17 00:00:00 2001 From: Garrett Cox Date: Mon, 3 Oct 2022 01:50:19 -0500 Subject: [PATCH 5/7] [#1567] Fix merchant message table being generated before items were loaded from save (#1674) --- soh/src/overlays/gamestates/ovl_file_choose/z_file_choose.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soh/src/overlays/gamestates/ovl_file_choose/z_file_choose.c b/soh/src/overlays/gamestates/ovl_file_choose/z_file_choose.c index 2349dc5ef..4253318a9 100644 --- a/soh/src/overlays/gamestates/ovl_file_choose/z_file_choose.c +++ b/soh/src/overlays/gamestates/ovl_file_choose/z_file_choose.c @@ -1921,8 +1921,8 @@ void FileChoose_LoadGame(GameState* thisx) { Randomizer_LoadSettings(""); Randomizer_LoadHintLocations(""); - Randomizer_LoadMerchantMessages(""); Randomizer_LoadItemLocations("", true); + Randomizer_LoadMerchantMessages(""); gSaveContext.respawn[0].entranceIndex = -1; gSaveContext.respawnFlag = 0; From f1070a2e74716b3e475fc4e78a7edf3f7dac0aa2 Mon Sep 17 00:00:00 2001 From: th-2021 <90853655+th-2021@users.noreply.github.com> Date: Tue, 4 Oct 2022 01:13:29 +0200 Subject: [PATCH 6/7] set version in build.c from CmakeLists.txt version info (#1678) --- CMake/Packaging-2.cmake | 2 +- CMakeLists.txt | 9 ++++----- soh/CMakeLists.txt | 11 +++++++---- soh/macosx/{Info.plist => Info.plist.in} | 6 +++--- soh/src/boot/build.c | 4 ---- soh/src/boot/build.c.in | 5 +++++ 6 files changed, 20 insertions(+), 17 deletions(-) rename soh/macosx/{Info.plist => Info.plist.in} (88%) delete mode 100644 soh/src/boot/build.c create mode 100644 soh/src/boot/build.c.in diff --git a/CMake/Packaging-2.cmake b/CMake/Packaging-2.cmake index 2e1183190..c6e501c73 100644 --- a/CMake/Packaging-2.cmake +++ b/CMake/Packaging-2.cmake @@ -22,7 +22,7 @@ endif() if (CPACK_GENERATOR MATCHES "Bundle") set(CPACK_BUNDLE_NAME "soh") - set(CPACK_BUNDLE_PLIST "../soh/macosx/Info.plist") + set(CPACK_BUNDLE_PLIST "macosx/Info.plist") set(CPACK_BUNDLE_ICON "macosx/soh.icns") set(CPACK_BUNDLE_STARTUP_COMMAND "../soh/macosx/soh-macos.sh") set(CPACK_BUNDLE_APPLE_CERT_APP "-") diff --git a/CMakeLists.txt b/CMakeLists.txt index 436872372..db2ccbc0d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,11 +6,10 @@ set(CMAKE_CXX_STANDARD 20 CACHE STRING "The C++ standard to use") set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version" FORCE) -project(Ship C CXX) - -set(PROJECT_VERSION_MAJOR "4") -set(PROJECT_VERSION_MINOR "0") -set(PROJECT_VERSION_PATCH "1") +project(Ship LANGUAGES C CXX + VERSION 4.0.1) +set(PROJECT_BUILD_NAME "ZHORA BRAVO" CACHE STRING "") +set(PROJECT_TEAM "github.com/harbourmasters" CACHE STRING "") set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT soh) add_compile_options($<$:/MP>) diff --git a/soh/CMakeLists.txt b/soh/CMakeLists.txt index 7fbb80a73..372e64d80 100644 --- a/soh/CMakeLists.txt +++ b/soh/CMakeLists.txt @@ -95,6 +95,8 @@ set(PROJECT_NAME soh) ################################################################################ # Source groups ################################################################################ +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/src/boot/build.c.in ${CMAKE_BINARY_DIR}/build.c @ONLY) + set(Header_Files "resource.h" ) @@ -395,7 +397,7 @@ endif() set(Source_Files__src__boot "src/boot/assert.c" "src/boot/boot_main.c" - "src/boot/build.c" + "${CMAKE_BINARY_DIR}/build.c" "src/boot/idle.c" "src/boot/is_debug.c" "src/boot/logutils.c" @@ -2039,6 +2041,7 @@ find_program(CURL NAMES curl DOC "Path to the curl program. Used to download fi execute_process(COMMAND ${CURL} -sSfL https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt -o ${CMAKE_BINARY_DIR}/gamecontrollerdb.txt OUTPUT_VARIABLE RESULT) if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin") +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/macosx/Info.plist.in ${CMAKE_BINARY_DIR}/macosx/Info.plist @ONLY) INSTALL(FILES ${CMAKE_BINARY_DIR}/gamecontrollerdb.txt DESTINATION ../MacOS COMPONENT ship) elseif(NOT "${CMAKE_SYSTEM_NAME}" MATCHES "NintendoSwitch|CafeOS") INSTALL(FILES ${CMAKE_BINARY_DIR}/gamecontrollerdb.txt DESTINATION . COMPONENT ship) @@ -2057,8 +2060,8 @@ if(CMAKE_SYSTEM_NAME MATCHES "NintendoSwitch") nx_generate_nacp(Ship.nacp NAME "Ship of Harkinian" - AUTHOR "Harbour Masters" - VERSION "4.0.0" + AUTHOR "${PROJECT_TEAM}" + VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}" ) nx_create_nro(soh @@ -2075,7 +2078,7 @@ wut_create_rpx(${PROJECT_NAME}) wut_create_wuhb(${PROJECT_NAME} NAME "Ship of Harkinian" SHORTNAME "SoH" - AUTHOR "Harbour Masters" + AUTHOR "${PROJECT_TEAM}" ICON ${CMAKE_CURRENT_SOURCE_DIR}/icon.jpg ) diff --git a/soh/macosx/Info.plist b/soh/macosx/Info.plist.in similarity index 88% rename from soh/macosx/Info.plist rename to soh/macosx/Info.plist.in index 800d42eeb..b44948b36 100644 --- a/soh/macosx/Info.plist +++ b/soh/macosx/Info.plist.in @@ -9,7 +9,7 @@ CFBundleExecutable soh CFBundleGetInfoString - 4.0.1 + @CMAKE_PROJECT_VERSION@ CFBundleIconFile soh.icns CFBundleIdentifier @@ -22,11 +22,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 4.0.1 + @CMAKE_PROJECT_VERSION@ CFBundleSignature ZOoT CFBundleVersion - 4.0.1 + @CMAKE_PROJECT_VERSION@ NSHumanReadableCopyright Copyright 2022 HarbourMasters. LSMinimumSystemVersion diff --git a/soh/src/boot/build.c b/soh/src/boot/build.c deleted file mode 100644 index 0fb6d64ad..000000000 --- a/soh/src/boot/build.c +++ /dev/null @@ -1,4 +0,0 @@ -const char gBuildVersion[] = "ZHORA BRAVO (4.0.1)"; -const char gBuildTeam[] = "github.com/harbourmasters"; -const char gBuildDate[] = __DATE__ " " __TIME__; -const char gBuildMakeOption[] = ""; diff --git a/soh/src/boot/build.c.in b/soh/src/boot/build.c.in new file mode 100644 index 000000000..6bf50e39f --- /dev/null +++ b/soh/src/boot/build.c.in @@ -0,0 +1,5 @@ +const char gBuildVersion[] = "@PROJECT_BUILD_NAME@ (@CMAKE_PROJECT_VERSION_MAJOR@.@CMAKE_PROJECT_VERSION_MINOR@.@CMAKE_PROJECT_VERSION_PATCH@)"; +const char gBuildTeam[] = "@PROJECT_TEAM@"; +const char gBuildDate[] = __DATE__ " " __TIME__; +const char gBuildMakeOption[] = ""; + From 06e8a5af419fcd45610f9a260e0c1e6f298c4cd4 Mon Sep 17 00:00:00 2001 From: aMannus Date: Tue, 4 Oct 2022 02:50:05 +0200 Subject: [PATCH 7/7] Fix navi colors in cosmetics editor (#1684) * Fix navi colors in cosmetics editor * Fix navi description for props --- .../Enhancements/cosmetics/CosmeticsEditor.h | 4 +-- soh/src/code/z_actor.c | 26 ++++++++++++------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/soh/soh/Enhancements/cosmetics/CosmeticsEditor.h b/soh/soh/Enhancements/cosmetics/CosmeticsEditor.h index de650fccc..e3a63ca14 100644 --- a/soh/soh/Enhancements/cosmetics/CosmeticsEditor.h +++ b/soh/soh/Enhancements/cosmetics/CosmeticsEditor.h @@ -73,8 +73,8 @@ static CosmeticsColorIndividual Navi_Npc_Inner = { "Navi NPC (Primary)", "Inner static CosmeticsColorIndividual Navi_Npc_Outer = { "Navi NPC (Secondary)", "Outer color for Navi (when Navi fly around NPCs)", "gNavi_NPC_Outer", navi_npc_o_col, ImVec4(150, 150, 255, 255), false, false, false }; static CosmeticsColorIndividual Navi_Enemy_Inner = { "Navi Enemy (Primary)", "Inner color for Navi (when Navi fly around Enemies or Bosses)", "gNavi_Enemy_Inner", navi_enemy_i_col, ImVec4(255, 255, 0, 255), false, false, false }; static CosmeticsColorIndividual Navi_Enemy_Outer = { "Navi Enemy (Secondary)", "Outer color for Navi (when Navi fly around Enemies or Bosses)", "gNavi_Enemy_Outer", navi_enemy_o_col, ImVec4(220, 155, 0, 255), false, false, false }; -static CosmeticsColorIndividual Navi_Prop_Inner = { "Navi Enemy (Primary)", "Inner color for Navi (when Navi fly around props (signs etc))", "gNavi_Prop_Inner", navi_prop_i_col, ImVec4(0, 255, 0, 255), false, false, false }; -static CosmeticsColorIndividual Navi_Prop_Outer = { "Navi Enemy (Secondary)", "Outer color for Navi (when Navi fly around props (signs etc))", "gNavi_Prop_Outer", navi_prop_o_col, ImVec4(0, 255, 0, 255), false, false, false }; +static CosmeticsColorIndividual Navi_Prop_Inner = { "Navi Props (Primary)", "Inner color for Navi (when Navi fly around props (signs etc))", "gNavi_Prop_Inner", navi_prop_i_col, ImVec4(0, 255, 0, 255), false, false, false }; +static CosmeticsColorIndividual Navi_Prop_Outer = { "Navi Props (Secondary)", "Outer color for Navi (when Navi fly around props (signs etc))", "gNavi_Prop_Outer", navi_prop_o_col, ImVec4(0, 255, 0, 255), false, false, false }; //Keese static CosmeticsColorIndividual Keese1_prim = { "Fire Primary color", "Affects the primary color of the Fire itself of the Keese", "gKeese1_Ef_Prim", Keese1_primcol, ImVec4(255, 255, 100, 255), true, false, false }; diff --git a/soh/src/code/z_actor.c b/soh/src/code/z_actor.c index 1c87ed859..d3dbf9216 100644 --- a/soh/src/code/z_actor.c +++ b/soh/src/code/z_actor.c @@ -335,8 +335,10 @@ void func_8002BE98(TargetContext* targetCtx, s32 actorCategory, GlobalContext* g void func_8002BF60(TargetContext* targetCtx, Actor* actor, s32 actorCategory, GlobalContext* globalCtx) { NaviColor* naviColor = &sNaviColorList[actorCategory]; + Color_RGB8 customInnerNaviColor; + Color_RGB8 customOuterNaviColor; - if (CVar_GetS32("gUseNaviCol",0) != 1 ) { + if (!CVar_GetS32("gUseNaviCol",0)) { if (actorCategory == ACTORCAT_PLAYER) { naviColor->inner.r = 255; naviColor->inner.g = 255; naviColor->inner.b = 255; naviColor->outer.r = 0; naviColor->outer.g = 0; naviColor->outer.b = 255; @@ -355,21 +357,27 @@ void func_8002BF60(TargetContext* targetCtx, Actor* actor, s32 actorCategory, Gl } } else { if (actorCategory == ACTORCAT_PLAYER) { - naviColor->inner = CVar_GetRGBA("gNavi_Idle_Inner", naviColor->inner); - naviColor->outer = CVar_GetRGBA("gNavi_Idle_Outer", naviColor->outer); + customInnerNaviColor = CVar_GetRGB("gNavi_Idle_Inner", (Color_RGB8){ 0, 0, 0 }); + customOuterNaviColor = CVar_GetRGB("gNavi_Idle_Outer", (Color_RGB8){ 0, 0, 0 }); } if (actorCategory == ACTORCAT_NPC) { - naviColor->inner = CVar_GetRGBA("gNavi_NPC_Inner", naviColor->inner); - naviColor->outer = CVar_GetRGBA("gNavi_NPC_Outer", naviColor->outer); + customInnerNaviColor = CVar_GetRGB("gNavi_NPC_Inner", (Color_RGB8){ 0, 0, 0 }); + customOuterNaviColor = CVar_GetRGB("gNavi_NPC_Outer", (Color_RGB8){ 0, 0, 0 }); } if (actorCategory == ACTORCAT_BOSS || actorCategory == ACTORCAT_ENEMY) { - naviColor->inner = CVar_GetRGBA("gNavi_Enemy_Inner", naviColor->inner); - naviColor->outer = CVar_GetRGBA("gNavi_Enemy_Outer", naviColor->outer); + customInnerNaviColor = CVar_GetRGB("gNavi_Enemy_Inner", (Color_RGB8){ 0, 0, 0 }); + customOuterNaviColor = CVar_GetRGB("gNavi_Enemy_Outer", (Color_RGB8){ 0, 0, 0 }); } if (actorCategory == ACTORCAT_PROP) { - naviColor->inner = CVar_GetRGBA("gNavi_Prop_Inner", naviColor->inner); - naviColor->outer = CVar_GetRGBA("gNavi_Prop_Outer", naviColor->outer); + customInnerNaviColor = CVar_GetRGB("gNavi_Prop_Inner", (Color_RGB8){ 0, 0, 0 }); + customOuterNaviColor = CVar_GetRGB("gNavi_Prop_Outer", (Color_RGB8){ 0, 0, 0 }); } + naviColor->inner.r = customInnerNaviColor.r; + naviColor->inner.g = customInnerNaviColor.g; + naviColor->inner.b = customInnerNaviColor.b; + naviColor->outer.r = customOuterNaviColor.r; + naviColor->outer.g = customOuterNaviColor.g; + naviColor->outer.b = customOuterNaviColor.b; } targetCtx->naviRefPos.x = actor->focus.pos.x;