startDragRaceActivity
Definition
-- @/lua/ge/extensions/gameplay/drag/general.lua:470
local function startDragRaceActivity(lane)
if not dragData then
log('E', logTag, 'startDragRaceActivity called but dragData is nil')
return false
end
if not dragData.racers then
log('E', logTag, 'startDragRaceActivity called but dragData.racers is nil')
return false
end
-- Ensure all extensions are loaded before starting - this is critical
if not ensureAllExtensionsLoaded() then
log('E', logTag, 'Failed to ensure all extensions loaded before starting drag race')
return false
end
-- Verify critical extensions are actually loaded and available
if not dragExtension then
log('E', logTag, 'dragExtension is nil after ensureAllExtensionsLoaded')
return false
end
if not gameplay_drag_utils then
log('E', logTag, 'gameplay_drag_utils is nil after ensureAllExtensionsLoaded')
return false
end
-- Verify times extension is always loaded
if not gameplay_drag_times then
log('E', logTag, 'gameplay_drag_times is nil after ensureAllExtensionsLoaded')
return false
end
-- Verify display extension is always loaded
if not gameplay_drag_display then
log('E', logTag, 'gameplay_drag_display is nil after ensureAllExtensionsLoaded')
return false
end
-- Handle freeroam context setup
if lane ~= nil and gameplayContext == "freeroam" then
dragData.racers = {}
if lane == 1 then
dragData.prefabs.christmasTree.treeType = ".500"
else
dragData.prefabs.christmasTree.treeType = ".400"
end
setupRacer(be:getPlayerVehicleID(0), lane)
gameplayContext = dragData.context or 'freeroam'
end
trySetUIContainerContextToDrag()
guihooks.trigger('updateTreeLightStaging', true)
dragExtension.startActivity()
return true
end
Callers
@/lua/ge/extensions/gameplay/drag/general.lua
M.setDragRaceData(deepcopy(data))
if not M.startDragRaceActivity(i) then
log('E', logTag, 'Failed to start drag race activity in lane ' .. i .. ' in strip ' .. (data._fnWithoutExt or 'unknown'))
@/lua/ge/extensions/career/modules/vehiclePerformance.lua
-- start activity
gameplay_drag_dragBridge.startDragRaceActivity()
core_paths.playPath(core_paths.loadPath("/levels/west_coast_usa/camPaths/drag_pi_1.camPath.json"), 0)
@/lua/ge/extensions/flowgraph/nodes/gameplay/dragRace/startDragRace.lua
local lane = self.pinIn.lane.value
local result = gameplay_drag_dragBridge.startDragRaceActivity(lane)
@/lua/ge/extensions/gameplay/drag/debug.lua
if im.Button("Start Drag Race") then
gameplay_drag_general.startDragRaceActivity()
end
@/lua/ge/extensions/gameplay/drag/dragBridge.lua
end
return gameplay_drag_general.startDragRaceActivity(lane or 1) or true
end
M.startDragRaceActivity = function(lane)
return gameplay_drag_general.startDragRaceActivity(lane)
end