close channel event

This commit is contained in:
Henrique Santiago 2012-04-08 01:13:52 -03:00
parent 9c88c525fb
commit c93732a44a
2 changed files with 18 additions and 2 deletions

View File

@ -111,6 +111,16 @@ local function onOpenPrivateChannel(receiver)
end
end
local function onCloseChannel(channelId)
local channel = channels[channelId]
if channel then
local tab = Console.getTab(channel)
if tab then
consoleTabBar:removeTab(tab)
end
end
end
local function doChannelListSubmit()
local channelListPanel = channelsWindow:getChildById('channelList')
local openPrivateChannelWith = channelsWindow:getChildById('openPrivateChannelWith'):getText()
@ -156,6 +166,7 @@ function Console.init()
onChannelList = onChannelList,
onOpenChannel = onOpenChannel,
onOpenPrivateChannel = onOpenPrivateChannel,
onCloseChannel = onCloseChannel,
onGameEnd = Console.clear })
consolePanel = displayUI('console.otui', GameInterface.getBottomPanel())
@ -189,6 +200,7 @@ function Console.terminate()
onChannelList = onChannelList,
onOpenChannel = onOpenChannel,
onOpenPrivateChannel = onOpenPrivateChannel,
onCloseChannel = onCloseChannel,
onGameEnd = Console.clear })
for channelid, channelname in pairs(channels) do

View File

@ -291,9 +291,13 @@ void Map::setCentralPosition(const Position& centralPosition)
} else {
for(const auto& pair : m_knownCreatures) {
const CreaturePtr& creature = pair.second;
if(!isAwareOfPosition(creature->getPosition())) {
removeThing(creature);
if(creature) {
if(!isAwareOfPosition(creature->getPosition())) {
removeThing(creature);
}
}
else
logTraceError("invalid creature");
}
}
}