summaryrefslogtreecommitdiff
path: root/src/save_menu_util.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/save_menu_util.c')
-rw-r--r--src/save_menu_util.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/save_menu_util.c b/src/save_menu_util.c
new file mode 100644
index 000000000..195b29b0c
--- /dev/null
+++ b/src/save_menu_util.c
@@ -0,0 +1,58 @@
+#include "global.h"
+#include "string_util.h"
+#include "text.h"
+#include "event_data.h"
+#include "pokedex.h"
+#include "region_map.h"
+#include "save_menu_util.h"
+#include "constants/flags.h"
+
+void SaveStatToString(u8 gameStatId, u8 *dest0, u8 color)
+{
+ int nBadges;
+ int flagId;
+
+ u8 *dest = dest0;
+ *dest++ = EXT_CTRL_CODE_BEGIN;
+ *dest++ = EXT_CTRL_CODE_COLOR;
+ *dest++ = color;
+ *dest++ = EXT_CTRL_CODE_BEGIN;
+ *dest++ = EXT_CTRL_CODE_SHADOW;
+ *dest++ = color + 1;
+ switch (gameStatId)
+ {
+ case SAVE_STAT_NAME:
+ dest = StringCopy(dest, gSaveBlock2Ptr->playerName);
+ break;
+ case SAVE_STAT_POKEDEX:
+ if (IsNationalPokedexEnabled())
+ dest = ConvertIntToDecimalStringN(dest, GetNationalPokedexCount(1), STR_CONV_MODE_LEFT_ALIGN, 3);
+ else
+ dest = ConvertIntToDecimalStringN(dest, GetKantoPokedexCount(1), STR_CONV_MODE_LEFT_ALIGN, 3);
+ break;
+ case SAVE_STAT_TIME:
+ dest = ConvertIntToDecimalStringN(dest, gSaveBlock2Ptr->playTimeHours, STR_CONV_MODE_LEFT_ALIGN, 3);
+ *dest++ = CHAR_COLON;
+ dest = ConvertIntToDecimalStringN(dest, gSaveBlock2Ptr->playTimeMinutes, STR_CONV_MODE_LEADING_ZEROS, 2);
+ break;
+ case SAVE_STAT_TIME_HR_RT_ALIGN:
+ dest = ConvertIntToDecimalStringN(dest, gSaveBlock2Ptr->playTimeHours, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ *dest++ = CHAR_COLON;
+ dest = ConvertIntToDecimalStringN(dest, gSaveBlock2Ptr->playTimeMinutes, STR_CONV_MODE_LEADING_ZEROS, 2);
+ break;
+ case SAVE_STAT_LOCATION:
+ sub_80C4DF8(dest, gMapHeader.regionMapSectionId);
+ break;
+ case SAVE_STAT_BADGES:
+ for (flagId = FLAG_BADGE01_GET, nBadges = 0; flagId < FLAG_BADGE01_GET + 8; flagId++)
+ {
+ if (FlagGet(flagId))
+ nBadges++;
+ }
+ *dest++ = nBadges + CHAR_0;
+ *dest++ = 10; // 'こ'
+ *dest++ = EOS;
+ break;
+ }
+}
+