diff --git a/Sources/Plasma/FeatureLib/pfCamera/plVirtualCamNeu.cpp b/Sources/Plasma/FeatureLib/pfCamera/plVirtualCamNeu.cpp index 15648f62..9f85f786 100644 --- a/Sources/Plasma/FeatureLib/pfCamera/plVirtualCamNeu.cpp +++ b/Sources/Plasma/FeatureLib/pfCamera/plVirtualCamNeu.cpp @@ -226,8 +226,11 @@ plVirtualCam1::~plVirtualCam1() // for saving camera stack plCameraModifier1* plVirtualCam1::GetCameraNumber(size_t camNumber) -{ - return (fCameraStack[camNumber]); +{ + if (fCameraStack.size() > camNumber) + return fCameraStack[camNumber]; + else + return nil; } // for rebuilding camera stack void plVirtualCam1::RebuildStack(const plKey& key) diff --git a/Sources/Plasma/FeatureLib/pfPython/cyMisc.cpp b/Sources/Plasma/FeatureLib/pfPython/cyMisc.cpp index 1efb9e2e..1179dfb4 100644 --- a/Sources/Plasma/FeatureLib/pfPython/cyMisc.cpp +++ b/Sources/Plasma/FeatureLib/pfPython/cyMisc.cpp @@ -2459,14 +2459,14 @@ int cyMisc::GetNumCameras() return (plVirtualCam1::Instance()->GetNumCameras()); } -const char* cyMisc::GetCameraNumber(int number) +plString cyMisc::GetCameraNumber(int number) { plCameraModifier1* pCam = plVirtualCam1::Instance()->GetCameraNumber(number-1); - if (pCam->GetTarget()) + if (pCam && pCam->GetTarget()) { - const char* ret = pCam->GetTarget()->GetKeyName().c_str(); - plString str = plString::Format("saving camera named %s to chronicle\n",ret); - plVirtualCam1::Instance()->AddMsgToLog(str.c_str()); + plString ret = pCam->GetTarget()->GetKeyName(); + plString log = plString::Format("saving camera named %s to chronicle\n", ret.c_str()); + plVirtualCam1::Instance()->AddMsgToLog(log.c_str()); return ret; } plVirtualCam1::Instance()->AddMsgToLog("sending empty to camera chronicle\n"); diff --git a/Sources/Plasma/FeatureLib/pfPython/cyMisc.h b/Sources/Plasma/FeatureLib/pfPython/cyMisc.h index 507e27eb..2011c167 100644 --- a/Sources/Plasma/FeatureLib/pfPython/cyMisc.h +++ b/Sources/Plasma/FeatureLib/pfPython/cyMisc.h @@ -809,7 +809,7 @@ public: // static int GetNumCameras(); - static const char* GetCameraNumber(int number); + static plString GetCameraNumber(int number); static void RebuildCameraStack(const plString& name, const char* ageName); static void PyClearCameraStack(); static void RecenterCamera(); diff --git a/Sources/Plasma/FeatureLib/pfPython/cyMiscGlue4.cpp b/Sources/Plasma/FeatureLib/pfPython/cyMiscGlue4.cpp index c77a8d0e..1694765d 100644 --- a/Sources/Plasma/FeatureLib/pfPython/cyMiscGlue4.cpp +++ b/Sources/Plasma/FeatureLib/pfPython/cyMiscGlue4.cpp @@ -337,7 +337,7 @@ PYTHON_GLOBAL_METHOD_DEFINITION(PtGetCameraNumber, args, "Params: x\nReturns cam PyErr_SetString(PyExc_TypeError, "PtGetCameraNumber expects an int"); PYTHON_RETURN_ERROR; } - return PyString_FromString(cyMisc::GetCameraNumber(x)); + return PyString_FromPlString(cyMisc::GetCameraNumber(x)); } PYTHON_GLOBAL_METHOD_DEFINITION_NOARGS(PtGetNumCameras, "returns camera stack size")