Skip to content

Commit

Permalink
Add support for X player maps. You need flaME 1.10 or higher to make …
Browse files Browse the repository at this point in the history
…the new maps.

This adds support for 3,5,6 & 7 player maps.
  • Loading branch information
buginator committed Oct 12, 2010
1 parent 7970254 commit 7836d26
Show file tree
Hide file tree
Showing 14 changed files with 333 additions and 5 deletions.
18 changes: 18 additions & 0 deletions data/base/wrf/multi/skirmish3.wrf
@@ -0,0 +1,18 @@
//
// Skirmish Script loader.
//

directory "messages"
file SMSG "multiplay.txt"

directory "multiplay/skirmish"
file SCRIPT "rules.slo"
file SCRIPT "player0.slo"
file SCRIPT "player1.slo"
file SCRIPT "player2.slo"

directory "multiplay/skirmish"
file SCRIPTVAL "rules.vlo"
file SCRIPTVAL "player0.vlo"
file SCRIPTVAL "player1.vlo"
file SCRIPTVAL "player2.vlo"
22 changes: 22 additions & 0 deletions data/base/wrf/multi/skirmish5.wrf
@@ -0,0 +1,22 @@
//
// Skirmish Script loader.
//

directory "messages"
file SMSG "multiplay.txt"

directory "multiplay/skirmish"
file SCRIPT "rules.slo"
file SCRIPT "player0.slo"
file SCRIPT "player1.slo"
file SCRIPT "player2.slo"
file SCRIPT "player3.slo"
file SCRIPT "player4.slo"

directory "multiplay/skirmish"
file SCRIPTVAL "rules.vlo"
file SCRIPTVAL "player0.vlo"
file SCRIPTVAL "player1.vlo"
file SCRIPTVAL "player2.vlo"
file SCRIPTVAL "player3.vlo"
file SCRIPTVAL "player4.vlo"
24 changes: 24 additions & 0 deletions data/base/wrf/multi/skirmish6.wrf
@@ -0,0 +1,24 @@
//
// Skirmish Script loader.
//

directory "messages"
file SMSG "multiplay.txt"

directory "multiplay/skirmish"
file SCRIPT "rules.slo"
file SCRIPT "player0.slo"
file SCRIPT "player1.slo"
file SCRIPT "player2.slo"
file SCRIPT "player3.slo"
file SCRIPT "player4.slo"
file SCRIPT "player5.slo"

directory "multiplay/skirmish"
file SCRIPTVAL "rules.vlo"
file SCRIPTVAL "player0.vlo"
file SCRIPTVAL "player1.vlo"
file SCRIPTVAL "player2.vlo"
file SCRIPTVAL "player3.vlo"
file SCRIPTVAL "player4.vlo"
file SCRIPTVAL "player5.vlo"
26 changes: 26 additions & 0 deletions data/base/wrf/multi/skirmish7.wrf
@@ -0,0 +1,26 @@
//
// Skirmish Script loader.
//

directory "messages"
file SMSG "multiplay.txt"

directory "multiplay/skirmish"
file SCRIPT "rules.slo"
file SCRIPT "player0.slo"
file SCRIPT "player1.slo"
file SCRIPT "player2.slo"
file SCRIPT "player3.slo"
file SCRIPT "player4.slo"
file SCRIPT "player5.slo"
file SCRIPT "player6.slo"

directory "multiplay/skirmish"
file SCRIPTVAL "rules.vlo"
file SCRIPTVAL "player0.vlo"
file SCRIPTVAL "player1.vlo"
file SCRIPTVAL "player2.vlo"
file SCRIPTVAL "player3.vlo"
file SCRIPTVAL "player4.vlo"
file SCRIPTVAL "player5.vlo"
file SCRIPTVAL "player6.vlo"
21 changes: 21 additions & 0 deletions data/mp/wrf/multi/t2-skirmish3.wrf
@@ -0,0 +1,21 @@
directory "messages"
file SMSG "multiplay.txt"

