From 32d9e5d9e1019149f04817de9f988d01ed2d92b6 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Sun, 28 Jun 2015 21:21:00 -0400 Subject: [PATCH 1/3] Fix Coverity 1161256 Part of the for loop's condition was being discarded. Changed to while loop and utilize the correct condition. --- Sources/Plasma/PubUtilLib/plInterp/plController.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Sources/Plasma/PubUtilLib/plInterp/plController.cpp b/Sources/Plasma/PubUtilLib/plInterp/plController.cpp index 9b0a5f06..8f9375e6 100644 --- a/Sources/Plasma/PubUtilLib/plInterp/plController.cpp +++ b/Sources/Plasma/PubUtilLib/plInterp/plController.cpp @@ -373,11 +373,11 @@ hsMatrix44Key *plLeafController::GetMatrix44Key(uint32_t i) const void plLeafController::GetKeyTimes(hsTArray &keyTimes) const { - int cIdx; - int kIdx; + int cIdx = 0; + int kIdx = 0; uint32_t stride = GetStride(); uint8_t *keyPtr = (uint8_t *)fKeys; - for (cIdx = 0, kIdx = 0; cIdx < fNumKeys, kIdx < keyTimes.GetCount();) + while (cIdx < fNumKeys && kIdx < keyTimes.GetCount()) { float kTime = keyTimes[kIdx]; float cTime = ((hsKeyFrame*)(keyPtr + cIdx * stride))->fFrame / MAX_FRAMES_PER_SEC; From 9c49b57580c96b8b7bb208853d3f45c7fbd8e368 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Sun, 28 Jun 2015 21:34:29 -0400 Subject: [PATCH 2/3] Fix argument ordering on fixed camera targets --- Sources/Plasma/FeatureLib/pfCamera/plCameraBrain.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/Plasma/FeatureLib/pfCamera/plCameraBrain.cpp b/Sources/Plasma/FeatureLib/pfCamera/plCameraBrain.cpp index 4297f284..f7f691cc 100644 --- a/Sources/Plasma/FeatureLib/pfCamera/plCameraBrain.cpp +++ b/Sources/Plasma/FeatureLib/pfCamera/plCameraBrain.cpp @@ -1567,7 +1567,7 @@ void plCameraBrain1_Fixed::Update(bool forced) fTargetMatrix = fCamera->GetTarget()->GetCoordinateInterface()->GetLocalToWorld(); hsVector3 view; hsVector3 up; - fTargetMatrix.GetAxis(0, &view, &up); + fTargetMatrix.GetAxis(0, &up, &view); fGoal = fTargetMatrix.GetTranslate(); if (fTargetPoint) fPOAGoal = fTargetPoint->GetBrain()->GetGoal(); From 5f3cc56b81ca2214055836d2f58c4ce6e53eb652 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Sun, 28 Jun 2015 22:23:15 -0400 Subject: [PATCH 3/3] Actually overload some Max methods This has the pleasant side effect of completely and totally fixing busted light maps in the Max plugin --- Sources/Tools/MaxConvert/plMaxLightContext.h | 2 +- Sources/Tools/MaxConvert/plRenderGlobalContext.cpp | 2 +- Sources/Tools/MaxConvert/plRenderGlobalContext.h | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Sources/Tools/MaxConvert/plMaxLightContext.h b/Sources/Tools/MaxConvert/plMaxLightContext.h index 819987a5..3f6cdf8f 100644 --- a/Sources/Tools/MaxConvert/plMaxLightContext.h +++ b/Sources/Tools/MaxConvert/plMaxLightContext.h @@ -131,7 +131,7 @@ class plMaxRendContext : public RendContext public: Matrix3 WorldToCam() const { return Matrix3(1); } Color GlobalLightLevel() const { return Color(1.f, 1.f, 1.f); } - int Progress(int done, int total) { + int Progress(int done, int total) const { return 1; } }; diff --git a/Sources/Tools/MaxConvert/plRenderGlobalContext.cpp b/Sources/Tools/MaxConvert/plRenderGlobalContext.cpp index 94c4c159..442b0960 100644 --- a/Sources/Tools/MaxConvert/plRenderGlobalContext.cpp +++ b/Sources/Tools/MaxConvert/plRenderGlobalContext.cpp @@ -118,7 +118,7 @@ void plRenderGlobalContext::MakeRenderInstances(plMaxNode* root, TimeValue t) fInstList[i].SetNext(&fInstList[i+1]); } -RenderInstance* plRenderGlobalContext::GetRenderInstance(int i) const +RenderInstance* plRenderGlobalContext::GetRenderInstance(int i) { if (fInstList.GetCount() > i) return &fInstList[i]; diff --git a/Sources/Tools/MaxConvert/plRenderGlobalContext.h b/Sources/Tools/MaxConvert/plRenderGlobalContext.h index a464cf6a..a5ee3cb9 100644 --- a/Sources/Tools/MaxConvert/plRenderGlobalContext.h +++ b/Sources/Tools/MaxConvert/plRenderGlobalContext.h @@ -62,8 +62,8 @@ public: void MakeRenderInstances(plMaxNode* root, TimeValue t); - virtual int NumRenderInstances() const { return fInstList.GetCount(); } - virtual RenderInstance* GetRenderInstance( int i ) const; + virtual int NumRenderInstances() { return fInstList.GetCount(); } + virtual RenderInstance* GetRenderInstance( int i ); virtual void IntersectRay(RenderInstance *inst, Ray& ray, ISect &isct, ISectList &xpList, BOOL findExit); virtual BOOL IntersectWorld(Ray &ray, int skipID, ISect &hit, ISectList &xplist, int blurFrame = NO_MOTBLUR);