forked from Ports/perfect_dark
mpsetups: increased max name length to 18
This commit is contained in:
1 parent
ad9ed9ff3b
commit
3d75365f2b
10 files changed
+47
-27
No files matched your search
+4
-4
@@ -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,
|
||||
},
|
||||
|
||||
@@ -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
@@ -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.
@@ -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))) {
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
Reference in new issue
Block a user