1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-02-03 13:01:33 +02:00

Compile fixes. Game doesn't even launch, however.

This commit is contained in:
DjWarmonger 2013-07-28 18:57:07 +00:00
parent b87897096c
commit a314a81fd5
3 changed files with 13 additions and 7 deletions

View File

@ -412,7 +412,7 @@ bool CVideoPlayer::open(std::string name)
// We can handle only videos in form of single file, no archive support yet.
{
ResourceID videoID = ResourceID("VIDEO/" + name, EResType::VIDEO);
std::string realVideoFilename = CResourceHandler::get()->getResourceName(videoID);
std::string realVideoFilename = CResourceHandler::get()->getResourceName(videoID).get();
if(boost::algorithm::iends_with(realVideoFilename, ".BIK"))
current = &bikPlayer;

View File

@ -43,10 +43,15 @@ std::unordered_set<ResourceID> CMappedFileLoader::getFilteredFiles(std::function
return foundID;
}
CFilesystemList::CFilesystemList()
{
loaders = new std::vector<std::unique_ptr<ISimpleResourceLoader> >;
}
std::unique_ptr<CInputStream> CFilesystemList::load(const ResourceID & resourceName) const
{
// load resource from last loader that have it (last overriden version)
for (auto & loader : boost::adaptors::reverse(loaders))
for (auto & loader : boost::adaptors::reverse(*loaders))
{
if (loader->existsResource(resourceName))
return loader->load(resourceName);
@ -77,7 +82,7 @@ std::unordered_set<ResourceID> CFilesystemList::getFilteredFiles(std::function<b
{
std::unordered_set<ResourceID> ret;
for (auto & loader : loaders)
for (auto & loader : *loaders)
for (auto & entry : loader->getFilteredFiles(filter))
ret.insert(entry);
@ -87,7 +92,7 @@ std::unordered_set<ResourceID> CFilesystemList::getFilteredFiles(std::function<b
bool CFilesystemList::createResource(std::string filename, bool update)
{
logGlobal->traceStream()<< "Creating " << filename;
for (auto & loader : boost::adaptors::reverse(loaders))
for (auto & loader : boost::adaptors::reverse(*loaders))
{
if (writeableLoaders.count(loader.get()) != 0 // writeable,
&& loader->createResource(filename, update)) // successfully created
@ -109,7 +114,7 @@ std::vector<const ISimpleResourceLoader *> CFilesystemList::getResourcesWithName
{
std::vector<const ISimpleResourceLoader *> ret;
for (auto & loader : loaders)
for (auto & loader : *loaders)
boost::range::copy(loader->getResourcesWithName(resourceName), std::back_inserter(ret));
return ret;
@ -117,7 +122,7 @@ std::vector<const ISimpleResourceLoader *> CFilesystemList::getResourcesWithName
void CFilesystemList::addLoader(ISimpleResourceLoader * loader, bool writeable)
{
loaders.push_back(std::unique_ptr<ISimpleResourceLoader>(loader));
loaders->push_back(std::unique_ptr<ISimpleResourceLoader>(loader));
if (writeable)
writeableLoaders.insert(loader);
}

View File

@ -53,11 +53,12 @@ private:
class DLL_LINKAGE CFilesystemList : public ISimpleResourceLoader
{
std::vector<std::unique_ptr<ISimpleResourceLoader> > loaders;
std::vector<std::unique_ptr<ISimpleResourceLoader> >* loaders;
std::set<ISimpleResourceLoader *> writeableLoaders;
public:
CFilesystemList();
/// Interface implementation
/// @see ISimpleResourceLoader
std::unique_ptr<CInputStream> load(const ResourceID & resourceName) const override;