Fixed crash issue with outfit window with protocols <= 860

This commit is contained in:
BeniS 2012-07-17 02:39:08 +12:00
parent f73b3bbece
commit 09425eba31
2 changed files with 18 additions and 9 deletions

View File

@ -89,7 +89,7 @@ local function onClotheCheckChange(clotheButtonBox)
end
local function updateOutfit()
if table.empty(outfits) then
if table.empty(outfits) or not outfit then
return
end
local nameWidget = outfitWindow:getChildById('outfitName')
@ -184,8 +184,10 @@ function Outfit.create(creatureOutfit, outfitList, creatureMount, mountList)
local colorBoxPanel = outfitWindow:getChildById('colorBoxPanel')
outfitCreatureBox:setCreature(outfitCreature)
if mountCreature then
local mountCreatureBox = outfitWindow:getChildById('mountCreatureBox')
mountCreatureBox:setCreature(mountCreature)
end
for j=0,6 do
for i=0,18 do

View File

@ -45,6 +45,7 @@ void Game::resetGameStates()
{
m_denyBotCall = false;
m_dead = false;
m_mounted = false;
m_serverBeat = 50;
m_canReportBugs = false;
m_fightMode = Otc::FightBalanced;
@ -333,12 +334,18 @@ void Game::processOpenOutfitWindow(const Outfit& currentOufit, const std::vector
virtualOutfitCreature->setOutfit(currentOufit);
// creature virtual mount outfit
CreaturePtr virtualMountCreature = CreaturePtr(new Creature);
CreaturePtr virtualMountCreature = nullptr;
if(getFeature(Otc::GamePlayerMounts))
{
virtualMountCreature = CreaturePtr(new Creature);
virtualMountCreature->setDirection(Otc::South);
if(currentOufit.getMount() > 0)
{
Outfit mountOutfit;
mountOutfit.setId(currentOufit.getMount());
virtualMountCreature->setOutfit(mountOutfit);
}
}
g_lua.callGlobalField("g_game", "onOpenOutfitWindow", virtualOutfitCreature, outfitList, virtualMountCreature, mountList);
}