summaryrefslogtreecommitdiff
path: root/mm/2s2h/Rando/MiscBehavior/CheckQueue.cpp
diff options
context:
space:
mode:
authorCaladius <Caladius@users.noreply.github.com>2025-10-30 11:49:39 -0400
committerGitHub <noreply@github.com>2025-10-30 11:49:39 -0400
commitc91588d8af126f68f032b65e552f6d8a029ded22 (patch)
tree2f86291b5a742841967a710cd4dd130117f3a5bb /mm/2s2h/Rando/MiscBehavior/CheckQueue.cpp
parent84f3aedf609b2795f3ba39612312a948be97fb8b (diff)
[Rando] Implement Traps (#1287)
* Initial Trap Implementation with 1 Trap Example. * New TrapTypes and Per Trap Custom Messages * Spruce up Menu and add placeholders for toggling traps * Reordering and clean up * Seeded Trap Models * Trap Type Opt-in * Add Jinx Trap * Add Enemy (Like Like) Trap * Fix Shop Item draws and convert for Progressive * Placeholder for Custom Model * Implemented time trap[Please Squash this] (#13) * Implemented time trap * Finished comment because im braindead today * Forgot to fix indentation(whoops) * Changed things not mess with the games code, added some more Time Trap messages * Removed a include I forgot to yoink from the base code. * Removed header define for VerifyTimeSkip * Clangit * Missed some leftovers from a merge conflict. * Clang format throwing a fit over a empty line * Added Timeskip CVar placeholder * Fixed issue where game crashes past midnight * Added Moonfall skipping prevention messures. * Added fallback loop to handle the remaining cycles in the event of a overflow. * Cleaner implementation * Keep it simple stupid * changed function name to be more accurate * Removed outdated comment, used TimeSkipInc for moonfall skip prevention * Reverted max trap(accidentally pushed it while testing) * Removed old unused value * Reduced the iteration by 1 to be closer to where it was at before. * Will this fix Windows? * Added TRAP_TIME to trapToCvarMap * Corrected typo on comment * Clangit...again * Added calls to load environment values and adjust the weather. * Update Time Trap and clean up code * Add Flash effect to Time Trap * Added a few more timeTrapMessages * I hate you clang format * Fix Trading Post Kick Out Time * Added map for all locations I can think of that close. * Clangit yet again * Removed Inn handling because the edge case related to it closing cannot happen * Corrected a whoopie I made when I was dealing with a conflict * Removed pointless condition check that is always true * Removed duped variable * Removed unnecessary data from SCENE_8ITEMSHO kickout entry * Removed now used TRADING_POS_ACTOR_PARAM --------- Co-authored-by: Caladius <clatini88@gmail.com> * Comment out Kick Out code for later TODO * Clean out commented code * Adds Wallet Trap and updates some tooltips * More Trap Messages * Even more trap messages * moooooore messages * update for clang * Feedback changes for Time Trap * Update Trap functions * Fix Matrix call * Trap Model Import (Thanks Zrc) * rename * Adjust size * update name for uniformity * Update mm/2s2h/Rando/MiscBehavior/Traps.cpp Co-authored-by: Eblo <7004497+Eblo@users.noreply.github.com> * Update mm/2s2h/Rando/MiscBehavior/Traps.cpp Co-authored-by: Eblo <7004497+Eblo@users.noreply.github.com> * feedback updates * Update notifications to remove color codes from trap messages when item skip is on * VBify Object Dependency * Fix comma * fix headers * Refactor ObjectDependency hook * Check if item get cutscenes are being skipped * Use brackets for LUS include * Header update --------- Co-authored-by: sitton76 <58642183+sitton76@users.noreply.github.com> Co-authored-by: Eblo <7004497+Eblo@users.noreply.github.com>
Diffstat (limited to 'mm/2s2h/Rando/MiscBehavior/CheckQueue.cpp')
-rw-r--r--mm/2s2h/Rando/MiscBehavior/CheckQueue.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/mm/2s2h/Rando/MiscBehavior/CheckQueue.cpp b/mm/2s2h/Rando/MiscBehavior/CheckQueue.cpp
index bef7eb663..9f372fe4f 100644
--- a/mm/2s2h/Rando/MiscBehavior/CheckQueue.cpp
+++ b/mm/2s2h/Rando/MiscBehavior/CheckQueue.cpp
@@ -1,13 +1,16 @@
#include "MiscBehavior.h"
+#include <libultraship/bridge/consolevariablebridge.h>
#include "2s2h/GameInteractor/GameInteractor.h"
#include "2s2h/CustomItem/CustomItem.h"
#include "2s2h/CustomMessage/CustomMessage.h"
#include "2s2h/BenGui/Notification.h"
#include "2s2h/Rando/StaticData/StaticData.h"
#include "2s2h/ShipUtils.h"
+#include "Traps.h"
extern "C" {
#include "variables.h"
+#include <functions.h>
extern TexturePtr gItemIcons[131];
extern s16 D_801CFF94[250];
}
@@ -58,10 +61,20 @@ void Rando::MiscBehavior::CheckQueue() {
randoItemId = RI_TRIFORCE_PIECE_PREVIOUS;
}
+ if (randoItemId == RI_TRAP) {
+ prefix = "";
+ message = GetTrapMessage();
+ // We need to remove the Color Codes if the player is skipping Item Get Cutscenes as the
+ // Notification Emit doesnt support it.
+ if (CVarGetInteger("gEnhancements.Cutscenes.SkipGetItemCutscenes", 0) >= 2) {
+ message = CustomMessage::RemoveColorCodes(message);
+ }
+ }
+
CustomMessage::Entry entry = {
.textboxType = 2,
.icon = Rando::StaticData::GetIconForZMessage(randoItemId),
- .msg = prefix + " " + message + "!",
+ .msg = (prefix == "" ? "" : prefix + " ") + message + (randoItemId == RI_TRAP ? "" : "!"),
};
if (CUSTOM_ITEM_FLAGS & CustomItem::GIVE_ITEM_CUTSCENE) {
@@ -88,7 +101,11 @@ void Rando::MiscBehavior::CheckQueue() {
// If the item has been given, the CUSTOM_ITEM_PARAM is set to the RI, prior to that it's the RC
if (CUSTOM_ITEM_FLAGS & CustomItem::CALLED_ACTION) {
- randoItemId = (RandoItemId)CUSTOM_ITEM_PARAM;
+ if ((RandoItemId)CUSTOM_ITEM_PARAM == RI_TRAP) {
+ randoItemId = RI_MAX_TRAP;
+ } else {
+ randoItemId = (RandoItemId)CUSTOM_ITEM_PARAM;
+ }
} else {
auto& randoSaveCheck = RANDO_SAVE_CHECKS[CUSTOM_ITEM_PARAM];
randoItemId =