mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-17 18:59:09 +00:00
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.
This commit is contained in:
@ -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
|
||||||
debugString = plString::Format("Controller Count: %d", gControllers.size());
|
static int y = 10;
|
||||||
debugTxt.DrawString(x, y, debugString.c_str());
|
if (controllerIdx == 0)
|
||||||
y += lineHeight;
|
{
|
||||||
|
y = 10;
|
||||||
|
debugString = plString::Format("Controller Count: %d", gControllers.size());
|
||||||
|
debugTxt.DrawString(x, y, debugString.c_str());
|
||||||
|
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++)
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user