mirror of https://github.com/nmlgc/ReC98.git
[Reverse-engineering] [th04/th05] Bullet-related sprite IDs
IDs based on Maribel Hearn's jargon page (https://maribelhearn.com/jargon) as well as Sparen's Danmaku Design Guide (https://sparen.github.io/ph3tutorials/ddsga1.html#sub2). Part of P0074, funded by Myles.
This commit is contained in:
parent
d6f356da45
commit
eb0cf6820f
|
@ -2,8 +2,8 @@
|
||||||
/// ----------------
|
/// ----------------
|
||||||
#pragma option -b-
|
#pragma option -b-
|
||||||
|
|
||||||
#define BSS_CLOUD_FRAMES 16
|
#define BSS_CLOUD_FRAMES (BULLET_CLOUD_CELS * 4)
|
||||||
#define BMS_DECAY_FRAMES 16
|
#define BMS_DECAY_FRAMES (BULLET_DECAY_CELS * 4)
|
||||||
#define BMS_SLOWDOWN_BASE_SPEED 4.5f
|
#define BMS_SLOWDOWN_BASE_SPEED 4.5f
|
||||||
#define BMS_SLOWDOWN_FRAMES 32
|
#define BMS_SLOWDOWN_FRAMES 32
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
/// Animation frame counts
|
||||||
|
/// ----------------------
|
||||||
|
#define BULLET_CLOUD_CELS 4
|
||||||
|
#define BULLET_DECAY_CELS 4
|
||||||
|
|
||||||
|
// Directional bullets with one axis of symmetry; sprites cover 180 degrees
|
||||||
|
#define BULLET_D_CELS 16
|
||||||
|
// Vector bullets with no axis of symmetry; sprites cover all 360 degrees
|
||||||
|
#define BULLET_V_CELS 32
|
||||||
|
/// ----------------------
|
|
@ -0,0 +1,4 @@
|
||||||
|
BULLET_CLOUD_CELS = 4
|
||||||
|
BULLET_DECAY_CELS = 4
|
||||||
|
BULLET_D_CELS = 16
|
||||||
|
BULLET_V_CELS = 32
|
|
@ -1,14 +1,48 @@
|
||||||
|
#include "th04/sprites/cels.h"
|
||||||
|
|
||||||
/// Stage-independent pattern numbers for the super_*() functions
|
/// Stage-independent pattern numbers for the super_*() functions
|
||||||
/// -------------------------------------------------------------
|
/// -------------------------------------------------------------
|
||||||
/// Since super_entry_bfnt() doesn't take a "start patnum" parameter, the
|
/// Since super_entry_bfnt() doesn't take a "start patnum" parameter, the
|
||||||
/// order in which the files are loaded has to match the order here.
|
/// order in which the files are loaded has to match the order here.
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
// miko32.bft
|
||||||
|
// ----------
|
||||||
|
PAT_CLOUD_BULLET16_BLUE = 20,
|
||||||
|
PAT_CLOUD_BULLET16_BLUE_last = (PAT_CLOUD_BULLET16_BLUE + BULLET_CLOUD_CELS - 1),
|
||||||
|
PAT_CLOUD_BULLET16_RED,
|
||||||
|
// ----------
|
||||||
// miko16.bft
|
// miko16.bft
|
||||||
// ----------
|
// ----------
|
||||||
PAT_OPTION_REIMU = 38,
|
PAT_OPTION_REIMU = 38,
|
||||||
PAT_OPTION_MARISA,
|
PAT_OPTION_MARISA,
|
||||||
PAT_ITEM = 44,
|
PAT_ITEM = 44,
|
||||||
|
|
||||||
|
PAT_BULLET16_N_OUTLINED_BALL_WHITE = 52,
|
||||||
|
PAT_BULLET16_N_OUTLINED_BALL_RED,
|
||||||
|
PAT_BULLET16_N_OUTLINED_BALL_GREEN,
|
||||||
|
PAT_BULLET16_N_OUTLINED_BALL_BLUE,
|
||||||
|
PAT_BULLET16_N_STAR,
|
||||||
|
PAT_BULLET16_N_BALL_BLUE,
|
||||||
|
PAT_BULLET16_N_SMALL_BALL_YELLOW,
|
||||||
|
PAT_BULLET16_N_CROSS_YELLOW,
|
||||||
|
PAT_BULLET16_N_SMALL_BALL_RED,
|
||||||
|
PAT_BULLET16_N_BALL_RED,
|
||||||
|
PAT_BULLET16_N_HEART_BALL_RED,
|
||||||
|
|
||||||
PAT_EXPLOSION_SMALL = 68,
|
PAT_EXPLOSION_SMALL = 68,
|
||||||
|
|
||||||
|
PAT_BULLET_KILL = 72,
|
||||||
|
PAT_BULLET_KILL_last = (PAT_BULLET_KILL + BULLET_DECAY_CELS - 1),
|
||||||
|
PAT_BULLET16_D,
|
||||||
|
PAT_BULLET16_D_BLUE = PAT_BULLET16_D,
|
||||||
|
PAT_BULLET16_D_BLUE_last = (PAT_BULLET16_D_BLUE + BULLET_D_CELS - 1),
|
||||||
|
PAT_BULLET16_D_YELLOW, // Purple during the EX-Alice battle
|
||||||
|
PAT_BULLET16_D_YELLOW_last = (PAT_BULLET16_D_YELLOW + BULLET_D_CELS - 1),
|
||||||
|
|
||||||
|
PAT_DECAY_PELLET,
|
||||||
|
PAT_DECAY_PELLET_last = (PAT_DECAY_PELLET + BULLET_DECAY_CELS - 1),
|
||||||
|
PAT_DECAY_BULLET16,
|
||||||
|
PAT_DECAY_BULLET16_last = (PAT_DECAY_BULLET16 + BULLET_DECAY_CELS - 1),
|
||||||
// ----------
|
// ----------
|
||||||
} main_patnum_t;
|
} main_patnum_t;
|
||||||
/// -------------------------------------------------------------
|
/// -------------------------------------------------------------
|
||||||
|
|
|
@ -1,4 +1,25 @@
|
||||||
|
include th04/sprites/cels.inc
|
||||||
|
|
||||||
|
PAT_CLOUD_BULLET16_BLUE = 20
|
||||||
|
PAT_CLOUD_BULLET16_RED = 24
|
||||||
PAT_OPTION_REIMU = 38
|
PAT_OPTION_REIMU = 38
|
||||||
PAT_OPTION_MARISA = 39
|
PAT_OPTION_MARISA = 39
|
||||||
PAT_ITEM = 44
|
PAT_ITEM = 44
|
||||||
|
PAT_BULLET16_N_OUTLINED_BALL_WHITE = 52
|
||||||
|
PAT_BULLET16_N_OUTLINED_BALL_RED = 53
|
||||||
|
PAT_BULLET16_N_OUTLINED_BALL_GREEN = 54
|
||||||
|
PAT_BULLET16_N_OUTLINED_BALL_BLUE = 55
|
||||||
|
PAT_BULLET16_N_STAR = 56
|
||||||
|
PAT_BULLET16_N_BALL_BLUE = 57
|
||||||
|
PAT_BULLET16_N_SMALL_BALL_YELLOW = 58
|
||||||
|
PAT_BULLET16_N_CROSS_YELLOW = 59
|
||||||
|
PAT_BULLET16_N_SMALL_BALL_RED = 60
|
||||||
|
PAT_BULLET16_N_BALL_RED = 61
|
||||||
|
PAT_BULLET16_N_HEART_BALL_RED = 62
|
||||||
PAT_EXPLOSION_SMALL = 68
|
PAT_EXPLOSION_SMALL = 68
|
||||||
|
PAT_BULLET_KILL = 72
|
||||||
|
PAT_BULLET16_D = 76
|
||||||
|
PAT_BULLET16_D_BLUE = PAT_BULLET16_D
|
||||||
|
PAT_BULLET16_D_YELLOW = 92
|
||||||
|
PAT_DECAY_PELLET = 108
|
||||||
|
PAT_DECAY_BULLET16 = 112
|
||||||
|
|
|
@ -14116,32 +14116,32 @@ loc_12D24:
|
||||||
cmp [si+bullet_t.pos.cur.x], (PLAYFIELD_W shl 4)
|
cmp [si+bullet_t.pos.cur.x], (PLAYFIELD_W shl 4)
|
||||||
jge short @@sprite_bullet_next
|
jge short @@sprite_bullet_next
|
||||||
mov ax, [si+bullet_t.BULLET_patnum]
|
mov ax, [si+bullet_t.BULLET_patnum]
|
||||||
cmp ax, 54
|
cmp ax, PAT_BULLET16_N_OUTLINED_BALL_GREEN
|
||||||
jz short loc_12D50
|
jz short loc_12D50
|
||||||
cmp ax, 55
|
cmp ax, PAT_BULLET16_N_OUTLINED_BALL_BLUE
|
||||||
jz short loc_12D50
|
jz short loc_12D50
|
||||||
cmp ax, 57
|
cmp ax, PAT_BULLET16_N_BALL_BLUE
|
||||||
jnz short loc_12D57
|
jnz short loc_12D57
|
||||||
|
|
||||||
loc_12D50:
|
loc_12D50:
|
||||||
mov [bp+@@patnum], 19
|
mov [bp+@@patnum], (PAT_CLOUD_BULLET16_BLUE - 1)
|
||||||
jmp short loc_12D5C
|
jmp short loc_12D5C
|
||||||
; ---------------------------------------------------------------------------
|
; ---------------------------------------------------------------------------
|
||||||
|
|
||||||
loc_12D57:
|
loc_12D57:
|
||||||
mov [bp+@@patnum], 23
|
mov [bp+@@patnum], (PAT_CLOUD_BULLET16_RED - 1)
|
||||||
|
|
||||||
loc_12D5C:
|
loc_12D5C:
|
||||||
cmp [si+bullet_t.BULLET_patnum], 76
|
cmp [si+bullet_t.BULLET_patnum], PAT_BULLET16_D_BLUE
|
||||||
jl short loc_12D6D
|
jl short loc_12D6D
|
||||||
cmp [si+bullet_t.BULLET_patnum], 92
|
cmp [si+bullet_t.BULLET_patnum], PAT_BULLET16_D_YELLOW
|
||||||
jge short loc_12D6D
|
jge short loc_12D6D
|
||||||
mov [bp+@@patnum], 19
|
mov [bp+@@patnum], (PAT_CLOUD_BULLET16_BLUE - 1)
|
||||||
|
|
||||||
loc_12D6D:
|
loc_12D6D:
|
||||||
mov al, [si+bullet_t.spawn_state]
|
mov al, [si+bullet_t.spawn_state]
|
||||||
mov ah, 0
|
mov ah, 0
|
||||||
mov bx, 4
|
mov bx, (BSS_CLOUD_FRAMES / BULLET_CLOUD_CELS)
|
||||||
cwd
|
cwd
|
||||||
idiv bx
|
idiv bx
|
||||||
add [bp+@@patnum], ax
|
add [bp+@@patnum], ax
|
||||||
|
@ -31041,7 +31041,7 @@ bullet_update_special endp
|
||||||
public BULLETS_UPDATE
|
public BULLETS_UPDATE
|
||||||
bullets_update proc far
|
bullets_update proc far
|
||||||
|
|
||||||
var_9 = byte ptr -9
|
@@patnum = byte ptr -9
|
||||||
var_8 = word ptr -8
|
var_8 = word ptr -8
|
||||||
var_6 = word ptr -6
|
var_6 = word ptr -6
|
||||||
var_4 = word ptr -4
|
var_4 = word ptr -4
|
||||||
|
@ -31079,12 +31079,12 @@ loc_1C8FE:
|
||||||
mov [si+bullet_t.move_state], BMS_DECAY
|
mov [si+bullet_t.move_state], BMS_DECAY
|
||||||
cmp di, BULLET16_COUNT
|
cmp di, BULLET16_COUNT
|
||||||
jge short loc_1C91D
|
jge short loc_1C91D
|
||||||
mov ax, 112
|
mov ax, PAT_DECAY_BULLET16
|
||||||
jmp short loc_1C920
|
jmp short loc_1C920
|
||||||
; ---------------------------------------------------------------------------
|
; ---------------------------------------------------------------------------
|
||||||
|
|
||||||
loc_1C91D:
|
loc_1C91D:
|
||||||
mov ax, 108
|
mov ax, PAT_DECAY_PELLET
|
||||||
|
|
||||||
loc_1C920:
|
loc_1C920:
|
||||||
mov [si+bullet_t.BULLET_patnum], ax
|
mov [si+bullet_t.BULLET_patnum], ax
|
||||||
|
@ -31112,7 +31112,7 @@ loc_1C939:
|
||||||
loc_1C94F:
|
loc_1C94F:
|
||||||
mov al, [si+bullet_t.move_state]
|
mov al, [si+bullet_t.move_state]
|
||||||
mov ah, 0
|
mov ah, 0
|
||||||
mov bx, 4
|
mov bx, (BMS_DECAY_FRAMES / BULLET_DECAY_CELS)
|
||||||
cwd
|
cwd
|
||||||
idiv bx
|
idiv bx
|
||||||
or dx, dx
|
or dx, dx
|
||||||
|
@ -31319,11 +31319,11 @@ loc_1CB3B:
|
||||||
loc_1CB44:
|
loc_1CB44:
|
||||||
mov al, _bullet_clear_trigger
|
mov al, _bullet_clear_trigger
|
||||||
mov ah, 0
|
mov ah, 0
|
||||||
mov bx, 4
|
mov bx, BULLET_DECAY_CELS
|
||||||
cwd
|
cwd
|
||||||
idiv bx
|
idiv bx
|
||||||
add al, 48h ; 'H'
|
add al, PAT_BULLET_KILL
|
||||||
mov [bp+var_9], al
|
mov [bp+@@patnum], al
|
||||||
mov [bp+var_4], 1
|
mov [bp+var_4], 1
|
||||||
mov [bp+var_6], 1
|
mov [bp+var_6], 1
|
||||||
mov al, _rank
|
mov al, _rank
|
||||||
|
@ -31360,9 +31360,9 @@ loc_1CB91:
|
||||||
mov [si+bullet_t.pos.velocity.y], 0
|
mov [si+bullet_t.pos.velocity.y], 0
|
||||||
lea ax, [si+bullet_t.pos]
|
lea ax, [si+bullet_t.pos]
|
||||||
call _motion_update_2 pascal, ax
|
call _motion_update_2 pascal, ax
|
||||||
cmp [bp+var_9], 76
|
cmp [bp+@@patnum], PAT_BULLET16_D
|
||||||
jnb short loc_1CBB7
|
jnb short loc_1CBB7
|
||||||
mov al, [bp+var_9]
|
mov al, [bp+@@patnum]
|
||||||
mov ah, 0
|
mov ah, 0
|
||||||
mov [si+bullet_t.BULLET_patnum], ax
|
mov [si+bullet_t.BULLET_patnum], ax
|
||||||
jmp short loc_1CBED
|
jmp short loc_1CBED
|
||||||
|
@ -31402,7 +31402,7 @@ loc_1CBF1:
|
||||||
|
|
||||||
loc_1CC0A:
|
loc_1CC0A:
|
||||||
inc _bullet_clear_trigger
|
inc _bullet_clear_trigger
|
||||||
cmp [bp+var_9], 4Ch ; 'L'
|
cmp [bp+@@patnum], PAT_BULLET16_D
|
||||||
jb short loc_1CC19
|
jb short loc_1CC19
|
||||||
mov _bullet_clear_trigger, 0
|
mov _bullet_clear_trigger, 0
|
||||||
|
|
||||||
|
@ -32554,7 +32554,7 @@ loc_1D33C:
|
||||||
push di
|
push di
|
||||||
call sub_1CFC8
|
call sub_1CFC8
|
||||||
mov [bp+var_4], al
|
mov [bp+var_4], al
|
||||||
cmp byte_266E3, 4Ch ; 'L'
|
cmp byte_266E3, PAT_BULLET16_D
|
||||||
jb short loc_1D391
|
jb short loc_1D391
|
||||||
push word_2D008
|
push word_2D008
|
||||||
call sub_1D218
|
call sub_1D218
|
||||||
|
@ -32665,7 +32665,7 @@ loc_1D40A:
|
||||||
push di
|
push di
|
||||||
call sub_1CFC8
|
call sub_1CFC8
|
||||||
mov [bp+var_3], al
|
mov [bp+var_3], al
|
||||||
cmp byte_266E3, 4Ch ; 'L'
|
cmp byte_266E3, PAT_BULLET16_D
|
||||||
jb short loc_1D460
|
jb short loc_1D460
|
||||||
push word_2D008
|
push word_2D008
|
||||||
call sub_1D218
|
call sub_1D218
|
||||||
|
|
|
@ -1,8 +1,16 @@
|
||||||
|
#include "th04/sprites/cels.h"
|
||||||
|
|
||||||
/// Stage-independent pattern numbers for the super_*() functions
|
/// Stage-independent pattern numbers for the super_*() functions
|
||||||
/// -------------------------------------------------------------
|
/// -------------------------------------------------------------
|
||||||
/// Since super_entry_bfnt() doesn't take a "start patnum" parameter, the
|
/// Since super_entry_bfnt() doesn't take a "start patnum" parameter, the
|
||||||
/// order in which the files are loaded has to match the order here.
|
/// order in which the files are loaded has to match the order here.
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
// miko32.bft
|
||||||
|
// ----------
|
||||||
|
PAT_CLOUD_BULLET16_BLUE = 12,
|
||||||
|
PAT_CLOUD_BULLET16_BLUE_last = (PAT_CLOUD_BULLET16_BLUE + BULLET_CLOUD_CELS - 1),
|
||||||
|
PAT_CLOUD_BULLET16_RED,
|
||||||
|
// ----------
|
||||||
// reimu16.bft / mari16.bft / mima16.bft / yuka16.bft
|
// reimu16.bft / mari16.bft / mima16.bft / yuka16.bft
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
PAT_SHOT_SUB = 22,
|
PAT_SHOT_SUB = 22,
|
||||||
|
@ -11,7 +19,43 @@ typedef enum {
|
||||||
// miko16.bft
|
// miko16.bft
|
||||||
// ----------
|
// ----------
|
||||||
PAT_ITEM = 36,
|
PAT_ITEM = 36,
|
||||||
PAT_EXPLOSION_SMALL = 164,
|
|
||||||
|
// Non-directional bullets
|
||||||
|
PAT_BULLET16_N_BLUE = 44,
|
||||||
|
PAT_BULLET16_N_BALL_BLUE = PAT_BULLET16_N_BLUE,
|
||||||
|
PAT_BULLET16_N_OUTLINED_BALL_BLUE,
|
||||||
|
PAT_BULLET16_N_SMALL_BALL_BLUE,
|
||||||
|
PAT_BULLET16_N_CROSS_BLUE, // Green during the EX-Alice battle
|
||||||
|
PAT_BULLET16_N_RED,
|
||||||
|
PAT_BULLET16_N_BALL_RED = PAT_BULLET16_N_RED,
|
||||||
|
PAT_BULLET16_N_OUTLINED_BALL_RED,
|
||||||
|
PAT_BULLET16_N_SMALL_BALL_RED,
|
||||||
|
PAT_BULLET16_N_STAR,
|
||||||
|
|
||||||
|
// Directional bullets
|
||||||
|
PAT_BULLET16_D,
|
||||||
|
PAT_BULLET16_D_BLUE = PAT_BULLET16_D,
|
||||||
|
PAT_BULLET16_D_BLUE_last = (PAT_BULLET16_D_BLUE + BULLET_D_CELS - 1),
|
||||||
|
PAT_BULLET16_D_GREEN, // Purple during the EX-Alice battle
|
||||||
|
PAT_BULLET16_D_GREEN_last = (PAT_BULLET16_D_GREEN + BULLET_D_CELS - 1),
|
||||||
|
// Vector bullets
|
||||||
|
PAT_BULLET16_V,
|
||||||
|
PAT_BULLET16_V_RED = PAT_BULLET16_V,
|
||||||
|
PAT_BULLET16_V_RED_last = (PAT_BULLET16_V_RED + BULLET_V_CELS - 1),
|
||||||
|
PAT_BULLET16_V_BLUE, // Yellow during the EX-Alice battle
|
||||||
|
PAT_BULLET16_V_BLUE_last = (PAT_BULLET16_V_BLUE + BULLET_V_CELS - 1),
|
||||||
|
|
||||||
|
PAT_CLOUD_PELLET,
|
||||||
|
PAT_CLOUD_PELLET_last = (PAT_CLOUD_PELLET + BULLET_CLOUD_CELS - 1),
|
||||||
|
|
||||||
|
PAT_BULLET_KILL,
|
||||||
|
PAT_BULLET_KILL_last = (PAT_BULLET_KILL + BULLET_DECAY_CELS - 1),
|
||||||
|
PAT_DECAY_PELLET,
|
||||||
|
PAT_DECAY_PELLET_last = (PAT_DECAY_PELLET + BULLET_DECAY_CELS - 1),
|
||||||
|
PAT_DECAY_BULLET16,
|
||||||
|
PAT_DECAY_BULLET16_last = (PAT_DECAY_BULLET16 + BULLET_DECAY_CELS - 1),
|
||||||
|
|
||||||
|
PAT_EXPLOSION_SMALL,
|
||||||
// ----------
|
// ----------
|
||||||
} main_patnum_t;
|
} main_patnum_t;
|
||||||
/// -------------------------------------------------------------
|
/// -------------------------------------------------------------
|
||||||
|
|
|
@ -1,4 +1,28 @@
|
||||||
|
include th04/sprites/cels.inc
|
||||||
|
|
||||||
|
PAT_CLOUD_BULLET16_BLUE = 12
|
||||||
|
PAT_CLOUD_BULLET16_RED = 16
|
||||||
PAT_SHOT_SUB = 22
|
PAT_SHOT_SUB = 22
|
||||||
PAT_OPTION = 26
|
PAT_OPTION = 26
|
||||||
PAT_ITEM = 36
|
PAT_ITEM = 36
|
||||||
|
PAT_BULLET16_N_BLUE = 44
|
||||||
|
PAT_BULLET16_N_BALL_BLUE = PAT_BULLET16_N_BLUE
|
||||||
|
PAT_BULLET16_N_OUTLINED_BALL_BLUE = 45
|
||||||
|
PAT_BULLET16_N_SMALL_BALL_BLUE = 46
|
||||||
|
PAT_BULLET16_N_CROSS_BLUE = 47
|
||||||
|
PAT_BULLET16_N_RED = 48
|
||||||
|
PAT_BULLET16_N_BALL_RED = PAT_BULLET16_N_RED
|
||||||
|
PAT_BULLET16_N_OUTLINED_BALL_RED = 49
|
||||||
|
PAT_BULLET16_N_SMALL_BALL_RED = 50
|
||||||
|
PAT_BULLET16_STAR = 51
|
||||||
|
PAT_BULLET16_D = 52
|
||||||
|
PAT_BULLET16_D_BLUE = PAT_BULLET16_D
|
||||||
|
PAT_BULLET16_D_GREEN = 68
|
||||||
|
PAT_BULLET16_V = 84
|
||||||
|
PAT_BULLET16_V_RED = PAT_BULLET16_V
|
||||||
|
PAT_BULLET16_V_BLUE = 116
|
||||||
|
PAT_CLOUD_PELLET = 148
|
||||||
|
PAT_BULLET_KILL = 152
|
||||||
|
PAT_DECAY_PELLET = 156
|
||||||
|
PAT_DECAY_BULLET16 = 160
|
||||||
PAT_EXPLOSION_SMALL = 164
|
PAT_EXPLOSION_SMALL = 164
|
||||||
|
|
|
@ -8366,31 +8366,31 @@ loc_10108:
|
||||||
jl short loc_1016B
|
jl short loc_1016B
|
||||||
cmp [si+bullet_t.pos.cur.x], ((PLAYFIELD_W + 16) shl 4) ; Huh?
|
cmp [si+bullet_t.pos.cur.x], ((PLAYFIELD_W + 16) shl 4) ; Huh?
|
||||||
jge short loc_1016B
|
jge short loc_1016B
|
||||||
cmp [si+bullet_t.BULLET_patnum], 48
|
cmp [si+bullet_t.BULLET_patnum], PAT_BULLET16_N_RED
|
||||||
jl short loc_10141
|
jl short loc_10141
|
||||||
cmp [si+bullet_t.BULLET_patnum], 52
|
cmp [si+bullet_t.BULLET_patnum], PAT_BULLET16_D_BLUE
|
||||||
jl short loc_10134
|
jl short loc_10134
|
||||||
cmp [si+bullet_t.BULLET_patnum], 68
|
cmp [si+bullet_t.BULLET_patnum], PAT_BULLET16_D_GREEN
|
||||||
jl short loc_10141
|
jl short loc_10141
|
||||||
|
|
||||||
loc_10134:
|
loc_10134:
|
||||||
cmp [si+bullet_t.BULLET_patnum], 116
|
cmp [si+bullet_t.BULLET_patnum], PAT_BULLET16_V_BLUE
|
||||||
jl short loc_10146
|
jl short loc_10146
|
||||||
cmp [si+bullet_t.BULLET_patnum], 152
|
cmp [si+bullet_t.BULLET_patnum], (PAT_CLOUD_PELLET + BULLET_CLOUD_CELS)
|
||||||
jge short loc_10146
|
jge short loc_10146
|
||||||
|
|
||||||
loc_10141:
|
loc_10141:
|
||||||
mov di, 11
|
mov di, (PAT_CLOUD_BULLET16_BLUE - 1)
|
||||||
jmp short loc_10149
|
jmp short loc_10149
|
||||||
; ---------------------------------------------------------------------------
|
; ---------------------------------------------------------------------------
|
||||||
|
|
||||||
loc_10146:
|
loc_10146:
|
||||||
mov di, 15
|
mov di, (PAT_CLOUD_BULLET16_RED - 1)
|
||||||
|
|
||||||
loc_10149:
|
loc_10149:
|
||||||
mov al, [si+bullet_t.spawn_state]
|
mov al, [si+bullet_t.spawn_state]
|
||||||
mov ah, 0
|
mov ah, 0
|
||||||
mov bx, 4
|
mov bx, (BSS_CLOUD_FRAMES / BULLET_CLOUD_CELS)
|
||||||
cwd
|
cwd
|
||||||
idiv bx
|
idiv bx
|
||||||
add di, ax
|
add di, ax
|
||||||
|
@ -8421,10 +8421,10 @@ loc_1018A:
|
||||||
mov si, [bx-3D50h]
|
mov si, [bx-3D50h]
|
||||||
mov al, [si+bullet_t.spawn_state]
|
mov al, [si+bullet_t.spawn_state]
|
||||||
mov ah, 0
|
mov ah, 0
|
||||||
mov bx, 4
|
mov bx, (BSS_CLOUD_FRAMES / BULLET_CLOUD_CELS)
|
||||||
cwd
|
cwd
|
||||||
idiv bx
|
idiv bx
|
||||||
add ax, 147
|
add ax, (PAT_CLOUD_PELLET - 1)
|
||||||
mov di, ax
|
mov di, ax
|
||||||
mov ax, [si+bullet_t.pos.cur.y]
|
mov ax, [si+bullet_t.pos.cur.y]
|
||||||
add ax, (8 shl 4)
|
add ax, (8 shl 4)
|
||||||
|
@ -13774,7 +13774,7 @@ sub_159E6 proc near
|
||||||
mov al, ss:[bx+2]
|
mov al, ss:[bx+2]
|
||||||
mov bx, ss:[bx+4]
|
mov bx, ss:[bx+4]
|
||||||
add al, 3
|
add al, 3
|
||||||
cmp bx, 54h ; 'T'
|
cmp bx, PAT_BULLET16_V
|
||||||
jnb short loc_159F9
|
jnb short loc_159F9
|
||||||
and al, 7Fh
|
and al, 7Fh
|
||||||
|
|
||||||
|
@ -14272,7 +14272,7 @@ loc_15D95:
|
||||||
mov cl, al
|
mov cl, al
|
||||||
mov al, byte ptr word_25FFA+1
|
mov al, byte ptr word_25FFA+1
|
||||||
mov ah, 0
|
mov ah, 0
|
||||||
cmp al, 34h ; '4'
|
cmp al, PAT_BULLET16_D
|
||||||
jb short loc_15DB5
|
jb short loc_15DB5
|
||||||
push ax
|
push ax
|
||||||
push word ptr byte_25349
|
push word ptr byte_25349
|
||||||
|
@ -17279,30 +17279,30 @@ var_1 = byte ptr -1
|
||||||
sub sp, 2
|
sub sp, 2
|
||||||
push si
|
push si
|
||||||
mov si, [bp+@@bullet]
|
mov si, [bp+@@bullet]
|
||||||
cmp [si+bullet_t.BULLET_patnum], 52
|
cmp [si+bullet_t.BULLET_patnum], PAT_BULLET16_D_BLUE
|
||||||
jl short loc_179BC
|
jl short loc_179BC
|
||||||
cmp [si+bullet_t.BULLET_patnum], 68
|
cmp [si+bullet_t.BULLET_patnum], PAT_BULLET16_D_GREEN
|
||||||
jge short loc_1798F
|
jge short loc_1798F
|
||||||
mov [bp+var_1], 52
|
mov [bp+var_1], PAT_BULLET16_D_BLUE
|
||||||
jmp short loc_179AB
|
jmp short loc_179AB
|
||||||
; ---------------------------------------------------------------------------
|
; ---------------------------------------------------------------------------
|
||||||
|
|
||||||
loc_1798F:
|
loc_1798F:
|
||||||
cmp [si+bullet_t.BULLET_patnum], 84
|
cmp [si+bullet_t.BULLET_patnum], PAT_BULLET16_V_RED
|
||||||
jge short loc_1799B
|
jge short loc_1799B
|
||||||
mov [bp+var_1], 68
|
mov [bp+var_1], PAT_BULLET16_D_GREEN
|
||||||
jmp short loc_179AB
|
jmp short loc_179AB
|
||||||
; ---------------------------------------------------------------------------
|
; ---------------------------------------------------------------------------
|
||||||
|
|
||||||
loc_1799B:
|
loc_1799B:
|
||||||
cmp [si+bullet_t.BULLET_patnum], 116
|
cmp [si+bullet_t.BULLET_patnum], PAT_BULLET16_V_BLUE
|
||||||
jge short loc_179A7
|
jge short loc_179A7
|
||||||
mov [bp+var_1], 84
|
mov [bp+var_1], PAT_BULLET16_V_RED
|
||||||
jmp short loc_179AB
|
jmp short loc_179AB
|
||||||
; ---------------------------------------------------------------------------
|
; ---------------------------------------------------------------------------
|
||||||
|
|
||||||
loc_179A7:
|
loc_179A7:
|
||||||
mov [bp+var_1], 116
|
mov [bp+var_1], PAT_BULLET16_V_BLUE
|
||||||
|
|
||||||
loc_179AB:
|
loc_179AB:
|
||||||
mov al, [bp+var_1]
|
mov al, [bp+var_1]
|
||||||
|
@ -17644,7 +17644,7 @@ bullet_update_special endp
|
||||||
|
|
||||||
sub_17C04 proc far
|
sub_17C04 proc far
|
||||||
|
|
||||||
var_9 = byte ptr -9
|
@@patnum = byte ptr -9
|
||||||
var_8 = word ptr -8
|
var_8 = word ptr -8
|
||||||
var_6 = word ptr -6
|
var_6 = word ptr -6
|
||||||
var_4 = word ptr -4
|
var_4 = word ptr -4
|
||||||
|
@ -17683,12 +17683,12 @@ loc_17C40:
|
||||||
mov [si+bullet_t.move_state], BMS_DECAY
|
mov [si+bullet_t.move_state], BMS_DECAY
|
||||||
cmp di, BULLET16_COUNT
|
cmp di, BULLET16_COUNT
|
||||||
jge short loc_17C5F
|
jge short loc_17C5F
|
||||||
mov ax, 160
|
mov ax, PAT_DECAY_BULLET16
|
||||||
jmp short loc_17C62
|
jmp short loc_17C62
|
||||||
; ---------------------------------------------------------------------------
|
; ---------------------------------------------------------------------------
|
||||||
|
|
||||||
loc_17C5F:
|
loc_17C5F:
|
||||||
mov ax, 156
|
mov ax, PAT_DECAY_PELLET
|
||||||
|
|
||||||
loc_17C62:
|
loc_17C62:
|
||||||
mov [si+bullet_t.BULLET_patnum], ax
|
mov [si+bullet_t.BULLET_patnum], ax
|
||||||
|
@ -17716,7 +17716,7 @@ loc_17C7B:
|
||||||
loc_17C91:
|
loc_17C91:
|
||||||
mov al, [si+bullet_t.move_state]
|
mov al, [si+bullet_t.move_state]
|
||||||
mov ah, 0
|
mov ah, 0
|
||||||
mov bx, 4
|
mov bx, (BMS_DECAY_FRAMES / BULLET_DECAY_CELS)
|
||||||
cwd
|
cwd
|
||||||
idiv bx
|
idiv bx
|
||||||
or dx, dx
|
or dx, dx
|
||||||
|
@ -17947,11 +17947,11 @@ loc_17EB5:
|
||||||
loc_17EC3:
|
loc_17EC3:
|
||||||
mov al, _bullet_clear_trigger
|
mov al, _bullet_clear_trigger
|
||||||
mov ah, 0
|
mov ah, 0
|
||||||
mov bx, 4
|
mov bx, BULLET_DECAY_CELS
|
||||||
cwd
|
cwd
|
||||||
idiv bx
|
idiv bx
|
||||||
add al, 98h
|
add al, PAT_BULLET_KILL
|
||||||
mov [bp+var_9], al
|
mov [bp+@@patnum], al
|
||||||
mov [bp+var_4], 1
|
mov [bp+var_4], 1
|
||||||
mov [bp+var_6], 1
|
mov [bp+var_6], 1
|
||||||
cmp _rank, RANK_EXTRA
|
cmp _rank, RANK_EXTRA
|
||||||
|
@ -17979,9 +17979,9 @@ loc_17F0B:
|
||||||
mov [si+bullet_t.pos.velocity.y], 0
|
mov [si+bullet_t.pos.velocity.y], 0
|
||||||
lea ax, [si+bullet_t.pos]
|
lea ax, [si+bullet_t.pos]
|
||||||
call _motion_update_2 pascal, ax
|
call _motion_update_2 pascal, ax
|
||||||
cmp [bp+var_9], 4Ch ; 'L'
|
cmp [bp+@@patnum], 76 ; TH04 leftover; PAT_BULLET16_D in that game, unused here
|
||||||
jnb short loc_17F31
|
jnb short loc_17F31
|
||||||
mov al, [bp+var_9]
|
mov al, [bp+@@patnum]
|
||||||
mov ah, 0
|
mov ah, 0
|
||||||
mov [si+bullet_t.BULLET_patnum], ax
|
mov [si+bullet_t.BULLET_patnum], ax
|
||||||
jmp short loc_17F86
|
jmp short loc_17F86
|
||||||
|
@ -18033,7 +18033,7 @@ loc_17F8D:
|
||||||
|
|
||||||
loc_17FA8:
|
loc_17FA8:
|
||||||
inc _bullet_clear_trigger
|
inc _bullet_clear_trigger
|
||||||
cmp [bp+var_9], 4Ch ; 'L'
|
cmp [bp+@@patnum], 76 ; TH04 leftover; PAT_BULLET16_D in that game, unused here
|
||||||
jb short loc_17FB7
|
jb short loc_17FB7
|
||||||
mov _bullet_clear_trigger, 0
|
mov _bullet_clear_trigger, 0
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue