saveMission
Definition
-- @/lua/ge/extensions/gameplay/missions/missions.lua:606
local function saveMission(missionData, newFolder)
local targetFolder = (newFolder or missionData.missionFolder) .. "/"..infoFile
missionData.recommendedAttributes = {}
for k, v in pairs(missionData.recommendedAttributesKeyBasedCache or {}) do
if v then
table.insert(missionData.recommendedAttributes, k)
end
end
local careerSetup = deepcopy(missionData.careerSetup or {})
careerSetup._activeStarCache = nil
local data = {
name = missionData.name or "",
description = missionData.description or "",
missionType = missionData.missionType or "",
retryBehaviour = missionData.retryBehaviour or "infiniteRetries",
startCondition = missionData.startCondition or {type='always'},
visibleCondition = missionData.visibleCondition or {type='always'},
startTrigger = deepcopy(missionData.startTrigger),
--recommendedAttributes = missionData.recommendedAttributes,
--prefabs = missionData.prefabs or {},
--prefabsRequireCollisionReload = missionData.prefabsRequireCollisionReload or false,
missionTypeData = missionData.missionTypeData or {},
--trafficAllowed = missionData.trafficAllowed or (missionData.trafficAllowed==nil),
devNotes = missionData.devNotes,
additionalAttributes = missionData.additionalAttributes,
customAdditionalAttributes = missionData.customAdditionalAttributes,
grouping = missionData.grouping,
isAvailableAsScenario = missionData.isAvailableAsScenario,
author = missionData.author,
date = missionData.date,
careerSetup = careerSetup,
setupModules = missionData.setupModules,
devMission = missionData.devMission,
layers = missionData.layers,
official = nil,
}
if data.careerSetup.starRewards then
for key, list in pairs(data.careerSetup.starRewards) do
for _, reward in ipairs(list) do
if reward._originalRewardAmount then
reward.rewardAmount = reward._originalRewardAmount
reward._originalRewardAmount = nil
else
log("W","Reward had no _originalRewardAmount? " .. dumps(missionData.id) .. " - "..dumps(key) .. " : " .. dumps(reward.attributeKey))
end
end
end
end
-- write pretty
jsonWriteFile(targetFolder, data, true)
log("I","","Wrote mission successfully to " .. targetFolder)
end
Callers
@/lua/ge/extensions/gameplay/missions/missions.lua
--data.recommendedAttributesKeyBasedCache = data.recommendedAttributesKeyBasedCache or {}
saveMission(data, missionsDir.."/"..id)
local loaded = loadMission(missionsDir.."/"..id)
@/lua/ge/extensions/gameplay/missions/proceduralMissionGenerators/timeTrialMissions.lua
mission.missionTypeData.raceFile = "race.race.json"
gameplay_missions_missions.saveMission(mission)
end
@/lua/ge/extensions/gameplay/missions/progress.lua
else
career_modules_missionWrapper.saveMission(id)
end
else
career_modules_missionWrapper.saveMission(id)
end
@/lua/ge/extensions/editor/missionEditor.lua
if editor.uiIconImageButton(editor.icons.save, im.ImVec2(40, 40), unsavedColor) then
gameplay_missions_missions.saveMission(shownMission,shownMission.missionFolder)
shownMission._dirty = false
gameplay_missions_missions.saveMission(newMis)
M.reloadMissionSystem()
if im.MenuItem1("Save") then
gameplay_missions_missions.saveMission(lastShownMission,lastShownMission.missionFolder)
lastShownMission._dirty = false
if m._dirty then
gameplay_missions_missions.saveMission(m,m.missionFolder)
m._dirty = false
@/lua/ge/extensions/career/modules/missionWrapper.lua
local function saveMission(id)
cacheMissionData(id)
career_modules_playerDriving.resetPlayerState()
saveMission(mission.id)
end