mirror of
https://github.com/luanti-org/luanti.git
synced 2025-07-02 16:38:41 +00:00
Copy irrlichtmt to <root>/irr/
This commit is contained in:
parent
a7908da968
commit
f638482fba
349 changed files with 109124 additions and 0 deletions
86
irr/include/path.h
Normal file
86
irr/include/path.h
Normal file
|
@ -0,0 +1,86 @@
|
|||
// Copyright (C) 2002-2012 Nikolaus Gebhardt
|
||||
// This file is part of the "Irrlicht Engine" and the "irrXML" project.
|
||||
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "irrString.h"
|
||||
|
||||
namespace irr
|
||||
{
|
||||
namespace io
|
||||
{
|
||||
|
||||
//! Type used for all file system related strings.
|
||||
/** This type will transparently handle different file system encodings.
|
||||
NOTE: For historical reasons the tool-functions using io::path are all in coreutil.h
|
||||
*/
|
||||
typedef core::string<fschar_t> path;
|
||||
|
||||
// Type only exists for historcal reasons, paths are always char now.
|
||||
static_assert(sizeof(fschar_t) == sizeof(char));
|
||||
|
||||
//! Used in places where we identify objects by a filename, but don't actually work with the real filename
|
||||
/** Irrlicht is internally not case-sensitive when it comes to names.
|
||||
Also this class is a first step towards support for correctly serializing renamed objects.
|
||||
*/
|
||||
struct SNamedPath
|
||||
{
|
||||
//! Constructor
|
||||
SNamedPath() {}
|
||||
|
||||
//! Constructor
|
||||
SNamedPath(const path &p) :
|
||||
Path(p), InternalName(PathToName(p))
|
||||
{
|
||||
}
|
||||
|
||||
//! Is smaller comparator
|
||||
bool operator<(const SNamedPath &other) const
|
||||
{
|
||||
return InternalName < other.InternalName;
|
||||
}
|
||||
|
||||
//! Set the path.
|
||||
void setPath(const path &p)
|
||||
{
|
||||
Path = p;
|
||||
InternalName = PathToName(p);
|
||||
}
|
||||
|
||||
//! Get the path.
|
||||
const path &getPath() const
|
||||
{
|
||||
return Path;
|
||||
};
|
||||
|
||||
//! Get the name which is used to identify the file.
|
||||
//! This string is similar to the names and filenames used before Irrlicht 1.7
|
||||
const path &getInternalName() const
|
||||
{
|
||||
return InternalName;
|
||||
}
|
||||
|
||||
//! Implicit cast to io::path
|
||||
operator core::stringc() const
|
||||
{
|
||||
return core::stringc(getPath());
|
||||
}
|
||||
|
||||
protected:
|
||||
// convert the given path string to a name string.
|
||||
path PathToName(const path &p) const
|
||||
{
|
||||
path name(p);
|
||||
name.replace('\\', '/');
|
||||
name.make_lower();
|
||||
return name;
|
||||
}
|
||||
|
||||
private:
|
||||
path Path;
|
||||
path InternalName;
|
||||
};
|
||||
|
||||
} // io
|
||||
} // irr
|
Loading…
Add table
Add a link
Reference in a new issue