Skip to main content
Skip to main content

GuidedTourManager

GuidedTourManager

Description

This class handles guided tours

Parent

AbstractManager

Functions

initDataStructures

Description

Initialize data structures

Definition

initDataStructures()

Code

function GuidedTourManager:initDataStructures()
self.guidedTours = { }
self.nameToGuidedTour = { }
self.nameToVehicle = { }
self.nameToPlaceable = { }
self.goalClasses = { }
self.actionClasses = { }
self.progressClasses = { }
end

loadFromXMLFile

Description

Load data from xml savegame file

Definition

loadFromXMLFile(string xmlFilename)

Arguments

stringxmlFilenamexml filename

Return Values

stringtrueif loading was successful else false

Code

function GuidedTourManager:loadFromXMLFile(xmlFilename)
if xmlFilename = = nil then
return false
end

local xmlFile = XMLFile.load( "guidedTourXML" , xmlFilename, GuidedTourManager.xmlSchema)
if xmlFile = = nil then
return false
end

local tourName = xmlFile:getValue( "guidedTour.tour#name" )
local tour = self.nameToGuidedTour[tourName]
if tour ~ = nil then
if tour:loadFromXMLFile(xmlFile, "guidedTour.tour" ) then
self.pendingStartTour = tour
else
Logging.xmlWarning(xmlFile, "Could not load guided tour from savegame!" )
end
end

xmlFile:delete()

return true
end

loadGuidedTours

Description

Load data on map load

Definition

loadGuidedTours()

Arguments

anyxmlFileHandle
anymissionInfo
anybaseDirectory
anyisBaseType

Return Values

anytrueif loading was successful else false

Code

function GuidedTourManager:loadGuidedTours(xmlFileHandle, missionInfo, baseDirectory, isBaseType)
-- if g_currentMission.missionDynamicInfo.isMultiplayer then
-- return false
-- end

local xmlFile = XMLFile.wrap(xmlFileHandle, Mission00.xmlSchema)

for _, key in xmlFile:iterator( "map.guidedTours.guidedTour" ) do
local xmlFilename = xmlFile:getValue(key .. "#filename" )
if xmlFilename = = nil then
Logging.xmlWarning(xmlFile, "Missing filename for guidedTour '%s'" , key)
continue
end

local name = xmlFile:getValue(key .. "#name" )
if name = = nil then
Logging.xmlWarning(xmlFile, "Missing name for guidedTour '%s'" , key)
continue
end

xmlFilename = Utils.getFilename(xmlFilename, baseDirectory)
local upperName = string.upper(name)

if self.nameToGuidedTour[upperName] ~ = nil then
Logging.xmlWarning(xmlFile, "GuidedTour with name '%s' already exists for '%s'!" , name, key)
continue
end

local guidedTour = GuidedTourUtil.createFromXML(xmlFilename)
if guidedTour ~ = nil then
table.insert( self.guidedTours, guidedTour)
self.nameToGuidedTour[upperName] = guidedTour

guidedTour.name = upperName
guidedTour.index = # self.guidedTours
end
end

g_messageCenter:subscribeOneshot(MessageType.CURRENT_MISSION_START, GuidedTourManager.onMissionStarted, self )

xmlFile:delete()

return true
end

loadMapData

Description

Load data on map load

Definition

loadMapData()

Arguments

anyxmlFile
anymissionInfo
anybaseDirectory

Return Values

anytrueif loading was successful else false

Code

function GuidedTourManager:loadMapData(xmlFile, missionInfo, baseDirectory)
GuidedTourManager:superClass().loadMapData( self )

local success = XMLUtil.loadDataFromMapXML(xmlFile, "guidedTours" , baseDirectory, self , self.loadGuidedTours, missionInfo, baseDirectory)

if success then
GuidedTourHelp.init()
end

return success
end

new

Description

Creating manager

Definition

new()

Arguments

anycustomMt

Return Values

anyinstanceinstance of object

Code

function GuidedTourManager.new(customMt)
local self = AbstractManager.new(customMt or GuidedTourManager _mt)

return self
end

saveToXMLFile

Description

Write data to savegame file

Definition

saveToXMLFile(string xmlFilename)

Arguments

stringxmlFilenamefile path

Return Values

stringtrueif loading was successful else false

Code

function GuidedTourManager:saveToXMLFile(xmlFilename)
local xmlFile = XMLFile.create( "guidedTourXML" , xmlFilename, "guidedTour" , GuidedTourManager.xmlSchema)
if xmlFile = = nil then
Logging.error( "Failed to create guidedTour xml file" )
return false
end

local tour = self.activeTour
if tour ~ = nil then
xmlFile:setValue( "guidedTour.tour#name" , tour.name)
tour:saveToXMLFile(xmlFile, "guidedTour.tour" )
end

xmlFile:save()
xmlFile:delete()

return true
end