diff options
| author | Petr Mrázek | 2012-01-08 06:59:52 +0100 |
|---|---|---|
| committer | Petr Mrázek | 2012-01-08 06:59:52 +0100 |
| commit | 8a463865029be165139a8d1fe73bc0b2ec27a109 (patch) | |
| tree | c8b1939e6f756622c4a9e4220dd4483bb9a6765e /plugins/colonies.cpp | |
| parent | 72016d9188835cd4df92c4ed230a416aff3b9c83 (diff) | |
| download | dfhack-8a463865029be165139a8d1fe73bc0b2ec27a109.tar.gz dfhack-8a463865029be165139a8d1fe73bc0b2ec27a109.tar.bz2 dfhack-8a463865029be165139a8d1fe73bc0b2ec27a109.tar.xz | |
Dissolve vermin module.
Diffstat (limited to 'plugins/colonies.cpp')
| -rw-r--r-- | plugins/colonies.cpp | 62 |
1 files changed, 24 insertions, 38 deletions
diff --git a/plugins/colonies.cpp b/plugins/colonies.cpp index 6b2d8a1d..73106b96 100644 --- a/plugins/colonies.cpp +++ b/plugins/colonies.cpp @@ -9,6 +9,7 @@ using std::vector; using std::string; using namespace DFHack; +using namespace DFHack::Simple; #include <DFHack.h> DFhackCExport command_result colonies (Core * c, vector <string> & parameters); @@ -32,10 +33,9 @@ DFhackCExport command_result plugin_shutdown ( Core * c ) return CR_OK; } -void destroyColonies(DFHack::SpawnPoints *points); -void convertColonies(DFHack::SpawnPoints *points, DFHack::Materials *Materials); -void showColonies(Core *c, DFHack::SpawnPoints *points, - DFHack::Materials *Materials); +void destroyColonies(); +void convertColonies(DFHack::Materials *Materials); +void showColonies(Core *c, DFHack::Materials *Materials); DFhackCExport command_result colonies (Core * c, vector <string> & parameters) { @@ -71,54 +71,41 @@ DFhackCExport command_result colonies (Core * c, vector <string> & parameters) } c->Suspend(); - Vermin * vermin = c->getVermin(); Materials * materials = c->getMaterials(); - SpawnPoints *points = vermin->getSpawnPoints(); - - if(!points || !points->isValid()) - { - c->con.printerr("vermin not supported for this DF version\n"); - c->Resume(); - return CR_FAILURE; - } - materials->ReadCreatureTypesEx(); if (destroy) - destroyColonies(points); + destroyColonies(); else if (convert) - convertColonies(points, materials); + convertColonies(materials); else - showColonies(c, points, materials); - - delete points; + showColonies(c, materials); - vermin->Finish(); materials->Finish(); c->Resume(); return CR_OK; } -void destroyColonies(DFHack::SpawnPoints *points) +void destroyColonies() { - uint32_t numSpawnPoints = points->size(); + uint32_t numSpawnPoints = Vermin::getNumVermin(); for (uint32_t i = 0; i < numSpawnPoints; i++) { - DFHack::t_spawnPoint sp; - points->Read(i, sp); + Vermin::t_vermin sp; + Vermin::Read(i, sp); - if (sp.in_use && DFHack::SpawnPoints::isWildColony(sp)) + if (sp.in_use && Vermin::isWildColony(sp)) { sp.in_use = false; - points->Write(i, sp); + Vermin::Write(i, sp); } } } // Convert all colonies to honey bees. -void convertColonies(DFHack::SpawnPoints *points, DFHack::Materials *Materials) +void convertColonies(DFHack::Materials *Materials) { int bee_idx = -1; for (size_t i = 0; i < Materials->raceEx.size(); i++) @@ -134,32 +121,31 @@ void convertColonies(DFHack::SpawnPoints *points, DFHack::Materials *Materials) return; } - uint32_t numSpawnPoints = points->size(); + uint32_t numSpawnPoints = Vermin::getNumVermin(); for (uint32_t i = 0; i < numSpawnPoints; i++) { - DFHack::t_spawnPoint sp; - points->Read(i, sp); + Vermin::t_vermin sp; + Vermin::Read(i, sp); - if (sp.in_use && DFHack::SpawnPoints::isWildColony(sp)) + if (sp.in_use && Vermin::isWildColony(sp)) { sp.race = bee_idx; - points->Write(i, sp); + Vermin::Write(i, sp); } } } -void showColonies(Core *c, DFHack::SpawnPoints *points, - DFHack::Materials *Materials) +void showColonies(Core *c, DFHack::Materials *Materials) { - uint32_t numSpawnPoints = points->size(); + uint32_t numSpawnPoints = Vermin::getNumVermin(); int numColonies = 0; for (uint32_t i = 0; i < numSpawnPoints; i++) { - DFHack::t_spawnPoint sp; + Vermin::t_vermin sp; - points->Read(i, sp); + Vermin::Read(i, sp); - if (sp.in_use && DFHack::SpawnPoints::isWildColony(sp)) + if (sp.in_use && Vermin::isWildColony(sp)) { numColonies++; string race="(no race)"; |
