diff -r 5b0aeef8ba2a -r 5608ac657362 project_files/frontlib/ipc/gameconn.c --- a/project_files/frontlib/ipc/gameconn.c Thu Jun 21 21:32:12 2012 +0200 +++ b/project_files/frontlib/ipc/gameconn.c Mon Jun 25 00:42:07 2012 +0200 @@ -85,7 +85,7 @@ return result; } -flib_gameconn *flib_gameconn_create(const char *playerName, flib_gamesetup *setup, bool netgame) { +flib_gameconn *flib_gameconn_create(const char *playerName, const flib_gamesetup *setup, bool netgame) { flib_gameconn *result = NULL; flib_gameconn *tempConn = flib_gameconn_create_partial(true, playerName, netgame); if(tempConn) { @@ -124,6 +124,22 @@ return result; } +flib_gameconn *flib_gameconn_create_campaign(const char *playerName, const char *seed, const char *script) { + flib_gameconn *result = NULL; + flib_gameconn *tempConn = flib_gameconn_create_partial(true, playerName, false); + if(tempConn) { + if(!flib_ipc_append_message(tempConn->configBuffer, "TL") + && !flib_ipc_append_seed(tempConn->configBuffer, seed) + && !flib_ipc_append_script(tempConn->configBuffer, script) + && !flib_ipc_append_message(tempConn->configBuffer, "!")) { + result = tempConn; + tempConn = NULL; + } + } + flib_gameconn_destroy(tempConn); + return result; +} + void flib_gameconn_destroy(flib_gameconn *conn) { if(conn) { if(conn->running) {