[Reverse-engineering] [th04/th05] Bullet pattern types
uth05win TL note: "n-way all-around" means "ring"… yep, let's better
improve on the naming here, once again using established terminology
from Sparen's Danmaku Design Guide at
https://sparen.github.io/ph3tutorials/ddsga3.html
Since TH04 only supports rings *or* spreads *or* stacks, overloading
[delta] to store both spread angle and stack speed, that enum does
serve kind of a purpose in TH04. Unlike TH05, where it could be vastly
simplified to a bitfield with 4 flags: aim to player, randomize angle,
randomize speed, force single. Which could then actually create *more*
types of patterns than these uselessly defined 14 distinct types, all
of which can already be derived from the other values of the upcoming
template structure:
• Set [stack] to 1 if you don't want a stack
• Set [spread] to 1 if you don't want a spread
• Set [spread_delta_angle] to 0 to turn a N-way spread into a ring
Easy.
Part of P0075, funded by Myles and -Tom-.
2020-02-14 16:34:06 +00:00
|
|
|
BP_SINGLE = 000h
|
|
|
|
BP_SINGLE_AIMED = 001h
|
|
|
|
BP_RANDOM_ANGLE = 01Bh
|
|
|
|
BP_RANDOM_ANGLE_AND_SPEED = 01Ch
|
|
|
|
BP_RING = 026h
|
|
|
|
BP_RING_AIMED = 02Ch
|
|
|
|
BP_SPREAD = 02Dh
|
|
|
|
BP_SPREAD_RANDOM_ANGLE_AIMED = 01Dh
|
|
|
|
BP_SPREAD_AIMED = 02Eh
|
|
|
|
BP_STACK = 02Fh
|
|
|
|
BP_STACK_AIMED = 030h
|
|
|
|
BP_FORCESINGLE = 040h
|
|
|
|
BP_FORCESINGLE_RANDOM_ANGLE = 01Ah
|
|
|
|
BP_FORCESINGLE_AIMED = 041h
|
2020-02-16 16:54:04 +00:00
|
|
|
|
|
|
|
BST_GATHER_ONLY = 0
|
|
|
|
BST_PELLET = 1
|
|
|
|
BST_BULLET16 = 2
|
|
|
|
BST_GATHER_PELLET = 3
|
|
|
|
BST_BULLET16_CLOUD_FORWARDS = 4
|
|
|
|
BST_BULLET16_CLOUD_BACKWARDS = 5
|