directory "multiplay/skirmish"
file SCRIPT "rules.slo"
file SCRIPT "sktech.slo"
file SCRIPT "player0.slo"
file SCRIPT "player1.slo"
file SCRIPT "player2.slo"

directory "multiplay/skirmish"
file SCRIPTVAL "rules.vlo"
file SCRIPTVAL "sk2tech.vlo"
file SCRIPTVAL "player0.vlo"
file SCRIPTVAL "player1.vlo"
file SCRIPTVAL "player2.vlo"

directory "multiplay/script"
file SCRIPT "scavfact.slo"
file SCRIPTVAL "scavfact.vlo"

22 changes: 22 additions & 0 deletions data/mp/wrf/multi/t2-skirmish5.wrf
@@ -0,0 +1,22 @@
directory "messages"
file SMSG "multiplay.txt"

directory "multiplay/skirmish"
file SCRIPT "rules.slo"
file SCRIPT "sktech.slo"
file SCRIPT "player0.slo"
file SCRIPT "player1.slo"
file SCRIPT "player2.slo"
file SCRIPT "player3.slo"
file SCRIPT "player4.slo"


directory "multiplay/skirmish"
file SCRIPTVAL "rules.vlo"
file SCRIPTVAL "sk2tech.vlo"
file SCRIPTVAL "player0.vlo"
file SCRIPTVAL "player1.vlo"
file SCRIPTVAL "player2.vlo"
file SCRIPTVAL "player3.vlo"
file SCRIPTVAL "player4.vlo"

24 changes: 24 additions & 0 deletions data/mp/wrf/multi/t2-skirmish6.wrf
@@ -0,0 +1,24 @@
directory "messages"
file SMSG "multiplay.txt"

directory "multiplay/skirmish"
file SCRIPT "rules.slo"
file SCRIPT "sktech.slo"
file SCRIPT "player0.slo"
file SCRIPT "player1.slo"
file SCRIPT "player2.slo"
file SCRIPT "player3.slo"
file SCRIPT "player4.slo"
file SCRIPT "player5.slo"


directory "multiplay/skirmish"
file SCRIPTVAL "rules.vlo"
file SCRIPTVAL "sk2tech.vlo"
file SCRIPTVAL "player0.vlo"
file SCRIPTVAL "player1.vlo"
file SCRIPTVAL "player2.vlo"
file SCRIPTVAL "player3.vlo"
file SCRIPTVAL "player4.vlo"
file SCRIPTVAL "player5.vlo"

26 changes: 26 additions & 0 deletions data/mp/wrf/multi/t2-skirmish7.wrf
@@ -0,0 +1,26 @@
directory "messages"
file SMSG "multiplay.txt"

directory "multiplay/skirmish"
file SCRIPT "rules.slo"
file SCRIPT "sktech.slo"
file SCRIPT "player0.slo"
file SCRIPT "player1.slo"
file SCRIPT "player2.slo"
file SCRIPT "player3.slo"
file SCRIPT "player4.slo"
file SCRIPT "player5.slo"
file SCRIPT "player6.slo"


directory "multiplay/skirmish"
file SCRIPTVAL "rules.vlo"
file SCRIPTVAL "sk2tech.vlo"
file SCRIPTVAL "player0.vlo"
file SCRIPTVAL "player1.vlo"
file SCRIPTVAL "player2.vlo"
file SCRIPTVAL "player3.vlo"
file SCRIPTVAL "player4.vlo"
file SCRIPTVAL "player5.vlo"
file SCRIPTVAL "player6.vlo"

23 changes: 23 additions & 0 deletions data/mp/wrf/multi/t3-skirmish3.wrf
@@ -0,0 +1,23 @@
directory "messages"
file SMSG "multiplay.txt"

