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:
parent
78baa42bce
commit
be40dfdf02
|
@ -301,13 +301,23 @@ public:
|
||||||
|
|
||||||
inline u32 ToInt32(int Base = 16) const
|
inline u32 ToInt32(int Base = 16) const
|
||||||
{
|
{
|
||||||
|
try {
|
||||||
return std::stoul(mInternalString, nullptr, Base);
|
return std::stoul(mInternalString, nullptr, Base);
|
||||||
}
|
}
|
||||||
|
catch(...) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
inline u64 ToInt64(int Base = 16) const
|
inline u64 ToInt64(int Base = 16) const
|
||||||
{
|
{
|
||||||
|
try {
|
||||||
return std::stoull(mInternalString, nullptr, Base);
|
return std::stoull(mInternalString, nullptr, Base);
|
||||||
}
|
}
|
||||||
|
catch(...) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ToInt128(CharType* pOut, int Base = 16) const
|
void ToInt128(CharType* pOut, int Base = 16) const
|
||||||
{
|
{
|
||||||
|
@ -453,6 +463,10 @@ public:
|
||||||
if (HasPrefix)
|
if (HasPrefix)
|
||||||
Str = Str.ChopFront(2);
|
Str = Str.ChopFront(2);
|
||||||
|
|
||||||
|
// If the string is empty other than the prefix, then this is not a valid hex string
|
||||||
|
if (Str.IsEmpty())
|
||||||
|
return false;
|
||||||
|
|
||||||
// If we have a variable width then assign the width value to the string size
|
// If we have a variable width then assign the width value to the string size
|
||||||
Width = Str.Size();
|
Width = Str.Size();
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,23 @@
|
||||||
#include <Math/CMatrix4f.h>
|
#include <Math/CMatrix4f.h>
|
||||||
#include <Math/CRay.h>
|
#include <Math/CRay.h>
|
||||||
|
|
||||||
|
enum ECollisionDrawMode
|
||||||
|
{
|
||||||
|
eCDM_Default,
|
||||||
|
eCDM_TintSurfaceType
|
||||||
|
};
|
||||||
|
|
||||||
|
struct SCollisionRenderSettings
|
||||||
|
{
|
||||||
|
ECollisionDrawMode DrawMode;
|
||||||
|
u64 HighlightMask;
|
||||||
|
u64 HideMask;
|
||||||
|
bool DrawWireframe;
|
||||||
|
|
||||||
|
SCollisionRenderSettings()
|
||||||
|
: DrawMode(eCDM_TintSurfaceType), HighlightMask(0), HideMask(0), DrawWireframe(false) {}
|
||||||
|
};
|
||||||
|
|
||||||
struct SViewInfo
|
struct SViewInfo
|
||||||
{
|
{
|
||||||
class CScene *pScene;
|
class CScene *pScene;
|
||||||
|
@ -14,6 +31,7 @@ struct SViewInfo
|
||||||
|
|
||||||
bool GameMode;
|
bool GameMode;
|
||||||
FShowFlags ShowFlags;
|
FShowFlags ShowFlags;
|
||||||
|
SCollisionRenderSettings CollisionSettings;
|
||||||
CFrustumPlanes ViewFrustum;
|
CFrustumPlanes ViewFrustum;
|
||||||
CMatrix4f RotationOnlyViewMatrix;
|
CMatrix4f RotationOnlyViewMatrix;
|
||||||
};
|
};
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
#include "CResource.h"
|
#include "CResource.h"
|
||||||
#include "CCollisionMesh.h"
|
#include "CCollisionMesh.h"
|
||||||
|
#include "EGame.h"
|
||||||
#include "TResPtr.h"
|
#include "TResPtr.h"
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
@ -10,6 +11,7 @@ class CCollisionMeshGroup : public CResource
|
||||||
{
|
{
|
||||||
DECLARE_RESOURCE_TYPE(eCollisionMeshGroup)
|
DECLARE_RESOURCE_TYPE(eCollisionMeshGroup)
|
||||||
std::vector<CCollisionMesh*> mMeshes;
|
std::vector<CCollisionMesh*> mMeshes;
|
||||||
|
EGame mGame;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
CCollisionMeshGroup() {}
|
CCollisionMeshGroup() {}
|
||||||
|
@ -20,8 +22,11 @@ public:
|
||||||
delete *it;
|
delete *it;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline EGame Game() const { return mGame; }
|
||||||
inline u32 NumMeshes() const { return mMeshes.size(); }
|
inline u32 NumMeshes() const { return mMeshes.size(); }
|
||||||
inline CCollisionMesh* MeshByIndex(u32 Index) const { return mMeshes[Index]; }
|
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 AddMesh(CCollisionMesh *pMesh) { mMeshes.push_back(pMesh); }
|
||||||
|
|
||||||
inline void Draw()
|
inline void Draw()
|
||||||
|
|
|
@ -144,6 +144,7 @@ CCollisionMeshGroup* CCollisionLoader::LoadAreaCollision(IInputStream& rMREA)
|
||||||
loader.mVersion = GetFormatVersion(rMREA.ReadLong());
|
loader.mVersion = GetFormatVersion(rMREA.ReadLong());
|
||||||
|
|
||||||
loader.mpGroup = new CCollisionMeshGroup;
|
loader.mpGroup = new CCollisionMeshGroup;
|
||||||
|
loader.mpGroup->SetGame(loader.mVersion);
|
||||||
loader.mpMesh = new CCollisionMesh;
|
loader.mpMesh = new CCollisionMesh;
|
||||||
|
|
||||||
// Octree - structure is known, but not coding this right now
|
// 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.mVersion = GetFormatVersion(rDCLN.ReadLong());
|
||||||
|
Loader.mpGroup->SetGame(Loader.mVersion);
|
||||||
|
|
||||||
Loader.mpMesh = new CCollisionMesh;
|
Loader.mpMesh = new CCollisionMesh;
|
||||||
Loader.mpMesh->mOctreeLoaded = false;
|
Loader.mpMesh->mOctreeLoaded = false;
|
||||||
|
|
|
@ -45,13 +45,72 @@ void CCollisionNode::Draw(FRenderOptions /*Options*/, int /*ComponentIndex*/, ER
|
||||||
|
|
||||||
for (u32 iMat = 0; iMat < pMesh->NumMaterials(); iMat++)
|
for (u32 iMat = 0; iMat < pMesh->NumMaterials(); iMat++)
|
||||||
{
|
{
|
||||||
CDrawUtil::UseCollisionShader(BaseTint);
|
SCollisionMaterial& rMat = pMesh->GetMaterial(iMat);
|
||||||
|
|
||||||
|
if (rkViewInfo.CollisionSettings.HideMask != 0 && (rMat.RawFlags & rkViewInfo.CollisionSettings.HideMask) == rkViewInfo.CollisionSettings.HideMask)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
CColor Tint = BaseTint;
|
||||||
|
|
||||||
|
if (rkViewInfo.CollisionSettings.HighlightMask != 0 && (rMat.RawFlags & rkViewInfo.CollisionSettings.HighlightMask) == rkViewInfo.CollisionSettings.HighlightMask)
|
||||||
|
Tint *= CColor::skRed;
|
||||||
|
|
||||||
|
else if (mpCollision->Game() <= ePrime && rkViewInfo.CollisionSettings.DrawMode == eCDM_TintSurfaceType)
|
||||||
|
{
|
||||||
|
// Organic
|
||||||
|
if (rMat.RawFlags & 0x00800000)
|
||||||
|
Tint *= CColor::Integral(130, 130, 250); // Purple
|
||||||
|
// Wood
|
||||||
|
else if (rMat.RawFlags & 0x00400000)
|
||||||
|
Tint *= CColor::Integral(190, 140, 105); // Brown
|
||||||
|
// Sand
|
||||||
|
else if (rMat.RawFlags & 0x00020000)
|
||||||
|
Tint *= CColor::Integral(230, 200, 170); // Light Brown
|
||||||
|
// Shield
|
||||||
|
else if (rMat.RawFlags & 0x00010000)
|
||||||
|
Tint *= CColor::Integral(250, 230, 60); // Yellow
|
||||||
|
// Glass
|
||||||
|
else if (rMat.RawFlags & 0x00008000)
|
||||||
|
Tint *= CColor::Integral(20, 255, 190); // Greenish/Bluish
|
||||||
|
// Snow
|
||||||
|
else if (rMat.RawFlags & 0x00000800)
|
||||||
|
Tint *= CColor::Integral(230, 255, 255); // *Very* light blue
|
||||||
|
// Lava
|
||||||
|
else if (rMat.RawFlags & 0x00000200)
|
||||||
|
Tint *= CColor::Integral(200, 30, 30); // Red
|
||||||
|
// Rock
|
||||||
|
else if (rMat.RawFlags & 0x00000100)
|
||||||
|
Tint *= CColor::Integral(150, 130, 120); // Brownish-gray
|
||||||
|
// Phazon
|
||||||
|
else if (rMat.RawFlags & 0x00000080)
|
||||||
|
Tint *= CColor::Integral(0, 128, 255); // Blue
|
||||||
|
// Metal Grating
|
||||||
|
else if (rMat.RawFlags & 0x00000040)
|
||||||
|
Tint *= CColor::Integral(170, 170, 170); // Gray
|
||||||
|
// Ice
|
||||||
|
else if (rMat.RawFlags & 0x00000010)
|
||||||
|
Tint *= CColor::Integral(200, 255, 255); // Light blue
|
||||||
|
// Grass
|
||||||
|
else if (rMat.RawFlags & 0x00000008)
|
||||||
|
Tint *= CColor::Integral(90, 150, 70); // Green
|
||||||
|
// Metal
|
||||||
|
else if (rMat.RawFlags & 0x00000004)
|
||||||
|
Tint *= CColor::Integral(110, 110, 110); // Dark gray
|
||||||
|
// Stone
|
||||||
|
else if (rMat.RawFlags & 0x00000002)
|
||||||
|
Tint *= CColor::Integral(220, 215, 160); // Brown/green ish
|
||||||
|
}
|
||||||
|
|
||||||
|
CDrawUtil::UseCollisionShader(Tint);
|
||||||
pMesh->DrawMaterial(iMat);
|
pMesh->DrawMaterial(iMat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//CDrawUtil::UseColorShader(CColor::skTransparentBlack);
|
if (rkViewInfo.CollisionSettings.DrawWireframe)
|
||||||
//mpCollision->DrawWireframe();
|
{
|
||||||
|
CDrawUtil::UseColorShader(CColor::skTransparentBlack);
|
||||||
|
mpCollision->DrawWireframe();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SRayIntersection CCollisionNode::RayNodeIntersectTest(const CRay& /*rkRay*/, u32 /*AssetID*/, const SViewInfo& /*rkViewInfo*/)
|
SRayIntersection CCollisionNode::RayNodeIntersectTest(const CRay& /*rkRay*/, u32 /*AssetID*/, const SViewInfo& /*rkViewInfo*/)
|
||||||
|
|
|
@ -64,6 +64,7 @@ public:
|
||||||
CVector2f MouseDeviceCoordinates();
|
CVector2f MouseDeviceCoordinates();
|
||||||
double LastRenderDuration();
|
double LastRenderDuration();
|
||||||
|
|
||||||
|
inline SCollisionRenderSettings& CollisionRenderSettings() { return mViewInfo.CollisionSettings; }
|
||||||
public slots:
|
public slots:
|
||||||
void ProcessInput();
|
void ProcessInput();
|
||||||
void Render();
|
void Render();
|
||||||
|
|
|
@ -164,7 +164,8 @@ HEADERS += \
|
||||||
CharacterEditor/CCharacterEditorViewport.h \
|
CharacterEditor/CCharacterEditorViewport.h \
|
||||||
CGridRenderable.h \
|
CGridRenderable.h \
|
||||||
CharacterEditor/CSkeletonHierarchyModel.h \
|
CharacterEditor/CSkeletonHierarchyModel.h \
|
||||||
CLineRenderable.h
|
CLineRenderable.h \
|
||||||
|
WorldEditor/CCollisionRenderSettingsDialog.h
|
||||||
|
|
||||||
# Source Files
|
# Source Files
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
|
@ -224,7 +225,8 @@ SOURCES += \
|
||||||
CAboutDialog.cpp \
|
CAboutDialog.cpp \
|
||||||
CharacterEditor/CCharacterEditor.cpp \
|
CharacterEditor/CCharacterEditor.cpp \
|
||||||
CharacterEditor/CCharacterEditorViewport.cpp \
|
CharacterEditor/CCharacterEditorViewport.cpp \
|
||||||
CharacterEditor/CSkeletonHierarchyModel.cpp
|
CharacterEditor/CSkeletonHierarchyModel.cpp \
|
||||||
|
WorldEditor/CCollisionRenderSettingsDialog.cpp
|
||||||
|
|
||||||
# UI Files
|
# UI Files
|
||||||
FORMS += \
|
FORMS += \
|
||||||
|
@ -245,4 +247,5 @@ FORMS += \
|
||||||
WorldEditor/CSelectInstanceDialog.ui \
|
WorldEditor/CSelectInstanceDialog.ui \
|
||||||
WorldEditor/CRepackInfoDialog.ui \
|
WorldEditor/CRepackInfoDialog.ui \
|
||||||
CAboutDialog.ui \
|
CAboutDialog.ui \
|
||||||
CharacterEditor/CCharacterEditor.ui
|
CharacterEditor/CCharacterEditor.ui \
|
||||||
|
WorldEditor/CCollisionRenderSettingsDialog.ui
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
#include "CCollisionRenderSettingsDialog.h"
|
||||||
|
#include "ui_CCollisionRenderSettingsDialog.h"
|
||||||
|
#include "CWorldEditor.h"
|
||||||
|
#include "Editor/UICommon.h"
|
||||||
|
|
||||||
|
CCollisionRenderSettingsDialog::CCollisionRenderSettingsDialog(CWorldEditor *pEditor, QWidget *pParent /*= 0*/)
|
||||||
|
: QDialog(pParent)
|
||||||
|
, mpEditor(pEditor)
|
||||||
|
, mpUi(new Ui::CCollisionRenderSettingsDialog)
|
||||||
|
{
|
||||||
|
mpUi->setupUi(this);
|
||||||
|
|
||||||
|
connect(mpUi->HideMaskLineEdit, SIGNAL(textChanged(QString)), this, SLOT(OnHideMaskChanged(QString)));
|
||||||
|
connect(mpUi->HighlightMaskLineEdit, SIGNAL(textChanged(QString)), this, SLOT(OnHighlightMaskChanged(QString)));
|
||||||
|
connect(mpUi->WireframeCheckBox, SIGNAL(toggled(bool)), this, SLOT(OnWireframeToggled(bool)));
|
||||||
|
}
|
||||||
|
|
||||||
|
CCollisionRenderSettingsDialog::~CCollisionRenderSettingsDialog()
|
||||||
|
{
|
||||||
|
delete mpUi;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CCollisionRenderSettingsDialog::OnHideMaskChanged(QString NewMask)
|
||||||
|
{
|
||||||
|
TString MaskStr = TO_TSTRING(NewMask);
|
||||||
|
u64 Mask = (MaskStr.IsHexString() ? MaskStr.ToInt64(16) : 0);
|
||||||
|
mpEditor->Viewport()->CollisionRenderSettings().HideMask = Mask;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CCollisionRenderSettingsDialog::OnHighlightMaskChanged(QString NewMask)
|
||||||
|
{
|
||||||
|
TString MaskStr = TO_TSTRING(NewMask);
|
||||||
|
u64 Mask = (MaskStr.IsHexString() ? MaskStr.ToInt64(16) : 0);
|
||||||
|
mpEditor->Viewport()->CollisionRenderSettings().HighlightMask = Mask;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CCollisionRenderSettingsDialog::OnWireframeToggled(bool Enable)
|
||||||
|
{
|
||||||
|
mpEditor->Viewport()->CollisionRenderSettings().DrawWireframe = Enable;
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
#ifndef CCOLLISIONRENDERSETTINGSDIALOG_H
|
||||||
|
#define CCOLLISIONRENDERSETTINGSDIALOG_H
|
||||||
|
|
||||||
|
#include <QDialog>
|
||||||
|
|
||||||
|
class CWorldEditor;
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class CCollisionRenderSettingsDialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
class CCollisionRenderSettingsDialog : public QDialog
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
Ui::CCollisionRenderSettingsDialog *mpUi;
|
||||||
|
|
||||||
|
CWorldEditor *mpEditor;
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit CCollisionRenderSettingsDialog(CWorldEditor *pEditor, QWidget *pParent = 0);
|
||||||
|
~CCollisionRenderSettingsDialog();
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void OnHideMaskChanged(QString NewMask);
|
||||||
|
void OnHighlightMaskChanged(QString NewMask);
|
||||||
|
void OnWireframeToggled(bool Enable);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // CCOLLISIONRENDERSETTINGSDIALOG_H
|
|
@ -0,0 +1,59 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>CCollisionRenderSettingsDialog</class>
|
||||||
|
<widget class="QDialog" name="CCollisionRenderSettingsDialog">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>309</width>
|
||||||
|
<height>89</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Dialog</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<layout class="QFormLayout" name="formLayout">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="HideMaskLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Hide Mask</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLineEdit" name="HideMaskLineEdit"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="HighlightMaskLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Highlight Mask</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLineEdit" name="HighlightMaskLineEdit"/>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="WireframeLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Wireframe</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QCheckBox" name="WireframeCheckBox">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
|
@ -34,6 +34,7 @@ CWorldEditor::CWorldEditor(QWidget *parent)
|
||||||
, ui(new Ui::CWorldEditor)
|
, ui(new Ui::CWorldEditor)
|
||||||
, mpArea(nullptr)
|
, mpArea(nullptr)
|
||||||
, mpWorld(nullptr)
|
, mpWorld(nullptr)
|
||||||
|
, mpCollisionDialog(new CCollisionRenderSettingsDialog(this, this))
|
||||||
, mpLinkDialog(new CLinkDialog(this, this))
|
, mpLinkDialog(new CLinkDialog(this, this))
|
||||||
, mpPoiDialog(nullptr)
|
, mpPoiDialog(nullptr)
|
||||||
, mIsMakingLink(false)
|
, mIsMakingLink(false)
|
||||||
|
@ -139,6 +140,7 @@ CWorldEditor::CWorldEditor(QWidget *parent)
|
||||||
connect(ui->ActionBloom, SIGNAL(triggered()), this, SLOT(SetBloom()));
|
connect(ui->ActionBloom, SIGNAL(triggered()), this, SLOT(SetBloom()));
|
||||||
connect(ui->ActionIncrementGizmo, SIGNAL(triggered()), this, SLOT(IncrementGizmo()));
|
connect(ui->ActionIncrementGizmo, SIGNAL(triggered()), this, SLOT(IncrementGizmo()));
|
||||||
connect(ui->ActionDecrementGizmo, SIGNAL(triggered()), this, SLOT(DecrementGizmo()));
|
connect(ui->ActionDecrementGizmo, SIGNAL(triggered()), this, SLOT(DecrementGizmo()));
|
||||||
|
connect(ui->ActionCollisionRenderSettings, SIGNAL(triggered()), this, SLOT(EditCollisionRenderSettings()));
|
||||||
connect(ui->ActionEditLayers, SIGNAL(triggered()), this, SLOT(EditLayers()));
|
connect(ui->ActionEditLayers, SIGNAL(triggered()), this, SLOT(EditLayers()));
|
||||||
connect(ui->ActionEditPoiToWorldMap, SIGNAL(triggered()), this, SLOT(EditPoiToWorldMap()));
|
connect(ui->ActionEditPoiToWorldMap, SIGNAL(triggered()), this, SLOT(EditPoiToWorldMap()));
|
||||||
|
|
||||||
|
@ -1104,6 +1106,11 @@ void CWorldEditor::DecrementGizmo()
|
||||||
mGizmo.DecrementSize();
|
mGizmo.DecrementSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CWorldEditor::EditCollisionRenderSettings()
|
||||||
|
{
|
||||||
|
mpCollisionDialog->show();
|
||||||
|
}
|
||||||
|
|
||||||
void CWorldEditor::EditLayers()
|
void CWorldEditor::EditLayers()
|
||||||
{
|
{
|
||||||
// Launch layer editor
|
// Launch layer editor
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#ifndef CWORLDEDITOR_H
|
#ifndef CWORLDEDITOR_H
|
||||||
#define CWORLDEDITOR_H
|
#define CWORLDEDITOR_H
|
||||||
|
|
||||||
|
#include "CCollisionRenderSettingsDialog.h"
|
||||||
#include "CLinkDialog.h"
|
#include "CLinkDialog.h"
|
||||||
#include "CPoiMapEditDialog.h"
|
#include "CPoiMapEditDialog.h"
|
||||||
#include "Editor/INodeEditor.h"
|
#include "Editor/INodeEditor.h"
|
||||||
|
@ -39,6 +40,7 @@ class CWorldEditor : public INodeEditor
|
||||||
TResPtr<CGameArea> mpArea;
|
TResPtr<CGameArea> mpArea;
|
||||||
QTimer mRefreshTimer;
|
QTimer mRefreshTimer;
|
||||||
|
|
||||||
|
CCollisionRenderSettingsDialog *mpCollisionDialog;
|
||||||
CLinkDialog *mpLinkDialog;
|
CLinkDialog *mpLinkDialog;
|
||||||
CPoiMapEditDialog *mpPoiDialog;
|
CPoiMapEditDialog *mpPoiDialog;
|
||||||
|
|
||||||
|
@ -132,6 +134,7 @@ private slots:
|
||||||
void SetBloom();
|
void SetBloom();
|
||||||
void IncrementGizmo();
|
void IncrementGizmo();
|
||||||
void DecrementGizmo();
|
void DecrementGizmo();
|
||||||
|
void EditCollisionRenderSettings();
|
||||||
void EditLayers();
|
void EditLayers();
|
||||||
void EditPoiToWorldMap();
|
void EditPoiToWorldMap();
|
||||||
|
|
||||||
|
|
|
@ -463,6 +463,7 @@
|
||||||
<addaction name="menuLighting"/>
|
<addaction name="menuLighting"/>
|
||||||
<addaction name="menuBloom"/>
|
<addaction name="menuBloom"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
|
<addaction name="ActionCollisionRenderSettings"/>
|
||||||
<addaction name="ActionDisableBackfaceCull"/>
|
<addaction name="ActionDisableBackfaceCull"/>
|
||||||
<addaction name="ActionDisableAlpha"/>
|
<addaction name="ActionDisableAlpha"/>
|
||||||
</widget>
|
</widget>
|
||||||
|
@ -818,6 +819,11 @@
|
||||||
<string>Ctrl+Shift+S</string>
|
<string>Ctrl+Shift+S</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
|
<action name="ActionCollisionRenderSettings">
|
||||||
|
<property name="text">
|
||||||
|
<string>Collision Render Settings</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<customwidgets>
|
<customwidgets>
|
||||||
<customwidget>
|
<customwidget>
|
||||||
|
|
Loading…
Reference in New Issue