Added a basic UI to change collision render settings, added the ability to color collision based on the surface type

This commit is contained in:
parax0
2016-12-26 23:02:32 -07:00
parent 78baa42bce
commit be40dfdf02
13 changed files with 254 additions and 8 deletions

View File

@@ -3,6 +3,7 @@
#include "CResource.h"
#include "CCollisionMesh.h"
#include "EGame.h"
#include "TResPtr.h"
#include <vector>
@@ -10,6 +11,7 @@ class CCollisionMeshGroup : public CResource
{
DECLARE_RESOURCE_TYPE(eCollisionMeshGroup)
std::vector<CCollisionMesh*> mMeshes;
EGame mGame;
public:
CCollisionMeshGroup() {}
@@ -20,8 +22,11 @@ public:
delete *it;
}
inline EGame Game() const { return mGame; }
inline u32 NumMeshes() const { return mMeshes.size(); }
inline CCollisionMesh* MeshByIndex(u32 Index) const { return mMeshes[Index]; }
inline void SetGame(EGame Game) { mGame = Game; }
inline void AddMesh(CCollisionMesh *pMesh) { mMeshes.push_back(pMesh); }
inline void Draw()

View File

@@ -144,6 +144,7 @@ CCollisionMeshGroup* CCollisionLoader::LoadAreaCollision(IInputStream& rMREA)
loader.mVersion = GetFormatVersion(rMREA.ReadLong());
loader.mpGroup = new CCollisionMeshGroup;
loader.mpGroup->SetGame(loader.mVersion);
loader.mpMesh = new CCollisionMesh;
// Octree - structure is known, but not coding this right now
@@ -180,6 +181,7 @@ CCollisionMeshGroup* CCollisionLoader::LoadDCLN(IInputStream& rDCLN)
}
Loader.mVersion = GetFormatVersion(rDCLN.ReadLong());
Loader.mpGroup->SetGame(Loader.mVersion);
Loader.mpMesh = new CCollisionMesh;
Loader.mpMesh->mOctreeLoaded = false;