Skyscraper 2.0
Skyscraper::ScriptProcessor Class Reference

#include <scriptproc.h>

Collaboration diagram for Skyscraper::ScriptProcessor:

Classes

class  BuildingsSection
 
class  CallStationSection
 
class  CommandsSection
 
class  ConfigHandler
 
class  ControllerSection
 
class  ElevatorCarSection
 
class  ElevatorSection
 
class  FloorSection
 
struct  ForInfo
 
struct  FunctionData
 
struct  FunctionInfo
 
class  GlobalsSection
 
struct  IncludeInfo
 
class  Section
 
class  TexturesSection
 
struct  VariableMap
 
class  VehicleSection
 

Public Member Functions

 ScriptProcessor (EngineContext *instance)
 
 ~ScriptProcessor ()
 
bool Run ()
 
bool LoadDataFile (const std::string &filename, bool insert=false, int insert_line=0)
 
bool LoadFromText (const std::string &text)
 
void LoadDefaults ()
 
void Start ()
 
bool ReportMissingFiles ()
 
void Reset ()
 
std::vector< std::string > * GetBuildingData ()
 
bool IsFunctionDefined (const std::string &name)
 
std::string DumpState ()
 
EngineContextGetEngine ()
 
ElevatorCarSectionGetElevatorCarSection ()
 
ConfigHandlerGetConfigHandler ()
 
bool HasRunloop ()
 
bool InRunloop ()
 

Public Attributes

bool IsFinished
 
std::vector< VariableMapvariables
 
std::vector< std::string > nonexistent_files
 
bool getfloordata
 
int line
 
std::string LineData
 
bool NoModels
 

Static Public Attributes

static const int sContinue = 0
 
static const int sNextLine = 1
 
static const int sError = 2
 
static const int sCheckFloors = 3
 
static const int sBreak = 4
 
static const int sRecalc = 5
 
static const int sSkipReset = 6
 
static const int sExit = 7
 
static const int sLoopFor = 8
 

Private Member Functions

int ScriptError (std::string message, bool warning=false)
 
int ScriptError ()
 
int ScriptWarning (std::string message)
 
std::string Calc (const std::string &expression)
 
void StoreCommand (::SBS::Object *object)
 
bool FunctionProc ()
 
void CheckFile (const std::string &filename)
 
void GetLineInformation (bool CheckFunctionCall, int &LineNumber, std::string &FunctionName, int &FunctionLine, bool &IsInclude, std::string &IncludeFile, bool &IsIncludeFunction, std::string &IncludeFunctionFile)
 
bool ProcessFunctionParameters ()
 
void ProcessUserVariables ()
 
int ProcessSections ()
 
int ProcessFloorObjects ()
 
void Breakpoint ()
 
void ProcessExtents ()
 
int ProcessForLoops ()
 
void ProcessRunloop ()
 

Private Attributes

::SBS::SBSSimcore
 
EngineContextengine
 
ConfigHandlerconfig
 
GlobalsSectionglobals_section
 
BuildingsSectionbuildings_section
 
TexturesSectiontextures_section
 
CommandsSectioncommands_section
 
FloorSectionfloor_section
 
ElevatorSectionelevator_section
 
ElevatorCarSectionelevatorcar_section
 
VehicleSectionvehicle_section
 
ControllerSectioncontroller_section
 
CallStationSectioncallstation_section
 
::SBS::Wallwall
 
int startpos
 
std::vector< std::string > BuildingData
 
std::vector< std::string > BuildingDataOrig
 
int InFunction
 
std::vector< FunctionDataFunctionStack
 
bool ReplaceLine
 
std::string ReplaceLineData
 
bool CalcError
 
bool show_percent
 
int progress_marker
 
bool in_runloop
 
bool processed_runloop
 
std::vector< FunctionInfofunctions
 
std::vector< IncludeInfoincludes
 
std::vector< ForInfoForLoops
 

Detailed Description

Definition at line 30 of file scriptproc.h.

Constructor & Destructor Documentation

◆ ScriptProcessor()

Skyscraper::ScriptProcessor::ScriptProcessor ( EngineContext * instance)

◆ ~ScriptProcessor()

Member Function Documentation

◆ Breakpoint()

