diff options
| author | Eblo <7004497+Eblo@users.noreply.github.com> | 2025-11-06 08:45:46 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-06 08:45:46 -0500 |
| commit | fefee554a733f06dc60272521c19fdc76fdcc702 (patch) | |
| tree | 5246b6778c7d8ca783bab37530e3504474640099 | |
| parent | 8c9e6dca046941bebcb5d68170c686388e2596dd (diff) | |
| parent | f45acdd794712fefa0fae0bca86dcac22e040f09 (diff) | |
Merge pull request #1321 from HarbourMasters/develop-mion
Merge develop-mion->develop
| -rw-r--r-- | CMake/logging.cmake | 20 | ||||
| -rw-r--r-- | CMakeLists.txt | 5 | ||||
| m--------- | libultraship | 0 | ||||
| -rw-r--r-- | mm/2s2h/BenPort.cpp | 7 | ||||
| -rw-r--r-- | mm/2s2h/Rando/ActorBehavior/EnSob1.cpp | 2 | ||||
| -rw-r--r-- | mm/src/code/z_actor.c | 2 | ||||
| -rw-r--r-- | mm/src/code/z_en_item00.c | 102 |
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; } } } |
