Add a flag for idle animation game feature.
This commit is contained in:
parent
ae25dbf6a5
commit
f1fdbd56e9
|
@ -131,6 +131,7 @@ GameAuthenticator = 67
|
||||||
GameUnjustifiedPoints = 68
|
GameUnjustifiedPoints = 68
|
||||||
GameSessionKey = 69
|
GameSessionKey = 69
|
||||||
GameDeathType = 70
|
GameDeathType = 70
|
||||||
|
GameIdleAnimations = 71
|
||||||
|
|
||||||
TextColors = {
|
TextColors = {
|
||||||
red = '#f55e5e', --'#c83200'
|
red = '#f55e5e', --'#c83200'
|
||||||
|
|
|
@ -403,6 +403,7 @@ namespace Otc
|
||||||
GameUnjustifiedPoints = 68,
|
GameUnjustifiedPoints = 68,
|
||||||
GameSessionKey = 69,
|
GameSessionKey = 69,
|
||||||
GameDeathType = 70,
|
GameDeathType = 70,
|
||||||
|
GameIdleAnimations = 71,
|
||||||
|
|
||||||
LastGameFeature = 101
|
LastGameFeature = 101
|
||||||
};
|
};
|
||||||
|
|
|
@ -1600,6 +1600,10 @@ void Game::setClientVersion(int version)
|
||||||
enableFeature(Otc::GameDeathType);
|
enableFeature(Otc::GameDeathType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(version >= 1057) {
|
||||||
|
enableFeature(Otc::GameIdleAnimations);
|
||||||
|
}
|
||||||
|
|
||||||
if(version >= 1061) {
|
if(version >= 1061) {
|
||||||
enableFeature(Otc::GameOGLInformation);
|
enableFeature(Otc::GameOGLInformation);
|
||||||
}
|
}
|
||||||
|
|
|
@ -268,15 +268,13 @@ void ThingType::unserialize(uint16 clientId, ThingCategory category, const FileS
|
||||||
stdext::throw_exception(stdext::format("corrupt data (id: %d, category: %d, count: %d, lastAttr: %d)",
|
stdext::throw_exception(stdext::format("corrupt data (id: %d, category: %d, count: %d, lastAttr: %d)",
|
||||||
m_id, m_category, count, attr));
|
m_id, m_category, count, attr));
|
||||||
|
|
||||||
uint8 groupCount = 1;
|
bool hasFrameGroups = (category == ThingCategoryCreature && g_game.getFeature(Otc::GameIdleAnimations));
|
||||||
if(category == ThingCategoryCreature && g_game.getClientVersion() >= 1057)
|
uint8 groupCount = hasFrameGroups ? fin->getU8() : 1;
|
||||||
groupCount = fin->getU8();
|
|
||||||
|
|
||||||
for(int i = 0; i < groupCount; ++i) {
|
for(int i = 0; i < groupCount; ++i) {
|
||||||
uint8 frameGroup = FrameGroupDefault;
|
uint8 frameGroupType = FrameGroupDefault;
|
||||||
if(category == ThingCategoryCreature && g_game.getClientVersion() >= 1057) {
|
if(hasFrameGroups)
|
||||||
frameGroup = fin->getU8();
|
frameGroupType = fin->getU8();
|
||||||
}
|
|
||||||
|
|
||||||
uint8 width = fin->getU8();
|
uint8 width = fin->getU8();
|
||||||
uint8 height = fin->getU8();
|
uint8 height = fin->getU8();
|
||||||
|
|
|
@ -33,10 +33,10 @@
|
||||||
#include <framework/luaengine/luaobject.h>
|
#include <framework/luaengine/luaobject.h>
|
||||||
#include <framework/net/server.h>
|
#include <framework/net/server.h>
|
||||||
|
|
||||||
enum FrameGroup : uint8 {
|
enum FrameGroupType : uint8 {
|
||||||
FrameGroupIdle = 0,
|
FrameGroupDefault = 0,
|
||||||
FrameGroupMoving,
|
FrameGroupIdle = FrameGroupDefault,
|
||||||
FrameGroupDefault = FrameGroupIdle
|
FrameGroupMoving
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ThingCategory : uint8 {
|
enum ThingCategory : uint8 {
|
||||||
|
|
Loading…
Reference in New Issue