Protocol 8.40-.42 fixes, closes #272
This commit is contained in:
		
							parent
							
								
									b9b9a32b83
								
							
						
					
					
						commit
						99500c9c91
					
				|  | @ -43,7 +43,7 @@ function init() | |||
|   reasonsTextList = ruleViolationWindow:getChildById('reasonList') | ||||
|   actionsTextList = ruleViolationWindow:getChildById('actionList') | ||||
| 
 | ||||
|   g_keyboard.bindKeyDown('Ctrl+Y', show) | ||||
|   g_keyboard.bindKeyDown('Ctrl+Y', function() show() end) | ||||
| 
 | ||||
|   if g_game.isOnline() then | ||||
|     loadReasons() | ||||
|  | @ -63,6 +63,7 @@ end | |||
| 
 | ||||
| function loadReasons() | ||||
|   reasonsTextList:destroyChildren() | ||||
|   actionsTextList:destroyChildren() | ||||
| 
 | ||||
|   local actions = g_game.getGMActions() | ||||
|   for reason, actionFlags in pairs(actions) do | ||||
|  | @ -100,7 +101,7 @@ function onSelectReason(reasonLabel, focused) | |||
|   if reasonLabel.actionFlags and focused then | ||||
|     actionsTextList:destroyChildren() | ||||
|     for actionBaseFlag = 0, #rvactions do | ||||
|       actionFlagString = rvactions[actionBaseFlag] | ||||
|       local actionFlagString = rvactions[actionBaseFlag] | ||||
|       if bit32.band(reasonLabel.actionFlags, math.pow(2, actionBaseFlag)) > 0 then | ||||
|         local label = g_ui.createWidget('RVListLabel', actionsTextList) | ||||
|         label:setText(actionFlagString) | ||||
|  | @ -111,9 +112,21 @@ function onSelectReason(reasonLabel, focused) | |||
| end | ||||
| 
 | ||||
| function report() | ||||
|   local reasonLabel = reasonsTextList:getFocusedChild() | ||||
|   if not reasonLabel then | ||||
|     displayErrorBox(tr("Error"), tr("You must select a reason.")) | ||||
|     return | ||||
|   end | ||||
| 
 | ||||
|   local actionLabel = actionsTextList:getFocusedChild() | ||||
|   if not actionLabel then | ||||
|     displayErrorBox(tr("Error"), tr("You must select an action.")) | ||||
|     return | ||||
|   end | ||||
| 
 | ||||
|   local target = ruleViolationWindow:getChildById('nameText'):getText() | ||||
|   local reason = reasonsTextList:getFocusedChild().reasonId | ||||
|   local action = actionsTextList:getFocusedChild().actionId | ||||
|   local reason = reasonLabel.reasonId | ||||
|   local action = actionLabel.actionId | ||||
|   local comment = ruleViolationWindow:getChildById('commentText'):getText() | ||||
|   local statement = ruleViolationWindow:getChildById('statementText'):getText() | ||||
|   local statementId = 0 -- TODO: message unique id ? | ||||
|  |  | |||
|  | @ -1468,16 +1468,13 @@ void Game::setProtocolVersion(int version) | |||
|         enableFeature(Otc::GameProtocolChecksum); | ||||
|         enableFeature(Otc::GameChallengeOnLogin); | ||||
|         enableFeature(Otc::GameAccountNames); | ||||
|         enableFeature(Otc::GameDoubleFreeCapacity); | ||||
|     } | ||||
| 
 | ||||
|     if(version >= 780 && version <= 854) {          // 780 might not be accurate
 | ||||
|         enableFeature(Otc::GameChargeableItems); | ||||
|     } | ||||
| 
 | ||||
|     if(version >= 850) { | ||||
|         enableFeature(Otc::GameDoubleFreeCapacity); | ||||
|     } | ||||
| 
 | ||||
|     if(version >= 854) { | ||||
|         enableFeature(Otc::GameCreatureEmblems); | ||||
|     } | ||||
|  |  | |||
|  | @ -57,7 +57,7 @@ void buildMessageModesMap(int version) { | |||
|         messageModesMap[Otc::MessageFailure]                 = 20; | ||||
|         messageModesMap[Otc::MessageBlue]                    = 21; | ||||
|         messageModesMap[Otc::MessageRed]                     = 22; | ||||
|     } else if(version >= 850) { | ||||
|     } else if(version >= 840) { | ||||
|         messageModesMap[Otc::MessageNone]                    = 0; | ||||
|         messageModesMap[Otc::MessageSay]                     = 1; | ||||
|         messageModesMap[Otc::MessageWhisper]                 = 2; | ||||
|  |  | |||
|  | @ -407,7 +407,9 @@ void ProtocolGame::parseGMActions(const InputMessagePtr& msg) | |||
| 
 | ||||
|     int numViolationReasons; | ||||
| 
 | ||||
|     if(g_game.getProtocolVersion() >= 850) | ||||
|     if(g_game.getProtocolVersion() >= 840) | ||||
|         numViolationReasons = 23; | ||||
|     else if(g_game.getProtocolVersion() >= 850) | ||||
|         numViolationReasons = 20; | ||||
|     else | ||||
|         numViolationReasons = 32; | ||||
|  | @ -557,7 +559,7 @@ void ProtocolGame::parseTileAddThing(const InputMessagePtr& msg) | |||
|     Position pos = getPosition(msg); | ||||
|     int stackPos = -1; | ||||
| 
 | ||||
|     if(g_game.getProtocolVersion() >= 850) | ||||
|     if(g_game.getProtocolVersion() >= 841) | ||||
|         stackPos = msg->getU8(); | ||||
| 
 | ||||
|     ThingPtr thing = getThing(msg); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Sam
						Sam