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.
The .PTN functions, vector functions, and egc_copy_rect_1_to_0_1()
(finally!) from TH01, as well as playfld.hpp from all games(finally!),
together with a bunch of other functions in their vicinity.
Part of P0201, funded by Ember2528 and Yanga.
Nobody cares about preserving perfect semantics across a macro whose
only job is to worsen code generation on one specific compiler. And
even aside from semantics, signedness would be the only difference that
types would make, and parameter passing couldn't care less about it.
Part of P0201, funded by Ember2528 and Yanga.
Noooo, SinGyoku will in fact prove the existence of this getter method
via the given code generation detail. Might as well go fully consistent
then and exclusively use the methods, ending the previous party time.
Part of P0201, funded by Ember2528 and Yanga.
The one where Kikuri' souls fire symmetric 3-line rain pellets at a
much longer interval than ZUN intended, thanks to him once again
confusing > and >=.
Part of P0199, funded by Lmocinemod.
The one where Kikuri fires 6 lasers from her left eye, 30 frames apart,
and randomly aimed within a 120-pixel range around the player.
Part of P0199, funded by Lmocinemod.
The one where Kikuri fires a 4-spiral along the edge of the disc… or
something to that effect. Not that much code, but still quite a chaotic
pattern, especially on higher difficulties.
Part of P0199, funded by Lmocinemod.
The one where Kikuri's souls fire single aimed pellets every 200
frames. Barely even noticeable as a distinct pattern due to the 4
other, much more complex patterns in phase 6 that run simultaneously.
Part of P0199, funded by Lmocinemod.
The one where Kikuri fires two red lasers from her eyes every 200
frames. They're aimed to the respective opposite direction around the
player, crossing each other on the way there.
Part of P0199, funded by Lmocinemod.
The one where Kikuri's souls move on a diagonal line and drop tears.
Almost wouldn't have called this one a pattern, but the ripples can
kill the player, after all.
Part of P0199, funded by Lmocinemod.
The one where Kikuri's souls fire spread pellet groups every 80 frames.
Pretty much Kikuri's counterpart to Elis' pattern_bat_slow_spreads(),
as it's also aimed on every difficulty except Lunatic.
Part of P0199, funded by Lmocinemod.
The one where Kikuri fires small spinning 8-pellet circles from her
ball of light, aimed to the player. The only pattern in the entire game
that uses the "spin pellet" type, forcing two additional parameters
onto every other single-pellet spawn call. (Luckily, C++ has default
arguments!)
Part of P0199, funded by Lmocinemod.
The infamous first pattern of the fight, where Kikuri fires an
uninterrupted symmetric spiral of pellets for 800 frames.
(Coincidentally, TH01 has also reached the 80% RE mark with this one!)
Part of P0199, funded by Lmocinemod.
Could have also been EGC-accelerated, but who cares, it's only used for
the blocking entrance animation.
Completes P0198, funded by Lmocinemod and Ember2528.
The worst case of an `else if` chain so far. Perfectly regular if you
abstract away the per-sprite calculations, yet still hopelessly
hardcoded… and broken anyway, especially together with the collision
detection from the previous commit.
Part of P0198, funded by Lmocinemod and Ember2528.
ZUN *did* want a hitbox in the disc's horizontally centered upper half,
but then confused < and >, accidentally ending up with a hitbox from
the top of the playfield to the upper part of Kikuri's face instead… 🎺
Part of P0198, funded by Lmocinemod and Ember2528.
Not too useful for Elis since she's already got the form system, but
it will save a bit of boilerplate code for Kikuri.
Part of P0198, funded by Lmocinemod and Ember2528.
The .BOS freeing funtions, others that are close to them in the typical
#include order, and the ending picture functions.
Part of P0198, funded by Lmocinemod and Ember2528.
Brought to you by diagonal movement and the combined effect of 4 ZUN
bugs. Most commonly reported for Elis and Mima.
Part of P0197, funded by Yanga and Ember2528.