mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-06 00:55:50 +00:00
Use common implementation to filter hidden markers
This commit is contained in:
parent
3c6f145753
commit
3caf45807f
@ -510,8 +510,8 @@ namespace MWRender
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ref.mRefID == "prisonmarker" || ref.mRefID == "divinemarker" || ref.mRefID == "templemarker" || ref.mRefID == "northmarker")
|
if (Misc::ResourceHelpers::isHiddenMarker(ref.mRefID))
|
||||||
continue; // marker objects that have a hardcoded function in the game logic, should be hidden from the player
|
continue;
|
||||||
|
|
||||||
int type = store.findStatic(ref.mRefID);
|
int type = store.findStatic(ref.mRefID);
|
||||||
std::string model = getModel(type, ref.mRefID, store);
|
std::string model = getModel(type, ref.mRefID, store);
|
||||||
|
@ -94,14 +94,12 @@ namespace
|
|||||||
|
|
||||||
std::string getModel(const MWWorld::Ptr &ptr, const VFS::Manager *vfs)
|
std::string getModel(const MWWorld::Ptr &ptr, const VFS::Manager *vfs)
|
||||||
{
|
{
|
||||||
|
if (Misc::ResourceHelpers::isHiddenMarker(ptr.getCellRef().getRefId()))
|
||||||
|
return {};
|
||||||
bool useAnim = ptr.getClass().useAnim();
|
bool useAnim = ptr.getClass().useAnim();
|
||||||
std::string model = ptr.getClass().getModel(ptr);
|
std::string model = ptr.getClass().getModel(ptr);
|
||||||
if (useAnim)
|
if (useAnim)
|
||||||
model = Misc::ResourceHelpers::correctActorModelPath(model, vfs);
|
model = Misc::ResourceHelpers::correctActorModelPath(model, vfs);
|
||||||
|
|
||||||
const std::string &id = ptr.getCellRef().getRefId();
|
|
||||||
if (id == "prisonmarker" || id == "divinemarker" || id == "templemarker" || id == "northmarker")
|
|
||||||
model = ""; // marker objects that have a hardcoded function in the game logic, should be hidden from the player
|
|
||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#include "resourcehelpers.hpp"
|
#include "resourcehelpers.hpp"
|
||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
#include <string_view>
|
||||||
|
|
||||||
#include <components/misc/stringops.hpp>
|
#include <components/misc/stringops.hpp>
|
||||||
|
|
||||||
@ -138,3 +139,8 @@ std::string Misc::ResourceHelpers::correctActorModelPath(const std::string &resP
|
|||||||
}
|
}
|
||||||
return mdlname;
|
return mdlname;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Misc::ResourceHelpers::isHiddenMarker(std::string_view id)
|
||||||
|
{
|
||||||
|
return id == "prisonmarker" || id == "divinemarker" || id == "templemarker" || id == "northmarker";
|
||||||
|
}
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
#define MISC_RESOURCEHELPERS_H
|
#define MISC_RESOURCEHELPERS_H
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <string_view>
|
||||||
|
|
||||||
namespace VFS
|
namespace VFS
|
||||||
{
|
{
|
||||||
@ -23,6 +24,9 @@ namespace Misc
|
|||||||
std::string correctBookartPath(const std::string &resPath, int width, int height, const VFS::Manager* vfs);
|
std::string correctBookartPath(const std::string &resPath, int width, int height, const VFS::Manager* vfs);
|
||||||
/// Use "xfoo.nif" instead of "foo.nif" if available
|
/// Use "xfoo.nif" instead of "foo.nif" if available
|
||||||
std::string correctActorModelPath(const std::string &resPath, const VFS::Manager* vfs);
|
std::string correctActorModelPath(const std::string &resPath, const VFS::Manager* vfs);
|
||||||
|
|
||||||
|
/// marker objects that have a hardcoded function in the game logic, should be hidden from the player
|
||||||
|
bool isHiddenMarker(std::string_view id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user