MCPcopy Create free account
hub / github.com/OpenNFS/OpenNFS / OpenNFS

Class OpenNFS

src/main.cpp:32–405  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

30#include "RaceNet/TrainingGround.h"
31
32class OpenNFS {
33public:
34 explicit OpenNFS(std::shared_ptr<Logger> &onfs_logger) : logger(onfs_logger) {
35 InitDirectories();
36 PopulateAssets();
37
38 if (Config::get().vulkanRender) {
39#ifdef VULKAN_BUILD
40 vkRenderer renderer;
41 renderer.run();
42#else
43 ASSERT(false, "This build of OpenNFS was not compiled with Vulkan support!");
44#endif
45 } else if (Config::get().trainingMode) {
46 train();
47 } else {
48 run();
49 }
50 }
51
52 void run() {
53 LOG(INFO) << "OpenNFS Version " << ONFS_VERSION;
54
55 // Must initialise OpenGL here as the Loaders instantiate meshes which create VAO's
56 ASSERT(InitOpenGL(Config::get().resX, Config::get().resY, "OpenNFS v" + ONFS_VERSION), "OpenGL init failed.");
57
58 AssetData loadedAssets = {
59 NFS_3, Config::get().car,
60 NFS_3, Config::get().track
61 };
62
63 if (Config::get().car != DEFAULT_CAR) {
64 loadedAssets.carTag = FindCarByName(Config::get().car);
65 }
66
67 /*------- Render --------*/
68 while (loadedAssets.trackTag != UNKNOWN) {
69 /*------ ASSET LOAD ------*/
70 //Load Track Data
71 std::shared_ptr<ONFSTrack> track = TrackLoader::LoadTrack(loadedAssets.trackTag, loadedAssets.track);
72 //Load Car data from unpacked NFS files
73 std::shared_ptr<Car> car = CarLoader::LoadCar(loadedAssets.carTag, loadedAssets.car);
74
75 //Load Music
76 //MusicLoader musicLoader("F:\\NFS3\\nfs3_modern_base_eng\\gamedata\\audio\\pc\\atlatech");
77
78 Renderer renderer(window, logger, installedNFS, track, car);
79 loadedAssets = renderer.Render();
80 }
81
82 // Close OpenGL window and terminate GLFW
83 glfwTerminate();
84 }
85
86 void train() {
87 LOG(INFO) << "OpenNFS Version " << ONFS_VERSION << " (GA Training Mode)";
88
89 // Must initialise OpenGL here as the Loaders instantiate meshes which create VAO's

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected