Simulator::cGameViewManager class

Base classes

class Graphics::IRenderable
This interface defines an object that can be rendered, and whose render method is called on every game loop.
class App::IMessageListener
An interface that can receive messages sent through the app.
class cStrategy

Public static variables

static const uint32_t GraphicsWorldID
The ID used for the Simulator model world, effects world.
static const uint32_t LightingWorldID
The ID used for the Simulator lighting world, effects world.

Public static functions

static auto Get() -> cGameViewManager*
Gets the active game view manager.

Public functions

void func10h_() virtual
void PrepareSimulator() virtual
void func18h_() virtual
void func1Ch_() virtual
void func20h_() virtual
void func24h_() virtual
void func28h_() virtual
void func2Ch_() virtual
void func30h_(long nEllapsedMilliseconds) virtual
auto func34h_() -> int virtual
auto func38h_(int, struct Vector3) -> Vector3 virtual
auto func3Ch_(int) -> Vector3 virtual
auto GetWorldMousePosition(int = 0, cCombatant* pCombanant = nullptr) -> Vector3 virtual
void func44h_() virtual
auto IntersectSphere(const Vector3& center, float radius, vector<cSpatialObjectPtr>& dst, bool useModelCollisionMode = false, Graphics::ModelPredicate_t filter = nullptr, void* filterObject = nullptr) -> bool virtual
Finds all the cSpatialObject objects that intersect with the sphere with center and radius.
auto RaycastAll(const Vector3& point1, const Vector3& point2, vector<cSpatialObjectPtr>& dst, bool useModelCollisionMode = false) -> bool virtual
Finds all the cSpatialObject objects that intersect with the segment between point1 and point2.
auto Raycast(const Vector3& point1, const Vector3& point2, Graphics::FilterSettings::FilterModel_t filter, cGameDataPtr& dst, Vector3& dstIntersection, bool useModelCollisionMode = false) -> bool virtual
Finds the first cGameData object that intersects with the segment between point1 and point2.

Protected variables

intrusive_list<int> field_24
fixed_vector<ModelPtr, 16> mGrassTrampModels
uint32_t mGameModeID
intrusive_ptr<Object> field_88
hash_map<int, int> field_8C
vector<int> field_AC
bool field_C0
bool field_C1
intrusive_ptr<int> field_C4
map<int, int> field_C8
IModelWorldPtr field_E4
intrusive_ptr<Object> field_E8
App::cViewer* field_EC
int field_F0
int field_F4
int field_F8
int field_FC
int field_100
int field_104
IAnimWorldPtr mpCreatureFXAnimWorld
bool mbSuperHighResVehicles
bool mbSuperHighResIgnoreCount
bool mbSuperHighResBuildings
fixed_vector<int, 32> field_110

Function documentation

bool Simulator::cGameViewManager::IntersectSphere(const Vector3& center, float radius, vector<cSpatialObjectPtr>& dst, bool useModelCollisionMode = false, Graphics::ModelPredicate_t filter = nullptr, void* filterObject = nullptr) virtual

Finds all the cSpatialObject objects that intersect with the sphere with center and radius.

Parameters
center The center of the sphere.
radius The radius of the sphere.
dst out The vector where all objects will be added.
useModelCollisionMode If true, the collision mode specified by each model will be used.
filter An optional filter function that decides which models are considered.
filterObject An object that is passed to the filter function.
Returns true if any object was found, false otherwise.

The objects will be added to dst. filter is an optional filter function that receives a Model and filterObject, and returns whether the model is considered or not.

The collision is only checked with the bounding box, so it is not a precise model collision. If the useModelCollisionMode param is true, then the collision mode specified by each model will be used.

bool Simulator::cGameViewManager::RaycastAll(const Vector3& point1, const Vector3& point2, vector<cSpatialObjectPtr>& dst, bool useModelCollisionMode = false) virtual

Finds all the cSpatialObject objects that intersect with the segment between point1 and point2.

Parameters
point1 The start point of the ray.
point2 The end point of the ray.
dst out The vector where all objects will be added.
useModelCollisionMode If true, the collision mode specified by each model will be used.
Returns true if any object was found, false otherwise.

The objects will be added to dst in the order they have been found, so the ones closest to point1 come first.

The collision is only checked with the bounding box, so it is not a precise model collision. If the useModelCollisionMode param is true, then the collision mode specified by each model will be used.

bool Simulator::cGameViewManager::Raycast(const Vector3& point1, const Vector3& point2, Graphics::FilterSettings::FilterModel_t filter, cGameDataPtr& dst, Vector3& dstIntersection, bool useModelCollisionMode = false) virtual

Finds the first cGameData object that intersects with the segment between point1 and point2.

Parameters
point1 The start point of the ray.
point2 The end point of the ray.
filter A filter function that receives a Model and returns whether it is considered or not.
dst out The object that is found, only valid if true was returned.
dstIntersection out The point where the ray intersected with the model, only valid if true was returned.
useModelCollisionMode If true, the collision mode specified by each model will be used.
Returns true if an object was found, false otherwise.

Only models that pass the filter function are considered.

The collision is only checked with the bounding box, so it is not a precise model collision. If the useModelCollisionMode param is true, then the collision mode specified by each model will be used.