Browse Source

Fix for multi-controller debug display.

Previously, multiple controllers in a single age
would overlap.  This adds a static positional
counter which is reset at the start of a new list.

This commit also attempts to make the list more
useful by showing the controller objects'
owner's name.
Joseph Davies 12 years ago
parent
commit
60b7e02d28
  1. 17
      Sources/Plasma/PubUtilLib/plPhysX/plPXPhysicalControllerCore.cpp
  2. 2
      Sources/Plasma/PubUtilLib/plPhysX/plPXPhysicalControllerCore.h

17
Sources/Plasma/PubUtilLib/plPhysX/plPXPhysicalControllerCore.cpp

@ -561,7 +561,7 @@ void plPXPhysicalControllerCore::Update(int numSubSteps, float alpha)
#ifndef PLASMA_EXTERNAL_RELEASE #ifndef PLASMA_EXTERNAL_RELEASE
if (fDebugDisplay) if (fDebugDisplay)
controller->IDrawDebugDisplay(); controller->IDrawDebugDisplay(i);
#endif #endif
} }
} }
@ -847,23 +847,28 @@ void plPXPhysicalControllerCore::IProcessDynamicHits()
#ifndef PLASMA_EXTERNAL_RELEASE #ifndef PLASMA_EXTERNAL_RELEASE
#include "../plPipeline/plDebugText.h" #include "../plPipeline/plDebugText.h"
void plPXPhysicalControllerCore::IDrawDebugDisplay() void plPXPhysicalControllerCore::IDrawDebugDisplay(int controllerIdx)
{ {
plDebugText &debugTxt = plDebugText::Instance(); plDebugText &debugTxt = plDebugText::Instance();
plString debugString; plString debugString;
int y = 10; // Initial draw position
int x = 10;
int lineHeight = debugTxt.GetFontSize() + 4; int lineHeight = debugTxt.GetFontSize() + 4;
int x = 10; // Initial draw position
static int y = 10;
if (controllerIdx == 0)
{
y = 10;
debugString = plString::Format("Controller Count: %d", gControllers.size()); debugString = plString::Format("Controller Count: %d", gControllers.size());
debugTxt.DrawString(x, y, debugString.c_str()); debugTxt.DrawString(x, y, debugString.c_str());
y += lineHeight; y += lineHeight;
}
// Only display avatar collisions if any exist... // Only display avatar collisions if any exist...
int collisionCount = fDbgCollisionInfo.GetCount(); int collisionCount = fDbgCollisionInfo.GetCount();
if (collisionCount > 0) if (collisionCount > 0)
{ {
debugTxt.DrawString(x, y, "Avatar Collisions:"); debugString = plString::Format("Controller #%d (%s) Collisions:",
controllerIdx + 1, gControllers[controllerIdx]->fOwner->GetName().c_str());
debugTxt.DrawString(x, y, debugString.c_str());
y += lineHeight; y += lineHeight;
for (int i = 0; i < collisionCount; i++) for (int i = 0; i < collisionCount; i++)

2
Sources/Plasma/PubUtilLib/plPhysX/plPXPhysicalControllerCore.h

@ -157,7 +157,7 @@ protected:
void IProcessDynamicHits(); void IProcessDynamicHits();
#ifndef PLASMA_EXTERNAL_RELEASE #ifndef PLASMA_EXTERNAL_RELEASE
void IDrawDebugDisplay(); void IDrawDebugDisplay(int controllerIdx);
hsTArray<plDbgCollisionInfo> fDbgCollisionInfo; hsTArray<plDbgCollisionInfo> fDbgCollisionInfo;
#endif #endif

Loading…
Cancel
Save