Fixed selection crashing when brick is removed due to physics

This commit is contained in:
Vulpovile
2022-10-03 07:42:24 -07:00
parent 7b6cab626e
commit 7f5ab0df7f
5 changed files with 41 additions and 7 deletions

View File

@@ -40,4 +40,12 @@ FONT 8, "Ms Shell Dlg"
// Icon resources
//
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN
IDI_ICON1 ICON "FatB3dIcon.ico"
IDI_ICON1 ICON "FatB3dIcon.ico"
//
// Manifest resources
//
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
2 RT_MANIFEST ".\\manifest.xml"

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

View File

@@ -175,7 +175,7 @@ void Application::deleteInstance()
}
}
if(g_selectedInstances.size() == 0)
g_usableApp->_propWindow->ClearProperties();
g_usableApp->_propWindow->UpdateSelected(g_dataModel);
}
@@ -331,12 +331,25 @@ void Application::onSimulation(RealTime rdt, SimTime sdt, SimTime idt) {
else
_dataModel->getEngine()->createBody(partInstance);
}
bool a = false;
while(toDelete.size() > 0)
{
PartInstance * p = toDelete.back();
toDelete.pop_back();
if(std::find(g_selectedInstances.begin(), g_selectedInstances.end(), p) != g_selectedInstances.end())
{
g_selectedInstances.erase(std::remove(g_selectedInstances.begin(), g_selectedInstances.end(), p), g_selectedInstances.end());
a = true;
}
p->setParent(NULL);
delete p;
}
if(a)
{
if(g_selectedInstances.size() == 0)
g_usableApp->_propWindow->UpdateSelected(g_dataModel);
else if(g_selectedInstances.size() == 1)
g_usableApp->_propWindow->UpdateSelected(g_selectedInstances[0]);
}
for(int i = 0; i < 6; i++)
{

View File

@@ -1,10 +1,6 @@
#include "Globals.h"
#include "Application.h"
int const Globals::gen = 0;
int const Globals::major = 0;
int const Globals::minor = 105;
int const Globals::patch = 0;
int Globals::surfaceId = 2;
//bool Globals::showMouse = true;
bool Globals::useMousePoint = false;

View File

@@ -342,7 +342,7 @@ void PropertyWindow::UpdateSelected(Instance * instance)
{
PropGrid_ResetContent(_propGrid);
prop = instance->getProperties();
if (selectedInstance != instance)
//if (selectedInstance != instance)
{
selectedInstance = instance;
for(size_t i = 0; i < prop.size(); i++)