directory "multiplay/skirmish"
file SCRIPT "rules.slo"
file SCRIPT "sktech.slo"
file SCRIPT "player0.slo"
file SCRIPT "player1.slo"
file SCRIPT "player2.slo"


directory "multiplay/skirmish"
file SCRIPTVAL "rules.vlo"
file SCRIPTVAL "sk3tech.vlo"
file SCRIPTVAL "player0.vlo"
file SCRIPTVAL "player1.vlo"
file SCRIPTVAL "player2.vlo"


directory "multiplay/script"
file SCRIPT "scavfact.slo"
file SCRIPTVAL "scavfact.vlo"

21 changes: 21 additions & 0 deletions data/mp/wrf/multi/t3-skirmish5.wrf
@@ -0,0 +1,21 @@
directory "messages"
file SMSG "multiplay.txt"

directory "multiplay/skirmish"
file SCRIPT "rules.slo"
file SCRIPT "sktech.slo"
file SCRIPT "player0.slo"
file SCRIPT "player1.slo"
file SCRIPT "player2.slo"
file SCRIPT "player3.slo"
file SCRIPT "player4.slo"

directory "multiplay/skirmish"
file SCRIPTVAL "rules.vlo"
file SCRIPTVAL "sk3tech.vlo"
file SCRIPTVAL "player0.vlo"
file SCRIPTVAL "player1.vlo"
file SCRIPTVAL "player2.vlo"
file SCRIPTVAL "player3.vlo"
file SCRIPTVAL "player4.vlo"

23 changes: 23 additions & 0 deletions data/mp/wrf/multi/t3-skirmish6.wrf
@@ -0,0 +1,23 @@
directory "messages"
file SMSG "multiplay.txt"

directory "multiplay/skirmish"
file SCRIPT "rules.slo"
file SCRIPT "sktech.slo"
file SCRIPT "player0.slo"
file SCRIPT "player1.slo"
file SCRIPT "player2.slo"
file SCRIPT "player3.slo"
file SCRIPT "player4.slo"
file SCRIPT "player5.slo"

directory "multiplay/skirmish"
file SCRIPTVAL "rules.vlo"
file SCRIPTVAL "sk3tech.vlo"
file SCRIPTVAL "player0.vlo"
file SCRIPTVAL "player1.vlo"
file SCRIPTVAL "player2.vlo"
file SCRIPTVAL "player3.vlo"
file SCRIPTVAL "player4.vlo"
file SCRIPTVAL "player5.vlo"

25 changes: 25 additions & 0 deletions data/mp/wrf/multi/t3-skirmish7.wrf
@@ -0,0 +1,25 @@
directory "messages"
file SMSG "multiplay.txt"

directory "multiplay/skirmish"
file SCRIPT "rules.slo"
file SCRIPT "sktech.slo"
file SCRIPT "player0.slo"
file SCRIPT "player1.slo"
file SCRIPT "player2.slo"
file SCRIPT "player3.slo"
file SCRIPT "player4.slo"
file SCRIPT "player5.slo"
file SCRIPT "player6.slo"

directory "multiplay/skirmish"
file SCRIPTVAL "rules.vlo"
file SCRIPTVAL "sk3tech.vlo"
file SCRIPTVAL "player0.vlo"
file SCRIPTVAL "player1.vlo"
file SCRIPTVAL "player2.vlo"
file SCRIPTVAL "player3.vlo"
file SCRIPTVAL "player4.vlo"
file SCRIPTVAL "player5.vlo"
file SCRIPTVAL "player6.vlo"

15 changes: 12 additions & 3 deletions src/init.c
Expand Up @@ -436,18 +436,27 @@ BOOL buildMapList(void)
char ** filelist, ** file;
size_t len;