void Skyscraper::ScriptProcessor::Breakpoint ( )
private

Definition at line 1904 of file scriptproc.cpp.

References engine, and Skyscraper::EngineContext::Report().

Referenced by ProcessSections(), and Run().

Here is the call graph for this function:

◆ Calc()

◆ CheckFile()

void Skyscraper::ScriptProcessor::CheckFile ( const std::string & filename)
private

Definition at line 1024 of file scriptproc.cpp.

References SBS::SBS::FileExists(), nonexistent_files, SBS::ReplaceAll(), and Simcore.

Here is the call graph for this function:

◆ DumpState()

◆ FunctionProc()

◆ GetBuildingData()

std::vector< std::string > * Skyscraper::ScriptProcessor::GetBuildingData ( )

Definition at line 1070 of file scriptproc.cpp.

References BuildingDataOrig.

Referenced by Skyscraper::ObjectInfo::On_bViewScript_Click().

◆ GetConfigHandler()

ScriptProcessor::ConfigHandler * Skyscraper::ScriptProcessor::GetConfigHandler ( )

Definition at line 1919 of file scriptproc.cpp.

References config.

Referenced by Skyscraper::ScriptProcessor::Section::Section().

◆ GetElevatorCarSection()

ScriptProcessor::ElevatorCarSection * Skyscraper::ScriptProcessor::GetElevatorCarSection ( )

Definition at line 1123 of file scriptproc.cpp.

References elevatorcar_section.

◆ GetEngine()

EngineContext * Skyscraper::ScriptProcessor::GetEngine ( )

◆ GetLineInformation()

void Skyscraper::ScriptProcessor::GetLineInformation ( bool CheckFunctionCall,
int & LineNumber,
std::string & FunctionName,
int & FunctionLine,
bool & IsInclude,
std::string & IncludeFile,
bool & IsIncludeFunction,
std::string & IncludeFunctionFile )
private

Definition at line 552 of file scriptproc.cpp.

References FunctionStack, includes, InFunction, and line.

Referenced by DumpState(), ScriptError(), and StoreCommand().

◆ HasRunloop()

bool Skyscraper::ScriptProcessor::HasRunloop ( )

Definition at line 2038 of file scriptproc.cpp.

References functions.

◆ InRunloop()

bool Skyscraper::ScriptProcessor::InRunloop ( )
inline

Definition at line 64 of file scriptproc.h.

Referenced by Skyscraper::EngineContext::InRunloop(), and Run().

◆ IsFunctionDefined()

bool Skyscraper::ScriptProcessor::IsFunctionDefined ( const std::string & name)

Definition at line 1075 of file scriptproc.cpp.

References functions.

Referenced by ProcessSections().

◆ LoadDataFile()

◆ LoadDefaults()

void Skyscraper::ScriptProcessor::LoadDefaults ( )

◆ LoadFromText()

bool Skyscraper::ScriptProcessor::LoadFromText ( const std::string & text)

Definition at line 478 of file scriptproc.cpp.

References BuildingData, BuildingDataOrig, and SBS::SplitString().

Referenced by Skyscraper::ParameterViewer::On_bOK_Click(), and Skyscraper::VMConsole::Process().

Here is the call graph for this function:

◆ ProcessExtents()

void Skyscraper::ScriptProcessor::ProcessExtents ( )
private

◆ ProcessFloorObjects()

◆ ProcessForLoops()

◆ ProcessFunctionParameters()

bool Skyscraper::ScriptProcessor::ProcessFunctionParameters ( )
private

◆ ProcessRunloop()

void Skyscraper::ScriptProcessor::ProcessRunloop ( )
private

◆ ProcessSections()

int Skyscraper::ScriptProcessor::ProcessSections ( )
private

Definition at line 1258 of file scriptproc.cpp.

