summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEblo <7004497+Eblo@users.noreply.github.com>2025-11-06 08:45:46 -0500
committerGitHub <noreply@github.com>2025-11-06 08:45:46 -0500
commitfefee554a733f06dc60272521c19fdc76fdcc702 (patch)
tree5246b6778c7d8ca783bab37530e3504474640099
parent8c9e6dca046941bebcb5d68170c686388e2596dd (diff)
parentf45acdd794712fefa0fae0bca86dcac22e040f09 (diff)
Merge pull request #1321 from HarbourMasters/develop-mion
Merge develop-mion->develop
-rw-r--r--CMake/logging.cmake20
-rw-r--r--CMakeLists.txt5
m---------libultraship0
-rw-r--r--mm/2s2h/BenPort.cpp7
-rw-r--r--mm/2s2h/Rando/ActorBehavior/EnSob1.cpp2
-rw-r--r--mm/src/code/z_actor.c2
-rw-r--r--mm/src/code/z_en_item00.c102
7 files changed, 82 insertions, 56 deletions
diff --git a/CMake/logging.cmake b/CMake/logging.cmake
new file mode 100644
index 000000000..12b201b53
--- /dev/null
+++ b/CMake/logging.cmake
@@ -0,0 +1,20 @@
+set(SPDLOG_LEVEL_TRACE 0)
+set(SPDLOG_LEVEL_DEBUG 1)
+set(SPDLOG_LEVEL_INFO 2)
+set(SPDLOG_LEVEL_WARN 3)
+set(SPDLOG_LEVEL_ERROR 4)
+set(SPDLOG_LEVEL_CRITICAL 5)
+set(SPDLOG_LEVEL_OFF 6)
+set(LOG_LEVELS "SPDLOG_LEVEL_TRACE;SPDLOG_LEVEL_DEBUG;SPDLOG_LEVEL_INFO;SPDLOG_LEVEL_WARN;SPDLOG_LEVEL_ERROR;SPDLOG_LEVEL_CRITICAL;SPDLOG_LEVEL_OFF")
+set(LOG_LEVEL SPDLOG_LEVEL_TRACE CACHE STRING "The spdlog level that prints will be logged out. Overridden to SPDLOG_LEVEL_ERROR on Release builds.")
+set_property(CACHE LOG_LEVEL PROPERTY STRINGS ${LOG_LEVELS})
+if(NOT LOG_LEVEL IN_LIST LOG_LEVELS)
+ message(FATAL_ERROR "LOG_LEVEL must be one of ${LOG_LEVELS}")
+endif()
+set(SPDLOG_ACTIVE_LEVEL ${${LOG_LEVEL}})
+set(LOG_LEVEL_GAME_PRINTS ${SPDLOG_LEVEL_OFF})
+
+add_compile_definitions(
+ LOG_LEVEL_GAME_PRINTS=${LOG_LEVEL_GAME_PRINTS}
+ SPDLOG_ACTIVE_LEVEL=${SPDLOG_ACTIVE_LEVEL}
+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9f2a9fbde..26f51c776 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,10 +5,11 @@ 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")
set(GAME_STR "MM")
-project(2s2h VERSION 3.0.0 LANGUAGES C CXX)
+project(2s2h VERSION 3.0.1 LANGUAGES C CXX)
include(CMake/2ship-cvars.cmake)
include(CMake/lus-cvars.cmake)
-set(PROJECT_BUILD_NAME "Mion Alfa" CACHE STRING "" FORCE)
+include(CMake/logging.cmake)
+set(PROJECT_BUILD_NAME "Mion Bravo" CACHE STRING "" FORCE)
set(PROJECT_TEAM "github.com/harbourmasters" CACHE STRING "" FORCE)
execute_process(
diff --git a/libultraship b/libultraship
-Subproject 5f4be9b6f5f74917c303ab8b66a0b2f4ef91613
+Subproject 5d498e780f25dc3c05804b0328db683121d96a2
diff --git a/mm/2s2h/BenPort.cpp b/mm/2s2h/BenPort.cpp
index 680334a1d..e23afc2a1 100644
--- a/mm/2s2h/BenPort.cpp
+++ b/mm/2s2h/BenPort.cpp
@@ -195,8 +195,13 @@ OTRGlobals::OTRGlobals() {
context->InitWindow(benFast3dWindow);
// Override LUS defaults
+#if (_DEBUG)
+ int defaultLogLevel = 0;
+#else
+ int defaultLogLevel = 2;
+#endif
Ship::Context::GetInstance()->GetLogger()->set_level(
- (spdlog::level::level_enum)CVarGetInteger("gDeveloperTools.LogLevel", 1));
+ (spdlog::level::level_enum)CVarGetInteger("gDeveloperTools.LogLevel", defaultLogLevel));
Ship::Context::GetInstance()->GetLogger()->set_pattern("[%H:%M:%S.%e] [%s:%#] [%l] %v");
auto overlay = context->GetInstance()->GetWindow()->GetGui()->GetGameOverlay();
diff --git a/mm/2s2h/Rando/ActorBehavior/EnSob1.cpp b/mm/2s2h/Rando/ActorBehavior/EnSob1.cpp
index c382457a7..050dc3c70 100644
--- a/mm/2s2h/Rando/ActorBehavior/EnSob1.cpp
+++ b/mm/2s2h/Rando/ActorBehavior/EnSob1.cpp
@@ -28,7 +28,7 @@ void Rando::ActorBehavior::InitEnSob1Behavior() {
});
COND_ID_HOOK(OnActorDraw, ACTOR_EN_OSSAN, IS_RANDO, [](Actor* actor) {
- if (RANDO_SAVE_CHECKS[RC_BOMB_SHOP_ITEM_01].shuffled) {
+ if (RANDO_SAVE_CHECKS[RC_BOMB_SHOP_ITEM_01].shuffled && actor->params == 2) { // Bomb Shop Owner
Matrix_Put(&sLeftHandMtxF);
EnSob1_DrawCustomItem(actor, gPlayState);
}
diff --git a/mm/src/code/z_actor.c b/mm/src/code/z_actor.c
index 00c473524..8c86e337e 100644
--- a/mm/src/code/z_actor.c
+++ b/mm/src/code/z_actor.c
@@ -3116,7 +3116,7 @@ void Actor_DrawLensActors(PlayState* play, s32 numLensActors, Actor** lensActors
POLY_XLU_DISP = gfx;
// BENTODO: Since actor masking is diabled for actors that would normally
// be "hidden", we are opting to just not render them at all
- if (play->roomCtx.curRoom.lensMode == LENS_MODE_HIDE_ACTORS) {
+ if (play->roomCtx.curRoom.lensMode == LENS_MODE_SHOW_ACTORS) {
Actor_Draw(play, *lensActor);
}
gfx = POLY_XLU_DISP;
diff --git a/mm/src/code/z_en_item00.c b/mm/src/code/z_en_item00.c
index 12233a36f..3af9d8133 100644
--- a/mm/src/code/z_en_item00.c
+++ b/mm/src/code/z_en_item00.c
@@ -918,9 +918,6 @@ s16 func_800A7650(s16 dropId) {
}
Actor* Item_DropCollectible(PlayState* play, Vec3f* spawnPos, u32 params) {
- if (!(GameInteractor_Should(VB_ENEMY_DROP_COLLECTIBLE, true, *spawnPos))) {
- return;
- }
s32 pad;
Actor* spawnedActor = NULL;
@@ -932,61 +929,64 @@ Actor* Item_DropCollectible(PlayState* play, Vec3f* spawnPos, u32 params) {
s32 paramFF = params & 0xFF;
s32 i;
- params &= 0x7FFF;
- newParamFF = params & 0xFF;
-
- if (paramFF == ITEM00_3_HEARTS) {
- for (i = 0; i < 3; i++) {
- spawnedActor = Item_DropCollectible(play, spawnPos, param7F00 | ITEM00_RECOVERY_HEART | param8000);
- }
- } else if (paramFF == ITEM00_MUSHROOM_CLOUD) {
- param7F00 >>= 8;
- if (!Flags_GetCollectible(play, param7F00)) {
- Actor_Spawn(&play->actorCtx, play, ACTOR_OBJ_KINOKO, spawnPos->x, spawnPos->y, spawnPos->z, 0, 0, 0,
- param7F00);
- }
- } else if (((paramFF == ITEM00_FLEXIBLE) || (newParamFF == ITEM00_BIG_FAIRY)) && (param10000 == 0)) {
+ if ((GameInteractor_Should(VB_ENEMY_DROP_COLLECTIBLE, true, *spawnPos))) {
+ params &= 0x7FFF;
newParamFF = params & 0xFF;
- if (newParamFF == ITEM00_FLEXIBLE) {
- spawnedActor = Actor_Spawn(&play->actorCtx, play, ACTOR_EN_ELF, spawnPos->x, spawnPos->y + 40.0f,
- spawnPos->z, 0, 0, 0, FAIRY_PARAMS(FAIRY_TYPE_2, true, param7F00 >> 8));
- if (!Flags_GetCollectible(play, (param7F00 >> 8) & 0x7F)) {
- SoundSource_PlaySfxAtFixedWorldPos(play, spawnPos, 40, NA_SE_EV_BUTTERFRY_TO_FAIRY);
+
+ if (paramFF == ITEM00_3_HEARTS) {
+ for (i = 0; i < 3; i++) {
+ spawnedActor = Item_DropCollectible(play, spawnPos, param7F00 | ITEM00_RECOVERY_HEART | param8000);
}
- } else {
- spawnedActor = Actor_Spawn(
- &play->actorCtx, play, ACTOR_EN_ELFORG, spawnPos->x, spawnPos->y + 40.0f, spawnPos->z, 0, 0, 0,
- STRAY_FAIRY_PARAMS((param7F00 >> 8) & 0x7F, STRAY_FAIRY_AREA_CLOCK_TOWN, STRAY_FAIRY_TYPE_COLLECTIBLE));
- if (param20000 == 0) {
+ } else if (paramFF == ITEM00_MUSHROOM_CLOUD) {
+ param7F00 >>= 8;
+ if (!Flags_GetCollectible(play, param7F00)) {
+ Actor_Spawn(&play->actorCtx, play, ACTOR_OBJ_KINOKO, spawnPos->x, spawnPos->y, spawnPos->z, 0, 0, 0,
+ param7F00);
+ }
+ } else if (((paramFF == ITEM00_FLEXIBLE) || (newParamFF == ITEM00_BIG_FAIRY)) && (param10000 == 0)) {
+ newParamFF = params & 0xFF;
+ if (newParamFF == ITEM00_FLEXIBLE) {
+ spawnedActor = Actor_Spawn(&play->actorCtx, play, ACTOR_EN_ELF, spawnPos->x, spawnPos->y + 40.0f,
+ spawnPos->z, 0, 0, 0, FAIRY_PARAMS(FAIRY_TYPE_2, true, param7F00 >> 8));
if (!Flags_GetCollectible(play, (param7F00 >> 8) & 0x7F)) {
SoundSource_PlaySfxAtFixedWorldPos(play, spawnPos, 40, NA_SE_EV_BUTTERFRY_TO_FAIRY);
}
- }
- }
- } else {
- if (param8000 == 0) {
- params = func_800A7650(newParamFF);
- }
- if ((s32)params != ITEM00_NO_DROP) {
- spawnedActor = Actor_Spawn(&play->actorCtx, play, ACTOR_EN_ITEM00, spawnPos->x, spawnPos->y, spawnPos->z, 0,
- 0, 0, (s32)params | param8000 | param7F00);
- if ((spawnedActor != NULL) && (param8000 == 0)) {
- if (param10000 == 0) {
- spawnedActor->velocity.y = 8.0f;
- } else {
- spawnedActor->velocity.y = -2.0f;
+ } else {
+ spawnedActor = Actor_Spawn(&play->actorCtx, play, ACTOR_EN_ELFORG, spawnPos->x, spawnPos->y + 40.0f,
+ spawnPos->z, 0, 0, 0,
+ STRAY_FAIRY_PARAMS((param7F00 >> 8) & 0x7F, STRAY_FAIRY_AREA_CLOCK_TOWN,
+ STRAY_FAIRY_TYPE_COLLECTIBLE));
+ if (param20000 == 0) {
+ if (!Flags_GetCollectible(play, (param7F00 >> 8) & 0x7F)) {
+ SoundSource_PlaySfxAtFixedWorldPos(play, spawnPos, 40, NA_SE_EV_BUTTERFRY_TO_FAIRY);
+ }
}
- spawnedActor->speed = 2.0f;
- spawnedActor->gravity = -0.9f;
- spawnedActor->world.rot.y = Rand_CenteredFloat(0x10000);
- Actor_SetScale(spawnedActor, 0.0f);
- ((EnItem00*)spawnedActor)->actionFunc = func_800A6780;
- ((EnItem00*)spawnedActor)->unk152 = 0xDC;
- if ((spawnedActor->params != ITEM00_SMALL_KEY) && (spawnedActor->params != ITEM00_HEART_PIECE) &&
- (spawnedActor->params != ITEM00_HEART_CONTAINER)) {
- spawnedActor->room = -1;
+ }
+ } else {
+ if (param8000 == 0) {
+ params = func_800A7650(newParamFF);
+ }
+ if ((s32)params != ITEM00_NO_DROP) {
+ spawnedActor = Actor_Spawn(&play->actorCtx, play, ACTOR_EN_ITEM00, spawnPos->x, spawnPos->y,
+ spawnPos->z, 0, 0, 0, (s32)params | param8000 | param7F00);
+ if ((spawnedActor != NULL) && (param8000 == 0)) {
+ if (param10000 == 0) {
+ spawnedActor->velocity.y = 8.0f;
+ } else {
+ spawnedActor->velocity.y = -2.0f;
+ }
+ spawnedActor->speed = 2.0f;
+ spawnedActor->gravity = -0.9f;
+ spawnedActor->world.rot.y = Rand_CenteredFloat(0x10000);
+ Actor_SetScale(spawnedActor, 0.0f);
+ ((EnItem00*)spawnedActor)->actionFunc = func_800A6780;
+ ((EnItem00*)spawnedActor)->unk152 = 0xDC;
+ if ((spawnedActor->params != ITEM00_SMALL_KEY) && (spawnedActor->params != ITEM00_HEART_PIECE) &&
+ (spawnedActor->params != ITEM00_HEART_CONTAINER)) {
+ spawnedActor->room = -1;
+ }
+ spawnedActor->flags |= 0x0010;
}
- spawnedActor->flags |= 0x0010;
}
}
}