mirror of https://github.com/OpenMW/openmw.git
Issue #913: Merge --master and --plugin switches
Merged master/plugin switches into content in openmw and mwiniimporter. Extension in content files is now required. Signed-off-by: Lukasz Gromanowski <lgromanowski@gmail.com>pull/51/head
parent
6143ec33e0
commit
9c2145eda1
@ -0,0 +1,35 @@
|
|||||||
|
#ifndef CONTENTLOADER_HPP
|
||||||
|
#define CONTENTLOADER_HPP
|
||||||
|
|
||||||
|
#include <iosfwd>
|
||||||
|
#include <boost/filesystem/path.hpp>
|
||||||
|
|
||||||
|
#include "components/loadinglistener/loadinglistener.hpp"
|
||||||
|
|
||||||
|
namespace MWWorld
|
||||||
|
{
|
||||||
|
|
||||||
|
struct ContentLoader
|
||||||
|
{
|
||||||
|
ContentLoader(Loading::Listener& listener)
|
||||||
|
: mListener(listener)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual ~ContentLoader()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void load(const boost::filesystem::path& filepath, int& index)
|
||||||
|
{
|
||||||
|
std::cout << "Loading content file " << filepath.string() << std::endl;
|
||||||
|
mListener.setLabel(filepath.string());
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
Loading::Listener& mListener;
|
||||||
|
};
|
||||||
|
|
||||||
|
} /* namespace MWWorld */
|
||||||
|
|
||||||
|
#endif /* CONTENTLOADER_HPP */
|
@ -0,0 +1,31 @@
|
|||||||
|
#include "esmloader.hpp"
|
||||||
|
#include "esmstore.hpp"
|
||||||
|
|
||||||
|
#include "components/to_utf8/to_utf8.hpp"
|
||||||
|
|
||||||
|
namespace MWWorld
|
||||||
|
{
|
||||||
|
|
||||||
|
EsmLoader::EsmLoader(MWWorld::ESMStore& store, std::vector<ESM::ESMReader>& readers,
|
||||||
|
ToUTF8::Utf8Encoder* encoder, Loading::Listener& listener)
|
||||||
|
: ContentLoader(listener)
|
||||||
|
, mStore(store)
|
||||||
|
, mEsm(readers)
|
||||||
|
, mEncoder(encoder)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void EsmLoader::load(const boost::filesystem::path& filepath, int& index)
|
||||||
|
{
|
||||||
|
ContentLoader::load(filepath.filename(), index);
|
||||||
|
|
||||||
|
ESM::ESMReader lEsm;
|
||||||
|
lEsm.setEncoder(mEncoder);
|
||||||
|
lEsm.setIndex(index);
|
||||||
|
lEsm.setGlobalReaderList(&mEsm);
|
||||||
|
lEsm.open(filepath.string());
|
||||||
|
mEsm[index] = lEsm;
|
||||||
|
mStore.load(mEsm[index], &mListener);
|
||||||
|
}
|
||||||
|
|
||||||
|
} /* namespace MWWorld */
|
@ -0,0 +1,34 @@
|
|||||||
|
#ifndef ESMLOADER_HPP
|
||||||
|
#define ESMLOADER_HPP
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include "contentloader.hpp"
|
||||||
|
#include "components/esm/esmreader.hpp"
|
||||||
|
|
||||||
|
namespace ToUTF8
|
||||||
|
{
|
||||||
|
class Utf8Encoder;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace MWWorld
|
||||||
|
{
|
||||||
|
|
||||||
|
class ESMStore;
|
||||||
|
|
||||||
|
struct EsmLoader : public ContentLoader
|
||||||
|
{
|
||||||
|
EsmLoader(MWWorld::ESMStore& store, std::vector<ESM::ESMReader>& readers,
|
||||||
|
ToUTF8::Utf8Encoder* encoder, Loading::Listener& listener);
|
||||||
|
|
||||||
|
void load(const boost::filesystem::path& filepath, int& index);
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::vector<ESM::ESMReader>& mEsm;
|
||||||
|
MWWorld::ESMStore& mStore;
|
||||||
|
ToUTF8::Utf8Encoder* mEncoder;
|
||||||
|
};
|
||||||
|
|
||||||
|
} /* namespace MWWorld */
|
||||||
|
|
||||||
|
#endif // ESMLOADER_HPP
|
@ -0,0 +1,17 @@
|
|||||||
|
#include "omwloader.hpp"
|
||||||
|
|
||||||
|
namespace MWWorld
|
||||||
|
{
|
||||||
|
|
||||||
|
OmwLoader::OmwLoader(Loading::Listener& listener)
|
||||||
|
: ContentLoader(listener)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void OmwLoader::load(const boost::filesystem::path& filepath, int& index)
|
||||||
|
{
|
||||||
|
ContentLoader::load(filepath.filename(), index);
|
||||||
|
}
|
||||||
|
|
||||||
|
} /* namespace MWWorld */
|
||||||
|
|
@ -0,0 +1,21 @@
|
|||||||
|
#ifndef OMWLOADER_HPP
|
||||||
|
#define OMWLOADER_HPP
|
||||||
|
|
||||||
|
#include "contentloader.hpp"
|
||||||
|
|
||||||
|
namespace MWWorld
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Placeholder for real OpenMW content loader
|
||||||
|
*/
|
||||||
|
struct OmwLoader : public ContentLoader
|
||||||
|
{
|
||||||
|
OmwLoader(Loading::Listener& listener);
|
||||||
|
|
||||||
|
void load(const boost::filesystem::path& filepath, int& index);
|
||||||
|
};
|
||||||
|
|
||||||
|
} /* namespace MWWorld */
|
||||||
|
|
||||||
|
#endif /* OMWLOADER_HPP */
|
Loading…
Reference in New Issue