some work...
read all, but missing morphs and upgrades new in-game types (src and cur)
This commit is contained in:
89
loader.cpp
89
loader.cpp
@@ -27,8 +27,9 @@ void Loader::load()
|
||||
readSplashes();
|
||||
readTowers();
|
||||
readTriggers();
|
||||
//readChains();
|
||||
//readLevTowers();
|
||||
readChains();
|
||||
//readUpgrades();
|
||||
readLevTowers();
|
||||
readWaves();
|
||||
readWaveParts();
|
||||
readLevWaves();
|
||||
@@ -43,10 +44,6 @@ void Loader::create()
|
||||
if (!cfile.open(QIODevice::WriteOnly))
|
||||
return;
|
||||
cfile.resize(0);
|
||||
// if (!doc.setContent(&file)) {
|
||||
// file.close();
|
||||
// return;
|
||||
// }
|
||||
QDomElement elem;
|
||||
QDomElement root = doc->createElement("ADdata");
|
||||
doc->appendChild(root);
|
||||
@@ -110,7 +107,6 @@ void Loader::create()
|
||||
elem.setAttribute("autoControl","true");
|
||||
elem.setAttribute("radius",1.2);
|
||||
elem.setAttribute("id",0);
|
||||
|
||||
cfile.write(doc->toByteArray());
|
||||
cfile.close();
|
||||
}
|
||||
@@ -235,6 +231,53 @@ void Loader::readWaveParts()
|
||||
}
|
||||
|
||||
|
||||
void Loader::readChains()
|
||||
{
|
||||
QDomNodeList celems = doc->elementsByTagName("chain");
|
||||
for (int i=0; i<celems.size(); i++)
|
||||
{
|
||||
bool OK = true;
|
||||
tbChain chain;
|
||||
QDomNamedNodeMap nm = celems.at(i).attributes();
|
||||
chain.towerId = nm.namedItem("tower").nodeValue().toInt();
|
||||
if (!towers.contains(chain.towerId))
|
||||
{
|
||||
qCritical("invalid tower Id");
|
||||
OK = false;
|
||||
}
|
||||
chain.childSplashId = nm.namedItem("child").nodeValue().toInt();
|
||||
if (chain.childSplashId > 0)
|
||||
{
|
||||
if (!splashes.contains(chain.childSplashId))
|
||||
{
|
||||
qCritical("invalid child splash Id");
|
||||
OK = false;
|
||||
}
|
||||
}
|
||||
chain.parentSplashId = nm.namedItem("parent").nodeValue().toInt();
|
||||
if (!splashes.contains(chain.parentSplashId))
|
||||
{
|
||||
qCritical("invalid parent splash Id");
|
||||
OK = false;
|
||||
}
|
||||
chain.triggerId = nm.namedItem("trigger").nodeValue().toInt();
|
||||
if (!triggers.contains(chain.triggerId))
|
||||
{
|
||||
qCritical("invalid parent splash Id");
|
||||
OK = false;
|
||||
}
|
||||
if (OK)
|
||||
{
|
||||
chains.insert(chain.towerId,chain);
|
||||
qDebug() << tr("Tower=%1 parent=%2 child=%3 trigger=%4").arg(chain.towerId).arg(chain.parentSplashId).arg(chain.childSplashId).arg(chain.triggerId);
|
||||
}
|
||||
}
|
||||
qDebug("================");
|
||||
qDebug() << tr("Found %1 chains").arg(chains.size());
|
||||
qDebug("================");
|
||||
}
|
||||
|
||||
|
||||
void Loader::readLevWaves()
|
||||
{
|
||||
QDomNodeList lwelems = doc->elementsByTagName("waveOnLevel");
|
||||
@@ -267,6 +310,38 @@ void Loader::readLevWaves()
|
||||
}
|
||||
|
||||
|
||||
void Loader::readLevTowers()
|
||||
{
|
||||
QDomNodeList ltelems = doc->elementsByTagName("towerOnLevel");
|
||||
for (int i=0; i<ltelems.size(); i++)
|
||||
{
|
||||
bool OK = true;
|
||||
tbTowerOnLevel lt;
|
||||
QDomNamedNodeMap nm = ltelems.at(i).attributes();
|
||||
lt.levelId= nm.namedItem("level").nodeValue().toInt();
|
||||
if (!levels.contains(lt.levelId))
|
||||
{
|
||||
qCritical("invalid level Id");
|
||||
OK = false;
|
||||
}
|
||||
lt.towerId = nm.namedItem("tower").nodeValue().toInt();
|
||||
if (!towers.contains(lt.towerId))
|
||||
{
|
||||
qCritical("invalid tower Id");
|
||||
OK = false;
|
||||
}
|
||||
if (OK)
|
||||
{
|
||||
levTowers.insert(lt.levelId,lt);
|
||||
qDebug() << tr("level=%1 tower=%2").arg(lt.levelId).arg(lt.towerId);
|
||||
}
|
||||
}
|
||||
qDebug("================");
|
||||
qDebug() << tr("Found %1 Towers On Level").arg(levTowers.size());
|
||||
qDebug("================");
|
||||
}
|
||||
|
||||
|
||||
void Loader::readLevels()
|
||||
{
|
||||
QDomNodeList lelems = doc->elementsByTagName("level");
|
||||
|
||||
Reference in New Issue
Block a user