Added market message, reworked text messages a little
This commit is contained in:
parent
1d022905ab
commit
92e2e8224f
|
@ -575,6 +575,10 @@ local function onAmountChange()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function onMarketMessage(messageMode, message)
|
||||||
|
Market.displayMessage(message)
|
||||||
|
end
|
||||||
|
|
||||||
local function initMarketItems(category)
|
local function initMarketItems(category)
|
||||||
for c = MarketCategory.First, MarketCategory.Last do
|
for c = MarketCategory.First, MarketCategory.Last do
|
||||||
marketItems[c] = {}
|
marketItems[c] = {}
|
||||||
|
@ -748,6 +752,8 @@ function init()
|
||||||
offerExhaust[MarketAction.Sell] = 10
|
offerExhaust[MarketAction.Sell] = 10
|
||||||
offerExhaust[MarketAction.Buy] = 20
|
offerExhaust[MarketAction.Buy] = 20
|
||||||
|
|
||||||
|
registerMessageMode(MessageModes.Market, onMarketMessage)
|
||||||
|
|
||||||
protocol.initProtocol()
|
protocol.initProtocol()
|
||||||
connect(g_game, { onGameEnd = Market.reset })
|
connect(g_game, { onGameEnd = Market.reset })
|
||||||
connect(g_game, { onGameEnd = Market.close })
|
connect(g_game, { onGameEnd = Market.close })
|
||||||
|
@ -760,6 +766,8 @@ end
|
||||||
function terminate()
|
function terminate()
|
||||||
Market.close()
|
Market.close()
|
||||||
|
|
||||||
|
unregisterMessageMode(MessageModes.Market, onMarketMessage)
|
||||||
|
|
||||||
protocol.terminateProtocol()
|
protocol.terminateProtocol()
|
||||||
disconnect(g_game, { onGameEnd = Market.reset })
|
disconnect(g_game, { onGameEnd = Market.reset })
|
||||||
disconnect(g_game, { onGameEnd = Market.close })
|
disconnect(g_game, { onGameEnd = Market.close })
|
||||||
|
@ -780,6 +788,13 @@ function Market.reset()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function Market.displayMessage(message)
|
||||||
|
if marketWindow:isHidden() then return end
|
||||||
|
|
||||||
|
local infoBox = displayInfoBox(tr('Market Error'), message)
|
||||||
|
infoBox:lock()
|
||||||
|
end
|
||||||
|
|
||||||
function Market.clearSelectedItem()
|
function Market.clearSelectedItem()
|
||||||
if Market.isItemSelected() then
|
if Market.isItemSelected() then
|
||||||
Market.resetCreateOffer()
|
Market.resetCreateOffer()
|
||||||
|
@ -1059,7 +1074,7 @@ function Market.createNewOffer()
|
||||||
end
|
end
|
||||||
|
|
||||||
if errorMsg ~= '' then
|
if errorMsg ~= '' then
|
||||||
displayInfoBox('Error', errorMsg)
|
Market.displayMessage(errorMsg)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,6 @@ MessageTypes = {
|
||||||
[MessageModes.Party] = MessageSettings.centerGreen,
|
[MessageModes.Party] = MessageSettings.centerGreen,
|
||||||
[MessageModes.PartyManagement] = MessageSettings.centerWhite,
|
[MessageModes.PartyManagement] = MessageSettings.centerWhite,
|
||||||
[MessageModes.TutorialHint] = MessageSettings.centerWhite,
|
[MessageModes.TutorialHint] = MessageSettings.centerWhite,
|
||||||
[MessageModes.Market] = MessageSettings.centerWhite,
|
|
||||||
[MessageModes.BeyondLast] = MessageSettings.centerWhite,
|
[MessageModes.BeyondLast] = MessageSettings.centerWhite,
|
||||||
[MessageModes.Report] = MessageSettings.consoleRed,
|
[MessageModes.Report] = MessageSettings.consoleRed,
|
||||||
[MessageModes.HotkeyUse] = MessageSettings.centerGreen,
|
[MessageModes.HotkeyUse] = MessageSettings.centerGreen,
|
||||||
|
@ -55,13 +54,19 @@ MessageTypes = {
|
||||||
messagesPanel = nil
|
messagesPanel = nil
|
||||||
|
|
||||||
function init()
|
function init()
|
||||||
connect(g_game, 'onTextMessage', displayMessage)
|
for messageMode, _ in pairs(MessageTypes) do
|
||||||
|
registerMessageMode(messageMode, displayMessage)
|
||||||
|
end
|
||||||
|
|
||||||
connect(g_game, 'onGameEnd', clearMessages)
|
connect(g_game, 'onGameEnd', clearMessages)
|
||||||
messagesPanel = g_ui.loadUI('textmessage', modules.game_interface.getRootPanel())
|
messagesPanel = g_ui.loadUI('textmessage', modules.game_interface.getRootPanel())
|
||||||
end
|
end
|
||||||
|
|
||||||
function terminate()
|
function terminate()
|
||||||
disconnect(g_game, 'onTextMessage', displayMessage)
|
for messageMode, _ in pairs(MessageTypes) do
|
||||||
|
unregisterMessageMode(messageMode, displayMessage)
|
||||||
|
end
|
||||||
|
|
||||||
disconnect(g_game, 'onGameEnd', clearMessages)
|
disconnect(g_game, 'onGameEnd', clearMessages)
|
||||||
clearMessages()
|
clearMessages()
|
||||||
messagesPanel:destroy()
|
messagesPanel:destroy()
|
||||||
|
@ -75,9 +80,7 @@ function displayMessage(mode, text)
|
||||||
if not g_game.isOnline() then return end
|
if not g_game.isOnline() then return end
|
||||||
|
|
||||||
local msgtype = MessageTypes[mode]
|
local msgtype = MessageTypes[mode]
|
||||||
|
|
||||||
if not msgtype then
|
if not msgtype then
|
||||||
perror('unhandled onTextMessage message mode ' .. mode .. ': ' .. text)
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ Module
|
||||||
dofile 'creature'
|
dofile 'creature'
|
||||||
dofile 'player'
|
dofile 'player'
|
||||||
dofile 'market'
|
dofile 'market'
|
||||||
|
dofile 'textmessages'
|
||||||
dofile 'thing'
|
dofile 'thing'
|
||||||
dofile 'spells'
|
dofile 'spells'
|
||||||
|
|
||||||
|
|
|
@ -160,8 +160,8 @@ MarketFilters = {
|
||||||
SearchAll = 4
|
SearchAll = 4
|
||||||
}
|
}
|
||||||
|
|
||||||
MarketFilters.First = MarketFilters.vocation
|
MarketFilters.First = MarketFilters.Vocation
|
||||||
MarketFilters.Last = MarketFilters.depot
|
MarketFilters.Last = MarketFilters.Depot
|
||||||
|
|
||||||
function getMarketSlotFilterId(name)
|
function getMarketSlotFilterId(name)
|
||||||
local id = table.find(MarketSlotFilters, name)
|
local id = table.find(MarketSlotFilters, name)
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
local messageModeCallbacks = {}
|
||||||
|
|
||||||
|
function g_game.onTextMessage(messageMode, message)
|
||||||
|
local callbacks = messageModeCallbacks[messageMode]
|
||||||
|
if not callbacks or #callbacks == 0 then
|
||||||
|
perror(string.format('Unhandled onTextMessage message mode %i: %s', messageMode, message))
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
for _, callback in pairs(callbacks) do
|
||||||
|
callback(messageMode, message)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function registerMessageMode(messageMode, callback)
|
||||||
|
if not messageModeCallbacks[messageMode] then
|
||||||
|
messageModeCallbacks[messageMode] = {}
|
||||||
|
end
|
||||||
|
|
||||||
|
table.insert(messageModeCallbacks[messageMode], callback)
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
function unregisterMessageMode(messageMode, callback)
|
||||||
|
if not messageModeCallbacks[messageMode] then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
return table.removevalue(messageModeCallbacks[messageMode], callback)
|
||||||
|
end
|
Loading…
Reference in New Issue