if ( !loadLevFile( "gamedesc.lev", mod_campaign ) ) {
if ( !loadLevFile( "gamedesc.lev", mod_campaign ) )
{
return false;
}
loadLevFile( "addon.lev", mod_multiplay );

filelist = PHYSFS_enumerateFiles("");
for ( file = filelist; *file != NULL; ++file ) {
for ( file = filelist; *file != NULL; ++file )
{
len = strlen( *file );
if ( len > 10 // Do not add addon.lev again
&& !strcasecmp( *file+(len-10), ".addon.lev") ) {
&& !strcasecmp( *file+(len-10), ".addon.lev") )
{
loadLevFile( *file, mod_multiplay );
}
// add support for X player maps using a new name to prevent conflicts.
if ( len > 13 && !strcasecmp( *file+(len-13), ".xplayers.lev") )
{
loadLevFile( *file, mod_multiplay );
}

}
PHYSFS_freeList( filelist );
return true;
Expand Down
48 changes: 46 additions & 2 deletions src/multimenu.c
Expand Up @@ -126,8 +126,12 @@ UDWORD current_numplayers = 4;

#define M_REQUEST_AP (MULTIMENU+70)
#define M_REQUEST_2P (MULTIMENU+71)
#define M_REQUEST_4P (MULTIMENU+72)
#define M_REQUEST_8P (MULTIMENU+73)
#define M_REQUEST_3P (MULTIMENU+72)
#define M_REQUEST_4P (MULTIMENU+73)
#define M_REQUEST_5P (MULTIMENU+74)
#define M_REQUEST_6P (MULTIMENU+75)
#define M_REQUEST_7P (MULTIMENU+76)
#define M_REQUEST_8P (MULTIMENU+77)

#define M_REQUEST_BUT (MULTIMENU+100) // allow loads of buttons.
#define M_REQUEST_BUTM (MULTIMENU+1100)
Expand Down Expand Up @@ -637,12 +641,36 @@ void addMultiRequest(const char* searchDir, const char* fileExtension, UDWORD mo
sButInit.pTip = _("2 players");
widgAddButton(psRScreen, &sButInit);

sButInit.id = M_REQUEST_3P;
sButInit.y += 22;
sButInit.UserData = 3;
sButInit.pTip = _("3 players");
widgAddButton(psRScreen, &sButInit);

sButInit.id = M_REQUEST_4P;
sButInit.y += 22;
sButInit.UserData = 4;
sButInit.pTip = _("4 players");
widgAddButton(psRScreen, &sButInit);

sButInit.id = M_REQUEST_5P;
sButInit.y += 22;
sButInit.UserData = 5;
sButInit.pTip = _("5 players");
widgAddButton(psRScreen, &sButInit);

sButInit.id = M_REQUEST_6P;
sButInit.y += 22;
sButInit.UserData = 6;
sButInit.pTip = _("6 players");
widgAddButton(psRScreen, &sButInit);

sButInit.id = M_REQUEST_7P;
sButInit.y += 22;
sButInit.UserData = 7;
sButInit.pTip = _("7 players");
widgAddButton(psRScreen, &sButInit);

sButInit.id = M_REQUEST_8P;
sButInit.y += 22;
sButInit.UserData = 8;
Expand Down Expand Up @@ -702,10 +730,26 @@ BOOL runMultiRequester(UDWORD id,UDWORD *mode, char *chosen,UDWORD *chosenValue)
closeMultiRequester();
addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, current_tech, 2);
break;
case M_REQUEST_3P:
closeMultiRequester();
addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, current_tech, 3);
break;
case M_REQUEST_4P:
closeMultiRequester();
addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, current_tech, 4);
break;
case M_REQUEST_5P:
closeMultiRequester();
addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, current_tech, 5);
break;
case M_REQUEST_6P:
closeMultiRequester();
addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, current_tech, 6);
break;
case M_REQUEST_7P:
closeMultiRequester();
addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, current_tech, 7);
break;
case M_REQUEST_8P:
closeMultiRequester();
addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, current_tech, 8);
Expand Down

0 comments on commit 7836d26

Please sign in to comment.