forked from mirror/openmw-tes3mp
replaced void * entry in cell store with a generic type
parent
c7f76f51fb
commit
def0a773bd
@ -0,0 +1,13 @@
|
||||
#ifndef REFDATA_H
|
||||
#define REFDATA_H
|
||||
|
||||
namespace OMW
|
||||
{
|
||||
class RefData
|
||||
{
|
||||
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
@ -1,73 +0,0 @@
|
||||
#include "cell_store.hpp"
|
||||
#include <iostream>
|
||||
#include "libs/mangle/tools/str_exception.hpp"
|
||||
|
||||
using namespace ESMS;
|
||||
using namespace std;
|
||||
|
||||
void CellStore::loadInt(const std::string &name, const ESMStore &store, ESMReader &esm)
|
||||
{
|
||||
cout << "loading cell '" << name << "'\n";
|
||||
|
||||
cell = store.cells.findInt(name);
|
||||
|
||||
if(cell == NULL)
|
||||
throw str_exception("Cell not found - " + name);
|
||||
|
||||
loadRefs(store, esm);
|
||||
}
|
||||
|
||||
void CellStore::loadExt(int X, int Y, const ESMStore &store, ESMReader &esm)
|
||||
{
|
||||
}
|
||||
|
||||
void CellStore::loadRefs(const ESMStore &store, ESMReader &esm)
|
||||
{
|
||||
assert (cell);
|
||||
|
||||
// Reopen the ESM reader and seek to the right position.
|
||||
cell->restore(esm);
|
||||
|
||||
CellRef ref;
|
||||
|
||||
// Get each reference in turn
|
||||
while(cell->getNextRef(esm, ref))
|
||||
{
|
||||
int rec = store.find(ref.refID);
|
||||
|
||||
/* We can optimize this further by storing the pointer to the
|
||||
record itself in store.all, so that we don't need to look it
|
||||
up again here. However, never optimize. There are infinite
|
||||
opportunities to do that later.
|
||||
*/
|
||||
switch(rec)
|
||||
{
|
||||
case REC_ACTI: activators.find(ref, store.activators); break;
|
||||
case REC_ALCH: potions.find(ref, store.potions); break;
|
||||
case REC_APPA: appas.find(ref, store.appas); break;
|
||||
case REC_ARMO: armors.find(ref, store.armors); break;
|
||||
case REC_BOOK: books.find(ref, store.books); break;
|
||||
case REC_CLOT: clothes.find(ref, store.clothes); break;
|
||||
case REC_CONT: containers.find(ref, store.containers); break;
|
||||
case REC_CREA: creatures.find(ref, store.creatures); break;
|
||||
case REC_DOOR: doors.find(ref, store.doors); break;
|
||||
case REC_INGR: ingreds.find(ref, store.ingreds); break;
|
||||
case REC_LEVC: creatureLists.find(ref, store.creatureLists); break;
|
||||
case REC_LEVI: itemLists.find(ref, store.itemLists); break;
|
||||
case REC_LIGH: lights.find(ref, store.lights); break;
|
||||
case REC_LOCK: lockpicks.find(ref, store.lockpicks); break;
|
||||
case REC_MISC: miscItems.find(ref, store.miscItems); break;
|
||||
case REC_NPC_: npcs.find(ref, store.npcs); break;
|
||||
case REC_PROB: probes.find(ref, store.probes); break;
|
||||
case REC_REPA: repairs.find(ref, store.repairs); break;
|
||||
case REC_STAT: statics.find(ref, store.statics); break;
|
||||
case REC_WEAP: weapons.find(ref, store.weapons); break;
|
||||
|
||||
case 0: cout << "Cell reference " + ref.refID + " not found!\n"; break;
|
||||
default:
|
||||
assert(0);
|
||||
}
|
||||
}
|
||||
|
||||
cout << "Statics in cell: " << statics.list.size() << endl;
|
||||
}
|
Loading…
Reference in New Issue