mirror of https://github.com/pret/pokeemerald.git
favor lady funcs
This commit is contained in:
parent
771a7b25fa
commit
7fc99f3952
|
@ -4292,7 +4292,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8395:: @ 82A8395
|
|||
lock
|
||||
faceplayer
|
||||
msgbox LilycoveCity_PokemonCenter_1F_Text_2A8A69, MSGBOX_DEFAULT
|
||||
specialvar VAR_RESULT, sub_818DBE8
|
||||
specialvar VAR_RESULT, GetFavorLadyState
|
||||
compare VAR_RESULT, 0
|
||||
goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A83D0
|
||||
compare VAR_RESULT, 1
|
||||
|
@ -4317,9 +4317,9 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A83D0:: @ 82A83D0
|
|||
end
|
||||
|
||||
LilycoveCity_PokemonCenter_1F_EventScript_2A83F7:: @ 82A83F7
|
||||
special sub_818DCC8
|
||||
special sub_818DD14
|
||||
specialvar VAR_RESULT, sub_818DD54
|
||||
special BufferFavorLadyItemName
|
||||
special BufferFavorLadyPlayerName
|
||||
specialvar VAR_RESULT, DidFavorLadyLikeItem
|
||||
compare VAR_RESULT, 0
|
||||
goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8419
|
||||
compare VAR_RESULT, 1
|
||||
|
@ -4357,7 +4357,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A845E:: @ 82A845E
|
|||
LilycoveCity_PokemonCenter_1F_EventScript_2A846C:: @ 82A846C
|
||||
fadescreen 1
|
||||
setvar VAR_RESULT, 0
|
||||
special OpenBagMenuForFavorLady
|
||||
special FavorLadyOpenBagMenu
|
||||
waitstate
|
||||
compare VAR_RESULT, 0
|
||||
goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A848E
|
||||
|
@ -4374,7 +4374,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A848E:: @ 82A848E
|
|||
end
|
||||
|
||||
LilycoveCity_PokemonCenter_1F_EventScript_2A84AD:: @ 82A84AD
|
||||
specialvar VAR_RESULT, sub_818DE44
|
||||
specialvar VAR_RESULT, Script_ShowFavorLadyItem
|
||||
compare VAR_RESULT, 0
|
||||
goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A84C9
|
||||
compare VAR_RESULT, 1
|
||||
|
@ -4388,7 +4388,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A84C9:: @ 82A84C9
|
|||
end
|
||||
|
||||
LilycoveCity_PokemonCenter_1F_EventScript_2A84D6:: @ 82A84D6
|
||||
specialvar VAR_RESULT, sub_818DE5C
|
||||
specialvar VAR_RESULT, DidFavorLadyLoveItem
|
||||
compare VAR_RESULT, 0
|
||||
goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A84F2
|
||||
compare VAR_RESULT, 1
|
||||
|
@ -4409,7 +4409,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A84FF:: @ 82A84FF
|
|||
|
||||
LilycoveCity_PokemonCenter_1F_EventScript_2A8510:: @ 82A8510
|
||||
setvar VAR_0x8004, 0
|
||||
specialvar VAR_0x8004, sub_818DEA0
|
||||
specialvar VAR_0x8004, FavorLadyGetPrize
|
||||
msgbox LilycoveCity_PokemonCenter_1F_Text_2A8D5D, MSGBOX_DEFAULT
|
||||
giveitem_std VAR_0x8004
|
||||
compare VAR_RESULT, 0
|
||||
|
@ -4424,7 +4424,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8545:: @ 82A8545
|
|||
end
|
||||
|
||||
LilycoveCity_PokemonCenter_1F_EventScript_2A854F:: @ 82A854F
|
||||
special sub_818DEDC
|
||||
special SetFavorLadyState_Complete
|
||||
release
|
||||
end
|
||||
|
||||
|
@ -4432,7 +4432,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8554:: @ 82A8554
|
|||
lock
|
||||
faceplayer
|
||||
msgbox LilycoveCity_PokemonCenter_1F_Text_2A8E2B, MSGBOX_DEFAULT
|
||||
specialvar VAR_RESULT, GetQuizLadyPhase
|
||||
specialvar VAR_RESULT, GetQuizLadyState
|
||||
compare VAR_RESULT, 0
|
||||
goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8585
|
||||
compare VAR_RESULT, 1
|
||||
|
@ -4442,7 +4442,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8554:: @ 82A8554
|
|||
end
|
||||
|
||||
LilycoveCity_PokemonCenter_1F_EventScript_2A8585:: @ 82A8585
|
||||
specialvar VAR_RESULT, sub_818E06C
|
||||
specialvar VAR_RESULT, GetQuizAuthor
|
||||
compare VAR_RESULT, 0
|
||||
goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A85C8
|
||||
compare VAR_RESULT, 1
|
||||
|
@ -4509,7 +4509,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A864C:: @ 82A864C
|
|||
end
|
||||
|
||||
LilycoveCity_PokemonCenter_1F_EventScript_2A8656:: @ 82A8656
|
||||
special sub_818E2FC
|
||||
special QuizLadyShowEasyChatScreen
|
||||
waitstate
|
||||
goto LilycoveCity_PokemonCenter_1F_EventScript_2A8635
|
||||
end
|
||||
|
@ -4528,7 +4528,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A867F:: @ 82A867F
|
|||
end
|
||||
|
||||
LilycoveCity_PokemonCenter_1F_EventScript_2A8689:: @ 82A8689
|
||||
special SetQuizLadyPhase_MakeYourOwn
|
||||
special SetQuizLadyState_Complete
|
||||
msgbox LilycoveCity_PokemonCenter_1F_Text_2A8F4D, MSGBOX_DEFAULT
|
||||
specialvar VAR_RESULT, sub_818E308
|
||||
compare VAR_RESULT, 0
|
||||
|
@ -4577,7 +4577,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8716:: @ 82A8716
|
|||
LilycoveCity_PokemonCenter_1F_EventScript_2A8724:: @ 82A8724
|
||||
setvar VAR_0x8005, 0
|
||||
special BufferQuizPrizeItem
|
||||
special SetQuizLadyPhase_MakeYourOwn
|
||||
special SetQuizLadyState_Complete
|
||||
giveitem_std VAR_0x8005
|
||||
compare VAR_RESULT, 0
|
||||
goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A874C
|
||||
|
@ -4586,7 +4586,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8724:: @ 82A8724
|
|||
|
||||
LilycoveCity_PokemonCenter_1F_EventScript_2A874C:: @ 82A874C
|
||||
msgbox LilycoveCity_PokemonCenter_1F_Text_2A906A, MSGBOX_DEFAULT
|
||||
special SetQuizLadyPhase_GivePrize
|
||||
special SetQuizLadyState_GivePrize
|
||||
release
|
||||
end
|
||||
|
||||
|
|
|
@ -374,27 +374,27 @@ gSpecials:: @ 81DBA64
|
|||
def_special SetSecretBaseSecretsTvFlags_Poster
|
||||
def_special SetLilycoveLadyGfx
|
||||
def_special Script_GetLilycoveLadyId
|
||||
def_special sub_818DBE8
|
||||
def_special GetFavorLadyState
|
||||
def_special BufferFavorLadyDescription
|
||||
def_special sub_818DC60
|
||||
def_special sub_818DCC8
|
||||
def_special sub_818DD14
|
||||
def_special sub_818DD54
|
||||
def_special OpenBagMenuForFavorLady
|
||||
def_special sub_818DE44
|
||||
def_special sub_818DE5C
|
||||
def_special sub_818DEA0
|
||||
def_special sub_818DEDC
|
||||
def_special GetQuizLadyPhase
|
||||
def_special sub_818E06C
|
||||
def_special BufferFavorLadyItemName
|
||||
def_special BufferFavorLadyPlayerName
|
||||
def_special DidFavorLadyLikeItem
|
||||
def_special FavorLadyOpenBagMenu
|
||||
def_special Script_ShowFavorLadyItem
|
||||
def_special DidFavorLadyLoveItem
|
||||
def_special FavorLadyGetPrize
|
||||
def_special SetFavorLadyState_Complete
|
||||
def_special GetQuizLadyState
|
||||
def_special GetQuizAuthor
|
||||
def_special IsQuizLadyWaitingForChallenger
|
||||
def_special sub_811A858
|
||||
def_special sub_818E2FC
|
||||
def_special QuizLadyShowEasyChatScreen
|
||||
def_special sub_818E308
|
||||
def_special BufferQuizPrizeItem
|
||||
def_special SetQuizLadyPhase_MakeYourOwn
|
||||
def_special SetQuizLadyState_Complete
|
||||
def_special sub_818E298
|
||||
def_special SetQuizLadyPhase_GivePrize
|
||||
def_special SetQuizLadyState_GivePrize
|
||||
def_special ClearQuizLadyResponse
|
||||
def_special sub_818E3E0
|
||||
def_special sub_818E430
|
||||
|
|
|
@ -741,13 +741,14 @@ enum
|
|||
{
|
||||
LILYCOVE_LADY_QUIZ,
|
||||
LILYCOVE_LADY_FAVOR,
|
||||
LILYCOVE_LADY_CONTEST
|
||||
LILYCOVE_LADY_CONTEST,
|
||||
LILYCOVE_LADY_COUNT
|
||||
};
|
||||
|
||||
struct LilycoveLadyQuiz
|
||||
{
|
||||
/*0x000*/ u8 id;
|
||||
/*0x001*/ u8 phase;
|
||||
/*0x001*/ u8 state;
|
||||
/*0x002*/ u16 question[9];
|
||||
/*0x014*/ u16 answer;
|
||||
/*0x016*/ u16 response;
|
||||
|
@ -763,13 +764,13 @@ struct LilycoveLadyQuiz
|
|||
struct LilycoveLadyFavor
|
||||
{
|
||||
/*0x000*/ u8 id;
|
||||
/*0x001*/ u8 phase;
|
||||
/*0x002*/ u8 unk_002;
|
||||
/*0x003*/ u8 unk_003;
|
||||
/*0x001*/ u8 state;
|
||||
/*0x002*/ bool8 likedItem;
|
||||
/*0x003*/ u8 numItemsGiven;
|
||||
/*0x004*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x00c*/ u8 favorId;
|
||||
/*0x00e*/ u16 itemId;
|
||||
/*0x010*/ u16 unk_010;
|
||||
/*0x010*/ u16 bestItem;
|
||||
/*0x012*/ u8 language;
|
||||
};
|
||||
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#define GUARD_LILYCOVE_LADY_H
|
||||
|
||||
u8 GetLilycoveLadyId(void);
|
||||
void SetLilycoveLady(void);
|
||||
void sub_818DA78(void);
|
||||
void InitLilycoveLady(void);
|
||||
void ReadyLilycoveLady(void);
|
||||
void sub_818DEF4(void);
|
||||
void sub_818E564(void);
|
||||
void sub_818E570(const LilycoveLady *lilycoveLady);
|
||||
|
|
|
@ -18,9 +18,16 @@
|
|||
#include "berry.h"
|
||||
#include "strings.h"
|
||||
|
||||
// TODO use array count macro?
|
||||
#define QUIZ_QUESTION_LEN 9
|
||||
#define QUIZ_QUESTION_NUM 16
|
||||
// TODO use array count macro?
|
||||
#define QUIZ_QUESTION_LEN 9 //len of sQuizLadyQuestion#
|
||||
#define NUM_QUIZ_QUESTIONS 16 //len of sQuizLadyQuizQuestions
|
||||
#define FAVOR_DESCRIPTION_NUM 6 //len of sFavorLadyDescriptions
|
||||
|
||||
// TODO not a great name? The number of successes required to receive
|
||||
// an item from the favor lady. Reached automatically if the randomly
|
||||
// selected 'best' item is given to her
|
||||
#define FAVOR_GIFT_MAX 5
|
||||
|
||||
|
||||
enum
|
||||
{
|
||||
|
@ -31,26 +38,24 @@ enum
|
|||
|
||||
enum
|
||||
{
|
||||
QUIZ_PHASE_ATTEMPT_QUIZ,
|
||||
QUIZ_PHASE_MAKE_YOUR_OWN,
|
||||
QUIZ_PHASE_GIVE_PRIZE
|
||||
LILYCOVE_LADY_STATE_READY,
|
||||
LILYCOVE_LADY_STATE_COMPLETED,
|
||||
LILYCOVE_LADY_STATE_PRIZE
|
||||
};
|
||||
|
||||
#include "data/lilycove_lady.h"
|
||||
|
||||
#include "data/lilycove_lady.h"
|
||||
|
||||
static void InitLilycoveQuizLady(void);
|
||||
static void InitLilycoveFavorLady(void);
|
||||
static void InitLilycoveContestLady(void);
|
||||
static void sub_818E004(void);
|
||||
static void sub_818DBC4(void);
|
||||
static void sub_818E674(void);
|
||||
static void ReadyQuizLady(void);
|
||||
static void ReadyFavorLady(void);
|
||||
static void ReadyContestLady(void);
|
||||
static u8 BufferAuthorName(void);
|
||||
static bool8 IsQuizTrainerIdNotPlayer(void);
|
||||
static u8 GetPlayerNameLength(const u8 *);
|
||||
|
||||
|
||||
|
||||
static EWRAM_DATA struct LilycoveLadyFavor *sFavorLadyPtr = NULL;
|
||||
static EWRAM_DATA struct LilycoveLadyQuiz *sQuizLadyPtr = NULL;
|
||||
static EWRAM_DATA struct LilycoveLadyContest *sContestLadyPtr = NULL;
|
||||
|
@ -79,12 +84,12 @@ void SetLilycoveLadyGfx(void)
|
|||
}
|
||||
}
|
||||
|
||||
void SetLilycoveLady(void)
|
||||
void InitLilycoveLady(void)
|
||||
{
|
||||
u16 id;
|
||||
|
||||
id = ((gSaveBlock2Ptr->playerTrainerId[1] << 8) | gSaveBlock2Ptr->playerTrainerId[0]);
|
||||
id %= 6;
|
||||
id %= 6; //TODO num lilycove ladies * 2. constant?
|
||||
id >>= 1;
|
||||
switch (id)
|
||||
{
|
||||
|
@ -100,28 +105,30 @@ void SetLilycoveLady(void)
|
|||
}
|
||||
}
|
||||
|
||||
void sub_818DA78(void)
|
||||
// Used after mixing records
|
||||
void ReadyLilycoveLady(void)
|
||||
{
|
||||
switch (GetLilycoveLadyId())
|
||||
{
|
||||
case LILYCOVE_LADY_QUIZ:
|
||||
sub_818E004();
|
||||
ReadyQuizLady();
|
||||
break;
|
||||
case LILYCOVE_LADY_FAVOR:
|
||||
sub_818DBC4();
|
||||
ReadyFavorLady();
|
||||
break;
|
||||
case LILYCOVE_LADY_CONTEST:
|
||||
sub_818E674();
|
||||
ReadyContestLady();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void SetLilycoveLadyRandomly(void)
|
||||
// Unused?
|
||||
void InitLilycoveLadyRandomly(void)
|
||||
{
|
||||
u8 id;
|
||||
u8 lady;
|
||||
|
||||
id = Random() % 3;
|
||||
switch (id)
|
||||
lady = Random() % LILYCOVE_LADY_COUNT;
|
||||
switch (lady)
|
||||
{
|
||||
case LILYCOVE_LADY_QUIZ:
|
||||
InitLilycoveQuizLady();
|
||||
|
@ -148,51 +155,51 @@ static u8 GetNumAcceptedItems(const u16 *itemsArray)
|
|||
return items;
|
||||
}
|
||||
|
||||
static void sub_818DB20(void)
|
||||
static void FavorLadyPickFavorAndBestItem(void)
|
||||
{
|
||||
u8 size;
|
||||
u8 idx;
|
||||
|
||||
sFavorLadyPtr->favorId = Random() % 6;
|
||||
sFavorLadyPtr->favorId = Random() % FAVOR_DESCRIPTION_NUM;
|
||||
size = GetNumAcceptedItems(sFavorLadyAcceptedItemLists[sFavorLadyPtr->favorId]);
|
||||
idx = Random() % size;
|
||||
sFavorLadyPtr->unk_010 = sFavorLadyAcceptedItemLists[sFavorLadyPtr->favorId][idx];
|
||||
sFavorLadyPtr->bestItem = sFavorLadyAcceptedItemLists[sFavorLadyPtr->favorId][idx];
|
||||
}
|
||||
|
||||
static void InitLilycoveFavorLady(void)
|
||||
{
|
||||
sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor;
|
||||
sFavorLadyPtr->id = LILYCOVE_LADY_FAVOR;
|
||||
sFavorLadyPtr->phase = 0;
|
||||
sFavorLadyPtr->state = LILYCOVE_LADY_STATE_READY;
|
||||
sFavorLadyPtr->playerName[0] = EOS;
|
||||
sFavorLadyPtr->unk_002 = 0;
|
||||
sFavorLadyPtr->unk_003= 0;
|
||||
sFavorLadyPtr->likedItem = FALSE;
|
||||
sFavorLadyPtr->numItemsGiven = 0;
|
||||
sFavorLadyPtr->itemId = ITEM_NONE;
|
||||
sFavorLadyPtr->language = gGameLanguage;
|
||||
sub_818DB20();
|
||||
FavorLadyPickFavorAndBestItem();
|
||||
}
|
||||
|
||||
static void sub_818DBC4(void)
|
||||
static void ReadyFavorLady(void)
|
||||
{
|
||||
sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor;
|
||||
sFavorLadyPtr->id = LILYCOVE_LADY_FAVOR;
|
||||
sFavorLadyPtr->phase = 0;
|
||||
sFavorLadyPtr->state = LILYCOVE_LADY_STATE_READY;
|
||||
}
|
||||
|
||||
u8 sub_818DBE8(void)
|
||||
u8 GetFavorLadyState(void)
|
||||
{
|
||||
sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor;
|
||||
if (sFavorLadyPtr->phase == 2)
|
||||
if (sFavorLadyPtr->state == LILYCOVE_LADY_STATE_PRIZE)
|
||||
{
|
||||
return 2;
|
||||
return LILYCOVE_LADY_STATE_PRIZE;
|
||||
}
|
||||
else if (sFavorLadyPtr->phase == 1)
|
||||
else if (sFavorLadyPtr->state == LILYCOVE_LADY_STATE_COMPLETED)
|
||||
{
|
||||
return 1;
|
||||
return LILYCOVE_LADY_STATE_COMPLETED;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
return LILYCOVE_LADY_STATE_READY;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -224,80 +231,82 @@ static void BufferItemName(u8 *dest, u16 itemId)
|
|||
StringCopy(dest, ItemId_GetName(itemId));
|
||||
}
|
||||
|
||||
void sub_818DCC8(void)
|
||||
void BufferFavorLadyItemName(void)
|
||||
{
|
||||
sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor;
|
||||
BufferItemName(gStringVar2, sFavorLadyPtr->itemId);
|
||||
}
|
||||
|
||||
static void sub_818DCF4(const u8 *src, u8 *dest)
|
||||
static void SetFavorLadyPlayerName(const u8 *src, u8 *dest)
|
||||
{
|
||||
memset(dest, 0xFF, 8);
|
||||
StringCopy7(dest, src);
|
||||
}
|
||||
|
||||
void sub_818DD14(void)
|
||||
void BufferFavorLadyPlayerName(void)
|
||||
{
|
||||
sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor;
|
||||
sub_818DCF4(sFavorLadyPtr->playerName, gStringVar3);
|
||||
SetFavorLadyPlayerName(sFavorLadyPtr->playerName, gStringVar3);
|
||||
ConvertInternationalString(gStringVar3, sFavorLadyPtr->language);
|
||||
}
|
||||
|
||||
bool8 sub_818DD54(void)
|
||||
bool8 DidFavorLadyLikeItem(void)
|
||||
{
|
||||
sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor;
|
||||
return sFavorLadyPtr->unk_002 ? TRUE : FALSE;
|
||||
return sFavorLadyPtr->likedItem ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
void OpenBagMenuForFavorLady(void)
|
||||
void FavorLadyOpenBagMenu(void)
|
||||
{
|
||||
sub_81AAC50();
|
||||
}
|
||||
|
||||
static bool8 sub_818DD84(u16 itemId)
|
||||
//TODO rename?
|
||||
static bool8 ShowFavorLadyItem(u16 itemId)
|
||||
{
|
||||
u8 numItems;
|
||||
u8 i;
|
||||
bool8 response;
|
||||
bool8 likedItem;
|
||||
|
||||
sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor;
|
||||
numItems = GetNumAcceptedItems(sFavorLadyAcceptedItemLists[sFavorLadyPtr->favorId]);
|
||||
sFavorLadyPtr->phase = 1;
|
||||
sFavorLadyPtr->state = LILYCOVE_LADY_STATE_COMPLETED;
|
||||
BufferItemName(gStringVar2, itemId);
|
||||
sFavorLadyPtr->itemId = itemId;
|
||||
sub_818DCF4(gSaveBlock2Ptr->playerName, sFavorLadyPtr->playerName);
|
||||
SetFavorLadyPlayerName(gSaveBlock2Ptr->playerName, sFavorLadyPtr->playerName);
|
||||
sFavorLadyPtr->language = gGameLanguage;
|
||||
response = FALSE;
|
||||
likedItem = FALSE;
|
||||
for (i = 0; i < numItems; i ++)
|
||||
{
|
||||
if (sFavorLadyAcceptedItemLists[sFavorLadyPtr->favorId][i] == itemId)
|
||||
{
|
||||
response = TRUE;
|
||||
sFavorLadyPtr->unk_003 ++;
|
||||
sFavorLadyPtr->unk_002 = 1;
|
||||
if (sFavorLadyPtr->unk_010 == itemId)
|
||||
likedItem = TRUE;
|
||||
sFavorLadyPtr->numItemsGiven++;
|
||||
sFavorLadyPtr->likedItem = TRUE;
|
||||
if (sFavorLadyPtr->bestItem == itemId)
|
||||
{
|
||||
sFavorLadyPtr->unk_003 = 5;
|
||||
sFavorLadyPtr->numItemsGiven = FAVOR_GIFT_MAX;
|
||||
}
|
||||
break;
|
||||
}
|
||||
sFavorLadyPtr->unk_002 = 0;
|
||||
sFavorLadyPtr->likedItem = FALSE;
|
||||
}
|
||||
return response;
|
||||
return likedItem;
|
||||
}
|
||||
|
||||
bool8 sub_818DE44(void)
|
||||
bool8 Script_ShowFavorLadyItem(void)
|
||||
{
|
||||
return sub_818DD84(gSpecialVar_ItemId);
|
||||
return ShowFavorLadyItem(gSpecialVar_ItemId);
|
||||
}
|
||||
|
||||
bool8 sub_818DE5C(void)
|
||||
//was item given the best item / have they given her 5 items
|
||||
bool8 DidFavorLadyLoveItem(void)
|
||||
{
|
||||
u8 checkval;
|
||||
|
||||
sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor;
|
||||
checkval = sFavorLadyPtr->unk_003;
|
||||
return checkval < 5 ? FALSE : TRUE;
|
||||
checkval = sFavorLadyPtr->numItemsGiven;
|
||||
return checkval < FAVOR_GIFT_MAX ? FALSE : TRUE;
|
||||
}
|
||||
|
||||
static void BufferPrizeName(u16 itemId)
|
||||
|
@ -305,21 +314,21 @@ static void BufferPrizeName(u16 itemId)
|
|||
BufferItemName(gStringVar2, itemId);
|
||||
}
|
||||
|
||||
u16 sub_818DEA0(void)
|
||||
u16 FavorLadyGetPrize(void)
|
||||
{
|
||||
u16 itemId;
|
||||
|
||||
sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor;
|
||||
itemId = sFavorLadyPrizes[sFavorLadyPtr->favorId];
|
||||
BufferPrizeName(itemId);
|
||||
sFavorLadyPtr->phase = 2;
|
||||
sFavorLadyPtr->state = LILYCOVE_LADY_STATE_PRIZE;
|
||||
return itemId;
|
||||
}
|
||||
|
||||
void sub_818DEDC(void)
|
||||
void SetFavorLadyState_Complete(void)
|
||||
{
|
||||
InitLilycoveFavorLady();
|
||||
sFavorLadyPtr->phase = 1;
|
||||
sFavorLadyPtr->state = LILYCOVE_LADY_STATE_COMPLETED;
|
||||
}
|
||||
|
||||
void sub_818DEF4(void)
|
||||
|
@ -332,7 +341,7 @@ static void PickQuizQuestion(void)
|
|||
u8 questionId;
|
||||
u8 i;
|
||||
|
||||
questionId = Random() % QUIZ_QUESTION_NUM;
|
||||
questionId = Random() % NUM_QUIZ_QUESTIONS;
|
||||
for (i = 0; i < QUIZ_QUESTION_LEN; i ++)
|
||||
{
|
||||
sQuizLadyPtr->question[i] = sQuizLadyQuizQuestions[questionId][i];
|
||||
|
@ -349,7 +358,7 @@ static void InitLilycoveQuizLady(void)
|
|||
|
||||
sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz;
|
||||
sQuizLadyPtr->id = LILYCOVE_LADY_QUIZ;
|
||||
sQuizLadyPtr->phase = QUIZ_PHASE_ATTEMPT_QUIZ;
|
||||
sQuizLadyPtr->state = LILYCOVE_LADY_STATE_READY;
|
||||
for (i = 0; i < QUIZ_QUESTION_LEN; i ++)
|
||||
{
|
||||
sQuizLadyPtr->question[i] = -1;
|
||||
|
@ -362,41 +371,42 @@ static void InitLilycoveQuizLady(void)
|
|||
}
|
||||
sQuizLadyPtr->itemId = ITEM_NONE;
|
||||
sQuizLadyPtr->waitingForChallenger = FALSE;
|
||||
sQuizLadyPtr->prevQuestionId = QUIZ_QUESTION_NUM;
|
||||
sQuizLadyPtr->prevQuestionId = NUM_QUIZ_QUESTIONS;
|
||||
sQuizLadyPtr->language = gGameLanguage;
|
||||
PickQuizQuestion();
|
||||
}
|
||||
|
||||
static void sub_818E004(void)
|
||||
static void ReadyQuizLady(void)
|
||||
{
|
||||
sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz;
|
||||
sQuizLadyPtr->id = LILYCOVE_LADY_QUIZ;
|
||||
sQuizLadyPtr->phase = QUIZ_PHASE_ATTEMPT_QUIZ;
|
||||
sQuizLadyPtr->state = LILYCOVE_LADY_STATE_READY;
|
||||
sQuizLadyPtr->waitingForChallenger = FALSE;
|
||||
sQuizLadyPtr->response = -1;
|
||||
}
|
||||
|
||||
u8 GetQuizLadyPhase(void)
|
||||
u8 GetQuizLadyState(void)
|
||||
{
|
||||
sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz;
|
||||
if (sQuizLadyPtr->phase == QUIZ_PHASE_GIVE_PRIZE)
|
||||
if (sQuizLadyPtr->state == LILYCOVE_LADY_STATE_PRIZE)
|
||||
{
|
||||
return QUIZ_PHASE_GIVE_PRIZE;
|
||||
return LILYCOVE_LADY_STATE_PRIZE;
|
||||
}
|
||||
else if (sQuizLadyPtr->phase == QUIZ_PHASE_MAKE_YOUR_OWN)
|
||||
else if (sQuizLadyPtr->state == LILYCOVE_LADY_STATE_COMPLETED)
|
||||
{
|
||||
return QUIZ_PHASE_MAKE_YOUR_OWN;
|
||||
return LILYCOVE_LADY_STATE_COMPLETED;
|
||||
}
|
||||
else
|
||||
{
|
||||
return QUIZ_PHASE_ATTEMPT_QUIZ;
|
||||
return LILYCOVE_LADY_STATE_READY;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO enum? another enum might be excessive. why did GF swap the order from AUTHOR
|
||||
// 0: waiting for someone to attempt player's quiz
|
||||
// 1: ready to attempt other player's quiz
|
||||
// 2: ready to attempt lady's quiz
|
||||
u8 sub_818E06C(void) //sub_818E06C
|
||||
u8 GetQuizAuthor(void)
|
||||
{
|
||||
int i;
|
||||
int j;
|
||||
|
@ -409,7 +419,7 @@ u8 sub_818E06C(void) //sub_818E06C
|
|||
i = quiz->questionId;
|
||||
do
|
||||
{
|
||||
if (++ i >= QUIZ_QUESTION_NUM)
|
||||
if (++ i >= NUM_QUIZ_QUESTIONS)
|
||||
{
|
||||
i = 0;
|
||||
}
|
||||
|
@ -523,7 +533,7 @@ bool8 IsQuizLadyWaitingForChallenger(void)
|
|||
return sQuizLadyPtr->waitingForChallenger;
|
||||
}
|
||||
|
||||
void sub_818E2FC(void) //sub_818E2FC
|
||||
void QuizLadyShowEasyChatScreen(void)
|
||||
{
|
||||
ShowEasyChatScreen();
|
||||
}
|
||||
|
@ -542,16 +552,16 @@ void BufferQuizPrizeItem(void)
|
|||
gSpecialVar_0x8005 = sQuizLadyPtr->itemId;
|
||||
}
|
||||
|
||||
void SetQuizLadyPhase_MakeYourOwn(void)
|
||||
void SetQuizLadyState_Complete(void)
|
||||
{
|
||||
sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz;
|
||||
sQuizLadyPtr->phase = QUIZ_PHASE_MAKE_YOUR_OWN;
|
||||
sQuizLadyPtr->state = LILYCOVE_LADY_STATE_COMPLETED;
|
||||
}
|
||||
|
||||
void SetQuizLadyPhase_GivePrize(void)
|
||||
void SetQuizLadyState_GivePrize(void)
|
||||
{
|
||||
sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz;
|
||||
sQuizLadyPtr->phase = QUIZ_PHASE_GIVE_PRIZE;
|
||||
sQuizLadyPtr->state = LILYCOVE_LADY_STATE_PRIZE;
|
||||
}
|
||||
|
||||
void ClearQuizLadyResponse(void)
|
||||
|
@ -574,7 +584,7 @@ void sub_818E3EC(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
sQuizLadyPtr->prevQuestionId = QUIZ_QUESTION_NUM;
|
||||
sQuizLadyPtr->prevQuestionId = NUM_QUIZ_QUESTIONS;
|
||||
}
|
||||
PickQuizQuestion();
|
||||
}
|
||||
|
@ -638,7 +648,7 @@ void sub_818E570(const LilycoveLady *lilycoveLady)
|
|||
u8 i;
|
||||
|
||||
sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz;
|
||||
if (lilycoveLady->quiz.prevQuestionId < QUIZ_QUESTION_NUM && sQuizLadyPtr->id == LILYCOVE_LADY_QUIZ)
|
||||
if (lilycoveLady->quiz.prevQuestionId < NUM_QUIZ_QUESTIONS && sQuizLadyPtr->id == LILYCOVE_LADY_QUIZ)
|
||||
{
|
||||
for (i = 0; i < 4; i ++)
|
||||
{
|
||||
|
@ -646,11 +656,11 @@ void sub_818E570(const LilycoveLady *lilycoveLady)
|
|||
{
|
||||
break;
|
||||
}
|
||||
sQuizLadyPtr->questionId = Random() % QUIZ_QUESTION_NUM;
|
||||
sQuizLadyPtr->questionId = Random() % NUM_QUIZ_QUESTIONS;
|
||||
}
|
||||
if (lilycoveLady->quiz.prevQuestionId == sQuizLadyPtr->questionId)
|
||||
{
|
||||
sQuizLadyPtr->questionId = (sQuizLadyPtr->questionId + 1) % QUIZ_QUESTION_NUM;
|
||||
sQuizLadyPtr->questionId = (sQuizLadyPtr->questionId + 1) % NUM_QUIZ_QUESTIONS;
|
||||
}
|
||||
sQuizLadyPtr->prevQuestionId = lilycoveLady->quiz.prevQuestionId;
|
||||
}
|
||||
|
@ -674,7 +684,7 @@ static void InitLilycoveContestLady(void)
|
|||
sContestLadyPtr->language = gGameLanguage;
|
||||
}
|
||||
|
||||
static void sub_818E674(void)
|
||||
static void ReadyContestLady(void)
|
||||
{
|
||||
sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest;
|
||||
sContestLadyPtr->id = LILYCOVE_LADY_CONTEST;
|
||||
|
|
|
@ -198,7 +198,7 @@ void NewGameInitData(void)
|
|||
ScriptContext2_RunNewScript(EventScript_ResetAllMapFlags);
|
||||
ResetMiniGamesResults();
|
||||
copy_strings_to_sav1();
|
||||
SetLilycoveLady();
|
||||
InitLilycoveLady();
|
||||
ResetAllApprenticeData();
|
||||
ClearRankingHallRecords();
|
||||
InitMatchCallCounters();
|
||||
|
|
|
@ -701,7 +701,7 @@ static void ReceiveLilycoveLadyData(LilycoveLady *lilycoveLady, size_t recordSiz
|
|||
}
|
||||
|
||||
memcpy(sLilycoveLadySave, (void *)lilycoveLady + recordSize * mixIndices[which], sizeof(LilycoveLady));
|
||||
sub_818DA78();
|
||||
ReadyLilycoveLady();
|
||||
if (dest != NULL)
|
||||
{
|
||||
sub_818E570(dest);
|
||||
|
|
Loading…
Reference in New Issue