Some location access fixes#5121
Conversation
f0543aa to
fb04796
Compare
Split out a few fixes I've made while working on HarbourMasters#5105
fb04796 to
6b8cbbe
Compare
Malkierian
left a comment
There was a problem hiding this comment.
The one other thing I saw is that a CanGetEnemyDrop() function exists in logic.cpp, and my thought was that it would be useful for GS locations, but considering it requires boomerang even for ED_CLOSE for gold skulltulas, I don't think it's finished, so ![]()
|
CanGetEnemyDrop globally returns true if range is less than or equal to MS jumpslash and you can kill the enemy. |
|
Then perhaps those cases should be removed from the gold skulltula flow to avoid confusion. I was looking directly at that rather than what came before XD. Not in this PR, though, probably. |
|
The enemy kill functions are not in anything close to a final state, I'm not even 100% is I want to handle gold skulls and other drops in the same function, it just doesn't matter until we get proper enemy logic. The logic for the catch-all was to not bother processing cases where the player can just pick the thing up without height or distance issues. A different style option would be to remove the shortest ranges and add a default to suppress a warning. |
Pepper0ni
left a comment
There was a problem hiding this comment.
Minor things I noticed, though none of them are blocking (maybe the shadow trick should be, but it's basically irrelevant as you need to do a hover to get that far backwards...)
soh/soh/Enhancements/randomizer/location_access/dungeons/ice_cavern.cpp
Outdated
Show resolved
Hide resolved
soh/soh/Enhancements/randomizer/location_access/dungeons/ice_cavern.cpp
Outdated
Show resolved
Hide resolved
soh/soh/Enhancements/randomizer/location_access/dungeons/jabujabus_belly.cpp
Show resolved
Hide resolved
| areaTable[RR_SHADOW_TEMPLE_MQ_B2_TO_B3_CORRIDOR] = Region("Shadow Temple MQ B2 to B3 Corridor", "Shadow Temple", {RA_SHADOW_TEMPLE}, NO_DAY_NIGHT_CYCLE, {}, {}, { | ||
| //Exits | ||
| Entrance(RR_SHADOW_TEMPLE_MQ_FIRST_BEAMOS, []{return logic->HasExplosives() && logic->SmallKeys(RR_SHADOW_TEMPLE, 2);}), | ||
| Entrance(RR_SHADOW_TEMPLE_MQ_FIRST_BEAMOS, []{return logic->SmallKeys(RR_SHADOW_TEMPLE, 2);}), |
There was a problem hiding this comment.
Good catch on this wall being 1 way collision, but there's a trick for moving through such walls (RT_VISIBLE_COLLISION).
I tend to forget this trick exists too, so it probably needs adding to a lot more places....
There was a problem hiding this comment.
Yes, doors runs into it a lot
Looks like it only applies to couple kak checks. In particular it refers to visible one way collision. But in this case the bombable wall is not visible when facing it from the wrong side
Split out a few fixes I've made while working on #5105
Build Artifacts