Rename projectiles

This commit is contained in:
octorock
2021-10-16 15:25:15 +02:00
parent b1e3830872
commit 6630a82057
128 changed files with 1426 additions and 1910 deletions
@@ -35,6 +35,6 @@ _080AC8FE:
bl InitializeAnimation
_080AC920:
adds r0, r4, #0
bl sub_080AC8C4
bl GyorgMaleEnergyProjectile_OnTick
pop {r4, pc}
.syntax divided
@@ -4,6 +4,13 @@
.section .rodata
.align 2
gUnk_0812A3E0:: @ 0812A3E0
.incbin "baserom.gba", 0x12A3E0, 0x0000014
gUnk_0812A3F4:: @ 0812A3F4
.4byte gUnk_0812A3E0
.4byte 00000000
gUnk_0812A3FC:: @ 0812A3FC
.incbin "baserom.gba", 0x12A3FC, 0x0000014
-197
View File
@@ -1,197 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_081293B8:: @ 081293B8
.incbin "baserom.gba", 0x1293B8, 0x0000014
gUnk_081293CC:: @ 081293CC
.4byte sub_080A7FB4
.4byte sub_080A801C
.4byte sub_080A7FD8
.4byte sub_080A7FEC
.4byte sub_080A7FEC
gUnk_081293E0:: @ 081293E0
.4byte gUnk_08129460
.4byte gUnk_081294A8
.4byte gUnk_081294F0
.4byte gUnk_08129538
gUnk_081293F0:: @ 081293F0
.4byte gUnk_08129550
.4byte gUnk_08129558
.4byte gUnk_08129560
.4byte gUnk_08129568
gUnk_08129400:: @ 08129400
.4byte gUnk_08129590
.4byte gUnk_081295A0
.4byte gUnk_081295B0
.4byte gUnk_081295C0
gUnk_08129410:: @ 08129410
.4byte gUnk_08129598
.4byte gUnk_081295A8
.4byte gUnk_081295B8
.4byte gUnk_081295C8
gUnk_08129420:: @ 08129420
.4byte gUnk_08129570
.4byte gUnk_08129578
.4byte gUnk_08129580
.4byte gUnk_08129588
gUnk_08129430:: @ 08129430
.incbin "baserom.gba", 0x129430, 0x0000008
gUnk_08129438:: @ 08129438
.incbin "baserom.gba", 0x129438, 0x0000008
gUnk_08129440:: @ 08129440
.incbin "baserom.gba", 0x129440, 0x0000008
gUnk_08129448:: @ 08129448
.incbin "baserom.gba", 0x129448, 0x0000008
gUnk_08129450:: @ 08129450
.incbin "baserom.gba", 0x129450, 0x0000008
gUnk_08129458:: @ 08129458
.incbin "baserom.gba", 0x129458, 0x0000008
gUnk_08129460:: @ 08129460
.4byte gUnk_08129430
.4byte gUnk_08129438
.4byte gUnk_08129440
.4byte gUnk_08129448
.4byte gUnk_08129450
.4byte gUnk_08129458
gUnk_08129478:: @ 08129478
.incbin "baserom.gba", 0x129478, 0x0000008
gUnk_08129480:: @ 08129480
.incbin "baserom.gba", 0x129480, 0x0000008
gUnk_08129488:: @ 08129488
.incbin "baserom.gba", 0x129488, 0x0000008
gUnk_08129490:: @ 08129490
.incbin "baserom.gba", 0x129490, 0x0000008
gUnk_08129498:: @ 08129498
.incbin "baserom.gba", 0x129498, 0x0000008
gUnk_081294A0:: @ 081294A0
.incbin "baserom.gba", 0x1294A0, 0x0000008
gUnk_081294A8:: @ 081294A8
.4byte gUnk_08129478
.4byte gUnk_08129480
.4byte gUnk_08129488
.4byte gUnk_08129490
.4byte gUnk_08129498
.4byte gUnk_081294A0
gUnk_081294C0:: @ 081294C0
.incbin "baserom.gba", 0x1294C0, 0x0000008
gUnk_081294C8:: @ 081294C8
.incbin "baserom.gba", 0x1294C8, 0x0000008
gUnk_081294D0:: @ 081294D0
.incbin "baserom.gba", 0x1294D0, 0x0000008
gUnk_081294D8:: @ 081294D8
.incbin "baserom.gba", 0x1294D8, 0x0000008
gUnk_081294E0:: @ 081294E0
.incbin "baserom.gba", 0x1294E0, 0x0000008
gUnk_081294E8:: @ 081294E8
.incbin "baserom.gba", 0x1294E8, 0x0000008
gUnk_081294F0:: @ 081294F0
.4byte gUnk_081294C0
.4byte gUnk_081294C8
.4byte gUnk_081294D0
.4byte gUnk_081294D8
.4byte gUnk_081294E0
.4byte gUnk_081294E8
gUnk_08129508:: @ 08129508
.incbin "baserom.gba", 0x129508, 0x0000008
gUnk_08129510:: @ 08129510
.incbin "baserom.gba", 0x129510, 0x0000008
gUnk_08129518:: @ 08129518
.incbin "baserom.gba", 0x129518, 0x0000008
gUnk_08129520:: @ 08129520
.incbin "baserom.gba", 0x129520, 0x0000008
gUnk_08129528:: @ 08129528
.incbin "baserom.gba", 0x129528, 0x0000008
gUnk_08129530:: @ 08129530
.incbin "baserom.gba", 0x129530, 0x0000008
gUnk_08129538:: @ 08129538
.4byte gUnk_08129508
.4byte gUnk_08129510
.4byte gUnk_08129518
.4byte gUnk_08129520
.4byte gUnk_08129528
.4byte gUnk_08129530
gUnk_08129550:: @ 08129550
.incbin "baserom.gba", 0x129550, 0x0000008
gUnk_08129558:: @ 08129558
.incbin "baserom.gba", 0x129558, 0x0000008
gUnk_08129560:: @ 08129560
.incbin "baserom.gba", 0x129560, 0x0000008
gUnk_08129568:: @ 08129568
.incbin "baserom.gba", 0x129568, 0x0000008
gUnk_08129570:: @ 08129570
.incbin "baserom.gba", 0x129570, 0x0000008
gUnk_08129578:: @ 08129578
.incbin "baserom.gba", 0x129578, 0x0000008
gUnk_08129580:: @ 08129580
.incbin "baserom.gba", 0x129580, 0x0000008
gUnk_08129588:: @ 08129588
.incbin "baserom.gba", 0x129588, 0x0000008
gUnk_08129590:: @ 08129590
.incbin "baserom.gba", 0x129590, 0x0000008
gUnk_08129598:: @ 08129598
.incbin "baserom.gba", 0x129598, 0x0000008
gUnk_081295A0:: @ 081295A0
.incbin "baserom.gba", 0x1295A0, 0x0000008
gUnk_081295A8:: @ 081295A8
.incbin "baserom.gba", 0x1295A8, 0x0000008
gUnk_081295B0:: @ 081295B0
.incbin "baserom.gba", 0x1295B0, 0x0000008
gUnk_081295B8:: @ 081295B8
.incbin "baserom.gba", 0x1295B8, 0x0000008
gUnk_081295C0:: @ 081295C0
.incbin "baserom.gba", 0x1295C0, 0x0000008
gUnk_081295C8:: @ 081295C8
.incbin "baserom.gba", 0x1295C8, 0x0000008
-18
View File
@@ -1,18 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_081295D0:: @ 081295D0
.4byte sub_080A804C
.4byte sub_080A8064
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
gUnk_081295E4:: @ 081295E4
.4byte sub_080A8088
.4byte sub_080A80A0
.4byte sub_080A80F4
.4byte sub_080A8118
-33
View File
@@ -1,33 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08129AE0:: @ 08129AE0
.4byte sub_080A9A1C
.4byte sub_080A9A34
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
.4byte sub_080A9A64
gUnk_08129AF8:: @ 08129AF8
.4byte sub_080A9ACC
.4byte sub_080A9B24
.4byte sub_080A9B54
.4byte sub_080A9B80
gUnk_08129B08:: @ 08129B08
.4byte sub_080A9A94
.4byte sub_080A9AA4
.4byte sub_080A9AAC
.4byte sub_080A9AB4
.4byte nullsub_128
.4byte sub_080A9AC4
gUnk_08129B20:: @ 08129B20
.incbin "baserom.gba", 0x129B20, 0x0000030
gUnk_08129B50:: @ 08129B50
.incbin "baserom.gba", 0x129B50, 0x0000008
-23
View File
@@ -1,23 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08129B58:: @ 08129B58
.4byte sub_080A9CD4
.4byte nullsub_539
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
.4byte sub_080A9CF0
gUnk_08129B70:: @ 08129B70
.4byte sub_080A9D6C
.4byte sub_080A9D80
gUnk_08129B78:: @ 08129B78
.4byte sub_080A9D20
.4byte nullsub_540
.4byte sub_080A9D2C
-17
View File
@@ -1,17 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08129BEC:: @ 08129BEC
.4byte sub_080A9DC0
.4byte sub_080A9DD8
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
gUnk_08129C00:: @ 08129C00
.4byte sub_080A9DFC
.4byte sub_080A9E14
-63
View File
@@ -1,63 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08129C7C:: @ 08129C7C
.4byte sub_080A9E94
.4byte sub_080A9EBC
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
gUnk_08129C90:: @ 08129C90
.4byte sub_080A9F50
.4byte sub_080A9F90
.4byte sub_080A9FD0
.4byte sub_080AA044
.4byte sub_080AA110
gUnk_08129CA4:: @ 08129CA4
.incbin "baserom.gba", 0x129CA4, 0x0000008
gUnk_08129CAC:: @ 08129CAC
.incbin "baserom.gba", 0x129CAC, 0x0000008
gUnk_08129CB4:: @ 08129CB4
.incbin "baserom.gba", 0x129CB4, 0x0000008
gUnk_08129CBC:: @ 08129CBC
.incbin "baserom.gba", 0x129CBC, 0x0000008
gUnk_08129CC4:: @ 08129CC4
.incbin "baserom.gba", 0x129CC4, 0x0000008
gUnk_08129CCC:: @ 08129CCC
.incbin "baserom.gba", 0x129CCC, 0x0000008
gUnk_08129CD4:: @ 08129CD4
.incbin "baserom.gba", 0x129CD4, 0x0000008
gUnk_08129CDC:: @ 08129CDC
.incbin "baserom.gba", 0x129CDC, 0x0000008
gUnk_08129CE4:: @ 08129CE4
.incbin "baserom.gba", 0x129CE4, 0x0000008
gUnk_08129CEC:: @ 08129CEC
.incbin "baserom.gba", 0x129CEC, 0x0000008
gUnk_08129CF4:: @ 08129CF4
.4byte gUnk_08129CB4
.4byte gUnk_08129CBC
.4byte gUnk_08129CC4
.4byte gUnk_08129CCC
.4byte gUnk_08129CD4
.4byte gUnk_08129CDC
.4byte gUnk_08129CE4
.4byte gUnk_08129CEC
gUnk_08129D14:: @ 08129D14
.incbin "baserom.gba", 0x129D14, 0x0000008
-25
View File
@@ -1,25 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08129FB8:: @ 08129FB8
.4byte sub_080AA41C
.4byte sub_080AA450
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
.4byte sub_080AA464
gUnk_08129FD0:: @ 08129FD0
.incbin "baserom.gba", 0x129FD0, 0x0000014
gUnk_08129FE4:: @ 08129FE4
.incbin "baserom.gba", 0x129FE4, 0x0000014
gUnk_08129FF8:: @ 08129FF8
.incbin "baserom.gba", 0x129FF8, 0x000000C
gUnk_0812A004:: @ 0812A004
.incbin "baserom.gba", 0x12A004, 0x0000010
-45
View File
@@ -1,45 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_0812A014:: @ 0812A014
.4byte sub_080AA6A8
.4byte sub_080AA6C0
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
.4byte sub_080AA78C
gUnk_0812A02C:: @ 0812A02C
.4byte sub_080AA834
.4byte sub_080AA878
.4byte sub_080AA898
.4byte sub_080AA9C4
gUnk_0812A03C:: @ 0812A03C
.incbin "baserom.gba", 0x12A03C, 0x0000010
gUnk_0812A04C:: @ 0812A04C
.4byte gUnk_080FD41C
.4byte gUnk_080FD424
.4byte gUnk_080FD42C
.4byte gUnk_080FD434
gUnk_0812A05C:: @ 0812A05C
.4byte sub_080AA8B8
.4byte sub_080AA9AC
gUnk_0812A064:: @ 0812A064
.incbin "baserom.gba", 0x12A064, 0x0000008
gUnk_0812A06C:: @ 0812A06C
.incbin "baserom.gba", 0x12A06C, 0x0000008
gUnk_0812A074:: @ 0812A074
.incbin "baserom.gba", 0x12A074, 0x0000010
gUnk_0812A084:: @ 0812A084
.incbin "baserom.gba", 0x12A084, 0x0000008
-24
View File
@@ -1,24 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_0812A3C0:: @ 0812A3C0
.4byte sub_080AAB04
.4byte sub_080AAB1C
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
gUnk_0812A3D4:: @ 0812A3D4
.4byte sub_080AAB24
.4byte sub_080AAB38
.4byte sub_080AAB64
gUnk_0812A3E0:: @ 0812A3E0
.incbin "baserom.gba", 0x12A3E0, 0x0000014
gUnk_0812A3F4:: @ 0812A3F4
.4byte gUnk_0812A3E0
.incbin "baserom.gba", 0x12A3F8, 0x0000004
-25
View File
@@ -1,25 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_0812A418:: @ 0812A418
.4byte sub_080AAC0C
.4byte sub_080AAC44
.4byte DeleteEntity
.4byte sub_080AACE0
.4byte DeleteEntity
.4byte sub_080AAD70
gUnk_0812A430:: @ 0812A430
.4byte sub_080AADBC
.4byte sub_080AAE88
.4byte sub_080AAF00
.4byte sub_080AAF10
gUnk_0812A440:: @ 0812A440
.4byte sub_080AAD98
.4byte nullsub_541
.4byte sub_080AADA4
-15
View File
@@ -1,15 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_0812A494:: @ 0812A494
.4byte sub_080AB074
.4byte sub_080AB170
.4byte sub_080AB170
.4byte sub_080AB170
.4byte sub_080AB26C
gUnk_0812A4A8:: @ 0812A4A8
.incbin "baserom.gba", 0x12A4A8, 0x0000020
-21
View File
@@ -1,21 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_0812A4C8:: @ 0812A4C8
.4byte sub_080AB2C4
.4byte sub_080AB2DC
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
gUnk_0812A4DC:: @ 0812A4DC
.4byte sub_080AB318
.4byte sub_080AB414
.4byte sub_080AB45C
.4byte sub_080AB488
gUnk_0812A4EC:: @ 0812A4EC
.incbin "baserom.gba", 0x12A4EC, 0x00000A0
-17
View File
@@ -1,17 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_0812A58C:: @ 0812A58C
.4byte sub_080AB52C
.4byte sub_080AB544
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
gUnk_0812A5A0:: @ 0812A5A0
.4byte sub_080AB580
.4byte sub_080AB59C
.4byte sub_080AB5C4
-36
View File
@@ -1,36 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_0812A5E8:: @ 0812A5E8
.4byte sub_080AB6B8
.4byte sub_080AB6FC
.4byte sub_080AB728
gUnk_0812A5F4:: @ 0812A5F4
.4byte gUnk_0812A61C
.4byte gUnk_0812A61C
.4byte gUnk_0812A624
.4byte gUnk_0812A61C
.4byte gUnk_0812A62C
.4byte gUnk_0812A624
.4byte gUnk_0812A634
.4byte gUnk_0812A624
gUnk_0812A614:: @ 0812A614
.incbin "baserom.gba", 0x12A614, 0x0000008
gUnk_0812A61C:: @ 0812A61C
.incbin "baserom.gba", 0x12A61C, 0x0000008
gUnk_0812A624:: @ 0812A624
.incbin "baserom.gba", 0x12A624, 0x0000008
gUnk_0812A62C:: @ 0812A62C
.incbin "baserom.gba", 0x12A62C, 0x0000008
gUnk_0812A634:: @ 0812A634
.incbin "baserom.gba", 0x12A634, 0x0000008
-15
View File
@@ -1,15 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_0812A6B4:: @ 0812A6B4
.4byte sub_080AB8E8
.4byte sub_080AB950
gUnk_0812A6BC:: @ 0812A6BC
.incbin "baserom.gba", 0x12A6BC, 0x0000008
gUnk_0812A6C4:: @ 0812A6C4
.incbin "baserom.gba", 0x12A6C4, 0x0000008
-13
View File
@@ -1,13 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_0812A6CC:: @ 0812A6CC
.4byte sub_080ABA74
.4byte sub_080ABAE0
gUnk_0812A6D4:: @ 0812A6D4
.incbin "baserom.gba", 0x12A6D4, 0x000000E
-32
View File
@@ -1,32 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_0812A7D4:: @ 0812A7D4
.4byte sub_080ABBA8
.4byte sub_080ABBF4
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
.4byte sub_080ABC54
gUnk_0812A7EC:: @ 0812A7EC
.4byte sub_080ABCC4
.4byte sub_080ABD44
.4byte sub_080ABD70
gUnk_0812A7F8:: @ 0812A7F8
.4byte sub_080ABE04
.4byte sub_080ABE88
gUnk_0812A800:: @ 0812A800
.4byte sub_080ABEA8
.4byte sub_080ABF04
gUnk_0812A808:: @ 0812A808
.4byte sub_080ABC84
.4byte nullsub_542
.4byte sub_080ABC90
-20
View File
@@ -1,20 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_0812960C:: @ 0812960C
.4byte sub_080A81AC
.4byte sub_080A81C4
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
gUnk_08129620:: @ 08129620
.4byte sub_080A81E0
.4byte sub_080A81FC
.4byte sub_080A8248
.4byte sub_080A827C
.4byte sub_080A82B4
-13
View File
@@ -1,13 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_0812A84C:: @ 0812A84C
.4byte sub_080ABF40
.4byte sub_080ABFA8
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
-28
View File
@@ -1,28 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_0812A954:: @ 0812A954
.4byte sub_080ABFCC
.4byte sub_080ABFE4
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
gUnk_0812A968:: @ 0812A968
.4byte sub_080ABFEC
.4byte sub_080AC074
.4byte sub_080AC100
.4byte sub_080AC168
.4byte sub_080AC200
gUnk_0812A97C:: @ 0812A97C
.incbin "baserom.gba", 0x12A97C, 0x0000006
gUnk_0812A982:: @ 0812A982
.incbin "baserom.gba", 0x12A982, 0x0000008
gUnk_0812A98A:: @ 0812A98A
.incbin "baserom.gba", 0x12A98A, 0x000000A
-29
View File
@@ -1,29 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_0812A994:: @ 0812A994
.4byte sub_080AC328
.4byte sub_080AC510
.4byte sub_080AC510
.4byte sub_080AC510
.4byte sub_080AC560
gUnk_0812A9A8:: @ 0812A9A8
.4byte sub_080AC340
.4byte sub_080AC388
.4byte sub_080AC480
gUnk_0812A9B4:: @ 0812A9B4
.incbin "baserom.gba", 0x12A9B4, 0x0000004
gUnk_0812A9B8:: @ 0812A9B8
.incbin "baserom.gba", 0x12A9B8, 0x0000002
gUnk_0812A9BA:: @ 0812A9BA
.incbin "baserom.gba", 0x12A9BA, 0x0000006
gUnk_0812A9C0:: @ 0812A9C0
.incbin "baserom.gba", 0x12A9C0, 0x0000018
-19
View File
@@ -1,19 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_0812A9D8:: @ 0812A9D8
.4byte sub_080AC8C4
.4byte sub_080AC8DC
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
gUnk_0812A9EC:: @ 0812A9EC
.4byte sub_080AC928
.4byte sub_080AC954
.4byte sub_080AC9CC
.4byte sub_080ACA14
-18
View File
@@ -1,18 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_0812AA5C:: @ 0812AA5C
.4byte sub_080ACA50
.4byte sub_080ACA68
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
.4byte sub_080ACA50
gUnk_0812AA74:: @ 0812AA74
.4byte sub_080ACAC8
.4byte sub_080ACAF0
.4byte sub_080ACB10
-19
View File
@@ -1,19 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08129650:: @ 08129650
.4byte sub_080A8314
.4byte sub_080A832C
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
gUnk_08129664:: @ 08129664
.4byte sub_080A83A0
.4byte sub_080A83B4
gUnk_0812966C:: @ 0812966C
.incbin "baserom.gba", 0x12966C, 0x0000084
-19
View File
@@ -1,19 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_081296F0:: @ 081296F0
.4byte sub_080A8458
.4byte sub_080A8470
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
gUnk_08129704:: @ 08129704
.4byte sub_080A84C8
.4byte sub_080A8504
.4byte sub_080A85B8
.4byte sub_080A8610
.4byte sub_080A862C
-19
View File
@@ -1,19 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08129718:: @ 08129718
.4byte sub_080A86D8
.4byte sub_080A86F0
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
gUnk_0812972C:: @ 0812972C
.4byte sub_080A8770
.4byte sub_080A878C
gUnk_08129734:: @ 08129734
.incbin "baserom.gba", 0x129734, 0x000000C
-22
View File
@@ -1,22 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08129740:: @ 08129740
.4byte sub_080A87E4
.4byte sub_080A881C
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
gUnk_08129754:: @ 08129754
.4byte sub_080A8868
.4byte sub_080A88C8
.4byte sub_080A8988
.4byte sub_080A8A48
gUnk_08129764:: @ 08129764
.incbin "baserom.gba", 0x129764, 0x000000C
-12
View File
@@ -1,12 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_0812979C:: @ 0812979C
.4byte sub_080A8A90
.4byte sub_080A8AC8
.4byte sub_080A8B38
.4byte sub_080A8B78
-12
View File
@@ -1,12 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_0812982C:: @ 0812982C
.4byte sub_080A8BC0
.4byte sub_080A8BF8
.4byte sub_080A8C4C
.4byte sub_080A8C8C
-12
View File
@@ -1,12 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_081298B8:: @ 081298B8
.4byte sub_080A8CD4
.4byte sub_080A8D0C
.4byte sub_080A8D60
.4byte sub_080A8DA0
-27
View File
@@ -1,27 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08129954:: @ 08129954
.4byte sub_080A8DDC
.4byte sub_080A8DDC
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
gUnk_08129968:: @ 08129968
.4byte sub_080A8E28
.4byte sub_080A8FB8
.4byte sub_080A9058
.4byte sub_080A90BC
gUnk_08129978:: @ 08129978
.incbin "baserom.gba", 0x129978, 0x0000008
gUnk_08129980:: @ 08129980
.incbin "baserom.gba", 0x129980, 0x0000008
gUnk_08129988:: @ 08129988
.incbin "baserom.gba", 0x129988, 0x0000010
-23
View File
@@ -1,23 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08129998:: @ 08129998
.4byte gUnk_081299A8
.4byte gUnk_081299B0
.4byte gUnk_081299B8
.4byte gUnk_081299C0
gUnk_081299A8:: @ 081299A8
.incbin "baserom.gba", 0x1299A8, 0x0000008
gUnk_081299B0:: @ 081299B0
.incbin "baserom.gba", 0x1299B0, 0x0000008
gUnk_081299B8:: @ 081299B8
.incbin "baserom.gba", 0x1299B8, 0x0000008
gUnk_081299C0:: @ 081299C0
.incbin "baserom.gba", 0x1299C0, 0x0000008
-8
View File
@@ -1,8 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_081299C8:: @ 081299C8
.incbin "baserom.gba", 0x1299C8, 0x0000008
-35
View File
@@ -1,35 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_081299D0:: @ 081299D0
.4byte sub_080A931C
.4byte sub_080A9334
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
gUnk_081299E4:: @ 081299E4
.4byte sub_080A9370
.4byte sub_080A93A0
.4byte sub_080A93DC
.4byte sub_080A942C
.4byte sub_080A9448
gUnk_081299F8:: @ 081299F8
.incbin "baserom.gba", 0x1299F8, 0x0000004
.4byte gUnk_08129A20
.incbin "baserom.gba", 0x129A00, 0x0000004
.4byte gUnk_08129A18
.incbin "baserom.gba", 0x129A08, 0x0000004
.4byte gUnk_08129A20
.incbin "baserom.gba", 0x129A10, 0x0000004
.4byte gUnk_08129A18
gUnk_08129A18:: @ 08129A18
.incbin "baserom.gba", 0x129A18, 0x0000008
gUnk_08129A20:: @ 08129A20
.incbin "baserom.gba", 0x129A20, 0x0000008
-11
View File
@@ -1,11 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08129A64:: @ 08129A64
.4byte sub_080A9518
.4byte sub_080A9540
.4byte sub_080A95BC
-20
View File
@@ -1,20 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08129ABC:: @ 08129ABC
.4byte sub_080A95F8
.4byte sub_080A95F8
.4byte DeleteEntity
.4byte DeleteEntity
.4byte DeleteEntity
gUnk_08129AD0:: @ 08129AD0
.4byte sub_080A9610
.4byte sub_080A976C
.4byte sub_080A99F0
gUnk_08129ADC:: @ 08129ADC
.incbin "baserom.gba", 0x129ADC, 0x0000004
+36 -36
View File
@@ -5,41 +5,41 @@
.align 2
gProjectileFunctions:: @ 08129320
.4byte Projectile0
.4byte Projectile1
.4byte Projectile2
.4byte Projectile3
.4byte Projectile4
.4byte DarkNutSwordSlash
.4byte RockProjectile
.4byte BoneProjectile
.4byte MoblinSpear
.4byte DekuSeedProjectile
.4byte Projectile5
.4byte Projectile6
.4byte Projectile7
.4byte Projectile8
.4byte Projectile9
.4byte ProjectileA
.4byte ProjectileB
.4byte ProjectileC
.4byte ProjectileD
.4byte ProjectileE
.4byte ProjectileF
.4byte Projectile10
.4byte Projectile11
.4byte Projectile12
.4byte Projectile13
.4byte Projectile14
.4byte Projectile15
.4byte Projectile16
.4byte Projectile17
.4byte Projectile18
.4byte Projectile19
.4byte Projectile1A
.4byte Projectile1B
.4byte Projectile1C
.4byte Projectile1D
.4byte Projectile1E
.4byte Projectile1F
.4byte Projectile20
.4byte Projectile21
.4byte Projectile22
.4byte Projectile23
.4byte Projectile24
.4byte DirtBallProjectile
.4byte WindProjectile
.4byte FireProjectile
.4byte IceProjectile
.4byte GleerokProjectile
.4byte KeatonDagger
.4byte GuardLineOfSight
.4byte ArrowProjectile
.4byte MazaalEnergyBeam
.4byte OctorokBossProjectile
.4byte StalfosProjectile
.4byte LakituCloudProjectile
.4byte LakituLightning
.4byte MandiblesProjectile
.4byte RemovableDust
.4byte SpiderWeb
.4byte TorchTrapProjectile
.4byte GuruguruBarProjectile
.4byte V1DarkMagicProjectile
.4byte BallAndChain
.4byte V1FireProjectile
.4byte CannonballProjectile
.4byte V1EyeLaser
.4byte Winder
.4byte SpikedRollers
.4byte V2Projectile
.4byte V3HandProjectile
.4byte V3ElectricProjectile
.4byte GyorgTail
.4byte GyorgMaleEnergyProjectile
.4byte V3TennisBallProjectile
.4byte DeleteEntity
+92 -92
View File
@@ -924,43 +924,43 @@ SECTIONS {
asm/code_080A5574.o(.text);
src/playerItem/playerItemSword.o(.text);
asm/code_080A7C00.o(.text);
src/projectile/projectile0.o(.text);
src/projectile/projectile1.o(.text);
src/projectile/projectile2.o(.text);
src/projectile/projectile3.o(.text);
src/projectile/projectile4.o(.text);
src/projectile/darkNutSwordSlash.o(.text);
src/projectile/rockProjectile.o(.text);
src/projectile/boneProjectile.o(.text);
src/projectile/moblinSpear.o(.text);
src/projectile/dekuSeedProjectile.o(.text);
src/projectile/projectile5.o(.text);
src/projectile/projectile6.o(.text);
src/projectile/projectile7.o(.text);
src/projectile/projectile8.o(.text);
src/projectile/projectile9.o(.text);
src/projectile/projectileA.o(.text);
src/projectile/projectileB.o(.text);
src/projectile/projectileC.o(.text);
src/projectile/projectileD.o(.text);
src/projectile/projectileE.o(.text);
src/projectile/projectileF.o(.text);
src/projectile/projectile10.o(.text);
src/projectile/projectile11.o(.text);
src/projectile/projectile12.o(.text);
src/projectile/projectile13.o(.text);
src/projectile/projectile14.o(.text);
src/projectile/projectile15.o(.text);
src/projectile/projectile16.o(.text);
src/projectile/projectile17.o(.text);
src/projectile/projectile18.o(.text);
src/projectile/projectile19.o(.text);
src/projectile/projectile1A.o(.text);
src/projectile/projectile1B.o(.text);
src/projectile/projectile1C.o(.text);
src/projectile/projectile1D.o(.text);
src/projectile/projectile1E.o(.text);
src/projectile/projectile1F.o(.text);
src/projectile/projectile20.o(.text);
src/projectile/projectile21.o(.text);
src/projectile/projectile22.o(.text);
src/projectile/projectile23.o(.text);
src/projectile/projectile24.o(.text);
src/projectile/dirtBallProjectile.o(.text);
src/projectile/windProjectile.o(.text);
src/projectile/fireProjectile.o(.text);
src/projectile/iceProjectile.o(.text);
src/projectile/gleerokProjectile.o(.text);
src/projectile/keatonDagger.o(.text);
src/projectile/guardLineOfSight.o(.text);
src/projectile/arrowProjectile.o(.text);
src/projectile/mazaalEnergyBeam.o(.text);
src/projectile/octorokBossProjectile.o(.text);
src/projectile/stalfosProjectile.o(.text);
src/projectile/lakituCloudProjectile.o(.text);
src/projectile/lakituLightning.o(.text);
src/projectile/mandiblesProjectile.o(.text);
src/projectile/removableDust.o(.text);
src/projectile/spiderWeb.o(.text);
src/projectile/torchTrapProjectile.o(.text);
src/projectile/guruguruBarProjectile.o(.text);
src/projectile/v1DarkMagicProjectile.o(.text);
src/projectile/ballAndChain.o(.text);
src/projectile/v1FireProjectile.o(.text);
src/projectile/cannonballProjectile.o(.text);
src/projectile/v1EyeLaser.o(.text);
src/projectile/winder.o(.text);
src/projectile/spikedRollers.o(.text);
src/projectile/v2Projectile.o(.text);
src/projectile/v3HandProjectile.o(.text);
src/projectile/v3ElectricProjectile.o(.text);
src/projectile/gyorgTail.o(.text);
src/projectile/gyorgMaleEnergyProjectile.o(.text);
src/projectile/v3TennisBallProjectile.o(.text);
src/playerItem/playerItem10.o(.text);
src/playerItem/playerItem13.o(.text);
src/intro.o(.text);
@@ -1655,62 +1655,62 @@ data/const/object/object1D.o(.rodata);
data/data_08127280.o(.rodata);
data/const/playerItem/playerItemSword.o(.rodata);
data/data_08129320.o(.rodata);
data/const/projectile/projectile0.o(.rodata);
data/const/projectile/projectile1.o(.rodata);
data/animations/projectile/projectile1.o(.rodata);
data/const/projectile/projectile2.o(.rodata);
data/animations/projectile/projectile2.o(.rodata);
data/const/projectile/projectile3.o(.rodata);
data/const/projectile/projectile4.o(.rodata);
data/const/projectile/projectile5.o(.rodata);
data/const/projectile/projectile6.o(.rodata);
data/animations/projectile/projectile6.o(.rodata);
data/const/projectile/projectile7.o(.rodata);
data/animations/projectile/projectile7.o(.rodata);
data/const/projectile/projectile8.o(.rodata);
data/animations/projectile/projectile8.o(.rodata);
data/const/projectile/projectile9.o(.rodata);
data/animations/projectile/projectile9.o(.rodata);
data/const/projectile/projectileA.o(.rodata);
data/const/projectile/projectileB.o(.rodata);
data/const/projectile/projectileC.o(.rodata);
data/const/projectile/projectileD.o(.rodata);
data/animations/projectile/projectileD.o(.rodata);
data/const/projectile/projectileE.o(.rodata);
data/animations/projectile/projectileE.o(.rodata);
data/const/projectile/projectileF.o(.rodata);
data/const/projectile/projectile10.o(.rodata);
data/const/projectile/projectile11.o(.rodata);
data/animations/projectile/projectile11.o(.rodata);
data/const/projectile/projectile12.o(.rodata);
data/animations/projectile/projectile12.o(.rodata);
data/const/projectile/projectile13.o(.rodata);
data/animations/projectile/projectile13.o(.rodata);
data/const/projectile/projectile14.o(.rodata);
data/const/projectile/projectile15.o(.rodata);
data/animations/projectile/projectile15.o(.rodata);
data/const/projectile/projectile16.o(.rodata);
data/animations/projectile/projectile16.o(.rodata);
data/const/projectile/projectile18.o(.rodata);
data/animations/projectile/projectile18.o(.rodata);
data/const/projectile/projectile19.o(.rodata);
data/const/projectile/projectile1A.o(.rodata);
data/const/projectile/projectile1B.o(.rodata);
data/animations/projectile/projectile1B.o(.rodata);
data/const/projectile/projectile1C.o(.rodata);
data/animations/projectile/projectile1C.o(.rodata);
data/const/projectile/projectile1D.o(.rodata);
data/const/projectile/projectile1E.o(.rodata);
data/animations/projectile/projectile1E.o(.rodata);
data/const/projectile/projectile1F.o(.rodata);
data/animations/projectile/projectile1F.o(.rodata);
data/const/projectile/projectile20.o(.rodata);
data/animations/projectile/projectile20.o(.rodata);
data/const/projectile/projectile21.o(.rodata);
data/const/projectile/projectile22.o(.rodata);
data/const/projectile/projectile23.o(.rodata);
data/animations/projectile/projectile23.o(.rodata);
data/const/projectile/projectile24.o(.rodata);
src/projectile/darkNutSwordSlash.o(.rodata);
src/projectile/rockProjectile.o(.rodata);
data/animations/projectile/rockProjectile.o(.rodata);
src/projectile/boneProjectile.o(.rodata);
data/animations/projectile/boneProjectile.o(.rodata);
src/projectile/moblinSpear.o(.rodata);
src/projectile/dekuSeedProjectile.o(.rodata);
src/projectile/projectile5.o(.rodata);
src/projectile/dirtBallProjectile.o(.rodata);
data/animations/projectile/dirtBallProjectile.o(.rodata);
src/projectile/windProjectile.o(.rodata);
data/animations/projectile/windProjectile.o(.rodata);
src/projectile/fireProjectile.o(.rodata);
data/animations/projectile/fireProjectile.o(.rodata);
src/projectile/iceProjectile.o(.rodata);
data/animations/projectile/iceProjectile.o(.rodata);
src/projectile/gleerokProjectile.o(.rodata);
src/projectile/keatonDagger.o(.rodata);
src/projectile/guardLineOfSight.o(.rodata);
src/projectile/arrowProjectile.o(.rodata);
data/animations/projectile/arrowProjectile.o(.rodata);
src/projectile/mazaalEnergyBeam.o(.rodata);
data/animations/projectile/mazaalEnergyBeam.o(.rodata);
src/projectile/octorokBossProjectile.o(.rodata);
src/projectile/stalfosProjectile.o(.rodata);
src/projectile/lakituCloudProjectile.o(.rodata);
data/animations/projectile/lakituCloudProjectile.o(.rodata);
src/projectile/lakituLightning.o(.rodata);
data/animations/projectile/lakituLightning.o(.rodata);
src/projectile/mandiblesProjectile.o(.rodata);
data/animations/projectile/mandiblesProjectile.o(.rodata);
src/projectile/removableDust.o(.rodata);
src/projectile/spiderWeb.o(.rodata);
data/animations/projectile/spiderWeb.o(.rodata);
src/projectile/torchTrapProjectile.o(.rodata);
data/animations/projectile/torchTrapProjectile.o(.rodata);
src/projectile/v1DarkMagicProjectile.o(.rodata);
data/animations/projectile/v1DarkMagicProjectile.o(.rodata);
src/projectile/ballAndChain.o(.rodata);
src/projectile/v1FireProjectile.o(.rodata);
src/projectile/cannonballProjectile.o(.rodata);
data/animations/projectile/cannonballProjectile.o(.rodata);
src/projectile/v1EyeLaser.o(.rodata);
data/animations/projectile/v1EyeLaser.o(.rodata);
src/projectile/winder.o(.rodata);
src/projectile/spikedRollers.o(.rodata);
data/animations/projectile/spikedRollers.o(.rodata);
src/projectile/v2Projectile.o(.rodata);
data/animations/projectile/v2Projectile.o(.rodata);
src/projectile/v3HandProjectile.o(.rodata);
data/animations/projectile/v3HandProjectile.o(.rodata);
src/projectile/v3ElectricProjectile.o(.rodata);
src/projectile/gyorgTail.o(.rodata);
src/projectile/gyorgMaleEnergyProjectile.o(.rodata);
data/animations/projectile/gyorgMaleEnergyProjectile.o(.rodata);
src/projectile/v3TennisBallProjectile.o(.rodata);
data/const/playerItem/playerItem10.o(.rodata);
data/data_0812AA88.o(.rodata);
data/const/playerItem/playerItem13.o(.rodata);
@@ -4,31 +4,29 @@
#include "audio.h"
#include "createObject.h"
extern void (*const gUnk_081299D0[])(Entity*);
extern void (*const gUnk_081299E4[])(Entity*);
void sub_080A9488(Entity*);
void sub_080A94C0(Entity*, u32);
extern s32 sub_080AF090(Entity*);
extern void (*const gArrowProjectile[])(Entity*);
extern void (*const gArrowProjectileActions[])(Entity*);
typedef struct {
u8 flipX;
u8 flipY;
u8 animIndex;
u8 unk;
Hitbox* hitbox;
const Hitbox* hitbox;
} struct_081299F8;
extern struct_081299F8 gUnk_081299F8[];
extern const struct_081299F8 gUnk_081299F8[];
void ProjectileD(Entity* this) {
gUnk_081299D0[GetNextFunction(this)](this);
void sub_080A9488(Entity*);
void sub_080A94C0(Entity*, u32);
void ArrowProjectile(Entity* this) {
gArrowProjectile[GetNextFunction(this)](this);
}
void sub_080A931C(Entity* this) {
gUnk_081299E4[this->action](this);
void ArrowProjectile_OnTick(Entity* this) {
gArrowProjectileActions[this->action](this);
}
void sub_080A9334(Entity* this) {
@@ -44,7 +42,7 @@ void sub_080A9334(Entity* this) {
}
}
void sub_080A9370(Entity* this) {
void ArrowProjectile_Init(Entity* this) {
this->action = 1;
this->spriteSettings.b.draw = 1;
this->flags &= 0x7f;
@@ -54,10 +52,8 @@ void sub_080A9370(Entity* this) {
sub_080A94C0(this, this->type);
}
void sub_080A93A0(Entity* this) {
Entity* parent;
parent = this->parent;
void ArrowProjectile_Action1(Entity* this) {
Entity* parent = this->parent;
if ((parent == NULL) || (parent->next == NULL)) {
DeleteThisEntity();
}
@@ -72,7 +68,7 @@ void sub_080A93A0(Entity* this) {
}
}
void sub_080A93DC(Entity* this) {
void ArrowProjectile_Action2(Entity* this) {
if (this->collisions != 0) {
this->action = 3;
this->flags &= 0x7f;
@@ -86,14 +82,14 @@ void sub_080A93DC(Entity* this) {
sub_080AF090(this);
}
void sub_080A942C(Entity* this) {
void ArrowProjectile_Action3(Entity* this) {
if (--this->actionDelay == 0) {
DeleteThisEntity();
}
GetNextFrame(this);
}
void sub_080A9448(Entity* this) {
void ArrowProjectile_Action4(Entity* this) {
if (sub_08003FC4(this, 0x2800) == 0) {
CreateDust(this);
DeleteThisEntity();
@@ -116,11 +112,32 @@ void sub_080A9488(Entity* this) {
sub_080A94C0(this, this->animationState);
}
void sub_080A94C0(Entity* this, u32 param) {
struct_081299F8* entry = &gUnk_081299F8[param];
void sub_080A94C0(Entity* this, u32 animationState) {
const struct_081299F8* entry = &gUnk_081299F8[animationState];
this->spriteSettings.b.flipX = entry->flipX;
this->spriteSettings.b.flipY = entry->flipY;
this->animIndex = entry->animIndex;
this->hitbox = entry->hitbox;
this->hitbox = (Hitbox*)entry->hitbox;
InitializeAnimation(this, this->animIndex);
}
void (*const gArrowProjectile[])(Entity*) = {
ArrowProjectile_OnTick, sub_080A9334, DeleteEntity, DeleteEntity, DeleteEntity,
};
void (*const gArrowProjectileActions[])(Entity*) = {
ArrowProjectile_Init, ArrowProjectile_Action1, ArrowProjectile_Action2,
ArrowProjectile_Action3, ArrowProjectile_Action4,
};
extern const Hitbox gUnk_08129A18;
extern const Hitbox gUnk_08129A20;
const struct_081299F8 gUnk_081299F8[] = {
{ 0, 0, 1, 0, &gUnk_08129A20 },
{ 1, 0, 0, 0, &gUnk_08129A18 },
{ 0, 1, 1, 0, &gUnk_08129A20 },
{ 0, 0, 0, 0, &gUnk_08129A18 },
};
const Hitbox gUnk_08129A18 = { 0, 0, { 4, 0, 0, 0 }, 6, 4 };
const Hitbox gUnk_08129A20 = { 0, 0, { 0, 0, 0, 4 }, 4, 6 };
@@ -1,13 +1,13 @@
#include "entity.h"
#include "functions.h"
extern void (*const gUnk_0812A494[])(Entity*);
extern u8 gEntCount;
bool32 sub_080AB12C(Entity* this);
void Projectile19(Entity* this) {
extern void (*const gUnk_0812A494[])(Entity*);
extern const u8 gUnk_0812A4A8[];
void BallAndChain(Entity* this) {
gUnk_0812A494[this->type](this);
}
@@ -61,7 +61,7 @@ bool32 sub_080AB12C(Entity* this) {
return TRUE;
}
ASM_FUNC("asm/non_matching/projectile19/sub_080AB170.inc", void sub_080AB170(Entity* this))
ASM_FUNC("asm/non_matching/ballAndChain/sub_080AB170.inc", void sub_080AB170(Entity* this))
void sub_080AB26C(Entity* this) {
if (this->action == 0) {
@@ -78,3 +78,11 @@ void sub_080AB26C(Entity* this) {
this->frameIndex += 1;
}
}
void (*const gUnk_0812A494[])(Entity*) = {
sub_080AB074, sub_080AB170, sub_080AB170, sub_080AB170, sub_080AB26C,
};
const u8 gUnk_0812A4A8[] = {
6, 240, 10, 242, 10, 240, 8, 240, 252, 242, 248, 242, 252, 246, 4, 246,
250, 242, 248, 240, 246, 242, 248, 244, 4, 242, 8, 242, 4, 246, 252, 246,
};
@@ -2,22 +2,21 @@
#include "enemy.h"
#include "functions.h"
extern void (*const gUnk_0812960C[])(Entity*);
extern void (*const gUnk_08129620[])(Entity*);
void sub_080A82D8(Entity*);
extern s32 sub_080AF090(Entity*);
extern s32 sub_080A7EB0(Entity*);
extern void sub_08016AD2(Entity*);
void Projectile2(Entity* this) {
gUnk_0812960C[GetNextFunction(this)](this);
extern void (*const BoneProjectile_Functions[])(Entity*);
extern void (*const BoneProjectile_Actions[])(Entity*);
void sub_080A82D8(Entity*);
void BoneProjectile(Entity* this) {
BoneProjectile_Functions[GetNextFunction(this)](this);
}
void sub_080A81AC(Entity* this) {
gUnk_08129620[this->action](this);
void BoneProjectile_OnTick(Entity* this) {
BoneProjectile_Actions[this->action](this);
}
void sub_080A81C4(Entity* this) {
@@ -28,14 +27,14 @@ void sub_080A81C4(Entity* this) {
}
}
void sub_080A81E0(Entity* this) {
void BoneProjectile_Init(Entity* this) {
this->action = 1;
this->actionDelay = 0x3c;
this->height.HALF.HI = 0xfffe;
InitializeAnimation(this, 0);
}
void sub_080A81FC(Entity* this) {
void BoneProjectile_Action1(Entity* this) {
GetNextFrame(this);
sub_080AF090(this);
if (this->collisions == 0) {
@@ -53,7 +52,7 @@ void sub_080A81FC(Entity* this) {
}
}
void sub_080A8248(Entity* this) {
void BoneProjectile_Action2(Entity* this) {
GetNextFrame(this);
sub_080AF090(this);
if (sub_08003FC4(this, 0x1800) == 0) {
@@ -64,7 +63,7 @@ void sub_080A8248(Entity* this) {
}
}
void sub_080A827C(Entity* this) {
void BoneProjectile_Action3(Entity* this) {
this->spriteSettings.b.draw ^= 1;
sub_0806F69C(this);
GetNextFrame(this);
@@ -73,7 +72,7 @@ void sub_080A827C(Entity* this) {
}
}
void sub_080A82B4(Entity* this) {
void BoneProjectile_Action4(Entity* this) {
GetNextFrame(this);
sub_0806F69C(this);
if (sub_08003FC4(this, 0x1800) == 0) {
@@ -88,3 +87,10 @@ void sub_080A82D8(Entity* this) {
this->direction ^= 0x10;
this->speed = 0x80;
}
void (*const BoneProjectile_Functions[])(Entity*) = {
BoneProjectile_OnTick, sub_080A81C4, DeleteEntity, DeleteEntity, DeleteEntity,
};
void (*const BoneProjectile_Actions[])(Entity*) = {
BoneProjectile_Init, BoneProjectile_Action1, BoneProjectile_Action2, BoneProjectile_Action3, BoneProjectile_Action4,
};
@@ -2,27 +2,24 @@
#include "enemy.h"
#include "functions.h"
extern void (*const gUnk_0812A58C[])(Entity*);
extern void (*const gUnk_0812A5A0[])(Entity*);
extern s32 sub_080AF090(Entity*);
bool32 sub_080AB5F4(Entity*);
bool32 sub_080AB634(Entity*);
extern void sub_080043A8(Entity*);
extern void CreateItemOnGround(Entity*);
extern s32 sub_080AF090(Entity*);
extern void sub_080043A8(Entity*);
extern void CreateChestSpawner(Entity*);
extern u32 sub_080177A0(Entity*, Entity*);
void Projectile1B(Entity* this) {
gUnk_0812A58C[GetNextFunction(this)](this);
extern void (*const CannonballProjectile_Functions[])(Entity*);
extern void (*const CannonballProjectile_Actions[])(Entity*);
bool32 sub_080AB5F4(Entity*);
bool32 sub_080AB634(Entity*);
void CannonballProjectile(Entity* this) {
CannonballProjectile_Functions[GetNextFunction(this)](this);
}
void sub_080AB52C(Entity* this) {
gUnk_0812A5A0[this->action](this);
void CannonballProjectile_OnTick(Entity* this) {
CannonballProjectile_Actions[this->action](this);
}
void sub_080AB544(Entity* this) {
@@ -39,14 +36,14 @@ void sub_080AB544(Entity* this) {
}
}
void sub_080AB580(Entity* this) {
void CannonballProjectile_Init(Entity* this) {
this->action = 1;
this->direction = this->type << 3;
this->height.HALF.HI = 0xfffc;
InitializeAnimation(this, this->type);
}
void sub_080AB59C(Entity* this) {
void CannonballProjectile_Action1(Entity* this) {
GetNextFrame(this);
if (sub_080AF090(this) == 0) {
CreateFx(this, 2, 0);
@@ -55,7 +52,7 @@ void sub_080AB59C(Entity* this) {
sub_080AB5F4(this);
}
void sub_080AB5C4(Entity* this) {
void CannonballProjectile_Action2(Entity* this) {
GetNextFrame(this);
sub_080AF090(this);
if ((sub_080AB634(this) == 0) && (this->collisions != 0)) {
@@ -83,7 +80,7 @@ bool32 sub_080AB634(Entity* this) {
Entity** entities = ((Entity**)&this->parent->field_0x20);
u32 i;
for (i = 0; i <= 3; ++i) {
if(entities[i] != NULL && (sub_080177A0(this, entities[i]) != 0)) {
if (entities[i] != NULL && (sub_080177A0(this, entities[i]) != 0)) {
if (entities[i]->action < 3) {
entities[i]->action = 3;
entities[i]->actionDelay = 0x1e;
@@ -96,3 +93,12 @@ bool32 sub_080AB634(Entity* this) {
}
return FALSE;
}
void (*const CannonballProjectile_Functions[])(Entity*) = {
CannonballProjectile_OnTick, sub_080AB544, DeleteEntity, DeleteEntity, DeleteEntity,
};
void (*const CannonballProjectile_Actions[])(Entity*) = {
CannonballProjectile_Init,
CannonballProjectile_Action1,
CannonballProjectile_Action2,
};
+188
View File
@@ -0,0 +1,188 @@
#include "entity.h"
#include "player.h"
#include "coord.h"
extern const u8 DarkNutSwordSlash_DamageTypes[];
extern void (*const DarkNutSwordSlash_UpdatesForType[])(Entity*);
extern Hitbox const* const* const gUnk_081293E0[];
extern const Hitbox* const gUnk_081293F0[];
extern const Hitbox* const gUnk_08129400[];
extern const Hitbox* const gUnk_08129410[];
extern const Hitbox* const gUnk_08129420[];
void DarkNutSwordSlash_Init(Entity*);
void DarkNutSwordSlash_OnTick(Entity*);
void DarkNutSwordSlash(Entity* this) {
if (this->action == 0) {
this->action = 1;
DarkNutSwordSlash_Init(this);
if (this->type == 3) {
InitAnimationForceUpdate(this, this->parent->animationState + 0x18);
}
}
if ((this->parent == NULL) || (this->parent->currentHealth == 0)) {
DeleteThisEntity();
}
if (((this->bitfield & 0x80) != 0) && (this->field_0x4c == &gPlayerEntity)) {
this->iframes = -0x2d;
}
this->bitfield = 0;
CopyPositionAndSpriteOffset(this->parent, this);
DarkNutSwordSlash_OnTick(this);
if (this->type == 3) {
this->y.HALF.HI += 1;
UpdateAnimationSingleFrame(this);
}
}
void DarkNutSwordSlash_Init(Entity* this) {
this->damageType = DarkNutSwordSlash_DamageTypes[this->parent->type + this->type * 4];
}
void DarkNutSwordSlash_OnTick(Entity* this) {
DarkNutSwordSlash_UpdatesForType[this->type](this);
}
void DarkNutSwordSlash_UpdateType0(Entity* this) {
Entity* parent = this->parent;
this->hitbox = (Hitbox*)gUnk_081293E0[parent->animationState][(parent->frames.all & 0xf) - 1];
}
void DarkNutSwordSlash_UpdateType2(Entity* this) {
Entity* parent = this->parent;
this->hitbox = (Hitbox*)gUnk_081293F0[parent->animationState];
}
void DarkNutSwordSlash_UpdateType34(Entity* this) {
if ((this->parent->frames.all & 0x10) != 0) {
this->hitbox = (Hitbox*)gUnk_08129410[this->parent->animationState];
} else {
this->hitbox = (Hitbox*)gUnk_08129400[this->parent->animationState];
}
}
void DarkNutSwordSlash_UpdateType1(Entity* this) {
Entity* parent = this->parent;
this->hitbox = (Hitbox*)gUnk_08129420[parent->animationState];
}
const u8 DarkNutSwordSlash_DamageTypes[] = {
76, 76, 78, 77, 83, 83, 83, 83, 79, 79, 76, 80, 84, 84, 84, 85, 79, 79, 76, 80,
};
void (*const DarkNutSwordSlash_UpdatesForType[])(Entity*) = {
DarkNutSwordSlash_UpdateType0, DarkNutSwordSlash_UpdateType1, DarkNutSwordSlash_UpdateType2,
DarkNutSwordSlash_UpdateType34, DarkNutSwordSlash_UpdateType34,
};
extern const Hitbox* const gUnk_08129460[];
extern const Hitbox* const gUnk_081294A8[];
extern const Hitbox* const gUnk_081294F0[];
extern const Hitbox* const gUnk_08129538[];
Hitbox const* const* const gUnk_081293E0[] = {
gUnk_08129460,
gUnk_081294A8,
gUnk_081294F0,
gUnk_08129538,
};
extern const Hitbox gUnk_08129550;
extern const Hitbox gUnk_08129558;
extern const Hitbox gUnk_08129560;
extern const Hitbox gUnk_08129568;
const Hitbox* const gUnk_081293F0[] = {
&gUnk_08129550,
&gUnk_08129558,
&gUnk_08129560,
&gUnk_08129568,
};
extern const Hitbox gUnk_08129590;
extern const Hitbox gUnk_081295A0;
extern const Hitbox gUnk_081295B0;
extern const Hitbox gUnk_081295C0;
const Hitbox* const gUnk_08129400[] = {
&gUnk_08129590,
&gUnk_081295A0,
&gUnk_081295B0,
&gUnk_081295C0,
};
extern const Hitbox gUnk_08129598;
extern const Hitbox gUnk_081295A8;
extern const Hitbox gUnk_081295B8;
extern const Hitbox gUnk_081295C8;
const Hitbox* const gUnk_08129410[] = {
&gUnk_08129598,
&gUnk_081295A8,
&gUnk_081295B8,
&gUnk_081295C8,
};
extern const Hitbox gUnk_08129570;
extern const Hitbox gUnk_08129578;
extern const Hitbox gUnk_08129580;
extern const Hitbox gUnk_08129588;
const Hitbox* const gUnk_08129420[] = {
&gUnk_08129570,
&gUnk_08129578,
&gUnk_08129580,
&gUnk_08129588,
};
const Hitbox gUnk_08129430 = { -5, -32, { 0, 0, 0, 0 }, 8, 10 };
const Hitbox gUnk_08129438 = { 2, -37, { 0, 0, 0, 0 }, 8, 10 };
const Hitbox gUnk_08129440 = { 19, -33, { 0, 0, 0, 0 }, 10, 11 };
const Hitbox gUnk_08129448 = { 28, -14, { 0, 0, 0, 0 }, 16, 6 };
const Hitbox gUnk_08129450 = { 34, -18, { 0, 0, 0, 0 }, 8, 4 };
const Hitbox gUnk_08129458 = { 25, 15, { 0, 0, 0, 0 }, 4, 4 };
const Hitbox* const gUnk_08129460[] = {
&gUnk_08129430, &gUnk_08129438, &gUnk_08129440, &gUnk_08129448, &gUnk_08129450, &gUnk_08129458,
};
const Hitbox gUnk_08129478 = { 21, -6, { 0, 0, 0, 0 }, 12, 8 };
const Hitbox gUnk_08129480 = { 21, -20, { 0, 0, 0, 0 }, 16, 8 };
const Hitbox gUnk_08129488 = { 15, -31, { 0, 0, 0, 0 }, 8, 10 };
const Hitbox gUnk_08129490 = { 3, -39, { 0, 0, 0, 0 }, 8, 12 };
const Hitbox gUnk_08129498 = { 7, -38, { 0, 0, 0, 0 }, 7, 8 };
const Hitbox gUnk_081294A0 = { 1, -29, { 0, 0, 0, 0 }, 4, 5 };
const Hitbox* const gUnk_081294A8[] = {
&gUnk_08129478, &gUnk_08129480, &gUnk_08129488, &gUnk_08129490, &gUnk_08129498, &gUnk_081294A0,
};
const Hitbox gUnk_081294C0 = { 7, 7, { 0, 0, 0, 0 }, 8, 11 };
const Hitbox gUnk_081294C8 = { -6, 10, { 0, 0, 0, 0 }, 8, 12 };
const Hitbox gUnk_081294D0 = { -22, 2, { 0, 0, 0, 0 }, 8, 8 };
const Hitbox gUnk_081294D8 = { -27, -11, { 0, 0, 0, 0 }, 12, 8 };
const Hitbox gUnk_081294E0 = { -28, -9, { 0, 0, 0, 0 }, 15, 6 };
const Hitbox gUnk_081294E8 = { -21, -12, { 0, 0, 0, 0 }, 6, 2 };
const Hitbox* const gUnk_081294F0[] = {
&gUnk_081294C0, &gUnk_081294C8, &gUnk_081294D0, &gUnk_081294D8, &gUnk_081294E0, &gUnk_081294E8,
};
const Hitbox gUnk_08129508 = { -21, -6, { 0, 0, 0, 0 }, 12, 8 };
const Hitbox gUnk_08129510 = { -21, -20, { 0, 0, 0, 0 }, 16, 8 };
const Hitbox gUnk_08129518 = { -15, -31, { 0, 0, 0, 0 }, 8, 10 };
const Hitbox gUnk_08129520 = { -3, -39, { 0, 0, 0, 0 }, 8, 12 };
const Hitbox gUnk_08129528 = { -7, -38, { 0, 0, 0, 0 }, 7, 8 };
const Hitbox gUnk_08129530 = { -1, -29, { 0, 0, 0, 0 }, 4, 5 };
const Hitbox* const gUnk_08129538[] = {
&gUnk_08129508, &gUnk_08129510, &gUnk_08129518, &gUnk_08129520, &gUnk_08129528, &gUnk_08129530,
};
const Hitbox gUnk_08129550 = { 3, -30, { 0, 0, 0, 0 }, 7, 10 };
const Hitbox gUnk_08129558 = { 28, -12, { 0, 0, 0, 0 }, 14, 7 };
const Hitbox gUnk_08129560 = { -2, 14, { 0, 0, 0, 0 }, 12, 7 };
const Hitbox gUnk_08129568 = { -28, -12, { 0, 0, 0, 0 }, 14, 7 };
const Hitbox gUnk_08129570 = { 1, -29, { 0, 0, 0, 0 }, 8, 8 };
const Hitbox gUnk_08129578 = { 19, -8, { 0, 0, 0, 0 }, 8, 8 };
const Hitbox gUnk_08129580 = { 0, 10, { 0, 0, 0, 0 }, 8, 8 };
const Hitbox gUnk_08129588 = { -19, -8, { 0, 0, 0, 0 }, 8, 8 };
const Hitbox gUnk_08129590 = { 4, -37, { 0, 0, 0, 0 }, 7, 10 };
const Hitbox gUnk_08129598 = { 4, -35, { 0, 0, 0, 0 }, 2, 8 };
const Hitbox gUnk_081295A0 = { 32, -14, { 0, 0, 0, 0 }, 14, 6 };
const Hitbox gUnk_081295A8 = { 30, -14, { 0, 0, 0, 0 }, 12, 2 };
const Hitbox gUnk_081295B0 = { -1, 22, { 0, 0, 0, 0 }, 7, 12 };
const Hitbox gUnk_081295B8 = { -1, 20, { 0, 0, 0, 0 }, 2, 10 };
const Hitbox gUnk_081295C0 = { -32, -14, { 0, 0, 0, 0 }, 14, 6 };
const Hitbox gUnk_081295C8 = { -30, -14, { 0, 0, 0, 0 }, 12, 2 };
@@ -4,24 +4,23 @@
#include "audio.h"
#include "flags.h"
extern void (*const gUnk_081296F0[])(Entity*);
extern void (*const gUnk_08129704[])(Entity*);
void sub_080A8680(Entity*);
void sub_080A86A0(Entity*);
extern s32 sub_080AF090(Entity*);
extern s32 sub_080A7EB0(Entity*);
extern void sub_08016AD2(Entity*);
extern u32 sub_080177A0(Entity*, Entity*);
void Projectile4(Entity* this) {
gUnk_081296F0[GetNextFunction(this)](this);
extern void (*const DekuSeedProjectile_Functions[])(Entity*);
extern void (*const DekuSeedProjectile_Actions[])(Entity*);
void sub_080A8680(Entity*);
void sub_080A86A0(Entity*);
void DekuSeedProjectile(Entity* this) {
DekuSeedProjectile_Functions[GetNextFunction(this)](this);
}
void sub_080A8458(Entity* this) {
gUnk_08129704[this->action](this);
void DekuSeedProjectile_OnTick(Entity* this) {
DekuSeedProjectile_Actions[this->action](this);
}
void sub_080A8470(Entity* this) {
@@ -41,7 +40,7 @@ void sub_080A8470(Entity* this) {
}
}
void sub_080A84C8(Entity* this) {
void DekuSeedProjectile_Init(Entity* this) {
this->action = 1;
this->actionDelay = 0x30;
this->field_0xf = 0;
@@ -53,7 +52,7 @@ void sub_080A84C8(Entity* this) {
InitializeAnimation(this, 0x18);
}
void sub_080A8504(Entity* this) {
void DekuSeedProjectile_Action1(Entity* this) {
Entity* parent;
GetNextFrame(this);
@@ -88,7 +87,7 @@ void sub_080A8504(Entity* this) {
}
}
void sub_080A85B8(Entity* this) {
void DekuSeedProjectile_Action2(Entity* this) {
GetNextFrame(this);
if (sub_080AF090(this) != 0) {
if (sub_080A7EB0(this) != 0) {
@@ -106,14 +105,14 @@ void sub_080A85B8(Entity* this) {
}
}
void sub_080A8610(Entity* this) {
void DekuSeedProjectile_Action3(Entity* this) {
GetNextFrame(this);
if ((this->frames.all & 0x80) != 0) {
DeleteThisEntity();
}
}
void sub_080A862C(Entity* this) {
void DekuSeedProjectile_Action4(Entity* this) {
GetNextFrame(this);
sub_080AF090(this);
switch (sub_080044EC(this, 0x2800)) {
@@ -145,3 +144,11 @@ void sub_080A86A0(Entity* this) {
this->speed = 0;
EnqueueSFX(SFX_18E);
}
void (*const DekuSeedProjectile_Functions[])(Entity*) = {
DekuSeedProjectile_OnTick, sub_080A8470, DeleteEntity, DeleteEntity, DeleteEntity,
};
void (*const DekuSeedProjectile_Actions[])(Entity*) = {
DekuSeedProjectile_Init, DekuSeedProjectile_Action1, DekuSeedProjectile_Action2,
DekuSeedProjectile_Action3, DekuSeedProjectile_Action4,
};
@@ -4,19 +4,17 @@
#include "coord.h"
#include "functions.h"
extern void (*const gUnk_08129740[])(Entity*);
extern void (*const gUnk_08129754[])(Entity*);
extern Hitbox gUnk_08129764;
extern void sub_08078954(Entity*);
void Projectile6(Entity* this) {
gUnk_08129740[GetNextFunction(this)](this);
extern void (*const DirtBallProjectile_Functions[])(Entity*);
extern void (*const DirtBallProjectile_Actions[])(Entity*);
extern const Hitbox3D gUnk_08129764;
void DirtBallProjectile(Entity* this) {
DirtBallProjectile_Functions[GetNextFunction(this)](this);
}
void sub_080A87E4(Entity* this) {
void DirtBallProjectile_OnTick(Entity* this) {
if (this->type == 1) {
if (this->attachedEntity == NULL) {
DeleteThisEntity();
@@ -25,7 +23,7 @@ void sub_080A87E4(Entity* this) {
DeleteThisEntity();
}
}
gUnk_08129754[this->action](this);
DirtBallProjectile_Actions[this->action](this);
}
void sub_080A881C(Entity* this) {
@@ -45,12 +43,12 @@ void sub_080A881C(Entity* this) {
}
}
void sub_080A8868(Entity* this) {
void DirtBallProjectile_Init(Entity* this) {
this->action = 1;
this->subAction = 0;
this->spriteSettings.b.shadow = 1;
this->field_0x20 = 0x8000;
this->hitbox = &gUnk_08129764;
this->hitbox = (Hitbox*)&gUnk_08129764;
this->field_0x3c |= 0x10;
switch (this->type) {
case 0:
@@ -66,7 +64,7 @@ void sub_080A8868(Entity* this) {
}
}
void sub_080A88C8(Entity* this) {
void DirtBallProjectile_Action1(Entity* this) {
Entity* entity;
Entity* parent;
@@ -106,7 +104,7 @@ void sub_080A88C8(Entity* this) {
}
}
void sub_080A8988(Entity* this) {
void DirtBallProjectile_Action2(Entity* this) {
u8 bVar1;
u32 uVar2;
u32 tmp;
@@ -160,9 +158,20 @@ void sub_080A8988(Entity* this) {
}
}
void sub_080A8A48(Entity* this) {
void DirtBallProjectile_Action3(Entity* this) {
GetNextFrame(this);
if ((this->frames.all & 0x80) != 0) {
DeleteEntity(this);
}
}
void (*const DirtBallProjectile_Functions[])(Entity*) = {
DirtBallProjectile_OnTick, sub_080A881C, DeleteEntity, DeleteEntity, DeleteEntity,
};
void (*const DirtBallProjectile_Actions[])(Entity*) = {
DirtBallProjectile_Init,
DirtBallProjectile_Action1,
DirtBallProjectile_Action2,
DirtBallProjectile_Action3,
};
const Hitbox3D gUnk_08129764 = { 0, -3, { 5, 3, 3, 5 }, 6, 6, 10, { 0, 0, 0 } };
@@ -4,20 +4,20 @@
#include "functions.h"
#include "audio.h"
extern void (*const gUnk_0812982C[])(Entity*);
extern s32 sub_080AF090(Entity*);
extern s32 sub_080A7EB0(Entity*);
extern void sub_08016AD2(Entity*);
void Projectile8(Entity* this) {
extern void (*const FireProjectile_Actions[])(Entity*);
void FireProjectile(Entity* this) {
if (GetNextFunction(this) != 0) {
DeleteThisEntity();
}
gUnk_0812982C[this->action](this);
FireProjectile_Actions[this->action](this);
}
void sub_080A8BC0(Entity* this) {
void FireProjectile_Init(Entity* this) {
if (this->type == 0) {
this->action = 1;
InitializeAnimation(this, this->direction >> 3);
@@ -28,11 +28,9 @@ void sub_080A8BC0(Entity* this) {
}
}
void sub_080A8BF8(Entity* this) {
void FireProjectile_Action1(Entity* this) {
u32 direction;
Entity* parent;
parent = this->parent;
Entity* parent = this->parent;
if (parent == NULL) {
DeleteEntity(this);
} else {
@@ -53,7 +51,7 @@ void sub_080A8BF8(Entity* this) {
}
}
void sub_080A8C4C(Entity* this) {
void FireProjectile_Action2(Entity* this) {
GetNextFrame(this);
if (sub_080AF090(this) != 0) {
if (sub_080A7EB0(this) != 0) {
@@ -68,9 +66,16 @@ void sub_080A8C4C(Entity* this) {
}
}
void sub_080A8C8C(Entity* this) {
void FireProjectile_Action3(Entity* this) {
GetNextFrame(this);
if ((this->frames.all & 0x80) != 0) {
DeleteEntity(this);
}
}
void (*const FireProjectile_Actions[])(Entity*) = {
FireProjectile_Init,
FireProjectile_Action1,
FireProjectile_Action2,
FireProjectile_Action3,
};
@@ -6,33 +6,31 @@
#include "random.h"
#include "audio.h"
extern void (*const gUnk_08129954[])(Entity*);
extern void (*const gUnk_08129968[])(Entity*);
void sub_080A90D8(Entity*);
extern void sub_0806F5BC(Entity*, u32, u32);
extern u32 sub_080041DC(Entity*, u32, u32);
extern s8 gUnk_08129978[];
extern s8 gUnk_08129980[];
extern s8 gUnk_08129988[];
extern void (*const GleerokProjectile_Functions[])(Entity*);
extern void (*const GleerokProjectile_Actions[])(Entity*);
extern const s8 gUnk_08129978[];
extern const s8 gUnk_08129980[];
extern const s8 gUnk_08129988[];
void ProjectileA(Entity* this) {
gUnk_08129954[GetNextFunction(this)](this);
void sub_080A90D8(Entity*);
void GleerokProjectile(Entity* this) {
GleerokProjectile_Functions[GetNextFunction(this)](this);
}
void sub_080A8DDC(Entity* this) {
void GleerokProjectile_OnTick(Entity* this) {
if (((this->type != 3) && ((this->bitfield & 0x80) != 0)) && ((this->bitfield & 0x7f) != 0x1e)) {
this->action = 3;
this->flags &= 0x7f;
InitializeAnimation(this, 0x53);
}
gUnk_08129968[this->action](this);
GleerokProjectile_Actions[this->action](this);
}
void sub_080A8E28(Entity* this) {
void GleerokProjectile_Init(Entity* this) {
u32 uVar1;
s32 iVar2;
@@ -88,7 +86,7 @@ void sub_080A8E28(Entity* this) {
}
}
void sub_080A8FB8(Entity* this) {
void GleerokProjectile_Action1(Entity* this) {
if (this->type == 3) {
if (sub_08003FC4(this, 0x1800) == 0) {
sub_08008790(this, 7);
@@ -115,7 +113,7 @@ void sub_080A8FB8(Entity* this) {
}
}
void sub_080A9058(Entity* this) {
void GleerokProjectile_Action2(Entity* this) {
GetNextFrame(this);
if (this->type == 2) {
if (--this->actionDelay == 0xff) {
@@ -135,7 +133,7 @@ void sub_080A9058(Entity* this) {
}
}
void sub_080A90BC(Entity* this) {
void GleerokProjectile_Action3(Entity* this) {
GetNextFrame(this);
if ((this->frames.all & 0x80) != 0) {
DeleteThisEntity();
@@ -153,3 +151,16 @@ void sub_080A90D8(Entity* this) {
}
}
}
void (*const GleerokProjectile_Functions[])(Entity*) = {
GleerokProjectile_OnTick, GleerokProjectile_OnTick, DeleteEntity, DeleteEntity, DeleteEntity,
};
void (*const GleerokProjectile_Actions[])(Entity*) = {
GleerokProjectile_Init,
GleerokProjectile_Action1,
GleerokProjectile_Action2,
GleerokProjectile_Action3,
};
const s8 gUnk_08129978[] = { 80, 0, 0, 80, -96, 0, 0, -96 };
const s8 gUnk_08129980[] = { 0, 16, -16, 0, 16, -16, 16, -16 };
const s8 gUnk_08129988[] = { 0, -16, -32, -48, -64, -80, -96, -112, 0, 16, 32, 48, 64, 80, 96, 112 };
@@ -3,13 +3,14 @@
#include "coord.h"
#include "functions.h"
extern Hitbox gUnk_080FD1E4;
extern u32 sub_080644C8(Entity*);
extern u8 gUnk_081299C8[];
extern bool32 sub_080AE4CC(Entity*, u32, u32, u32);
extern Entity gUnk_02027EB4;
extern const Hitbox gUnk_080FD1E4;
void ProjectileC(Entity* this) {
extern const u8 gUnk_081299C8[];
void GuardLineOfSight(Entity* this) {
Entity* entity;
u8 tmp;
@@ -48,7 +49,7 @@ void ProjectileC(Entity* this) {
this->actionDelay = 0x12;
this->spriteSettings.b.draw = 0;
this->speed = 0x800;
this->hitbox = &gUnk_080FD1E4;
this->hitbox = (Hitbox*)&gUnk_080FD1E4;
InitializeAnimation(this, 0);
}
if (this->bitfield == 0x80) {
@@ -66,3 +67,7 @@ void ProjectileC(Entity* this) {
}
}
}
const u8 gUnk_081299C8[] = {
0, 254, 0, 254, 0, 2, 0, 2,
};
@@ -5,7 +5,7 @@
void sub_080AABB0(Entity*);
void Projectile17(Entity* this) {
void GuruguruBarProjectile(Entity* this) {
if (this->action == 0) {
this->action = 1;
InitializeAnimation(this, 0);
@@ -4,35 +4,34 @@
#include "player.h"
#include "audio.h"
extern void (*const gUnk_0812A9D8[])(Entity*);
extern void (*const gUnk_0812A9EC[])(Entity*);
void sub_080AC954(Entity*);
extern s32 sub_080AF090(Entity*);
extern s32 sub_080A7EB0(Entity*);
void Projectile23(Entity* this) {
gUnk_0812A9D8[GetNextFunction(this)](this);
extern void (*const GyorgMaleEnergyProjectile_Functions[])(Entity*);
extern void (*const GyorgMaleEnergyProjectile_Actions[])(Entity*);
void GyorgMaleEnergyProjectile_Action1(Entity*);
void GyorgMaleEnergyProjectile(Entity* this) {
GyorgMaleEnergyProjectile_Functions[GetNextFunction(this)](this);
}
void sub_080AC8C4(Entity* this) {
gUnk_0812A9EC[this->action](this);
void GyorgMaleEnergyProjectile_OnTick(Entity* this) {
GyorgMaleEnergyProjectile_Actions[this->action](this);
}
ASM_FUNC("asm/non_matching/projectile23/sub_080AC8DC.inc", void sub_080AC8DC(Entity* this))
ASM_FUNC("asm/non_matching/gyorgMaleEnergyProjectile/sub_080AC8DC.inc", void sub_080AC8DC(Entity* this))
void sub_080AC928(Entity* this) {
void GyorgMaleEnergyProjectile_Init(Entity* this) {
this->action = 1;
this->actionDelay = 0x3c;
this->collisionLayer = 2;
UpdateSpriteForCollisionLayer(this);
InitializeAnimation(this, 0);
sub_080AC954(this);
GyorgMaleEnergyProjectile_Action1(this);
}
void sub_080AC954(Entity* this) {
void GyorgMaleEnergyProjectile_Action1(Entity* this) {
u32 animationState;
if (this->parent->next == NULL) {
@@ -50,7 +49,7 @@ void sub_080AC954(Entity* this) {
}
}
void sub_080AC9CC(Entity* this) {
void GyorgMaleEnergyProjectile_Action2(Entity* this) {
sub_080AF090(this);
GetNextFrame(this);
if (sub_080A7EB0(this) != 0) {
@@ -64,10 +63,20 @@ void sub_080AC9CC(Entity* this) {
}
}
void sub_080ACA14(Entity* this) {
void GyorgMaleEnergyProjectile_Action3(Entity* this) {
sub_080AF090(this);
GetNextFrame(this);
if ((this->frames.all & 0x80) != 0) {
DeleteThisEntity();
}
}
void (*const GyorgMaleEnergyProjectile_Functions[])(Entity*) = {
GyorgMaleEnergyProjectile_OnTick, sub_080AC8DC, DeleteEntity, DeleteEntity, DeleteEntity,
};
void (*const GyorgMaleEnergyProjectile_Actions[])(Entity*) = {
GyorgMaleEnergyProjectile_Init,
GyorgMaleEnergyProjectile_Action1,
GyorgMaleEnergyProjectile_Action2,
GyorgMaleEnergyProjectile_Action3,
};
@@ -4,27 +4,25 @@
#include "audio.h"
#include "functions.h"
extern void (*const gUnk_0812A9A8[])(Entity*);
extern u16 gUnk_0812A9B4[];
bool32 sub_080AC5E4(Entity*);
void sub_080AC388(Entity*);
extern u8 gUnk_0812A9BA[];
extern u8 gEntCount;
extern Hitbox gUnk_080FD458;
extern Hitbox gUnk_080FD168;
extern Hitbox gUnk_080FD448;
extern void (*const gUnk_0812A994[])(Entity*);
extern void (*const GyorgTail_Actions[])(Entity*);
extern const s16 gUnk_0812A9B4[];
extern const u8 gUnk_0812A9B8[];
extern const u8 gUnk_0812A9BA[];
extern const u8 gUnk_0812A9C0[];
bool32 sub_080AC5E4(Entity*);
void sub_080AC388(Entity*);
void sub_080AC6F0(Entity*);
void sub_080AC760(Entity*);
void sub_080AC7C4(Entity*);
extern u8 gEntCount;
void Projectile22(Entity* this) {
void GyorgTail(Entity* this) {
Entity* parent;
if (this->parent->next == NULL) {
@@ -50,10 +48,10 @@ void Projectile22(Entity* this) {
}
void sub_080AC328(Entity* this) {
gUnk_0812A9A8[this->action](this);
GyorgTail_Actions[this->action](this);
}
void sub_080AC340(Entity* this) {
void GyorgTail_Init(Entity* this) {
if (sub_080AC5E4(this) != 0) {
this->action = 1;
this->frameIndex = 0xc;
@@ -64,7 +62,7 @@ void sub_080AC340(Entity* this) {
}
}
ASM_FUNC("asm/non_matching/projectile22/sub_080AC388.inc", void sub_080AC388(Entity* this))
ASM_FUNC("asm/non_matching/gyorgTail/sub_080AC388.inc", void sub_080AC388(Entity* this))
void sub_080AC480(Entity* this) {
if (this->actionDelay != 0) {
@@ -126,7 +124,7 @@ void sub_080AC560(Entity* this) {
this->y.WORD = entity->y.WORD - gSineTable[entity->direction + 0x40] * factor;
}
NONMATCH("asm/non_matching/projectile22/sub_080AC5E4.inc", bool32 sub_080AC5E4(Entity* this)) {
NONMATCH("asm/non_matching/gyorgTail/sub_080AC5E4.inc", bool32 sub_080AC5E4(Entity* this)) {
// TODO regalloc
Entity* entity;
Entity* entity2;
@@ -189,11 +187,11 @@ NONMATCH("asm/non_matching/projectile22/sub_080AC5E4.inc", bool32 sub_080AC5E4(E
}
END_NONMATCH
ASM_FUNC("asm/non_matching/projectile22/sub_080AC6F0.inc", void sub_080AC6F0(Entity* this))
ASM_FUNC("asm/non_matching/gyorgTail/sub_080AC6F0.inc", void sub_080AC6F0(Entity* this))
ASM_FUNC("asm/non_matching/projectile22/sub_080AC760.inc", void sub_080AC760(Entity* this))
ASM_FUNC("asm/non_matching/gyorgTail/sub_080AC760.inc", void sub_080AC760(Entity* this))
NONMATCH("asm/non_matching/projectile22/sub_080AC7C4.inc", void sub_080AC7C4(Entity* this)) {
NONMATCH("asm/non_matching/gyorgTail/sub_080AC7C4.inc", void sub_080AC7C4(Entity* this)) {
// TODO regalloc
Entity* entity1;
Entity* entity2;
@@ -227,3 +225,16 @@ void sub_080AC884(Entity* this) {
this->field_0xf = 0x56;
}
}
void (*const gUnk_0812A994[])(Entity*) = {
sub_080AC328, sub_080AC510, sub_080AC510, sub_080AC510, sub_080AC560,
};
void (*const GyorgTail_Actions[])(Entity*) = {
GyorgTail_Init,
sub_080AC388,
sub_080AC480,
};
const s16 gUnk_0812A9B4[] = { -64, 64 };
const u8 gUnk_0812A9B8[] = { 24, 20 };
const u8 gUnk_0812A9BA[] = { 24, 25, 25, 24, 24, 24 };
const u8 gUnk_0812A9C0[] = { 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
@@ -4,20 +4,20 @@
#include "functions.h"
#include "audio.h"
extern void (*const gUnk_081298B8[])(Entity*);
extern s32 sub_080AF090(Entity*);
extern s32 sub_080A7EB0(Entity*);
extern void sub_08016AD2(Entity*);
void Projectile9(Entity* this) {
extern void (*const IceProjectile_Actions[])(Entity*);
void IceProjectile(Entity* this) {
if (GetNextFunction(this) != 0) {
DeleteThisEntity();
}
gUnk_081298B8[this->action](this);
IceProjectile_Actions[this->action](this);
}
void sub_080A8CD4(Entity* this) {
void IceProjectile_Init(Entity* this) {
if (this->type == 0) {
this->action = 1;
InitializeAnimation(this, this->direction >> 3);
@@ -28,7 +28,7 @@ void sub_080A8CD4(Entity* this) {
}
}
void sub_080A8D0C(Entity* this) {
void IceProjectile_Action1(Entity* this) {
u32 direction;
Entity* parent;
@@ -53,7 +53,7 @@ void sub_080A8D0C(Entity* this) {
}
}
void sub_080A8D60(Entity* this) {
void IceProjectile_Action2(Entity* this) {
GetNextFrame(this);
if (sub_080AF090(this) != 0) {
if (sub_080A7EB0(this) != 0) {
@@ -68,9 +68,16 @@ void sub_080A8D60(Entity* this) {
}
}
void sub_080A8DA0(Entity* this) {
void IceProjectile_Action3(Entity* this) {
GetNextFrame(this);
if ((this->frames.all & 0x80) != 0) {
DeleteEntity(this);
}
}
void (*const IceProjectile_Actions[])(Entity*) = {
IceProjectile_Init,
IceProjectile_Action1,
IceProjectile_Action2,
IceProjectile_Action3,
};
+45
View File
@@ -0,0 +1,45 @@
#include "entity.h"
#include "player.h"
#include "coord.h"
extern void sub_0803C0AC(Entity*);
extern const Hitbox* const gUnk_08129998[];
void KeatonDagger(Entity* this) {
Entity* parent;
if (this->action == 0) {
this->action = 1;
}
parent = this->parent;
if (((parent == NULL) || (parent->currentHealth == 0)) || (parent->next == NULL)) {
if (((this->bitfield & 0x80) != 0) && (this->field_0x4c == &gPlayerEntity)) {
sub_0803C0AC(this);
}
DeleteEntity(this);
} else {
this->hitbox = (Hitbox*)gUnk_08129998[parent->animationState];
CopyPosition(parent, this);
if ((parent->iframes != 0) && (this->iframes == 0)) {
this->iframes = 0xff;
}
}
}
extern const Hitbox gUnk_081299A8;
extern const Hitbox gUnk_081299B0;
extern const Hitbox gUnk_081299B8;
extern const Hitbox gUnk_081299C0;
const Hitbox* const gUnk_08129998[] = {
&gUnk_081299A8,
&gUnk_081299B0,
&gUnk_081299B8,
&gUnk_081299C0,
};
const Hitbox gUnk_081299A8 = { 4, -16, { 0, 0, 0, 0 }, 2, 3 };
const Hitbox gUnk_081299B0 = { 9, -2, { 0, 0, 0, 0 }, 3, 2 };
const Hitbox gUnk_081299B8 = { -4, 1, { 0, 0, 0, 0 }, 2, 3 };
const Hitbox gUnk_081299C0 = { -9, -2, { 0, 0, 0, 0 }, 3, 3 };
+77
View File
@@ -0,0 +1,77 @@
#include "entity.h"
#include "enemy.h"
#include "functions.h"
#include "player.h"
extern void sub_0800449C(Entity*, u32);
extern void sub_08079D84(void);
extern void (*const LakituCloudProjectile_Functions[])(Entity*);
extern void (*const LakituCloudProjectile_Actions[])(Entity*);
extern void (*const LakituCloudProjectile_SubActions[])(Entity*);
void LakituCloudProjectile(Entity* this) {
if (this->parent->next == NULL) {
DeleteThisEntity();
}
LakituCloudProjectile_Functions[GetNextFunction(this)](this);
}
void LakituCloudProjectile_OnTick(Entity* this) {
LakituCloudProjectile_Actions[this->action](this);
}
void nullsub_539(Entity* this) {
}
void sub_080A9CF0(Entity* this) {
if (sub_0806F520() == 0) {
CreateFx(this, 2, 0);
DeleteThisEntity();
}
LakituCloudProjectile_SubActions[this->subAction](this);
}
void LakituCloudProjectile_SubAction0(Entity* this) {
this->subAction = 2;
}
void LakituCloudProjectile_SubAction1(Entity* this) {
}
void LakituCloudProjectile_SubAction2(Entity* this) {
if (sub_0806F3E4(this) != 0) {
if (this->damageType == 0xa6) {
ModHealth(-2);
sub_0800449C(&gPlayerEntity, 0x7a);
sub_08079D84();
}
CreateFx(this, 2, 0);
DeleteThisEntity();
}
}
void LakituCloudProjectile_Init(Entity* this) {
this->action = 1;
this->animationState = this->parent->animationState;
InitAnimationForceUpdate(this, this->animationState);
}
void LakituCloudProjectile_Action1(Entity* this) {
PositionRelative(this->parent, this, 0, -0x10000);
this->height.HALF.HI = 0xfffe;
UpdateAnimationSingleFrame(this);
}
void (*const LakituCloudProjectile_Functions[])(Entity*) = {
LakituCloudProjectile_OnTick, nullsub_539, DeleteEntity, DeleteEntity, DeleteEntity, sub_080A9CF0,
};
void (*const LakituCloudProjectile_Actions[])(Entity*) = {
LakituCloudProjectile_Init,
LakituCloudProjectile_Action1,
};
void (*const LakituCloudProjectile_SubActions[])(Entity*) = {
LakituCloudProjectile_SubAction0,
LakituCloudProjectile_SubAction1,
LakituCloudProjectile_SubAction2,
};

Some files were not shown because too many files have changed in this diff Show More