moar achievement stuff
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/branches/uni@13612 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
cd7e986486
commit
046269cebb
@ -46,16 +46,42 @@ void AchievementsManager::deallocate()
|
||||
// ============================================================================
|
||||
AchievementsManager::AchievementsManager()
|
||||
{
|
||||
parseAchievements();
|
||||
parse();
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
AchievementsManager::~AchievementsManager()
|
||||
{
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
void AchievementsManager::save()
|
||||
{
|
||||
std::string filename = file_manager->getConfigDir() + ("/challenges.xml");
|
||||
|
||||
std::ofstream achievements_file(filename.c_str(), std::ios::out);
|
||||
|
||||
if (!achievements_file.is_open())
|
||||
{
|
||||
Log::warn("AchievementsManager::save",
|
||||
"Failed to open '%s' for writing, achievements won't be saved\n",
|
||||
filename.c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
achievements_file << "<?xml version=\"1.0\"?>\n";
|
||||
achievements_file << "<achievements>\n";
|
||||
|
||||
for (int i = 0; i < m_slots.size(); i++)
|
||||
{
|
||||
m_slots[i].save();
|
||||
}
|
||||
|
||||
achievements_file << "</achievements>\n\n";
|
||||
achievements_file.close();
|
||||
}
|
||||
// ============================================================================
|
||||
void AchievementsManager::parseAchievements()
|
||||
void AchievementsManager::AchievementsSlot::parse()
|
||||
{
|
||||
const std::string file_name = file_manager->getDataFile("items.xml");
|
||||
const XMLNode *root = file_manager->createXMLTree(file_name);
|
||||
|
@ -35,17 +35,30 @@
|
||||
*/
|
||||
class AchievementsManager
|
||||
{
|
||||
private :
|
||||
|
||||
private:
|
||||
AchievementsManager ();
|
||||
~AchievementsManager ();
|
||||
void parseAchievements();
|
||||
class AchievementsSlot
|
||||
{
|
||||
std::map<uint32_t, * Achievement> m_achievements;
|
||||
public :
|
||||
void parse();
|
||||
void load();
|
||||
void save();
|
||||
};
|
||||
std::vector<AchievementsSlot> m_slots;
|
||||
AchievementsManager ();
|
||||
~AchievementsManager ();
|
||||
|
||||
public:
|
||||
/**Singleton */
|
||||
static AchievementsManager * get();
|
||||
static void deallocate();
|
||||
|
||||
|
||||
public:
|
||||
/**Singleton */
|
||||
static AchievementsManager * get();
|
||||
static void deallocate();
|
||||
|
||||
void parse();
|
||||
void save();
|
||||
void load();
|
||||
}; // class AchievementsManager
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user