You know that things are complicated when you have to resort to Unicode
box drawing character art to explain how two hitboxes relate to each
other. I *hope* this makes enough sense, and that I won't be rewriting
this in terms of ORB_W and ORB_H after all in the future. For now
though, it's immediately obvious when the hitbox reaches outside the
entity. In the case of YuugenMagan, it even simplifies the coordinates
so much that we don't need separate constants.
Part of P0205, funded by [Anonymous] and Yanga.
Then again, this more flexible architecture points towards SinGyoku's
male form potentially having had way more varied patterns earlier in
development… or planned, but never realized.
Part of P0202, funded by [Anonymous] and Yanga.
The one where SinGyoku's male form fires 3 sets of 10 aimed sling
pellets from random locations within its sprite.
Part of P0202, funded by [Anonymous] and Yanga.
Complete with callback function parameters that are completely ignored
by SinGyoku's female-form patterns. That's all the entity
synchronization code in this fight though?! Nice.
Part of P0202, funded by [Anonymous] and Yanga.
The one where SinGyoku slams their sphere form into Reimu and then
returns to not quite its base Y coordinate.
One big collidable object == technically a pattern, right?
(90 functions remaining in TH01!)
Completes P0201, funded by Ember2528 and Yanga.
The one where SinGyoku's sphere form sprays a half-circle of pellets
at static downwards angles, randomly selecting either a direction from
right to left or from left to right. First pattern you see in the
fight, and the only pellet pattern in phase 1.
Part of P0201, funded by Ember2528 and Yanga.
With 3 ZUN bugs, this one small function is technically buggier than
the entirety of Kikuri… or at least *as* buggy, with only two of them
being visible in the original game.
Oh well, that's 80% of REIIDEN.EXE RE'd!
Part of P0201, funded by Ember2528 and Yanga.
Functions with 12 parameters are hard to describe, y'know. Looking
forward to decompiling these giant expressions for the actual
boss↔orb collision parameter passed to this function…
Oh well, at least we're now totally ready for some boss code next
year. 😌
Completes P0131, funded by Yanga.
And once again, SinGyoku is the only boss to get its own variable.
Maybe this means that it was the first boss to be implemented after
all?
Part of P0131, funded by Yanga.
And we're right back to things not being nice. Because yeah, why
shouldn't these three distinct rendering functions be part of a single
function, selected by magic numbers?
Or why shouldn't the 16×16 wrapper around a 32×32 set of graphics
functions be used to handle backgrounds for 16×8 sprites, resulting in
needlessly complex parameter calculations that lead to sloppy code?
Part of P0131, funded by Yanga.
And with that, TH01 is pushed over the 50% completion mark! 🎉
This time, it's only YuugenMagan who gets no own copy. Giant RE% gains
from all these calls, but let's hope I don't regret already decompiling
this one for all bosses. It's not quite at the beginning of SinGyoku's,
Mima's, and Elis' code segment, after all…
Part of P0130, funded by Yanga.