scawful / Oracle-of-Secrets

Custom Code for the Legend of Zelda: Oracle of Secrets ROM hack
11 stars 0 forks source link

Prevent spike floor damage while using Jump Feather #63

Closed scawful closed 4 months ago

scawful commented 4 months ago

This PR makes updates to the jump feather code and adds an additional hook inside of bank 07 TileDetect_MainHandler which prevents Link from taking damage while jumping over floor spikes by checking the wram value $29 which represents his Z recoil. This currently is a crude approach which requires a very close and precise jump, and if jumped at from too far away the player will still take damage while appearing in mid air. It might be better to use a different value, like Links absolute Z position for this.

Additionally, I found that the spike floor code actually differentiates based on the armor value you are wearing, but in the vanilla game all three armor values hit for the same damage (1 heart) so I've recreated this table in free space and assigned a lesser value to the best armor.

And a small change I made in the jump feather code itself was changing the jumping wram value $4D from 01 (the recoil "oh shit" animation) to 02 which is the ledge hop animation. It's a bit inconsistent as Links feet arent always facing outward and sometimes he is just standing in place while jumping, but the eventual goal is to make a custom jumping animation so I feel like this is fine for now.