Cleanup/Documentation Round 1 (#79)

* Rename PlayerCharacterIdleAnims to gPlayerCharacterIdleAnims

* Match sub_8011B88. Remove player_callbacks_0.s

* Simplify gBgAffineRegs. sub_8003914 (Lines 163,167) shows this way is probably more correct

* General cleanup

* Avoid using apostrophes in ASM comments, b/c of VS's syntax highlighting

* Shorten Enemy and IA initialization proc names

* Create_ -> CreateEntity_

* Remove a few asm incbins
This commit is contained in:
JaceCear authored and GitHub committed 2023-05-23 08:25:18 +02:00
1 parent 360b9c2f1b
commit 88ee2b2928
110 files changed
+947 -940

No files matched your search

+2 -2
View File
@@ -4,8 +4,8 @@
.syntax unified
.arm
thumb_func_start initSprite_Enemy_Balloon
initSprite_Enemy_Balloon: @ 0x0805849C
thumb_func_start CreateEntity_Balloon
CreateEntity_Balloon: @ 0x0805849C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
+2 -2
View File
@@ -4,8 +4,8 @@
.syntax unified
.arm
thumb_func_start initSprite_Enemy_BulletBuzzer
initSprite_Enemy_BulletBuzzer: @ 0x0805971C
thumb_func_start CreateEntity_BulletBuzzer
CreateEntity_BulletBuzzer: @ 0x0805971C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
+2 -2
View File
@@ -4,8 +4,8 @@
.syntax unified
.arm
thumb_func_start initSprite_Enemy_Buzzer
initSprite_Enemy_Buzzer: @ 0x08052F94
thumb_func_start CreateEntity_Buzzer
CreateEntity_Buzzer: @ 0x08052F94
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
+2 -2
View File
@@ -4,8 +4,8 @@
.syntax unified
.arm
thumb_func_start initSprite_Enemy_Circus
initSprite_Enemy_Circus: @ 0x080557F0
thumb_func_start CreateEntity_Circus
CreateEntity_Circus: @ 0x080557F0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
+2 -2
View File
@@ -4,8 +4,8 @@
.syntax unified
.arm
thumb_func_start initSprite_Enemy_Flickey
initSprite_Enemy_Flickey: @ 0x08058920
thumb_func_start CreateEntity_Flickey
CreateEntity_Flickey: @ 0x08058920
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
+2 -2
View File
@@ -10,8 +10,8 @@ gUnknown_080D8F50:
.syntax unified
.arm
thumb_func_start initSprite_Enemy_GejiGeji
initSprite_Enemy_GejiGeji: @ 0x08057D84
thumb_func_start CreateEntity_GejiGeji
CreateEntity_GejiGeji: @ 0x08057D84
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
+2 -2
View File
@@ -4,8 +4,8 @@
.syntax unified
.arm
thumb_func_start initSprite_Enemy_Gohla
initSprite_Enemy_Gohla: @ 0x08051788
thumb_func_start CreateEntity_Gohla
CreateEntity_Gohla: @ 0x08051788
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
+2 -2
View File
@@ -4,8 +4,8 @@
.syntax unified
.arm
thumb_func_start initSprite_Enemy_Hammerhead
initSprite_Enemy_Hammerhead: @ 0x08056BF8
thumb_func_start CreateEntity_Hammerhead
CreateEntity_Hammerhead: @ 0x08056BF8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
+2 -2
View File
@@ -4,8 +4,8 @@
.syntax unified
.arm
thumb_func_start initSprite_Enemy_Kiki
initSprite_Enemy_Kiki: @ 0x08053784
thumb_func_start CreateEntity_Kiki
CreateEntity_Kiki: @ 0x08053784
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
+2 -2
View File
@@ -15,8 +15,8 @@ gUnknown_080D8F38:
.syntax unified
.arm
thumb_func_start initSprite_Enemy_Koura
initSprite_Enemy_Koura: @ 0x08054068
thumb_func_start CreateEntity_Koura
CreateEntity_Koura: @ 0x08054068
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
+2 -2
View File
@@ -12,8 +12,8 @@ gUnknown_080D8F30:
.syntax unified
.arm
thumb_func_start initSprite_Enemy_Kubinaga
initSprite_Enemy_Kubinaga: @ 0x08052288
thumb_func_start CreateEntity_Kubinaga
CreateEntity_Kubinaga: @ 0x08052288
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
+2 -2
View File
@@ -4,8 +4,8 @@
.syntax unified
.arm
thumb_func_start initSprite_Enemy_KuraKura
initSprite_Enemy_KuraKura: @ 0x08051E3C
thumb_func_start CreateEntity_KuraKura
CreateEntity_KuraKura: @ 0x08051E3C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
+2 -2
View File
@@ -4,8 +4,8 @@
.syntax unified
.arm
thumb_func_start initSprite_Enemy_Kyura
initSprite_Enemy_Kyura: @ 0x080593B4
thumb_func_start CreateEntity_Kyura
CreateEntity_Kyura: @ 0x080593B4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
+2 -2
View File
@@ -4,8 +4,8 @@
.syntax unified
.arm
thumb_func_start initSprite_Enemy_Madillo
initSprite_Enemy_Madillo: @ 0x08055EDC
thumb_func_start CreateEntity_Madillo
CreateEntity_Madillo: @ 0x08055EDC
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
+2 -2
View File
@@ -4,8 +4,8 @@
.syntax unified
.arm
thumb_func_start initSprite_Enemy_Mon
initSprite_Enemy_Mon: @ 0x08051214
thumb_func_start CreateEntity_Mon
CreateEntity_Mon: @ 0x08051214
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
+2 -2
View File
@@ -4,8 +4,8 @@
.syntax unified
.arm
thumb_func_start initSprite_Enemy_Mouse
initSprite_Enemy_Mouse: @ 0x080571B4
thumb_func_start CreateEntity_Mouse
CreateEntity_Mouse: @ 0x080571B4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
+2 -2
View File
@@ -4,8 +4,8 @@
.syntax unified
.arm
thumb_func_start initSprite_Enemy_Pen
initSprite_Enemy_Pen: @ 0x08057854
thumb_func_start CreateEntity_Pen
CreateEntity_Pen: @ 0x08057854
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
+2 -2
View File
@@ -4,8 +4,8 @@
.syntax unified
.arm
thumb_func_start initSprite_Enemy_PikoPiko
initSprite_Enemy_PikoPiko: @ 0x080554C0
thumb_func_start CreateEntity_PikoPiko
CreateEntity_PikoPiko: @ 0x080554C0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
+2 -2
View File
@@ -4,8 +4,8 @@
.syntax unified
.arm
thumb_func_start initSprite_Enemy_Star
initSprite_Enemy_Star: @ 0x08059C9C
thumb_func_start CreateEntity_Star
CreateEntity_Star: @ 0x08059C9C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
+2 -2
View File
@@ -4,8 +4,8 @@
.syntax unified
.arm
thumb_func_start initSprite_Enemy_Straw
initSprite_Enemy_Straw: @ 0x08056684
thumb_func_start CreateEntity_Straw
CreateEntity_Straw: @ 0x08056684
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
+2 -2
View File
@@ -4,8 +4,8 @@
.syntax unified
.arm
thumb_func_start initSprite_Enemy_Yado
initSprite_Enemy_Yado: @ 0x08054E0C
thumb_func_start CreateEntity_Yado
CreateEntity_Yado: @ 0x08054E0C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
+22 -22
View File
@@ -11,8 +11,8 @@ gUnknown_080D650C:
gUnknown_080D661C:
.incbin "baserom.gba", 0x000D661C, 0x110
.global PlayerCharacterIdleAnims
PlayerCharacterIdleAnims: @ 0x080D672C
.global gPlayerCharacterIdleAnims
gPlayerCharacterIdleAnims: @ 0x080D672C
.2byte 0, 91, 182, 273, 364
.global gUnknown_080D6736
@@ -702,7 +702,7 @@ _0801D788:
muls r2, r6, r2
asrs r2, r2, #5
ands r2, r7
ldr r0, _0801D7F4 @ =gUnknown_080D5C04
ldr r0, _0801D7F4 @ =gUnknown_080D5C02+2
adds r1, r1, r0
ldrb r0, [r1]
muls r0, r6, r0
@@ -732,7 +732,7 @@ _0801D7E4: .4byte gBgScrollRegs
_0801D7E8: .4byte gFlags
_0801D7EC: .4byte gUnknown_080D5C02
_0801D7F0: .4byte gBgPalette
_0801D7F4: .4byte gUnknown_080D5C04
_0801D7F4: .4byte gUnknown_080D5C02+2
_0801D7F8:
movs r2, #0
ldr r0, _0801D860 @ =gBgScrollRegs
@@ -6888,7 +6888,7 @@ _08020710: .4byte gGameMode
_08020714:
mov r0, ip
ldrb r1, [r0, #0xa]
ldr r2, _080207CC @ =PlayerCharacterIdleAnims
ldr r2, _080207CC @ =gPlayerCharacterIdleAnims
mov sl, r2
ldr r2, _080207D0 @ =gMultiplayerCharacters
ldr r3, _080207D4 @ =IWRAM_START + 0x56
@@ -6983,7 +6983,7 @@ _080207BA:
movs r0, #0
b _08020962
.align 2, 0
_080207CC: .4byte PlayerCharacterIdleAnims
_080207CC: .4byte gPlayerCharacterIdleAnims
_080207D0: .4byte gMultiplayerCharacters
_080207D4: .4byte IWRAM_START + 0x56
_080207D8:
@@ -7484,7 +7484,7 @@ _08020BA0:
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #1
ldr r4, _08020C60 @ =PlayerCharacterIdleAnims
ldr r4, _08020C60 @ =gPlayerCharacterIdleAnims
adds r0, r0, r4
ldrb r0, [r0]
subs r1, r1, r0
@@ -7572,7 +7572,7 @@ _08020C44:
.align 2, 0
_08020C58: .4byte gMultiplayerCharacters
_08020C5C: .4byte IWRAM_START + 0x56
_08020C60: .4byte PlayerCharacterIdleAnims
_08020C60: .4byte gPlayerCharacterIdleAnims
_08020C64:
adds r0, r7, #1
lsls r0, r0, #0x18
@@ -8123,7 +8123,7 @@ _08021094:
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #1
ldr r4, _08021154 @ =PlayerCharacterIdleAnims
ldr r4, _08021154 @ =gPlayerCharacterIdleAnims
adds r0, r0, r4
ldrb r0, [r0]
subs r1, r1, r0
@@ -8211,7 +8211,7 @@ _08021138:
.align 2, 0
_0802114C: .4byte gMultiplayerCharacters
_08021150: .4byte IWRAM_START + 0x56
_08021154: .4byte PlayerCharacterIdleAnims
_08021154: .4byte gPlayerCharacterIdleAnims
_08021158:
adds r0, r7, #1
lsls r0, r0, #0x18
@@ -15281,7 +15281,7 @@ sub_80246DC: @ 0x080246DC
mov ip, r1
ldrh r2, [r1]
mov sl, r2
ldr r1, _0802476C @ =PlayerCharacterIdleAnims
ldr r1, _0802476C @ =gPlayerCharacterIdleAnims
adds r0, r4, #0
adds r0, #0x85
ldrb r0, [r0]
@@ -15329,7 +15329,7 @@ sub_80246DC: @ 0x080246DC
strb r0, [r4, #0x17]
b _0802485C
.align 2, 0
_0802476C: .4byte PlayerCharacterIdleAnims
_0802476C: .4byte gPlayerCharacterIdleAnims
_08024770:
movs r1, #0x12
ldrsh r0, [r4, r1]
@@ -15503,7 +15503,7 @@ sub_802486C: @ 0x0802486C
ldrsh r0, [r2, r1]
cmp r0, #0x4f
bgt _080248C6
ldr r0, _0802490C @ =PlayerCharacterIdleAnims
ldr r0, _0802490C @ =gPlayerCharacterIdleAnims
adds r1, r3, #0
adds r1, #0x85
ldrb r1, [r1]
@@ -15551,7 +15551,7 @@ _080248FC:
mov pc, r0
.align 2, 0
_08024908: .4byte gUnknown_080D6736
_0802490C: .4byte PlayerCharacterIdleAnims
_0802490C: .4byte gPlayerCharacterIdleAnims
_08024910: .4byte _08024914
_08024914: @ jump table
.4byte _080249E8 @ case 0
@@ -15608,7 +15608,7 @@ _08024914: @ jump table
.4byte _08024A10 @ case 51
.4byte _08024A10 @ case 52
_080249E8:
ldr r1, _08024A2C @ =PlayerCharacterIdleAnims
ldr r1, _08024A2C @ =gPlayerCharacterIdleAnims
adds r0, r3, #0
adds r0, #0x85
ldrb r0, [r0]
@@ -15645,7 +15645,7 @@ _08024A20:
movs r0, #0x80
b _08024A32
.align 2, 0
_08024A2C: .4byte PlayerCharacterIdleAnims
_08024A2C: .4byte gPlayerCharacterIdleAnims
_08024A30:
movs r0, #8
_08024A32:
@@ -16067,7 +16067,7 @@ _08024D02:
mov r8, r2
cmp r0, #5
bne _08024D6C
ldr r1, _08024DB4 @ =PlayerCharacterIdleAnims
ldr r1, _08024DB4 @ =gPlayerCharacterIdleAnims
adds r0, r7, #0
adds r0, #0x85
ldrb r0, [r0]
@@ -16113,7 +16113,7 @@ _08024DA4: .4byte gUnknown_03005590
_08024DA8: .4byte gMultiSioSend
_08024DAC: .4byte gMultiplayerPlayerTasks
_08024DB0: .4byte 0x04000128
_08024DB4: .4byte PlayerCharacterIdleAnims
_08024DB4: .4byte gPlayerCharacterIdleAnims
_08024DB8: .4byte gRingCount
_08024DBC:
ldrh r1, [r4, #8]
@@ -16444,7 +16444,7 @@ _08025028:
adds r0, #2
ldrh r2, [r0]
mov ip, r2
ldr r1, _080250B0 @ =PlayerCharacterIdleAnims
ldr r1, _080250B0 @ =gPlayerCharacterIdleAnims
movs r0, #0
ldrsb r0, [r7, r0]
lsls r0, r0, #1
@@ -16510,7 +16510,7 @@ _0802506E:
lsls r0, r0, #8
b _080250BC
.align 2, 0
_080250B0: .4byte PlayerCharacterIdleAnims
_080250B0: .4byte gPlayerCharacterIdleAnims
_080250B4: .4byte gUnknown_030054B8
_080250B8:
movs r0, #0x80
@@ -16627,7 +16627,7 @@ _08025180:
adds r0, #2
ldrh r2, [r0]
mov r8, r2
ldr r1, _080251F4 @ =PlayerCharacterIdleAnims
ldr r1, _080251F4 @ =gPlayerCharacterIdleAnims
movs r0, #0
ldrsb r0, [r7, r0]
lsls r0, r0, #1
@@ -16677,7 +16677,7 @@ _080251DE:
lsrs r0, r0, #0x18
b _08025208
.align 2, 0
_080251F4: .4byte PlayerCharacterIdleAnims
_080251F4: .4byte gPlayerCharacterIdleAnims
_080251F8:
movs r0, #1
mov r1, sl
+4 -4
View File
@@ -102,7 +102,7 @@ _0801CCA8:
lsls r2, r2, #0x10
mov sl, r2
movs r6, #0xff
ldr r3, _0801CD64 @ =gUnknown_080D5B22
ldr r3, _0801CD64 @ =gUnknown_080D5B20+2
mov ip, r3
_0801CCB6:
lsls r2, r4, #2
@@ -110,7 +110,7 @@ _0801CCB6:
adds r3, r7, r2
lsls r1, r4, #1
adds r1, r1, r4
ldr r7, _0801CD68 @ =gUnknown_080D5B21
ldr r7, _0801CD68 @ =gUnknown_080D5B20+1
adds r0, r1, r7
ldrb r0, [r0]
mov r7, r8
@@ -194,8 +194,8 @@ _0801CD4C:
.align 2, 0
_0801CD5C: .4byte IWRAM_START + 0x408
_0801CD60: .4byte gUnknown_080D5B20
_0801CD64: .4byte gUnknown_080D5B22
_0801CD68: .4byte gUnknown_080D5B21
_0801CD64: .4byte gUnknown_080D5B20+2
_0801CD68: .4byte gUnknown_080D5B20+1
_0801CD6C: .4byte gNumHBlankCallbacks
_0801CD70: .4byte gHBlankCallbacks
_0801CD74: .4byte sub_801E454
+2 -2
View File
@@ -826,7 +826,7 @@ _08015C0E:
ldrsh r0, [r2, r1]
cmp r0, #0x4f
bgt _08015C76
ldr r1, _08015CD4 @ =PlayerCharacterIdleAnims
ldr r1, _08015CD4 @ =gPlayerCharacterIdleAnims
adds r0, r6, #0
adds r0, #0x85
ldrb r0, [r0]
@@ -880,7 +880,7 @@ _08015CC4: .4byte sub_8015FF0
_08015CC8: .4byte gUnknown_080D6736
_08015CCC: .4byte IWRAM_START + 0x100
_08015CD0: .4byte IWRAM_START + 0x102
_08015CD4: .4byte PlayerCharacterIdleAnims
_08015CD4: .4byte gPlayerCharacterIdleAnims
_08015CD8: .4byte IWRAM_START + 0x104
_08015CDC: .4byte IWRAM_START + 0x106
_08015CE0: .4byte IWRAM_START + 0x10A
-150
View File
@@ -1,150 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.global gUnknown_080D5518
gUnknown_080D5518:
.2byte 15, 16, 3
.2byte 16, 17, 1
.2byte 16, 51, 3
.2byte 0
.text
.syntax unified
.arm
thumb_func_start sub_8011B88
sub_8011B88: @ 0x08011B88
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #8
adds r3, r0, #0
lsls r2, r2, #0x10
lsrs r2, r2, #0x10
mov r8, r2
ldr r0, _08011BA8 @ =gGameMode
ldrb r0, [r0]
cmp r0, #2
bls _08011BAC
movs r0, #0
b _08011C7E
.align 2, 0
_08011BA8: .4byte gGameMode
_08011BAC:
lsls r0, r3, #0x10
asrs r0, r0, #0x10
lsls r1, r1, #0x10
asrs r1, r1, #0x10
ldr r4, _08011BF0 @ =gPlayer
adds r2, r4, #0
adds r2, #0x60
movs r3, #0
ldrsb r3, [r2, r3]
ldr r2, _08011BF4 @ =sub_801F214
str r2, [sp]
ldr r2, _08011BF8 @ =sub_801F550
str r2, [sp, #4]
movs r2, #0xe8
bl sub_801F15C
mov sb, r0
ldrh r1, [r0, #6]
movs r0, #0xc0
lsls r0, r0, #0x12
adds r7, r1, r0
mov r0, r8
cmp r0, #0
bne _08011BFC
adds r0, r4, #0
adds r0, #0x68
ldrh r0, [r0]
strh r0, [r7, #0x16]
adds r0, r4, #0
adds r0, #0x6a
ldrh r0, [r0]
strh r0, [r7, #0x18]
b _08011C44
.align 2, 0
_08011BF0: .4byte gPlayer
_08011BF4: .4byte sub_801F214
_08011BF8: .4byte sub_801F550
_08011BFC:
mov r1, r8
cmp r1, #0
blt _08011C44
cmp r1, #2
bgt _08011C44
ldr r1, _08011C8C @ =gUnknown_080D6736
adds r2, r4, #0
adds r2, #0x64
movs r3, #0
ldrsh r0, [r2, r3]
lsls r0, r0, #2
adds r0, r0, r1
ldrh r3, [r0]
strh r3, [r7, #0x16]
movs r5, #0
ldrsh r0, [r2, r5]
lsls r0, r0, #2
adds r1, #2
adds r0, r0, r1
ldrh r0, [r0]
strh r0, [r7, #0x18]
movs r1, #0
ldrsh r0, [r2, r1]
cmp r0, #0x4f
bgt _08011C44
ldr r1, _08011C90 @ =PlayerCharacterIdleAnims
adds r0, r4, #0
adds r0, #0x85
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
adds r0, r3, r0
strh r0, [r7, #0x16]
_08011C44:
adds r6, r7, #0
adds r6, #0x1c
ldr r5, _08011C94 @ =gUnknown_080D5518
mov r3, r8
lsls r4, r3, #1
add r4, r8
lsls r4, r4, #1
adds r0, r4, r5
ldrh r0, [r0]
bl VramMalloc
str r0, [r6, #4]
adds r0, r5, #2
adds r0, r4, r0
ldrh r0, [r0]
strh r0, [r6, #0xa]
adds r5, #4
adds r4, r4, r5
ldrh r1, [r4]
adds r0, r7, #0
adds r0, #0x3c
strb r1, [r0]
movs r0, #0x80
lsls r0, r0, #2
strh r0, [r6, #0x1a]
movs r0, #0x80
lsls r0, r0, #6
str r0, [r6, #0x10]
mov r0, sb
_08011C7E:
add sp, #8
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_08011C8C: .4byte gUnknown_080D6736
_08011C90: .4byte PlayerCharacterIdleAnims
_08011C94: .4byte gUnknown_080D5518
+6 -6
View File
@@ -215,7 +215,7 @@ _08016188:
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r4, #0x3c]
ldr r2, _08016204 @ =PlayerCharacterIdleAnims
ldr r2, _08016204 @ =gPlayerCharacterIdleAnims
ldr r1, _08016208 @ =gMultiplayerCharacters
ldrb r0, [r7]
adds r0, r0, r1
@@ -243,7 +243,7 @@ _08016188:
str r0, [r4, #0x10]
b _08016214
.align 2, 0
_08016204: .4byte PlayerCharacterIdleAnims
_08016204: .4byte gPlayerCharacterIdleAnims
_08016208: .4byte gMultiplayerCharacters
_0801620C: .4byte 0x04000128
_08016210:
@@ -702,7 +702,7 @@ _08016576:
adds r0, r7, #0
adds r0, #0x6a
strh r3, [r0]
ldr r1, _080165CC @ =PlayerCharacterIdleAnims
ldr r1, _080165CC @ =gPlayerCharacterIdleAnims
ldrb r0, [r5]
lsls r0, r0, #1
adds r0, r0, r1
@@ -721,7 +721,7 @@ _080165BC: .4byte PlayerCB_8025318
_080165C0: .4byte 0xFFBFFFFF
_080165C4: .4byte gGameMode
_080165C8: .4byte gUnknown_030053E8
_080165CC: .4byte PlayerCharacterIdleAnims
_080165CC: .4byte gPlayerCharacterIdleAnims
_080165D0:
mov r0, r8
ldrh r3, [r0, #6]
@@ -865,7 +865,7 @@ _080166E8: .4byte gVramGraphicsCopyQueueIndex
_080166EC: .4byte gGameMode
_080166F0:
movs r2, #3
ldr r3, _0801688C @ =PlayerCharacterIdleAnims
ldr r3, _0801688C @ =gPlayerCharacterIdleAnims
movs r4, #6
ldrsh r0, [r3, r4]
ldrh r1, [r6, #0xa]
@@ -1078,7 +1078,7 @@ _08016880:
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801688C: .4byte PlayerCharacterIdleAnims
_0801688C: .4byte gPlayerCharacterIdleAnims
_08016890: .4byte gCamera
_08016894: .4byte gGameMode
_08016898: .4byte gUnknown_030054B4
+158 -158
View File
@@ -117,143 +117,143 @@ gSpritePosData_enemies:
.global gSpriteInits_Interactables @ 080D4E1C
gSpriteInits_Interactables:
.4byte initSprite_Interactable_Toggle_PlayerLayer
.4byte initSprite_Interactable_Toggle_PlayerLayer
.4byte initSprite_Interactable_Platform
.4byte initSprite_Interactable_Spring_Normal_Up
.4byte initSprite_Interactable_Spring_Normal_Down
.4byte initSprite_Interactable_Spring_Normal_Right
.4byte initSprite_Interactable_Spring_Normal_Left
.4byte initSprite_Interactable_Spring_Big_UpLeft
.4byte initSprite_Interactable_Spring_Big_UpRight
.4byte initSprite_Interactable_Spring_Big_DownRight
.4byte initSprite_Interactable_Spring_Big_DownLeft
.4byte initSprite_Interactable_Spring_Small_UpRight
.4byte initSprite_Interactable_Spring_Small_UpLeft
.4byte initSprite_Interactable_CommonThinPlatform
.4byte initSprite_Interactable_Decoration
.4byte initSprite_Interactable_Ramp
.4byte initSprite_Interactable_Booster
.4byte initSprite_Interactable_InclineRamp @ The one at the end of Leaf Forest Act 1 (also in LF Act 2 and Sky Canyon Act 2)
.4byte initSprite_Interactable_BouncySpring
.4byte initSprite_Interactable_019
.4byte initSprite_Interactable_RotatingHandle
.4byte initSprite_Interactable_gappedLoop_Start
.4byte initSprite_Interactable_gappedLoop_End
.4byte CreateEntity_Toggle_PlayerLayer
.4byte CreateEntity_Toggle_PlayerLayer
.4byte CreateEntity_Platform
.4byte CreateEntity_Spring_Normal_Up
.4byte CreateEntity_Spring_Normal_Down
.4byte CreateEntity_Spring_Normal_Right
.4byte CreateEntity_Spring_Normal_Left
.4byte CreateEntity_Spring_Big_UpLeft
.4byte CreateEntity_Spring_Big_UpRight
.4byte CreateEntity_Spring_Big_DownRight
.4byte CreateEntity_Spring_Big_DownLeft
.4byte CreateEntity_Spring_Small_UpRight
.4byte CreateEntity_Spring_Small_UpLeft
.4byte CreateEntity_CommonThinPlatform
.4byte CreateEntity_Decoration
.4byte CreateEntity_Ramp
.4byte CreateEntity_Booster
.4byte CreateEntity_InclineRamp @ The one at the end of Leaf Forest Act 1 (also in LF Act 2 and Sky Canyon Act 2)
.4byte CreateEntity_BouncySpring
.4byte CreateEntity_019
.4byte CreateEntity_RotatingHandle
.4byte CreateEntity_GappedLoop_Start
.4byte CreateEntity_GappedLoop_End
.4byte initSprite_Interactable_Spikes_Up
.4byte initSprite_Interactable_Spikes_Down
.4byte initSprite_Interactable_Spikes_LeftRight @ Left
.4byte initSprite_Interactable_Spikes_LeftRight @ Right
.4byte initSprite_Interactable_Spikes_HidingUp
.4byte initSprite_Interactable_Spikes_HidingDown
.4byte CreateEntity_Spikes_Up
.4byte CreateEntity_Spikes_Down
.4byte CreateEntity_Spikes_LeftRight @ Left
.4byte CreateEntity_Spikes_LeftRight @ Right
.4byte CreateEntity_Spikes_HidingUp
.4byte CreateEntity_Spikes_HidingDown
.4byte initSprite_Interactable_Corkscrew_Start
.4byte initSprite_Interactable_Corkscrew_End
.4byte initSprite_Interactable_BouncyBar
.4byte initSprite_Interactable_GrindRail_Start
.4byte initSprite_Interactable_GrindRail_StartAir @ Enables not only from air, but when running on water aswell.
.4byte initSprite_Interactable_GrindRail_EndGround
.4byte initSprite_Interactable_GrindRail_End_ForcedJump
.4byte initSprite_Interactable_GrindRail_EndAlternate
.4byte initSprite_Interactable_GrindRail_EndAir
.4byte initSprite_Interactable_GrindRail_EndGround_Left
.4byte initSprite_Interactable_GrindRail_EndAir_Left
.4byte initSprite_Interactable_Corkscrew3D_Start
.4byte initSprite_Interactable_Corkscrew3D_End
.4byte initSprite_Interactable_StageGoal
.4byte initSprite_Interactable_Checkpoint
.4byte initSprite_Interactable_044 @ Used at layer transitions on three-quarter-type loops
.4byte initSprite_Interactable_Toggle_Checkpoint
.4byte initSprite_Interactable_Toggle_StageGoal
.4byte initSprite_Interactable_WindUpStick @ Character rotates a bit around it, then shoots up/down
.4byte initSprite_Interactable048
.4byte initSprite_Interactable_HookRail_Start
.4byte initSprite_Interactable_HookRail_End
.4byte initSprite_InteractableWindmill
.4byte initSprite_InteractableTurnAroundBar
.4byte initSprite_Interactable_HotCrater_Crane
.4byte initSprite_Interactable_DashRing
.4byte initSprite_Interactable_FloatingSpring_Up
.4byte initSprite_Interactable_MusicPlant_Note_Sphere
.4byte initSprite_Interactable_MusicPlant_Note_Block
.4byte initSprite_Interactable_MusicPlant_GuitarString
.4byte initSprite_Interactable_MusicPlant_Keyboard_Vertical
.4byte initSprite_Interactable_MusicPlant_Keyboard_Horizontal_PushLeft
.4byte initSprite_Interactable_MusicPlant_Keyboard_Horizontal_PushRight
.4byte initSprite_Interactable_MusicPlant_GermanFlute
.4byte initSprite_Interactable_MusicPlant_FrenchHorn_Entry
.4byte initSprite_Interactable_MusicPlant_PipeInstrument_Entry
.4byte initSprite_Interactable_IceParadise_SlowingSnow
.4byte initSprite_Interactable_IceParadise_FunnelSphere
.4byte initSprite_Interactable_IceParadise_HalfPipe_End @ Like in SA1 Neo Green Hill
.4byte initSprite_Interactable_IceParadise_HalfPipe_Start @ Like in SA1 Neo Green Hill
.4byte initSprite_Interactable069
.4byte initSprite_InteractableTecBaseNoteBlock
.4byte initSprite_Interactable_044
.4byte initSprite_Interactable_ClearPipe_Start
.4byte initSprite_Interactable_ClearPipe_End
.4byte initSprite_InteractableTecBaseLightBridge @ Techno Base - Loud Digital Path
.4byte initSprite_Interactable075_0
.4byte initSprite_Interactable075_1
.4byte initSprite_Interactable075_2 @ Techno Base - Box Platform (Launch player up)
.4byte initSprite_Interactable078
.4byte initSprite_Interactable079
.4byte initSprite_Interactable080
.4byte initSprite_Interactable_Platform_Square
.4byte initSprite_Interactable_SkyCanyon_GiantPropeller
.4byte initSprite_Interactable_IceParadise_SlidyIce
.4byte initSprite_Interactable_SkyCanyon_SmallSpinnyWindmill
.4byte initSprite_Interactable085
.4byte initSprite_Interactable_SkyCanyon_Whirlwind_0
.4byte initSprite_Interactable_SkyCanyon_SmallPropeller_Left
.4byte initSprite_Interactable_SkyCanyon_SmallPropeller_Right
.4byte initSprite_Interactable_SkyCanyon_SmallPropeller_Left_Periodic
.4byte initSprite_Interactable_SkyCanyon_SmallPropeller_Right_Periodic
.4byte initSprite_EggUtopia_Launcher_Left_GDown
.4byte initSprite_EggUtopia_Launcher_Right_GDown
.4byte initSprite_InteractableCannon
.4byte initSprite_Interactable094
.4byte initSprite_Interactable095
.4byte initSprite_Interactable_FlyingHandle
.4byte initSprite_InteractableSpeedingPlatform
.4byte initSprite_Interactable_Toggle_Gravity__Down
.4byte initSprite_Interactable_Toggle_Gravity__Up
.4byte initSprite_Interactable_Toggle_Gravity__Toggle
.4byte initSprite_EggUtopia_Launcher_Left_GUp
.4byte initSprite_EggUtopia_Launcher_Right_GUp @ Egg Utopia "Launcher" (like in Manias Flying Battery)
.4byte initSprite_Interactable_SpecialRing
.4byte initSprite_Interactable_SkyCanyon_Whirlwind_1
.4byte initSprite_Interactable105
.4byte CreateEntity_Corkscrew_Start
.4byte CreateEntity_Corkscrew_End
.4byte CreateEntity_BouncyBar
.4byte CreateEntity_GrindRail_Start
.4byte CreateEntity_GrindRail_StartAir @ Enables not only from air, but when running on water aswell.
.4byte CreateEntity_GrindRail_EndGround
.4byte CreateEntity_GrindRail_End_ForcedJump
.4byte CreateEntity_GrindRail_EndAlternate
.4byte CreateEntity_GrindRail_EndAir
.4byte CreateEntity_GrindRail_EndGround_Left
.4byte CreateEntity_GrindRail_EndAir_Left
.4byte CreateEntity_Corkscrew3D_Start
.4byte CreateEntity_Corkscrew3D_End
.4byte CreateEntity_StageGoal
.4byte CreateEntity_Checkpoint
.4byte CreateEntity_044 @ Used at layer transitions on three-quarter-type loops
.4byte CreateEntity_Toggle_Checkpoint
.4byte CreateEntity_Toggle_StageGoal
.4byte CreateEntity_WindUpStick @ Character rotates a bit around it, then shoots up/down
.4byte CreateEntity_048
.4byte CreateEntity_HookRail_Start
.4byte CreateEntity_HookRail_End
.4byte CreateEntity_Windmill
.4byte CreateEntity_TurnAroundBar
.4byte CreateEntity_Crane
.4byte CreateEntity_DashRing
.4byte CreateEntity_FloatingSpring_Up
.4byte CreateEntity_Note_Sphere
.4byte CreateEntity_Note_Block
.4byte CreateEntity_GuitarString
.4byte CreateEntity_Keyboard_Vertical
.4byte CreateEntity_Keyboard_Horizontal_PushLeft
.4byte CreateEntity_Keyboard_Horizontal_PushRight
.4byte CreateEntity_GermanFlute
.4byte CreateEntity_FrenchHorn_Entry
.4byte CreateEntity_PipeInstrument_Entry
.4byte CreateEntity_SlowingSnow
.4byte CreateEntity_FunnelSphere
.4byte CreateEntity_HalfPipe_End @ Like in SA1 Neo Green Hill
.4byte CreateEntity_HalfPipe_Start @ Like in SA1 Neo Green Hill
.4byte CreateEntity_069
.4byte CreateEntity_NoteBlock
.4byte CreateEntity_044
.4byte CreateEntity_ClearPipe_Start
.4byte CreateEntity_ClearPipe_End
.4byte CreateEntity_LightBridge @ Techno Base - Loud Digital Path
.4byte CreateEntity_075_0
.4byte CreateEntity_075_1
.4byte CreateEntity_075_2 @ Techno Base - Box Platform (Launch player up)
.4byte CreateEntity_078
.4byte CreateEntity_079
.4byte CreateEntity_080
.4byte CreateEntity_Platform_Square
.4byte CreateEntity_GiantPropeller
.4byte CreateEntity_SlidyIce
.4byte CreateEntity_SmallSpinnyWindmill
.4byte CreateEntity_085
.4byte CreateEntity_Whirlwind_0
.4byte CreateEntity_SmallPropeller_Left
.4byte CreateEntity_SmallPropeller_Right
.4byte CreateEntity_SmallPropeller_Left_Periodic
.4byte CreateEntity_SmallPropeller_Right_Periodic
.4byte CreateEntity_Launcher_Left_GDown
.4byte CreateEntity_Launcher_Right_GDown
.4byte CreateEntity_Cannon
.4byte CreateEntity_094
.4byte CreateEntity_095
.4byte CreateEntity_FlyingHandle
.4byte CreateEntity_SpeedingPlatform
.4byte CreateEntity_Toggle_Gravity__Down
.4byte CreateEntity_Toggle_Gravity__Up
.4byte CreateEntity_Toggle_Gravity__Toggle
.4byte CreateEntity_Launcher_Left_GUp
.4byte CreateEntity_Launcher_Right_GUp @ Egg Utopia "Launcher" (like in Manias Flying Battery)
.4byte CreateEntity_SpecialRing
.4byte CreateEntity_Whirlwind_1
.4byte CreateEntity_Interactable105
@ Enemy code
@ TODO: Some names might be wrong?
@ Should be in line with Encyclospeedia (mostly)
.global gSpriteInits_Enemies
gSpriteInits_Enemies:
.4byte initSprite_Enemy_Mon
.4byte initSprite_Enemy_Kiki
.4byte initSprite_Enemy_Buzzer
.4byte initSprite_Enemy_Gohla
.4byte initSprite_Enemy_KuraKura
.4byte initSprite_Enemy_Kubinaga
.4byte initSprite_Enemy_PikoPiko
.4byte initSprite_Enemy_Bell
.4byte initSprite_Enemy_Yado
.4byte initSprite_Enemy_Circus
.4byte initSprite_Enemy_Koura
.4byte initSprite_Enemy_Madillo
.4byte initSprite_Enemy_Straw
.4byte initSprite_Enemy_Hammerhead
.4byte initSprite_Enemy_Spinner
.4byte initSprite_Enemy_Mouse
.4byte initSprite_Enemy_Pen
.4byte initSprite_Enemy_GejiGeji
.4byte initSprite_Enemy_Balloon
.4byte initSprite_Enemy_Flickey
.4byte initSprite_Enemy_Kyura
.4byte initSprite_Enemy_Star
.4byte initSprite_Enemy_BulletBuzzer
.4byte CreateEntity_Mon
.4byte CreateEntity_Kiki
.4byte CreateEntity_Buzzer
.4byte CreateEntity_Gohla
.4byte CreateEntity_KuraKura
.4byte CreateEntity_Kubinaga
.4byte CreateEntity_PikoPiko
.4byte CreateEntity_Bell
.4byte CreateEntity_Yado
.4byte CreateEntity_Circus
.4byte CreateEntity_Koura
.4byte CreateEntity_Madillo
.4byte CreateEntity_Straw
.4byte CreateEntity_Hammerhead
.4byte CreateEntity_Spinner
.4byte CreateEntity_Mouse
.4byte CreateEntity_Pen
.4byte CreateEntity_GejiGeji
.4byte CreateEntity_Balloon
.4byte CreateEntity_Flickey
.4byte CreateEntity_Kyura
.4byte CreateEntity_Star
.4byte CreateEntity_BulletBuzzer
.global gUnknown_080D5020
@@ -263,35 +263,35 @@ gUnknown_080D5020:
@; collect the rings interactables
.global gUnknown_080D502C
gUnknown_080D502C:
.4byte initSprite_Interactable_Toggle_PlayerLayer
.4byte initSprite_Interactable_Toggle_PlayerLayer
.4byte initSprite_Interactable_Spring_Normal_Up
.4byte initSprite_Interactable_Spring_Normal_Down
.4byte initSprite_Interactable_Spring_Normal_Right
.4byte initSprite_Interactable_Spring_Normal_Left
.4byte initSprite_Interactable_Spring_Big_UpLeft
.4byte initSprite_Interactable_Spring_Big_UpRight
.4byte initSprite_Interactable_Spring_Big_DownLeft
.4byte initSprite_Interactable_Spring_Big_DownRight
.4byte initSprite_Interactable_Spring_Small_UpLeft
.4byte initSprite_Interactable_Spring_Small_UpRight
.4byte initSprite_Interactable_Ramp
.4byte initSprite_Interactable_Spikes_Up
.4byte initSprite_Interactable_Spikes_Up
.4byte initSprite_Interactable_Spikes_Up
.4byte initSprite_Interactable_Spikes_Up
.4byte initSprite_Interactable_Spikes_Up
.4byte initSprite_Interactable_Spikes_Up
.4byte initSprite_Interactable_GrindRail_Start
.4byte initSprite_Interactable_GrindRail_StartAir
.4byte initSprite_Interactable_GrindRail_EndGround
.4byte initSprite_Interactable_GrindRail_End_ForcedJump
.4byte initSprite_Interactable_GrindRail_EndAlternate
.4byte initSprite_Interactable_GrindRail_EndAir
.4byte initSprite_Interactable_GrindRail_EndGround_Left
.4byte initSprite_Interactable_GrindRail_EndAir_Left
.4byte initSprite_Interactable_MysteryItemBox
.4byte initSprite_8080368
.4byte CreateEntity_Toggle_PlayerLayer
.4byte CreateEntity_Toggle_PlayerLayer
.4byte CreateEntity_Spring_Normal_Up
.4byte CreateEntity_Spring_Normal_Down
.4byte CreateEntity_Spring_Normal_Right
.4byte CreateEntity_Spring_Normal_Left
.4byte CreateEntity_Spring_Big_UpLeft
.4byte CreateEntity_Spring_Big_UpRight
.4byte CreateEntity_Spring_Big_DownLeft
.4byte CreateEntity_Spring_Big_DownRight
.4byte CreateEntity_Spring_Small_UpLeft
.4byte CreateEntity_Spring_Small_UpRight
.4byte CreateEntity_Ramp
.4byte CreateEntity_Spikes_Up
.4byte CreateEntity_Spikes_Up
.4byte CreateEntity_Spikes_Up
.4byte CreateEntity_Spikes_Up
.4byte CreateEntity_Spikes_Up
.4byte CreateEntity_Spikes_Up
.4byte CreateEntity_GrindRail_Start
.4byte CreateEntity_GrindRail_StartAir
.4byte CreateEntity_GrindRail_EndGround
.4byte CreateEntity_GrindRail_End_ForcedJump
.4byte CreateEntity_GrindRail_EndAlternate
.4byte CreateEntity_GrindRail_EndAir
.4byte CreateEntity_GrindRail_EndGround_Left
.4byte CreateEntity_GrindRail_EndAir_Left
.4byte CreateEntity_MysteryItemBox
.4byte CreateEntity_8080368
.global gSpriteTileInits_PreStageEntry
gSpriteTileInits_PreStageEntry:
+2 -2
View File
@@ -784,7 +784,7 @@ _080083C4:
blt _0800841C
_080083D2:
ldrb r1, [r4, #0xa]
ldr r3, _080084F8 @ =PlayerCharacterIdleAnims
ldr r3, _080084F8 @ =gPlayerCharacterIdleAnims
ldr r2, _080084FC @ =gMultiplayerCharacters
adds r0, r4, #0
adds r0, #0x56
@@ -944,7 +944,7 @@ _080084EE:
adds r5, r4, r0
b _08008642
.align 2, 0
_080084F8: .4byte PlayerCharacterIdleAnims
_080084F8: .4byte gPlayerCharacterIdleAnims
_080084FC: .4byte gMultiplayerCharacters
_08008500: .4byte gCamera
_08008504: .4byte gPlayer
+1 -1
View File
@@ -38459,7 +38459,7 @@ _0804CD44: .4byte IWRAM_START + 0x94
_0804CD48: .4byte IWRAM_START + 0xD0
_0804CD4C: .4byte gUnknown_03005B4C
@; CreateTrueArea53IntroBoss - Used to suck up creme's mum
@; CreateTrueArea53IntroBoss - Used when Vanilla gets captured
thumb_func_start sub_804CD50
sub_804CD50: @ 0x0804CD50
push {r4, r5, r6, r7, lr}
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
255 0 255
8 32 41
49 57 24
49 57 24
49 57 24
49 57 24
49 57 24
49 57 24
49 57 24
180 0 189
0 164 255
172 156 156
148 189 82
197 156 255
255 106 41
90 131 139
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
205 172 0
205 205 8
205 164 65
197 139 90
205 24 148
205 123 172
205 197 197
205 0 222
0 82 8
197 139 16
197 49 74
197 213 115
197 24 148
164 106 156
180 156 180
197 57 205
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 98 115
255 255 255
255 180 57
123 57 255
90 16 180
32 16 16
205 238 255
164 189 205
98 115 156
49 74 98
65 0 123
255 115 32
222 65 0
189 32 0
131 32 0
82 32 0
+2 -1
View File
@@ -42,7 +42,8 @@
#define SA2_CHAR_ANIM_VARIANT_TRICK_SIDE_START 0
#define SA2_CHAR_ANIM_VARIANT_TRICK_SIDE_EXECUTE 1
#define SA2_CHAR_ANIM_VARIANT_TRICK_SIDE_PARTICLE_FX 2 // Sonic-only
#define SA2_CHAR_ANIM_51 51
#define SA2_CHAR_ANIM_51 51 // Sonic: Bound-Attack
#define SA2_CHAR_ANIM_68 68
#define SA2_CHAR_ANIM_70 70
#define SA2_ANIM_SONIC_IDLE 0
+1 -1
View File
@@ -199,7 +199,7 @@ extern bool8 gExecSoundMain;
extern u16 gDispCnt;
extern u16 gWinRegs[6];
extern struct BlendRegs gBldRegs;
extern struct BgAffineRegs gBgAffineRegs;
extern BgAffineReg gBgAffineRegs[2];
extern u16 gObjPalette[OBJ_PLTT_SIZE / sizeof(u16)];
extern u16 gBgPalette[BG_PLTT_SIZE / sizeof(u16)];
extern u16 gBgCntRegs[4];
+1 -1
View File
@@ -486,7 +486,7 @@ typedef struct {
extern struct UNK_3005510 gUnknown_03005510[16];
// rodata
extern const u16 PlayerCharacterIdleAnims[NUM_CHARACTERS];
extern const u16 gPlayerCharacterIdleAnims[NUM_CHARACTERS];
extern const u16 sAnimsGotThroughCharacterNames[5][3];
extern const u16 gUnknown_080D715A[5][3];
extern const u16 sAnimsGotThroughZoneAndActNames[11][3];
+1 -1
View File
@@ -9,7 +9,7 @@
#define PLAYER_AIR_SPEED_MAX Q_24_8(15.0)
#define GET_CHARACTER_ANIM(player) \
(player->unk68 - PlayerCharacterIdleAnims[player->character])
(player->unk68 - gPlayerCharacterIdleAnims[player->character])
#define PLAYERFN_SET(proc) gPlayer.callback = proc;
#define PLAYERFN_CALL(proc, player) proc(player);
+2 -20
View File
@@ -177,20 +177,8 @@ struct BlendRegs {
u16 bldY;
};
struct BgAffineRegs {
/* 0x00 */ u16 bg2pa;
/* 0x02 */ u16 bg2pb;
/* 0x04 */ u16 bg2pc;
/* 0x06 */ u16 bg2pd;
/* 0x08 */ u32 bg2x;
/* 0x0C */ u32 bg2y;
/* 0x10 */ u16 bg3pa;
/* 0x12 */ u16 bg3pb;
/* 0x14 */ u16 bg3pc;
/* 0x16 */ u16 bg3pd;
/* 0x18 */ u32 bg3x;
/* 0x1C */ u32 bg3y;
};
// TODO: Should this be in a GBA-specific header file?
#define NUM_AFFINE_BACKGROUNDS 2
// Values to be passed top the affine registers
// (used by BG2/BG3 in affine screen modes)
@@ -199,12 +187,6 @@ typedef struct {
/* 0x08 */ u32 x, y;
} BgAffineReg;
/*** TODO: Replace 'BgAffineRegs' with this! ***/
// Should we introduce "#define NUM_AFFINE_BACKGROUNDS 2"?
typedef struct {
/* 0x00 */ BgAffineReg regs[2];
} BgAffineRegs_Alt;
// TODO: Find better place for this
typedef void (*HBlankFunc)(u8 vcount);
typedef void (*IntrFunc)(void);
+1 -1
View File
@@ -230,7 +230,7 @@ void sub_8004860(Sprite *, struct UNK_808D124_UNK180 *);
void sub_8004E14(Sprite *, struct UNK_808D124_UNK180 *);
void sub_8003EE4(u16 p0, s16 p1, s16 p2, s16 p3, s16 p4, s16 p5, s16 p6,
struct BgAffineRegs *affine);
BgAffineReg *affine);
s32 sub_80036E0(Sprite *);
void sub_8003914(Sprite *);
-2
View File
@@ -77,7 +77,6 @@ SECTIONS
build/sa2/src/game/interactables_0/platform_thin.o(.text);
build/sa2/src/game/interactables_0/slidy_ice.o(.text);
build/sa2/asm/player_unknown_0.o(.text);
build/sa2/asm/player_callbacks_0.o(.text);
build/sa2/src/game/player_callbacks_0.o(.text);
build/sa2/asm/player_actor.o(.text);
build/sa2/asm/player_actions.o(.text);
@@ -279,7 +278,6 @@ SECTIONS
build/sa2/src/game/interactables_0/platform_square.o(.rodata);
build/sa2/src/game/interactables_0/platform_thin.o(.rodata);
build/sa2/asm/player_unknown_0.o(.rodata);
build/sa2/asm/player_callbacks_0.o(.rodata);
build/sa2/src/game/player_callbacks_0.o(.rodata);
build/sa2/asm/player_actor.o(.rodata);
build/sa2/asm/player_actions.o(.rodata);
+20 -23
View File
@@ -155,19 +155,16 @@ void sub_8003914(Sprite *sprite)
// gDispCnt 'Mode' is an int, not a bitfield!
if ((bgId > 1) && (gDispCnt & (DISPCNT_MODE_1 | DISPCNT_MODE_2))) {
// __sub_8003954
BgAffineRegs_Alt *affineRegs;
s32 affineX, affineY;
s32 posX, posY;
posX = dims->offsetX - sprite->x;
affineX = Mod(posX, 16);
// TODO: Remove this cast after replacing 'BgAffineRegs'
affineRegs = (BgAffineRegs_Alt *)&gBgAffineRegs;
affineRegs->regs[bgId - 2].x = Q_24_8(affineX);
gBgAffineRegs[bgId - 2].x = Q_24_8(affineX);
posY = dims->offsetY - sprite->y;
affineY = Mod(posY, 8);
affineRegs->regs[bgId - 2].y = Q_24_8(affineY);
gBgAffineRegs[bgId - 2].y = Q_24_8(affineY);
} else {
// _080039A4
s32 scrollX, scrollY;
@@ -189,43 +186,43 @@ NONMATCH("asm/non_matching/sprite__sub_80039E4.inc", u32 sub_80039E4(void)) { }
END_NONMATCH
void sub_8003EE4(u16 p0, s16 p1, s16 p2, s16 p3, s16 p4, s16 p5, s16 p6,
struct BgAffineRegs *affine)
BgAffineReg *affine)
{
affine->bg2pa = ((COS(p0) >> 6) * (s16)Div(0x10000, p1)) >> 8;
affine->bg2pb = ((SIN(p0) >> 6) * (s16)Div(0x10000, p1)) >> 8;
affine->bg2pc = ((-SIN(p0) >> 6) * (s16)Div(0x10000, p2)) >> 8;
affine->bg2pd = ((COS(p0) >> 6) * (s16)Div(0x10000, p2)) >> 8;
affine->pa = ((COS(p0) >> 6) * (s16)Div(0x10000, p1)) >> 8;
affine->pb = ((SIN(p0) >> 6) * (s16)Div(0x10000, p1)) >> 8;
affine->pc = ((-SIN(p0) >> 6) * (s16)Div(0x10000, p2)) >> 8;
affine->pd = ((COS(p0) >> 6) * (s16)Div(0x10000, p2)) >> 8;
p5 *= -1;
p6 *= -1;
{
// __sub_8003FA8
s32 r1 = (s16)affine->bg2pa * p5;
s32 r3 = (s16)affine->bg2pb * p6;
s32 r1 = (s16)affine->pa * p5;
s32 r3 = (s16)affine->pb * p6;
r1 += r3;
affine->bg2x = r1 + p3 * 256;
affine->x = r1 + p3 * 256;
}
{
// __sub_8003FBE
s32 r1 = (s16)affine->bg2pc * p5;
s32 r3 = (s16)affine->bg2pd * p6;
s32 r1 = (s16)affine->pc * p5;
s32 r3 = (s16)affine->pd * p6;
r1 += r3;
affine->bg2y = r1 + p4 * 256;
affine->y = r1 + p4 * 256;
}
}
// https://decomp.me/scratch/oyiq8
NONMATCH("asm/non_matching/sub_8004010.inc", u32 sub_8004010(void))
{
u8 bgIndex;
u16 sp00[2];
u8 r4;
u32 sp08;
u8 *spVramPtr;
u16 bgSize_TxtOrAff;
for (bgIndex = 0; bgIndex < 4; bgIndex++) {
if ((gUnknown_03002280[bgIndex][1] == gUnknown_03002280[bgIndex][3])
if ((gUnknown_03002280[bgIndex][0] == gUnknown_03002280[bgIndex][3])
&& (gUnknown_03002280[bgIndex][2] == gUnknown_03002280[bgIndex][0]))
continue;
@@ -237,12 +234,11 @@ NONMATCH("asm/non_matching/sub_8004010.inc", u32 sub_8004010(void))
vramBgCtrl += target * 4;
r4 = gUnknown_03002280[bgIndex][1];
sp08 = gUnknown_03002280[bgIndex][0];
if ((bgIndex > 1)
&& (gDispCnt & (DISPCNT_MODE_2 | DISPCNT_MODE_1 | DISPCNT_MODE_0))) {
// _0800408E
spVramPtr = (u8 *)&vramBgCtrl[sp08];
spVramPtr = (u8 *)&vramBgCtrl[gUnknown_03002280[bgIndex][0]];
bgSize_TxtOrAff = 0x10 << (gBgCntRegs[bgIndex] >> 14);
if (gUnknown_03002280[bgIndex][3] == 0xFF) {
@@ -254,7 +250,7 @@ NONMATCH("asm/non_matching/sub_8004010.inc", u32 sub_8004010(void))
value = ((gUnknown_03002280[bgIndex][3] - r4) * bgSize_TxtOrAff);
DmaCopy16(3, &sp00, &spVramPtr[bgSize_TxtOrAff * r4],
(((s32)(value + (value >> 31))) / 2));
(((s32)(value + (value >> 31))) >> 1));
} else {
// _080040F8
// u8 i2 = i + 1;
@@ -264,8 +260,9 @@ NONMATCH("asm/non_matching/sub_8004010.inc", u32 sub_8004010(void))
v |= v << 8;
sp00[0] = v;
DmaCopy32(3, &sp00, &spVramPtr[bgIndex * r4],
(s32)(bgIndex * 4 - sp08 + 1));
DmaCopy32(
3, &sp00, &spVramPtr[bgIndex * r4],
(s32)(bgIndex * 4 - gUnknown_03002280[bgIndex][0] + 1));
}
}
// then -> _0800422C
+17 -14
View File
@@ -37,7 +37,7 @@ u8 gNumHBlankIntrs = 0;
struct BlendRegs gBldRegs ALIGNED(8) = {};
u8 gUnknown_030018F0 = 0;
struct Task gEmptyTask ALIGNED(16) = {};
struct BgAffineRegs gBgAffineRegs ALIGNED(8) = {};
BgAffineReg gBgAffineRegs[NUM_AFFINE_BACKGROUNDS] ALIGNED(8) = {};
u32 gVramHeapStartAddr = 0;
u16 gUnknown_03001944 ALIGNED(4) = 0;
u8 gUnknown_03001948 ALIGNED(4) = 0;
@@ -228,18 +228,21 @@ void GameInit(void)
DmaFill32(3, 0, gObjPalette, sizeof(gObjPalette));
DmaFill32(3, 0, gBgPalette, sizeof(gBgPalette));
gBgAffineRegs.bg2pa = 0x100;
gBgAffineRegs.bg2pb = 0;
gBgAffineRegs.bg2pc = 0;
gBgAffineRegs.bg2pd = 0x100;
gBgAffineRegs.bg2x = 0;
gBgAffineRegs.bg2y = 0;
gBgAffineRegs.bg3pa = 0x100;
gBgAffineRegs.bg3pb = 0;
gBgAffineRegs.bg3pc = 0;
gBgAffineRegs.bg3pd = 0x100;
gBgAffineRegs.bg3x = 0;
gBgAffineRegs.bg3y = 0;
// BG2
gBgAffineRegs[0].pa = 0x100;
gBgAffineRegs[0].pb = 0;
gBgAffineRegs[0].pc = 0;
gBgAffineRegs[0].pd = 0x100;
gBgAffineRegs[0].x = 0;
gBgAffineRegs[0].y = 0;
// BG3
gBgAffineRegs[1].pa = 0x100;
gBgAffineRegs[1].pb = 0;
gBgAffineRegs[1].pc = 0;
gBgAffineRegs[1].pd = 0x100;
gBgAffineRegs[1].x = 0;
gBgAffineRegs[1].y = 0;
gUnknown_03001944 = 0;
gUnknown_030017F0 = 0x100;
@@ -444,7 +447,7 @@ static void UpdateScreenDma(void)
}
gUnknown_030026F4 = 0xff;
for (; j <= 3; j++) {
for (; j < ARRAY_COUNT(spriteUpdateFuncs); j++) {
if (spriteUpdateFuncs[j]() == 0) {
gUnknown_030026F4 = j;
break;
+5 -5
View File
@@ -438,7 +438,7 @@ void sub_808E274(struct CharacterUnlockCutScene *scene)
gBgScrollRegs[0][0] = 0;
gBgScrollRegs[0][1] = 0;
sub_8003EE4(0, 0x100, 0x100, 0, 0, 0, 0, &gBgAffineRegs);
sub_8003EE4(0, 0x100, 0x100, 0, 0, 0, 0, gBgAffineRegs);
sub_808E35C(scene);
transition = &scene->unk100;
@@ -514,7 +514,7 @@ void sub_808E424(void)
}
}
sub_8003EE4(0, 0x100, 0x100, 0, 0, 0, 0, &gBgAffineRegs);
sub_8003EE4(0, 0x100, 0x100, 0, 0, 0, 0, gBgAffineRegs);
if (NextTransitionFrame(&scene->unk100) == SCREEN_TRANSITION_COMPLETE) {
scene->unk110 = 0;
gCurTask->main = sub_808E4C8;
@@ -533,7 +533,7 @@ void sub_808E4C8(void)
}
scene = TaskGetStructPtr(gCurTask);
sub_8003EE4(0, 0x100, 0x100, 0, 0, 0, 0, &gBgAffineRegs);
sub_8003EE4(0, 0x100, 0x100, 0, 0, 0, 0, gBgAffineRegs);
if (scene->unk110++ > 0x154) {
scene->unk110 = 0;
@@ -579,7 +579,7 @@ void sub_808E6B0(void);
void sub_808E63C(void)
{
struct CharacterUnlockCutScene *scene = TaskGetStructPtr(gCurTask);
sub_8003EE4(0, 0x100, 0x100, 0, 0, 0, 0, &gBgAffineRegs);
sub_8003EE4(0, 0x100, 0x100, 0, 0, 0, 0, gBgAffineRegs);
if (scene->unk110++ > 300) {
struct TransitionState *transition;
@@ -598,7 +598,7 @@ void sub_808E63C(void)
void sub_808E6B0(void)
{
struct CharacterUnlockCutScene *scene = TaskGetStructPtr(gCurTask);
sub_8003EE4(0, 0x100, 0x100, 0, 0, 0, 0, &gBgAffineRegs);
sub_8003EE4(0, 0x100, 0x100, 0, 0, 0, 0, gBgAffineRegs);
if (NextTransitionFrame(&scene->unk100) == SCREEN_TRANSITION_COMPLETE) {
if (gCurrentLevel >= gLoadedSaveGame->unlockedLevels[gSelectedCharacter]) {
+1 -2
View File
@@ -22,8 +22,7 @@ static void sub_8054D20(void);
#define ANIM_BELL_TILES 20
void initSprite_Enemy_Bell(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
void CreateEntity_Bell(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY, u8 spriteY)
{
struct Task *t = TaskCreate(sub_8054BF4, sizeof(Sprite_Bell), 0x4080, 0,
TaskDestructor_80095E8);
+2 -2
View File
@@ -23,8 +23,8 @@ typedef struct {
void Task_EnemySpinner(void);
void TaskDestructor_80095E8(struct Task *);
void initSprite_Enemy_Spinner(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
void CreateEntity_Spinner(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(Task_EnemySpinner, sizeof(Sprite_Spinner), 0x4040, 0,
TaskDestructor_80095E8);
+189 -59
View File
@@ -70,7 +70,26 @@ void sub_801BDE0(void);
void sub_801BE4C(void);
void sub_801BEB8(void);
void sub_801BF24(void);
const VoidFn gUnknown_080D57DC[]
void sub_802C668(s32 *, s32 *);
void sub_801E0A8(void);
void sub_801E040(struct Task *);
struct Backgrounds {
Background unk0;
Background unk40;
Background unk80;
Background unkC0;
};
extern struct Backgrounds gUnknown_03005850;
extern const u32 *gUnknown_030059C8;
extern const Background gUnknown_080D5864[4];
extern const CameraMain gUnknown_080D5A10[];
extern const u32 *gUnknown_080D62D8[NUM_LEVEL_IDS];
const VoidFn gUnknown_080D57DC[NUM_LEVEL_IDS]
= { sub_801AF14, sub_801B7BC, sub_801B83C, sub_801BF24, // Anti-Formatting
sub_801B8A8, sub_801B914, sub_801B980, sub_801BF24, //
sub_801AFA4, sub_801B03C, sub_801B9EC, sub_801BF24, //
@@ -271,49 +290,182 @@ const CameraMain gUnknown_080D5A10[] = {
sub_801C818, sub_801D534,
};
asm(".global gUnknown_080D5A98\n"
"gUnknown_080D5A98:\n"
" .incbin \"baserom.gba\", 0x000D5A98, 0x88");
const s8 gUnknown_080D5A98[NUM_LEVEL_IDS][4] = {
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x40, 0x02, 0x1C }, //
{ 0x20, 0x40, 0x02, 0x1C }, //
{ 0x20, 0x40, 0x02, 0x1C }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x40, 0x02, 0x1C }, //
{ 0x20, 0x40, 0x02, 0x1C }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x40, 0x02, 0x1C }, //
{ 0x40, 0x20, 0x02, 0x1C }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x20, 0x02, 0x1C }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x20, 0x02, 0x1C }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x20, 0x40, 0x02, 0x1C }, //
{ 0x20, 0x20, 0x02, 0x1D }, //
{ 0x40, 0x20, 0x02, 0x1C }, //
};
const u8 gUnknown_080D5B20 = 14;
const u8 gUnknown_080D5B21 = 0;
const u8 gUnknown_080D5B20[] = {
14, 0, 1, //
22, 0, 3, //
30, 0, 2, //
38, 0, 1, //
46, 0, 3, //
62, 0, 1, //
70, 0, 2, //
86, 0, 1, //
94, 0, 2, //
126, 0, 1, //
168, 1, 1, //
174, 1, 2, //
182, 2, 3, //
198, 3, 4, //
222, 4, 5, //
255, 5, 6, //
};
asm(" .global gUnknown_080D5B22\n"
"gUnknown_080D5B22:\n"
" .incbin \"baserom.gba\", 0x000D5B22, 0x2E");
// Used by sub_801E498
const u8 gUnknown_080D5B50[160] = {
// 0-105
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 10, //
10, 10, 8, //
8, 8, 8, //
7, 7, 7, //
7, 6, 6, //
asm(" .global gUnknown_080D5B50\n"
"gUnknown_080D5B50:\n"
" .incbin \"baserom.gba\", 0x000D5B50, 0xA0\n");
// 106-159 | This data appears to be unused
6, 6, 6, //
6, 6, 6, //
5, 5, 5, //
5, 5, 5, //
5, 5, 4, //
4, 4, 4, //
4, 4, 4, //
4, 3, 3, //
3, 3, 3, //
3, 3, 3, //
3, 3, 3, //
3, 3, 3, //
3, 3, 2, //
2, 2, 2, //
2, 2, 2, //
2, 2, 2, //
2, 2, 2, //
2, 2, 2, //
asm(" .global gUnknown_080D5BF0\n"
"gUnknown_080D5BF0:\n"
" .incbin \"baserom.gba\", 0x000D5BF0, 0x12");
// Maybe padding?
0
};
asm(" .global gUnknown_080D5C02\n"
"gUnknown_080D5C02:\n"
" .incbin \"baserom.gba\", 0x000D5C02, 0x2");
const s16 gUnknown_080D5BF0[] = {
Q_8_8(0.00), Q_8_8(0.25), Q_8_8(2.25), Q_8_8(2.50), Q_8_8(3.50),
Q_8_8(3.625), Q_8_8(5.625), Q_8_8(5.75), Q_8_8(6.75),
};
asm(" .global gUnknown_080D5C04\n"
"gUnknown_080D5C04:\n"
" .incbin \"baserom.gba\", 0x000D5C04, 0x5E");
const u8 gUnknown_080D5C02[] = {
0x1F, 0x00, 0x1F, //
0x01, 0x07, 0x14, //
0x01, 0x09, 0x14, //
0x00, 0x0A, 0x13, //
0x00, 0x0C, 0x13, //
0x00, 0x0D, 0x12, //
0x00, 0x0F, 0x12, //
0x00, 0x10, 0x11, //
0x00, 0x12, 0x10, //
0x00, 0x13, 0x10, //
0x00, 0x15, 0x0F, //
0x00, 0x16, 0x0F, //
0x00, 0x18, 0x0E, //
0x00, 0x19, 0x0E, //
0x00, 0x1B, 0x0D, //
0x1F, 0x07, 0x00, //
0x1F, 0x00, 0x00, //
0x0F, 0x00, 0x1B, //
0x0E, 0x00, 0x19, //
0x0D, 0x01, 0x17, //
0x0C, 0x01, 0x15, //
0x0B, 0x02, 0x13, //
0x0A, 0x02, 0x11, //
0x08, 0x03, 0x0F, //
0x07, 0x03, 0x0D, //
0x06, 0x04, 0x0B, //
0x05, 0x04, 0x09, //
0x04, 0x05, 0x07, //
0x03, 0x05, 0x05, //
0x02, 0x06, 0x03, //
0x01, 0x06, 0x01, //
0x00, 0x07, 0x00, //
};
asm(" .global gUnknown_080D5C62\n"
"gUnknown_080D5C62:\n"
" .incbin \"baserom.gba\", 0x000D5C62, 0x20");
const s16 gUnknown_080D5C62[8][2] = {
{ -Q_8_8(3.00), -Q_8_8(0.25) }, //
{ -Q_8_8(1.50), +Q_8_8(0.00) }, //
asm(" .global gUnknown_080D5C82\n"
"gUnknown_080D5C82:\n"
" .incbin \"baserom.gba\", 0x000D5C82, 0x20");
{ -Q_8_8(3.00), -Q_8_8(0.25) }, //
{ -Q_8_8(1.00), -Q_8_8(0.0859375) }, //
asm(" .global gUnknown_080D5CA2\n"
"gUnknown_080D5CA2:\n"
" .incbin \"baserom.gba\", 0x000D5CA2, 0x20");
{ -Q_8_8(3.00), -Q_8_8(0.25) }, //
{ -Q_8_8(1.50), +Q_8_8(0.00) }, //
// Some palette
asm(" .global gUnknown_080D5CC2\n"
"gUnknown_080D5CC2:\n"
" .incbin \"baserom.gba\", 0x000D5CC2, 0x22");
{ -Q_8_8(3.00), -Q_8_8(0.25) }, //
{ -Q_8_8(0.75), -Q_8_8(0.125) }, //
};
const u16 gUnknown_080D5C82[16] = INCBIN_U16("graphics/080D5C82.gbapal");
const u16 gUnknown_080D5CA2[16] = INCBIN_U16("graphics/080D5CA2.gbapal");
const u16 gUnknown_080D5CC2[16] = INCBIN_U16("graphics/080D5CC2.gbapal");
void ApplyGameStageSettings(void)
{
@@ -361,12 +513,12 @@ void GameStageStart(void)
gUnknown_030054A0 = gFrameCount;
}
gCheckpointTime = 0;
gCheckpointTime = ZONE_TIME_TO_INT(0, 0);
if (gGameMode != GAME_MODE_MULTI_PLAYER_COLLECT_RINGS) {
gCourseTime = 0;
gCourseTime = ZONE_TIME_TO_INT(0, 0);
} else {
gCourseTime = 0x2A30;
gCourseTime = ZONE_TIME_TO_INT(3, 0);
}
CreateGameStage();
@@ -1308,28 +1460,6 @@ void sub_801BFFC(u16 level)
}
}
void sub_802C668(s32 *, s32 *);
void sub_801E0A8(void);
void sub_801E040(struct Task *);
extern const s8 gUnknown_080D5A98[][4];
extern const u32 *gUnknown_080D62D8[];
extern const Background gUnknown_080D5864[4];
extern const CameraMain gUnknown_080D5A10[];
struct Backgrounds {
Background unk0;
Background unk40;
Background unk80;
Background unkC0;
};
extern struct Backgrounds gUnknown_03005850;
extern const u32 *gUnknown_030059C8;
void sub_801C068(u32 level)
{
s32 x;
+1 -2
View File
@@ -76,8 +76,7 @@ void Task_Interactable_044(void)
#undef sRight
#undef sLeft
void initSprite_Interactable_044(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
void CreateEntity_044(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY, u8 spriteY)
{
struct Task *t
= TaskCreate(Task_Interactable_044, sizeof(Sprite_IA044), 0x2010, 0, NULL);
+4 -4
View File
@@ -124,8 +124,8 @@ static void Task_ClearPipe_End(void)
}
}
void initSprite_Interactable_ClearPipe_Start(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_ClearPipe_Start(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t
= TaskCreate(Task_ClearPipe_Start, sizeof(Sprite_ClearPipe), 0x2010, 0, NULL);
@@ -138,8 +138,8 @@ void initSprite_Interactable_ClearPipe_Start(MapEntity *me, u16 spriteRegionX,
SET_MAP_ENTITY_INITIALIZED(me);
}
void initSprite_Interactable_ClearPipe_End(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_ClearPipe_End(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t
= TaskCreate(Task_ClearPipe_End, sizeof(Sprite_ClearPipe), 0x2010, 0, NULL);
+25 -27
View File
@@ -17,14 +17,12 @@ typedef struct {
#define RAIL_KIND_80 0x80
#define INITIALIZE_RAIL(type) \
initSprite_Interactable_GrindRail(me, spriteRegionX, spriteRegionY, spriteY, type)
CreateEntity_GrindRail(me, spriteRegionX, spriteRegionY, spriteY, type)
#define INITIALIZE_RAIL_AIR(type) \
initSprite_Interactable_GrindRail_Air(me, spriteRegionX, spriteRegionY, spriteY, \
type)
CreateEntity_GrindRail_Air(me, spriteRegionX, spriteRegionY, spriteY, type)
extern void initSprite_Interactable_GrindRail(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY,
u8 railType);
extern void CreateEntity_GrindRail(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY, u8 railType);
void Task_GrindRail(void);
void sub_8010464(void);
@@ -267,8 +265,8 @@ NONMATCH("asm/non_matching/Task_GrindRail_Air.inc", void Task_GrindRail_Air(void
}
END_NONMATCH
void initSprite_Interactable_GrindRail(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY, u8 railType)
void CreateEntity_GrindRail(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY, u8 railType)
{
#ifdef NON_MATCHING
struct Task *t
@@ -312,8 +310,8 @@ void initSprite_Interactable_GrindRail(MapEntity *me, u16 spriteRegionX,
SET_MAP_ENTITY_INITIALIZED(me);
}
void initSprite_Interactable_GrindRail_Air(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY, u8 railType)
void CreateEntity_GrindRail_Air(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY, u8 railType)
{
#ifdef NON_MATCHING
struct Task *t
@@ -374,51 +372,51 @@ void sub_8010464(void)
}
}
void initSprite_Interactable_GrindRail_StartAir(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_GrindRail_StartAir(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
INITIALIZE_RAIL(2);
}
void initSprite_Interactable_GrindRail_End_ForcedJump(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_GrindRail_End_ForcedJump(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
{
INITIALIZE_RAIL(3);
}
void initSprite_Interactable_GrindRail_Start(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_GrindRail_Start(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
INITIALIZE_RAIL(0);
}
void initSprite_Interactable_GrindRail_EndGround(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_GrindRail_EndGround(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
{
INITIALIZE_RAIL(1);
}
void initSprite_Interactable_GrindRail_EndAir(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_GrindRail_EndAir(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
INITIALIZE_RAIL_AIR(2);
}
void initSprite_Interactable_GrindRail_EndAir_Left(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_GrindRail_EndAir_Left(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
{
INITIALIZE_RAIL_AIR(3);
}
// Might be called "initSprite_Interactable_GrindRail_StartAir" instead?
void initSprite_Interactable_GrindRail_EndAlternate(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
// Might be called "CreateEntity_GrindRail_StartAir" instead?
void CreateEntity_GrindRail_EndAlternate(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
{
INITIALIZE_RAIL_AIR(0);
}
void initSprite_Interactable_GrindRail_EndGround_Left(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_GrindRail_EndGround_Left(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
{
INITIALIZE_RAIL_AIR(1);
}
+3 -4
View File
@@ -80,8 +80,8 @@ const AnimId sPlatformLevelAnims[38] = {
[LEVEL_INDEX(9, ACT_2)] = SA2_ANIM_PLATFORM_LEA_FOR,
};
void initSprite_Interactable_Platform(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Platform(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(Task_800E89C, sizeof(Sprite_Platform), 0x2010, 0,
TaskDestructor_800F19C);
@@ -256,8 +256,7 @@ void Task_800E89C(void)
}
}
void initSprite_Interactable079(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
void CreateEntity_079(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY, u8 spriteY)
{
struct Task *t = TaskCreate(Task_800EC58, sizeof(Sprite_Platform), 0x2010, 0,
TaskDestructor_800F19C);
+2 -2
View File
@@ -39,8 +39,8 @@ static const u16 sAnimsPlatformSquare[9][3] = {
{ 36, SA2_ANIM_PLATFORM_SQUARE_COMMON, 0 },
};
void initSprite_Interactable_Platform_Square(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Platform_Square(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(Task_Platform_Square, sizeof(Sprite_PlatformSquare),
0x2010, 0, TaskDestructor_Platform_Square);
+3 -3
View File
@@ -72,8 +72,8 @@ static const u16 sPlatformBreakAnimations[][6] = {
};
static const u16 unused = 0;
void initSprite_Interactable_CommonThinPlatform(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_CommonThinPlatform(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t
= TaskCreate(Task_CommonPlatformThinMain, sizeof(Sprite_CommonThinPlatform),
@@ -172,7 +172,7 @@ static void Task_CommonPlatformThinMain(void)
break;
case CHARACTER_SONIC:
case CHARACTER_AMY: {
unk68 -= PlayerCharacterIdleAnims[player->character];
unk68 -= gPlayerCharacterIdleAnims[player->character];
if (unk64 == 0x24 && unk68 == 0x33 && unk6A == 1
&& player->speedAirY > 0) {
player->moveState &= ~MOVESTATE_8;
+7 -8
View File
@@ -14,16 +14,15 @@ typedef struct {
/* 0x3C */ u16 unk3C;
} Sprite_Ramp /* size 0x40 */;
static void Task_Interactable_Ramp(void);
static void TaskDestructor_Interactable_Ramp(struct Task *);
static void Task_Ramp(void);
static void TaskDestructor_Ramp(struct Task *);
void initSprite_Interactable_Ramp(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
void CreateEntity_Ramp(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY, u8 spriteY)
{
u8 temp;
s32 temp2;
struct Task *t = TaskCreate(Task_Interactable_Ramp, sizeof(Sprite_Ramp), 0x2010, 0,
TaskDestructor_Interactable_Ramp);
struct Task *t
= TaskCreate(Task_Ramp, sizeof(Sprite_Ramp), 0x2010, 0, TaskDestructor_Ramp);
Sprite_Ramp *ramp = TaskGetStructPtr(t);
Sprite *displayed = &ramp->displayed;
@@ -67,7 +66,7 @@ void initSprite_Interactable_Ramp(MapEntity *me, u16 spriteRegionX, u16 spriteRe
sub_8004558(displayed);
}
static void Task_Interactable_Ramp(void)
static void Task_Ramp(void)
{
Player *player = &gPlayer;
Sprite_Ramp *ramp = TaskGetStructPtr(gCurTask);
@@ -182,7 +181,7 @@ static void Task_Interactable_Ramp(void)
sub_80051E8(displayed);
}
static void TaskDestructor_Interactable_Ramp(struct Task *t)
static void TaskDestructor_Ramp(struct Task *t)
{
Sprite_Ramp *ramp = TaskGetStructPtr(t);
VramFree(ramp->displayed.graphics.dest);
+5 -6
View File
@@ -4,7 +4,7 @@
#include "game/game.h"
#include "game/entity.h"
extern void Task_Interactable_IceParadise_SlidyIce(void);
extern void Task_SlidyIce(void);
typedef struct {
/* 0x00 */ u8 x;
@@ -21,7 +21,7 @@ typedef struct {
/* 0x00 */ SpriteBase base;
} Sprite_SlidyIce;
void Task_Interactable_IceParadise_SlidyIce(void)
void Task_SlidyIce(void)
{
Sprite_SlidyIce *ice = TaskGetStructPtr(gCurTask);
MapEntity_SlidyIce *me = (MapEntity_SlidyIce *)ice->base.me;
@@ -58,11 +58,10 @@ void Task_Interactable_IceParadise_SlidyIce(void)
}
}
void initSprite_Interactable_IceParadise_SlidyIce(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_SlidyIce(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t
= TaskCreate(Task_Interactable_IceParadise_SlidyIce, 0xC, 0x2010, 0, NULL);
struct Task *t = TaskCreate(Task_SlidyIce, 0xC, 0x2010, 0, NULL);
Sprite_SlidyIce *ice = TaskGetStructPtr(t);
ice->base.regionX = spriteRegionX;
+31 -32
View File
@@ -31,14 +31,14 @@ typedef struct {
#define NUM_SPRING_KINDS 3
#define INITIALIZE_SPRING(springType) \
initSprite_Interactable_Spring(springType, me, spriteRegionX, spriteRegionY, param3)
CreateEntity_Spring(springType, me, spriteRegionX, spriteRegionY, param3)
static void initSprite_Interactable_Spring(u8, MapEntity *, u16, u16, u8);
static void Task_Interactable_Spring(void);
static void CreateEntity_Spring(u8, MapEntity *, u16, u16, u8);
static void Task_Spring(void);
static void sub_800E3D0(void);
static bool32 sub_800E490(Sprite *p0, MapEntity *me, Sprite_Spring *spring,
Player *player);
static void TaskDestructor_Interactable_Spring(struct Task *t);
static void TaskDestructor_Spring(struct Task *t);
static const u16 sSpringAnimationData[NUM_SPRING_KINDS][SPRINGTYPE_COUNT][4] = {
{
@@ -88,13 +88,12 @@ static const u16 sSpring_MusicPlant_Soundeffects[5]
= { SE_MUSIC_PLANT_SPRING_1, SE_MUSIC_PLANT_SPRING_2, SE_MUSIC_PLANT_SPRING_3,
SE_MUSIC_PLANT_SPRING_4, MUS_DUMMY };
static void initSprite_Interactable_Spring(u8 springType, MapEntity *me,
u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
static void CreateEntity_Spring(u8 springType, MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
{
s16 springKind = SPRING_KIND_NORMAL;
struct Task *t = TaskCreate(Task_Interactable_Spring, sizeof(Sprite_Spring), 0x2010,
0, TaskDestructor_Interactable_Spring);
struct Task *t = TaskCreate(Task_Spring, sizeof(Sprite_Spring), 0x2010, 0,
TaskDestructor_Spring);
Sprite_Spring *spring = TaskGetStructPtr(t);
Sprite *displayed = &spring->displayed;
@@ -141,7 +140,7 @@ static void initSprite_Interactable_Spring(u8 springType, MapEntity *me,
sub_8004558(displayed);
}
static void Task_Interactable_Spring(void)
static void Task_Spring(void)
{
Sprite_Spring *spring = TaskGetStructPtr(gCurTask);
Sprite *displayed = &spring->displayed;
@@ -183,7 +182,7 @@ static void sub_800E3D0(void)
}
sub_8004558(displayed);
gCurTask->main = Task_Interactable_Spring;
gCurTask->main = Task_Spring;
}
sub_80051E8(displayed);
@@ -217,7 +216,7 @@ static bool32 sub_800E490(Sprite *displayed, MapEntity *me, Sprite_Spring *sprin
}
}
static void TaskDestructor_Interactable_Spring(struct Task *t)
static void TaskDestructor_Spring(struct Task *t)
{
Sprite_Spring *spring = TaskGetStructPtr(t);
if ((LEVEL_TO_ZONE(gCurrentLevel) != ZONE_3) || (spring->unk3D / 2 != 0)) {
@@ -225,62 +224,62 @@ static void TaskDestructor_Interactable_Spring(struct Task *t)
}
}
void initSprite_Interactable_Spring_Big_DownLeft(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 param3)
void CreateEntity_Spring_Big_DownLeft(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 param3)
{
INITIALIZE_SPRING(6);
}
void initSprite_Interactable_Spring_Normal_Down(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 param3)
void CreateEntity_Spring_Normal_Down(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 param3)
{
INITIALIZE_SPRING(SPRINGTYPE_NORMAL_DOWN);
}
void initSprite_Interactable_Spring_Big_DownRight(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 param3)
void CreateEntity_Spring_Big_DownRight(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 param3)
{
INITIALIZE_SPRING(7);
}
void initSprite_Interactable_Spring_Normal_Left(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 param3)
void CreateEntity_Spring_Normal_Left(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 param3)
{
INITIALIZE_SPRING(2);
}
void initSprite_Interactable_Spring_Normal_Right(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 param3)
void CreateEntity_Spring_Normal_Right(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 param3)
{
INITIALIZE_SPRING(3);
}
void initSprite_Interactable_Spring_Big_UpLeft(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 param3)
void CreateEntity_Spring_Big_UpLeft(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 param3)
{
INITIALIZE_SPRING(4);
}
void initSprite_Interactable_Spring_Normal_Up(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 param3)
void CreateEntity_Spring_Normal_Up(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 param3)
{
INITIALIZE_SPRING(SPRINGTYPE_NORMAL_UP);
}
void initSprite_Interactable_Spring_Big_UpRight(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 param3)
void CreateEntity_Spring_Big_UpRight(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 param3)
{
INITIALIZE_SPRING(5);
}
void initSprite_Interactable_Spring_Small_UpLeft(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 param3)
void CreateEntity_Spring_Small_UpLeft(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 param3)
{
INITIALIZE_SPRING(8);
}
void initSprite_Interactable_Spring_Small_UpRight(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 param3)
void CreateEntity_Spring_Small_UpRight(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 param3)
{
INITIALIZE_SPRING(9);
}
+1 -2
View File
@@ -37,8 +37,7 @@ static void TaskDestructor_Interactable019(struct Task *);
// @TODO: Replace with tile-count from the graphics data itself
#define IA_019_NUM_TILES 32
void initSprite_Interactable_019(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
void CreateEntity_019(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY, u8 spriteY)
{
struct Task *t = TaskCreate(Task_Interactable_019, sizeof(Sprite_019), 0x2000, 0,
TaskDestructor_Interactable019);
+2 -2
View File
@@ -53,8 +53,8 @@ const TileInfo sBoosterAnimationData[2][6] = {
if (gPlayer.speedGroundX < BOOSTER_SPEED) \
gPlayer.speedGroundX = BOOSTER_SPEED;
void initSprite_Interactable_Booster(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
void CreateEntity_Booster(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(Task_Interactable_Booster, sizeof(Sprite_Booster),
0x2000, 0, TaskDestructor_80095E8);
+2 -2
View File
@@ -27,8 +27,8 @@ const s8 gUnknown_080D94EE[] = { -16, -18, -20 };
const s16 gUnknown_080D94F2[] = { -384, -384, -384 };
void initSprite_Interactable_BouncyBar(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_BouncyBar(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
Sprite *displayed;
struct Task *t = TaskCreate(sub_806160C, 0x44, 0x2010, 0, TaskDestructor_80095E8);
+4 -4
View File
@@ -54,8 +54,8 @@ static const u16 sAnimIdsCheckpoint[NUM_COURSE_ZONES + 1][2] = {
[ZONE_7] = { SA2_ANIM_905, 0 }, [ZONE_FINAL] = { SA2_ANIM_899, 0 },
};
void initSprite_Interactable_Checkpoint(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Checkpoint(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t;
Sprite_Checkpoint *chkPt;
@@ -251,8 +251,8 @@ static void Task_Interactable_Toggle_Checkpoint(void)
}
}
void initSprite_Interactable_Toggle_Checkpoint(MapEntity *in_ia, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Toggle_Checkpoint(MapEntity *in_ia, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
{
if (gUnknown_030055B0 == 0) {
struct Task *t = TaskCreate(Task_Interactable_Toggle_Checkpoint,
+6 -6
View File
@@ -126,7 +126,7 @@ void sub_8060ED0(void)
player->moveState |= MOVESTATE_4;
m4aSongNumStart(SE_SPIN_ATTACK);
} else if (!(player->moveState & MOVESTATE_4)) {
player->unk68 = PlayerCharacterIdleAnims[player->character] + 68;
player->unk68 = gPlayerCharacterIdleAnims[player->character] + SA2_CHAR_ANIM_68;
player->unk6A = Div((idx - 282) & ONE_CYCLE, 94);
}
}
@@ -240,13 +240,13 @@ void sub_8061228(void)
player->moveState |= MOVESTATE_4;
m4aSongNumStart(SE_SPIN_ATTACK);
} else if (!(player->moveState & MOVESTATE_4)) {
player->unk68 = PlayerCharacterIdleAnims[player->character] + 68;
player->unk68 = gPlayerCharacterIdleAnims[player->character] + SA2_CHAR_ANIM_68;
player->unk6A = Div((idx - 282) & ONE_CYCLE, 94);
}
}
void initSprite_Interactable_Corkscrew_Start(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Corkscrew_Start(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(Task_8060D34, sizeof(Sprite_Corkscrew), 0x2000, 0, NULL);
Sprite_Corkscrew *corkscrew = TaskGetStructPtr(t);
@@ -261,8 +261,8 @@ void initSprite_Interactable_Corkscrew_Start(MapEntity *me, u16 spriteRegionX,
corkscrew->unk10 = Q_24_8(4);
}
void initSprite_Interactable_Corkscrew_End(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Corkscrew_End(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(sub_8061088, sizeof(Sprite_Corkscrew), 0x2000, 0, NULL);
Sprite_Corkscrew *corkscrew = TaskGetStructPtr(t);
+10 -8
View File
@@ -130,7 +130,8 @@ void sub_8061AB0(void)
player->moveState |= MOVESTATE_4;
m4aSongNumStart(SE_SPIN_ATTACK);
} else if (!(player->moveState & MOVESTATE_4)) {
player->unk68 = PlayerCharacterIdleAnims[player->character] + 68;
player->unk68
= gPlayerCharacterIdleAnims[player->character] + SA2_CHAR_ANIM_68;
player->unk6A = Div((idx - 282) & ONE_CYCLE, 94);
}
}
@@ -248,7 +249,7 @@ void Task_8061DA4(void)
player->moveState |= MOVESTATE_4;
m4aSongNumStart(SE_SPIN_ATTACK);
} else if (!(player->moveState & MOVESTATE_4)) {
player->unk68 = PlayerCharacterIdleAnims[player->character] + 68;
player->unk68 = gPlayerCharacterIdleAnims[player->character] + SA2_CHAR_ANIM_68;
player->unk6A = Div((idx - 282) & ONE_CYCLE, 94);
}
}
@@ -357,7 +358,8 @@ void Task_8062100(void)
player->moveState |= MOVESTATE_4;
m4aSongNumStart(SE_SPIN_ATTACK);
} else if (!(player->moveState & MOVESTATE_4)) {
player->unk68 = PlayerCharacterIdleAnims[player->character] + 68;
player->unk68
= gPlayerCharacterIdleAnims[player->character] + SA2_CHAR_ANIM_68;
player->unk6A = Div((idx - 282) & ONE_CYCLE, 94);
}
}
@@ -475,13 +477,13 @@ void Task_8062414(void)
player->moveState |= MOVESTATE_4;
m4aSongNumStart(SE_SPIN_ATTACK);
} else if (!(player->moveState & MOVESTATE_4)) {
player->unk68 = PlayerCharacterIdleAnims[player->character] + 68;
player->unk68 = gPlayerCharacterIdleAnims[player->character] + SA2_CHAR_ANIM_68;
player->unk6A = Div((idx - 282) & ONE_CYCLE, 94);
}
}
void initSprite_Interactable_Corkscrew3D_Start(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Corkscrew3D_Start(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t
= TaskCreate(Task_8061914, sizeof(Sprite_Corkscrew3D), 0x2000, 0, NULL);
@@ -497,8 +499,8 @@ void initSprite_Interactable_Corkscrew3D_Start(MapEntity *me, u16 spriteRegionX,
corkscrew->unkC = +Q_24_8(4);
}
void initSprite_Interactable_Corkscrew3D_End(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Corkscrew3D_End(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t
= TaskCreate(Task_8061F60, sizeof(Sprite_Corkscrew3D), 0x2000, 0, NULL);
+7 -8
View File
@@ -13,8 +13,8 @@ typedef struct {
/* 0x0C */ Sprite displayed;
} Sprite_Decoration;
void Task_Interactable_Decoration(void);
void TaskDestructor_Interactable_Decoration(struct Task *);
void Task_Decoration(void);
void TaskDestructor_Decoration(struct Task *);
static const TileInfo sDecoTileAnimInfo[7] = {
{ 2, SA2_ANIM_FLOWER_BLUE_SMALL, 0 },
@@ -28,16 +28,15 @@ static const TileInfo sDecoTileAnimInfo[7] = {
#define decoId d.sData[0]
void initSprite_Interactable_Decoration(MapEntity *me, u16 regionX, u16 regionY,
u8 spriteY)
void CreateEntity_Decoration(MapEntity *me, u16 regionX, u16 regionY, u8 spriteY)
{
struct Task *t;
Sprite_Decoration *decoBase;
Sprite *deco;
if (me->decoId >= 0) {
t = TaskCreate(Task_Interactable_Decoration, sizeof(Sprite_Decoration), 0x2010,
0, TaskDestructor_Interactable_Decoration);
t = TaskCreate(Task_Decoration, sizeof(Sprite_Decoration), 0x2010, 0,
TaskDestructor_Decoration);
decoBase = TaskGetStructPtr(t);
deco = &decoBase->displayed;
@@ -68,7 +67,7 @@ void initSprite_Interactable_Decoration(MapEntity *me, u16 regionX, u16 regionY,
}
}
void Task_Interactable_Decoration(void)
void Task_Decoration(void)
{
Sprite_Decoration *decoBase = TaskGetStructPtr(gCurTask);
Sprite *deco = &decoBase->displayed;
@@ -101,7 +100,7 @@ void Task_Interactable_Decoration(void)
}
// InteractableDecorationOnDestroy
void TaskDestructor_Interactable_Decoration(struct Task *t)
void TaskDestructor_Decoration(struct Task *t)
{
Sprite_Decoration *deco = TaskGetStructPtr(t);
VramFree(deco->displayed.graphics.dest);
+4 -4
View File
@@ -179,8 +179,8 @@ static void Task_JumpSequenceReverse(void)
}
}
void initSprite_Interactable_gappedLoop_Start(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_GappedLoop_Start(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(Task_GappedLoopForwardsMain, sizeof(Sprite_GappedLoop),
0x2000, 0, NULL);
@@ -196,8 +196,8 @@ void initSprite_Interactable_gappedLoop_Start(MapEntity *me, u16 spriteRegionX,
gappedLoop->unk10 = Q_24_8(TO_WORLD_POS(me->y, spriteRegionY) + 96);
}
void initSprite_Interactable_gappedLoop_End(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_GappedLoop_End(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(Task_GappedLoopReverseMain, sizeof(Sprite_GappedLoop),
0x2000, 0, NULL);
+5 -5
View File
@@ -13,7 +13,7 @@ typedef struct {
/* 0x00 */ SpriteBase base;
} Sprite_InclineRamp;
static void Task_Interactable_InclineRamp(void)
static void Task_InclineRamp(void)
{
Sprite_InclineRamp *ramp = TaskGetStructPtr(gCurTask);
MapEntity *me = ramp->base.me;
@@ -96,11 +96,11 @@ static void Task_Interactable_InclineRamp(void)
}
}
void initSprite_Interactable_InclineRamp(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 param3)
void CreateEntity_InclineRamp(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 param3)
{
struct Task *t = TaskCreate(Task_Interactable_InclineRamp,
sizeof(Sprite_InclineRamp), 0x2000, 0, NULL);
struct Task *t
= TaskCreate(Task_InclineRamp, sizeof(Sprite_InclineRamp), 0x2000, 0, NULL);
Sprite_InclineRamp *ramp = TaskGetStructPtr(t);
// @BUG? (regionY gets set to regionX and vice versa)
+2 -2
View File
@@ -24,8 +24,8 @@ static void sub_805EF90(void);
static void sub_805EA94(void);
static void sub_805ECA0(void);
void initSprite_Interactable_RotatingHandle(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_RotatingHandle(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
if (me->d.sData[0] >= 0) {
struct Task *t
+10 -10
View File
@@ -41,8 +41,8 @@ static bool32 sub_80609B4(Sprite *, MapEntity *, Sprite_Spikes *, Player *, u32
static void TaskDestructor_8060CF4(struct Task *);
static u32 sub_8060D08(Sprite *, s32 x, s32 y, Player *);
void initSprite_Interactable_Spikes_Up(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Spikes_Up(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(sub_805F810, sizeof(Sprite_Spikes), 0x2000, 0, NULL);
Sprite_Spikes *spikes = TaskGetStructPtr(t);
@@ -82,8 +82,8 @@ void initSprite_Interactable_Spikes_Up(MapEntity *me, u16 spriteRegionX,
sub_8004558(s);
}
void initSprite_Interactable_Spikes_Down(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Spikes_Down(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(sub_805F928, sizeof(Sprite_Spikes), 0x2000, 0, NULL);
Sprite_Spikes *spikes = TaskGetStructPtr(t);
@@ -204,8 +204,8 @@ static void sub_805F928(void)
}
}
void initSprite_Interactable_Spikes_LeftRight(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Spikes_LeftRight(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(sub_805FBA0, sizeof(Sprite_Spikes), 0x2000, 0,
TaskDestructor_8060CF4);
@@ -385,8 +385,8 @@ static void sub_805FBA0(void)
}
}
void initSprite_Interactable_Spikes_HidingUp(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Spikes_HidingUp(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(Task_805FF68, sizeof(Sprite_Spikes), 0x2000, 0,
TaskDestructor_8060CF4);
@@ -453,8 +453,8 @@ static void Task_805FF68(void)
}
}
void initSprite_Interactable_Spikes_HidingDown(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Spikes_HidingDown(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(Task_806012C, sizeof(Sprite_Spikes), 0x2000, 0,
TaskDestructor_8060CF4);
+2 -2
View File
@@ -40,8 +40,8 @@ static const TileInfo gUnknown_080D94BC[3] = {
{ 24, SA2_ANIM_603, 3 },
};
void initSprite_Interactable_BouncySpring(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_BouncySpring(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t
= TaskCreate(Task_Interactable_BouncySpring, sizeof(Sprite_BouncySpring), 0x2010,
+4 -4
View File
@@ -30,8 +30,8 @@ static void StageGoalToggle_HandleMultiplayerFinish(void);
#define GOAL_LEVER_TILES 4
void initSprite_Interactable_StageGoal(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_StageGoal(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(Task_StageGoalMain, sizeof(Sprite_StageGoal), 0x2010, 0,
TaskDestructor_8062E7C);
@@ -303,8 +303,8 @@ static void sub_8062D44(void)
}
}
void initSprite_Interactable_Toggle_StageGoal(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Toggle_StageGoal(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(Task_StageGoalToggleMain, sizeof(Sprite_StageGoalToggle),
0x2010, 0, NULL);
@@ -61,8 +61,8 @@ static void Task_Interactable_Toggle_PlayerLayer(void)
}
}
void initSprite_Interactable_Toggle_PlayerLayer(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, UNUSED u8 spriteY)
void CreateEntity_Toggle_PlayerLayer(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
UNUSED u8 spriteY)
{
struct Task *t = TaskCreate(Task_Interactable_Toggle_PlayerLayer,
sizeof(Sprite_ChangePlayerLayer), 0x2000, 0, NULL);
+8 -9
View File
@@ -18,8 +18,8 @@ typedef struct {
BladePiece blades[16];
} InteractableWindmill; /* size: 0x3FC */
static void TaskDestructor_InteractableWindmill(struct Task *);
static void Task_InteractableWindmillMain(void);
static void TaskDestructor_Windmill(struct Task *);
static void Task_WindmillMain(void);
static const TileInfo sWindmillParts[] = {
{ 4, SA2_ANIM_WIND_MILL_PART, 3 }, { 4, SA2_ANIM_WIND_MILL_PART, 2 },
@@ -27,15 +27,14 @@ static const TileInfo sWindmillParts[] = {
{ 4, SA2_ANIM_WIND_MILL_PART, 6 },
};
void initSprite_InteractableWindmill(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
void CreateEntity_Windmill(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
u8 i, j;
void *ramDests[4];
Sprite *sprite;
struct Task *t
= TaskCreate(Task_InteractableWindmillMain, sizeof(InteractableWindmill), 0x2010,
0, TaskDestructor_InteractableWindmill);
struct Task *t = TaskCreate(Task_WindmillMain, sizeof(InteractableWindmill), 0x2010,
0, TaskDestructor_Windmill);
InteractableWindmill *windmill = TaskGetStructPtr(t);
sprite = &windmill->center;
@@ -90,7 +89,7 @@ void initSprite_InteractableWindmill(MapEntity *me, u16 spriteRegionX, u16 sprit
}
}
static void Task_InteractableWindmillMain(void)
static void Task_WindmillMain(void)
{
u8 i, j;
struct UNK_808D124_UNK180 *transformConfig;
@@ -146,7 +145,7 @@ static void Task_InteractableWindmillMain(void)
}
}
static void TaskDestructor_InteractableWindmill(struct Task *t)
static void TaskDestructor_Windmill(struct Task *t)
{
InteractableWindmill *windmill = TaskGetStructPtr(t);
VramFree(windmill->center.graphics.dest);
+2 -2
View File
@@ -26,8 +26,8 @@ static bool32 sub_80809B8(Sprite_IA105 *);
static bool32 sub_8080A9C(Sprite_IA105 *);
static void sub_8080AE4(Sprite_IA105 *);
void initSprite_Interactable105(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
void CreateEntity_Interactable105(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(Task_Interactable105, sizeof(Sprite_IA105), 0x1FF0, 0,
TaskDestructor_Interactable105);
+1 -2
View File
@@ -26,8 +26,7 @@ typedef struct {
static void Task_Interactable094(void);
static void TaskDestructor_Interactable094(struct Task *);
void initSprite_Interactable094(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
void CreateEntity_094(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY, u8 spriteY)
{
struct Task *t = TaskCreate(Task_Interactable094, sizeof(Sprite_IA94), 0x2010, 0,
TaskDestructor_Interactable094);
+1 -2
View File
@@ -27,8 +27,7 @@ static bool32 sub_807F120(Sprite_IA95 *);
static void TaskDestructor_Interactable095(struct Task *);
static void DestroyInteractable095(Sprite_IA95 *);
void initSprite_Interactable095(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
void CreateEntity_095(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY, u8 spriteY)
{
struct Task *t = TaskCreate(Task_Interactable095Main, sizeof(Sprite_IA95), 0x2010, 0,
TaskDestructor_Interactable095);
+1 -2
View File
@@ -39,8 +39,7 @@ static void sub_807E8E0(Sprite_Cannon *cannon);
static void sub_807E7F8(void);
static void sub_807E7B0(void);
void initSprite_InteractableCannon(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
void CreateEntity_Cannon(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY, u8 spriteY)
{
Sprite *sprite;
struct Task *t = TaskCreate(Task_Interactable093, sizeof(Sprite_Cannon), 0x2010, 0,
@@ -31,8 +31,8 @@ typedef struct {
s32 unk6C[3][2];
} Sprite_FlyingHandle;
static void Task_Interactable_SkyCanyon_FlyingHandle(void);
static void TaskDestructor_Interactable_SkyCanyon_FlyingHandle(struct Task *);
static void Task_FlyingHandle(void);
static void TaskDestructor_FlyingHandle(struct Task *);
static void sub_807F8B4(Sprite_FlyingHandle *);
static void sub_807F484(Sprite_FlyingHandle *);
static void sub_807F798(Sprite_FlyingHandle *);
@@ -49,14 +49,13 @@ static void sub_807F784(Sprite_FlyingHandle *);
#define FLYING_HANDLE_VRAM_TILES 25
void initSprite_Interactable_FlyingHandle(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_FlyingHandle(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
u32 i;
Sprite *sprite;
struct Task *t = TaskCreate(Task_Interactable_SkyCanyon_FlyingHandle,
sizeof(Sprite_FlyingHandle), 0x2010, 0,
TaskDestructor_Interactable_SkyCanyon_FlyingHandle);
struct Task *t = TaskCreate(Task_FlyingHandle, sizeof(Sprite_FlyingHandle), 0x2010,
0, TaskDestructor_FlyingHandle);
Sprite_FlyingHandle *flyingHandle = TaskGetStructPtr(t);
flyingHandle->unk68 = 0;
flyingHandle->unk5C = 0;
@@ -232,7 +231,7 @@ static bool32 IsPlayerTouching(Sprite_FlyingHandle *flyingHandle)
return FALSE;
}
static void Task_Interactable_SkyCanyon_FlyingHandle(void)
static void Task_FlyingHandle(void)
{
Sprite_FlyingHandle *flyingHandle = TaskGetStructPtr(gCurTask);
if (IS_MULTI_PLAYER) {
@@ -271,7 +270,7 @@ static void sub_807F6F0(void)
sub_807F5C0(flyingHandle);
}
static void TaskDestructor_Interactable_SkyCanyon_FlyingHandle(struct Task *t)
static void TaskDestructor_FlyingHandle(struct Task *t)
{
Sprite_FlyingHandle *flyingHandle = TaskGetStructPtr(t);
VramFree(flyingHandle->sprite.graphics.dest);
@@ -279,12 +278,12 @@ static void TaskDestructor_Interactable_SkyCanyon_FlyingHandle(struct Task *t)
static void sub_807F770(UNUSED Sprite_FlyingHandle *flyingHandle)
{
gCurTask->main = Task_Interactable_SkyCanyon_FlyingHandle;
gCurTask->main = Task_FlyingHandle;
}
static void sub_807F784(UNUSED Sprite_FlyingHandle *flyingHandle)
{
gCurTask->main = Task_Interactable_SkyCanyon_FlyingHandle;
gCurTask->main = Task_FlyingHandle;
}
static void sub_807F798(Sprite_FlyingHandle *flyingHandle)
@@ -33,7 +33,7 @@ typedef struct {
/* 0x29 */ u8 spriteY;
} Sprite_GravityToggle;
static void initSprite_Interactable098(MapEntity *, u16, u16, u8, u8);
static void CreateEntity_Toggle_Gravity(MapEntity *, u16, u16, u8, u8);
static void Task_80801F8(void);
static void TaskDestructor_8080230(struct Task *);
static void sub_8080234(Sprite_GravityToggle *);
@@ -45,8 +45,8 @@ static void Task_8080318(void);
#define GRAVITY_TOGGLE__UP 1
#define GRAVITY_TOGGLE__TOGGLE 2
static void initSprite_Interactable098(MapEntity *in_ia, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY, u8 toggleKind)
static void CreateEntity_Toggle_Gravity(MapEntity *in_ia, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY, u8 toggleKind)
{
struct Task *t = TaskCreate(Task_80801F8, 0x2C, 0x2010, 0, TaskDestructor_8080230);
Sprite_GravityToggle *toggle = TaskGetStructPtr(t);
@@ -162,25 +162,25 @@ void sub_808029C(Sprite_GravityToggle *toggle)
TaskDestroy(gCurTask);
}
void initSprite_Interactable_Toggle_Gravity__Down(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Toggle_Gravity__Down(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
{
initSprite_Interactable098(me, spriteRegionX, spriteRegionY, spriteY,
GRAVITY_TOGGLE__DOWN);
CreateEntity_Toggle_Gravity(me, spriteRegionX, spriteRegionY, spriteY,
GRAVITY_TOGGLE__DOWN);
}
void initSprite_Interactable_Toggle_Gravity__Up(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Toggle_Gravity__Up(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
initSprite_Interactable098(me, spriteRegionX, spriteRegionY, spriteY,
GRAVITY_TOGGLE__UP);
CreateEntity_Toggle_Gravity(me, spriteRegionX, spriteRegionY, spriteY,
GRAVITY_TOGGLE__UP);
}
void initSprite_Interactable_Toggle_Gravity__Toggle(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Toggle_Gravity__Toggle(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
{
initSprite_Interactable098(me, spriteRegionX, spriteRegionY, spriteY,
GRAVITY_TOGGLE__TOGGLE);
CreateEntity_Toggle_Gravity(me, spriteRegionX, spriteRegionY, spriteY,
GRAVITY_TOGGLE__TOGGLE);
}
void Task_8080318(void)
+18 -18
View File
@@ -76,8 +76,8 @@ static void SetTaskMain_807DE98(Sprite_EggUtopia_Launcher *unused);
static void Task_807E16C(void);
static bool16 sub_807E1C4(Sprite_EggUtopia_Launcher *launcher);
void initSprite_EggUtopia_Launcher(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY, u32 kind)
void CreateEntity_Launcher(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY, u32 kind)
{
struct Task *t = TaskCreate(Task_807DE98, sizeof(Sprite_EggUtopia_Launcher), 0x2010,
0, TaskDestructor_807DF38);
@@ -449,32 +449,32 @@ static void sub_807E0D0(Sprite_EggUtopia_Launcher *launcher)
launcher->unk60[0][1] = launcher->unk58;
}
void initSprite_EggUtopia_Launcher_Left_GDown(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Launcher_Left_GDown(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
{
initSprite_EggUtopia_Launcher(me, spriteRegionX, spriteRegionY, spriteY,
LAUNCHER_KIND(LAUN_DIR_LEFT, LAUN_GRAVITY_DOWN));
CreateEntity_Launcher(me, spriteRegionX, spriteRegionY, spriteY,
LAUNCHER_KIND(LAUN_DIR_LEFT, LAUN_GRAVITY_DOWN));
}
void initSprite_EggUtopia_Launcher_Right_GDown(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Launcher_Right_GDown(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
{
initSprite_EggUtopia_Launcher(me, spriteRegionX, spriteRegionY, spriteY,
LAUNCHER_KIND(LAUN_DIR_RIGHT, LAUN_GRAVITY_DOWN));
CreateEntity_Launcher(me, spriteRegionX, spriteRegionY, spriteY,
LAUNCHER_KIND(LAUN_DIR_RIGHT, LAUN_GRAVITY_DOWN));
}
void initSprite_EggUtopia_Launcher_Left_GUp(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Launcher_Left_GUp(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
initSprite_EggUtopia_Launcher(me, spriteRegionX, spriteRegionY, spriteY,
LAUNCHER_KIND(LAUN_DIR_LEFT, LAUN_GRAVITY_UP));
CreateEntity_Launcher(me, spriteRegionX, spriteRegionY, spriteY,
LAUNCHER_KIND(LAUN_DIR_LEFT, LAUN_GRAVITY_UP));
}
void initSprite_EggUtopia_Launcher_Right_GUp(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Launcher_Right_GUp(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
initSprite_EggUtopia_Launcher(me, spriteRegionX, spriteRegionY, spriteY,
LAUNCHER_KIND(LAUN_DIR_RIGHT, LAUN_GRAVITY_UP));
CreateEntity_Launcher(me, spriteRegionX, spriteRegionY, spriteY,
LAUNCHER_KIND(LAUN_DIR_RIGHT, LAUN_GRAVITY_UP));
}
static void Task_807E16C(void)
@@ -46,8 +46,8 @@ static void sub_807FF20(void);
static void sub_807FF88(Sprite_SpeedingPlatform *);
static void sub_807FFB0(void);
void initSprite_InteractableSpeedingPlatform(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_SpeedingPlatform(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
u32 i;
struct Task *t = TaskCreate(Task_Interactable097, sizeof(Sprite_SpeedingPlatform),
+1 -2
View File
@@ -70,8 +70,7 @@ static void sub_8074604(Sprite_HCCrane *);
#define CRANE_MAX_ACCELERATION (Q_8_8(12))
void initSprite_Interactable_HotCrater_Crane(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Crane(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY, u8 spriteY)
{
struct Task *t = TaskCreate(Task_8073AA8, sizeof(Sprite_HCCrane), 0x2010, 0,
TaskDestructor_80743B8);
@@ -104,8 +104,8 @@ static const u16 sUnknown_080DFB90[DASH_RING__NUM_ORIENTATIONS][6] = {
{ 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 },
};
void initSprite_Interactable_DashRing(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_DashRing(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
u32 ringType = DASH_RING__TYPE_REGULAR;
@@ -40,8 +40,8 @@ static bool32 sub_80751CC(Sprite_FloatingSpring *);
static void sub_80752D8(void);
static void sub_8075334(Sprite_FloatingSpring *);
void initSprite_Interactable_FloatingSpring_Up(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_FloatingSpring_Up(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t
= TaskCreate(sub_80750A8, sizeof(Sprite_FloatingSpring), 0x2010, 0, sub_8075140);
+10 -11
View File
@@ -56,8 +56,8 @@ static void sub_8072BB8(void);
#define PLAYER_TOUCH_DIRECTION_FORWARDS 1
#define PLAYER_TOUCH_DIRECTION_REVERSE 2
void initSprite_Interactable_HookRail(u32 triggerType, MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_HookRail(u32 triggerType, MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
{
struct Task *t;
Sprite_HookRail *hookRail;
@@ -410,22 +410,21 @@ static void sub_8073280(Sprite_HookRail *hookRail)
TaskDestroy(gCurTask);
}
void initSprite_Interactable048(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
void CreateEntity_048(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY, u8 spriteY)
{
initSprite_Interactable_HookRail(0, me, spriteRegionX, spriteRegionY, spriteY);
CreateEntity_HookRail(0, me, spriteRegionX, spriteRegionY, spriteY);
}
void initSprite_Interactable_HookRail_Start(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_HookRail_Start(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
initSprite_Interactable_HookRail(1, me, spriteRegionX, spriteRegionY, spriteY);
CreateEntity_HookRail(1, me, spriteRegionX, spriteRegionY, spriteY);
}
void initSprite_Interactable_HookRail_End(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_HookRail_End(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
initSprite_Interactable_HookRail(2, me, spriteRegionX, spriteRegionY, spriteY);
CreateEntity_HookRail(2, me, spriteRegionX, spriteRegionY, spriteY);
}
static void sub_8073320(void)
@@ -26,8 +26,8 @@ static void sub_8073600(void);
static void sub_80736E0(Sprite_TurnAroundBar *);
static void sub_807371C(Sprite_TurnAroundBar *);
void initSprite_InteractableTurnAroundBar(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_TurnAroundBar(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(Task_TurnAroundBarMain, sizeof(Sprite_TurnAroundBar),
0x2010, 0, TaskDestructor_InteractableTurnAroundBar);
@@ -33,8 +33,8 @@ static void sub_80729D8(Sprite_WindUpStick *);
static u32 sub_8072A5C(Sprite_WindUpStick *);
static void sub_8072AC0(Sprite_WindUpStick *);
void initSprite_Interactable_WindUpStick(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_WindUpStick(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(sub_8072998, 0x1C, 0x2010, 0, sub_80729D4);
Sprite_WindUpStick *windUpStick = TaskGetStructPtr(t);
+1 -2
View File
@@ -51,8 +51,7 @@ typedef struct {
void Task_Interactable069(void);
void TaskDestructor_Interactable069(struct Task *);
void initSprite_Interactable069(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
void CreateEntity_069(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY, u8 spriteY)
{
struct Task *t = TaskCreate(Task_Interactable069, 0x1C0, 0x2010, 0,
TaskDestructor_Interactable069);
@@ -305,8 +305,8 @@ static void sub_8078594(Sprite_FunnelSphere *funnelSphere)
TaskDestroy(gCurTask);
}
void initSprite_Interactable_IceParadise_FunnelSphere(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_FunnelSphere(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(sub_8078414, 0x28, 0x2010, 0, sub_8078688);
Sprite_FunnelSphere *funnelSphere = TaskGetStructPtr(t);
@@ -21,7 +21,7 @@ typedef struct {
} Sprite_IceParadiseHalfPipe;
static void Task_HalfPipeMain(void);
static void TaskDestructor_InteractableIceParadiseHalfPipe(struct Task *);
static void TaskDestructor_HalfPipe(struct Task *);
static bool32 sub_80789AC(Sprite_IceParadiseHalfPipe *);
static void UpdatePlayerPosOnHalfPipe(Sprite_IceParadiseHalfPipe *, u16);
static void EndHalfPipeSequence(Sprite_IceParadiseHalfPipe *);
@@ -33,14 +33,11 @@ static void DestroyHalfPipe(Sprite_IceParadiseHalfPipe *);
#define HALF_PIPE_DIRECTION_FORWARD 0
#define HALF_PIPE_DIRECTION_REVERSE 1
static void initSprite_Interactable_IceParadise_HalfPipe(MapEntity *me,
u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY,
s32 direction)
static void CreateEntity_HalfPipe(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY, s32 direction)
{
struct Task *t
= TaskCreate(Task_HalfPipeMain, sizeof(Sprite_IceParadiseHalfPipe), 0x2010, 0,
TaskDestructor_InteractableIceParadiseHalfPipe);
struct Task *t = TaskCreate(Task_HalfPipeMain, sizeof(Sprite_IceParadiseHalfPipe),
0x2010, 0, TaskDestructor_HalfPipe);
Sprite_IceParadiseHalfPipe *halfPipe = TaskGetStructPtr(t);
halfPipe->direction = direction;
halfPipe->x = Q_24_8(spriteRegionX) + me->x * TILE_WIDTH;
@@ -158,7 +155,7 @@ static void Task_HalfPipeMain(void)
}
}
static void TaskDestructor_InteractableIceParadiseHalfPipe(struct Task *t)
static void TaskDestructor_HalfPipe(struct Task *t)
{
// unused
}
@@ -234,16 +231,16 @@ static void DestroyHalfPipe(Sprite_IceParadiseHalfPipe *halfPipe)
TaskDestroy(gCurTask);
}
void initSprite_Interactable_IceParadise_HalfPipe_End(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_HalfPipe_End(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
initSprite_Interactable_IceParadise_HalfPipe(me, spriteRegionX, spriteRegionY,
spriteY, HALF_PIPE_DIRECTION_REVERSE);
CreateEntity_HalfPipe(me, spriteRegionX, spriteRegionY, spriteY,
HALF_PIPE_DIRECTION_REVERSE);
}
void initSprite_Interactable_IceParadise_HalfPipe_Start(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_HalfPipe_Start(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
initSprite_Interactable_IceParadise_HalfPipe(me, spriteRegionX, spriteRegionY,
spriteY, HALF_PIPE_DIRECTION_FORWARD);
CreateEntity_HalfPipe(me, spriteRegionX, spriteRegionY, spriteY,
HALF_PIPE_DIRECTION_FORWARD);
}
@@ -29,16 +29,15 @@ typedef struct {
/* 0x15 */ u8 spriteY;
} Sprite_SlowingSnow; // size = 0x18
static void Task_Interactable_IceParadise_SlowingSnow(void);
static void TaskDestructor_Interactable_IceParadise_SlowingSnow(struct Task *t);
static void Task_SlowingSnow(void);
static void TaskDestructor_SlowingSnow(struct Task *t);
static bool32 ShouldDespawn(Sprite_SlowingSnow *);
void initSprite_Interactable_IceParadise_SlowingSnow(MapEntity *in_ia, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_SlowingSnow(MapEntity *in_ia, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(Task_Interactable_IceParadise_SlowingSnow,
sizeof(Sprite_SlowingSnow), 0x2010, 0,
TaskDestructor_Interactable_IceParadise_SlowingSnow);
struct Task *t = TaskCreate(Task_SlowingSnow, sizeof(Sprite_SlowingSnow), 0x2010, 0,
TaskDestructor_SlowingSnow);
Sprite_SlowingSnow *snow = TaskGetStructPtr(t);
Interactable_SlowingSnow *me = (Interactable_SlowingSnow *)in_ia;
@@ -77,7 +76,7 @@ static bool32 PlayerIsTouchingSnow(Sprite_SlowingSnow *snow)
return FALSE;
}
void Task_Interactable_IceParadise_SlowingSnow(void)
void Task_SlowingSnow(void)
{
Sprite_SlowingSnow *snow = TaskGetStructPtr(gCurTask);
@@ -93,7 +92,7 @@ void Task_Interactable_IceParadise_SlowingSnow(void)
}
}
void TaskDestructor_Interactable_IceParadise_SlowingSnow(struct Task *t) { }
void TaskDestructor_SlowingSnow(struct Task *t) { }
static bool32 ShouldDespawn(Sprite_SlowingSnow *snow)
{
@@ -34,9 +34,9 @@ static void sub_8076C88(Sprite_GermanFlute UNUSED *);
static void sub_8076CC0(Sprite_GermanFlute UNUSED *);
static void sub_8076CF4(Sprite_GermanFlute UNUSED *);
static void sub_8076D08(Sprite_GermanFlute UNUSED *);
static void Task_Interactable_MusicPlant_GermanFlute(void);
static void Task_GermanFlute(void);
static void Task_8076DE8(void);
static void TaskDestructor_Interactable_MusicPlant_GermanFlute(struct Task *);
static void TaskDestructor_GermanFlute(struct Task *);
static void sub_8076E3C(Sprite_GermanFlute *);
static bool32 sub_8076EAC(Sprite_GermanFlute *);
static void sub_8076EF4(Sprite_GermanFlute *);
@@ -255,7 +255,7 @@ static void sub_8076C88(Sprite_GermanFlute UNUSED *flute)
gPlayer.speedAirX = 0;
gPlayer.speedAirY = 0;
gCurTask->main = Task_Interactable_MusicPlant_GermanFlute;
gCurTask->main = Task_GermanFlute;
}
static void sub_8076CC0(Sprite_GermanFlute UNUSED *flute)
@@ -265,26 +265,25 @@ static void sub_8076CC0(Sprite_GermanFlute UNUSED *flute)
gPlayer.speedAirX = 0;
gPlayer.speedAirY = 0;
gCurTask->main = Task_Interactable_MusicPlant_GermanFlute;
gCurTask->main = Task_GermanFlute;
}
static void sub_8076CF4(Sprite_GermanFlute UNUSED *flute)
{
gCurTask->main = Task_Interactable_MusicPlant_GermanFlute;
gCurTask->main = Task_GermanFlute;
}
static void sub_8076D08(Sprite_GermanFlute UNUSED *flute)
{
gPlayer.moveState &= ~MOVESTATE_400000;
gCurTask->main = Task_Interactable_MusicPlant_GermanFlute;
gCurTask->main = Task_GermanFlute;
}
void initSprite_Interactable_MusicPlant_GermanFlute(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_GermanFlute(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(Task_Interactable_MusicPlant_GermanFlute,
sizeof(Sprite_GermanFlute), 0x2010, 0,
TaskDestructor_Interactable_MusicPlant_GermanFlute);
struct Task *t = TaskCreate(Task_GermanFlute, sizeof(Sprite_GermanFlute), 0x2010, 0,
TaskDestructor_GermanFlute);
Sprite_GermanFlute *flute = TaskGetStructPtr(t);
s32 posX, posY;
@@ -303,7 +302,7 @@ void initSprite_Interactable_MusicPlant_GermanFlute(MapEntity *me, u16 spriteReg
SET_MAP_ENTITY_INITIALIZED(me);
}
static void Task_Interactable_MusicPlant_GermanFlute(void)
static void Task_GermanFlute(void)
{
Sprite_GermanFlute *flute = TaskGetStructPtr(gCurTask);
if (sub_8076BE4(flute)) {
@@ -331,7 +330,7 @@ static void Task_8076DE8(void)
}
}
static void TaskDestructor_Interactable_MusicPlant_GermanFlute(struct Task *t) {};
static void TaskDestructor_GermanFlute(struct Task *t) {};
static void sub_8076E3C(Sprite_GermanFlute *flute)
{
@@ -30,8 +30,8 @@ typedef struct {
/* 0x76 */ s16 unk76;
} Sprite_GuitarString; /* size 0x78 */
extern void Task_Interactable_MusicPlant_GuitarString(void);
extern void TaskDestructor_Interactable_MusicPlant_GuitarString(struct Task *);
extern void Task_GuitarString(void);
extern void TaskDestructor_GuitarString(struct Task *);
extern void sub_8076114(Sprite_GuitarString *);
extern bool32 sub_807618C(Sprite_GuitarString *);
extern void sub_8076258(Sprite_GuitarString *);
@@ -40,12 +40,11 @@ extern void sub_80762BC(Sprite_GuitarString *);
extern void sub_80762E0(Sprite_GuitarString *);
extern bool32 sub_8076320(Sprite_GuitarString *);
void initSprite_Interactable_MusicPlant_GuitarString(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_GuitarString(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(Task_Interactable_MusicPlant_GuitarString,
sizeof(Sprite_GuitarString), 0x2010, 0,
TaskDestructor_Interactable_MusicPlant_GuitarString);
struct Task *t = TaskCreate(Task_GuitarString, sizeof(Sprite_GuitarString), 0x2010,
0, TaskDestructor_GuitarString);
Sprite_GuitarString *gs = TaskGetStructPtr(t);
Sprite *s = &gs->s1;
u16 i;
@@ -259,7 +258,7 @@ bool32 sub_807618C(Sprite_GuitarString *gs)
return FALSE;
}
void Task_Interactable_MusicPlant_GuitarString(void)
void Task_GuitarString(void)
{
Sprite_GuitarString *gs = TaskGetStructPtr(gCurTask);
@@ -275,7 +274,7 @@ void Task_Interactable_MusicPlant_GuitarString(void)
}
}
void TaskDestructor_Interactable_MusicPlant_GuitarString(struct Task UNUSED *t) { }
void TaskDestructor_GuitarString(struct Task UNUSED *t) { }
void sub_8076258(Sprite_GuitarString UNUSED *gs)
{
@@ -290,10 +289,7 @@ void sub_8076258(Sprite_GuitarString UNUSED *gs)
gCurTask->main = sub_8076000;
}
void sub_80762A8(Sprite_GuitarString UNUSED *gs)
{
gCurTask->main = Task_Interactable_MusicPlant_GuitarString;
}
void sub_80762A8(Sprite_GuitarString UNUSED *gs) { gCurTask->main = Task_GuitarString; }
void sub_80762BC(Sprite_GuitarString *gs)
{
+20 -28
View File
@@ -33,8 +33,8 @@ typedef struct {
#define MUSIC_PLANT_KEYBOARD_TYPE_HORIZONTAL_LEFT 1
#define MUSIC_PLANT_KEYBOARD_TYPE_HORIZONTAL_RIGHT 2
static void Task_Interactable_MusicPlant_Keyboard(void);
static void TaskDestructor_Interactable_MusicPlant_Keyboard(struct Task *);
static void Task_Keyboard(void);
static void TaskDestructor_Keyboard(struct Task *);
static bool32 sub_8076848(Sprite_Keyboard *);
static void DespawnKeyboard(Sprite_Keyboard *);
@@ -52,12 +52,11 @@ const s16 sKeyboardAccelTechnoBase[3][2] = {
{ Q_8_8(5.0), Q_8_8(8.0) },
};
void initSprite_Interactable_MusicPlant_Keyboard(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY, u32 type)
void CreateEntity_Keyboard(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY, u32 type)
{
struct Task *t
= TaskCreate(Task_Interactable_MusicPlant_Keyboard, sizeof(Sprite_Keyboard),
0x2010, 0, TaskDestructor_Interactable_MusicPlant_Keyboard);
struct Task *t = TaskCreate(Task_Keyboard, sizeof(Sprite_Keyboard), 0x2010, 0,
TaskDestructor_Keyboard);
Sprite_Keyboard *kb = TaskGetStructPtr(t);
kb->kbType = type;
@@ -259,7 +258,7 @@ static bool32 sub_8076780(Sprite_Keyboard *kb)
return FALSE;
}
static void Task_Interactable_MusicPlant_Keyboard(void)
static void Task_Keyboard(void)
{
Sprite_Keyboard *kb = TaskGetStructPtr(gCurTask);
if (sub_8076780(kb)) {
@@ -271,7 +270,7 @@ static void Task_Interactable_MusicPlant_Keyboard(void)
}
}
static void TaskDestructor_Interactable_MusicPlant_Keyboard(struct Task *UNUSED t) { }
static void TaskDestructor_Keyboard(struct Task *UNUSED t) { }
static bool32 sub_8076848(Sprite_Keyboard *kb)
{
@@ -294,30 +293,23 @@ static void DespawnKeyboard(Sprite_Keyboard *kb)
TaskDestroy(gCurTask);
}
void initSprite_Interactable_MusicPlant_Keyboard_Vertical(MapEntity *me,
u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Keyboard_Vertical(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
initSprite_Interactable_MusicPlant_Keyboard(
me, spriteRegionX, spriteRegionY, spriteY, MUSIC_PLANT_KEYBOARD_TYPE_VERTICAL);
CreateEntity_Keyboard(me, spriteRegionX, spriteRegionY, spriteY,
MUSIC_PLANT_KEYBOARD_TYPE_VERTICAL);
}
void initSprite_Interactable_MusicPlant_Keyboard_Horizontal_PushLeft(MapEntity *me,
u16 spriteRegionX,
u16 spriteRegionY,
u8 spriteY)
void CreateEntity_Keyboard_Horizontal_PushLeft(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
{
initSprite_Interactable_MusicPlant_Keyboard(
me, spriteRegionX, spriteRegionY, spriteY,
MUSIC_PLANT_KEYBOARD_TYPE_HORIZONTAL_LEFT);
CreateEntity_Keyboard(me, spriteRegionX, spriteRegionY, spriteY,
MUSIC_PLANT_KEYBOARD_TYPE_HORIZONTAL_LEFT);
}
void initSprite_Interactable_MusicPlant_Keyboard_Horizontal_PushRight(MapEntity *me,
u16 spriteRegionX,
u16 spriteRegionY,
u8 spriteY)
void CreateEntity_Keyboard_Horizontal_PushRight(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
{
initSprite_Interactable_MusicPlant_Keyboard(
me, spriteRegionX, spriteRegionY, spriteY,
MUSIC_PLANT_KEYBOARD_TYPE_HORIZONTAL_RIGHT);
CreateEntity_Keyboard(me, spriteRegionX, spriteRegionY, spriteY,
MUSIC_PLANT_KEYBOARD_TYPE_HORIZONTAL_RIGHT);
}
@@ -58,8 +58,8 @@ const u16 gUnknown_080DFC78[NUM_NOTE_BLOCK_TYPES + 1] = {
SE_MUSIC_PLANT_GLOCKENSPIEL_6, MUS_DUMMY,
};
void initSprite_Interactable_MusicPlant_Note_Block(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Note_Block(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(Task_8075C6C, sizeof(Sprite_NoteBlock), 0x2010, 0,
TaskDestructor_8075CC0);
@@ -26,7 +26,7 @@ typedef struct {
/* 0x4B */ u8 unk4B;
} Sprite_NoteSphere; /* size: 0x4C */
static void Task_Interactable_MusicPlant_Note_Sphere(void);
static void Task_Note_Sphere(void);
static u8 NoteSphere_BouncePlayer(Sprite_NoteSphere *);
static bool32 NoteSphere_IsPlayerColliding(Sprite_NoteSphere *);
@@ -55,12 +55,11 @@ static const u16 sNoteSphereSfx[8] = {
SE_MUSIC_PLANT_NOTES_7, SE_MUSIC_PLANT_NOTES_8,
};
void initSprite_Interactable_MusicPlant_Note_Sphere(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Note_Sphere(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t
= TaskCreate(Task_Interactable_MusicPlant_Note_Sphere, sizeof(Sprite_NoteSphere),
0x2010, 0, TaskDestructor_Interactable_MusicPlant_Note_Sphere);
struct Task *t = TaskCreate(Task_Note_Sphere, sizeof(Sprite_NoteSphere), 0x2010, 0,
TaskDestructor_Interactable_MusicPlant_Note_Sphere);
Sprite_NoteSphere *note = TaskGetStructPtr(t);
Sprite *s = &note->disp;
note->unk44 = 0;
@@ -112,7 +111,7 @@ static void Task_80754B8(void)
case 6: {
note->unk44 = 0;
note->unk46 = 0;
gCurTask->main = Task_Interactable_MusicPlant_Note_Sphere;
gCurTask->main = Task_Note_Sphere;
} break;
}
@@ -201,7 +200,7 @@ static bool32 NoteSphere_IsPlayerColliding(Sprite_NoteSphere *note)
return FALSE;
}
static void Task_Interactable_MusicPlant_Note_Sphere(void)
static void Task_Note_Sphere(void)
{
Sprite_NoteSphere *note = TaskGetStructPtr(gCurTask);
@@ -187,10 +187,8 @@ void sub_8077994(Sprite_Pipe_Horn *pipe)
TaskDestroy(gCurTask);
}
void initSprite_Interactable_MusicPlant_PipeInstrument_Entry(MapEntity *me,
u16 spriteRegionX,
u16 spriteRegionY,
u8 spriteY)
void CreateEntity_PipeInstrument_Entry(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
{
struct Task *t = TaskCreate(sub_80778AC, sizeof(Sprite_Pipe_Horn), 0x2010, 0,
TaskDestructor_Pipe);
@@ -366,9 +364,8 @@ void FrenchHorn_Despawn(Sprite_Pipe_Horn *horn)
TaskDestroy(gCurTask);
}
void initSprite_Interactable_MusicPlant_FrenchHorn_Entry(MapEntity *me,
u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_FrenchHorn_Entry(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(Task_FrenchHorn_8077C04, sizeof(Sprite_Pipe_Horn),
0x2010, 0, TaskDestructor_FrenchHorn);
@@ -45,8 +45,8 @@ static void Task_8080750(void);
static void TaskDestructor_8080790(struct Task *t);
static void Task_80807A4(void);
void initSprite_8080368(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
UNUSED u8 spriteY)
void CreateEntity_8080368(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
UNUSED u8 spriteY)
{
s32 screenX, screenY;
+1 -2
View File
@@ -213,8 +213,7 @@ static void sub_807C614(void)
}
static void TaskDestructor_Interactable085(struct Task *);
void initSprite_Interactable085(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
void CreateEntity_085(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY, u8 spriteY)
{
struct Task *t = TaskCreate(Task_Interactable085, 0x4C, 0x2010, 0,
TaskDestructor_Interactable085);
@@ -321,8 +321,8 @@ static void sub_807BA70(void)
unk807->unk62++;
}
void initSprite_Interactable_SkyCanyon_GiantPropeller(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_GiantPropeller(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
struct Task *t = TaskCreate(Task_GiantPropellerIdle, sizeof(Sprite_GiantPropeller),
0x2010, 0, TaskDestructor_GiantPropeller);
@@ -75,10 +75,8 @@ void Task_IA_SmallPropeller_UpdateInFanRegion(void);
void SetTaskMain_UpdateRegular(Sprite_SmallPropeller *unused);
void DestroyTask_Interactable087(Sprite_SmallPropeller *);
static void initSprite_Interactable_SkyCanyon_SmallPropeller(MapEntity *me,
u16 spriteRegionX,
u16 spriteRegionY,
u8 spriteY, u32 kind)
static void CreateEntity_SmallPropeller(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY, u32 kind)
{
struct Task *t
= TaskCreate(Task_IA_SmallPropeller_UpdateRegular, sizeof(Sprite_SmallPropeller),
@@ -351,43 +349,32 @@ void DestroyTask_Interactable087(Sprite_SmallPropeller *prop)
TaskDestroy(gCurTask);
}
void initSprite_Interactable_SkyCanyon_SmallPropeller_Left(MapEntity *me,
u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_SmallPropeller_Left(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
{
initSprite_Interactable_SkyCanyon_SmallPropeller(
me, spriteRegionX, spriteRegionY, spriteY,
SKYCAN_PROPELLER_KIND(PROP_DIR_LEFT, FALSE));
CreateEntity_SmallPropeller(me, spriteRegionX, spriteRegionY, spriteY,
SKYCAN_PROPELLER_KIND(PROP_DIR_LEFT, FALSE));
}
void initSprite_Interactable_SkyCanyon_SmallPropeller_Right(MapEntity *me,
u16 spriteRegionX,
u16 spriteRegionY,
u8 spriteY)
void CreateEntity_SmallPropeller_Right(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
{
initSprite_Interactable_SkyCanyon_SmallPropeller(
me, spriteRegionX, spriteRegionY, spriteY,
SKYCAN_PROPELLER_KIND(PROP_DIR_RIGHT, FALSE));
CreateEntity_SmallPropeller(me, spriteRegionX, spriteRegionY, spriteY,
SKYCAN_PROPELLER_KIND(PROP_DIR_RIGHT, FALSE));
}
void initSprite_Interactable_SkyCanyon_SmallPropeller_Left_Periodic(MapEntity *me,
u16 spriteRegionX,
u16 spriteRegionY,
u8 spriteY)
void CreateEntity_SmallPropeller_Left_Periodic(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
{
initSprite_Interactable_SkyCanyon_SmallPropeller(
me, spriteRegionX, spriteRegionY, spriteY,
SKYCAN_PROPELLER_KIND(PROP_DIR_LEFT, TRUE));
CreateEntity_SmallPropeller(me, spriteRegionX, spriteRegionY, spriteY,
SKYCAN_PROPELLER_KIND(PROP_DIR_LEFT, TRUE));
}
void initSprite_Interactable_SkyCanyon_SmallPropeller_Right_Periodic(MapEntity *me,
u16 spriteRegionX,
u16 spriteRegionY,
u8 spriteY)
void CreateEntity_SmallPropeller_Right_Periodic(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
{
initSprite_Interactable_SkyCanyon_SmallPropeller(
me, spriteRegionX, spriteRegionY, spriteY,
SKYCAN_PROPELLER_KIND(PROP_DIR_RIGHT, TRUE));
CreateEntity_SmallPropeller(me, spriteRegionX, spriteRegionY, spriteY,
SKYCAN_PROPELLER_KIND(PROP_DIR_RIGHT, TRUE));
}
void Task_IA_SmallPropeller_UpdateInFanRegion(void)
@@ -26,7 +26,7 @@ typedef struct {
#define PLAYER_SPIN_DIAMETER 24
#define ROTATE_SPEED 8
static void Task_Interactable_SkyCanyon_SmallSpinnyWindmill(void);
static void Task_SmallSpinnyWindmill(void);
static void TaskDestructor_Interactable_SkyCanyon_SmallSpinnyWindmill(struct Task *);
static void SlowWindmillToStop(void);
static void Task_RotateSequence(void);
@@ -35,12 +35,11 @@ static void RenderWindmill(Sprite_SmallWindmill *);
static void Despawn(Sprite_SmallWindmill *);
static void ResetWindmill(Sprite_SmallWindmill *);
void initSprite_Interactable_SkyCanyon_SmallSpinnyWindmill(MapEntity *me,
u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_SmallSpinnyWindmill(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
{
struct Task *t
= TaskCreate(Task_Interactable_SkyCanyon_SmallSpinnyWindmill, 0x48, 0x2010, 0,
= TaskCreate(Task_SmallSpinnyWindmill, 0x48, 0x2010, 0,
TaskDestructor_Interactable_SkyCanyon_SmallSpinnyWindmill);
Sprite_SmallWindmill *windmill = TaskGetStructPtr(t);
Sprite *sprite;
@@ -251,7 +250,7 @@ static u32 GetPlayerTouchingAngle(Sprite_SmallWindmill *windmill)
return 0;
}
static void Task_Interactable_SkyCanyon_SmallSpinnyWindmill(void)
static void Task_SmallSpinnyWindmill(void)
{
Sprite_SmallWindmill *windmill = TaskGetStructPtr(gCurTask);
@@ -316,7 +315,7 @@ static void ResetWindmill(Sprite_SmallWindmill *windmill)
sprite->variant = 2;
sprite->unk22 = 16;
sub_8004558(sprite);
gCurTask->main = Task_Interactable_SkyCanyon_SmallSpinnyWindmill;
gCurTask->main = Task_SmallSpinnyWindmill;
}
static void RenderWindmill(Sprite_SmallWindmill *windmill)
@@ -88,8 +88,8 @@ static const u8 gUnknown_080E0136[8] = { 0, 0, 0, 0, 1, 1, 1, 2 };
#define UNKNOWN_WHIRLWIND_THIRYTWO 32
void initSprite_Interactable_SkyCanyon_Whirlwind(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY, u32 kind)
void CreateEntity_Whirlwind(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY, u32 kind)
{
struct Task *t = TaskCreate(Task_807D06C, sizeof(Sprite_IA86), 0x2010, 0,
TaskDestructor_Interactable086);
@@ -598,18 +598,16 @@ void sub_807D1BC(Sprite_IA86 *ia086)
sub_807CCBC(ia086);
}
void initSprite_Interactable_SkyCanyon_Whirlwind_0(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Whirlwind_0(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
initSprite_Interactable_SkyCanyon_Whirlwind(me, spriteRegionX, spriteRegionY,
spriteY, 0);
CreateEntity_Whirlwind(me, spriteRegionX, spriteRegionY, spriteY, 0);
}
void initSprite_Interactable_SkyCanyon_Whirlwind_1(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_Whirlwind_1(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
initSprite_Interactable_SkyCanyon_Whirlwind(me, spriteRegionX, spriteRegionY,
spriteY, 1);
CreateEntity_Whirlwind(me, spriteRegionX, spriteRegionY, spriteY, 1);
}
void Task_807D268(void)
+2 -2
View File
@@ -31,8 +31,8 @@ static void Task_80811BC(void);
extern void sub_80122DC(s32, s32);
void initSprite_Interactable_SpecialRing(MapEntity *me, u16 spriteRegionX,
u16 spriteRegionY, u8 spriteY)
void CreateEntity_SpecialRing(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY,
u8 spriteY)
{
if (IS_SINGLE_PLAYER) {
struct Task *t
Loaded 100 of 110 files, more files were not shown because too many files have changed in this diff. Show more