You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
#include "aipackage.hpp"
|
|
|
|
|
|
|
|
#include "esm_reader.hpp"
|
|
|
|
#include "esm_writer.hpp"
|
|
|
|
|
|
|
|
namespace ESM
|
|
|
|
{
|
|
|
|
void AIPackageList::load(ESMReader &esm)
|
|
|
|
{
|
|
|
|
while (esm.hasMoreSubs()) {
|
|
|
|
// initialize every iteration
|
|
|
|
AIPackage pack;
|
|
|
|
esm.getSubName();
|
|
|
|
if (esm.retSubName() == 0x54444e43) { // CNDT
|
|
|
|
mList.back().mCellName = esm.getHString();
|
|
|
|
} else if (esm.retSubName() == AI_Wander) {
|
|
|
|
pack.mType = AI_Wander;
|
|
|
|
esm.getHExact(&pack.mWander, 14);
|
|
|
|
mList.push_back(pack);
|
|
|
|
} else if (esm.retSubName() == AI_Travel) {
|
|
|
|
pack.mType = AI_Travel;
|
|
|
|
esm.getHExact(&pack.mTravel, 16);
|
|
|
|
mList.push_back(pack);
|
|
|
|
} else if (esm.retSubName() == AI_Escort ||
|
|
|
|
esm.retSubName() == AI_Follow)
|
|
|
|
{
|
|
|
|
pack.mType =
|
|
|
|
(esm.retSubName() == AI_Escort) ? AI_Escort : AI_Follow;
|
|
|
|
esm.getHExact(&pack.mTarget, 48);
|
|
|
|
mList.push_back(pack);
|
|
|
|
} else if (esm.retSubName() == AI_Activate) {
|
|
|
|
pack.mType = AI_Activate;
|
|
|
|
esm.getHExact(&pack.mActivate, 33);
|
|
|
|
mList.push_back(pack);
|
|
|
|
} else { // not AI package related data, so leave
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void AIPackageList::save(ESMWriter &esm)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
}
|