onClientStartMission
Definition
-- @/lua/ge/extensions/scenario/scenarios.lua:945
-- this function is called when the level that the scenario needs loaded successfully
local function onClientStartMission(levelPath)
-- cleanup any remaining scenario objects by deleting the whole group
-- cleanup needs to happen here not on endmission as they are not called in the correct order
--log('D', logTag, 'executing TS: ' .. ts)
if(scenetree.ScenarioObjectsGroup) then scenetree.ScenarioObjectsGroup:delete() end
spawn.preventPlayerSpawning = nil
if scenario == nil then
--log('D', logTag, 'no scenario loaded')
return
end
core_environment.reset_init()
inputActionFilter.clear(0)
log('D', logTag, 'Starting scenario : '..tostring(translateLanguage(scenario.name, scenario.name)))
log('D', logTag, 'Scenario path : '..tostring(scenario.sourceFile))
-- create the special simgroup where we put all objects of the scenario in
--log('D', logTag, 'executing TS: ' .. ts)
--TODO need to change player delete() for carrier mode
if(scenetree.thePlayer) then scenetree.thePlayer:delete() end
local ScenarioObjectsGroup = createObject('SimGroup')
if not ScenarioObjectsGroup then
log('E', logTag, 'ScenarioObjectsGroup not existing')
return
end
local MissionGroup = scenetree.MissionGroup
if not MissionGroup then
log('E', logTag, 'MissionGroup not existing')
return
end
ScenarioObjectsGroup:registerObject('ScenarioObjectsGroup')
ScenarioObjectsGroup.canSave = false
MissionGroup:addObject(ScenarioObjectsGroup.obj)
-- spawn the prefabs of the scenario
log('D', logTag, 'spawning prefabs ...')
for i, filename in ipairs(scenario.prefabs) do
local _, objNameNew, _ = path.splitWithoutExt(filename, ".prefab.json")
local _, objNameOld, _ = path.splitWithoutExt(filename, ".prefab")
local objName = string.lower(objNameNew or objNameOld)
if not scenetree.findObject(objName) then
local prefabObj = spawnPrefab(objName, filename, '0 0 0', '0 0 1 0', '1 1 1')
ScenarioObjectsGroup:addObject(prefabObj.obj)
else
log('E', logTag, 'Prefab: '..objName..' already exist in level. Rejecting loading of duplicate.')
end
end
-- TODO(AK): this is only here to fix http://home/redmine/issues/2863 - [QA] Prefab loose collisions on campaign mode
-- We do not ultimately want this here. This should be part of the flow and not in a callback.
be:physicsStartSimulation()
-- Spawn any user selected vehicles
if scenario.userSelectedVehicle then
local model = scenario.userSelectedVehicle.model
local config = scenario.userSelectedVehicle.config
if scenario.userSelectedVehicle.color then
scenario.userSelectedVehicle.color = validateVehicleDataColor(scenario.userSelectedVehicle.color)
end
local color = scenario.userSelectedVehicle.color
local licenseText = scenario.userSelectedVehicle.licenseText
scenario.userSpawningData = createPlayerSpawningData(model, config, color, licenseText)
local spawnedVehicle = nil
local playerVehicle = getPlayerVehicle(0)
if playerVehicle then
spawnedVehicle = core_vehicles.replaceVehicle(scenario.userSpawningData.model, scenario.userSpawningData.options)
else
spawnedVehicle = core_vehicles.spawnNewVehicle(scenario.userSpawningData.model, scenario.userSpawningData.options)
end
if spawnedVehicle then
scenario.userSelectedVehicle.returnedVehicleId = spawnedVehicle:getID()
end
end
extensions.hook('onLoadCustomPrefabs', scenario)
changeState('pre-start')
end
Callers
@/lua/ge/extensions/editor/camPathEditor.lua
local function onClientStartMission()
selectPath(nil)
@/lua/ge/extensions/career/modules/delivery/general.lua
local function onClientStartMission(levelPath)
loadSaveData()
@/lua/ge/extensions/util/trackBuilder/quickraceSetup.lua
local function onClientStartMission()
done = false
@/lua/ge/extensions/freeroam/crashCamMode.lua
local function onClientStartMission()
if isStateFreeroam() then
@/lua/ge/extensions/core/environment.lua
local function onClientStartMission(levelPath)
local levelInfo = getObject("LevelInfo")
@/lua/ge/extensions/gameplay/traffic.lua
local function onClientStartMission()
if state == 'off' then
@/lua/ge/extensions/util/precompileVehicles.lua
local function onClientStartMission()
vehicleToLoad = 1
@/lua/ge/extensions/flowgraph/nodes/scene/idByName.lua
function C:onClientStartMission()
self.objID = nil
@/lua/ge/extensions/campaign/exploration.lua
local function onClientStartMission(levelPath)
-- Disclaimer message for campaign mode.
@/lua/ge/extensions/core/hotlapping.lua
-- resets the app on level load
local function onClientStartMission()
M.stopHotlapping()
@/lua/ge/extensions/gameplay/garageMode.lua
local function onClientStartMission(levelPath)
if vehicleToLoad then
@/lua/ge/extensions/gameplay/parking.lua
local function onClientStartMission()
if not sites then
@/lua/ge/extensions/core/recoveryPrompt.lua
local function onClientStartMission(levelPath)
if career_career.isActive() then
@/lua/ge/extensions/util/saveDynamicData.lua
local function onClientStartMission(levelPath)
dump(levelPath)
@/lua/ge/extensions/editor/levelValidator.lua
local function onClientStartMission()
terrainSize = nil
@/lua/ge/extensions/career/modules/milestones/milestones.lua
end
local function onClientStartMission()
notifyUnclaimedMilestonesCount()
@/lua/ge/extensions/editor/main.lua
local function onClientStartMission()
editor.initialized = false
@/lua/ge/extensions/career/modules/playerDriving.lua
local function onClientStartMission()
setupTraffic()
@/lua/ge/extensions/freeroam/specialTriggers.lua
local function onClientStartMission()
loadTriggers()
@/lua/ge/extensions/gameplay/walk.lua
local function onClientStartMission(levelPath)
clearBlacklist()
@/lua/ge/extensions/freeroam/freeroam.lua
local function onClientStartMission(levelPath)
local path, file, ext = path.splitWithoutExt(levelPath)
@/lua/ge/extensions/ui/bindingsLegend.lua
local function onClientStartMission()
end
@/lua/ge/extensions/gameplay/statistic.lua
if data.windowOpen ~= nil then windowOpen[0] = data.windowOpen end
if data.currentLevel then M.onClientStartMission() end
if fileDataCareer then
local function onClientStartMission(levelPath)
startActivity(levelPath)
@/lua/ge/extensions/career/modules/spawnPoints.lua
local function onClientStartMission()
@/lua/ge/extensions/editor/flowgraphEditor.lua
local function onClientStartMission()
if M.requestedEditor then
@/lua/ge/extensions/freeroam/facilities/fuelPrice.lua
local function onClientStartMission(levelPath)
if not setDisplayPrices() then
else
onClientStartMission(getCurrentLevelIdentifier())
end
@/lua/ge/extensions/career/modules/fuel.lua
local function onClientStartMission(levelPath)
setupSounds()
@/lua/ge/extensions/core/trafficSignals.lua
local function onClientStartMission()
loadSignals()
@/lua/ge/extensions/gameplay/city.lua
local function onClientStartMission(levelPath)
loadSites()
@/lua/ge/extensions/util/calibrateESC.lua
local function onClientStartMission(levelPath)
if levelPath == testLevel then
@/lua/ge/extensions/freeroam/bigMapMode.lua
local function onClientStartMission(levelPath)
setActive(false)
@/lua/ge/extensions/career/career.lua
local function onClientStartMission(levelPath)
if careerActive then
@/lua/ge/extensions/career/modules/milestones/general.lua
local function onClientStartMission(levelPath)
if tableIsEmpty(milestoneConfigs) then
@/lua/ge/extensions/util/precompileShaders.lua
local function onClientStartMission()
loaded = true
@/lua/ge/extensions/core/paths.lua
local function onClientStartMission()
local camPathFolder = (path.split(getMissionFilename()) or '') .. "camPaths"
@/lua/ge/extensions/career/modules/vehicleShopping.lua
local function onClientStartMission()
vehiclesInShop = {}
@/lua/ge/extensions/career/modules/inventory.lua
local function onClientStartMission(levelPath)
setupInventory()
@/lua/ge/extensions/career/modules/vehicleDeletionService.lua
local function onClientStartMission()
table.clear(flaggedVehicles)