RigsofRods
Soft-body Physics Simulation
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:2993
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:2892
RigDef::Parser::ParseAntiLockBrakes
void ParseAntiLockBrakes()
Definition: RigDef_Parser.cpp:1360
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:3034
RigDef::Parser::ParseDirectiveForvert
void ParseDirectiveForvert()
Definition: RigDef_Parser.cpp:926
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:856
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:1104
RigDef::Parser::ParseExhaust
void ParseExhaust()
Definition: RigDef_Parser.cpp:1116
RigDef::Parser::ParseDirectiveSetBeamDefaults
void ParseDirectiveSetBeamDefaults()
Definition: RigDef_Parser.cpp:593
RigDef::Parser::ParseFlaresUnified
void ParseFlaresUnified()
Definition: RigDef_Parser.cpp:1026
RigDef::Parser::CheckNumArguments
bool CheckNumArguments(int num_required_args)
Definition: RigDef_Parser.cpp:325
RigDef::Parser::ParseDirectiveDefaultSkin
void ParseDirectiveDefaultSkin()
Definition: RigDef_Parser.cpp:1142
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:646
RigDef::Parser::ParseRopes
void ParseRopes()
Definition: RigDef_Parser.cpp:2327
RigDef::Parser::ParseRailGroups
void ParseRailGroups()
Definition: RigDef_Parser.cpp:2357
RigDef_Prerequisites.h
RigDef::Parser::ParseHydros
void ParseHydros()
Definition: RigDef_Parser.cpp:2644
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:2998
RigDef::Parser::ParseTies
void ParseTies()
Definition: RigDef_Parser.cpp:1912
RigDef::Parser::Token::start
const char * start
Definition: RigDef_Parser.h:66
RigDef::Parser::ParseGlobals
void ParseGlobals()
Definition: RigDef_Parser.cpp:800
RigDef::Parser::ParseTurbopropsUnified
void ParseTurbopropsUnified()
Definition: RigDef_Parser.cpp:1815
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:2249
RigDef::Parser::ParseCameras
void ParseCameras()
Definition: RigDef_Parser.cpp:1802
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:3290
RigDef::Parser::GetArgExtCameraMode
RoR::ExtCameraMode GetArgExtCameraMode(int index)
Definition: RigDef_Parser.cpp:3157
RigDef::Parser::ParseFixes
void ParseFixes()
Definition: RigDef_Parser.cpp:1099
RigDef::Parser::ParseCinecam
void ParseCinecam()
Definition: RigDef_Parser.cpp:1615
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:842
RigDef::Parser::m_sequential_importer
SequentialImporter m_sequential_importer
Definition: RigDef_Parser.h:285
RigDef::Parser::ParseScrewprops
void ParseScrewprops()
Definition: RigDef_Parser.cpp:2234
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:1065
RigDef::Parser::GetArgShock3Options
BitMask_t GetArgShock3Options(int index)
Definition: RigDef_Parser.cpp:3423
RigDef::Parser::GetArgChar
char GetArgChar(int index)
Definition: RigDef_Parser.cpp:3013
RigDef::Parser::GetArgNullableNode
Node::Ref GetArgNullableNode(int index)
Definition: RigDef_Parser.cpp:3115
RigDef::Parser::ParseMeshWheel2
void ParseMeshWheel2()
Definition: RigDef_Parser.cpp:715
RigDef::Parser::ParseRotatorsUnified
void ParseRotatorsUnified()
Definition: RigDef_Parser.cpp:2261
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:1492
RigDef::Parser::_TrimTrailingComments
static void _TrimTrailingComments(std::string const &line_in, std::string &line_out)
Definition: RigDef_Parser.cpp:2450
RigDef::Parser::ParseTriggers
void ParseTriggers()
Definition: RigDef_Parser.cpp:1865
RigDef::Parser::ParseCruiseControl
void ParseCruiseControl()
Definition: RigDef_Parser.cpp:1168
RigDef::Parser::ParseWheel
void ParseWheel()
Definition: RigDef_Parser.cpp:406
RigDef::Parser::GetArgBeamOptions
BitMask_t GetArgBeamOptions(int index)
Definition: RigDef_Parser.cpp:3317
RigDef::ManagedMaterialType
ManagedMaterialType
Definition: RigDef_File.h:78
RigDef::Parser::GetArgInt
int GetArgInt(int index)
Definition: RigDef_Parser.cpp:3059
RigDef::Parser::ProcessRawLine
void ProcessRawLine(const char *line)
Definition: RigDef_Parser.cpp:3594
RigDef::WingControlSurface
WingControlSurface
Definition: RigDef_File.h:113
RigDef::Parser::GetArgRigidityNode
Node::Ref GetArgRigidityNode(int index)
Definition: RigDef_Parser.cpp:3064
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:3570
RigDef::Parser::GetArgBraking
RoR::WheelBraking GetArgBraking(int index)
Definition: RigDef_Parser.cpp:3091
RigDef::Parser::ParseInterAxles
void ParseInterAxles()
Definition: RigDef_Parser.cpp:1707
RigDef::Parser::ParseArgUint
unsigned ParseArgUint(const char *str)
Definition: RigDef_Parser.cpp:3184
RigDef::Parser::IdentifyKeyword
static Keyword IdentifyKeyword(const std::string &line)
Definition: RigDef_Parser.cpp:2846
RigDef::Parser::ParsePistonprops
void ParsePistonprops()
Definition: RigDef_Parser.cpp:2416
RigDef::Parser::ParseGuiSettings
void ParseGuiSettings()
Definition: RigDef_Parser.cpp:777
RigDef::Parser::Parser
Parser()
Definition: RigDef_Parser.cpp:69
RigDef::Parser::GetArgFlareType
RoR::FlareType GetArgFlareType(int index)
Definition: RigDef_Parser.cpp:3129
RigDef::Parser::ParseWheelDetachers
void ParseWheelDetachers()
Definition: RigDef_Parser.cpp:438
RigDef::Parser::ParseOptionalInertia
void ParseOptionalInertia(Inertia &inertia, int index)
Definition: RigDef_Parser.cpp:2670
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:3338
RigDef::Parser::_ParseBaseMeshWheel
void _ParseBaseMeshWheel(BaseMeshWheel &mesh_wheel)
Definition: RigDef_Parser.cpp:676
RoR::ExtCameraMode
ExtCameraMode
Definition: Application.h:551
RigDef::Parser::GetArgShock2Options
BitMask_t GetArgShock2Options(int index)
Definition: RigDef_Parser.cpp:3400
RigDef::Parser::ParseArgFloat
float ParseArgFloat(const char *str)
Definition: RigDef_Parser.cpp:3174
RigDef::Parser::ParseAirbrakes
void ParseAirbrakes()
Definition: RigDef_Parser.cpp:1734
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:3474
RigDef::Parser::ParseDirectiveSetDefaultMinimass
void ParseDirectiveSetDefaultMinimass()
Definition: RigDef_Parser.cpp:2176
RigDef
Definition: Application.cpp:702
RigDef::Parser::LogMessage
void LogMessage(RoR::Console::MessageType type, std::string const &msg)
Adds a message to console.
Definition: RigDef_Parser.cpp:2837
RigDef::Parser::FlushPendingDocComment
void FlushPendingDocComment(size_t vectorlen, RigDef::Keyword keyword)
Definition: RigDef_Parser.cpp:2974
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:2628
RigDef::Keyword::INVALID
@ INVALID
RigDef::Parser::ParseFusedrag
void ParseFusedrag()
Definition: RigDef_Parser.cpp:814
RoR::Console::MessageType
MessageType
Definition: Console.h:46
RigDef::Parser::ParseBeams
void ParseBeams()
Definition: RigDef_Parser.cpp:2699
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:2149
RigDef::SequentialImporter
Definition: RigDef_SequentialImporter.h:77
RigDef::Parser::ParseDirectiveSetInertiaDefaults
void ParseDirectiveSetInertiaDefaults()
Definition: RigDef_Parser.cpp:2209
RigDef::Parser::GetArgPropulsion
RoR::WheelPropulsion GetArgPropulsion(int index)
Definition: RigDef_Parser.cpp:3074
RigDef::Parser::ParseBrakes
void ParseBrakes()
Definition: RigDef_Parser.cpp:1661
RigDef::Parser::ParseAssetpacks
void ParseAssetpacks()
Definition: RigDef_Parser.cpp:1758
RigDef_SequentialImporter.h
RigDef::Parser::GetArgBool
bool GetArgBool(int index)
Definition: RigDef_Parser.cpp:3207
RigDef::Parser::ParseDirectiveDetacherGroup
void ParseDirectiveDetacherGroup()
Definition: RigDef_Parser.cpp:1154
RigDef::Parser::ParseFlexBodyWheel
void ParseFlexBodyWheel()
Definition: RigDef_Parser.cpp:2547
RigDef::Parser::ProcessGlobalDirective
void ProcessGlobalDirective(Keyword keyword)
Directives that should only appear in root module.
Definition: RigDef_Parser.cpp:658
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:2925
RigDef::Parser::ParseRopables
void ParseRopables()
Definition: RigDef_Parser.cpp:2343
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:1675
RigDef::Parser::Prepare
void Prepare()
Definition: RigDef_Parser.cpp:2867
RigDef::Parser::ParseCameraRails
void ParseCameraRails()
Definition: RigDef_Parser.cpp:1656
RigDef::Inertia
Definition: RigDef_File.h:298
RigDef::BaseMeshWheel
Definition: RigDef_File.h:279
RigDef::Parser::ParseEngturbo
void ParseEngturbo()
Definition: RigDef_Parser.cpp:1428
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:3247
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:3241
RigDef::Parser::ParseSoundsources
void ParseSoundsources()
Definition: RigDef_Parser.cpp:1959
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:2818
RigDef::Parser::GetArgShockOptions
BitMask_t GetArgShockOptions(int index)
Definition: RigDef_Parser.cpp:3377
RigDef::Parser::_ParseDifferentialTypes
void _ParseDifferentialTypes(DifferentialTypeVec &diff_types, std::string const &options_str)
Definition: RigDef_Parser.cpp:2678
RigDef::Parser::ParseGuid
void ParseGuid()
Definition: RigDef_Parser.cpp:789
RigDef::Parser::ParseCommandsUnified
void ParseCommandsUnified()
Definition: RigDef_Parser.cpp:1500
RigDef::Parser::ParseDirectiveSubmesh
void ParseDirectiveSubmesh()
Definition: RigDef_Parser.cpp:640
RigDef::Parser::GetArgFloat
float GetArgFloat(int index)
Definition: RigDef_Parser.cpp:3169
RigDef::Parser::ParseAnimator
void ParseAnimator()
Definition: RigDef_Parser.cpp:2727
RigDef::Parser::ParseShock3
void ParseShock3()
Definition: RigDef_Parser.cpp:2070
RigDef::Flexbody
Definition: RigDef_File.h:773
RigDef::Parser::ParseFileinfo
void ParseFileinfo()
Definition: RigDef_Parser.cpp:2310
RigDef::Parser::ParseEngine
void ParseEngine()
Definition: RigDef_Parser.cpp:1459
RigDef::Parser::ParseHelp
void ParseHelp()
Definition: RigDef_Parser.cpp:770
RigDef::Parser::ProcessForsetLine
static void ProcessForsetLine(RigDef::Flexbody &def, const std::string &line, int line_number=-1)
Definition: RigDef_Parser.cpp:979
RigDef::Parser::ParseMinimass
void ParseMinimass()
Definition: RigDef_Parser.cpp:2535
RigDef::Parser::ParseFileFormatVersion
void ParseFileFormatVersion()
Definition: RigDef_Parser.cpp:1131
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:2375
RigDef::Parser::ParseDirectiveAddAnimation
void ParseDirectiveAddAnimation()
Definition: RigDef_Parser.cpp:1185
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:1180
RoR::VideoCamRole
VideoCamRole
Definition: Application.h:590
RigDef::Parser::ParseMeshWheel
void ParseMeshWheel()
Definition: RigDef_Parser.cpp:699
RigDef::Parser::ParseDirectivePropCameraMode
void ParseDirectivePropCameraMode()
Definition: RigDef_Parser.cpp:626
RigDef::Parser::ParseMaterialFlareBindings
void ParseMaterialFlareBindings()
Definition: RigDef_Parser.cpp:2584
RigDef::Parser::ParseTexcoords
void ParseTexcoords()
Definition: RigDef_Parser.cpp:876
RigDef::Parser::ParseFlexbody
void ParseFlexbody()
Definition: RigDef_Parser.cpp:895
RigDef::Parser::GetArgWheelSide
RoR::WheelSide GetArgWheelSide(int index)
Definition: RigDef_Parser.cpp:3018
RigDef::Parser::ParseShock
void ParseShock()
Definition: RigDef_Parser.cpp:2128
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:731
RigDef::Parser::ParseSubmeshGroundModel
void ParseSubmeshGroundModel()
Definition: RigDef_Parser.cpp:514
RigDef::Parser::ParseCollisionBox
void ParseCollisionBox()
Definition: RigDef_Parser.cpp:1600
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:1971
RigDef::Parser::ParseDirectiveForset
void ParseDirectiveForset()
Definition: RigDef_Parser.cpp:915
RigDef::Parser::ParseFlaregroupsNoImport
void ParseFlaregroupsNoImport()
Definition: RigDef_Parser.cpp:2184
RigDef::Parser::ParseEngoption
void ParseEngoption()
Definition: RigDef_Parser.cpp:1406
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:3506
RigDef::Parser::GetArgNodeRef
Node::Ref GetArgNodeRef(int index)
Definition: RigDef_Parser.cpp:3110
RigDef::Parser::GetArgUint
unsigned GetArgUint(int index)
Definition: RigDef_Parser.cpp:3124
RigDef::Parser::m_resource_group
Ogre::String m_resource_group
Definition: RigDef_Parser.h:288
RigDef::Parser::ParseVideoCamera
void ParseVideoCamera()
Definition: RigDef_Parser.cpp:1770
RigDef::Parser::GetArgNodeOptions
BitMask_t GetArgNodeOptions(int index)
Definition: RigDef_Parser.cpp:3445
RigDef::Parser::GetArgWingSurface
WingControlSurface GetArgWingSurface(int index)
Definition: RigDef_Parser.cpp:3212
RigDef::Parser::GetArgStr
std::string GetArgStr(int index)
Definition: RigDef_Parser.cpp:3008
RigDef::Parser::ParseTorqueCurve
void ParseTorqueCurve()
Definition: RigDef_Parser.cpp:1885
RigDef::Parser::ParseNodesUnified
void ParseNodesUnified()
Definition: RigDef_Parser.cpp:2480
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:1846
RigDef::Parser::ParseParticles
void ParseParticles()
Definition: RigDef_Parser.cpp:2436
RigDef::Parser::GetArgVideoCamRole
RoR::VideoCamRole GetArgVideoCamRole(int index)
Definition: RigDef_Parser.cpp:3519
RigDef::Parser::ParseArgInt
int ParseArgInt(const char *str)
Definition: RigDef_Parser.cpp:3202
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:2100
RigDef::ManagedMaterialsOptions
Definition: RigDef_File.h:895
RoR::WheelPropulsion
WheelPropulsion
Definition: Application.h:532
RigDef::Parser::ParseSlidenodes
void ParseSlidenodes()
Definition: RigDef_Parser.cpp:1991
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:3490
RigDef::Parser::ParseDirectiveSection
void ParseDirectiveSection()
Definition: RigDef_Parser.cpp:2988
RigDef::Parser::GetArgCabOptions
BitMask_t GetArgCabOptions(int index)
Definition: RigDef_Parser.cpp:3264
RigDef::Parser::ParseManagedMaterials
void ParseManagedMaterials()
Definition: RigDef_Parser.cpp:2596
RigDef::Parser::TokenizeCurrentLine
int TokenizeCurrentLine()
Definition: RigDef_Parser.cpp:3535