diff --git a/Engine/source/gui/editor/guiShapeEdPreview.cpp b/Engine/source/gui/editor/guiShapeEdPreview.cpp index ff1c8a884..1ab80796d 100644 --- a/Engine/source/gui/editor/guiShapeEdPreview.cpp +++ b/Engine/source/gui/editor/guiShapeEdPreview.cpp @@ -256,7 +256,7 @@ bool GuiShapeEdPreview::setFieldSunAngleZ( void *object, const char *index, cons bool GuiShapeEdPreview::setFieldThreadPos( void *object, const char *index, const char *data ) { GuiShapeEdPreview* gui = static_cast( object ); - if ( gui && ( gui->mActiveThread >= 0 ) && gui->mThreads[gui->mActiveThread].key ) + if ( gui && (gui->mThreads.size() && gui->mActiveThread >= 0 ) && gui->mThreads[gui->mActiveThread].key ) gui->mModel->setPos( gui->mThreads[gui->mActiveThread].key, dAtof( data ) ); return false; } @@ -264,7 +264,7 @@ bool GuiShapeEdPreview::setFieldThreadPos( void *object, const char *index, cons const char *GuiShapeEdPreview::getFieldThreadPos( void *object, const char *data ) { GuiShapeEdPreview* gui = static_cast( object ); - if ( gui && ( gui->mActiveThread >= 0 ) && gui->mThreads[gui->mActiveThread].key ) + if ( gui && (gui->mThreads.size() && gui->mActiveThread >= 0 ) && gui->mThreads[gui->mActiveThread].key ) return Con::getFloatArg( gui->mModel->getPos( gui->mThreads[gui->mActiveThread].key ) ); else return "0"; @@ -273,7 +273,7 @@ const char *GuiShapeEdPreview::getFieldThreadPos( void *object, const char *data bool GuiShapeEdPreview::setFieldThreadDir( void *object, const char *index, const char *data ) { GuiShapeEdPreview* gui = static_cast( object ); - if ( gui && ( gui->mActiveThread >= 0 ) ) + if ( gui && (gui->mThreads.size() && gui->mActiveThread >= 0 ) ) { Thread& thread = gui->mThreads[gui->mActiveThread]; Con::setData( TypeS32, &(thread.direction), 0, 1, &data ); @@ -286,7 +286,7 @@ bool GuiShapeEdPreview::setFieldThreadDir( void *object, const char *index, cons const char *GuiShapeEdPreview::getFieldThreadDir( void *object, const char *data ) { GuiShapeEdPreview* gui = static_cast( object ); - if ( gui && ( gui->mActiveThread >= 0 ) ) + if ( gui && (gui->mThreads.size() && gui->mActiveThread >= 0 ) ) return Con::getIntArg( gui->mThreads[gui->mActiveThread].direction ); else return "0"; @@ -295,7 +295,7 @@ const char *GuiShapeEdPreview::getFieldThreadDir( void *object, const char *data bool GuiShapeEdPreview::setFieldThreadPingPong( void *object, const char *index, const char *data ) { GuiShapeEdPreview* gui = static_cast( object ); - if ( gui && ( gui->mActiveThread >= 0 ) ) + if ( gui && (gui->mThreads.size() && gui->mActiveThread >= 0 ) ) Con::setData( TypeBool, &(gui->mThreads[gui->mActiveThread].pingpong), 0, 1, &data ); return false; } @@ -303,7 +303,7 @@ bool GuiShapeEdPreview::setFieldThreadPingPong( void *object, const char *index, const char *GuiShapeEdPreview::getFieldThreadPingPong( void *object, const char *data ) { GuiShapeEdPreview* gui = static_cast( object ); - if ( gui && ( gui->mActiveThread >= 0 ) ) + if ( gui && (gui->mThreads.size() && gui->mActiveThread >= 0 ) ) return Con::getIntArg( gui->mThreads[gui->mActiveThread].pingpong ); else return "0"; @@ -478,7 +478,7 @@ void GuiShapeEdPreview::setTimeScale( F32 scale ) void GuiShapeEdPreview::setActiveThreadSequence(const char* seqName, F32 duration, F32 pos, bool play) { - if ( mActiveThread == -1 ) + if ( mActiveThread == -1 || mThreads.empty()) return; setThreadSequence(mThreads[mActiveThread], mModel, seqName, duration, pos, play); @@ -533,7 +533,7 @@ void GuiShapeEdPreview::setThreadSequence(GuiShapeEdPreview::Thread& thread, TSS const char* GuiShapeEdPreview::getThreadSequence() const { - return ( mActiveThread >= 0 ) ? mThreads[mActiveThread].seqName.c_str() : ""; + return ( mActiveThread >= 0 && mThreads.size()) ? mThreads[mActiveThread].seqName.c_str() : ""; } void GuiShapeEdPreview::refreshThreadSequences()