Skip to content

Commit

Permalink
Add map default team setups, stored in a new 'map.ini' file. Added de…
Browse files Browse the repository at this point in the history
…faults for

fishnet, bananas, beggars and concrete.
  • Loading branch information
perim committed Nov 8, 2012
1 parent a154378 commit 3061266
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 0 deletions.
5 changes: 5 additions & 0 deletions data/mp/multiplay/maps/4c-fishnet/map.ini
@@ -0,0 +1,5 @@
[teams]
player_0 = 1
player_1 = 2
player_2 = 2
player_3 = 1
9 changes: 9 additions & 0 deletions data/mp/multiplay/maps/8c-bananas/map.ini
@@ -0,0 +1,9 @@
[teams]
player_0 = 1
player_1 = 2
player_2 = 1
player_3 = 2
player_4 = 2
player_5 = 1
player_6 = 1
player_7 = 2
9 changes: 9 additions & 0 deletions data/mp/multiplay/maps/8c-beggarskanyon/map.ini
@@ -0,0 +1,9 @@
[teams]
player_0 = 1
player_1 = 1
player_2 = 1
player_3 = 1
player_4 = 2
player_5 = 2
player_6 = 2
player_7 = 2
9 changes: 9 additions & 0 deletions data/mp/multiplay/maps/8c-concreteplayground/map.ini
@@ -0,0 +1,9 @@
[teams]
player_0 = 1
player_1 = 2
player_2 = 2
player_3 = 2
player_4 = 1
player_5 = 1
player_6 = 1
player_7 = 2
25 changes: 25 additions & 0 deletions src/multiint.cpp
Expand Up @@ -418,6 +418,30 @@ static void loadEmptyMapPreview()
free(imageData);
}

static void loadMapSettings()
{
char aFileName[256];
LEVEL_DATASET *psLevel = levFindDataSet(game.map, &game.hash);
ASSERT_OR_RETURN(, psLevel, "No level found for %s", game.map);
sstrcpy(aFileName, psLevel->apDataFiles[0]);
aFileName[strlen(aFileName) - 4] = '\0';
sstrcat(aFileName, "/map.ini");
if (PHYSFS_exists(aFileName))
{
WzConfig ini(aFileName);
ini.beginGroup("teams");
for (int i = 0; i < MAX_PLAYERS; i++)
{
QString key("player_" + QString::number(i));
if (ini.contains(key))
{
NetPlay.players[i].team = ini.value(key).toInt() - 1;
}
}
ini.endGroup();
}
}

/// Loads the entire map just to show a picture of it
void loadMapPreview(bool hideInterface)
{
Expand Down Expand Up @@ -3002,6 +3026,7 @@ static void processMultiopWidgets(UDWORD id)
disableMultiButs();

addPlayerBox(!ingame.bHostSetup || bHosted); //to make sure host can't skip player selection menu (sets game.skdiff to UBYTE_MAX for humans)
loadMapSettings();
break;

case MULTIOP_CHATEDIT:
Expand Down

0 comments on commit 3061266

Please sign in to comment.