pokeemerald/src/pokenav_main.c

134 lines
2.3 KiB
C
Raw Normal View History

2019-02-11 20:59:44 +01:00
#include "global.h"
#include "alloc.h"
#include "task.h"
#include "main.h"
#include "overworld.h"
/*
thumb_func_start CB2_PokeNav
CB2_PokeNav: @ 81C7250
push {r4,lr}
ldr r4, =gUnknown_0203CF40
movs r0, 0x5C
bl Alloc
str r0, [r4]
cmp r0, 0
bne _081C7270
ldr r0, =CB2_ReturnToFieldWithOpenMenu
bl SetMainCallback2
b _081C7292
.pool
_081C7270:
bl sub_81C7360
bl ResetTasks
movs r0, 0
bl SetVBlankCallback
ldr r0, =sub_81C742C
movs r1, 0
bl CreateTask
ldr r0, =sub_81C7400
bl SetMainCallback2
ldr r0, =sub_81C7418
bl SetVBlankCallback
_081C7292:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end CB2_PokeNav
*/
extern u8* gUnknown_0203CF40;
extern void sub_81C7360(void);
extern void sub_81C742C(u8 taskId);
extern void sub_81C7400(void);
extern void sub_81C7418(void);
/*
void CB2_PokeNav(void)
{
gUnknown_0203CF40 = Alloc(0x5C);
if (gUnknown_0203CF40 == NULL) {
SetMainCallback2(CB2_ReturnToFieldWithOpenMenu);
} else {
sub_81C7360();
ResetTasks();
SetVBlankCallback(NULL);
CreateTask(sub_81C742C, 0);
SetMainCallback2(sub_81C7400);
SetVBlankCallback(sub_81C7418);
}
}*/
/*
thumb_func_start sub_81C7078
sub_81C7078: @ 81C7078
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
bl is_c1_link_related_active
cmp r0, 0
bne _081C7090
ldr r0, =sub_81C7170
b _081C7092
.pool
_081C7090:
ldr r0, =sub_81C71E4
_081C7092:
lsls r1, r4, 24
lsrs r1, 24
bl CreateTask
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
movs r1, 0x1
adds r2, r5, 0
bl SetWordTaskArg
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r2, =gUnknown_0203CF3C
ldrb r1, [r2]
strh r1, [r0, 0xE]
ldrb r0, [r2]
adds r1, r0, 0x1
strb r1, [r2]
lsls r0, 24
lsrs r0, 8
orrs r0, r4
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end sub_81C7078
*/
extern u8 gUnknown_0203CF3C;
extern void sub_81C7170(u8 a0);
extern void sub_81C71E4(u8 a0);
u32 sub_81C7078(s32 a0, u32 a1)
{
u16 taskId;
u32 old;
if (is_c1_link_related_active() == FALSE)
taskId = CreateTask(sub_81C7170, a1);
else
taskId = CreateTask(sub_81C71E4, a1);
//taskId = CreateTask(temp, a1);
SetWordTaskArg(taskId, 1, a0);
gTasks[taskId].data[3] = gUnknown_0203CF3C;
//old = gUnknown_0203CF3C;
//gUnknown_0203CF3C = old + 1;
return ((gUnknown_0203CF3C++) << 16) | taskId;
}
// nonce