/*static*/ void SpaceStationType::Init() { static bool isInitted = false; if (isInitted) return; isInitted = true; // load all station definitions namespace fs = FileSystem; for (fs::FileEnumerator files(fs::gameDataFiles, "stations", 0); !files.Finished(); files.Next()) { const fs::FileInfo &info = files.Current(); if (ends_with_ci(info.GetPath(), ".json")) { const std::string id(info.GetName().substr(0, info.GetName().size() - 5)); try { SpaceStationType st = SpaceStationType(id, info.GetPath()); switch (st.dockMethod) { case SURFACE: surfaceTypes.push_back(st); break; case ORBITAL: orbitalTypes.push_back(st); break; } } catch (StationTypeLoadError) { // TODO: Actual error handling would be nice. Error("Error while loading Space Station data (check stdout/output.txt).\n"); } } } }
/*static*/ void SpaceStationType::Init() { static bool isInitted = false; if (isInitted) return; isInitted = true; // load all station definitions namespace fs = FileSystem; for (fs::FileEnumerator files(fs::gameDataFiles, "stations", 0); !files.Finished(); files.Next()) { const fs::FileInfo &info = files.Current(); if (ends_with_ci(info.GetPath(), ".json")) { const std::string id(info.GetName().substr(0, info.GetName().size()-5)); SpaceStationType st = SpaceStationType(id, info.GetPath()); switch (st.dockMethod) { case SURFACE: surfaceTypes.push_back(st); break; case ORBITAL: orbitalTypes.push_back(st); break; } } } }