mirror of https://github.com/yaz0r/FITD.git
Display collision volumes for actors that don't have a body
This commit is contained in:
parent
228f0856c4
commit
543e22bc78
|
@ -3071,18 +3071,6 @@ void AllRedraw(int flagFlip)
|
|||
getHotPoint(actorPtr->hotPointID, bodyPtr, &actorPtr->hotPoint);
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////// DEBUG
|
||||
#ifdef FITD_DEBUGGER
|
||||
// if(debuggerVar_drawModelZv)
|
||||
{
|
||||
if (backgroundMode == backgroundModeEnum_3D)
|
||||
{
|
||||
drawZv(actorPtr);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
/////////////////////////////////////
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3128,6 +3116,20 @@ void AllRedraw(int flagFlip)
|
|||
|
||||
#ifdef FITD_DEBUGGER
|
||||
{
|
||||
if (backgroundMode == backgroundModeEnum_3D)
|
||||
{
|
||||
for (int i = 0; i < NUM_MAX_OBJECT; i++)
|
||||
{
|
||||
tObject* actorPtr = &ListObjets[i];
|
||||
|
||||
if (actorPtr->indexInWorld != -1)
|
||||
{
|
||||
drawZv(actorPtr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////
|
||||
for (int i = 0; i < getNumberOfRoom(); i++)
|
||||
{
|
||||
if (hardColDisplayMode != displayNone) {
|
||||
|
|
|
@ -95,9 +95,9 @@ int boneRotateZSin;
|
|||
char primBuffer[30000];
|
||||
|
||||
int renderVar3;
|
||||
|
||||
|
||||
#ifndef AITD_UE4
|
||||
void fillpoly(s16 * datas, int n, char c);
|
||||
void fillpoly(s16 * datas, int n, char c);
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
@ -246,7 +246,7 @@ void RotateList(point3dStruct* pointPtr, int numOfPoint)
|
|||
point.z = z;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void RotateGroupeOptimise(sGroup* ptr)
|
||||
{
|
||||
if (ptr->m_numGroup) // if group number is 0
|
||||
|
@ -257,7 +257,7 @@ void RotateGroupeOptimise(sGroup* ptr)
|
|||
RotateList(pointBuffer.data() + baseBone, numPoints);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void RotateGroupe(sGroup* ptr)
|
||||
{
|
||||
int baseBone = ptr->m_start;
|
||||
|
@ -280,8 +280,8 @@ void RotateGroupe(sGroup* ptr)
|
|||
|
||||
ptr++;
|
||||
} while (--temp2);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void TranslateGroupe(int transX, int transY, int transZ, sGroup* ptr)
|
||||
{
|
||||
for (int i = 0; i < ptr->m_numVertices; i++)
|
||||
|
@ -292,7 +292,7 @@ void TranslateGroupe(int transX, int transY, int transZ, sGroup* ptr)
|
|||
point.z += transZ;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void ZoomGroupe(int zoomX, int zoomY, int zoomZ, sGroup* ptr)
|
||||
{
|
||||
for (int i = 0; i < ptr->m_numVertices; i++)
|
||||
|
@ -305,24 +305,24 @@ void ZoomGroupe(int zoomX, int zoomY, int zoomZ, sGroup* ptr)
|
|||
}
|
||||
|
||||
int AnimNuage(int x,int y,int z,int alpha,int beta,int gamma, sBody* pBody)
|
||||
{
|
||||
{
|
||||
renderX = x - translateX;
|
||||
renderY = y;
|
||||
renderZ = z - translateZ;
|
||||
|
||||
ASSERT(pBody->m_vertices.size()<NUM_MAX_POINT_IN_POINT_BUFFER);
|
||||
|
||||
for (int i = 0; i < pBody->m_vertices.size(); i++)
|
||||
{
|
||||
pointBuffer[i] = pBody->m_vertices[i];
|
||||
}
|
||||
|
||||
numOfPoints = pBody->m_vertices.size();
|
||||
|
||||
for (int i = 0; i < pBody->m_vertices.size(); i++)
|
||||
{
|
||||
pointBuffer[i] = pBody->m_vertices[i];
|
||||
}
|
||||
|
||||
numOfPoints = pBody->m_vertices.size();
|
||||
numOfBones = pBody->m_groupOrder.size();
|
||||
ASSERT(numOfBones<NUM_MAX_BONES);
|
||||
|
||||
if(pBody->m_flags & INFO_OPTIMISE)
|
||||
{
|
||||
{
|
||||
for(int i=0;i<pBody->m_groupOrder.size();i++)
|
||||
{
|
||||
int boneDataOffset = pBody->m_groupOrder[i];
|
||||
|
@ -334,7 +334,7 @@ int AnimNuage(int x,int y,int z,int alpha,int beta,int gamma, sBody* pBody)
|
|||
if(pGroup->m_state.m_delta.x || pGroup->m_state.m_delta.y || pGroup->m_state.m_delta.z)
|
||||
{
|
||||
TranslateGroupe(pGroup->m_state.m_delta.x, pGroup->m_state.m_delta.y, pGroup->m_state.m_delta.z, pGroup);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (pGroup->m_state.m_delta.x || pGroup->m_state.m_delta.y || pGroup->m_state.m_delta.z)
|
||||
|
@ -389,8 +389,8 @@ int AnimNuage(int x,int y,int z,int alpha,int beta,int gamma, sBody* pBody)
|
|||
}
|
||||
|
||||
for(int i=0;i<pBody->m_groups.size();i++)
|
||||
{
|
||||
sGroup* pGroup = &pBody->m_groups[i];
|
||||
{
|
||||
sGroup* pGroup = &pBody->m_groups[i];
|
||||
for(int j=0;j< pGroup->m_numVertices;j++)
|
||||
{
|
||||
pointBuffer[pGroup->m_start + j].x += pointBuffer[pGroup->m_baseVertices].x;
|
||||
|
@ -415,13 +415,13 @@ int AnimNuage(int x,int y,int z,int alpha,int beta,int gamma, sBody* pBody)
|
|||
|
||||
|
||||
X += renderX;
|
||||
Y += renderY;
|
||||
Y += renderY;
|
||||
Z += renderZ;
|
||||
|
||||
#if defined(AITD_UE4)
|
||||
|
||||
#if defined(AITD_UE4)
|
||||
*(outPtr++) = (s16)X;
|
||||
*(outPtr++) = (s16)Y;
|
||||
*(outPtr++) = (s16)Z;
|
||||
*(outPtr++) = (s16)Z;
|
||||
#else
|
||||
if(Y>10000) // height clamp
|
||||
{
|
||||
|
@ -438,7 +438,7 @@ int AnimNuage(int x,int y,int z,int alpha,int beta,int gamma, sBody* pBody)
|
|||
*(outPtr++) = (s16)X;
|
||||
*(outPtr++) = (s16)Y;
|
||||
*(outPtr++) = (s16)Z;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -456,11 +456,11 @@ int AnimNuage(int x,int y,int z,int alpha,int beta,int gamma, sBody* pBody)
|
|||
Y = ptr[1];
|
||||
Z = ptr[2];
|
||||
ptr+=3;
|
||||
|
||||
#if defined(AITD_UE4)
|
||||
|
||||
#if defined(AITD_UE4)
|
||||
*(outPtr2++) = X;
|
||||
*(outPtr2++) = Y;
|
||||
*(outPtr2++) = Z;
|
||||
*(outPtr2++) = Z;
|
||||
#else
|
||||
Z += cameraPerspective;
|
||||
|
||||
|
@ -495,7 +495,7 @@ int AnimNuage(int x,int y,int z,int alpha,int beta,int gamma, sBody* pBody)
|
|||
|
||||
*(outPtr2++) = Z;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
k--;
|
||||
if(k==0)
|
||||
|
@ -517,7 +517,7 @@ z - cameraZ
|
|||
*/
|
||||
|
||||
int RotateNuage(int x,int y,int z,int alpha,int beta,int gamma, sBody* pBody)
|
||||
{
|
||||
{
|
||||
float* outPtr;
|
||||
|
||||
renderX = x - translateX;
|
||||
|
@ -543,7 +543,7 @@ int RotateNuage(int x,int y,int z,int alpha,int beta,int gamma, sBody* pBody)
|
|||
}
|
||||
|
||||
outPtr = renderPointList;
|
||||
|
||||
|
||||
for(int i=0; i<pBody->m_vertices.size(); i++)
|
||||
{
|
||||
float X = pBody->m_vertices[i].x;
|
||||
|
@ -582,12 +582,12 @@ int RotateNuage(int x,int y,int z,int alpha,int beta,int gamma, sBody* pBody)
|
|||
|
||||
X += renderX;
|
||||
Y += renderY;
|
||||
Z += renderZ;
|
||||
|
||||
#if defined(AITD_UE4)
|
||||
Z += renderZ;
|
||||
|
||||
#if defined(AITD_UE4)
|
||||
*(outPtr++) = X;
|
||||
*(outPtr++) = Y;
|
||||
*(outPtr++) = Z;
|
||||
*(outPtr++) = Z;
|
||||
#else
|
||||
if(Y>10000) // height clamp
|
||||
{
|
||||
|
@ -647,8 +647,8 @@ void primFunctionDefault(int primType,char** ptr,char** out)
|
|||
assert(0);
|
||||
}
|
||||
|
||||
void processPrim_Line(int primType, sPrimitive* ptr, char** out)
|
||||
{
|
||||
void processPrim_Line(int primType, sPrimitive* ptr, char** out)
|
||||
{
|
||||
primEntryStruct* pCurrentPrimEntry = &primTable[positionInPrimEntry];
|
||||
|
||||
ASSERT(positionInPrimEntry < NUM_MAX_PRIM_ENTRY);
|
||||
|
@ -676,19 +676,19 @@ void processPrim_Line(int primType, sPrimitive* ptr, char** out)
|
|||
depth = pCurrentPrimEntry->vertices[i].Z;
|
||||
|
||||
}
|
||||
|
||||
|
||||
#if !defined(AITD_UE4)
|
||||
if (depth > 100)
|
||||
if (depth > 100)
|
||||
#endif
|
||||
{
|
||||
positionInPrimEntry++;
|
||||
|
||||
numOfPrimitiveToRender++;
|
||||
ASSERT(positionInPrimEntry < NUM_MAX_PRIM_ENTRY);
|
||||
}
|
||||
}
|
||||
|
||||
void processPrim_Poly(int primType, sPrimitive* ptr, char** out)
|
||||
}
|
||||
}
|
||||
|
||||
void processPrim_Poly(int primType, sPrimitive* ptr, char** out)
|
||||
{
|
||||
primEntryStruct* pCurrentPrimEntry = &primTable[positionInPrimEntry];
|
||||
|
||||
|
@ -717,19 +717,19 @@ void processPrim_Poly(int primType, sPrimitive* ptr, char** out)
|
|||
depth = pCurrentPrimEntry->vertices[i].Z;
|
||||
|
||||
}
|
||||
|
||||
|
||||
#if !defined(AITD_UE4)
|
||||
if (depth > 100)
|
||||
if (depth > 100)
|
||||
#endif
|
||||
{
|
||||
positionInPrimEntry++;
|
||||
|
||||
numOfPrimitiveToRender++;
|
||||
ASSERT(positionInPrimEntry < NUM_MAX_PRIM_ENTRY);
|
||||
}
|
||||
}
|
||||
|
||||
void processPrim_Point(primTypeEnum primType, sPrimitive* ptr, char** out)
|
||||
}
|
||||
}
|
||||
|
||||
void processPrim_Point(primTypeEnum primType, sPrimitive* ptr, char** out)
|
||||
{
|
||||
primEntryStruct* pCurrentPrimEntry = &primTable[positionInPrimEntry];
|
||||
|
||||
|
@ -751,20 +751,20 @@ void processPrim_Point(primTypeEnum primType, sPrimitive* ptr, char** out)
|
|||
|
||||
depth = pCurrentPrimEntry->vertices[0].Z;
|
||||
}
|
||||
|
||||
|
||||
#if !defined(AITD_UE4)
|
||||
if (depth > 100)
|
||||
if (depth > 100)
|
||||
#endif
|
||||
{
|
||||
positionInPrimEntry++;
|
||||
|
||||
numOfPrimitiveToRender++;
|
||||
ASSERT(positionInPrimEntry < NUM_MAX_PRIM_ENTRY);
|
||||
}
|
||||
}
|
||||
|
||||
void processPrim_Sphere(int primType, sPrimitive* ptr, char** out)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
void processPrim_Sphere(int primType, sPrimitive* ptr, char** out)
|
||||
{
|
||||
primEntryStruct* pCurrentPrimEntry = &primTable[positionInPrimEntry];
|
||||
|
||||
ASSERT(positionInPrimEntry < NUM_MAX_PRIM_ENTRY);
|
||||
|
@ -786,16 +786,16 @@ void processPrim_Sphere(int primType, sPrimitive* ptr, char** out)
|
|||
|
||||
depth = pCurrentPrimEntry->vertices[0].Z;
|
||||
}
|
||||
|
||||
|
||||
#if !defined(AITD_UE4)
|
||||
if (depth > 100)
|
||||
if (depth > 100)
|
||||
#endif
|
||||
{
|
||||
positionInPrimEntry++;
|
||||
|
||||
numOfPrimitiveToRender++;
|
||||
ASSERT(positionInPrimEntry < NUM_MAX_PRIM_ENTRY);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void primType5(int primType, char** ptr, char** out) // draw out of hardClip
|
||||
|
@ -934,7 +934,7 @@ int AffObjet(int x,int y,int z,int alpha,int beta,int gamma, sBody* pBody)
|
|||
modelFlags = pBody->m_flags;
|
||||
|
||||
if(modelFlags&INFO_ANIM)
|
||||
{
|
||||
{
|
||||
if(!AnimNuage(x,y,z,alpha,beta,gamma, pBody))
|
||||
{
|
||||
BBox3D3 = -32000;
|
||||
|
@ -982,7 +982,7 @@ int AffObjet(int x,int y,int z,int alpha,int beta,int gamma, sBody* pBody)
|
|||
|
||||
// create the list of all primitives to render
|
||||
for(i=0;i<numPrim;i++)
|
||||
{
|
||||
{
|
||||
sPrimitive* pPrimitive = &pBody->m_primitives[i];
|
||||
primTypeEnum primType = pPrimitive->m_type;
|
||||
|
||||
|
@ -1088,7 +1088,7 @@ int AffObjet(int x,int y,int z,int alpha,int beta,int gamma, sBody* pBody)
|
|||
}
|
||||
|
||||
void computeScreenBox(int x, int y, int z, int alpha, int beta, int gamma, sBody* bodyPtr)
|
||||
{
|
||||
{
|
||||
BBox3D1 = 0x7FFF;
|
||||
BBox3D2 = 0x7FFF;
|
||||
|
||||
|
@ -1102,9 +1102,9 @@ void computeScreenBox(int x, int y, int z, int alpha, int beta, int gamma, sBody
|
|||
renderVar2 = renderBuffer;
|
||||
|
||||
modelFlags = bodyPtr->m_flags;
|
||||
|
||||
|
||||
if(modelFlags&INFO_ANIM)
|
||||
{
|
||||
{
|
||||
AnimNuage(x,y,z,alpha,beta,gamma, bodyPtr);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue