summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDizzyEggg <jajkodizzy@wp.pl>2017-11-15 22:12:18 +0100
committerDizzyEggg <jajkodizzy@wp.pl>2017-11-15 22:12:18 +0100
commitba00a1c688f84edcab44bd183d6dea4e2e7ba0be (patch)
treed5dab85b30006f8064855afc0bb16d672b7eb91c /src
parent616edd6c3f591ed62f11aedbeb0dbc744fac4c07 (diff)
daycare file fully done
Diffstat (limited to 'src')
-rw-r--r--src/daycare.c120
-rw-r--r--src/decoration.c42
-rw-r--r--src/secret_base.c8
3 files changed, 106 insertions, 64 deletions
diff --git a/src/daycare.c b/src/daycare.c
index f8644b983..fcf577144 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -24,6 +24,20 @@
extern u16 gMoveToLearn;
+// text
+extern const u8 gText_MaleSymbol4[];
+extern const u8 gText_FemaleSymbol4[];
+extern const u8 gText_GenderlessSymbol[];
+extern const u8 gText_NewLine2[];
+extern const u8 gText_Exit4[];
+extern const u8 gText_Lv[];
+extern const u8 gExpandedPlaceholder_Empty[];
+extern const u8 gText_Exit[];
+extern const u8 gDaycareText_GetAlongVeryWell[];
+extern const u8 gDaycareText_GetAlong[];
+extern const u8 gDaycareText_DontLikeOther[];
+extern const u8 gDaycareText_PlayOther[];
+
extern u8 GetCursorSelectionMonId(void);
extern u16 ItemIdToBattleMoveId(u16);
extern s32 ListMenuHandleInput(u8);
@@ -31,12 +45,14 @@ extern void sub_81AE6C8(u8, u16*, u16*);
extern void sub_819746C(u8, bool8);
extern void sub_81973FC(u8, bool8);
extern void sub_81B9328(void);
+extern void sub_81AF078(u32, bool8, struct ListMenu *);
extern void c2_exit_to_overworld_2_switch(void);
// this file's functions
static void ClearDaycareMonMisc(struct DaycareMiscMon *misc);
-void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare);
-u8 GetDaycareCompatibilityScore(struct DayCare *daycare);
+static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare);
+static u8 GetDaycareCompatibilityScore(struct DayCare *daycare);
+static void DaycarePrintMonInfo(u8 windowId, s32 daycareSlotId, u8 y);
// RAM buffers used to assist with BuildEggMoveset()
EWRAM_DATA static u16 sHatchedEggLevelUpMoves[EGG_LVL_UP_MOVES_ARRAY_COUNT] = {0};
@@ -47,10 +63,45 @@ EWRAM_DATA static u16 sHatchedEggMotherMoves[4] = {0};
#include "data/pokemon/egg_moves.h"
-extern const struct WindowTemplate sDaycareLevelMenuWindowTemplate;
-extern const struct ListMenuTemplate sDaycareListMenuLevelTemplate;
-extern const u8 *sCompatibilityMessages[];
-extern const u8 sJapaneseEggNickname[];
+static const struct WindowTemplate sDaycareLevelMenuWindowTemplate = {0, 0xF, 1, 0xE, 6, 0xF, 8};
+
+static const struct ListMenuItem sLevelMenuItems[] =
+{
+ {gExpandedPlaceholder_Empty, 0},
+ {gExpandedPlaceholder_Empty, 1},
+ {gText_Exit, 5}
+};
+
+static const struct ListMenuTemplate sDaycareListMenuLevelTemplate =
+{
+ .items = sLevelMenuItems,
+ .unk_04 = sub_81AF078,
+ .unk_08 = DaycarePrintMonInfo,
+ .totalItems = 3,
+ .maxShowed = 3,
+ .unk_10 = 0,
+ .unk_11 = 0,
+ .unk_12 = 8,
+ .cursor_Y = 0,
+ .upText_Y = 1,
+ .cursorColor = 2,
+ .fillColor = 1,
+ .cursorShadowColor = 3,
+ .unk_16_0 = TRUE,
+ .spaceBetweenItems = 0,
+ .unk_16_7 = FALSE,
+ .unk_17_0 = 1
+};
+
+static const u8 *const sCompatibilityMessages[] =
+{
+ gDaycareText_GetAlongVeryWell,
+ gDaycareText_GetAlong,
+ gDaycareText_DontLikeOther,
+ gDaycareText_PlayOther
+};
+
+static const u8 sJapaneseEggNickname[] = _("タマゴ"); // "tamago" ("egg" in Japanese)
u8 *GetMonNick(struct Pokemon *mon, u8 *dest)
{
@@ -252,7 +303,7 @@ u16 TakePokemonFromDaycare(void)
return TakeSelectedPokemonMonFromDaycareShiftSlots(&gSaveBlock1Ptr->daycare, gSpecialVar_0x8004);
}
-u8 GetLevelAfterDaycareSteps(struct BoxPokemon *mon, u32 steps)
+static u8 GetLevelAfterDaycareSteps(struct BoxPokemon *mon, u32 steps)
{
struct BoxPokemon tempMon = *mon;
@@ -261,7 +312,7 @@ u8 GetLevelAfterDaycareSteps(struct BoxPokemon *mon, u32 steps)
return GetLevelFromBoxMonExp(&tempMon);
}
-u8 GetNumLevelsGainedFromSteps(struct DaycareMon *daycareMon)
+static u8 GetNumLevelsGainedFromSteps(struct DaycareMon *daycareMon)
{
u8 levelBefore;
u8 levelAfter;
@@ -271,7 +322,7 @@ u8 GetNumLevelsGainedFromSteps(struct DaycareMon *daycareMon)
return levelAfter - levelBefore;
}
-u8 GetNumLevelsGainedForDaycareMon(struct DaycareMon *daycareMon)
+static u8 GetNumLevelsGainedForDaycareMon(struct DaycareMon *daycareMon)
{
u8 numLevelsGained = GetNumLevelsGainedFromSteps(daycareMon);
ConvertIntToDecimalStringN(gStringVar2, numLevelsGained, STR_CONV_MODE_LEFT_ALIGN, 2);
@@ -347,7 +398,7 @@ static void ClearAllDaycareData(struct DayCare *daycare)
// Determines what the species of an Egg would be based on the given species.
// It determines this by working backwards through the evolution chain of the
// given species.
-u16 GetEggSpecies(u16 species)
+static u16 GetEggSpecies(u16 species)
{
int i, j, k;
bool8 found;
@@ -462,14 +513,14 @@ void TriggerPendingDaycareEgg(void)
_TriggerPendingDaycareEgg(&gSaveBlock1Ptr->daycare);
}
-void TriggerPendingDaycareMaleEgg(void)
+static void TriggerPendingDaycareMaleEgg(void)
{
_TriggerPendingDaycareMaleEgg(&gSaveBlock1Ptr->daycare);
}
// Removes the selected index from the given IV list and shifts the remaining
// elements to the left.
-void RemoveIVIndexFromList(u8 *ivs, u8 selectedIv)
+static void RemoveIVIndexFromList(u8 *ivs, u8 selectedIv)
{
s32 i, j;
u8 temp[NUM_STATS];
@@ -488,7 +539,7 @@ void RemoveIVIndexFromList(u8 *ivs, u8 selectedIv)
}
}
-void InheritIVs(struct Pokemon *egg, struct DayCare *daycare)
+static void InheritIVs(struct Pokemon *egg, struct DayCare *daycare)
{
u8 i;
u8 selectedIvs[3];
@@ -587,7 +638,7 @@ static u8 GetEggMoves(struct Pokemon *pokemon, u16 *eggMoves)
return numEggMoves;
}
-void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, struct BoxPokemon *mother)
+static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, struct BoxPokemon *mother)
{
u16 numSharedParentMoves;
u32 numLevelUpMoves;
@@ -675,7 +726,7 @@ void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, struct BoxP
}
}
-void RemoveEggFromDayCare(struct DayCare *daycare)
+static void RemoveEggFromDayCare(struct DayCare *daycare)
{
daycare->offspringPersonality = 0;
daycare->stepCounter = 0;
@@ -686,7 +737,7 @@ void RejectEggFromDayCare(void)
RemoveEggFromDayCare(&gSaveBlock1Ptr->daycare);
}
-void AlterEggSpeciesWithIncenseItem(u16 *species, struct DayCare *daycare)
+static void AlterEggSpeciesWithIncenseItem(u16 *species, struct DayCare *daycare)
{
u16 motherItem, fatherItem;
if (*species == SPECIES_WYNAUT || *species == SPECIES_AZURILL)
@@ -705,7 +756,7 @@ void AlterEggSpeciesWithIncenseItem(u16 *species, struct DayCare *daycare)
}
}
-void GiveVoltTackleIfLightBall(struct Pokemon *mon, struct DayCare *daycare)
+static void GiveVoltTackleIfLightBall(struct Pokemon *mon, struct DayCare *daycare)
{
u32 motherItem = GetBoxMonData(&daycare->mons[0].mon, MON_DATA_HELD_ITEM);
u32 fatherItem = GetBoxMonData(&daycare->mons[1].mon, MON_DATA_HELD_ITEM);
@@ -717,7 +768,7 @@ void GiveVoltTackleIfLightBall(struct Pokemon *mon, struct DayCare *daycare)
}
}
-u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parentSlots)
+static u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parentSlots)
{
u16 i;
u16 species[2];
@@ -762,7 +813,7 @@ u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parentSlots)
return eggSpecies;
}
-void _GiveEggFromDaycare(struct DayCare *daycare) // give_egg
+static void _GiveEggFromDaycare(struct DayCare *daycare) // give_egg
{
struct Pokemon egg;
u16 species;
@@ -813,7 +864,7 @@ void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation)
SetMonData(mon, MON_DATA_IS_EGG, &isEgg);
}
-void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare)
+static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare)
{
u32 personality;
u16 ball;
@@ -901,7 +952,7 @@ static bool8 IsEggPending(struct DayCare *daycare)
// gStringVar1 = first mon's nickname
// gStringVar2 = second mon's nickname
// gStringVar3 = first mon trainer's name
-void _GetDaycareMonNicknames(struct DayCare *daycare)
+static void _GetDaycareMonNicknames(struct DayCare *daycare)
{
u8 text[12];
if (GetBoxMonData(&daycare->mons[0].mon, MON_DATA_SPECIES) != 0)
@@ -952,7 +1003,7 @@ u8 GetDaycareState(void)
return 0;
}
-u8 GetDaycarePokemonCount(void)
+static u8 GetDaycarePokemonCount(void)
{
u8 ret = CountPokemonInDaycare(&gSaveBlock1Ptr->daycare);
if (ret)
@@ -979,7 +1030,7 @@ static bool8 EggGroupsOverlap(u16 *eggGroups1, u16 *eggGroups2)
return FALSE;
}
-u8 GetDaycareCompatibilityScore(struct DayCare *daycare)
+static u8 GetDaycareCompatibilityScore(struct DayCare *daycare)
{
u32 i;
u16 eggGroups[2][2];
@@ -1040,7 +1091,7 @@ u8 GetDaycareCompatibilityScore(struct DayCare *daycare)
}
}
-u8 GetDaycareCompatibilityScoreFromSave(void)
+static u8 GetDaycareCompatibilityScoreFromSave(void)
{
return GetDaycareCompatibilityScore(&gSaveBlock1Ptr->daycare);
}
@@ -1086,13 +1137,6 @@ bool8 NameHasGenderSymbol(const u8 *name, u8 genderRatio)
return FALSE;
}
-extern const u8 gText_MaleSymbol4[];
-extern const u8 gText_FemaleSymbol4[];
-extern const u8 gText_GenderlessSymbol[];
-extern const u8 gText_NewLine2[];
-extern const u8 gText_Exit4[];
-extern const u8 gText_Lv[];
-
static u8 *AppendGenderSymbol(u8 *name, u8 gender)
{
if (gender == MON_MALE)
@@ -1109,7 +1153,7 @@ static u8 *AppendGenderSymbol(u8 *name, u8 gender)
return StringAppend(name, gText_GenderlessSymbol);
}
-u8 *AppendMonGenderSymbol(u8 *name, struct BoxPokemon *boxMon)
+static u8 *AppendMonGenderSymbol(u8 *name, struct BoxPokemon *boxMon)
{
return AppendGenderSymbol(name, GetBoxMonGender(boxMon));
}
@@ -1150,7 +1194,7 @@ static void GetDaycareLevelMenuLevelText(struct DayCare *daycare, u8 *dest)
}
}
-void DaycareAddTextPrinter(u8 windowId, const u8 *text, u32 x, u32 y)
+static void DaycareAddTextPrinter(u8 windowId, const u8 *text, u32 x, u32 y)
{
struct TextSubPrinter printer;
@@ -1172,7 +1216,7 @@ void DaycareAddTextPrinter(u8 windowId, const u8 *text, u32 x, u32 y)
AddTextPrinter(&printer, 0xFF, NULL);
}
-void DaycarePrintMonNick(struct DayCare *daycare, u8 windowId, u32 daycareSlotId, u32 y)
+static void DaycarePrintMonNick(struct DayCare *daycare, u8 windowId, u32 daycareSlotId, u32 y)
{
u8 nick[POKEMON_NAME_LENGTH * 2];
@@ -1181,7 +1225,7 @@ void DaycarePrintMonNick(struct DayCare *daycare, u8 windowId, u32 daycareSlotId
DaycareAddTextPrinter(windowId, nick, 8, y);
}
-void DaycarePrintMonLvl(struct DayCare *daycare, u8 windowId, u32 daycareSlotId, u32 y)
+static void DaycarePrintMonLvl(struct DayCare *daycare, u8 windowId, u32 daycareSlotId, u32 y)
{
u8 level;
u32 x;
@@ -1196,9 +1240,9 @@ void DaycarePrintMonLvl(struct DayCare *daycare, u8 windowId, u32 daycareSlotId,
DaycareAddTextPrinter(windowId, lvlText, x, y);
}
-void DaycarePrintMonInfo(u8 windowId, u32 daycareSlotId, u8 y)
+static void DaycarePrintMonInfo(u8 windowId, s32 daycareSlotId, u8 y)
{
- if (daycareSlotId < DAYCARE_MON_COUNT)
+ if (daycareSlotId < (unsigned) DAYCARE_MON_COUNT)
{
DaycarePrintMonNick(&gSaveBlock1Ptr->daycare, windowId, daycareSlotId, y);
DaycarePrintMonLvl(&gSaveBlock1Ptr->daycare, windowId, daycareSlotId, y);
@@ -1208,7 +1252,7 @@ void DaycarePrintMonInfo(u8 windowId, u32 daycareSlotId, u8 y)
#define tMenuListTaskId data[0]
#define tWindowId data[1]
-void Task_HandleDaycareLevelMenuInput(u8 taskId)
+static void Task_HandleDaycareLevelMenuInput(u8 taskId)
{
u32 var = ListMenuHandleInput(gTasks[taskId].tMenuListTaskId);
diff --git a/src/decoration.c b/src/decoration.c
index 37cabf652..1527ce378 100644
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -1,5 +1,3 @@
-
-// Includes
#include "global.h"
#include "decompress.h"
#include "malloc.h"
@@ -68,27 +66,27 @@ struct DecorRearrangementDataBuffer {
// Static RAM declarations
EWRAM_DATA u8 *gCurDecorInventoryItems = NULL;
-EWRAM_DATA u8 sSecretBasePCMenuCursorPos = 0;
-EWRAM_DATA u8 sCurDecorCatCount = 0;
-EWRAM_DATA u8 sSecretBaseItemsIndicesBuffer[16] = {};
-EWRAM_DATA u8 sPlayerRoomItemsIndicesBuffer[12] = {};
-EWRAM_DATA u16 sSecretBasePCSelectDecorLineNo = 0;
-EWRAM_DATA u16 sSecretBasePCSelectDecorPageNo = 0;
+EWRAM_DATA static u8 sSecretBasePCMenuCursorPos = 0;
+EWRAM_DATA static u8 sCurDecorCatCount = 0;
+EWRAM_DATA static u8 sSecretBaseItemsIndicesBuffer[16] = {};
+EWRAM_DATA static u8 sPlayerRoomItemsIndicesBuffer[12] = {};
+EWRAM_DATA static u16 sSecretBasePCSelectDecorLineNo = 0;
+EWRAM_DATA static u16 sSecretBasePCSelectDecorPageNo = 0;
EWRAM_DATA u8 gCurDecorationIndex = 0;
-EWRAM_DATA u8 sCurDecorationCategory = DECORCAT_DESK;
-EWRAM_DATA u32 filler_0203a174[2] = {};
+EWRAM_DATA static u8 sCurDecorationCategory = DECORCAT_DESK;
+EWRAM_DATA static u32 filler_0203a174[2] = {};
EWRAM_DATA struct DecorPCPointers gUnknown_0203A17C = {};
-EWRAM_DATA u8 sDecorMenuWindowIndices[4] = {};
+EWRAM_DATA static u8 sDecorMenuWindowIndices[4] = {};
EWRAM_DATA struct DecorPCBuffer *sDecorPCBuffer = NULL;
EWRAM_DATA struct PlaceDecorationGraphicsDataBuffer sPlaceDecorationGraphicsDataBuffer = {};
-EWRAM_DATA u16 sCurDecorMapX = 0;
-EWRAM_DATA u16 sCurDecorMapY = 0;
-EWRAM_DATA u8 sDecor_CameraSpriteObjectIdx1 = 0;
-EWRAM_DATA u8 sDecor_CameraSpriteObjectIdx2 = 0;
-EWRAM_DATA u8 sDecorationLastDirectionMoved = 0;
-EWRAM_DATA struct OamData sDecorSelectorOam = {};
-EWRAM_DATA struct DecorRearrangementDataBuffer sDecorRearrangementDataBuffer[16] = {};
-EWRAM_DATA u8 sCurDecorSelectedInRearrangement = 0;
+EWRAM_DATA static u16 sCurDecorMapX = 0;
+EWRAM_DATA static u16 sCurDecorMapY = 0;
+EWRAM_DATA static u8 sDecor_CameraSpriteObjectIdx1 = 0;
+EWRAM_DATA static u8 sDecor_CameraSpriteObjectIdx2 = 0;
+EWRAM_DATA static u8 sDecorationLastDirectionMoved = 0;
+EWRAM_DATA static struct OamData sDecorSelectorOam = {};
+EWRAM_DATA static struct DecorRearrangementDataBuffer sDecorRearrangementDataBuffer[16] = {};
+EWRAM_DATA static u8 sCurDecorSelectedInRearrangement = 0;
// Static ROM declarations
@@ -800,9 +798,9 @@ void sub_8127330(u8 taskId)
sDecorPCBuffer->items[i].unk_04 = -2;
gUnknown_03006310 = gUnknown_085A6BD0;
gUnknown_03006310.unk_10 = sDecorMenuWindowIndices[1];
- gUnknown_03006310.unk_0c = sDecorPCBuffer->unk_520;
- gUnknown_03006310.unk_00 = sDecorPCBuffer->items;
- gUnknown_03006310.unk_0e = sDecorPCBuffer->unk_521;
+ gUnknown_03006310.totalItems = sDecorPCBuffer->unk_520;
+ gUnknown_03006310.items = sDecorPCBuffer->items;
+ gUnknown_03006310.maxShowed = sDecorPCBuffer->unk_521;
}
void sub_8127454(u8 *dest, u16 decorId)
diff --git a/src/secret_base.c b/src/secret_base.c
index 89e276e80..de2b7221a 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -1099,9 +1099,9 @@ void game_continue(u8 taskId)
}
gUnknown_03006310 = gUnknown_0858D07C;
gUnknown_03006310.unk_10 = data[6];
- gUnknown_03006310.unk_0c = data[0];
- gUnknown_03006310.unk_00 = gUnknown_0203A020->items;
- gUnknown_03006310.unk_0e = data[3];
+ gUnknown_03006310.totalItems = data[0];
+ gUnknown_03006310.items = gUnknown_0203A020->items;
+ gUnknown_03006310.maxShowed = data[3];
}
void sub_80E9DEC(u32 a0, bool8 flag, struct ListMenu *menu)
@@ -1866,7 +1866,7 @@ void sub_80EAF80(void *records, size_t recordSize, u8 linkIdx)
{
struct SecretBaseRecordMixer mixers[3];
u16 i;
-
+
if (FlagGet(0x60))
{
switch (GetLinkPlayerCount())