sub_8144CA0

This commit is contained in:
PikalaxALT
2018-11-30 12:16:42 -05:00
parent de6cf9f0de
commit 7c2517611b
5 changed files with 117 additions and 219 deletions
-218
View File
@@ -5,224 +5,6 @@
.text
thumb_func_start sub_8144CA0
sub_8144CA0: @ 8144CA0
push {r4,lr}
adds r4, r0, 0
ldr r0, [r4, 0x10]
lsls r2, r0, 3
ldr r1, [r4, 0x1C]
adds r2, r1, r2
adds r0, 0x1
str r0, [r4, 0x10]
ldr r0, [r2]
cmp r0, 0x15
bls _08144CB8
b _08144E60
_08144CB8:
lsls r0, 2
ldr r1, _08144CC4 @ =_08144CC8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08144CC4: .4byte _08144CC8
.align 2, 0
_08144CC8:
.4byte _08144E60
.4byte _08144D20
.4byte _08144D28
.4byte _08144D38
.4byte _08144D70
.4byte _08144D78
.4byte _08144D62
.4byte _08144D6A
.4byte _08144DC6
.4byte _08144DF0
.4byte _08144DE8
.4byte _08144D8E
.4byte _08144DA4
.4byte _08144DBA
.4byte _08144DDC
.4byte _08144E18
.4byte _08144E1C
.4byte _08144E24
.4byte _08144E30
.4byte _08144D4E
.4byte _08144D3C
.4byte _08144E4C
_08144D20:
ldr r0, [r2, 0x4]
str r0, [r4, 0x4]
movs r0, 0x1
b _08144E5A
_08144D28:
adds r0, r4, 0
adds r0, 0x24
ldr r1, [r2, 0x4]
ldr r2, [r4, 0x18]
bl sub_81448AC
movs r0, 0x2
b _08144E5A
_08144D38:
movs r0, 0x3
b _08144E5A
_08144D3C:
adds r0, r4, 0
adds r0, 0x24
ldr r2, [r4, 0x14]
movs r1, 0x14
movs r3, 0
bl sub_8144888
movs r0, 0x3
b _08144E5A
_08144D4E:
ldrb r0, [r2, 0x4]
bl GetGameStat
adds r2, r0, 0
adds r0, r4, 0
movs r1, 0x12
bl sub_8144C00
movs r0, 0x3
b _08144E5A
_08144D62:
ldr r0, [r4, 0x4]
cmp r0, 0
bne _08144E60
b _08144D70
_08144D6A:
ldr r0, [r4, 0x4]
cmp r0, 0x1
bne _08144E60
_08144D70:
adds r0, r4, 0
bl sub_8144BE4
b _08144E60
_08144D78:
ldr r0, [r4, 0x20]
ldr r1, [r4, 0x18]
movs r2, 0x40
bl memcpy
movs r0, 0x5
str r0, [r4, 0x8]
movs r0, 0
str r0, [r4, 0xC]
movs r0, 0x2
b _08144E62
_08144D8E:
ldr r0, [r4, 0x20]
ldr r1, [r4, 0x18]
movs r2, 0x40
bl memcpy
movs r0, 0x5
str r0, [r4, 0x8]
movs r0, 0
str r0, [r4, 0xC]
movs r0, 0x3
b _08144E62
_08144DA4:
ldr r0, [r4, 0x20]
ldr r1, [r4, 0x18]
movs r2, 0x40
bl memcpy
movs r0, 0x5
str r0, [r4, 0x8]
movs r0, 0
str r0, [r4, 0xC]
movs r0, 0x5
b _08144E62
_08144DBA:
movs r0, 0x5
str r0, [r4, 0x8]
movs r0, 0
str r0, [r4, 0xC]
movs r0, 0x4
b _08144E62
_08144DC6:
ldr r0, [r4, 0x14]
bl sub_81442CC
adds r0, r4, 0
adds r0, 0x24
ldr r2, [r4, 0x14]
movs r1, 0x11
movs r3, 0x64
bl sub_8144888
b _08144E60
_08144DDC:
ldr r2, [r4, 0x4]
adds r0, r4, 0
movs r1, 0x13
bl sub_8144C00
b _08144E60
_08144DE8:
ldr r0, [r4, 0x18]
bl sub_8143F68
b _08144E60
_08144DF0:
ldr r0, [r4, 0x18]
bl sub_8143EF4
cmp r0, 0
bne _08144E0C
ldr r0, [r4, 0x18]
bl sub_8143DC8
adds r0, r4, 0
movs r1, 0x13
movs r2, 0
bl sub_8144C00
b _08144E60
_08144E0C:
adds r0, r4, 0
movs r1, 0x13
movs r2, 0x1
bl sub_8144C00
b _08144E60
_08144E18:
movs r0, 0x6
b _08144E5A
_08144E1C:
ldr r0, [r4, 0x18]
bl sub_8144254
b _08144E60
_08144E24:
ldr r0, [r4, 0x18]
movs r1, 0xFA
lsls r1, 2
bl sub_8069EA4
b _08144E60
_08144E30:
ldr r0, _08144E48 @ =gSaveBlock2Ptr
ldr r0, [r0]
movs r1, 0x94
lsls r1, 3
adds r0, r1
ldr r1, [r4, 0x18]
movs r2, 0xBC
bl memcpy
bl sub_80E7490
b _08144E60
.align 2, 0
_08144E48: .4byte gSaveBlock2Ptr
_08144E4C:
ldr r0, _08144E68 @ =gDecompressionBuffer
ldr r1, [r4, 0x18]
movs r2, 0x80
lsls r2, 3
bl memcpy
movs r0, 0x7
_08144E5A:
str r0, [r4, 0x8]
movs r0, 0
str r0, [r4, 0xC]
_08144E60:
movs r0, 0x1
_08144E62:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08144E68: .4byte gDecompressionBuffer
thumb_func_end sub_8144CA0
thumb_func_start sub_8144E6C
sub_8144E6C: @ 8144E6C
push {lr}
+1
View File
@@ -5,5 +5,6 @@
u16 sub_8164FCC(u8, u8);
void sub_80E7524(u32 *);
void sub_80E7490(void);
#endif //GUARD_BATTLE_TOWER_H
+5
View File
@@ -34,6 +34,11 @@ struct MEvent_Str_2
};
struct MysteryEventStruct * sub_8143D94(void);
bool32 sub_8143DC8(const struct MEventBuffer_3120_Sub * src);
bool32 sub_8143E1C(void);
bool32 sub_8143EF4(const u8 * src);
bool32 sub_8143F68(const struct MEventBuffer_32E0_Sub * data);
bool32 sub_8144254(const u16 * data);
void sub_81442CC(struct MEventStruct_Unk1442CC * data);
#endif //GUARD_MEVENT_H
+1
View File
@@ -63,5 +63,6 @@ bool32 sub_80991F8(void);
u8 *sub_8099244(void);
void sub_80992A0(u8 *script, u16 scriptSize);
bool32 sub_8069DFC(void);
void sub_8069EA4(u8 * script, u16 scriptSize);
#endif // GUARD_SCRIPT_H
+110 -1
View File
@@ -1,8 +1,12 @@
#include "global.h"
#include "malloc.h"
#include "decompress.h"
#include "util.h"
#include "link.h"
#include "link_rfu.h"
#include "overworld.h"
#include "script.h"
#include "battle_tower.h"
#include "mevent.h"
extern u16 gBlockRecvBuffer[][128];
@@ -97,7 +101,7 @@ void sub_8144888(struct mevent_srv_sub * srv, u32 a1, void * a2, u32 a3)
srv->unk_1C = a2;
}
void sub_81448AC(struct mevent_srv_sub * srv, u16 a1, void * a2)
void sub_81448AC(struct mevent_srv_sub * srv, u32 a1, void * a2)
{
srv->unk_00 = 0;
srv->unk_06 = a1;
@@ -358,3 +362,108 @@ u32 sub_8144C80(struct mevent_srv_ish * srv)
}
return 1;
}
u32 sub_8144CA0(struct mevent_srv_ish * srv)
{
u32 * r2 = (u32 *)srv->unk_1C + 2 * srv->unk_10;
++srv->unk_10;
switch (r2[0])
{
case 0:
break;
case 1:
srv->unk_04 = r2[1];
srv->unk_08 = 1;
srv->unk_0C = 0;
break;
case 2:
sub_81448AC(&srv->unk_24, r2[1], srv->unk_18);
srv->unk_08 = 2;
srv->unk_0C = 0;
break;
case 3:
srv->unk_08 = 3;
srv->unk_0C = 0;
break;
case 20:
sub_8144888(&srv->unk_24, 0x14, srv->unk_14, 0);
srv->unk_08 = 3;
srv->unk_0C = 0;
break;
case 19:
sub_8144C00(srv, 0x12, GetGameStat(r2[1]));
srv->unk_08 = 3;
srv->unk_0C = 0;
break;
case 6:
if (srv->unk_04 == 0)
sub_8144BE4(srv);
break;
case 7:
if (srv->unk_04 == 1)
sub_8144BE4(srv);
break;
case 4:
sub_8144BE4(srv);
break;
case 5:
memcpy(srv->unk_20, srv->unk_18, 0x40);
srv->unk_08 = 5;
srv->unk_0C = 0;
return 2;
case 11:
memcpy(srv->unk_20, srv->unk_18, 0x40);
srv->unk_08 = 5;
srv->unk_0C = 0;
return 3;
case 12:
memcpy(srv->unk_20, srv->unk_18, 0x40);
srv->unk_08 = 5;
srv->unk_0C = 0;
return 5;
case 13:
srv->unk_08 = 5;
srv->unk_0C = 0;
return 4;
case 8:
sub_81442CC(srv->unk_14);
sub_8144888(&srv->unk_24, 0x11, srv->unk_14, 0x64);
break;
case 14:
sub_8144C00(srv, 0x13, srv->unk_04);
break;
case 10:
sub_8143F68(srv->unk_18);
break;
case 9:
if (!sub_8143EF4(srv->unk_18))
{
sub_8143DC8(srv->unk_18);
sub_8144C00(srv, 0x13, 0);
}
else
sub_8144C00(srv, 0x13, 1);
break;
case 15:
srv->unk_08 = 6;
srv->unk_0C = 0;
break;
case 16:
sub_8144254(srv->unk_18);
break;
case 17:
sub_8069EA4(srv->unk_18, 1000);
break;
case 18:
memcpy(gSaveBlock2Ptr->unk_4A0, srv->unk_18, 0xbc);
sub_80E7490();
break;
case 21:
memcpy(gDecompressionBuffer, srv->unk_18, 0x400);
srv->unk_08 = 7;
srv->unk_0C = 0;
break;
}
return 1;
}