mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-16 06:19:55 +00:00
f031a191b8
Since actors can be active in 3x3 grid around the player, we need to first load all statics in a 5x5 grid around the player. Split load and unloading in 2 phases. Add an mInactiveCells set into the scene, which contains all cells inside the aforementioned 5x5 grid. These cells contains only heightfields and physics objects of static class.
40 lines
730 B
C++
40 lines
730 B
C++
#ifndef GAME_MWWORLD_CELLVISITORS_H
|
|
#define GAME_MWWORLD_CELLVISITORS_H
|
|
|
|
#include <vector>
|
|
#include <string>
|
|
|
|
#include "ptr.hpp"
|
|
|
|
|
|
namespace MWWorld
|
|
{
|
|
struct ListAndResetObjectsVisitor
|
|
{
|
|
std::vector<MWWorld::Ptr> mObjects;
|
|
|
|
bool operator() (MWWorld::Ptr ptr)
|
|
{
|
|
if (ptr.getRefData().getBaseNode())
|
|
{
|
|
ptr.getRefData().setBaseNode(nullptr);
|
|
}
|
|
mObjects.push_back (ptr);
|
|
|
|
return true;
|
|
}
|
|
};
|
|
|
|
struct ListObjectsVisitor
|
|
{
|
|
std::vector<MWWorld::Ptr> mObjects;
|
|
|
|
bool operator() (MWWorld::Ptr ptr)
|
|
{
|
|
mObjects.push_back (ptr);
|
|
return true;
|
|
}
|
|
};
|
|
}
|
|
|
|
#endif
|