summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2017-03-23 14:55:24 -0700
committerMarcus Huderle <huderlem@gmail.com>2017-03-23 14:55:24 -0700
commit20ccf43a43543cd1f1474b0143b3cdb096d47978 (patch)
tree2645e4e22bf4f010680f9b605a45bb41c589a76d
parent7a27837af3f9c74b8a409a6c8f07fd8c8e51e0b2 (diff)
Label and dump Gengar and Diglett stages' game object collision data/routines
-rwxr-xr-xdata/collision/circle_collision_angles.bin8
-rwxr-xr-xdata/collision/gengar_collision_angles.bin19
-rwxr-xr-xdata/collision/haunter_collision_angles.bin7
-rwxr-xr-xmain.asm214
-rwxr-xr-xwram.asm78
5 files changed, 182 insertions, 144 deletions
diff --git a/data/collision/circle_collision_angles.bin b/data/collision/circle_collision_angles.bin
new file mode 100755
index 0000000..7783c2f
--- /dev/null
+++ b/data/collision/circle_collision_angles.bin
@@ -0,0 +1,8 @@
+ÿÿÿÿÿÿÿÿÿÿxz{|}~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿtvwxyz|}~ ÿÿÿÿÿÿÿÿÿÿÿÿÿstuvwyz{}~
+ ÿÿÿÿÿÿÿÿÿÿÿqrsuvwxz{|~ ÿÿÿÿÿÿÿÿÿpqrstuvxy{|~
+ ÿÿÿÿÿÿÿnopqrstvwyz|~
+ ÿÿÿÿÿmmnopqrsuvxz|}
+ ÿÿÿÿllmnopqrtuwy{}
+ ÿÿÿjkklmnopqstvx{} ÿÿiijkllmopqsuwz}
+ ÿghhiijklmnprtvy| ffgghiijkmnprux|
+ eeeffghhiklnpsv{ cdddeeffghikmpty bbccccddeefhilpv aaaaaabbbbcdefip```_``````````_`1^^^^^^]]]]\[ZYVO?/(%$#""!!!!! ]]\\\\[[ZZYWVSOI?6/+(&%$$##"""""\[[[ZZYYXWVTROKF?93/,*('&%%$$###ZZZYYXWWVTSQOLID?:62/-+)('&&%%$$YYXXWVVTTRQOMJGC?;741/-+*)(''&&&ÿWWVVUTSRQOMKIFC?<9631/-,+*)(''ÿÿVVUTTSRPONLJHEB?<:7520/-,++))(ÿÿÿTTSRQPONLKIGDB?=:86420/.-,+*ÿÿÿÿSSRQPONMKJHFDB?=;975310/.-,+ÿÿÿÿÿRQPONMLJIGECB?=;9764310/.-ÿÿÿÿÿÿÿPONMLKJHFECA?><:8653210/ÿÿÿÿÿÿÿÿÿNMLKJIGFDCA?><:9764321ÿÿÿÿÿÿÿÿÿÿÿLLKIHGFDCA?><;986543ÿÿÿÿÿÿÿÿÿÿÿÿÿKJIHFEDBA?><;:8764ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿGFECBA?>=;:9ÿÿÿÿÿÿÿÿÿÿ \ No newline at end of file
diff --git a/data/collision/gengar_collision_angles.bin b/data/collision/gengar_collision_angles.bin
new file mode 100755
index 0000000..1e622b0
--- /dev/null
+++ b/data/collision/gengar_collision_angles.bin
@@ -0,0 +1,19 @@
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿxyz{|}~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿvwxyz{|}~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿtuvwxyz{|}~ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿrrstuvwyz{|}~
+ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿpqrstuvwxz{|}~
+ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿnopqrtuvwxy{|}~
+ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿmnopqrstuwxyz|}~
+ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿklmnopqstuvxyz{}~
+ ÿÿÿÿÿÿÿÿÿÿÿÿÿjklmnopqrsuvwyz{}~
+ ÿÿÿÿÿÿÿÿÿÿÿÿjjklmnoprstvwxz{}~
+ ÿÿÿÿÿÿÿÿÿÿÿijjkklmopqrtuvxy{|~
+ ÿÿÿÿÿÿÿÿÿjiijjklmnoqrsuvxy{|~
+ ÿÿÿÿÿÿÿÿhiiijjklmopqstvwyz|~ ÿÿÿÿÿÿÿfhhiiijjkmnoqrtuwxz|~
+ ÿÿÿÿÿÿghhhiiijklmnpqsuvxz|~
+ ÿÿÿÿÿÿgghhhiiijklnoqrtvxz|} ÿÿÿÿÿgggghhhiiijkmnprsuwy{}
+ ÿÿÿÿfgggghhhiijklmoqsuwy{}
+ ÿÿÿÿfffggghhhiijklnprtvx{} ÿÿÿfffffgggghhiijkmoqsuxz}
+ ÿÿeeeffffggghhiijlnpruwz}
+ ÿÿeeeeefffggghhiikloqtvy| ÿÿdddeeeefffgghhijkmpsvy| ÿcddddeeeefffgghhijlnqux|
+cccdddddeeeffgghhijmpsw{ ccccccddddeeeffghhiknrv{ bbccccccddddeeffgghilpuz
+bbbbbbcccccdddeeffghjmsy aabbbbbbbcccccddeefghjpwaaaaaaaabbbbbcccddefghlu
+`aaaaaaaaaaaabbbbccdefhp`````````````aaaaaabbceh__```_```_`__``````__`__)______________^^^^^]]\ZW?($#"!!! _^^^^^^^^^^^^]]]]\\[ZYWO?.(&$##"""!!!!!!! ^^^^^^^^]]]]]\\\[[ZYXWSJ?3*(&%$$##""""!!!!!!!!!!^^]]]]]]]]\\\\[[ZZYXWUOH?6.)('&%$$###""""""!!!!!]]]]]]]\\\\[[[ZZYYXWURLF?81+)('&%%$$####"""""""!]]\\\\\\[[[[ZZYYXXWVSOJE?93.*)('&&%%$$$####"""""\\\\\[[[[[ZZZYYXWWVTQMID?:50,*)('&&%%%$$$######"\\\[[[[[ZZZYYXXWWVUROLHD?;62.+)((''&&%%$$$$$####ÿ[[[[[ZZZYYYXXWWVUSQNJGC?;730,*)((''&&%%%$$$$$#ÿÿ[[[ZZZZYYYXXWWVUTROLIFC?<851.+*)((''&&&%%%$$$$ÿÿZZZZZYYYXXXWWVVTSPNKIFC?<952/-+))((''&&&%%%%$$ÿÿZZZYYYYXXXWWVVUSQOMJHEB?<9631.,*))(('''&&&%%%%ÿÿÿZYYYXXXWWWVVUTRPNLJGEB?=:742/-+*))(('''&&&%%ÿÿÿÿYYYXXXWWWVVUTSQOMKIGDB?=:8530.,+*))(('''&&&&ÿÿÿÿYYXXXWWWVVUTSRPNLJHFDB?=:8631/-+*))((('''&&&ÿÿÿÿÿXXXWWWVVVUTRQONLJHFDB?=;96420.,+*))(((''''ÿÿÿÿÿÿXXWWWVVVUTSQPNMKIGEDB?=;97531/-,+*))((('''ÿÿÿÿÿÿYWWWVVVUTSRQONLJIGECA?=;975320.,+**))((((&ÿÿÿÿÿÿÿWWVVVUTTSQPOMKJHGECA?=<:86421/-,+*)))(((ÿÿÿÿÿÿÿÿUVVVUUTSRQONLKIHFECA?><:865310.-++*)))(*ÿÿÿÿÿÿÿÿÿVVVUTSRQPOMLJIGFDCA?><:875320/-,+**))(ÿÿÿÿÿÿÿÿÿÿÿUUTTSRPONMKJIGFDCA?><:976421/.-,+*))ÿÿÿÿÿÿÿÿÿÿÿÿUTTSRQPOMLKJHGEDBA?><;9764320/-,+**)ÿÿÿÿÿÿÿÿÿÿÿÿÿTSRQPONMLJIHGEDBA?><;9865321/.-,+*ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿSRQPONLKJIHFEDBA?>=;:8754310/.,+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿQPONMLKJIGFECBA?>=;:8764321/.-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPONMLJIHGFECBA?>=;:97653210/ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿNMLKJIHGFDCBA?>=;:98654310ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿLKJIHFEDCBA?>=<:987543ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿIHGFEDCBA?>=<;9876ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿGFEDCBA?>=<;98ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ \ No newline at end of file
diff --git a/data/collision/haunter_collision_angles.bin b/data/collision/haunter_collision_angles.bin
new file mode 100755
index 0000000..5f98355
--- /dev/null
+++ b/data/collision/haunter_collision_angles.bin
@@ -0,0 +1,7 @@
+ÿÿÿÿÿÿÿÿÿÿqknsy~ k ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿrksxyz|}~ 
+ÿÿÿÿÿÿÿÿÿÿÿÿÿmruvwyz{}~ ÿÿÿÿÿÿÿÿÿÿÿ?rstvwxz{|~ ?ÿÿÿÿÿÿÿÿÿjqrstuvxy{|~
+ ÿÿÿÿÿÿÿkopqrstvwyz|~ ÿÿÿÿÿlmnopqrsuvxz|~
+ ÿÿÿÿjlmnopqrtuwy{}
+ ÿÿÿjkklmnopqstvx{} ÿÿjjjkklmopqsuwz}
+ ÿghiijjklmnprtvy| ighhhijjkmnprux|
+ ?gggghhijklnpsv{ ?iffffggghijkmpty feeeeefffgghjlpv ddddddddeeeffgjpcccccccccccccccc(cbbbaaaaaa``_^\W?'# eaaa````__^]\ZWO?.'$"!! f``___^^]]\[YWSJ?3*'%$#"!! i__^^^]]\[ZYWUOH?6.)'%$##"!! @^^]]\\[[ZYWVRLF?81+)'&%$##"!!!?g]]\\[[ZYXWVSOJE?93.*('&%$$##""b\\[[ZZYXWVTQMID?:50,)('&%%$###ÿ^[[ZYYXWVUROLHD?;62.+)('&%%$$!ÿÿfZZYYXWVUSQNJGC?;730,*)('&&%$ÿÿjZYYXWVVTROLIFC?<851.+))('&&%ÿÿ_YXXWWVTSPNKIFC?<952/-+)(('&&!ÿÿÿ`XWWVUSQOMJHEB?<9631.,*)(('ÿÿÿÿiWWVUTRPNLJGEB?=:742/-+*)((ÿÿÿÿZYVUTSQOMKIGDB?=:8530.,+))#&ÿÿÿÿÿ@VTSRPNLJHFDB?=:8631/-+*)ÿÿÿÿÿÿPXTRQONLJHFDB?=;96420.,+'.ÿÿÿÿÿÿÿASQPNMKIGEDB?=;97531/-,>ÿÿÿÿÿÿÿÿÿEQONLJIGECB?=;975320.:ÿÿÿÿÿÿÿÿÿÿNJOMLJHGECA?=<:8642151ÿÿÿÿÿÿÿÿÿÿÿLHLKIHFECA?><:865373ÿÿÿÿÿÿÿÿÿÿÿÿÿMCJIGFDCA?><:875<2ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿAFGFDCA?><:9:>ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿD?BAA?>>?<ÿÿÿÿÿÿÿÿÿÿÿ \ No newline at end of file
diff --git a/main.asm b/main.asm
index e19551d..29c9547 100755
--- a/main.asm
+++ b/main.asm
@@ -18623,44 +18623,44 @@ Func_1818b: ; 0x1818b
ret
CheckGengarBonusStageGameObjectCollisions: ; 0x181b1
- call Func_181be
- call Func_18259
- call Func_182e4
- call Func_18350
+ call CheckGengarBonusStageGastlyCollision
+ call CheckGengarBonusStageHaunterCollision
+ call CheckGengarBonusStageGengarCollision
+ call GengarBonusStageGravestonesCollision
ret
-Func_181be: ; 0x181be
+CheckGengarBonusStageGastlyCollision: ; 0x181be
ld a, [wd659]
and a
ret z
- ld a, [wd65f]
+ ld a, [wGastly1XPos + 1]
ld b, a
- ld a, [wd661]
+ ld a, [wGastly1YPos + 1]
add $10
ld c, a
- ld a, [wd65b]
- call Func_1820d
+ ld a, [wGastly1AnimationState]
+ call CheckSingleGastlyCollision
ld a, $1
- jr c, .asm_181fe
- ld a, [wd668]
+ jr c, .hitGastly
+ ld a, [wGastly2XPos + 1]
ld b, a
- ld a, [wd66a]
+ ld a, [wGastly2YPos + 1]
add $10
ld c, a
- ld a, [wd664]
- call Func_1820d
+ ld a, [wGastly2AnimationState]
+ call CheckSingleGastlyCollision
ld a, $2
- jr c, .asm_181fe
- ld a, [wd671]
+ jr c, .hitGastly
+ ld a, [wGastly3XPos + 1]
ld b, a
- ld a, [wd673]
+ ld a, [wGastly3YPos + 1]
add $10
ld c, a
- ld a, [wd66d]
- call Func_1820d
+ ld a, [wGastly3AnimationState]
+ call CheckSingleGastlyCollision
ld a, $3
ret nc
-.asm_181fe
+.hitGastly
ld [wTriggeredGameObjectIndex], a
ld [wd657], a
add $4
@@ -18668,18 +18668,18 @@ Func_181be: ; 0x181be
ld [wd658], a
ret
-Func_1820d: ; 0x1820d
+CheckSingleGastlyCollision: ; 0x1820d
cp $4
- jr z, .asm_18257
+ jr z, .noCollision
ld a, [wBallXPos + 1]
sub b
cp $20
- jr nc, .asm_18257
+ jr nc, .noCollision
ld b, a
ld a, [wBallYPos + 1]
sub c
cp $20
- jr nc, .asm_18257
+ jr nc, .noCollision
ld c, a
ld e, c
ld d, $0
@@ -18696,12 +18696,12 @@ Func_1820d: ; 0x1820d
ld l, b
ld h, $0
add hl, de
- ld de, Data_e9100
+ ld de, CircularCollisionAngles
add hl, de
- ld a, BANK(Data_e9100)
+ ld a, BANK(CircularCollisionAngles)
call ReadByteFromBank
bit 7, a
- jr nz, .asm_18257
+ jr nz, .noCollision
sla a
ld [wd7ea], a
ld a, $1
@@ -18709,35 +18709,35 @@ Func_1820d: ; 0x1820d
scf
ret
-.asm_18257
+.noCollision
and a
ret
-Func_18259: ; 0x18259
+CheckGengarBonusStageHaunterCollision: ; 0x18259
ld a, [wd67e]
and a
ret z
- ld a, [wd684]
+ ld a, [wHaunter1XPos + 1]
add $fe
ld b, a
- ld a, [wd686]
+ ld a, [wHaunter1YPos + 1]
add $c
ld c, a
- ld a, [wd680]
- call Func_18298
+ ld a, [wHaunter1AnimationState]
+ call CheckSingleHaunterCollision
ld a, $1
- jr c, .asm_18289
- ld a, [wd68d]
+ jr c, .hitHaunter
+ ld a, [wHaunter2XPos + 1]
add $fe
ld b, a
- ld a, [wd68f]
+ ld a, [wHaunter2YPos + 1]
add $c
ld c, a
- ld a, [wd689]
- call Func_18298
+ ld a, [wHaunter2AnimationState]
+ call CheckSingleHaunterCollision
ld a, $2
ret nc
-.asm_18289
+.hitHaunter
ld [wTriggeredGameObjectIndex], a
ld [wd67c], a
add $7
@@ -18745,18 +18745,18 @@ Func_18259: ; 0x18259
ld [wd67d], a
ret
-Func_18298: ; 0x18298
+CheckSingleHaunterCollision: ; 0x18298
cp $5
- jr z, .asm_182e2
+ jr z, .noCollision
ld a, [wBallXPos + 1]
sub b
cp $20
- jr nc, .asm_182e2
+ jr nc, .noCollision
ld b, a
ld a, [wBallYPos + 1]
sub c
cp $28
- jr nc, .asm_182e2
+ jr nc, .noCollision
ld c, a
ld e, c
ld d, $0
@@ -18773,12 +18773,12 @@ Func_18298: ; 0x18298
ld l, b
ld h, $0
add hl, de
- ld de, Data_e8c00
+ ld de, HaunterCollisionAngles
add hl, de
- ld a, BANK(Data_e8c00)
+ ld a, BANK(HaunterCollisionAngles)
call ReadByteFromBank
bit 7, a
- jr nz, .asm_182e2
+ jr nz, .noCollision
sla a
ld [wd7ea], a
ld a, $1
@@ -18786,20 +18786,20 @@ Func_18298: ; 0x18298
scf
ret
-.asm_182e2
+.noCollision
and a
ret
-Func_182e4: ; 0x182e4
+CheckGengarBonusStageGengarCollision: ; 0x182e4
ld a, [wd698]
and a
ret z
- ld a, [wd69e]
+ ld a, [wGengarXPos + 1]
ld b, a
- ld a, [wd6a0]
+ ld a, [wGengarYPos + 1]
add $c
ld c, a
- call Func_18308
+ call CheckGiantGengarCollision
ld a, $1
ret nc
ld [wTriggeredGameObjectIndex], a
@@ -18809,16 +18809,16 @@ Func_182e4: ; 0x182e4
ld [wd697], a
ret
-Func_18308: ; 0x18308
+CheckGiantGengarCollision: ; 0x18308
ld a, [wBallXPos + 1]
sub b
cp $30
- jr nc, .asm_1834e
+ jr nc, .noCollision
ld b, a
ld a, [wBallYPos + 1]
sub c
cp $40
- jr nc, .asm_1834e
+ jr nc, .noCollision
ld c, a
ld a, c
sla a
@@ -18836,12 +18836,12 @@ Func_18308: ; 0x18308
ld l, b
ld h, $0
add hl, de
- ld de, Data_e8000
+ ld de, GengarCollisionAngles
add hl, de
- ld a, BANK(Data_e8000)
+ ld a, BANK(GengarCollisionAngles)
call ReadByteFromBank
bit 7, a
- jr nz, .asm_1834e
+ jr nz, .noCollision
sla a
ld [wd7ea], a
ld a, $1
@@ -18849,22 +18849,29 @@ Func_18308: ; 0x18308
scf
ret
-.asm_1834e
+.noCollision
and a
ret
-Func_18350: ; 0x18350
- ld de, Data_18368
- ld hl, Data_1835d
- ld bc, wd654
+GengarBonusStageGravestonesCollision: ; 0x18350
+ ld de, GengarBonusStageGravestonesCollisionData
+ ld hl, GengarBonusStageGravestonesCollisionAttributes
+ ld bc, wWhichGravestone
and a
jp HandleGameObjectCollision
-Data_1835d:
- dr $1835d, $18368
+GengarBonusStageGravestonesCollisionAttributes:
+ db $00 ; flat list
+ db $19, $1A, $1B, $1C, $27, $1D, $1E, $1F, $20
+ db $FF ; terminator
-Data_18368:
- dr $18368, $18377
+GengarBonusStageGravestonesCollisionData:
+ db $11, $11
+ db $01, $24, $52
+ db $02, $44, $3A
+ db $03, $74, $5A
+ db $04, $7C, $32
+ db $FF ; terminator
Func_18377: ; 0x18377
call Func_18464
@@ -19440,12 +19447,12 @@ Func_187b1: ; 0x187b1
ld [wd7bd], a
ld a, $80
ld [wFlipperCollision], a
- ld a, [wd69f]
+ ld a, [wGengarYPos]
add $0
- ld [wd69f], a
- ld a, [wd6a0]
+ ld [wGengarYPos], a
+ ld a, [wGengarYPos + 1]
adc $ff
- ld [wd6a0], a
+ ld [wGengarYPos + 1], a
.asm_1885d
ld a, [wd69c]
cp $2
@@ -19487,28 +19494,28 @@ Func_18876: ; 0x18876
ld a, [wd69c]
and a
jr nz, .asm_188da
- ld a, [wd6a0]
+ ld a, [wGengarYPos + 1]
add $80
cp $a0
jr nc, .asm_188da
ld a, [wd69a]
and a
jr z, .asm_188ca
- ld a, [wd69f]
+ ld a, [wGengarYPos]
add $0
- ld [wd69f], a
- ld a, [wd6a0]
+ ld [wGengarYPos], a
+ ld a, [wGengarYPos + 1]
adc $3
- ld [wd6a0], a
+ ld [wGengarYPos + 1], a
jr .asm_188da
.asm_188ca
- ld a, [wd69f]
+ ld a, [wGengarYPos]
add $0
- ld [wd69f], a
- ld a, [wd6a0]
+ ld [wGengarYPos], a
+ ld a, [wGengarYPos + 1]
adc $1
- ld [wd6a0], a
+ ld [wGengarYPos + 1], a
.asm_188da
ld a, [wd69a]
ld [wd6a3], a
@@ -19548,21 +19555,21 @@ Func_188e1: ; 0x188e1
ld a, [wd69a]
and a
jr z, .asm_18935
- ld a, [wd69f]
+ ld a, [wGengarYPos]
add $0
- ld [wd69f], a
- ld a, [wd6a0]
+ ld [wGengarYPos], a
+ ld a, [wGengarYPos + 1]
adc $fd
- ld [wd6a0], a
+ ld [wGengarYPos + 1], a
jr .asm_18945
.asm_18935
- ld a, [wd69f]
+ ld a, [wGengarYPos]
add $0
- ld [wd69f], a
- ld a, [wd6a0]
+ ld [wGengarYPos], a
+ ld a, [wGengarYPos + 1]
adc $ff
- ld [wd6a0], a
+ ld [wGengarYPos + 1], a
.asm_18945
ld a, [wd69a]
ld [wd6a3], a
@@ -19750,11 +19757,11 @@ Data_18b32:
dr $18b32, $18d34
Func_18d34: ; 0x18d34
- ld a, [wd654]
+ ld a, [wWhichGravestone]
and a
jr z, .asm_18d71
xor a
- ld [wd654], a
+ ld [wWhichGravestone], a
ld a, [wd7be]
and a
jr nz, .asm_18d71
@@ -21142,11 +21149,11 @@ Func_19a96: ; 0x19a96
ret
CheckDiglettBonusStageGameObjectCollisions: ; 0x19ab3
- call Func_19aba
- call Func_19b4b
+ call CheckDiglettBonusStageDiglettHeadsCollision
+ call CheckDiglettBonusStageDugtrioCollision
ret
-Func_19aba: ; 0x19aba
+CheckDiglettBonusStageDiglettHeadsCollision: ; 0x19aba
ld a, [wTriggeredGameObject]
inc a
jr nz, .asm_19b16
@@ -21155,10 +21162,10 @@ Func_19aba: ; 0x19aba
jr nz, .asm_19b16
ld a, [wd7e9]
and a
- ret z
+ ret z ; is a collision happening?
ld a, [wCurCollisionAttribute]
sub $19
- ret c
+ ret c ; is the pinball colliding with a Diglett head?
cp $33
ret nc
ld c, a
@@ -21206,7 +21213,7 @@ Func_19aba: ; 0x19aba
Data_19b18:
dr $19b18, $19b4b
-Func_19b4b: ; 0x19b4b
+CheckDiglettBonusStageDugtrioCollision: ; 0x19b4b
ld a, [wTriggeredGameObject]
inc a
jr nz, .asm_19b86
@@ -31270,9 +31277,9 @@ Func_25c12: ; 0x25c12
ld l, b
ld h, $0
add hl, de
- ld de, Data_e9100
+ ld de, CircularCollisionAngles
add hl, de
- ld a, BANK(Data_e9100)
+ ld a, BANK(CircularCollisionAngles)
call ReadByteFromBank
bit 7, a
jr nz, .asm_25c58
@@ -44604,14 +44611,15 @@ Data_e4000:
dr $e4000, $e8000 ; 0xe4000
SECTION "bank3a", ROMX, BANK[$3a]
-Data_e8000:
- dr $e8000, $e8c00 ; 0xe8000
-Data_e8c00:
- dr $e8c00, $e9100 ; 0xe8000
+GengarCollisionAngles:
+ INCBIN "data/collision/gengar_collision_angles.bin"
+
+HaunterCollisionAngles:
+ INCBIN "data/collision/haunter_collision_angles.bin"
-Data_e9100:
- dr $e9100, $e9500 ; 0xe8000
+CircularCollisionAngles: ; 0xe9100
+ INCBIN "data/collision/circle_collision_angles.bin"
Data_e9500:
dr $e9500, $e9c80 ; 0xe8000
diff --git a/wram.asm b/wram.asm
index 438d656..bd732ec 100755
--- a/wram.asm
+++ b/wram.asm
@@ -1067,7 +1067,8 @@ wd652:: ; 0xd652
wd653:: ; 0xd653
ds $1
-wd654:: ; 0xd654
+wWhichGravestone:: ; 0xd654
+; second byte is unused
ds $2
wd656:: ; 0xd656
@@ -1082,47 +1083,44 @@ wd658:: ; 0xd658
wd659:: ; 0xd659
ds $2
-wd65b:: ; 0xd65b
+wGastly1AnimationState:: ; 0xd65b
ds $2
wd65d:: ; 0xd65d
- ds $2
+ ds $1
-wd65f:: ; 0xd65f
+wGastly1XPos:: ; 0xd65e
+ ds $2
+wGastly1YPos:: ; 0xd660
ds $2
-
-wd661:: ; 0xd661
- ds $1
wd662:: ; 0xd662
ds $2
-wd664:: ; 0xd664
+wGastly2AnimationState:: ; 0xd664
ds $2
wd666:: ; 0xd666
- ds $2
+ ds $1
-wd668:: ; 0xd668
+wGastly2XPos:: ; 0xd668
+ ds $2
+wGastly2YPos:: ; 0xd66a
ds $2
-
-wd66a:: ; 0xd66a
- ds $1
wd66b:: ; 0xd66b
ds $2
-wd66d:: ; 0xd66d
+wGastly3AnimationState:: ; 0xd66d
ds $2
wd66f:: ; 0xd66f
- ds $2
+ ds $1
-wd671:: ; 0xd671
+wGastly3XPos:: ; 0xd671
+ ds $2
+wGastly3YPos:: ; 0xd673
ds $2
-
-wd673:: ; 0xd673
- ds $1
wd674:: ; 0xd674
ds $1
@@ -1148,32 +1146,34 @@ wd67d:: ; 0xd67d
wd67e:: ; 0xd67e
ds $2
-wd680:: ; 0xd680
- ds $2
+wHaunter1AnimationState:: ; 0xd680
+ ds $1
+
+ ds $1
wd682:: ; 0xd682
- ds $2
+ ds $1
-wd684:: ; 0xd684
+wHaunter1XPos:: ; 0xd683
+ ds $2
+wHaunter1YPos:: ; 0xd685
ds $2
-
-wd686:: ; 0xd686
- ds $1
wd687:: ; 0xd687
ds $2
-wd689:: ; 0xd689
- ds $2
+wHaunter2AnimationState:: ; 0xd689
+ ds $1
+
+ ds $1
wd68b:: ; 0xd68b
- ds $2
+ ds $1
-wd68d:: ; 0xd68d
+wHaunter2XPos:: ; 0xd68c
+ ds $2
+wHaunter2YPos:: ; 0xd68e
ds $2
-
-wd68f:: ; 0xd68f
- ds $1
wd690:: ; 0xd690
ds $1
@@ -1203,16 +1203,12 @@ wd69b:: ; 0xd69b
ds $1
wd69c:: ; 0xd69c
- ds $2
-
-wd69e:: ; 0xd69e
ds $1
-wd69f:: ; 0xd69f
- ds $1
-
-wd6a0:: ; 0xd6a0
- ds $1
+wGengarXPos:: ; 0xd69d
+ ds $2
+wGengarYPos:: ; 0xd69f
+ ds 2
wd6a1:: ; 0xd6a1
ds $1