References Breakpoint(), BuildingData, config, Skyscraper::ScriptProcessor::ConfigHandler::Context, Skyscraper::ScriptProcessor::ConfigHandler::ContextOld, Skyscraper::ScriptProcessor::ConfigHandler::Current, Skyscraper::ScriptProcessor::ConfigHandler::CurrentOld, engine, functions, FunctionStack, SBS::SBS::GetControllerCount(), SBS::SBS::GetElevator(), SBS::SBS::GetElevatorCount(), SBS::SBS::GetFloor(), SBS::SBS::GetVehicleCount(), in_runloop, InFunction, IsFinished, IsFunctionDefined(), Skyscraper::IsNumeric(), Skyscraper::EngineContext::IsReloading(), Skyscraper::ScriptProcessor::FunctionInfo::line, line, LineData, LoadDataFile(), Skyscraper::ScriptProcessor::FunctionData::Name, Skyscraper::ScriptProcessor::FunctionInfo::name, processed_runloop, progress_marker, Skyscraper::ScriptProcessor::ConfigHandler::RangeH, Skyscraper::ScriptProcessor::ConfigHandler::RangeHOld, Skyscraper::ScriptProcessor::ConfigHandler::RangeL, Skyscraper::ScriptProcessor::ConfigHandler::RangeLOld, Skyscraper::ScriptProcessor::ConfigHandler::RangeStart, Skyscraper::ScriptProcessor::ConfigHandler::RangeStartOld, ReplaceLine, ReplaceLineData, Skyscraper::EngineContext::Report(), sContinue, ScriptError(), Skyscraper::ScriptProcessor::ConfigHandler::SectionNum, sError, SBS::SetCaseCopy(), sExit, show_percent, Simcore, sNextLine, SBS::StartsWithNoCase(), SBS::ToString(), SBS::TrimString(), SBS::SBS::Verbose, and SBS::SBS::VerifyFile().

Referenced by Run().

Here is the call graph for this function:

◆ ProcessUserVariables()

void Skyscraper::ScriptProcessor::ProcessUserVariables ( )
private

Definition at line 1201 of file scriptproc.cpp.

References LineData, SBS::ReplaceAll(), startpos, SBS::TrimString(), and variables.

Referenced by Run().

Here is the call graph for this function:

◆ ReportMissingFiles()

bool Skyscraper::ScriptProcessor::ReportMissingFiles ( )

◆ Reset()

◆ Run()

bool Skyscraper::ScriptProcessor::Run ( )

Definition at line 145 of file scriptproc.cpp.

References Breakpoint(), BuildingData, buildings_section, callstation_section, commands_section, config, controller_section, Skyscraper::ScriptProcessor::ConfigHandler::Current, elevator_section, elevatorcar_section, engine, SBS::TextureManager::FlipTexture, floor_section, ForLoops, SBS::TextureManager::FreeTextureBoxes(), SBS::SBS::GetRunTime(), Skyscraper::VM::GetSkySystem(), SBS::SBS::GetTextureManager(), Skyscraper::SkySystem::GetTime(), Skyscraper::EngineContext::GetVM(), globals_section, in_runloop, InFunction, InRunloop(), Skyscraper::ScriptProcessor::ConfigHandler::InWhile, IsFinished, Skyscraper::EngineContext::IsRunning(), Skyscraper::ScriptProcessor::ForInfo::line, line, LineData, SBS::SBS::NewFloor(), processed_runloop, ProcessExtents(), ProcessFloorObjects(), ProcessForLoops(), ProcessFunctionParameters(), ProcessRunloop(), ProcessSections(), ProcessUserVariables(), SBS::ReplaceAll(), ReplaceLine, ReplaceLineData, Skyscraper::EngineContext::ResetPrepare(), Skyscraper::ScriptProcessor::BuildingsSection::Run(), Skyscraper::ScriptProcessor::CallStationSection::Run(), Skyscraper::ScriptProcessor::CommandsSection::Run(), Skyscraper::ScriptProcessor::ControllerSection::Run(), Skyscraper::ScriptProcessor::ElevatorCarSection::Run(), Skyscraper::ScriptProcessor::ElevatorSection::Run(), Skyscraper::ScriptProcessor::FloorSection::Run(), Skyscraper::ScriptProcessor::GlobalsSection::Run(), Skyscraper::ScriptProcessor::TexturesSection::Run(), Skyscraper::ScriptProcessor::VehicleSection::Run(), sBreak, sCheckFloors, sContinue, Skyscraper::ScriptProcessor::ConfigHandler::SectionNum, sError, sExit, show_percent, Simcore, sLoopFor, sRecalc, sSkipReset, SBS::TextureManager::TextureOverride, textures_section, SBS::ToString(), SBS::TrimString(), and vehicle_section.

