void CG_parseMapVoteListInfo() { int i; cgs.dbNumMaps = (trap_Argc() - 2) / 4; if ( atoi(CG_Argv(1)) ) cgs.dbMapMultiVote = qtrue; for ( i = 0; i < cgs.dbNumMaps; i++ ) { Q_strncpyz(cgs.dbMaps[i], CG_Argv((i*4)+2), sizeof(cgs.dbMaps[0])); cgs.dbMapVotes[i] = 0; cgs.dbMapID[i] = atoi(CG_Argv((i*4)+3)); cgs.dbMapLastPlayed[i] = atoi(CG_Argv((i*4)+4)); cgs.dbMapTotalVotes[i] = atoi(CG_Argv((i*4)+5)); if ( CG_FindArenaInfo(va("scripts/%s.arena", cgs.dbMaps[i]), cgs.dbMaps[i], &cgs.arenaData) ) { Q_strncpyz(cgs.dbMapDispName[i], cgs.arenaData.longname, sizeof(cgs.dbMaps[0]) ); } else { Q_strncpyz(cgs.dbMapDispName[i], cgs.dbMaps[i], sizeof(cgs.dbMaps[0]) ); } } CG_LocateArena(); cgs.dbMapListReceived = qtrue; return; }
void CG_LocateArena(void) { char filename[MAX_QPATH]; Com_sprintf(filename, sizeof(filename), "scripts/%s.arena", cgs.rawmapname); if (!CG_FindArenaInfo(filename, cgs.rawmapname, &cgs.arenaData)) { return; } cgs.arenaInfoLoaded = qtrue; }
/** * @brief CG_LocateCampaign */ void CG_LocateCampaign(void) { int numdirs; char filename[MAX_QPATH]; char dirlist[1024]; char *dirptr; int i; unsigned int dirlen; qboolean found = qfalse; // get all campaigns from .campaign files numdirs = trap_FS_GetFileList("scripts", ".campaign", dirlist, 1024); dirptr = dirlist; for (i = 0; i < numdirs; i++, dirptr += dirlen + 1) { dirlen = strlen(dirptr); Q_strncpyz(filename, "scripts/", MAX_QPATH); Q_strcat(filename, MAX_QPATH, dirptr); if (CG_FindCampaignInFile(filename, cgs.currentCampaign, &cgs.campaignData)) { found = qtrue; break; } } if (!found) { return; } for (i = 0; i < cgs.campaignData.mapCount; i++) { Com_sprintf(filename, sizeof(filename), "scripts/%s.arena", cgs.campaignData.mapnames[i]); if (!CG_FindArenaInfo(filename, cgs.campaignData.mapnames[i], &cgs.campaignData.arenas[i])) { return; } } cgs.campaignInfoLoaded = qtrue; }
void CG_LocateCampaign(void) { /* int numdirs; char filename[MAX_QPATH]; char dirlist[1024]; char* dirptr; int i, dirlen; qboolean found = qfalse; // get all campaigns from .campaign files numdirs = trap_FS_GetFileList( "scripts", ".campaign", dirlist, 1024 ); dirptr = dirlist; for (i = 0; i < numdirs; i++, dirptr += dirlen+1) { dirlen = strlen(dirptr); strcpy(filename, "scripts/"); strcat(filename, dirptr); if(CG_FindCurrentCampaignInFile(filename, &cgs.campaignData)) { found = qtrue; break; } } if(!found) { return; } for(i = 0; i < cgs.campaignData.mapCount; i++ ) { Com_sprintf( filename, sizeof(filename), "scripts/%s.arena", cgs.campaignData.mapnames[i] ); // Gordon: horrible hack, but i dont plan to parse EVERY .arena to get a map briefing... if( !CG_FindArenaInfo( "scripts/wolfmp.arena", cgs.campaignData.mapnames[i], &cgs.campaignData.arenas[i] ) && !CG_FindArenaInfo( "scripts/wolfxp.arena", cgs.campaignData.mapnames[i], &cgs.campaignData.arenas[i] ) && !CG_FindArenaInfo( filename, cgs.campaignData.mapnames[i], &cgs.campaignData.arenas[i] )) { return; } } cgs.campaignInfoLoaded = qtrue;*/ int numdirs; char filename[MAX_QPATH]; char dirlist[1024]; char *dirptr; int i, dirlen; qboolean found = qfalse; // get all campaigns from .campaign files numdirs = trap_FS_GetFileList("scripts", ".campaign", dirlist, 1024); dirptr = dirlist; for (i = 0; i < numdirs; i++, dirptr += dirlen + 1) { dirlen = strlen(dirptr); Q_strncpyz(filename, "scripts/", MAX_QPATH); Q_strcat(filename, MAX_QPATH, dirptr); if (CG_FindCampaignInFile(filename, cgs.currentCampaign, &cgs.campaignData)) { found = qtrue; break; } } if (!found) { return; } for (i = 0; i < cgs.campaignData.mapCount; i++) { Com_sprintf(filename, sizeof(filename), "scripts/%s.arena", cgs.campaignData.mapnames[i]); // Gordon: horrible hack, but i dont plan to parse EVERY .arena to get a map briefing... if (/*!CG_FindArenaInfo( "scripts/wolfmp.arena", cgs.campaignData.mapnames[i], &cgs.campaignData.arenas[i] ) && !CG_FindArenaInfo( "scripts/wolfxp.arena", cgs.campaignData.mapnames[i], &cgs.campaignData.arenas[i] ) && */ !CG_FindArenaInfo(filename, cgs.campaignData.mapnames[i], &cgs.campaignData.arenas[i])) { return; } } cgs.campaignInfoLoaded = qtrue; }