Groan, so looks like I'm going to have to prove it:
Here is a test video of my Domination gametype ported from COD4 to COD2, run on a LISTEN SERVER. It uses openFile( filename, "read" ) for both the location of the domination flags, and the start spawnpoints:
Here is the code for the startspawns:
Code:
init()
{
if( !init_mapConfig() )
{
printLn( "^1No Start Spawns found in Level!" );
level.startSpawns = false;
return;
}
}
init_mapConfig()
{
startspawns = [];
number = 0;
filename = undefined;
if( level.native )
filename = "stock_startspawns.ini";
else
filename = "custom_startspawns.ini";
file = OpenFile( filename, "read" );
if( file == -1 )
return( false );
currentmap = false;
for( ;; )
{
elems = freadln( file );
if( elems == -1 )
break;
if( elems == 0 )
{
currentmap = false;
continue;
}
line = "";
for( pos = 0; pos < elems; pos++ )
{
line = line + fgetarg( file, pos );
if( pos < elems - 1 )
line = line + ",";
}
if( getSubStr( line, 0, 2 ) == "//" || getSubStr( line, 0, 1 ) == "#" )
continue;
array = strtok( line, " " );
if( array[0] == getcvar( "mapname" ) )
{
currentmap = true;
continue;
}
if( currentmap )
{
switch( array[0] )
{
case "startspawns":
team = array[1];
origin_str = getsubstr( array[2], 1 );
origin_array = strtok( origin_str, "," );
origin = ( int( origin_array[0] ), int( origin_array[1] ), int( origin_array[2] ) );
startspawns[number] = spawn( "script_origin", origin );
startspawns[number].origin = origin;
startspawns[number].angles = ( 0, int( array[3] ), 0 );
startspawns[number].team = team;
startspawns[number].targetname = "mp_spawn_" + team + "_start";
defineExtraSpawnpointArray( startspawns[number] );
number++;
break;
default:
break;
}
}
}
CloseFile( file );
if( !startspawns.size )
return( false );
return( true );
}
defineExtraSpawnpointArray( spawnpoint )
{
if( !isdefined( level.extraSpawnpoints ) )
level.extraSpawnpoints = [];
if( !isdefined( level.extraSpawnpoints[spawnpoint.targetname] ) )
level.extraSpawnpoints[spawnpoint.targetname] = [];
level.extraSpawnpoints[spawnpoint.targetname][ level.extraSpawnpoints[spawnpoint.targetname].size ] = spawnpoint;
}
Here is the startspawns scriptdata file for mp_harbor:
Code:
mp_harbor
startspawns allies (-6565,-8492,67) 168
startspawns allies (-6584,-8641,74) 172
startspawns allies (-6594,-8758,68) 164
startspawns allies (-6593,-8843,71) 167
startspawns allies (-6698,-8842,71) 175
startspawns allies (-6701,-8727,70) 170
startspawns allies (-6710,-8603,64) 173
startspawns allies (-6728,-8494,61) 176
startspawns allies (-6823,-8487,60) 173
startspawns allies (-6827,-8630,60) 169
startspawns allies (-6830,-8755,63) 172
startspawns allies (-6815,-8856,59) 177
startspawns allies (-6911,-8848,56) 176
startspawns allies (-6904,-8735,62) 176
startspawns allies (-6913,-8618,66) 177
startspawns allies (-6921,-8522,61) 182
startspawns allies (-6842,-8568,57) 170
startspawns allies (-6728,-8897,62) 161
startspawns axis (-11800,-8379,59) 350
startspawns axis (-11792,-8280,63) 353
startspawns axis (-11775,-8138,72) 355
startspawns axis (-11784,-8019,81) 353
startspawns axis (-11682,-8033,59) 354
startspawns axis (-11684,-8146,58) 356
startspawns axis (-11684,-8265,57) 356
startspawns axis (-11684,-8368,57) 353
startspawns axis (-11579,-8383,57) 355
startspawns axis (-11580,-8247,58) 354
startspawns axis (-11580,-8111,58) 357
startspawns axis (-11578,-7963,54) 353
startspawns axis (-11578,-8029,57) 355
startspawns axis (-11666,-7962,59) 357
startspawns axis (-11781,-7943,72) 352
startspawns axis (-11484,-8248,63) 173
startspawns axis (-11478,-8127,60) 171
startspawns axis (-11489,-7985,55) 171
Here is the server startup .BAT file I use to test:
Code:
@echo off
@echo STARTING COD2
cd C:\Program Files (x86)\Activision\Call of Duty 2\
CoD2MP_s.exe +set fs_game test +set developer 1 +set developer_script 1 +exec dedicated.cfg +set sv_punkbuster 0 +map_rotate
@echo COMPLETE
The server is set to dedicated 0 - in other words a LISTEN SERVER.
Now, unless I am missing something, the code I just posted clearly shows that openFile( filename, "read" ) is used on a LISTEN SERVER:
Code:
file = OpenFile( filename, "read" );
Discuss.