OoT-Randomizer icon indicating copy to clipboard operation
OoT-Randomizer copied to clipboard

Randomizer Arrow Toggle

Open Admentus64 opened this issue 1 year ago • 5 comments

New Arrow Toggle function for using the Fairy Bow with Adult Link. Ported over from the Majora's Mask Randomizer: https://github.com/ZoeyZolotova/mm-rando

Uses rewritten code files from MM Rando: https://github.com/ZoeyZolotova/mm-rando/blob/dev/assembly/c/ArrowCycle.c https://github.com/ZoeyZolotova/mm-rando/blob/dev/assembly/c/ArrowCycle.h https://github.com/ZoeyZolotova/mm-rando/blob/dev/assembly/c/ActorHelper.c https://github.com/ZoeyZolotova/mm-rando/blob/dev/assembly/c/ArrowCycle.h https://github.com/ZoeyZolotova/mm-rando/blob/dev/assembly/c/Reloc.c https://github.com/ZoeyZolotova/mm-rando/blob/dev/assembly/c/Reloc.h

Pull out the Fairy Bow in First Person View, draw the toggle by using the item button the Fairy Bow is mapped to and press R to toggle between arrow types, given you have those and the magic for it. Like it does in the Majora's Mask Randomizer.

Currently this feature is broken. It can cycle to the subsequent magic types fine on the first cycle (using each magic arrow type for the first time). After you switched back to the start of the cycle, only normal arrows and the last magic arrow type still works, which in this case prevents the Fire and Ice Arrows from working. Video is included below to showcase the concept and what's broken about it.

https://github.com/OoTRandomizer/OoT-Randomizer/assets/8747034/f9a210f9-508d-4b82-95f2-b05874c1c7d9

I would appreciate if someone could look at it and see what's wrong with it as I don't seem to be able to figure out how to quite solve this issue. I don't need to claim commit credits for this as I am more interested in seeing this fully work, so feel free to just copy the commit and claim it for yourself. It is certainly an awesome feature to have, even if the different magic arrow types are less useful than they are in the sequel Majora's Mask.

Not GUI elements have been added as of now (ex. checkbox to enable/disable this feature).

Admentus64 avatar Oct 17 '23 12:10 Admentus64

After you switched back to the start of the cycle, only normal arrows and the last magic arrow type still works,

That's not quite correct. They are still fire/ice arrows, or at least shooting a Deku Baba with a Fire Arrow without the effect drawing still lights it on fire and hitting a Tektite with an Ice Arrow without the effect still freezes it. (and if you start with a different arrow type the one that doesn't draw properly is different too)

flagrama avatar Oct 17 '23 16:10 flagrama

The OOTMM folks just added this on their side, and it works for multiple cycles. Main code is in packages/core/src/common/arrow_cycle.c). Commit that added OOT support is https://github.com/OoTMM/OoTMM/commit/7293aeb33fa5868fbaea1199d99920e80b0c4459.

mracsys avatar Oct 18 '23 02:10 mracsys

Thanks! I didn't realize. I take a look at that.

Admentus64 avatar Oct 18 '23 05:10 Admentus64

Something that just came up within OOTMM, which may matter here: arrow cycling when in archeries ends up in sword deletion, so you may want to make sure the cycling isn't possible in these scenarios

CelestialKitsune avatar Oct 23 '23 22:10 CelestialKitsune

I see. Thanks for the info.

But I think I already made an exception for those cases where the bow is set temporary on the B button. But I make sure to double-check it.

I got it working too. Turns out the OoT+MM Combo made me realize the error.

Admentus64 avatar Oct 23 '23 22:10 Admentus64