mirror of https://github.com/zeldaret/tmc.git
Merge branch 'master' into manager8
This commit is contained in:
commit
ccbbadcfd7
256
asm/manager5.s
256
asm/manager5.s
|
@ -1,256 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_08057AD0
|
||||
sub_08057AD0: @ 0x08057AD0
|
||||
push {lr}
|
||||
ldr r2, _08057AE4 @ =gUnk_08108044
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08057AE4: .4byte gUnk_08108044
|
||||
|
||||
thumb_func_start sub_08057AE8
|
||||
sub_08057AE8: @ 0x08057AE8
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r0, [r5, #0xb]
|
||||
movs r1, #3
|
||||
ands r1, r0
|
||||
lsls r1, r1, #1
|
||||
ldrb r0, [r5, #0xe]
|
||||
cmp r0, #1
|
||||
bne _08057B04
|
||||
ldr r0, _08057B00 @ =0x00000323
|
||||
strh r0, [r5, #0x30]
|
||||
b _08057B12
|
||||
.align 2, 0
|
||||
_08057B00: .4byte 0x00000323
|
||||
_08057B04:
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
movs r2, #0x36
|
||||
cmp r0, #0
|
||||
beq _08057B10
|
||||
movs r2, #0x37
|
||||
_08057B10:
|
||||
strh r2, [r5, #0x30]
|
||||
_08057B12:
|
||||
ldr r2, _08057B9C @ =gUnk_08108024
|
||||
lsls r3, r1, #1
|
||||
adds r0, r3, r2
|
||||
ldrh r0, [r0]
|
||||
movs r4, #0
|
||||
strh r0, [r5, #0x28]
|
||||
adds r1, #1
|
||||
lsls r1, r1, #1
|
||||
adds r2, r1, r2
|
||||
ldrh r0, [r2]
|
||||
strh r0, [r5, #0x2a]
|
||||
ldr r2, _08057BA0 @ =gUnk_08108034
|
||||
adds r3, r3, r2
|
||||
ldrh r0, [r3]
|
||||
strh r0, [r5, #0x2c]
|
||||
adds r1, r1, r2
|
||||
ldrh r0, [r1]
|
||||
strh r0, [r5, #0x2e]
|
||||
ldrb r2, [r5, #0xb]
|
||||
lsrs r0, r2, #2
|
||||
movs r1, #0xf
|
||||
ands r0, r1
|
||||
adds r0, #1
|
||||
strh r0, [r5, #0x32]
|
||||
movs r0, #0x1c
|
||||
strb r0, [r5, #0xe]
|
||||
strb r4, [r5, #0xf]
|
||||
movs r0, #0x80
|
||||
ands r0, r2
|
||||
movs r1, #1
|
||||
cmp r0, #0
|
||||
beq _08057B54
|
||||
movs r1, #2
|
||||
_08057B54:
|
||||
strb r1, [r5, #0xc]
|
||||
cmp r1, #2
|
||||
bne _08057B9A
|
||||
ldrh r0, [r5, #0x3e]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _08057B9A
|
||||
ldrh r0, [r5, #0x32]
|
||||
cmp r0, #0
|
||||
beq _08057B94
|
||||
_08057B6A:
|
||||
ldrh r1, [r5, #0x28]
|
||||
ldrh r2, [r5, #0x2a]
|
||||
adds r0, r5, #0
|
||||
bl sub_08057CA4
|
||||
ldrh r0, [r5, #0x30]
|
||||
movs r2, #0x38
|
||||
ldrsh r1, [r5, r2]
|
||||
movs r3, #0x3a
|
||||
ldrsh r2, [r5, r3]
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
ldrh r2, [r5, #0x3c]
|
||||
bl sub_0807B7D8
|
||||
ldrh r0, [r5, #0x32]
|
||||
subs r0, #1
|
||||
strh r0, [r5, #0x32]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _08057B6A
|
||||
_08057B94:
|
||||
adds r0, r5, #0
|
||||
bl DeleteManager
|
||||
_08057B9A:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08057B9C: .4byte gUnk_08108024
|
||||
_08057BA0: .4byte gUnk_08108034
|
||||
|
||||
thumb_func_start sub_08057BA4
|
||||
sub_08057BA4: @ 0x08057BA4
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08057C24
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
ldrh r0, [r4, #0x3e]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _08057BF6
|
||||
ldrh r0, [r4, #0x32]
|
||||
ldrb r1, [r4, #0xf]
|
||||
cmp r0, r1
|
||||
beq _08057C24
|
||||
ldrh r1, [r4, #0x28]
|
||||
ldrh r2, [r4, #0x2a]
|
||||
adds r0, r4, #0
|
||||
bl sub_08057CA4
|
||||
ldrh r0, [r4, #0x30]
|
||||
movs r2, #0x38
|
||||
ldrsh r1, [r4, r2]
|
||||
movs r3, #0x3a
|
||||
ldrsh r2, [r4, r3]
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
ldrh r2, [r4, #0x3c]
|
||||
bl sub_0807B7D8
|
||||
ldrb r0, [r4, #0xf]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
movs r0, #0x71
|
||||
bl PlaySFX
|
||||
b _08057C24
|
||||
_08057BF6:
|
||||
ldrb r0, [r4, #0xf]
|
||||
cmp r0, #0
|
||||
beq _08057C24
|
||||
movs r1, #0x38
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, #0x3a
|
||||
ldrsh r1, [r4, r2]
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
ldrh r1, [r4, #0x3c]
|
||||
bl sub_0807BA8C
|
||||
ldrh r1, [r4, #0x2c]
|
||||
ldrh r2, [r4, #0x2e]
|
||||
adds r0, r4, #0
|
||||
bl sub_08057CA4
|
||||
ldrb r0, [r4, #0xf]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
movs r0, #0x71
|
||||
bl PlaySFX
|
||||
_08057C24:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08057C28
|
||||
sub_08057C28: @ 0x08057C28
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xd]
|
||||
cmp r0, #0
|
||||
bne _08057C44
|
||||
ldrh r0, [r4, #0x3e]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _08057C9C
|
||||
ldrb r0, [r4, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xd]
|
||||
b _08057C9C
|
||||
_08057C44:
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08057C9C
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
ldrh r0, [r4, #0x32]
|
||||
ldrb r1, [r4, #0xf]
|
||||
cmp r0, r1
|
||||
beq _08057C88
|
||||
ldrh r1, [r4, #0x28]
|
||||
ldrh r2, [r4, #0x2a]
|
||||
adds r0, r4, #0
|
||||
bl sub_08057CA4
|
||||
ldrh r0, [r4, #0x30]
|
||||
movs r2, #0x38
|
||||
ldrsh r1, [r4, r2]
|
||||
movs r3, #0x3a
|
||||
ldrsh r2, [r4, r3]
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
ldrh r2, [r4, #0x3c]
|
||||
bl sub_0807B7D8
|
||||
ldrb r0, [r4, #0xf]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
movs r0, #0x71
|
||||
bl PlaySFX
|
||||
b _08057C9C
|
||||
_08057C88:
|
||||
ldrh r1, [r4, #0x30]
|
||||
ldr r0, _08057CA0 @ =0x00000323
|
||||
cmp r1, r0
|
||||
beq _08057C96
|
||||
movs r0, #0x72
|
||||
bl PlaySFX
|
||||
_08057C96:
|
||||
adds r0, r4, #0
|
||||
bl DeleteManager
|
||||
_08057C9C:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08057CA0: .4byte 0x00000323
|
||||
|
||||
thumb_func_start sub_08057CA4
|
||||
sub_08057CA4: @ 0x08057CA4
|
||||
ldrh r3, [r0, #0x38]
|
||||
adds r3, r3, r1
|
||||
strh r3, [r0, #0x38]
|
||||
ldrh r1, [r0, #0x3a]
|
||||
adds r1, r1, r2
|
||||
strh r1, [r0, #0x3a]
|
||||
bx lr
|
||||
.align 2, 0
|
202
asm/manager7.s
202
asm/manager7.s
|
@ -1,202 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_08057D50
|
||||
sub_08057D50: @ 0x08057D50
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #0
|
||||
bne _08057D7C
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x20
|
||||
movs r0, #0xff
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
movs r1, #6
|
||||
bl sub_0805E3A0
|
||||
ldr r1, _08057DC0 @ =sub_08057E30
|
||||
adds r0, r4, #0
|
||||
movs r2, #0
|
||||
bl sub_08052D74
|
||||
_08057D7C:
|
||||
adds r0, r4, #0
|
||||
bl sub_08057E40
|
||||
cmp r0, #0
|
||||
beq _08057D9A
|
||||
ldr r0, _08057DC4 @ =gRoomVars
|
||||
ldrb r5, [r0, #0x10]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x20
|
||||
ldrb r0, [r1]
|
||||
cmp r0, r5
|
||||
beq _08057D9A
|
||||
movs r0, #0
|
||||
strb r5, [r1]
|
||||
strb r0, [r4, #0xe]
|
||||
_08057D9A:
|
||||
ldr r0, _08057DC8 @ =gRoomControls
|
||||
ldrh r3, [r0]
|
||||
cmp r3, #0
|
||||
bne _08057E2A
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x20
|
||||
ldrb r5, [r0]
|
||||
lsls r1, r5, #6
|
||||
ldr r0, _08057DCC @ =gUnk_081080A4
|
||||
adds r2, r1, r0
|
||||
ldrb r1, [r4, #0xe]
|
||||
cmp r1, #7
|
||||
bgt _08057DD0
|
||||
cmp r1, #1
|
||||
bge _08057E04
|
||||
cmp r1, #0
|
||||
beq _08057DD6
|
||||
b _08057E2A
|
||||
.align 2, 0
|
||||
_08057DC0: .4byte sub_08057E30
|
||||
_08057DC4: .4byte gRoomVars
|
||||
_08057DC8: .4byte gRoomControls
|
||||
_08057DCC: .4byte gUnk_081080A4
|
||||
_08057DD0:
|
||||
cmp r1, #8
|
||||
beq _08057E20
|
||||
b _08057E2A
|
||||
_08057DD6:
|
||||
ldr r1, _08057DF8 @ =gUnk_02034490
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldr r0, [r2]
|
||||
ldr r1, _08057DFC @ =gGlobalGfxAndPalettes
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r2, #4]
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #5
|
||||
bl LoadAssetAsync
|
||||
ldr r0, _08057E00 @ =gUnk_081081E4
|
||||
adds r0, r5, r0
|
||||
ldrb r0, [r0]
|
||||
bl LoadPaletteGroup
|
||||
b _08057E24
|
||||
.align 2, 0
|
||||
_08057DF8: .4byte gUnk_02034490
|
||||
_08057DFC: .4byte gGlobalGfxAndPalettes
|
||||
_08057E00: .4byte gUnk_081081E4
|
||||
_08057E04:
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r2
|
||||
ldr r0, [r1]
|
||||
ldr r2, _08057E1C @ =gGlobalGfxAndPalettes
|
||||
adds r0, r0, r2
|
||||
ldr r1, [r1, #4]
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #5
|
||||
bl LoadAssetAsync
|
||||
b _08057E24
|
||||
.align 2, 0
|
||||
_08057E1C: .4byte gGlobalGfxAndPalettes
|
||||
_08057E20:
|
||||
ldr r0, _08057E2C @ =gUnk_02034490
|
||||
strb r3, [r0]
|
||||
_08057E24:
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
_08057E2A:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08057E2C: .4byte gUnk_02034490
|
||||
|
||||
thumb_func_start sub_08057E30
|
||||
sub_08057E30: @ 0x08057E30
|
||||
push {lr}
|
||||
ldr r0, _08057E3C @ =gRoomVars
|
||||
ldrb r0, [r0, #0x10]
|
||||
bl sub_08057E7C
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08057E3C: .4byte gRoomVars
|
||||
|
||||
thumb_func_start sub_08057E40
|
||||
sub_08057E40: @ 0x08057E40
|
||||
push {lr}
|
||||
ldr r0, _08057E54 @ =gUnk_08108050
|
||||
bl sub_08056300
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0xff
|
||||
bne _08057E58
|
||||
movs r0, #0
|
||||
b _08057E5E
|
||||
.align 2, 0
|
||||
_08057E54: .4byte gUnk_08108050
|
||||
_08057E58:
|
||||
ldr r0, _08057E60 @ =gRoomVars
|
||||
strb r1, [r0, #0x10]
|
||||
movs r0, #1
|
||||
_08057E5E:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08057E60: .4byte gRoomVars
|
||||
|
||||
thumb_func_start sub_08057E64
|
||||
sub_08057E64: @ 0x08057E64
|
||||
push {lr}
|
||||
ldr r0, _08057E78 @ =gUnk_08108050
|
||||
bl sub_08056300
|
||||
cmp r0, #0xff
|
||||
beq _08057E74
|
||||
bl sub_08057E7C
|
||||
_08057E74:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08057E78: .4byte gUnk_08108050
|
||||
|
||||
thumb_func_start sub_08057E7C
|
||||
sub_08057E7C: @ 0x08057E7C
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
cmp r4, #4
|
||||
bhi _08057EB6
|
||||
ldr r0, _08057EB8 @ =gUnk_081081E4
|
||||
adds r0, r4, r0
|
||||
ldrb r0, [r0]
|
||||
bl LoadPaletteGroup
|
||||
lsls r1, r4, #6
|
||||
ldr r0, _08057EBC @ =gUnk_081080A4
|
||||
adds r1, r1, r0
|
||||
movs r3, #0
|
||||
ldr r2, _08057EC0 @ =0x040000D4
|
||||
ldr r6, _08057EC4 @ =gGlobalGfxAndPalettes
|
||||
ldr r5, _08057EC8 @ =0x84000400
|
||||
_08057E9C:
|
||||
ldr r0, [r1]
|
||||
adds r0, r0, r6
|
||||
str r0, [r2]
|
||||
ldr r0, [r1, #4]
|
||||
str r0, [r2, #4]
|
||||
str r5, [r2, #8]
|
||||
ldr r0, [r2, #8]
|
||||
adds r3, #1
|
||||
adds r1, #8
|
||||
cmp r3, #7
|
||||
bls _08057E9C
|
||||
ldr r0, _08057ECC @ =gRoomVars
|
||||
strb r4, [r0, #0x10]
|
||||
_08057EB6:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08057EB8: .4byte gUnk_081081E4
|
||||
_08057EBC: .4byte gUnk_081080A4
|
||||
_08057EC0: .4byte 0x040000D4
|
||||
_08057EC4: .4byte gGlobalGfxAndPalettes
|
||||
_08057EC8: .4byte 0x84000400
|
||||
_08057ECC: .4byte gRoomVars
|
|
@ -99,39 +99,3 @@ gUnk_08107DA0:: @ 08107DA0
|
|||
|
||||
gUnk_08107DC0:: @ 08107DC0
|
||||
.incbin "baserom.gba", 0x107DC0, 0x0000264
|
||||
|
||||
gUnk_08108024:: @ 08108024
|
||||
.incbin "baserom.gba", 0x108024, 0x0000010
|
||||
|
||||
gUnk_08108034:: @ 08108034
|
||||
.incbin "baserom.gba", 0x108034, 0x0000010
|
||||
|
||||
gUnk_08108044:: @ 08108044
|
||||
.incbin "baserom.gba", 0x108044, 0x000000C
|
||||
|
||||
gUnk_08108050:: @ 08108050
|
||||
.incbin "baserom.gba", 0x108050, 0x000001E
|
||||
|
||||
gUnk_0810806E:: @ 0810806E
|
||||
.incbin "baserom.gba", 0x10806E, 0x0000036
|
||||
|
||||
gUnk_081080A4:: @ 081080A4
|
||||
.incbin "baserom.gba", 0x1080A4, 0x0000020
|
||||
|
||||
gUnk_081080C4:: @ 081080C4
|
||||
.incbin "baserom.gba", 0x1080C4, 0x0000043
|
||||
|
||||
gUnk_08108107:: @ 08108107
|
||||
.incbin "baserom.gba", 0x108107, 0x0000079
|
||||
|
||||
gUnk_08108180:: @ 08108180
|
||||
.incbin "baserom.gba", 0x108180, 0x0000064
|
||||
|
||||
gUnk_081081E4:: @ 081081E4
|
||||
.incbin "baserom.gba", 0x1081E4, 0x0000008
|
||||
|
||||
gUnk_081081EC:: @ 081081EC
|
||||
.incbin "baserom.gba", 0x1081EC, 0x0000008
|
||||
|
||||
gUnk_081081F4:: @ 081081F4
|
||||
.incbin "baserom.gba", 0x1081F4, 0x0000014
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_081081EC:: @ 081081EC
|
||||
.incbin "baserom.gba", 0x1081EC, 0x0000008
|
||||
|
||||
gUnk_081081F4:: @ 081081F4
|
||||
.incbin "baserom.gba", 0x1081F4, 0x0000014
|
|
@ -139,7 +139,7 @@ extern void sub_0804C2F0(void);
|
|||
extern void sub_0801AFE4(void);
|
||||
extern u32 sub_08060354(void);
|
||||
extern void sub_08057E64(void);
|
||||
extern void LoadAssetAsync(void*, u32, u32);
|
||||
extern void LoadAssetAsync(const void*, u32, u32);
|
||||
extern void LoadPaletteGroup(u32);
|
||||
extern void sub_0809F814(u32);
|
||||
extern void sub_080300E8(void);
|
||||
|
@ -268,4 +268,5 @@ extern void sub_08080CB4(Entity*);
|
|||
extern u32 GetTileTypeByEntity(Entity*);
|
||||
extern u32 sub_0800442E(Entity*);
|
||||
extern void sub_08081404(Entity*, u32);
|
||||
extern void sub_0807B7D8(u32, u32, u32);
|
||||
#endif
|
||||
|
|
|
@ -473,9 +473,9 @@ SECTIONS {
|
|||
asm/manager2.o(.text);
|
||||
src/manager/manager3.o(.text);
|
||||
src/manager/manager4.o(.text);
|
||||
asm/manager5.o(.text);
|
||||
src/manager/manager5.o(.text);
|
||||
src/manager/manager6.o(.text);
|
||||
asm/manager7.o(.text);
|
||||
src/manager/manager7.o(.text);
|
||||
src/manager/manager8.o(.text);
|
||||
asm/manager9.o(.text);
|
||||
src/manager/managerA.o(.text);
|
||||
|
@ -983,6 +983,9 @@ SECTIONS {
|
|||
data/metatile_headers.o(.rodata);
|
||||
data/map_headers.o(.rodata);
|
||||
data/data_08107BC8.o(.rodata);
|
||||
src/manager/manager5.o(.rodata);
|
||||
src/manager/manager7.o(.rodata);
|
||||
data/data_081081EC.o(.rodata);
|
||||
src/manager/managerB.o(.rodata);
|
||||
data/data_0810821C.o(.rodata);
|
||||
src/item.o(.rodata);
|
||||
|
|
|
@ -0,0 +1,129 @@
|
|||
#include "global.h"
|
||||
#include "manager.h"
|
||||
#include "flags.h"
|
||||
#include "functions.h"
|
||||
|
||||
|
||||
typedef struct {
|
||||
Manager manager;
|
||||
u8 unk_20[0x08];
|
||||
u16 unk_28;
|
||||
u16 unk_2a;
|
||||
u16 unk_2c;
|
||||
u16 unk_2e;
|
||||
u16 unk_30;
|
||||
u16 unk_32;
|
||||
u8 unk_34[0x04];
|
||||
s16 unk_38;
|
||||
s16 unk_3a;
|
||||
u16 unk_3c;
|
||||
u16 unk_3e;
|
||||
} Manager5;
|
||||
|
||||
void sub_08057AE8(Manager5*);
|
||||
void sub_08057BA4(Manager5*);
|
||||
void sub_08057C28(Manager5*);
|
||||
|
||||
const u16 gUnk_08108024[] = {
|
||||
0,
|
||||
-1,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
-1,
|
||||
0
|
||||
};
|
||||
const u16 gUnk_08108034[] = {
|
||||
0,
|
||||
1,
|
||||
-1,
|
||||
0,
|
||||
0,
|
||||
-1,
|
||||
1,
|
||||
0
|
||||
};
|
||||
|
||||
void (*const gUnk_08108044[])(Manager5*) = {
|
||||
sub_08057AE8,
|
||||
sub_08057BA4,
|
||||
sub_08057C28
|
||||
};
|
||||
|
||||
void sub_08057AD0(Manager5* this) {
|
||||
gUnk_08108044[this->manager.action](this);
|
||||
}
|
||||
|
||||
void sub_08057CA4(Manager5*, u32, u32);
|
||||
|
||||
extern void DeleteManager(Manager*);
|
||||
|
||||
void sub_08057AE8(Manager5* this) {
|
||||
u32 tmp;
|
||||
tmp = (this->manager.unk_0b & 0x3)<<1;
|
||||
if (this->manager.unk_0e == 1) {
|
||||
this->unk_30 = 0x323;
|
||||
} else {
|
||||
this->unk_30 = tmp & 2 ? 0x37 : 0x36;
|
||||
}
|
||||
this->unk_28 = gUnk_08108024[tmp];
|
||||
this->unk_2a = gUnk_08108024[tmp+1];
|
||||
this->unk_2c = gUnk_08108034[tmp];
|
||||
this->unk_2e = gUnk_08108034[tmp+1];
|
||||
this->unk_32 = ((this->manager.unk_0b>>2)&0xF)+1;
|
||||
this->manager.unk_0e = 0x1C;
|
||||
this->manager.unk_0f = 0;
|
||||
this->manager.action = (this->manager.unk_0b & 0x80)?2:1;
|
||||
if (this->manager.action != 2
|
||||
|| !CheckFlags(this->unk_3e)) return;
|
||||
for (;this->unk_32;this->unk_32--) {
|
||||
sub_08057CA4(this, this->unk_28, this->unk_2a);
|
||||
sub_0807B7D8(this->unk_30, this->unk_38 | (this->unk_3a << 6),this->unk_3c);
|
||||
}
|
||||
DeleteManager(&this->manager);
|
||||
}
|
||||
|
||||
void sub_08057BA4(Manager5* this) {
|
||||
if (--this->manager.unk_0e) return;
|
||||
this->manager.unk_0e = 8;
|
||||
if (CheckFlags(this->unk_3e)) {
|
||||
if (this->unk_32 == this->manager.unk_0f) return;
|
||||
sub_08057CA4(this, this->unk_28, this->unk_2a);
|
||||
sub_0807B7D8(this->unk_30, this->unk_38 | (this->unk_3a << 6), this->unk_3c);
|
||||
this->manager.unk_0f++;
|
||||
PlaySFX(0x71);
|
||||
} else {
|
||||
if (!this->manager.unk_0f) return;
|
||||
sub_0807BA8C(this->unk_38 | (this->unk_3a << 6), this->unk_3c);
|
||||
sub_08057CA4(this, this->unk_2c, this->unk_2e);
|
||||
this->manager.unk_0f--;
|
||||
PlaySFX(0x71);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08057C28(Manager5* this) {
|
||||
if (!this->manager.unk_0d) {
|
||||
if (!CheckFlags(this->unk_3e)) return;
|
||||
this->manager.unk_0d++;
|
||||
} else {
|
||||
if (--this->manager.unk_0e) return;
|
||||
this->manager.unk_0e = 8;
|
||||
if (this->unk_32 != this->manager.unk_0f) {
|
||||
sub_08057CA4(this, this->unk_28, this->unk_2a);
|
||||
sub_0807B7D8(this->unk_30, this->unk_38 | (this->unk_3a << 6), this->unk_3c);
|
||||
this->manager.unk_0f++;
|
||||
PlaySFX(0x71);
|
||||
} else {
|
||||
if (this->unk_30 != 0x323) {
|
||||
PlaySFX(0x72);
|
||||
}
|
||||
DeleteManager(&this->manager);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08057CA4(Manager5* this, u32 unk1, u32 unk2) {
|
||||
this->unk_38 += unk1;
|
||||
this->unk_3a += unk2;
|
||||
}
|
|
@ -0,0 +1,166 @@
|
|||
#include "global.h"
|
||||
#include "manager.h"
|
||||
#include "functions.h"
|
||||
#include "gba/gba.h"
|
||||
|
||||
|
||||
typedef struct {
|
||||
Manager manager;
|
||||
u8 unk_20;
|
||||
u8 unk_21[0x1F];
|
||||
} Manager7;
|
||||
|
||||
void sub_08057E30();
|
||||
u32 sub_08057E40();
|
||||
void sub_08057E64();
|
||||
void sub_08057E7C(u32);
|
||||
|
||||
extern void sub_08052D74();
|
||||
extern u32 sub_08056300(const u16*);
|
||||
extern void sub_0805E3A0();
|
||||
|
||||
extern u8 gUnk_02034490;
|
||||
extern const u8 gGlobalGfxAndPalettes[];
|
||||
|
||||
const u16 gUnk_08108050[0x2A] = {
|
||||
0, 0, 0x20, 0xE0,
|
||||
0xE0, 1, 0, 0x1D0,
|
||||
0x80, 0x60, 2, 0x170,
|
||||
0x278, 0xF8, 0xA0, 3,
|
||||
0x310, 0x178, 0xC0, 0x150,
|
||||
3, 0x340, 0x2C8, 0x60,
|
||||
0x90, 4, 0x1D0, 0,
|
||||
0x200, 0xE0, 1, 0x108,
|
||||
0x188, 0xD0, 0x80, 2,
|
||||
0x1E8, 0x338, 0x50, 0xC0,
|
||||
0xFF, 0
|
||||
};
|
||||
|
||||
const u32 gUnk_081080A4[0x50] = {
|
||||
0x001095E0, 0x06000000,
|
||||
0x0010A5E0, 0x06001000,
|
||||
0x0010B5E0, 0x06002000,
|
||||
0x0010C5E0, 0x06003000,
|
||||
0x0010D5E0, 0x06008000,
|
||||
0x0010E5E0, 0x06009000,
|
||||
0x0010F5E0, 0x0600A000,
|
||||
0x001105E0, 0x0600B000,
|
||||
0x001115E0, 0x06000000,
|
||||
0x001125E0, 0x06001000,
|
||||
0x001135E0, 0x06002000,
|
||||
0x001145E0, 0x06003000,
|
||||
0x001155E0, 0x06008000,
|
||||
0x001165E0, 0x06009000,
|
||||
0x001175E0, 0x0600A000,
|
||||
0x001185E0, 0x0600B000,
|
||||
0x001195E0, 0x06000000,
|
||||
0x0011A5E0, 0x06001000,
|
||||
0x0011B5E0, 0x06002000,
|
||||
0x0011C5E0, 0x06003000,
|
||||
0x0011D5E0, 0x06008000,
|
||||
0x0011E5E0, 0x06009000,
|
||||
0x0011F5E0, 0x0600A000,
|
||||
0x001205E0, 0x0600B000,
|
||||
0x001215E0, 0x06000000,
|
||||
0x001225E0, 0x06001000,
|
||||
0x001235E0, 0x06002000,
|
||||
0x001245E0, 0x06003000,
|
||||
0x001255E0, 0x06008000,
|
||||
0x001265E0, 0x06009000,
|
||||
0x001275E0, 0x0600A000,
|
||||
0x001285E0, 0x0600B000,
|
||||
0x001295E0, 0x06000000,
|
||||
0x0012A5E0, 0x06001000,
|
||||
0x0012B5E0, 0x06002000,
|
||||
0x0012C5E0, 0x06003000,
|
||||
0x0012D5E0, 0x06008000,
|
||||
0x0012E5E0, 0x06009000,
|
||||
0x0012F5E0, 0x0600A000,
|
||||
0x001305E0, 0x0600B000
|
||||
};
|
||||
|
||||
const u8 gUnk_081081E4[] = {
|
||||
0x16,
|
||||
0x17,
|
||||
0x17,
|
||||
0x18,
|
||||
0x18
|
||||
};
|
||||
|
||||
void Manager7_Main(Manager7* this) {
|
||||
u32 tmp;
|
||||
const u32 * tmp2;
|
||||
if (!this->manager.action) {
|
||||
this->manager.action = 1;
|
||||
this->manager.unk_0e = 8;
|
||||
this->unk_20 = 0xFF;
|
||||
sub_0805E3A0(this, 6);
|
||||
sub_08052D74(this, sub_08057E30, 0);
|
||||
}
|
||||
if (sub_08057E40(this)) {
|
||||
tmp = gRoomVars.unk_10;
|
||||
if (this->unk_20 != tmp) {
|
||||
this->unk_20 = tmp;
|
||||
this->manager.unk_0e = 0;
|
||||
}
|
||||
}
|
||||
if (gRoomControls.unk2) return;
|
||||
tmp = this->unk_20;
|
||||
tmp2 = &gUnk_081080A4[tmp<<4];
|
||||
switch (this->manager.unk_0e) {
|
||||
case 0:
|
||||
gUnk_02034490 = 1;
|
||||
LoadAssetAsync(&gGlobalGfxAndPalettes[tmp2[0]], tmp2[1], 0x1000);
|
||||
LoadPaletteGroup(gUnk_081081E4[tmp]);
|
||||
this->manager.unk_0e++;
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
LoadAssetAsync(&gGlobalGfxAndPalettes[tmp2[(this->manager.unk_0e << 1)]], tmp2[(this->manager.unk_0e << 1)+1], 0x1000);
|
||||
this->manager.unk_0e++;
|
||||
break;
|
||||
case 8:
|
||||
gUnk_02034490 = 0;
|
||||
this->manager.unk_0e++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08057E30(Manager7* this) {
|
||||
sub_08057E7C(gRoomVars.unk_10);
|
||||
}
|
||||
|
||||
u32 sub_08057E40(Manager7* this) {
|
||||
u32 tmp = sub_08056300(gUnk_08108050);
|
||||
if (tmp != 0xFF) {
|
||||
gRoomVars.unk_10 = tmp;
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08057E64() {
|
||||
u32 tmp;
|
||||
tmp = sub_08056300(gUnk_08108050);
|
||||
if (tmp != 0xFF) {
|
||||
sub_08057E7C(tmp);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08057E7C(u32 unk1) {
|
||||
u32 tmp;
|
||||
const u32* tmp2;
|
||||
if (unk1 > 4) return;
|
||||
LoadPaletteGroup(gUnk_081081E4[unk1]);
|
||||
tmp2 = &gUnk_081080A4[unk1<<4];
|
||||
for (tmp = 0; tmp < 8; tmp++, tmp2 += 2) {
|
||||
DmaSet(3,&gGlobalGfxAndPalettes[tmp2[0]],tmp2[1],0x84000400);
|
||||
}
|
||||
gRoomVars.unk_10 = unk1;
|
||||
}
|
Loading…
Reference in New Issue