mpsetups: increased max name length to 18

This commit is contained in:
Raf committed 2025-03-27 01:01:46 +08:00
1 parent ad9ed9ff3b
commit 3d75365f2b
10 files changed
+47 -27

No files matched your search

+4 -4
View File
@@ -35,7 +35,7 @@ s16 g_MpCurrentSetup = -1;
memcpy(buf, src, size); \
buf += size; }
// #### Rename setup dialogue
// #### Rename setup dialog
MenuItemHandlerResult menuhandlerRenameSetup(s32 operation, struct menuitem *item, union handlerdata *data)
{
char *name = data->keyboard.string;
@@ -80,10 +80,10 @@ struct menuitem g_RenameSetupItems[] = {
#endif
{
MENUITEMTYPE_KEYBOARD,
18,
0,
0,
0,
0,
1,
menuhandlerRenameSetup,
},
{ MENUITEMTYPE_END },
@@ -181,7 +181,7 @@ struct menuitem g_MpManageSettingsListItems[] = {
MENUITEMTYPE_LIST,
0,
0,
0x00000078,
160,
0x00000042,
mpSelectSettingHandler,
},
+3
View File
@@ -400,6 +400,8 @@ struct mpconfigfull *challengeLoadConfig(s32 confignum, u8 *buffer, s32 len)
extern struct mpstrings EXT_SEG _mpstringsSSegmentRomEnd;
extern struct mpstrings EXT_SEG _mpstringsISegmentRomEnd;
extern struct mpconfig g_MpConfigs[];
BTYPE banks[][2] = {
{ (BTYPE)REF_SEG _mpstringsESegmentRomStart, (BTYPE)REF_SEG _mpstringsESegmentRomEnd },
{ (BTYPE)REF_SEG _mpstringsJSegmentRomStart, (BTYPE)REF_SEG _mpstringsJSegmentRomEnd },
@@ -421,6 +423,7 @@ struct mpconfigfull *challengeLoadConfig(s32 confignum, u8 *buffer, s32 len)
bank = banks[language_id][0];
loadedstrings = dmaExecWithAutoAlign(buffer2, bank + confignum * sizeof(struct mpstrings), sizeof(struct mpstrings));
mpconfig->config = g_MpConfigs[confignum];
mpconfig->strings = *loadedstrings;
return mpconfig;
+4 -3
View File
@@ -1529,6 +1529,7 @@ bool menuitemKeyboardTick(struct menuitem *item, struct menuinputs *inputs, u32
inputs->start = false;
}
u8 maxlen = item->param == 0 ? 10 : item->param;
#ifndef PLATFORM_N64
if (g_MenuKeyboardPlayer == g_MpPlayerNum) {
// match caps state to keyboard shift/caps if typing with keyboard
@@ -1540,7 +1541,7 @@ bool menuitemKeyboardTick(struct menuitem *item, struct menuinputs *inputs, u32
// handle text input
s32 prevpos = strlen(kb->string);
s32 pos = prevpos;
s32 result = inputTextHandler(kb->string, sizeof(kb->string), &pos, true);
s32 result = inputTextHandler(kb->string, maxlen-1, &pos, true);
if (result == -1) {
// cancel
kb->row = 5;
@@ -1617,7 +1618,7 @@ bool menuitemKeyboardTick(struct menuitem *item, struct menuinputs *inputs, u32
s32 textwidth;
s32 textheight;
if (kb->string[9] == '\0') {
if (kb->string[maxlen-1] == '\0') {
// String is not full
i = 0;
@@ -1653,7 +1654,7 @@ bool menuitemKeyboardTick(struct menuitem *item, struct menuinputs *inputs, u32
// Handle deleting
if (delete && kb->string[0] != '\0') {
s32 deleted = false;
s32 i = 10;
s32 i = maxlen;
menuPlaySound(MENUSOUND_FOCUS);
File renamed without changes.
+2 -2
View File
@@ -3918,7 +3918,7 @@ void mpsetupfileLoadWad(struct savebuffer *buffer)
s32 i;
s32 j;
savebufferReadString(buffer, g_MpSetup.name, false);
savebufferReadString_ext(buffer, g_MpSetup.name, false, MPSETUP_MAXSETUPS+1);
savebufferReadBits(buffer, 4);
g_MpSetup.stagenum = savebufferReadBits(buffer, 7);
@@ -3973,7 +3973,7 @@ void mpsetupfileSaveWad(struct savebuffer *buffer)
s32 mpbodynum;
s32 i;
func0f0d55a4(buffer, g_MpSetup.name);
func0f0d55a4_ext(buffer, g_MpSetup.name, MPSETUP_MAXSETUPS+1);
for (i = 0; i < MAX_BOTS; i++) {
if (g_MpSetup.chrslots & (1 << (i + 4))) {
+5 -6
View File
@@ -1098,10 +1098,10 @@ struct menuitem g_MpSaveSetupNameMenuItems[] = {
#endif
{
MENUITEMTYPE_KEYBOARD,
MPSETUP_MAXNAME,
0,
0,
0,
0,
1,
menuhandlerMpSetupName,
},
{ MENUITEMTYPE_END },
@@ -2254,8 +2254,7 @@ MenuItemHandlerResult mpLoadSettingsMenuHandler(s32 operation, struct menuitem *
{
switch (operation) {
case MENUOP_GETOPTIONCOUNT:
data->list.value = mpGetNumUnlockedPresets();
data->list.value += g_MpSetupFile.numsetups;
data->list.value = mpGetNumUnlockedPresets() + g_MpSetupFile.numsetups;
break;
case MENUOP_GETOPTIONTEXT:
if (data->list.value < mpGetNumUnlockedPresets()) {
@@ -2263,7 +2262,7 @@ MenuItemHandlerResult mpLoadSettingsMenuHandler(s32 operation, struct menuitem *
}
if (g_MpSetupFile.numsetups > 0) {
struct setupblock *block = &g_MpSetupFile.setups[data->list.value - mpGetNumUnlockedPresets()];
func0f0d564c(block->bytes, g_StringPointer, false);
func0f0d564c_ext(block->bytes, g_StringPointer, false, MPSETUP_MAXSETUPS+1);
return (uintptr_t)g_StringPointer;
}
break;
@@ -2618,7 +2617,7 @@ struct menuitem g_MpLoadSettingsMenuItems[] = {
MENUITEMTYPE_LIST,
0,
0,
0x00000078,
160,
0x00000042,
mpLoadSettingsMenuHandler,
},
+22 -7
View File
@@ -481,13 +481,13 @@ void func0f0d54c4(struct savebuffer *buffer)
* Read a zero-terminated string from the buffer and move the buffer's internal
* pointer past the end of the string.
*/
void savebufferReadString(struct savebuffer *buffer, char *dst, bool addlinebreak)
void savebufferReadString_ext(struct savebuffer *buffer, char *dst, bool addlinebreak, u8 len)
{
bool foundnull = false;
s32 index = 0;
s32 i;
for (i = 0; i < 10; i++) {
for (i = 0; i < len; i++) {
s32 byte = savebufferReadBits(buffer, 8);
if (!foundnull) {
@@ -509,12 +509,17 @@ void savebufferReadString(struct savebuffer *buffer, char *dst, bool addlinebrea
dst[index] = '\0';
}
void func0f0d55a4(struct savebuffer *buffer, char *src)
void savebufferReadString(struct savebuffer *buffer, char *dst, bool addlinebreak)
{
savebufferReadString_ext(buffer, dst, addlinebreak, 10);
}
void func0f0d55a4_ext(struct savebuffer *buffer, char *src, u8 len)
{
bool done = false;
s32 i;
for (i = 0; i < 10; i++) {
for (i = 0; i < len; i++) {
if (!done) {
if (src[i] == '\0') {
done = true;
@@ -532,12 +537,22 @@ void func0f0d55a4(struct savebuffer *buffer, char *src)
}
}
void func0f0d564c(u8 *data, char *dst, bool addlinebreak)
void func0f0d55a4(struct savebuffer *buffer, char *src)
{
func0f0d55a4_ext(buffer, src, 10);
}
void func0f0d564c_ext(u8 *data, char *dst, bool addlinebreak, u8 len)
{
struct savebuffer buffer;
savebufferWriteData(&buffer, data, 10);
savebufferReadString(&buffer, dst, addlinebreak);
savebufferWriteData(&buffer, data, len);
savebufferReadString_ext(&buffer, dst, addlinebreak, len);
}
void func0f0d564c(u8 *data, char *dst, bool addlinebreak)
{
func0f0d564c_ext(data, dst, addlinebreak, 10);
}
#if VERSION >= VERSION_NTSC_1_0
+2 -3
View File
@@ -4754,9 +4754,8 @@ enum weaponnum {
#define EXTRA_SLEEP_TIME 1000LL // 100us
#define MPSETUP_MAXSETUPS 100
#define MPSETUP_MAXGROUPS 100
#define MPSETUP_MAXGROUPNAME 33
#define MPSETUP_MAXSETUPS 128
#define MPSETUP_MAXNAME 18
#define MPSETUP_BLOCKSIZE 64
#endif
+3
View File
@@ -17,8 +17,11 @@ u32 savebufferReadBits(struct savebuffer *buffer, s32 offset);
void savebufferClear(struct savebuffer *buffer);
void savebufferWriteData(struct savebuffer *buffer, u8 *data, u8 len);
void func0f0d54c4(struct savebuffer *buffer);
void savebufferReadString_ext(struct savebuffer *buffer, char *dst, bool addlinebreak, u8 len);
void savebufferReadString(struct savebuffer *buffer, char *dst, bool addlinebreak);
void func0f0d55a4_ext(struct savebuffer *buffer, char *src, u8 len);
void func0f0d55a4(struct savebuffer *buffer, char *src);
void func0f0d564c_ext(u8 *data, char *dst, bool addlinebreak, u8 len);
void func0f0d564c(u8 *data, char *dst, bool addlinebreak);
void func0f0d5690(u8 *dst, char *buffer);
void savebufferWriteGuid(struct savebuffer *buffer, struct fileguid *guid);
+2 -2
View File
@@ -3295,7 +3295,7 @@ struct menuitemdata_dropdown {
};
struct menuitemdata_keyboard {
char string[11];
char string[MPSETUP_MAXNAME+1];
s8 col;
s8 row;
u8 capslock : 1; // Pressed A on caps button
@@ -4080,7 +4080,7 @@ struct missionconfig {
};
struct mpsetup {
/*0x800acb88*/ char name[12];
/*0x800acb88*/ char name[MPSETUP_MAXNAME+1];
/*0x800acb94*/ u32 options;
/*0x800acb98*/ u8 scenario;
/*0x800acb99*/ u8 stagenum;