}
}
+ // special case: check if network and preview player positions are redefined,
+ // to compare this later against the main menu level preview being redefined
+ struct TokenIntPtrInfo menu_config_players[] =
+ {
+ { "main.network_players.x", &menu.main.network_players.redefined },
+ { "main.network_players.y", &menu.main.network_players.redefined },
+ { "main.preview_players.x", &menu.main.preview_players.redefined },
+ { "main.preview_players.y", &menu.main.preview_players.redefined },
+ { "preview.x", &preview.redefined },
+ { "preview.y", &preview.redefined }
+ };
+
+ for (i = 0; i < ARRAY_SIZE(menu_config_players); i++)
+ *menu_config_players[i].value = FALSE;
+
+ for (i = 0; i < ARRAY_SIZE(menu_config_players); i++)
+ if (getHashEntry(setup_file_hash, menu_config_players[i].token) != NULL)
+ *menu_config_players[i].value = TRUE;
+
// read (and overwrite with) values that may be specified in config file
for (i = 0; image_config_vars[i].token != NULL; i++)
{
int tile_size; // special case for list of network players
int border_size; // special case for list of preview players
int vertical; // special case for list of preview players
+
+ boolean redefined; // redefined by custom artwork
};
struct MouseActionInfo
if (game_status != GAME_MODE_MAIN)
return;
+ // do not draw preview players if level preview redefined, but players aren't
+ if (preview.redefined && !menu.main.preview_players.redefined)
+ return;
+
boolean player_found[MAX_PLAYERS];
int num_players = 0;
int i, x, y;
if (!network.connected && !force)
return;
+ // do not draw network players if level preview redefined, but players aren't
+ if (preview.redefined && !menu.main.network_players.redefined)
+ return;
+
int num_players = 0;
int i;