--Single player purpose local Logger = require("classes.util.Logger") local DcsUtil = require("classes.util.DcsUtil") local Database = require("classes.spearhead_db") local SpearheadEvents = require("classes.spearhead_events") local MissionCommandsHelper = require("classes.stageClasses.helpers.MissionCommandsHelper") local CapConfig = require("classes.configuration.CapConfig") local StageConfig = require("classes.configuration.StageConfig") local Persistence = require("classes.persistence.Persistence") local SpawnManager = require("classes.helpers.SpawnManager") local DetectionManager = require("classes.capClasses.detection.DetectionManager") local GlobalCapManager = require("classes.capClasses.GlobalCapManager") local GlobalStageManager = require("classes.stageClasses.GlobalStageManager") local GlobalFleetManager = require("classes.fleetClasses.GlobalFleetManager") local MissionEditorWarnings = require("classes.util.MissionEditorWarnings") local defaultLogLevel = "INFO" if SpearheadConfig and SpearheadConfig.debugEnabled == true then defaultLogLevel = "DEBUG" end local startTime = timer.getTime() * 1000 SpearheadEvents.Init(defaultLogLevel) local dbLogger = Logger.new("database", defaultLogLevel) local standardLogger = Logger.new("", defaultLogLevel) local databaseManager = Database.New(dbLogger) MissionCommandsHelper.getOrCreate(defaultLogLevel) -- initiate local capConfig = CapConfig:new(); local stageConfig = StageConfig:new(); local startingStage = stageConfig.startingStage or 1 if SpearheadConfig and SpearheadConfig.Persistence and SpearheadConfig.Persistence.enabled == true then standardLogger:info("Persistence enabled") local persistenceLogger = Logger.new("Persistence", defaultLogLevel) Persistence.Init(persistenceLogger) local persistanceStage = Persistence.GetActiveStage() if persistanceStage then standardLogger:info("Persistance activated and using persistant active stage: " .. persistanceStage) startingStage = persistanceStage end else standardLogger:info("Persistence disabled") end local spawnLogger = Logger.new("SpawnManager", defaultLogLevel) local spawnManager = SpawnManager.new(spawnLogger) local detectionLogger = Logger.new("DetectionManager", defaultLogLevel) local detectionManager = DetectionManager.New(detectionLogger) GlobalCapManager.start(databaseManager, capConfig, detectionManager, stageConfig, defaultLogLevel, spawnManager) GlobalStageManager.NewAndStart(databaseManager, stageConfig, defaultLogLevel, spawnManager) GlobalFleetManager.start(databaseManager) local SetStageDelayed = function(number, time) SpearheadEvents.PublishStageNumberChanged(number) return nil end timer.scheduleFunction(SetStageDelayed, startingStage, timer.getTime() + 3) env.info(startTime .. "ms / " .. timer.getTime() * 1000 .. "ms") local duration = (timer.getTime() * 1000) - startTime standardLogger:info("Spearhead Initialisation duration: " .. tostring(duration) .. "ms") local missionEditorWarningsLogger = Logger.new("MissionEditorWarnings", defaultLogLevel) MissionEditorWarnings.WriteAll(missionEditorWarningsLogger) GlobalStageManager:printFullOverview()