alas, still stuck. Here's my code:
llist* golf_levels;
char* wrsFile;
function main()
{
on_x = switchLevel;
on_exit = cleanup;
golf_levels = new_llist();
TEXT* tDir = { strings = 10; flags = VISIBLE; }
//search for all wrs files
txt_for_dir( tDir, "*.wrs" );
STRING* rootName = "#40";
STRING* courseName = "#40";
STRING* levelName = "#40";
STRING* pakName = "#40";
STRING* wrsName = "#40";
//TODO: Do this for each string found!
str_cpy(wrsName, _chr((tDir.pstring)[0]));
//Load the wrs file for inclusion later
long fileSize;
wrsFile = file_load( wrsName, NULL, &fileSize );
if( wrsFile == NULL )
{
diag("\nUnable to open file: "); diag(wrsName);
return;
}
//remove the extension
str_cpy( rootName, wrsName );
str_trunc( rootName, 4 );
//create the level name
str_cpy(courseName, rootName );
str_cpy(levelName, rootName );
str_cpy(pakName, rootName );
//and add extensions
str_cat(courseName, ".txt");
str_cat(levelName, ".wmb");
str_cat(pakName, ".pak");
STRING* str_name = "#40";
STRING* str_description = "#1024";
STRING* str_weather = "#40";
//make sure the names are what we expect
diag("\n courseName: "); diag( courseName );
diag("\n pakName: "); diag( pakName );
diag("\n rootName: "); diag( rootName );
diag("\n wrsName: "); diag( wrsName );
//add the resource file and load it into a buffer
add_resource( wrsFile );
add_buffer( wrsName, wrsFile, fileSize );
if( file_cpy(courseName,pakName) != 0 )
{
var filehandle_n = file_open_read( courseName );
file_find( filehandle_n, "Name:" );
file_str_read( filehandle_n, str_name );
file_find( filehandle_n, "Desc:" );
file_str_read( filehandle_n, str_description );
file_find( filehandle_n, "Wthr:" );
file_str_read( filehandle_n, str_weather );
diag("\n"); diag( str_name );
diag("\n"); diag( str_description );
diag("\n"); diag( str_weather );
}
else
{
diag("\nCopy failed");
}
level_load(levelName);
wait(2);
//Enumerate levels via special objects placed in an empty level
int current_level_num = 0;
ENTITY* currentEntity = ent_next(NULL);
while( currentEntity != NULL )
{
STRING* lvlString = str_create("#24");
str_cpy( lvlString, currentEntity.string1 );
llist_add( golf_levels, lvlString );
current_level_num++;
currentEntity = ent_next(currentEntity);
}
levelID = 0;
if( golf_levels->numItems > 0 )
level_load( (STRING*)llist_get(golf_levels, levelID) );
else
diag("\nNO LEVELS AVAILABLE!");
}
Any ideas?