Referenced by Skyscraper::EngineContext::Run().

Here is the call graph for this function:

◆ ScriptError() [1/2]

◆ ScriptError() [2/2]

◆ ScriptWarning()

int Skyscraper::ScriptProcessor::ScriptWarning ( std::string message)
private

◆ Start()

void Skyscraper::ScriptProcessor::Start ( )

Definition at line 2061 of file scriptproc.cpp.

References IsFinished, and show_percent.

Referenced by Skyscraper::EngineContext::Boot().

◆ StoreCommand()

Member Data Documentation

◆ BuildingData

std::vector<std::string> Skyscraper::ScriptProcessor::BuildingData
private

◆ BuildingDataOrig

std::vector<std::string> Skyscraper::ScriptProcessor::BuildingDataOrig
private

Definition at line 121 of file scriptproc.h.

Referenced by GetBuildingData(), LoadDataFile(), LoadFromText(), and Reset().

◆ buildings_section

BuildingsSection* Skyscraper::ScriptProcessor::buildings_section
private

Definition at line 100 of file scriptproc.h.

Referenced by Reset(), Run(), ScriptProcessor(), and ~ScriptProcessor().

◆ CalcError

bool Skyscraper::ScriptProcessor::CalcError
private

Definition at line 126 of file scriptproc.h.

Referenced by Calc().

◆ callstation_section

CallStationSection* Skyscraper::ScriptProcessor::callstation_section
private

Definition at line 108 of file scriptproc.h.

Referenced by Reset(), Run(), ScriptProcessor(), and ~ScriptProcessor().

◆ commands_section

CommandsSection* Skyscraper::ScriptProcessor::commands_section
private

Definition at line 102 of file scriptproc.h.

Referenced by Reset(), Run(), ScriptProcessor(), and ~ScriptProcessor().

◆ config

◆ controller_section

ControllerSection* Skyscraper::ScriptProcessor::controller_section
private

Definition at line 107 of file scriptproc.h.

Referenced by Reset(), Run(), ScriptProcessor(), and ~ScriptProcessor().

◆ elevator_section

ElevatorSection* Skyscraper::ScriptProcessor::elevator_section
private

Definition at line 104 of file scriptproc.h.

Referenced by Reset(), Run(), ScriptProcessor(), and ~ScriptProcessor().

◆ elevatorcar_section

ElevatorCarSection* Skyscraper::ScriptProcessor::elevatorcar_section
private

Definition at line 105 of file scriptproc.h.

Referenced by GetElevatorCarSection(), Reset(), Run(), ScriptProcessor(), and ~ScriptProcessor().

◆ engine

◆ floor_section

FloorSection* Skyscraper::ScriptProcessor::floor_section
private

Definition at line 103 of file scriptproc.h.

Referenced by Reset(), Run(), ScriptProcessor(), and ~ScriptProcessor().

◆ ForLoops

std::vector<ForInfo> Skyscraper::ScriptProcessor::ForLoops
private

Definition at line 175 of file scriptproc.h.

Referenced by ProcessForLoops(), and Run().

◆ functions

std::vector<FunctionInfo> Skyscraper::ScriptProcessor::functions
private

◆ FunctionStack

std::vector<FunctionData> Skyscraper::ScriptProcessor::FunctionStack
private

◆ getfloordata

bool Skyscraper::ScriptProcessor::getfloordata

Definition at line 88 of file scriptproc.h.

Referenced by ProcessFloorObjects(), and Reset().

◆ globals_section

GlobalsSection* Skyscraper::ScriptProcessor::globals_section
private

Definition at line 99 of file scriptproc.h.

Referenced by Reset(), Run(), ScriptProcessor(), and ~ScriptProcessor().

◆ in_runloop

bool Skyscraper::ScriptProcessor::in_runloop
private

Definition at line 129 of file scriptproc.h.

Referenced by ProcessRunloop(), ProcessSections(), Reset(), and Run().

◆ includes

std::vector<IncludeInfo> Skyscraper::ScriptProcessor::includes
private

