mirror of https://github.com/zeldaret/tmc.git
Decompile manager36
This commit is contained in:
parent
8418fa7c9c
commit
87038a31bf
|
@ -1,81 +0,0 @@
|
||||||
.include "asm/macros.inc"
|
|
||||||
|
|
||||||
.include "constants/constants.inc"
|
|
||||||
|
|
||||||
.syntax unified
|
|
||||||
|
|
||||||
.text
|
|
||||||
|
|
||||||
thumb_func_start Manager36_Main
|
|
||||||
Manager36_Main: @ 0x0805DDB4
|
|
||||||
push {lr}
|
|
||||||
adds r2, r0, #0
|
|
||||||
ldrb r0, [r2, #0xa]
|
|
||||||
lsls r0, r0, #2
|
|
||||||
ldr r1, _0805DDE0 @ =gUnk_08108DA8
|
|
||||||
adds r3, r0, r1
|
|
||||||
ldrb r0, [r2, #0xc]
|
|
||||||
adds r1, r0, #0
|
|
||||||
cmp r1, #0
|
|
||||||
bne _0805DDCE
|
|
||||||
adds r0, #1
|
|
||||||
strb r0, [r2, #0xc]
|
|
||||||
strb r1, [r2, #0xe]
|
|
||||||
_0805DDCE:
|
|
||||||
ldrb r0, [r2, #0xe]
|
|
||||||
cmp r0, #0
|
|
||||||
bne _0805DDE4
|
|
||||||
ldrh r0, [r3]
|
|
||||||
strb r0, [r2, #0xe]
|
|
||||||
ldrh r0, [r3, #2]
|
|
||||||
bl SoundReq
|
|
||||||
b _0805DDE8
|
|
||||||
.align 2, 0
|
|
||||||
_0805DDE0: .4byte gUnk_08108DA8
|
|
||||||
_0805DDE4:
|
|
||||||
subs r0, #1
|
|
||||||
strb r0, [r2, #0xe]
|
|
||||||
_0805DDE8:
|
|
||||||
pop {pc}
|
|
||||||
.align 2, 0
|
|
||||||
|
|
||||||
thumb_func_start sub_0805DDEC
|
|
||||||
sub_0805DDEC: @ 0x0805DDEC
|
|
||||||
push {r4, r5, lr}
|
|
||||||
adds r5, r1, #0
|
|
||||||
bl GetEmptyManager
|
|
||||||
adds r4, r0, #0
|
|
||||||
cmp r4, #0
|
|
||||||
beq _0805DE16
|
|
||||||
movs r0, #9
|
|
||||||
strb r0, [r4, #8]
|
|
||||||
movs r0, #0x36
|
|
||||||
strb r0, [r4, #9]
|
|
||||||
ldr r0, [r5, #4]
|
|
||||||
strb r0, [r4, #0xa]
|
|
||||||
adds r0, r4, #0
|
|
||||||
movs r1, #6
|
|
||||||
bl AppendEntityToList
|
|
||||||
adds r0, r4, #0
|
|
||||||
movs r1, #6
|
|
||||||
bl sub_0805E3A0
|
|
||||||
_0805DE16:
|
|
||||||
pop {r4, r5, pc}
|
|
||||||
|
|
||||||
thumb_func_start sub_0805DE18
|
|
||||||
sub_0805DE18: @ 0x0805DE18
|
|
||||||
push {lr}
|
|
||||||
sub sp, #4
|
|
||||||
ldr r3, [r1, #4]
|
|
||||||
movs r0, #0
|
|
||||||
str r0, [sp]
|
|
||||||
movs r0, #9
|
|
||||||
movs r1, #0x36
|
|
||||||
movs r2, #6
|
|
||||||
bl FindEntity
|
|
||||||
cmp r0, #0
|
|
||||||
beq _0805DE34
|
|
||||||
bl DeleteEntityAny
|
|
||||||
_0805DE34:
|
|
||||||
add sp, #4
|
|
||||||
pop {pc}
|
|
|
@ -130,7 +130,7 @@ _08066B40:
|
||||||
movs r0, #4
|
movs r0, #4
|
||||||
str r0, [r1, #4]
|
str r0, [r1, #4]
|
||||||
adds r0, r4, #0
|
adds r0, r4, #0
|
||||||
bl sub_0805DDEC
|
bl CreateManager36
|
||||||
b _08066B66
|
b _08066B66
|
||||||
_08066B52:
|
_08066B52:
|
||||||
adds r0, r4, #0
|
adds r0, r4, #0
|
||||||
|
@ -138,7 +138,7 @@ _08066B52:
|
||||||
ldr r1, [r0]
|
ldr r1, [r0]
|
||||||
str r2, [r1, #4]
|
str r2, [r1, #4]
|
||||||
adds r0, r4, #0
|
adds r0, r4, #0
|
||||||
bl sub_0805DE18
|
bl DeleteManager36
|
||||||
ldr r0, _08066B70 @ =0x0000021D
|
ldr r0, _08066B70 @ =0x0000021D
|
||||||
bl EnqueueSFX
|
bl EnqueueSFX
|
||||||
_08066B66:
|
_08066B66:
|
||||||
|
|
|
@ -17,5 +17,5 @@ SCRIPT_START script_0800AB08
|
||||||
_0807EA94
|
_0807EA94
|
||||||
TextboxNoOverlapFollowPos 0x165e, 0x000e
|
TextboxNoOverlapFollowPos 0x165e, 0x000e
|
||||||
_0807EA94
|
_0807EA94
|
||||||
CallWithArg sub_0805DDEC, 0x00000001
|
CallWithArg CreateManager36, 0x00000001
|
||||||
_0807F0C8 0xffff, 0x0000
|
_0807F0C8 0xffff, 0x0000
|
||||||
|
|
|
@ -8,7 +8,7 @@ SCRIPT_START script_0800AB6E
|
||||||
SetEntityPosition 0x0000, 0xffe0
|
SetEntityPosition 0x0000, 0xffe0
|
||||||
Call sub_0807F5C0
|
Call sub_0807F5C0
|
||||||
Wait 0x003c
|
Wait 0x003c
|
||||||
CallWithArg sub_0805DE18, 0x00000001
|
CallWithArg DeleteManager36, 0x00000001
|
||||||
_0807F0C8 0x0000, 0x0000
|
_0807F0C8 0x0000, 0x0000
|
||||||
Wait 0x003c
|
Wait 0x003c
|
||||||
_0807E5F8 0x00000002
|
_0807E5F8 0x00000002
|
||||||
|
|
|
@ -42,5 +42,5 @@ script_0800DBCA:
|
||||||
_0807E5F8 0x00000001
|
_0807E5F8 0x00000001
|
||||||
StopBgm
|
StopBgm
|
||||||
Call sub_08094F98
|
Call sub_08094F98
|
||||||
CallWithArg sub_0805DDEC, 0x00000001
|
CallWithArg CreateManager36, 0x00000001
|
||||||
_0807F0C8 0xffff, 0x0000
|
_0807F0C8 0xffff, 0x0000
|
||||||
|
|
|
@ -11,7 +11,7 @@ SCRIPT_START script_0800DC4C
|
||||||
_0807E778 0x0004
|
_0807E778 0x0004
|
||||||
_0807E80C 0x00000000
|
_0807E80C 0x00000000
|
||||||
WaitFor_2
|
WaitFor_2
|
||||||
CallWithArg sub_0805DE18, 0x00000001
|
CallWithArg DeleteManager36, 0x00000001
|
||||||
_0807F0C8 0x0000, 0x0000
|
_0807F0C8 0x0000, 0x0000
|
||||||
SetLocalFlag 0x0079
|
SetLocalFlag 0x0079
|
||||||
CallWithArg sub_0806DA1C, 0x00000002
|
CallWithArg sub_0806DA1C, 0x00000002
|
||||||
|
|
|
@ -135,5 +135,5 @@ SCRIPT_START script_08010BEC
|
||||||
_0807E5F8 0x08000000
|
_0807E5F8 0x08000000
|
||||||
_0807E5F8 0x00800000
|
_0807E5F8 0x00800000
|
||||||
WaitForSomething2 0x01000000
|
WaitForSomething2 0x01000000
|
||||||
CallWithArg sub_0805DDEC, 0x00000002
|
CallWithArg CreateManager36, 0x00000002
|
||||||
_0807F0C8 0xffff, 0x0000
|
_0807F0C8 0xffff, 0x0000
|
||||||
|
|
|
@ -24,7 +24,7 @@ SCRIPT_START script_08010E5A
|
||||||
_0807E778 0x0002
|
_0807E778 0x0002
|
||||||
DoFade6
|
DoFade6
|
||||||
WaitFor_2
|
WaitFor_2
|
||||||
CallWithArg sub_0805DE18, 0x00000002
|
CallWithArg DeleteManager36, 0x00000002
|
||||||
_0807F0C8 0x0000, 0x0000
|
_0807F0C8 0x0000, 0x0000
|
||||||
Call sub_0806DC3C
|
Call sub_0806DC3C
|
||||||
Call sub_080791BC
|
Call sub_080791BC
|
||||||
|
@ -51,5 +51,5 @@ SCRIPT_START script_08010E5A
|
||||||
_0807EA94
|
_0807EA94
|
||||||
TextboxNoOverlapFollowPos 0x1046, 0x0000
|
TextboxNoOverlapFollowPos 0x1046, 0x0000
|
||||||
_0807EA94
|
_0807EA94
|
||||||
CallWithArg sub_0805DDEC, 0x00000002
|
CallWithArg CreateManager36, 0x00000002
|
||||||
_0807F0C8 0xffff, 0x0000
|
_0807F0C8 0xffff, 0x0000
|
||||||
|
|
|
@ -22,7 +22,7 @@ SCRIPT_START script_08010F84
|
||||||
Wait 0x000f
|
Wait 0x000f
|
||||||
PlaySound SFX_125
|
PlaySound SFX_125
|
||||||
CallWithArg sub_0807FB28, 0x00000003
|
CallWithArg sub_0807FB28, 0x00000003
|
||||||
CallWithArg sub_0805DE18, 0x00000002
|
CallWithArg DeleteManager36, 0x00000002
|
||||||
_0807F0C8 0x0000, 0x0000
|
_0807F0C8 0x0000, 0x0000
|
||||||
_0807E5F8 0x00000010
|
_0807E5F8 0x00000010
|
||||||
WaitForSomething2 0x00000020
|
WaitForSomething2 0x00000020
|
||||||
|
|
|
@ -34,7 +34,7 @@ script_080134F8:
|
||||||
CallWithArg sub_08095D8C, script_08014118
|
CallWithArg sub_08095D8C, script_08014118
|
||||||
EndBlock
|
EndBlock
|
||||||
Wait 0x003c
|
Wait 0x003c
|
||||||
CallWithArg sub_0805DDEC, 0x00000000
|
CallWithArg CreateManager36, 0x00000000
|
||||||
_0807E5F8 0x00000200
|
_0807E5F8 0x00000200
|
||||||
WaitForSomething2 0x00002000
|
WaitForSomething2 0x00002000
|
||||||
PlaySound SFX_1D2
|
PlaySound SFX_1D2
|
||||||
|
@ -44,7 +44,7 @@ script_080134F8:
|
||||||
WaitForSomething2 0x00004000
|
WaitForSomething2 0x00004000
|
||||||
Wait 0x0078
|
Wait 0x0078
|
||||||
_0807E5F8 0x00000060
|
_0807E5F8 0x00000060
|
||||||
CallWithArg sub_0805DE18, 0x00000000
|
CallWithArg DeleteManager36, 0x00000000
|
||||||
Wait 0x0078
|
Wait 0x0078
|
||||||
_0807E5F8 0x00000080
|
_0807E5F8 0x00000080
|
||||||
WaitForSomething2 0x00000100
|
WaitForSomething2 0x00000100
|
||||||
|
@ -69,5 +69,5 @@ script_080134F8:
|
||||||
TextboxNoOverlapFollowPos 0x0503, 0x000c
|
TextboxNoOverlapFollowPos 0x0503, 0x000c
|
||||||
_0807EA94
|
_0807EA94
|
||||||
_0807E5F8 0x00040000
|
_0807E5F8 0x00040000
|
||||||
CallWithArg sub_0805DDEC, 0x00000001
|
CallWithArg CreateManager36, 0x00000001
|
||||||
_0807F0C8 0xffff, 0x0000
|
_0807F0C8 0xffff, 0x0000
|
||||||
|
|
|
@ -7,7 +7,7 @@ SCRIPT_START script_08013650
|
||||||
Wait 0x003c
|
Wait 0x003c
|
||||||
_0807E5F8 0x00000004
|
_0807E5F8 0x00000004
|
||||||
Wait 0x0078
|
Wait 0x0078
|
||||||
CallWithArg sub_0805DE18, 0x00000001
|
CallWithArg DeleteManager36, 0x00000001
|
||||||
_0807F0C8 0x0000, 0x0000
|
_0807F0C8 0x0000, 0x0000
|
||||||
StartPlayerScript script_080136B4
|
StartPlayerScript script_080136B4
|
||||||
WaitForSomething2 0x00000002
|
WaitForSomething2 0x00000002
|
||||||
|
|
|
@ -35,7 +35,7 @@ script_0801373C:
|
||||||
CallWithArg sub_08095D8C, script_08014154
|
CallWithArg sub_08095D8C, script_08014154
|
||||||
EndBlock
|
EndBlock
|
||||||
Wait 0x003c
|
Wait 0x003c
|
||||||
CallWithArg sub_0805DDEC, 0x00000000
|
CallWithArg CreateManager36, 0x00000000
|
||||||
_0807E5F8 0x00000200
|
_0807E5F8 0x00000200
|
||||||
WaitForSomething2 0x00002000
|
WaitForSomething2 0x00002000
|
||||||
PlaySound SFX_1D2
|
PlaySound SFX_1D2
|
||||||
|
@ -47,7 +47,7 @@ script_0801373C:
|
||||||
WaitForSomething2 0x00008000
|
WaitForSomething2 0x00008000
|
||||||
Wait 0x0078
|
Wait 0x0078
|
||||||
_0807E5F8 0x00000060
|
_0807E5F8 0x00000060
|
||||||
CallWithArg sub_0805DE18, 0x00000000
|
CallWithArg DeleteManager36, 0x00000000
|
||||||
Wait 0x0078
|
Wait 0x0078
|
||||||
_0807E5F8 0x00000080
|
_0807E5F8 0x00000080
|
||||||
WaitForSomething2 0x00000100
|
WaitForSomething2 0x00000100
|
||||||
|
|
|
@ -37,7 +37,7 @@ script_080138D0:
|
||||||
CallWithArg sub_08095D8C, script_08014198
|
CallWithArg sub_08095D8C, script_08014198
|
||||||
EndBlock
|
EndBlock
|
||||||
Wait 0x003c
|
Wait 0x003c
|
||||||
CallWithArg sub_0805DDEC, 0x00000000
|
CallWithArg CreateManager36, 0x00000000
|
||||||
_0807E5F8 0x00000200
|
_0807E5F8 0x00000200
|
||||||
WaitForSomething2 0x00002000
|
WaitForSomething2 0x00002000
|
||||||
PlaySound SFX_1D2
|
PlaySound SFX_1D2
|
||||||
|
@ -51,7 +51,7 @@ script_080138D0:
|
||||||
WaitForSomething2 0x00010000
|
WaitForSomething2 0x00010000
|
||||||
Wait 0x0078
|
Wait 0x0078
|
||||||
_0807E5F8 0x00000060
|
_0807E5F8 0x00000060
|
||||||
CallWithArg sub_0805DE18, 0x00000000
|
CallWithArg DeleteManager36, 0x00000000
|
||||||
Wait 0x0078
|
Wait 0x0078
|
||||||
_0807E5F8 0x00000080
|
_0807E5F8 0x00000080
|
||||||
WaitForSomething2 0x00000100
|
WaitForSomething2 0x00000100
|
||||||
|
@ -93,5 +93,5 @@ script_08013A8E:
|
||||||
CheckRoomFlag 0x0004
|
CheckRoomFlag 0x0004
|
||||||
JumpIfNot script_08013A8E
|
JumpIfNot script_08013A8E
|
||||||
.endif
|
.endif
|
||||||
CallWithArg sub_0805DDEC, 0x00000001
|
CallWithArg CreateManager36, 0x00000001
|
||||||
_0807F0C8 0xffff, 0x0000
|
_0807F0C8 0xffff, 0x0000
|
||||||
|
|
|
@ -9,7 +9,7 @@ SCRIPT_START script_08013AA6
|
||||||
.endif
|
.endif
|
||||||
_0807E5F8 0x00000008
|
_0807E5F8 0x00000008
|
||||||
Wait 0x0078
|
Wait 0x0078
|
||||||
CallWithArg sub_0805DE18, 0x00000001
|
CallWithArg DeleteManager36, 0x00000001
|
||||||
_0807F0C8 0x0000, 0x0000
|
_0807F0C8 0x0000, 0x0000
|
||||||
Wait 0x003c
|
Wait 0x003c
|
||||||
_0807F0B4 0x0004
|
_0807F0B4 0x0004
|
||||||
|
|
|
@ -32,5 +32,5 @@ SCRIPT_START script_080153EC
|
||||||
_0807EA94
|
_0807EA94
|
||||||
TextboxNoOverlapFollowPos 0x1310, 0x000c
|
TextboxNoOverlapFollowPos 0x1310, 0x000c
|
||||||
_0807EA94
|
_0807EA94
|
||||||
CallWithArg sub_0805DDEC, 0x00000001
|
CallWithArg CreateManager36, 0x00000001
|
||||||
_0807F0C8 0xffff, 0x0000
|
_0807F0C8 0xffff, 0x0000
|
||||||
|
|
|
@ -11,7 +11,7 @@ SCRIPT_START script_0801548E
|
||||||
WaitForSomething2 0x00010000
|
WaitForSomething2 0x00010000
|
||||||
_0807E5F8 0x00048000
|
_0807E5F8 0x00048000
|
||||||
WaitForSomething2 0x00010000
|
WaitForSomething2 0x00010000
|
||||||
CallWithArg sub_0805DE18, 0x00000001
|
CallWithArg DeleteManager36, 0x00000001
|
||||||
_0807F0C8 0x0000, 0x0000
|
_0807F0C8 0x0000, 0x0000
|
||||||
TextboxNoOverlapFollowPos 0x1312, 0x000c
|
TextboxNoOverlapFollowPos 0x1312, 0x000c
|
||||||
_0807EA94
|
_0807EA94
|
||||||
|
|
|
@ -5,13 +5,13 @@ SCRIPT_START script_08015618
|
||||||
Call sub_08094B80
|
Call sub_08094B80
|
||||||
EndBlock
|
EndBlock
|
||||||
WaitForSomething2 0x00000080
|
WaitForSomething2 0x00000080
|
||||||
CallWithArg sub_0805DDEC, 0x00000003
|
CallWithArg CreateManager36, 0x00000003
|
||||||
Call sub_08094B0C
|
Call sub_08094B0C
|
||||||
_0807EDD4 0x0078, 0x0068
|
_0807EDD4 0x0078, 0x0068
|
||||||
_0807E5F8 0x00000100
|
_0807E5F8 0x00000100
|
||||||
WaitForSomething2 0x00000080
|
WaitForSomething2 0x00000080
|
||||||
_0807EF3C 0xff80, 0x0000
|
_0807EF3C 0xff80, 0x0000
|
||||||
CallWithArg sub_0805DE18, 0x00000003
|
CallWithArg DeleteManager36, 0x00000003
|
||||||
Wait 0x003c
|
Wait 0x003c
|
||||||
_0807E5F8 0x00000100
|
_0807E5F8 0x00000100
|
||||||
WaitForSomething2 0x00000080
|
WaitForSomething2 0x00000080
|
||||||
|
|
|
@ -265,4 +265,6 @@ Entity* FindNextDuplicateID(Entity* ent, int listIndex);
|
||||||
*/
|
*/
|
||||||
Entity* FindEntity(u32 kind, u32 id, u32 listIndex, u32 type, u32 type2);
|
Entity* FindEntity(u32 kind, u32 id, u32 listIndex, u32 type, u32 type2);
|
||||||
|
|
||||||
|
void DeleteEntityAny(Entity* ent);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -193,7 +193,7 @@ extern void Manager32_Main(Entity*);
|
||||||
extern void Manager33_Main(Entity*);
|
extern void Manager33_Main(Entity*);
|
||||||
extern void Manager34_Main(Entity*);
|
extern void Manager34_Main(Entity*);
|
||||||
extern void Manager35_Main(Entity*);
|
extern void Manager35_Main(Entity*);
|
||||||
extern void Manager36_Main(Entity*);
|
extern void Manager36_Main(Manager*);
|
||||||
extern void Manager37_Main(Entity*);
|
extern void Manager37_Main(Entity*);
|
||||||
extern void Manager38_Main(Entity*);
|
extern void Manager38_Main(Entity*);
|
||||||
extern void Manager39_Main();
|
extern void Manager39_Main();
|
||||||
|
|
|
@ -555,7 +555,7 @@ SECTIONS {
|
||||||
asm/manager33.o(.text);
|
asm/manager33.o(.text);
|
||||||
asm/manager34.o(.text);
|
asm/manager34.o(.text);
|
||||||
asm/manager35.o(.text);
|
asm/manager35.o(.text);
|
||||||
asm/manager36.o(.text);
|
src/manager/manager36.o(.text);
|
||||||
asm/manager37.o(.text);
|
asm/manager37.o(.text);
|
||||||
src/manager/manager38.o(.text);
|
src/manager/manager38.o(.text);
|
||||||
src/manager/manager39.o(.text);
|
src/manager/manager39.o(.text);
|
||||||
|
|
|
@ -49,7 +49,6 @@ typedef struct {
|
||||||
extern struct_03003DD0 gUnk_03003DD0;
|
extern struct_03003DD0 gUnk_03003DD0;
|
||||||
extern u32 _call_via_r0(u32*);
|
extern u32 _call_via_r0(u32*);
|
||||||
extern u32 _EntUpdate;
|
extern u32 _EntUpdate;
|
||||||
void DeleteEntityAny(Entity*);
|
|
||||||
|
|
||||||
void DeleteThisEntity(void) {
|
void DeleteThisEntity(void) {
|
||||||
DeleteEntityAny(gUnk_03003DD0.field_0x8);
|
DeleteEntityAny(gUnk_03003DD0.field_0x8);
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
#include "manager.h"
|
||||||
|
#include "audio.h"
|
||||||
|
#include "script.h"
|
||||||
|
#include "functions.h"
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
u16 waitTime;
|
||||||
|
u16 sound;
|
||||||
|
} Manager36_unk;
|
||||||
|
|
||||||
|
extern Manager36_unk gUnk_08108DA8[];
|
||||||
|
|
||||||
|
// Repeatedly plays the same sound with a fixed wait time
|
||||||
|
void Manager36_Main(Manager* manager) {
|
||||||
|
Manager36_unk* unk = &gUnk_08108DA8[manager->unk_0a];
|
||||||
|
if (manager->action == 0) {
|
||||||
|
manager->action += 1;
|
||||||
|
manager->unk_0e = 0;
|
||||||
|
}
|
||||||
|
if (manager->unk_0e == 0) {
|
||||||
|
manager->unk_0e = unk->waitTime;
|
||||||
|
SoundReq(unk->sound);
|
||||||
|
} else {
|
||||||
|
manager->unk_0e -= 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CreateManager36(Entity* entity, ScriptExecutionContext* context) {
|
||||||
|
Manager* manager = GetEmptyManager();
|
||||||
|
if (manager != NULL) {
|
||||||
|
manager->type = 9;
|
||||||
|
manager->subtype = 0x36;
|
||||||
|
manager->unk_0a = context->intVariable;
|
||||||
|
AppendEntityToList((Entity*)manager, 6);
|
||||||
|
sub_0805E3A0(manager, 6);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DeleteManager36(Entity* entity, ScriptExecutionContext* context) {
|
||||||
|
Entity* manager = FindEntity(9, 0x36, 6, context->intVariable, 0);
|
||||||
|
if (manager != NULL) {
|
||||||
|
DeleteEntityAny(manager);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue