Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/WolfireGames/overgrowth.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Internal/path.h')
-rw-r--r--Source/Internal/path.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/Source/Internal/path.h b/Source/Internal/path.h
new file mode 100644
index 00000000..b0402643
--- /dev/null
+++ b/Source/Internal/path.h
@@ -0,0 +1,68 @@
+//-----------------------------------------------------------------------------
+// Name: path.h
+// Developer: Wolfire Games LLC
+// Description:
+// License: Read below
+//-----------------------------------------------------------------------------
+//
+// Copyright 2022 Wolfire Games LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//-----------------------------------------------------------------------------
+#pragma once
+
+#include <Internal/modid.h>
+
+#include <Global/global_config.h>
+
+enum PathFlags {
+ kNoPath = 0,
+ kDataPaths = 1<<0,
+ kWriteDir = 1<<1,
+ kModPaths = 1<<2,
+ kAbsPath = 1<<3,
+ kModWriteDirs = 1<<4,
+ kAnyPath = kDataPaths | kWriteDir | kModPaths | kAbsPath | kModWriteDirs
+};
+
+struct Path
+{
+ Path();
+
+ std::string GetAbsPathStr() const;
+ std::string GetFullPathStr() const;
+ const char* GetFullPath() const;
+ std::string GetOriginalPathStr() const;
+ const char* GetOriginalPath() const;
+ ModID GetModsource() const;
+ bool isValid() const;
+
+ //What mod, if any, this file comes from.
+ //This is valid only if source has the mod flag set.
+ ModID mod_source;
+
+ //The original path request value
+ char original[kPathSize];
+ //The found path
+ char resolved[kPathSize];
+ //Where the file was found
+ PathFlags source;
+ //Is file valid
+ bool valid;
+
+ bool operator==(const Path& rhs) const;
+ bool operator<(const Path& rhs) const;
+};
+
+std::ostream& operator<<( std::ostream& out, const Path& path );