#include "../stdafx.h" #include "CObjectHandler.h" #include "../CGameInfo.h" #include "CGeneralTextHandler.h" #include "CLodHandler.h" #include "CAmbarCendamo.h" #include "../mapHandler.h" #include "CDefObjInfoHandler.h" #include "../CLua.h" #include "CHeroHandler.h" #include void CObjectHandler::loadObjects() { int ID=0; std::string buf = CGameInfo::mainObj->bitmaph->getTextFile("OBJNAMES.TXT"); int it=0; while (itbitmaph->getTextFile("ADVEVENT.TXT"); it=0; std::string temp; while (itbitmaph->getTextFile("XTRAINFO.TXT"); it=0; while (itbitmaph->getTextFile("MINENAME.TXT"); it=0; while (it(temp,"")); } buf = CGameInfo::mainObj->bitmaph->getTextFile("MINEEVNT.TXT"); it=0; int i=0; while (itbitmaph->getTextFile("RESTYPES.TXT"); it=0; while (it> dw >> cr; cregens[dw]=cr; } ifs.close(); ifs.clear(); buf = CGameInfo::mainObj->bitmaph->getTextFile("ZCRGN1.TXT"); it=0; while (itowner; //else return tempOwner; //won't have owner } void CGObjectInstance::setOwner(int ow) { //if (state) // state->owner = ow; //else tempOwner = ow; } int CGObjectInstance::getWidth() const//returns width of object graphic in tiles { return defInfo->handler->ourImages[0].bitmap->w/32; } int CGObjectInstance::getHeight() const //returns height of object graphic in tiles { return defInfo->handler->ourImages[0].bitmap->h/32; } bool CGObjectInstance::visitableAt(int x, int y) const //returns true if ibject is visitable at location (x, y) form left top tile of image (x, y in tiles) { if(x<0 || y<0 || x>=getWidth() || y>=getHeight() || defInfo==NULL) return false; if((defInfo->visitMap[y+6-getHeight()] >> (7-(8-getWidth()+x) )) & 1) return true; return false; } bool CGObjectInstance::operator<(const CGObjectInstance & cmp) const //screen printing priority comparing { if(defInfo->printPriority==1 && cmp.defInfo->printPriority==0) return true; if(cmp.defInfo->printPriority==1 && defInfo->printPriority==0) return false; if(this->pos.ypos.y>cmp.pos.y) return false; if(cmp.ID==34 && ID!=34) return true; if(cmp.ID!=34 && ID==34) return false; if(!defInfo->isVisitable() && cmp.defInfo->isVisitable()) return true; if(!cmp.defInfo->isVisitable() && defInfo->isVisitable()) return false; //if(defInfo->isOnDefList && !(cmp.defInfo->isOnDefList)) // return true; //if(cmp.defInfo->isOnDefList && !(defInfo->isOnDefList)) // return false; if(this->pos.xheroClass->terrCosts[ttype]; switch(rdtype) { case Eroad::dirtRoad: ret*=0.75; break; case Eroad::grazvelRoad: ret*=0.667; break; case Eroad::cobblestoneRoad: ret*=0.5; break; } return ret; } unsigned int CGHeroInstance::getLowestCreatureSpeed() { unsigned int sl = 100; for(int h=0; hspeedspeed; } return sl; } int3 CGHeroInstance::convertPosition(int3 src, bool toh3m) //toh3m=true: manifest->h3m; toh3m=false: h3m->manifest { if (toh3m) { src.x+=1; return src; } else { src.x-=1; return src; } } int3 CGHeroInstance::getPosition(bool h3m) const //h3m=true - returns position of hero object; h3m=false - returns position of hero 'manifestation' { if (h3m) return pos; else return convertPosition(pos,false); } int CGHeroInstance::getSightDistance() const //returns sight distance of this hero { return 6; } void CGHeroInstance::setPosition(int3 Pos, bool h3m) //as above, but sets position { if (h3m) pos = Pos; else pos = convertPosition(Pos,true); } bool CGHeroInstance::canWalkOnSea() const { //TODO: write it - it should check if hero is flying, or something similiar return false; } int CGHeroInstance::getCurrentLuck() const { //TODO: write it return 0; } int CGHeroInstance::getCurrentMorale() const { //TODO: write it return 0; } int CGHeroInstance::getSecSkillLevel(int ID) const { for(int i=0;iowner=-1; town=NULL; income = 500; visitingHero = NULL; } CGObjectInstance::CGObjectInstance() { //std::cout << "Tworze obiekt "<); //*state = *right.state; //state = right.state; tempOwner = right.tempOwner; } CGObjectInstance& CGObjectInstance::operator=(const CGObjectInstance & right) { pos = right.pos; ID = right.ID; subID = right.subID; id = right.id; defInfo = right.defInfo; info = right.info; blockVisit = right.blockVisit; //state = new CLuaObjectScript(); //*state = *right.state; tempOwner = right.tempOwner; return *this; }