Skip to content

Commit 3fc2711

Browse files
authored
Merge pull request #682 from q8X/Fix-mapsettings
editor: Fix an issue where loading a small map overwrites map settings
2 parents fd196fc + 3bc3c30 commit 3fc2711

File tree

2 files changed

+22
-13
lines changed

2 files changed

+22
-13
lines changed

[editor]/editor_gui/client/mapsettings_gamemodesettings.lua

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,33 @@ mapsettings.gamemodeSettings = {}
55
local valueWidget
66
local isHandled
77
addEventHandler ( "doLoadEDF", root,
8-
function(tableEDF, resource)
8+
function(tableEDF, resource, isMapLoading)
99
--store all our data neatly under the resource
1010
edfSettings[resource] = tableEDF["settings"]
1111
refreshGamemodeSettings()
1212
--send back the intepreted gui table so the server knows the settings !!Lazy, server could interpret this info or only one client could send it
13-
mapsettings.gamemodeSettings = copyTable ( mapsettings.rowValues )
14-
currentMapSettings.rowData = rowData
15-
currentMapSettings.gamemodeSettings = mapsettings.gamemodeSettings
16-
triggerServerEvent ( "doSaveMapSettings", localPlayer, currentMapSettings, true )
13+
-- prevent edf from overwriting map settings while the map is being loaded
14+
if not isMapLoading then
15+
mapsettings.gamemodeSettings = copyTable ( mapsettings.rowValues )
16+
currentMapSettings.rowData = rowData
17+
currentMapSettings.gamemodeSettings = mapsettings.gamemodeSettings
18+
triggerServerEvent ( "doSaveMapSettings", localPlayer, currentMapSettings, true )
19+
end
1720
end )
1821

1922
addEventHandler ( "doUnloadEDF", root,
20-
function(resource)
23+
function(resource, isMapLoading)
2124
--store all our data neatly under the resource
2225
edfSettings[resource] = nil
2326
refreshGamemodeSettings()
2427
--send back the intepreted gui table so the server knows the settings !!Lazy, server could interpret this info or only one client could send it
25-
mapsettings.gamemodeSettings = copyTable ( mapsettings.rowValues )
26-
currentMapSettings.rowData = rowData
27-
currentMapSettings.gamemodeSettings = mapsettings.gamemodeSettings
28-
triggerServerEvent ( "doSaveMapSettings", localPlayer, currentMapSettings, true )
28+
-- prevent edf from overwriting map settings while the map is being loaded
29+
if not isMapLoading then
30+
mapsettings.gamemodeSettings = copyTable ( mapsettings.rowValues )
31+
currentMapSettings.rowData = rowData
32+
currentMapSettings.gamemodeSettings = mapsettings.gamemodeSettings
33+
triggerServerEvent ( "doSaveMapSettings", localPlayer, currentMapSettings, true )
34+
end
2935
end )
3036

3137
function refreshGamemodeSettings()

[editor]/editor_main/server/EDFhandler.lua

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ function registerEDF( resource )
3333
loadedEDF[resource] = edf.edfGetDefinition(resource)
3434
for i, player in ipairs(getElementsByType"player") do
3535
if clientGUILoaded[player] then
36-
triggerClientEvent ( player, "doLoadEDF", root, loadedEDF[resource], getResourceName ( resource ) )
36+
local isMapLoading = isEditorOpeningResource()
37+
triggerClientEvent ( player, "doLoadEDF", root, loadedEDF[resource], getResourceName ( resource ), isMapLoading )
3738
end
3839
end
3940
end
@@ -45,7 +46,8 @@ addEventHandler ( "onEDFUnload", root,
4546
loadedEDF[resource] = nil
4647
for i, player in ipairs(getElementsByType"player") do
4748
if clientGUILoaded[player] then
48-
triggerClientEvent ( player, "doUnloadEDF", root, getResourceName ( resource ) )
49+
local isMapLoading = isEditorOpeningResource()
50+
triggerClientEvent ( player, "doUnloadEDF", root, getResourceName ( resource ), isMapLoading )
4951
end
5052
end
5153
end
@@ -54,7 +56,8 @@ addEventHandler ( "onEDFUnload", root,
5456
local function sendEDF()
5557
clientGUILoaded[source] = true
5658
for resource, resourceDefinition in pairs(loadedEDF) do
57-
triggerClientEvent ( source, "doLoadEDF", root, resourceDefinition, getResourceName ( resource ) )
59+
local isMapLoading = isEditorOpeningResource()
60+
triggerClientEvent ( source, "doLoadEDF", root, resourceDefinition, getResourceName ( resource ), isMapLoading )
5861
end
5962
end
6063
addEventHandler ( "onClientGUILoaded", root, sendEDF)

0 commit comments

Comments
 (0)