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
|
||||
|
||||
local function onMarketMessage(messageMode, message)
|
||||
Market.displayMessage(message)
|
||||
end
|
||||
|
||||
local function initMarketItems(category)
|
||||
for c = MarketCategory.First, MarketCategory.Last do
|
||||
marketItems[c] = {}
|
||||
|
@ -748,6 +752,8 @@ function init()
|
|||
offerExhaust[MarketAction.Sell] = 10
|
||||
offerExhaust[MarketAction.Buy] = 20
|
||||
|
||||
registerMessageMode(MessageModes.Market, onMarketMessage)
|
||||
|
||||
protocol.initProtocol()
|
||||
connect(g_game, { onGameEnd = Market.reset })
|
||||
connect(g_game, { onGameEnd = Market.close })
|
||||
|
@ -760,6 +766,8 @@ end
|
|||
function terminate()
|
||||
Market.close()
|
||||
|
||||
unregisterMessageMode(MessageModes.Market, onMarketMessage)
|
||||
|
||||
protocol.terminateProtocol()
|
||||
disconnect(g_game, { onGameEnd = Market.reset })
|
||||
disconnect(g_game, { onGameEnd = Market.close })
|
||||
|
@ -780,6 +788,13 @@ function Market.reset()
|
|||
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()
|
||||
if Market.isItemSelected() then
|
||||
Market.resetCreateOffer()
|
||||
|
@ -1059,7 +1074,7 @@ function Market.createNewOffer()
|
|||
end
|
||||
|
||||
if errorMsg ~= '' then
|
||||
displayInfoBox('Error', errorMsg)
|
||||
Market.displayMessage(errorMsg)
|
||||
return
|
||||
end
|
||||
|
||||
|
|
|
@ -44,7 +44,6 @@ MessageTypes = {
|
|||
[MessageModes.Party] = MessageSettings.centerGreen,
|
||||
[MessageModes.PartyManagement] = MessageSettings.centerWhite,
|
||||
[MessageModes.TutorialHint] = MessageSettings.centerWhite,
|
||||
[MessageModes.Market] = MessageSettings.centerWhite,
|
||||
[MessageModes.BeyondLast] = MessageSettings.centerWhite,
|
||||
[MessageModes.Report] = MessageSettings.consoleRed,
|
||||
[MessageModes.HotkeyUse] = MessageSettings.centerGreen,
|
||||
|
@ -55,13 +54,19 @@ MessageTypes = {
|
|||
messagesPanel = nil
|
||||
|
||||
function init()
|
||||
connect(g_game, 'onTextMessage', displayMessage)
|
||||
for messageMode, _ in pairs(MessageTypes) do
|
||||
registerMessageMode(messageMode, displayMessage)
|
||||
end
|
||||
|
||||
connect(g_game, 'onGameEnd', clearMessages)
|
||||
messagesPanel = g_ui.loadUI('textmessage', modules.game_interface.getRootPanel())
|
||||
end
|
||||
|
||||
function terminate()
|
||||
disconnect(g_game, 'onTextMessage', displayMessage)
|
||||
for messageMode, _ in pairs(MessageTypes) do
|
||||
unregisterMessageMode(messageMode, displayMessage)
|
||||
end
|
||||
|
||||
disconnect(g_game, 'onGameEnd', clearMessages)
|
||||
clearMessages()
|
||||
messagesPanel:destroy()
|
||||
|
@ -75,9 +80,7 @@ function displayMessage(mode, text)
|
|||
if not g_game.isOnline() then return end
|
||||
|
||||
local msgtype = MessageTypes[mode]
|
||||
|
||||
if not msgtype then
|
||||
perror('unhandled onTextMessage message mode ' .. mode .. ': ' .. text)
|
||||
return
|
||||
end
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@ Module
|
|||
dofile 'creature'
|
||||
dofile 'player'
|
||||
dofile 'market'
|
||||
dofile 'textmessages'
|
||||
dofile 'thing'
|
||||
dofile 'spells'
|
||||
|
||||
|
|
|
@ -160,8 +160,8 @@ MarketFilters = {
|
|||
SearchAll = 4
|
||||
}
|
||||
|
||||
MarketFilters.First = MarketFilters.vocation
|
||||
MarketFilters.Last = MarketFilters.depot
|
||||
MarketFilters.First = MarketFilters.Vocation
|
||||
MarketFilters.Last = MarketFilters.Depot
|
||||
|
||||
function getMarketSlotFilterId(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