Rename ThingType classes
This commit is contained in:
parent
09b4705a33
commit
a6d53532d2
|
@ -567,6 +567,7 @@ void Application::registerLuaFunctions()
|
||||||
g_lua.bindClassMemberFunction<UIGridLayout>("setCellWidth", &UIGridLayout::setCellWidth);
|
g_lua.bindClassMemberFunction<UIGridLayout>("setCellWidth", &UIGridLayout::setCellWidth);
|
||||||
g_lua.bindClassMemberFunction<UIGridLayout>("setCellHeight", &UIGridLayout::setCellHeight);
|
g_lua.bindClassMemberFunction<UIGridLayout>("setCellHeight", &UIGridLayout::setCellHeight);
|
||||||
g_lua.bindClassMemberFunction<UIGridLayout>("setCellSpacing", &UIGridLayout::setCellSpacing);
|
g_lua.bindClassMemberFunction<UIGridLayout>("setCellSpacing", &UIGridLayout::setCellSpacing);
|
||||||
|
g_lua.bindClassMemberFunction<UIGridLayout>("setFlow", &UIGridLayout::setFlow);
|
||||||
g_lua.bindClassMemberFunction<UIGridLayout>("setNumColumns", &UIGridLayout::setNumColumns);
|
g_lua.bindClassMemberFunction<UIGridLayout>("setNumColumns", &UIGridLayout::setNumColumns);
|
||||||
g_lua.bindClassMemberFunction<UIGridLayout>("setNumLines", &UIGridLayout::setNumLines);
|
g_lua.bindClassMemberFunction<UIGridLayout>("setNumLines", &UIGridLayout::setNumLines);
|
||||||
g_lua.bindClassMemberFunction<UIGridLayout>("asUIGridLayout", &UIGridLayout::asUIGridLayout);
|
g_lua.bindClassMemberFunction<UIGridLayout>("asUIGridLayout", &UIGridLayout::asUIGridLayout);
|
||||||
|
|
|
@ -69,10 +69,10 @@ set(otclient_SOURCES ${otclient_SOURCES}
|
||||||
${CMAKE_CURRENT_LIST_DIR}/thing.h
|
${CMAKE_CURRENT_LIST_DIR}/thing.h
|
||||||
${CMAKE_CURRENT_LIST_DIR}/thingtypemanager.cpp
|
${CMAKE_CURRENT_LIST_DIR}/thingtypemanager.cpp
|
||||||
${CMAKE_CURRENT_LIST_DIR}/thingtypemanager.h
|
${CMAKE_CURRENT_LIST_DIR}/thingtypemanager.h
|
||||||
${CMAKE_CURRENT_LIST_DIR}/thingtypedat.cpp
|
${CMAKE_CURRENT_LIST_DIR}/thingtype.cpp
|
||||||
${CMAKE_CURRENT_LIST_DIR}/thingtypedat.h
|
${CMAKE_CURRENT_LIST_DIR}/thingtype.h
|
||||||
${CMAKE_CURRENT_LIST_DIR}/thingtypeotb.cpp
|
${CMAKE_CURRENT_LIST_DIR}/itemtype.cpp
|
||||||
${CMAKE_CURRENT_LIST_DIR}/thingtypeotb.h
|
${CMAKE_CURRENT_LIST_DIR}/itemtype.h
|
||||||
${CMAKE_CURRENT_LIST_DIR}/tile.cpp
|
${CMAKE_CURRENT_LIST_DIR}/tile.cpp
|
||||||
${CMAKE_CURRENT_LIST_DIR}/tile.h
|
${CMAKE_CURRENT_LIST_DIR}/tile.h
|
||||||
${CMAKE_CURRENT_LIST_DIR}/houses.cpp
|
${CMAKE_CURRENT_LIST_DIR}/houses.cpp
|
||||||
|
|
|
@ -113,7 +113,7 @@ void Creature::internalDrawOutfit(const Point& dest, float scaleFactor, bool ani
|
||||||
if(yPattern > 0 && !(m_outfit.getAddons() & (1 << (yPattern-1))))
|
if(yPattern > 0 && !(m_outfit.getAddons() & (1 << (yPattern-1))))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
auto datType = rawGetDatType();
|
auto datType = rawGetThingType();
|
||||||
datType->draw(dest, scaleFactor, 0, xPattern, yPattern, 0, animationPhase);
|
datType->draw(dest, scaleFactor, 0, xPattern, yPattern, 0, animationPhase);
|
||||||
|
|
||||||
if(getLayers() > 1) {
|
if(getLayers() > 1) {
|
||||||
|
@ -155,7 +155,7 @@ void Creature::internalDrawOutfit(const Point& dest, float scaleFactor, bool ani
|
||||||
if(m_outfit.getCategory() == DatEffectCategory)
|
if(m_outfit.getCategory() == DatEffectCategory)
|
||||||
animationPhase = std::min(animationPhase+1, getAnimationPhases());
|
animationPhase = std::min(animationPhase+1, getAnimationPhases());
|
||||||
|
|
||||||
rawGetDatType()->draw(dest, scaleFactor, 0, 0, 0, 0, animationPhase);
|
rawGetThingType()->draw(dest, scaleFactor, 0, 0, 0, 0, animationPhase);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -551,12 +551,12 @@ Point Creature::getDrawOffset()
|
||||||
return drawOffset;
|
return drawOffset;
|
||||||
}
|
}
|
||||||
|
|
||||||
const ThingTypeDatPtr& Creature::getDatType()
|
const ThingTypePtr& Creature::getThingType()
|
||||||
{
|
{
|
||||||
return g_things.getDatType(m_outfit.getId(), m_outfit.getCategory());
|
return g_things.getThingType(m_outfit.getId(), m_outfit.getCategory());
|
||||||
}
|
}
|
||||||
|
|
||||||
ThingTypeDat* Creature::rawGetDatType()
|
ThingType* Creature::rawGetThingType()
|
||||||
{
|
{
|
||||||
return g_things.rawGetDatType(m_outfit.getId(), m_outfit.getCategory());
|
return g_things.rawGetThingType(m_outfit.getId(), m_outfit.getCategory());
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,8 +96,8 @@ public:
|
||||||
CreaturePtr asCreature() { return std::static_pointer_cast<Creature>(shared_from_this()); }
|
CreaturePtr asCreature() { return std::static_pointer_cast<Creature>(shared_from_this()); }
|
||||||
bool isCreature() { return true; }
|
bool isCreature() { return true; }
|
||||||
|
|
||||||
const ThingTypeDatPtr& getDatType();
|
const ThingTypePtr& getThingType();
|
||||||
ThingTypeDat *rawGetDatType();
|
ThingType *rawGetThingType();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void updateWalkAnimation(int totalPixelsWalked);
|
virtual void updateWalkAnimation(int totalPixelsWalked);
|
||||||
|
|
|
@ -44,8 +44,8 @@ class Effect;
|
||||||
class Missile;
|
class Missile;
|
||||||
class AnimatedText;
|
class AnimatedText;
|
||||||
class StaticText;
|
class StaticText;
|
||||||
class ThingTypeDat;
|
class ThingType;
|
||||||
class ThingTypeOtb;
|
class ItemType;
|
||||||
class House;
|
class House;
|
||||||
class Town;
|
class Town;
|
||||||
class CreatureType;
|
class CreatureType;
|
||||||
|
@ -64,15 +64,15 @@ typedef std::shared_ptr<Effect> EffectPtr;
|
||||||
typedef std::shared_ptr<Missile> MissilePtr;
|
typedef std::shared_ptr<Missile> MissilePtr;
|
||||||
typedef std::shared_ptr<AnimatedText> AnimatedTextPtr;
|
typedef std::shared_ptr<AnimatedText> AnimatedTextPtr;
|
||||||
typedef std::shared_ptr<StaticText> StaticTextPtr;
|
typedef std::shared_ptr<StaticText> StaticTextPtr;
|
||||||
typedef std::shared_ptr<ThingTypeDat> ThingTypeDatPtr;
|
typedef std::shared_ptr<ThingType> ThingTypePtr;
|
||||||
typedef std::shared_ptr<ThingTypeOtb> ThingTypeOtbPtr;
|
typedef std::shared_ptr<ItemType> ItemTypePtr;
|
||||||
typedef std::shared_ptr<House> HousePtr;
|
typedef std::shared_ptr<House> HousePtr;
|
||||||
typedef std::shared_ptr<Town> TownPtr;
|
typedef std::shared_ptr<Town> TownPtr;
|
||||||
typedef std::shared_ptr<CreatureType> CreatureTypePtr;
|
typedef std::shared_ptr<CreatureType> CreatureTypePtr;
|
||||||
|
|
||||||
typedef std::vector<ThingPtr> ThingList;
|
typedef std::vector<ThingPtr> ThingList;
|
||||||
typedef std::vector<ThingTypeDatPtr> ThingTypeDatList;
|
typedef std::vector<ThingTypePtr> ThingTypeList;
|
||||||
typedef std::vector<ThingTypeOtbPtr> ThingTypeOtbList;
|
typedef std::vector<ItemTypePtr> ItemTypeList;
|
||||||
typedef std::vector<HousePtr> HouseList;
|
typedef std::vector<HousePtr> HouseList;
|
||||||
typedef std::vector<TownPtr> TownList;
|
typedef std::vector<TownPtr> TownList;
|
||||||
typedef std::unordered_map<Position, TilePtr, PositionHasher> TileMap;
|
typedef std::unordered_map<Position, TilePtr, PositionHasher> TileMap;
|
||||||
|
|
|
@ -32,7 +32,7 @@ void Effect::draw(const Point& dest, float scaleFactor, bool animate)
|
||||||
int animationPhase = 0;
|
int animationPhase = 0;
|
||||||
if(animate)
|
if(animate)
|
||||||
animationPhase = std::min((int)(m_animationTimer.ticksElapsed() / Otc::EFFECT_TICKS_PER_FRAME), getAnimationPhases() - 1);
|
animationPhase = std::min((int)(m_animationTimer.ticksElapsed() / Otc::EFFECT_TICKS_PER_FRAME), getAnimationPhases() - 1);
|
||||||
rawGetDatType()->draw(dest, scaleFactor, 0, 0, 0, 0, animationPhase);
|
rawGetThingType()->draw(dest, scaleFactor, 0, 0, 0, 0, animationPhase);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Effect::startAnimation()
|
void Effect::startAnimation()
|
||||||
|
@ -51,12 +51,12 @@ void Effect::setId(uint32 id)
|
||||||
m_id = id;
|
m_id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
const ThingTypeDatPtr& Effect::getDatType()
|
const ThingTypePtr& Effect::getThingType()
|
||||||
{
|
{
|
||||||
return g_things.getDatType(m_id, DatEffectCategory);
|
return g_things.getThingType(m_id, DatEffectCategory);
|
||||||
}
|
}
|
||||||
|
|
||||||
ThingTypeDat *Effect::rawGetDatType()
|
ThingType *Effect::rawGetThingType()
|
||||||
{
|
{
|
||||||
return g_things.rawGetDatType(m_id, DatEffectCategory);
|
return g_things.rawGetThingType(m_id, DatEffectCategory);
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,8 +41,8 @@ public:
|
||||||
EffectPtr asEffect() { return std::static_pointer_cast<Effect>(shared_from_this()); }
|
EffectPtr asEffect() { return std::static_pointer_cast<Effect>(shared_from_this()); }
|
||||||
bool isEffect() { return true; }
|
bool isEffect() { return true; }
|
||||||
|
|
||||||
const ThingTypeDatPtr& getDatType();
|
const ThingTypePtr& getThingType();
|
||||||
ThingTypeDat *rawGetDatType();
|
ThingType *rawGetThingType();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Timer m_animationTimer;
|
Timer m_animationTimer;
|
||||||
|
|
|
@ -171,7 +171,7 @@ void Item::draw(const Point& dest, float scaleFactor, bool animate)
|
||||||
zPattern = m_position.z % getNumPatternZ();
|
zPattern = m_position.z % getNumPatternZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
rawGetDatType()->draw(dest, scaleFactor, 0, xPattern, yPattern, zPattern, animationPhase);
|
rawGetThingType()->draw(dest, scaleFactor, 0, xPattern, yPattern, zPattern, animationPhase);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Item::setId(uint32 id)
|
void Item::setId(uint32 id)
|
||||||
|
@ -187,7 +187,7 @@ void Item::setOtbId(uint16 id)
|
||||||
{
|
{
|
||||||
if(!g_things.isValidOtbId(id))
|
if(!g_things.isValidOtbId(id))
|
||||||
id = 0;
|
id = 0;
|
||||||
auto otbType = g_things.getOtbType(id);
|
auto otbType = g_things.getItemType(id);
|
||||||
m_id = otbType->getClientId();
|
m_id = otbType->getClientId();
|
||||||
m_otbId = id;
|
m_otbId = id;
|
||||||
}
|
}
|
||||||
|
@ -265,7 +265,7 @@ void Item::unserializeItem(const BinaryTreePtr &in)
|
||||||
|
|
||||||
bool Item::isMoveable()
|
bool Item::isMoveable()
|
||||||
{
|
{
|
||||||
return !rawGetDatType()->isNotMoveable();
|
return !rawGetThingType()->isNotMoveable();
|
||||||
}
|
}
|
||||||
|
|
||||||
ItemPtr Item::clone()
|
ItemPtr Item::clone()
|
||||||
|
@ -275,12 +275,12 @@ ItemPtr Item::clone()
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
const ThingTypeDatPtr& Item::getDatType()
|
const ThingTypePtr& Item::getThingType()
|
||||||
{
|
{
|
||||||
return g_things.getDatType(m_id, DatItemCategory);
|
return g_things.getThingType(m_id, DatItemCategory);
|
||||||
}
|
}
|
||||||
|
|
||||||
ThingTypeDat* Item::rawGetDatType()
|
ThingType* Item::rawGetThingType()
|
||||||
{
|
{
|
||||||
return g_things.rawGetDatType(m_id, DatItemCategory);
|
return g_things.rawGetThingType(m_id, DatItemCategory);
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
#include <framework/global.h>
|
#include <framework/global.h>
|
||||||
#include <framework/util/attribstorage.h>
|
#include <framework/util/attribstorage.h>
|
||||||
#include "thing.h"
|
#include "thing.h"
|
||||||
#include "thingtypeotb.h"
|
#include "itemtype.h"
|
||||||
|
|
||||||
enum AttrTypes_t
|
enum AttrTypes_t
|
||||||
{
|
{
|
||||||
|
@ -117,8 +117,8 @@ public:
|
||||||
ItemPtr asItem() { return std::static_pointer_cast<Item>(shared_from_this()); }
|
ItemPtr asItem() { return std::static_pointer_cast<Item>(shared_from_this()); }
|
||||||
bool isItem() { return true; }
|
bool isItem() { return true; }
|
||||||
|
|
||||||
const ThingTypeDatPtr& getDatType();
|
const ThingTypePtr& getThingType();
|
||||||
ThingTypeDat *rawGetDatType();
|
ThingType *rawGetThingType();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
uint16 m_id;
|
uint16 m_id;
|
||||||
|
|
|
@ -22,17 +22,17 @@
|
||||||
|
|
||||||
|
|
||||||
#include "thingtypemanager.h"
|
#include "thingtypemanager.h"
|
||||||
#include "thingtypeotb.h"
|
#include "thingtype.h"
|
||||||
|
|
||||||
#include <framework/core/filestream.h>
|
#include <framework/core/filestream.h>
|
||||||
#include <framework/core/binarytree.h>
|
#include <framework/core/binarytree.h>
|
||||||
|
|
||||||
ThingTypeOtb::ThingTypeOtb()
|
ItemType::ItemType()
|
||||||
{
|
{
|
||||||
m_category = OtbInvalidCateogry;
|
m_category = OtbInvalidCateogry;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ThingTypeOtb::unserialize(const BinaryTreePtr& node)
|
void ItemType::unserialize(const BinaryTreePtr& node)
|
||||||
{
|
{
|
||||||
m_null = false;
|
m_null = false;
|
||||||
|
|
||||||
|
@ -53,10 +53,10 @@ void ThingTypeOtb::unserialize(const BinaryTreePtr& node)
|
||||||
if(serverId > 20000 && serverId < 20100) {
|
if(serverId > 20000 && serverId < 20100) {
|
||||||
serverId -= 20000;
|
serverId -= 20000;
|
||||||
} else if(lastId > 99 && lastId != serverId - 1) {
|
} else if(lastId > 99 && lastId != serverId - 1) {
|
||||||
static ThingTypeOtbPtr dummyType(g_things.getNullOtbType());
|
static ItemTypePtr dummyType(g_things.getNullItemType());
|
||||||
while(lastId != serverId - 1) {
|
while(lastId != serverId - 1) {
|
||||||
dummyType->setServerId(++lastId);
|
dummyType->setServerId(++lastId);
|
||||||
g_things.addOtbType(dummyType);
|
g_things.addItemType(dummyType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
assert(len == 2);
|
assert(len == 2);
|
|
@ -21,8 +21,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#ifndef THINGTYPEOTB_H
|
#ifndef ITEMTYPE_H
|
||||||
#define THINGTYPEOTB_H
|
#define ITEMTYPE_H
|
||||||
|
|
||||||
#include <framework/core/declarations.h>
|
#include <framework/core/declarations.h>
|
||||||
#include <framework/luaengine/luaobject.h>
|
#include <framework/luaengine/luaobject.h>
|
||||||
|
@ -82,10 +82,10 @@ enum OtbAttrib {
|
||||||
OtbLastAttrib
|
OtbLastAttrib
|
||||||
};
|
};
|
||||||
|
|
||||||
class ThingTypeOtb : public LuaObject
|
class ItemType : public LuaObject
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ThingTypeOtb();
|
ItemType();
|
||||||
|
|
||||||
void unserialize(const BinaryTreePtr& node);
|
void unserialize(const BinaryTreePtr& node);
|
||||||
|
|
|
@ -63,7 +63,7 @@ void Missile::draw(const Point& dest, float scaleFactor, bool animate)
|
||||||
}
|
}
|
||||||
|
|
||||||
float fraction = m_animationTimer.ticksElapsed() / m_duration;
|
float fraction = m_animationTimer.ticksElapsed() / m_duration;
|
||||||
rawGetDatType()->draw(dest + m_delta * fraction * scaleFactor, scaleFactor, 0, xPattern, yPattern, 0, 0);
|
rawGetThingType()->draw(dest + m_delta * fraction * scaleFactor, scaleFactor, 0, xPattern, yPattern, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Missile::setPath(const Position& fromPosition, const Position& toPosition)
|
void Missile::setPath(const Position& fromPosition, const Position& toPosition)
|
||||||
|
@ -88,12 +88,12 @@ void Missile::setId(uint32 id)
|
||||||
m_id = id;
|
m_id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
const ThingTypeDatPtr& Missile::getDatType()
|
const ThingTypePtr& Missile::getThingType()
|
||||||
{
|
{
|
||||||
return g_things.getDatType(m_id, DatMissileCategory);
|
return g_things.getThingType(m_id, DatMissileCategory);
|
||||||
}
|
}
|
||||||
|
|
||||||
ThingTypeDat* Missile::rawGetDatType()
|
ThingType* Missile::rawGetThingType()
|
||||||
{
|
{
|
||||||
return g_things.rawGetDatType(m_id, DatMissileCategory);
|
return g_things.rawGetThingType(m_id, DatMissileCategory);
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,8 +45,8 @@ public:
|
||||||
MissilePtr asMissile() { return std::static_pointer_cast<Missile>(shared_from_this()); }
|
MissilePtr asMissile() { return std::static_pointer_cast<Missile>(shared_from_this()); }
|
||||||
bool isMissile() { return true; }
|
bool isMissile() { return true; }
|
||||||
|
|
||||||
const ThingTypeDatPtr& getDatType();
|
const ThingTypePtr& getThingType();
|
||||||
ThingTypeDat *rawGetDatType();
|
ThingType *rawGetThingType();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Timer m_animationTimer;
|
Timer m_animationTimer;
|
||||||
|
|
|
@ -75,12 +75,12 @@ int Thing::getStackpos()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const ThingTypeDatPtr& Thing::getDatType()
|
const ThingTypePtr& Thing::getThingType()
|
||||||
{
|
{
|
||||||
return g_things.getNullDatType();
|
return g_things.getNullThingType();
|
||||||
}
|
}
|
||||||
|
|
||||||
ThingTypeDat* Thing::rawGetDatType()
|
ThingType* Thing::rawGetThingType()
|
||||||
{
|
{
|
||||||
return g_things.getNullDatType().get();
|
return g_things.getNullThingType().get();
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#define THING_H
|
#define THING_H
|
||||||
|
|
||||||
#include "declarations.h"
|
#include "declarations.h"
|
||||||
#include "thingtypedat.h"
|
#include "thingtype.h"
|
||||||
#include "thingtypemanager.h"
|
#include "thingtypemanager.h"
|
||||||
#include <framework/luaengine/luaobject.h>
|
#include <framework/luaengine/luaobject.h>
|
||||||
|
|
||||||
|
@ -73,63 +73,63 @@ public:
|
||||||
virtual bool isStaticText() { return false; }
|
virtual bool isStaticText() { return false; }
|
||||||
|
|
||||||
// type shortcuts
|
// type shortcuts
|
||||||
virtual const ThingTypeDatPtr& getDatType();
|
virtual const ThingTypePtr& getThingType();
|
||||||
virtual ThingTypeDat *rawGetDatType();
|
virtual ThingType *rawGetThingType();
|
||||||
Size getSize() { return rawGetDatType()->getSize(); }
|
Size getSize() { return rawGetThingType()->getSize(); }
|
||||||
int getWidth() { return rawGetDatType()->getWidth(); }
|
int getWidth() { return rawGetThingType()->getWidth(); }
|
||||||
int getHeight() { return rawGetDatType()->getHeight(); }
|
int getHeight() { return rawGetThingType()->getHeight(); }
|
||||||
Point getDisplacement() { return rawGetDatType()->getDisplacement(); }
|
Point getDisplacement() { return rawGetThingType()->getDisplacement(); }
|
||||||
int getDisplacementX() { return rawGetDatType()->getDisplacementX(); }
|
int getDisplacementX() { return rawGetThingType()->getDisplacementX(); }
|
||||||
int getDisplacementY() { return rawGetDatType()->getDisplacementY(); }
|
int getDisplacementY() { return rawGetThingType()->getDisplacementY(); }
|
||||||
int getExactSize() { return rawGetDatType()->getExactSize(); }
|
int getExactSize() { return rawGetThingType()->getExactSize(); }
|
||||||
int getLayers() { return rawGetDatType()->getLayers(); }
|
int getLayers() { return rawGetThingType()->getLayers(); }
|
||||||
int getNumPatternX() { return rawGetDatType()->getNumPatternX(); }
|
int getNumPatternX() { return rawGetThingType()->getNumPatternX(); }
|
||||||
int getNumPatternY() { return rawGetDatType()->getNumPatternY(); }
|
int getNumPatternY() { return rawGetThingType()->getNumPatternY(); }
|
||||||
int getNumPatternZ() { return rawGetDatType()->getNumPatternZ(); }
|
int getNumPatternZ() { return rawGetThingType()->getNumPatternZ(); }
|
||||||
int getAnimationPhases() { return rawGetDatType()->getAnimationPhases(); }
|
int getAnimationPhases() { return rawGetThingType()->getAnimationPhases(); }
|
||||||
int getGroundSpeed() { return rawGetDatType()->getGroundSpeed(); }
|
int getGroundSpeed() { return rawGetThingType()->getGroundSpeed(); }
|
||||||
int getMaxTextLength() { return rawGetDatType()->getMaxTextLength(); }
|
int getMaxTextLength() { return rawGetThingType()->getMaxTextLength(); }
|
||||||
Light getLight() { return rawGetDatType()->getLight(); }
|
Light getLight() { return rawGetThingType()->getLight(); }
|
||||||
int getMinimapColor() { return rawGetDatType()->getMinimapColor(); }
|
int getMinimapColor() { return rawGetThingType()->getMinimapColor(); }
|
||||||
int getLensHelp() { return rawGetDatType()->getLensHelp(); }
|
int getLensHelp() { return rawGetThingType()->getLensHelp(); }
|
||||||
int getClothSlot() { return rawGetDatType()->getClothSlot(); }
|
int getClothSlot() { return rawGetThingType()->getClothSlot(); }
|
||||||
int getElevation() { return rawGetDatType()->getElevation(); }
|
int getElevation() { return rawGetThingType()->getElevation(); }
|
||||||
bool isGround() { return rawGetDatType()->isGround(); }
|
bool isGround() { return rawGetThingType()->isGround(); }
|
||||||
bool isGroundBorder() { return rawGetDatType()->isGroundBorder(); }
|
bool isGroundBorder() { return rawGetThingType()->isGroundBorder(); }
|
||||||
bool isOnBottom() { return rawGetDatType()->isOnBottom(); }
|
bool isOnBottom() { return rawGetThingType()->isOnBottom(); }
|
||||||
bool isOnTop() { return rawGetDatType()->isOnTop(); }
|
bool isOnTop() { return rawGetThingType()->isOnTop(); }
|
||||||
bool isContainer() { return rawGetDatType()->isContainer(); }
|
bool isContainer() { return rawGetThingType()->isContainer(); }
|
||||||
bool isStackable() { return rawGetDatType()->isStackable(); }
|
bool isStackable() { return rawGetThingType()->isStackable(); }
|
||||||
bool isForceUse() { return rawGetDatType()->isForceUse(); }
|
bool isForceUse() { return rawGetThingType()->isForceUse(); }
|
||||||
bool isMultiUse() { return rawGetDatType()->isMultiUse(); }
|
bool isMultiUse() { return rawGetThingType()->isMultiUse(); }
|
||||||
bool isWritable() { return rawGetDatType()->isWritable(); }
|
bool isWritable() { return rawGetThingType()->isWritable(); }
|
||||||
bool isChargeable() { return rawGetDatType()->isChargeable(); }
|
bool isChargeable() { return rawGetThingType()->isChargeable(); }
|
||||||
bool isWritableOnce() { return rawGetDatType()->isWritableOnce(); }
|
bool isWritableOnce() { return rawGetThingType()->isWritableOnce(); }
|
||||||
bool isFluidContainer() { return rawGetDatType()->isFluidContainer(); }
|
bool isFluidContainer() { return rawGetThingType()->isFluidContainer(); }
|
||||||
bool isSplash() { return rawGetDatType()->isSplash(); }
|
bool isSplash() { return rawGetThingType()->isSplash(); }
|
||||||
bool isNotWalkable() { return rawGetDatType()->isNotWalkable(); }
|
bool isNotWalkable() { return rawGetThingType()->isNotWalkable(); }
|
||||||
bool isNotMoveable() { return rawGetDatType()->isNotMoveable(); }
|
bool isNotMoveable() { return rawGetThingType()->isNotMoveable(); }
|
||||||
bool blockProjectile() { return rawGetDatType()->blockProjectile(); }
|
bool blockProjectile() { return rawGetThingType()->blockProjectile(); }
|
||||||
bool isNotPathable() { return rawGetDatType()->isNotPathable(); }
|
bool isNotPathable() { return rawGetThingType()->isNotPathable(); }
|
||||||
bool isPickupable() { return rawGetDatType()->isPickupable(); }
|
bool isPickupable() { return rawGetThingType()->isPickupable(); }
|
||||||
bool isHangable() { return rawGetDatType()->isHangable(); }
|
bool isHangable() { return rawGetThingType()->isHangable(); }
|
||||||
bool isHookSouth() { return rawGetDatType()->isHookSouth(); }
|
bool isHookSouth() { return rawGetThingType()->isHookSouth(); }
|
||||||
bool isHookEast() { return rawGetDatType()->isHookEast(); }
|
bool isHookEast() { return rawGetThingType()->isHookEast(); }
|
||||||
bool isRotateable() { return rawGetDatType()->isRotateable(); }
|
bool isRotateable() { return rawGetThingType()->isRotateable(); }
|
||||||
bool hasLight() { return rawGetDatType()->hasLight(); }
|
bool hasLight() { return rawGetThingType()->hasLight(); }
|
||||||
bool isDontHide() { return rawGetDatType()->isDontHide(); }
|
bool isDontHide() { return rawGetThingType()->isDontHide(); }
|
||||||
bool isTranslucent() { return rawGetDatType()->isTranslucent(); }
|
bool isTranslucent() { return rawGetThingType()->isTranslucent(); }
|
||||||
bool hasDisplacement() { return rawGetDatType()->hasDisplacement(); }
|
bool hasDisplacement() { return rawGetThingType()->hasDisplacement(); }
|
||||||
bool hasElevation() { return rawGetDatType()->hasElevation(); }
|
bool hasElevation() { return rawGetThingType()->hasElevation(); }
|
||||||
bool isLyingCorpse() { return rawGetDatType()->isLyingCorpse(); }
|
bool isLyingCorpse() { return rawGetThingType()->isLyingCorpse(); }
|
||||||
bool isAnimateAlways() { return rawGetDatType()->isAnimateAlways(); }
|
bool isAnimateAlways() { return rawGetThingType()->isAnimateAlways(); }
|
||||||
bool hasMiniMapColor() { return rawGetDatType()->hasMiniMapColor(); }
|
bool hasMiniMapColor() { return rawGetThingType()->hasMiniMapColor(); }
|
||||||
bool hasLensHelp() { return rawGetDatType()->hasLensHelp(); }
|
bool hasLensHelp() { return rawGetThingType()->hasLensHelp(); }
|
||||||
bool isFullGround() { return rawGetDatType()->isFullGround(); }
|
bool isFullGround() { return rawGetThingType()->isFullGround(); }
|
||||||
bool isIgnoreLook() { return rawGetDatType()->isIgnoreLook(); }
|
bool isIgnoreLook() { return rawGetThingType()->isIgnoreLook(); }
|
||||||
bool isCloth() { return rawGetDatType()->isCloth(); }
|
bool isCloth() { return rawGetThingType()->isCloth(); }
|
||||||
bool isMarketable() { return rawGetDatType()->isMarketable(); }
|
bool isMarketable() { return rawGetThingType()->isMarketable(); }
|
||||||
MarketData getMarketData() { return rawGetDatType()->getMarketData(); }
|
MarketData getMarketData() { return rawGetThingType()->getMarketData(); }
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
* THE SOFTWARE.
|
* THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "thingtypedat.h"
|
#include "thingtype.h"
|
||||||
#include "spritemanager.h"
|
#include "spritemanager.h"
|
||||||
#include "game.h"
|
#include "game.h"
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
#include <framework/graphics/texturemanager.h>
|
#include <framework/graphics/texturemanager.h>
|
||||||
#include <framework/core/filestream.h>
|
#include <framework/core/filestream.h>
|
||||||
|
|
||||||
ThingTypeDat::ThingTypeDat()
|
ThingType::ThingType()
|
||||||
{
|
{
|
||||||
m_category = DatInvalidCategory;
|
m_category = DatInvalidCategory;
|
||||||
m_id = 0;
|
m_id = 0;
|
||||||
|
@ -41,7 +41,7 @@ ThingTypeDat::ThingTypeDat()
|
||||||
m_layers = 0;
|
m_layers = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ThingTypeDat::unserialize(uint16 clientId, DatCategory category, const FileStreamPtr& fin)
|
void ThingType::unserialize(uint16 clientId, DatCategory category, const FileStreamPtr& fin)
|
||||||
{
|
{
|
||||||
m_null = false;
|
m_null = false;
|
||||||
m_id = clientId;
|
m_id = clientId;
|
||||||
|
@ -133,7 +133,7 @@ void ThingTypeDat::unserialize(uint16 clientId, DatCategory category, const File
|
||||||
m_texturesFramesOffsets.resize(m_animationPhases);
|
m_texturesFramesOffsets.resize(m_animationPhases);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ThingTypeDat::draw(const Point& dest, float scaleFactor, int layer, int xPattern, int yPattern, int zPattern, int animationPhase)
|
void ThingType::draw(const Point& dest, float scaleFactor, int layer, int xPattern, int yPattern, int zPattern, int animationPhase)
|
||||||
{
|
{
|
||||||
if(m_null)
|
if(m_null)
|
||||||
return;
|
return;
|
||||||
|
@ -157,7 +157,7 @@ void ThingTypeDat::draw(const Point& dest, float scaleFactor, int layer, int xPa
|
||||||
g_painter->drawTexturedRect(screenRect, texture, textureRect);
|
g_painter->drawTexturedRect(screenRect, texture, textureRect);
|
||||||
}
|
}
|
||||||
|
|
||||||
const TexturePtr& ThingTypeDat::getTexture(int animationPhase)
|
const TexturePtr& ThingType::getTexture(int animationPhase)
|
||||||
{
|
{
|
||||||
TexturePtr& animationPhaseTexture = m_textures[animationPhase];
|
TexturePtr& animationPhaseTexture = m_textures[animationPhase];
|
||||||
if(!animationPhaseTexture) {
|
if(!animationPhaseTexture) {
|
||||||
|
@ -230,7 +230,7 @@ const TexturePtr& ThingTypeDat::getTexture(int animationPhase)
|
||||||
return animationPhaseTexture;
|
return animationPhaseTexture;
|
||||||
}
|
}
|
||||||
|
|
||||||
Size ThingTypeDat::getBestTextureDimension(int w, int h, int count)
|
Size ThingType::getBestTextureDimension(int w, int h, int count)
|
||||||
{
|
{
|
||||||
const int MAX = 32;
|
const int MAX = 32;
|
||||||
|
|
||||||
|
@ -264,7 +264,7 @@ Size ThingTypeDat::getBestTextureDimension(int w, int h, int count)
|
||||||
return bestDimension;
|
return bestDimension;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint ThingTypeDat::getSpriteIndex(int w, int h, int l, int x, int y, int z, int a) {
|
uint ThingType::getSpriteIndex(int w, int h, int l, int x, int y, int z, int a) {
|
||||||
uint index =
|
uint index =
|
||||||
((((((a % m_animationPhases)
|
((((((a % m_animationPhases)
|
||||||
* m_numPatternZ + z)
|
* m_numPatternZ + z)
|
||||||
|
@ -277,7 +277,7 @@ uint ThingTypeDat::getSpriteIndex(int w, int h, int l, int x, int y, int z, int
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint ThingTypeDat::getTextureIndex(int l, int x, int y, int z) {
|
uint ThingType::getTextureIndex(int l, int x, int y, int z) {
|
||||||
return ((l * m_numPatternZ + z)
|
return ((l * m_numPatternZ + z)
|
||||||
* m_numPatternY + y)
|
* m_numPatternY + y)
|
||||||
* m_numPatternX + x;
|
* m_numPatternX + x;
|
|
@ -104,10 +104,10 @@ struct Light {
|
||||||
uint8 color;
|
uint8 color;
|
||||||
};
|
};
|
||||||
|
|
||||||
class ThingTypeDat : public LuaObject
|
class ThingType : public LuaObject
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ThingTypeDat();
|
ThingType();
|
||||||
|
|
||||||
void unserialize(uint16 clientId, DatCategory category, const FileStreamPtr& fin);
|
void unserialize(uint16 clientId, DatCategory category, const FileStreamPtr& fin);
|
||||||
|
|
|
@ -23,8 +23,8 @@
|
||||||
#include "thingtypemanager.h"
|
#include "thingtypemanager.h"
|
||||||
#include "spritemanager.h"
|
#include "spritemanager.h"
|
||||||
#include "thing.h"
|
#include "thing.h"
|
||||||
#include "thingtypedat.h"
|
#include "thingtype.h"
|
||||||
#include "thingtypeotb.h"
|
#include "itemtype.h"
|
||||||
|
|
||||||
#include <framework/core/resourcemanager.h>
|
#include <framework/core/resourcemanager.h>
|
||||||
#include <framework/core/filestream.h>
|
#include <framework/core/filestream.h>
|
||||||
|
@ -35,8 +35,8 @@ ThingTypeManager g_things;
|
||||||
|
|
||||||
void ThingTypeManager::init()
|
void ThingTypeManager::init()
|
||||||
{
|
{
|
||||||
m_nullDatType = ThingTypeDatPtr(new ThingTypeDat);
|
m_nullThingType = ThingTypePtr(new ThingType);
|
||||||
m_nullOtbType = ThingTypeOtbPtr(new ThingTypeOtb);
|
m_nullItemType = ItemTypePtr(new ItemType);
|
||||||
m_datSignature = 0;
|
m_datSignature = 0;
|
||||||
m_otbMinorVersion = 0;
|
m_otbMinorVersion = 0;
|
||||||
m_otbMajorVersion = 0;
|
m_otbMajorVersion = 0;
|
||||||
|
@ -44,8 +44,8 @@ void ThingTypeManager::init()
|
||||||
m_xmlLoaded = false;
|
m_xmlLoaded = false;
|
||||||
m_otbLoaded = false;
|
m_otbLoaded = false;
|
||||||
for(int i = 0; i < DatLastCategory; ++i)
|
for(int i = 0; i < DatLastCategory; ++i)
|
||||||
m_datTypes[i].resize(1, m_nullDatType);
|
m_datTypes[i].resize(1, m_nullThingType);
|
||||||
m_otbTypes.resize(1, m_nullOtbType);
|
m_otbTypes.resize(1, m_nullItemType);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ThingTypeManager::terminate()
|
void ThingTypeManager::terminate()
|
||||||
|
@ -53,8 +53,8 @@ void ThingTypeManager::terminate()
|
||||||
for(int i = 0; i < DatLastCategory; ++i)
|
for(int i = 0; i < DatLastCategory; ++i)
|
||||||
m_datTypes[i].clear();
|
m_datTypes[i].clear();
|
||||||
m_otbTypes.clear();
|
m_otbTypes.clear();
|
||||||
m_nullDatType = nullptr;
|
m_nullThingType = nullptr;
|
||||||
m_nullOtbType = nullptr;
|
m_nullItemType = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ThingTypeManager::loadDat(const std::string& file)
|
bool ThingTypeManager::loadDat(const std::string& file)
|
||||||
|
@ -69,7 +69,7 @@ bool ThingTypeManager::loadDat(const std::string& file)
|
||||||
int numThings[DatLastCategory];
|
int numThings[DatLastCategory];
|
||||||
for(int category = 0; category < DatLastCategory; ++category) {
|
for(int category = 0; category < DatLastCategory; ++category) {
|
||||||
int count = fin->getU16() + 1;
|
int count = fin->getU16() + 1;
|
||||||
m_datTypes[category].resize(count, m_nullDatType);
|
m_datTypes[category].resize(count, m_nullThingType);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int category = 0; category < DatLastCategory; ++category) {
|
for(int category = 0; category < DatLastCategory; ++category) {
|
||||||
|
@ -77,7 +77,7 @@ bool ThingTypeManager::loadDat(const std::string& file)
|
||||||
if(category == DatItemCategory)
|
if(category == DatItemCategory)
|
||||||
firstId = 100;
|
firstId = 100;
|
||||||
for(uint16 id = firstId; id < m_datTypes[category].size(); ++id) {
|
for(uint16 id = firstId; id < m_datTypes[category].size(); ++id) {
|
||||||
ThingTypeDatPtr type(new ThingTypeDat);
|
ThingTypePtr type(new ThingType);
|
||||||
type->unserialize(id, (DatCategory)category, fin);
|
type->unserialize(id, (DatCategory)category, fin);
|
||||||
m_datTypes[category][id] = type;
|
m_datTypes[category][id] = type;
|
||||||
}
|
}
|
||||||
|
@ -112,11 +112,11 @@ void ThingTypeManager::loadOtb(const std::string& file)
|
||||||
root->getU32(); // build number
|
root->getU32(); // build number
|
||||||
root->skip(128); // description
|
root->skip(128); // description
|
||||||
|
|
||||||
m_otbTypes.resize(root->getChildren().size(), m_nullOtbType);
|
m_otbTypes.resize(root->getChildren().size(), m_nullItemType);
|
||||||
for(const BinaryTreePtr& node : root->getChildren()) {
|
for(const BinaryTreePtr& node : root->getChildren()) {
|
||||||
ThingTypeOtbPtr otbType(new ThingTypeOtb);
|
ItemTypePtr otbType(new ItemType);
|
||||||
otbType->unserialize(node);
|
otbType->unserialize(node);
|
||||||
addOtbType(otbType);
|
addItemType(otbType);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_otbLoaded = true;
|
m_otbLoaded = true;
|
||||||
|
@ -141,9 +141,9 @@ void ThingTypeManager::loadXml(const std::string& file)
|
||||||
uint16 id = element->readType<uint16>("id");
|
uint16 id = element->readType<uint16>("id");
|
||||||
if(id > 20000 && id < 20100) {
|
if(id > 20000 && id < 20100) {
|
||||||
id -= 20000;
|
id -= 20000;
|
||||||
ThingTypeOtbPtr newType(new ThingTypeOtb);
|
ItemTypePtr newType(new ItemType);
|
||||||
newType->setServerId(id);
|
newType->setServerId(id);
|
||||||
addOtbType(newType);
|
addItemType(newType);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(id != 0)
|
if(id != 0)
|
||||||
|
@ -166,12 +166,12 @@ void ThingTypeManager::parseItemType(uint16 id, TiXmlElement* elem)
|
||||||
if(serverId > 20000 && id < 20100) {
|
if(serverId > 20000 && id < 20100) {
|
||||||
serverId -= 20000;
|
serverId -= 20000;
|
||||||
|
|
||||||
ThingTypeOtbPtr newType(new ThingTypeOtb);
|
ItemTypePtr newType(new ItemType);
|
||||||
newType->setServerId(serverId);
|
newType->setServerId(serverId);
|
||||||
addOtbType(newType);
|
addItemType(newType);
|
||||||
}
|
}
|
||||||
|
|
||||||
ThingTypeOtbPtr otbType = getOtbType(serverId);
|
ItemTypePtr otbType = getItemType(serverId);
|
||||||
otbType->setName(elem->Attribute("name"));
|
otbType->setName(elem->Attribute("name"));
|
||||||
for(TiXmlElement* attrib = elem->FirstChildElement(); attrib; attrib = attrib->NextSiblingElement()) {
|
for(TiXmlElement* attrib = elem->FirstChildElement(); attrib; attrib = attrib->NextSiblingElement()) {
|
||||||
if(attrib->ValueStr() != "attribute")
|
if(attrib->ValueStr() != "attribute")
|
||||||
|
@ -184,41 +184,41 @@ void ThingTypeManager::parseItemType(uint16 id, TiXmlElement* elem)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ThingTypeManager::addOtbType(const ThingTypeOtbPtr& otbType)
|
void ThingTypeManager::addItemType(const ItemTypePtr& otbType)
|
||||||
{
|
{
|
||||||
uint16 id = otbType->getServerId();
|
uint16 id = otbType->getServerId();
|
||||||
if(m_otbTypes.size() <= id)
|
if(m_otbTypes.size() <= id)
|
||||||
m_otbTypes.resize(id+1, m_nullOtbType);
|
m_otbTypes.resize(id+1, m_nullItemType);
|
||||||
m_otbTypes[id] = otbType;
|
m_otbTypes[id] = otbType;
|
||||||
}
|
}
|
||||||
|
|
||||||
const ThingTypeOtbPtr& ThingTypeManager::findOtbForClientId(uint16 id)
|
const ItemTypePtr& ThingTypeManager::findOtbForClientId(uint16 id)
|
||||||
{
|
{
|
||||||
if(m_otbTypes.empty())
|
if(m_otbTypes.empty())
|
||||||
return m_nullOtbType;
|
return m_nullItemType;
|
||||||
|
|
||||||
for(const ThingTypeOtbPtr& otbType : m_otbTypes) {
|
for(const ItemTypePtr& otbType : m_otbTypes) {
|
||||||
if(otbType->getClientId() == id)
|
if(otbType->getClientId() == id)
|
||||||
return otbType;
|
return otbType;
|
||||||
}
|
}
|
||||||
|
|
||||||
return m_nullOtbType;
|
return m_nullItemType;
|
||||||
}
|
}
|
||||||
|
|
||||||
const ThingTypeDatPtr& ThingTypeManager::getDatType(uint16 id, DatCategory category)
|
const ThingTypePtr& ThingTypeManager::getThingType(uint16 id, DatCategory category)
|
||||||
{
|
{
|
||||||
if(category >= DatLastCategory || id >= m_datTypes[category].size()) {
|
if(category >= DatLastCategory || id >= m_datTypes[category].size()) {
|
||||||
g_logger.error(stdext::format("invalid thing type client id %d in category %d", id, category));
|
g_logger.error(stdext::format("invalid thing type client id %d in category %d", id, category));
|
||||||
return m_nullDatType;
|
return m_nullThingType;
|
||||||
}
|
}
|
||||||
return m_datTypes[category][id];
|
return m_datTypes[category][id];
|
||||||
}
|
}
|
||||||
|
|
||||||
const ThingTypeOtbPtr& ThingTypeManager::getOtbType(uint16 id)
|
const ItemTypePtr& ThingTypeManager::getItemType(uint16 id)
|
||||||
{
|
{
|
||||||
if(id >= m_otbTypes.size()) {
|
if(id >= m_otbTypes.size()) {
|
||||||
g_logger.error(stdext::format("invalid thing type server id %d", id));
|
g_logger.error(stdext::format("invalid thing type server id %d", id));
|
||||||
return m_nullOtbType;
|
return m_nullItemType;
|
||||||
}
|
}
|
||||||
return m_otbTypes[id];
|
return m_otbTypes[id];
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,8 +26,8 @@
|
||||||
#include <framework/global.h>
|
#include <framework/global.h>
|
||||||
#include <framework/core/declarations.h>
|
#include <framework/core/declarations.h>
|
||||||
|
|
||||||
#include "thingtypedat.h"
|
#include "thingtype.h"
|
||||||
#include "thingtypeotb.h"
|
#include "itemtype.h"
|
||||||
|
|
||||||
class ThingTypeManager
|
class ThingTypeManager
|
||||||
{
|
{
|
||||||
|
@ -40,16 +40,16 @@ public:
|
||||||
void loadXml(const std::string& file);
|
void loadXml(const std::string& file);
|
||||||
void parseItemType(uint16 id, TiXmlElement *elem);
|
void parseItemType(uint16 id, TiXmlElement *elem);
|
||||||
|
|
||||||
void addOtbType(const ThingTypeOtbPtr& otbType);
|
void addItemType(const ItemTypePtr& otbType);
|
||||||
const ThingTypeOtbPtr& findOtbForClientId(uint16 id);
|
const ItemTypePtr& findOtbForClientId(uint16 id);
|
||||||
|
|
||||||
const ThingTypeDatPtr& getNullDatType() { return m_nullDatType; }
|
const ThingTypePtr& getNullThingType() { return m_nullThingType; }
|
||||||
const ThingTypeOtbPtr& getNullOtbType() { return m_nullOtbType; }
|
const ItemTypePtr& getNullItemType() { return m_nullItemType; }
|
||||||
|
|
||||||
const ThingTypeDatPtr& getDatType(uint16 id, DatCategory category);
|
const ThingTypePtr& getThingType(uint16 id, DatCategory category);
|
||||||
const ThingTypeOtbPtr& getOtbType(uint16 id);
|
const ItemTypePtr& getItemType(uint16 id);
|
||||||
ThingTypeDat* rawGetDatType(uint16 id, DatCategory category) { return m_datTypes[category][id].get(); }
|
ThingType* rawGetThingType(uint16 id, DatCategory category) { return m_datTypes[category][id].get(); }
|
||||||
ThingTypeOtb* rawGetOtbType(uint16 id) { return m_otbTypes[id].get(); }
|
ItemType* rawGetItemType(uint16 id) { return m_otbTypes[id].get(); }
|
||||||
|
|
||||||
uint32 getDatSignature() { return m_datSignature; }
|
uint32 getDatSignature() { return m_datSignature; }
|
||||||
uint32 getOtbMajorVersion() { return m_otbMajorVersion; }
|
uint32 getOtbMajorVersion() { return m_otbMajorVersion; }
|
||||||
|
@ -63,11 +63,11 @@ public:
|
||||||
bool isValidOtbId(uint16 id) { return id >= 1 && id < m_otbTypes.size(); }
|
bool isValidOtbId(uint16 id) { return id >= 1 && id < m_otbTypes.size(); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ThingTypeDatList m_datTypes[DatLastCategory];
|
ThingTypeList m_datTypes[DatLastCategory];
|
||||||
ThingTypeOtbList m_otbTypes;
|
ItemTypeList m_otbTypes;
|
||||||
|
|
||||||
ThingTypeDatPtr m_nullDatType;
|
ThingTypePtr m_nullThingType;
|
||||||
ThingTypeOtbPtr m_nullOtbType;
|
ItemTypePtr m_nullItemType;
|
||||||
|
|
||||||
bool m_datLoaded;
|
bool m_datLoaded;
|
||||||
bool m_xmlLoaded;
|
bool m_xmlLoaded;
|
||||||
|
|
Loading…
Reference in New Issue