/* Starshatter: The Open Source Project Copyright (c) 2021-2024, Starshatter: The Open Source Project Contributors Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors Copyright (c) 1997-2006, Destroyer Studios LLC. AUTHOR: John DiCamillo OVERVIEW ======== The complete roster of all known persistent entities for all combatants in the game. */ #include "CombatRoster.h" #include "CombatGroup.h" #include "Game.h" #include "DataLoader.h" #include "Text.h" // +--------------------------------------------------------------------+ static CombatRoster* roster = 0; // +--------------------------------------------------------------------+ CombatRoster::CombatRoster() { DataLoader* loader = DataLoader::GetLoader(); loader->SetDataPath("Campaigns/"); List files; loader->ListFiles("*.def", files); for (int i = 0; i < files.size(); i++) { Text filename = *files[i]; if (!filename.contains("/") && !filename.contains("\\")) { loader->SetDataPath("Campaigns/"); CombatGroup* g = CombatGroup::LoadOrderOfBattle(filename, -1, 0); forces.append(g); } } files.destroy(); } // +--------------------------------------------------------------------+ CombatRoster::~CombatRoster() { forces.destroy(); } // +--------------------------------------------------------------------+ CombatGroup* CombatRoster::GetForce(const char* name) { ListIter iter = forces; while (++iter) { CombatGroup* f = iter.value(); if (f->Name() == name) return f; } return 0; } // +--------------------------------------------------------------------+ void CombatRoster::Initialize() { roster = new CombatRoster(); } void CombatRoster::Close() { delete roster; roster = 0; } CombatRoster* CombatRoster::GetInstance() { return roster; }