GE Lua Documentation

Press F to search!

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