Skip to content

Commit 49c7dce

Browse files
committed
Settings - Allow saving/loading to/from memory card slot B
1 parent a0d6089 commit 49c7dce

File tree

7 files changed

+160
-75
lines changed

7 files changed

+160
-75
lines changed

ttyd-tools/rel/include/draw.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ void drawActionCommandsTiming();
142142
void drawEffsActive();
143143
void drawEvtsActive();
144144
void drawEnemyEncounterNotifier();
145+
void drawSettingsMemoryCardUsed();
145146
void drawSettingsCurrentWork();
146147

147148
void drawHeapArrayErrors();

ttyd-tools/rel/include/global.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,8 @@ enum STATS_FOLLOWER_SELECTION_OPTIONS
249249

250250
enum SETTINGS_OPTIONS
251251
{
252-
LOAD_SETTINGS = 1,
252+
CHANGE_MEMORY_CARD_SLOT = 1,
253+
LOAD_SETTINGS,
253254
SAVE_SETTINGS,
254255
};
255256

@@ -804,6 +805,7 @@ struct DisplayActionCommandsTiming
804805

805806
struct MemoryCardStruct
806807
{
808+
int32_t MemoryCardSlot;
807809
int32_t ReturnCode;
808810
const char *SettingsFileName;
809811
const char *SettingsDescription;

ttyd-tools/rel/include/memcard.h

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,24 @@
66

77
namespace mod {
88

9-
int32_t checkForMemoryCard();
9+
int32_t checkForMemoryCard(int32_t memoryCardSlot);
1010

11-
int32_t finishAsyncFunction(int32_t returnCode);
11+
int32_t finishAsyncFunction(int32_t memoryCardSlot, int32_t returnCode);
1212

13-
int32_t mountCard();
13+
int32_t mountCard(int32_t memoryCardSlot);
1414

15-
int32_t createFileOnCard(const char *fileName,
16-
uint32_t size, gc::card::CARDFileInfo *fileInfo);
15+
int32_t createFileOnCard(int32_t memoryCardSlot, const char *fileName, uint32_t size, gc::card::CARDFileInfo *fileInfo);
1716

18-
int32_t readFromFileOnCard(gc::card::CARDFileInfo *fileInfo,
19-
void *buffer, int32_t length, int32_t offset);
17+
int32_t readFromFileOnCard(int32_t memoryCardSlot, gc::card::CARDFileInfo *fileInfo, void *buffer, int32_t length, int32_t offset);
2018

21-
int32_t writeToFileOnCard(gc::card::CARDFileInfo *fileInfo,
22-
void *buffer, int32_t length, int32_t offset);
19+
int32_t writeToFileOnCard(int32_t memoryCardSlot, gc::card::CARDFileInfo *fileInfo, void *buffer, int32_t length, int32_t offset);
2320

24-
int32_t setFileStatus(int32_t fileNum, gc::card::CARDStat *stat);
21+
int32_t setFileStatus(int32_t memoryCardSlot, int32_t fileNum, gc::card::CARDStat *stat);
2522

26-
int32_t createSettingsFile(gc::card::CARDFileInfo *settingsFileInfo);
23+
int32_t createSettingsFile(int32_t memoryCardSlot, gc::card::CARDFileInfo *settingsFileInfo);
2724

28-
int32_t saveSettings();
25+
int32_t saveSettings(int32_t memoryCardSlot);
2926

30-
int32_t loadSettings();
27+
int32_t loadSettings(int32_t memoryCardSlot);
3128

3229
}

ttyd-tools/rel/source/draw.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
#include <gc/OSTime.h>
1111
#include <gc/OSError.h>
12+
#include <gc/card.h>
1213
#include <gc/gx.h>
1314
#include <gc/ppc.h>
1415
#include <gc/OSContext.h>
@@ -5483,6 +5484,33 @@ void drawEnemyEncounterNotifier()
54835484
drawTextAndInit(tempDisplayBuffer, PosX, PosY, Alpha, Color, true, Scale);
54845485
}
54855486

5487+
void drawSettingsMemoryCardUsed()
5488+
{
5489+
uint32_t Color = 0xFFFFFFFF;
5490+
int32_t PosX = -232;
5491+
int32_t PosY = 100;
5492+
float Scale = 0.6;
5493+
5494+
// Get the memory card slot being used
5495+
char CurrentMemoryCardSlot;
5496+
if (MenuSettings.MemoryCardSlot == CARD_SLOT_A)
5497+
{
5498+
CurrentMemoryCardSlot = 'A';
5499+
}
5500+
else
5501+
{
5502+
CurrentMemoryCardSlot = 'B';
5503+
}
5504+
5505+
// Draw the text
5506+
char *tempDisplayBuffer = DisplayBuffer;
5507+
sprintf(tempDisplayBuffer,
5508+
"Memory Card Slot\nSlot %c",
5509+
CurrentMemoryCardSlot);
5510+
5511+
drawText(tempDisplayBuffer, PosX, PosY, Color, Scale);
5512+
}
5513+
54865514
void drawSettingsCurrentWork()
54875515
{
54885516
const char *String;

ttyd-tools/rel/source/global.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1186,6 +1186,7 @@ const char *StatsFollowerOptionsLines[] =
11861186

11871187
const char *SettingsLines[] =
11881188
{
1189+
"Change Memory Card Slot",
11891190
"Load Settings",
11901191
"Save Settings",
11911192
};
@@ -2066,7 +2067,12 @@ void initMenuVars()
20662067
setInitialSettings();
20672068

20682069
// Load the custom settings from the settings file if it exists
2069-
loadSettings();
2070+
// Try both memory card slots
2071+
int32_t ReturnCode = loadSettings(CARD_SLOT_A);
2072+
if (ReturnCode != CARD_RESULT_READY)
2073+
{
2074+
loadSettings(CARD_SLOT_B);
2075+
}
20702076
}
20712077

20722078
void setInitialSettings()

0 commit comments

Comments
 (0)