Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/Classes/CalcsTab.lua
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ function CalcsTabClass:Load(xml, dbFileName)
end

function CalcsTabClass:Save(xml)
for k, v in pairs(self.input) do
for k, v in pairsSortByKey(self.input) do
local child = { elem = "Input", attrib = {name = k} }
if type(v) == "number" then
child.attrib.number = tostring(v)
Expand Down
4 changes: 2 additions & 2 deletions src/Classes/ConfigTab.lua
Original file line number Diff line number Diff line change
Expand Up @@ -967,7 +967,7 @@ function ConfigTabClass:Save(xml)
local child = { elem = "ConfigSet", attrib = { id = tostring(configSetId), title = configSet.title } }
t_insert(xml, child)

for k, v in pairs(configSet.input) do
for k, v in pairsSortByKey(configSet.input) do
if v ~= self:GetDefaultState(k, type(v)) then
local node = { elem = "Input", attrib = { name = k } }
if type(v) == "number" then
Expand All @@ -980,7 +980,7 @@ function ConfigTabClass:Save(xml)
t_insert(child, node)
end
end
for k, v in pairs(configSet.placeholder) do
for k, v in pairsSortByKey(configSet.placeholder) do
local node = { elem = "Placeholder", attrib = { name = k } }
if type(v) == "number" then
node.attrib.number = tostring(v)
Expand Down
3 changes: 2 additions & 1 deletion src/Classes/ItemsTab.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1384,7 +1384,8 @@ function ItemsTabClass:Save(xml)
for _, itemSetId in ipairs(self.itemSetOrderList) do
local itemSet = self.itemSets[itemSetId]
local child = { elem = "ItemSet", attrib = { id = tostring(itemSetId), title = itemSet.title, useSecondWeaponSet = tostring(itemSet.useSecondWeaponSet) } }
for slotName, slot in pairs(self.slots) do
for _, slot in ipairs(self.orderedSlots) do
local slotName = slot.slotName
if not slot.nodeId then
t_insert(child, { elem = "Slot", attrib = { name = slotName, itemId = tostring(itemSet[slotName].selItemId), itemPbURL = itemSet[slotName].pbURL or "", active = itemSet[slotName].active and "true" }})
else
Expand Down
34 changes: 29 additions & 5 deletions src/Classes/PassiveSpec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -199,9 +199,15 @@ function PassiveSpecClass:Save(xml)
for nodeId in pairs(self.allocNodes) do
t_insert(allocNodeIdList, nodeId)
end
table.sort(allocNodeIdList)
local masteryNodeIdList = { }
for mastery in pairs(self.masterySelections) do
t_insert(masteryNodeIdList, mastery)
end
table.sort(masteryNodeIdList)
local masterySelections = { }
for mastery, effect in pairs(self.masterySelections) do
t_insert(masterySelections, "{"..mastery..","..effect.."}")
for _, mastery in ipairs(masteryNodeIdList) do
t_insert(masterySelections, "{"..mastery..","..self.masterySelections[mastery].."}")
end
xml.attrib = {
title = self.title,
Expand All @@ -223,7 +229,13 @@ function PassiveSpecClass:Save(xml)
local sockets = {
elem = "Sockets"
}
for nodeId, itemId in pairs(self.jewels) do
local socketNodeIdList = { }
for nodeId in pairs(self.jewels) do
t_insert(socketNodeIdList, nodeId)
end
table.sort(socketNodeIdList)
for _, nodeId in ipairs(socketNodeIdList) do
local itemId = self.jewels[nodeId]
-- jewel socket contents should not be saved unless they contain a valid jewel
if itemId > 0 then
local socket = { elem = "Socket", attrib = { nodeId = tostring(nodeId), itemId = tostring(itemId) }}
Expand All @@ -236,7 +248,13 @@ function PassiveSpecClass:Save(xml)
elem = "Overrides"
}
if self.hashOverrides then
for nodeId, node in pairs(self.hashOverrides) do
local overrideNodeIdList = { }
for nodeId in pairs(self.hashOverrides) do
t_insert(overrideNodeIdList, nodeId)
end
table.sort(overrideNodeIdList)
for _, nodeId in ipairs(overrideNodeIdList) do
local node = self.hashOverrides[nodeId]
local override = { elem = "Override", attrib = { nodeId = tostring(nodeId), icon = tostring(node.icon), activeEffectImage = tostring(node.activeEffectImage), dn = tostring(node.dn) } }
for _, modLine in ipairs(node.sd) do
t_insert(override, modLine)
Expand Down Expand Up @@ -534,7 +552,13 @@ function PassiveSpecClass:EncodeURL(prefix)
local clusterNodeIds = {}
local masteryNodeIds = {}

for id, node in pairs(self.allocNodes) do
local encodeNodeIdList = { }
for id in pairs(self.allocNodes) do
t_insert(encodeNodeIdList, id)
end
table.sort(encodeNodeIdList)
for _, id in ipairs(encodeNodeIdList) do
local node = self.allocNodes[id]
if node.type ~= "ClassStart" and node.type ~= "AscendClassStart" and id < 65536 and nodeCount < 255 then
t_insert(a, m_floor(id / 256))
t_insert(a, id % 256)
Expand Down
2 changes: 1 addition & 1 deletion src/Modules/Build.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2285,7 +2285,7 @@ function buildMode:SaveDB(fileName)
end

-- Call on all savers to save their data in their respective sections
for elem, saver in pairs(self.savers) do
for elem, saver in pairsSortByKey(self.savers) do
local node = { elem = elem }
saver:Save(node)
t_insert(dbXML, node)
Expand Down
Loading