//------------------------------------------------------------------------------ // help | ? void LogonConsole::TranslateHelp(char *str) { ProcessHelp(NULL); }
rig_t *RigSpawner::SpawnRig() { InitializeRig(); // Vehicle name m_rig->realtruckname = m_file->name; // Flags in root module m_rig->forwardcommands = m_file->forward_commands; m_rig->importcommands = m_file->import_commands; m_rig->wheel_contact_requested = m_file->rollon; m_rig->rescuer = m_file->rescuer; m_rig->disable_default_sounds = m_file->disable_default_sounds; m_rig->hideInChooser = m_file->hide_in_chooser; m_rig->slideNodesConnectInstantly = m_file->slide_nodes_connect_instantly; // Section 'authors' in root module ProcessAuthors(); // Section 'fileinfo' in root module ProcessFileInfo(); // Section 'guid' in root module if (! m_file->guid.empty()) { strncpy(m_rig->guid, m_file->guid.c_str(), 128); } // Section 'minimass' in root module if (m_file->_minimum_mass_set) { m_rig->minimass = m_file->minimum_mass; } // Section 'description' m_rig->description.assign(m_file->description.begin(), m_file->description.end()); // Section 'fileformatversion' in root module m_rig->fileformatversion = m_file->file_format_version; // Section 'managedmaterials' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_MANAGEDMATERIALS, managed_materials, ProcessManagedMaterial); // Section 'gobals' in any module PROCESS_SECTION_IN_ANY_MODULE(RigDef::File::KEYWORD_GLOBALS, globals, ProcessGlobals); // Section 'help' in any module. // NOTE: Must be done before "guisettings" (rig_t::helpmat override) ProcessHelp(); // Section 'engine' in any module PROCESS_SECTION_IN_ANY_MODULE(RigDef::File::KEYWORD_ENGINE, engine, ProcessEngine); // Section 'engoption' in any module PROCESS_SECTION_IN_ANY_MODULE(RigDef::File::KEYWORD_ENGOPTION, engoption, ProcessEngoption); /* Section 'engturbo' in any module */ PROCESS_SECTION_IN_ANY_MODULE(RigDef::File::KEYWORD_ENGTURBO, engturbo, ProcessEngturbo); // Section 'torquecurve' in any module. PROCESS_SECTION_IN_ANY_MODULE(RigDef::File::KEYWORD_TORQUECURVE, torque_curve, ProcessTorqueCurve); // Section 'brakes' in any module PROCESS_SECTION_IN_ANY_MODULE(RigDef::File::KEYWORD_BRAKES, brakes, ProcessBrakes); // Section 'guisettings' in any module PROCESS_SECTION_IN_ANY_MODULE(RigDef::File::KEYWORD_GUISETTINGS, gui_settings, ProcessGuiSettings); // ---------------------------- User-defined nodes ---------------------------- // Sections 'nodes' & 'nodes2' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_NODES, nodes, ProcessNode); // Old-format exhaust (defined by flags 'x/y' in section 'nodes', one per vehicle) if (m_rig->smokeId != 0 && m_rig->smokeRef != 0) { AddExhaust(m_rig->smokeId, m_rig->smokeRef, true, nullptr); } // ---------------------------- Node generating sections ---------------------------- // Section 'cinecam' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_CINECAM, cinecam, ProcessCinecam); // ---------------------------- Wheels (also generate nodes) ---------------------------- // Section 'wheels' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_WHEELS, wheels, ProcessWheel); // Section 'wheels2' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_WHEELS2, wheels_2, ProcessWheel2); // Section 'meshwheels' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_MESHWHEELS, mesh_wheels, ProcessMeshWheel); // Section 'meshwheels2' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_MESHWHEELS2, mesh_wheels_2, ProcessMeshWheel2); // Section 'flexbodywheels' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_FLEXBODYWHEELS, flex_body_wheels, ProcessFlexBodyWheel); // ---------------------------- User-defined beams ---------------------------- // (may reference any generated/user-defined node) // Section 'beams' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_BEAMS, beams, ProcessBeam); // Section 'shocks' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_SHOCKS, shocks, ProcessShock); // Section 'shocks2' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_SHOCKS2, shocks_2, ProcessShock2); // Section 'commands' and 'commands2' (Use generated nodes) PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_COMMANDS2, commands_2, ProcessCommand); // Section 'hydros' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_HYDROS, hydros, ProcessHydro); // Section 'triggers' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_TRIGGERS, triggers, ProcessTrigger); // Section 'ropes' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_ROPES, ropes, ProcessRope); // ---------------------------- Other ---------------------------- // Section 'AntiLockBrakes' in any module. PROCESS_SECTION_IN_ANY_MODULE(RigDef::File::KEYWORD_ANTI_LOCK_BRAKES, anti_lock_brakes, ProcessAntiLockBrakes); // Section 'SlopeBrake' in any module. PROCESS_SECTION_IN_ANY_MODULE(RigDef::File::KEYWORD_SLOPE_BRAKE, slope_brake, ProcessSlopeBrake); // Sections 'flares' and 'flares2' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_FLARES2, flares_2, ProcessFlare2); // Section 'axles' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_AXLES, axles, ProcessAxle); // Section 'submeshes' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_SUBMESH, submeshes, ProcessSubmesh); // Inline-section 'submesh_groundmodel' in any module ProcessSubmeshGroundmodel(); // Section 'contacters' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_CONTACTERS, contacters, ProcessContacter); // Section 'cameras' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_CAMERAS, cameras, ProcessCamera); // Section 'hooks' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_HOOKS, hooks, ProcessHook); // Section 'ties' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_TIES, ties, ProcessTie); // Section 'ropables' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_ROPABLES, ropables, ProcessRopable); // Section 'wings' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_WINGS, wings, ProcessWing); // Section 'animators' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_ANIMATORS, animators, ProcessAnimator); // Section 'materialflarebindings' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_MATERIALFLAREBINDINGS, material_flare_bindings, ProcessMaterialFlareBinding); // Section 'airbrakes' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_AIRBRAKES, airbrakes, ProcessAirbrake); // Section 'fusedrag' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_FUSEDRAG, fusedrag, ProcessFusedrag); // Section 'turbojets' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_TURBOJETS, turbojets, ProcessTurbojet); // Section 'videocamera' // !!! MUST be processed before "props", otherwise they won't work PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_VIDEOCAMERA, videocameras, ProcessVideoCamera); // Section 'props' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_PROPS, props, ProcessProp); // Section 'TractionControl' in any module. PROCESS_SECTION_IN_ANY_MODULE(RigDef::File::KEYWORD_TRACTION_CONTROL, traction_control, ProcessTractionControl); // Section 'rotators' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_ROTATORS, rotators, ProcessRotator); // Section 'rotators_2' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_ROTATORS2, rotators_2, ProcessRotator2); // Section 'lockgroups' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_LOCKGROUPS, lockgroups, ProcessLockgroup); // Section 'railgroups' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_RAILGROUPS, railgroups, ProcessRailGroup); // Section 'slidenodes' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_SLIDENODES, slidenodes, ProcessSlidenode); // Section 'particles' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_PARTICLES, particles, ProcessParticle); // Section 'cruisecontrol' in any module. PROCESS_SECTION_IN_ANY_MODULE(RigDef::File::KEYWORD_CRUISECONTROL, cruise_control, ProcessCruiseControl); // Section 'speedlimiter' in any module. PROCESS_SECTION_IN_ANY_MODULE(RigDef::File::KEYWORD_SPEEDLIMITER, speed_limiter, ProcessSpeedLimiter); // Section 'collisionboxes' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_COLLISIONBOXES, collision_boxes, ProcessCollisionBox); // Section 'exhausts' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_EXHAUSTS, exhausts, ProcessExhaust); // Section 'extcamera' PROCESS_SECTION_IN_ANY_MODULE(RigDef::File::KEYWORD_EXTCAMERA, ext_camera, ProcessExtCamera); // Section 'camerarail' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_CAMERARAIL, camera_rails, ProcessCameraRail); // Section 'pistonprops' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_PISTONPROPS, pistonprops, ProcessPistonprop); // Sections 'turboprops' and 'turboprops2' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_TURBOPROPS2, turboprops_2, ProcessTurboprop2); // Section 'screwprops' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_SCREWPROPS, screwprops, ProcessScrewprop); // Section 'flexbodies' (Uses generated nodes) PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_FLEXBODIES, flexbodies, ProcessFlexbody); // Section 'fixes' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_FIXES, fixes, ProcessFixedNode); #ifdef USE_OPENAL // Section 'soundsources' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_SOUNDSOURCES, soundsources, ProcessSoundSource); // Section 'soundsources2' PROCESS_SECTION_IN_ALL_MODULES(RigDef::File::KEYWORD_SOUNDSOURCES2, soundsources2, ProcessSoundSource2); #endif // USE_OPENAL m_rig->loading_finished = true; // POST-PROCESSING FinalizeRig(); // Pass ownership rig_t *rig = m_rig; m_rig = nullptr; return rig; }