mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 03:34:15 +01:00
through task_add_00_mystery_gift
This commit is contained in:
parent
8799a1c791
commit
5b361db6b3
@ -5,223 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start mevent_08142CE8
|
||||
mevent_08142CE8: @ 801903C
|
||||
push {r4-r6,lr}
|
||||
adds r6, r0, 0
|
||||
adds r0, r1, 0
|
||||
adds r5, r2, 0
|
||||
ldrb r4, [r6]
|
||||
cmp r4, 0x1
|
||||
beq _0801906E
|
||||
cmp r4, 0x1
|
||||
bgt _08019054
|
||||
cmp r4, 0
|
||||
beq _0801905A
|
||||
b _0801909A
|
||||
_08019054:
|
||||
cmp r4, 0x2
|
||||
beq _08019084
|
||||
b _0801909A
|
||||
_0801905A:
|
||||
cmp r0, 0
|
||||
beq _08019062
|
||||
bl sub_8018884
|
||||
_08019062:
|
||||
movs r0, 0xB9
|
||||
lsls r0, 1
|
||||
bl PlayFanfare
|
||||
strh r4, [r5]
|
||||
b _0801907C
|
||||
_0801906E:
|
||||
ldrh r0, [r5]
|
||||
adds r0, 0x1
|
||||
strh r0, [r5]
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0xF0
|
||||
bls _0801909A
|
||||
_0801907C:
|
||||
ldrb r0, [r6]
|
||||
adds r0, 0x1
|
||||
strb r0, [r6]
|
||||
b _0801909A
|
||||
_08019084:
|
||||
bl IsFanfareTaskInactive
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0801909A
|
||||
movs r0, 0
|
||||
strb r0, [r6]
|
||||
bl sub_80188DC
|
||||
movs r0, 0x1
|
||||
b _0801909C
|
||||
_0801909A:
|
||||
movs r0, 0
|
||||
_0801909C:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end mevent_08142CE8
|
||||
|
||||
thumb_func_start mevent_message_stamp_card_etc_send_status
|
||||
mevent_message_stamp_card_etc_send_status: @ 80190A4
|
||||
push {r4,lr}
|
||||
adds r3, r0, 0
|
||||
ldr r1, =gText_CommunicationError
|
||||
movs r0, 0
|
||||
str r0, [r3]
|
||||
adds r4, r1, 0
|
||||
cmp r2, 0xE
|
||||
bhi _08019166
|
||||
lsls r0, r2, 2
|
||||
ldr r1, =_080190C8
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.pool
|
||||
.align 2, 0
|
||||
_080190C8:
|
||||
.4byte _08019104
|
||||
.4byte _0801910C
|
||||
.4byte _08019114
|
||||
.4byte _0801911C
|
||||
.4byte _08019128
|
||||
.4byte _08019130
|
||||
.4byte _08019138
|
||||
.4byte _08019140
|
||||
.4byte _08019148
|
||||
.4byte _08019150
|
||||
.4byte _08019164
|
||||
.4byte _08019158
|
||||
.4byte _0801915C
|
||||
.4byte _0801915C
|
||||
.4byte _08019164
|
||||
_08019104:
|
||||
ldr r1, =gText_NothingSentOver
|
||||
b _08019166
|
||||
.pool
|
||||
_0801910C:
|
||||
ldr r1, =gText_RecordUploadedViaWireless
|
||||
b _08019166
|
||||
.pool
|
||||
_08019114:
|
||||
ldr r1, =gText_WonderCardSentTo
|
||||
b _0801911E
|
||||
.pool
|
||||
_0801911C:
|
||||
ldr r1, =gText_WonderNewsSentTo
|
||||
_0801911E:
|
||||
movs r0, 0x1
|
||||
str r0, [r3]
|
||||
b _08019166
|
||||
.pool
|
||||
_08019128:
|
||||
ldr r1, =gText_StampSentTo
|
||||
b _08019166
|
||||
.pool
|
||||
_08019130:
|
||||
ldr r1, =gText_OtherTrainerHasCard
|
||||
b _08019166
|
||||
.pool
|
||||
_08019138:
|
||||
ldr r1, =gText_OtherTrainerHasStamp
|
||||
b _08019166
|
||||
.pool
|
||||
_08019140:
|
||||
ldr r1, =gText_OtherTrainerHasNews
|
||||
b _08019166
|
||||
.pool
|
||||
_08019148:
|
||||
ldr r1, =gText_NoMoreRoomForStamps
|
||||
b _08019166
|
||||
.pool
|
||||
_08019150:
|
||||
ldr r1, =gText_OtherTrainerCanceled
|
||||
b _08019166
|
||||
.pool
|
||||
_08019158:
|
||||
adds r1, r4, 0
|
||||
b _08019166
|
||||
_0801915C:
|
||||
ldr r1, =gText_GiftSentTo
|
||||
b _08019166
|
||||
.pool
|
||||
_08019164:
|
||||
ldr r1, =gText_CantSendGiftToTrainer
|
||||
_08019166:
|
||||
adds r0, r1, 0
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.pool
|
||||
thumb_func_end mevent_message_stamp_card_etc_send_status
|
||||
|
||||
thumb_func_start sub_8019174
|
||||
sub_8019174: @ 8019174
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x4
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
adds r1, r2, 0
|
||||
adds r2, r3, 0
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
mov r0, sp
|
||||
bl mevent_message_stamp_card_etc_send_status
|
||||
adds r1, r0, 0
|
||||
ldr r0, [sp]
|
||||
cmp r0, 0
|
||||
bne _0801919A
|
||||
adds r0, r4, 0
|
||||
bl mevent_0814257C
|
||||
b _080191A2
|
||||
_0801919A:
|
||||
adds r0, r4, 0
|
||||
adds r2, r5, 0
|
||||
bl mevent_08142CE8
|
||||
_080191A2:
|
||||
add sp, 0x4
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8019174
|
||||
|
||||
thumb_func_start task_add_00_mystery_gift
|
||||
task_add_00_mystery_gift: @ 80191AC
|
||||
push {r4,lr}
|
||||
ldr r0, =task00_mystery_gift
|
||||
movs r1, 0
|
||||
bl CreateTask
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r4, r0, 2
|
||||
adds r4, r0
|
||||
lsls r4, 3
|
||||
ldr r0, =gTasks + 0x8
|
||||
adds r4, r0
|
||||
movs r0, 0
|
||||
strb r0, [r4, 0x8]
|
||||
strb r0, [r4, 0x9]
|
||||
strb r0, [r4, 0xA]
|
||||
strb r0, [r4, 0xB]
|
||||
strb r0, [r4, 0xC]
|
||||
strb r0, [r4, 0xD]
|
||||
movs r1, 0
|
||||
strh r0, [r4]
|
||||
strh r0, [r4, 0x2]
|
||||
strh r0, [r4, 0x4]
|
||||
strh r0, [r4, 0x6]
|
||||
strb r1, [r4, 0xE]
|
||||
movs r0, 0x40
|
||||
bl AllocZeroed
|
||||
str r0, [r4, 0x10]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end task_add_00_mystery_gift
|
||||
|
||||
thumb_func_start task00_mystery_gift
|
||||
task00_mystery_gift: @ 80191F4
|
||||
push {r4,r5,lr}
|
||||
|
@ -2650,5 +2650,16 @@ extern const u8 gText_CantAcceptNewsFromTrainer[];
|
||||
extern const u8 gText_CantAcceptCardFromTrainer[];
|
||||
extern const u8 gText_CommunicationError[];
|
||||
extern const u8 gText_NewTrainerReceived[];
|
||||
extern const u8 gText_RecordUploadedViaWireless[];
|
||||
extern const u8 gText_WonderCardSentTo[];
|
||||
extern const u8 gText_WonderNewsSentTo[];
|
||||
extern const u8 gText_StampSentTo[];
|
||||
extern const u8 gText_OtherTrainerHasCard[];
|
||||
extern const u8 gText_OtherTrainerHasStamp[];
|
||||
extern const u8 gText_OtherTrainerHasNews[];
|
||||
extern const u8 gText_NoMoreRoomForStamps[];
|
||||
extern const u8 gText_OtherTrainerCanceled[];
|
||||
extern const u8 gText_GiftSentTo[];
|
||||
extern const u8 gText_CantSendGiftToTrainer[];
|
||||
|
||||
#endif // GUARD_STRINGS_H
|
||||
|
@ -27,12 +27,34 @@
|
||||
|
||||
void bgid_upload_textbox_1(u8 bgId);
|
||||
void task_add_00_mystery_gift(void);
|
||||
void task00_mystery_gift(u8 taskId);
|
||||
|
||||
EWRAM_DATA u8 gUnknown_02022C58[2] = {};
|
||||
|
||||
const u16 gUnkTextboxBorderPal[] = INCBIN_U16("graphics/interface/unk_textbox_border.gbapal");
|
||||
const u32 gUnkTextboxBorderGfx[] = INCBIN_U32("graphics/interface/unk_textbox_border.4bpp.lz");
|
||||
|
||||
struct MysteryGiftExtraData
|
||||
{
|
||||
u8 filler_00[0x40];
|
||||
};
|
||||
|
||||
struct MysteryGiftTaskData
|
||||
{
|
||||
u16 unk0;
|
||||
u16 unk2;
|
||||
u16 unk4;
|
||||
u16 unk6;
|
||||
u8 unk8;
|
||||
u8 unk9;
|
||||
u8 unkA;
|
||||
u8 unkB;
|
||||
u8 unkC;
|
||||
u8 unkD;
|
||||
u8 unkE;
|
||||
struct MysteryGiftExtraData * unk10;
|
||||
};
|
||||
|
||||
const struct BgTemplate gUnknown_082F0598[] = {
|
||||
{
|
||||
.bg = 0,
|
||||
@ -988,3 +1010,123 @@ const u8 * mevent_message(u32 * a0, u8 a1, u8 a2, u32 a3)
|
||||
|
||||
return msg;
|
||||
}
|
||||
|
||||
bool32 mevent_08142CE8(u8 * state, const u8 * arg1, u16 * arg2)
|
||||
{
|
||||
switch (*state)
|
||||
{
|
||||
case 0:
|
||||
if (arg1 != NULL)
|
||||
{
|
||||
sub_8018884(arg1);
|
||||
}
|
||||
PlayFanfare(MUS_FANFA4);
|
||||
*arg2 = 0;
|
||||
(*state)++;
|
||||
break;
|
||||
case 1:
|
||||
if (++(*arg2) > 0xF0)
|
||||
{
|
||||
(*state)++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (IsFanfareTaskInactive())
|
||||
{
|
||||
*state = 0;
|
||||
sub_80188DC();
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
const u8 * mevent_message_stamp_card_etc_send_status(u32 * a0, u8 unused, u32 state)
|
||||
{
|
||||
const u8 * result = gText_CommunicationError;
|
||||
*a0 = 0;
|
||||
switch (state)
|
||||
{
|
||||
case 0:
|
||||
result = gText_NothingSentOver;
|
||||
break;
|
||||
case 1:
|
||||
result = gText_RecordUploadedViaWireless;
|
||||
break;
|
||||
case 2:
|
||||
result = gText_WonderCardSentTo;
|
||||
*a0 = 1;
|
||||
break;
|
||||
case 3:
|
||||
result = gText_WonderNewsSentTo;
|
||||
*a0 = 1;
|
||||
break;
|
||||
case 4:
|
||||
result = gText_StampSentTo;
|
||||
break;
|
||||
case 5:
|
||||
result = gText_OtherTrainerHasCard;
|
||||
break;
|
||||
case 6:
|
||||
result = gText_OtherTrainerHasStamp;
|
||||
break;
|
||||
case 7:
|
||||
result = gText_OtherTrainerHasNews;
|
||||
break;
|
||||
case 8:
|
||||
result = gText_NoMoreRoomForStamps;
|
||||
break;
|
||||
case 9:
|
||||
result = gText_OtherTrainerCanceled;
|
||||
break;
|
||||
case 10:
|
||||
result = gText_CantSendGiftToTrainer;
|
||||
break;
|
||||
case 11:
|
||||
result = gText_CommunicationError;
|
||||
break;
|
||||
case 12:
|
||||
result = gText_GiftSentTo;
|
||||
break;
|
||||
case 13:
|
||||
result = gText_GiftSentTo;
|
||||
break;
|
||||
case 14:
|
||||
result = gText_CantSendGiftToTrainer;
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
bool32 sub_8019174(u8 * state_p, u16 * arg1, u8 arg2, u32 state)
|
||||
{
|
||||
u32 flag;
|
||||
const u8 * str = mevent_message_stamp_card_etc_send_status(&flag, arg2, state);
|
||||
if (flag)
|
||||
{
|
||||
return mevent_08142CE8(state_p, str, arg1);
|
||||
}
|
||||
else
|
||||
{
|
||||
return mevent_0814257C(state_p, str);
|
||||
}
|
||||
}
|
||||
|
||||
void task_add_00_mystery_gift(void)
|
||||
{
|
||||
u8 taskId = CreateTask(task00_mystery_gift, 0);
|
||||
struct MysteryGiftTaskData * data = (void *)gTasks[taskId].data;
|
||||
data->unk8 = 0;
|
||||
data->unk9 = 0;
|
||||
data->unkA = 0;
|
||||
data->unkB = 0;
|
||||
data->unkC = 0;
|
||||
data->unkD = 0;
|
||||
data->unk0 = 0;
|
||||
data->unk2 = 0;
|
||||
data->unk4 = 0;
|
||||
data->unk6 = 0;
|
||||
data->unkE = 0;
|
||||
data->unk10 = AllocZeroed(sizeof(*data->unk10));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user