through sub_815D8F8
This commit is contained in:
+6
-89
@@ -5,89 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_815D8C8
|
||||
sub_815D8C8: @ 815D8C8
|
||||
push {r4,lr}
|
||||
ldr r4, _0815D8F0 @ =0x00004023
|
||||
adds r0, r4, 0
|
||||
bl VarGet
|
||||
lsls r0, 16
|
||||
lsrs r1, r0, 16
|
||||
ldr r0, _0815D8F4 @ =0x000005db
|
||||
cmp r1, r0
|
||||
bhi _0815D8E8
|
||||
adds r1, 0x1
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
adds r0, r4, 0
|
||||
bl VarSet
|
||||
_0815D8E8:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0815D8F0: .4byte 0x00004023
|
||||
_0815D8F4: .4byte 0x000005db
|
||||
thumb_func_end sub_815D8C8
|
||||
|
||||
thumb_func_start sub_815D8F8
|
||||
sub_815D8F8: @ 815D8F8
|
||||
push {r4-r6,lr}
|
||||
movs r4, 0xFF
|
||||
movs r2, 0
|
||||
ldr r6, _0815D95C @ =gUnknown_8479D34
|
||||
ldr r0, _0815D960 @ =gSaveBlock1Ptr
|
||||
ldr r3, [r0]
|
||||
movs r5, 0x4
|
||||
ldrsb r5, [r3, r5]
|
||||
_0815D908:
|
||||
lsls r0, r2, 3
|
||||
subs r0, r2
|
||||
lsls r0, 2
|
||||
adds r1, r0, r6
|
||||
movs r0, 0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, r5
|
||||
bne _0815D928
|
||||
ldrb r1, [r1, 0x1]
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
movs r0, 0x5
|
||||
ldrsb r0, [r3, r0]
|
||||
cmp r1, r0
|
||||
bne _0815D928
|
||||
adds r4, r2, 0
|
||||
_0815D928:
|
||||
adds r0, r2, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
cmp r2, 0xE
|
||||
bls _0815D908
|
||||
cmp r4, 0xFF
|
||||
beq _0815D956
|
||||
ldr r4, _0815D964 @ =0x00004023
|
||||
adds r0, r4, 0
|
||||
bl VarGet
|
||||
lsls r0, 16
|
||||
ldr r1, _0815D968 @ =0x05db0000
|
||||
cmp r0, r1
|
||||
bls _0815D956
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
bl VarSet
|
||||
bl sub_815D838
|
||||
bl sub_815D96C
|
||||
_0815D956:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0815D95C: .4byte gUnknown_8479D34
|
||||
_0815D960: .4byte gSaveBlock1Ptr
|
||||
_0815D964: .4byte 0x00004023
|
||||
_0815D968: .4byte 0x05db0000
|
||||
thumb_func_end sub_815D8F8
|
||||
|
||||
thumb_func_start sub_815D96C
|
||||
sub_815D96C: @ 815D96C
|
||||
push {r4-r6,lr}
|
||||
@@ -105,25 +22,25 @@ _0815D970:
|
||||
lsls r0, r6, 3
|
||||
subs r0, r6
|
||||
lsls r0, 2
|
||||
ldr r1, _0815D990 @ =gUnknown_8479D38
|
||||
ldr r1, _0815D990 @ =gUnknown_8479D34
|
||||
b _0815D9B0
|
||||
.align 2, 0
|
||||
_0815D990: .4byte gUnknown_8479D38
|
||||
_0815D990: .4byte gUnknown_8479D34 + 4
|
||||
_0815D994:
|
||||
cmp r0, 0x3B
|
||||
bls _0815D9A8
|
||||
lsls r0, r6, 3
|
||||
subs r0, r6
|
||||
lsls r0, 2
|
||||
ldr r1, _0815D9A4 @ =gUnknown_8479D40
|
||||
ldr r1, _0815D9A4 @ =gUnknown_8479D34 + 12
|
||||
b _0815D9B0
|
||||
.align 2, 0
|
||||
_0815D9A4: .4byte gUnknown_8479D40
|
||||
_0815D9A4: .4byte gUnknown_8479D34 + 12
|
||||
_0815D9A8:
|
||||
lsls r0, r6, 3
|
||||
subs r0, r6
|
||||
lsls r0, 2
|
||||
ldr r1, _0815D9E4 @ =gUnknown_8479D48
|
||||
ldr r1, _0815D9E4 @ =gUnknown_8479D34 + 20
|
||||
_0815D9B0:
|
||||
adds r5, r0, r1
|
||||
movs r4, 0
|
||||
@@ -153,7 +70,7 @@ _0815D9CC:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0815D9E4: .4byte gUnknown_8479D48
|
||||
_0815D9E4: .4byte gUnknown_8479D34 + 20
|
||||
thumb_func_end sub_815D96C
|
||||
|
||||
thumb_func_start sub_815D9E8
|
||||
|
||||
+1
-10
@@ -268,16 +268,7 @@ gUnknown_8479D24:: @ 8479D24
|
||||
// trainer_tower
|
||||
|
||||
gUnknown_8479D34:: @ 8479D34
|
||||
.incbin "baserom.gba", 0x479D34, 0x4
|
||||
|
||||
gUnknown_8479D38:: @ 8479D38
|
||||
.incbin "baserom.gba", 0x479D38, 0x8
|
||||
|
||||
gUnknown_8479D40:: @ 8479D40
|
||||
.incbin "baserom.gba", 0x479D40, 0x8
|
||||
|
||||
gUnknown_8479D48:: @ 8479D48
|
||||
.incbin "baserom.gba", 0x479D48, 0x190
|
||||
.incbin "baserom.gba", 0x479D34, 0x1A4
|
||||
|
||||
gUnknown_8479ED8:: @ 8479ED8
|
||||
.incbin "baserom.gba", 0x479ED8, 0x14C
|
||||
|
||||
@@ -1002,6 +1002,8 @@
|
||||
#define FLAG_0x3E5 0x3E5
|
||||
#define FLAG_0x3E6 0x3E6
|
||||
#define FLAG_0x3E7 0x3E7
|
||||
|
||||
#define FLAG_TRAINER_TOWER_START 1000 // 0x3E8
|
||||
#define FLAG_0x3E8 0x3E8
|
||||
#define FLAG_0x3E9 0x3E9
|
||||
#define FLAG_0x3EA 0x3EA
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
#define VAR_RECYCLE_GOODS 0x4020
|
||||
#define VAR_REPEL_STEP_COUNT 0x4021
|
||||
#define VAR_ICE_STEP_COUNT 0x4022
|
||||
#define VAR_FIRST_POKE 0x4023
|
||||
#define VAR_0x4023 0x4023
|
||||
#define VAR_MIRAGE_RND_H 0x4024
|
||||
#define VAR_MIRAGE_RND_L 0x4025
|
||||
#define VAR_SECRET_BASE_MAP 0x4026
|
||||
|
||||
+43
-10
@@ -1,19 +1,24 @@
|
||||
#include "global.h"
|
||||
#include "constants/flags.h"
|
||||
#include "constants/vars.h"
|
||||
#include "malloc.h"
|
||||
#include "save.h"
|
||||
#include "event_data.h"
|
||||
#include "cereader_tool.h"
|
||||
|
||||
struct UnkStruct_8479D38
|
||||
struct UnkStruct_8479D34
|
||||
{
|
||||
s8 mapGroup;
|
||||
s8 mapNum;
|
||||
u8 filler[2];
|
||||
u8 flags1[8];
|
||||
u8 flags2[8];
|
||||
u8 flags3[8];
|
||||
u8 unk_24;
|
||||
u8 unk_25;
|
||||
};
|
||||
|
||||
extern const struct UnkStruct_8479D38 gUnknown_8479D38[15];
|
||||
extern const struct UnkStruct_8479D34 gUnknown_8479D34[15];
|
||||
|
||||
void sub_815D96C(void);
|
||||
|
||||
bool32 sub_815D7BC(void * dest, void * buffer)
|
||||
{
|
||||
@@ -50,17 +55,45 @@ void sub_815D838(void)
|
||||
|
||||
for (i = 0; i < 15; i++)
|
||||
{
|
||||
const u8 * flags1 = gUnknown_8479D38[i].flags1;
|
||||
const u8 * flags2 = gUnknown_8479D38[i].flags2;
|
||||
const u8 * flags3 = gUnknown_8479D38[i].flags3;
|
||||
const u8 * flags1 = gUnknown_8479D34[i].flags1;
|
||||
const u8 * flags2 = gUnknown_8479D34[i].flags2;
|
||||
const u8 * flags3 = gUnknown_8479D34[i].flags3;
|
||||
for (j = 0; j < 8; j++)
|
||||
{
|
||||
if (flags1[j] != 0xFF)
|
||||
FlagSet(1000 + flags1[j]);
|
||||
FlagSet(FLAG_TRAINER_TOWER_START + flags1[j]);
|
||||
if (flags2[j] != 0xFF)
|
||||
FlagSet(1000 + flags2[j]);
|
||||
FlagSet(FLAG_TRAINER_TOWER_START + flags2[j]);
|
||||
if (flags3[j] != 0xFF)
|
||||
FlagSet(1000 + flags3[j]);
|
||||
FlagSet(FLAG_TRAINER_TOWER_START + flags3[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_815D8C8(void)
|
||||
{
|
||||
u16 var = VarGet(VAR_0x4023);
|
||||
if (var < 1500) {
|
||||
VarSet(VAR_0x4023, var + 1);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_815D8F8(void)
|
||||
{
|
||||
u8 i;
|
||||
register u32 found_map asm("r4") = 0xFF;
|
||||
for (i = 0; i < 15; i++)
|
||||
{
|
||||
if (gUnknown_8479D34[i].mapGroup == gSaveBlock1Ptr->location.mapGroup && gUnknown_8479D34[i].mapNum == gSaveBlock1Ptr->location.mapNum)
|
||||
found_map = i;
|
||||
}
|
||||
|
||||
if (found_map == 0xFF)
|
||||
return;
|
||||
if (VarGet(VAR_0x4023) >= 1500)
|
||||
{
|
||||
VarSet(VAR_0x4023, 0);
|
||||
sub_815D838();
|
||||
sub_815D96C();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user