mirror of
https://github.com/SAT-R/sa2.git
synced 2026-10-28 09:43:38 +00:00
Merge branch 'main' into bribasa_crash_fixes
This commit is contained in:
399 files changed
+1812
-2631
No files matched your search
@@ -1,757 +0,0 @@
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
.text
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #0x24
|
||||
ldr r2, _080147EC @ =gPlayer
|
||||
ldr r0, [r2, #0x64]
|
||||
adds r0, #0xc
|
||||
mov r8, r0
|
||||
ldr r0, _080147F0 @ =gCurTask
|
||||
ldr r0, [r0]
|
||||
ldrh r1, [r0, #6]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #0x12
|
||||
adds r7, r1, r0
|
||||
mov sb, r7
|
||||
ldr r1, [r2, #0x10]
|
||||
lsrs r0, r1, #5
|
||||
str r0, [sp, #0x14]
|
||||
movs r0, #1
|
||||
ldr r3, [sp, #0x14]
|
||||
ands r3, r0
|
||||
str r3, [sp, #0x14]
|
||||
movs r0, #8
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
beq _0801477E
|
||||
ldr r0, [r2, #0x28]
|
||||
cmp r0, r7
|
||||
bne _0801477E
|
||||
bl sa2__sub_8017F34
|
||||
_0801477E:
|
||||
ldr r0, _080147F4 @ =gGameMode
|
||||
ldrb r1, [r0]
|
||||
adds r5, r0, #0
|
||||
cmp r1, #3
|
||||
beq _0801478C
|
||||
cmp r1, #5
|
||||
bne _080147BC
|
||||
_0801478C:
|
||||
ldr r0, _080147F8 @ =gMultiplayerConnections
|
||||
ldrb r3, [r0]
|
||||
adds r0, r7, #0
|
||||
adds r0, #0x56
|
||||
ldrb r0, [r0]
|
||||
movs r2, #0x10
|
||||
adds r1, r2, #0
|
||||
lsls r1, r0
|
||||
ands r1, r3
|
||||
adds r0, #4
|
||||
asrs r1, r0
|
||||
ldr r4, _080147FC @ =0x04000128
|
||||
ldr r0, [r4]
|
||||
lsls r0, r0, #0x1a
|
||||
lsrs r0, r0, #0x1e
|
||||
lsls r2, r0
|
||||
ands r3, r2
|
||||
ldr r0, [r4]
|
||||
lsls r0, r0, #0x1a
|
||||
lsrs r0, r0, #0x1e
|
||||
adds r0, #4
|
||||
asrs r3, r0
|
||||
cmp r1, r3
|
||||
bne _080147C6
|
||||
_080147BC:
|
||||
ldrb r0, [r5]
|
||||
cmp r0, #3
|
||||
beq _08014800
|
||||
cmp r0, #5
|
||||
beq _08014800
|
||||
_080147C6:
|
||||
bl sa2__sub_8018300
|
||||
cmp r0, #0
|
||||
bne _080147D0
|
||||
b _08014CFC
|
||||
_080147D0:
|
||||
ldr r0, [r7, #0x4c]
|
||||
movs r1, #0x20
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080147DC
|
||||
b _08014CFC
|
||||
_080147DC:
|
||||
ldr r2, _080147EC @ =gPlayer
|
||||
ldr r0, [r2, #0x10]
|
||||
subs r1, #0x41
|
||||
ands r0, r1
|
||||
str r0, [r2, #0x10]
|
||||
movs r0, #0
|
||||
str r0, [r7, #0x4c]
|
||||
b _08014CFC
|
||||
.align 2, 0
|
||||
_080147EC: .4byte gPlayer
|
||||
_080147F0: .4byte gCurTask
|
||||
_080147F4: .4byte gGameMode
|
||||
_080147F8: .4byte gMultiplayerConnections
|
||||
_080147FC: .4byte 0x04000128
|
||||
_08014800:
|
||||
ldr r6, _08014870 @ =gPlayer
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x3d
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _08014820
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x59
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #1
|
||||
bne _08014820
|
||||
b _08014CFC
|
||||
_08014820:
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x60
|
||||
ldrb r2, [r1]
|
||||
str r1, [sp, #0x20]
|
||||
cmp r2, #0
|
||||
beq _08014838
|
||||
ldr r5, [r7, #0x5c]
|
||||
movs r0, #4
|
||||
ands r5, r0
|
||||
cmp r5, #0
|
||||
bne _08014838
|
||||
b _08014C98
|
||||
_08014838:
|
||||
movs r5, #0
|
||||
strb r5, [r1]
|
||||
ldr r0, _08014874 @ =0xFFFFFEFC
|
||||
adds r4, r0, #0
|
||||
mov r1, sb
|
||||
ldrh r1, [r1, #0xa]
|
||||
adds r0, r4, r1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r0, #2
|
||||
bls _0801489C
|
||||
bl sa2__sub_80181E0
|
||||
cmp r0, #0
|
||||
beq _08014878
|
||||
ldr r0, [r7, #0x4c]
|
||||
movs r1, #0x20
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08014862
|
||||
b _08014CFC
|
||||
_08014862:
|
||||
ldr r0, [r6, #0x10]
|
||||
subs r1, #0x41
|
||||
ands r0, r1
|
||||
str r0, [r6, #0x10]
|
||||
str r5, [r7, #0x4c]
|
||||
b _08014CFC
|
||||
.align 2, 0
|
||||
_08014870: .4byte gPlayer
|
||||
_08014874: .4byte 0xFFFFFEFC
|
||||
_08014878:
|
||||
mov r2, sb
|
||||
ldrh r2, [r2, #0xa]
|
||||
adds r0, r4, r2
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r0, #2
|
||||
bls _0801489C
|
||||
mov r3, r8
|
||||
ldr r0, [r3, #0x30]
|
||||
movs r1, #1
|
||||
rsbs r1, r1, #0
|
||||
cmp r0, r1
|
||||
beq _0801489C
|
||||
mov r4, sb
|
||||
ldr r0, [r4, #0x30]
|
||||
cmp r0, r1
|
||||
beq _0801489C
|
||||
b _08014CFC
|
||||
_0801489C:
|
||||
ldr r0, _080149A8 @ =gPlayer
|
||||
mov sl, r0
|
||||
ldrb r4, [r0, #0xe]
|
||||
rsbs r0, r4, #0
|
||||
add r1, sp, #0x10
|
||||
strb r0, [r1]
|
||||
mov r2, sl
|
||||
ldrb r3, [r2, #0xf]
|
||||
rsbs r2, r3, #0
|
||||
mov r0, sp
|
||||
adds r0, #0x11
|
||||
strb r2, [r0]
|
||||
adds r0, #1
|
||||
strb r4, [r0]
|
||||
adds r0, #1
|
||||
strb r3, [r0]
|
||||
add r0, sp, #0xc
|
||||
movs r2, #4
|
||||
bl memcpy
|
||||
movs r3, #0x50
|
||||
adds r3, r3, r7
|
||||
mov r8, r3
|
||||
movs r4, #0
|
||||
ldrsh r1, [r3, r4]
|
||||
adds r6, r7, #0
|
||||
adds r6, #0x52
|
||||
movs r0, #0
|
||||
ldrsh r2, [r6, r0]
|
||||
adds r0, r7, #0
|
||||
adds r0, #0x66
|
||||
movs r4, #0
|
||||
ldrsh r3, [r0, r4]
|
||||
adds r0, #2
|
||||
movs r4, #0
|
||||
ldrsh r0, [r0, r4]
|
||||
str r0, [sp]
|
||||
adds r5, r7, #0
|
||||
adds r5, #0x54
|
||||
ldrh r0, [r5]
|
||||
lsrs r0, r0, #7
|
||||
movs r4, #1
|
||||
ands r0, r4
|
||||
str r0, [sp, #4]
|
||||
str r4, [sp, #8]
|
||||
mov r0, sb
|
||||
bl sa2__sub_800D0A0
|
||||
adds r2, r0, #0
|
||||
ldr r0, [r7, #0x4c]
|
||||
movs r1, #0x20
|
||||
ands r0, r1
|
||||
mov r3, r8
|
||||
str r3, [sp, #0x18]
|
||||
str r6, [sp, #0x1c]
|
||||
mov r8, r5
|
||||
cmp r0, #0
|
||||
beq _08014922
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08014922
|
||||
mov r4, sl
|
||||
ldr r0, [r4, #0x10]
|
||||
subs r1, #0x41
|
||||
ands r0, r1
|
||||
str r0, [r4, #0x10]
|
||||
_08014922:
|
||||
str r2, [r7, #0x4c]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0xe
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _08014934
|
||||
movs r0, #0x1e
|
||||
ldr r1, [sp, #0x20]
|
||||
strb r0, [r1]
|
||||
_08014934:
|
||||
ldr r2, [sp, #0x18]
|
||||
movs r3, #0
|
||||
ldrsh r1, [r2, r3]
|
||||
ldr r4, [sp, #0x1c]
|
||||
movs r0, #0
|
||||
ldrsh r2, [r4, r0]
|
||||
ldr r5, _080149A8 @ =gPlayer
|
||||
add r3, sp, #0xc
|
||||
str r3, [sp]
|
||||
mov r0, sb
|
||||
adds r3, r5, #0
|
||||
bl Coll_Player_Entity_RectIntersection
|
||||
cmp r0, #0
|
||||
bne _08014954
|
||||
b _08014A6A
|
||||
_08014954:
|
||||
mov r4, r8
|
||||
ldrh r0, [r4]
|
||||
lsls r2, r0, #0x10
|
||||
lsrs r0, r2, #0x17
|
||||
movs r4, #1
|
||||
ands r0, r4
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x27
|
||||
ldrb r1, [r1]
|
||||
cmp r0, r1
|
||||
beq _0801496C
|
||||
b _08014A6A
|
||||
_0801496C:
|
||||
ldr r1, _080149AC @ =0xFFFFFEFC
|
||||
adds r0, r1, #0
|
||||
mov r3, sb
|
||||
ldrh r3, [r3, #0xa]
|
||||
adds r0, r0, r3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r0, #2
|
||||
bhi _08014A6A
|
||||
ldr r0, _080149B0 @ =gStageFlags
|
||||
ldrh r3, [r0]
|
||||
lsrs r1, r3, #7
|
||||
ands r1, r4
|
||||
lsrs r2, r2, #0x13
|
||||
adds r0, r4, #0
|
||||
bics r0, r2
|
||||
cmp r1, r0
|
||||
beq _08014A6A
|
||||
movs r0, #0x80
|
||||
ands r0, r3
|
||||
cmp r0, #0
|
||||
bne _080149B4
|
||||
ldr r0, [r5, #4]
|
||||
asrs r0, r0, #8
|
||||
ldr r4, [sp, #0x1c]
|
||||
movs r2, #0
|
||||
ldrsh r1, [r4, r2]
|
||||
cmp r0, r1
|
||||
bgt _080149C2
|
||||
b _08014A6A
|
||||
.align 2, 0
|
||||
_080149A8: .4byte gPlayer
|
||||
_080149AC: .4byte 0xFFFFFEFC
|
||||
_080149B0: .4byte gStageFlags
|
||||
_080149B4:
|
||||
ldr r0, [r5, #4]
|
||||
asrs r0, r0, #8
|
||||
ldr r3, [sp, #0x1c]
|
||||
movs r4, #0
|
||||
ldrsh r1, [r3, r4]
|
||||
cmp r0, r1
|
||||
bge _08014A6A
|
||||
_080149C2:
|
||||
ldr r4, _08014A10 @ =gPlayer
|
||||
ldr r0, [r4, #0x10]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0xf
|
||||
orrs r0, r1
|
||||
str r0, [r4, #0x10]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0xe
|
||||
bl Player_HandleSpriteYOffsetChange
|
||||
movs r0, #6
|
||||
strb r0, [r4, #0xe]
|
||||
movs r0, #0xe
|
||||
strb r0, [r4, #0xf]
|
||||
adds r2, r4, #0
|
||||
movs r1, #0
|
||||
movs r0, #0
|
||||
strh r0, [r2, #0xc]
|
||||
strh r0, [r2, #8]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x40
|
||||
strb r1, [r0]
|
||||
subs r0, #3
|
||||
strb r1, [r0]
|
||||
adds r0, #1
|
||||
strb r1, [r0]
|
||||
mov r1, sb
|
||||
ldr r0, [r1, #0x10]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #3
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08014A14
|
||||
ldr r0, [r2, #0x10]
|
||||
movs r1, #2
|
||||
rsbs r1, r1, #0
|
||||
ands r0, r1
|
||||
str r0, [r2, #0x10]
|
||||
b _08014A1C
|
||||
.align 2, 0
|
||||
_08014A10: .4byte gPlayer
|
||||
_08014A14:
|
||||
ldr r0, [r4, #0x10]
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
str r0, [r4, #0x10]
|
||||
_08014A1C:
|
||||
ldr r0, [r7, #0x5c]
|
||||
movs r1, #4
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08014A62
|
||||
bl CreateRoomEvent
|
||||
movs r1, #8
|
||||
strb r1, [r0]
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x56
|
||||
ldrb r1, [r1]
|
||||
strb r1, [r0, #1]
|
||||
movs r1, #1
|
||||
strb r1, [r0, #2]
|
||||
ldr r0, _08014A50 @ =gStageFlags
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08014A58
|
||||
ldr r0, [r7, #0x5c]
|
||||
ldr r1, _08014A54 @ =0xFFFFFEFF
|
||||
ands r0, r1
|
||||
b _08014A60
|
||||
.align 2, 0
|
||||
_08014A50: .4byte gStageFlags
|
||||
_08014A54: .4byte 0xFFFFFEFF
|
||||
_08014A58:
|
||||
ldr r0, [r7, #0x5c]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #1
|
||||
orrs r0, r1
|
||||
_08014A60:
|
||||
str r0, [r7, #0x5c]
|
||||
_08014A62:
|
||||
ldr r0, [r7, #0x5c]
|
||||
movs r1, #4
|
||||
orrs r0, r1
|
||||
str r0, [r7, #0x5c]
|
||||
_08014A6A:
|
||||
ldr r0, [r7, #0x5c]
|
||||
movs r1, #4
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08014A76
|
||||
b _08014CFC
|
||||
_08014A76:
|
||||
ldr r6, _08014A98 @ =gPlayer
|
||||
adds r0, r6, #0
|
||||
bl Player_TryJump
|
||||
cmp r0, #0
|
||||
beq _08014AA0
|
||||
movs r0, #0x1e
|
||||
ldr r2, [sp, #0x20]
|
||||
strb r0, [r2]
|
||||
ldr r0, [r6, #0x10]
|
||||
ldr r1, _08014A9C @ =0xFFBFFFFF
|
||||
ands r0, r1
|
||||
str r0, [r6, #0x10]
|
||||
ldr r0, [r7, #0x5c]
|
||||
movs r1, #5
|
||||
rsbs r1, r1, #0
|
||||
b _08014C7C
|
||||
.align 2, 0
|
||||
_08014A98: .4byte gPlayer
|
||||
_08014A9C: .4byte 0xFFBFFFFF
|
||||
_08014AA0:
|
||||
ldr r3, _08014B3C @ =0xFFFFFEFC
|
||||
adds r0, r3, #0
|
||||
mov r4, sb
|
||||
ldrh r4, [r4, #0xa]
|
||||
adds r0, r0, r4
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
ldr r5, _08014B40 @ =gStageFlags
|
||||
cmp r0, #2
|
||||
bhi _08014AF4
|
||||
ldr r0, [r6]
|
||||
asrs r1, r0, #8
|
||||
ldr r2, _08014B44 @ =gCamera
|
||||
movs r3, #0x18
|
||||
ldrsh r0, [r2, r3]
|
||||
cmp r1, r0
|
||||
ble _08014AF4
|
||||
movs r4, #0x1a
|
||||
ldrsh r0, [r2, r4]
|
||||
cmp r1, r0
|
||||
bge _08014AF4
|
||||
ldrh r4, [r5]
|
||||
lsrs r0, r4, #7
|
||||
movs r3, #1
|
||||
adds r2, r3, #0
|
||||
bics r2, r0
|
||||
mov r1, r8
|
||||
ldrh r0, [r1]
|
||||
lsrs r0, r0, #3
|
||||
adds r1, r3, #0
|
||||
bics r1, r0
|
||||
cmp r2, r1
|
||||
bne _08014AF4
|
||||
ldr r1, [r7, #0x5c]
|
||||
lsrs r1, r1, #8
|
||||
adds r0, r3, #0
|
||||
bics r0, r1
|
||||
cmp r0, r2
|
||||
bne _08014AF4
|
||||
ldr r2, [sp, #0x14]
|
||||
cmp r2, #0
|
||||
beq _08014B50
|
||||
_08014AF4:
|
||||
ldr r2, _08014B48 @ =gPlayer
|
||||
ldr r0, [r2, #0x10]
|
||||
ldr r1, _08014B4C @ =0xFFBFFFFF
|
||||
ands r0, r1
|
||||
str r0, [r2, #0x10]
|
||||
ldr r0, [r7, #0x5c]
|
||||
movs r1, #5
|
||||
rsbs r1, r1, #0
|
||||
ands r0, r1
|
||||
str r0, [r7, #0x5c]
|
||||
adds r2, #0x40
|
||||
movs r0, #0
|
||||
strb r0, [r2]
|
||||
ldrh r0, [r5]
|
||||
lsrs r0, r0, #7
|
||||
movs r3, #1
|
||||
adds r2, r3, #0
|
||||
bics r2, r0
|
||||
mov r4, r8
|
||||
ldrh r1, [r4]
|
||||
lsrs r1, r1, #3
|
||||
adds r0, r3, #0
|
||||
bics r0, r1
|
||||
cmp r2, r0
|
||||
bne _08014B34
|
||||
ldr r1, [r7, #0x5c]
|
||||
lsrs r1, r1, #8
|
||||
adds r0, r3, #0
|
||||
bics r0, r1
|
||||
cmp r0, r2
|
||||
bne _08014B34
|
||||
b _08014CFC
|
||||
_08014B34:
|
||||
movs r0, #0x1e
|
||||
ldr r1, [sp, #0x20]
|
||||
strb r0, [r1]
|
||||
b _08014CFC
|
||||
.align 2, 0
|
||||
_08014B3C: .4byte 0xFFFFFEFC
|
||||
_08014B40: .4byte gStageFlags
|
||||
_08014B44: .4byte gCamera
|
||||
_08014B48: .4byte gPlayer
|
||||
_08014B4C: .4byte 0xFFBFFFFF
|
||||
_08014B50:
|
||||
movs r2, #0xf
|
||||
ldrsb r2, [r6, r2]
|
||||
movs r0, #0x80
|
||||
ands r0, r4
|
||||
ldr r3, [sp, #0x18]
|
||||
movs r4, #0
|
||||
ldrsh r1, [r3, r4]
|
||||
lsls r1, r1, #8
|
||||
mov r8, r1
|
||||
cmp r0, #0
|
||||
bne _08014BAC
|
||||
ldr r1, [sp, #0x1c]
|
||||
movs r3, #0
|
||||
ldrsh r0, [r1, r3]
|
||||
mov r1, sb
|
||||
adds r1, #0x2d
|
||||
ldrb r1, [r1]
|
||||
lsls r1, r1, #0x18
|
||||
asrs r1, r1, #0x18
|
||||
adds r0, r0, r1
|
||||
add r1, sp, #0xc
|
||||
ldrb r1, [r1, #3]
|
||||
lsls r1, r1, #0x18
|
||||
asrs r1, r1, #0x18
|
||||
subs r0, r0, r1
|
||||
lsls r5, r0, #8
|
||||
subs r0, r0, r2
|
||||
mov r4, r8
|
||||
asrs r1, r4, #8
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x27
|
||||
ldrb r2, [r2]
|
||||
movs r3, #8
|
||||
rsbs r3, r3, #0
|
||||
ldr r4, _08014BA8 @ =sa2__sub_801EC3C
|
||||
str r4, [sp]
|
||||
bl sa2__sub_801F100
|
||||
cmp r0, #0
|
||||
bge _08014BFC
|
||||
lsls r0, r0, #8
|
||||
subs r5, r5, r0
|
||||
b _08014BE8
|
||||
.align 2, 0
|
||||
_08014BA8: .4byte sa2__sub_801EC3C
|
||||
_08014BAC:
|
||||
ldr r1, [sp, #0x1c]
|
||||
movs r3, #0
|
||||
ldrsh r0, [r1, r3]
|
||||
mov r1, sb
|
||||
adds r1, #0x2f
|
||||
ldrb r1, [r1]
|
||||
lsls r1, r1, #0x18
|
||||
asrs r1, r1, #0x18
|
||||
adds r0, r0, r1
|
||||
add r1, sp, #0xc
|
||||
ldrb r1, [r1, #3]
|
||||
lsls r1, r1, #0x18
|
||||
asrs r1, r1, #0x18
|
||||
adds r0, r0, r1
|
||||
lsls r5, r0, #8
|
||||
adds r0, r0, r2
|
||||
mov r4, r8
|
||||
asrs r1, r4, #8
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x27
|
||||
ldrb r2, [r2]
|
||||
ldr r3, _08014C3C @ =sa2__sub_801EC3C
|
||||
str r3, [sp]
|
||||
movs r3, #8
|
||||
bl sa2__sub_801F100
|
||||
cmp r0, #0
|
||||
bge _08014BFC
|
||||
lsls r0, r0, #8
|
||||
adds r5, r5, r0
|
||||
_08014BE8:
|
||||
ldr r0, [r6, #0x10]
|
||||
ldr r1, _08014C40 @ =0xFFBFFFFF
|
||||
ands r0, r1
|
||||
movs r1, #2
|
||||
orrs r0, r1
|
||||
str r0, [r6, #0x10]
|
||||
ldr r0, [r7, #0x5c]
|
||||
subs r1, #7
|
||||
ands r0, r1
|
||||
str r0, [r7, #0x5c]
|
||||
_08014BFC:
|
||||
ldr r3, _08014C44 @ =gPlayer
|
||||
mov r0, r8
|
||||
str r0, [r3]
|
||||
str r5, [r3, #4]
|
||||
ldr r0, [r7, #0x5c]
|
||||
movs r1, #4
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08014C58
|
||||
ldr r2, [r3, #0x10]
|
||||
movs r0, #8
|
||||
orrs r2, r0
|
||||
subs r0, #0xd
|
||||
ands r2, r0
|
||||
adds r0, #2
|
||||
ands r2, r0
|
||||
str r2, [r3, #0x10]
|
||||
mov r1, sb
|
||||
str r1, [r3, #0x28]
|
||||
movs r0, #0
|
||||
strh r0, [r3, #0xa]
|
||||
ldr r0, [r1, #0x10]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #3
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08014C48
|
||||
movs r0, #2
|
||||
rsbs r0, r0, #0
|
||||
ands r2, r0
|
||||
b _08014C4C
|
||||
.align 2, 0
|
||||
_08014C3C: .4byte sa2__sub_801EC3C
|
||||
_08014C40: .4byte 0xFFBFFFFF
|
||||
_08014C44: .4byte gPlayer
|
||||
_08014C48:
|
||||
movs r0, #1
|
||||
orrs r2, r0
|
||||
_08014C4C:
|
||||
str r2, [r3, #0x10]
|
||||
ldr r0, [r7, #0x5c]
|
||||
movs r1, #4
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08014C6C
|
||||
_08014C58:
|
||||
bl CreateRoomEvent
|
||||
movs r2, #0
|
||||
movs r1, #8
|
||||
strb r1, [r0]
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x56
|
||||
ldrb r1, [r1]
|
||||
strb r1, [r0, #1]
|
||||
strb r2, [r0, #2]
|
||||
_08014C6C:
|
||||
ldr r0, _08014C84 @ =gStageFlags
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08014C8C
|
||||
ldr r0, [r7, #0x5c]
|
||||
ldr r1, _08014C88 @ =0xFFFFFEFF
|
||||
_08014C7C:
|
||||
ands r0, r1
|
||||
str r0, [r7, #0x5c]
|
||||
b _08014CFC
|
||||
.align 2, 0
|
||||
_08014C84: .4byte gStageFlags
|
||||
_08014C88: .4byte 0xFFFFFEFF
|
||||
_08014C8C:
|
||||
ldr r0, [r7, #0x5c]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #1
|
||||
orrs r0, r1
|
||||
str r0, [r7, #0x5c]
|
||||
b _08014CFC
|
||||
_08014C98:
|
||||
subs r0, r2, #1
|
||||
strb r0, [r1]
|
||||
ldr r0, [r6, #0x10]
|
||||
movs r1, #8
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08014CFC
|
||||
ldr r0, [r6, #0x28]
|
||||
cmp r0, sb
|
||||
bne _08014CFC
|
||||
adds r0, r7, #0
|
||||
adds r0, #0x50
|
||||
movs r2, #0
|
||||
ldrsh r1, [r0, r2]
|
||||
adds r0, #2
|
||||
movs r3, #0
|
||||
ldrsh r2, [r0, r3]
|
||||
adds r0, #0x14
|
||||
movs r4, #0
|
||||
ldrsh r3, [r0, r4]
|
||||
adds r0, #2
|
||||
movs r4, #0
|
||||
ldrsh r0, [r0, r4]
|
||||
str r0, [sp]
|
||||
adds r0, r7, #0
|
||||
adds r0, #0x54
|
||||
ldrh r0, [r0]
|
||||
lsrs r0, r0, #7
|
||||
movs r4, #1
|
||||
ands r0, r4
|
||||
str r0, [sp, #4]
|
||||
str r5, [sp, #8]
|
||||
mov r0, sb
|
||||
bl sa2__sub_800D0A0
|
||||
adds r2, r0, #0
|
||||
ldr r0, [r7, #0x4c]
|
||||
movs r1, #0x20
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08014CFA
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08014CFA
|
||||
ldr r0, [r6, #0x10]
|
||||
subs r1, #0x41
|
||||
ands r0, r1
|
||||
str r0, [r6, #0x10]
|
||||
_08014CFA:
|
||||
str r2, [r7, #0x4c]
|
||||
_08014CFC:
|
||||
add sp, #0x24
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
|
||||
.syntax divided
|
||||
+5
-5
@@ -238,11 +238,11 @@ extern IntrFunc gIntrTable[16];
|
||||
extern IntrFunc const gIntrTableTemplate[14];
|
||||
extern u32 gIntrMainBuf[0x80];
|
||||
|
||||
extern struct Task *gCurTask;
|
||||
extern struct Task gTasks[MAX_TASK_NUM];
|
||||
extern struct Task *gTaskPtrs[MAX_TASK_NUM];
|
||||
extern struct Task *gNextTask;
|
||||
extern struct Task gEmptyTask;
|
||||
extern Task *gCurTask;
|
||||
extern Task gTasks[MAX_TASK_NUM];
|
||||
extern Task *gTaskPtrs[MAX_TASK_NUM];
|
||||
extern Task *gNextTask;
|
||||
extern Task gEmptyTask;
|
||||
extern s32 gNumTasks;
|
||||
|
||||
extern u16 gInput;
|
||||
|
||||
@@ -6,6 +6,6 @@
|
||||
void CreateDummyTask(void);
|
||||
|
||||
// Some sort of unused task variable
|
||||
extern struct Task *gDummyTask;
|
||||
extern Task *gDummyTask;
|
||||
|
||||
#endif
|
||||
@@ -98,7 +98,7 @@ typedef struct {
|
||||
#define CHEESE_DISTANCE_MAX 200
|
||||
typedef struct {
|
||||
/* 0x00 */ s32 squarePlayerDistance;
|
||||
/* 0x04 */ struct Task *task;
|
||||
/* 0x04 */ Task *task;
|
||||
} CheeseTarget; /* size: unknown (but >= 0x8?) */
|
||||
|
||||
// Incomplete
|
||||
@@ -152,7 +152,7 @@ extern u16 gUnknown_0300507C;
|
||||
extern u8 gSpikesUnknownTimer;
|
||||
|
||||
extern s8 SA2_LABEL(gUnknown_0300543C);
|
||||
extern struct Task *gEntitiesManagerTask;
|
||||
extern Task *gEntitiesManagerTask;
|
||||
|
||||
extern u8 gDestroySpotlights;
|
||||
|
||||
@@ -182,7 +182,7 @@ extern u8 gBossRingsRespawnCount;
|
||||
extern bool8 gBossRingsShallRespawn;
|
||||
extern bool8 gBoostEffectTasksCreated;
|
||||
|
||||
extern struct Task *gMultiplayerPlayerTasks[4];
|
||||
extern Task *gMultiplayerPlayerTasks[4];
|
||||
extern s8 gMultiplayerCharacters[4];
|
||||
extern s8 gMultiplayerRanks[4];
|
||||
extern u8 gOamMatrixIndex;
|
||||
@@ -221,7 +221,7 @@ extern RoomEvent gRoomEventQueue[16];
|
||||
|
||||
extern CheeseTarget gCheeseTarget;
|
||||
|
||||
extern struct Task *gChaoTasks[3];
|
||||
extern Task *gChaoTasks[3];
|
||||
|
||||
#define MPC_FLAG_SHIFT_REGISTERED 0
|
||||
#define MPC_FLAG_SHIFT_B_TEAM 4
|
||||
|
||||
+1
-1
@@ -43,7 +43,7 @@ u16 Random(void);
|
||||
// Returns a 32-bit pseudorandom number
|
||||
#define Random32() ((Random() << 16) | Random())
|
||||
|
||||
#define ShuffleRngSeed() \
|
||||
#define SHUFFLE_RNG_SEED() \
|
||||
({ \
|
||||
u32 rand1, rand2, rand3; \
|
||||
rand1 ^= (Random() << 16); \
|
||||
|
||||
@@ -15,7 +15,7 @@ extern const TileInfoFirework gTileInfoZone3Fireworks[2];
|
||||
|
||||
extern void CreateStageBg_Zone5(void);
|
||||
extern void StageBgUpdate_Zone5Acts12(s32 x, s32 y);
|
||||
extern struct Task *SpawnCasinoFireworkMP(s16 x, s16 y, s32 fireworkType);
|
||||
extern Task *SpawnCasinoFireworkMP(s16 x, s16 y, s32 fireworkType);
|
||||
extern void Task_UpdateFireworkAnimation(void);
|
||||
|
||||
#endif // GUARD_GAME_STAGE_BG_ZONE3_H
|
||||
@@ -17,9 +17,9 @@ void CreateBossCapsule(s16, s16);
|
||||
|
||||
void CreatePostBossEggMobile(CamCoord worldX, CamCoord worldY);
|
||||
|
||||
struct Task *sub_80168F0(CamCoord worldX, CamCoord worldY, u16 numTiles, AnimId anim, u8 variant); // -> Strc_sub_80168F0
|
||||
struct Task *Bosses_SetCamBounds(CamCoord minY, CamCoord maxY, CamCoord minX, CamCoord maxX);
|
||||
struct Task *CreatePreBossCameraPan(s16 yMin, s16 yMax);
|
||||
struct Task *sub_8017540(s32 param0, s32 param1); // -> NutsAndBolts
|
||||
struct Task *sub_8016D80(CamCoord worldX, CamCoord worldY, AnimId anim, u8 variant);
|
||||
Task *sub_80168F0(CamCoord worldX, CamCoord worldY, u16 numTiles, AnimId anim, u8 variant); // -> Strc_sub_80168F0
|
||||
Task *Bosses_SetCamBounds(CamCoord minY, CamCoord maxY, CamCoord minX, CamCoord maxX);
|
||||
Task *CreatePreBossCameraPan(s16 yMin, s16 yMax);
|
||||
Task *sub_8017540(s32 param0, s32 param1); // -> NutsAndBolts
|
||||
Task *sub_8016D80(CamCoord worldX, CamCoord worldY, AnimId anim, u8 variant);
|
||||
#endif // GUARD_SA1_BOSSES_SHARED_H
|
||||
@@ -8,6 +8,6 @@ typedef struct UnkMP0 {
|
||||
u8 unk6;
|
||||
} UnkMP0;
|
||||
|
||||
struct Task *sub_801C704(void); // -> UnkMP0
|
||||
Task *sub_801C704(void); // -> UnkMP0
|
||||
|
||||
#endif // GUARD_SA1_MP_UNK_0_H
|
||||
@@ -14,9 +14,9 @@ typedef struct {
|
||||
/* 0x40 */ u16 qUnk40; // TODO: qUnk40 not a Q()?
|
||||
} NutsAndBolts;
|
||||
|
||||
extern struct Task *CreateNutsAndBoltsTask(u16 taskFlags, void *vramTiles, u16 anim, u8 variant, TaskDestructor dtor);
|
||||
extern Task *CreateNutsAndBoltsTask(u16 taskFlags, void *vramTiles, u16 anim, u8 variant, TaskDestructor dtor);
|
||||
extern void Task_NutsAndBolts(void);
|
||||
extern void TaskDestructor_NutsAndBolts(struct Task *t);
|
||||
extern void TaskDestructor_NutsAndBolts(Task *t);
|
||||
|
||||
extern const u16 gUnknown_080BB41C[8];
|
||||
extern const u8 gUnknown_080BB42C[8];
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
#define GUARD_STAGE_PLAYER_TAILS_H
|
||||
|
||||
void Player_Tails_InitFlying(Player *p);
|
||||
struct Task *Player_Tails_InitGfxMarbleTrack(Player *p);
|
||||
Task *Player_Tails_InitGfxMarbleTrack(Player *p);
|
||||
|
||||
#endif // GUARD_STAGE_PLAYER_TAILS_H
|
||||
@@ -39,8 +39,8 @@ typedef struct SomeTaskManager_7C {
|
||||
|
||||
void sub_804CFA0(SomeTaskManager_60 *taskData);
|
||||
bool32 sub_804CFE0(u16 *param0, u16 param1, u16 param2);
|
||||
struct Task *CreateSomeTaskManager_60_Task(GfxInfo *gfx, TaskMain proc, TaskDestructor dtor); // -> SomeTaskManager_60
|
||||
struct Task *CreateSomeTaskManager_7C_Task(GfxInfo *gfx, TaskMain proc, TaskDestructor dtor); // -> SomeTaskManager_7C
|
||||
void TaskDestructor_SomeTaskManager_60_Common(struct Task *t);
|
||||
Task *CreateSomeTaskManager_60_Task(GfxInfo *gfx, TaskMain proc, TaskDestructor dtor); // -> SomeTaskManager_60
|
||||
Task *CreateSomeTaskManager_7C_Task(GfxInfo *gfx, TaskMain proc, TaskDestructor dtor); // -> SomeTaskManager_7C
|
||||
void TaskDestructor_SomeTaskManager_60_Common(Task *t);
|
||||
|
||||
#endif // GUARD_SOME_TASK_MANAGER_H
|
||||
@@ -74,12 +74,12 @@ typedef struct {
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ StrcUi_805423C unk0;
|
||||
/* 0x0C */ struct Task *taskC; // -> Strc_Ui_24
|
||||
/* 0x10 */ struct Task *task10; // -> Strc_Ui_24
|
||||
/* 0x14 */ struct Task *task14; // -> Strc_Ui_24
|
||||
/* 0x18 */ struct Task *task18; // -> Strc_Ui_24
|
||||
/* 0x1C */ struct Task *task1C; // -> Strc_Ui_24
|
||||
/* 0x20 */ struct Task *task20; // -> Strc_Ui_24
|
||||
/* 0x0C */ Task *taskC; // -> Strc_Ui_24
|
||||
/* 0x10 */ Task *task10; // -> Strc_Ui_24
|
||||
/* 0x14 */ Task *task14; // -> Strc_Ui_24
|
||||
/* 0x18 */ Task *task18; // -> Strc_Ui_24
|
||||
/* 0x1C */ Task *task1C; // -> Strc_Ui_24
|
||||
/* 0x20 */ Task *task20; // -> Strc_Ui_24
|
||||
/* 0x24 */ s16 unk24;
|
||||
/* 0x26 */ bool8 unk26;
|
||||
/* 0x27 */ u8 unk27;
|
||||
@@ -91,11 +91,11 @@ typedef struct {
|
||||
void *vram8;
|
||||
void *vramC;
|
||||
void *vram10;
|
||||
struct Task *task14;
|
||||
struct Task *task18;
|
||||
struct Task *task1C;
|
||||
struct Task *task20;
|
||||
struct Task *task24;
|
||||
Task *task14;
|
||||
Task *task18;
|
||||
Task *task1C;
|
||||
Task *task20;
|
||||
Task *task24;
|
||||
} StrcStack;
|
||||
|
||||
void LoadStageIntroGraphics(StrcStack *param0);
|
||||
|
||||
@@ -53,7 +53,7 @@ typedef struct Strc_8052C84 {
|
||||
/* 0x16 */ u8 unk16;
|
||||
} Strc_8052C84; /* size: 0x18 */ // <- GameOverB struct?
|
||||
|
||||
extern struct Task *gTask_03006240;
|
||||
extern Task *gTask_03006240;
|
||||
|
||||
struct GfxSubstruct {
|
||||
struct GfxSubstruct *next;
|
||||
|
||||
@@ -40,7 +40,7 @@ struct SpecialStageCollectables {
|
||||
s16 animFrame;
|
||||
}; /* size 0xA5C */
|
||||
|
||||
struct Task *CreateSpecialStageCollectables(struct SpecialStage *);
|
||||
Task *CreateSpecialStageCollectables(struct SpecialStage *);
|
||||
void SpecialStageHandleLoseRings(struct SpecialStage *stage, s16 num);
|
||||
|
||||
#endif
|
||||
@@ -26,6 +26,6 @@ struct SpecialStageGuardRobo {
|
||||
s16 filler56;
|
||||
}; /* 0x58 */
|
||||
|
||||
struct Task *CreateSpecialStageGuardRobo(struct SpecialStage *);
|
||||
Task *CreateSpecialStageGuardRobo(struct SpecialStage *);
|
||||
|
||||
#endif
|
||||
@@ -20,12 +20,12 @@
|
||||
#define MAX_SPECIAL_STAGE_GUARD_ROBO_Y 982
|
||||
|
||||
struct SpecialStage {
|
||||
struct Task *physicsTask;
|
||||
struct Task *worldTask;
|
||||
struct Task *collectablesTask;
|
||||
struct Task *playerTask;
|
||||
struct Task *uiTask;
|
||||
struct Task *guardRoboTask;
|
||||
Task *physicsTask;
|
||||
Task *worldTask;
|
||||
Task *collectablesTask;
|
||||
Task *playerTask;
|
||||
Task *uiTask;
|
||||
Task *guardRoboTask;
|
||||
|
||||
Sprite introText;
|
||||
Background unk48;
|
||||
|
||||
@@ -10,7 +10,7 @@ struct SpecialStagePhysics {
|
||||
u16 unk6;
|
||||
}; /* size 8 */
|
||||
|
||||
struct Task *CreateSpecialStagePhysics(struct SpecialStage *);
|
||||
Task *CreateSpecialStagePhysics(struct SpecialStage *);
|
||||
void HandleRoboPlayerCollision(struct SpecialStage *stage);
|
||||
|
||||
#endif
|
||||
@@ -68,6 +68,6 @@ struct SpecialStagePlayer {
|
||||
s32 unk104;
|
||||
}; /* size 0x108 */
|
||||
|
||||
struct Task *CreateSpecialStagePlayer(struct SpecialStage *);
|
||||
Task *CreateSpecialStagePlayer(struct SpecialStage *);
|
||||
|
||||
#endif
|
||||
@@ -49,8 +49,8 @@ struct SpecialStageResultsScreen {
|
||||
u16 unk51E;
|
||||
}; /* size 0x520 */
|
||||
|
||||
struct Task *CreateSpecialStageUI(struct SpecialStage *);
|
||||
struct Task *CreateSpecialStageResultsScreen(struct SpecialStage *);
|
||||
Task *CreateSpecialStageUI(struct SpecialStage *);
|
||||
Task *CreateSpecialStageResultsScreen(struct SpecialStage *);
|
||||
void SpecialStageResultsScreenNewEmeraldSequence(struct SpecialStage *);
|
||||
|
||||
#endif
|
||||
@@ -17,6 +17,6 @@ struct SpecialStageWorld {
|
||||
Sprite unk90[11];
|
||||
}; /* size 0x2A0 */
|
||||
|
||||
struct Task *CreateSpecialStageWorld(struct SpecialStage *);
|
||||
Task *CreateSpecialStageWorld(struct SpecialStage *);
|
||||
|
||||
#endif
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "global.h"
|
||||
#include "core.h"
|
||||
|
||||
extern struct Task *gActiveBossTask;
|
||||
extern Task *gActiveBossTask;
|
||||
typedef void (*TranslateBossFunction)(s32, s32);
|
||||
|
||||
typedef enum {
|
||||
|
||||
@@ -29,7 +29,7 @@ typedef struct {
|
||||
/* 0x10 */ u16 unk10;
|
||||
/* 0x12 */ s16 unk12;
|
||||
/* 0x14 */ u32 unk14;
|
||||
/* 0x18 */ struct Task *unk18;
|
||||
/* 0x18 */ Task *unk18;
|
||||
|
||||
// Following here might be a Sprite (incl. unk4C-unk53)?
|
||||
/* 0x1C */ Sprite s;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include "types.h"
|
||||
|
||||
extern struct Task *Debug_CreateAsciiTask(s16 x, s16 y);
|
||||
extern Task *Debug_CreateAsciiTask(s16 x, s16 y);
|
||||
extern void Debug_PrintIntegerAt(u32 value, u16 x, u16 y);
|
||||
extern void Debug_PrintTextAt(char *value, u16 x, u16 y);
|
||||
extern void Debug_TextPrinterDestroy();
|
||||
|
||||
@@ -12,6 +12,6 @@ typedef struct {
|
||||
/* 0x62 */ u16 unk62;
|
||||
} Sprite_OnInit_SkyCanyon;
|
||||
|
||||
struct Task *sub_80807CC(void);
|
||||
Task *sub_80807CC(void);
|
||||
|
||||
#endif
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "core.h"
|
||||
#include "game/shared/stage/player.h"
|
||||
|
||||
struct Task *CreateSonicAmySkidAttackEffect(s32 x, s32 y, u16 p2);
|
||||
Task *CreateSonicAmySkidAttackEffect(s32 x, s32 y, u16 p2);
|
||||
void Player_SonicAmy_InitSkidAttack(Player *);
|
||||
void Player_SonicAmy_InitStopNSlam(Player *);
|
||||
void Player_Sonic_InitHomingAttack(Player *);
|
||||
|
||||
@@ -11,9 +11,9 @@
|
||||
extern const u8 gSecondsRenderLUT[60][2];
|
||||
extern const u8 gMillisRenderLUT[60][2];
|
||||
|
||||
extern struct Task *gStageUITask;
|
||||
extern Task *gStageUITask;
|
||||
|
||||
struct Task *CreateStageUI(void);
|
||||
Task *CreateStageUI(void);
|
||||
extern void StageUI_PrintIntegerAt(u32 value, s16 x, s16 y, u8 palId);
|
||||
|
||||
#endif // GUARD_TIME_H
|
||||
@@ -30,83 +30,52 @@ typedef void (*BgUpdate)(s32, s32);
|
||||
|
||||
// NOTE: This was copy-pasted from SA2.
|
||||
// There are type differences for members
|
||||
typedef struct Camera {
|
||||
typedef struct {
|
||||
/* 0x00|0x04 */ CamCoord x; // TODO: might this be unsigned actually?
|
||||
/* 0x02|0x04 */ CamCoord y; // TODO: might this be unsigned actually?
|
||||
#if (GAME == GAME_SA1)
|
||||
/* 0x04 */ s16 SA2_LABEL(unk8);
|
||||
/* 0x06 */ s16 SA2_LABEL(unkC);
|
||||
/* 0x04 */ CamCoord SA2_LABEL(unk8);
|
||||
/* 0x06 */ CamCoord SA2_LABEL(unkC);
|
||||
/* 0x08 */ CamCoord SA2_LABEL(unk10);
|
||||
/* 0x0A */ CamCoord SA2_LABEL(unk14);
|
||||
/* 0x0C */ s16 shiftX;
|
||||
/* 0x0E */ s16 shiftY;
|
||||
/* 0x10 */ s16 SA2_LABEL(unk20);
|
||||
/* 0x12 */ s16 SA2_LABEL(unk24);
|
||||
|
||||
/* 0x18 */ CamCoord shiftX;
|
||||
/* 0x1C */ CamCoord shiftY;
|
||||
/* 0x20 */ CamCoord SA2_LABEL(unk20);
|
||||
/* 0x12 */ CamCoord SA2_LABEL(unk24);
|
||||
// TODO: Why are X/Y swapped?
|
||||
// Did they make this a matrix or sth.?
|
||||
// (Used to calc min/max cam pos in UpdateCamera())
|
||||
/* 0x14 */ s16 minY;
|
||||
/* 0x16 */ s16 maxY;
|
||||
/* 0x18 */ s16 minX;
|
||||
/* 0x1A */ s16 maxX;
|
||||
/* 0x28 */ CamCoord minY;
|
||||
/* 0x2c */ CamCoord maxY;
|
||||
/* 0x30 */ CamCoord minX;
|
||||
/* 0x34 */ CamCoord maxX;
|
||||
#if (GAME == GAME_SA2)
|
||||
/* 0x38 */ CamCoord dx;
|
||||
/* 0x3c */ CamCoord dy;
|
||||
#endif
|
||||
/* 0x1C */ s16 SA2_LABEL(unk40);
|
||||
/* 0x1E */ s16 SA2_LABEL(unk44);
|
||||
/* 0x20 */ s16 SA2_LABEL(unk48);
|
||||
/* 0x22 */ s16 SA2_LABEL(unk4C);
|
||||
/* 0x1E */ CamCoord SA2_LABEL(unk44);
|
||||
/* 0x20 */ CamCoord SA2_LABEL(unk48);
|
||||
/* 0x22 */ CamCoord SA2_LABEL(unk4C);
|
||||
#if (GAME == GAME_SA1)
|
||||
/* 0x24 */ u16 unk24;
|
||||
#endif
|
||||
// 0x4 = spectator
|
||||
// mode
|
||||
/* 0x26 */ u16 SA2_LABEL(unk50);
|
||||
/* 0x28 */ u16 SA2_LABEL(unk52);
|
||||
/* 0x2A */ u16 SA2_LABEL(unk54);
|
||||
#if (GAME == GAME_SA2)
|
||||
/* 0x56 */ s16 unk56;
|
||||
#endif
|
||||
/* 0x2C */ BgUpdate fnBgUpdate;
|
||||
/* 0x30 */ struct Task *movementTask;
|
||||
/* 0x30 */ Task *movementTask;
|
||||
/* 0x34 */ s16 shakeOffsetX;
|
||||
/* 0x36 */ s16 shakeOffsetY;
|
||||
/* 0x38 */ s16 SA2_LABEL(unk64);
|
||||
/* 0x3A */ u8 spectatorTarget;
|
||||
/* 0x3B */ u8 filler3B[0x2];
|
||||
#elif (GAME == GAME_SA2)
|
||||
/* 0x08 */ s32 unk8;
|
||||
/* 0x0C */ s32 unkC;
|
||||
/* 0x10 */ s32 unk10;
|
||||
/* 0x14 */ s32 unk14;
|
||||
/* 0x18 */ s32 shiftX;
|
||||
/* 0x1C */ s32 shiftY;
|
||||
/* 0x20 */ s32 unk20;
|
||||
/* 0x24 */ s32 unk24;
|
||||
|
||||
// TODO: Why are X/Y swapped?
|
||||
// Did they make this a matrix or sth.?
|
||||
// (Used to calc min/max cam pos in UpdateCamera())
|
||||
/* 0x28 */ s32 minY;
|
||||
/* 0x2c */ s32 maxY;
|
||||
/* 0x30 */ s32 minX;
|
||||
/* 0x34 */ s32 maxX;
|
||||
|
||||
/* 0x38 */ s32 dx;
|
||||
/* 0x3c */ s32 dy;
|
||||
/* 0x40 */ s16 unk40;
|
||||
/* 0x44 */ s32 unk44;
|
||||
/* 0x48 */ s32 unk48;
|
||||
/* 0x4c */ s32 unk4C;
|
||||
|
||||
// 0x4 = spectator
|
||||
// mode
|
||||
/* 0x50 */ u16 unk50;
|
||||
|
||||
/* 0x52 */ u16 SA2_LABEL(unk52);
|
||||
/* 0x54 */ u16 SA2_LABEL(unk54);
|
||||
/* 0x56 */ s16 SA2_LABEL(unk56);
|
||||
/* 0x58 */ BgUpdate fnBgUpdate;
|
||||
/* 0x5C */ struct Task *movementTask;
|
||||
/* 0x60 */ s16 shakeOffsetX;
|
||||
/* 0x62 */ s16 shakeOffsetY;
|
||||
/* 0x64 */ s16 unk64;
|
||||
/* 0x66 */ u8 spectatorTarget;
|
||||
#endif
|
||||
} Camera; /* size 0x80(in SA2) */
|
||||
|
||||
extern struct Camera gCamera;
|
||||
extern Camera gCamera;
|
||||
|
||||
// TODO: Merge all these into one!
|
||||
#define IS_OUT_OF_RANGE_2(x, y, radiusX, radiusY) \
|
||||
@@ -157,12 +126,12 @@ extern struct Camera gCamera;
|
||||
#define CAM_SCREENBASE_MAP_BACK 56
|
||||
#endif
|
||||
|
||||
struct Backgrounds {
|
||||
typedef struct {
|
||||
Background unk0;
|
||||
Background unk40;
|
||||
Background unk80;
|
||||
Background unkC0;
|
||||
};
|
||||
} StageBackgrounds;
|
||||
|
||||
extern const Background gStageCameraBgTemplates[4];
|
||||
|
||||
@@ -180,12 +149,7 @@ void HBlankCB_BgUpdateZone5ActBoss(int_vcount vcount);
|
||||
void HBlankCB_BgUpdateZoneFinalActXX(int_vcount vcount);
|
||||
#endif
|
||||
|
||||
#if (GAME == GAME_SA1)
|
||||
// TODO: should be included from terrain_collision.h
|
||||
extern const Collision *gRefCollision;
|
||||
#endif
|
||||
|
||||
extern const u16 gBossCameraYClamps[][2];
|
||||
extern struct Backgrounds gStageBackgroundsRam;
|
||||
extern StageBackgrounds gStageBackgroundsRam;
|
||||
|
||||
#endif // GUARD_GAME_STAGE_CAMERA_H
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include "core.h"
|
||||
|
||||
struct Task *CreateBrakingDustEffect(s32, s32);
|
||||
Task *CreateBrakingDustEffect(s32, s32);
|
||||
void CreateBrakingDustEffectRelatedTask(void);
|
||||
void DestroyBrakingDustEffectRelatedTask(void);
|
||||
|
||||
@@ -17,7 +17,7 @@ typedef struct {
|
||||
|
||||
typedef struct {
|
||||
s8 unk0;
|
||||
struct Task *t; // -> BrakeDustEffect
|
||||
Task *t; // -> BrakeDustEffect
|
||||
} DustEffectBraking;
|
||||
|
||||
extern DustEffectBraking gDustEffectBrakingTask;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#ifndef GUARD_SPINDASH_DUST_CLOUD
|
||||
#define GUARD_SPINDASH_DUST_CLOUD
|
||||
|
||||
struct Task *CreateSpindashDustEffect();
|
||||
Task *CreateSpindashDustEffect();
|
||||
|
||||
#endif // GUARD_SPINDASH_DUST_CLOUD
|
||||
@@ -39,18 +39,18 @@ typedef struct {
|
||||
/* 0x0E|0x10 */ CamCoord prevCamY;
|
||||
/* 0x10|0x14 */ u8 SA2_LABEL(unk14);
|
||||
#if (GAME == GAME_SA2)
|
||||
/* 0x18|0x18 */ struct Task *preInit;
|
||||
/* 0x18|0x18 */ Task *preInit;
|
||||
#endif
|
||||
} EntitiesManager;
|
||||
extern struct Task *gEntitiesManagerTask;
|
||||
extern Task *gEntitiesManagerTask;
|
||||
|
||||
void CreateStageEntitiesManager(void);
|
||||
|
||||
void CreateEnemyDefeatScoreAndManageLives(s16 x, s16 y);
|
||||
|
||||
// TaskDestructor_SpriteEntity
|
||||
void TaskDestructor_EntityShared(struct Task *);
|
||||
void TaskDestructor_EntityShared(Task *);
|
||||
// The same as above, should align the name
|
||||
void TaskDestructor_EntityShared(struct Task *);
|
||||
void TaskDestructor_EntityShared(Task *);
|
||||
|
||||
#endif
|
||||
@@ -3,6 +3,6 @@
|
||||
|
||||
#include "task.h"
|
||||
|
||||
struct Task *CreateGrindEffect(void);
|
||||
Task *CreateGrindEffect(void);
|
||||
|
||||
#endif // GUARD_GRIND_EFFECT_1_H
|
||||
@@ -4,9 +4,9 @@
|
||||
#include "gba/types.h"
|
||||
#include "task.h"
|
||||
|
||||
extern struct Task *CreateItemTask_Shield_Normal(s8);
|
||||
extern struct Task *CreateItemTask_Invincibility(s8);
|
||||
extern struct Task *CreateItemTask_Shield_Magnetic(s8);
|
||||
extern struct Task *CreateItemTask_Confusion(s8);
|
||||
extern Task *CreateItemTask_Shield_Normal(s8);
|
||||
extern Task *CreateItemTask_Invincibility(s8);
|
||||
extern Task *CreateItemTask_Shield_Magnetic(s8);
|
||||
extern Task *CreateItemTask_Confusion(s8);
|
||||
|
||||
#endif // GUARD_GAME_ITEM_TASKS_H
|
||||
@@ -105,8 +105,8 @@ typedef struct {
|
||||
u8 unk2;
|
||||
} RoomEvent_Unknown;
|
||||
|
||||
struct Task *CreateMultiplayerReceiveEventMgr(void);
|
||||
struct Task *CreateMultiplayerSendEventMgr(void);
|
||||
Task *CreateMultiplayerReceiveEventMgr(void);
|
||||
Task *CreateMultiplayerSendEventMgr(void);
|
||||
|
||||
void ReceiveRoomEvent_PlatformChange(union MultiSioData *, u8);
|
||||
void ReceiveRoomEvent_ItemBoxBreak(union MultiSioData *, u8);
|
||||
|
||||
@@ -24,12 +24,12 @@ typedef struct {
|
||||
/* 0x4C */ SpriteTransform transform;
|
||||
} MultiplayerSpriteTask; /* size: 0x58 */
|
||||
|
||||
extern struct Task *CreateMultiplayerSpriteTask(s16, s16, u8, s8, TaskMain, TaskDestructor);
|
||||
extern void TaskDestructor_MultiplayerSpriteTask(struct Task *);
|
||||
extern Task *CreateMultiplayerSpriteTask(s16, s16, u8, s8, TaskMain, TaskDestructor);
|
||||
extern void TaskDestructor_MultiplayerSpriteTask(Task *);
|
||||
|
||||
void CreateGrindEffect2(void);
|
||||
|
||||
struct Task *CreateStageGoalBonusPointsAnim(s32, s32, u16);
|
||||
Task *CreateStageGoalBonusPointsAnim(s32, s32, u16);
|
||||
void Task_UpdateMpSpriteTaskSprite(void);
|
||||
|
||||
#endif // GUARD_GAME_2_H
|
||||
@@ -5,6 +5,6 @@
|
||||
#include "task.h"
|
||||
#include "sprite.h"
|
||||
|
||||
struct Task *CreatePaletteLoaderTask(u16 priority, AnimId anim, u8 variant, TaskDestructor dtor);
|
||||
Task *CreatePaletteLoaderTask(u16 priority, AnimId anim, u8 variant, TaskDestructor dtor);
|
||||
|
||||
#endif
|
||||
@@ -244,7 +244,7 @@ typedef struct Player_ {
|
||||
/* 0x5B */ s8 framesUntilDrownCountDecrement;
|
||||
/* 0x5C */ s8 framesUntilWaterSurfaceEffect;
|
||||
|
||||
/* 0x60 */ struct Task *spriteTask;
|
||||
/* 0x60 */ Task *spriteTask;
|
||||
/* 0x64 */ PlayerSpriteInfo *spriteInfoBody; // for character sprites
|
||||
/* 0x68 */ PlayerSpriteInfo *spriteInfoLimbs; // SpriteInfo for Tails' tails / Cream's ears, when rolling
|
||||
|
||||
@@ -376,7 +376,7 @@ void CallSetStageSpawnPos(u32 character, u32 level, u32 p2, Player *p);
|
||||
|
||||
#if (GAME == GAME_SA1)
|
||||
// Task -> (MultiplayerSpriteTask *)
|
||||
struct Task *Player_Tails_InitGfxMarbleTrack(Player *p);
|
||||
Task *Player_Tails_InitGfxMarbleTrack(Player *p);
|
||||
#endif
|
||||
|
||||
void SA2_LABEL(sub_8021BE0)(Player *p);
|
||||
|
||||
@@ -31,7 +31,7 @@ typedef struct {
|
||||
/* 0x336|0x2B6 */ u16 SA2_LABEL(unk2B6);
|
||||
} RingsScatter; /* size: 0x2B8 */
|
||||
|
||||
extern struct Task *gRingsScatterTask; // -> RingsScatter
|
||||
extern Task *gRingsScatterTask; // -> RingsScatter
|
||||
|
||||
void InitPlayerHitRingsScatter(void);
|
||||
void DestroyRingsScatterTask(void);
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "global.h"
|
||||
#include "task.h"
|
||||
|
||||
struct Task *CreateScreenShake(u32 p0, u32 p1, u32 p2, u32 p3, u32 flags);
|
||||
Task *CreateScreenShake(u32 p0, u32 p1, u32 p2, u32 p3, u32 flags);
|
||||
|
||||
#define SCREENSHAKE_FACTOR_POSITIVE 0x1
|
||||
#define SCREENSHAKE_FACTOR_NEGATIVE 0x2
|
||||
|
||||
@@ -12,6 +12,6 @@ typedef struct {
|
||||
u8 unkB;
|
||||
} SpotlightBeam; /* size: 0xC */
|
||||
|
||||
struct Task *CreateSpotlightBeamTask(void);
|
||||
Task *CreateSpotlightBeamTask(void);
|
||||
|
||||
#endif // GUARD_STAGE_UNK_TASK_H
|
||||
@@ -22,6 +22,6 @@ void GoToNextLevel(void);
|
||||
void HandleLifeLost(void);
|
||||
void HandleDeath(void);
|
||||
|
||||
extern struct Task *gGameStageTask;
|
||||
extern Task *gGameStageTask;
|
||||
|
||||
#endif // GUARD_STAGE_H
|
||||
@@ -6,9 +6,9 @@
|
||||
|
||||
extern void InitWaterPalettes(void);
|
||||
|
||||
struct Task *SpawnDrowningCountdownNum(Player *p, s32 countdown);
|
||||
struct Task *SpawnAirBubbles(s32 p0, s32 p1, s32 p2, s32 p3);
|
||||
struct Task *SpawnBubblesAfterDrowning(Player *p);
|
||||
Task *SpawnDrowningCountdownNum(Player *p, s32 countdown);
|
||||
Task *SpawnAirBubbles(s32 p0, s32 p1, s32 p2, s32 p3);
|
||||
Task *SpawnBubblesAfterDrowning(Player *p);
|
||||
bool32 RandomlySpawnAirBubbles(Player *p);
|
||||
|
||||
extern u8 gSmallAirBubbleCount;
|
||||
|
||||
@@ -37,7 +37,7 @@ typedef struct {
|
||||
/* 0x04|0x06 */ s16 targetWaterLevel;
|
||||
/* 0x08|0x08 */ u32 flags;
|
||||
/* 0x0C|0x0C */ u32 blendColors;
|
||||
/* 0x10 */ struct Task *t; /* -> WaterData | size: SA1: 0x00, SA2: 0x400, SA3: *unused* */
|
||||
/* 0x10 */ Task *t; /* -> WaterData | size: SA1: 0x00, SA2: 0x400, SA3: *unused* */
|
||||
/* 0x14 */ Sprite s;
|
||||
#if (GAME == GAME_SA3)
|
||||
/* 0x3C */ WaterData wd;
|
||||
@@ -54,7 +54,7 @@ void InitWaterPalettes(void);
|
||||
void CreateRunOnWaterEffect(void);
|
||||
#endif // HAS_RUN_ON_WATER
|
||||
|
||||
struct Task *CreateWaterfallSurfaceHitEffect(s32 x, s32 y);
|
||||
Task *CreateWaterfallSurfaceHitEffect(s32 x, s32 y);
|
||||
void LoadPalette423Anim(void);
|
||||
|
||||
#endif // GUARD_WATER_EFFECT_H
|
||||
+16
-16
@@ -3,10 +3,10 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
struct Task;
|
||||
struct Task_;
|
||||
|
||||
typedef void (*TaskMain)(void);
|
||||
typedef void (*TaskDestructor)(struct Task *);
|
||||
typedef void (*TaskDestructor)(struct Task_ *);
|
||||
|
||||
// The task system uses the GBA's unique memory layout to halve the size of pointers.
|
||||
// Other platforms need to have the same logical behavior, but done differently.
|
||||
@@ -22,7 +22,7 @@ typedef u32 TaskPtr32;
|
||||
typedef u16 IwramData;
|
||||
#define CLEAR_TASK_MEMORY_ON_DESTROY FALSE
|
||||
#else
|
||||
typedef struct Task *TaskPtr;
|
||||
typedef struct Task_ *TaskPtr;
|
||||
typedef TaskPtr TaskPtr32;
|
||||
|
||||
#define TASK_PTR(taskRef) (taskRef)
|
||||
@@ -52,7 +52,7 @@ typedef void *IwramData;
|
||||
// Used for uses of unk14, unk15, unk16 and unk18, which might have been debug data.
|
||||
#define USE_SA2_TASK_SYSTEM (GAME == GAME_SA2)
|
||||
|
||||
typedef struct Task {
|
||||
typedef struct Task_ {
|
||||
/* 0x00 */ TaskPtr parent;
|
||||
/* 0x02 */ TaskPtr prev;
|
||||
/* 0x04 */ TaskPtr next;
|
||||
@@ -98,8 +98,8 @@ struct IwramNode {
|
||||
};
|
||||
|
||||
#define TASK_DATA(taskp) (void *)TASK_PTR((taskp)->data)
|
||||
#define TASK_PARENT(taskp) (struct Task *)TASK_PTR((taskp)->parent)
|
||||
#define TASK_NEXT(taskp) (struct Task *)TASK_PTR((taskp)->next)
|
||||
#define TASK_PARENT(taskp) (Task *)TASK_PTR((taskp)->parent)
|
||||
#define TASK_NEXT(taskp) (Task *)TASK_PTR((taskp)->next)
|
||||
#define TasksDestroyAll() TasksDestroyInPriorityRange(0, 0xFFFF)
|
||||
|
||||
#define TASK_HEAP_SIZE ((0x881) * sizeof(uintptr_t))
|
||||
@@ -110,15 +110,15 @@ struct IwramNode {
|
||||
#define TASK_SET_MEMBER(_taskType, _task, _memberType, _memberName, _value) \
|
||||
TASK_GET_MEMBER(_taskType, _task, _memberType, _memberName) = (_value);
|
||||
|
||||
extern struct Task gTasks[MAX_TASK_NUM];
|
||||
extern struct Task gEmptyTask;
|
||||
extern struct Task *gTaskPtrs[MAX_TASK_NUM];
|
||||
extern Task gTasks[MAX_TASK_NUM];
|
||||
extern Task gEmptyTask;
|
||||
extern Task *gTaskPtrs[MAX_TASK_NUM];
|
||||
extern s32 gNumTasks;
|
||||
#if (ENGINE == ENGINE_3)
|
||||
extern struct Task *gNextTaskToCheckForDestruction;
|
||||
extern Task *gNextTaskToCheckForDestruction;
|
||||
#endif
|
||||
extern struct Task *gNextTask;
|
||||
extern struct Task *gCurTask;
|
||||
extern Task *gNextTask;
|
||||
extern Task *gCurTask;
|
||||
extern u8 gIwramHeap[TASK_HEAP_SIZE];
|
||||
|
||||
u32 TasksInit(void);
|
||||
@@ -127,21 +127,21 @@ void TasksExec(void);
|
||||
#if ENABLE_TASK_LOGGING
|
||||
#include <stdio.h>
|
||||
|
||||
struct Task *TaskCreate(TaskMain taskMain, u16 structSize, u16 priority, u16 flags, TaskDestructor taskDestructor, const char *name);
|
||||
Task *TaskCreate(TaskMain taskMain, u16 structSize, u16 priority, u16 flags, TaskDestructor taskDestructor, const char *name);
|
||||
|
||||
// The printout is split so we can still read the input, even if TaskCreate crashes.
|
||||
#define TaskCreate(taskMain, structSize, priority, flags, taskDestructor) \
|
||||
({ \
|
||||
printf("New '%s' (0x%X, %p) ", #taskMain, (u32)structSize, taskMain); \
|
||||
struct Task *tt = TaskCreate(taskMain, structSize, priority, flags, taskDestructor, #taskMain); \
|
||||
Task *tt = TaskCreate(taskMain, structSize, priority, flags, taskDestructor, #taskMain); \
|
||||
printf("at %p\n", tt); \
|
||||
tt; \
|
||||
})
|
||||
#else
|
||||
struct Task *TaskCreate(TaskMain taskMain, u16 structSize, u16 priority, u16 flags, TaskDestructor taskDestructor);
|
||||
Task *TaskCreate(TaskMain taskMain, u16 structSize, u16 priority, u16 flags, TaskDestructor taskDestructor);
|
||||
#endif // ENABLE_TASK_LOGGING
|
||||
|
||||
void TaskDestroy(struct Task *);
|
||||
void TaskDestroy(Task *);
|
||||
void *IwramMalloc(u16);
|
||||
void IwramFree(void *p);
|
||||
void TasksDestroyInPriorityRange(u16, u16);
|
||||
|
||||
+6
-6
@@ -17,7 +17,7 @@ typedef bool32 (*VBlankProcessFunc)(void);
|
||||
|
||||
IntrFunc gIntrTable[] = {};
|
||||
u32 gIntrMainBuf[] = {};
|
||||
struct Task gTasks[] = {};
|
||||
Task gTasks[] = {};
|
||||
u16 gSpriteTransformScaleX ALIGNED(4) = 0;
|
||||
Vec2_16 gSpriteOffset ALIGNED(4) = {};
|
||||
Background *gBackgroundsCopyQueue[] ALIGNED(16) = {};
|
||||
@@ -37,7 +37,7 @@ u32 gUnknown_03002BF0 = 0;
|
||||
u8 gNumHBlankIntrs = 0;
|
||||
struct BlendRegs gBldRegs ALIGNED(8) = {};
|
||||
u8 gOamFreeIndex = 0;
|
||||
struct Task gEmptyTask ALIGNED(16) = {};
|
||||
Task gEmptyTask ALIGNED(16) = {};
|
||||
|
||||
#if (ENGINE >= ENGINE_3)
|
||||
// NOTE: gNextFreeAffineIndex introduced in SA3, unused before.
|
||||
@@ -55,7 +55,7 @@ u8 gUnknown_03002C60 ALIGNED(4) = 0;
|
||||
u32 gMultiSioStatusFlags = 0;
|
||||
bool8 gMultiSioEnabled = FALSE;
|
||||
|
||||
struct Task *gTaskPtrs[] ALIGNED(16) = {};
|
||||
Task *gTaskPtrs[] ALIGNED(16) = {};
|
||||
int_vcount gBgOffsetsBuffer[2][DISPLAY_HEIGHT][4] = {}; /* TODO: Find out how this is different from gBgOffsetsHBlankPrimary */
|
||||
ColorRaw gObjPalette[] = {};
|
||||
Tilemap **gTilemapsRef = NULL;
|
||||
@@ -66,13 +66,13 @@ u8 gBgSprites_Unknown2[4][4] = {};
|
||||
u16 gInput = 0;
|
||||
#if (ENGINE >= ENGINE_3)
|
||||
s32 gUnknown_030035A4 = 0;
|
||||
struct Task *gNextTaskToCheckForDestruction = NULL;
|
||||
Task *gNextTaskToCheckForDestruction = NULL;
|
||||
#endif // (ENGINE >= ENGINE_3)
|
||||
u8 gRepeatedKeysTestCounter[] ALIGNED(16) = {};
|
||||
void *gBgOffsetsHBlankSecondary = NULL;
|
||||
u16 gBgCntRegs[] = {};
|
||||
u16 gRepeatedKeys ALIGNED(4) = 0;
|
||||
struct Task *gNextTask = NULL;
|
||||
Task *gNextTask = NULL;
|
||||
#if ((ENGINE == ENGINE_1) || (ENGINE == ENGINE_2))
|
||||
// Only here in SA3
|
||||
// struct GraphicsData *gVramGraphicsCopyQueue[];
|
||||
@@ -90,7 +90,7 @@ s16 gMosaicReg = 0;
|
||||
#endif
|
||||
|
||||
HBlankIntrFunc gHBlankCallbacks[4] ALIGNED(16) = {};
|
||||
struct Task *gCurTask = NULL;
|
||||
Task *gCurTask = NULL;
|
||||
u8 sLastCalledVblankFuncId = 0;
|
||||
u8 gKeysFirstRepeatIntervals[10] ALIGNED(16) = {};
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ typedef struct {
|
||||
} DCCredits;
|
||||
|
||||
void Task_DecompCreditsFirst();
|
||||
void TaskDestructor_DecompCredits(struct Task *t);
|
||||
void TaskDestructor_DecompCredits(Task *t);
|
||||
|
||||
void customHBlank(void);
|
||||
|
||||
@@ -60,7 +60,7 @@ s32 logoOllieMove(s32 frameNum)
|
||||
|
||||
void CreateDecompCreditsScreen(bool32 hasProfile)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
DCCredits *cred;
|
||||
Sprite *s;
|
||||
|
||||
@@ -245,7 +245,7 @@ void Task_SonicArrived(void)
|
||||
cred->sonicArrivedT0++;
|
||||
}
|
||||
|
||||
void TaskDestructor_DecompCredits(struct Task *t)
|
||||
void TaskDestructor_DecompCredits(Task *t)
|
||||
{
|
||||
DCCredits *cred = TASK_DATA(t);
|
||||
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
#include "game/dummy_task.h"
|
||||
#include "game/shared/stage/stage.h"
|
||||
|
||||
struct Task *gDummyTask = NULL;
|
||||
Task *gDummyTask = NULL;
|
||||
|
||||
static void Task_DummyFunc(void);
|
||||
static void DummyTaskOnDestroy(struct Task *);
|
||||
static void DummyTaskOnDestroy(Task *);
|
||||
|
||||
UNUSED void CreateDummyTask(void) { gDummyTask = TaskCreate(Task_DummyFunc, 0, 0x100, 0, DummyTaskOnDestroy); }
|
||||
|
||||
@@ -19,4 +19,4 @@ UNUSED static void DestroyDummyTask(void)
|
||||
|
||||
static void Task_DummyFunc(void) { }
|
||||
|
||||
UNUSED static void DummyTaskOnDestroy(struct Task *task) { gDummyTask = NULL; }
|
||||
UNUSED static void DummyTaskOnDestroy(Task *task) { gDummyTask = NULL; }
|
||||
+4
-4
@@ -11,7 +11,7 @@ u8 gMultiplayerLanguage = 0;
|
||||
#endif
|
||||
|
||||
u16 ALIGNED(4) gRingCount = 0;
|
||||
struct Task *ALIGNED(4) gChaoTasks[] = {};
|
||||
Task *ALIGNED(4) gChaoTasks[] = {};
|
||||
|
||||
#if (GAME == GAME_SA2)
|
||||
#ifndef NON_MATCHING
|
||||
@@ -103,7 +103,7 @@ u16 ALIGNED(4) gSpecialStageReturnY = 0;
|
||||
#elif (GAME == GAME_SA2)
|
||||
u8 ALIGNED(4) gMultiplayerUnlockedLevels = 0;
|
||||
#endif
|
||||
struct Task *ALIGNED(4) gEntitiesManagerTask = NULL;
|
||||
Task *ALIGNED(4) gEntitiesManagerTask = NULL;
|
||||
|
||||
#if (GAME == GAME_SA2)
|
||||
s32 ALIGNED(4) gWorldSpeedY = 0;
|
||||
@@ -152,9 +152,9 @@ u8 ALIGNED(4) gMultiplayerUnlockedCharacters = 0;
|
||||
#endif
|
||||
|
||||
#ifndef NON_MATCHING
|
||||
struct Task *ALIGNED(16) gMultiplayerPlayerTasks[MULTI_SIO_PLAYERS_MAX] = {};
|
||||
Task *ALIGNED(16) gMultiplayerPlayerTasks[MULTI_SIO_PLAYERS_MAX] = {};
|
||||
#else
|
||||
struct Task *ALIGNED(4) gMultiplayerPlayerTasks[MULTI_SIO_PLAYERS_MAX] = {};
|
||||
Task *ALIGNED(4) gMultiplayerPlayerTasks[MULTI_SIO_PLAYERS_MAX] = {};
|
||||
#endif
|
||||
|
||||
#if (GAME == GAME_SA1)
|
||||
|
||||
@@ -28,7 +28,7 @@ typedef enum PakModes {
|
||||
PM_COUNT
|
||||
} PakModes;
|
||||
|
||||
typedef struct ModeSelect {
|
||||
typedef struct {
|
||||
/* 0x00 */ Background bg;
|
||||
/* 0x40 */ Sprite s[3];
|
||||
/* 0xD0 */ Sprite s4;
|
||||
|
||||
@@ -36,7 +36,7 @@ typedef enum PakModes {
|
||||
PM_COUNT
|
||||
} PakModes;
|
||||
|
||||
typedef struct ModeSelect {
|
||||
typedef struct {
|
||||
/* 0x00 */ Background bg;
|
||||
/* 0x40 */ Sprite s[3];
|
||||
/* 0xD0 */ Sprite s4;
|
||||
@@ -60,7 +60,7 @@ typedef struct ModeSelect {
|
||||
/* 0x219 */ u8 unk219;
|
||||
} ModeSelect; /* 0x21C */
|
||||
|
||||
typedef struct SioMultiplayerScore {
|
||||
typedef struct {
|
||||
u16 unk0;
|
||||
u8 unk2;
|
||||
u8 unk3;
|
||||
@@ -81,7 +81,7 @@ void Task_800F058(void);
|
||||
|
||||
extern const VoidFn gUnknown_080BB3F8[9];
|
||||
|
||||
void sa2__sub_80818B8(void)
|
||||
void SA2_LABEL(sub_80818B8)(void)
|
||||
{
|
||||
u32 var_r1;
|
||||
u8 temp_r4_3;
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
#include "constants/sa1/songs.h"
|
||||
#include "constants/sa1/text.h" // for UILANG_COUNT
|
||||
|
||||
typedef struct OptionsMenu {
|
||||
typedef struct {
|
||||
/* 0x000 */ Sprite s0;
|
||||
/* 0x030 */ Sprite sprites30[8];
|
||||
/* 0x1B0 */ Sprite s1B0;
|
||||
@@ -39,7 +39,7 @@ void sub_8010CB4(void);
|
||||
void sub_8011104(void);
|
||||
void sub_801123C(void);
|
||||
void sub_801176C(void);
|
||||
void TaskDestructor_OptionsMenu(struct Task *t);
|
||||
void TaskDestructor_OptionsMenu(Task *t);
|
||||
|
||||
extern void sub_8012F6C();
|
||||
extern void CreatePlayerDataMenu(void);
|
||||
@@ -718,7 +718,7 @@ void sub_80114A0()
|
||||
CreateMainMenu(1);
|
||||
}
|
||||
|
||||
void TaskDestructor_OptionsMenu(struct Task *t)
|
||||
void TaskDestructor_OptionsMenu(Task *t)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ typedef enum EPDM_Options {
|
||||
PDM_OPTION_COUNT
|
||||
} EPDM_Options;
|
||||
|
||||
typedef struct PlayerDataMenu {
|
||||
typedef struct {
|
||||
/* 0x00 */ Sprite s;
|
||||
/* 0x30 */ Sprite s2[PDM_OPTION_COUNT + 1];
|
||||
/* 0xF0 */ StrcUi_805423C strcF0;
|
||||
@@ -34,7 +34,7 @@ typedef struct PlayerDataMenu {
|
||||
|
||||
void CreatePlayerDataMenu();
|
||||
void Task_PlayerDataMenuInit(void);
|
||||
void TaskDestructor_PlayerDataMenu(struct Task *t);
|
||||
void TaskDestructor_PlayerDataMenu(Task *t);
|
||||
void sub_8011C94(void);
|
||||
|
||||
extern void CreateOptionsMenu();
|
||||
@@ -69,7 +69,7 @@ void CreatePlayerDataMenu()
|
||||
StrcUi_805423C *temp_r4;
|
||||
u8 i;
|
||||
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
PlayerDataMenu *menu;
|
||||
|
||||
gDispCnt = 0x1140;
|
||||
@@ -321,7 +321,7 @@ void PlayerDataSelectOK(void)
|
||||
CreateOptionsMenu();
|
||||
}
|
||||
|
||||
void TaskDestructor_PlayerDataMenu(struct Task *t)
|
||||
void TaskDestructor_PlayerDataMenu(Task *t)
|
||||
{
|
||||
PlayerDataMenu *menu;
|
||||
u8 i;
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include "constants/sa1/songs.h"
|
||||
#include "constants/sa1/text.h"
|
||||
|
||||
typedef struct TimeAttackMenu {
|
||||
typedef struct {
|
||||
StrcUi_805423C unk0;
|
||||
Sprite s;
|
||||
Sprite s2;
|
||||
@@ -45,7 +45,7 @@ void CreateTimeAttackMenu(void)
|
||||
{
|
||||
Strc_80528AC sp4;
|
||||
s32 var_r0;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
TimeAttackMenu *menu;
|
||||
Sprite *s;
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
#define MENU_ITEMS_SPACE 14
|
||||
#define NUM_MAIN_MENU_ITEMS 5
|
||||
|
||||
void TaskDestructor_TitleScreen(struct Task *t);
|
||||
void TaskDestructor_TitleScreen(Task *t);
|
||||
void Task_800D268();
|
||||
void Task_800D450();
|
||||
void Task_MainMenu_Select(void);
|
||||
@@ -70,18 +70,18 @@ const u8 gUnknown_080BB327[] = { 0, 1, 3, 2, 0 };
|
||||
const VoidFn sMainMenuSecondaryItems[NUM_MAIN_MENU_ITEMS - 1]
|
||||
= { CreateMultiplayerModeSelectScreen, CreateTimeAttackMenu, CreateOptionsMenu, LoadTinyChaoGarden };
|
||||
|
||||
typedef struct SegaLogo {
|
||||
typedef struct {
|
||||
u16 unk0;
|
||||
Background bg;
|
||||
} SegaLogo; /* 0x44 */
|
||||
|
||||
typedef struct SonicTeamLogo {
|
||||
typedef struct {
|
||||
u16 unk0;
|
||||
Background bg;
|
||||
s16 qFade;
|
||||
} SonicTeamLogo; /* 0x48 */
|
||||
|
||||
typedef struct MainMenu {
|
||||
typedef struct {
|
||||
/* 0x000 */ Sprite s;
|
||||
/* 0x030 */ Sprite items[NUM_MAIN_MENU_ITEMS];
|
||||
/* 0x120 */ Background bg120;
|
||||
@@ -95,7 +95,7 @@ typedef struct MainMenu {
|
||||
|
||||
void CreateSegaLogo(void)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
SegaLogo *logo;
|
||||
Background *bg;
|
||||
|
||||
@@ -173,7 +173,7 @@ void Task_800D11C(void)
|
||||
|
||||
void CreateSonicTeamLogo(void)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
SonicTeamLogo *logo;
|
||||
Background *bg;
|
||||
|
||||
@@ -324,7 +324,7 @@ void Task_800D4B0(void)
|
||||
CreateTitleScreen(1);
|
||||
}
|
||||
|
||||
typedef struct TitleScreen {
|
||||
typedef struct {
|
||||
/* 0x00 */ Sprite s;
|
||||
/* 0x30 */ Sprite s2;
|
||||
/* 0x60 */ Background bg;
|
||||
@@ -338,7 +338,7 @@ typedef struct TitleScreen {
|
||||
|
||||
void CreateTitleScreen(u32 playMusic)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
TitleScreen *title;
|
||||
Sprite *s;
|
||||
Background *bg;
|
||||
@@ -513,8 +513,8 @@ void CreateMainMenu(u32 param0)
|
||||
StrcUi_805423C *temp_r1_3;
|
||||
s8 *temp_r0;
|
||||
|
||||
struct Task *t;
|
||||
struct MainMenu *menu;
|
||||
Task *t;
|
||||
MainMenu *menu;
|
||||
Sprite *s;
|
||||
Background *bg;
|
||||
|
||||
@@ -837,7 +837,7 @@ void Task_SwitchToMainMenu(void)
|
||||
CreateMainMenu(0);
|
||||
}
|
||||
|
||||
void TaskDestructor_TitleScreen(struct Task *t)
|
||||
void TaskDestructor_TitleScreen(Task *t)
|
||||
{
|
||||
#ifdef BUG_FIX
|
||||
// NOTE: This is *technically* not a bug, but it's more coherent like this.
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
#define CM_BACKGROUND_COLOR RGB16_REV(0, 27, 30)
|
||||
|
||||
typedef struct ChaoMessage {
|
||||
typedef struct {
|
||||
/* 0x00 */ Background bg;
|
||||
/* 0x40 */ u8 unk40[2][4];
|
||||
/* 0x48 */ s16 unk48[4];
|
||||
@@ -29,14 +29,14 @@ typedef struct ChaoMessage {
|
||||
/* 0x56 */ u8 unk56;
|
||||
} ChaoMessage; /* 0x58 */
|
||||
|
||||
typedef struct ChaoMsgSprite {
|
||||
typedef struct {
|
||||
/* 0x00 */ Sprite s;
|
||||
/* 0x30 */ s16 unk30;
|
||||
/* 0x32 */ s16 unk32;
|
||||
/* 0x34 */ u8 unk34;
|
||||
} ChaoMsgSprite; /* 0x38 */
|
||||
|
||||
typedef struct ChaoMsg68 {
|
||||
typedef struct {
|
||||
GameOverB overBs[4];
|
||||
s16 unk60;
|
||||
s16 unk62;
|
||||
@@ -59,8 +59,8 @@ void sub_803BC64(void);
|
||||
void sub_803BE0C(void);
|
||||
void sub_803BEB8(void);
|
||||
void sub_803BFE8(void);
|
||||
void TaskDestructor_803C184(struct Task *t);
|
||||
void TaskDestructor_803C198(struct Task *t);
|
||||
void TaskDestructor_803C184(Task *t);
|
||||
void TaskDestructor_803C198(Task *t);
|
||||
|
||||
extern void sub_8018538(void);
|
||||
extern void CreateMultiplayerContinueScreen(void);
|
||||
@@ -908,13 +908,13 @@ void Task_803C130(void)
|
||||
DisplaySprite(s);
|
||||
}
|
||||
|
||||
void TaskDestructor_803C184(struct Task *t)
|
||||
void TaskDestructor_803C184(Task *t)
|
||||
{
|
||||
ChaoMsgSprite *msgSprite = TASK_DATA(t);
|
||||
VramFree(msgSprite->s.graphics.dest);
|
||||
}
|
||||
|
||||
void TaskDestructor_803C198(struct Task *t)
|
||||
void TaskDestructor_803C198(Task *t)
|
||||
{
|
||||
ChaoMsg68 *strc68 = TASK_DATA(t);
|
||||
VramFree(strc68->vram64);
|
||||
|
||||
@@ -20,7 +20,7 @@ extern struct MP2KSongHeader se_ring_copy;
|
||||
#include "constants/sa1/songs.h"
|
||||
#include "constants/sa1/zones.h"
|
||||
|
||||
typedef struct Strc_30055E0 {
|
||||
typedef struct {
|
||||
u8 unk0;
|
||||
s16 unk2;
|
||||
u16 qBlend;
|
||||
@@ -28,7 +28,7 @@ typedef struct Strc_30055E0 {
|
||||
u8 fillerC[0x4];
|
||||
} Strc_30055E0; /* 0x10 */
|
||||
|
||||
typedef struct Strc_3005690 {
|
||||
typedef struct {
|
||||
s32 unk0;
|
||||
s32 unk4;
|
||||
s32 unk8;
|
||||
@@ -76,7 +76,7 @@ typedef struct Strc_3005690 {
|
||||
u8 filler56[0xA];
|
||||
} Strc_3005690; /* 0x60 */
|
||||
|
||||
typedef struct Strc_3005780 {
|
||||
typedef struct {
|
||||
s16 unk0;
|
||||
s16 unk2;
|
||||
s16 unk4;
|
||||
@@ -90,7 +90,7 @@ typedef struct Strc_3005780 {
|
||||
s8 unk13;
|
||||
} Strc_3005780;
|
||||
|
||||
typedef struct SpStage74 {
|
||||
typedef struct {
|
||||
SpriteTransform tf;
|
||||
Sprite s;
|
||||
s32 unk3C;
|
||||
@@ -123,7 +123,7 @@ typedef struct SpStage74 {
|
||||
u8 filler72[2];
|
||||
} SpStage74;
|
||||
|
||||
typedef struct SpStage8 {
|
||||
typedef struct {
|
||||
u8 filler0[2];
|
||||
u16 unk2;
|
||||
u16 unk4;
|
||||
@@ -131,14 +131,14 @@ typedef struct SpStage8 {
|
||||
} SpStage8;
|
||||
|
||||
// Stage layouts?
|
||||
typedef struct SpStageC {
|
||||
typedef struct {
|
||||
s16 unk0;
|
||||
s16 unk2;
|
||||
s32 unk4;
|
||||
u16 unk8;
|
||||
} SpStageC; /* 0x0C */
|
||||
|
||||
typedef struct SpStage40 {
|
||||
typedef struct {
|
||||
SpriteTransform tf;
|
||||
Sprite s;
|
||||
void *mem;
|
||||
@@ -207,7 +207,7 @@ void sub_802D3E4(void);
|
||||
void sub_802D450(void);
|
||||
void sub_802D4C4(void);
|
||||
void Task_802D508(void);
|
||||
void TaskDestructor_802D578(struct Task *t);
|
||||
void TaskDestructor_802D578(Task *t);
|
||||
void sub_802D560(void);
|
||||
u8 sub_802D58C(s16 param0);
|
||||
void SpStage_PlayRingSoundeffect(void); // 0x0802D5EC
|
||||
@@ -225,7 +225,7 @@ extern void sub_8068D0C();
|
||||
|
||||
extern void SetPlayerControls(bool32 flipFaceButtons);
|
||||
|
||||
typedef struct TfSprite {
|
||||
typedef struct {
|
||||
SpriteTransform tf;
|
||||
Sprite s;
|
||||
} TfSprite;
|
||||
@@ -343,7 +343,7 @@ const Background gUnknown_084870F4 = {
|
||||
.prevScrollY = 0x7FFF,
|
||||
};
|
||||
|
||||
typedef struct HitboxS16 {
|
||||
typedef struct {
|
||||
s16 left;
|
||||
s16 top;
|
||||
s16 right;
|
||||
@@ -2014,7 +2014,7 @@ void sub_802C0CC(void)
|
||||
x = (strc5690->unkC - strc74->unk4C);
|
||||
y = (strc5690->unkE - strc74->unk4E);
|
||||
|
||||
theta = sa2__sub_8004418(y, x);
|
||||
theta = SA2_LABEL(sub_8004418)(y, x);
|
||||
strc74->unk52 += 0x15;
|
||||
v0 = (strc74->unk52 * COS(theta));
|
||||
v1 = (SIN(theta));
|
||||
@@ -2564,7 +2564,7 @@ void sub_802D190(void)
|
||||
|
||||
void sub_802D1D8(void)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_802B3E4, sizeof(SpStage8), 0x1400, 0, NULL);
|
||||
Task *t = TaskCreate(Task_802B3E4, sizeof(SpStage8), 0x1400, 0, NULL);
|
||||
SpStage8 *strc8 = TASK_DATA(t);
|
||||
strc8->unk2 = 0;
|
||||
strc8->unk4 = 0;
|
||||
@@ -2763,7 +2763,7 @@ void sub_802D560(void)
|
||||
}
|
||||
}
|
||||
|
||||
void TaskDestructor_802D578(struct Task *t)
|
||||
void TaskDestructor_802D578(Task *t)
|
||||
{
|
||||
SpStage40 *strc40 = TASK_DATA(t);
|
||||
EwramFree(strc40->mem);
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
void StageBgUpdate_Zone1Acts12(s32 x, s32 UNUSED y)
|
||||
{
|
||||
struct Camera *cam = &gCamera;
|
||||
Camera *cam = &gCamera;
|
||||
Background *bg;
|
||||
u16 *offsets;
|
||||
s32 i;
|
||||
|
||||
@@ -30,13 +30,13 @@ typedef struct {
|
||||
|
||||
extern const TileInfoFirework gTileInfoZone3Fireworks[2];
|
||||
|
||||
void TaskDestructor_MultiplayerSpriteTask(struct Task *);
|
||||
void TaskDestructor_MultiplayerSpriteTask(Task *);
|
||||
|
||||
void Task_UpdateFireworkAnimation(void)
|
||||
{
|
||||
CasinoParadiseFirework *firework = TASK_DATA(gCurTask);
|
||||
Sprite *s = &firework->s;
|
||||
struct Camera *cam = &gCamera;
|
||||
Camera *cam = &gCamera;
|
||||
|
||||
if (s->frameFlags & SPRITE_FLAG_MASK_ANIM_OVER) {
|
||||
TaskDestroy(gCurTask);
|
||||
@@ -66,7 +66,7 @@ void Task_UpdateFireworkAnimation(void)
|
||||
|
||||
void StageBgUpdate_Zone3Acts12(s32 x, s32 y)
|
||||
{
|
||||
struct Camera *cam = &gCamera;
|
||||
Camera *cam = &gCamera;
|
||||
const Collision *collision;
|
||||
s32 xSub, ySub;
|
||||
s32 scanline;
|
||||
@@ -206,7 +206,7 @@ void StageBgUpdate_Zone3Acts12(s32 x, s32 y)
|
||||
|
||||
if (((gStageTime % 4u) == 0) && ((PseudoRandom32() & 0x700) == 0)) {
|
||||
// Spawn Firework, at random location in the sky, randomly big or small.
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
CasinoParadiseFirework *firework;
|
||||
Sprite *s;
|
||||
s32 randX = (((u32)PseudoRandom32() & 0xFF00) >> 8) - 8; // 0 - +256 ---> -8 - +248
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
void StageBgUpdate_Zone4Acts12(s32 x, s32 y)
|
||||
{
|
||||
struct Camera *cam = &gCamera;
|
||||
Camera *cam = &gCamera;
|
||||
Background *bg;
|
||||
u16 *offsets;
|
||||
const Collision *coll;
|
||||
|
||||
@@ -222,7 +222,7 @@ void StageBgUpdate_Zone6Act1(s32 x, s32 y)
|
||||
|
||||
void StageBgUpdate_Zone6Act2(s32 x, s32 y)
|
||||
{
|
||||
struct Camera *cam = &gCamera;
|
||||
Camera *cam = &gCamera;
|
||||
const Collision *coll;
|
||||
#ifndef NON_MATCHING
|
||||
register s32 xSub asm("r9");
|
||||
|
||||
@@ -11,7 +11,7 @@ extern void VBlankCallback_803F920(void);
|
||||
|
||||
void StageBgUpdate_Zone7Act2(s32 x, s32 y)
|
||||
{
|
||||
struct Camera *cam = &gCamera;
|
||||
Camera *cam = &gCamera;
|
||||
Background *bg = &gStageBackgroundsRam.unkC0;
|
||||
const Collision *collision;
|
||||
u32 *offsets;
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#include "constants/sa1/zones.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ struct Task *t;
|
||||
/* 0x00 */ Task *t;
|
||||
/* 0x04 */ CamCoord worldY;
|
||||
/* 0x04 */ u16 qUnk6;
|
||||
/* 0x04 */ u16 qUnk8;
|
||||
@@ -34,7 +34,7 @@ void Task_80298C0(void);
|
||||
|
||||
void CreateEggRocketStageSeparation(CamCoord worldY)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_8028CE4, sizeof(EggRocketScreenShake), 0x4000, 0, NULL);
|
||||
Task *t = TaskCreate(Task_8028CE4, sizeof(EggRocketScreenShake), 0x4000, 0, NULL);
|
||||
EggRocketScreenShake *shake = TASK_DATA(t);
|
||||
|
||||
shake->unkA = 0x100;
|
||||
@@ -59,7 +59,7 @@ NONMATCH("asm/non_matching/game/sa1/egg_rocket_trans__Task_8028CE4.inc", void Ta
|
||||
if (++gCamera.shiftY >= shake->worldY - gCamera.y + DISPLAY_CENTER_Y) {
|
||||
// _08028D1C
|
||||
void *tiles;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
NutsAndBolts *nuts;
|
||||
CamCoord prevCamX = gCamera.x, prevCamY = gCamera.y - 32;
|
||||
|
||||
@@ -206,7 +206,7 @@ NONMATCH("asm/non_matching/game/sa1/egg_rocket_trans__Task_8029194.inc", void Ta
|
||||
|
||||
if ((shake->unkC++ & 0xF) == 0) {
|
||||
void *tiles;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
NutsAndBolts *nuts;
|
||||
CamCoord prevCamX = gCamera.x, prevCamY = gCamera.y - 32;
|
||||
|
||||
@@ -293,7 +293,7 @@ NONMATCH("asm/non_matching/game/sa1/egg_rocket_trans__Task_80294A8.inc", void Ta
|
||||
|
||||
if ((shake->unkC++ & 0xF) == 0) {
|
||||
void *tiles;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
NutsAndBolts *nuts;
|
||||
prevCamX = gCamera.x;
|
||||
prevCamY = gCamera.y - 32;
|
||||
@@ -412,7 +412,7 @@ void Task_80297E8(void)
|
||||
|
||||
void CreateEggRocketLaunchScreenShakeEffect()
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_80298C0, sizeof(EggRocketScreenShake), 0x4000, 0, NULL);
|
||||
Task *t = TaskCreate(Task_80298C0, sizeof(EggRocketScreenShake), 0x4000, 0, NULL);
|
||||
EggRocketScreenShake *shake = TASK_DATA(t);
|
||||
|
||||
shake->unkC = TIME(0, 1);
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
#include "constants/sa1/anim_sizes.h"
|
||||
#include "constants/sa1/songs.h"
|
||||
|
||||
typedef struct EHTArm {
|
||||
typedef struct {
|
||||
/* 0x00 */ Sprite s;
|
||||
/* 0x30 */ SpriteTransform transform;
|
||||
/* 0x3C */ s16 unk3C;
|
||||
@@ -29,7 +29,7 @@ typedef struct EHTArm {
|
||||
/* 0x50 */ u8 unk50;
|
||||
} EHTArm; /* 0x54 */
|
||||
|
||||
typedef struct EHTHammer {
|
||||
typedef struct {
|
||||
/* 0x00 */ Sprite s;
|
||||
/* 0x30 */ SpriteTransform transform;
|
||||
/* 0x3C */ s16 unk3C;
|
||||
@@ -43,13 +43,13 @@ typedef struct EHTHammer {
|
||||
/* 0x50 */ u8 unk50;
|
||||
} EHTHammer; /* 0x54 */
|
||||
|
||||
typedef struct EggHammerTank {
|
||||
typedef struct {
|
||||
/* 0x00 */ SpriteBase base;
|
||||
/* 0x0C */ Sprite s;
|
||||
/* 0x3C */ Hitbox reserved;
|
||||
/* 0x44 */ Sprite s2;
|
||||
/* 0x74 */ struct Task *taskHammer;
|
||||
/* 0x78 */ struct Task *tasksArm[5];
|
||||
/* 0x74 */ Task *taskHammer;
|
||||
/* 0x78 */ Task *tasksArm[5];
|
||||
/* 0x8C */ s32 qUnk8C;
|
||||
/* 0x90 */ s32 qUnk90;
|
||||
/* 0x94 */ s16 unk94;
|
||||
@@ -64,17 +64,17 @@ typedef struct EggHammerTank {
|
||||
|
||||
void Task_EHTArm(void);
|
||||
void Task_80272D0(void);
|
||||
void TaskDestructor_EHTArm(struct Task *t);
|
||||
void TaskDestructor_EHTArm(Task *t);
|
||||
|
||||
struct Task *CreatePreBossCameraPan(s16, s16);
|
||||
struct Task *sub_8017540(s32, s32);
|
||||
Task *CreatePreBossCameraPan(s16, s16);
|
||||
Task *sub_8017540(s32, s32);
|
||||
void Task_802611C();
|
||||
void Task_EHTArm();
|
||||
void Task_EHTHammer();
|
||||
void Task_EggHammerTankMain();
|
||||
void Task_EggHammerTank_Intro();
|
||||
void TaskDestructor_EggHammerTank(struct Task *);
|
||||
void TaskDestructor_EHTHammer(struct Task *);
|
||||
void TaskDestructor_EggHammerTank(Task *);
|
||||
void TaskDestructor_EHTHammer(Task *);
|
||||
void Task_8025CC4();
|
||||
void Task_8025D80();
|
||||
void Task_8025E6C();
|
||||
@@ -87,7 +87,7 @@ void Task_8027714();
|
||||
|
||||
void CreateEntity_EggHammerTank_Intro(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
EggHammerTank *tank;
|
||||
Sprite *s;
|
||||
Sprite *s2;
|
||||
@@ -327,7 +327,7 @@ void Task_8025E6C(void)
|
||||
|
||||
void CreateEntity_EggHammerTank(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
EggHammerTank *tank;
|
||||
Sprite *s;
|
||||
s16 tempY;
|
||||
@@ -542,7 +542,7 @@ NONMATCH("asm/non_matching/game/sa1/stage/enemies/boss_1__Task_80264C8.inc", voi
|
||||
CamCoord worldX, worldY; // sp14, sp18
|
||||
s16 theta;
|
||||
EHit collPlayer, collPartner;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Strc_sub_80168F0 *strc;
|
||||
u8 i;
|
||||
|
||||
@@ -829,7 +829,7 @@ void Task_8026C44(void)
|
||||
tank->unk98++;
|
||||
|
||||
if (!(tank->unk98 & 7)) {
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
NutsAndBolts *bolts;
|
||||
Sprite *sprBolts;
|
||||
s32 rndIndex = PseudoRandom32() % ARRAY_COUNT(gUnknown_080BB41C);
|
||||
@@ -903,7 +903,7 @@ void Task_8026ED0(void)
|
||||
}
|
||||
|
||||
if (!(tank->unk98 & 7)) {
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
NutsAndBolts *bolts;
|
||||
Sprite *sprBolts;
|
||||
s32 rndIndex = PseudoRandom32() % ARRAY_COUNT(gUnknown_080BB41C);
|
||||
@@ -947,12 +947,12 @@ void Task_8026ED0(void)
|
||||
DisplaySprite(s2);
|
||||
}
|
||||
|
||||
struct Task *CreateEHTArm(u8 arg0)
|
||||
Task *CreateEHTArm(u8 arg0)
|
||||
{
|
||||
s32 sp4;
|
||||
SpriteTransform *tf;
|
||||
Sprite *s;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
EHTArm *ehtArm;
|
||||
|
||||
t = TaskCreate(Task_EHTArm, sizeof(EHTArm), 0x2000 | arg0, 0U, TaskDestructor_EHTArm);
|
||||
@@ -1041,7 +1041,7 @@ void Task_80272D0(void)
|
||||
arm->qUnk48 += arm->qUnk4E;
|
||||
|
||||
if (arm->qUnk4E > 0) {
|
||||
s32 res = sa2__sub_801F100(arm->unk3E + I(arm->qUnk48), arm->unk3C + I(arm->qUnk44), 1, 8, sa2__sub_801EC3C);
|
||||
s32 res = SA2_LABEL(sub_801F100)(arm->unk3E + I(arm->qUnk48), arm->unk3C + I(arm->qUnk44), 1, 8, SA2_LABEL(sub_801EC3C));
|
||||
if (res < 0) {
|
||||
arm->qUnk48 = arm->qUnk48 + Q(res);
|
||||
arm->qUnk4E = (arm->qUnk4E >> 2) - arm->qUnk4E;
|
||||
@@ -1062,12 +1062,12 @@ void Task_80272D0(void)
|
||||
DisplaySprite(s);
|
||||
}
|
||||
|
||||
struct Task *CreateEHTHammer(void)
|
||||
Task *CreateEHTHammer(void)
|
||||
{
|
||||
s32 sp4;
|
||||
SpriteTransform *tf;
|
||||
Sprite *s;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
EHTHammer *hammer;
|
||||
|
||||
t = TaskCreate(Task_EHTHammer, sizeof(EHTHammer), 0x2005, 0U, TaskDestructor_EHTHammer);
|
||||
@@ -1256,7 +1256,8 @@ void Task_8027714(void)
|
||||
hammer->qUnk48 += hammer->qUnk4E;
|
||||
|
||||
if (hammer->qUnk4E > 0) {
|
||||
s32 res = sa2__sub_801F100(hammer->unk3E + I(hammer->qUnk48), hammer->unk3C + I(hammer->qUnk44), 1, 8, sa2__sub_801EC3C);
|
||||
s32 res
|
||||
= SA2_LABEL(sub_801F100)(hammer->unk3E + I(hammer->qUnk48), hammer->unk3C + I(hammer->qUnk44), 1, 8, SA2_LABEL(sub_801EC3C));
|
||||
if (res < 0) {
|
||||
hammer->qUnk48 = hammer->qUnk48 + Q(res);
|
||||
hammer->qUnk4E = (hammer->qUnk4E >> 2) - hammer->qUnk4E;
|
||||
@@ -1278,7 +1279,7 @@ void Task_8027714(void)
|
||||
DisplaySprite(s);
|
||||
}
|
||||
|
||||
void sub_802784C(struct Task *t)
|
||||
void sub_802784C(Task *t)
|
||||
{
|
||||
EggHammerTank *tank = TASK_DATA(t);
|
||||
|
||||
@@ -1305,7 +1306,7 @@ void Task_EggHammerTankMain(void)
|
||||
}
|
||||
}
|
||||
|
||||
void TaskDestructor_EggHammerTank(struct Task *t)
|
||||
void TaskDestructor_EggHammerTank(Task *t)
|
||||
{
|
||||
EggHammerTank *tank = TASK_DATA(t);
|
||||
|
||||
@@ -1336,13 +1337,13 @@ void Task_EHTArm(void)
|
||||
DisplaySprite(s);
|
||||
}
|
||||
|
||||
void TaskDestructor_EHTArm(struct Task *t)
|
||||
void TaskDestructor_EHTArm(Task *t)
|
||||
{
|
||||
EHTArm *arm = TASK_DATA(t);
|
||||
VramFree(arm->s.graphics.dest);
|
||||
}
|
||||
|
||||
void TaskDestructor_EHTHammer(struct Task *t)
|
||||
void TaskDestructor_EHTHammer(Task *t)
|
||||
{
|
||||
EHTHammer *ehtHammer = TASK_DATA(t);
|
||||
VramFree(ehtHammer->s.graphics.dest);
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#include "constants/sa1/char_states.h"
|
||||
#include "constants/sa1/songs.h"
|
||||
|
||||
typedef struct EggPress {
|
||||
typedef struct {
|
||||
/* 0x00 */ SpriteBase base;
|
||||
/* 0x0C */ Sprite s;
|
||||
/* 0x3C */ Hitbox reserved[2];
|
||||
@@ -56,7 +56,7 @@ void Task_802E714(void);
|
||||
void Task_802EA8C(void);
|
||||
void sub_802E868(void);
|
||||
void sub_802ECFC(void);
|
||||
void TaskDestructor_EggPress(struct Task *t);
|
||||
void TaskDestructor_EggPress(Task *t);
|
||||
|
||||
static inline void sub_802EF24_inline(void)
|
||||
{
|
||||
@@ -127,7 +127,7 @@ void sub_802D748(s16 arg0, s16 arg1)
|
||||
// TODO: Work out matching without TASK_GET_MEMBER!
|
||||
void sub_802D870(void)
|
||||
{
|
||||
struct Task *t = gCurTask;
|
||||
Task *t = gCurTask;
|
||||
Sprite *s = &TASK_GET_MEMBER(EggPress, t, Sprite, s);
|
||||
Sprite *s2 = &TASK_GET_MEMBER(EggPress, t, Sprite, s2);
|
||||
s8 *unkAF = &TASK_GET_MEMBER(EggPress, t, s8, unkAF);
|
||||
@@ -147,7 +147,7 @@ void sub_802D870(void)
|
||||
|
||||
void sub_802D908(void)
|
||||
{
|
||||
struct Task *t = gCurTask;
|
||||
Task *t = gCurTask;
|
||||
Sprite *s = &TASK_GET_MEMBER(EggPress, t, Sprite, s);
|
||||
Sprite *s2 = &TASK_GET_MEMBER(EggPress, t, Sprite, s2);
|
||||
s16 var_r0;
|
||||
@@ -168,7 +168,7 @@ void CreateEntity_EggPress(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
Sprite *s;
|
||||
Sprite *s2;
|
||||
u16 temp_r4_2;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
EggPress *boss;
|
||||
|
||||
if (IS_MULTI_PLAYER) {
|
||||
@@ -393,7 +393,7 @@ void Task_802DEFC(void)
|
||||
MapEntity *me;
|
||||
CamCoord worldX, worldY;
|
||||
|
||||
struct Task *t = gCurTask;
|
||||
Task *t = gCurTask;
|
||||
boss = TASK_DATA(gCurTask);
|
||||
sprOuter = &boss->s;
|
||||
spr2Outer = &boss->s2;
|
||||
@@ -723,7 +723,7 @@ void Task_802EA8C(void)
|
||||
worldX = TO_WORLD_POS(boss->base.meX, boss->base.regionX) + I(boss->qUnk94);
|
||||
worldY = TO_WORLD_POS(me->y, boss->base.regionY) + I(boss->qUnk98);
|
||||
|
||||
res = sa2__sub_801F100(worldY + 0x10, worldX, 1, 8, &sa2__sub_801EC3C);
|
||||
res = SA2_LABEL(sub_801F100)(worldY + 0x10, worldX, 1, 8, &SA2_LABEL(sub_801EC3C));
|
||||
if (res < 0) {
|
||||
boss->qUnk98 += Q(res);
|
||||
boss->qUnkB2 = (boss->qUnkB2 >> 2) - boss->qUnkB2;
|
||||
@@ -744,7 +744,7 @@ void Task_802EA8C(void)
|
||||
|
||||
++boss->unkAC;
|
||||
if ((boss->unkAC & 7) == 0) {
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
NutsAndBolts *bolts;
|
||||
Sprite *sprBolts;
|
||||
s32 rndIndex = PseudoRandom32() % ARRAY_COUNT(gUnknown_080BB41C);
|
||||
@@ -798,7 +798,7 @@ void sub_802ECFC(void)
|
||||
}
|
||||
|
||||
if ((boss->unkAC & 7) == 0) {
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
NutsAndBolts *bolts;
|
||||
Sprite *sprBolts;
|
||||
s32 rndIndex = PseudoRandom32() % ARRAY_COUNT(gUnknown_080BB41C);
|
||||
@@ -832,7 +832,7 @@ void sub_802ECFC(void)
|
||||
DisplaySprite(s2);
|
||||
}
|
||||
|
||||
void TaskDestructor_EggPress(struct Task *t)
|
||||
void TaskDestructor_EggPress(Task *t)
|
||||
{
|
||||
EggPress *boss = TASK_DATA(t);
|
||||
VramFree(boss->s.graphics.dest);
|
||||
|
||||
@@ -17,11 +17,11 @@
|
||||
#include "constants/sa1/char_states.h"
|
||||
#include "constants/sa1/songs.h"
|
||||
|
||||
typedef struct EggBall {
|
||||
typedef struct {
|
||||
/* 0x00 */ SpriteBase base;
|
||||
/* 0x0C */ Sprite s;
|
||||
/* 0x3C */ Sprite s2;
|
||||
/* 0x6C */ struct Task *strc6C; // -> EggBall_44
|
||||
/* 0x6C */ Task *strc6C; // -> EggBall_44
|
||||
/* 0x70 */ s32 qUnk70;
|
||||
/* 0x74 */ s32 qUnk74;
|
||||
/* 0x78 */ s32 qUnk78;
|
||||
@@ -40,7 +40,7 @@ typedef struct EggBall {
|
||||
/* 0x98 */ void *vram98;
|
||||
} EggBall;
|
||||
|
||||
typedef struct EggBall_44 {
|
||||
typedef struct {
|
||||
/* 0x00 */ Sprite s;
|
||||
/* 0x30 */ s32 qUnk30;
|
||||
/* 0x34 */ s32 qUnk34;
|
||||
@@ -50,7 +50,7 @@ typedef struct EggBall_44 {
|
||||
/* 0x42 */ u8 unk42;
|
||||
} EggBall_44;
|
||||
|
||||
typedef struct EggBall_Pipe {
|
||||
typedef struct {
|
||||
/* 0x00 */ SpriteBase base;
|
||||
/* 0x0C */ Sprite s;
|
||||
s16 unk3C;
|
||||
@@ -78,9 +78,9 @@ void Task_803020C(void);
|
||||
void Task_8030364(void);
|
||||
void Task_8030414(void);
|
||||
void Task_PipeExtend(void);
|
||||
void TaskDestructor_EggBall(struct Task *t);
|
||||
void TaskDestructor_EggBall_44(struct Task *t);
|
||||
void TaskDestructor_8030754(struct Task *t);
|
||||
void TaskDestructor_EggBall(Task *t);
|
||||
void TaskDestructor_EggBall_44(Task *t);
|
||||
void TaskDestructor_8030754(Task *t);
|
||||
|
||||
extern s16 gUnknown_084ACDC0[9];
|
||||
extern u16 gUnknown_084ACDD2[8][2][2];
|
||||
@@ -209,7 +209,7 @@ void Task_802F0D0(void)
|
||||
|
||||
void CreateEntity_EggBall(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
EggBall *boss;
|
||||
SpriteBase *base;
|
||||
Sprite *s0;
|
||||
@@ -374,7 +374,7 @@ void Task_EggBallMain(void)
|
||||
|
||||
void Task_802F56C(void)
|
||||
{
|
||||
struct Task *t = gCurTask;
|
||||
Task *t = gCurTask;
|
||||
EggBall *boss = TASK_DATA(t);
|
||||
Sprite *s = &boss->s;
|
||||
Sprite *s2 = &boss->s2;
|
||||
@@ -412,7 +412,7 @@ void Task_802F644()
|
||||
MapEntity *me;
|
||||
Sprite *s;
|
||||
Sprite *s2;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
CamCoord worldX, worldY;
|
||||
|
||||
EggBall *boss = TASK_DATA(gCurTask);
|
||||
@@ -621,7 +621,7 @@ void Task_802FC14(void)
|
||||
worldX = TO_WORLD_POS(boss->base.meX, boss->base.regionX) + I(boss->qUnk70);
|
||||
worldY = TO_WORLD_POS(me->y, boss->base.regionY) + I(boss->qUnk74);
|
||||
|
||||
res = sa2__sub_801F100(worldY + 0x18, worldX, 1, 8, &sa2__sub_801EC3C);
|
||||
res = SA2_LABEL(sub_801F100)(worldY + 0x18, worldX, 1, 8, &SA2_LABEL(sub_801EC3C));
|
||||
if (res < 0) {
|
||||
boss->qUnk74 += Q(res);
|
||||
boss->qUnk90 = (boss->qUnk90 >> 2) - boss->qUnk90;
|
||||
@@ -642,7 +642,7 @@ void Task_802FC14(void)
|
||||
|
||||
boss->unk88++;
|
||||
if ((boss->unk88 & 0x7) == 0) {
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
NutsAndBolts *bolts;
|
||||
Sprite *sprBolts;
|
||||
s32 rndIndex = PseudoRandom32() % ARRAY_COUNT(gUnknown_080BB41C);
|
||||
@@ -713,7 +713,7 @@ void Task_802FE88(void)
|
||||
}
|
||||
|
||||
if ((boss->unk88 & 7) == 0) {
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
NutsAndBolts *bolts;
|
||||
Sprite *sprBolts;
|
||||
s32 rndIndex = PseudoRandom32() % ARRAY_COUNT(gUnknown_080BB41C);
|
||||
@@ -862,7 +862,7 @@ void Task_8030414(void)
|
||||
s->y = worldY - gCamera.y;
|
||||
|
||||
if (boss_44->qUnk3C > 0) {
|
||||
s32 res = sa2__sub_801F100(worldY + 0x18, worldX, 1, 8, &sa2__sub_801EC3C);
|
||||
s32 res = SA2_LABEL(sub_801F100)(worldY + 0x18, worldX, 1, 8, &SA2_LABEL(sub_801EC3C));
|
||||
|
||||
if (res < 0) {
|
||||
boss_44->qUnk34 += Q(res);
|
||||
@@ -942,7 +942,7 @@ void Task_PipeExtend()
|
||||
DisplaySprite(s);
|
||||
}
|
||||
|
||||
void TaskDestructor_EggBall(struct Task *t)
|
||||
void TaskDestructor_EggBall(Task *t)
|
||||
{
|
||||
EggBall *boss = TASK_DATA(t);
|
||||
|
||||
@@ -950,14 +950,14 @@ void TaskDestructor_EggBall(struct Task *t)
|
||||
VramFree(boss->s2.graphics.dest);
|
||||
}
|
||||
|
||||
void TaskDestructor_EggBall_44(struct Task *t)
|
||||
void TaskDestructor_EggBall_44(Task *t)
|
||||
{
|
||||
EggBall_44 *boss_44 = TASK_DATA(t);
|
||||
|
||||
VramFree(boss_44->s.graphics.dest);
|
||||
}
|
||||
|
||||
void TaskDestructor_8030754(struct Task *t)
|
||||
void TaskDestructor_8030754(Task *t)
|
||||
{
|
||||
EggBall_Pipe *pipe = TASK_DATA(t);
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#include "constants/sa1/songs.h"
|
||||
#include "game/shared/stage/underwater_effects.h"
|
||||
|
||||
typedef struct EggSpider {
|
||||
typedef struct {
|
||||
/* 0x00 */ SpriteBase base;
|
||||
/* 0x0C */ Sprite s;
|
||||
/* 0x3C */ Sprite s2;
|
||||
@@ -38,7 +38,7 @@ typedef struct EggSpider {
|
||||
/* 0x8A */ u8 unk8C;
|
||||
} EggSpider; /* 0x90 */
|
||||
|
||||
typedef struct IciclePlatform {
|
||||
typedef struct {
|
||||
/* 0x0C */ Sprite s;
|
||||
/* 0x30 */ u8 filler30[0x14];
|
||||
/* 0x44 */ CamCoord worldX;
|
||||
@@ -60,7 +60,7 @@ void Task_8031480(void);
|
||||
void sub_803170C(void);
|
||||
void CreateIciclePlatform(EggSpider *boss);
|
||||
void sub_8031AB4(void);
|
||||
void TaskDestructor_8031CB4(struct Task *t);
|
||||
void TaskDestructor_8031CB4(Task *t);
|
||||
|
||||
extern s16 gUnknown_084ACEB4[];
|
||||
extern s16 gUnknown_084ACED8[];
|
||||
@@ -177,7 +177,7 @@ void CreateEntity_EggSpider(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
u8 *temp_r0;
|
||||
u8 *temp_r0_2;
|
||||
u8 *temp_r1_3;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
|
||||
if (IS_MULTI_PLAYER) {
|
||||
SET_MAP_ENTITY_INITIALIZED(me);
|
||||
@@ -471,7 +471,7 @@ void sub_80311D4(void)
|
||||
Sprite *s = &boss->s;
|
||||
Sprite *s2 = &boss->s2;
|
||||
MapEntity *me = boss->base.me;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
|
||||
worldX = TO_WORLD_POS(boss->base.meX, boss->base.regionX) + I(boss->qUnk6C);
|
||||
worldY = TO_WORLD_POS(me->y, boss->base.regionY) + I(boss->qUnk70);
|
||||
@@ -568,7 +568,7 @@ void Task_8031480(void)
|
||||
worldX = TO_WORLD_POS(boss->base.meX, boss->base.regionX) + I(boss->qUnk6C);
|
||||
worldY = TO_WORLD_POS(me->y, boss->base.regionY) + I(boss->qUnk70);
|
||||
|
||||
res = sa2__sub_801F100(worldY + 0x38, worldX, 1, 8, &sa2__sub_801EC3C);
|
||||
res = SA2_LABEL(sub_801F100)(worldY + 0x38, worldX, 1, 8, &SA2_LABEL(sub_801EC3C));
|
||||
|
||||
if (boss->unk84 > 120)
|
||||
if (res < 0) {
|
||||
@@ -587,7 +587,7 @@ void Task_8031480(void)
|
||||
|
||||
boss->unk84++;
|
||||
if ((boss->unk84 & 0x7) == 0) {
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
NutsAndBolts *bolts;
|
||||
Sprite *sprBolts;
|
||||
s32 rndIndex = PseudoRandom32() % ARRAY_COUNT(gUnknown_080BB41C);
|
||||
@@ -649,7 +649,7 @@ void sub_803170C(void)
|
||||
}
|
||||
|
||||
if ((boss->unk84 & 7) == 0) {
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
NutsAndBolts *bolts;
|
||||
Sprite *sprBolts;
|
||||
s32 rndIndex = PseudoRandom32() % ARRAY_COUNT(gUnknown_080BB41C);
|
||||
@@ -693,7 +693,7 @@ NONMATCH("asm/non_matching/game/sa1/stage/enemies/boss_4__CreateIciclePlatform.i
|
||||
s32 rnd1;
|
||||
s32 rnd;
|
||||
IciclePlatform *icicle;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
MapEntity *me;
|
||||
Sprite *s;
|
||||
s32 v0;
|
||||
@@ -835,7 +835,7 @@ void sub_8031AB4(void)
|
||||
DisplaySprite(s);
|
||||
}
|
||||
|
||||
void TaskDestructor_8031CB4(struct Task *t)
|
||||
void TaskDestructor_8031CB4(Task *t)
|
||||
{
|
||||
EggSpider *boss = TASK_DATA(t);
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ typedef enum {
|
||||
/* 25 */ MKSTATE_COUNT
|
||||
} MechaKnucklesStates;
|
||||
|
||||
typedef struct MechaKnuckles {
|
||||
typedef struct {
|
||||
/* 0x00 */ SpriteBase base;
|
||||
/* 0x0C */ Sprite s;
|
||||
/* 0x3C */ Hitbox reserved;
|
||||
@@ -86,7 +86,7 @@ typedef struct MechaKnuckles {
|
||||
/* 0x9B */ s8 state2;
|
||||
} MechaKnuckles; /* 0x9C */
|
||||
|
||||
typedef struct MechaKnucklesRocket {
|
||||
typedef struct {
|
||||
/* 0x00 */ s32 unk0;
|
||||
/* 0x00 */ s32 unk4;
|
||||
/* 0x00 */ s16 unk8;
|
||||
@@ -99,7 +99,7 @@ typedef struct MechaKnucklesRocket {
|
||||
/* 0x44 */ SpriteTransform transform;
|
||||
} MechaKnucklesRocket; /* 0x50 */
|
||||
|
||||
typedef struct MechaKnucklesParts {
|
||||
typedef struct {
|
||||
/* 0x00 */ s32 unk0;
|
||||
/* 0x04 */ s32 unk4;
|
||||
/* 0x08 */ s16 unk8;
|
||||
@@ -116,24 +116,24 @@ typedef struct MechaKnucklesParts {
|
||||
typedef bool32 (*MechaKnuxPlayerFn)(MechaKnuckles *boss, Player *p);
|
||||
typedef void (*MechaKnuxFn)(MechaKnuckles *boss, Player *p);
|
||||
|
||||
typedef struct Unk {
|
||||
typedef struct {
|
||||
s16 anim;
|
||||
u8 variant;
|
||||
u8 unk3;
|
||||
} Unk;
|
||||
|
||||
void Task_MechaKnucklesInit(void);
|
||||
void TaskDestructor_MechaKnuckles(struct Task *t);
|
||||
void TaskDestructor_MechaKnuckles(Task *t);
|
||||
void sub_804E8D4(MechaKnuckles *boss, s32 param1);
|
||||
void sub_804EC60(MechaKnuckles *boss, MapEntity *me);
|
||||
|
||||
void CreateMechaKnucklesRocket(MechaKnuckles *boss);
|
||||
void Task_MechaKnucklesRocketInit(void);
|
||||
void TaskDestructor_MechaKnuckles_Rocket(struct Task *t);
|
||||
void TaskDestructor_MechaKnuckles_Rocket(Task *t);
|
||||
|
||||
struct Task *CreateMechaKnucklesParts(MechaKnuckles *boss, s32 variant);
|
||||
Task *CreateMechaKnucklesParts(MechaKnuckles *boss, s32 variant);
|
||||
void Task_MechaKnucklesPartsInit(void);
|
||||
void TaskDestructor_MechaKnuckles_Parts(struct Task *t);
|
||||
void TaskDestructor_MechaKnuckles_Parts(Task *t);
|
||||
|
||||
void sub_804EB04(MechaKnuckles *boss);
|
||||
void sub_804EB90(MechaKnuckles *boss);
|
||||
@@ -195,7 +195,7 @@ bool32 sub_804FCEC(MechaKnuckles *boss, Player *p);
|
||||
bool32 sub_804FD54(MechaKnuckles *boss, Player *p);
|
||||
MechaKnucklesStates sub_804ED80(MechaKnuckles *boss, Player *p);
|
||||
|
||||
typedef struct ProcDataBoss5 {
|
||||
typedef struct {
|
||||
MechaKnuxPlayerFn knuxPlayerFn;
|
||||
MechaKnuxFn changeState;
|
||||
s16 unk8;
|
||||
@@ -504,7 +504,7 @@ const TileInfoFirework sMechaKnucklesParts[MECHA_KNUX_PARTS_VARIANTS] = {
|
||||
// TODO: Fake-match
|
||||
void CreateEntity_MechaKnuckles(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
MechaKnuckles *boss;
|
||||
|
||||
if (IS_MULTI_PLAYER) {
|
||||
@@ -810,7 +810,7 @@ void sub_804EB90(MechaKnuckles *boss)
|
||||
|
||||
boss->flags88 &= ~1;
|
||||
|
||||
res = sa2__sub_801E4E4(temp_r6 + boss->unk99, temp_r7, 1, 8, NULL, sa2__sub_801EE64);
|
||||
res = SA2_LABEL(sub_801E4E4)(temp_r6 + boss->unk99, temp_r7, 1, 8, NULL, SA2_LABEL(sub_801EE64));
|
||||
if (boss->flags88 & 0x10) {
|
||||
if (res < 0) {
|
||||
boss->qUnk78 += res << 8;
|
||||
@@ -824,7 +824,7 @@ void sub_804EB90(MechaKnuckles *boss)
|
||||
boss->flags88 &= ~2;
|
||||
|
||||
if (boss->unk7E < 0) {
|
||||
res = sa2__sub_801E4E4(temp_r6 - boss->unk99, temp_r7, 1, -8, NULL, sa2__sub_801EE64);
|
||||
res = SA2_LABEL(sub_801E4E4)(temp_r6 - boss->unk99, temp_r7, 1, -8, NULL, SA2_LABEL(sub_801EE64));
|
||||
|
||||
if (res < 0) {
|
||||
boss->qUnk78 -= Q(res);
|
||||
@@ -950,7 +950,7 @@ bool32 sub_804EE20(MechaKnuckles *boss)
|
||||
s32 result = FALSE;
|
||||
|
||||
if (!(gStageTime & 7)) {
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
NutsAndBolts *bolts;
|
||||
|
||||
temp_r0 = (((u32)PseudoRandom32() & 0x1FFF00) >> 8) - 4096;
|
||||
@@ -1081,7 +1081,7 @@ void CreateMechaKnucklesRocket(MechaKnuckles *boss)
|
||||
s32 isFlippedX;
|
||||
Sprite *s;
|
||||
SpriteTransform *tf;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
MechaKnucklesRocket *rocket;
|
||||
t = TaskCreate(Task_MechaKnucklesRocketInit, sizeof(MechaKnucklesRocket), 0x2001U, 0U, TaskDestructor_MechaKnuckles_Rocket);
|
||||
rocket = TASK_DATA(t);
|
||||
@@ -1243,9 +1243,9 @@ NONMATCH("asm/non_matching/game/sa1/stage/enemies/boss_5__Task_MechaKnucklesRock
|
||||
}
|
||||
END_NONMATCH
|
||||
|
||||
struct Task *CreateMechaKnucklesParts(MechaKnuckles *boss, s32 variant)
|
||||
Task *CreateMechaKnucklesParts(MechaKnuckles *boss, s32 variant)
|
||||
{
|
||||
struct Task *sp4;
|
||||
Task *sp4;
|
||||
TileInfoFirework *temp_r4;
|
||||
s32 temp_r0_2;
|
||||
s32 temp_r0_3;
|
||||
@@ -1253,7 +1253,7 @@ struct Task *CreateMechaKnucklesParts(MechaKnuckles *boss, s32 variant)
|
||||
s32 temp_r2;
|
||||
s32 temp_r2_2;
|
||||
u32 numTiles;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
MechaKnucklesParts *parts;
|
||||
SpriteTransform *tf;
|
||||
Sprite *s;
|
||||
@@ -1771,7 +1771,7 @@ u32 sub_804FD54(MechaKnuckles *boss, Player *p)
|
||||
return result;
|
||||
}
|
||||
|
||||
void TaskDestructor_MechaKnuckles(struct Task *t)
|
||||
void TaskDestructor_MechaKnuckles(Task *t)
|
||||
{
|
||||
MechaKnuckles *boss = TASK_DATA(t);
|
||||
VramFree(boss->s.graphics.dest);
|
||||
@@ -1805,7 +1805,7 @@ void sub_804FDD4(MechaKnuckles *boss)
|
||||
boss->flags88 = var_r3;
|
||||
}
|
||||
|
||||
void TaskDestructor_MechaKnuckles_Rocket(struct Task *t)
|
||||
void TaskDestructor_MechaKnuckles_Rocket(Task *t)
|
||||
{
|
||||
MechaKnucklesRocket *rocket = TASK_DATA(t);
|
||||
Sprite *s = &rocket->s;
|
||||
@@ -1813,7 +1813,7 @@ void TaskDestructor_MechaKnuckles_Rocket(struct Task *t)
|
||||
m4aSongNumStop(SE_200);
|
||||
}
|
||||
|
||||
void TaskDestructor_MechaKnuckles_Parts(struct Task *t)
|
||||
void TaskDestructor_MechaKnuckles_Parts(Task *t)
|
||||
{
|
||||
MechaKnucklesParts *parts = TASK_DATA(t);
|
||||
Sprite *s = &parts->s;
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
#define NUM_SEGMENTS 9
|
||||
|
||||
typedef struct EggSnakeSegment {
|
||||
typedef struct {
|
||||
/* 0x00 */ Sprite s;
|
||||
/* 0x30 */ u16 unk30;
|
||||
/* 0x32 */ u16 unk32;
|
||||
@@ -31,9 +31,9 @@ typedef struct EggSnakeSegment {
|
||||
/* 0x52 */ u8 unk52;
|
||||
} EggSnakeSegment;
|
||||
|
||||
typedef struct EggSnakeSegmentManager {
|
||||
typedef struct {
|
||||
/* 0x00 */ Sprite s;
|
||||
/* 0x30 */ struct Task *tasks[NUM_SEGMENTS];
|
||||
/* 0x30 */ Task *tasks[NUM_SEGMENTS];
|
||||
/* 0x54 */ u8 unk54;
|
||||
/* 0x55 */ u8 unk55;
|
||||
/* 0x56 */ u8 unk56;
|
||||
@@ -45,7 +45,7 @@ typedef struct EggSnakeSegmentManager {
|
||||
s16 unk5E;
|
||||
} EggSnakeSegmentManager; /* 0x60 */
|
||||
|
||||
typedef struct EggSnakeProjectile {
|
||||
typedef struct {
|
||||
/* 0x00 */ Sprite s;
|
||||
/* 0x30 */ Sprite s2;
|
||||
/* 0x60 */ u16 unk60;
|
||||
@@ -58,12 +58,12 @@ typedef struct EggSnakeProjectile {
|
||||
/* 0x72 */ CamCoord originY;
|
||||
} EggSnakeProjectile; /* 0x74 */
|
||||
|
||||
typedef struct EggSnake {
|
||||
typedef struct {
|
||||
/* 0x00 */ SpriteBase base;
|
||||
/* 0x0C */ Sprite s;
|
||||
/* 0x3C */ Hitbox reserved;
|
||||
/* 0x44 */ Sprite s2;
|
||||
/* 0x74 */ struct Task *t; // EggSnakeSegmentManager *
|
||||
/* 0x74 */ Task *t; // EggSnakeSegmentManager *
|
||||
/* 0x78 */ s32 qUnk78;
|
||||
/* 0x7C */ s32 qUnk7C;
|
||||
/* 0x80 */ s32 unk80;
|
||||
@@ -88,7 +88,7 @@ typedef struct EggSnake {
|
||||
} EggSnake; /* 0xAC */
|
||||
|
||||
// static memory at 0x03005860
|
||||
typedef struct PlayerSpeedState {
|
||||
typedef struct {
|
||||
/* 0x00 */ s32 qWorldX;
|
||||
/* 0x04 */ s32 qWorldY;
|
||||
/* 0x08 */ s16 qSpeedAirX;
|
||||
@@ -117,9 +117,9 @@ void Task_8033924(void);
|
||||
void Task_8034098(void); // : EggSnakeSegment
|
||||
void sub_80339BC(EggSnakeSegmentManager *mgr);
|
||||
void Task_8033AA0(void);
|
||||
void TaskDestructor_8034208(struct Task *t);
|
||||
void TaskDestructor_8034224(struct Task *t);
|
||||
void TaskDestructor_8034238(struct Task *t);
|
||||
void TaskDestructor_8034208(Task *t);
|
||||
void TaskDestructor_8034224(Task *t);
|
||||
void TaskDestructor_8034238(Task *t);
|
||||
|
||||
s16 gUnknown_03005870[NUM_SEGMENTS];
|
||||
s16 gUnknown_03005890[NUM_SEGMENTS];
|
||||
@@ -681,7 +681,7 @@ void Task_8032AF8(void)
|
||||
worldX = TO_WORLD_POS(boss->base.meX, boss->base.regionX) + I(boss->qUnk78);
|
||||
worldY = TO_WORLD_POS(me->y, boss->base.regionY) + I(boss->qUnk7C);
|
||||
|
||||
res = sa2__sub_801F100(worldY, worldX, 1, 8, &sa2__sub_801EC3C);
|
||||
res = SA2_LABEL(sub_801F100)(worldY, worldX, 1, 8, &SA2_LABEL(sub_801EC3C));
|
||||
|
||||
if (res < 0) {
|
||||
boss->unk98 = 60;
|
||||
@@ -700,7 +700,7 @@ void Task_8032AF8(void)
|
||||
|
||||
boss->unk98++;
|
||||
if ((boss->unk98 & 0x7) == 0) {
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
NutsAndBolts *bolts;
|
||||
Sprite *sprBolts;
|
||||
s32 rndIndex = PseudoRandom32() % ARRAY_COUNT(gUnknown_080BB41C);
|
||||
@@ -959,7 +959,7 @@ void sub_8032F58(void)
|
||||
void sub_803330C()
|
||||
{
|
||||
EggSnake *boss = TASK_DATA(gCurTask); // NOTE: Unused, but needed for matching!
|
||||
struct Task *t = TaskCreate(Task_8033480, sizeof(EggSnakeProjectile), 0x2200U, 0U, TaskDestructor_8034224);
|
||||
Task *t = TaskCreate(Task_8033480, sizeof(EggSnakeProjectile), 0x2200U, 0U, TaskDestructor_8034224);
|
||||
EggSnakeProjectile *proj = TASK_DATA(t);
|
||||
Sprite *s;
|
||||
Sprite *s2;
|
||||
@@ -1106,7 +1106,7 @@ void CreateProjectile()
|
||||
newProj->unk68 = Q(boss->unk92);
|
||||
temp_r3 = I(gPlayer.qWorldX) - (newProj->originX + I(newProj->unk64));
|
||||
temp_r1 = I(gPlayer.qWorldY) - (newProj->originY + I(newProj->unk68));
|
||||
angle = sa2__sub_8004418(temp_r1 / 2, temp_r3 / 2);
|
||||
angle = SA2_LABEL(sub_8004418)(temp_r1 / 2, temp_r3 / 2);
|
||||
newProj->unk6C = COS_24_8(angle);
|
||||
newProj->unk6E = SIN_24_8(angle);
|
||||
newProj->s.x = 0;
|
||||
@@ -1178,7 +1178,7 @@ void Task_8033730()
|
||||
void sub_8033878()
|
||||
{
|
||||
EggSnake *boss = TASK_DATA(gCurTask);
|
||||
struct Task *t = TaskCreate(Task_8033924, sizeof(EggSnakeSegmentManager), 0x2000U, 0U, TaskDestructor_8034238);
|
||||
Task *t = TaskCreate(Task_8033924, sizeof(EggSnakeSegmentManager), 0x2000U, 0U, TaskDestructor_8034238);
|
||||
EggSnakeSegmentManager *mgr;
|
||||
Sprite *s;
|
||||
Sprite *s2;
|
||||
@@ -1562,20 +1562,20 @@ void Task_8034098(void)
|
||||
}
|
||||
}
|
||||
|
||||
void TaskDestructor_8034208(struct Task *t)
|
||||
void TaskDestructor_8034208(Task *t)
|
||||
{
|
||||
EggSnake *boss = TASK_DATA(t);
|
||||
VramFree(boss->s.graphics.dest);
|
||||
VramFree(boss->s2.graphics.dest);
|
||||
}
|
||||
|
||||
void TaskDestructor_8034224(struct Task *t)
|
||||
void TaskDestructor_8034224(Task *t)
|
||||
{
|
||||
EggSnakeProjectile *proj = TASK_DATA(t);
|
||||
VramFree(proj->s.graphics.dest);
|
||||
}
|
||||
|
||||
void TaskDestructor_8034238(struct Task *t)
|
||||
void TaskDestructor_8034238(Task *t)
|
||||
{
|
||||
EggSnakeSegmentManager *mgr = TASK_DATA(t);
|
||||
VramFree(mgr->s.graphics.dest);
|
||||
|
||||
@@ -39,7 +39,7 @@ typedef struct {
|
||||
/* 0x8D */ u8 unk8E;
|
||||
} EggWrecker; /* 0x90 */
|
||||
|
||||
typedef struct EggWrecker_44 {
|
||||
typedef struct {
|
||||
/* 0x00 */ Sprite s;
|
||||
/* 0x30 */ u16 unk30;
|
||||
/* 0x30 */ s16 unk32;
|
||||
@@ -65,8 +65,8 @@ void Task_803540C(void);
|
||||
void Task_80354F4(void);
|
||||
void Task_8035588(void);
|
||||
void Task_8035768(void);
|
||||
void TaskDestructor_8035818(struct Task *t);
|
||||
void TaskDestructor_EggWrecker(struct Task *t);
|
||||
void TaskDestructor_8035818(Task *t);
|
||||
void TaskDestructor_EggWrecker(Task *t);
|
||||
|
||||
static inline void sub_803582C_inline(CamCoord worldX, CamCoord worldY)
|
||||
{
|
||||
@@ -206,7 +206,7 @@ void CreateEntity_EggWrecker(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
u16 temp_r2;
|
||||
u8 *temp_r1_3;
|
||||
u8 *temp_r2_2;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
EggWrecker *boss;
|
||||
Sprite *s;
|
||||
Sprite *s2;
|
||||
@@ -581,7 +581,7 @@ void Task_8034CA0()
|
||||
|
||||
void sub_8034EE0(CamCoord worldX, CamCoord worldY)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
NutsAndBolts *bolts;
|
||||
Sprite *sprBolts;
|
||||
s32 rndIndex = PseudoRandom32() % ARRAY_COUNT(gUnknown_080BB41C);
|
||||
@@ -609,7 +609,7 @@ void sub_8034EE0(CamCoord worldX, CamCoord worldY)
|
||||
void sub_8035010(void)
|
||||
{
|
||||
EggWrecker_44 *strc_44;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Sprite *s;
|
||||
u8 i;
|
||||
|
||||
@@ -927,14 +927,14 @@ void Task_8035768(void)
|
||||
}
|
||||
}
|
||||
|
||||
void TaskDestructor_EggWrecker(struct Task *t)
|
||||
void TaskDestructor_EggWrecker(Task *t)
|
||||
{
|
||||
EggWrecker *boss = TASK_DATA(t);
|
||||
VramFree(boss->s.graphics.dest);
|
||||
VramFree(boss->s2.graphics.dest);
|
||||
}
|
||||
|
||||
void TaskDestructor_8035818(struct Task *t)
|
||||
void TaskDestructor_8035818(Task *t)
|
||||
{
|
||||
EggWrecker_44 *boss_44 = TASK_DATA(t);
|
||||
VramFree(boss_44->s.graphics.dest);
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
#define NUM_WHEELS 4
|
||||
|
||||
typedef struct EggDrillster {
|
||||
typedef struct {
|
||||
/* 0x00 */ SpriteBase base;
|
||||
/* 0x0C */ Sprite s;
|
||||
/* 0x3C */ Sprite s2;
|
||||
@@ -39,7 +39,7 @@ typedef struct EggDrillster {
|
||||
/* 0x8D */ char filler8E[2];
|
||||
} EggDrillster; /* size = 0x90 */
|
||||
|
||||
typedef struct Component {
|
||||
typedef struct {
|
||||
/* 0x00 */ Sprite s;
|
||||
/* 0x30 */ u16 unk30;
|
||||
/* 0x32 */ s16 unk32;
|
||||
@@ -58,8 +58,8 @@ void Task_8035DD4(void);
|
||||
static void CreateFalloffComponents(void);
|
||||
void Task_8035F70(void);
|
||||
void sub_8035AAC(void);
|
||||
void TaskDestructor_EggDrillster(struct Task *t);
|
||||
void TaskDestructor_Drill(struct Task *t);
|
||||
void TaskDestructor_EggDrillster(Task *t);
|
||||
void TaskDestructor_Drill(Task *t);
|
||||
void Task_8035F70(void);
|
||||
|
||||
void sub_803596C(CamCoord worldX, CamCoord worldY);
|
||||
@@ -70,7 +70,7 @@ void Task_803623C(void);
|
||||
void sub_803673C(void);
|
||||
void Task_Drill(void);
|
||||
void Task_8036B94(void);
|
||||
void TaskDestructor_Drill(struct Task *t);
|
||||
void TaskDestructor_Drill(Task *t);
|
||||
|
||||
void Task_8036810(void);
|
||||
|
||||
@@ -202,7 +202,7 @@ void CreateEntity_EggDrillster(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
s32 temp_r4;
|
||||
s32 temp_r4_2;
|
||||
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
EggDrillster *boss;
|
||||
|
||||
if (gBossIndex != 0) {
|
||||
@@ -498,7 +498,7 @@ void Task_803623C()
|
||||
switch (boss->unk8D) {
|
||||
case 0:
|
||||
boss->unk84--;
|
||||
res = sa2__sub_801F100(worldY + 20, worldX, 1, 8, sa2__sub_801EC3C);
|
||||
res = SA2_LABEL(sub_801F100)(worldY + 20, worldX, 1, 8, SA2_LABEL(sub_801EC3C));
|
||||
if (res < 0) {
|
||||
boss->unk70 += Q(res);
|
||||
boss->unk78 = 0;
|
||||
@@ -533,7 +533,7 @@ void Task_803623C()
|
||||
// Almost identical to sub_8034EE0()
|
||||
void sub_8036478(CamCoord worldX, CamCoord worldY)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
NutsAndBolts *bolts;
|
||||
Sprite *sprBolts;
|
||||
s32 rndIndex = PseudoRandom32() % ARRAY_COUNT(gUnknown_080BB41C);
|
||||
@@ -561,7 +561,7 @@ void sub_8036478(CamCoord worldX, CamCoord worldY)
|
||||
static void CreateFalloffComponents()
|
||||
{
|
||||
EggDrillster *boss = TASK_DATA(gCurTask);
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Component *component;
|
||||
Sprite *s;
|
||||
u8 i;
|
||||
@@ -684,7 +684,7 @@ void Task_8036810()
|
||||
component->unk38 += component->qUnk3E;
|
||||
worldX = component->worldX + I(component->unk34);
|
||||
worldY = component->worldY + I(component->unk38);
|
||||
res = sa2__sub_801F100(worldY + 30, worldX, 1, 8, sa2__sub_801EC3C);
|
||||
res = SA2_LABEL(sub_801F100)(worldY + 30, worldX, 1, 8, SA2_LABEL(sub_801EC3C));
|
||||
|
||||
if (res < 0) {
|
||||
component->unk38 += Q(res);
|
||||
@@ -783,14 +783,14 @@ void Task_8036B94()
|
||||
}
|
||||
}
|
||||
|
||||
void TaskDestructor_EggDrillster(struct Task *t)
|
||||
void TaskDestructor_EggDrillster(Task *t)
|
||||
{
|
||||
EggDrillster *boss = TASK_DATA(t);
|
||||
VramFree(boss->s.graphics.dest);
|
||||
VramFree(boss->s2.graphics.dest);
|
||||
}
|
||||
|
||||
void TaskDestructor_Drill(struct Task *t)
|
||||
void TaskDestructor_Drill(Task *t)
|
||||
{
|
||||
Component *drill = TASK_DATA(t);
|
||||
VramFree(drill->s.graphics.dest);
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
/* X-Zone Final Boss */
|
||||
|
||||
typedef struct EggX_10 {
|
||||
typedef struct {
|
||||
u16 unk0;
|
||||
u16 unk2;
|
||||
u16 unk4;
|
||||
@@ -36,7 +36,7 @@ typedef struct EggX_10 {
|
||||
u16 unkE;
|
||||
} EggX_10;
|
||||
|
||||
typedef struct EggX_48 {
|
||||
typedef struct {
|
||||
Sprite s;
|
||||
u16 unk30;
|
||||
u8 filler32[0x2];
|
||||
@@ -50,7 +50,7 @@ typedef struct EggX_48 {
|
||||
u8 filler46[0x2];
|
||||
} EggX_48;
|
||||
|
||||
typedef struct EggX_Sparkle {
|
||||
typedef struct {
|
||||
/* 0x00 */ Sprite s;
|
||||
/* 0x30 */ SpriteTransform transform;
|
||||
/* 0x3C */ u16 unk3C;
|
||||
@@ -72,7 +72,7 @@ typedef struct EggX_Sparkle {
|
||||
/* 0x62 */ u8 unk62;
|
||||
} EggX_Sparkle;
|
||||
|
||||
typedef struct EggX_7C {
|
||||
typedef struct {
|
||||
Sprite s;
|
||||
Sprite s2;
|
||||
s16 unk60;
|
||||
@@ -89,7 +89,7 @@ typedef struct EggX_7C {
|
||||
u8 unk7B;
|
||||
} EggX_7C;
|
||||
|
||||
typedef struct EggX {
|
||||
typedef struct {
|
||||
/* 0x00 */ SpriteBase base;
|
||||
/* 0x0C */ Sprite s;
|
||||
/* 0x3C */ Hitbox reserved;
|
||||
@@ -111,7 +111,7 @@ typedef struct EggX {
|
||||
/* 0x98 */ u8 unk98;
|
||||
/* 0x99 */ u8 unk99;
|
||||
/* 0x9A */ u8 unk9A;
|
||||
/* 0x9C */ struct Task *task9C; // -> EggX_7C
|
||||
/* 0x9C */ Task *task9C; // -> EggX_7C
|
||||
} EggX; /* 0xA0 */
|
||||
|
||||
void Task_EggXMain(void);
|
||||
@@ -145,11 +145,11 @@ void sub_803A54C(void);
|
||||
void sub_803A594(void);
|
||||
void sub_803A170(u32 param0);
|
||||
|
||||
void TaskDestructor_EggX7C(struct Task *t);
|
||||
void TaskDestructor_EggX_Sparkle(struct Task *t);
|
||||
void TaskDestructor_EggX7C(Task *t);
|
||||
void TaskDestructor_EggX_Sparkle(Task *t);
|
||||
void sub_80472AC(Player *p);
|
||||
void TaskDestructor_EggX(struct Task *t);
|
||||
void TaskDestructor_EggX48(struct Task *t);
|
||||
void TaskDestructor_EggX(Task *t);
|
||||
void TaskDestructor_EggX48(Task *t);
|
||||
|
||||
extern const s16 gUnknown_084ACF1C[4];
|
||||
extern const s16 gUnknown_084ACF24[];
|
||||
@@ -1083,7 +1083,7 @@ void Task_8038154()
|
||||
switch (boss->unk99) {
|
||||
case 0:
|
||||
boss->unk92--;
|
||||
res = sa2__sub_801F100(worldY + 20, worldX, 1, 8, sa2__sub_801EC3C);
|
||||
res = SA2_LABEL(sub_801F100)(worldY + 20, worldX, 1, 8, SA2_LABEL(sub_801EC3C));
|
||||
if (res < 0) {
|
||||
boss->qUnk78 += Q(res);
|
||||
boss->qUnk80 = (boss->qUnk80 >> 2) - boss->qUnk80;
|
||||
@@ -1141,7 +1141,7 @@ void Task_8038154()
|
||||
// Many bosses calling CreateNutsAndBoltsTask have this same structure, almost identically.
|
||||
void sub_8038420(CamCoord worldX, CamCoord worldY)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
NutsAndBolts *bolts;
|
||||
Sprite *sprBolts;
|
||||
s32 rndIndex = PseudoRandom32() % ARRAY_COUNT(gUnknown_080BB41C);
|
||||
@@ -1417,7 +1417,7 @@ void Task_Strc10_803891C()
|
||||
|
||||
void sub_8038B38(void)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
EggX_48 *strc48;
|
||||
Sprite *s;
|
||||
|
||||
@@ -1565,7 +1565,7 @@ void sub_8038F04(void)
|
||||
Sprite *s2;
|
||||
EggX_7C *strc7C;
|
||||
EggX *boss = TASK_DATA(gCurTask);
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
CamCoord worldX, worldY;
|
||||
|
||||
t = TaskCreate(Task_8039264, sizeof(EggX_7C), 0x2001U, 0U, TaskDestructor_EggX7C);
|
||||
@@ -1900,7 +1900,7 @@ void sub_803967C(void)
|
||||
s32 rnd = PseudoRandom32() & 0x800;
|
||||
EggX *boss = TASK_DATA(gCurTask);
|
||||
Sprite *s;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
EggX_48 *strc48;
|
||||
s32 r2;
|
||||
s32 v;
|
||||
@@ -1971,7 +1971,7 @@ void Task_80397A8(void)
|
||||
strc48->qUnk38 += strc48->qUnk3E;
|
||||
worldX = I(strc48->qUnk34) + strc48->unk40;
|
||||
worldY = I(strc48->qUnk38) + strc48->unk42;
|
||||
res = sa2__sub_801F100(worldY + 8, worldX, 1, 8, sa2__sub_801EC3C);
|
||||
res = SA2_LABEL(sub_801F100)(worldY + 8, worldX, 1, 8, SA2_LABEL(sub_801EC3C));
|
||||
if (res < 0) {
|
||||
s32 v16;
|
||||
s32 v;
|
||||
@@ -2006,7 +2006,7 @@ void sub_8039940()
|
||||
u8 *temp_r1;
|
||||
|
||||
EggX *boss = TASK_DATA(gCurTask);
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
EggX_Sparkle *sparkle;
|
||||
Sprite *s;
|
||||
|
||||
@@ -2152,7 +2152,7 @@ NONMATCH("asm/non_matching/game/sa1/stage/enemies/boss_x3__Task_8039A64.inc", vo
|
||||
|
||||
worldX = ABS(worldX);
|
||||
|
||||
worldX = (u16)sa2__sub_8004418(worldY, worldX);
|
||||
worldX = (u16)SA2_LABEL(sub_8004418)(worldY, worldX);
|
||||
if ((u32)((u32)((worldX - 225) + 0xFF1F0000) >> 0x10) < 0x11F) {
|
||||
worldX = 224;
|
||||
}
|
||||
@@ -2371,7 +2371,7 @@ void sub_803A1D8()
|
||||
s32 sp4;
|
||||
SpriteTransform *tf;
|
||||
s16 var_r0;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
EggX_Sparkle *sparkle;
|
||||
EggX_Sparkle *sparkleParent;
|
||||
Sprite *s;
|
||||
@@ -2487,7 +2487,7 @@ void Task_803A46C()
|
||||
worldX = I(sparkle->unk54);
|
||||
worldY = I(sparkle->unk58);
|
||||
|
||||
res = SA2_LABEL(sub_801F100)(worldY + 8, worldX, 1, 8, sa2__sub_801EC3C);
|
||||
res = SA2_LABEL(sub_801F100)(worldY + 8, worldX, 1, 8, SA2_LABEL(sub_801EC3C));
|
||||
|
||||
if (res < 0) {
|
||||
sparkle->unk58 += Q(res);
|
||||
@@ -2505,7 +2505,7 @@ void Task_803A46C()
|
||||
}
|
||||
}
|
||||
|
||||
void TaskDestructor_EggX(struct Task *t)
|
||||
void TaskDestructor_EggX(Task *t)
|
||||
{
|
||||
EggX *boss = TASK_DATA(t);
|
||||
VramFree(boss->s.graphics.dest);
|
||||
@@ -2541,20 +2541,20 @@ void sub_803A594(void)
|
||||
strc10->unk8 = 0;
|
||||
}
|
||||
|
||||
void TaskDestructor_EggX7C(struct Task *t)
|
||||
void TaskDestructor_EggX7C(Task *t)
|
||||
{
|
||||
EggX_7C *strc7C = TASK_DATA(t);
|
||||
VramFree(strc7C->s.graphics.dest);
|
||||
VramFree(strc7C->s2.graphics.dest);
|
||||
}
|
||||
|
||||
void TaskDestructor_EggX48(struct Task *t)
|
||||
void TaskDestructor_EggX48(Task *t)
|
||||
{
|
||||
EggX_48 *strc48 = TASK_DATA(t);
|
||||
VramFree(strc48->s.graphics.dest);
|
||||
}
|
||||
|
||||
void TaskDestructor_EggX_Sparkle(struct Task *t)
|
||||
void TaskDestructor_EggX_Sparkle(Task *t)
|
||||
{
|
||||
EggX_Sparkle *strc48 = TASK_DATA(t);
|
||||
VramFree(strc48->s.graphics.dest);
|
||||
@@ -2587,7 +2587,7 @@ void sub_803A650(CamCoord worldX, CamCoord worldY)
|
||||
}
|
||||
|
||||
// Belongs to sub_803A6EC, might be able to be removed once matched...
|
||||
typedef struct Test {
|
||||
typedef struct {
|
||||
Sprite *s;
|
||||
} Test;
|
||||
|
||||
|
||||
@@ -261,11 +261,11 @@ NONMATCH("asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050194.inc", s
|
||||
var_r3 = I(temp_r8->unk0.qUnk54);
|
||||
sinV = (SIN_24_8(temp_r1_2) << 0xC);
|
||||
temp_r6 = var_r3 + ((((COS_24_8(temp_r1_2) * Q(9)) - (sinV)) >> 0x10) + 6);
|
||||
temp_sb = sa2__sub_801F100(temp_r6, var_r7 + 0x10, 1, 8, sa2__sub_801EC3C);
|
||||
temp_sb = SA2_LABEL(sub_801F100)(temp_r6, var_r7 + 0x10, 1, 8, SA2_LABEL(sub_801EC3C));
|
||||
temp_r4 = I(temp_r8->unk0.qUnk54);
|
||||
temp_r2 = sp8 >> 6;
|
||||
temp_r4 = (temp_r4 + (((((SIN_24_8(temp_r2)) * Q(21)) + (COS_24_8(temp_r2) << 0xB)) >> 0x10))) + 6;
|
||||
var_sl = sa2__sub_801F100(temp_r4, var_r7 + 21, 1, 8, sa2__sub_801EC3C);
|
||||
var_sl = SA2_LABEL(sub_801F100)(temp_r4, var_r7 + 21, 1, 8, SA2_LABEL(sub_801EC3C));
|
||||
if (var_sl > temp_sb) {
|
||||
var_sl = temp_sb;
|
||||
}
|
||||
@@ -293,10 +293,10 @@ NONMATCH("asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050194.inc", s
|
||||
var_r3 = I(temp_r8_2->unk0.qUnk54);
|
||||
sinV = ((SIN_24_8(temp_r5_2 >> 6)) << 0xC);
|
||||
temp_r5_3 = var_r3 + (((((COS_24_8(temp_r5_2 >> 6)) * Q(9)) - sinV) >> 0x10) + 6);
|
||||
temp_sb_2 = sa2__sub_801F100(temp_r5_3, var_r7_2 + 16, 1, 8, sa2__sub_801EC3C);
|
||||
temp_sb_2 = SA2_LABEL(sub_801F100)(temp_r5_3, var_r7_2 + 16, 1, 8, SA2_LABEL(sub_801EC3C));
|
||||
temp_r4_2 = I(temp_r8_2->unk0.qUnk54);
|
||||
temp_r4_2 += ((((SIN_24_8(spC >> 6)) * Q(21)) + ((COS_24_8(spC >> 6)) << 0xB)) >> 0x10) + 6;
|
||||
var_r6 = sa2__sub_801F100(temp_r4_2, var_r7_2 + 21, 1, 8, sa2__sub_801EC3C);
|
||||
var_r6 = SA2_LABEL(sub_801F100)(temp_r4_2, var_r7_2 + 21, 1, 8, SA2_LABEL(sub_801EC3C));
|
||||
if (var_r6 > temp_sb_2) {
|
||||
var_r6 = temp_sb_2;
|
||||
}
|
||||
@@ -322,7 +322,7 @@ NONMATCH("asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050194.inc", s
|
||||
var_r4 = Mod(var_r4 - 72, 0xA80) + 72;
|
||||
}
|
||||
|
||||
var_r0 = sa2__sub_801F100(temp_r7, var_r4, 1, 8, sa2__sub_801EC3C);
|
||||
var_r0 = SA2_LABEL(sub_801F100)(temp_r7, var_r4, 1, 8, SA2_LABEL(sub_801EC3C));
|
||||
var_r1 = var_r6;
|
||||
if (var_r1 > var_sl) {
|
||||
var_r1 = var_sl;
|
||||
@@ -537,7 +537,7 @@ void sub_8050888()
|
||||
s->frameFlags = (s->frameFlags & 0xFFFE7FFF) | 0x10000;
|
||||
UpdateSpriteAnimation_BG(s);
|
||||
DisplaySprite_BG(s);
|
||||
sa2__sub_8003EE4((strc->unk70 >> 6), 0x100, 0x100, 0x7C, 0x80, screenX, screenY, gBgAffineRegs);
|
||||
SA2_LABEL(sub_8003EE4)((strc->unk70 >> 6), 0x100, 0x100, 0x7C, 0x80, screenX, screenY, gBgAffineRegs);
|
||||
|
||||
switch (boss->unk6E) {
|
||||
case 4:
|
||||
@@ -1416,7 +1416,7 @@ void CreateEntity_SuperEggRobot(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
SET_MAP_ENTITY_INITIALIZED(me);
|
||||
return;
|
||||
} else {
|
||||
struct Task *t = TaskCreate(Task_SuperEggRobotInit, sizeof(SuperEggRobo), 0x2000, 0, NULL);
|
||||
Task *t = TaskCreate(Task_SuperEggRobotInit, sizeof(SuperEggRobo), 0x2000, 0, NULL);
|
||||
SuperEggRobo *boss = TASK_DATA(t);
|
||||
|
||||
boss->base.regionX = regionX;
|
||||
@@ -1432,7 +1432,7 @@ void CreateEntity_SuperEggRobot(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
}
|
||||
}
|
||||
|
||||
static void TaskDestructor_unused(struct Task *t)
|
||||
static void TaskDestructor_unused(Task *t)
|
||||
{
|
||||
SuperEggRobo *boss = TASK_DATA(t);
|
||||
VramFree(boss->unusedSprite.graphics.dest);
|
||||
@@ -1476,7 +1476,7 @@ SomeTaskManager_7C *sub_8052474(SomeTaskManager_7C *strc, s32 param1, s32 param2
|
||||
{
|
||||
SomeTaskManager_7C *strc2;
|
||||
GfxInfo gfx;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Sprite *s;
|
||||
|
||||
gfx.tileInfo.anim = SA1_ANIM_BOSS_XTRA_HEAD;
|
||||
@@ -1497,7 +1497,7 @@ SomeTaskManager_7C *sub_80524F0(SomeTaskManager_7C *strc, s32 param1, s32 param2
|
||||
{
|
||||
SomeTaskManager_7C *strc2;
|
||||
GfxInfo gfx;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Sprite *s;
|
||||
|
||||
gfx.tileInfo.anim = SA1_ANIM_BOSS_XTRA_ARM_BEARING;
|
||||
@@ -1521,7 +1521,7 @@ SomeTaskManager_7C *sub_8052578(SomeTaskManager_7C *strc, s32 param1, s32 param2
|
||||
{
|
||||
SomeTaskManager_7C *strc2;
|
||||
GfxInfo gfx;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Sprite *s;
|
||||
|
||||
gfx.tileInfo.anim = SA1_ANIM_BOSS_XTRA_ARM_BEARING;
|
||||
@@ -1541,7 +1541,7 @@ SomeTaskManager_7C *sub_80525E0(SomeTaskManager_7C *strc, s32 param1, s32 param2
|
||||
{
|
||||
SomeTaskManager_7C *strc2;
|
||||
GfxInfo gfx;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Sprite *s;
|
||||
|
||||
gfx.tileInfo.anim = SA1_ANIM_BOSS_XTRA_ARM_BEARING;
|
||||
@@ -1564,7 +1564,7 @@ SomeTaskManager_7C *sub_805265C(SomeTaskManager_7C *strc, s32 param1, s32 param2
|
||||
{
|
||||
SomeTaskManager_7C *strc2;
|
||||
GfxInfo gfx;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Sprite *s;
|
||||
|
||||
gfx.tileInfo.anim = SA1_ANIM_BOSS_XTRA_ARM;
|
||||
@@ -1583,7 +1583,7 @@ SomeTaskManager_7C *sub_805265C(SomeTaskManager_7C *strc, s32 param1, s32 param2
|
||||
SomeTaskManager_7C *sub_80526C4(SomeTaskManager_7C *strc, s32 param1, s32 param2, GfxInfo *gfx, s32 param4)
|
||||
{
|
||||
SomeTaskManager_7C *strc2;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Sprite *s;
|
||||
|
||||
t = CreateSomeTaskManager_7C_Task(gfx, sub_80519E8, TaskDestructor_SomeTaskManager_60_Common);
|
||||
@@ -1601,7 +1601,7 @@ SomeTaskManager_7C *sub_80526C4(SomeTaskManager_7C *strc, s32 param1, s32 param2
|
||||
SomeTaskManager_7C *sub_8052724(SomeTaskManager_7C *strc, s32 param1, s32 param2, GfxInfo *gfx, s32 param4)
|
||||
{
|
||||
SomeTaskManager_7C *strc2;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Sprite *s;
|
||||
|
||||
t = CreateSomeTaskManager_7C_Task(gfx, sub_805202C, TaskDestructor_SomeTaskManager_60_Common);
|
||||
@@ -1619,7 +1619,7 @@ SomeTaskManager_7C *sub_8052724(SomeTaskManager_7C *strc, s32 param1, s32 param2
|
||||
SomeTaskManager_7C *sub_8052780(SomeTaskManager_7C *strc, s32 param1, s32 param2, GfxInfo *gfx, s32 param4)
|
||||
{
|
||||
SomeTaskManager_7C *strc2;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Sprite *s;
|
||||
|
||||
t = CreateSomeTaskManager_7C_Task(gfx, sub_8051C44, TaskDestructor_SomeTaskManager_60_Common);
|
||||
@@ -1637,7 +1637,7 @@ SomeTaskManager_7C *sub_8052780(SomeTaskManager_7C *strc, s32 param1, s32 param2
|
||||
SomeTaskManager_7C *sub_80527DC(SomeTaskManager_7C *strc, s32 param1, s32 param2, GfxInfo *gfx, s32 param4)
|
||||
{
|
||||
SomeTaskManager_7C *strc2;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Sprite *s;
|
||||
|
||||
t = CreateSomeTaskManager_7C_Task(gfx, sub_8051E38, TaskDestructor_SomeTaskManager_60_Common);
|
||||
@@ -1658,7 +1658,7 @@ SomeTaskManager_7C *sub_8052838(SuperEggRobo *boss, s32 param1, s32 param2, s32
|
||||
{
|
||||
SomeTaskManager_7C *strc2;
|
||||
GfxInfo gfx;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Sprite *s;
|
||||
|
||||
gfx.tileInfo.anim = SA1_ANIM_BOSS_XTRA_PALETTE;
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
/* TODO: Maybe inline this file into bosses_misc.c ? */
|
||||
|
||||
typedef struct PostBossEggMobile {
|
||||
typedef struct {
|
||||
/* 0x00 */ Sprite s;
|
||||
/* 0x30 */ Sprite s2;
|
||||
/* 0x60 */ CamCoord worldX;
|
||||
@@ -38,7 +38,7 @@ void Task_EggMobileEscape(void);
|
||||
|
||||
void CreatePostBossEggMobile(CamCoord worldX, CamCoord worldY)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
PostBossEggMobile *eggMobile;
|
||||
Sprite *s;
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
#include "constants/sa1/vram_hardcoded.h"
|
||||
#include "constants/sa1/zones.h"
|
||||
|
||||
typedef struct BossCapsule {
|
||||
typedef struct {
|
||||
/* 0x00 */ Sprite s;
|
||||
/* 0x30 */ Sprite s2;
|
||||
/* 0x60 */ SpriteTransform transform;
|
||||
@@ -31,7 +31,7 @@ typedef struct BossCapsule {
|
||||
/* 0x74 */ u16 unk76;
|
||||
} BossCapsule;
|
||||
|
||||
typedef struct Strc_sub_801749C {
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 unk0;
|
||||
/* 0x02 */ s16 unk2;
|
||||
/* 0x04 */ s16 unk4;
|
||||
@@ -40,7 +40,7 @@ typedef struct Strc_sub_801749C {
|
||||
/* 0x0A */ u16 unkA;
|
||||
} Strc_sub_801749C;
|
||||
|
||||
typedef struct Strc_sub_8016D80 {
|
||||
typedef struct {
|
||||
/* 0x00 */ Sprite s;
|
||||
/* 0x30 */ s32 qUnk30;
|
||||
/* 0x30 */ s32 qUnk34;
|
||||
@@ -51,7 +51,7 @@ typedef struct Strc_sub_8016D80 {
|
||||
/* 0x38 */ s16 qUnk40;
|
||||
} Strc_sub_8016D80;
|
||||
|
||||
typedef struct Strc_sub_8016F44 {
|
||||
typedef struct {
|
||||
/* 0x00 */ Sprite s;
|
||||
/* 0x30 */ SpriteTransform transform;
|
||||
/* 0x3C */ s32 unk3C;
|
||||
@@ -66,14 +66,14 @@ typedef struct Strc_sub_8016F44 {
|
||||
/* 0x40 */ s16 unk52;
|
||||
} Strc_sub_8016F44; /* 0x54 */
|
||||
|
||||
typedef struct CameraPanning {
|
||||
typedef struct {
|
||||
/* 0x00 */ CamCoord unk0;
|
||||
/* 0x02 */ CamCoord unk2;
|
||||
/* 0x04 */ CamCoord unk4;
|
||||
/* 0x06 */ CamCoord unk6;
|
||||
} CameraPanning;
|
||||
|
||||
typedef struct Strc_sub_801766C {
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 unk0;
|
||||
/* 0x02 */ s16 unk2;
|
||||
/* 0x04 */ Player *p;
|
||||
@@ -84,25 +84,25 @@ void Task_801623C(void);
|
||||
void Task_8016650(void);
|
||||
void Task_BossCapsuleUpdate(void);
|
||||
void sub_801766C(Player *p);
|
||||
struct Task *sub_801749C(CamCoord worldX, CamCoord worldY);
|
||||
Task *sub_801749C(CamCoord worldX, CamCoord worldY);
|
||||
void Task_801685C(void);
|
||||
void Task_8016A14(void); // :Strc_sub_80168F0
|
||||
void Task_8016B6C(void); // :Strc_sub_801749C
|
||||
struct Task *sub_8016D80(CamCoord worldX, CamCoord worldY, AnimId anim, u8 variant); // -> Strc_sub_8016D80
|
||||
struct Task *sub_8016F44(CamCoord worldX, CamCoord worldY, AnimId anim, u8 variant); // -> Strc_sub_8016F44
|
||||
Task *sub_8016D80(CamCoord worldX, CamCoord worldY, AnimId anim, u8 variant); // -> Strc_sub_8016D80
|
||||
Task *sub_8016F44(CamCoord worldX, CamCoord worldY, AnimId anim, u8 variant); // -> Strc_sub_8016F44
|
||||
|
||||
void sub_8017054(void);
|
||||
void Task_8017244(void); // :CameraPanning
|
||||
void Task_8017400(void);
|
||||
|
||||
void TaskDestructor_BossCapsule(struct Task *t);
|
||||
void TaskDestructor_sub_80168F0(struct Task *t);
|
||||
void TaskDestructor_BossCapsule(Task *t);
|
||||
void TaskDestructor_sub_80168F0(Task *t);
|
||||
|
||||
extern u16 gUnknown_080BB43C[5][3];
|
||||
|
||||
void CreateBossCapsule(CamCoord worldX, CamCoord worldY)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
BossCapsule *capsule;
|
||||
Sprite *s;
|
||||
SpriteTransform *tf;
|
||||
@@ -215,7 +215,7 @@ void Task_801623C()
|
||||
return;
|
||||
}
|
||||
|
||||
res = sa2__sub_801F100(gCamera.y + s->y + 8, gCamera.x + s->x, 1, 8, sa2__sub_801EC3C);
|
||||
res = SA2_LABEL(sub_801F100)(gCamera.y + s->y + 8, gCamera.x + s->x, 1, 8, SA2_LABEL(sub_801EC3C));
|
||||
if (res > 0) {
|
||||
return;
|
||||
}
|
||||
@@ -444,12 +444,12 @@ void Task_801685C(void)
|
||||
DisplaySprite(s);
|
||||
}
|
||||
|
||||
struct Task *sub_80168F0(CamCoord worldX, CamCoord worldY, u16 numTiles, AnimId anim, u8 variant)
|
||||
Task *sub_80168F0(CamCoord worldX, CamCoord worldY, u16 numTiles, AnimId anim, u8 variant)
|
||||
{
|
||||
SpriteTransform *spC;
|
||||
s32 sp10;
|
||||
SpriteTransform *temp_r2;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Strc_sub_80168F0 *strc;
|
||||
|
||||
t = TaskCreate(Task_8016A14, sizeof(Strc_sub_80168F0), 0x2000U, 0U, TaskDestructor_sub_80168F0);
|
||||
@@ -599,11 +599,11 @@ void Task_8016B6C(void)
|
||||
}
|
||||
|
||||
void sub_8016E54(void);
|
||||
void TaskDestructor_sub_8017658(struct Task *t);
|
||||
void TaskDestructor_sub_8017658(Task *t);
|
||||
|
||||
struct Task *sub_8016D80(s16 worldX, s16 worldY, u16 anim, u8 variant)
|
||||
Task *sub_8016D80(s16 worldX, s16 worldY, u16 anim, u8 variant)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Strc_sub_8016D80 *strc;
|
||||
|
||||
t = TaskCreate(sub_8016E54, sizeof(Strc_sub_8016D80), 0x2000U, 0U, TaskDestructor_sub_8017658);
|
||||
@@ -641,7 +641,7 @@ void sub_8016E54()
|
||||
strc->qUnk30 += strc->qUnk3E;
|
||||
|
||||
if ((strc->qUnk3C > 0)
|
||||
&& (sa2__sub_801F100(strc->unk3A + I(strc->qUnk34), strc->unk38 + I(strc->qUnk30), 1, 8, sa2__sub_801EC3C) < 0)) {
|
||||
&& (SA2_LABEL(sub_801F100)(strc->unk3A + I(strc->qUnk34), strc->unk38 + I(strc->qUnk30), 1, 8, SA2_LABEL(sub_801EC3C)) < 0)) {
|
||||
strc->qUnk3C = strc->qUnk40;
|
||||
|
||||
if ((I(strc->qUnk30) < -32) && (strc->qUnk3E < 0)) {
|
||||
@@ -663,10 +663,10 @@ void sub_8016E54()
|
||||
DisplaySprite(s);
|
||||
}
|
||||
|
||||
struct Task *sub_8016F44(CamCoord worldX, CamCoord worldY, AnimId anim, u8 variant)
|
||||
Task *sub_8016F44(CamCoord worldX, CamCoord worldY, AnimId anim, u8 variant)
|
||||
{
|
||||
Strc_sub_8016F44 *strc;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
SpriteTransform *tf;
|
||||
Sprite *s;
|
||||
|
||||
@@ -767,10 +767,10 @@ void sub_8017054()
|
||||
DisplaySprite(s);
|
||||
}
|
||||
|
||||
struct Task *Bosses_SetCamBounds(CamCoord minY, CamCoord maxY, CamCoord minX, CamCoord maxX)
|
||||
Task *Bosses_SetCamBounds(CamCoord minY, CamCoord maxY, CamCoord minX, CamCoord maxX)
|
||||
{
|
||||
s16 temp_r1;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
CameraPanning *temp_r2;
|
||||
|
||||
t = TaskCreate(Task_8017244, 8U, 0x2000U, 0U, NULL);
|
||||
@@ -909,9 +909,9 @@ void Task_8017400(void)
|
||||
}
|
||||
}
|
||||
|
||||
struct Task *sub_801749C(s16 worldX, s16 worldY)
|
||||
Task *sub_801749C(CamCoord worldX, CamCoord worldY)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Strc_sub_801749C *strc;
|
||||
t = TaskCreate(Task_8016B6C, sizeof(Strc_sub_801749C), 0x2000U, 0U, NULL);
|
||||
strc = TASK_DATA(t);
|
||||
@@ -925,9 +925,9 @@ struct Task *sub_801749C(s16 worldX, s16 worldY)
|
||||
|
||||
void Task_PreBossCameraPan(void);
|
||||
|
||||
struct Task *CreatePreBossCameraPan(s16 yMin, s16 yMax)
|
||||
Task *CreatePreBossCameraPan(s16 yMin, s16 yMax)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
CameraPanning *pan;
|
||||
|
||||
t = TaskCreate(Task_PreBossCameraPan, 8U, 0x2000U, 0U, NULL);
|
||||
@@ -940,12 +940,12 @@ struct Task *CreatePreBossCameraPan(s16 yMin, s16 yMax)
|
||||
if ((s32)pan->unk2 > gCamera.maxY) {
|
||||
gCamera.maxY = gCamera.y + 320;
|
||||
}
|
||||
return (struct Task *)t;
|
||||
return (Task *)t;
|
||||
}
|
||||
|
||||
struct Task *sub_8017540(s32 qParam0, s32 qParam1)
|
||||
Task *sub_8017540(s32 qParam0, s32 qParam1)
|
||||
{
|
||||
struct Task *t = NULL;
|
||||
Task *t = NULL;
|
||||
s32 temp_r0_2;
|
||||
NutsAndBolts *bolts;
|
||||
Sprite *s;
|
||||
@@ -961,14 +961,14 @@ struct Task *sub_8017540(s32 qParam0, s32 qParam1)
|
||||
return t;
|
||||
}
|
||||
|
||||
void TaskDestructor_BossCapsule(struct Task *t)
|
||||
void TaskDestructor_BossCapsule(Task *t)
|
||||
{
|
||||
BossCapsule *capsule = TASK_DATA(t);
|
||||
VramFree(capsule->s.graphics.dest);
|
||||
VramFree(capsule->s2.graphics.dest);
|
||||
}
|
||||
|
||||
void TaskDestructor_sub_80168F0(struct Task *t)
|
||||
void TaskDestructor_sub_80168F0(Task *t)
|
||||
{
|
||||
Strc_sub_80168F0 *strc = TASK_DATA(t);
|
||||
VramFree(strc->s.graphics.dest);
|
||||
@@ -1000,7 +1000,7 @@ void sub_80175D8(void)
|
||||
}
|
||||
}
|
||||
|
||||
void TaskDestructor_sub_8017658(struct Task *t)
|
||||
void TaskDestructor_sub_8017658(Task *t)
|
||||
{
|
||||
Strc_sub_8016D80 *strc = TASK_DATA(t);
|
||||
VramFree(strc->s.graphics.dest);
|
||||
@@ -1008,7 +1008,7 @@ void TaskDestructor_sub_8017658(struct Task *t)
|
||||
|
||||
void sub_801766C(Player *p)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_8017334, sizeof(Strc_sub_801766C), 0x2000, 0, NULL);
|
||||
Task *t = TaskCreate(Task_8017334, sizeof(Strc_sub_801766C), 0x2000, 0, NULL);
|
||||
Strc_sub_801766C *strc = TASK_DATA(t);
|
||||
strc->unk0 = 0;
|
||||
strc->p = p;
|
||||
|
||||
@@ -39,7 +39,7 @@ void Task_BuzzerProjectileMain(void);
|
||||
void CreateEntity_Buzzer(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
if (LEVEL_TO_ZONE(gCurrentLevel) != ZONE_1 || LOADED_SAVE->difficultyLevel == DIFFICULTY_NORMAL) {
|
||||
struct Task *t = TaskCreate(Task_BuzzerInit, sizeof(Buzzer), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Task *t = TaskCreate(Task_BuzzerInit, sizeof(Buzzer), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Buzzer *buzzer = TASK_DATA(t);
|
||||
Sprite *s = &buzzer->shared.s;
|
||||
|
||||
@@ -241,7 +241,7 @@ void CreateBuzzerProjectile(CamCoord worldX, CamCoord worldY)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
struct Task *t = TaskCreate(Task_BuzzerProjectileMain, sizeof(BuzzerProjectile), 0x9000, 0, NULL);
|
||||
Task *t = TaskCreate(Task_BuzzerProjectileMain, sizeof(BuzzerProjectile), 0x9000, 0, NULL);
|
||||
BuzzerProjectile *proj = TASK_DATA(t);
|
||||
Sprite *s = &proj->s;
|
||||
s16 res;
|
||||
|
||||
@@ -34,19 +34,19 @@ typedef struct {
|
||||
/* 0x48 */ s32 unk48;
|
||||
/* 0x4C */ s32 worldX;
|
||||
/* 0x50 */ s32 worldY;
|
||||
/* 0x54 */ struct Task *iceBlock; // -> IceBlock *
|
||||
/* 0x54 */ Task *iceBlock; // -> IceBlock *
|
||||
} Drisame; /* 0x58 */
|
||||
|
||||
void Task_DrisameInit(void);
|
||||
void sub_8072E68(void);
|
||||
struct Task *CreateIceBlock(s16 worldX, s16 worldY);
|
||||
Task *CreateIceBlock(s16 worldX, s16 worldY);
|
||||
void Task_IceBlockInit(void);
|
||||
void Task_IceBlock_8073364(void);
|
||||
void TaskDestructor_IceBlock(struct Task *t);
|
||||
void TaskDestructor_IceBlock(Task *t);
|
||||
|
||||
void CreateEntity_Drisame(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_DrisameInit, sizeof(Drisame), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Task *t = TaskCreate(Task_DrisameInit, sizeof(Drisame), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Drisame *drisame = TASK_DATA(t);
|
||||
Sprite *s = &drisame->shared.s;
|
||||
|
||||
@@ -217,10 +217,10 @@ void sub_8072E68(void)
|
||||
DisplaySprite(s);
|
||||
}
|
||||
|
||||
struct Task *CreateIceBlock(s16 worldX, s16 worldY)
|
||||
Task *CreateIceBlock(s16 worldX, s16 worldY)
|
||||
{
|
||||
s8 arr[4][2] = { { 16, 0 }, { 0, 8 }, { -16, 0 }, { 0, -8 } }; // maybe u8[4][2]?
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Sprite *s;
|
||||
Sprite *s2;
|
||||
Sprite *s3;
|
||||
@@ -317,7 +317,7 @@ struct Task *CreateIceBlock(s16 worldX, s16 worldY)
|
||||
|
||||
void Task_IceBlockInit(void)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Sprite *s3;
|
||||
IceBlock *iceBlock;
|
||||
CamCoord screenX, screenY;
|
||||
@@ -351,7 +351,7 @@ void Task_IceBlockInit(void)
|
||||
void Task_IceBlock_8073364(void)
|
||||
{
|
||||
IceBlock *iceBlock;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Sprite *s;
|
||||
Sprite *s2;
|
||||
CamCoord worldX, worldY;
|
||||
@@ -395,7 +395,7 @@ void Task_IceBlock_8073364(void)
|
||||
}
|
||||
}
|
||||
|
||||
void TaskDestructor_IceBlock(struct Task *t)
|
||||
void TaskDestructor_IceBlock(Task *t)
|
||||
{
|
||||
IceBlock *iceBlock = TASK_DATA(t);
|
||||
VramFree(iceBlock->s.graphics.dest);
|
||||
|
||||
@@ -60,7 +60,7 @@ void Task_Fireball(void)
|
||||
}
|
||||
|
||||
if (Mod(gStageTime + spawner->unk4, FIREBALL_SPAWN_RATE) == 0) {
|
||||
struct Task *t = TaskCreate(Task_FireballUpdateRise, sizeof(Fireball), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Task *t = TaskCreate(Task_FireballUpdateRise, sizeof(Fireball), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Fireball *fireball = TASK_DATA(t);
|
||||
Sprite *s = &fireball->shared.s;
|
||||
fireball->shared.base.regionX = spawner->regionX;
|
||||
@@ -172,7 +172,7 @@ void Task_FireballExtinguish(void)
|
||||
// (99.61%) https://decomp.me/scratch/MmGb6
|
||||
NONMATCH("asm/non_matching/game/sa1/stage/enemies/fireball__CreateFireballSparks.inc", void CreateFireballSparks(s16 screenX, s16 screenY))
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
FireballSpark *spark;
|
||||
Sprite *s;
|
||||
s32 i;
|
||||
@@ -260,7 +260,7 @@ void Task_FireballSpark(void)
|
||||
|
||||
void CreateEntity_Fireball(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_Fireball, sizeof(FireballSpawner), 0x2000, 0, NULL);
|
||||
Task *t = TaskCreate(Task_Fireball, sizeof(FireballSpawner), 0x2000, 0, NULL);
|
||||
FireballSpawner *spawner = TASK_DATA(t);
|
||||
|
||||
spawner->me = me;
|
||||
|
||||
@@ -33,7 +33,7 @@ void Task_GamiGamiProjectile(void);
|
||||
|
||||
void CreateEntity_GamiGami(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_GamiGamiInit, sizeof(GamiGami), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Task *t = TaskCreate(Task_GamiGamiInit, sizeof(GamiGami), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
GamiGami *gamigami = TASK_DATA(t);
|
||||
Sprite *s = &gamigami->shared.s;
|
||||
|
||||
@@ -194,7 +194,7 @@ void CreateGamiGamiProjectiles(CamCoord worldX, CamCoord worldY)
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_GamiGamiProjectile, sizeof(GamiGamiProjectile), 0x3000, 0, NULL);
|
||||
Task *t = TaskCreate(Task_GamiGamiProjectile, sizeof(GamiGamiProjectile), 0x3000, 0, NULL);
|
||||
GamiGamiProjectile *proj = TASK_DATA(t);
|
||||
Sprite *s = &proj->s;
|
||||
#ifndef NON_MATCHING
|
||||
|
||||
@@ -33,11 +33,11 @@ void Task_806D804(void);
|
||||
void CreateHanabiiProjectile(s16 a, s16 b);
|
||||
void Task_HanabiiProjectile(void);
|
||||
void Task_HanabiiProjectile2(void);
|
||||
void TaskDestructor_HanabiiProjectile(struct Task *t);
|
||||
void TaskDestructor_HanabiiProjectile(Task *t);
|
||||
|
||||
void CreateEntity_Hanabii(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_HanabiiInit, sizeof(Hanabii), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Task *t = TaskCreate(Task_HanabiiInit, sizeof(Hanabii), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Hanabii *hanabii = TASK_DATA(t);
|
||||
Sprite *s = &hanabii->shared.s;
|
||||
|
||||
@@ -200,7 +200,7 @@ void Task_806D804(void)
|
||||
|
||||
void CreateHanabiiProjectile(CamCoord worldX, CamCoord worldY)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_HanabiiProjectile, sizeof(HanabiiProjectile), 0x3000, 0, TaskDestructor_HanabiiProjectile);
|
||||
Task *t = TaskCreate(Task_HanabiiProjectile, sizeof(HanabiiProjectile), 0x3000, 0, TaskDestructor_HanabiiProjectile);
|
||||
HanabiiProjectile *proj = TASK_DATA(t);
|
||||
Sprite *s = &proj->s;
|
||||
|
||||
@@ -327,7 +327,7 @@ void Task_HanabiiProjectile2(void)
|
||||
s->y = oldWorldY;
|
||||
}
|
||||
|
||||
void TaskDestructor_HanabiiProjectile(struct Task *t)
|
||||
void TaskDestructor_HanabiiProjectile(Task *t)
|
||||
{
|
||||
HanabiiProjectile *proj = TASK_DATA(t);
|
||||
VramFree(proj->s.graphics.dest);
|
||||
|
||||
@@ -27,7 +27,7 @@ void Task_806D2B8(void);
|
||||
|
||||
void CreateEntity_KeroKero(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_KeroKeroInit, sizeof(KeroKero), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Task *t = TaskCreate(Task_KeroKeroInit, sizeof(KeroKero), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
KeroKero *kerokero = TASK_DATA(t);
|
||||
Sprite *s = &kerokero->shared.s;
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ static void Task_KikiProjSplit(void);
|
||||
static void CreateKikiProjectilePiece(s16, s16);
|
||||
static void Task_ProjPieceMain(void);
|
||||
|
||||
static void TaskDestructor_KikiProj(struct Task *);
|
||||
static void TaskDestructor_KikiProj(Task *);
|
||||
|
||||
void CreateEntity_Kiki(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY, u8 spriteY)
|
||||
{
|
||||
@@ -55,7 +55,7 @@ void CreateEntity_Kiki(MapEntity *me, u16 spriteRegionX, u16 spriteRegionY, u8 s
|
||||
const s32 taskPriority = 0x4020;
|
||||
const TaskDestructor dtor = TaskDestructor_EntityShared;
|
||||
#endif
|
||||
struct Task *t = TaskCreate(Task_KikiMain, sizeof(Sprite_Kiki), taskPriority, 0, dtor);
|
||||
Task *t = TaskCreate(Task_KikiMain, sizeof(Sprite_Kiki), taskPriority, 0, dtor);
|
||||
Sprite_Kiki *kiki = TASK_DATA(t);
|
||||
Sprite *s = &kiki->s;
|
||||
|
||||
@@ -283,7 +283,7 @@ static void CreateKikiProjectile(s16 x, s16 y)
|
||||
const TaskDestructor dtor = TaskDestructor_KikiProj;
|
||||
#endif
|
||||
|
||||
struct Task *t = TaskCreate(Task_KikiProjMain, sizeof(Kiki_Proj), prio, 0, dtor);
|
||||
Task *t = TaskCreate(Task_KikiProjMain, sizeof(Kiki_Proj), prio, 0, dtor);
|
||||
Kiki_Proj *proj = TASK_DATA(t);
|
||||
Sprite *s = &proj->s;
|
||||
|
||||
@@ -406,7 +406,7 @@ static void Task_KikiProjSplit(void)
|
||||
|
||||
static void CreateKikiProjectilePiece(s16 x, s16 y)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_ProjPieceMain, sizeof(Kiki_Proj), 0x2000, 0, TaskDestructor_KikiProj);
|
||||
Task *t = TaskCreate(Task_ProjPieceMain, sizeof(Kiki_Proj), 0x2000, 0, TaskDestructor_KikiProj);
|
||||
Kiki_Proj *proj = TASK_DATA(t);
|
||||
Sprite *s = &proj->s;
|
||||
|
||||
@@ -487,7 +487,7 @@ static void Task_ProjPieceMain(void)
|
||||
s->y = y;
|
||||
}
|
||||
|
||||
static void TaskDestructor_KikiProj(struct Task *t)
|
||||
static void TaskDestructor_KikiProj(Task *t)
|
||||
{
|
||||
Kiki_Proj *proj = TASK_DATA(t);
|
||||
VramFree(proj->s.graphics.dest);
|
||||
|
||||
@@ -23,7 +23,7 @@ void Task_80737A8(void);
|
||||
|
||||
void CreateEntity_Kuraa(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_KuraaInit, sizeof(Kuraa), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Task *t = TaskCreate(Task_KuraaInit, sizeof(Kuraa), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Kuraa *kuraa = TASK_DATA(t);
|
||||
Sprite *s = &kuraa->shared.s;
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ void CreateEntity_Leon(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
if ((LEVEL_TO_ZONE(gCurrentLevel) != ZONE_5) || (LOADED_SAVE->difficultyLevel == DIFFICULTY_NORMAL)) {
|
||||
// _0806E9C4
|
||||
|
||||
struct Task *t = TaskCreate(Task_LeonInit, sizeof(Leon), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Task *t = TaskCreate(Task_LeonInit, sizeof(Leon), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Leon *leon = TASK_DATA(t);
|
||||
Sprite *s = &leon->shared.s;
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ void Task_MirrorProjectile(void);
|
||||
void CreateEntity_Mirror(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
if ((LEVEL_TO_ZONE(gCurrentLevel) != ZONE_6) || (LOADED_SAVE->difficultyLevel == DIFFICULTY_NORMAL)) {
|
||||
struct Task *t = TaskCreate(Task_Mirror, sizeof(Mirror), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Task *t = TaskCreate(Task_Mirror, sizeof(Mirror), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Mirror *mirror = TASK_DATA(t);
|
||||
Sprite *s = &mirror->shared.s;
|
||||
|
||||
@@ -189,7 +189,7 @@ void Task_MirrorShoot(void)
|
||||
|
||||
void CreateMirrorProjectile(CamCoord worldX, CamCoord worldY, u8 dir)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_MirrorProjectile, sizeof(MirrorProjectile), 0x3000, 0, NULL);
|
||||
Task *t = TaskCreate(Task_MirrorProjectile, sizeof(MirrorProjectile), 0x3000, 0, NULL);
|
||||
MirrorProjectile *proj = TASK_DATA(t);
|
||||
Sprite *s = &proj->s;
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ void Task_Mole2(void);
|
||||
|
||||
void CreateEntity_Mole(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Mole *mole;
|
||||
Sprite *s;
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ void Task_OctProjectile(void);
|
||||
|
||||
void CreateEntity_Oct(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_OctInit, sizeof(Oct), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Task *t = TaskCreate(Task_OctInit, sizeof(Oct), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Oct *oct = TASK_DATA(t);
|
||||
Sprite *s = &oct->shared.s;
|
||||
|
||||
@@ -293,7 +293,7 @@ void sub_80706F0(void)
|
||||
|
||||
void CreateOctProjectile(CamCoord worldX, CamCoord worldY)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_OctProjectile, sizeof(OctProjectile), 0x3000, 0, NULL);
|
||||
Task *t = TaskCreate(Task_OctProjectile, sizeof(OctProjectile), 0x3000, 0, NULL);
|
||||
OctProjectile *proj = TASK_DATA(t);
|
||||
Sprite *s = &proj->s;
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ void Task_SnowballDebris(void);
|
||||
void CreateEntity_PenMk1(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
if (LEVEL_TO_ZONE(gCurrentLevel) != ZONE_4 || (LOADED_SAVE->difficultyLevel == DIFFICULTY_NORMAL)) {
|
||||
struct Task *t = TaskCreate(Task_PenMk1Main, sizeof(PenMk1), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Task *t = TaskCreate(Task_PenMk1Main, sizeof(PenMk1), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
PenMk1 *pen = TASK_DATA(t);
|
||||
Sprite *s = &pen->shared.s;
|
||||
|
||||
@@ -229,7 +229,7 @@ void Task_8073CC4(void)
|
||||
|
||||
void CreatePenMk1Snowball(CamCoord worldX, CamCoord worldY, u8 dir)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_PenMk1Snowball, sizeof(PenMk1Snowball), 0x3000, 0, NULL);
|
||||
Task *t = TaskCreate(Task_PenMk1Snowball, sizeof(PenMk1Snowball), 0x3000, 0, NULL);
|
||||
PenMk1Snowball *proj = TASK_DATA(t);
|
||||
Sprite *s = &proj->s;
|
||||
u8 sp08;
|
||||
@@ -414,7 +414,7 @@ END_NONMATCH
|
||||
|
||||
void CreatePenMk1SnowballDebris(CamCoord worldX, CamCoord worldY)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_SnowballDebris, sizeof(PenMk1Debris), 0x3000, 0, NULL);
|
||||
Task *t = TaskCreate(Task_SnowballDebris, sizeof(PenMk1Debris), 0x3000, 0, NULL);
|
||||
PenMk1Debris *proj = TASK_DATA(t);
|
||||
Sprite *s = &proj->s;
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ void Task_Pierrot(void);
|
||||
|
||||
void CreateEntity_Pierrot(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Pierrot *pierrot;
|
||||
Sprite *s;
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ void Task_806C9A0(void);
|
||||
|
||||
void CreateEntity_Rhinotank(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_RhinotankInit, sizeof(Rhinotank), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Task *t = TaskCreate(Task_RhinotankInit, sizeof(Rhinotank), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Rhinotank *rhinotank = TASK_DATA(t);
|
||||
Sprite *s = &rhinotank->shared.s;
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ void Task_8070CB4(void);
|
||||
|
||||
void CreateEntity_Senbon(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Senbon *senbon;
|
||||
Sprite *s;
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ void sub_806E7E0(void);
|
||||
void CreateEntity_Slot(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
if ((LEVEL_TO_ZONE(gCurrentLevel) != ZONE_3) || (LOADED_SAVE->difficultyLevel == DIFFICULTY_NORMAL)) {
|
||||
struct Task *t = TaskCreate(Task_SlotInit, sizeof(Slot), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Task *t = TaskCreate(Task_SlotInit, sizeof(Slot), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Slot *slot = TASK_DATA(t);
|
||||
Sprite *s = &slot->shared.s;
|
||||
|
||||
@@ -194,7 +194,7 @@ void sub_806E374(void)
|
||||
|
||||
void CreateSlotProjectile(s16 worldX, s16 worldY)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_SlotProjectileMain, sizeof(SlotProjectile), 0x3000, 0, NULL);
|
||||
Task *t = TaskCreate(Task_SlotProjectileMain, sizeof(SlotProjectile), 0x3000, 0, NULL);
|
||||
SlotProjectile *proj = TASK_DATA(t);
|
||||
Sprite *s = &proj->s;
|
||||
|
||||
|
||||
@@ -42,11 +42,11 @@ void Task_TentouMain(void);
|
||||
void sub_8074928(void);
|
||||
void CreateTentouProjectiles(s16 x, s16 y);
|
||||
void sub_8074C50(void);
|
||||
void TaskDestructor_TentouProjectiles(struct Task *);
|
||||
void TaskDestructor_TentouProjectiles(Task *);
|
||||
|
||||
void CreateEntity_Tentou(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_TentouMain, sizeof(Tentou), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Task *t = TaskCreate(Task_TentouMain, sizeof(Tentou), 0x2000, 0, TaskDestructor_EntityShared);
|
||||
Tentou *tentou = TASK_DATA(t);
|
||||
Sprite *s = &tentou->shared.s;
|
||||
|
||||
@@ -309,7 +309,7 @@ END_NONMATCH
|
||||
void CreateTentouProjectiles(s16 screenX, s16 screenY)
|
||||
{
|
||||
TentouProj *proj;
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
Sprite *s;
|
||||
s32 i;
|
||||
s32 v;
|
||||
@@ -391,7 +391,7 @@ void sub_8074C50(void)
|
||||
s->y = oldWorldY;
|
||||
}
|
||||
|
||||
void TaskDestructor_TentouProjectiles(struct Task *t)
|
||||
void TaskDestructor_TentouProjectiles(Task *t)
|
||||
{
|
||||
TentouProj *proj = TASK_DATA(t);
|
||||
VramFree(proj->s.graphics.dest);
|
||||
|
||||
@@ -31,11 +31,11 @@ typedef struct {
|
||||
} Wamu;
|
||||
|
||||
void Task_Wamu(void);
|
||||
void TaskDestructor_Wamu(struct Task *);
|
||||
void TaskDestructor_Wamu(Task *);
|
||||
|
||||
void CreateEntity_Wamu(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_Wamu, sizeof(Wamu), 0x2000, 0, TaskDestructor_Wamu);
|
||||
Task *t = TaskCreate(Task_Wamu, sizeof(Wamu), 0x2000, 0, TaskDestructor_Wamu);
|
||||
Wamu *wamu = TASK_DATA(t);
|
||||
Sprite *s = &wamu->s;
|
||||
#ifdef BUG_FIX
|
||||
@@ -340,7 +340,7 @@ NONMATCH("asm/non_matching/game/sa1/stage/enemies/Wamu__Task_Wamu.inc", void Tas
|
||||
}
|
||||
END_NONMATCH
|
||||
|
||||
void TaskDestructor_Wamu(struct Task *t)
|
||||
void TaskDestructor_Wamu(Task *t)
|
||||
{
|
||||
Wamu *wamu = TASK_DATA(t);
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ typedef struct {
|
||||
|
||||
void Task_YukimaruGroundInit(void);
|
||||
void Task_8071BFC(void);
|
||||
void TaskDestructor_YukimaruGround(struct Task *t);
|
||||
void TaskDestructor_YukimaruGround(Task *t);
|
||||
void CreateSnowball(s16, s16);
|
||||
void CreateSnowball2(s16, s16, u8);
|
||||
void Task_Snowball(void);
|
||||
@@ -43,11 +43,11 @@ void Task_Snowball2(void);
|
||||
|
||||
void Task_YukimaruWallInit(void);
|
||||
void Task_YukimaruWallInit2(void);
|
||||
void TaskDestructor_YukimaruWall(struct Task *t);
|
||||
void TaskDestructor_YukimaruWall(Task *t);
|
||||
|
||||
void CreateEntity_Yukimaru(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_YukimaruGroundInit, sizeof(Yukimaru), 0x2000, 0, TaskDestructor_YukimaruGround);
|
||||
Task *t = TaskCreate(Task_YukimaruGroundInit, sizeof(Yukimaru), 0x2000, 0, TaskDestructor_YukimaruGround);
|
||||
Yukimaru *yukimaru = TASK_DATA(t);
|
||||
Sprite *s = &yukimaru->s;
|
||||
|
||||
@@ -246,7 +246,7 @@ void Task_8071BFC(void)
|
||||
|
||||
void CreateSnowball(s16 worldX, s16 worldY)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_Snowball, sizeof(Snowball), 0x3000, 0, NULL);
|
||||
Task *t = TaskCreate(Task_Snowball, sizeof(Snowball), 0x3000, 0, NULL);
|
||||
Snowball *snowball = TASK_DATA(t);
|
||||
Sprite *s = &snowball->s;
|
||||
s32 speed = worldX * 4;
|
||||
@@ -314,7 +314,7 @@ void Task_Snowball(void)
|
||||
s->y = oldWorldY32;
|
||||
}
|
||||
|
||||
void TaskDestructor_YukimaruGround(struct Task *t)
|
||||
void TaskDestructor_YukimaruGround(Task *t)
|
||||
{
|
||||
Yukimaru *yukimaru = TASK_DATA(t);
|
||||
VramFree(yukimaru->s.graphics.dest);
|
||||
@@ -323,7 +323,7 @@ void TaskDestructor_YukimaruGround(struct Task *t)
|
||||
|
||||
void CreateEntity_Yukimaru_Wall(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
|
||||
if (me->d.sData[0] != 0) {
|
||||
t = TaskCreate(Task_YukimaruWallInit, sizeof(Yukimaru), 0x2000, 0, TaskDestructor_YukimaruWall);
|
||||
@@ -655,7 +655,7 @@ void sub_80727B4(void)
|
||||
|
||||
void CreateSnowball2(s16 worldX, s16 worldY, u8 param2)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_Snowball2, sizeof(Snowball), 0x3000, 0, NULL);
|
||||
Task *t = TaskCreate(Task_Snowball2, sizeof(Snowball), 0x3000, 0, NULL);
|
||||
Snowball *snowball = TASK_DATA(t);
|
||||
Sprite *s = &snowball->s;
|
||||
|
||||
@@ -724,7 +724,7 @@ void Task_Snowball2(void)
|
||||
s->y = oldWorldY;
|
||||
}
|
||||
|
||||
void TaskDestructor_YukimaruWall(struct Task *t)
|
||||
void TaskDestructor_YukimaruWall(Task *t)
|
||||
{
|
||||
Yukimaru *yukimaru = TASK_DATA(t);
|
||||
VramFree(yukimaru->s.graphics.dest);
|
||||
|
||||
@@ -72,7 +72,7 @@ END_NONMATCH
|
||||
|
||||
void CreateEntity_Interactable034(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_Interactable034, sizeof(IA034), 0x2000, 0, NULL);
|
||||
Task *t = TaskCreate(Task_Interactable034, sizeof(IA034), 0x2000, 0, NULL);
|
||||
IA034 *ia = TASK_DATA(t);
|
||||
s32 worldX, worldY;
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ void Task_Interactable039Main(void)
|
||||
|
||||
void CreateEntity_Interactable039(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_Interactable039Main, sizeof(IA039), 0x2000, 0, NULL);
|
||||
Task *t = TaskCreate(Task_Interactable039Main, sizeof(IA039), 0x2000, 0, NULL);
|
||||
IA039 *ia = TASK_DATA(t);
|
||||
s32 worldX, worldY;
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ void Task_Interactable096(void)
|
||||
|
||||
void CreateEntity_Interactable096(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_Interactable096, sizeof(IA096), 0x2000, 0, NULL);
|
||||
Task *t = TaskCreate(Task_Interactable096, sizeof(IA096), 0x2000, 0, NULL);
|
||||
IA096 *ia = TASK_DATA(t);
|
||||
|
||||
ia->base.regionX = regionX;
|
||||
|
||||
@@ -22,11 +22,11 @@ typedef struct {
|
||||
} IA107;
|
||||
|
||||
void Task_Interactable107(void);
|
||||
void TaskDestructor_SmallFallBlock(struct Task *t);
|
||||
void TaskDestructor_SmallFallBlock(Task *t);
|
||||
|
||||
void CreateEntity_Interactable107(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t;
|
||||
Task *t;
|
||||
IA107 *ia;
|
||||
s32 i;
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ void Task_Interactable113(void)
|
||||
|
||||
void CreateEntity_Interactable113(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_Interactable113, sizeof(IA113), 0x2000, 0, NULL);
|
||||
Task *t = TaskCreate(Task_Interactable113, sizeof(IA113), 0x2000, 0, NULL);
|
||||
IA113 *ia = TASK_DATA(t);
|
||||
|
||||
ia->base.regionX = regionX;
|
||||
|
||||
@@ -42,12 +42,12 @@ void Task_BubbleContainingAir(void);
|
||||
void sub_80914F8(CamCoord worldX, CamCoord worldY, u8 param2);
|
||||
void Task_809141C(void);
|
||||
void Task_80915F0(void);
|
||||
void TaskDestructor_AirBubbles(struct Task *t);
|
||||
void TaskDestructor_AirBubbleBig(struct Task *t);
|
||||
void TaskDestructor_AirBubbles(Task *t);
|
||||
void TaskDestructor_AirBubbleBig(Task *t);
|
||||
|
||||
void CreateEntity_AirBubbles(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_AirBubbles, sizeof(AirBubbles), 0x2000, 0, TaskDestructor_AirBubbles);
|
||||
Task *t = TaskCreate(Task_AirBubbles, sizeof(AirBubbles), 0x2000, 0, TaskDestructor_AirBubbles);
|
||||
AirBubbles *bubbles = TASK_DATA(t);
|
||||
Sprite *s = &bubbles->s;
|
||||
|
||||
@@ -116,7 +116,7 @@ void Task_AirBubbles(void)
|
||||
|
||||
void CreateBubbleContainingAir(CamCoord worldX, CamCoord worldY, u8 param2)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_BubbleContainingAir, sizeof(AirBubbleBig), 0x2000, 0, TaskDestructor_AirBubbleBig);
|
||||
Task *t = TaskCreate(Task_BubbleContainingAir, sizeof(AirBubbleBig), 0x2000, 0, TaskDestructor_AirBubbleBig);
|
||||
AirBubbleBig *bubbles = TASK_DATA(t);
|
||||
Sprite *s = &bubbles->s;
|
||||
MapEntity *me = bubbles->base.me;
|
||||
@@ -235,7 +235,7 @@ void Task_809141C(void)
|
||||
|
||||
void sub_80914F8(CamCoord worldX, CamCoord worldY, u8 param2)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_80915F0, sizeof(AirBubbleBig), 0x2000, 0, TaskDestructor_AirBubbleBig);
|
||||
Task *t = TaskCreate(Task_80915F0, sizeof(AirBubbleBig), 0x2000, 0, TaskDestructor_AirBubbleBig);
|
||||
AirBubbleBig *bubbles = TASK_DATA(t);
|
||||
Sprite *s = &bubbles->s;
|
||||
MapEntity *me = bubbles->base.me;
|
||||
@@ -289,13 +289,13 @@ void Task_80915F0(void)
|
||||
DisplaySprite(s);
|
||||
}
|
||||
|
||||
void TaskDestructor_AirBubbles(struct Task *t)
|
||||
void TaskDestructor_AirBubbles(Task *t)
|
||||
{
|
||||
AirBubbles *bubbles = TASK_DATA(t);
|
||||
VramFree(bubbles->s.graphics.dest);
|
||||
}
|
||||
|
||||
void TaskDestructor_AirBubbleBig(struct Task *t)
|
||||
void TaskDestructor_AirBubbleBig(Task *t)
|
||||
{
|
||||
AirBubbleBig *bubbles = TASK_DATA(t);
|
||||
|
||||
|
||||
@@ -21,11 +21,11 @@ typedef struct {
|
||||
} Booster;
|
||||
|
||||
void Task_Booster(void);
|
||||
void TaskDestructor_Booster(struct Task *);
|
||||
void TaskDestructor_Booster(Task *);
|
||||
|
||||
void CreateEntity_Booster(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_Booster, sizeof(Booster), 0x2000, 0, TaskDestructor_Booster);
|
||||
Task *t = TaskCreate(Task_Booster, sizeof(Booster), 0x2000, 0, TaskDestructor_Booster);
|
||||
Booster *booster = TASK_DATA(t);
|
||||
Sprite *s = &booster->s;
|
||||
|
||||
@@ -64,7 +64,7 @@ void CreateEntity_Booster(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
|
||||
void CreateEntity_Booster_SlightLeft(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_Booster, sizeof(Booster), 0x2000, 0, TaskDestructor_Booster);
|
||||
Task *t = TaskCreate(Task_Booster, sizeof(Booster), 0x2000, 0, TaskDestructor_Booster);
|
||||
Booster *booster = TASK_DATA(t);
|
||||
Sprite *s = &booster->s;
|
||||
|
||||
@@ -103,7 +103,7 @@ void CreateEntity_Booster_SlightLeft(MapEntity *me, u16 regionX, u16 regionY, u8
|
||||
|
||||
void CreateEntity_Booster_SlightRight(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_Booster, sizeof(Booster), 0x2000, 0, TaskDestructor_Booster);
|
||||
Task *t = TaskCreate(Task_Booster, sizeof(Booster), 0x2000, 0, TaskDestructor_Booster);
|
||||
Booster *booster = TASK_DATA(t);
|
||||
Sprite *s = &booster->s;
|
||||
|
||||
@@ -142,7 +142,7 @@ void CreateEntity_Booster_SlightRight(MapEntity *me, u16 regionX, u16 regionY, u
|
||||
|
||||
void CreateEntity_Booster_Wall(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_Booster, sizeof(Booster), 0x2000, 0, TaskDestructor_Booster);
|
||||
Task *t = TaskCreate(Task_Booster, sizeof(Booster), 0x2000, 0, TaskDestructor_Booster);
|
||||
Booster *booster = TASK_DATA(t);
|
||||
Sprite *s = &booster->s;
|
||||
|
||||
@@ -181,7 +181,7 @@ void CreateEntity_Booster_Wall(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
|
||||
void CreateEntity_Booster_Steep(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_Booster, sizeof(Booster), 0x2000, 0, TaskDestructor_Booster);
|
||||
Task *t = TaskCreate(Task_Booster, sizeof(Booster), 0x2000, 0, TaskDestructor_Booster);
|
||||
Booster *booster = TASK_DATA(t);
|
||||
Sprite *s = &booster->s;
|
||||
|
||||
@@ -220,7 +220,7 @@ void CreateEntity_Booster_Steep(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
|
||||
void CreateEntity_Booster_Steep2(MapEntity *me, u16 regionX, u16 regionY, u8 id)
|
||||
{
|
||||
struct Task *t = TaskCreate(Task_Booster, sizeof(Booster), 0x2000, 0, TaskDestructor_Booster);
|
||||
Task *t = TaskCreate(Task_Booster, sizeof(Booster), 0x2000, 0, TaskDestructor_Booster);
|
||||
Booster *booster = TASK_DATA(t);
|
||||
Sprite *s = &booster->s;
|
||||
|
||||
@@ -337,7 +337,7 @@ void Task_Booster(void)
|
||||
DisplaySprite(s);
|
||||
}
|
||||
|
||||
void TaskDestructor_Booster(struct Task *t)
|
||||
void TaskDestructor_Booster(Task *t)
|
||||
{
|
||||
Booster *booster = TASK_DATA(t);
|
||||
VramFree(booster->s.graphics.dest);
|
||||
|
||||
Loaded 100 of 399 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user