2007-09-02 12:36:54 +00:00
|
|
|
#include "stdafx.h"
|
2007-07-03 08:10:37 +00:00
|
|
|
#include "CDefObjInfoHandler.h"
|
2007-08-30 10:11:53 +00:00
|
|
|
#include "../CGameInfo.h"
|
2007-08-29 12:18:31 +00:00
|
|
|
#include "CLodHandler.h"
|
2007-08-04 19:01:22 +00:00
|
|
|
#include <sstream>
|
2007-07-03 08:10:37 +00:00
|
|
|
|
|
|
|
bool DefObjInfo::operator==(const std::string & por) const
|
|
|
|
{
|
|
|
|
return this->defName == por;
|
|
|
|
}
|
|
|
|
|
|
|
|
void CDefObjInfoHandler::load()
|
|
|
|
{
|
2007-08-04 19:01:22 +00:00
|
|
|
std::istringstream inp(CGameInfo::mainObj->bitmaph->getTextFile("ZOBJCTS.TXT"));
|
2007-07-03 08:10:37 +00:00
|
|
|
int objNumber;
|
|
|
|
inp>>objNumber;
|
|
|
|
for(int hh=0; hh<objNumber; ++hh)
|
|
|
|
{
|
|
|
|
DefObjInfo nobj;
|
|
|
|
std::string dump;
|
|
|
|
inp>>nobj.defName;
|
2007-11-20 17:52:22 +00:00
|
|
|
|
|
|
|
std::transform(nobj.defName.begin(), nobj.defName.end(), nobj.defName.begin(), (int(*)(int))toupper);
|
2007-08-07 13:49:15 +00:00
|
|
|
|
|
|
|
for(int o=0; o<6; ++o)
|
|
|
|
{
|
|
|
|
nobj.blockMap[o] = 0xff;
|
|
|
|
nobj.visitMap[o] = 0x00;
|
|
|
|
}
|
|
|
|
std::string mapStr;
|
|
|
|
inp>>mapStr;
|
2007-08-11 14:58:07 +00:00
|
|
|
std::reverse(mapStr.begin(), mapStr.end());
|
2007-08-07 13:49:15 +00:00
|
|
|
for(int v=0; v<mapStr.size(); ++v)
|
|
|
|
{
|
|
|
|
if(mapStr[v]=='0')
|
|
|
|
{
|
2007-08-11 14:58:07 +00:00
|
|
|
nobj.blockMap[v/8] &= 255 - (128 >> (v%8));
|
2007-08-07 13:49:15 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
inp>>mapStr;
|
2007-08-11 14:58:07 +00:00
|
|
|
std::reverse(mapStr.begin(), mapStr.end());
|
2007-08-07 13:49:15 +00:00
|
|
|
for(int v=0; v<mapStr.size(); ++v)
|
|
|
|
{
|
|
|
|
if(mapStr[v]=='1')
|
|
|
|
{
|
2007-08-11 14:58:07 +00:00
|
|
|
nobj.visitMap[v/8] |= (128 >> (v%8));
|
2007-08-07 13:49:15 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
for(int yy=0; yy<2; ++yy)
|
2007-07-03 08:10:37 +00:00
|
|
|
inp>>dump;
|
|
|
|
inp>>nobj.type;
|
|
|
|
inp>>nobj.subtype;
|
|
|
|
inp>>nobj.objType;
|
|
|
|
inp>>nobj.priority;
|
|
|
|
objs.push_back(nobj);
|
|
|
|
}
|
|
|
|
}
|
2007-10-25 16:14:43 +00:00
|
|
|
|
|
|
|
bool DefObjInfo::isVisitable() const
|
|
|
|
{
|
|
|
|
for(int g=0; g<6; ++g)
|
|
|
|
{
|
|
|
|
if(visitMap[g]!=0)
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|