through sub_815D8F8
This commit is contained in:
+6
-89
@@ -5,89 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.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
|
thumb_func_start sub_815D96C
|
||||||
sub_815D96C: @ 815D96C
|
sub_815D96C: @ 815D96C
|
||||||
push {r4-r6,lr}
|
push {r4-r6,lr}
|
||||||
@@ -105,25 +22,25 @@ _0815D970:
|
|||||||
lsls r0, r6, 3
|
lsls r0, r6, 3
|
||||||
subs r0, r6
|
subs r0, r6
|
||||||
lsls r0, 2
|
lsls r0, 2
|
||||||
ldr r1, _0815D990 @ =gUnknown_8479D38
|
ldr r1, _0815D990 @ =gUnknown_8479D34
|
||||||
b _0815D9B0
|
b _0815D9B0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0815D990: .4byte gUnknown_8479D38
|
_0815D990: .4byte gUnknown_8479D34 + 4
|
||||||
_0815D994:
|
_0815D994:
|
||||||
cmp r0, 0x3B
|
cmp r0, 0x3B
|
||||||
bls _0815D9A8
|
bls _0815D9A8
|
||||||
lsls r0, r6, 3
|
lsls r0, r6, 3
|
||||||
subs r0, r6
|
subs r0, r6
|
||||||
lsls r0, 2
|
lsls r0, 2
|
||||||
ldr r1, _0815D9A4 @ =gUnknown_8479D40
|
ldr r1, _0815D9A4 @ =gUnknown_8479D34 + 12
|
||||||
b _0815D9B0
|
b _0815D9B0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0815D9A4: .4byte gUnknown_8479D40
|
_0815D9A4: .4byte gUnknown_8479D34 + 12
|
||||||
_0815D9A8:
|
_0815D9A8:
|
||||||
lsls r0, r6, 3
|
lsls r0, r6, 3
|
||||||
subs r0, r6
|
subs r0, r6
|
||||||
lsls r0, 2
|
lsls r0, 2
|
||||||
ldr r1, _0815D9E4 @ =gUnknown_8479D48
|
ldr r1, _0815D9E4 @ =gUnknown_8479D34 + 20
|
||||||
_0815D9B0:
|
_0815D9B0:
|
||||||
adds r5, r0, r1
|
adds r5, r0, r1
|
||||||
movs r4, 0
|
movs r4, 0
|
||||||
@@ -153,7 +70,7 @@ _0815D9CC:
|
|||||||
pop {r0}
|
pop {r0}
|
||||||
bx r0
|
bx r0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0815D9E4: .4byte gUnknown_8479D48
|
_0815D9E4: .4byte gUnknown_8479D34 + 20
|
||||||
thumb_func_end sub_815D96C
|
thumb_func_end sub_815D96C
|
||||||
|
|
||||||
thumb_func_start sub_815D9E8
|
thumb_func_start sub_815D9E8
|
||||||
|
|||||||
+1
-10
@@ -268,16 +268,7 @@ gUnknown_8479D24:: @ 8479D24
|
|||||||
// trainer_tower
|
// trainer_tower
|
||||||
|
|
||||||
gUnknown_8479D34:: @ 8479D34
|
gUnknown_8479D34:: @ 8479D34
|
||||||
.incbin "baserom.gba", 0x479D34, 0x4
|
.incbin "baserom.gba", 0x479D34, 0x1A4
|
||||||
|
|
||||||
gUnknown_8479D38:: @ 8479D38
|
|
||||||
.incbin "baserom.gba", 0x479D38, 0x8
|
|
||||||
|
|
||||||
gUnknown_8479D40:: @ 8479D40
|
|
||||||
.incbin "baserom.gba", 0x479D40, 0x8
|
|
||||||
|
|
||||||
gUnknown_8479D48:: @ 8479D48
|
|
||||||
.incbin "baserom.gba", 0x479D48, 0x190
|
|
||||||
|
|
||||||
gUnknown_8479ED8:: @ 8479ED8
|
gUnknown_8479ED8:: @ 8479ED8
|
||||||
.incbin "baserom.gba", 0x479ED8, 0x14C
|
.incbin "baserom.gba", 0x479ED8, 0x14C
|
||||||
|
|||||||
@@ -1002,6 +1002,8 @@
|
|||||||
#define FLAG_0x3E5 0x3E5
|
#define FLAG_0x3E5 0x3E5
|
||||||
#define FLAG_0x3E6 0x3E6
|
#define FLAG_0x3E6 0x3E6
|
||||||
#define FLAG_0x3E7 0x3E7
|
#define FLAG_0x3E7 0x3E7
|
||||||
|
|
||||||
|
#define FLAG_TRAINER_TOWER_START 1000 // 0x3E8
|
||||||
#define FLAG_0x3E8 0x3E8
|
#define FLAG_0x3E8 0x3E8
|
||||||
#define FLAG_0x3E9 0x3E9
|
#define FLAG_0x3E9 0x3E9
|
||||||
#define FLAG_0x3EA 0x3EA
|
#define FLAG_0x3EA 0x3EA
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
#define VAR_RECYCLE_GOODS 0x4020
|
#define VAR_RECYCLE_GOODS 0x4020
|
||||||
#define VAR_REPEL_STEP_COUNT 0x4021
|
#define VAR_REPEL_STEP_COUNT 0x4021
|
||||||
#define VAR_ICE_STEP_COUNT 0x4022
|
#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_H 0x4024
|
||||||
#define VAR_MIRAGE_RND_L 0x4025
|
#define VAR_MIRAGE_RND_L 0x4025
|
||||||
#define VAR_SECRET_BASE_MAP 0x4026
|
#define VAR_SECRET_BASE_MAP 0x4026
|
||||||
|
|||||||
+43
-10
@@ -1,19 +1,24 @@
|
|||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
#include "constants/flags.h"
|
||||||
|
#include "constants/vars.h"
|
||||||
#include "malloc.h"
|
#include "malloc.h"
|
||||||
#include "save.h"
|
#include "save.h"
|
||||||
#include "event_data.h"
|
#include "event_data.h"
|
||||||
#include "cereader_tool.h"
|
#include "cereader_tool.h"
|
||||||
|
|
||||||
struct UnkStruct_8479D38
|
struct UnkStruct_8479D34
|
||||||
{
|
{
|
||||||
|
s8 mapGroup;
|
||||||
|
s8 mapNum;
|
||||||
|
u8 filler[2];
|
||||||
u8 flags1[8];
|
u8 flags1[8];
|
||||||
u8 flags2[8];
|
u8 flags2[8];
|
||||||
u8 flags3[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)
|
bool32 sub_815D7BC(void * dest, void * buffer)
|
||||||
{
|
{
|
||||||
@@ -50,17 +55,45 @@ void sub_815D838(void)
|
|||||||
|
|
||||||
for (i = 0; i < 15; i++)
|
for (i = 0; i < 15; i++)
|
||||||
{
|
{
|
||||||
const u8 * flags1 = gUnknown_8479D38[i].flags1;
|
const u8 * flags1 = gUnknown_8479D34[i].flags1;
|
||||||
const u8 * flags2 = gUnknown_8479D38[i].flags2;
|
const u8 * flags2 = gUnknown_8479D34[i].flags2;
|
||||||
const u8 * flags3 = gUnknown_8479D38[i].flags3;
|
const u8 * flags3 = gUnknown_8479D34[i].flags3;
|
||||||
for (j = 0; j < 8; j++)
|
for (j = 0; j < 8; j++)
|
||||||
{
|
{
|
||||||
if (flags1[j] != 0xFF)
|
if (flags1[j] != 0xFF)
|
||||||
FlagSet(1000 + flags1[j]);
|
FlagSet(FLAG_TRAINER_TOWER_START + flags1[j]);
|
||||||
if (flags2[j] != 0xFF)
|
if (flags2[j] != 0xFF)
|
||||||
FlagSet(1000 + flags2[j]);
|
FlagSet(FLAG_TRAINER_TOWER_START + flags2[j]);
|
||||||
if (flags3[j] != 0xFF)
|
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