mirror of https://github.com/yaz0r/FITD.git
Various rename and cleanup
This commit is contained in:
parent
24c7d8fa23
commit
228f0856c4
|
@ -17,23 +17,23 @@ int sortCompareFunction(const void* param1, const void* param2)
|
|||
ASSERT(*(int*)param1 >=0 && *(int*)param1 < NUM_MAX_OBJECT);
|
||||
ASSERT(*(int*)param2 >=0 && *(int*)param2 < NUM_MAX_OBJECT);
|
||||
|
||||
actor1Ptr = &objectTable[*(int*)param1];
|
||||
actor2Ptr = &objectTable[*(int*)param2];
|
||||
actor1Ptr = &ListObjets[*(int*)param1];
|
||||
actor2Ptr = &ListObjets[*(int*)param2];
|
||||
|
||||
actor1ZvPtr = &actor1Ptr->zv;
|
||||
actor2ZvPtr = &actor2Ptr->zv;
|
||||
|
||||
if(actor1Ptr->room != currentRoom)
|
||||
{
|
||||
copyZv(actor1ZvPtr, &localZv1);
|
||||
getZvRelativePosition(&localZv1, actor1Ptr->room, currentRoom);
|
||||
CopyZV(actor1ZvPtr, &localZv1);
|
||||
AdjustZV(&localZv1, actor1Ptr->room, currentRoom);
|
||||
actor1ZvPtr = &localZv1;
|
||||
}
|
||||
|
||||
if(actor2Ptr->room != currentRoom)
|
||||
{
|
||||
copyZv(actor2ZvPtr, &localZv2);
|
||||
getZvRelativePosition(&localZv2, actor2Ptr->room, currentRoom);
|
||||
CopyZV(actor2ZvPtr, &localZv2);
|
||||
AdjustZV(&localZv2, actor2Ptr->room, currentRoom);
|
||||
actor2ZvPtr = &localZv2;
|
||||
}
|
||||
|
||||
|
|
|
@ -166,11 +166,11 @@ int manageFall(int actorIdx, ZVStruct* zvPtr)
|
|||
{
|
||||
int fallResult = 0;
|
||||
int i;
|
||||
int room = objectTable[actorIdx].room;
|
||||
int room = ListObjets[actorIdx].room;
|
||||
|
||||
for(i=0;i<NUM_MAX_OBJECT;i++)
|
||||
{
|
||||
tObject* currentTestedActorPtr = &objectTable[i];
|
||||
tObject* currentTestedActorPtr = &ListObjets[i];
|
||||
|
||||
if(currentTestedActorPtr->indexInWorld != -1 && i != actorIdx)
|
||||
{
|
||||
|
@ -179,20 +179,20 @@ int manageFall(int actorIdx, ZVStruct* zvPtr)
|
|||
if(currentTestedActorPtr->room != room)
|
||||
{
|
||||
ZVStruct localZv;
|
||||
copyZv(zvPtr, &localZv);
|
||||
getZvRelativePosition(&localZv, room, currentTestedActorPtr->room);
|
||||
CopyZV(zvPtr, &localZv);
|
||||
AdjustZV(&localZv, room, currentTestedActorPtr->room);
|
||||
|
||||
if(checkZvCollision(&localZv, testedZv))
|
||||
if(CubeIntersect(&localZv, testedZv))
|
||||
{
|
||||
objectTable[i].COL_BY = actorIdx;
|
||||
ListObjets[i].COL_BY = actorIdx;
|
||||
fallResult++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(checkZvCollision(zvPtr, testedZv))
|
||||
if(CubeIntersect(zvPtr, testedZv))
|
||||
{
|
||||
objectTable[i].COL_BY = actorIdx;
|
||||
ListObjets[i].COL_BY = actorIdx;
|
||||
fallResult++;
|
||||
}
|
||||
}
|
||||
|
@ -285,11 +285,11 @@ void GereAnim(void)
|
|||
currentProcessedActorPtr->END_FRAME = 0;
|
||||
if(currentProcessedActorPtr->speed == 0)
|
||||
{
|
||||
int numObjectCollisions = checkObjectCollisions(currentProcessedActorIdx, ¤tProcessedActorPtr->zv);
|
||||
int numObjectCollisions = CheckObjectCol(currentProcessedActorIdx, ¤tProcessedActorPtr->zv);
|
||||
|
||||
for(int i = 0; i<numObjectCollisions; i++)
|
||||
{
|
||||
objectTable[currentProcessedActorPtr->COL[i]].COL_BY = currentProcessedActorIdx; // collision with current actor
|
||||
ListObjets[currentProcessedActorPtr->COL[i]].COL_BY = currentProcessedActorIdx; // collision with current actor
|
||||
}
|
||||
|
||||
oldStepY = 0;
|
||||
|
@ -356,7 +356,7 @@ void GereAnim(void)
|
|||
if(stepX || stepY || stepZ) // start of movement management
|
||||
{
|
||||
zvPtr = ¤tProcessedActorPtr->zv;
|
||||
copyZv(¤tProcessedActorPtr->zv,&zvLocal);
|
||||
CopyZV(¤tProcessedActorPtr->zv,&zvLocal);
|
||||
|
||||
zvLocal.ZVX1 += stepX;
|
||||
zvLocal.ZVX2 += stepX;
|
||||
|
@ -367,6 +367,7 @@ void GereAnim(void)
|
|||
zvLocal.ZVZ1 += stepZ;
|
||||
zvLocal.ZVZ2 += stepZ;
|
||||
|
||||
// check for wall collisions
|
||||
if(currentProcessedActorPtr->dynFlags & 1) // hard collision enabled for actor ?
|
||||
{
|
||||
int numCol = AsmCheckListCol(&zvLocal, &roomDataTable[currentProcessedActorPtr->room]);
|
||||
|
@ -380,13 +381,18 @@ void GereAnim(void)
|
|||
currentProcessedActorPtr->HARD_COL = (short)pHardCol->parameter;
|
||||
}
|
||||
|
||||
// climbable wall
|
||||
if(pHardCol->type == 3)
|
||||
{
|
||||
currentProcessedActorPtr->HARD_COL = 255;
|
||||
}
|
||||
|
||||
if(g_gameId == AITD1 || (g_gameId>=JACK && (pHardCol->type != 10 || currentProcessedActorIdx != currentCameraTargetActor)))
|
||||
{
|
||||
if (g_gameId >= JACK) {
|
||||
// monster collision for floor changes
|
||||
if ((pHardCol->type == 10) && (currentProcessedActorIdx == currentCameraTargetActor))
|
||||
continue;
|
||||
}
|
||||
|
||||
if(stepX || stepZ) // move on the X or Z axis ? update to avoid entering the hard col
|
||||
{
|
||||
//ZVStruct tempZv;
|
||||
|
@ -394,7 +400,7 @@ void GereAnim(void)
|
|||
hardColStepX = stepX;
|
||||
hardColStepZ = stepZ;
|
||||
|
||||
handleCollision(zvPtr, &zvLocal, &pHardCol->zv);
|
||||
GereCollision(zvPtr, &zvLocal, &pHardCol->zv);
|
||||
|
||||
currentProcessedActorPtr->animNegX += hardColStepX - stepX;
|
||||
currentProcessedActorPtr->animNegZ += hardColStepZ - stepZ;
|
||||
|
@ -414,7 +420,6 @@ void GereAnim(void)
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else // no hard collision -> just update the flag without performing the position update
|
||||
{
|
||||
if(AsmCheckListCol(&zvLocal, &roomDataTable[currentProcessedActorPtr->room]))
|
||||
|
@ -427,13 +432,14 @@ void GereAnim(void)
|
|||
}
|
||||
}
|
||||
|
||||
int numCol = checkObjectCollisions(currentProcessedActorIdx,&zvLocal); // get the number of actor/actor collision
|
||||
|
||||
// check for object collisions
|
||||
// TODO: AITD2 checks flag collision here
|
||||
int numCol = CheckObjectCol(currentProcessedActorIdx,&zvLocal); // get the number of actor/actor collision
|
||||
for(int j=0;j<numCol;j++) // process the actor/actor collision
|
||||
{
|
||||
int collisionIndex = currentProcessedActorPtr->COL[j];
|
||||
|
||||
tObject* actorTouchedPtr = &objectTable[collisionIndex];
|
||||
tObject* actorTouchedPtr = &ListObjets[collisionIndex];
|
||||
|
||||
actorTouchedPtr->COL_BY = currentProcessedActorIdx;
|
||||
|
||||
|
@ -443,10 +449,10 @@ void GereAnim(void)
|
|||
{
|
||||
if(currentProcessedActorPtr->trackMode == 1 /*&& ((gameId == AITD1 && defines.field_1E == 0) || (gameId >= JACK && defines.field_6 == 0))*/) // TODO: check if character isn't dead...
|
||||
{
|
||||
foundObject(actorTouchedPtr->indexInWorld, 0);
|
||||
FoundObjet(actorTouchedPtr->indexInWorld, 0);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(actorTouchedPtr->objectType & AF_MOVABLE) // can be pushed ?
|
||||
{
|
||||
|
@ -454,7 +460,7 @@ void GereAnim(void)
|
|||
|
||||
bool isPushPossible = true;
|
||||
|
||||
copyZv(touchedZv, &localZv2);
|
||||
CopyZV(touchedZv, &localZv2);
|
||||
|
||||
localZv2.ZVX1 += stepX;
|
||||
localZv2.ZVX2 += stepX;
|
||||
|
@ -462,15 +468,14 @@ void GereAnim(void)
|
|||
localZv2.ZVZ1 += stepZ;
|
||||
localZv2.ZVZ2 += stepZ;
|
||||
|
||||
if(!AsmCheckListCol(&localZv2, &roomDataTable[currentProcessedActorPtr->room]))
|
||||
{
|
||||
if(checkObjectCollisions(collisionIndex, &localZv2))
|
||||
// check pushed object against walls
|
||||
if(AsmCheckListCol(&localZv2, &roomDataTable[currentProcessedActorPtr->room]))
|
||||
{
|
||||
isPushPossible = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
else if (CheckObjectCol(collisionIndex, &localZv2))
|
||||
{
|
||||
// if no wall preventing to move object, check is there is a another object in the way
|
||||
isPushPossible = false;
|
||||
}
|
||||
|
||||
|
@ -482,14 +487,14 @@ void GereAnim(void)
|
|||
{
|
||||
ZVStruct localZv3;
|
||||
|
||||
copyZv(touchedZv, &localZv3);
|
||||
CopyZV(touchedZv, &localZv3);
|
||||
|
||||
getZvRelativePosition(&localZv3, actorTouchedPtr->room, currentProcessedActorPtr->room);
|
||||
AdjustZV(&localZv3, actorTouchedPtr->room, currentProcessedActorPtr->room);
|
||||
|
||||
hardColStepX = stepX;
|
||||
hardColStepZ = stepZ;
|
||||
|
||||
handleCollision(zvPtr, &zvLocal, &localZv3);
|
||||
GereCollision(zvPtr, &zvLocal, &localZv3);
|
||||
|
||||
stepX = hardColStepX;
|
||||
stepZ = hardColStepZ;
|
||||
|
@ -499,7 +504,7 @@ void GereAnim(void)
|
|||
hardColStepX = stepX;
|
||||
hardColStepZ = stepZ;
|
||||
|
||||
handleCollision(zvPtr, &zvLocal, touchedZv); // manage as hard collision
|
||||
GereCollision(zvPtr, &zvLocal, touchedZv); // manage as hard collision
|
||||
|
||||
stepX = hardColStepX;
|
||||
stepZ = hardColStepZ;
|
||||
|
@ -521,7 +526,7 @@ void GereAnim(void)
|
|||
actorTouchedPtr->roomX += stepX;
|
||||
actorTouchedPtr->roomZ += stepZ;
|
||||
|
||||
copyZv(&localZv2,touchedZv);
|
||||
CopyZV(&localZv2,touchedZv);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -536,7 +541,7 @@ void GereAnim(void)
|
|||
hardColStepX = stepX;
|
||||
hardColStepZ = stepZ;
|
||||
|
||||
handleCollision(zvPtr, &zvLocal, touchedZv); // manage as hard collision
|
||||
GereCollision(zvPtr, &zvLocal, touchedZv); // manage as hard collision
|
||||
|
||||
stepX = hardColStepX;
|
||||
stepZ = hardColStepZ;
|
||||
|
@ -545,14 +550,14 @@ void GereAnim(void)
|
|||
{
|
||||
ZVStruct localZv3;
|
||||
|
||||
copyZv(touchedZv, &localZv3);
|
||||
CopyZV(touchedZv, &localZv3);
|
||||
|
||||
getZvRelativePosition(&localZv3, actorTouchedPtr->room, currentProcessedActorPtr->room);
|
||||
AdjustZV(&localZv3, actorTouchedPtr->room, currentProcessedActorPtr->room);
|
||||
|
||||
hardColStepX = stepX;
|
||||
hardColStepZ = stepZ;
|
||||
|
||||
handleCollision(zvPtr, &zvLocal, &localZv3); // manage as hard collision
|
||||
GereCollision(zvPtr, &zvLocal, &localZv3); // manage as hard collision
|
||||
|
||||
stepX = hardColStepX;
|
||||
stepZ = hardColStepZ;
|
||||
|
@ -589,7 +594,7 @@ void GereAnim(void)
|
|||
{
|
||||
zvPtr = ¤tProcessedActorPtr->zv;
|
||||
|
||||
copyZv(zvPtr, &zvLocal);
|
||||
CopyZV(zvPtr, &zvLocal);
|
||||
|
||||
zvLocal.ZVY2 += 100;
|
||||
|
||||
|
@ -617,7 +622,7 @@ void GereAnim(void)
|
|||
|
||||
if(collisionIndex != -1)
|
||||
{
|
||||
tObject* actorTouchedPtr = &objectTable[collisionIndex];
|
||||
tObject* actorTouchedPtr = &ListObjets[collisionIndex];
|
||||
|
||||
if(actorTouchedPtr->objectType & AF_MOVABLE)
|
||||
{
|
||||
|
|
|
@ -69,14 +69,14 @@ void GereFrappe(void)
|
|||
|
||||
//drawProjectedBox(rangeZv.ZVX1,rangeZv.ZVX2,rangeZv.ZVY1,rangeZv.ZVY2,rangeZv.ZVZ1,rangeZv.ZVZ2,60,255);
|
||||
|
||||
collision = checkObjectCollisions(currentProcessedActorIdx,&rangeZv);
|
||||
collision = CheckObjectCol(currentProcessedActorIdx,&rangeZv);
|
||||
|
||||
for(i=0;i<collision;i++)
|
||||
{
|
||||
tObject* actorPtr2;
|
||||
|
||||
currentProcessedActorPtr->HIT = currentProcessedActorPtr->COL[i];
|
||||
actorPtr2 = &objectTable[currentProcessedActorPtr->COL[i]];
|
||||
actorPtr2 = &ListObjets[currentProcessedActorPtr->COL[i]];
|
||||
|
||||
actorPtr2->HIT_BY = currentProcessedActorIdx;
|
||||
actorPtr2->hitForce = currentProcessedActorPtr->hitForce;
|
||||
|
@ -141,8 +141,8 @@ void GereFrappe(void)
|
|||
|
||||
currentProcessedActorPtr->HIT = touchedActor;
|
||||
|
||||
objectTable[touchedActor].HIT_BY = currentProcessedActorIdx;
|
||||
objectTable[touchedActor].hitForce = currentProcessedActorPtr->hitForce;
|
||||
ListObjets[touchedActor].HIT_BY = currentProcessedActorIdx;
|
||||
ListObjets[touchedActor].hitForce = currentProcessedActorPtr->hitForce;
|
||||
|
||||
currentProcessedActorPtr->animActionType = 0;
|
||||
}
|
||||
|
@ -229,7 +229,7 @@ void GereFrappe(void)
|
|||
if(actorIdx == -1)
|
||||
return;
|
||||
|
||||
actorPtr = &objectTable[actorIdx];
|
||||
actorPtr = &ListObjets[actorIdx];
|
||||
|
||||
actorPtr->roomX = x;
|
||||
actorPtr->roomY = y;
|
||||
|
@ -287,8 +287,8 @@ void GereFrappe(void)
|
|||
int z3;
|
||||
int step;
|
||||
|
||||
copyZv(¤tProcessedActorPtr->zv, &rangeZv);
|
||||
copyZv(¤tProcessedActorPtr->zv, &rangeZv2);
|
||||
CopyZV(¤tProcessedActorPtr->zv, &rangeZv);
|
||||
CopyZV(¤tProcessedActorPtr->zv, &rangeZv2);
|
||||
|
||||
xtemp = currentProcessedActorPtr->roomX + currentProcessedActorPtr->stepX;
|
||||
ytemp = currentProcessedActorPtr->roomY + currentProcessedActorPtr->stepY;
|
||||
|
@ -328,7 +328,7 @@ void GereFrappe(void)
|
|||
y2 = y1;
|
||||
z2 = z1 + animMoveZ;
|
||||
|
||||
copyZv(&rangeZv2,&rangeZv);
|
||||
CopyZV(&rangeZv2,&rangeZv);
|
||||
|
||||
rangeZv.ZVX1 = x2 - 200;
|
||||
rangeZv.ZVX2 = x2 + 200;
|
||||
|
@ -337,7 +337,7 @@ void GereFrappe(void)
|
|||
rangeZv.ZVZ1 = z2 - 200;
|
||||
rangeZv.ZVZ2 = z2 + 200;
|
||||
|
||||
collision = checkObjectCollisions(currentProcessedActorIdx,&rangeZv);
|
||||
collision = CheckObjectCol(currentProcessedActorIdx,&rangeZv);
|
||||
|
||||
if(collision)
|
||||
{
|
||||
|
@ -352,7 +352,7 @@ void GereFrappe(void)
|
|||
{
|
||||
int currentActorCol = currentProcessedActorPtr->COL[i];
|
||||
|
||||
if(objectTable[currentActorCol].indexInWorld == objPtr->alpha)
|
||||
if(ListObjets[currentActorCol].indexInWorld == objPtr->alpha)
|
||||
{
|
||||
collision2--;
|
||||
objPtr->x = xtemp;
|
||||
|
@ -362,7 +362,7 @@ void GereFrappe(void)
|
|||
return;
|
||||
}
|
||||
|
||||
if(objectTable[currentActorCol].indexInWorld == CVars[getCVarsIdx((enumCVars)REVERSE_OBJECT)])
|
||||
if(ListObjets[currentActorCol].indexInWorld == CVars[getCVarsIdx((enumCVars)REVERSE_OBJECT)])
|
||||
{
|
||||
objPtr->alpha = CVars[getCVarsIdx((enumCVars)REVERSE_OBJECT)];
|
||||
currentProcessedActorPtr->beta += 0x200;
|
||||
|
@ -376,7 +376,7 @@ void GereFrappe(void)
|
|||
currentProcessedActorPtr->stepX = 0;
|
||||
currentProcessedActorPtr->stepZ = 0;
|
||||
|
||||
copyZv(&rangeZv2, &rangeZv);
|
||||
CopyZV(&rangeZv2, &rangeZv);
|
||||
|
||||
rangeZv.ZVX1 += x3;
|
||||
rangeZv.ZVX2 += x3;
|
||||
|
@ -385,7 +385,7 @@ void GereFrappe(void)
|
|||
rangeZv.ZVZ1 += z3;
|
||||
rangeZv.ZVZ2 += z3;
|
||||
|
||||
copyZv(&rangeZv, ¤tProcessedActorPtr->zv);
|
||||
CopyZV(&rangeZv, ¤tProcessedActorPtr->zv);
|
||||
|
||||
objPtr->x = xtemp;
|
||||
objPtr->y = ytemp;
|
||||
|
@ -399,7 +399,7 @@ void GereFrappe(void)
|
|||
tObject* actorPtr;
|
||||
|
||||
currentProcessedActorPtr->HIT = currentActorCol;
|
||||
actorPtr = &objectTable[currentActorCol];
|
||||
actorPtr = &ListObjets[currentActorCol];
|
||||
actorPtr->HIT_BY = currentProcessedActorIdx;
|
||||
actorPtr->hitForce = currentProcessedActorPtr->hitForce;
|
||||
}
|
||||
|
|
|
@ -235,7 +235,7 @@ void debugger_draw(void)
|
|||
if (selectedObject > NUM_MAX_OBJECT)
|
||||
selectedObject = NUM_MAX_OBJECT - 1;
|
||||
|
||||
tObject*pObject = &objectTable[selectedObject];
|
||||
tObject*pObject = &ListObjets[selectedObject];
|
||||
|
||||
ImGui::PushItemWidth(100);
|
||||
|
||||
|
|
|
@ -9,8 +9,8 @@ int getMatrix(int param1, int actorIdx, int param2)
|
|||
int matrixWidth = *matrixPtr++;
|
||||
int matrixHeigh = *matrixPtr++;
|
||||
|
||||
matrixPtr+=(objectTable[actorIdx].hardMat-1)*matrixWidth;
|
||||
matrixPtr+=(objectTable[param2].hardMat-1);
|
||||
matrixPtr+=(ListObjets[actorIdx].hardMat-1)*matrixWidth;
|
||||
matrixPtr+=(ListObjets[param2].hardMat-1);
|
||||
|
||||
if(g_gameId == AITD3)
|
||||
{
|
||||
|
@ -43,11 +43,11 @@ int getPosRel(tObject* actor1, tObject* actor2)
|
|||
}
|
||||
|
||||
|
||||
copyZv(&actor2->zv, &localZv);
|
||||
CopyZV(&actor2->zv, &localZv);
|
||||
|
||||
if(actor1->room != actor2->room)
|
||||
{
|
||||
getZvRelativePosition(&localZv, actor2->room, actor1->room);
|
||||
AdjustZV(&localZv, actor2->room, actor1->room);
|
||||
}
|
||||
|
||||
centerX = (localZv.ZVX1 + localZv.ZVX2) / 2;
|
||||
|
@ -118,7 +118,7 @@ int testZvEndAnim(tObject* actorPtr,sAnimation* animPtr, int param)
|
|||
}
|
||||
|
||||
ZVStruct localZv;
|
||||
copyZv(&actorPtr->zv, &localZv);
|
||||
CopyZV(&actorPtr->zv, &localZv);
|
||||
|
||||
walkStep(0,stepX,actorPtr->beta);
|
||||
|
||||
|
@ -210,7 +210,7 @@ int evalVar(const char* name)
|
|||
}
|
||||
}
|
||||
else {
|
||||
actorPtr = &objectTable[actorIdx];
|
||||
actorPtr = &ListObjets[actorIdx];
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -228,7 +228,7 @@ int evalVar(const char* name)
|
|||
|
||||
if(temp1 != -1)
|
||||
{
|
||||
return(objectTable[temp1].indexInWorld);
|
||||
return(ListObjets[temp1].indexInWorld);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -256,7 +256,7 @@ int evalVar(const char* name)
|
|||
}
|
||||
else
|
||||
{
|
||||
return(objectTable[temp].indexInWorld);
|
||||
return(ListObjets[temp].indexInWorld);
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -271,7 +271,7 @@ int evalVar(const char* name)
|
|||
}
|
||||
else
|
||||
{
|
||||
return(objectTable[temp].indexInWorld);
|
||||
return(ListObjets[temp].indexInWorld);
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -332,9 +332,9 @@ int evalVar(const char* name)
|
|||
}
|
||||
else
|
||||
{
|
||||
int tempX = objectTable[actorNumber].worldX;
|
||||
int tempY = objectTable[actorNumber].worldY;
|
||||
int tempZ = objectTable[actorNumber].worldZ;
|
||||
int tempX = ListObjets[actorNumber].worldX;
|
||||
int tempY = ListObjets[actorNumber].worldY;
|
||||
int tempZ = ListObjets[actorNumber].worldZ;
|
||||
|
||||
return(calcDist(actorPtr->worldX, actorPtr->worldY, actorPtr->worldZ, tempX, tempY, tempZ));
|
||||
}
|
||||
|
@ -346,7 +346,7 @@ int evalVar(const char* name)
|
|||
if(actorPtr->COL_BY == -1)
|
||||
return(-1);
|
||||
else
|
||||
return(objectTable[actorPtr->COL_BY].indexInWorld);
|
||||
return(ListObjets[actorPtr->COL_BY].indexInWorld);
|
||||
break;
|
||||
}
|
||||
case 0x10: // found
|
||||
|
@ -379,7 +379,7 @@ int evalVar(const char* name)
|
|||
return 0;
|
||||
}
|
||||
|
||||
return (getPosRel(actorPtr, &objectTable[ListWorldObjets[objNum].objIndex]));
|
||||
return (getPosRel(actorPtr, &ListObjets[ListWorldObjets[objNum].objIndex]));
|
||||
|
||||
break;
|
||||
}
|
||||
|
@ -412,7 +412,7 @@ int evalVar(const char* name)
|
|||
return -1;
|
||||
}
|
||||
|
||||
return objectTable[temp1].indexInWorld;
|
||||
return ListObjets[temp1].indexInWorld;
|
||||
break;
|
||||
}
|
||||
case 0x16:
|
||||
|
@ -626,7 +626,7 @@ int evalVar2(const char* name)
|
|||
}
|
||||
}
|
||||
else {
|
||||
actorPtr = &objectTable[actorIdx];
|
||||
actorPtr = &ListObjets[actorIdx];
|
||||
}
|
||||
}
|
||||
{
|
||||
|
@ -647,7 +647,7 @@ int evalVar2(const char* name)
|
|||
|
||||
if(temp1 != -1)
|
||||
{
|
||||
return(objectTable[temp1].indexInWorld);
|
||||
return(ListObjets[temp1].indexInWorld);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -685,7 +685,7 @@ int evalVar2(const char* name)
|
|||
}
|
||||
else
|
||||
{
|
||||
return(objectTable[temp].indexInWorld);
|
||||
return(ListObjets[temp].indexInWorld);
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -700,7 +700,7 @@ int evalVar2(const char* name)
|
|||
}
|
||||
else
|
||||
{
|
||||
return(objectTable[temp].indexInWorld);
|
||||
return(ListObjets[temp].indexInWorld);
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -776,9 +776,9 @@ int evalVar2(const char* name)
|
|||
}
|
||||
else
|
||||
{
|
||||
tempX = objectTable[objectIdx].worldX;
|
||||
tempY = objectTable[objectIdx].worldY;
|
||||
tempZ = objectTable[objectIdx].worldZ;
|
||||
tempX = ListObjets[objectIdx].worldX;
|
||||
tempY = ListObjets[objectIdx].worldY;
|
||||
tempZ = ListObjets[objectIdx].worldZ;
|
||||
}
|
||||
|
||||
return(calcDist(actorPtr->worldX, actorPtr->worldY, actorPtr->worldZ, tempX, tempY, tempZ));
|
||||
|
@ -790,7 +790,7 @@ int evalVar2(const char* name)
|
|||
if(actorPtr->COL_BY == -1)
|
||||
return(-1);
|
||||
else
|
||||
return(objectTable[actorPtr->COL_BY].indexInWorld);
|
||||
return(ListObjets[actorPtr->COL_BY].indexInWorld);
|
||||
break;
|
||||
}
|
||||
case 0x10: // found
|
||||
|
@ -823,7 +823,7 @@ int evalVar2(const char* name)
|
|||
return 0;
|
||||
}
|
||||
|
||||
return (getPosRel(actorPtr, &objectTable[ListWorldObjets[objNum].objIndex]));
|
||||
return (getPosRel(actorPtr, &ListObjets[ListWorldObjets[objNum].objIndex]));
|
||||
|
||||
break;
|
||||
}
|
||||
|
@ -856,7 +856,7 @@ int evalVar2(const char* name)
|
|||
return -1;
|
||||
}
|
||||
|
||||
return objectTable[temp1].indexInWorld;
|
||||
return ListObjets[temp1].indexInWorld;
|
||||
break;
|
||||
}
|
||||
case 0x16:
|
||||
|
|
|
@ -493,7 +493,7 @@ void DrawFoundWindow(int menuState, int objectName, int zoomFactor)
|
|||
}
|
||||
}
|
||||
|
||||
void foundObject(int objIdx, int param)
|
||||
void FoundObjet(int objIdx, int param)
|
||||
{
|
||||
tWorldObject* objPtr;
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ int InitSpecialObjet(int mode, int X, int Y, int Z, int stage, int room, int alp
|
|||
s16 localSpecialTable[4];
|
||||
memcpy(localSpecialTable, specialTable, 8);
|
||||
|
||||
tObject* currentActorPtr = objectTable.data();
|
||||
tObject* currentActorPtr = ListObjets.data();
|
||||
|
||||
int i;
|
||||
for (i = 0; i < NUM_MAX_OBJECT; i++) // count the number of active actors
|
||||
|
@ -131,7 +131,7 @@ int InitSpecialObjet(int mode, int X, int Y, int Z, int stage, int room, int alp
|
|||
if (zvPtr)
|
||||
{
|
||||
actorZvPtr = ¤tActorPtr->zv;
|
||||
copyZv(zvPtr, actorZvPtr);
|
||||
CopyZV(zvPtr, actorZvPtr);
|
||||
}
|
||||
|
||||
switch (mode)
|
||||
|
@ -226,7 +226,7 @@ void getHardClip()
|
|||
zvCol.ZVZ1 = READ_LE_S16(etageData + 0x08);
|
||||
zvCol.ZVZ2 = READ_LE_S16(etageData + 0x0A);
|
||||
|
||||
if (checkZvCollision(zvPtr, &zvCol))
|
||||
if (CubeIntersect(zvPtr, &zvCol))
|
||||
{
|
||||
hardClip.ZVX1 = zvCol.ZVX1;
|
||||
hardClip.ZVX2 = zvCol.ZVX2;
|
||||
|
@ -502,7 +502,7 @@ void processLife(int lifeNum, bool callFoundLife)
|
|||
|
||||
if (currentProcessedActorIdx != -1)
|
||||
{
|
||||
currentProcessedActorPtr = &objectTable[currentProcessedActorIdx];
|
||||
currentProcessedActorPtr = &ListObjets[currentProcessedActorIdx];
|
||||
|
||||
goto processOpcode;
|
||||
}
|
||||
|
@ -1284,9 +1284,9 @@ void processLife(int lifeNum, bool callFoundLife)
|
|||
currentProcessedActorPtr->gamma = ListWorldObjets[object].gamma;
|
||||
}
|
||||
else {
|
||||
currentProcessedActorPtr->alpha = objectTable[localObjectIndex].alpha;
|
||||
currentProcessedActorPtr->beta = objectTable[localObjectIndex].beta;
|
||||
currentProcessedActorPtr->gamma = objectTable[localObjectIndex].gamma;
|
||||
currentProcessedActorPtr->alpha = ListObjets[localObjectIndex].alpha;
|
||||
currentProcessedActorPtr->beta = ListObjets[localObjectIndex].beta;
|
||||
currentProcessedActorPtr->gamma = ListObjets[localObjectIndex].gamma;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -1408,7 +1408,7 @@ void processLife(int lifeNum, bool callFoundLife)
|
|||
}
|
||||
case 1: // flow
|
||||
{
|
||||
currentProcessedActorPtr = &objectTable[currentProcessedActorPtr->HIT_BY];
|
||||
currentProcessedActorPtr = &ListObjets[currentProcessedActorPtr->HIT_BY];
|
||||
|
||||
InitSpecialObjet(1,
|
||||
currentProcessedActorPtr->roomX + currentProcessedActorPtr->stepX + currentProcessedActorPtr->hotPoint.x,
|
||||
|
@ -1458,17 +1458,17 @@ void processLife(int lifeNum, bool callFoundLife)
|
|||
|
||||
if (g_gameId == AITD1)
|
||||
{
|
||||
foundObject(lifeTempVar1, 1);
|
||||
FoundObjet(lifeTempVar1, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (callFoundLife)
|
||||
{
|
||||
foundObject(lifeTempVar1, 2);
|
||||
FoundObjet(lifeTempVar1, 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
foundObject(lifeTempVar1, 1);
|
||||
FoundObjet(lifeTempVar1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1947,7 +1947,7 @@ void processLife(int lifeNum, bool callFoundLife)
|
|||
currentWorldTarget = lifeTempVar1;
|
||||
currentCameraTargetActor = lifeTempVar2;
|
||||
|
||||
lifeTempVar3 = objectTable[currentCameraTargetActor].room;
|
||||
lifeTempVar3 = ListObjets[currentCameraTargetActor].room;
|
||||
|
||||
if (lifeTempVar3 != currentRoom)
|
||||
{
|
||||
|
@ -1959,19 +1959,19 @@ void processLife(int lifeNum, bool callFoundLife)
|
|||
{
|
||||
// security case, the target actor may be still be in list while already changed of stage
|
||||
// TODO: check if AITD1 could use the same code (quite probable as it's only security)
|
||||
if (objectTable[lifeTempVar2].stage != g_currentFloor)
|
||||
if (ListObjets[lifeTempVar2].stage != g_currentFloor)
|
||||
{
|
||||
currentWorldTarget = lifeTempVar1;
|
||||
FlagChangeEtage = 1;
|
||||
NewNumEtage = objectTable[lifeTempVar2].stage;
|
||||
NewNumSalle = objectTable[lifeTempVar2].room;
|
||||
NewNumEtage = ListObjets[lifeTempVar2].stage;
|
||||
NewNumSalle = ListObjets[lifeTempVar2].room;
|
||||
}
|
||||
else
|
||||
{
|
||||
currentWorldTarget = lifeTempVar1;
|
||||
currentCameraTargetActor = lifeTempVar2;
|
||||
|
||||
lifeTempVar3 = objectTable[currentCameraTargetActor].room;
|
||||
lifeTempVar3 = ListObjets[currentCameraTargetActor].room;
|
||||
|
||||
if (lifeTempVar3 != currentRoom)
|
||||
{
|
||||
|
|
222
FitdLib/main.cpp
222
FitdLib/main.cpp
|
@ -197,7 +197,7 @@ void executeFoundLife(int objIdx)
|
|||
|
||||
if(actorIdx==-1)
|
||||
{
|
||||
tObject* currentActorEntryPtr = &objectTable[NUM_MAX_OBJECT-1];
|
||||
tObject* currentActorEntryPtr = &ListObjets[NUM_MAX_OBJECT-1];
|
||||
int currentActorEntry = NUM_MAX_OBJECT-1;
|
||||
|
||||
while(currentActorEntry>=0)
|
||||
|
@ -212,14 +212,14 @@ void executeFoundLife(int objIdx)
|
|||
if(currentActorEntry==-1) // no space, we will have to overwrite the last actor !
|
||||
{
|
||||
currentActorEntry = NUM_MAX_OBJECT-1;
|
||||
currentActorEntryPtr = &objectTable[NUM_MAX_OBJECT-1];
|
||||
currentActorEntryPtr = &ListObjets[NUM_MAX_OBJECT-1];
|
||||
}
|
||||
|
||||
actorIdx = currentActorEntry;
|
||||
var_2 = 1;
|
||||
|
||||
currentProcessedActorPtr = &objectTable[actorIdx];
|
||||
currentLifeActorPtr = &objectTable[actorIdx];
|
||||
currentProcessedActorPtr = &ListObjets[actorIdx];
|
||||
currentLifeActorPtr = &ListObjets[actorIdx];
|
||||
currentProcessedActorIdx = actorIdx;
|
||||
currentLifeActorIdx = actorIdx;
|
||||
|
||||
|
@ -1184,7 +1184,7 @@ void LoadWorld(void)
|
|||
|
||||
for(i=0;i<NUM_MAX_OBJECT;i++)
|
||||
{
|
||||
objectTable[i].indexInWorld = -1;
|
||||
ListObjets[i].indexInWorld = -1;
|
||||
}
|
||||
|
||||
if(g_gameId == AITD1)
|
||||
|
@ -1662,7 +1662,7 @@ void InitViewedRoomList()
|
|||
|
||||
void DeleteObjet(int index) // remove actor
|
||||
{
|
||||
tObject *actorPtr = &objectTable[index];
|
||||
tObject *actorPtr = &ListObjets[index];
|
||||
|
||||
if(actorPtr->indexInWorld == -2) // flow
|
||||
{
|
||||
|
@ -1776,7 +1776,7 @@ void pointRotate(int x, int y, int z, int* destX, int* destY, int* destZ)
|
|||
}
|
||||
}
|
||||
|
||||
void copyZv(ZVStruct* source, ZVStruct* dest)
|
||||
void CopyZV(ZVStruct* source, ZVStruct* dest)
|
||||
{
|
||||
memcpy(dest,source,sizeof(ZVStruct));
|
||||
}
|
||||
|
@ -1842,7 +1842,7 @@ void updateAllActorAndObjectsAITD2()
|
|||
{
|
||||
for (int i = 0; i < NUM_MAX_OBJECT; i++)
|
||||
{
|
||||
tObject* pObject = &objectTable[i];
|
||||
tObject* pObject = &ListObjets[i];
|
||||
|
||||
if (pObject->indexInWorld == -1)
|
||||
{
|
||||
|
@ -1957,7 +1957,7 @@ void updateAllActorAndObjectsAITD2()
|
|||
|
||||
if (currentObject->objIndex != -1)
|
||||
{
|
||||
currentProcessedActorPtr = &objectTable[currentObject->objIndex];
|
||||
currentProcessedActorPtr = &ListObjets[currentObject->objIndex];
|
||||
currentProcessedActorIdx = currentObject->objIndex;
|
||||
|
||||
if (currentWorldTarget == i)
|
||||
|
@ -1997,7 +1997,7 @@ void GenereActiveList()
|
|||
|
||||
for(int i=0;i<NUM_MAX_OBJECT;i++)
|
||||
{
|
||||
tObject* currentActor = &objectTable[i];
|
||||
tObject* currentActor = &ListObjets[i];
|
||||
if (currentActor->indexInWorld == -1)
|
||||
continue;
|
||||
|
||||
|
@ -2095,7 +2095,7 @@ void GenereActiveList()
|
|||
|
||||
if(currentObject->objIndex != -1)
|
||||
{
|
||||
currentProcessedActorPtr = &objectTable[currentObject->objIndex];
|
||||
currentProcessedActorPtr = &ListObjets[currentObject->objIndex];
|
||||
currentProcessedActorIdx = currentObject->objIndex;
|
||||
|
||||
if(currentWorldTarget == i)
|
||||
|
@ -2141,9 +2141,9 @@ void GenereAffList()
|
|||
{
|
||||
NbAffObjets = 0;
|
||||
|
||||
for(int i=0;i< objectTable.size();i++)
|
||||
for(int i=0;i< ListObjets.size();i++)
|
||||
{
|
||||
tObject* actorPtr = &objectTable[i];
|
||||
tObject* actorPtr = &ListObjets[i];
|
||||
if(actorPtr->indexInWorld != -1 && actorPtr->bodyNum != -1)
|
||||
{
|
||||
if(checkActorInRoom(actorPtr->room))
|
||||
|
@ -2207,9 +2207,9 @@ void InitView()
|
|||
{
|
||||
if(currentCameraTargetActor != -1)
|
||||
{
|
||||
x = objectTable[currentCameraTargetActor].worldX + objectTable[currentCameraTargetActor].stepX;
|
||||
x = ListObjets[currentCameraTargetActor].worldX + ListObjets[currentCameraTargetActor].stepX;
|
||||
y = debufferVar_topCameraZoom;
|
||||
z = objectTable[currentCameraTargetActor].worldZ + objectTable[currentCameraTargetActor].stepZ;
|
||||
z = ListObjets[currentCameraTargetActor].worldZ + ListObjets[currentCameraTargetActor].stepZ;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -2322,7 +2322,7 @@ s16 updateActorRotation(RealValue* rotatePtr)
|
|||
|
||||
void removeFromBGIncrust(int actorIdx)
|
||||
{
|
||||
tObject* actorPtr = &objectTable[actorIdx];
|
||||
tObject* actorPtr = &ListObjets[actorIdx];
|
||||
|
||||
actorPtr->objectType &= ~AF_BOXIFY;
|
||||
|
||||
|
@ -2380,7 +2380,7 @@ void deleteObject(int objIdx)
|
|||
|
||||
if(actorIdx != -1)
|
||||
{
|
||||
actorPtr = &objectTable[actorIdx];
|
||||
actorPtr = &ListObjets[actorIdx];
|
||||
|
||||
actorPtr->room = -1;
|
||||
actorPtr->stage = -1;
|
||||
|
@ -2471,16 +2471,16 @@ void drawZv(tObject* actorPtr)
|
|||
{
|
||||
ZVStruct localZv;
|
||||
|
||||
if( actorPtr->room != objectTable[currentCameraTargetActor].room )
|
||||
if( actorPtr->room != ListObjets[currentCameraTargetActor].room )
|
||||
{
|
||||
if (objectTable[currentCameraTargetActor].room == -1) {
|
||||
if (ListObjets[currentCameraTargetActor].room == -1) {
|
||||
return;
|
||||
}
|
||||
getZvRelativePosition(&localZv, actorPtr->room, objectTable[currentCameraTargetActor].room);
|
||||
AdjustZV(&localZv, actorPtr->room, ListObjets[currentCameraTargetActor].room);
|
||||
}
|
||||
else
|
||||
{
|
||||
copyZv(&actorPtr->zv,&localZv);
|
||||
CopyZV(&actorPtr->zv,&localZv);
|
||||
}
|
||||
|
||||
drawZv(localZv);
|
||||
|
@ -2644,7 +2644,7 @@ void drawRoomZv(ZVStruct* zoneData, int color, int transparency)
|
|||
cameraZv.ZVZ1 += translateZ;
|
||||
cameraZv.ZVZ2 += translateZ;
|
||||
|
||||
if(checkZvCollision(&cameraZv,zoneData))
|
||||
if(CubeIntersect(&cameraZv,zoneData))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -2665,7 +2665,7 @@ void drawRoomZvLine(ZVStruct* zoneData, int color)
|
|||
cameraZv.ZVZ1 += translateZ;
|
||||
cameraZv.ZVZ2 += translateZ;
|
||||
|
||||
if(checkZvCollision(&cameraZv,zoneData))
|
||||
if(CubeIntersect(&cameraZv,zoneData))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -2728,7 +2728,7 @@ void drawZone(char* zoneData,int color)
|
|||
tempZv.ZVZ1 = READ_LE_S16(zoneData+0x08);
|
||||
tempZv.ZVZ2 = READ_LE_S16(zoneData+0x0A);
|
||||
|
||||
if(checkZvCollision(&cameraZv,&tempZv))
|
||||
if(CubeIntersect(&cameraZv,&tempZv))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -2768,7 +2768,7 @@ void drawSceZone(int roomNumber)
|
|||
memcpy(&dataLocal,&roomDataTable[roomNumber].sceZoneTable[i].zv,sizeof(ZVStruct));
|
||||
if(roomNumber!=currentRoom)
|
||||
{
|
||||
getZvRelativePosition(&dataLocal,roomNumber,currentRoom);
|
||||
AdjustZV(&dataLocal,roomNumber,currentRoom);
|
||||
}
|
||||
|
||||
// if(roomDataTable[roomNumber].sceZoneTable[i].parameter == 4)
|
||||
|
@ -2788,11 +2788,11 @@ void drawHardCol(int roomNumber)
|
|||
/*if(roomDataTable[roomNumber].hardColTable[i].type != 9)
|
||||
continue;*/
|
||||
|
||||
copyZv(&roomDataTable[roomNumber].hardColTable[i].zv,&dataLocal);
|
||||
CopyZV(&roomDataTable[roomNumber].hardColTable[i].zv,&dataLocal);
|
||||
|
||||
if(roomNumber!=currentRoom)
|
||||
{
|
||||
getZvRelativePosition(&dataLocal,roomNumber,currentRoom);
|
||||
AdjustZV(&dataLocal,roomNumber,currentRoom);
|
||||
}
|
||||
|
||||
switch(roomDataTable[roomNumber].hardColTable[i].type)
|
||||
|
@ -3032,7 +3032,7 @@ void AllRedraw(int flagFlip)
|
|||
osystem_CopyBlockPhys((unsigned char*)logicalScreen, 0, 0, 320, 200);
|
||||
}
|
||||
else {
|
||||
tObject* actorPtr = &objectTable[currentDrawActor];
|
||||
tObject* actorPtr = &ListObjets[currentDrawActor];
|
||||
|
||||
// this is commented out to draw actors backed into the background
|
||||
//if(actorPtr->_flags & (AF_ANIMATED + AF_DRAWABLE + AF_SPECIAL))
|
||||
|
@ -3188,13 +3188,13 @@ void walkStep(int angle1, int angle2, int angle3)
|
|||
|
||||
void addActorToBgInscrust(int actorIdx)
|
||||
{
|
||||
objectTable[actorIdx].objectType |= AF_BOXIFY + AF_DRAWABLE;
|
||||
objectTable[actorIdx].objectType &= ~AF_ANIMATED;
|
||||
ListObjets[actorIdx].objectType |= AF_BOXIFY + AF_DRAWABLE;
|
||||
ListObjets[actorIdx].objectType &= ~AF_ANIMATED;
|
||||
|
||||
//FlagRefreshAux2 = 1;
|
||||
}
|
||||
|
||||
int checkZvCollision(ZVStruct* zvPtr1,ZVStruct* zvPtr2)
|
||||
int CubeIntersect(ZVStruct* zvPtr1,ZVStruct* zvPtr2)
|
||||
{
|
||||
if(zvPtr1->ZVX1 >= zvPtr2->ZVX2)
|
||||
return 0;
|
||||
|
@ -3217,7 +3217,7 @@ int checkZvCollision(ZVStruct* zvPtr1,ZVStruct* zvPtr2)
|
|||
return 1;
|
||||
}
|
||||
|
||||
void getZvRelativePosition(ZVStruct* zvPtr, int startRoom, int destRoom)
|
||||
void AdjustZV(ZVStruct* zvPtr, int startRoom, int destRoom)
|
||||
{
|
||||
unsigned int Xdif = 10*(roomDataTable[destRoom].worldX - roomDataTable[startRoom].worldX);
|
||||
unsigned int Ydif = 10*(roomDataTable[destRoom].worldY - roomDataTable[startRoom].worldY);
|
||||
|
@ -3231,11 +3231,11 @@ void getZvRelativePosition(ZVStruct* zvPtr, int startRoom, int destRoom)
|
|||
zvPtr->ZVZ2 += Zdif;
|
||||
}
|
||||
|
||||
int checkObjectCollisions(int actorIdx, ZVStruct* zvPtr)
|
||||
int CheckObjectCol(int actorIdx, ZVStruct* zvPtr)
|
||||
{
|
||||
int currentCollisionSlot = 0;
|
||||
tObject* currentActor = objectTable.data();
|
||||
int actorRoom = objectTable[actorIdx].room;
|
||||
|
||||
int actorRoom = ListObjets[actorIdx].room;
|
||||
|
||||
for(int i=0;i<3;i++)
|
||||
{
|
||||
|
@ -3244,39 +3244,42 @@ int checkObjectCollisions(int actorIdx, ZVStruct* zvPtr)
|
|||
|
||||
for(int i=0;i<NUM_MAX_OBJECT;i++)
|
||||
{
|
||||
if(currentActor->indexInWorld != -1 && i!=actorIdx)
|
||||
{
|
||||
tObject* currentActor = &ListObjets.at(i);
|
||||
|
||||
if (currentActor->indexInWorld == -1)
|
||||
continue;
|
||||
if (i == actorIdx)
|
||||
continue;
|
||||
|
||||
ZVStruct* currentActorZv = ¤tActor->zv;
|
||||
|
||||
if(currentActor->room != actorRoom)
|
||||
if (currentActor->room != actorRoom)
|
||||
{
|
||||
ZVStruct localZv;
|
||||
|
||||
copyZv(zvPtr,&localZv);
|
||||
CopyZV(zvPtr, &localZv);
|
||||
|
||||
getZvRelativePosition(&localZv,actorRoom,currentActor->room);
|
||||
AdjustZV(&localZv, actorRoom, currentActor->room);
|
||||
|
||||
if(checkZvCollision(&localZv,currentActorZv))
|
||||
if (CubeIntersect(&localZv, currentActorZv))
|
||||
{
|
||||
currentProcessedActorPtr->COL[currentCollisionSlot++] = i;
|
||||
|
||||
if(currentCollisionSlot == 3)
|
||||
if (currentCollisionSlot == 3)
|
||||
return(3);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(checkZvCollision(zvPtr,currentActorZv))
|
||||
if (CubeIntersect(zvPtr, currentActorZv))
|
||||
{
|
||||
currentProcessedActorPtr->COL[currentCollisionSlot++] = i;
|
||||
|
||||
if(currentCollisionSlot == 3)
|
||||
if (currentCollisionSlot == 3)
|
||||
return(3);
|
||||
}
|
||||
}
|
||||
}
|
||||
currentActor++;
|
||||
}
|
||||
|
||||
return(currentCollisionSlot);
|
||||
}
|
||||
|
@ -3319,7 +3322,7 @@ void take(int objIdx)
|
|||
objPtr->stage = -1;
|
||||
}
|
||||
|
||||
void hardColSuB1Sub1(int flag)
|
||||
void Glisser(int flag)
|
||||
{
|
||||
switch(flag)
|
||||
{
|
||||
|
@ -3342,48 +3345,54 @@ void hardColSuB1Sub1(int flag)
|
|||
}
|
||||
}
|
||||
|
||||
void handleCollision(ZVStruct* startZv, ZVStruct* zvPtr2, ZVStruct* zvPtr3)
|
||||
void GereCollision(ZVStruct* oldZv, ZVStruct* animatedZv, ZVStruct* fixZv)
|
||||
{
|
||||
s32 flag = 0;
|
||||
s32 var_8;
|
||||
s32 oldpos = 0;
|
||||
s32 oldtype;
|
||||
s32 halfX;
|
||||
s32 halfZ;
|
||||
s32 var_A;
|
||||
s32 var_6;
|
||||
s32 pos;
|
||||
s32 type;
|
||||
|
||||
if(startZv->ZVX2 > zvPtr3->ZVX1)
|
||||
if(oldZv->ZVX2 > fixZv->ZVX1)
|
||||
{
|
||||
if(zvPtr3->ZVX2 <= startZv->ZVX1)
|
||||
if(fixZv->ZVX2 <= oldZv->ZVX1)
|
||||
{
|
||||
flag = 8;
|
||||
oldpos = 8; // right
|
||||
}
|
||||
else {
|
||||
oldpos = 0; // center
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
flag = 4;
|
||||
oldpos = 4; // left
|
||||
}
|
||||
|
||||
if(startZv->ZVZ2 > zvPtr3->ZVZ1)
|
||||
if(oldZv->ZVZ2 > fixZv->ZVZ1)
|
||||
{
|
||||
if(startZv->ZVZ1 >= zvPtr3->ZVZ2)
|
||||
if(oldZv->ZVZ1 >= fixZv->ZVZ2)
|
||||
{
|
||||
flag |= 2;
|
||||
oldpos |= 2;
|
||||
}
|
||||
else {
|
||||
oldpos |= 0; // center
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
flag |= 1;
|
||||
oldpos |= 1;
|
||||
}
|
||||
|
||||
if( flag == 5 || flag == 9 || flag == 6 || flag == 10 )
|
||||
if( (oldpos == 5) || (oldpos == 9) || (oldpos == 6) || (oldpos == 10) )
|
||||
{
|
||||
var_8 = 2;
|
||||
oldtype = 2; // corner
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!flag)
|
||||
if(oldpos == 0)
|
||||
{
|
||||
var_8 = 0;
|
||||
oldtype = 0;
|
||||
|
||||
hardColStepZ = 0;
|
||||
hardColStepX = 0;
|
||||
|
@ -3392,79 +3401,78 @@ void handleCollision(ZVStruct* startZv, ZVStruct* zvPtr2, ZVStruct* zvPtr3)
|
|||
}
|
||||
else
|
||||
{
|
||||
var_8 = 1;
|
||||
oldtype = 1; // corner
|
||||
}
|
||||
}
|
||||
|
||||
halfX = (zvPtr2->ZVX1 + zvPtr2->ZVX2) / 2;
|
||||
halfZ = (zvPtr2->ZVZ1 + zvPtr2->ZVZ2) / 2;
|
||||
halfX = (animatedZv->ZVX1 + animatedZv->ZVX2) / 2;
|
||||
halfZ = (animatedZv->ZVZ1 + animatedZv->ZVZ2) / 2;
|
||||
|
||||
if(zvPtr3->ZVX1 > halfX)
|
||||
if(fixZv->ZVX1 > halfX)
|
||||
{
|
||||
var_A = 4;
|
||||
pos = 4; // left
|
||||
}
|
||||
else
|
||||
{
|
||||
if(zvPtr3->ZVX2 < halfX)
|
||||
if(fixZv->ZVX2 < halfX)
|
||||
{
|
||||
var_A = 0;
|
||||
pos = 0; // center
|
||||
}
|
||||
else
|
||||
{
|
||||
var_A = 8;
|
||||
pos = 8; // right
|
||||
}
|
||||
}
|
||||
|
||||
if(zvPtr3->ZVZ1 > halfZ)
|
||||
if(fixZv->ZVZ1 > halfZ)
|
||||
{
|
||||
var_A |= 1;
|
||||
pos |= 1; // up
|
||||
}
|
||||
else
|
||||
{
|
||||
if(zvPtr3->ZVZ2 < halfZ)
|
||||
if(fixZv->ZVZ2 < halfZ)
|
||||
{
|
||||
var_A |= 0; // once again, not that much usefull
|
||||
pos |= 0; // center
|
||||
}
|
||||
else
|
||||
{
|
||||
var_A |= 2;
|
||||
pos |= 2; // bellow
|
||||
}
|
||||
}
|
||||
|
||||
if( var_A == 5 || var_A == 9 || var_A == 6 || var_A == 10 )
|
||||
if( (pos == 5) || (pos == 9) || (pos == 6) || (pos == 10) )
|
||||
{
|
||||
var_6 = 2;
|
||||
type = 2; // corner
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!var_A)
|
||||
if(pos == 0)
|
||||
{
|
||||
var_6 = 0;
|
||||
type = 0; // center
|
||||
}
|
||||
else
|
||||
{
|
||||
var_6 = 1;
|
||||
type = 1; // border
|
||||
}
|
||||
}
|
||||
|
||||
if(var_8 == 1)
|
||||
if(oldtype == 1) // border
|
||||
{
|
||||
hardColSuB1Sub1(flag);
|
||||
return;
|
||||
Glisser(oldpos);
|
||||
}
|
||||
|
||||
if(var_6 == 1 && (var_A & flag))
|
||||
else
|
||||
{
|
||||
hardColSuB1Sub1(var_A);
|
||||
return;
|
||||
if ((type == 1) && (pos & oldpos))
|
||||
{
|
||||
Glisser(pos);
|
||||
}
|
||||
|
||||
if(var_A == flag || flag == 15)
|
||||
else {
|
||||
if ((pos == oldpos) || (pos+oldpos == 15))
|
||||
{
|
||||
int Xmod = abs(zvPtr2->ZVX1 - startZv->ZVX1); // recheck
|
||||
int Zmod = abs(zvPtr2->ZVZ1 - startZv->ZVZ1);
|
||||
int Xmod = abs(animatedZv->ZVX1 - oldZv->ZVX1); // recheck
|
||||
int Zmod = abs(animatedZv->ZVZ1 - oldZv->ZVZ1);
|
||||
|
||||
if(Xmod > Zmod)
|
||||
if (Xmod > Zmod)
|
||||
{
|
||||
hardColStepZ = 0;
|
||||
}
|
||||
|
@ -3475,14 +3483,16 @@ void handleCollision(ZVStruct* startZv, ZVStruct* zvPtr2, ZVStruct* zvPtr3)
|
|||
}
|
||||
else
|
||||
{
|
||||
if(!var_6 || (var_6 == 1 && !(var_A & flag)))
|
||||
if ((type == 0) || ((type == 1) && ((pos & oldpos) == 0)))
|
||||
{
|
||||
hardColStepZ = 0;
|
||||
hardColStepX = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
hardColSuB1Sub1(flag&var_A);
|
||||
Glisser(oldpos & pos);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3605,7 +3615,7 @@ int findBestCamera(void)
|
|||
int foundAngle = 32000;
|
||||
int foundCamera = -1;
|
||||
|
||||
tObject* actorPtr = &objectTable[currentCameraTargetActor];
|
||||
tObject* actorPtr = &ListObjets[currentCameraTargetActor];
|
||||
|
||||
int x1 = actorPtr->zv.ZVX1/10;
|
||||
int x2 = actorPtr->zv.ZVX2/10;
|
||||
|
@ -3658,7 +3668,7 @@ void GereSwitchCamera(void)
|
|||
int zvz1;
|
||||
int zvz2;
|
||||
|
||||
actorPtr = &objectTable[currentCameraTargetActor];
|
||||
actorPtr = &ListObjets[currentCameraTargetActor];
|
||||
|
||||
zvx1 = actorPtr->zv.ZVX1/10;
|
||||
zvx2 = actorPtr->zv.ZVX2/10;
|
||||
|
@ -3890,9 +3900,9 @@ int checkLineProjectionWithActors( int actorIdx, int X, int Y, int Z, int beta,
|
|||
}
|
||||
else
|
||||
{
|
||||
for(int i=0;i<objectTable.size();i++)
|
||||
for(int i=0;i<ListObjets.size();i++)
|
||||
{
|
||||
tObject* currentActorPtr = &objectTable[i];
|
||||
tObject* currentActorPtr = &ListObjets[i];
|
||||
if(currentActorPtr->indexInWorld != -1 && i != actorIdx && !(currentActorPtr->objectType & AF_SPECIAL))
|
||||
{
|
||||
ZVStruct* zvPtr = ¤tActorPtr->zv;
|
||||
|
@ -3901,10 +3911,10 @@ int checkLineProjectionWithActors( int actorIdx, int X, int Y, int Z, int beta,
|
|||
{
|
||||
ZVStruct localZv2;
|
||||
|
||||
copyZv(&localZv, &localZv2);
|
||||
getZvRelativePosition(&localZv2, room, currentActorPtr->room);
|
||||
CopyZV(&localZv, &localZv2);
|
||||
AdjustZV(&localZv2, room, currentActorPtr->room);
|
||||
|
||||
if(!checkZvCollision(&localZv2,zvPtr))
|
||||
if(!CubeIntersect(&localZv2,zvPtr))
|
||||
{
|
||||
currentActorPtr++;
|
||||
continue;
|
||||
|
@ -3912,7 +3922,7 @@ int checkLineProjectionWithActors( int actorIdx, int X, int Y, int Z, int beta,
|
|||
}
|
||||
else
|
||||
{
|
||||
if(!checkZvCollision(&localZv,zvPtr))
|
||||
if(!CubeIntersect(&localZv,zvPtr))
|
||||
{
|
||||
currentActorPtr++;
|
||||
continue;
|
||||
|
@ -3940,7 +3950,7 @@ void PutAtObjet(int objIdx, int objIdxToPutAt)
|
|||
|
||||
if(objPtrToPutAt->objIndex != -1)
|
||||
{
|
||||
tObject* actorToPutAtPtr = &objectTable[objPtrToPutAt->objIndex];
|
||||
tObject* actorToPutAtPtr = &ListObjets[objPtrToPutAt->objIndex];
|
||||
|
||||
DeleteInventoryObjet(objIdx);
|
||||
|
||||
|
@ -4046,7 +4056,7 @@ void throwStoppedAt(int x, int z)
|
|||
while(!foundPosition)
|
||||
{
|
||||
walkStep(0,-step,currentProcessedActorPtr->beta+0x200);
|
||||
copyZv(&zvLocal,&zvCopy);
|
||||
CopyZV(&zvLocal,&zvCopy);
|
||||
|
||||
x2 = x + animMoveX;
|
||||
z2 = z + animMoveZ;
|
||||
|
|
|
@ -14,7 +14,7 @@ void GereSwitchCamera(void);
|
|||
void GenereActiveList();
|
||||
void GenereAffList();
|
||||
void AllRedraw(int mode);
|
||||
int checkObjectCollisions(int actorIdx, ZVStruct* zvPtr);
|
||||
int CheckObjectCol(int actorIdx, ZVStruct* zvPtr);
|
||||
int checkLineProjectionWithActors( int actorIdx, int X, int Y, int Z, int beta, int room, int param );
|
||||
int AsmCheckListCol(ZVStruct* zvPtr, roomDataStruct* pRoomData);
|
||||
void DeleteInventoryObjet(int objIdx);
|
||||
|
@ -38,12 +38,12 @@ void OpenProgram(void);
|
|||
void freeAll(void);
|
||||
void startGame(int startupEtage, int startupRoom, int allowSystemMenu);
|
||||
void AffRect(int x1, int y1, int x2, int y2, char color); // fast recode. No RE
|
||||
void copyZv(ZVStruct* source, ZVStruct* dest);
|
||||
void getZvRelativePosition(ZVStruct* zvPtr, int startRoom, int destRoom);
|
||||
void CopyZV(ZVStruct* source, ZVStruct* dest);
|
||||
void AdjustZV(ZVStruct* zvPtr, int startRoom, int destRoom);
|
||||
void take(int objIdx);
|
||||
void foundObject(int objIdx, int param);
|
||||
void FoundObjet(int objIdx, int param);
|
||||
void hit(int animNumber,int arg_2,int arg_4,int arg_6,int hitForce,int arg_A);
|
||||
int checkZvCollision(ZVStruct* zvPtr1,ZVStruct* zvPtr2);
|
||||
int CubeIntersect(ZVStruct* zvPtr1,ZVStruct* zvPtr2);
|
||||
void PutAtObjet(int objIdx, int objIdxToPutAt);
|
||||
void SetClip(int left, int top, int right, int bottom);
|
||||
|
||||
|
@ -64,7 +64,7 @@ void deleteObject(int objIdx);
|
|||
void removeFromBGIncrust(int actorIdx);
|
||||
void makeMessage(int messageIdx);
|
||||
int drawTextOverlay(void);
|
||||
void handleCollision(ZVStruct* startZv, ZVStruct* zvPtr2, ZVStruct* zvPtr3);
|
||||
void GereCollision(ZVStruct* startZv, ZVStruct* zvPtr2, ZVStruct* zvPtr3);
|
||||
|
||||
void addActorToBgInscrust(int actorIdx);
|
||||
|
||||
|
|
|
@ -113,7 +113,7 @@ void PlayWorld(int allowSystemMenu, int deltaTime)
|
|||
|
||||
for(currentProcessedActorIdx = 0; currentProcessedActorIdx < NUM_MAX_OBJECT; currentProcessedActorIdx++)
|
||||
{
|
||||
currentProcessedActorPtr = &objectTable[currentProcessedActorIdx];
|
||||
currentProcessedActorPtr = &ListObjets[currentProcessedActorIdx];
|
||||
if(currentProcessedActorPtr->indexInWorld >= 0)
|
||||
{
|
||||
currentProcessedActorPtr->COL_BY = -1;
|
||||
|
@ -126,7 +126,7 @@ void PlayWorld(int allowSystemMenu, int deltaTime)
|
|||
|
||||
for(currentProcessedActorIdx = 0; currentProcessedActorIdx < NUM_MAX_OBJECT; currentProcessedActorIdx++)
|
||||
{
|
||||
currentProcessedActorPtr = &objectTable[currentProcessedActorIdx];
|
||||
currentProcessedActorPtr = &ListObjets[currentProcessedActorIdx];
|
||||
if(currentProcessedActorPtr->indexInWorld >= 0)
|
||||
{
|
||||
int flag = currentProcessedActorPtr->objectType;
|
||||
|
@ -150,7 +150,7 @@ void PlayWorld(int allowSystemMenu, int deltaTime)
|
|||
|
||||
for(currentProcessedActorIdx = 0; currentProcessedActorIdx < NUM_MAX_OBJECT; currentProcessedActorIdx++)
|
||||
{
|
||||
currentProcessedActorPtr = &objectTable[currentProcessedActorIdx];
|
||||
currentProcessedActorPtr = &ListObjets[currentProcessedActorIdx];
|
||||
if(currentProcessedActorPtr->indexInWorld >= 0)
|
||||
{
|
||||
if(currentProcessedActorPtr->life != -1)
|
||||
|
@ -209,7 +209,7 @@ void PlayWorld(int allowSystemMenu, int deltaTime)
|
|||
|
||||
for (currentProcessedActorIdx = 0; currentProcessedActorIdx < NUM_MAX_OBJECT; currentProcessedActorIdx++)
|
||||
{
|
||||
currentProcessedActorPtr = &objectTable[currentProcessedActorIdx];
|
||||
currentProcessedActorPtr = &ListObjets[currentProcessedActorIdx];
|
||||
if (currentProcessedActorPtr->indexInWorld >= 0)
|
||||
{
|
||||
if (currentProcessedActorPtr->life != -1)
|
||||
|
|
|
@ -4,7 +4,7 @@ int InitObjet(int body, int typeZv, int hardZvIdx, s16 objectType, int x, int y,
|
|||
{
|
||||
int i;
|
||||
int j;
|
||||
tObject* actorPtr = objectTable.data();
|
||||
tObject* actorPtr = ListObjets.data();
|
||||
ZVStruct* zvPtr;
|
||||
|
||||
for(i=0;i<NUM_MAX_OBJECT;i++)
|
||||
|
@ -200,7 +200,7 @@ int InitObjet(int body, int typeZv, int hardZvIdx, s16 objectType, int x, int y,
|
|||
{
|
||||
if((roomDataTable[room].hardColTable[hardColIdx].type == 9) && (roomDataTable[room].hardColTable[hardColIdx].parameter == hardZvIdx))
|
||||
{
|
||||
copyZv(&roomDataTable[room].hardColTable[hardColIdx].zv, zvPtr);
|
||||
CopyZV(&roomDataTable[room].hardColTable[hardColIdx].zv, zvPtr);
|
||||
|
||||
x = 0;
|
||||
y = 0;
|
||||
|
|
|
@ -105,7 +105,7 @@ int FitdInit(int argc, char* argv[])
|
|||
// Game is running in dos resolution 13h, ie 320x200x256, but is displayed in 4:3, so pixel are not square (1.6:1)
|
||||
// We still need to create a 4:3 window for the actual display on screen.
|
||||
int scale = 4;
|
||||
int resolution[2] = { 320 * scale, 240 * scale };
|
||||
int resolution[2] = { 80 * 4 * scale, 80 * 3 * scale };
|
||||
|
||||
gWindowBGFX = SDL_CreateWindow("FITD", resolution[0], resolution[1], flags);
|
||||
|
||||
|
|
|
@ -162,7 +162,7 @@ void ChangeSalle(int roomNumber)
|
|||
|
||||
for(i=0;i<NUM_MAX_OBJECT;i++)
|
||||
{
|
||||
if(objectTable[i].indexInWorld != -1)
|
||||
if(ListObjets[i].indexInWorld != -1)
|
||||
{
|
||||
/* if(gameId == AITD1) // special case. In AITD1, the load room function was always triggered just after the actor was moved in the new room.
|
||||
// it is not always the case in later games. Maybe we could generalize the AITD2 way...
|
||||
|
@ -175,15 +175,15 @@ void ChangeSalle(int roomNumber)
|
|||
{
|
||||
if(i!=currentCameraTargetActor)
|
||||
{
|
||||
objectTable[i].worldX -= var_E;
|
||||
objectTable[i].worldY += var_C;
|
||||
objectTable[i].worldZ += var_A;
|
||||
ListObjets[i].worldX -= var_E;
|
||||
ListObjets[i].worldY += var_C;
|
||||
ListObjets[i].worldZ += var_A;
|
||||
}
|
||||
else
|
||||
{
|
||||
objectTable[i].worldX = objectTable[i].roomX;
|
||||
objectTable[i].worldY = objectTable[i].roomY;
|
||||
objectTable[i].worldZ = objectTable[i].roomZ;
|
||||
ListObjets[i].worldX = ListObjets[i].roomX;
|
||||
ListObjets[i].worldY = ListObjets[i].roomY;
|
||||
ListObjets[i].worldZ = ListObjets[i].roomZ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
550
FitdLib/save.cpp
550
FitdLib/save.cpp
|
@ -278,228 +278,228 @@ int loadSave(int saveNumber)
|
|||
|
||||
for(i=0;i<NUM_MAX_OBJECT;i++)
|
||||
{
|
||||
ASSERT(sizeof(objectTable[i].indexInWorld) == 2);
|
||||
fread(&objectTable[i].indexInWorld,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].indexInWorld) == 2);
|
||||
fread(&ListObjets[i].indexInWorld,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].bodyNum) == 2);
|
||||
fread(&objectTable[i].bodyNum,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].bodyNum) == 2);
|
||||
fread(&ListObjets[i].bodyNum,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].objectType) == 2);
|
||||
fread(&objectTable[i].objectType,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].objectType) == 2);
|
||||
fread(&ListObjets[i].objectType,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].dynFlags) == 2);
|
||||
fread(&objectTable[i].dynFlags,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].dynFlags) == 2);
|
||||
fread(&ListObjets[i].dynFlags,2,1,fHandle);
|
||||
|
||||
// ASSERT(sizeof(actorTable[i].zv.ZVX1) == 2);
|
||||
fread(&objectTable[i].zv.ZVX1,2,1,fHandle);
|
||||
objectTable[i].zv.ZVX1 = (s16)objectTable[i].zv.ZVX1;
|
||||
fread(&ListObjets[i].zv.ZVX1,2,1,fHandle);
|
||||
ListObjets[i].zv.ZVX1 = (s16)ListObjets[i].zv.ZVX1;
|
||||
|
||||
// ASSERT(sizeof(actorTable[i].zv.ZVX2) == 2);
|
||||
fread(&objectTable[i].zv.ZVX2,2,1,fHandle);
|
||||
objectTable[i].zv.ZVX2 = (s16)objectTable[i].zv.ZVX2;
|
||||
fread(&ListObjets[i].zv.ZVX2,2,1,fHandle);
|
||||
ListObjets[i].zv.ZVX2 = (s16)ListObjets[i].zv.ZVX2;
|
||||
|
||||
// ASSERT(sizeof(actorTable[i].zv.ZVY1) == 2);
|
||||
fread(&objectTable[i].zv.ZVY1,2,1,fHandle);
|
||||
objectTable[i].zv.ZVY1 = (s16)objectTable[i].zv.ZVY1;
|
||||
fread(&ListObjets[i].zv.ZVY1,2,1,fHandle);
|
||||
ListObjets[i].zv.ZVY1 = (s16)ListObjets[i].zv.ZVY1;
|
||||
|
||||
// ASSERT(sizeof(actorTable[i].zv.ZVY2) == 2);
|
||||
fread(&objectTable[i].zv.ZVY2,2,1,fHandle);
|
||||
objectTable[i].zv.ZVY2 = (s16)objectTable[i].zv.ZVY2;
|
||||
fread(&ListObjets[i].zv.ZVY2,2,1,fHandle);
|
||||
ListObjets[i].zv.ZVY2 = (s16)ListObjets[i].zv.ZVY2;
|
||||
|
||||
// ASSERT(sizeof(actorTable[i].zv.ZVZ1) == 2);
|
||||
fread(&objectTable[i].zv.ZVZ1,2,1,fHandle);
|
||||
objectTable[i].zv.ZVZ1 = (s16)objectTable[i].zv.ZVZ1;
|
||||
fread(&ListObjets[i].zv.ZVZ1,2,1,fHandle);
|
||||
ListObjets[i].zv.ZVZ1 = (s16)ListObjets[i].zv.ZVZ1;
|
||||
|
||||
// ASSERT(sizeof(actorTable[i].zv.ZVZ2) == 2);
|
||||
fread(&objectTable[i].zv.ZVZ2,2,1,fHandle);
|
||||
objectTable[i].zv.ZVZ2 = (s16)objectTable[i].zv.ZVZ2;
|
||||
fread(&ListObjets[i].zv.ZVZ2,2,1,fHandle);
|
||||
ListObjets[i].zv.ZVZ2 = (s16)ListObjets[i].zv.ZVZ2;
|
||||
|
||||
ASSERT(sizeof(objectTable[i].screenXMin) == 2);
|
||||
fread(&objectTable[i].screenXMin,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].screenXMin) == 2);
|
||||
fread(&ListObjets[i].screenXMin,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].screenYMin) == 2);
|
||||
fread(&objectTable[i].screenYMin,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].screenYMin) == 2);
|
||||
fread(&ListObjets[i].screenYMin,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].screenXMax) == 2);
|
||||
fread(&objectTable[i].screenXMax,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].screenXMax) == 2);
|
||||
fread(&ListObjets[i].screenXMax,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].screenYMax) == 2);
|
||||
fread(&objectTable[i].screenYMax,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].screenYMax) == 2);
|
||||
fread(&ListObjets[i].screenYMax,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].roomX) == 2);
|
||||
fread(&objectTable[i].roomX,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].roomX) == 2);
|
||||
fread(&ListObjets[i].roomX,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].roomY) == 2);
|
||||
fread(&objectTable[i].roomY,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].roomY) == 2);
|
||||
fread(&ListObjets[i].roomY,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].roomZ) == 2);
|
||||
fread(&objectTable[i].roomZ,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].roomZ) == 2);
|
||||
fread(&ListObjets[i].roomZ,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].worldX) == 2);
|
||||
fread(&objectTable[i].worldX,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].worldX) == 2);
|
||||
fread(&ListObjets[i].worldX,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].worldY) == 2);
|
||||
fread(&objectTable[i].worldY,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].worldY) == 2);
|
||||
fread(&ListObjets[i].worldY,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].worldZ) == 2);
|
||||
fread(&objectTable[i].worldZ,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].worldZ) == 2);
|
||||
fread(&ListObjets[i].worldZ,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].alpha) == 2);
|
||||
fread(&objectTable[i].alpha,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].alpha) == 2);
|
||||
fread(&ListObjets[i].alpha,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].beta) == 2);
|
||||
fread(&objectTable[i].beta,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].beta) == 2);
|
||||
fread(&ListObjets[i].beta,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].gamma) == 2);
|
||||
fread(&objectTable[i].gamma,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].gamma) == 2);
|
||||
fread(&ListObjets[i].gamma,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].room) == 2);
|
||||
fread(&objectTable[i].room,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].room) == 2);
|
||||
fread(&ListObjets[i].room,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].stage) == 2);
|
||||
fread(&objectTable[i].stage,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].stage) == 2);
|
||||
fread(&ListObjets[i].stage,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].lifeMode) == 2);
|
||||
fread(&objectTable[i].lifeMode,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].lifeMode) == 2);
|
||||
fread(&ListObjets[i].lifeMode,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].life) == 2);
|
||||
fread(&objectTable[i].life,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].life) == 2);
|
||||
fread(&ListObjets[i].life,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].CHRONO) == 4);
|
||||
fread(&objectTable[i].CHRONO,4,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].CHRONO) == 4);
|
||||
fread(&ListObjets[i].CHRONO,4,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].ROOM_CHRONO) == 4);
|
||||
fread(&objectTable[i].ROOM_CHRONO,4,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].ROOM_CHRONO) == 4);
|
||||
fread(&ListObjets[i].ROOM_CHRONO,4,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].ANIM) == 2);
|
||||
fread(&objectTable[i].ANIM,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].ANIM) == 2);
|
||||
fread(&ListObjets[i].ANIM,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].animType) == 2);
|
||||
fread(&objectTable[i].animType,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].animType) == 2);
|
||||
fread(&ListObjets[i].animType,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].animInfo) == 2);
|
||||
fread(&objectTable[i].animInfo,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].animInfo) == 2);
|
||||
fread(&ListObjets[i].animInfo,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].newAnim) == 2);
|
||||
fread(&objectTable[i].newAnim,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].newAnim) == 2);
|
||||
fread(&ListObjets[i].newAnim,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].newAnimType) == 2);
|
||||
fread(&objectTable[i].newAnimType,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].newAnimType) == 2);
|
||||
fread(&ListObjets[i].newAnimType,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].newAnimInfo) == 2);
|
||||
fread(&objectTable[i].newAnimInfo,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].newAnimInfo) == 2);
|
||||
fread(&ListObjets[i].newAnimInfo,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].frame) == 2);
|
||||
fread(&objectTable[i].frame,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].frame) == 2);
|
||||
fread(&ListObjets[i].frame,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].numOfFrames) == 2);
|
||||
fread(&objectTable[i].numOfFrames,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].numOfFrames) == 2);
|
||||
fread(&ListObjets[i].numOfFrames,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].END_FRAME) == 2);
|
||||
fread(&objectTable[i].END_FRAME,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].END_FRAME) == 2);
|
||||
fread(&ListObjets[i].END_FRAME,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].flagEndAnim) == 2);
|
||||
fread(&objectTable[i].flagEndAnim,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].flagEndAnim) == 2);
|
||||
fread(&ListObjets[i].flagEndAnim,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].trackMode) == 2);
|
||||
fread(&objectTable[i].trackMode,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].trackMode) == 2);
|
||||
fread(&ListObjets[i].trackMode,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].trackNumber) == 2);
|
||||
fread(&objectTable[i].trackNumber,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].trackNumber) == 2);
|
||||
fread(&ListObjets[i].trackNumber,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].MARK) == 2);
|
||||
fread(&objectTable[i].MARK,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].MARK) == 2);
|
||||
fread(&ListObjets[i].MARK,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].positionInTrack) == 2);
|
||||
fread(&objectTable[i].positionInTrack,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].positionInTrack) == 2);
|
||||
fread(&ListObjets[i].positionInTrack,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].stepX) == 2);
|
||||
fread(&objectTable[i].stepX,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].stepX) == 2);
|
||||
fread(&ListObjets[i].stepX,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].stepY) == 2);
|
||||
fread(&objectTable[i].stepY,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].stepY) == 2);
|
||||
fread(&ListObjets[i].stepY,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].stepZ) == 2); // 45
|
||||
fread(&objectTable[i].stepZ,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].stepZ) == 2); // 45
|
||||
fread(&ListObjets[i].stepZ,2,1,fHandle);
|
||||
|
||||
loadInterpolatedValue(&objectTable[i].YHandler,fHandle);
|
||||
loadInterpolatedValue(&ListObjets[i].YHandler,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].falling) == 2);
|
||||
fread(&objectTable[i].falling,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].falling) == 2);
|
||||
fread(&ListObjets[i].falling,2,1,fHandle);
|
||||
|
||||
loadInterpolatedValue(&objectTable[i].rotate,fHandle);
|
||||
loadInterpolatedValue(&ListObjets[i].rotate,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].direction) == 2);
|
||||
fread(&objectTable[i].direction,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].direction) == 2);
|
||||
fread(&ListObjets[i].direction,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].speed) == 2);
|
||||
fread(&objectTable[i].speed,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].speed) == 2);
|
||||
fread(&ListObjets[i].speed,2,1,fHandle);
|
||||
|
||||
loadInterpolatedValue(&objectTable[i].speedChange,fHandle);
|
||||
loadInterpolatedValue(&ListObjets[i].speedChange,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].COL[0]) == 2);
|
||||
fread(&objectTable[i].COL[0],2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].COL[0]) == 2);
|
||||
fread(&ListObjets[i].COL[0],2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].COL[1]) == 2);
|
||||
fread(&objectTable[i].COL[1],2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].COL[1]) == 2);
|
||||
fread(&ListObjets[i].COL[1],2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].COL[2]) == 2);
|
||||
fread(&objectTable[i].COL[2],2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].COL[2]) == 2);
|
||||
fread(&ListObjets[i].COL[2],2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].COL_BY) == 2);
|
||||
fread(&objectTable[i].COL_BY,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].COL_BY) == 2);
|
||||
fread(&ListObjets[i].COL_BY,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].HARD_DEC) == 2);
|
||||
fread(&objectTable[i].HARD_DEC,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].HARD_DEC) == 2);
|
||||
fread(&ListObjets[i].HARD_DEC,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].HARD_COL) == 2);
|
||||
fread(&objectTable[i].HARD_COL,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].HARD_COL) == 2);
|
||||
fread(&ListObjets[i].HARD_COL,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].HIT) == 2);
|
||||
fread(&objectTable[i].HIT,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].HIT) == 2);
|
||||
fread(&ListObjets[i].HIT,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].HIT_BY) == 2);
|
||||
fread(&objectTable[i].HIT_BY,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].HIT_BY) == 2);
|
||||
fread(&ListObjets[i].HIT_BY,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].animActionType) == 2);
|
||||
fread(&objectTable[i].animActionType,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].animActionType) == 2);
|
||||
fread(&ListObjets[i].animActionType,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].animActionANIM) == 2);
|
||||
fread(&objectTable[i].animActionANIM,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].animActionANIM) == 2);
|
||||
fread(&ListObjets[i].animActionANIM,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].animActionFRAME) == 2);
|
||||
fread(&objectTable[i].animActionFRAME,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].animActionFRAME) == 2);
|
||||
fread(&ListObjets[i].animActionFRAME,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].animActionParam) == 2);
|
||||
fread(&objectTable[i].animActionParam,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].animActionParam) == 2);
|
||||
fread(&ListObjets[i].animActionParam,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].hitForce) == 2);
|
||||
fread(&objectTable[i].hitForce,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].hitForce) == 2);
|
||||
fread(&ListObjets[i].hitForce,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].hotPointID) == 2);
|
||||
fread(&objectTable[i].hotPointID,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].hotPointID) == 2);
|
||||
fread(&ListObjets[i].hotPointID,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].hotPoint.x) == 2);
|
||||
fread(&objectTable[i].hotPoint.x,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].hotPoint.x) == 2);
|
||||
fread(&ListObjets[i].hotPoint.x,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].hotPoint.y) == 2);
|
||||
fread(&objectTable[i].hotPoint.x,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].hotPoint.y) == 2);
|
||||
fread(&ListObjets[i].hotPoint.x,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].hotPoint.z) == 2);
|
||||
fread(&objectTable[i].hotPoint.x,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].hotPoint.z) == 2);
|
||||
fread(&ListObjets[i].hotPoint.x,2,1,fHandle);
|
||||
}
|
||||
fclose(fHandle);
|
||||
|
||||
for(i=0;i<NUM_MAX_OBJECT;i++)
|
||||
{
|
||||
if(objectTable[i].indexInWorld != -1 && objectTable[i].bodyNum != -1)
|
||||
if(ListObjets[i].indexInWorld != -1 && ListObjets[i].bodyNum != -1)
|
||||
{
|
||||
sBody* bodyPtr = HQR_Get(HQ_Bodys,objectTable[i].bodyNum);
|
||||
sBody* bodyPtr = HQR_Get(HQ_Bodys,ListObjets[i].bodyNum);
|
||||
|
||||
if(objectTable[i].ANIM != -1)
|
||||
if(ListObjets[i].ANIM != -1)
|
||||
{
|
||||
sAnimation* animPtr = HQR_Get(HQ_Anims,objectTable[i].ANIM);
|
||||
SetAnimObjet(objectTable[i].frame,animPtr,bodyPtr);
|
||||
sAnimation* animPtr = HQR_Get(HQ_Anims,ListObjets[i].ANIM);
|
||||
SetAnimObjet(ListObjets[i].frame,animPtr,bodyPtr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -556,13 +556,13 @@ int makeSaveFile(int entry)
|
|||
// For safety, destroy special objects before mallocs
|
||||
for(i=0;i<NUM_MAX_OBJECT;i++)
|
||||
{
|
||||
if (objectTable[i].indexInWorld == -2) // Special objects
|
||||
if (ListObjets[i].indexInWorld == -2) // Special objects
|
||||
{
|
||||
objectTable[i].indexInWorld = -1;
|
||||
if (objectTable[i].ANIM == 4)
|
||||
ListObjets[i].indexInWorld = -1;
|
||||
if (ListObjets[i].ANIM == 4)
|
||||
{
|
||||
CVars[getCVarsIdx(FOG_FLAG)] = 0;
|
||||
HQ_Free_Malloc(HQ_Memory, objectTable[i].frame);
|
||||
HQ_Free_Malloc(HQ_Memory, ListObjets[i].frame);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -772,211 +772,211 @@ int makeSaveFile(int entry)
|
|||
|
||||
for(i=0;i<NUM_MAX_OBJECT;i++)
|
||||
{
|
||||
ASSERT(sizeof(objectTable[i].indexInWorld) == 2);
|
||||
fwrite(&objectTable[i].indexInWorld,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].indexInWorld) == 2);
|
||||
fwrite(&ListObjets[i].indexInWorld,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].bodyNum) == 2);
|
||||
fwrite(&objectTable[i].bodyNum,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].bodyNum) == 2);
|
||||
fwrite(&ListObjets[i].bodyNum,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].objectType) == 2);
|
||||
fwrite(&objectTable[i].objectType,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].objectType) == 2);
|
||||
fwrite(&ListObjets[i].objectType,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].dynFlags) == 2);
|
||||
fwrite(&objectTable[i].dynFlags,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].dynFlags) == 2);
|
||||
fwrite(&ListObjets[i].dynFlags,2,1,fHandle);
|
||||
|
||||
// ASSERT(sizeof(actorTable[i].zv.ZVX1) == 2);
|
||||
fwrite(&objectTable[i].zv.ZVX1,2,1,fHandle);
|
||||
objectTable[i].zv.ZVX1 = (s16)objectTable[i].zv.ZVX1;
|
||||
fwrite(&ListObjets[i].zv.ZVX1,2,1,fHandle);
|
||||
ListObjets[i].zv.ZVX1 = (s16)ListObjets[i].zv.ZVX1;
|
||||
|
||||
// ASSERT(sizeof(actorTable[i].zv.ZVX2) == 2);
|
||||
fwrite(&objectTable[i].zv.ZVX2,2,1,fHandle);
|
||||
objectTable[i].zv.ZVX2 = (s16)objectTable[i].zv.ZVX2;
|
||||
fwrite(&ListObjets[i].zv.ZVX2,2,1,fHandle);
|
||||
ListObjets[i].zv.ZVX2 = (s16)ListObjets[i].zv.ZVX2;
|
||||
|
||||
// ASSERT(sizeof(actorTable[i].zv.ZVY1) == 2);
|
||||
fwrite(&objectTable[i].zv.ZVY1,2,1,fHandle);
|
||||
fwrite(&ListObjets[i].zv.ZVY1,2,1,fHandle);
|
||||
|
||||
// ASSERT(sizeof(actorTable[i].zv.ZVY2) == 2);
|
||||
fwrite(&objectTable[i].zv.ZVY2,2,1,fHandle);
|
||||
fwrite(&ListObjets[i].zv.ZVY2,2,1,fHandle);
|
||||
|
||||
// ASSERT(sizeof(actorTable[i].zv.ZVZ1) == 2);
|
||||
fwrite(&objectTable[i].zv.ZVZ1,2,1,fHandle);
|
||||
fwrite(&ListObjets[i].zv.ZVZ1,2,1,fHandle);
|
||||
|
||||
// ASSERT(sizeof(actorTable[i].zv.ZVZ2) == 2);
|
||||
fwrite(&objectTable[i].zv.ZVZ2,2,1,fHandle);
|
||||
fwrite(&ListObjets[i].zv.ZVZ2,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].screenXMin) == 2);
|
||||
fwrite(&objectTable[i].screenXMin,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].screenXMin) == 2);
|
||||
fwrite(&ListObjets[i].screenXMin,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].screenYMin) == 2);
|
||||
fwrite(&objectTable[i].screenYMin,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].screenYMin) == 2);
|
||||
fwrite(&ListObjets[i].screenYMin,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].screenXMax) == 2);
|
||||
fwrite(&objectTable[i].screenXMax,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].screenXMax) == 2);
|
||||
fwrite(&ListObjets[i].screenXMax,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].screenYMax) == 2);
|
||||
fwrite(&objectTable[i].screenYMax,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].screenYMax) == 2);
|
||||
fwrite(&ListObjets[i].screenYMax,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].roomX) == 2);
|
||||
fwrite(&objectTable[i].roomX,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].roomX) == 2);
|
||||
fwrite(&ListObjets[i].roomX,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].roomY) == 2);
|
||||
fwrite(&objectTable[i].roomY,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].roomY) == 2);
|
||||
fwrite(&ListObjets[i].roomY,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].roomZ) == 2);
|
||||
fwrite(&objectTable[i].roomZ,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].roomZ) == 2);
|
||||
fwrite(&ListObjets[i].roomZ,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].worldX) == 2);
|
||||
fwrite(&objectTable[i].worldX,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].worldX) == 2);
|
||||
fwrite(&ListObjets[i].worldX,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].worldY) == 2);
|
||||
fwrite(&objectTable[i].worldY,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].worldY) == 2);
|
||||
fwrite(&ListObjets[i].worldY,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].worldZ) == 2);
|
||||
fwrite(&objectTable[i].worldZ,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].worldZ) == 2);
|
||||
fwrite(&ListObjets[i].worldZ,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].alpha) == 2);
|
||||
fwrite(&objectTable[i].alpha,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].alpha) == 2);
|
||||
fwrite(&ListObjets[i].alpha,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].beta) == 2);
|
||||
fwrite(&objectTable[i].beta,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].beta) == 2);
|
||||
fwrite(&ListObjets[i].beta,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].gamma) == 2);
|
||||
fwrite(&objectTable[i].gamma,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].gamma) == 2);
|
||||
fwrite(&ListObjets[i].gamma,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].room) == 2);
|
||||
fwrite(&objectTable[i].room,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].room) == 2);
|
||||
fwrite(&ListObjets[i].room,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].stage) == 2);
|
||||
fwrite(&objectTable[i].stage,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].stage) == 2);
|
||||
fwrite(&ListObjets[i].stage,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].lifeMode) == 2);
|
||||
fwrite(&objectTable[i].lifeMode,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].lifeMode) == 2);
|
||||
fwrite(&ListObjets[i].lifeMode,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].life) == 2);
|
||||
fwrite(&objectTable[i].life,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].life) == 2);
|
||||
fwrite(&ListObjets[i].life,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].CHRONO) == 4);
|
||||
fwrite(&objectTable[i].CHRONO,4,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].CHRONO) == 4);
|
||||
fwrite(&ListObjets[i].CHRONO,4,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].ROOM_CHRONO) == 4);
|
||||
fwrite(&objectTable[i].ROOM_CHRONO,4,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].ROOM_CHRONO) == 4);
|
||||
fwrite(&ListObjets[i].ROOM_CHRONO,4,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].ANIM) == 2);
|
||||
fwrite(&objectTable[i].ANIM,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].ANIM) == 2);
|
||||
fwrite(&ListObjets[i].ANIM,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].animType) == 2);
|
||||
fwrite(&objectTable[i].animType,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].animType) == 2);
|
||||
fwrite(&ListObjets[i].animType,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].animInfo) == 2);
|
||||
fwrite(&objectTable[i].animInfo,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].animInfo) == 2);
|
||||
fwrite(&ListObjets[i].animInfo,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].newAnim) == 2);
|
||||
fwrite(&objectTable[i].newAnim,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].newAnim) == 2);
|
||||
fwrite(&ListObjets[i].newAnim,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].newAnimType) == 2);
|
||||
fwrite(&objectTable[i].newAnimType,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].newAnimType) == 2);
|
||||
fwrite(&ListObjets[i].newAnimType,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].newAnimInfo) == 2);
|
||||
fwrite(&objectTable[i].newAnimInfo,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].newAnimInfo) == 2);
|
||||
fwrite(&ListObjets[i].newAnimInfo,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].frame) == 2);
|
||||
fwrite(&objectTable[i].frame,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].frame) == 2);
|
||||
fwrite(&ListObjets[i].frame,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].numOfFrames) == 2);
|
||||
fwrite(&objectTable[i].numOfFrames,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].numOfFrames) == 2);
|
||||
fwrite(&ListObjets[i].numOfFrames,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].END_FRAME) == 2);
|
||||
fwrite(&objectTable[i].END_FRAME,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].END_FRAME) == 2);
|
||||
fwrite(&ListObjets[i].END_FRAME,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].flagEndAnim) == 2);
|
||||
fwrite(&objectTable[i].flagEndAnim,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].flagEndAnim) == 2);
|
||||
fwrite(&ListObjets[i].flagEndAnim,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].trackMode) == 2);
|
||||
fwrite(&objectTable[i].trackMode,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].trackMode) == 2);
|
||||
fwrite(&ListObjets[i].trackMode,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].trackNumber) == 2);
|
||||
fwrite(&objectTable[i].trackNumber,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].trackNumber) == 2);
|
||||
fwrite(&ListObjets[i].trackNumber,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].MARK) == 2);
|
||||
fwrite(&objectTable[i].MARK,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].MARK) == 2);
|
||||
fwrite(&ListObjets[i].MARK,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].positionInTrack) == 2);
|
||||
fwrite(&objectTable[i].positionInTrack,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].positionInTrack) == 2);
|
||||
fwrite(&ListObjets[i].positionInTrack,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].stepX) == 2);
|
||||
fwrite(&objectTable[i].stepX,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].stepX) == 2);
|
||||
fwrite(&ListObjets[i].stepX,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].stepY) == 2);
|
||||
fwrite(&objectTable[i].stepY,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].stepY) == 2);
|
||||
fwrite(&ListObjets[i].stepY,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].stepZ) == 2); // 45
|
||||
fwrite(&objectTable[i].stepZ,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].stepZ) == 2); // 45
|
||||
fwrite(&ListObjets[i].stepZ,2,1,fHandle);
|
||||
|
||||
saveInterpolatedValue(&objectTable[i].YHandler,fHandle);
|
||||
saveInterpolatedValue(&ListObjets[i].YHandler,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].falling) == 2);
|
||||
fwrite(&objectTable[i].falling,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].falling) == 2);
|
||||
fwrite(&ListObjets[i].falling,2,1,fHandle);
|
||||
|
||||
saveInterpolatedValue(&objectTable[i].rotate,fHandle);
|
||||
saveInterpolatedValue(&ListObjets[i].rotate,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].direction) == 2);
|
||||
fwrite(&objectTable[i].direction,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].direction) == 2);
|
||||
fwrite(&ListObjets[i].direction,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].speed) == 2);
|
||||
fwrite(&objectTable[i].speed,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].speed) == 2);
|
||||
fwrite(&ListObjets[i].speed,2,1,fHandle);
|
||||
|
||||
saveInterpolatedValue(&objectTable[i].speedChange,fHandle);
|
||||
saveInterpolatedValue(&ListObjets[i].speedChange,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].COL[0]) == 2);
|
||||
fwrite(&objectTable[i].COL[0],2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].COL[0]) == 2);
|
||||
fwrite(&ListObjets[i].COL[0],2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].COL[1]) == 2);
|
||||
fwrite(&objectTable[i].COL[1],2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].COL[1]) == 2);
|
||||
fwrite(&ListObjets[i].COL[1],2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].COL[2]) == 2);
|
||||
fwrite(&objectTable[i].COL[2],2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].COL[2]) == 2);
|
||||
fwrite(&ListObjets[i].COL[2],2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].COL_BY) == 2);
|
||||
fwrite(&objectTable[i].COL_BY,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].COL_BY) == 2);
|
||||
fwrite(&ListObjets[i].COL_BY,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].HARD_DEC) == 2);
|
||||
fwrite(&objectTable[i].HARD_DEC,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].HARD_DEC) == 2);
|
||||
fwrite(&ListObjets[i].HARD_DEC,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].HARD_COL) == 2);
|
||||
fwrite(&objectTable[i].HARD_COL,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].HARD_COL) == 2);
|
||||
fwrite(&ListObjets[i].HARD_COL,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].HIT) == 2);
|
||||
fwrite(&objectTable[i].HIT,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].HIT) == 2);
|
||||
fwrite(&ListObjets[i].HIT,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].HIT_BY) == 2);
|
||||
fwrite(&objectTable[i].HIT_BY,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].HIT_BY) == 2);
|
||||
fwrite(&ListObjets[i].HIT_BY,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].animActionType) == 2);
|
||||
fwrite(&objectTable[i].animActionType,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].animActionType) == 2);
|
||||
fwrite(&ListObjets[i].animActionType,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].animActionANIM) == 2);
|
||||
fwrite(&objectTable[i].animActionANIM,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].animActionANIM) == 2);
|
||||
fwrite(&ListObjets[i].animActionANIM,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].animActionFRAME) == 2);
|
||||
fwrite(&objectTable[i].animActionFRAME,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].animActionFRAME) == 2);
|
||||
fwrite(&ListObjets[i].animActionFRAME,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].animActionParam) == 2);
|
||||
fwrite(&objectTable[i].animActionParam,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].animActionParam) == 2);
|
||||
fwrite(&ListObjets[i].animActionParam,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].hitForce) == 2);
|
||||
fwrite(&objectTable[i].hitForce,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].hitForce) == 2);
|
||||
fwrite(&ListObjets[i].hitForce,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].hotPointID) == 2);
|
||||
fwrite(&objectTable[i].hotPointID,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].hotPointID) == 2);
|
||||
fwrite(&ListObjets[i].hotPointID,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].hotPoint.x) == 2);
|
||||
fwrite(&objectTable[i].hotPoint.x,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].hotPoint.x) == 2);
|
||||
fwrite(&ListObjets[i].hotPoint.x,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].hotPoint.y) == 2);
|
||||
fwrite(&objectTable[i].hotPoint.x,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].hotPoint.y) == 2);
|
||||
fwrite(&ListObjets[i].hotPoint.x,2,1,fHandle);
|
||||
|
||||
ASSERT(sizeof(objectTable[i].hotPoint.z) == 2);
|
||||
fwrite(&objectTable[i].hotPoint.x,2,1,fHandle);
|
||||
ASSERT(sizeof(ListObjets[i].hotPoint.z) == 2);
|
||||
fwrite(&ListObjets[i].hotPoint.x,2,1,fHandle);
|
||||
}
|
||||
|
||||
fclose(fHandle);
|
||||
|
|
|
@ -242,7 +242,7 @@ void processTrack(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
tObject* followedActorPtr = &objectTable[followedActorIdx];
|
||||
tObject* followedActorPtr = &ListObjets[followedActorIdx];
|
||||
|
||||
int targetRoomNumber = followedActorPtr->room;
|
||||
int targetX = followedActorPtr->roomX;
|
||||
|
|
|
@ -71,7 +71,7 @@ char* screenSm3;
|
|||
char* screenSm4;
|
||||
char* screenSm5;
|
||||
|
||||
std::array<tObject, NUM_MAX_OBJECT> objectTable;
|
||||
std::array<tObject, NUM_MAX_OBJECT> ListObjets;
|
||||
|
||||
s16 currentWorldTarget;
|
||||
|
||||
|
|
|
@ -306,7 +306,7 @@ extern char* screenSm3;
|
|||
extern char* screenSm4;
|
||||
extern char* screenSm5;
|
||||
|
||||
extern std::array<tObject, NUM_MAX_OBJECT> objectTable;
|
||||
extern std::array<tObject, NUM_MAX_OBJECT> ListObjets;
|
||||
|
||||
extern s16 currentWorldTarget;
|
||||
|
||||
|
|
Loading…
Reference in New Issue