Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Implementation of CCustomAwardList
//
// $Workfile: $
// $Date: $
//
//------------------------------------------------------------------------------------------------------
// $Log: $
//
// $NoKeywords: $
//=============================================================================//
#include "CustomAwardList.h"
#include "memdbg.h"
//------------------------------------------------------------------------------------------------------
// Function: CCustomAwardList::readCustomAwards
// Purpose: Factory method to read from a file and return a list of custom awards
// Input: mapname - the name of the map determines the rule file to read the awards from
// pmi - a pointer to the Match Info which will be passed to each custom award
// Output: CCustomAwardList*
//------------------------------------------------------------------------------------------------------
CCustomAwardList* CCustomAwardList::readCustomAwards(string mapname) { char filename[255];
g_pApp->os->chdir(g_pApp->ruleDirectory.c_str()); sprintf(filename,"tfc.%s.rul",mapname.c_str()); CTextFile ctf1(filename); CTextFile ctf2("tfc.rul");
if (!ctf1.isValid() && ctf2.isValid()) { if (stricmp(filename,"tfc..rul")==0) g_pApp->warning("Could not find mapname in the log file, map-specific custom rules will not be used"); else g_pApp->warning("Could not find %s, map-specific custom rules will not be used",filename); } if (!ctf2.isValid() && ctf1.isValid()) { g_pApp->warning("tfc.rul could not be found. Only map-specific rules will be used"); } if (!ctf2.isValid() && !ctf1.isValid()) { g_pApp->warning("Neither tfc.rul nor %s could be found. No custom rules will be used"); return NULL; }
CCustomAwardList* newList=new TRACKED CCustomAwardList; bool foundAward=false;
CCustomAward* pcca=CCustomAward::readCustomAward(ctf1); while (pcca) { foundAward=true; newList->theList.push_back(pcca); pcca=CCustomAward::readCustomAward(ctf1); } pcca=CCustomAward::readCustomAward(ctf2); while (pcca) { foundAward=true; newList->theList.push_back(pcca); pcca=CCustomAward::readCustomAward(ctf2); } if (!foundAward) { delete newList; g_pApp->warning("Could not find any custom rules in either tfc.rul or %s. No custom rules will be used.\n",filename); newList=NULL; }
return newList; }
|