Definition at line 174 of file scriptproc.h.

Referenced by GetLineInformation(), LoadDataFile(), and Reset().

◆ InFunction

int Skyscraper::ScriptProcessor::InFunction
private

◆ IsFinished

bool Skyscraper::ScriptProcessor::IsFinished

◆ line

◆ LineData

◆ NoModels

bool Skyscraper::ScriptProcessor::NoModels

Definition at line 91 of file scriptproc.h.

Referenced by ScriptProcessor(), and Skyscraper::EngineContext::StartSim().

◆ nonexistent_files

std::vector<std::string> Skyscraper::ScriptProcessor::nonexistent_files

Definition at line 86 of file scriptproc.h.

Referenced by CheckFile(), Reset(), and Skyscraper::EngineContext::Run().

◆ processed_runloop

bool Skyscraper::ScriptProcessor::processed_runloop
private

Definition at line 130 of file scriptproc.h.

Referenced by ProcessSections(), Reset(), and Run().

◆ progress_marker

int Skyscraper::ScriptProcessor::progress_marker
private

Definition at line 128 of file scriptproc.h.

Referenced by ProcessFunctionParameters(), ProcessSections(), and Reset().

◆ ReplaceLine

bool Skyscraper::ScriptProcessor::ReplaceLine
private

Definition at line 124 of file scriptproc.h.

Referenced by ProcessSections(), Reset(), and Run().

◆ ReplaceLineData

std::string Skyscraper::ScriptProcessor::ReplaceLineData
private

Definition at line 125 of file scriptproc.h.

Referenced by ProcessSections(), Reset(), and Run().

◆ sBreak

const int Skyscraper::ScriptProcessor::sBreak = 4
static

Definition at line 73 of file scriptproc.h.

Referenced by Run().

◆ sCheckFloors

const int Skyscraper::ScriptProcessor::sCheckFloors = 3
static

◆ sContinue

◆ sError

◆ sExit

const int Skyscraper::ScriptProcessor::sExit = 7
static

Definition at line 76 of file scriptproc.h.

Referenced by ProcessSections(), and Run().

◆ show_percent

bool Skyscraper::ScriptProcessor::show_percent
private

Definition at line 127 of file scriptproc.h.

Referenced by ProcessFunctionParameters(), ProcessSections(), Reset(), Run(), and Start().

◆ Simcore

◆ sLoopFor

const int Skyscraper::ScriptProcessor::sLoopFor = 8
static

Definition at line 77 of file scriptproc.h.

Referenced by ProcessForLoops(), and Run().

◆ sNextLine

◆ sRecalc

const int Skyscraper::ScriptProcessor::sRecalc = 5
static

Definition at line 74 of file scriptproc.h.

Referenced by ProcessFloorObjects(), and Run().

◆ sSkipReset

const int Skyscraper::ScriptProcessor::sSkipReset = 6
static

Definition at line 75 of file scriptproc.h.

Referenced by Skyscraper::ScriptProcessor::CommandsSection::Run(), and Run().

◆ startpos

int Skyscraper::ScriptProcessor::startpos
private

Definition at line 119 of file scriptproc.h.

Referenced by ProcessFunctionParameters(), ProcessUserVariables(), and Reset().

◆ textures_section

TexturesSection* Skyscraper::ScriptProcessor::textures_section
private

Definition at line 101 of file scriptproc.h.

Referenced by Reset(), Run(), ScriptProcessor(), and ~ScriptProcessor().

◆ variables

std::vector<VariableMap> Skyscraper::ScriptProcessor::variables

Definition at line 85 of file scriptproc.h.

Referenced by ProcessForLoops(), ProcessUserVariables(), and Reset().

◆ vehicle_section

VehicleSection* Skyscraper::ScriptProcessor::vehicle_section
private

Definition at line 106 of file scriptproc.h.

Referenced by Reset(), Run(), ScriptProcessor(), and ~ScriptProcessor().

◆ wall

::SBS::Wall* Skyscraper::ScriptProcessor::wall
private

Definition at line 118 of file scriptproc.h.

Referenced by Reset(), and Skyscraper::ScriptProcessor::CommandsSection::Run().


The documentation for this class was generated from the following files: