Use ntstring for mission_name

This commit is contained in:
Kp 2014-12-22 04:35:48 +00:00
parent 03370ed3e5
commit ac1340e3c9
3 changed files with 16 additions and 14 deletions

View file

@ -69,7 +69,7 @@ struct mle
{
std::string::const_iterator filename; // filename without extension
int builtin_hogsize; // if it's the built-in mission, used for determining the version
char mission_name[MISSION_NAME_LEN+1];
ntstring<MISSION_NAME_LEN> mission_name;
#if defined(DXX_BUILD_DESCENT_II)
ubyte descent_version; // descent 1 or descent 2?
#endif
@ -203,7 +203,7 @@ static int load_mission_d1(void)
static int load_mission_shareware(void)
{
strcpy(Current_mission->mission_name, SHAREWARE_MISSION_NAME);
Current_mission->mission_name.copy_if(SHAREWARE_MISSION_NAME);
Current_mission->descent_version = 2;
Current_mission->anarchy_only_flag = 0;
@ -256,7 +256,7 @@ static int load_mission_shareware(void)
static int load_mission_oem(void)
{
strcpy(Current_mission->mission_name, OEM_MISSION_NAME);
Current_mission->mission_name.copy_if(OEM_MISSION_NAME);
Current_mission->descent_version = 2;
Current_mission->anarchy_only_flag = 0;
@ -394,9 +394,7 @@ static int read_mission_file(mission_list &mission_list, const char *filename, e
t = p + strlen(p)-1;
while (isspace(*t))
*t-- = 0; // remove trailing whitespace
if (strlen(p) > MISSION_NAME_LEN)
p[MISSION_NAME_LEN] = 0;
strncpy(mission->mission_name, p, MISSION_NAME_LEN + 1);
mission->mission_name.copy_if(p, mission->mission_name.size() - 1);
}
else {
PHYSFS_close(mfile);
@ -441,13 +439,13 @@ static void add_d1_builtin_mission_to_list(mission_list &mission_list)
case D1_SHAREWARE_10_MISSION_HOGSIZE:
case D1_MAC_SHARE_MISSION_HOGSIZE:
mission->path = D1_MISSION_FILENAME;
strcpy(mission->mission_name, D1_SHAREWARE_MISSION_NAME);
mission->mission_name.copy_if(D1_SHAREWARE_MISSION_NAME);
mission->anarchy_only_flag = 0;
break;
case D1_OEM_MISSION_HOGSIZE:
case D1_OEM_10_MISSION_HOGSIZE:
mission->path = D1_MISSION_FILENAME;
strcpy(mission->mission_name, D1_OEM_MISSION_NAME);
mission->mission_name.copy_if(D1_OEM_MISSION_NAME);
mission->anarchy_only_flag = 0;
break;
default:
@ -459,7 +457,7 @@ static void add_d1_builtin_mission_to_list(mission_list &mission_list)
case D1_10_MISSION_HOGSIZE:
case D1_MAC_MISSION_HOGSIZE:
mission->path = D1_MISSION_FILENAME;
strcpy(mission->mission_name, D1_MISSION_NAME);
mission->mission_name.copy_if(D1_MISSION_NAME);
mission->anarchy_only_flag = 0;
break;
}
@ -482,7 +480,7 @@ static void set_hardcoded_mission(mission_list &mission_list, const char (&path)
mle *mission = &mission_list.back();
mission->path = path;
mission->filename = begin(mission->path);
strcpy(mission->mission_name,mission_name);
mission->mission_name.copy_if(mission_name);
mission->anarchy_only_flag = 0;
}
@ -713,7 +711,7 @@ static int load_mission(const mle *mission)
#endif
Current_mission = make_unique<Mission>();
Current_mission->builtin_hogsize = mission->builtin_hogsize;
strcpy(Current_mission->mission_name, mission->mission_name);
Current_mission->mission_name = mission->mission_name;
#if defined(DXX_BUILD_DESCENT_II)
Current_mission->descent_version = mission->descent_version;
#endif

View file

@ -5354,7 +5354,7 @@ int net_udp_show_game_info()
#endif
#define GAME_INFO_FORMAT_TEXT(F) \
F("\nConnected to\n\"%s\"\n", netgame->game_name.data()) \
F("%s", netgame->mission_title ? netgame->mission_title : DXX_DEFAULT_MISSION_TITLE) \
F("%s", netgame->mission_title.data()) \
F(" - Lvl " DXX_SECRET_LEVEL_FORMAT "%i", DXX_SECRET_LEVEL_PARAMETER netgame->levelnum) \
F("\n\nDifficulty: %s", MENU_DIFFICULTY_TEXT(netgame->difficulty)) \
F("\nGame Mode: %s", gamemode < lengthof(GMNames) ? GMNames[gamemode] : "INVALID") \

View file

@ -1168,7 +1168,7 @@ int state_save_all_sub(const char *filename, const char *desc)
{
state_write_player(fp, Players[i]);
}
PHYSFS_write(fp, &Netgame.mission_title, sizeof(char), MISSION_NAME_LEN+1);
PHYSFS_write(fp, Netgame.mission_title.data(), Netgame.mission_title.size(), 1);
PHYSFS_write(fp, &Netgame.mission_name, sizeof(char), 9);
PHYSFS_write(fp, &Netgame.levelnum, sizeof(int), 1);
PHYSFS_write(fp, &Netgame.difficulty, sizeof(ubyte), 1);
@ -1780,7 +1780,11 @@ int state_restore_all_sub(const char *filename, int secret_restore)
}
}
}
PHYSFS_read(fp, &Netgame.mission_title, sizeof(char), MISSION_NAME_LEN+1);
{
array<char, MISSION_NAME_LEN + 1> a;
PHYSFS_read(fp, a.data(), a.size(), 1);
Netgame.mission_title.copy_if(a);
}
PHYSFS_read(fp, &Netgame.mission_name, sizeof(char), 9);
Netgame.levelnum = PHYSFSX_readSXE32(fp, swap);
PHYSFS_read(fp, &Netgame.difficulty, sizeof(ubyte), 1);