bool net_handle_ServerWelcome()
{
- campaign = ReadByte();
+ int flags = ReadByte();
+
+ campaign = flags & 1;
if (campaign)
{
int campaign_level = ReadByte();
strcpy(hostname, ReadString());
string hostversion = ReadString();
- bool version_mismatch = ReadByte();
- bool version_check = ReadByte();
+ bool version_mismatch = flags & 2;
+ bool version_check = flags & 4;
+ MapInfo_Map_titlestring = ReadString();
+ MapInfo_Map_author = flags & 8 ? ReadString() : "";
srv_minplayers = ReadByte();
srv_maxplayers = ReadByte();
string modifications = translate_modifications(ReadString());
msg = strcat(msg, "\n\n", _("Gametype:"), " ^1", MapInfo_Type_ToText(gametype), "\n");
- msg = strcat(msg, "\n", _("Map:"), " ^2");
- if (world.message == "")
- msg = strcat(msg, mi_shortname, "\n");
- else
- {
- int i = strstrofs(world.message, " by ", 0); // matches _MapInfo_Generate()
- string longname = i >= 0 ? substring(world.message, 0, i) : world.message;
- msg = strcat(msg, (strcasecmp(longname, mi_shortname) ? strcat(mi_shortname, " ^7// ^2") : ""), longname, "\n");
- }
+ msg = strcat(msg, "\n", _("Map:"), " ", MapInfo_Map_titlestring, "\n");
+ if (flags & 8)
+ msg = strcat(msg, "^9", _("by:"), " ", MapInfo_Map_author, "\n");
if (srv_minplayers || srv_maxplayers)
{