mirror of https://github.com/nmlgc/ReC98.git
[Reverse-engineering] [th03] Global shared hitbox
Featuring a semantically overloaded origin just for the hell of it, eh? Part of P0280, funded by [Anonymous], Blue Bolt, and JonathKane.
This commit is contained in:
parent
c8443b77fe
commit
1cdf14ab83
|
@ -0,0 +1,12 @@
|
|||
// A shared global hitbox.
|
||||
extern struct {
|
||||
// ZUN bloat: Use separate variables.
|
||||
union {
|
||||
PlayfieldPoint topleft;
|
||||
PlayfieldPoint center;
|
||||
} origin;
|
||||
|
||||
PlayfieldPoint radius;
|
||||
PlayfieldSubpixel right;
|
||||
PlayfieldSubpixel bottom;
|
||||
} hitbox;
|
398
th03_main.asm
398
th03_main.asm
|
@ -2610,17 +2610,17 @@ loc_B752:
|
|||
mov [si+1], al
|
||||
cmp byte_1FDE1, 0
|
||||
jnz short loc_B792
|
||||
mov ax, word_20E32
|
||||
mov ax, _hitbox_radius.x
|
||||
add ax, ax
|
||||
push ax
|
||||
call @randring_far_next16_mod$qui
|
||||
add ax, word_20E2E
|
||||
add ax, _hitbox_origin_topleft.x
|
||||
mov di, ax
|
||||
mov ax, word_20E34
|
||||
mov ax, _hitbox_radius.y
|
||||
add ax, ax
|
||||
push ax
|
||||
call @randring_far_next16_mod$qui
|
||||
add ax, word_20E30
|
||||
add ax, _hitbox_origin_topleft.y
|
||||
mov [bp+arg_2], ax
|
||||
|
||||
loc_B792:
|
||||
|
@ -9357,14 +9357,14 @@ loc_F8F5:
|
|||
mov _collmap_pid, al
|
||||
call _collmap_set_rect_striped
|
||||
mov byte_20E2C, 1
|
||||
mov word_20E32, 200h
|
||||
mov word_20E34, 200h
|
||||
mov _hitbox_radius.x, (32 shl 4)
|
||||
mov _hitbox_radius.y, (32 shl 4)
|
||||
mov al, [bp+@@pid_other]
|
||||
mov pid_20E3A, al
|
||||
mov ax, word_1F33E
|
||||
mov word_20E2E, ax
|
||||
mov _hitbox_origin_center.x, ax
|
||||
mov ax, word_1F340
|
||||
mov word_20E30, ax
|
||||
mov _hitbox_origin_center.y, ax
|
||||
call sub_158F5
|
||||
mov byte_1F34E, al
|
||||
mov ah, 0
|
||||
|
@ -10090,14 +10090,14 @@ loc_FFA2:
|
|||
mov _collmap_pid, al
|
||||
call _collmap_set_rect_striped
|
||||
mov byte_20E2C, 1
|
||||
mov word_20E32, 200h
|
||||
mov word_20E34, 200h
|
||||
mov _hitbox_radius.x, (32 shl 4)
|
||||
mov _hitbox_radius.y, (32 shl 4)
|
||||
mov al, [bp+@@pid_other]
|
||||
mov pid_20E3A, al
|
||||
mov ax, word_1F33E
|
||||
mov word_20E2E, ax
|
||||
mov _hitbox_origin_center.x, ax
|
||||
mov ax, word_1F340
|
||||
mov word_20E30, ax
|
||||
mov _hitbox_origin_center.y, ax
|
||||
call sub_158F5
|
||||
mov byte_1F34E, al
|
||||
mov ah, 0
|
||||
|
@ -10995,14 +10995,14 @@ loc_1081A:
|
|||
mov _collmap_pid, al
|
||||
call _collmap_set_rect_striped
|
||||
mov byte_20E2C, 1
|
||||
mov word_20E32, 200h
|
||||
mov word_20E34, 200h
|
||||
mov _hitbox_radius.x, (32 shl 4)
|
||||
mov _hitbox_radius.y, (32 shl 4)
|
||||
mov al, [bp+@@pid_other]
|
||||
mov pid_20E3A, al
|
||||
mov ax, word_1F33E
|
||||
mov word_20E2E, ax
|
||||
mov _hitbox_origin_center.x, ax
|
||||
mov ax, word_1F340
|
||||
mov word_20E30, ax
|
||||
mov _hitbox_origin_center.y, ax
|
||||
call sub_158F5
|
||||
mov byte_1F34E, al
|
||||
mov ah, 0
|
||||
|
@ -11949,14 +11949,14 @@ loc_110FB:
|
|||
mov _collmap_pid, al
|
||||
call _collmap_set_rect_striped
|
||||
mov byte_20E2C, 1
|
||||
mov word_20E32, 200h
|
||||
mov word_20E34, 200h
|
||||
mov _hitbox_radius.x, (32 shl 4)
|
||||
mov _hitbox_radius.y, (32 shl 4)
|
||||
mov al, [bp+@@pid_other]
|
||||
mov pid_20E3A, al
|
||||
mov ax, word_1F33E
|
||||
mov word_20E2E, ax
|
||||
mov _hitbox_origin_center.x, ax
|
||||
mov ax, word_1F340
|
||||
mov word_20E30, ax
|
||||
mov _hitbox_origin_center.y, ax
|
||||
call sub_158F5
|
||||
mov byte_1F34E, al
|
||||
mov ah, 0
|
||||
|
@ -12695,14 +12695,14 @@ loc_11763:
|
|||
mov _collmap_pid, al
|
||||
call _collmap_set_rect_striped
|
||||
mov byte_20E2C, 1
|
||||
mov word_20E32, 180h
|
||||
mov word_20E34, 180h
|
||||
mov _hitbox_radius.x, (24 shl 4)
|
||||
mov _hitbox_radius.y, (24 shl 4)
|
||||
mov al, [bp+@@pid_other]
|
||||
mov pid_20E3A, al
|
||||
mov ax, word_1F33E
|
||||
mov word_20E2E, ax
|
||||
mov _hitbox_origin_center.x, ax
|
||||
mov ax, word_1F340
|
||||
mov word_20E30, ax
|
||||
mov _hitbox_origin_center.y, ax
|
||||
call sub_158F5
|
||||
mov byte_1F34E, al
|
||||
mov ah, 0
|
||||
|
@ -13583,14 +13583,14 @@ loc_11F34:
|
|||
mov _collmap_pid, al
|
||||
call _collmap_set_rect_striped
|
||||
mov byte_20E2C, 1
|
||||
mov word_20E32, 200h
|
||||
mov word_20E34, 200h
|
||||
mov _hitbox_radius.x, (32 shl 4)
|
||||
mov _hitbox_radius.y, (32 shl 4)
|
||||
mov al, [bp+@@pid_other]
|
||||
mov pid_20E3A, al
|
||||
mov ax, word_1F33E
|
||||
mov word_20E2E, ax
|
||||
mov _hitbox_origin_center.x, ax
|
||||
mov ax, word_1F340
|
||||
mov word_20E30, ax
|
||||
mov _hitbox_origin_center.y, ax
|
||||
call sub_158F5
|
||||
mov byte_1F34E, al
|
||||
mov ah, 0
|
||||
|
@ -14620,14 +14620,14 @@ loc_128AD:
|
|||
mov _collmap_pid, al
|
||||
call _collmap_set_rect_striped
|
||||
mov byte_20E2C, 1
|
||||
mov word_20E32, 200h
|
||||
mov word_20E34, 200h
|
||||
mov _hitbox_radius.x, (32 shl 4)
|
||||
mov _hitbox_radius.y, (32 shl 4)
|
||||
mov al, [bp+@@pid_other]
|
||||
mov pid_20E3A, al
|
||||
mov ax, word_1F33E
|
||||
mov word_20E2E, ax
|
||||
mov _hitbox_origin_center.x, ax
|
||||
mov ax, word_1F340
|
||||
mov word_20E30, ax
|
||||
mov _hitbox_origin_center.y, ax
|
||||
call sub_158F5
|
||||
mov byte_1F34E, al
|
||||
mov ah, 0
|
||||
|
@ -15545,14 +15545,14 @@ loc_130C0:
|
|||
mov _collmap_pid, al
|
||||
call _collmap_set_rect_striped
|
||||
mov byte_20E2C, 1
|
||||
mov word_20E32, 200h
|
||||
mov word_20E34, 200h
|
||||
mov _hitbox_radius.x, (32 shl 4)
|
||||
mov _hitbox_radius.y, (32 shl 4)
|
||||
mov al, [bp+@@pid_other]
|
||||
mov pid_20E3A, al
|
||||
mov ax, word_1F33E
|
||||
mov word_20E2E, ax
|
||||
mov _hitbox_origin_center.x, ax
|
||||
mov ax, word_1F340
|
||||
mov word_20E30, ax
|
||||
mov _hitbox_origin_center.y, ax
|
||||
call sub_158F5
|
||||
mov byte_1F34E, al
|
||||
mov ah, 0
|
||||
|
@ -16288,14 +16288,14 @@ loc_13717:
|
|||
mov _collmap_pid, al
|
||||
call _collmap_set_rect_striped
|
||||
mov byte_20E2C, 1
|
||||
mov word_20E32, 200h
|
||||
mov word_20E34, 200h
|
||||
mov _hitbox_radius.x, (32 shl 4)
|
||||
mov _hitbox_radius.y, (32 shl 4)
|
||||
mov al, [bp+@@pid_other]
|
||||
mov pid_20E3A, al
|
||||
mov ax, word_1F33E
|
||||
mov word_20E2E, ax
|
||||
mov _hitbox_origin_center.x, ax
|
||||
mov ax, word_1F340
|
||||
mov word_20E30, ax
|
||||
mov _hitbox_origin_center.y, ax
|
||||
call sub_158F5
|
||||
mov byte_1F34E, al
|
||||
mov ah, 0
|
||||
|
@ -17743,25 +17743,25 @@ loc_144AF:
|
|||
add bx, bx
|
||||
add bx, word_1FE4E
|
||||
mov ax, [bx+2]
|
||||
cmp ax, word_20E2E
|
||||
cmp ax, _hitbox_origin_topleft.x
|
||||
jl short loc_14503
|
||||
mov bx, si
|
||||
add bx, bx
|
||||
add bx, word_1FE4E
|
||||
cmp ax, word_20E36
|
||||
cmp ax, _hitbox_right
|
||||
jg short loc_14503
|
||||
mov bx, si
|
||||
add bx, bx
|
||||
add bx, word_1FE4E
|
||||
mov ax, [bx+1Ah]
|
||||
cmp ax, word_20E30
|
||||
cmp ax, _hitbox_origin_topleft.y
|
||||
jl short loc_14503
|
||||
mov bx, si
|
||||
add bx, bx
|
||||
add bx, word_1FE4E
|
||||
push word ptr [bx+2]
|
||||
mov ax, word_20E30
|
||||
add ax, word_20E34
|
||||
mov ax, _hitbox_origin_topleft.y
|
||||
add ax, _hitbox_radius.y
|
||||
push ax
|
||||
mov al, pid_20E3A
|
||||
mov ah, 0
|
||||
|
@ -18771,28 +18771,28 @@ loc_14D0A:
|
|||
cmp byte ptr [bx], 0
|
||||
jz short loc_14D73
|
||||
mov bx, word_205CA
|
||||
cmp word ptr [bx+2], 0FF00h
|
||||
cmp word ptr [bx+2], (-16 shl 4)
|
||||
jle short loc_14D73
|
||||
cmp word ptr [bx+2], 1200h
|
||||
cmp word ptr [bx+2], (PLAYFIELD_W shl 4)
|
||||
jge short loc_14D73
|
||||
cmp word ptr [bx+10h], 0FF00h
|
||||
cmp word ptr [bx+10h], (-16 shl 4)
|
||||
jle short loc_14D73
|
||||
mov bx, word_205CA
|
||||
mov ax, [bx+2]
|
||||
sub ax, word_20E36
|
||||
cmp ax, 140h
|
||||
sub ax, _hitbox_right
|
||||
cmp ax, (20 shl 4)
|
||||
jg short loc_14D73
|
||||
mov ax, word_20E2E
|
||||
mov ax, _hitbox_origin_topleft.x
|
||||
sub ax, [bx+2]
|
||||
cmp ax, 140h
|
||||
cmp ax, (20 shl 4)
|
||||
jg short loc_14D73
|
||||
mov ax, [bx+10h]
|
||||
sub ax, word_20E38
|
||||
cmp ax, 140h
|
||||
sub ax, _hitbox_bottom
|
||||
cmp ax, (20 shl 4)
|
||||
jg short loc_14D73
|
||||
mov ax, word_20E30
|
||||
mov ax, _hitbox_origin_topleft.y
|
||||
sub ax, [bx+10h]
|
||||
cmp ax, 140h
|
||||
cmp ax, (20 shl 4)
|
||||
jg short loc_14D73
|
||||
push word ptr [bx+2]
|
||||
push word ptr [bx+10h]
|
||||
|
@ -19796,17 +19796,17 @@ loc_155C5:
|
|||
jz short loc_1560B
|
||||
mov bx, word_20E22
|
||||
mov ax, [bx+2]
|
||||
add ax, 0FF00h
|
||||
cmp ax, word_20E36
|
||||
add ax, (-16 shl 4)
|
||||
cmp ax, _hitbox_right
|
||||
jg short loc_1560B
|
||||
mov ax, [bx+2]
|
||||
add ax, 100h
|
||||
cmp ax, word_20E2E
|
||||
add ax, (16 shl 4)
|
||||
cmp ax, _hitbox_origin_topleft.x
|
||||
jl short loc_1560B
|
||||
mov ax, [bx+4]
|
||||
cmp ax, word_20E30
|
||||
cmp ax, _hitbox_origin_topleft.y
|
||||
jl short loc_1560B
|
||||
cmp ax, word_20E38
|
||||
cmp ax, _hitbox_bottom
|
||||
jg short loc_1560B
|
||||
push word ptr [bx+2]
|
||||
push ax
|
||||
|
@ -20201,7 +20201,7 @@ var_2 = word ptr -2
|
|||
push si
|
||||
push di
|
||||
mov [bp+var_5], 0
|
||||
cmp word_20E30, 0
|
||||
cmp _hitbox_origin_center.y, 0
|
||||
jl short loc_1590F
|
||||
cmp byte_20E3C, 2
|
||||
jnz short loc_15914
|
||||
|
@ -20214,18 +20214,18 @@ loc_1590F:
|
|||
loc_15914:
|
||||
mov byte_26356, 0
|
||||
mov si, offset _shotpairs
|
||||
mov ax, word_20E2E
|
||||
add ax, word_20E32
|
||||
mov word_20E36, ax
|
||||
mov ax, word_20E30
|
||||
add ax, word_20E34
|
||||
mov word_20E38, ax
|
||||
mov ax, word_20E2E
|
||||
sub ax, word_20E32
|
||||
mov word_20E2E, ax
|
||||
mov ax, word_20E30
|
||||
sub ax, word_20E34
|
||||
mov word_20E30, ax
|
||||
mov ax, _hitbox_origin_center.x
|
||||
add ax, _hitbox_radius.x
|
||||
mov _hitbox_right, ax
|
||||
mov ax, _hitbox_origin_center.y
|
||||
add ax, _hitbox_radius.y
|
||||
mov _hitbox_bottom, ax
|
||||
mov ax, _hitbox_origin_center.x
|
||||
sub ax, _hitbox_radius.x
|
||||
mov _hitbox_origin_topleft.x, ax
|
||||
mov ax, _hitbox_origin_center.y
|
||||
sub ax, _hitbox_radius.y
|
||||
mov _hitbox_origin_topleft.y, ax
|
||||
mov byte_1FDE1, 1
|
||||
mov [bp+var_2], 0
|
||||
jmp short loc_159B2
|
||||
|
@ -20244,15 +20244,15 @@ loc_15950:
|
|||
add ax, (8 shl 4)
|
||||
mov [bp+var_4], ax
|
||||
lea ax, [di-(16 shl 4)]
|
||||
cmp ax, word_20E36
|
||||
cmp ax, _hitbox_right
|
||||
jg short loc_159AC
|
||||
lea ax, [di+(16 shl 4)]
|
||||
cmp ax, word_20E2E
|
||||
cmp ax, _hitbox_origin_topleft.x
|
||||
jl short loc_159AC
|
||||
mov ax, [bp+var_4]
|
||||
cmp ax, word_20E30
|
||||
cmp ax, _hitbox_origin_topleft.y
|
||||
jl short loc_159AC
|
||||
cmp ax, word_20E38
|
||||
cmp ax, _hitbox_bottom
|
||||
jg short loc_159AC
|
||||
mov [si+shotpair_t.SP_alive], 0
|
||||
mov al, [bp+var_5]
|
||||
|
@ -21152,7 +21152,7 @@ sub_1615D proc near
|
|||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_16184:
|
||||
mov si, 0A0h
|
||||
mov si, (10 shl 4)
|
||||
|
||||
loc_16187:
|
||||
mov bx, word_2203C
|
||||
|
@ -21207,14 +21207,14 @@ loc_16187:
|
|||
loc_16212:
|
||||
mov bx, word_2203C
|
||||
mov ax, [bx+2]
|
||||
mov word_20E2E, ax
|
||||
mov _hitbox_origin_center.x, ax
|
||||
mov ax, [bx+4]
|
||||
mov word_20E30, ax
|
||||
mov word_20E32, si
|
||||
mov word_20E34, si
|
||||
mov _hitbox_origin_center.y, ax
|
||||
mov _hitbox_radius.x, si
|
||||
mov _hitbox_radius.y, si
|
||||
mov al, [bx+8]
|
||||
mov pid_20E3A, al
|
||||
cmp word_20E30, 0
|
||||
cmp _hitbox_origin_center.y, 0
|
||||
jl loc_164AA
|
||||
nopcall sub_158F5
|
||||
or al, al
|
||||
|
@ -21843,20 +21843,20 @@ loc_16769:
|
|||
mov ax, [si+4]
|
||||
sub ax, [bp+var_8]
|
||||
mov [bp+var_6], ax
|
||||
mov ax, word_20E36
|
||||
mov ax, _hitbox_right
|
||||
cmp ax, [bp+var_4]
|
||||
jl loc_1696E
|
||||
mov ax, word_20E38
|
||||
mov ax, _hitbox_bottom
|
||||
cmp ax, [bp+var_6]
|
||||
jl loc_1696E
|
||||
shl [bp+var_8], 1
|
||||
mov ax, [bp+var_8]
|
||||
add [bp+var_4], ax
|
||||
add [bp+var_6], ax
|
||||
mov ax, word_20E2E
|
||||
mov ax, _hitbox_origin_topleft.x
|
||||
cmp ax, [bp+var_4]
|
||||
jg loc_1696E
|
||||
mov ax, word_20E30
|
||||
mov ax, _hitbox_origin_topleft.y
|
||||
cmp ax, [bp+var_6]
|
||||
jg loc_1696E
|
||||
mov al, [si+1Ch]
|
||||
|
@ -22290,20 +22290,20 @@ yumemi_16B0C proc far
|
|||
cmp byte ptr [si], 1
|
||||
jnz short loc_16B69
|
||||
mov ax, [si+2]
|
||||
add ax, 0FF80h
|
||||
cmp ax, word_20E36
|
||||
add ax, (-8 shl 4)
|
||||
cmp ax, _hitbox_right
|
||||
jg short loc_16BB0
|
||||
mov ax, [si+2]
|
||||
add ax, 80h
|
||||
cmp ax, word_20E2E
|
||||
add ax, (8 shl 4)
|
||||
cmp ax, _hitbox_origin_topleft.x
|
||||
jl short loc_16BB0
|
||||
mov ax, [si+4]
|
||||
add ax, 0FF80h
|
||||
cmp ax, word_20E38
|
||||
add ax, (-8 shl 4)
|
||||
cmp ax, _hitbox_bottom
|
||||
jg short loc_16BB0
|
||||
mov ax, [si+4]
|
||||
add ax, 80h
|
||||
cmp ax, word_20E30
|
||||
add ax, (8 shl 4)
|
||||
cmp ax, _hitbox_origin_topleft.y
|
||||
jl short loc_16BB0
|
||||
mov byte ptr [si], 2
|
||||
mov byte ptr [si+1], 0
|
||||
|
@ -22313,23 +22313,23 @@ yumemi_16B0C proc far
|
|||
|
||||
loc_16B69:
|
||||
mov ax, [si+2]
|
||||
add ax, 0FC80h
|
||||
cmp ax, word_20E36
|
||||
add ax, (-56 shl 4)
|
||||
cmp ax, _hitbox_right
|
||||
jg short loc_16BB0
|
||||
mov ax, [si+2]
|
||||
add ax, 380h
|
||||
cmp ax, word_20E2E
|
||||
add ax, (56 shl 4)
|
||||
cmp ax, _hitbox_origin_topleft.x
|
||||
jl short loc_16BB0
|
||||
mov ax, [si+4]
|
||||
add ax, 0FC80h
|
||||
cmp ax, word_20E38
|
||||
add ax, (-56 shl 4)
|
||||
cmp ax, _hitbox_bottom
|
||||
jg short loc_16BB0
|
||||
mov ax, [si+4]
|
||||
add ax, 380h
|
||||
cmp ax, word_20E30
|
||||
add ax, (56 shl 4)
|
||||
cmp ax, _hitbox_origin_topleft.y
|
||||
jl short loc_16BB0
|
||||
push word_20E2E
|
||||
push word_20E30
|
||||
push _hitbox_origin_topleft.x
|
||||
push _hitbox_origin_topleft.y
|
||||
mov al, pid_20E3A
|
||||
mov ah, 0
|
||||
push ax
|
||||
|
@ -24367,14 +24367,14 @@ loc_17B52:
|
|||
cmp byte ptr [si], 1
|
||||
jnz short loc_17BA9
|
||||
mov dx, [si+2]
|
||||
sub dx, 60h
|
||||
sub ax, 60h
|
||||
mov word_20E2E, dx
|
||||
mov word_20E30, ax
|
||||
add dx, 0C0h
|
||||
add ax, 0C0h
|
||||
mov word_20E36, dx
|
||||
mov word_20E38, ax
|
||||
sub dx, (6 shl 4)
|
||||
sub ax, (6 shl 4)
|
||||
mov _hitbox_origin_topleft.x, dx
|
||||
mov _hitbox_origin_topleft.y, ax
|
||||
add dx, (12 shl 4)
|
||||
add ax, (12 shl 4)
|
||||
mov _hitbox_right, dx
|
||||
mov _hitbox_bottom, ax
|
||||
mov bl, [si+10h]
|
||||
mov pid_20E3A, bl
|
||||
call sub_1670D
|
||||
|
@ -25150,8 +25150,8 @@ var_1 = byte ptr -1
|
|||
|
||||
enter 2, 0
|
||||
push si
|
||||
mov word_20E32, 0C0h
|
||||
mov word_20E34, 0A0h
|
||||
mov _hitbox_radius.x, (12 shl 4)
|
||||
mov _hitbox_radius.y, (10 shl 4)
|
||||
mov word_2203C, 4AA6h
|
||||
mov byte_1E14C, 1
|
||||
mov si, 3Fh ; '?'
|
||||
|
@ -25168,10 +25168,10 @@ loc_181E5:
|
|||
mov al, [bx+8]
|
||||
mov [bp+@@pid], al
|
||||
mov ax, [bx+2]
|
||||
mov word_20E2E, ax
|
||||
mov _hitbox_origin_center.x, ax
|
||||
mov ax, [bx+4]
|
||||
add ax, 30h ; '0'
|
||||
mov word_20E30, ax
|
||||
add ax, (3 shl 4)
|
||||
mov _hitbox_origin_center.y, ax
|
||||
mov al, [bp+@@pid]
|
||||
mov pid_20E3A, al
|
||||
nopcall sub_158F5
|
||||
|
@ -27571,14 +27571,14 @@ loc_19732:
|
|||
|
||||
loc_19740:
|
||||
mov byte_20E2C, 1
|
||||
mov word_20E32, 100h
|
||||
mov word_20E34, 100h
|
||||
mov _hitbox_radius.x, (16 shl 4)
|
||||
mov _hitbox_radius.y, (16 shl 4)
|
||||
mov al, [bp+@@pid_other]
|
||||
mov pid_20E3A, al
|
||||
mov ax, [di+2]
|
||||
mov word_20E2E, ax
|
||||
mov _hitbox_origin_center.x, ax
|
||||
mov ax, [di+10h]
|
||||
mov word_20E30, ax
|
||||
mov _hitbox_origin_center.y, ax
|
||||
call sub_158F5
|
||||
mov byte_20E2C, 0
|
||||
mov ax, [di+2]
|
||||
|
@ -28910,14 +28910,14 @@ loc_1A0DA:
|
|||
mov ax, [si+14h]
|
||||
add [si+4], ax
|
||||
mov byte_20E2C, 1
|
||||
mov word_20E32, 100h
|
||||
mov word_20E34, 100h
|
||||
mov _hitbox_radius.x, (16 shl 4)
|
||||
mov _hitbox_radius.y, (16 shl 4)
|
||||
mov al, [bp+@@pid_other]
|
||||
mov pid_20E3A, al
|
||||
mov ax, [si+2]
|
||||
mov word_20E2E, ax
|
||||
mov _hitbox_origin_center.x, ax
|
||||
mov ax, [si+4]
|
||||
mov word_20E30, ax
|
||||
mov _hitbox_origin_center.y, ax
|
||||
call sub_158F5
|
||||
mov byte_20E2C, 0
|
||||
mov ax, [si+2]
|
||||
|
@ -29514,8 +29514,8 @@ reimu_1A4E0 proc far
|
|||
push si
|
||||
push di
|
||||
mov byte_20E2C, 1
|
||||
mov word_20E32, 100h
|
||||
mov word_20E34, 100h
|
||||
mov _hitbox_radius.x, (16 shl 4)
|
||||
mov _hitbox_radius.y, (16 shl 4)
|
||||
mov al, 1
|
||||
sub al, _pid_current
|
||||
mov pid_20E3A, al
|
||||
|
@ -29569,9 +29569,9 @@ loc_1A55F:
|
|||
loc_1A56B:
|
||||
inc word ptr [si+8]
|
||||
mov ax, [si+2]
|
||||
mov word_20E2E, ax
|
||||
mov _hitbox_origin_center.x, ax
|
||||
mov ax, [si+4]
|
||||
mov word_20E30, ax
|
||||
mov _hitbox_origin_center.y, ax
|
||||
call sub_158F5
|
||||
push word ptr [si+2]
|
||||
push word ptr [si+4]
|
||||
|
@ -29844,7 +29844,7 @@ mima_1A745 proc far
|
|||
|
||||
@@pid_other = byte ptr -7
|
||||
var_6 = word ptr -6
|
||||
var_4 = word ptr -4
|
||||
@@center_y = word ptr -4
|
||||
var_2 = word ptr -2
|
||||
|
||||
enter 8, 0
|
||||
|
@ -29875,10 +29875,10 @@ loc_1A778:
|
|||
mov di, ax
|
||||
mov ax, [si+4]
|
||||
add ax, [si+8]
|
||||
mov [bp+var_4], ax
|
||||
mov [bp+@@center_y], ax
|
||||
or di, di
|
||||
jle short loc_1A7A1
|
||||
cmp di, 1200h
|
||||
cmp di, (PLAYFIELD_W shl 4)
|
||||
jl short loc_1A7B4
|
||||
|
||||
loc_1A7A1:
|
||||
|
@ -29892,9 +29892,9 @@ loc_1A7A1:
|
|||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_1A7B4:
|
||||
cmp [bp+var_4], 0
|
||||
cmp [bp+@@center_y], 0
|
||||
jle short loc_1A7C1
|
||||
cmp [bp+var_4], 1700h
|
||||
cmp [bp+@@center_y], (PLAYFIELD_H shl 4)
|
||||
jl short loc_1A7E8
|
||||
|
||||
loc_1A7C1:
|
||||
|
@ -29920,7 +29920,7 @@ loc_1A7E2:
|
|||
|
||||
loc_1A7E8:
|
||||
mov [si+2], di
|
||||
mov ax, [bp+var_4]
|
||||
mov ax, [bp+@@center_y]
|
||||
mov [si+4], ax
|
||||
|
||||
loc_1A7F1:
|
||||
|
@ -29960,13 +29960,13 @@ loc_1A81C:
|
|||
|
||||
loc_1A83A:
|
||||
mov byte_20E2C, 1
|
||||
mov word_20E32, 100h
|
||||
mov word_20E34, 100h
|
||||
mov _hitbox_radius.x, (16 shl 4)
|
||||
mov _hitbox_radius.y, (16 shl 4)
|
||||
mov al, [bp+@@pid_other]
|
||||
mov pid_20E3A, al
|
||||
mov word_20E2E, di
|
||||
mov ax, [bp+var_4]
|
||||
mov word_20E30, ax
|
||||
mov _hitbox_origin_center.x, di
|
||||
mov ax, [bp+@@center_y]
|
||||
mov _hitbox_origin_center.y, ax
|
||||
call sub_158F5
|
||||
or al, al
|
||||
jz short loc_1A868
|
||||
|
@ -29975,7 +29975,7 @@ loc_1A83A:
|
|||
loc_1A868:
|
||||
mov byte_20E2C, 0
|
||||
mov _collmap_center.x, di
|
||||
mov ax, [bp+var_4]
|
||||
mov ax, [bp+@@center_y]
|
||||
mov _collmap_center.y, ax
|
||||
call _collmap_set_rect_striped
|
||||
jmp short loc_1A8BE
|
||||
|
@ -30761,21 +30761,21 @@ loc_1AE9D:
|
|||
mov pid_20E3A, al
|
||||
mov ax, [si+14h]
|
||||
shl ax, 3
|
||||
mov word_20E32, ax
|
||||
mov word_20E34, 40h
|
||||
mov _hitbox_radius.x, ax
|
||||
mov _hitbox_radius.y, (4 shl 4)
|
||||
mov ax, [si+2]
|
||||
mov word_20E2E, ax
|
||||
mov _hitbox_origin_center.x, ax
|
||||
mov ax, [si+4]
|
||||
mov word_20E30, ax
|
||||
mov _hitbox_origin_center.y, ax
|
||||
call sub_158F5
|
||||
mov word_20E32, 40h
|
||||
mov _hitbox_radius.x, (4 shl 4)
|
||||
mov ax, [si+14h]
|
||||
shl ax, 3
|
||||
mov word_20E34, ax
|
||||
mov _hitbox_radius.y, ax
|
||||
mov ax, [si+2]
|
||||
mov word_20E2E, ax
|
||||
mov _hitbox_origin_center.x, ax
|
||||
mov ax, [si+4]
|
||||
mov word_20E30, ax
|
||||
mov _hitbox_origin_center.y, ax
|
||||
call sub_158F5
|
||||
mov byte_20E2C, 0
|
||||
mov ax, [si+14h]
|
||||
|
@ -31108,8 +31108,8 @@ var_6 = byte ptr -6
|
|||
mov _playfield_clip_negative_radius.x, (-32 shl 4)
|
||||
mov _playfield_clip_negative_radius.y, (-32 shl 4)
|
||||
mov byte_20E2C, 1
|
||||
mov word_20E32, 100h
|
||||
mov word_20E34, 100h
|
||||
mov _hitbox_radius.x, (16 shl 4)
|
||||
mov _hitbox_radius.y, (16 shl 4)
|
||||
mov pid_20E3A, al
|
||||
xor di, di
|
||||
jmp loc_1B221
|
||||
|
@ -31177,9 +31177,9 @@ loc_1B1CC:
|
|||
|
||||
loc_1B1E0:
|
||||
mov ax, [si+2]
|
||||
mov word_20E2E, ax
|
||||
mov _hitbox_origin_center.x, ax
|
||||
mov ax, [si+4]
|
||||
mov word_20E30, ax
|
||||
mov _hitbox_origin_center.y, ax
|
||||
call sub_158F5
|
||||
push word ptr [si+2]
|
||||
push word ptr [si+4]
|
||||
|
@ -31497,20 +31497,20 @@ loc_1B3CB:
|
|||
cmp byte ptr [si], 1
|
||||
jnz short loc_1B417
|
||||
mov ax, [si+2]
|
||||
sub ax, word_20E36
|
||||
cmp ax, 0E0h
|
||||
sub ax, _hitbox_right
|
||||
cmp ax, (14 shl 4)
|
||||
jg short loc_1B417
|
||||
mov ax, word_20E2E
|
||||
mov ax, _hitbox_origin_topleft.x
|
||||
sub ax, [si+2]
|
||||
cmp ax, 0E0h
|
||||
cmp ax, (14 shl 4)
|
||||
jg short loc_1B417
|
||||
mov ax, [si+4]
|
||||
sub ax, word_20E38
|
||||
cmp ax, 200h
|
||||
sub ax, _hitbox_bottom
|
||||
cmp ax, (32 shl 4)
|
||||
jg short loc_1B417
|
||||
mov ax, word_20E30
|
||||
mov ax, _hitbox_origin_topleft.y
|
||||
sub ax, [si+4]
|
||||
cmp ax, 0FF00h
|
||||
cmp ax, (-16 shl 4)
|
||||
jg short loc_1B417
|
||||
push word ptr [si+2]
|
||||
push word ptr [si+4]
|
||||
|
@ -32181,14 +32181,14 @@ loc_1B91F:
|
|||
jnz short loc_1B968
|
||||
mov bx, word_1F868
|
||||
mov ax, [bx+4]
|
||||
cmp ax, word_20E2E
|
||||
cmp ax, _hitbox_origin_topleft.x
|
||||
jl short loc_1B968
|
||||
cmp ax, word_20E36
|
||||
cmp ax, _hitbox_right
|
||||
jg short loc_1B968
|
||||
mov ax, [bx+6]
|
||||
cmp ax, word_20E30
|
||||
cmp ax, _hitbox_origin_topleft.y
|
||||
jl short loc_1B968
|
||||
cmp ax, word_20E38
|
||||
cmp ax, _hitbox_bottom
|
||||
jg short loc_1B968
|
||||
push word ptr [bx+4]
|
||||
push ax
|
||||
|
@ -32858,26 +32858,26 @@ loc_1BE81:
|
|||
mov bx, si
|
||||
add bx, bx
|
||||
mov ax, [bx+di]
|
||||
sub ax, word_20E36
|
||||
cmp ax, 0C0h
|
||||
sub ax, _hitbox_right
|
||||
cmp ax, (12 shl 4)
|
||||
jg short loc_1BED9
|
||||
mov bx, si
|
||||
add bx, bx
|
||||
mov ax, word_20E2E
|
||||
mov ax, _hitbox_origin_topleft.x
|
||||
sub ax, [bx+di]
|
||||
cmp ax, 0C0h
|
||||
cmp ax, (12 shl 4)
|
||||
jg short loc_1BED9
|
||||
mov bx, si
|
||||
add bx, bx
|
||||
mov ax, [bx+di+1Ah]
|
||||
sub ax, word_20E38
|
||||
cmp ax, 0C0h
|
||||
sub ax, _hitbox_bottom
|
||||
cmp ax, (12 shl 4)
|
||||
jg short loc_1BED9
|
||||
mov bx, si
|
||||
add bx, bx
|
||||
mov ax, word_20E30
|
||||
mov ax, _hitbox_origin_topleft.y
|
||||
sub ax, [bx+di+1Ah]
|
||||
cmp ax, 0C0h
|
||||
cmp ax, (12 shl 4)
|
||||
jg short loc_1BED9
|
||||
mov bx, si
|
||||
add bx, bx
|
||||
|
@ -33353,21 +33353,21 @@ kotohime_1C22E proc far
|
|||
jz short loc_1C291
|
||||
mov bx, word_1FE6A
|
||||
mov ax, [bx+2]
|
||||
sub ax, word_20E36
|
||||
cmp ax, 280h
|
||||
sub ax, _hitbox_right
|
||||
cmp ax, (40 shl 4)
|
||||
jg short loc_1C291
|
||||
mov ax, word_20E2E
|
||||
mov ax, _hitbox_origin_topleft.x
|
||||
sub ax, [bx+2]
|
||||
cmp ax, 280h
|
||||
cmp ax, (40 shl 4)
|
||||
jg short loc_1C291
|
||||
mov ax, [bx+4]
|
||||
cmp ax, word_20E30
|
||||
cmp ax, _hitbox_origin_topleft.y
|
||||
jl short loc_1C291
|
||||
cmp ax, word_20E38
|
||||
cmp ax, _hitbox_bottom
|
||||
jg short loc_1C291
|
||||
mov byte_26356, 1
|
||||
mov ax, word_20E2E
|
||||
add ax, word_20E32
|
||||
mov ax, _hitbox_origin_topleft.x
|
||||
add ax, _hitbox_radius.x
|
||||
push ax
|
||||
push word ptr [bx+4]
|
||||
mov al, pid_20E3A
|
||||
|
@ -33944,20 +33944,20 @@ loc_1C683:
|
|||
|
||||
loc_1C699:
|
||||
mov ax, [si]
|
||||
sub ax, word_20E36
|
||||
cmp ax, 0C0h
|
||||
sub ax, _hitbox_right
|
||||
cmp ax, (12 shl 4)
|
||||
jg short loc_1C6D8
|
||||
mov ax, word_20E2E
|
||||
mov ax, _hitbox_origin_topleft.x
|
||||
sub ax, [si]
|
||||
cmp ax, 0C0h
|
||||
cmp ax, (12 shl 4)
|
||||
jg short loc_1C6D8
|
||||
mov ax, [si+2]
|
||||
sub ax, word_20E38
|
||||
cmp ax, 0C0h
|
||||
sub ax, _hitbox_bottom
|
||||
cmp ax, (12 shl 4)
|
||||
jg short loc_1C6D8
|
||||
mov ax, word_20E30
|
||||
mov ax, _hitbox_origin_topleft.y
|
||||
sub ax, [si+2]
|
||||
cmp ax, 0C0h
|
||||
cmp ax, (12 shl 4)
|
||||
jg short loc_1C6D8
|
||||
push word ptr [si]
|
||||
push word ptr [si+2]
|
||||
|
@ -35549,12 +35549,14 @@ byte_20E2A db ?
|
|||
angle_20E2B db ?
|
||||
byte_20E2C db ?
|
||||
db ?
|
||||
word_20E2E dw ?
|
||||
word_20E30 dw ?
|
||||
word_20E32 dw ?
|
||||
word_20E34 dw ?
|
||||
word_20E36 dw ?
|
||||
word_20E38 dw ?
|
||||
public _hitbox
|
||||
_hitbox label byte
|
||||
_hitbox_origin_center label Point
|
||||
_hitbox_origin_topleft label Point
|
||||
Point <?>
|
||||
_hitbox_radius Point <?>
|
||||
_hitbox_right dw ?
|
||||
_hitbox_bottom dw ?
|
||||
pid_20E3A db ?
|
||||
evendata
|
||||
byte_20E3C db ?
|
||||
|
|
Loading…
Reference in New Issue