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
	
	 TheSumm
						TheSumm