RigsofRods  2023.09
Soft-body Physics Simulation
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
RigDef_Parser.h
Go to the documentation of this file.
1 /*
2  This source file is part of Rigs of Rods
3  Copyright 2005-2012 Pierre-Michel Ricordel
4  Copyright 2007-2012 Thomas Fischer
5  Copyright 2013-2021 Petr Ohlidal
6 
7  For more information, see http://www.rigsofrods.org/
8 
9  Rigs of Rods is free software: you can redistribute it and/or modify
10  it under the terms of the GNU General Public License version 3, as
11  published by the Free Software Foundation.
12 
13  Rigs of Rods is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with Rigs of Rods. If not, see <http://www.gnu.org/licenses/>.
20 */
21 
26 
27 #pragma once
28 
29 #include "Console.h"
30 #include "RigDef_Prerequisites.h"
31 #include "RigDef_File.h"
33 
34 #include <memory>
35 #include <string>
36 #include <regex>
37 
38 namespace RigDef
39 {
40 
56 class Parser
57 {
58 
59 public:
60 
61  static const int LINE_BUFFER_LENGTH = 2000;
62  static const int LINE_MAX_ARGS = 100;
63 
64  struct Token
65  {
66  const char* start;
67  int length;
68  };
69 
70  Parser();
71 
72  void Prepare();
73  void Finalize();
74  void ProcessOgreStream(Ogre::DataStream* stream, Ogre::String resource_group);
75  void ProcessRawLine(const char* line);
76 
78  {
79  return m_definition;
80  }
81 
83 
84  // Common for truckfiles and addonparts:
85  static void ProcessForsetLine(RigDef::Flexbody& def, const std::string& line, int line_number = -1);
86  static Keyword IdentifyKeyword(const std::string& line);
87  static SpecialProp IdentifySpecialProp(const std::string& str);
88 
89 private:
90 
91 // --------------------------------------------------------------------------
92 // Directive parsers
93 // --------------------------------------------------------------------------
94 
101  void ParseDirectiveForset();
102  void ParseDirectiveForvert();
104  void ParseDirectiveSection();
112  void ParseDirectiveSubmesh();
113 
114 // --------------------------------------------------------------------------
115 // Section parsers
116 // --------------------------------------------------------------------------
117 
118  void ParseAirbrakes();
119  void ParseAnimator();
120  void ParseAntiLockBrakes();
121  void ParseAssetpacks();
122  void ParseAuthor();
123  void ParseAxles();
124  void ParseBeams();
125  void ParseBrakes();
126  void ParseCab();
127  void ParseCameras();
128  void ParseCameraRails();
129  void ParseCinecam();
130  void ParseCollisionBox();
131  void ParseCommandsUnified();
132  void ParseContacter();
133  void ParseCruiseControl();
134  void ParseDescription();
135  void ParseEngine();
136  void ParseEngoption();
137  void ParseEngturbo();
138  void ParseExhaust();
139  void ParseExtCamera();
140  void ParseFileFormatVersion();
141  void ParseFileinfo();
142  void ParseFixes();
143  void ParseFlaresUnified();
144  void ParseFlares3();
146  void ParseFlexbody();
147  void ParseFlexBodyWheel();
148  void ParseFusedrag();
149  void ParseGlobals();
150  void ParseGuid();
151  void ParseGuiSettings();
152  void ParseHelp();
153  void ParseHook();
154  void ParseHydros();
155  void ParseInterAxles();
156  void ParseLockgroups();
157  void ParseManagedMaterials();
159  void ParseMeshWheel();
160  void ParseMeshWheel2();
161  void ParseMinimass();
162  void ParseNodesUnified();
163  void ParseParticles();
164  void ParsePistonprops();
165  void ParseProps();
166  void ParseRailGroups();
167  void ParseRopables();
168  void ParseRopes();
169  void ParseRotatorsUnified();
170  void ParseScrewprops();
171  void ParseScripts();
172  void ParseSetCollisionRange();
174  void ParseShock();
175  void ParseShock2();
176  void ParseShock3();
177  void ParseSlidenodes();
178  void ParseSoundsources();
179  void ParseSoundsources2();
180  void ParseSpeedLimiter();
182  void ParseTexcoords();
183  void ParseTies();
184  void ParseTorqueCurve();
185  void ParseTractionControl();
186  void ParseTransferCase();
187  void ParseTriggers();
188  void ParseTurbojets();
189  void ParseTurbopropsUnified();
190  void ParseVideoCamera();
191  void ParseWheelDetachers();
192  void ParseWheel();
193  void ParseWheel2();
194  void ParseWing();
195 
196 // --------------------------------------------------------------------------
197 // Utilities
198 // --------------------------------------------------------------------------
199 
200  void ProcessCurrentLine();
201  int TokenizeCurrentLine();
202  bool CheckNumArguments(int num_required_args);
205  void FlushPendingDocComment(size_t vectorlen, RigDef::Keyword keyword);
206 
207  std::string GetArgStr (int index);
208  int GetArgInt (int index);
209  unsigned GetArgUint (int index);
210  long GetArgLong (int index);
211  float GetArgFloat (int index);
212  char GetArgChar (int index);
213  bool GetArgBool (int index);
215  RoR::WheelBraking GetArgBraking (int index);
216  Node::Ref GetArgNodeRef (int index);
217  Node::Ref GetArgRigidityNode (int index);
218  Node::Ref GetArgNullableNode (int index);
219  RoR::WheelSide GetArgWheelSide (int index);
221  RoR::FlareType GetArgFlareType (int index);
223  std::string GetArgManagedTex (int index);
225  BitMask_t GetArgCabOptions (int index);
226  BitMask_t GetArgTriggerOptions(int index);
227  BitMask_t GetArgBeamOptions (int index);
228  BitMask_t GetArgHydroOptions (int index);
229  BitMask_t GetArgShockOptions (int index);
230  BitMask_t GetArgShock2Options(int index);
231  BitMask_t GetArgShock3Options(int index);
232  BitMask_t GetArgNodeOptions (int index);
233  EngineType GetArgEngineType (int index);
236 
237  float ParseArgFloat (const char* str);
238  int ParseArgInt (const char* str);
239  unsigned ParseArgUint (const char* str);
240  unsigned ParseArgUint (const std::string& s);
241  float ParseArgFloat (const std::string& s);
242 
244  void LogMessage(RoR::Console::MessageType type, std::string const& msg);
245 
246  static void _TrimTrailingComments(std::string const & line_in, std::string & line_out);
247 
248  Node::Ref _ParseNodeRef(std::string const & node_id_str);
249  void _ParseDifferentialTypes(DifferentialTypeVec& diff_types, std::string const& options_str);
250  void _ParseBaseMeshWheel(BaseMeshWheel& mesh_wheel);
251 
252  void ParseOptionalInertia(Inertia& inertia, int index);
253 
254 // --------------------------------------------------------------------------
255 
256  // RoR defaults
257 
258  std::shared_ptr<Inertia> m_ror_default_inertia;
259  std::shared_ptr<NodeDefaults> m_ror_node_defaults;
260 
261  // Data from user directives
262  // Each affected section-struct has a shared_ptr to it's respective defaults
263  std::shared_ptr<Inertia> m_user_default_inertia;
264  std::shared_ptr<BeamDefaults> m_user_beam_defaults;
265  std::shared_ptr<NodeDefaults> m_user_node_defaults;
266  std::shared_ptr<DefaultMinimass> m_set_default_minimass;
269 
270  // Parser state
271  std::shared_ptr<Document::Module> m_root_module;
272  std::shared_ptr<Document::Module> m_current_module;
273 
274  unsigned int m_current_line_number = 0;
277  int m_num_args = 0;
281  std::shared_ptr<Submesh> m_current_submesh;
282  std::shared_ptr<CameraRail> m_current_camera_rail;
284 
286 
287  Ogre::String m_filename; // Logging
288  Ogre::String m_resource_group;
289 
291 };
292 
293 } // namespace RigDef
RigDef::Parser::ParseWheel2
void ParseWheel2()
Definition: RigDef_Parser.cpp:371
RigDef::Parser::Token
Definition: RigDef_Parser.h:64
RigDef::Parser::ParseDirectiveSectionConfig
void ParseDirectiveSectionConfig()
Definition: RigDef_Parser.cpp:2995
RigDef::Parser::m_pending_doc_comment
DocComment m_pending_doc_comment
To be linked with the following element.
Definition: RigDef_Parser.h:283
RoR::WheelBraking
WheelBraking
Definition: Application.h:521
RoR::WheelSide
WheelSide
Used by rig-def/addonpart/tuneup formats to specify wheel rim mesh orientation.
Definition: Application.h:542
RigDef::DocComment
< Represents a comment (line starting with ';' or '//') that can be anywhere in the file.
Definition: RigDef_File.h:311
RigDef::MinimassOption
MinimassOption
Definition: RigDef_File.h:107
RigDef::Parser::m_num_args
int m_num_args
Number of tokens on current line.
Definition: RigDef_Parser.h:277
RigDef::Parser::BeginBlock
void BeginBlock(RigDef::Keyword keyword)
Definition: RigDef_Parser.cpp:2894
RigDef::Parser::ParseAntiLockBrakes
void ParseAntiLockBrakes()
Definition: RigDef_Parser.cpp:1362
RigDef::Parser::LINE_MAX_ARGS
static const int LINE_MAX_ARGS
Definition: RigDef_Parser.h:62
RigDef::Parser::Token::length
int length
Definition: RigDef_Parser.h:67
RigDef::Parser::GetArgLong
long GetArgLong(int index)
Definition: RigDef_Parser.cpp:3036
RigDef::Parser::ParseDirectiveForvert
void ParseDirectiveForvert()
Definition: RigDef_Parser.cpp:928
RigDef::Node::Ref
Legacy parser resolved references on-the-fly and the condition to check named nodes was "are there an...
Definition: RigDef_Node.h:77
RigDef::Parser::ParseTransferCase
void ParseTransferCase()
Definition: RigDef_Parser.cpp:498
RigDef::Parser::ParseCab
void ParseCab()
Definition: RigDef_Parser.cpp:858
RigDef::Parser::m_root_module
std::shared_ptr< Document::Module > m_root_module
Definition: RigDef_Parser.h:271
RigDef::SpecialProp
SpecialProp
Definition: RigDef_File.h:62
RigDef::Parser::ParseDirectiveSetBeamDefaultsScale
void ParseDirectiveSetBeamDefaultsScale()
Definition: RigDef_Parser.cpp:579
RigDef::Parser::ParseExtCamera
void ParseExtCamera()
Definition: RigDef_Parser.cpp:1106
RigDef::Parser::ParseExhaust
void ParseExhaust()
Definition: RigDef_Parser.cpp:1118
RigDef::Parser::ParseDirectiveSetBeamDefaults
void ParseDirectiveSetBeamDefaults()
Definition: RigDef_Parser.cpp:593
RigDef::Parser::ParseFlaresUnified
void ParseFlaresUnified()
Definition: RigDef_Parser.cpp:1028
RigDef::Parser::CheckNumArguments
bool CheckNumArguments(int num_required_args)
Definition: RigDef_Parser.cpp:325
RigDef::Parser::ParseDirectiveDefaultSkin
void ParseDirectiveDefaultSkin()
Definition: RigDef_Parser.cpp:1144
RigDef::Parser::m_current_line_number
unsigned int m_current_line_number
Definition: RigDef_Parser.h:274
RigDef::Parser::ParseDirectiveBackmesh
void ParseDirectiveBackmesh()
Definition: RigDef_Parser.cpp:648
RigDef::Parser::ParseRopes
void ParseRopes()
Definition: RigDef_Parser.cpp:2329
RigDef::Parser::ParseRailGroups
void ParseRailGroups()
Definition: RigDef_Parser.cpp:2359
RigDef_Prerequisites.h
RigDef::Parser::ParseHydros
void ParseHydros()
Definition: RigDef_Parser.cpp:2646
RigDef::Parser::GetFile
RigDef::DocumentPtr GetFile()
Definition: RigDef_Parser.h:77
RigDef::Parser::GetSequentialImporter
SequentialImporter * GetSequentialImporter()
Definition: RigDef_Parser.h:82
RigDef::Parser::Finalize
void Finalize()
Definition: RigDef_Parser.cpp:3000
RigDef::Parser::ParseTies
void ParseTies()
Definition: RigDef_Parser.cpp:1914
RigDef::Parser::Token::start
const char * start
Definition: RigDef_Parser.h:66
RigDef::Parser::ParseGlobals
void ParseGlobals()
Definition: RigDef_Parser.cpp:802
RigDef::Parser::ParseTurbopropsUnified
void ParseTurbopropsUnified()
Definition: RigDef_Parser.cpp:1817
RigDef::Parser::m_ror_node_defaults
std::shared_ptr< NodeDefaults > m_ror_node_defaults
Definition: RigDef_Parser.h:259
RigDef::Parser::ParseScripts
void ParseScripts()
Definition: RigDef_Parser.cpp:2251
RigDef::Parser::ParseCameras
void ParseCameras()
Definition: RigDef_Parser.cpp:1804
RigDef::Parser::ParseTractionControl
void ParseTractionControl()
Definition: RigDef_Parser.cpp:451
RigDef::Parser::ParseDirectiveSetNodeDefaults
void ParseDirectiveSetNodeDefaults()
Definition: RigDef_Parser.cpp:552
RigDef::Parser::GetArgTriggerOptions
BitMask_t GetArgTriggerOptions(int index)
Definition: RigDef_Parser.cpp:3292
RigDef::Parser::GetArgExtCameraMode
RoR::ExtCameraMode GetArgExtCameraMode(int index)
Definition: RigDef_Parser.cpp:3159
RigDef::Parser::ParseFixes
void ParseFixes()
Definition: RigDef_Parser.cpp:1101
RigDef::Parser::ParseCinecam
void ParseCinecam()
Definition: RigDef_Parser.cpp:1617
RigDef::Parser
Checks the rig-def file syntax and pulls data to File object.
Definition: RigDef_Parser.h:56
RigDef::Parser::m_definition
RigDef::DocumentPtr m_definition
Definition: RigDef_Parser.h:290
RigDef::Parser::ParseDirectiveFlexbodyCameraMode
void ParseDirectiveFlexbodyCameraMode()
Definition: RigDef_Parser.cpp:844
RigDef::Parser::m_sequential_importer
SequentialImporter m_sequential_importer
Definition: RigDef_Parser.h:285
RigDef::Parser::ParseScrewprops
void ParseScrewprops()
Definition: RigDef_Parser.cpp:2236
RigDef::Parser::LINE_BUFFER_LENGTH
static const int LINE_BUFFER_LENGTH
Definition: RigDef_Parser.h:61
Console.h
RigDef::Parser::ParseFlares3
void ParseFlares3()
Definition: RigDef_Parser.cpp:1067
RigDef::Parser::GetArgShock3Options
BitMask_t GetArgShock3Options(int index)
Definition: RigDef_Parser.cpp:3425
RigDef::Parser::GetArgChar
char GetArgChar(int index)
Definition: RigDef_Parser.cpp:3015
RigDef::Parser::GetArgNullableNode
Node::Ref GetArgNullableNode(int index)
Definition: RigDef_Parser.cpp:3117
RigDef::Parser::ParseMeshWheel2
void ParseMeshWheel2()
Definition: RigDef_Parser.cpp:717
RigDef::Parser::ParseRotatorsUnified
void ParseRotatorsUnified()
Definition: RigDef_Parser.cpp:2263
RigDef::Parser::m_ror_default_inertia
std::shared_ptr< Inertia > m_ror_default_inertia
Definition: RigDef_Parser.h:258
RigDef::Parser::m_set_default_minimass
std::shared_ptr< DefaultMinimass > m_set_default_minimass
Definition: RigDef_Parser.h:266
RigDef::Parser::ParseContacter
void ParseContacter()
Definition: RigDef_Parser.cpp:1494
RigDef::Parser::_TrimTrailingComments
static void _TrimTrailingComments(std::string const &line_in, std::string &line_out)
Definition: RigDef_Parser.cpp:2452
RigDef::Parser::ParseTriggers
void ParseTriggers()
Definition: RigDef_Parser.cpp:1867
RigDef::Parser::ParseCruiseControl
void ParseCruiseControl()
Definition: RigDef_Parser.cpp:1170
RigDef::Parser::ParseWheel
void ParseWheel()
Definition: RigDef_Parser.cpp:406
RigDef::Parser::GetArgBeamOptions
BitMask_t GetArgBeamOptions(int index)
Definition: RigDef_Parser.cpp:3319
RigDef::ManagedMaterialType
ManagedMaterialType
Definition: RigDef_File.h:78
RigDef::Parser::GetArgInt
int GetArgInt(int index)
Definition: RigDef_Parser.cpp:3061
RigDef::Parser::ProcessRawLine
void ProcessRawLine(const char *line)
Definition: RigDef_Parser.cpp:3596
RigDef::WingControlSurface
WingControlSurface
Definition: RigDef_File.h:113
RigDef::Parser::GetArgRigidityNode
Node::Ref GetArgRigidityNode(int index)
Definition: RigDef_Parser.cpp:3066
RigDef::Parser::m_log_keyword
Keyword m_log_keyword
Definition: RigDef_Parser.h:279
RigDef::Parser::ParseSpeedLimiter
void ParseSpeedLimiter()
Definition: RigDef_Parser.cpp:522
RigDef::Parser::ProcessOgreStream
void ProcessOgreStream(Ogre::DataStream *stream, Ogre::String resource_group)
Definition: RigDef_Parser.cpp:3572
RigDef::Parser::GetArgBraking
RoR::WheelBraking GetArgBraking(int index)
Definition: RigDef_Parser.cpp:3093
RigDef::Parser::ParseInterAxles
void ParseInterAxles()
Definition: RigDef_Parser.cpp:1709
RigDef::Parser::ParseArgUint
unsigned ParseArgUint(const char *str)
Definition: RigDef_Parser.cpp:3186
RigDef::Parser::IdentifyKeyword
static Keyword IdentifyKeyword(const std::string &line)
Definition: RigDef_Parser.cpp:2848
RigDef::Parser::ParsePistonprops
void ParsePistonprops()
Definition: RigDef_Parser.cpp:2418
RigDef::Parser::ParseGuiSettings
void ParseGuiSettings()
Definition: RigDef_Parser.cpp:779
RigDef::Parser::Parser
Parser()
Definition: RigDef_Parser.cpp:69
RigDef::Parser::GetArgFlareType
RoR::FlareType GetArgFlareType(int index)
Definition: RigDef_Parser.cpp:3131
RigDef::Parser::ParseWheelDetachers
void ParseWheelDetachers()
Definition: RigDef_Parser.cpp:438
RigDef::Parser::ParseOptionalInertia
void ParseOptionalInertia(Inertia &inertia, int index)
Definition: RigDef_Parser.cpp:2672
RigDef::Parser::m_current_managed_material_options
ManagedMaterialsOptions m_current_managed_material_options
Definition: RigDef_Parser.h:268
RigDef::Parser::GetArgHydroOptions
BitMask_t GetArgHydroOptions(int index)
Definition: RigDef_Parser.cpp:3340
RigDef::Parser::_ParseBaseMeshWheel
void _ParseBaseMeshWheel(BaseMeshWheel &mesh_wheel)
Definition: RigDef_Parser.cpp:678
RoR::ExtCameraMode
ExtCameraMode
Definition: Application.h:551
RigDef::Parser::GetArgShock2Options
BitMask_t GetArgShock2Options(int index)
Definition: RigDef_Parser.cpp:3402
RigDef::Parser::ParseArgFloat
float ParseArgFloat(const char *str)
Definition: RigDef_Parser.cpp:3176
RigDef::Parser::ParseAirbrakes
void ParseAirbrakes()
Definition: RigDef_Parser.cpp:1736
keyword
static int keyword
Definition: Bench_TruckParser_IdentifyKeyword.cpp:1448
RigDef::Parser::m_any_named_node_defined
bool m_any_named_node_defined
Parser state.
Definition: RigDef_Parser.h:280
RigDef::Parser::IdentifySpecialProp
static SpecialProp IdentifySpecialProp(const std::string &str)
Definition: RigDef_Parser.cpp:3476
RigDef::Parser::ParseDirectiveSetDefaultMinimass
void ParseDirectiveSetDefaultMinimass()
Definition: RigDef_Parser.cpp:2178
RigDef
Definition: Application.cpp:703
RigDef::Parser::LogMessage
void LogMessage(RoR::Console::MessageType type, std::string const &msg)
Adds a message to console.
Definition: RigDef_Parser.cpp:2839
RigDef::Parser::FlushPendingDocComment
void FlushPendingDocComment(size_t vectorlen, RigDef::Keyword keyword)
Definition: RigDef_Parser.cpp:2976
RigDef::Parser::m_current_camera_rail
std::shared_ptr< CameraRail > m_current_camera_rail
Parser state.
Definition: RigDef_Parser.h:282
RigDef::Parser::ParseLockgroups
void ParseLockgroups()
Definition: RigDef_Parser.cpp:2630
RigDef::Keyword::INVALID
@ INVALID
RigDef::Parser::ParseFusedrag
void ParseFusedrag()
Definition: RigDef_Parser.cpp:816
RoR::Console::MessageType
MessageType
Definition: Console.h:46
RigDef::Parser::ParseBeams
void ParseBeams()
Definition: RigDef_Parser.cpp:2701
RigDef::Parser::ParseWing
void ParseWing()
Definition: RigDef_Parser.cpp:340
RigDef::Parser::_ParseNodeRef
Node::Ref _ParseNodeRef(std::string const &node_id_str)
Definition: RigDef_Parser.cpp:2151
RigDef::SequentialImporter
Definition: RigDef_SequentialImporter.h:77
RigDef::Parser::ParseDirectiveSetInertiaDefaults
void ParseDirectiveSetInertiaDefaults()
Definition: RigDef_Parser.cpp:2211
RigDef::Parser::GetArgPropulsion
RoR::WheelPropulsion GetArgPropulsion(int index)
Definition: RigDef_Parser.cpp:3076
RigDef::Parser::ParseBrakes
void ParseBrakes()
Definition: RigDef_Parser.cpp:1663
RigDef::Parser::ParseAssetpacks
void ParseAssetpacks()
Definition: RigDef_Parser.cpp:1760
RigDef_SequentialImporter.h
RigDef::Parser::GetArgBool
bool GetArgBool(int index)
Definition: RigDef_Parser.cpp:3209
RigDef::Parser::ParseDirectiveDetacherGroup
void ParseDirectiveDetacherGroup()
Definition: RigDef_Parser.cpp:1156
RigDef::Parser::ParseFlexBodyWheel
void ParseFlexBodyWheel()
Definition: RigDef_Parser.cpp:2549
RigDef::Parser::ProcessGlobalDirective
void ProcessGlobalDirective(Keyword keyword)
Directives that should only appear in root module.
Definition: RigDef_Parser.cpp:660
RigDef::Parser::m_user_beam_defaults
std::shared_ptr< BeamDefaults > m_user_beam_defaults
Definition: RigDef_Parser.h:264
RigDef::Parser::ProcessChangeModuleLine
void ProcessChangeModuleLine(Keyword keyword)
Definition: RigDef_Parser.cpp:2927
RigDef::Parser::ParseRopables
void ParseRopables()
Definition: RigDef_Parser.cpp:2345
RoR::FlareType
FlareType
Definition: Application.h:500
RigDef::Parser::m_current_detacher_group
int m_current_detacher_group
Definition: RigDef_Parser.h:267
RigDef::Parser::ParseAxles
void ParseAxles()
Definition: RigDef_Parser.cpp:1677
RigDef::Parser::Prepare
void Prepare()
Definition: RigDef_Parser.cpp:2869
RigDef::Parser::ParseCameraRails
void ParseCameraRails()
Definition: RigDef_Parser.cpp:1658
RigDef::Inertia
Definition: RigDef_File.h:298
RigDef::BaseMeshWheel
Definition: RigDef_File.h:279
RigDef::Parser::ParseEngturbo
void ParseEngturbo()
Definition: RigDef_Parser.cpp:1430
RigDef::Parser::m_user_default_inertia
std::shared_ptr< Inertia > m_user_default_inertia
Definition: RigDef_Parser.h:263
RigDef::Parser::GetArgMinimassOption
MinimassOption GetArgMinimassOption(int index)
Definition: RigDef_Parser.cpp:3249
RigDef::Parser::m_user_node_defaults
std::shared_ptr< NodeDefaults > m_user_node_defaults
Definition: RigDef_Parser.h:265
RigDef::Parser::GetArgManagedTex
std::string GetArgManagedTex(int index)
Definition: RigDef_Parser.cpp:3243
RigDef::Parser::ParseSoundsources
void ParseSoundsources()
Definition: RigDef_Parser.cpp:1961
RigDef::Parser::m_current_line
char m_current_line[LINE_BUFFER_LENGTH]
Definition: RigDef_Parser.h:275
RigDef::Parser::ParseAuthor
void ParseAuthor()
Definition: RigDef_Parser.cpp:2820
RigDef::Parser::GetArgShockOptions
BitMask_t GetArgShockOptions(int index)
Definition: RigDef_Parser.cpp:3379
RigDef::Parser::_ParseDifferentialTypes
void _ParseDifferentialTypes(DifferentialTypeVec &diff_types, std::string const &options_str)
Definition: RigDef_Parser.cpp:2680
RigDef::Parser::ParseGuid
void ParseGuid()
Definition: RigDef_Parser.cpp:791
RigDef::Parser::ParseCommandsUnified
void ParseCommandsUnified()
Definition: RigDef_Parser.cpp:1502
RigDef::Parser::ParseDirectiveSubmesh
void ParseDirectiveSubmesh()
Definition: RigDef_Parser.cpp:642
RigDef::Parser::GetArgFloat
float GetArgFloat(int index)
Definition: RigDef_Parser.cpp:3171
RigDef::Parser::ParseAnimator
void ParseAnimator()
Definition: RigDef_Parser.cpp:2729
RigDef::Parser::ParseShock3
void ParseShock3()
Definition: RigDef_Parser.cpp:2072
RigDef::Flexbody
Definition: RigDef_File.h:775
RigDef::Parser::ParseFileinfo
void ParseFileinfo()
Definition: RigDef_Parser.cpp:2312
RigDef::Parser::ParseEngine
void ParseEngine()
Definition: RigDef_Parser.cpp:1461
RigDef::Parser::ParseHelp
void ParseHelp()
Definition: RigDef_Parser.cpp:772
RigDef::Parser::ProcessForsetLine
static void ProcessForsetLine(RigDef::Flexbody &def, const std::string &line, int line_number=-1)
Definition: RigDef_Parser.cpp:981
RigDef::Parser::ParseMinimass
void ParseMinimass()
Definition: RigDef_Parser.cpp:2537
RigDef::Parser::ParseFileFormatVersion
void ParseFileFormatVersion()
Definition: RigDef_Parser.cpp:1133
RigDef::Parser::m_current_submesh
std::shared_ptr< Submesh > m_current_submesh
Parser state.
Definition: RigDef_Parser.h:281
RigDef::Parser::ParseProps
void ParseProps()
Definition: RigDef_Parser.cpp:2377
RigDef::Parser::ParseDirectiveAddAnimation
void ParseDirectiveAddAnimation()
Definition: RigDef_Parser.cpp:1187
RigDef::Parser::m_args
Token m_args[LINE_MAX_ARGS]
Tokens of current line.
Definition: RigDef_Parser.h:276
RigDef::Parser::ParseSetCollisionRange
void ParseSetCollisionRange()
Definition: RigDef_Parser.cpp:360
RigDef::Parser::ParseDescription
void ParseDescription()
Definition: RigDef_Parser.cpp:1182
RoR::VideoCamRole
VideoCamRole
Definition: Application.h:590
RigDef::Parser::ParseMeshWheel
void ParseMeshWheel()
Definition: RigDef_Parser.cpp:701
RigDef::Parser::ParseDirectivePropCameraMode
void ParseDirectivePropCameraMode()
Definition: RigDef_Parser.cpp:628
RigDef::Parser::ParseMaterialFlareBindings
void ParseMaterialFlareBindings()
Definition: RigDef_Parser.cpp:2586
RigDef::Parser::ParseTexcoords
void ParseTexcoords()
Definition: RigDef_Parser.cpp:878
RigDef::Parser::ParseFlexbody
void ParseFlexbody()
Definition: RigDef_Parser.cpp:897
RigDef::Parser::GetArgWheelSide
RoR::WheelSide GetArgWheelSide(int index)
Definition: RigDef_Parser.cpp:3020
RigDef::Parser::ParseShock
void ParseShock()
Definition: RigDef_Parser.cpp:2130
RigDef::Parser::m_filename
Ogre::String m_filename
Definition: RigDef_Parser.h:287
RigDef::Parser::ParseDirectiveSetManagedMaterialsOptions
void ParseDirectiveSetManagedMaterialsOptions()
Definition: RigDef_Parser.cpp:571
RigDef::Parser::ParseHook
void ParseHook()
Definition: RigDef_Parser.cpp:733
RigDef::Parser::ParseSubmeshGroundModel
void ParseSubmeshGroundModel()
Definition: RigDef_Parser.cpp:514
RigDef::Parser::ParseCollisionBox
void ParseCollisionBox()
Definition: RigDef_Parser.cpp:1602
RigDef::Parser::ParseSetSkeletonSettings
void ParseSetSkeletonSettings()
Definition: RigDef_Parser.cpp:534
BitMask_t
uint32_t BitMask_t
Definition: BitFlags.h:7
RigDef::Parser::ParseSoundsources2
void ParseSoundsources2()
Definition: RigDef_Parser.cpp:1973
RigDef::Parser::ParseDirectiveForset
void ParseDirectiveForset()
Definition: RigDef_Parser.cpp:917
RigDef::Parser::ParseFlaregroupsNoImport
void ParseFlaregroupsNoImport()
Definition: RigDef_Parser.cpp:2186
RigDef::Parser::ParseEngoption
void ParseEngoption()
Definition: RigDef_Parser.cpp:1408
RigDef::EngineType
EngineType
Definition: RigDef_File.h:90
RigDef::DocumentPtr
std::shared_ptr< Document > DocumentPtr
Definition: ForwardDeclarations.h:281
RigDef::Parser::GetArgManagedMatType
ManagedMaterialType GetArgManagedMatType(int index)
Definition: RigDef_Parser.cpp:3508
RigDef::Parser::GetArgNodeRef
Node::Ref GetArgNodeRef(int index)
Definition: RigDef_Parser.cpp:3112
RigDef::Parser::GetArgUint
unsigned GetArgUint(int index)
Definition: RigDef_Parser.cpp:3126
RigDef::Parser::m_resource_group
Ogre::String m_resource_group
Definition: RigDef_Parser.h:288
RigDef::Parser::ParseVideoCamera
void ParseVideoCamera()
Definition: RigDef_Parser.cpp:1772
RigDef::Parser::GetArgNodeOptions
BitMask_t GetArgNodeOptions(int index)
Definition: RigDef_Parser.cpp:3447
RigDef::Parser::GetArgWingSurface
WingControlSurface GetArgWingSurface(int index)
Definition: RigDef_Parser.cpp:3214
RigDef::Parser::GetArgStr
std::string GetArgStr(int index)
Definition: RigDef_Parser.cpp:3010
RigDef::Parser::ParseTorqueCurve
void ParseTorqueCurve()
Definition: RigDef_Parser.cpp:1887
RigDef::Parser::ParseNodesUnified
void ParseNodesUnified()
Definition: RigDef_Parser.cpp:2482
RigDef::Parser::m_current_module
std::shared_ptr< Document::Module > m_current_module
Definition: RigDef_Parser.h:272
RigDef::Parser::ProcessCurrentLine
void ProcessCurrentLine()
Definition: RigDef_Parser.cpp:76
RigDef::Parser::ParseTurbojets
void ParseTurbojets()
Definition: RigDef_Parser.cpp:1848
RigDef::Parser::ParseParticles
void ParseParticles()
Definition: RigDef_Parser.cpp:2438
RigDef::Parser::GetArgVideoCamRole
RoR::VideoCamRole GetArgVideoCamRole(int index)
Definition: RigDef_Parser.cpp:3521
RigDef::Parser::ParseArgInt
int ParseArgInt(const char *str)
Definition: RigDef_Parser.cpp:3204
RigDef_File.h
Data structures representing 'truck' file format, see https://docs.rigsofrods.org/vehicle-creation/fi...
RigDef::Parser::m_current_block
Keyword m_current_block
Definition: RigDef_Parser.h:278
RigDef::Parser::ParseShock2
void ParseShock2()
Definition: RigDef_Parser.cpp:2102
RigDef::ManagedMaterialsOptions
Definition: RigDef_File.h:897
RoR::WheelPropulsion
WheelPropulsion
Definition: Application.h:532
RigDef::Parser::ParseSlidenodes
void ParseSlidenodes()
Definition: RigDef_Parser.cpp:1993
RigDef::Keyword
Keyword
Definition: Application.h:171
RigDef::DifferentialTypeVec
std::vector< DifferentialType > DifferentialTypeVec
Definition: RigDef_File.h:105
RigDef::Parser::GetArgEngineType
EngineType GetArgEngineType(int index)
Definition: RigDef_Parser.cpp:3492
RigDef::Parser::ParseDirectiveSection
void ParseDirectiveSection()
Definition: RigDef_Parser.cpp:2990
RigDef::Parser::GetArgCabOptions
BitMask_t GetArgCabOptions(int index)
Definition: RigDef_Parser.cpp:3266
RigDef::Parser::ParseManagedMaterials
void ParseManagedMaterials()
Definition: RigDef_Parser.cpp:2598
RigDef::Parser::TokenizeCurrentLine
int TokenizeCurrentLine()
Definition: RigDef_Parser.cpp:3537