through sub_81113E4

This commit is contained in:
PikalaxALT
2018-10-11 15:06:35 -04:00
parent 21224433ab
commit 1fd187fb57
5 changed files with 65 additions and 208 deletions
-206
View File
@@ -5,212 +5,6 @@
.text
thumb_func_start sub_8111274
sub_8111274: @ 8111274
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 24
cmp r1, 0
bne _081112D4
ldr r3, _081112C8 @ =gSaveBlock1Ptr
ldr r2, [r3]
movs r0, 0xCD
lsls r0, 3
adds r1, r4, 0
muls r1, r0
adds r0, r2, r1
ldr r4, _081112CC @ =0x00001301
adds r0, r4
ldrb r0, [r0]
strb r0, [r2, 0x4]
ldr r2, [r3]
adds r0, r2, r1
adds r4, 0x1
adds r0, r4
ldrb r0, [r0]
strb r0, [r2, 0x5]
ldr r2, [r3]
adds r0, r2, r1
adds r4, 0x1
adds r0, r4
ldrb r0, [r0]
strb r0, [r2, 0x6]
ldr r2, [r3]
adds r1, r2, r1
ldr r3, _081112D0 @ =0x00001304
adds r0, r1, r3
ldrh r0, [r0]
strh r0, [r2]
adds r4, 0x3
adds r1, r4
ldrh r0, [r1]
strh r0, [r2, 0x2]
b _08111336
.align 2, 0
_081112C8: .4byte gSaveBlock1Ptr
_081112CC: .4byte 0x00001301
_081112D0: .4byte 0x00001304
_081112D4:
ldr r0, _08111340 @ =gSaveBlock1Ptr
ldr r3, [r0]
movs r0, 0xCD
lsls r0, 3
muls r0, r4
adds r3, r0
ldr r1, _08111344 @ =0x00001301
adds r0, r3, r1
ldrb r2, [r0]
ldr r0, _08111348 @ =0xffffff00
ldr r1, [sp]
ands r1, r0
orrs r1, r2
str r1, [sp]
ldr r2, _0811134C @ =0x00001302
adds r0, r3, r2
ldrb r0, [r0]
lsls r0, 8
ldr r2, _08111350 @ =0xffff00ff
ands r2, r1
orrs r2, r0
str r2, [sp]
ldr r4, _08111354 @ =0x00001303
adds r0, r3, r4
ldrb r1, [r0]
lsls r1, 16
ldr r0, _08111358 @ =0xff00ffff
ands r0, r2
orrs r0, r1
str r0, [sp]
ldr r1, _0811135C @ =0x00001304
adds r0, r3, r1
ldrh r1, [r0]
ldr r0, _08111360 @ =0xffff0000
ldr r2, [sp, 0x4]
ands r2, r0
orrs r2, r1
str r2, [sp, 0x4]
adds r4, 0x3
adds r3, r4
ldrh r1, [r3]
lsls r1, 16
ldr r0, _08111364 @ =0x0000ffff
ands r0, r2
orrs r0, r1
str r0, [sp, 0x4]
mov r0, sp
bl sub_8055D5C
_08111336:
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08111340: .4byte gSaveBlock1Ptr
_08111344: .4byte 0x00001301
_08111348: .4byte 0xffffff00
_0811134C: .4byte 0x00001302
_08111350: .4byte 0xffff00ff
_08111354: .4byte 0x00001303
_08111358: .4byte 0xff00ffff
_0811135C: .4byte 0x00001304
_08111360: .4byte 0xffff0000
_08111364: .4byte 0x0000ffff
thumb_func_end sub_8111274
thumb_func_start sub_8111368
sub_8111368: @ 8111368
push {lr}
ldr r1, _081113A0 @ =gUnknown_203ADFA
movs r0, 0x2
strb r0, [r1]
bl sub_806E6FC
bl sub_809A2DC
bl sub_809A2A4
bl sub_8110AC8
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081113B4
ldr r0, _081113A4 @ =gUnknown_203ADF8
ldrb r0, [r0]
movs r1, 0
bl sub_8111274
ldr r1, _081113A8 @ =gUnknown_3005024
ldr r0, _081113AC @ =sub_8111038
str r0, [r1]
ldr r0, _081113B0 @ =sub_80572A8
bl SetMainCallback2
b _081113CE
.align 2, 0
_081113A0: .4byte gUnknown_203ADFA
_081113A4: .4byte gUnknown_203ADF8
_081113A8: .4byte gUnknown_3005024
_081113AC: .4byte sub_8111038
_081113B0: .4byte sub_80572A8
_081113B4:
ldr r0, _081113D4 @ =gUnknown_203ADF8
ldrb r0, [r0]
movs r1, 0x1
bl sub_8111274
bl warp_in
ldr r1, _081113D8 @ =gUnknown_3005024
ldr r0, _081113DC @ =sub_8111000
str r0, [r1]
ldr r0, _081113E0 @ =sub_805726C
bl SetMainCallback2
_081113CE:
pop {r0}
bx r0
.align 2, 0
_081113D4: .4byte gUnknown_203ADF8
_081113D8: .4byte gUnknown_3005024
_081113DC: .4byte sub_8111000
_081113E0: .4byte sub_805726C
thumb_func_end sub_8111368
thumb_func_start sub_81113E4
sub_81113E4: @ 81113E4
push {r4,r5,lr}
ldr r4, _08111430 @ =gSaveBlock1Ptr
ldr r0, _08111434 @ =gUnknown_203ADF8
ldrb r1, [r0]
movs r0, 0xCD
lsls r0, 3
muls r0, r1
movs r1, 0x98
lsls r1, 5
adds r0, r1
ldr r1, [r4]
adds r5, r1, r0
movs r2, 0xA4
lsls r2, 1
adds r0, r5, r2
movs r2, 0xEE
lsls r2, 4
adds r1, r2
movs r2, 0x90
bl CpuSet
movs r1, 0x9A
lsls r1, 2
adds r0, r5, r1
ldr r1, [r4]
movs r2, 0x80
lsls r2, 5
adds r1, r2
movs r2, 0x80
lsls r2, 1
bl CpuSet
bl sub_8111688
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08111430: .4byte gSaveBlock1Ptr
_08111434: .4byte gUnknown_203ADF8
thumb_func_end sub_81113E4
thumb_func_start sub_8111438
sub_8111438: @ 8111438
push {r4-r7,lr}
+1
View File
@@ -31,6 +31,7 @@ u8 FlagClear(u16 id);
bool8 FlagGet(u16 id);
u16 * sub_806E454(u16 id);
bool32 sub_806E2BC(void);
void sub_806E6FC(void);
extern u16 gSpecialVar_0x8000;
extern u16 gSpecialVar_0x8001;
+2
View File
@@ -60,5 +60,7 @@ u8 ItemId_GetBattleUsage(u16 itemId);
ItemUseFunc ItemId_GetBattleFunc(u16 itemId);
u8 ItemId_GetSecondaryId(u16 itemId);
u16 itemid_get_market_price(u16 itemId);
void sub_809A2DC(void);
void sub_809A2A4(void);
#endif // ITEM_H
+5
View File
@@ -72,7 +72,12 @@ void IncrementGameStat(u8);
u32 GetGameStat(u8);
void sub_8056938(void);
void sub_8055D5C(struct WarpData *);
void sub_80572A8(void);
void sub_805726C(void);
extern u8 gUnknown_2031DD8;
extern bool8 (* gUnknown_3005024)(void);
#endif //GUARD_ROM4_H
+57 -2
View File
@@ -10,6 +10,7 @@
#include "script.h"
#include "overworld.h"
#include "field_fadetransition.h"
#include "item.h"
#include "wild_encounter.h"
#include "help_system.h"
#include "unk_8159F40.h"
@@ -57,6 +58,7 @@ void sub_8110F90(u8);
void sub_8111150(u8);
void sub_8111368(void);
void sub_81115E8(void);
void sub_8111688(void);
void sub_811175C(u8, struct UnkStruct_203AE98 *);
void sub_81118F4(s8);
void sub_81138F8(void);
@@ -434,8 +436,8 @@ void sub_8110D48(u8 a0)
{
struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[a0];
CpuCopy16(gSaveBlock1Ptr->flags, questLog->unk_148, 0x120);
CpuCopy16(gSaveBlock1Ptr->vars, questLog->unk_268, 0x200);
CpuCopy16(gSaveBlock1Ptr->flags, questLog->unk_148, FLAGS_COUNT * sizeof(u8));
CpuCopy16(gSaveBlock1Ptr->vars, questLog->unk_268, VARS_COUNT * sizeof(u16));
}
void sub_8110D94(void)
@@ -621,3 +623,56 @@ void sub_8111150(u8 a0)
sub_815A1F8(questLog, gSaveBlock1Ptr->mapObjectTemplates);
}
void sub_8111274(u8 a0, u8 a1)
{
struct WarpData sp0;
if (!a1)
{
gSaveBlock1Ptr->location.mapGroup = gSaveBlock1Ptr->questLog[a0].unk_001;
gSaveBlock1Ptr->location.mapNum = gSaveBlock1Ptr->questLog[a0].unk_002;
gSaveBlock1Ptr->location.warpId = gSaveBlock1Ptr->questLog[a0].unk_003;
gSaveBlock1Ptr->pos.x = gSaveBlock1Ptr->questLog[a0].unk_004;
gSaveBlock1Ptr->pos.y = gSaveBlock1Ptr->questLog[a0].unk_006;
}
else
{
sp0.mapGroup = gSaveBlock1Ptr->questLog[a0].unk_001;
sp0.mapNum = gSaveBlock1Ptr->questLog[a0].unk_002;
sp0.warpId = gSaveBlock1Ptr->questLog[a0].unk_003;
sp0.x = gSaveBlock1Ptr->questLog[a0].unk_004;
sp0.y = gSaveBlock1Ptr->questLog[a0].unk_006;
sub_8055D5C(&sp0);
}
}
void sub_8111368(void)
{
gUnknown_203ADFA = 2;
sub_806E6FC();
sub_809A2DC();
sub_809A2A4();
if (sub_8110AC8() == 1)
{
sub_8111274(gUnknown_203ADF8, 0);
gUnknown_3005024 = sub_8111038;
SetMainCallback2(sub_80572A8);
}
else
{
sub_8111274(gUnknown_203ADF8, 1);
warp_in();
gUnknown_3005024 = sub_8111000;
SetMainCallback2(sub_805726C);
}
}
void sub_81113E4(void)
{
struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[gUnknown_203ADF8];
CpuCopy16(questLog->unk_148, gSaveBlock1Ptr->flags, FLAGS_COUNT * sizeof(u8));
CpuCopy16(questLog->unk_268, gSaveBlock1Ptr->vars, VARS_COUNT * sizeof(u16));
sub_8111688();
}