diff options
| author | Caladius <Caladius@users.noreply.github.com> | 2025-10-30 11:49:39 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-30 11:49:39 -0400 |
| commit | c91588d8af126f68f032b65e552f6d8a029ded22 (patch) | |
| tree | 2f86291b5a742841967a710cd4dd130117f3a5bb /mm/2s2h/Rando/MiscBehavior/CheckQueue.cpp | |
| parent | 84f3aedf609b2795f3ba39612312a948be97fb8b (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.cpp | 21 |
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 = |
