From e7e1938094081ba2e20232caca0239cb2290251f Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 19 Sep 2017 16:17:23 -0400 Subject: Start decompilation of lilycove_lady --- asm/lilycove_lady.s | 95 +---------------------------------------------------- include/global.h | 35 +++++++++++++++++++- include/vars.h | 2 ++ ld_script.txt | 1 + src/lilycove_lady.c | 57 ++++++++++++++++++++++++++++++++ 5 files changed, 95 insertions(+), 95 deletions(-) create mode 100644 src/lilycove_lady.c diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index fca8cb29b..76ba3e423 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -4,99 +4,6 @@ .syntax unified .text - - thumb_func_start GetLilycoveLadyId -GetLilycoveLadyId: @ 818D9AC - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end GetLilycoveLadyId - - thumb_func_start sub_818D9C0 -sub_818D9C0: @ 818D9C0 - push {r4,r5,lr} - ldr r5, =0x00004010 - ldr r4, =gUnknown_0860B07E - bl GetLilycoveLadyId - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - ldrh r1, [r0] - adds r0, r5, 0 - bl VarSet - bl GetLilycoveLadyId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0818DA20 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =0x00003b58 - adds r1, r0 - ldr r0, =0x00004011 - ldr r2, =gUnknown_0860B074 - ldrb r1, [r1, 0xD] - lsls r1, 1 - adds r1, r2 - ldrh r1, [r1] - bl VarSet - ldr r1, =gScriptResult - movs r0, 0x1 - b _0818DA24 - .pool -_0818DA20: - ldr r1, =gScriptResult - movs r0, 0 -_0818DA24: - strh r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818D9C0 - - thumb_func_start SetLilycoveLady -SetLilycoveLady: @ 818DA30 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r1, [r0, 0xB] - lsls r1, 8 - ldrb r0, [r0, 0xA] - orrs r0, r1 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 17 - adds r1, r0, 0 - cmp r0, 0x1 - beq _0818DA68 - cmp r0, 0x1 - bgt _0818DA5C - cmp r0, 0 - beq _0818DA62 - b _0818DA72 - .pool -_0818DA5C: - cmp r1, 0x2 - beq _0818DA6E - b _0818DA72 -_0818DA62: - bl SetLilycoveQuizLady - b _0818DA72 -_0818DA68: - bl SetLilycoveFavourLady - b _0818DA72 -_0818DA6E: - bl SetLilycoveContestLady -_0818DA72: - pop {r0} - bx r0 - thumb_func_end SetLilycoveLady thumb_func_start sub_818DA78 sub_818DA78: @ 818DA78 @@ -1927,5 +1834,5 @@ sub_818E990: @ 818E990 .pool thumb_func_end sub_818E990 - + .align 2, 0 @ Don't pad with nop. diff --git a/include/global.h b/include/global.h index e694a5974..764eff563 100644 --- a/include/global.h +++ b/include/global.h @@ -655,6 +655,39 @@ struct DaycareData #define FLAGS_COUNT 300 #define VARS_COUNT 256 +enum { + LILYCOVE_LADY_QUIZ, + LILYCOVE_LADY_FAVOUR, + LILYCOVE_LADY_CONTEST +}; + +typedef union // TODO +{ + struct + { + /*0x000*/ u8 id; + /*0x001*/ u8 language; + } quiz; + + struct + { + /*0x000*/ u8 id; + } flavor; + + struct + { + /*0x000*/ u8 id; + /*0x001*/ u8 filler_001[12]; + /*0x00d*/ u8 category; // maybe? + } contest; + + struct + { + /*0x000*/ u8 id; + /*0x001*/ u8 filler_001[535]; + } common; +} LilycoveLady; + struct SaveBlock1 { /*0x00*/ struct Coords16 pos; @@ -738,7 +771,7 @@ struct SaveBlock1 /*0x3728*/ struct RamScript ramScript; /*0x3B14*/ struct RecordMixingGift recordMixingGift; /*0x3B24*/ u8 seen2[52]; - /*0x3B58*/ u8 lilycoveLady[536]; // TODO: convert to a union + /*0x3B58*/ LilycoveLady lilycoveLady; // TODO: convert to a union /*0x3D70*/ u8 babyPhrase[24]; // TODO: convert to a struct // sizeof: 0x3D88 }; diff --git a/include/vars.h b/include/vars.h index 5da960640..7c0edeb77 100644 --- a/include/vars.h +++ b/include/vars.h @@ -12,6 +12,8 @@ #define VAR_0x4008 0x4008 #define VAR_0x4009 0x4009 #define VAR_0x400A 0x400A +#define VAR_0x4010 0x4010 +#define VAR_0x4011 0x4011 #define VAR_0x401F 0x401F #define VAR_RECYCLE_GOODS 0x4020 #define VAR_REPEL_STEP_COUNT 0x4021 diff --git a/ld_script.txt b/ld_script.txt index 8a3f3e139..cc43127e8 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -240,6 +240,7 @@ SECTIONS { asm/battle_controller_recorded_opponent.o(.text); asm/battle_controller_recorded_player.o(.text); asm/battle_dome_cards.o(.text); + src/lilycove_lady.o(.text); asm/lilycove_lady.o(.text); asm/battle_frontier_1.o(.text); asm/new_menu_helpers.o(.text); diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c new file mode 100644 index 000000000..7f4c4824a --- /dev/null +++ b/src/lilycove_lady.c @@ -0,0 +1,57 @@ +// +// Created by Scott Norton on 9/19/17. +// + +#include "global.h" +#include "event_data.h" +#include "lilycove_lady.h" + +void SetLilycoveQuizLady(void); +void SetLilycoveFavourLady(void); +void SetLilycoveContestLady(void); + +extern const u16 gUnknown_0860B074[]; +extern const u16 gUnknown_0860B07E[]; + +u8 GetLilycoveLadyId(void) +{ + return gSaveBlock1Ptr->lilycoveLady.common.id; +} + +void sub_818D9C0(void) +{ + LilycoveLady *lilycoveLady; + + VarSet(VAR_0x4010, gUnknown_0860B07E[GetLilycoveLadyId()]); + if (GetLilycoveLadyId() == LILYCOVE_LADY_CONTEST) + { + lilycoveLady = &gSaveBlock1Ptr->lilycoveLady; + VarSet(VAR_0x4011, gUnknown_0860B074[lilycoveLady->contest.category]); + gScriptResult = TRUE; + } + else + { + gScriptResult = FALSE; + } +} + +void SetLilycoveLady(void) +{ + u16 id; + + id = ((gSaveBlock2Ptr->playerTrainerId[1] << 8) | gSaveBlock2Ptr->playerTrainerId[0]); + id %= 6; + id >>= 1; + switch (id) + { + case LILYCOVE_LADY_QUIZ: + SetLilycoveQuizLady(); + break; + case LILYCOVE_LADY_FAVOUR: + SetLilycoveFavourLady(); + break; + case LILYCOVE_LADY_CONTEST: + SetLilycoveContestLady(); + break; + } +} -- cgit v1.2.3 From 99a7fcfdfa723390ecb25ec6819359b3521c8f34 Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 19 Sep 2017 16:21:50 -0400 Subject: sub_818DA78, SetLilycoveLadyRandomly --- asm/lilycove_lady.s | 66 ----------------------------------------------------- src/lilycove_lady.c | 39 +++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 66 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index 76ba3e423..51e288331 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,72 +5,6 @@ .text - thumb_func_start sub_818DA78 -sub_818DA78: @ 818DA78 - push {lr} - bl GetLilycoveLadyId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0818DA9C - cmp r0, 0x1 - bgt _0818DA90 - cmp r0, 0 - beq _0818DA96 - b _0818DAA6 -_0818DA90: - cmp r0, 0x2 - beq _0818DAA2 - b _0818DAA6 -_0818DA96: - bl sub_818E004 - b _0818DAA6 -_0818DA9C: - bl sub_818DBC4 - b _0818DAA6 -_0818DAA2: - bl sub_818E674 -_0818DAA6: - pop {r0} - bx r0 - thumb_func_end sub_818DA78 - -@ unused - thumb_func_start SetLilycoveLadyRandomly -SetLilycoveLadyRandomly: @ 818DAAC - push {lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x1 - beq _0818DADC - cmp r0, 0x1 - bgt _0818DAD0 - cmp r0, 0 - beq _0818DAD6 - b _0818DAE6 -_0818DAD0: - cmp r1, 0x2 - beq _0818DAE2 - b _0818DAE6 -_0818DAD6: - bl SetLilycoveQuizLady - b _0818DAE6 -_0818DADC: - bl SetLilycoveFavourLady - b _0818DAE6 -_0818DAE2: - bl SetLilycoveContestLady -_0818DAE6: - pop {r0} - bx r0 - thumb_func_end SetLilycoveLadyRandomly - thumb_func_start sub_818DAEC sub_818DAEC: @ 818DAEC push {r4,lr} diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 7f4c4824a..ab1c24914 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -4,11 +4,15 @@ #include "global.h" #include "event_data.h" +#include "rng.h" #include "lilycove_lady.h" void SetLilycoveQuizLady(void); void SetLilycoveFavourLady(void); void SetLilycoveContestLady(void); +void sub_818E004(void); +void sub_818DBC4(void); +void sub_818E674(void); extern const u16 gUnknown_0860B074[]; extern const u16 gUnknown_0860B07E[]; @@ -55,3 +59,38 @@ void SetLilycoveLady(void) break; } } + +void sub_818DA78(void) +{ + switch (GetLilycoveLadyId()) + { + case LILYCOVE_LADY_QUIZ: + sub_818E004(); + break; + case LILYCOVE_LADY_FAVOUR: + sub_818DBC4(); + break; + case LILYCOVE_LADY_CONTEST: + sub_818E674(); + break; + } +} + +void SetLilycoveLadyRandomly(void) +{ + u8 id; + + id = Random() % 3; + switch (id) + { + case LILYCOVE_LADY_QUIZ: + SetLilycoveQuizLady(); + break; + case LILYCOVE_LADY_FAVOUR: + SetLilycoveFavourLady(); + break; + case LILYCOVE_LADY_CONTEST: + SetLilycoveContestLady(); + break; + } +} -- cgit v1.2.3 From 0d0532731f99036d09d6bb2788de0221b6886105 Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 19 Sep 2017 16:24:42 -0400 Subject: sub_818DAEC, sub_818DB04 --- asm/lilycove_lady.s | 34 ---------------------------------- src/lilycove_lady.c | 13 +++++++++++++ 2 files changed, 13 insertions(+), 34 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index 51e288331..fbdcc10dd 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,40 +5,6 @@ .text - thumb_func_start sub_818DAEC -sub_818DAEC: @ 818DAEC - push {r4,lr} - ldr r4, =gScriptResult - bl GetLilycoveLadyId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DAEC - - thumb_func_start sub_818DB04 -sub_818DB04: @ 818DB04 - push {lr} - adds r1, r0, 0 - movs r2, 0 - b _0818DB14 -_0818DB0C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r1, 0x2 -_0818DB14: - ldrh r0, [r1] - cmp r0, 0 - bne _0818DB0C - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_818DB04 - thumb_func_start sub_818DB20 sub_818DB20: @ 818DB20 push {r4-r6,lr} diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index ab1c24914..579eca5cb 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -94,3 +94,16 @@ void SetLilycoveLadyRandomly(void) break; } } + +void sub_818DAEC(void) +{ + gScriptResult = GetLilycoveLadyId(); +} + +u8 sub_818DB04(u16 *data) +{ + u8 len; + + for (len = 0; *data != 0; len ++, data ++); + return len; +} -- cgit v1.2.3 From b26eb6713bb866f1173b4c7192ce231d894d19ea Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 19 Sep 2017 16:32:33 -0400 Subject: sub_818DB20 --- asm/lilycove_lady.s | 42 ------------------------------------------ include/global.h | 6 +++++- src/lilycove_lady.c | 20 +++++++++++++++++--- 3 files changed, 22 insertions(+), 46 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index fbdcc10dd..83c6df670 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,48 +5,6 @@ .text - thumb_func_start sub_818DB20 -sub_818DB20: @ 818DB20 - push {r4-r6,lr} - bl Random - ldr r5, =gUnknown_0203CD64 - ldr r4, [r5] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - bl __umodsi3 - strb r0, [r4, 0xC] - ldr r6, =gUnknown_0860B2EC - ldr r0, [r5] - ldrb r0, [r0, 0xC] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - bl sub_818DB04 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 24 - ldr r2, [r5] - ldrb r1, [r2, 0xC] - lsls r1, 2 - adds r1, r6 - ldr r1, [r1] - lsrs r0, 23 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2, 0x10] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DB20 - thumb_func_start SetLilycoveFavourLady SetLilycoveFavourLady: @ 818DB7C push {lr} diff --git a/include/global.h b/include/global.h index 764eff563..92435ce28 100644 --- a/include/global.h +++ b/include/global.h @@ -672,7 +672,11 @@ typedef union // TODO struct { /*0x000*/ u8 id; - } flavor; + /*0x001*/ u8 filler_001[11]; + /*0x00c*/ u8 unk_00c; + /*0x00d*/ u8 filler_00d[3]; + /*0x010*/ u16 unk_010; + } favour; struct { diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 579eca5cb..2e0d336dd 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -14,8 +14,11 @@ void sub_818E004(void); void sub_818DBC4(void); void sub_818E674(void); -extern const u16 gUnknown_0860B074[]; -extern const u16 gUnknown_0860B07E[]; +extern const u16 gUnknown_0860B074[5]; +extern const u16 gUnknown_0860B07E[3]; +extern const u16 *const gUnknown_0860B2EC[6]; + +EWRAM_DATA LilycoveLady *gUnknown_0203CD64 = NULL; u8 GetLilycoveLadyId(void) { @@ -100,10 +103,21 @@ void sub_818DAEC(void) gScriptResult = GetLilycoveLadyId(); } -u8 sub_818DB04(u16 *data) +u8 sub_818DB04(const u16 *data) { u8 len; for (len = 0; *data != 0; len ++, data ++); return len; } + +void sub_818DB20(void) +{ + u8 size; + u8 idx; + + gUnknown_0203CD64->favour.unk_00c = Random() % 6; + size = sub_818DB04(gUnknown_0860B2EC[gUnknown_0203CD64->favour.unk_00c]); + idx = Random() % size; + gUnknown_0203CD64->favour.unk_010 = gUnknown_0860B2EC[gUnknown_0203CD64->favour.unk_00c][idx]; +} -- cgit v1.2.3 From 4e8a2c6934c4f8a44ed8d350fe96996beda21d0e Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 19 Sep 2017 16:55:53 -0400 Subject: SetLilycoveFavourLady --- asm/lilycove_lady.s | 49 ------------------------------------------------- include/global.h | 10 ++++++++-- src/lilycove_lady.c | 21 +++++++++++++++++++++ 3 files changed, 29 insertions(+), 51 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index 83c6df670..36a5401e9 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,55 +5,6 @@ .text - thumb_func_start SetLilycoveFavourLady -SetLilycoveFavourLady: @ 818DB7C - push {lr} - ldr r2, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r2] - movs r3, 0 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r2] - strb r3, [r0, 0x1] - ldr r1, [r2] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r0, [r2] - strb r3, [r0, 0x2] - ldr r0, [r2] - strb r3, [r0, 0x3] - ldr r1, [r2] - strh r3, [r1, 0xE] - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r1, 0x12] - bl sub_818DB20 - pop {r0} - bx r0 - .pool - thumb_func_end SetLilycoveFavourLady - - thumb_func_start sub_818DBC4 -sub_818DBC4: @ 818DBC4 - ldr r3, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r3] - movs r2, 0 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r3] - strb r2, [r0, 0x1] - bx lr - .pool - thumb_func_end sub_818DBC4 - thumb_func_start sub_818DBE8 sub_818DBE8: @ 818DBE8 push {lr} diff --git a/include/global.h b/include/global.h index 92435ce28..0fc860e68 100644 --- a/include/global.h +++ b/include/global.h @@ -672,10 +672,16 @@ typedef union // TODO struct { /*0x000*/ u8 id; - /*0x001*/ u8 filler_001[11]; + /*0x001*/ u8 unk_001; + /*0x002*/ u8 unk_002; + /*0x003*/ u8 unk_003; + /*0x004*/ u8 unk_004; + /*0x005*/ u8 filler_005[7]; /*0x00c*/ u8 unk_00c; - /*0x00d*/ u8 filler_00d[3]; + /*0x00d*/ u8 filler_00d; + /*0x00e*/ u16 unk_00e; /*0x010*/ u16 unk_010; + /*0x012*/ u8 language; } favour; struct diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 2e0d336dd..aec55a574 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -3,6 +3,7 @@ // #include "global.h" +#include "main.h" #include "event_data.h" #include "rng.h" #include "lilycove_lady.h" @@ -121,3 +122,23 @@ void sub_818DB20(void) idx = Random() % size; gUnknown_0203CD64->favour.unk_010 = gUnknown_0860B2EC[gUnknown_0203CD64->favour.unk_00c][idx]; } + +void SetLilycoveFavourLady(void) +{ + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; + gUnknown_0203CD64->favour.id = LILYCOVE_LADY_FAVOUR; + gUnknown_0203CD64->favour.unk_001 = 0; + gUnknown_0203CD64->favour.unk_004 = 0xFF; + gUnknown_0203CD64->favour.unk_002 = 0; + gUnknown_0203CD64->favour.unk_003= 0; + gUnknown_0203CD64->favour.unk_00e = 0; + gUnknown_0203CD64->favour.language = gGameLanguage; + sub_818DB20(); +} + +void sub_818DBC4(void) +{ + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; + gUnknown_0203CD64->favour.id = LILYCOVE_LADY_FAVOUR; + gUnknown_0203CD64->favour.unk_001 = 0; +} -- cgit v1.2.3 From b8e733283e31c4863f774c6cf2bbb17ba369681f Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 19 Sep 2017 17:04:17 -0400 Subject: Another handful of favour lady functions --- asm/lilycove_lady.s | 59 ----------------------------------------------------- src/lilycove_lady.c | 30 +++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 59 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index 36a5401e9..c905b3e2a 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,65 +5,6 @@ .text - thumb_func_start sub_818DBE8 -sub_818DBE8: @ 818DBE8 - push {lr} - ldr r1, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldrb r0, [r0, 0x1] - cmp r0, 0x2 - bne _0818DC0C - movs r0, 0x2 - b _0818DC16 - .pool -_0818DC0C: - cmp r0, 0x1 - beq _0818DC14 - movs r0, 0 - b _0818DC16 -_0818DC14: - movs r0, 0x1 -_0818DC16: - pop {r1} - bx r1 - thumb_func_end sub_818DBE8 - - thumb_func_start sub_818DC1C -sub_818DC1C: @ 818DC1C - lsls r0, 24 - ldr r1, =gUnknown_0860B224 - lsrs r0, 22 - adds r0, r1 - ldr r0, [r0] - bx lr - .pool - thumb_func_end sub_818DC1C - - thumb_func_start sub_818DC2C -sub_818DC2C: @ 818DC2C - push {r4,lr} - ldr r1, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldr r4, =gStringVar1 - ldrb r0, [r0, 0xC] - bl sub_818DC1C - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DC2C - thumb_func_start sub_818DC60 sub_818DC60: @ 818DC60 push {r4,r5,lr} diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index aec55a574..16461728c 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -6,6 +6,7 @@ #include "main.h" #include "event_data.h" #include "rng.h" +#include "string_util.h" #include "lilycove_lady.h" void SetLilycoveQuizLady(void); @@ -17,6 +18,7 @@ void sub_818E674(void); extern const u16 gUnknown_0860B074[5]; extern const u16 gUnknown_0860B07E[3]; +extern const u8 *const gUnknown_0860B224[]; extern const u16 *const gUnknown_0860B2EC[6]; EWRAM_DATA LilycoveLady *gUnknown_0203CD64 = NULL; @@ -142,3 +144,31 @@ void sub_818DBC4(void) gUnknown_0203CD64->favour.id = LILYCOVE_LADY_FAVOUR; gUnknown_0203CD64->favour.unk_001 = 0; } + +u8 sub_818DBE8(void) +{ + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; + if (gUnknown_0203CD64->favour.unk_001 == 2) + { + return 2; + } + else if (gUnknown_0203CD64->favour.unk_001 == 1) + { + return 1; + } + else + { + return 0; + } +} + +const u8 *sub_818DC1C(u8 idx) +{ + return gUnknown_0860B224[idx]; +} + +void sub_818DC2C(void) +{ + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; + StringCopy(gStringVar1, sub_818DC1C(gUnknown_0203CD64->favour.unk_00c)); +} -- cgit v1.2.3 From 3b3423d1a751134ff7941b41bad72e0e75314647 Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 19 Sep 2017 17:07:36 -0400 Subject: sub_818DC60 --- asm/lilycove_lady.s | 33 --------------------------------- include/global.h | 3 +-- src/lilycove_lady.c | 15 ++++++++++++++- 3 files changed, 15 insertions(+), 36 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index c905b3e2a..75f9458a3 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,39 +5,6 @@ .text - thumb_func_start sub_818DC60 -sub_818DC60: @ 818DC60 - push {r4,r5,lr} - ldr r5, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, =0x00003b58 - adds r0, r1, r2 - str r0, [r5] - ldrb r0, [r0, 0x4] - cmp r0, 0xFF - bne _0818DC84 - movs r0, 0 - b _0818DC9C - .pool -_0818DC84: - ldr r4, =gStringVar3 - ldr r0, =0x00003b5c - adds r1, r0 - adds r0, r4, 0 - bl StringCopy7 - ldr r0, [r5] - ldrb r1, [r0, 0x12] - adds r0, r4, 0 - bl ConvertInternationalString - movs r0, 0x1 -_0818DC9C: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818DC60 - thumb_func_start sub_818DCAC sub_818DCAC: @ 818DCAC push {r4,lr} diff --git a/include/global.h b/include/global.h index 0fc860e68..42629cf48 100644 --- a/include/global.h +++ b/include/global.h @@ -675,8 +675,7 @@ typedef union // TODO /*0x001*/ u8 unk_001; /*0x002*/ u8 unk_002; /*0x003*/ u8 unk_003; - /*0x004*/ u8 unk_004; - /*0x005*/ u8 filler_005[7]; + /*0x004*/ u8 unk_004[8]; /*0x00c*/ u8 unk_00c; /*0x00d*/ u8 filler_00d; /*0x00e*/ u16 unk_00e; diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 16461728c..578280115 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -7,6 +7,7 @@ #include "event_data.h" #include "rng.h" #include "string_util.h" +#include "text.h" #include "lilycove_lady.h" void SetLilycoveQuizLady(void); @@ -130,7 +131,7 @@ void SetLilycoveFavourLady(void) gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; gUnknown_0203CD64->favour.id = LILYCOVE_LADY_FAVOUR; gUnknown_0203CD64->favour.unk_001 = 0; - gUnknown_0203CD64->favour.unk_004 = 0xFF; + gUnknown_0203CD64->favour.unk_004[0] = EOS; gUnknown_0203CD64->favour.unk_002 = 0; gUnknown_0203CD64->favour.unk_003= 0; gUnknown_0203CD64->favour.unk_00e = 0; @@ -172,3 +173,15 @@ void sub_818DC2C(void) gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; StringCopy(gStringVar1, sub_818DC1C(gUnknown_0203CD64->favour.unk_00c)); } + +bool8 sub_818DC60(void) +{ + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; + if (gUnknown_0203CD64->favour.unk_004[0] != EOS) + { + StringCopy7(gStringVar3, gSaveBlock1Ptr->lilycoveLady.favour.unk_004); + ConvertInternationalString(gStringVar3, gUnknown_0203CD64->favour.language); + return TRUE; + } + return FALSE; +} -- cgit v1.2.3 From 316f9f4d83d118437c266526cc0e6da1dfc90461 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 19 Sep 2017 21:28:01 -0400 Subject: through sub_818DD14 --- asm/lilycove_lady.s | 73 ----------------------------------------------------- include/global.h | 2 +- src/lilycove_lady.c | 28 +++++++++++++++++++- 3 files changed, 28 insertions(+), 75 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index 75f9458a3..c2a6167a6 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,79 +5,6 @@ .text - thumb_func_start sub_818DCAC -sub_818DCAC: @ 818DCAC - push {r4,lr} - adds r4, r0, 0 - lsls r0, r1, 16 - lsrs r0, 16 - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_818DCAC - - thumb_func_start sub_818DCC8 -sub_818DCC8: @ 818DCC8 - push {lr} - ldr r2, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =0x00003b58 - adds r1, r0 - str r1, [r2] - ldr r0, =gStringVar2 - ldrh r1, [r1, 0xE] - bl sub_818DCAC - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DCC8 - - thumb_func_start sub_818DCF4 -sub_818DCF4: @ 818DCF4 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - movs r1, 0xFF - movs r2, 0x8 - bl memset - adds r0, r4, 0 - adds r1, r5, 0 - bl StringCopy7 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_818DCF4 - - thumb_func_start sub_818DD14 -sub_818DD14: @ 818DD14 - push {r4,r5,lr} - ldr r5, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r1, r0, r2 - str r1, [r5] - ldr r1, =0x00003b5c - adds r0, r1 - ldr r4, =gStringVar3 - adds r1, r4, 0 - bl sub_818DCF4 - ldr r0, [r5] - ldrb r1, [r0, 0x12] - adds r0, r4, 0 - bl ConvertInternationalString - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DD14 - thumb_func_start sub_818DD54 sub_818DD54: @ 818DD54 ldr r1, =gUnknown_0203CD64 diff --git a/include/global.h b/include/global.h index 64ed869ef..8c2122b39 100644 --- a/include/global.h +++ b/include/global.h @@ -684,7 +684,7 @@ typedef union // TODO /*0x004*/ u8 unk_004[8]; /*0x00c*/ u8 unk_00c; /*0x00d*/ u8 filler_00d; - /*0x00e*/ u16 unk_00e; + /*0x00e*/ u16 itemId; /*0x010*/ u16 unk_010; /*0x012*/ u8 language; } favour; diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 578280115..c6b49e36f 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -7,6 +7,8 @@ #include "event_data.h" #include "rng.h" #include "string_util.h" +#include "item.h" +#include "items.h" #include "text.h" #include "lilycove_lady.h" @@ -134,7 +136,7 @@ void SetLilycoveFavourLady(void) gUnknown_0203CD64->favour.unk_004[0] = EOS; gUnknown_0203CD64->favour.unk_002 = 0; gUnknown_0203CD64->favour.unk_003= 0; - gUnknown_0203CD64->favour.unk_00e = 0; + gUnknown_0203CD64->favour.itemId = ITEM_NONE; gUnknown_0203CD64->favour.language = gGameLanguage; sub_818DB20(); } @@ -185,3 +187,27 @@ bool8 sub_818DC60(void) } return FALSE; } + +void sub_818DCAC(u8 *dest, u16 itemId) +{ + StringCopy(dest, ItemId_GetItem(itemId)->name); +} + +void sub_818DCC8(void) +{ + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; + sub_818DCAC(gStringVar2, gUnknown_0203CD64->favour.itemId); +} + +void sub_818DCF4(const u8 *src, u8 *dest) +{ + memset(dest, 0xFF, 8); + StringCopy7(dest, src); +} + +void sub_818DD14(void) +{ + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; + sub_818DCF4(gSaveBlock1Ptr->lilycoveLady.favour.unk_004, gStringVar3); + ConvertInternationalString(gStringVar3, gUnknown_0203CD64->favour.language); +} -- cgit v1.2.3 From 534dd2c4b0259f87657b2e8795d96217e8bf12cc Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 19 Sep 2017 21:47:15 -0400 Subject: sub_818DD84 --- asm/lilycove_lady.s | 109 ---------------------------------------------------- include/item_menu.h | 11 ++++++ src/lilycove_lady.c | 44 +++++++++++++++++++++ 3 files changed, 55 insertions(+), 109 deletions(-) create mode 100644 include/item_menu.h diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index c2a6167a6..c4cc3d21a 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,115 +5,6 @@ .text - thumb_func_start sub_818DD54 -sub_818DD54: @ 818DD54 - ldr r1, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldrb r1, [r0, 0x2] - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - bx lr - .pool - thumb_func_end sub_818DD54 - - thumb_func_start sub_818DD78 -sub_818DD78: @ 818DD78 - push {lr} - bl sub_81AAC50 - pop {r0} - bx r0 - thumb_func_end sub_818DD78 - - thumb_func_start sub_818DD84 -sub_818DD84: @ 818DD84 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r5, r0, 16 - ldr r4, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r4] - ldr r1, =gUnknown_0860B2EC - mov r8, r1 - ldrb r0, [r0, 0xC] - lsls r0, 2 - add r0, r8 - ldr r0, [r0] - bl sub_818DB04 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, [r4] - movs r0, 0x1 - strb r0, [r1, 0x1] - ldr r0, =gStringVar2 - adds r1, r5, 0 - bl sub_818DCAC - ldr r1, [r4] - strh r5, [r1, 0xE] - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r1, 0x4 - bl sub_818DCF4 - ldr r1, [r4] - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r1, 0x12] - movs r7, 0 - movs r3, 0 - cmp r7, r6 - bcs _0818DE36 - mov r12, r8 -_0818DDDC: - ldr r2, [r4] - ldrb r0, [r2, 0xC] - lsls r0, 2 - add r0, r12 - ldr r1, [r0] - lsls r0, r3, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r5 - bne _0818DE28 - movs r7, 0x1 - ldrb r0, [r2, 0x3] - adds r0, 0x1 - strb r0, [r2, 0x3] - ldr r0, [r4] - strb r7, [r0, 0x2] - ldr r1, [r4] - ldrh r0, [r1, 0x10] - cmp r0, r5 - bne _0818DE36 - movs r0, 0x5 - strb r0, [r1, 0x3] - b _0818DE36 - .pool -_0818DE28: - movs r0, 0 - strb r0, [r2, 0x2] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r6 - bcc _0818DDDC -_0818DE36: - adds r0, r7, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_818DD84 - thumb_func_start sub_818DE44 sub_818DE44: @ 818DE44 push {lr} diff --git a/include/item_menu.h b/include/item_menu.h new file mode 100644 index 000000000..f402f5cdd --- /dev/null +++ b/include/item_menu.h @@ -0,0 +1,11 @@ +#ifndef GUARD_item_menu_H +#define GUARD_item_menu_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +void sub_81AAC50(void); + +#endif //GUARD_item_menu_H diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index c6b49e36f..8a0851110 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -9,6 +9,7 @@ #include "string_util.h" #include "item.h" #include "items.h" +#include "item_menu.h" #include "text.h" #include "lilycove_lady.h" @@ -211,3 +212,46 @@ void sub_818DD14(void) sub_818DCF4(gSaveBlock1Ptr->lilycoveLady.favour.unk_004, gStringVar3); ConvertInternationalString(gStringVar3, gUnknown_0203CD64->favour.language); } + +bool8 sub_818DD54(void) +{ + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; + return gUnknown_0203CD64->favour.unk_002 ? TRUE : FALSE; +} + +void sub_818DD78(void) +{ + sub_81AAC50(); +} + +bool8 sub_818DD84(u16 itemId) +{ + u8 len; + u8 i; + bool8 response; + + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; + len = sub_818DB04(gUnknown_0860B2EC[gUnknown_0203CD64->favour.unk_00c]); + gUnknown_0203CD64->favour.unk_001 = 1; + sub_818DCAC(gStringVar2, itemId); + gUnknown_0203CD64->favour.itemId = itemId; + sub_818DCF4(gSaveBlock2Ptr->playerName, gUnknown_0203CD64->favour.unk_004); + gUnknown_0203CD64->favour.language = gGameLanguage; + response = FALSE; + for (i = 0; i < len; i ++) + { + if (gUnknown_0860B2EC[gUnknown_0203CD64->favour.unk_00c][i] == itemId) + { + response = TRUE; + gUnknown_0203CD64->favour.unk_003 ++; + gUnknown_0203CD64->favour.unk_002 = 1; + if (gUnknown_0203CD64->favour.unk_010 == itemId) + { + gUnknown_0203CD64->favour.unk_003 = 5; + } + break; + } + gUnknown_0203CD64->favour.unk_002 = 0; + } + return response; +} -- cgit v1.2.3 From 83a420400c302d4c59eb204f8fa18943d69fc6d0 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 19 Sep 2017 21:58:32 -0400 Subject: through sub_818DEF4 --- asm/lilycove_lady.s | 94 ----------------------------------------------------- src/lilycove_lady.c | 44 +++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 94 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index c4cc3d21a..b3588f8a8 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,100 +5,6 @@ .text - thumb_func_start sub_818DE44 -sub_818DE44: @ 818DE44 - push {lr} - ldr r0, =gScriptItemId - ldrh r0, [r0] - bl sub_818DD84 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_818DE44 - - thumb_func_start sub_818DE5C -sub_818DE5C: @ 818DE5C - push {lr} - ldr r1, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldrb r0, [r0, 0x3] - movs r1, 0 - cmp r0, 0x4 - bls _0818DE74 - movs r1, 0x1 -_0818DE74: - adds r0, r1, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_818DE5C - - thumb_func_start sub_818DE88 -sub_818DE88: @ 818DE88 - push {lr} - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r0, =gStringVar2 - bl sub_818DCAC - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DE88 - - thumb_func_start sub_818DEA0 -sub_818DEA0: @ 818DEA0 - push {r4,r5,lr} - ldr r5, =gUnknown_0203CD64 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r5] - ldr r1, =gUnknown_0860B304 - ldrb r0, [r0, 0xC] - lsls r0, 1 - adds r0, r1 - ldrh r4, [r0] - adds r0, r4, 0 - bl sub_818DE88 - ldr r1, [r5] - movs r0, 0x2 - strb r0, [r1, 0x1] - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818DEA0 - - thumb_func_start sub_818DEDC -sub_818DEDC: @ 818DEDC - push {lr} - bl SetLilycoveFavourLady - ldr r0, =gUnknown_0203CD64 - ldr r1, [r0] - movs r0, 0x1 - strb r0, [r1, 0x1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DEDC - - thumb_func_start sub_818DEF4 -sub_818DEF4: @ 818DEF4 - push {lr} - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_818DEF4 - thumb_func_start sub_818DF00 sub_818DF00: @ 818DF00 push {r4-r7,lr} diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 8a0851110..10a0e7f45 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -5,6 +5,7 @@ #include "global.h" #include "main.h" #include "event_data.h" +#include "script.h" #include "rng.h" #include "string_util.h" #include "item.h" @@ -24,8 +25,10 @@ extern const u16 gUnknown_0860B074[5]; extern const u16 gUnknown_0860B07E[3]; extern const u8 *const gUnknown_0860B224[]; extern const u16 *const gUnknown_0860B2EC[6]; +extern const u16 gUnknown_0860B304[6]; EWRAM_DATA LilycoveLady *gUnknown_0203CD64 = NULL; +extern EWRAM_DATA u16 gScriptItemId; u8 GetLilycoveLadyId(void) { @@ -255,3 +258,44 @@ bool8 sub_818DD84(u16 itemId) } return response; } + +bool8 sub_818DE44(void) +{ + return sub_818DD84(gScriptItemId); +} + +bool8 sub_818DE5C(void) +{ + u8 checkval; + + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; + checkval = gUnknown_0203CD64->favour.unk_003; + return checkval < 5 ? FALSE : TRUE; +} + +void sub_818DE88(u16 itemId) +{ + sub_818DCAC(gStringVar2, itemId); +} + +u16 sub_818DEA0(void) +{ + u16 itemId; + + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; + itemId = gUnknown_0860B304[gUnknown_0203CD64->favour.unk_00c]; + sub_818DE88(itemId); + gUnknown_0203CD64->favour.unk_001 = 2; + return itemId; +} + +void sub_818DEDC(void) +{ + SetLilycoveFavourLady(); + gUnknown_0203CD64->favour.unk_001 = 1; +} + +void sub_818DEF4(void) +{ + EnableBothScriptContexts(); +} -- cgit v1.2.3 From 73ee165ef6b05417dc42be721e625712c6538ed6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 19 Sep 2017 22:25:31 -0400 Subject: sub_818DF00 --- asm/lilycove_lady.s | 49 ---------------------- include/global.h | 66 +++++++++++++++++------------- src/lilycove_lady.c | 114 ++++++++++++++++++++++++++++++---------------------- 3 files changed, 106 insertions(+), 123 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index b3588f8a8..e0f578eca 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,55 +5,6 @@ .text - thumb_func_start sub_818DF00 -sub_818DF00: @ 818DF00 - push {r4-r7,lr} - bl Random - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0xF - ands r4, r0 - movs r3, 0 - ldr r5, =gUnknown_0203CD68 - ldr r1, =gUnknown_0860B1A4 - lsls r0, r4, 2 - adds r6, r0, r1 - adds r7, r5, 0 -_0818DF1A: - ldr r2, [r5] - lsls r1, r3, 1 - adds r2, 0x2 - adds r2, r1 - ldr r0, [r6] - adds r1, r0 - ldrh r0, [r1] - strh r0, [r2] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x8 - bls _0818DF1A - ldr r2, [r7] - ldr r0, =gUnknown_0860B1E4 - lsls r1, r4, 1 - adds r0, r1, r0 - ldrh r0, [r0] - strh r0, [r2, 0x14] - ldr r0, =gUnknown_0860B204 - adds r1, r0 - ldrh r0, [r1] - strh r0, [r2, 0x28] - adds r2, 0x2B - strb r4, [r2] - ldr r1, [r7] - movs r0, 0xFF - strb r0, [r1, 0x18] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818DF00 - thumb_func_start SetLilycoveQuizLady SetLilycoveQuizLady: @ 818DF68 push {r4-r6,lr} diff --git a/include/global.h b/include/global.h index 8c2122b39..42fe0cfbb 100644 --- a/include/global.h +++ b/include/global.h @@ -667,39 +667,51 @@ enum { LILYCOVE_LADY_CONTEST }; -typedef union // TODO +struct LilycoveLadyQuiz { - struct - { - /*0x000*/ u8 id; - /*0x001*/ u8 language; - } quiz; + /*0x000*/ u8 id; + /*0x001*/ u8 language; + /*0x002*/ u16 unk_002[9]; + /*0x014*/ u16 unk_014; + /*0x016*/ u8 filler_016[2]; + /*0x018*/ u8 unk_018; + /*0x019*/ u8 filler_019[15]; + /*0x028*/ u16 unk_028; + /*0x02a*/ u8 filler_02a; + /*0x02b*/ u8 unk_02b; +}; - struct - { - /*0x000*/ u8 id; - /*0x001*/ u8 unk_001; - /*0x002*/ u8 unk_002; - /*0x003*/ u8 unk_003; - /*0x004*/ u8 unk_004[8]; - /*0x00c*/ u8 unk_00c; - /*0x00d*/ u8 filler_00d; - /*0x00e*/ u16 itemId; - /*0x010*/ u16 unk_010; - /*0x012*/ u8 language; - } favour; +struct LilycoveLadyFavour +{ + /*0x000*/ u8 id; + /*0x001*/ u8 unk_001; + /*0x002*/ u8 unk_002; + /*0x003*/ u8 unk_003; + /*0x004*/ u8 unk_004[8]; + /*0x00c*/ u8 unk_00c; + /*0x00d*/ u8 filler_00d; + /*0x00e*/ u16 itemId; + /*0x010*/ u16 unk_010; + /*0x012*/ u8 language; +}; - struct - { - /*0x000*/ u8 id; - /*0x001*/ u8 filler_001[12]; - /*0x00d*/ u8 category; // maybe? - } contest; +struct LilycoveLadyContest +{ + /*0x000*/ u8 id; + /*0x001*/ u8 filler_001[12]; + /*0x00d*/ u8 category; // maybe? +}; + +typedef union // TODO +{ + struct LilycoveLadyQuiz quiz; + struct LilycoveLadyFavour favour; + struct LilycoveLadyContest contest; struct { /*0x000*/ u8 id; - /*0x001*/ u8 filler_001[535]; + /*0x001*/ u8 filler_001[0x207]; } common; } LilycoveLady; @@ -786,7 +798,7 @@ struct SaveBlock1 /*0x3728*/ struct RamScript ramScript; /*0x3B14*/ struct RecordMixingGift recordMixingGift; /*0x3B24*/ u8 seen2[52]; - /*0x3B58*/ LilycoveLady lilycoveLady; // TODO: convert to a union + /*0x3B58*/ LilycoveLady lilycoveLady; /*0x3D70*/ u8 babyPhrase[24]; // TODO: convert to a struct // sizeof: 0x3D88 }; diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 10a0e7f45..d64b0d3b3 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -26,8 +26,12 @@ extern const u16 gUnknown_0860B07E[3]; extern const u8 *const gUnknown_0860B224[]; extern const u16 *const gUnknown_0860B2EC[6]; extern const u16 gUnknown_0860B304[6]; +extern const u16 *const gUnknown_0860B1A4[16]; +extern const u16 gUnknown_0860B1E4[16]; +extern const u16 gUnknown_0860B204[16]; -EWRAM_DATA LilycoveLady *gUnknown_0203CD64 = NULL; +EWRAM_DATA struct LilycoveLadyFavour *gUnknown_0203CD64 = NULL; +EWRAM_DATA struct LilycoveLadyQuiz *gUnknown_0203CD68 = NULL; extern EWRAM_DATA u16 gScriptItemId; u8 GetLilycoveLadyId(void) @@ -126,40 +130,40 @@ void sub_818DB20(void) u8 size; u8 idx; - gUnknown_0203CD64->favour.unk_00c = Random() % 6; - size = sub_818DB04(gUnknown_0860B2EC[gUnknown_0203CD64->favour.unk_00c]); + gUnknown_0203CD64->unk_00c = Random() % 6; + size = sub_818DB04(gUnknown_0860B2EC[gUnknown_0203CD64->unk_00c]); idx = Random() % size; - gUnknown_0203CD64->favour.unk_010 = gUnknown_0860B2EC[gUnknown_0203CD64->favour.unk_00c][idx]; + gUnknown_0203CD64->unk_010 = gUnknown_0860B2EC[gUnknown_0203CD64->unk_00c][idx]; } void SetLilycoveFavourLady(void) { - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; - gUnknown_0203CD64->favour.id = LILYCOVE_LADY_FAVOUR; - gUnknown_0203CD64->favour.unk_001 = 0; - gUnknown_0203CD64->favour.unk_004[0] = EOS; - gUnknown_0203CD64->favour.unk_002 = 0; - gUnknown_0203CD64->favour.unk_003= 0; - gUnknown_0203CD64->favour.itemId = ITEM_NONE; - gUnknown_0203CD64->favour.language = gGameLanguage; + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; + gUnknown_0203CD64->id = LILYCOVE_LADY_FAVOUR; + gUnknown_0203CD64->unk_001 = 0; + gUnknown_0203CD64->unk_004[0] = EOS; + gUnknown_0203CD64->unk_002 = 0; + gUnknown_0203CD64->unk_003= 0; + gUnknown_0203CD64->itemId = ITEM_NONE; + gUnknown_0203CD64->language = gGameLanguage; sub_818DB20(); } void sub_818DBC4(void) { - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; - gUnknown_0203CD64->favour.id = LILYCOVE_LADY_FAVOUR; - gUnknown_0203CD64->favour.unk_001 = 0; + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; + gUnknown_0203CD64->id = LILYCOVE_LADY_FAVOUR; + gUnknown_0203CD64->unk_001 = 0; } u8 sub_818DBE8(void) { - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; - if (gUnknown_0203CD64->favour.unk_001 == 2) + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; + if (gUnknown_0203CD64->unk_001 == 2) { return 2; } - else if (gUnknown_0203CD64->favour.unk_001 == 1) + else if (gUnknown_0203CD64->unk_001 == 1) { return 1; } @@ -176,17 +180,17 @@ const u8 *sub_818DC1C(u8 idx) void sub_818DC2C(void) { - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; - StringCopy(gStringVar1, sub_818DC1C(gUnknown_0203CD64->favour.unk_00c)); + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; + StringCopy(gStringVar1, sub_818DC1C(gUnknown_0203CD64->unk_00c)); } bool8 sub_818DC60(void) { - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; - if (gUnknown_0203CD64->favour.unk_004[0] != EOS) + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; + if (gUnknown_0203CD64->unk_004[0] != EOS) { StringCopy7(gStringVar3, gSaveBlock1Ptr->lilycoveLady.favour.unk_004); - ConvertInternationalString(gStringVar3, gUnknown_0203CD64->favour.language); + ConvertInternationalString(gStringVar3, gUnknown_0203CD64->language); return TRUE; } return FALSE; @@ -199,8 +203,8 @@ void sub_818DCAC(u8 *dest, u16 itemId) void sub_818DCC8(void) { - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; - sub_818DCAC(gStringVar2, gUnknown_0203CD64->favour.itemId); + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; + sub_818DCAC(gStringVar2, gUnknown_0203CD64->itemId); } void sub_818DCF4(const u8 *src, u8 *dest) @@ -211,15 +215,15 @@ void sub_818DCF4(const u8 *src, u8 *dest) void sub_818DD14(void) { - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; sub_818DCF4(gSaveBlock1Ptr->lilycoveLady.favour.unk_004, gStringVar3); - ConvertInternationalString(gStringVar3, gUnknown_0203CD64->favour.language); + ConvertInternationalString(gStringVar3, gUnknown_0203CD64->language); } bool8 sub_818DD54(void) { - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; - return gUnknown_0203CD64->favour.unk_002 ? TRUE : FALSE; + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; + return gUnknown_0203CD64->unk_002 ? TRUE : FALSE; } void sub_818DD78(void) @@ -233,28 +237,28 @@ bool8 sub_818DD84(u16 itemId) u8 i; bool8 response; - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; - len = sub_818DB04(gUnknown_0860B2EC[gUnknown_0203CD64->favour.unk_00c]); - gUnknown_0203CD64->favour.unk_001 = 1; + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; + len = sub_818DB04(gUnknown_0860B2EC[gUnknown_0203CD64->unk_00c]); + gUnknown_0203CD64->unk_001 = 1; sub_818DCAC(gStringVar2, itemId); - gUnknown_0203CD64->favour.itemId = itemId; - sub_818DCF4(gSaveBlock2Ptr->playerName, gUnknown_0203CD64->favour.unk_004); - gUnknown_0203CD64->favour.language = gGameLanguage; + gUnknown_0203CD64->itemId = itemId; + sub_818DCF4(gSaveBlock2Ptr->playerName, gUnknown_0203CD64->unk_004); + gUnknown_0203CD64->language = gGameLanguage; response = FALSE; for (i = 0; i < len; i ++) { - if (gUnknown_0860B2EC[gUnknown_0203CD64->favour.unk_00c][i] == itemId) + if (gUnknown_0860B2EC[gUnknown_0203CD64->unk_00c][i] == itemId) { response = TRUE; - gUnknown_0203CD64->favour.unk_003 ++; - gUnknown_0203CD64->favour.unk_002 = 1; - if (gUnknown_0203CD64->favour.unk_010 == itemId) + gUnknown_0203CD64->unk_003 ++; + gUnknown_0203CD64->unk_002 = 1; + if (gUnknown_0203CD64->unk_010 == itemId) { - gUnknown_0203CD64->favour.unk_003 = 5; + gUnknown_0203CD64->unk_003 = 5; } break; } - gUnknown_0203CD64->favour.unk_002 = 0; + gUnknown_0203CD64->unk_002 = 0; } return response; } @@ -268,8 +272,8 @@ bool8 sub_818DE5C(void) { u8 checkval; - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; - checkval = gUnknown_0203CD64->favour.unk_003; + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; + checkval = gUnknown_0203CD64->unk_003; return checkval < 5 ? FALSE : TRUE; } @@ -282,20 +286,36 @@ u16 sub_818DEA0(void) { u16 itemId; - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady; - itemId = gUnknown_0860B304[gUnknown_0203CD64->favour.unk_00c]; + gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; + itemId = gUnknown_0860B304[gUnknown_0203CD64->unk_00c]; sub_818DE88(itemId); - gUnknown_0203CD64->favour.unk_001 = 2; + gUnknown_0203CD64->unk_001 = 2; return itemId; } void sub_818DEDC(void) { SetLilycoveFavourLady(); - gUnknown_0203CD64->favour.unk_001 = 1; + gUnknown_0203CD64->unk_001 = 1; } void sub_818DEF4(void) { EnableBothScriptContexts(); } + +void sub_818DF00(void) +{ + u8 v0; + u8 i; + + v0 = Random() % 16; + for (i = 0; i < 9; i ++) + { + gUnknown_0203CD68->unk_002[i] = gUnknown_0860B1A4[v0][i]; + } + gUnknown_0203CD68->unk_014 = gUnknown_0860B1E4[v0]; + gUnknown_0203CD68->unk_028 = gUnknown_0860B204[v0]; + gUnknown_0203CD68->unk_02b = v0; + gUnknown_0203CD68->unk_018 = 0xFF; +} -- cgit v1.2.3 From 28d0fa33fef825dcb22d45db966ef814c461dd08 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 19 Sep 2017 22:35:40 -0400 Subject: SetLilicoveQuizLady --- asm/lilycove_lady.s | 73 ----------------------------------------------------- include/global.h | 11 +++++--- src/lilycove_lady.c | 24 ++++++++++++++++++ 3 files changed, 31 insertions(+), 77 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index e0f578eca..c3e72fab1 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,79 +5,6 @@ .text - thumb_func_start SetLilycoveQuizLady -SetLilycoveQuizLady: @ 818DF68 - push {r4-r6,lr} - ldr r2, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r2] - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - strb r1, [r0, 0x1] - movs r3, 0 - adds r4, r2, 0 - ldr r6, =gGameLanguage - adds r5, r4, 0 - ldr r0, =0x0000ffff - adds r2, r0, 0 -_0818DF8A: - ldr r1, [r5] - lsls r0, r3, 1 - adds r1, 0x2 - adds r1, r0 - ldrh r0, [r1] - orrs r0, r2 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x8 - bls _0818DF8A - ldr r0, [r4] - ldr r1, =0x0000ffff - strh r1, [r0, 0x14] - movs r1, 0x1 - negs r1, r1 - strh r1, [r0, 0x16] - movs r3, 0 - adds r5, r4, 0 - movs r2, 0 -_0818DFB4: - ldr r0, [r5] - lsls r1, r3, 1 - adds r0, 0x20 - adds r0, r1 - strh r2, [r0] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _0818DFB4 - ldr r0, [r4] - movs r2, 0 - movs r1, 0 - strh r1, [r0, 0x28] - adds r0, 0x2A - strb r2, [r0] - ldr r0, [r4] - adds r0, 0x2C - movs r1, 0x10 - strb r1, [r0] - ldr r0, [r4] - ldrb r1, [r6] - adds r0, 0x2D - strb r1, [r0] - bl sub_818DF00 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end SetLilycoveQuizLady - thumb_func_start sub_818E004 sub_818E004: @ 818E004 ldr r2, =gUnknown_0203CD68 diff --git a/include/global.h b/include/global.h index 42fe0cfbb..84c70a16e 100644 --- a/include/global.h +++ b/include/global.h @@ -670,15 +670,18 @@ enum { struct LilycoveLadyQuiz { /*0x000*/ u8 id; - /*0x001*/ u8 language; + /*0x001*/ u8 unk_001; /*0x002*/ u16 unk_002[9]; /*0x014*/ u16 unk_014; - /*0x016*/ u8 filler_016[2]; + /*0x016*/ u16 unk_016; /*0x018*/ u8 unk_018; - /*0x019*/ u8 filler_019[15]; + /*0x019*/ u8 filler_019[7]; + /*0x020*/ u16 unk_020[4]; /*0x028*/ u16 unk_028; - /*0x02a*/ u8 filler_02a; + /*0x02a*/ u8 unk_02a; /*0x02b*/ u8 unk_02b; + /*0x02c*/ u8 unk_02c; + /*0x02d*/ u8 language; }; struct LilycoveLadyFavour diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index d64b0d3b3..901812ed6 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -319,3 +319,27 @@ void sub_818DF00(void) gUnknown_0203CD68->unk_02b = v0; gUnknown_0203CD68->unk_018 = 0xFF; } + +void SetLilycoveQuizLady(void) +{ + u8 i; + + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + gUnknown_0203CD68->id = LILYCOVE_LADY_QUIZ; + gUnknown_0203CD68->unk_001 = 0; + for (i = 0; i < 9; i ++) + { + gUnknown_0203CD68->unk_002[i] = -1; + } + gUnknown_0203CD68->unk_014 = -1; + gUnknown_0203CD68->unk_016 = -1; + for (i = 0; i < 4; i ++) + { + gUnknown_0203CD68->unk_020[i] = 0; + } + gUnknown_0203CD68->unk_028 = 0; + gUnknown_0203CD68->unk_02a = 0; + gUnknown_0203CD68->unk_02c = 0x10; + gUnknown_0203CD68->language = gGameLanguage; + sub_818DF00(); +} -- cgit v1.2.3 From 9b00767b55b70627aad81b67b87c06db9dca5742 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 19 Sep 2017 22:57:22 -0400 Subject: sub_818E004; sanity --- asm/lilycove_lady.s | 22 ---------------------- src/lilycove_lady.c | 13 +++++++++++-- 2 files changed, 11 insertions(+), 24 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index c3e72fab1..bf3313a97 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,28 +5,6 @@ .text - thumb_func_start sub_818E004 -sub_818E004: @ 818E004 - ldr r2, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r2] - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - strb r1, [r0, 0x1] - ldr r0, [r2] - adds r0, 0x2A - strb r1, [r0] - ldr r1, [r2] - ldr r0, =0x0000ffff - strh r0, [r1, 0x16] - bx lr - .pool - thumb_func_end sub_818E004 - thumb_func_start sub_818E038 sub_818E038: @ 818E038 push {lr} diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 901812ed6..c7a5ef68d 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -189,7 +189,7 @@ bool8 sub_818DC60(void) gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; if (gUnknown_0203CD64->unk_004[0] != EOS) { - StringCopy7(gStringVar3, gSaveBlock1Ptr->lilycoveLady.favour.unk_004); + StringCopy7(gStringVar3, gUnknown_0203CD64->unk_004); ConvertInternationalString(gStringVar3, gUnknown_0203CD64->language); return TRUE; } @@ -216,7 +216,7 @@ void sub_818DCF4(const u8 *src, u8 *dest) void sub_818DD14(void) { gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; - sub_818DCF4(gSaveBlock1Ptr->lilycoveLady.favour.unk_004, gStringVar3); + sub_818DCF4(gUnknown_0203CD64->unk_004, gStringVar3); ConvertInternationalString(gStringVar3, gUnknown_0203CD64->language); } @@ -343,3 +343,12 @@ void SetLilycoveQuizLady(void) gUnknown_0203CD68->language = gGameLanguage; sub_818DF00(); } + +void sub_818E004(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + gUnknown_0203CD68->id = LILYCOVE_LADY_QUIZ; + gUnknown_0203CD68->unk_001 = 0; + gUnknown_0203CD68->unk_02a = 0; + gUnknown_0203CD68->unk_016 = -1; +} -- cgit v1.2.3 From c05f2d44732020ed43f5500a26130ec94e34d657 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 19 Sep 2017 23:31:05 -0400 Subject: sub_818E06C --- asm/lilycove_lady.s | 125 ---------------------------------------------------- src/lilycove_lady.c | 62 ++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 125 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index bf3313a97..0f66eae84 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,131 +5,6 @@ .text - thumb_func_start sub_818E038 -sub_818E038: @ 818E038 - push {lr} - ldr r1, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldrb r0, [r0, 0x1] - cmp r0, 0x2 - bne _0818E05C - movs r0, 0x2 - b _0818E066 - .pool -_0818E05C: - cmp r0, 0x1 - beq _0818E064 - movs r0, 0 - b _0818E066 -_0818E064: - movs r0, 0x1 -_0818E066: - pop {r1} - bx r1 - thumb_func_end sub_818E038 - - thumb_func_start sub_818E06C -sub_818E06C: @ 818E06C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gSaveBlock1Ptr - ldr r4, [r0] - ldr r0, =0x00003b58 - adds r7, r4, r0 - ldrh r0, [r7, 0x14] - bl sub_811F8D8 - cmp r0, 0 - bne _0818E0EC - ldr r1, =0x00003b83 - adds r0, r4, r1 - ldrb r5, [r0] - ldr r0, =0x00003b5a - adds r0, r4 - mov r8, r0 - adds r1, r4 - mov r10, r1 - ldr r6, =gUnknown_0860B1E4 -_0818E09A: - adds r5, 0x1 - cmp r5, 0xF - ble _0818E0A2 - movs r5, 0 -_0818E0A2: - lsls r4, r5, 1 - adds r0, r4, r6 - ldrh r0, [r0] - bl sub_811F8D8 - cmp r0, 0 - beq _0818E09A - movs r3, 0 - ldr r0, =gUnknown_0860B1E4 - mov r12, r0 - lsls r1, r5, 2 - ldr r0, =gUnknown_0860B204 - mov r9, r0 - ldr r0, =gUnknown_0860B1A4 - adds r6, r1, r0 - mov r2, r8 -_0818E0C2: - lsls r0, r3, 1 - ldr r1, [r6] - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x8 - ble _0818E0C2 - mov r1, r12 - adds r0, r4, r1 - ldrh r0, [r0] - strh r0, [r7, 0x14] - mov r1, r9 - adds r0, r4, r1 - ldrh r0, [r0] - strh r0, [r7, 0x28] - mov r0, r10 - strb r5, [r0] - movs r0, 0xFF - strb r0, [r7, 0x18] -_0818E0EC: - bl sub_818E13C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0818E118 - movs r0, 0x2 - b _0818E12C - .pool -_0818E118: - cmp r0, 0x2 - beq _0818E126 - bl sub_818E1F4 - lsls r0, 24 - cmp r0, 0 - beq _0818E12A -_0818E126: - movs r0, 0x1 - b _0818E12C -_0818E12A: - movs r0, 0 -_0818E12C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_818E06C - thumb_func_start sub_818E13C sub_818E13C: @ 818E13C push {r4-r7,lr} diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index c7a5ef68d..93c3cce67 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -20,6 +20,9 @@ void SetLilycoveContestLady(void); void sub_818E004(void); void sub_818DBC4(void); void sub_818E674(void); +bool32 sub_811F8D8(u16); +u8 sub_818E13C(void); +bool8 sub_818E1F4(void); extern const u16 gUnknown_0860B074[5]; extern const u16 gUnknown_0860B07E[3]; @@ -352,3 +355,62 @@ void sub_818E004(void) gUnknown_0203CD68->unk_02a = 0; gUnknown_0203CD68->unk_016 = -1; } + +u8 sub_818E038(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + if (gUnknown_0203CD68->unk_001 == 2) + { + return 2; + } + else if (gUnknown_0203CD68->unk_001 == 1) + { + return 1; + } + else + { + return 0; + } +} + +u8 sub_818E06C(void) +{ + int i; + int j; + u8 rv; + struct LilycoveLadyQuiz *quiz; + + quiz = &gSaveBlock1Ptr->lilycoveLady.quiz; + if (sub_811F8D8(quiz->unk_014) == 0) + { + i = quiz->unk_02b; + do + { + if (++ i >= 16) + { + i = 0; + } + } while (sub_811F8D8(gUnknown_0860B1E4[i]) == 0); + for (j = 0; j < 9; j ++) + { + quiz->unk_002[j] = gUnknown_0860B1A4[i][j]; + } + quiz->unk_014 = gUnknown_0860B1E4[i]; + quiz->unk_028 = gUnknown_0860B204[i]; + quiz->unk_02b = i; + quiz->unk_018 = 0xFF; + } + rv = sub_818E13C(); + if (rv == 0) + { + return 2; + } + else if (rv == 2 || sub_818E1F4()) + { + return 1; + } + else + { + return 0; + } +} -- cgit v1.2.3 From 0b81c2920aa87aae3403efdf60e40b58445efbbf Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 20 Sep 2017 10:45:00 -0400 Subject: sub_818E1F4 --- asm/lilycove_lady.s | 126 ------------------------------------------- include/global.h | 8 ++- src/lilycove_lady.c | 152 ++++++++++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 146 insertions(+), 140 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index 0f66eae84..bb044a01e 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,132 +5,6 @@ .text - thumb_func_start sub_818E13C -sub_818E13C: @ 818E13C - push {r4-r7,lr} - movs r7, 0x1 - ldr r5, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, =0x00003b58 - adds r0, r1, r2 - str r0, [r5] - ldrb r0, [r0, 0x18] - cmp r0, 0xFF - bne _0818E174 - ldr r0, =gStringVar1 - ldr r1, =gUnknown_085EEB7E - bl StringCopy7 - movs r7, 0 - b _0818E1DC - .pool -_0818E174: - ldr r4, =gStringVar1 - ldr r0, =0x00003b70 - adds r1, r0 - adds r0, r4, 0 - bl StringCopy7 - ldr r0, [r5] - adds r0, 0x2D - ldrb r1, [r0] - adds r0, r4, 0 - bl ConvertInternationalString - ldr r0, [r5] - adds r0, 0x18 - bl sub_818E258 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r6, =gSaveBlock2Ptr - ldr r0, [r6] - bl sub_818E258 - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _0818E1DC - ldr r0, [r5] - movs r2, 0 - cmp r2, r4 - bcs _0818E1DC - ldr r1, [r6] - ldrb r0, [r0, 0x18] - ldrb r1, [r1] - cmp r0, r1 - bne _0818E1DA -_0818E1BA: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r4 - bcs _0818E1DC - ldr r0, =gUnknown_0203CD68 - ldr r1, [r0] - adds r1, 0x18 - adds r1, r2 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, r2 - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - beq _0818E1BA -_0818E1DA: - movs r7, 0x2 -_0818E1DC: - adds r0, r7, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818E13C - - thumb_func_start sub_818E1F4 -sub_818E1F4: @ 818E1F4 - push {r4-r6,lr} - ldr r3, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r2, =0x00003b58 - adds r0, r1, r2 - str r0, [r3] - movs r5, 0 - movs r4, 0 - ldr r0, =0x00003b78 - adds r1, r0 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldrh r1, [r1] - adds r6, r3, 0 - adds r3, r0, 0 - ldrb r2, [r2, 0xA] - cmp r1, r2 - bne _0818E23A -_0818E21A: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bhi _0818E23C - ldr r1, [r6] - lsls r0, r4, 1 - adds r1, 0x20 - adds r1, r0 - ldr r0, [r3] - adds r0, 0xA - adds r0, r4 - ldrh r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - beq _0818E21A -_0818E23A: - movs r5, 0x1 -_0818E23C: - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818E1F4 - thumb_func_start sub_818E258 sub_818E258: @ 818E258 push {lr} diff --git a/include/global.h b/include/global.h index 84c70a16e..569345355 100644 --- a/include/global.h +++ b/include/global.h @@ -674,9 +674,8 @@ struct LilycoveLadyQuiz /*0x002*/ u16 unk_002[9]; /*0x014*/ u16 unk_014; /*0x016*/ u16 unk_016; - /*0x018*/ u8 unk_018; - /*0x019*/ u8 filler_019[7]; - /*0x020*/ u16 unk_020[4]; + /*0x018*/ u8 playerName[8]; + /*0x020*/ u16 playerTrainerId[4]; /*0x028*/ u16 unk_028; /*0x02a*/ u8 unk_02a; /*0x02b*/ u8 unk_02b; @@ -690,9 +689,8 @@ struct LilycoveLadyFavour /*0x001*/ u8 unk_001; /*0x002*/ u8 unk_002; /*0x003*/ u8 unk_003; - /*0x004*/ u8 unk_004[8]; + /*0x004*/ u8 playerName[8]; /*0x00c*/ u8 unk_00c; - /*0x00d*/ u8 filler_00d; /*0x00e*/ u16 itemId; /*0x010*/ u16 unk_010; /*0x012*/ u8 language; diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 93c3cce67..196867369 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -23,6 +23,7 @@ void sub_818E674(void); bool32 sub_811F8D8(u16); u8 sub_818E13C(void); bool8 sub_818E1F4(void); +u8 sub_818E258(const u8 *); extern const u16 gUnknown_0860B074[5]; extern const u16 gUnknown_0860B07E[3]; @@ -32,6 +33,7 @@ extern const u16 gUnknown_0860B304[6]; extern const u16 *const gUnknown_0860B1A4[16]; extern const u16 gUnknown_0860B1E4[16]; extern const u16 gUnknown_0860B204[16]; +extern const u8 gUnknown_085EEB7E[8]; EWRAM_DATA struct LilycoveLadyFavour *gUnknown_0203CD64 = NULL; EWRAM_DATA struct LilycoveLadyQuiz *gUnknown_0203CD68 = NULL; @@ -144,7 +146,7 @@ void SetLilycoveFavourLady(void) gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; gUnknown_0203CD64->id = LILYCOVE_LADY_FAVOUR; gUnknown_0203CD64->unk_001 = 0; - gUnknown_0203CD64->unk_004[0] = EOS; + gUnknown_0203CD64->playerName[0] = EOS; gUnknown_0203CD64->unk_002 = 0; gUnknown_0203CD64->unk_003= 0; gUnknown_0203CD64->itemId = ITEM_NONE; @@ -190,9 +192,9 @@ void sub_818DC2C(void) bool8 sub_818DC60(void) { gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; - if (gUnknown_0203CD64->unk_004[0] != EOS) + if (gUnknown_0203CD64->playerName[0] != EOS) { - StringCopy7(gStringVar3, gUnknown_0203CD64->unk_004); + StringCopy7(gStringVar3, gUnknown_0203CD64->playerName); ConvertInternationalString(gStringVar3, gUnknown_0203CD64->language); return TRUE; } @@ -219,7 +221,7 @@ void sub_818DCF4(const u8 *src, u8 *dest) void sub_818DD14(void) { gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; - sub_818DCF4(gUnknown_0203CD64->unk_004, gStringVar3); + sub_818DCF4(gUnknown_0203CD64->playerName, gStringVar3); ConvertInternationalString(gStringVar3, gUnknown_0203CD64->language); } @@ -245,7 +247,7 @@ bool8 sub_818DD84(u16 itemId) gUnknown_0203CD64->unk_001 = 1; sub_818DCAC(gStringVar2, itemId); gUnknown_0203CD64->itemId = itemId; - sub_818DCF4(gSaveBlock2Ptr->playerName, gUnknown_0203CD64->unk_004); + sub_818DCF4(gSaveBlock2Ptr->playerName, gUnknown_0203CD64->playerName); gUnknown_0203CD64->language = gGameLanguage; response = FALSE; for (i = 0; i < len; i ++) @@ -311,7 +313,7 @@ void sub_818DF00(void) { u8 v0; u8 i; - + v0 = Random() % 16; for (i = 0; i < 9; i ++) { @@ -320,7 +322,7 @@ void sub_818DF00(void) gUnknown_0203CD68->unk_014 = gUnknown_0860B1E4[v0]; gUnknown_0203CD68->unk_028 = gUnknown_0860B204[v0]; gUnknown_0203CD68->unk_02b = v0; - gUnknown_0203CD68->unk_018 = 0xFF; + gUnknown_0203CD68->playerName[0] = EOS; } void SetLilycoveQuizLady(void) @@ -338,7 +340,7 @@ void SetLilycoveQuizLady(void) gUnknown_0203CD68->unk_016 = -1; for (i = 0; i < 4; i ++) { - gUnknown_0203CD68->unk_020[i] = 0; + gUnknown_0203CD68->playerTrainerId[i] = 0; } gUnknown_0203CD68->unk_028 = 0; gUnknown_0203CD68->unk_02a = 0; @@ -398,7 +400,7 @@ u8 sub_818E06C(void) quiz->unk_014 = gUnknown_0860B1E4[i]; quiz->unk_028 = gUnknown_0860B204[i]; quiz->unk_02b = i; - quiz->unk_018 = 0xFF; + quiz->playerName[0] = EOS; } rv = sub_818E13C(); if (rv == 0) @@ -414,3 +416,135 @@ u8 sub_818E06C(void) return 0; } } + +#ifdef NONMATCHING +u8 sub_818E13C(void) +{ + u8 retval; + u8 len; + u8 i; + + retval = 1; + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + if (gUnknown_0203CD68->playerName[0] == EOS) + { + StringCopy7(gStringVar1, gUnknown_085EEB7E); + retval = 0; + } + else + { + StringCopy7(gStringVar1, gUnknown_0203CD68->playerName); + ConvertInternationalString(gStringVar1, gUnknown_0203CD68->language); + len = sub_818E258(gUnknown_0203CD68->playerName); + if (len == sub_818E258(gSaveBlock2Ptr->playerName)) + { + for (i = 0; i < len; i ++) + { + if (gUnknown_0203CD68->playerName[i] != gSaveBlock2Ptr->playerName[i]) + { + retval = 2; + break; + } + } + } + + } + return retval; +} +#else +__attribute__((naked)) u8 sub_818E13C(void) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tmovs r7, 0x1\n" + "\tldr r5, =gUnknown_0203CD68\n" + "\tldr r0, =gSaveBlock1Ptr\n" + "\tldr r1, [r0]\n" + "\tldr r2, =0x00003b58\n" + "\tadds r0, r1, r2\n" + "\tstr r0, [r5]\n" + "\tldrb r0, [r0, 0x18]\n" + "\tcmp r0, 0xFF\n" + "\tbne _0818E174\n" + "\tldr r0, =gStringVar1\n" + "\tldr r1, =gUnknown_085EEB7E\n" + "\tbl StringCopy7\n" + "\tmovs r7, 0\n" + "\tb _0818E1DC\n" + "\t.pool\n" + "_0818E174:\n" + "\tldr r4, =gStringVar1\n" + "\tldr r0, =0x00003b70\n" + "\tadds r1, r0\n" + "\tadds r0, r4, 0\n" + "\tbl StringCopy7\n" + "\tldr r0, [r5]\n" + "\tadds r0, 0x2D\n" + "\tldrb r1, [r0]\n" + "\tadds r0, r4, 0\n" + "\tbl ConvertInternationalString\n" + "\tldr r0, [r5]\n" + "\tadds r0, 0x18\n" + "\tbl sub_818E258\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tldr r6, =gSaveBlock2Ptr\n" + "\tldr r0, [r6]\n" + "\tbl sub_818E258\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tcmp r4, r0\n" + "\tbne _0818E1DC\n" + "\tldr r0, [r5]\n" + "\tmovs r2, 0\n" + "\tcmp r2, r4\n" + "\tbcs _0818E1DC\n" + "\tldr r1, [r6]\n" + "\tldrb r0, [r0, 0x18]\n" + "\tldrb r1, [r1]\n" + "\tcmp r0, r1\n" + "\tbne _0818E1DA\n" + "_0818E1BA:\n" + "\tadds r0, r2, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r2, r0, 24\n" + "\tcmp r2, r4\n" + "\tbcs _0818E1DC\n" + "\tldr r0, =gUnknown_0203CD68\n" + "\tldr r1, [r0]\n" + "\tadds r1, 0x18\n" + "\tadds r1, r2\n" + "\tldr r0, =gSaveBlock2Ptr\n" + "\tldr r0, [r0]\n" + "\tadds r0, r2\n" + "\tldrb r1, [r1]\n" + "\tldrb r0, [r0]\n" + "\tcmp r1, r0\n" + "\tbeq _0818E1BA\n" + "_0818E1DA:\n" + "\tmovs r7, 0x2\n" + "_0818E1DC:\n" + "\tadds r0, r7, 0\n" + "\tpop {r4-r7}\n" + "\tpop {r1}\n" + "\tbx r1\n" + "\t.pool"); +} +#endif + +u8 sub_818E1F4(void) +{ + u8 response; + u8 i; + + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + response = 0; + for (i = 0; i < 4; i ++) + { + if (gUnknown_0203CD68->playerTrainerId[i] != gSaveBlock2Ptr->playerTrainerId[i]) + { + response = 1; + break; + } + } + return response; +} -- cgit v1.2.3 From 0895d8d861ca7db6d8fa2910f6275eb6b615340e Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 20 Sep 2017 11:25:46 -0400 Subject: sub_818E258 --- asm/lilycove_lady.s | 20 -------------------- src/lilycove_lady.c | 9 +++++++++ 2 files changed, 9 insertions(+), 20 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index bb044a01e..1580d9595 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,26 +5,6 @@ .text - thumb_func_start sub_818E258 -sub_818E258: @ 818E258 - push {lr} - movs r2, 0 - adds r1, r0, 0 - b _0818E268 -_0818E260: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r1, 0x1 -_0818E268: - ldrb r0, [r1] - cmp r0, 0xFF - bne _0818E260 - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_818E258 - thumb_func_start sub_818E274 sub_818E274: @ 818E274 push {r4,lr} diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 196867369..564b089a6 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -548,3 +548,12 @@ u8 sub_818E1F4(void) } return response; } + +u8 sub_818E258(const u8 *str) +{ + u8 len; + const u8 *ptr; + + for (len = 0, ptr = str; *ptr != EOS; len ++, ptr ++); + return len; +} -- cgit v1.2.3 From 8a31e58689af6e62c8c272c24397310c2a44f6f5 Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 20 Sep 2017 11:30:09 -0400 Subject: sub_818E298 --- asm/lilycove_lady.s | 47 ----------------------------------------------- include/global.h | 2 +- src/lilycove_lady.c | 28 ++++++++++++++++++++++------ 3 files changed, 23 insertions(+), 54 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index 1580d9595..65cc3b41a 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,53 +5,6 @@ .text - thumb_func_start sub_818E274 -sub_818E274: @ 818E274 - push {r4,lr} - ldr r4, =gStringVar1 - ldr r0, =gUnknown_0203CD68 - ldr r0, [r0] - ldrh r0, [r0, 0x28] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E274 - - thumb_func_start sub_818E298 -sub_818E298: @ 818E298 - push {r4,lr} - ldr r4, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r4] - bl sub_818E13C - lsls r0, 24 - cmp r0, 0 - beq _0818E2C0 - movs r0, 0 - b _0818E2CC - .pool -_0818E2C0: - ldr r0, [r4] - ldr r1, =gGameLanguage - ldrb r1, [r1] - adds r0, 0x2D - strb r1, [r0] - movs r0, 0x1 -_0818E2CC: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818E298 - thumb_func_start sub_818E2D8 sub_818E2D8: @ 818E2D8 ldr r2, =gUnknown_0203CD68 diff --git a/include/global.h b/include/global.h index 569345355..09dabf822 100644 --- a/include/global.h +++ b/include/global.h @@ -676,7 +676,7 @@ struct LilycoveLadyQuiz /*0x016*/ u16 unk_016; /*0x018*/ u8 playerName[8]; /*0x020*/ u16 playerTrainerId[4]; - /*0x028*/ u16 unk_028; + /*0x028*/ u16 itemId; /*0x02a*/ u8 unk_02a; /*0x02b*/ u8 unk_02b; /*0x02c*/ u8 unk_02c; diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 564b089a6..976ed4d88 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -320,7 +320,7 @@ void sub_818DF00(void) gUnknown_0203CD68->unk_002[i] = gUnknown_0860B1A4[v0][i]; } gUnknown_0203CD68->unk_014 = gUnknown_0860B1E4[v0]; - gUnknown_0203CD68->unk_028 = gUnknown_0860B204[v0]; + gUnknown_0203CD68->itemId = gUnknown_0860B204[v0]; gUnknown_0203CD68->unk_02b = v0; gUnknown_0203CD68->playerName[0] = EOS; } @@ -342,7 +342,7 @@ void SetLilycoveQuizLady(void) { gUnknown_0203CD68->playerTrainerId[i] = 0; } - gUnknown_0203CD68->unk_028 = 0; + gUnknown_0203CD68->itemId = ITEM_NONE; gUnknown_0203CD68->unk_02a = 0; gUnknown_0203CD68->unk_02c = 0x10; gUnknown_0203CD68->language = gGameLanguage; @@ -398,7 +398,7 @@ u8 sub_818E06C(void) quiz->unk_002[j] = gUnknown_0860B1A4[i][j]; } quiz->unk_014 = gUnknown_0860B1E4[i]; - quiz->unk_028 = gUnknown_0860B204[i]; + quiz->itemId = gUnknown_0860B204[i]; quiz->unk_02b = i; quiz->playerName[0] = EOS; } @@ -533,16 +533,16 @@ __attribute__((naked)) u8 sub_818E13C(void) u8 sub_818E1F4(void) { - u8 response; + bool8 response; u8 i; gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - response = 0; + response = FALSE; for (i = 0; i < 4; i ++) { if (gUnknown_0203CD68->playerTrainerId[i] != gSaveBlock2Ptr->playerTrainerId[i]) { - response = 1; + response = TRUE; break; } } @@ -557,3 +557,19 @@ u8 sub_818E258(const u8 *str) for (len = 0, ptr = str; *ptr != EOS; len ++, ptr ++); return len; } + +void sub_818E274(void) +{ + StringCopy(gStringVar1, ItemId_GetItem(gUnknown_0203CD68->itemId)->name); +} + +bool8 sub_818E298(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + if (!sub_818E13C()) + { + gUnknown_0203CD68->language = gGameLanguage; + return TRUE; + } + return FALSE; +} -- cgit v1.2.3 From 213fef604247d31f6981bd83c703bb1d3e1bbd31 Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 20 Sep 2017 11:44:20 -0400 Subject: through sub_818E308 --- asm/lilycove_lady.s | 56 ----------------------------------------------------- include/easy_chat.h | 2 ++ src/lilycove_lady.c | 20 +++++++++++++++++++ 3 files changed, 22 insertions(+), 56 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index 65cc3b41a..0c46932cf 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,62 +5,6 @@ .text - thumb_func_start sub_818E2D8 -sub_818E2D8: @ 818E2D8 - ldr r2, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, =0x00003b58 - adds r1, r0, r3 - str r1, [r2] - ldr r1, =0x00003b82 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_818E2D8 - - thumb_func_start sub_818E2FC -sub_818E2FC: @ 818E2FC - push {lr} - bl easy_chat_input_maybe - pop {r0} - bx r0 - thumb_func_end sub_818E2FC - - thumb_func_start sub_818E308 -sub_818E308: @ 818E308 - push {r4-r6,lr} - ldr r5, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r5] - ldr r6, =gStringVar1 - ldrh r1, [r0, 0x14] - adds r0, r6, 0 - bl CopyEasyChatWord - ldr r4, =gStringVar2 - ldr r0, [r5] - ldrh r1, [r0, 0x16] - adds r0, r4, 0 - bl CopyEasyChatWord - adds r0, r6, 0 - adds r1, r4, 0 - bl StringCompare - movs r1, 0 - cmp r0, 0 - bne _0818E33C - movs r1, 0x1 -_0818E33C: - adds r0, r1, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818E308 - thumb_func_start sub_818E358 sub_818E358: @ 818E358 ldr r1, =gUnknown_0203CD68 diff --git a/include/easy_chat.h b/include/easy_chat.h index 5143aa39c..d7dc72410 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -29,5 +29,7 @@ enum }; void InitEasyChatPhrases(void); +void easy_chat_input_maybe(void); +void CopyEasyChatWord(u8 *, u16); #endif // GUARD_EASYCHAT_H diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 976ed4d88..485a0c9d4 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -12,6 +12,7 @@ #include "items.h" #include "item_menu.h" #include "text.h" +#include "easy_chat.h" #include "lilycove_lady.h" void SetLilycoveQuizLady(void); @@ -573,3 +574,22 @@ bool8 sub_818E298(void) } return FALSE; } + +u8 sub_818E2D8(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + return gUnknown_0203CD68->unk_02a; +} + +void sub_818E2FC(void) +{ + easy_chat_input_maybe(); +} + +bool8 sub_818E308(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + CopyEasyChatWord(gStringVar1, gUnknown_0203CD68->unk_014); + CopyEasyChatWord(gStringVar2, gUnknown_0203CD68->unk_016); + return StringCompare(gStringVar1, gStringVar2) ? FALSE : TRUE; +} -- cgit v1.2.3 From fdea92edffb4360db50cb0e7dcc044dc7242defe Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 20 Sep 2017 11:48:11 -0400 Subject: through sub_818E3E0 --- asm/lilycove_lady.s | 65 ----------------------------------------------------- include/item_menu.h | 1 + src/lilycove_lady.c | 29 ++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 65 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index 0c46932cf..72b321ef8 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,71 +5,6 @@ .text - thumb_func_start sub_818E358 -sub_818E358: @ 818E358 - ldr r1, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldr r1, =gSpecialVar_0x8005 - ldrh r0, [r0, 0x28] - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_818E358 - - thumb_func_start sub_818E37C -sub_818E37C: @ 818E37C - ldr r1, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - movs r1, 0x1 - strb r1, [r0, 0x1] - bx lr - .pool - thumb_func_end sub_818E37C - - thumb_func_start sub_818E39C -sub_818E39C: @ 818E39C - ldr r1, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - movs r1, 0x2 - strb r1, [r0, 0x1] - bx lr - .pool - thumb_func_end sub_818E39C - - thumb_func_start sub_818E3BC -sub_818E3BC: @ 818E3BC - ldr r1, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldr r1, =0x0000ffff - strh r1, [r0, 0x16] - bx lr - .pool - thumb_func_end sub_818E3BC - - thumb_func_start sub_818E3E0 -sub_818E3E0: @ 818E3E0 - push {lr} - bl sub_81AAC70 - pop {r0} - bx r0 - thumb_func_end sub_818E3E0 - thumb_func_start sub_818E3EC sub_818E3EC: @ 818E3EC push {r4,lr} diff --git a/include/item_menu.h b/include/item_menu.h index f402f5cdd..85655e9d5 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -7,5 +7,6 @@ // Exported ROM declarations void sub_81AAC50(void); +void sub_81AAC70(void); #endif //GUARD_item_menu_H diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 485a0c9d4..c4a0b9c11 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -593,3 +593,32 @@ bool8 sub_818E308(void) CopyEasyChatWord(gStringVar2, gUnknown_0203CD68->unk_016); return StringCompare(gStringVar1, gStringVar2) ? FALSE : TRUE; } + +void sub_818E358(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + gSpecialVar_0x8005 = gUnknown_0203CD68->itemId; +} + +void sub_818E37C(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + gUnknown_0203CD68->unk_001 = 1; +} + +void sub_818E39C(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + gUnknown_0203CD68->unk_001 = 2; +} + +void sub_818E3BC(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + gUnknown_0203CD68->unk_016 = -1; +} + +void sub_818E3E0(void) +{ + sub_81AAC70(); +} -- cgit v1.2.3 From 5fb39d5ef9f7c19ecff2b347cf7785ea8fc63ad9 Mon Sep 17 00:00:00 2001 From: scnorton Date: Wed, 20 Sep 2017 12:56:45 -0400 Subject: sub_818E3EC --- asm/lilycove_lady.s | 32 -------------------------------- src/lilycove_lady.c | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 32 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index 72b321ef8..34b479c8a 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,38 +5,6 @@ .text - thumb_func_start sub_818E3EC -sub_818E3EC: @ 818E3EC - push {r4,lr} - ldr r4, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r4] - bl sub_818E298 - lsls r0, 24 - cmp r0, 0 - beq _0818E41C - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0x2B - ldrb r1, [r1] - adds r0, 0x2C - b _0818E422 - .pool -_0818E41C: - ldr r0, [r4] - adds r0, 0x2C - movs r1, 0x10 -_0818E422: - strb r1, [r0] - bl sub_818DF00 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_818E3EC - thumb_func_start sub_818E430 sub_818E430: @ 818E430 push {r4,r5,lr} diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index c4a0b9c11..65f6e2e10 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -622,3 +622,17 @@ void sub_818E3E0(void) { sub_81AAC70(); } + +void sub_818E3EC(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + if (sub_818E298()) + { + gUnknown_0203CD68->unk_02c = gUnknown_0203CD68->unk_02b; + } + else + { + gUnknown_0203CD68->unk_02c = 0x10; + } + sub_818DF00(); +} -- cgit v1.2.3 From d22a9acc63b9f7c72e0d7ec81396b799af94e270 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 20 Sep 2017 16:12:18 -0400 Subject: through sub_818E490 --- asm/lilycove_lady.s | 60 ----------------------------------------------------- include/global.h | 2 +- src/lilycove_lady.c | 23 ++++++++++++++++++++ 3 files changed, 24 insertions(+), 61 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index 34b479c8a..b50218e48 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,66 +5,6 @@ .text - thumb_func_start sub_818E430 -sub_818E430: @ 818E430 - push {r4,r5,lr} - ldr r1, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - movs r2, 0 - adds r5, r1, 0 - adds r4, r5, 0 - ldr r0, =0x0000ffff - adds r3, r0, 0 -_0818E448: - ldr r1, [r4] - lsls r0, r2, 1 - adds r1, 0x2 - adds r1, r0 - ldrh r0, [r1] - orrs r0, r3 - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x8 - bls _0818E448 - ldr r1, [r5] - ldr r0, =0x0000ffff - strh r0, [r1, 0x14] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E430 - - thumb_func_start sub_818E47C -sub_818E47C: @ 818E47C - push {lr} - ldr r1, =gSpecialVar_0x8004 - movs r0, 0x11 - strh r0, [r1] - bl easy_chat_input_maybe - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E47C - - thumb_func_start sub_818E490 -sub_818E490: @ 818E490 - push {lr} - ldr r0, =gScriptItemId - ldrh r0, [r0] - movs r1, 0x1 - bl RemoveBagItem - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E490 - thumb_func_start sub_818E4A4 sub_818E4A4: @ 818E4A4 push {r4-r6,lr} diff --git a/include/global.h b/include/global.h index 09dabf822..6fa8cb92d 100644 --- a/include/global.h +++ b/include/global.h @@ -712,7 +712,7 @@ typedef union // TODO struct { /*0x000*/ u8 id; - /*0x001*/ u8 filler_001[0x207]; + /*0x001*/ u8 filler_001[0x217]; } common; } LilycoveLady; diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 65f6e2e10..a0482a28f 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -636,3 +636,26 @@ void sub_818E3EC(void) } sub_818DF00(); } + +void sub_818E430(void) +{ + u8 i; + + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + for (i = 0; i < 9; i ++) + { + gUnknown_0203CD68->unk_002[i] = -1; + } + gUnknown_0203CD68->unk_014 = -1; +} + +void sub_818E47C(void) +{ + gSpecialVar_0x8004 = 0x11; + easy_chat_input_maybe(); +} + +void sub_818E490(void) +{ + RemoveBagItem(gScriptItemId, 1); +} -- cgit v1.2.3 From 44e75e1f0303248638d3ab4b7115a1c7db24dbf0 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 20 Sep 2017 16:32:37 -0400 Subject: through sub_818E570 --- asm/lilycove_lady.s | 161 ---------------------------------------------------- src/lilycove_lady.c | 56 ++++++++++++++++++ 2 files changed, 56 insertions(+), 161 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index b50218e48..0acc81935 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,167 +5,6 @@ .text - thumb_func_start sub_818E4A4 -sub_818E4A4: @ 818E4A4 - push {r4-r6,lr} - ldr r2, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r2] - ldr r1, =gScriptItemId - ldrh r1, [r1] - strh r1, [r0, 0x28] - movs r3, 0 - adds r4, r2, 0 - ldr r6, =gSaveBlock2Ptr - adds r5, r4, 0 - adds r2, r6, 0 -_0818E4C2: - ldr r1, [r5] - lsls r0, r3, 1 - adds r1, 0x20 - adds r1, r0 - ldr r0, [r2] - adds r0, 0xA - adds r0, r3 - ldrb r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _0818E4C2 - ldr r0, [r4] - adds r0, 0x18 - ldr r1, [r6] - bl StringCopy7 - ldr r0, [r4] - ldr r1, =gGameLanguage - ldrb r1, [r1] - adds r0, 0x2D - strb r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E4A4 - - thumb_func_start sub_818E510 -sub_818E510: @ 818E510 - ldr r2, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, =0x00003b58 - adds r1, r0, r3 - str r1, [r2] - ldr r1, =0x00003b82 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - bx lr - .pool - thumb_func_end sub_818E510 - - thumb_func_start sub_818E538 -sub_818E538: @ 818E538 - push {lr} - ldr r2, =gUnknown_0203CD68 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =0x00003b58 - adds r1, r0 - str r1, [r2] - ldr r0, =gStringVar3 - ldrh r1, [r1, 0x14] - bl CopyEasyChatWord - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E538 - - thumb_func_start sub_818E564 -sub_818E564: @ 818E564 - push {lr} - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_818E564 - - thumb_func_start sub_818E570 -sub_818E570: @ 818E570 - push {r4-r7,lr} - ldr r2, =gUnknown_0203CD68 - ldr r1, =gSaveBlock1Ptr - ldr r1, [r1] - ldr r4, =0x00003b58 - adds r3, r1, r4 - str r3, [r2] - adds r6, r0, 0 - adds r6, 0x2C - ldrb r4, [r6] - adds r7, r2, 0 - cmp r4, 0xF - bhi _0818E5EC - ldrb r0, [r3] - cmp r0, 0 - bne _0818E5EC - movs r5, 0 - ldr r2, =0x00003b83 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r4, r0 - bne _0818E5E4 - adds r4, r7, 0 -_0818E59E: - bl Random - ldr r2, [r4] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF - ands r0, r1 - adds r2, 0x2B - strb r0, [r2] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bhi _0818E5C6 - ldr r0, [r4] - adds r0, 0x2B - ldrb r1, [r6] - ldrb r0, [r0] - cmp r1, r0 - beq _0818E59E -_0818E5C6: - ldr r0, [r4] - adds r2, r0, 0 - adds r2, 0x2B - ldrb r0, [r6] - ldr r7, =gUnknown_0203CD68 - ldrb r4, [r2] - cmp r0, r4 - bne _0818E5E4 - ldrb r1, [r2] - adds r3, r1, 0x1 - adds r0, r3, 0 - asrs r0, 4 - lsls r0, 4 - subs r0, r3, r0 - strb r0, [r2] -_0818E5E4: - ldr r0, [r7] - ldrb r1, [r6] - adds r0, 0x2C - strb r1, [r0] -_0818E5EC: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E570 - thumb_func_start sub_818E604 sub_818E604: @ 818E604 push {r4,lr} diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index a0482a28f..61b5488a1 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -38,6 +38,8 @@ extern const u8 gUnknown_085EEB7E[8]; EWRAM_DATA struct LilycoveLadyFavour *gUnknown_0203CD64 = NULL; EWRAM_DATA struct LilycoveLadyQuiz *gUnknown_0203CD68 = NULL; +EWRAM_DATA struct LilycoveLadyContest *gUnknown_0203CD6C = NULL; + extern EWRAM_DATA u16 gScriptItemId; u8 GetLilycoveLadyId(void) @@ -659,3 +661,57 @@ void sub_818E490(void) { RemoveBagItem(gScriptItemId, 1); } + +void sub_818E4A4(void) +{ + u8 i; + + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + gUnknown_0203CD68->itemId = gScriptItemId; + for (i = 0; i < 4; i ++) + { + gUnknown_0203CD68->playerTrainerId[i] = gSaveBlock2Ptr->playerTrainerId[i]; + } + StringCopy7(gUnknown_0203CD68->playerName, gSaveBlock2Ptr->playerName); + gUnknown_0203CD68->language = gGameLanguage; +} + +void sub_818E510(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + gUnknown_0203CD68->unk_02a = 1; +} + +void sub_818E538(void) +{ + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + CopyEasyChatWord(gStringVar3, gUnknown_0203CD68->unk_014); +} + +void sub_818E564(void) +{ + EnableBothScriptContexts(); +} + +void sub_818E570(const struct LilycoveLadyQuiz *quiz) +{ + u8 i; + + gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + if (quiz->unk_02c < 16 && gUnknown_0203CD68->id == LILYCOVE_LADY_QUIZ) + { + for (i = 0; i < 4; i ++) + { + if (quiz->unk_02c != gUnknown_0203CD68->unk_02b) + { + break; + } + gUnknown_0203CD68->unk_02b = Random() % 16; + } + if (quiz->unk_02c == gUnknown_0203CD68->unk_02b) + { + gUnknown_0203CD68->unk_02b = (gUnknown_0203CD68->unk_02b + 1) % 16; + } + gUnknown_0203CD68->unk_02c = quiz->unk_02c; + } +} -- cgit v1.2.3 From 7c8cbc6b88d745da215fc45730f84b598869438f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 20 Sep 2017 16:49:22 -0400 Subject: SetLilycoveContestLady --- asm/lilycove_lady.s | 52 ---------------------------------------------------- include/global.h | 21 +++++++++++---------- src/lilycove_lady.c | 46 ++++++++++++++++++++++++++++++++-------------- 3 files changed, 43 insertions(+), 76 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index 0acc81935..7a844c2fb 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,58 +5,6 @@ .text - thumb_func_start sub_818E604 -sub_818E604: @ 818E604 - push {r4,lr} - ldr r4, =gUnknown_0203CD6C - ldr r1, [r4] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r0, [r4] - movs r1, 0 - strb r1, [r0, 0x2] - ldr r0, [r4] - strb r1, [r0, 0x3] - ldr r0, [r4] - strb r1, [r0, 0xC] - bl Random - ldr r4, [r4] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - strb r0, [r4, 0xD] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E604 - - thumb_func_start SetLilycoveContestLady -SetLilycoveContestLady: @ 818E638 - push {r4,lr} - ldr r4, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r4] - movs r2, 0 - movs r1, 0x2 - strb r1, [r0] - ldr r0, [r4] - strb r2, [r0, 0x1] - bl sub_818E604 - ldr r1, [r4] - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r1, 0xE] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end SetLilycoveContestLady - thumb_func_start sub_818E674 sub_818E674: @ 818E674 push {lr} diff --git a/include/global.h b/include/global.h index 6fa8cb92d..fa7856786 100644 --- a/include/global.h +++ b/include/global.h @@ -670,7 +670,7 @@ enum { struct LilycoveLadyQuiz { /*0x000*/ u8 id; - /*0x001*/ u8 unk_001; + /*0x001*/ u8 phase; /*0x002*/ u16 unk_002[9]; /*0x014*/ u16 unk_014; /*0x016*/ u16 unk_016; @@ -686,7 +686,7 @@ struct LilycoveLadyQuiz struct LilycoveLadyFavour { /*0x000*/ u8 id; - /*0x001*/ u8 unk_001; + /*0x001*/ u8 phase; /*0x002*/ u8 unk_002; /*0x003*/ u8 unk_003; /*0x004*/ u8 playerName[8]; @@ -699,8 +699,13 @@ struct LilycoveLadyFavour struct LilycoveLadyContest { /*0x000*/ u8 id; - /*0x001*/ u8 filler_001[12]; - /*0x00d*/ u8 category; // maybe? + /*0x001*/ u8 phase; + /*0x002*/ u8 fave_pkblk; + /*0x003*/ u8 other_pkblk; + /*0x004*/ u8 playerName[8]; + /*0x00c*/ u8 max_sheen; + /*0x00d*/ u8 category; + /*0x00e*/ u8 language; }; typedef union // TODO @@ -708,12 +713,7 @@ typedef union // TODO struct LilycoveLadyQuiz quiz; struct LilycoveLadyFavour favour; struct LilycoveLadyContest contest; - - struct - { - /*0x000*/ u8 id; - /*0x001*/ u8 filler_001[0x217]; - } common; + u8 id; } LilycoveLady; struct SaveBlock1 @@ -800,6 +800,7 @@ struct SaveBlock1 /*0x3B14*/ struct RecordMixingGift recordMixingGift; /*0x3B24*/ u8 seen2[52]; /*0x3B58*/ LilycoveLady lilycoveLady; + /*0x3B88*/ u8 filler_3B88[0x1E8]; /*0x3D70*/ u8 babyPhrase[24]; // TODO: convert to a struct // sizeof: 0x3D88 }; diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 61b5488a1..f6471828b 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -44,7 +44,7 @@ extern EWRAM_DATA u16 gScriptItemId; u8 GetLilycoveLadyId(void) { - return gSaveBlock1Ptr->lilycoveLady.common.id; + return gSaveBlock1Ptr->lilycoveLady.id; } void sub_818D9C0(void) @@ -148,7 +148,7 @@ void SetLilycoveFavourLady(void) { gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; gUnknown_0203CD64->id = LILYCOVE_LADY_FAVOUR; - gUnknown_0203CD64->unk_001 = 0; + gUnknown_0203CD64->phase = 0; gUnknown_0203CD64->playerName[0] = EOS; gUnknown_0203CD64->unk_002 = 0; gUnknown_0203CD64->unk_003= 0; @@ -161,17 +161,17 @@ void sub_818DBC4(void) { gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; gUnknown_0203CD64->id = LILYCOVE_LADY_FAVOUR; - gUnknown_0203CD64->unk_001 = 0; + gUnknown_0203CD64->phase = 0; } u8 sub_818DBE8(void) { gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; - if (gUnknown_0203CD64->unk_001 == 2) + if (gUnknown_0203CD64->phase == 2) { return 2; } - else if (gUnknown_0203CD64->unk_001 == 1) + else if (gUnknown_0203CD64->phase == 1) { return 1; } @@ -247,7 +247,7 @@ bool8 sub_818DD84(u16 itemId) gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; len = sub_818DB04(gUnknown_0860B2EC[gUnknown_0203CD64->unk_00c]); - gUnknown_0203CD64->unk_001 = 1; + gUnknown_0203CD64->phase = 1; sub_818DCAC(gStringVar2, itemId); gUnknown_0203CD64->itemId = itemId; sub_818DCF4(gSaveBlock2Ptr->playerName, gUnknown_0203CD64->playerName); @@ -297,14 +297,14 @@ u16 sub_818DEA0(void) gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; itemId = gUnknown_0860B304[gUnknown_0203CD64->unk_00c]; sub_818DE88(itemId); - gUnknown_0203CD64->unk_001 = 2; + gUnknown_0203CD64->phase = 2; return itemId; } void sub_818DEDC(void) { SetLilycoveFavourLady(); - gUnknown_0203CD64->unk_001 = 1; + gUnknown_0203CD64->phase = 1; } void sub_818DEF4(void) @@ -334,7 +334,7 @@ void SetLilycoveQuizLady(void) gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; gUnknown_0203CD68->id = LILYCOVE_LADY_QUIZ; - gUnknown_0203CD68->unk_001 = 0; + gUnknown_0203CD68->phase = 0; for (i = 0; i < 9; i ++) { gUnknown_0203CD68->unk_002[i] = -1; @@ -356,7 +356,7 @@ void sub_818E004(void) { gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; gUnknown_0203CD68->id = LILYCOVE_LADY_QUIZ; - gUnknown_0203CD68->unk_001 = 0; + gUnknown_0203CD68->phase = 0; gUnknown_0203CD68->unk_02a = 0; gUnknown_0203CD68->unk_016 = -1; } @@ -364,11 +364,11 @@ void sub_818E004(void) u8 sub_818E038(void) { gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - if (gUnknown_0203CD68->unk_001 == 2) + if (gUnknown_0203CD68->phase == 2) { return 2; } - else if (gUnknown_0203CD68->unk_001 == 1) + else if (gUnknown_0203CD68->phase == 1) { return 1; } @@ -605,13 +605,13 @@ void sub_818E358(void) void sub_818E37C(void) { gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - gUnknown_0203CD68->unk_001 = 1; + gUnknown_0203CD68->phase = 1; } void sub_818E39C(void) { gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - gUnknown_0203CD68->unk_001 = 2; + gUnknown_0203CD68->phase = 2; } void sub_818E3BC(void) @@ -715,3 +715,21 @@ void sub_818E570(const struct LilycoveLadyQuiz *quiz) gUnknown_0203CD68->unk_02c = quiz->unk_02c; } } + +void sub_818E604(void) +{ + gUnknown_0203CD6C->playerName[0] = EOS; + gUnknown_0203CD6C->fave_pkblk = 0; + gUnknown_0203CD6C->other_pkblk = 0; + gUnknown_0203CD6C->max_sheen = 0; + gUnknown_0203CD6C->category = Random() % 5; +} + +void SetLilycoveContestLady(void) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + gUnknown_0203CD6C->id = LILYCOVE_LADY_CONTEST; + gUnknown_0203CD6C->phase = 0; + sub_818E604(); + gUnknown_0203CD6C->language = gGameLanguage; +} -- cgit v1.2.3 From bf4319f25e52be0d77038de9fda8cc3a83930902 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 20 Sep 2017 20:08:05 -0400 Subject: sub_818E6B0 --- asm/lilycove_lady.s | 66 ----------------------------------------------------- src/lilycove_lady.c | 23 +++++++++++++++++++ 2 files changed, 23 insertions(+), 66 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index 7a844c2fb..0610064f4 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,72 +5,6 @@ .text - thumb_func_start sub_818E674 -sub_818E674: @ 818E674 - push {lr} - ldr r2, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003b58 - adds r0, r1 - str r0, [r2] - movs r3, 0 - movs r1, 0x2 - strb r1, [r0] - ldr r0, [r2] - strb r3, [r0, 0x1] - ldr r2, [r2] - ldrb r0, [r2, 0x2] - cmp r0, 0x5 - beq _0818E69A - ldrb r0, [r2, 0x3] - cmp r0, 0x5 - bne _0818E69E -_0818E69A: - bl sub_818E604 -_0818E69E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E674 - - thumb_func_start sub_818E6B0 -sub_818E6B0: @ 818E6B0 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r4, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, =0x00003b58 - adds r1, r0, r3 - str r1, [r4] - ldrb r0, [r1, 0xC] - cmp r0, r2 - bhi _0818E6EA - strb r2, [r1, 0xC] - ldr r0, [r4] - adds r0, 0x4 - movs r1, 0xFF - movs r2, 0x8 - bl memset - ldr r1, [r4] - ldr r0, =gSaveBlock2Ptr - adds r1, 0x4 - ldr r0, [r0] - ldm r0!, {r2,r3} - stm r1!, {r2,r3} - ldr r1, [r4] - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r1, 0xE] -_0818E6EA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E6B0 - thumb_func_start sub_818E704 sub_818E704: @ 818E704 push {r4,r5,lr} diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index f6471828b..52f910598 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -733,3 +733,26 @@ void SetLilycoveContestLady(void) sub_818E604(); gUnknown_0203CD6C->language = gGameLanguage; } + +void sub_818E674(void) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + gUnknown_0203CD6C->id = LILYCOVE_LADY_CONTEST; + gUnknown_0203CD6C->phase = 0; + if (gUnknown_0203CD6C->fave_pkblk == 5 || gUnknown_0203CD6C->other_pkblk == 5) + { + sub_818E604(); + } +} + +void sub_818E6B0(u8 sheen) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + if (gUnknown_0203CD6C->max_sheen <= sheen) + { + gUnknown_0203CD6C->max_sheen = sheen; + memset(gUnknown_0203CD6C->playerName, EOS, sizeof(gUnknown_0203CD6C->playerName)); + memcpy(gUnknown_0203CD6C->playerName, gSaveBlock2Ptr->playerName, sizeof(gUnknown_0203CD6C->playerName)); + gUnknown_0203CD6C->language = gGameLanguage; + } +} \ No newline at end of file -- cgit v1.2.3 From 25ffdf734284db4bd418d6f2ff74a9d895cb4498 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 20 Sep 2017 20:16:11 -0400 Subject: sub_818E704 --- asm/lilycove_lady.s | 72 ----------------------------------------------------- src/lilycove_lady.c | 60 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 59 insertions(+), 73 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index 0610064f4..f3eca44e7 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,78 +5,6 @@ .text - thumb_func_start sub_818E704 -sub_818E704: @ 818E704 - push {r4,r5,lr} - adds r2, r0, 0 - movs r3, 0 - movs r4, 0 - ldr r1, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r5, =0x00003b58 - adds r0, r5 - str r0, [r1] - ldrb r0, [r0, 0xD] - adds r5, r1, 0 - cmp r0, 0x4 - bhi _0818E76A - lsls r0, 2 - ldr r1, =_0818E73C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0818E73C: - .4byte _0818E750 - .4byte _0818E754 - .4byte _0818E758 - .4byte _0818E75C - .4byte _0818E760 -_0818E750: - ldrb r0, [r2, 0x1] - b _0818E762 -_0818E754: - ldrb r0, [r2, 0x2] - b _0818E762 -_0818E758: - ldrb r0, [r2, 0x3] - b _0818E762 -_0818E75C: - ldrb r0, [r2, 0x4] - b _0818E762 -_0818E760: - ldrb r0, [r2, 0x5] -_0818E762: - cmp r0, 0 - beq _0818E76A - adds r3, r0, 0 - movs r4, 0x1 -_0818E76A: - cmp r4, 0x1 - bne _0818E784 - adds r0, r3, 0 - bl sub_818E6B0 - ldr r0, =gUnknown_0203CD6C - ldr r1, [r0] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - b _0818E78C - .pool -_0818E784: - ldr r1, [r5] - ldrb r0, [r1, 0x3] - adds r0, 0x1 - strb r0, [r1, 0x3] -_0818E78C: - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_818E704 - thumb_func_start sub_818E794 sub_818E794: @ 818E794 push {r4,r5,lr} diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 52f910598..30b5d6b21 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -755,4 +755,62 @@ void sub_818E6B0(u8 sheen) memcpy(gUnknown_0203CD6C->playerName, gSaveBlock2Ptr->playerName, sizeof(gUnknown_0203CD6C->playerName)); gUnknown_0203CD6C->language = gGameLanguage; } -} \ No newline at end of file +} + +bool8 sub_818E704(struct Pokeblock *pokeblock) +{ + u8 sheen; + bool8 response; + + sheen = 0; + response = FALSE; + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + switch (gUnknown_0203CD6C->category) + { + case 0: + if (pokeblock->spicy != 0) + { + sheen = pokeblock->spicy; + response = TRUE; + } + break; + case 1: + if (pokeblock->dry != 0) + { + sheen = pokeblock->dry; + response = TRUE; + } + break; + case 2: + if (pokeblock->sweet != 0) + { + sheen = pokeblock->sweet; + response = TRUE; + } + break; + case 3: + if (pokeblock->bitter != 0) + { + sheen = pokeblock->bitter; + response = TRUE; + } + break; + case 4: + if (pokeblock->sour != 0) + { + sheen = pokeblock->sour; + response = TRUE; + } + break; + } + if (response == TRUE) + { + sub_818E6B0(sheen); + gUnknown_0203CD6C->fave_pkblk ++; + } + else + { + gUnknown_0203CD6C->other_pkblk ++; + } + return response; +} -- cgit v1.2.3 From c56b6fc9a46d92824b8eb6b61bc2dc1f525c0757 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 20 Sep 2017 20:24:22 -0400 Subject: sub_818E794 --- asm/lilycove_lady.s | 30 ------------------------------ src/lilycove_lady.c | 9 +++++++++ 2 files changed, 9 insertions(+), 30 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index f3eca44e7..a3f455065 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,36 +5,6 @@ .text - thumb_func_start sub_818E794 -sub_818E794: @ 818E794 - push {r4,r5,lr} - adds r5, r1, 0 - ldr r4, =gUnknown_0203CD6C - ldr r1, =gSaveBlock1Ptr - ldr r1, [r1] - ldr r2, =0x00003b58 - adds r1, r2 - str r1, [r4] - ldr r2, =gUnknown_0860B324 - ldrb r1, [r1, 0xD] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - ldr r1, =gUnknown_0860B310 - ldr r0, [r4] - ldrb r0, [r0, 0xD] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r5, 0 - bl StringCopy10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E794 - thumb_func_start sub_818E7E0 sub_818E7E0: @ 818E7E0 push {r4,lr} diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 30b5d6b21..efbc791e8 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -35,6 +35,8 @@ extern const u16 *const gUnknown_0860B1A4[16]; extern const u16 gUnknown_0860B1E4[16]; extern const u16 gUnknown_0860B204[16]; extern const u8 gUnknown_085EEB7E[8]; +extern const u8 *const gUnknown_0860B324[5]; +extern const u8 *const gUnknown_0860B310[5]; EWRAM_DATA struct LilycoveLadyFavour *gUnknown_0203CD64 = NULL; EWRAM_DATA struct LilycoveLadyQuiz *gUnknown_0203CD68 = NULL; @@ -814,3 +816,10 @@ bool8 sub_818E704(struct Pokeblock *pokeblock) } return response; } + +void sub_818E794(u8 *dest1, u8 *dest2) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + StringCopy(dest1, gUnknown_0860B324[gUnknown_0203CD6C->category]); + StringCopy10(dest2, gUnknown_0860B310[gUnknown_0203CD6C->category]); +} -- cgit v1.2.3 From faf844f332e95d39660db3f76f78ed480d4845bf Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 20 Sep 2017 20:32:22 -0400 Subject: through sub_818E880 --- asm/lilycove_lady.s | 98 ----------------------------------------------------- src/lilycove_lady.c | 52 +++++++++++++++++++++++++--- 2 files changed, 47 insertions(+), 103 deletions(-) diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index a3f455065..835d2959c 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,104 +5,6 @@ .text - thumb_func_start sub_818E7E0 -sub_818E7E0: @ 818E7E0 - push {r4,lr} - adds r3, r1, 0 - ldr r2, =gUnknown_0203CD6C - ldr r1, =gSaveBlock1Ptr - ldr r1, [r1] - ldr r4, =0x00003b58 - adds r1, r4 - str r1, [r2] - ldrb r2, [r1, 0xD] - strb r2, [r0] - ldr r2, =gUnknown_0860B310 - ldrb r0, [r1, 0xD] - lsls r0, 2 - adds r0, r2 - ldr r1, [r0] - adds r0, r3, 0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E7E0 - - thumb_func_start sub_818E81C -sub_818E81C: @ 818E81C - push {r4,lr} - ldr r3, =gUnknown_0203CD6C - ldr r1, =gSaveBlock1Ptr - ldr r1, [r1] - ldr r4, =0x00003b58 - adds r2, r1, r4 - str r2, [r3] - ldr r2, =0x00003b5c - adds r1, r2 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E81C - - thumb_func_start sub_818E848 -sub_818E848: @ 818E848 - ldr r2, =gUnknown_0203CD6C - ldr r1, =gSaveBlock1Ptr - ldr r1, [r1] - ldr r3, =0x00003b58 - adds r1, r3 - str r1, [r2] - ldrb r1, [r1, 0xE] - strb r1, [r0] - bx lr - .pool - thumb_func_end sub_818E848 - - thumb_func_start sub_818E868 -sub_818E868: @ 818E868 - push {lr} - lsls r1, 24 - ldr r2, =gUnknown_0860B338 - lsrs r1, 22 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E868 - - thumb_func_start sub_818E880 -sub_818E880: @ 818E880 - push {lr} - ldr r1, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldrb r0, [r0, 0x2] - cmp r0, 0x4 - bls _0818E8A4 - movs r0, 0x1 - b _0818E8AE - .pool -_0818E8A4: - cmp r0, 0 - beq _0818E8AC - movs r0, 0 - b _0818E8AE -_0818E8AC: - movs r0, 0x2 -_0818E8AE: - pop {r1} - bx r1 - thumb_func_end sub_818E880 - thumb_func_start sub_818E8B4 sub_818E8B4: @ 818E8B4 push {lr} diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index efbc791e8..d142323c4 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -26,17 +26,18 @@ u8 sub_818E13C(void); bool8 sub_818E1F4(void); u8 sub_818E258(const u8 *); +extern const u8 gUnknown_085EEB7E[8]; extern const u16 gUnknown_0860B074[5]; extern const u16 gUnknown_0860B07E[3]; -extern const u8 *const gUnknown_0860B224[]; -extern const u16 *const gUnknown_0860B2EC[6]; -extern const u16 gUnknown_0860B304[6]; extern const u16 *const gUnknown_0860B1A4[16]; extern const u16 gUnknown_0860B1E4[16]; extern const u16 gUnknown_0860B204[16]; -extern const u8 gUnknown_085EEB7E[8]; -extern const u8 *const gUnknown_0860B324[5]; +extern const u8 *const gUnknown_0860B224[]; +extern const u16 *const gUnknown_0860B2EC[6]; +extern const u16 gUnknown_0860B304[6]; extern const u8 *const gUnknown_0860B310[5]; +extern const u8 *const gUnknown_0860B324[5]; +extern const u8 *const gUnknown_0860B338[5]; EWRAM_DATA struct LilycoveLadyFavour *gUnknown_0203CD64 = NULL; EWRAM_DATA struct LilycoveLadyQuiz *gUnknown_0203CD68 = NULL; @@ -823,3 +824,44 @@ void sub_818E794(u8 *dest1, u8 *dest2) StringCopy(dest1, gUnknown_0860B324[gUnknown_0203CD6C->category]); StringCopy10(dest2, gUnknown_0860B310[gUnknown_0203CD6C->category]); } + +void sub_818E7E0(u8 *dest1, u8 *dest2) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + *dest1 = gUnknown_0203CD6C->category; + StringCopy(dest2, gUnknown_0860B310[gUnknown_0203CD6C->category]); +} + +void sub_818E81C(u8 *dest) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + StringCopy(dest, gUnknown_0203CD6C->playerName); +} + +void sub_818E848(u8 *dest) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + *dest = gUnknown_0203CD6C->language; +} + +void sub_818E868(u8 *dest, u8 category) +{ + StringCopy(dest, gUnknown_0860B338[category]); +} + +u8 sub_818E880(void) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + if (gUnknown_0203CD6C->fave_pkblk >= 5) + { + return 1; + } + else if (gUnknown_0203CD6C->fave_pkblk == 0) + { + return 2; + } + else + { + return 0; + } +} -- cgit v1.2.3 From d263750f1903a89fc61b2496453ff1c5b4b9a58b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 20 Sep 2017 20:48:32 -0400 Subject: remaining lilycove lady functions --- asm/lilycove_lady.s | 116 ---------------------------------------------------- include/rom4.h | 1 + include/rom6.h | 6 +++ src/lilycove_lady.c | 54 ++++++++++++++++++++++++ 4 files changed, 61 insertions(+), 116 deletions(-) create mode 100644 include/rom6.h diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s index 835d2959c..1fb697d08 100644 --- a/asm/lilycove_lady.s +++ b/asm/lilycove_lady.s @@ -5,121 +5,5 @@ .text - thumb_func_start sub_818E8B4 -sub_818E8B4: @ 818E8B4 - push {lr} - ldr r1, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - beq _0818E8D8 - movs r0, 0 - b _0818E8DA - .pool -_0818E8D8: - movs r0, 0x1 -_0818E8DA: - pop {r1} - bx r1 - thumb_func_end sub_818E8B4 - - thumb_func_start sub_818E8E0 -sub_818E8E0: @ 818E8E0 - push {r4,lr} - movs r3, 0 - ldr r1, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r4, =0x00003b58 - adds r2, r0, r4 - str r2, [r1] - ldrb r0, [r2, 0x2] - cmp r0, 0x4 - bhi _0818E8FC - ldrb r0, [r2, 0x3] - cmp r0, 0x4 - bls _0818E8FE -_0818E8FC: - movs r3, 0x1 -_0818E8FE: - adds r0, r3, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_818E8E0 - - thumb_func_start sub_818E914 -sub_818E914: @ 818E914 - push {lr} - ldr r0, =gStringVar2 - ldr r1, =gStringVar1 - bl sub_818E794 - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E914 - - thumb_func_start sub_818E92C -sub_818E92C: @ 818E92C - push {lr} - ldr r1, =c2_exit_to_overworld_2_switch - movs r0, 0x3 - bl sub_81357FC - pop {r0} - bx r0 - .pool - thumb_func_end sub_818E92C - - thumb_func_start sub_818E940 -sub_818E940: @ 818E940 - ldr r1, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - movs r1, 0x1 - strb r1, [r0, 0x1] - bx lr - .pool - thumb_func_end sub_818E940 - - thumb_func_start sub_818E960 -sub_818E960: @ 818E960 - ldr r1, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldr r2, =gSpecialVar_0x8005 - ldr r1, =gUnknown_0860B34C - ldrb r0, [r0, 0xD] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - bx lr - .pool - thumb_func_end sub_818E960 - - thumb_func_start sub_818E990 -sub_818E990: @ 818E990 - ldr r1, =gUnknown_0203CD6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00003b58 - adds r0, r2 - str r0, [r1] - ldrb r0, [r0, 0xD] - bx lr - .pool - thumb_func_end sub_818E990 - .align 2, 0 @ Don't pad with nop. diff --git a/include/rom4.h b/include/rom4.h index a1c4281e9..e19d277a6 100644 --- a/include/rom4.h +++ b/include/rom4.h @@ -28,5 +28,6 @@ void strange_npc_table_clear(void); const struct MapHeader *get_mapheader_by_bank_and_number(u8, u8); void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *); void sub_8086230(void); +void c2_exit_to_overworld_2_switch(void); #endif //GUARD_ROM4_H diff --git a/include/rom6.h b/include/rom6.h new file mode 100644 index 000000000..15070616d --- /dev/null +++ b/include/rom6.h @@ -0,0 +1,6 @@ +#ifndef GUARD_ROM6_H +#define GUARD_ROM6_H + +void sub_81357FC(u8, void(void)); + +#endif //GUARD_ROM6_H diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index d142323c4..41112e40b 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -4,6 +4,8 @@ #include "global.h" #include "main.h" +#include "rom4.h" +#include "rom6.h" #include "event_data.h" #include "script.h" #include "rng.h" @@ -38,6 +40,7 @@ extern const u16 gUnknown_0860B304[6]; extern const u8 *const gUnknown_0860B310[5]; extern const u8 *const gUnknown_0860B324[5]; extern const u8 *const gUnknown_0860B338[5]; +extern const u16 gUnknown_0860B34C[5]; EWRAM_DATA struct LilycoveLadyFavour *gUnknown_0203CD64 = NULL; EWRAM_DATA struct LilycoveLadyQuiz *gUnknown_0203CD68 = NULL; @@ -865,3 +868,54 @@ u8 sub_818E880(void) return 0; } } + +bool8 sub_818E8B4(void) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + if (gUnknown_0203CD6C->phase == 1) + { + return TRUE; + } + return FALSE; +} + +bool8 sub_818E8E0(void) +{ + bool8 response; + + response = FALSE; + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + if (gUnknown_0203CD6C->fave_pkblk >= 5 || gUnknown_0203CD6C->other_pkblk >= 5) + { + response = TRUE; + } + return response; +} + +void sub_818E914(void) +{ + sub_818E794(gStringVar2, gStringVar1); +} + +void sub_818E92C(void) +{ + sub_81357FC(3, c2_exit_to_overworld_2_switch); +} + +void sub_818E940(void) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + gUnknown_0203CD6C->phase = 1; +} + +void sub_818E960(void) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + gSpecialVar_0x8005 = gUnknown_0860B34C[gUnknown_0203CD6C->category]; +} + +u8 sub_818E990(void) +{ + gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; + return gUnknown_0203CD6C->category; +} -- cgit v1.2.3 From 942fbe87d42ed1208217deac3cfa4f21908d446a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 20 Sep 2017 21:03:57 -0400 Subject: Populate header, label as static whatever won't break things --- asm/lilycove_lady.s | 9 ------- include/easy_chat.h | 1 + include/lilycove_lady.h | 11 ++++++++ src/lilycove_lady.c | 67 ++++++++++++++++++++++++------------------------- sym_ewram.txt | 9 +------ 5 files changed, 46 insertions(+), 51 deletions(-) delete mode 100644 asm/lilycove_lady.s diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s deleted file mode 100644 index 1fb697d08..000000000 --- a/asm/lilycove_lady.s +++ /dev/null @@ -1,9 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - -.align 2, 0 @ Don't pad with nop. diff --git a/include/easy_chat.h b/include/easy_chat.h index d7dc72410..fc44b6a8a 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -31,5 +31,6 @@ enum void InitEasyChatPhrases(void); void easy_chat_input_maybe(void); void CopyEasyChatWord(u8 *, u16); +bool32 sub_811F8D8(u16); #endif // GUARD_EASYCHAT_H diff --git a/include/lilycove_lady.h b/include/lilycove_lady.h index 81825d8ac..c7776131b 100644 --- a/include/lilycove_lady.h +++ b/include/lilycove_lady.h @@ -1,6 +1,17 @@ #ifndef GUARD_LILYCOVE_LADY_H #define GUARD_LILYCOVE_LADY_H +u8 GetLilycoveLadyId(void); void SetLilycoveLady(void); +void sub_818DA78(void); +void sub_818DEF4(void); +void sub_818E564(void); +void sub_818E570(const struct LilycoveLadyQuiz *quiz); +bool8 sub_818E704(struct Pokeblock *pokeblock); +void sub_818E7E0(u8 *dest1, u8 *dest2); +void sub_818E81C(u8 *dest); +void sub_818E848(u8 *dest); +void sub_818E868(u8 *dest, u8 category); +u8 sub_818E880(void); #endif //GUARD_LILYCOVE_LADY_H diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 41112e40b..4839571ae 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -17,16 +17,15 @@ #include "easy_chat.h" #include "lilycove_lady.h" -void SetLilycoveQuizLady(void); -void SetLilycoveFavourLady(void); -void SetLilycoveContestLady(void); -void sub_818E004(void); -void sub_818DBC4(void); -void sub_818E674(void); -bool32 sub_811F8D8(u16); -u8 sub_818E13C(void); -bool8 sub_818E1F4(void); -u8 sub_818E258(const u8 *); +static void SetLilycoveQuizLady(void); +static void SetLilycoveFavourLady(void); +static void SetLilycoveContestLady(void); +static void sub_818E004(void); +static void sub_818DBC4(void); +static void sub_818E674(void); +static u8 sub_818E13C(void); +static bool8 sub_818E1F4(void); +static u8 sub_818E258(const u8 *); extern const u8 gUnknown_085EEB7E[8]; extern const u16 gUnknown_0860B074[5]; @@ -42,9 +41,9 @@ extern const u8 *const gUnknown_0860B324[5]; extern const u8 *const gUnknown_0860B338[5]; extern const u16 gUnknown_0860B34C[5]; -EWRAM_DATA struct LilycoveLadyFavour *gUnknown_0203CD64 = NULL; -EWRAM_DATA struct LilycoveLadyQuiz *gUnknown_0203CD68 = NULL; -EWRAM_DATA struct LilycoveLadyContest *gUnknown_0203CD6C = NULL; +static EWRAM_DATA struct LilycoveLadyFavour *gUnknown_0203CD64 = NULL; +static EWRAM_DATA struct LilycoveLadyQuiz *gUnknown_0203CD68 = NULL; +static EWRAM_DATA struct LilycoveLadyContest *gUnknown_0203CD6C = NULL; extern EWRAM_DATA u16 gScriptItemId; @@ -131,7 +130,7 @@ void sub_818DAEC(void) gScriptResult = GetLilycoveLadyId(); } -u8 sub_818DB04(const u16 *data) +static u8 sub_818DB04(const u16 *data) { u8 len; @@ -139,7 +138,7 @@ u8 sub_818DB04(const u16 *data) return len; } -void sub_818DB20(void) +static void sub_818DB20(void) { u8 size; u8 idx; @@ -150,7 +149,7 @@ void sub_818DB20(void) gUnknown_0203CD64->unk_010 = gUnknown_0860B2EC[gUnknown_0203CD64->unk_00c][idx]; } -void SetLilycoveFavourLady(void) +static void SetLilycoveFavourLady(void) { gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; gUnknown_0203CD64->id = LILYCOVE_LADY_FAVOUR; @@ -163,7 +162,7 @@ void SetLilycoveFavourLady(void) sub_818DB20(); } -void sub_818DBC4(void) +static void sub_818DBC4(void) { gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; gUnknown_0203CD64->id = LILYCOVE_LADY_FAVOUR; @@ -187,7 +186,7 @@ u8 sub_818DBE8(void) } } -const u8 *sub_818DC1C(u8 idx) +static const u8 *sub_818DC1C(u8 idx) { return gUnknown_0860B224[idx]; } @@ -210,7 +209,7 @@ bool8 sub_818DC60(void) return FALSE; } -void sub_818DCAC(u8 *dest, u16 itemId) +static void sub_818DCAC(u8 *dest, u16 itemId) { StringCopy(dest, ItemId_GetItem(itemId)->name); } @@ -221,7 +220,7 @@ void sub_818DCC8(void) sub_818DCAC(gStringVar2, gUnknown_0203CD64->itemId); } -void sub_818DCF4(const u8 *src, u8 *dest) +static void sub_818DCF4(const u8 *src, u8 *dest) { memset(dest, 0xFF, 8); StringCopy7(dest, src); @@ -245,7 +244,7 @@ void sub_818DD78(void) sub_81AAC50(); } -bool8 sub_818DD84(u16 itemId) +static bool8 sub_818DD84(u16 itemId) { u8 len; u8 i; @@ -291,7 +290,7 @@ bool8 sub_818DE5C(void) return checkval < 5 ? FALSE : TRUE; } -void sub_818DE88(u16 itemId) +static void sub_818DE88(u16 itemId) { sub_818DCAC(gStringVar2, itemId); } @@ -318,7 +317,7 @@ void sub_818DEF4(void) EnableBothScriptContexts(); } -void sub_818DF00(void) +static void sub_818DF00(void) { u8 v0; u8 i; @@ -334,7 +333,7 @@ void sub_818DF00(void) gUnknown_0203CD68->playerName[0] = EOS; } -void SetLilycoveQuizLady(void) +static void SetLilycoveQuizLady(void) { u8 i; @@ -358,7 +357,7 @@ void SetLilycoveQuizLady(void) sub_818DF00(); } -void sub_818E004(void) +static void sub_818E004(void) { gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; gUnknown_0203CD68->id = LILYCOVE_LADY_QUIZ; @@ -427,7 +426,7 @@ u8 sub_818E06C(void) } #ifdef NONMATCHING -u8 sub_818E13C(void) +static u8 sub_818E13C(void) { u8 retval; u8 len; @@ -461,7 +460,7 @@ u8 sub_818E13C(void) return retval; } #else -__attribute__((naked)) u8 sub_818E13C(void) +__attribute__((naked)) static u8 sub_818E13C(void) { asm_unified("\tpush {r4-r7,lr}\n" "\tmovs r7, 0x1\n" @@ -540,7 +539,7 @@ __attribute__((naked)) u8 sub_818E13C(void) } #endif -u8 sub_818E1F4(void) +static u8 sub_818E1F4(void) { bool8 response; u8 i; @@ -558,7 +557,7 @@ u8 sub_818E1F4(void) return response; } -u8 sub_818E258(const u8 *str) +static u8 sub_818E258(const u8 *str) { u8 len; const u8 *ptr; @@ -722,7 +721,7 @@ void sub_818E570(const struct LilycoveLadyQuiz *quiz) } } -void sub_818E604(void) +static void sub_818E604(void) { gUnknown_0203CD6C->playerName[0] = EOS; gUnknown_0203CD6C->fave_pkblk = 0; @@ -731,7 +730,7 @@ void sub_818E604(void) gUnknown_0203CD6C->category = Random() % 5; } -void SetLilycoveContestLady(void) +static void SetLilycoveContestLady(void) { gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; gUnknown_0203CD6C->id = LILYCOVE_LADY_CONTEST; @@ -740,7 +739,7 @@ void SetLilycoveContestLady(void) gUnknown_0203CD6C->language = gGameLanguage; } -void sub_818E674(void) +static void sub_818E674(void) { gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; gUnknown_0203CD6C->id = LILYCOVE_LADY_CONTEST; @@ -751,7 +750,7 @@ void sub_818E674(void) } } -void sub_818E6B0(u8 sheen) +static void sub_818E6B0(u8 sheen) { gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; if (gUnknown_0203CD6C->max_sheen <= sheen) @@ -821,7 +820,7 @@ bool8 sub_818E704(struct Pokeblock *pokeblock) return response; } -void sub_818E794(u8 *dest1, u8 *dest2) +static void sub_818E794(u8 *dest1, u8 *dest2) { gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; StringCopy(dest1, gUnknown_0860B324[gUnknown_0203CD6C->category]); diff --git a/sym_ewram.txt b/sym_ewram.txt index 1995bf7bf..a4e61fd05 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1768,14 +1768,7 @@ gUnknown_0203CCEC: @ 203CCEC gUnknown_0203CD04: @ 203CD04 .space 0x60 -gUnknown_0203CD64: @ 203CD64 - .space 0x4 - -gUnknown_0203CD68: @ 203CD68 - .space 0x4 - -gUnknown_0203CD6C: @ 203CD6C - .space 0x4 + .include "src/lilycove_lady.o" gUnknown_0203CD70: @ 203CD70 .space 0x4 -- cgit v1.2.3 From 63a25a34a77a9e42901ccd13ae691b30130f9925 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 20 Sep 2017 21:42:14 -0400 Subject: Disassemble lilycove lady data --- data/data_emerald.s | 42 ++----------- data/lilycove_lady.s | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++ data/strings.s | 42 +++++++++++++ ld_script.txt | 2 + src/lilycove_lady.c | 3 +- 5 files changed, 215 insertions(+), 37 deletions(-) create mode 100644 data/lilycove_lady.s diff --git a/data/data_emerald.s b/data/data_emerald.s index 54bda4a0e..38c50a6c8 100644 --- a/data/data_emerald.s +++ b/data/data_emerald.s @@ -1,7 +1,11 @@ .include "asm/macros.inc" .include "constants/constants.inc" - .section .rodata + @ This section was decompiled in battle_dome_cards. + @ On its merge, this section should be deleted. + @ This section contains three objects and accounts for 28 bytes. + + .section .rodata.deleteme gUnknown_0860B058:: @ 860B058 .incbin "baserom.gba", 0x60b058, 0xc @@ -12,41 +16,7 @@ gUnknown_0860B064:: @ 860B064 gUnknown_0860B06C:: @ 860B06C .incbin "baserom.gba", 0x60b06c, 0x8 -gUnknown_0860B074:: @ 860B074 - .incbin "baserom.gba", 0x60b074, 0xa - -gUnknown_0860B07E:: @ 860B07E - .incbin "baserom.gba", 0x60b07e, 0x126 - -gUnknown_0860B1A4:: @ 860B1A4 - .incbin "baserom.gba", 0x60b1a4, 0x40 - -gUnknown_0860B1E4:: @ 860B1E4 - .incbin "baserom.gba", 0x60b1e4, 0x20 - -gUnknown_0860B204:: @ 860B204 - .incbin "baserom.gba", 0x60b204, 0x20 - -gUnknown_0860B224:: @ 860B224 - .incbin "baserom.gba", 0x60b224, 0xc8 - -gUnknown_0860B2EC:: @ 860B2EC - .incbin "baserom.gba", 0x60b2ec, 0x18 - -gUnknown_0860B304:: @ 860B304 - .incbin "baserom.gba", 0x60b304, 0xc - -gUnknown_0860B310:: @ 860B310 - .incbin "baserom.gba", 0x60b310, 0x14 - -gUnknown_0860B324:: @ 860B324 - .incbin "baserom.gba", 0x60b324, 0x14 - -gUnknown_0860B338:: @ 860B338 - .incbin "baserom.gba", 0x60b338, 0x14 - -gUnknown_0860B34C:: @ 860B34C - .incbin "baserom.gba", 0x60b34c, 0xc + .section .rodata gUnknown_0860B358:: @ 860B358 .incbin "baserom.gba", 0x60b358, 0x1630 diff --git a/data/lilycove_lady.s b/data/lilycove_lady.s new file mode 100644 index 000000000..9d076213c --- /dev/null +++ b/data/lilycove_lady.s @@ -0,0 +1,163 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + +gUnknown_0860B074:: @ 860B074 +@ replacing .incbin "baserom.gba", 0x0060b074, 0xa + .2byte 0x0062, 0x00cb, 0x00dc, 0x00cc, 0x00d1 + +gUnknown_0860B07E:: @ 860B07E +@ replacing .incbin "baserom.gba", 0x0060b07e, 0x6 + .2byte 0x001a, 0x0014, 0x000a + +Unknown_0860B084:: + .2byte 0x101b, 0x1623, 0x1812, 0x102c, 0x020e, 0x0c03, 0x1a0b, 0x0210, 0x020d + +Unknown_0860B096:: + .2byte 0x101b, 0x1013, 0x1020, 0x1a0f, 0x020c, 0x0c03, 0x0211, 0x0203, 0x0400 + +Unknown_0860B0A8:: + .2byte 0x0e0f, 0x1018, 0x020e, 0x0204, 0x0c03, 0xffff, 0x0212, 0x0451, 0x0463 + +Unknown_0860B0BA:: + .2byte 0x101b, 0x100b, 0x0e0d, 0x141a, 0x181d, 0x0c03, 0x141e, 0x1a26, 0x1823 + +Unknown_0860B0CC:: + .2byte 0x101b, 0x181d, 0x1018, 0x0a02, 0x2014, 0x0c03, 0x0208, 0x1824, 0x181c + +Unknown_0860B0DE:: + .2byte 0x101b, 0x1000, 0x1c19, 0x265d, 0x0c03, 0xffff, 0x0447, 0x045d, 0x042c + +Unknown_0860B0F0:: + .2byte 0x101b, 0x1034, 0x1e11, 0x100b, 0x1a08, 0x0c03, 0x044b, 0x0446, 0x040a + +Unknown_0860B102:: + .2byte 0x101b, 0x1000, 0x274f, 0x0626, 0x0c03, 0xffff, 0x0442, 0x0411, 0x0450 + +Unknown_0860B114:: + .2byte 0x101b, 0x1000, 0x1c19, 0x043c, 0x0c03, 0xffff, 0x0421, 0x0464, 0x0435 + +Unknown_0860B126:: + .2byte 0x101b, 0x1203, 0x1030, 0x0207, 0x0c03, 0xffff, 0x0210, 0x020e, 0x020d + +Unknown_0860B138:: + .2byte 0x101b, 0x1623, 0x0a05, 0x020e, 0x0c03, 0xffff, 0x1a25, 0x181a, 0x181b + +Unknown_0860B14A:: + .2byte 0x101b, 0x1823, 0x1603, 0x0a02, 0x1812, 0x0c03, 0x1a15, 0x1a23, 0x181b + +Unknown_0860B15C:: + .2byte 0x1020, 0x020e, 0x1010, 0x1043, 0x1e0f, 0x0c03, 0x181c, 0x1a24, 0x1816 + +Unknown_0860B16E:: + .2byte 0x0446, 0x100b, 0x0620, 0x061c, 0x101b, 0x0c03, 0x0420, 0x0426, 0xffff + +Unknown_0860B180:: + .2byte 0x0400, 0x100b, 0x0639, 0x061c, 0x101b, 0x0c03, 0x040e, 0x0410, 0xffff + +Unknown_0860B192:: + .2byte 0x041f, 0x100b, 0x0639, 0x061c, 0x101b, 0x0c03, 0x0445, 0x0400, 0xffff + +gUnknown_0860B1A4:: @ 860B1A4 +@ replacing .incbin "baserom.gba", 0x0060b1a4, 0x40 + .4byte Unknown_0860B084 + .4byte Unknown_0860B096 + .4byte Unknown_0860B0A8 + .4byte Unknown_0860B0BA + .4byte Unknown_0860B0CC + .4byte Unknown_0860B0DE + .4byte Unknown_0860B0F0 + .4byte Unknown_0860B102 + .4byte Unknown_0860B114 + .4byte Unknown_0860B126 + .4byte Unknown_0860B138 + .4byte Unknown_0860B14A + .4byte Unknown_0860B15C + .4byte Unknown_0860B16E + .4byte Unknown_0860B180 + .4byte Unknown_0860B192 + +gUnknown_0860B1E4:: @ 860B1E4 +@ replacing .incbin "baserom.gba", 0x0060b1e4, 0x20 + .2byte 0x0210, 0x0400, 0x0212, 0x1a26, 0x0208, 0x045d, 0x040a, 0x0411, 0x0464, 0x020e, 0x1a25, 0x181b, 0x1a24, 0x0420, 0x0410, 0x0400 + +gUnknown_0860B204:: @ 860B204 +@ replacing .incbin "baserom.gba", 0x0060b204, 0x20 + .2byte 0x007b, 0x007f, 0x0081, 0x0023, 0x0023, 0x0023, 0x00a5, 0x00a7, 0x00a6, 0x000b, 0x012f, 0x006b, 0x006d, 0x0044, 0x0044, 0x000c + +gUnknown_0860B224:: @ 860B224 +@ replacing .incbin "baserom.gba", 0x0060b224, 0xc8 + .4byte gUnknown_085EEB83 + .4byte gUnknown_085EEB8C + .4byte gUnknown_085EEB95 + .4byte gUnknown_085EEB9E + .4byte gUnknown_085EEBA4 + .4byte gUnknown_085EEBAB + +Unknown_0860B23C:: +@ replacing .incbin "baserom.gba", 0x0060b23c, 0x1a +.2byte 0x0056, 0x0053, 0x0054, 0x000e, 0x0012, 0x000f, 0x00a7, 0x0011, 0x0010, 0x0018, 0x0019, 0x001e, 0x0000 + +Unknown_0860B256:: +@ replacing .incbin "baserom.gba", 0x0060b256, 0x22 +.2byte 0x0051, 0x006a, 0x006b, 0x00cc, 0x00c2, 0x002f, 0x0067, 0x0068, 0x0087, 0x0089, 0x008b, 0x009d, 0x00a0, 0x00a5, 0x0004, 0x0002 +.2byte 0x0000 + +Unknown_0860B278:: +@ replacing .incbin "baserom.gba", 0x0060b278, 0x1e +.2byte 0x0021, 0x000d, 0x001a, 0x001b, 0x001c, 0x00cc, 0x00ca, 0x0026, 0x0086, 0x0096, 0x0097, 0x009a, 0x00a2, 0x00a6, 0x0000 + +Unknown_0860B296:: +@ replacing .incbin "baserom.gba", 0x0060b296, 0x2a +.2byte 0x0020, 0x004d, 0x004b, 0x004c, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x006e, 0x005d, 0x006c, 0x006d, 0x006a, 0x006b, 0x00d6 +.2byte 0x00bc, 0x00b3, 0x000b, 0x000c, 0x0000 + +Unknown_0860B2C0:: +@ replacing .incbin "baserom.gba", 0x0060b2c0, 0x16 +.2byte 0x001f, 0x0013, 0x0014, 0x004a, 0x004e, 0x0049, 0x00a5, 0x00c8, 0x0067, 0x006f, 0x0000 + +Unknown_0860B2D6:: +@ replacing .incbin "baserom.gba", 0x0060b2d6, 0x16 +.2byte 0x00b7, 0x00d3, 0x00d2, 0x00d8, 0x009e, 0x00a6, 0x00ab, 0x00aa, 0x006c, 0x006d, 0x0000 + +gUnknown_0860B2EC:: @ 860B2EC +@ replacing .incbin "baserom.gba", 0x0060b2ec, 0x18 + .4byte Unknown_0860B23C + .4byte Unknown_0860B256 + .4byte Unknown_0860B278 + .4byte Unknown_0860B296 + .4byte Unknown_0860B2C0 + .4byte Unknown_0860B2D6 + +gUnknown_0860B304:: @ 860B304 +@ replacing .incbin "baserom.gba", 0x0060b304, 0xc +.2byte 0x000b, 0x006e, 0x0040, 0x006f, 0x0044, 0x0047 + +gUnknown_0860B310:: @ 860B310 +@ replacing .incbin "baserom.gba", 0x0060b310, 0x14 + .4byte gUnknown_085EEB2B + .4byte gUnknown_085EEB34 + .4byte gUnknown_085EEB3A + .4byte gUnknown_085EEB41 + .4byte gUnknown_085EEB4A + +gUnknown_0860B324:: @ 860B324 +@ replacing .incbin "baserom.gba", 0x0060b324, 0x14 + .4byte gUnknown_085EEB51 + .4byte gUnknown_085EEB5A + .4byte gUnknown_085EEB61 + .4byte gUnknown_085EEB6A + .4byte gUnknown_085EEB74 + +gUnknown_0860B338:: @ 860B338 +@ replacing .incbin "baserom.gba", 0x0060b338, 0x14 + .4byte gUnknown_085EADA4 + .4byte gUnknown_085EADB5 + .4byte gUnknown_085EADC4 + .4byte gUnknown_085EADD5 + .4byte gUnknown_085EADE7 + +gUnknown_0860B34C:: @ 860B34C +@ replacing .incbin "baserom.gba", 0x0060b34c, 0xc + .2byte 0x0120, 0x013b, 0x011e, 0x013d, 0x0019 diff --git a/data/strings.s b/data/strings.s index c8a1b7683..afdda0b29 100644 --- a/data/strings.s +++ b/data/strings.s @@ -1246,10 +1246,20 @@ gUnknown_085EAD30:: @ 85EAD30 .string "Types of CONTESTS$" .string "Ranks$" .string "Judging$" + +gUnknown_085EADA4:: .string "COOLNESS CONTEST$" + +gUnknown_085EADB5:: .string "BEAUTY CONTEST$" + +gUnknown_085EADC4:: .string "CUTENESS CONTEST$" + +gUnknown_085EADD5:: .string "SMARTNESS CONTEST$" + +gUnknown_085EADE7:: .string "TOUGHNESS CONTEST$" .string "DECORATION$" .string "PACK UP$" @@ -2967,24 +2977,56 @@ gUnknown_085EEAF6:: @ 85EEAF6 gUnknown_085EEB0B:: @ 85EEB0B .string "A call can’t be made from here.$" + +gUnknown_085EEB2B:: .string "HANDSOME$" + +gUnknown_085EEB34:: .string "VINNY$" + +gUnknown_085EEB3A:: .string "MOREME$" + +gUnknown_085EEB41:: .string "IRONHARD$" + +gUnknown_085EEB4A:: .string "MUSCLE$" + +gUnknown_085EEB51:: .string "coolness$" + +gUnknown_085EEB5A:: .string "beauty$" + +gUnknown_085EEB61:: .string "cuteness$" + +gUnknown_085EEB6A:: .string "smartness$" + +gUnknown_085EEB74:: .string "toughness$" gUnknown_085EEB7E:: @ 85EEB7E .string "Lady$" + +gUnknown_085EEB83:: .string "slippery$" + +gUnknown_085EEB8C:: .string "roundish$" + +gUnknown_085EEB95:: .string "wham-ish$" + +gUnknown_085EEB9E:: .string "shiny$" + +gUnknown_085EEBA4:: .string "sticky$" + +gUnknown_085EEBAB:: .string "pointy$" gUnknown_085EEBB2:: @ 85EEBB2 diff --git a/ld_script.txt b/ld_script.txt index e8e44b718..51b7364cb 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -379,6 +379,8 @@ SECTIONS { data/data_860A4AC.o(.rodata); data/battle_controller_recorded_opponent.o(.rodata); data/battle_controller_recorded_player.o(.rodata); + data/data_emerald.o(.rodata.deleteme); + data/lilycove_lady.o(.rodata); data/data_emerald.o(.rodata); data/battle_controller_player_partner.o(.rodata); data/data_emerald2.o(.rodata); diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 4839571ae..6a0e0c2b9 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -27,7 +27,8 @@ static u8 sub_818E13C(void); static bool8 sub_818E1F4(void); static u8 sub_818E258(const u8 *); -extern const u8 gUnknown_085EEB7E[8]; +extern const u8 gUnknown_085EEB7E[]; // Lady$ + extern const u16 gUnknown_0860B074[5]; extern const u16 gUnknown_0860B07E[3]; extern const u16 *const gUnknown_0860B1A4[16]; -- cgit v1.2.3 From 6f481cceb1b56c5d63ba045f7ca7f1ac7151332b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 20 Sep 2017 22:01:28 -0400 Subject: Decompile lilycove lady data --- data/lilycove_lady.s | 163 ---------------------------------------- ld_script.txt | 2 +- src/lilycove_lady.c | 204 ++++++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 193 insertions(+), 176 deletions(-) delete mode 100644 data/lilycove_lady.s diff --git a/data/lilycove_lady.s b/data/lilycove_lady.s deleted file mode 100644 index 9d076213c..000000000 --- a/data/lilycove_lady.s +++ /dev/null @@ -1,163 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -gUnknown_0860B074:: @ 860B074 -@ replacing .incbin "baserom.gba", 0x0060b074, 0xa - .2byte 0x0062, 0x00cb, 0x00dc, 0x00cc, 0x00d1 - -gUnknown_0860B07E:: @ 860B07E -@ replacing .incbin "baserom.gba", 0x0060b07e, 0x6 - .2byte 0x001a, 0x0014, 0x000a - -Unknown_0860B084:: - .2byte 0x101b, 0x1623, 0x1812, 0x102c, 0x020e, 0x0c03, 0x1a0b, 0x0210, 0x020d - -Unknown_0860B096:: - .2byte 0x101b, 0x1013, 0x1020, 0x1a0f, 0x020c, 0x0c03, 0x0211, 0x0203, 0x0400 - -Unknown_0860B0A8:: - .2byte 0x0e0f, 0x1018, 0x020e, 0x0204, 0x0c03, 0xffff, 0x0212, 0x0451, 0x0463 - -Unknown_0860B0BA:: - .2byte 0x101b, 0x100b, 0x0e0d, 0x141a, 0x181d, 0x0c03, 0x141e, 0x1a26, 0x1823 - -Unknown_0860B0CC:: - .2byte 0x101b, 0x181d, 0x1018, 0x0a02, 0x2014, 0x0c03, 0x0208, 0x1824, 0x181c - -Unknown_0860B0DE:: - .2byte 0x101b, 0x1000, 0x1c19, 0x265d, 0x0c03, 0xffff, 0x0447, 0x045d, 0x042c - -Unknown_0860B0F0:: - .2byte 0x101b, 0x1034, 0x1e11, 0x100b, 0x1a08, 0x0c03, 0x044b, 0x0446, 0x040a - -Unknown_0860B102:: - .2byte 0x101b, 0x1000, 0x274f, 0x0626, 0x0c03, 0xffff, 0x0442, 0x0411, 0x0450 - -Unknown_0860B114:: - .2byte 0x101b, 0x1000, 0x1c19, 0x043c, 0x0c03, 0xffff, 0x0421, 0x0464, 0x0435 - -Unknown_0860B126:: - .2byte 0x101b, 0x1203, 0x1030, 0x0207, 0x0c03, 0xffff, 0x0210, 0x020e, 0x020d - -Unknown_0860B138:: - .2byte 0x101b, 0x1623, 0x0a05, 0x020e, 0x0c03, 0xffff, 0x1a25, 0x181a, 0x181b - -Unknown_0860B14A:: - .2byte 0x101b, 0x1823, 0x1603, 0x0a02, 0x1812, 0x0c03, 0x1a15, 0x1a23, 0x181b - -Unknown_0860B15C:: - .2byte 0x1020, 0x020e, 0x1010, 0x1043, 0x1e0f, 0x0c03, 0x181c, 0x1a24, 0x1816 - -Unknown_0860B16E:: - .2byte 0x0446, 0x100b, 0x0620, 0x061c, 0x101b, 0x0c03, 0x0420, 0x0426, 0xffff - -Unknown_0860B180:: - .2byte 0x0400, 0x100b, 0x0639, 0x061c, 0x101b, 0x0c03, 0x040e, 0x0410, 0xffff - -Unknown_0860B192:: - .2byte 0x041f, 0x100b, 0x0639, 0x061c, 0x101b, 0x0c03, 0x0445, 0x0400, 0xffff - -gUnknown_0860B1A4:: @ 860B1A4 -@ replacing .incbin "baserom.gba", 0x0060b1a4, 0x40 - .4byte Unknown_0860B084 - .4byte Unknown_0860B096 - .4byte Unknown_0860B0A8 - .4byte Unknown_0860B0BA - .4byte Unknown_0860B0CC - .4byte Unknown_0860B0DE - .4byte Unknown_0860B0F0 - .4byte Unknown_0860B102 - .4byte Unknown_0860B114 - .4byte Unknown_0860B126 - .4byte Unknown_0860B138 - .4byte Unknown_0860B14A - .4byte Unknown_0860B15C - .4byte Unknown_0860B16E - .4byte Unknown_0860B180 - .4byte Unknown_0860B192 - -gUnknown_0860B1E4:: @ 860B1E4 -@ replacing .incbin "baserom.gba", 0x0060b1e4, 0x20 - .2byte 0x0210, 0x0400, 0x0212, 0x1a26, 0x0208, 0x045d, 0x040a, 0x0411, 0x0464, 0x020e, 0x1a25, 0x181b, 0x1a24, 0x0420, 0x0410, 0x0400 - -gUnknown_0860B204:: @ 860B204 -@ replacing .incbin "baserom.gba", 0x0060b204, 0x20 - .2byte 0x007b, 0x007f, 0x0081, 0x0023, 0x0023, 0x0023, 0x00a5, 0x00a7, 0x00a6, 0x000b, 0x012f, 0x006b, 0x006d, 0x0044, 0x0044, 0x000c - -gUnknown_0860B224:: @ 860B224 -@ replacing .incbin "baserom.gba", 0x0060b224, 0xc8 - .4byte gUnknown_085EEB83 - .4byte gUnknown_085EEB8C - .4byte gUnknown_085EEB95 - .4byte gUnknown_085EEB9E - .4byte gUnknown_085EEBA4 - .4byte gUnknown_085EEBAB - -Unknown_0860B23C:: -@ replacing .incbin "baserom.gba", 0x0060b23c, 0x1a -.2byte 0x0056, 0x0053, 0x0054, 0x000e, 0x0012, 0x000f, 0x00a7, 0x0011, 0x0010, 0x0018, 0x0019, 0x001e, 0x0000 - -Unknown_0860B256:: -@ replacing .incbin "baserom.gba", 0x0060b256, 0x22 -.2byte 0x0051, 0x006a, 0x006b, 0x00cc, 0x00c2, 0x002f, 0x0067, 0x0068, 0x0087, 0x0089, 0x008b, 0x009d, 0x00a0, 0x00a5, 0x0004, 0x0002 -.2byte 0x0000 - -Unknown_0860B278:: -@ replacing .incbin "baserom.gba", 0x0060b278, 0x1e -.2byte 0x0021, 0x000d, 0x001a, 0x001b, 0x001c, 0x00cc, 0x00ca, 0x0026, 0x0086, 0x0096, 0x0097, 0x009a, 0x00a2, 0x00a6, 0x0000 - -Unknown_0860B296:: -@ replacing .incbin "baserom.gba", 0x0060b296, 0x2a -.2byte 0x0020, 0x004d, 0x004b, 0x004c, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x006e, 0x005d, 0x006c, 0x006d, 0x006a, 0x006b, 0x00d6 -.2byte 0x00bc, 0x00b3, 0x000b, 0x000c, 0x0000 - -Unknown_0860B2C0:: -@ replacing .incbin "baserom.gba", 0x0060b2c0, 0x16 -.2byte 0x001f, 0x0013, 0x0014, 0x004a, 0x004e, 0x0049, 0x00a5, 0x00c8, 0x0067, 0x006f, 0x0000 - -Unknown_0860B2D6:: -@ replacing .incbin "baserom.gba", 0x0060b2d6, 0x16 -.2byte 0x00b7, 0x00d3, 0x00d2, 0x00d8, 0x009e, 0x00a6, 0x00ab, 0x00aa, 0x006c, 0x006d, 0x0000 - -gUnknown_0860B2EC:: @ 860B2EC -@ replacing .incbin "baserom.gba", 0x0060b2ec, 0x18 - .4byte Unknown_0860B23C - .4byte Unknown_0860B256 - .4byte Unknown_0860B278 - .4byte Unknown_0860B296 - .4byte Unknown_0860B2C0 - .4byte Unknown_0860B2D6 - -gUnknown_0860B304:: @ 860B304 -@ replacing .incbin "baserom.gba", 0x0060b304, 0xc -.2byte 0x000b, 0x006e, 0x0040, 0x006f, 0x0044, 0x0047 - -gUnknown_0860B310:: @ 860B310 -@ replacing .incbin "baserom.gba", 0x0060b310, 0x14 - .4byte gUnknown_085EEB2B - .4byte gUnknown_085EEB34 - .4byte gUnknown_085EEB3A - .4byte gUnknown_085EEB41 - .4byte gUnknown_085EEB4A - -gUnknown_0860B324:: @ 860B324 -@ replacing .incbin "baserom.gba", 0x0060b324, 0x14 - .4byte gUnknown_085EEB51 - .4byte gUnknown_085EEB5A - .4byte gUnknown_085EEB61 - .4byte gUnknown_085EEB6A - .4byte gUnknown_085EEB74 - -gUnknown_0860B338:: @ 860B338 -@ replacing .incbin "baserom.gba", 0x0060b338, 0x14 - .4byte gUnknown_085EADA4 - .4byte gUnknown_085EADB5 - .4byte gUnknown_085EADC4 - .4byte gUnknown_085EADD5 - .4byte gUnknown_085EADE7 - -gUnknown_0860B34C:: @ 860B34C -@ replacing .incbin "baserom.gba", 0x0060b34c, 0xc - .2byte 0x0120, 0x013b, 0x011e, 0x013d, 0x0019 diff --git a/ld_script.txt b/ld_script.txt index 51b7364cb..4a07cf85e 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -380,7 +380,7 @@ SECTIONS { data/battle_controller_recorded_opponent.o(.rodata); data/battle_controller_recorded_player.o(.rodata); data/data_emerald.o(.rodata.deleteme); - data/lilycove_lady.o(.rodata); + src/lilycove_lady.o(.rodata); data/data_emerald.o(.rodata); data/battle_controller_player_partner.o(.rodata); data/data_emerald2.o(.rodata); diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 6a0e0c2b9..b476c6b2b 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -29,18 +29,198 @@ static u8 sub_818E258(const u8 *); extern const u8 gUnknown_085EEB7E[]; // Lady$ -extern const u16 gUnknown_0860B074[5]; -extern const u16 gUnknown_0860B07E[3]; -extern const u16 *const gUnknown_0860B1A4[16]; -extern const u16 gUnknown_0860B1E4[16]; -extern const u16 gUnknown_0860B204[16]; -extern const u8 *const gUnknown_0860B224[]; -extern const u16 *const gUnknown_0860B2EC[6]; -extern const u16 gUnknown_0860B304[6]; -extern const u8 *const gUnknown_0860B310[5]; -extern const u8 *const gUnknown_0860B324[5]; -extern const u8 *const gUnknown_0860B338[5]; -extern const u16 gUnknown_0860B34C[5]; +static const u16 gUnknown_0860B074[] = { + 0x62, 0xcb, 0xdc, 0xcc, 0xd1 +}; +static const u16 gUnknown_0860B07E[] = { + 0x1a, 0x14, 0x0a +}; + +static const u16 Unknown_0860B084[] = { + 0x101b, 0x1623, 0x1812, 0x102c, 0x020e, 0x0c03, 0x1a0b, 0x0210, 0x020d +}; + +static const u16 Unknown_0860B096[] = { + 0x101b, 0x1013, 0x1020, 0x1a0f, 0x020c, 0x0c03, 0x0211, 0x0203, 0x0400 +}; + +static const u16 Unknown_0860B0A8[] = { + 0x0e0f, 0x1018, 0x020e, 0x0204, 0x0c03, 0xffff, 0x0212, 0x0451, 0x0463 +}; + +static const u16 Unknown_0860B0BA[] = { + 0x101b, 0x100b, 0x0e0d, 0x141a, 0x181d, 0x0c03, 0x141e, 0x1a26, 0x1823 +}; + +static const u16 Unknown_0860B0CC[] = { + 0x101b, 0x181d, 0x1018, 0x0a02, 0x2014, 0x0c03, 0x0208, 0x1824, 0x181c +}; + +static const u16 Unknown_0860B0DE[] = { + 0x101b, 0x1000, 0x1c19, 0x265d, 0x0c03, 0xffff, 0x0447, 0x045d, 0x042c +}; + +static const u16 Unknown_0860B0F0[] = { + 0x101b, 0x1034, 0x1e11, 0x100b, 0x1a08, 0x0c03, 0x044b, 0x0446, 0x040a +}; + +static const u16 Unknown_0860B102[] = { + 0x101b, 0x1000, 0x274f, 0x0626, 0x0c03, 0xffff, 0x0442, 0x0411, 0x0450 +}; + +static const u16 Unknown_0860B114[] = { + 0x101b, 0x1000, 0x1c19, 0x043c, 0x0c03, 0xffff, 0x0421, 0x0464, 0x0435 +}; + +static const u16 Unknown_0860B126[] = { + 0x101b, 0x1203, 0x1030, 0x0207, 0x0c03, 0xffff, 0x0210, 0x020e, 0x020d +}; + +static const u16 Unknown_0860B138[] = { + 0x101b, 0x1623, 0x0a05, 0x020e, 0x0c03, 0xffff, 0x1a25, 0x181a, 0x181b +}; + +static const u16 Unknown_0860B14A[] = { + 0x101b, 0x1823, 0x1603, 0x0a02, 0x1812, 0x0c03, 0x1a15, 0x1a23, 0x181b +}; + +static const u16 Unknown_0860B15C[] = { + 0x1020, 0x020e, 0x1010, 0x1043, 0x1e0f, 0x0c03, 0x181c, 0x1a24, 0x1816 +}; + +static const u16 Unknown_0860B16E[] = { + 0x0446, 0x100b, 0x0620, 0x061c, 0x101b, 0x0c03, 0x0420, 0x0426, 0xffff +}; + +static const u16 Unknown_0860B180[] = { + 0x0400, 0x100b, 0x0639, 0x061c, 0x101b, 0x0c03, 0x040e, 0x0410, 0xffff +}; + +static const u16 Unknown_0860B192[] = { + 0x041f, 0x100b, 0x0639, 0x061c, 0x101b, 0x0c03, 0x0445, 0x0400, 0xffff +}; + +static const u16 *const gUnknown_0860B1A4[] = { + Unknown_0860B084, + Unknown_0860B096, + Unknown_0860B0A8, + Unknown_0860B0BA, + Unknown_0860B0CC, + Unknown_0860B0DE, + Unknown_0860B0F0, + Unknown_0860B102, + Unknown_0860B114, + Unknown_0860B126, + Unknown_0860B138, + Unknown_0860B14A, + Unknown_0860B15C, + Unknown_0860B16E, + Unknown_0860B180, + Unknown_0860B192 +}; + +static const u16 gUnknown_0860B1E4[] = { + 0x0210, 0x0400, 0x0212, 0x1a26, 0x0208, 0x045d, 0x040a, 0x0411, 0x0464, 0x020e, 0x1a25, 0x181b, 0x1a24, 0x0420, 0x0410, 0x0400 +}; + +static const u16 gUnknown_0860B204[] = { + 0x007b, 0x007f, 0x0081, 0x0023, 0x0023, 0x0023, 0x00a5, 0x00a7, 0x00a6, 0x000b, 0x012f, 0x006b, 0x006d, 0x0044, 0x0044, 0x000c +}; + +extern const u8 gUnknown_085EEB83[]; +extern const u8 gUnknown_085EEB8C[]; +extern const u8 gUnknown_085EEB95[]; +extern const u8 gUnknown_085EEB9E[]; +extern const u8 gUnknown_085EEBA4[]; +extern const u8 gUnknown_085EEBAB[]; + +static const u8 *const gUnknown_0860B224[] = { + gUnknown_085EEB83, + gUnknown_085EEB8C, + gUnknown_085EEB95, + gUnknown_085EEB9E, + gUnknown_085EEBA4, + gUnknown_085EEBAB +}; + +static const u16 Unknown_0860B23C[] = { + 0x0056, 0x0053, 0x0054, 0x000e, 0x0012, 0x000f, 0x00a7, 0x0011, 0x0010, 0x0018, 0x0019, 0x001e, 0x0000 +}; + +static const u16 Unknown_0860B256[] = { + 0x0051, 0x006a, 0x006b, 0x00cc, 0x00c2, 0x002f, 0x0067, 0x0068, 0x0087, 0x0089, 0x008b, 0x009d, 0x00a0, 0x00a5, 0x0004, 0x0002, 0x0000 +}; + +static const u16 Unknown_0860B278[] = { + 0x0021, 0x000d, 0x001a, 0x001b, 0x001c, 0x00cc, 0x00ca, 0x0026, 0x0086, 0x0096, 0x0097, 0x009a, 0x00a2, 0x00a6, 0x0000 +}; + +static const u16 Unknown_0860B296[] = { + 0x0020, 0x004d, 0x004b, 0x004c, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x006e, 0x005d, 0x006c, 0x006d, 0x006a, 0x006b, 0x00d6, 0x00bc, 0x00b3, 0x000b, 0x000c, 0x0000 +}; + +static const u16 Unknown_0860B2C0[] = { + 0x001f, 0x0013, 0x0014, 0x004a, 0x004e, 0x0049, 0x00a5, 0x00c8, 0x0067, 0x006f, 0x0000 +}; + +static const u16 Unknown_0860B2D6[] = { + 0x00b7, 0x00d3, 0x00d2, 0x00d8, 0x009e, 0x00a6, 0x00ab, 0x00aa, 0x006c, 0x006d, 0x0000 +}; + +static const u16 *const gUnknown_0860B2EC[] = { + Unknown_0860B23C, + Unknown_0860B256, + Unknown_0860B278, + Unknown_0860B296, + Unknown_0860B2C0, + Unknown_0860B2D6 +}; + +static const u16 gUnknown_0860B304[] = { + 0x0b, 0x6e, 0x40, 0x6f, 0x44, 0x47 +}; + +extern const u8 gUnknown_085EEB2B[]; +extern const u8 gUnknown_085EEB34[]; +extern const u8 gUnknown_085EEB3A[]; +extern const u8 gUnknown_085EEB41[]; +extern const u8 gUnknown_085EEB4A[]; +extern const u8 gUnknown_085EEB51[]; +extern const u8 gUnknown_085EEB5A[]; +extern const u8 gUnknown_085EEB61[]; +extern const u8 gUnknown_085EEB6A[]; +extern const u8 gUnknown_085EEB74[]; +extern const u8 gUnknown_085EADA4[]; +extern const u8 gUnknown_085EADB5[]; +extern const u8 gUnknown_085EADC4[]; +extern const u8 gUnknown_085EADD5[]; +extern const u8 gUnknown_085EADE7[]; + +static const u8 *const gUnknown_0860B310[] = { + gUnknown_085EEB2B, + gUnknown_085EEB34, + gUnknown_085EEB3A, + gUnknown_085EEB41, + gUnknown_085EEB4A +}; +static const u8 *const gUnknown_0860B324[] = { + gUnknown_085EEB51, + gUnknown_085EEB5A, + gUnknown_085EEB61, + gUnknown_085EEB6A, + gUnknown_085EEB74 +}; +static const u8 *const gUnknown_0860B338[] = { + gUnknown_085EADA4, + gUnknown_085EADB5, + gUnknown_085EADC4, + gUnknown_085EADD5, + gUnknown_085EADE7 +}; + +static const u16 gUnknown_0860B34C[] = { + 0x0120, 0x013b, 0x011e, 0x013d, 0x0019 +}; static EWRAM_DATA struct LilycoveLadyFavour *gUnknown_0203CD64 = NULL; static EWRAM_DATA struct LilycoveLadyQuiz *gUnknown_0203CD68 = NULL; -- cgit v1.2.3