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*)param1 >=0 && *(int*)param1 < NUM_MAX_OBJECT);
|
||||||
ASSERT(*(int*)param2 >=0 && *(int*)param2 < NUM_MAX_OBJECT);
|
ASSERT(*(int*)param2 >=0 && *(int*)param2 < NUM_MAX_OBJECT);
|
||||||
|
|
||||||
actor1Ptr = &objectTable[*(int*)param1];
|
actor1Ptr = &ListObjets[*(int*)param1];
|
||||||
actor2Ptr = &objectTable[*(int*)param2];
|
actor2Ptr = &ListObjets[*(int*)param2];
|
||||||
|
|
||||||
actor1ZvPtr = &actor1Ptr->zv;
|
actor1ZvPtr = &actor1Ptr->zv;
|
||||||
actor2ZvPtr = &actor2Ptr->zv;
|
actor2ZvPtr = &actor2Ptr->zv;
|
||||||
|
|
||||||
if(actor1Ptr->room != currentRoom)
|
if(actor1Ptr->room != currentRoom)
|
||||||
{
|
{
|
||||||
copyZv(actor1ZvPtr, &localZv1);
|
CopyZV(actor1ZvPtr, &localZv1);
|
||||||
getZvRelativePosition(&localZv1, actor1Ptr->room, currentRoom);
|
AdjustZV(&localZv1, actor1Ptr->room, currentRoom);
|
||||||
actor1ZvPtr = &localZv1;
|
actor1ZvPtr = &localZv1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(actor2Ptr->room != currentRoom)
|
if(actor2Ptr->room != currentRoom)
|
||||||
{
|
{
|
||||||
copyZv(actor2ZvPtr, &localZv2);
|
CopyZV(actor2ZvPtr, &localZv2);
|
||||||
getZvRelativePosition(&localZv2, actor2Ptr->room, currentRoom);
|
AdjustZV(&localZv2, actor2Ptr->room, currentRoom);
|
||||||
actor2ZvPtr = &localZv2;
|
actor2ZvPtr = &localZv2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -166,11 +166,11 @@ int manageFall(int actorIdx, ZVStruct* zvPtr)
|
||||||
{
|
{
|
||||||
int fallResult = 0;
|
int fallResult = 0;
|
||||||
int i;
|
int i;
|
||||||
int room = objectTable[actorIdx].room;
|
int room = ListObjets[actorIdx].room;
|
||||||
|
|
||||||
for(i=0;i<NUM_MAX_OBJECT;i++)
|
for(i=0;i<NUM_MAX_OBJECT;i++)
|
||||||
{
|
{
|
||||||
tObject* currentTestedActorPtr = &objectTable[i];
|
tObject* currentTestedActorPtr = &ListObjets[i];
|
||||||
|
|
||||||
if(currentTestedActorPtr->indexInWorld != -1 && i != actorIdx)
|
if(currentTestedActorPtr->indexInWorld != -1 && i != actorIdx)
|
||||||
{
|
{
|
||||||
|
@ -179,20 +179,20 @@ int manageFall(int actorIdx, ZVStruct* zvPtr)
|
||||||
if(currentTestedActorPtr->room != room)
|
if(currentTestedActorPtr->room != room)
|
||||||
{
|
{
|
||||||
ZVStruct localZv;
|
ZVStruct localZv;
|
||||||
copyZv(zvPtr, &localZv);
|
CopyZV(zvPtr, &localZv);
|
||||||
getZvRelativePosition(&localZv, room, currentTestedActorPtr->room);
|
AdjustZV(&localZv, room, currentTestedActorPtr->room);
|
||||||
|
|
||||||
if(checkZvCollision(&localZv, testedZv))
|
if(CubeIntersect(&localZv, testedZv))
|
||||||
{
|
{
|
||||||
objectTable[i].COL_BY = actorIdx;
|
ListObjets[i].COL_BY = actorIdx;
|
||||||
fallResult++;
|
fallResult++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(checkZvCollision(zvPtr, testedZv))
|
if(CubeIntersect(zvPtr, testedZv))
|
||||||
{
|
{
|
||||||
objectTable[i].COL_BY = actorIdx;
|
ListObjets[i].COL_BY = actorIdx;
|
||||||
fallResult++;
|
fallResult++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -285,11 +285,11 @@ void GereAnim(void)
|
||||||
currentProcessedActorPtr->END_FRAME = 0;
|
currentProcessedActorPtr->END_FRAME = 0;
|
||||||
if(currentProcessedActorPtr->speed == 0)
|
if(currentProcessedActorPtr->speed == 0)
|
||||||
{
|
{
|
||||||
int numObjectCollisions = checkObjectCollisions(currentProcessedActorIdx, ¤tProcessedActorPtr->zv);
|
int numObjectCollisions = CheckObjectCol(currentProcessedActorIdx, ¤tProcessedActorPtr->zv);
|
||||||
|
|
||||||
for(int i = 0; i<numObjectCollisions; i++)
|
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;
|
oldStepY = 0;
|
||||||
|
@ -356,7 +356,7 @@ void GereAnim(void)
|
||||||
if(stepX || stepY || stepZ) // start of movement management
|
if(stepX || stepY || stepZ) // start of movement management
|
||||||
{
|
{
|
||||||
zvPtr = ¤tProcessedActorPtr->zv;
|
zvPtr = ¤tProcessedActorPtr->zv;
|
||||||
copyZv(¤tProcessedActorPtr->zv,&zvLocal);
|
CopyZV(¤tProcessedActorPtr->zv,&zvLocal);
|
||||||
|
|
||||||
zvLocal.ZVX1 += stepX;
|
zvLocal.ZVX1 += stepX;
|
||||||
zvLocal.ZVX2 += stepX;
|
zvLocal.ZVX2 += stepX;
|
||||||
|
@ -367,6 +367,7 @@ void GereAnim(void)
|
||||||
zvLocal.ZVZ1 += stepZ;
|
zvLocal.ZVZ1 += stepZ;
|
||||||
zvLocal.ZVZ2 += stepZ;
|
zvLocal.ZVZ2 += stepZ;
|
||||||
|
|
||||||
|
// check for wall collisions
|
||||||
if(currentProcessedActorPtr->dynFlags & 1) // hard collision enabled for actor ?
|
if(currentProcessedActorPtr->dynFlags & 1) // hard collision enabled for actor ?
|
||||||
{
|
{
|
||||||
int numCol = AsmCheckListCol(&zvLocal, &roomDataTable[currentProcessedActorPtr->room]);
|
int numCol = AsmCheckListCol(&zvLocal, &roomDataTable[currentProcessedActorPtr->room]);
|
||||||
|
@ -380,13 +381,18 @@ void GereAnim(void)
|
||||||
currentProcessedActorPtr->HARD_COL = (short)pHardCol->parameter;
|
currentProcessedActorPtr->HARD_COL = (short)pHardCol->parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// climbable wall
|
||||||
if(pHardCol->type == 3)
|
if(pHardCol->type == 3)
|
||||||
{
|
{
|
||||||
currentProcessedActorPtr->HARD_COL = 255;
|
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
|
if(stepX || stepZ) // move on the X or Z axis ? update to avoid entering the hard col
|
||||||
{
|
{
|
||||||
//ZVStruct tempZv;
|
//ZVStruct tempZv;
|
||||||
|
@ -394,7 +400,7 @@ void GereAnim(void)
|
||||||
hardColStepX = stepX;
|
hardColStepX = stepX;
|
||||||
hardColStepZ = stepZ;
|
hardColStepZ = stepZ;
|
||||||
|
|
||||||
handleCollision(zvPtr, &zvLocal, &pHardCol->zv);
|
GereCollision(zvPtr, &zvLocal, &pHardCol->zv);
|
||||||
|
|
||||||
currentProcessedActorPtr->animNegX += hardColStepX - stepX;
|
currentProcessedActorPtr->animNegX += hardColStepX - stepX;
|
||||||
currentProcessedActorPtr->animNegZ += hardColStepZ - stepZ;
|
currentProcessedActorPtr->animNegZ += hardColStepZ - stepZ;
|
||||||
|
@ -414,7 +420,6 @@ void GereAnim(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else // no hard collision -> just update the flag without performing the position update
|
else // no hard collision -> just update the flag without performing the position update
|
||||||
{
|
{
|
||||||
if(AsmCheckListCol(&zvLocal, &roomDataTable[currentProcessedActorPtr->room]))
|
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
|
for(int j=0;j<numCol;j++) // process the actor/actor collision
|
||||||
{
|
{
|
||||||
int collisionIndex = currentProcessedActorPtr->COL[j];
|
int collisionIndex = currentProcessedActorPtr->COL[j];
|
||||||
|
|
||||||
tObject* actorTouchedPtr = &objectTable[collisionIndex];
|
tObject* actorTouchedPtr = &ListObjets[collisionIndex];
|
||||||
|
|
||||||
actorTouchedPtr->COL_BY = currentProcessedActorIdx;
|
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...
|
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 ?
|
if(actorTouchedPtr->objectType & AF_MOVABLE) // can be pushed ?
|
||||||
{
|
{
|
||||||
|
@ -454,7 +460,7 @@ void GereAnim(void)
|
||||||
|
|
||||||
bool isPushPossible = true;
|
bool isPushPossible = true;
|
||||||
|
|
||||||
copyZv(touchedZv, &localZv2);
|
CopyZV(touchedZv, &localZv2);
|
||||||
|
|
||||||
localZv2.ZVX1 += stepX;
|
localZv2.ZVX1 += stepX;
|
||||||
localZv2.ZVX2 += stepX;
|
localZv2.ZVX2 += stepX;
|
||||||
|
@ -462,15 +468,14 @@ void GereAnim(void)
|
||||||
localZv2.ZVZ1 += stepZ;
|
localZv2.ZVZ1 += stepZ;
|
||||||
localZv2.ZVZ2 += stepZ;
|
localZv2.ZVZ2 += stepZ;
|
||||||
|
|
||||||
if(!AsmCheckListCol(&localZv2, &roomDataTable[currentProcessedActorPtr->room]))
|
// check pushed object against walls
|
||||||
{
|
if(AsmCheckListCol(&localZv2, &roomDataTable[currentProcessedActorPtr->room]))
|
||||||
if(checkObjectCollisions(collisionIndex, &localZv2))
|
|
||||||
{
|
{
|
||||||
isPushPossible = false;
|
isPushPossible = false;
|
||||||
}
|
}
|
||||||
}
|
else if (CheckObjectCol(collisionIndex, &localZv2))
|
||||||
else
|
|
||||||
{
|
{
|
||||||
|
// if no wall preventing to move object, check is there is a another object in the way
|
||||||
isPushPossible = false;
|
isPushPossible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -482,14 +487,14 @@ void GereAnim(void)
|
||||||
{
|
{
|
||||||
ZVStruct localZv3;
|
ZVStruct localZv3;
|
||||||
|
|
||||||
copyZv(touchedZv, &localZv3);
|
CopyZV(touchedZv, &localZv3);
|
||||||
|
|
||||||
getZvRelativePosition(&localZv3, actorTouchedPtr->room, currentProcessedActorPtr->room);
|
AdjustZV(&localZv3, actorTouchedPtr->room, currentProcessedActorPtr->room);
|
||||||
|
|
||||||
hardColStepX = stepX;
|
hardColStepX = stepX;
|
||||||
hardColStepZ = stepZ;
|
hardColStepZ = stepZ;
|
||||||
|
|
||||||
handleCollision(zvPtr, &zvLocal, &localZv3);
|
GereCollision(zvPtr, &zvLocal, &localZv3);
|
||||||
|
|
||||||
stepX = hardColStepX;
|
stepX = hardColStepX;
|
||||||
stepZ = hardColStepZ;
|
stepZ = hardColStepZ;
|
||||||
|
@ -499,7 +504,7 @@ void GereAnim(void)
|
||||||
hardColStepX = stepX;
|
hardColStepX = stepX;
|
||||||
hardColStepZ = stepZ;
|
hardColStepZ = stepZ;
|
||||||
|
|
||||||
handleCollision(zvPtr, &zvLocal, touchedZv); // manage as hard collision
|
GereCollision(zvPtr, &zvLocal, touchedZv); // manage as hard collision
|
||||||
|
|
||||||
stepX = hardColStepX;
|
stepX = hardColStepX;
|
||||||
stepZ = hardColStepZ;
|
stepZ = hardColStepZ;
|
||||||
|
@ -521,7 +526,7 @@ void GereAnim(void)
|
||||||
actorTouchedPtr->roomX += stepX;
|
actorTouchedPtr->roomX += stepX;
|
||||||
actorTouchedPtr->roomZ += stepZ;
|
actorTouchedPtr->roomZ += stepZ;
|
||||||
|
|
||||||
copyZv(&localZv2,touchedZv);
|
CopyZV(&localZv2,touchedZv);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -536,7 +541,7 @@ void GereAnim(void)
|
||||||
hardColStepX = stepX;
|
hardColStepX = stepX;
|
||||||
hardColStepZ = stepZ;
|
hardColStepZ = stepZ;
|
||||||
|
|
||||||
handleCollision(zvPtr, &zvLocal, touchedZv); // manage as hard collision
|
GereCollision(zvPtr, &zvLocal, touchedZv); // manage as hard collision
|
||||||
|
|
||||||
stepX = hardColStepX;
|
stepX = hardColStepX;
|
||||||
stepZ = hardColStepZ;
|
stepZ = hardColStepZ;
|
||||||
|
@ -545,14 +550,14 @@ void GereAnim(void)
|
||||||
{
|
{
|
||||||
ZVStruct localZv3;
|
ZVStruct localZv3;
|
||||||
|
|
||||||
copyZv(touchedZv, &localZv3);
|
CopyZV(touchedZv, &localZv3);
|
||||||
|
|
||||||
getZvRelativePosition(&localZv3, actorTouchedPtr->room, currentProcessedActorPtr->room);
|
AdjustZV(&localZv3, actorTouchedPtr->room, currentProcessedActorPtr->room);
|
||||||
|
|
||||||
hardColStepX = stepX;
|
hardColStepX = stepX;
|
||||||
hardColStepZ = stepZ;
|
hardColStepZ = stepZ;
|
||||||
|
|
||||||
handleCollision(zvPtr, &zvLocal, &localZv3); // manage as hard collision
|
GereCollision(zvPtr, &zvLocal, &localZv3); // manage as hard collision
|
||||||
|
|
||||||
stepX = hardColStepX;
|
stepX = hardColStepX;
|
||||||
stepZ = hardColStepZ;
|
stepZ = hardColStepZ;
|
||||||
|
@ -589,7 +594,7 @@ void GereAnim(void)
|
||||||
{
|
{
|
||||||
zvPtr = ¤tProcessedActorPtr->zv;
|
zvPtr = ¤tProcessedActorPtr->zv;
|
||||||
|
|
||||||
copyZv(zvPtr, &zvLocal);
|
CopyZV(zvPtr, &zvLocal);
|
||||||
|
|
||||||
zvLocal.ZVY2 += 100;
|
zvLocal.ZVY2 += 100;
|
||||||
|
|
||||||
|
@ -617,7 +622,7 @@ void GereAnim(void)
|
||||||
|
|
||||||
if(collisionIndex != -1)
|
if(collisionIndex != -1)
|
||||||
{
|
{
|
||||||
tObject* actorTouchedPtr = &objectTable[collisionIndex];
|
tObject* actorTouchedPtr = &ListObjets[collisionIndex];
|
||||||
|
|
||||||
if(actorTouchedPtr->objectType & AF_MOVABLE)
|
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);
|
//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++)
|
for(i=0;i<collision;i++)
|
||||||
{
|
{
|
||||||
tObject* actorPtr2;
|
tObject* actorPtr2;
|
||||||
|
|
||||||
currentProcessedActorPtr->HIT = currentProcessedActorPtr->COL[i];
|
currentProcessedActorPtr->HIT = currentProcessedActorPtr->COL[i];
|
||||||
actorPtr2 = &objectTable[currentProcessedActorPtr->COL[i]];
|
actorPtr2 = &ListObjets[currentProcessedActorPtr->COL[i]];
|
||||||
|
|
||||||
actorPtr2->HIT_BY = currentProcessedActorIdx;
|
actorPtr2->HIT_BY = currentProcessedActorIdx;
|
||||||
actorPtr2->hitForce = currentProcessedActorPtr->hitForce;
|
actorPtr2->hitForce = currentProcessedActorPtr->hitForce;
|
||||||
|
@ -141,8 +141,8 @@ void GereFrappe(void)
|
||||||
|
|
||||||
currentProcessedActorPtr->HIT = touchedActor;
|
currentProcessedActorPtr->HIT = touchedActor;
|
||||||
|
|
||||||
objectTable[touchedActor].HIT_BY = currentProcessedActorIdx;
|
ListObjets[touchedActor].HIT_BY = currentProcessedActorIdx;
|
||||||
objectTable[touchedActor].hitForce = currentProcessedActorPtr->hitForce;
|
ListObjets[touchedActor].hitForce = currentProcessedActorPtr->hitForce;
|
||||||
|
|
||||||
currentProcessedActorPtr->animActionType = 0;
|
currentProcessedActorPtr->animActionType = 0;
|
||||||
}
|
}
|
||||||
|
@ -229,7 +229,7 @@ void GereFrappe(void)
|
||||||
if(actorIdx == -1)
|
if(actorIdx == -1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
actorPtr = &objectTable[actorIdx];
|
actorPtr = &ListObjets[actorIdx];
|
||||||
|
|
||||||
actorPtr->roomX = x;
|
actorPtr->roomX = x;
|
||||||
actorPtr->roomY = y;
|
actorPtr->roomY = y;
|
||||||
|
@ -287,8 +287,8 @@ void GereFrappe(void)
|
||||||
int z3;
|
int z3;
|
||||||
int step;
|
int step;
|
||||||
|
|
||||||
copyZv(¤tProcessedActorPtr->zv, &rangeZv);
|
CopyZV(¤tProcessedActorPtr->zv, &rangeZv);
|
||||||
copyZv(¤tProcessedActorPtr->zv, &rangeZv2);
|
CopyZV(¤tProcessedActorPtr->zv, &rangeZv2);
|
||||||
|
|
||||||
xtemp = currentProcessedActorPtr->roomX + currentProcessedActorPtr->stepX;
|
xtemp = currentProcessedActorPtr->roomX + currentProcessedActorPtr->stepX;
|
||||||
ytemp = currentProcessedActorPtr->roomY + currentProcessedActorPtr->stepY;
|
ytemp = currentProcessedActorPtr->roomY + currentProcessedActorPtr->stepY;
|
||||||
|
@ -328,7 +328,7 @@ void GereFrappe(void)
|
||||||
y2 = y1;
|
y2 = y1;
|
||||||
z2 = z1 + animMoveZ;
|
z2 = z1 + animMoveZ;
|
||||||
|
|
||||||
copyZv(&rangeZv2,&rangeZv);
|
CopyZV(&rangeZv2,&rangeZv);
|
||||||
|
|
||||||
rangeZv.ZVX1 = x2 - 200;
|
rangeZv.ZVX1 = x2 - 200;
|
||||||
rangeZv.ZVX2 = x2 + 200;
|
rangeZv.ZVX2 = x2 + 200;
|
||||||
|
@ -337,7 +337,7 @@ void GereFrappe(void)
|
||||||
rangeZv.ZVZ1 = z2 - 200;
|
rangeZv.ZVZ1 = z2 - 200;
|
||||||
rangeZv.ZVZ2 = z2 + 200;
|
rangeZv.ZVZ2 = z2 + 200;
|
||||||
|
|
||||||
collision = checkObjectCollisions(currentProcessedActorIdx,&rangeZv);
|
collision = CheckObjectCol(currentProcessedActorIdx,&rangeZv);
|
||||||
|
|
||||||
if(collision)
|
if(collision)
|
||||||
{
|
{
|
||||||
|
@ -352,7 +352,7 @@ void GereFrappe(void)
|
||||||
{
|
{
|
||||||
int currentActorCol = currentProcessedActorPtr->COL[i];
|
int currentActorCol = currentProcessedActorPtr->COL[i];
|
||||||
|
|
||||||
if(objectTable[currentActorCol].indexInWorld == objPtr->alpha)
|
if(ListObjets[currentActorCol].indexInWorld == objPtr->alpha)
|
||||||
{
|
{
|
||||||
collision2--;
|
collision2--;
|
||||||
objPtr->x = xtemp;
|
objPtr->x = xtemp;
|
||||||
|
@ -362,7 +362,7 @@ void GereFrappe(void)
|
||||||
return;
|
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)];
|
objPtr->alpha = CVars[getCVarsIdx((enumCVars)REVERSE_OBJECT)];
|
||||||
currentProcessedActorPtr->beta += 0x200;
|
currentProcessedActorPtr->beta += 0x200;
|
||||||
|
@ -376,7 +376,7 @@ void GereFrappe(void)
|
||||||
currentProcessedActorPtr->stepX = 0;
|
currentProcessedActorPtr->stepX = 0;
|
||||||
currentProcessedActorPtr->stepZ = 0;
|
currentProcessedActorPtr->stepZ = 0;
|
||||||
|
|
||||||
copyZv(&rangeZv2, &rangeZv);
|
CopyZV(&rangeZv2, &rangeZv);
|
||||||
|
|
||||||
rangeZv.ZVX1 += x3;
|
rangeZv.ZVX1 += x3;
|
||||||
rangeZv.ZVX2 += x3;
|
rangeZv.ZVX2 += x3;
|
||||||
|
@ -385,7 +385,7 @@ void GereFrappe(void)
|
||||||
rangeZv.ZVZ1 += z3;
|
rangeZv.ZVZ1 += z3;
|
||||||
rangeZv.ZVZ2 += z3;
|
rangeZv.ZVZ2 += z3;
|
||||||
|
|
||||||
copyZv(&rangeZv, ¤tProcessedActorPtr->zv);
|
CopyZV(&rangeZv, ¤tProcessedActorPtr->zv);
|
||||||
|
|
||||||
objPtr->x = xtemp;
|
objPtr->x = xtemp;
|
||||||
objPtr->y = ytemp;
|
objPtr->y = ytemp;
|
||||||
|
@ -399,7 +399,7 @@ void GereFrappe(void)
|
||||||
tObject* actorPtr;
|
tObject* actorPtr;
|
||||||
|
|
||||||
currentProcessedActorPtr->HIT = currentActorCol;
|
currentProcessedActorPtr->HIT = currentActorCol;
|
||||||
actorPtr = &objectTable[currentActorCol];
|
actorPtr = &ListObjets[currentActorCol];
|
||||||
actorPtr->HIT_BY = currentProcessedActorIdx;
|
actorPtr->HIT_BY = currentProcessedActorIdx;
|
||||||
actorPtr->hitForce = currentProcessedActorPtr->hitForce;
|
actorPtr->hitForce = currentProcessedActorPtr->hitForce;
|
||||||
}
|
}
|
||||||
|
|
|
@ -235,7 +235,7 @@ void debugger_draw(void)
|
||||||
if (selectedObject > NUM_MAX_OBJECT)
|
if (selectedObject > NUM_MAX_OBJECT)
|
||||||
selectedObject = NUM_MAX_OBJECT - 1;
|
selectedObject = NUM_MAX_OBJECT - 1;
|
||||||
|
|
||||||
tObject*pObject = &objectTable[selectedObject];
|
tObject*pObject = &ListObjets[selectedObject];
|
||||||
|
|
||||||
ImGui::PushItemWidth(100);
|
ImGui::PushItemWidth(100);
|
||||||
|
|
||||||
|
|
|
@ -9,8 +9,8 @@ int getMatrix(int param1, int actorIdx, int param2)
|
||||||
int matrixWidth = *matrixPtr++;
|
int matrixWidth = *matrixPtr++;
|
||||||
int matrixHeigh = *matrixPtr++;
|
int matrixHeigh = *matrixPtr++;
|
||||||
|
|
||||||
matrixPtr+=(objectTable[actorIdx].hardMat-1)*matrixWidth;
|
matrixPtr+=(ListObjets[actorIdx].hardMat-1)*matrixWidth;
|
||||||
matrixPtr+=(objectTable[param2].hardMat-1);
|
matrixPtr+=(ListObjets[param2].hardMat-1);
|
||||||
|
|
||||||
if(g_gameId == AITD3)
|
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)
|
if(actor1->room != actor2->room)
|
||||||
{
|
{
|
||||||
getZvRelativePosition(&localZv, actor2->room, actor1->room);
|
AdjustZV(&localZv, actor2->room, actor1->room);
|
||||||
}
|
}
|
||||||
|
|
||||||
centerX = (localZv.ZVX1 + localZv.ZVX2) / 2;
|
centerX = (localZv.ZVX1 + localZv.ZVX2) / 2;
|
||||||
|
@ -118,7 +118,7 @@ int testZvEndAnim(tObject* actorPtr,sAnimation* animPtr, int param)
|
||||||
}
|
}
|
||||||
|
|
||||||
ZVStruct localZv;
|
ZVStruct localZv;
|
||||||
copyZv(&actorPtr->zv, &localZv);
|
CopyZV(&actorPtr->zv, &localZv);
|
||||||
|
|
||||||
walkStep(0,stepX,actorPtr->beta);
|
walkStep(0,stepX,actorPtr->beta);
|
||||||
|
|
||||||
|
@ -210,7 +210,7 @@ int evalVar(const char* name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
actorPtr = &objectTable[actorIdx];
|
actorPtr = &ListObjets[actorIdx];
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -228,7 +228,7 @@ int evalVar(const char* name)
|
||||||
|
|
||||||
if(temp1 != -1)
|
if(temp1 != -1)
|
||||||
{
|
{
|
||||||
return(objectTable[temp1].indexInWorld);
|
return(ListObjets[temp1].indexInWorld);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -256,7 +256,7 @@ int evalVar(const char* name)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return(objectTable[temp].indexInWorld);
|
return(ListObjets[temp].indexInWorld);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -271,7 +271,7 @@ int evalVar(const char* name)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return(objectTable[temp].indexInWorld);
|
return(ListObjets[temp].indexInWorld);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -332,9 +332,9 @@ int evalVar(const char* name)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int tempX = objectTable[actorNumber].worldX;
|
int tempX = ListObjets[actorNumber].worldX;
|
||||||
int tempY = objectTable[actorNumber].worldY;
|
int tempY = ListObjets[actorNumber].worldY;
|
||||||
int tempZ = objectTable[actorNumber].worldZ;
|
int tempZ = ListObjets[actorNumber].worldZ;
|
||||||
|
|
||||||
return(calcDist(actorPtr->worldX, actorPtr->worldY, actorPtr->worldZ, tempX, tempY, tempZ));
|
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)
|
if(actorPtr->COL_BY == -1)
|
||||||
return(-1);
|
return(-1);
|
||||||
else
|
else
|
||||||
return(objectTable[actorPtr->COL_BY].indexInWorld);
|
return(ListObjets[actorPtr->COL_BY].indexInWorld);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 0x10: // found
|
case 0x10: // found
|
||||||
|
@ -379,7 +379,7 @@ int evalVar(const char* name)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (getPosRel(actorPtr, &objectTable[ListWorldObjets[objNum].objIndex]));
|
return (getPosRel(actorPtr, &ListObjets[ListWorldObjets[objNum].objIndex]));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -412,7 +412,7 @@ int evalVar(const char* name)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return objectTable[temp1].indexInWorld;
|
return ListObjets[temp1].indexInWorld;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 0x16:
|
case 0x16:
|
||||||
|
@ -626,7 +626,7 @@ int evalVar2(const char* name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
actorPtr = &objectTable[actorIdx];
|
actorPtr = &ListObjets[actorIdx];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
@ -647,7 +647,7 @@ int evalVar2(const char* name)
|
||||||
|
|
||||||
if(temp1 != -1)
|
if(temp1 != -1)
|
||||||
{
|
{
|
||||||
return(objectTable[temp1].indexInWorld);
|
return(ListObjets[temp1].indexInWorld);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -685,7 +685,7 @@ int evalVar2(const char* name)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return(objectTable[temp].indexInWorld);
|
return(ListObjets[temp].indexInWorld);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -700,7 +700,7 @@ int evalVar2(const char* name)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return(objectTable[temp].indexInWorld);
|
return(ListObjets[temp].indexInWorld);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -776,9 +776,9 @@ int evalVar2(const char* name)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
tempX = objectTable[objectIdx].worldX;
|
tempX = ListObjets[objectIdx].worldX;
|
||||||
tempY = objectTable[objectIdx].worldY;
|
tempY = ListObjets[objectIdx].worldY;
|
||||||
tempZ = objectTable[objectIdx].worldZ;
|
tempZ = ListObjets[objectIdx].worldZ;
|
||||||
}
|
}
|
||||||
|
|
||||||
return(calcDist(actorPtr->worldX, actorPtr->worldY, actorPtr->worldZ, tempX, tempY, tempZ));
|
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)
|
if(actorPtr->COL_BY == -1)
|
||||||
return(-1);
|
return(-1);
|
||||||
else
|
else
|
||||||
return(objectTable[actorPtr->COL_BY].indexInWorld);
|
return(ListObjets[actorPtr->COL_BY].indexInWorld);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 0x10: // found
|
case 0x10: // found
|
||||||
|
@ -823,7 +823,7 @@ int evalVar2(const char* name)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (getPosRel(actorPtr, &objectTable[ListWorldObjets[objNum].objIndex]));
|
return (getPosRel(actorPtr, &ListObjets[ListWorldObjets[objNum].objIndex]));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -856,7 +856,7 @@ int evalVar2(const char* name)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return objectTable[temp1].indexInWorld;
|
return ListObjets[temp1].indexInWorld;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 0x16:
|
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;
|
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];
|
s16 localSpecialTable[4];
|
||||||
memcpy(localSpecialTable, specialTable, 8);
|
memcpy(localSpecialTable, specialTable, 8);
|
||||||
|
|
||||||
tObject* currentActorPtr = objectTable.data();
|
tObject* currentActorPtr = ListObjets.data();
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < NUM_MAX_OBJECT; i++) // count the number of active actors
|
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)
|
if (zvPtr)
|
||||||
{
|
{
|
||||||
actorZvPtr = ¤tActorPtr->zv;
|
actorZvPtr = ¤tActorPtr->zv;
|
||||||
copyZv(zvPtr, actorZvPtr);
|
CopyZV(zvPtr, actorZvPtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (mode)
|
switch (mode)
|
||||||
|
@ -226,7 +226,7 @@ void getHardClip()
|
||||||
zvCol.ZVZ1 = READ_LE_S16(etageData + 0x08);
|
zvCol.ZVZ1 = READ_LE_S16(etageData + 0x08);
|
||||||
zvCol.ZVZ2 = READ_LE_S16(etageData + 0x0A);
|
zvCol.ZVZ2 = READ_LE_S16(etageData + 0x0A);
|
||||||
|
|
||||||
if (checkZvCollision(zvPtr, &zvCol))
|
if (CubeIntersect(zvPtr, &zvCol))
|
||||||
{
|
{
|
||||||
hardClip.ZVX1 = zvCol.ZVX1;
|
hardClip.ZVX1 = zvCol.ZVX1;
|
||||||
hardClip.ZVX2 = zvCol.ZVX2;
|
hardClip.ZVX2 = zvCol.ZVX2;
|
||||||
|
@ -502,7 +502,7 @@ void processLife(int lifeNum, bool callFoundLife)
|
||||||
|
|
||||||
if (currentProcessedActorIdx != -1)
|
if (currentProcessedActorIdx != -1)
|
||||||
{
|
{
|
||||||
currentProcessedActorPtr = &objectTable[currentProcessedActorIdx];
|
currentProcessedActorPtr = &ListObjets[currentProcessedActorIdx];
|
||||||
|
|
||||||
goto processOpcode;
|
goto processOpcode;
|
||||||
}
|
}
|
||||||
|
@ -1284,9 +1284,9 @@ void processLife(int lifeNum, bool callFoundLife)
|
||||||
currentProcessedActorPtr->gamma = ListWorldObjets[object].gamma;
|
currentProcessedActorPtr->gamma = ListWorldObjets[object].gamma;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
currentProcessedActorPtr->alpha = objectTable[localObjectIndex].alpha;
|
currentProcessedActorPtr->alpha = ListObjets[localObjectIndex].alpha;
|
||||||
currentProcessedActorPtr->beta = objectTable[localObjectIndex].beta;
|
currentProcessedActorPtr->beta = ListObjets[localObjectIndex].beta;
|
||||||
currentProcessedActorPtr->gamma = objectTable[localObjectIndex].gamma;
|
currentProcessedActorPtr->gamma = ListObjets[localObjectIndex].gamma;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1408,7 +1408,7 @@ void processLife(int lifeNum, bool callFoundLife)
|
||||||
}
|
}
|
||||||
case 1: // flow
|
case 1: // flow
|
||||||
{
|
{
|
||||||
currentProcessedActorPtr = &objectTable[currentProcessedActorPtr->HIT_BY];
|
currentProcessedActorPtr = &ListObjets[currentProcessedActorPtr->HIT_BY];
|
||||||
|
|
||||||
InitSpecialObjet(1,
|
InitSpecialObjet(1,
|
||||||
currentProcessedActorPtr->roomX + currentProcessedActorPtr->stepX + currentProcessedActorPtr->hotPoint.x,
|
currentProcessedActorPtr->roomX + currentProcessedActorPtr->stepX + currentProcessedActorPtr->hotPoint.x,
|
||||||
|
@ -1458,17 +1458,17 @@ void processLife(int lifeNum, bool callFoundLife)
|
||||||
|
|
||||||
if (g_gameId == AITD1)
|
if (g_gameId == AITD1)
|
||||||
{
|
{
|
||||||
foundObject(lifeTempVar1, 1);
|
FoundObjet(lifeTempVar1, 1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (callFoundLife)
|
if (callFoundLife)
|
||||||
{
|
{
|
||||||
foundObject(lifeTempVar1, 2);
|
FoundObjet(lifeTempVar1, 2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
foundObject(lifeTempVar1, 1);
|
FoundObjet(lifeTempVar1, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1947,7 +1947,7 @@ void processLife(int lifeNum, bool callFoundLife)
|
||||||
currentWorldTarget = lifeTempVar1;
|
currentWorldTarget = lifeTempVar1;
|
||||||
currentCameraTargetActor = lifeTempVar2;
|
currentCameraTargetActor = lifeTempVar2;
|
||||||
|
|
||||||
lifeTempVar3 = objectTable[currentCameraTargetActor].room;
|
lifeTempVar3 = ListObjets[currentCameraTargetActor].room;
|
||||||
|
|
||||||
if (lifeTempVar3 != currentRoom)
|
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
|
// 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)
|
// 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;
|
currentWorldTarget = lifeTempVar1;
|
||||||
FlagChangeEtage = 1;
|
FlagChangeEtage = 1;
|
||||||
NewNumEtage = objectTable[lifeTempVar2].stage;
|
NewNumEtage = ListObjets[lifeTempVar2].stage;
|
||||||
NewNumSalle = objectTable[lifeTempVar2].room;
|
NewNumSalle = ListObjets[lifeTempVar2].room;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
currentWorldTarget = lifeTempVar1;
|
currentWorldTarget = lifeTempVar1;
|
||||||
currentCameraTargetActor = lifeTempVar2;
|
currentCameraTargetActor = lifeTempVar2;
|
||||||
|
|
||||||
lifeTempVar3 = objectTable[currentCameraTargetActor].room;
|
lifeTempVar3 = ListObjets[currentCameraTargetActor].room;
|
||||||
|
|
||||||
if (lifeTempVar3 != currentRoom)
|
if (lifeTempVar3 != currentRoom)
|
||||||
{
|
{
|
||||||
|
|
214
FitdLib/main.cpp
214
FitdLib/main.cpp
|
@ -197,7 +197,7 @@ void executeFoundLife(int objIdx)
|
||||||
|
|
||||||
if(actorIdx==-1)
|
if(actorIdx==-1)
|
||||||
{
|
{
|
||||||
tObject* currentActorEntryPtr = &objectTable[NUM_MAX_OBJECT-1];
|
tObject* currentActorEntryPtr = &ListObjets[NUM_MAX_OBJECT-1];
|
||||||
int currentActorEntry = NUM_MAX_OBJECT-1;
|
int currentActorEntry = NUM_MAX_OBJECT-1;
|
||||||
|
|
||||||
while(currentActorEntry>=0)
|
while(currentActorEntry>=0)
|
||||||
|
@ -212,14 +212,14 @@ void executeFoundLife(int objIdx)
|
||||||
if(currentActorEntry==-1) // no space, we will have to overwrite the last actor !
|
if(currentActorEntry==-1) // no space, we will have to overwrite the last actor !
|
||||||
{
|
{
|
||||||
currentActorEntry = NUM_MAX_OBJECT-1;
|
currentActorEntry = NUM_MAX_OBJECT-1;
|
||||||
currentActorEntryPtr = &objectTable[NUM_MAX_OBJECT-1];
|
currentActorEntryPtr = &ListObjets[NUM_MAX_OBJECT-1];
|
||||||
}
|
}
|
||||||
|
|
||||||
actorIdx = currentActorEntry;
|
actorIdx = currentActorEntry;
|
||||||
var_2 = 1;
|
var_2 = 1;
|
||||||
|
|
||||||
currentProcessedActorPtr = &objectTable[actorIdx];
|
currentProcessedActorPtr = &ListObjets[actorIdx];
|
||||||
currentLifeActorPtr = &objectTable[actorIdx];
|
currentLifeActorPtr = &ListObjets[actorIdx];
|
||||||
currentProcessedActorIdx = actorIdx;
|
currentProcessedActorIdx = actorIdx;
|
||||||
currentLifeActorIdx = actorIdx;
|
currentLifeActorIdx = actorIdx;
|
||||||
|
|
||||||
|
@ -1184,7 +1184,7 @@ void LoadWorld(void)
|
||||||
|
|
||||||
for(i=0;i<NUM_MAX_OBJECT;i++)
|
for(i=0;i<NUM_MAX_OBJECT;i++)
|
||||||
{
|
{
|
||||||
objectTable[i].indexInWorld = -1;
|
ListObjets[i].indexInWorld = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(g_gameId == AITD1)
|
if(g_gameId == AITD1)
|
||||||
|
@ -1662,7 +1662,7 @@ void InitViewedRoomList()
|
||||||
|
|
||||||
void DeleteObjet(int index) // remove actor
|
void DeleteObjet(int index) // remove actor
|
||||||
{
|
{
|
||||||
tObject *actorPtr = &objectTable[index];
|
tObject *actorPtr = &ListObjets[index];
|
||||||
|
|
||||||
if(actorPtr->indexInWorld == -2) // flow
|
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));
|
memcpy(dest,source,sizeof(ZVStruct));
|
||||||
}
|
}
|
||||||
|
@ -1842,7 +1842,7 @@ void updateAllActorAndObjectsAITD2()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < NUM_MAX_OBJECT; i++)
|
for (int i = 0; i < NUM_MAX_OBJECT; i++)
|
||||||
{
|
{
|
||||||
tObject* pObject = &objectTable[i];
|
tObject* pObject = &ListObjets[i];
|
||||||
|
|
||||||
if (pObject->indexInWorld == -1)
|
if (pObject->indexInWorld == -1)
|
||||||
{
|
{
|
||||||
|
@ -1957,7 +1957,7 @@ void updateAllActorAndObjectsAITD2()
|
||||||
|
|
||||||
if (currentObject->objIndex != -1)
|
if (currentObject->objIndex != -1)
|
||||||
{
|
{
|
||||||
currentProcessedActorPtr = &objectTable[currentObject->objIndex];
|
currentProcessedActorPtr = &ListObjets[currentObject->objIndex];
|
||||||
currentProcessedActorIdx = currentObject->objIndex;
|
currentProcessedActorIdx = currentObject->objIndex;
|
||||||
|
|
||||||
if (currentWorldTarget == i)
|
if (currentWorldTarget == i)
|
||||||
|
@ -1997,7 +1997,7 @@ void GenereActiveList()
|
||||||
|
|
||||||
for(int i=0;i<NUM_MAX_OBJECT;i++)
|
for(int i=0;i<NUM_MAX_OBJECT;i++)
|
||||||
{
|
{
|
||||||
tObject* currentActor = &objectTable[i];
|
tObject* currentActor = &ListObjets[i];
|
||||||
if (currentActor->indexInWorld == -1)
|
if (currentActor->indexInWorld == -1)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -2095,7 +2095,7 @@ void GenereActiveList()
|
||||||
|
|
||||||
if(currentObject->objIndex != -1)
|
if(currentObject->objIndex != -1)
|
||||||
{
|
{
|
||||||
currentProcessedActorPtr = &objectTable[currentObject->objIndex];
|
currentProcessedActorPtr = &ListObjets[currentObject->objIndex];
|
||||||
currentProcessedActorIdx = currentObject->objIndex;
|
currentProcessedActorIdx = currentObject->objIndex;
|
||||||
|
|
||||||
if(currentWorldTarget == i)
|
if(currentWorldTarget == i)
|
||||||
|
@ -2141,9 +2141,9 @@ void GenereAffList()
|
||||||
{
|
{
|
||||||
NbAffObjets = 0;
|
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(actorPtr->indexInWorld != -1 && actorPtr->bodyNum != -1)
|
||||||
{
|
{
|
||||||
if(checkActorInRoom(actorPtr->room))
|
if(checkActorInRoom(actorPtr->room))
|
||||||
|
@ -2207,9 +2207,9 @@ void InitView()
|
||||||
{
|
{
|
||||||
if(currentCameraTargetActor != -1)
|
if(currentCameraTargetActor != -1)
|
||||||
{
|
{
|
||||||
x = objectTable[currentCameraTargetActor].worldX + objectTable[currentCameraTargetActor].stepX;
|
x = ListObjets[currentCameraTargetActor].worldX + ListObjets[currentCameraTargetActor].stepX;
|
||||||
y = debufferVar_topCameraZoom;
|
y = debufferVar_topCameraZoom;
|
||||||
z = objectTable[currentCameraTargetActor].worldZ + objectTable[currentCameraTargetActor].stepZ;
|
z = ListObjets[currentCameraTargetActor].worldZ + ListObjets[currentCameraTargetActor].stepZ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -2322,7 +2322,7 @@ s16 updateActorRotation(RealValue* rotatePtr)
|
||||||
|
|
||||||
void removeFromBGIncrust(int actorIdx)
|
void removeFromBGIncrust(int actorIdx)
|
||||||
{
|
{
|
||||||
tObject* actorPtr = &objectTable[actorIdx];
|
tObject* actorPtr = &ListObjets[actorIdx];
|
||||||
|
|
||||||
actorPtr->objectType &= ~AF_BOXIFY;
|
actorPtr->objectType &= ~AF_BOXIFY;
|
||||||
|
|
||||||
|
@ -2380,7 +2380,7 @@ void deleteObject(int objIdx)
|
||||||
|
|
||||||
if(actorIdx != -1)
|
if(actorIdx != -1)
|
||||||
{
|
{
|
||||||
actorPtr = &objectTable[actorIdx];
|
actorPtr = &ListObjets[actorIdx];
|
||||||
|
|
||||||
actorPtr->room = -1;
|
actorPtr->room = -1;
|
||||||
actorPtr->stage = -1;
|
actorPtr->stage = -1;
|
||||||
|
@ -2471,16 +2471,16 @@ void drawZv(tObject* actorPtr)
|
||||||
{
|
{
|
||||||
ZVStruct localZv;
|
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;
|
return;
|
||||||
}
|
}
|
||||||
getZvRelativePosition(&localZv, actorPtr->room, objectTable[currentCameraTargetActor].room);
|
AdjustZV(&localZv, actorPtr->room, ListObjets[currentCameraTargetActor].room);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
copyZv(&actorPtr->zv,&localZv);
|
CopyZV(&actorPtr->zv,&localZv);
|
||||||
}
|
}
|
||||||
|
|
||||||
drawZv(localZv);
|
drawZv(localZv);
|
||||||
|
@ -2644,7 +2644,7 @@ void drawRoomZv(ZVStruct* zoneData, int color, int transparency)
|
||||||
cameraZv.ZVZ1 += translateZ;
|
cameraZv.ZVZ1 += translateZ;
|
||||||
cameraZv.ZVZ2 += translateZ;
|
cameraZv.ZVZ2 += translateZ;
|
||||||
|
|
||||||
if(checkZvCollision(&cameraZv,zoneData))
|
if(CubeIntersect(&cameraZv,zoneData))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -2665,7 +2665,7 @@ void drawRoomZvLine(ZVStruct* zoneData, int color)
|
||||||
cameraZv.ZVZ1 += translateZ;
|
cameraZv.ZVZ1 += translateZ;
|
||||||
cameraZv.ZVZ2 += translateZ;
|
cameraZv.ZVZ2 += translateZ;
|
||||||
|
|
||||||
if(checkZvCollision(&cameraZv,zoneData))
|
if(CubeIntersect(&cameraZv,zoneData))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -2728,7 +2728,7 @@ void drawZone(char* zoneData,int color)
|
||||||
tempZv.ZVZ1 = READ_LE_S16(zoneData+0x08);
|
tempZv.ZVZ1 = READ_LE_S16(zoneData+0x08);
|
||||||
tempZv.ZVZ2 = READ_LE_S16(zoneData+0x0A);
|
tempZv.ZVZ2 = READ_LE_S16(zoneData+0x0A);
|
||||||
|
|
||||||
if(checkZvCollision(&cameraZv,&tempZv))
|
if(CubeIntersect(&cameraZv,&tempZv))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -2768,7 +2768,7 @@ void drawSceZone(int roomNumber)
|
||||||
memcpy(&dataLocal,&roomDataTable[roomNumber].sceZoneTable[i].zv,sizeof(ZVStruct));
|
memcpy(&dataLocal,&roomDataTable[roomNumber].sceZoneTable[i].zv,sizeof(ZVStruct));
|
||||||
if(roomNumber!=currentRoom)
|
if(roomNumber!=currentRoom)
|
||||||
{
|
{
|
||||||
getZvRelativePosition(&dataLocal,roomNumber,currentRoom);
|
AdjustZV(&dataLocal,roomNumber,currentRoom);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if(roomDataTable[roomNumber].sceZoneTable[i].parameter == 4)
|
// if(roomDataTable[roomNumber].sceZoneTable[i].parameter == 4)
|
||||||
|
@ -2788,11 +2788,11 @@ void drawHardCol(int roomNumber)
|
||||||
/*if(roomDataTable[roomNumber].hardColTable[i].type != 9)
|
/*if(roomDataTable[roomNumber].hardColTable[i].type != 9)
|
||||||
continue;*/
|
continue;*/
|
||||||
|
|
||||||
copyZv(&roomDataTable[roomNumber].hardColTable[i].zv,&dataLocal);
|
CopyZV(&roomDataTable[roomNumber].hardColTable[i].zv,&dataLocal);
|
||||||
|
|
||||||
if(roomNumber!=currentRoom)
|
if(roomNumber!=currentRoom)
|
||||||
{
|
{
|
||||||
getZvRelativePosition(&dataLocal,roomNumber,currentRoom);
|
AdjustZV(&dataLocal,roomNumber,currentRoom);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(roomDataTable[roomNumber].hardColTable[i].type)
|
switch(roomDataTable[roomNumber].hardColTable[i].type)
|
||||||
|
@ -3032,7 +3032,7 @@ void AllRedraw(int flagFlip)
|
||||||
osystem_CopyBlockPhys((unsigned char*)logicalScreen, 0, 0, 320, 200);
|
osystem_CopyBlockPhys((unsigned char*)logicalScreen, 0, 0, 320, 200);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
tObject* actorPtr = &objectTable[currentDrawActor];
|
tObject* actorPtr = &ListObjets[currentDrawActor];
|
||||||
|
|
||||||
// this is commented out to draw actors backed into the background
|
// this is commented out to draw actors backed into the background
|
||||||
//if(actorPtr->_flags & (AF_ANIMATED + AF_DRAWABLE + AF_SPECIAL))
|
//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)
|
void addActorToBgInscrust(int actorIdx)
|
||||||
{
|
{
|
||||||
objectTable[actorIdx].objectType |= AF_BOXIFY + AF_DRAWABLE;
|
ListObjets[actorIdx].objectType |= AF_BOXIFY + AF_DRAWABLE;
|
||||||
objectTable[actorIdx].objectType &= ~AF_ANIMATED;
|
ListObjets[actorIdx].objectType &= ~AF_ANIMATED;
|
||||||
|
|
||||||
//FlagRefreshAux2 = 1;
|
//FlagRefreshAux2 = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int checkZvCollision(ZVStruct* zvPtr1,ZVStruct* zvPtr2)
|
int CubeIntersect(ZVStruct* zvPtr1,ZVStruct* zvPtr2)
|
||||||
{
|
{
|
||||||
if(zvPtr1->ZVX1 >= zvPtr2->ZVX2)
|
if(zvPtr1->ZVX1 >= zvPtr2->ZVX2)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -3217,7 +3217,7 @@ int checkZvCollision(ZVStruct* zvPtr1,ZVStruct* zvPtr2)
|
||||||
return 1;
|
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 Xdif = 10*(roomDataTable[destRoom].worldX - roomDataTable[startRoom].worldX);
|
||||||
unsigned int Ydif = 10*(roomDataTable[destRoom].worldY - roomDataTable[startRoom].worldY);
|
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;
|
zvPtr->ZVZ2 += Zdif;
|
||||||
}
|
}
|
||||||
|
|
||||||
int checkObjectCollisions(int actorIdx, ZVStruct* zvPtr)
|
int CheckObjectCol(int actorIdx, ZVStruct* zvPtr)
|
||||||
{
|
{
|
||||||
int currentCollisionSlot = 0;
|
int currentCollisionSlot = 0;
|
||||||
tObject* currentActor = objectTable.data();
|
|
||||||
int actorRoom = objectTable[actorIdx].room;
|
int actorRoom = ListObjets[actorIdx].room;
|
||||||
|
|
||||||
for(int i=0;i<3;i++)
|
for(int i=0;i<3;i++)
|
||||||
{
|
{
|
||||||
|
@ -3244,19 +3244,24 @@ int checkObjectCollisions(int actorIdx, ZVStruct* zvPtr)
|
||||||
|
|
||||||
for(int i=0;i<NUM_MAX_OBJECT;i++)
|
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;
|
ZVStruct* currentActorZv = ¤tActor->zv;
|
||||||
|
|
||||||
if (currentActor->room != actorRoom)
|
if (currentActor->room != actorRoom)
|
||||||
{
|
{
|
||||||
ZVStruct localZv;
|
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;
|
currentProcessedActorPtr->COL[currentCollisionSlot++] = i;
|
||||||
|
|
||||||
|
@ -3266,7 +3271,7 @@ int checkObjectCollisions(int actorIdx, ZVStruct* zvPtr)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(checkZvCollision(zvPtr,currentActorZv))
|
if (CubeIntersect(zvPtr, currentActorZv))
|
||||||
{
|
{
|
||||||
currentProcessedActorPtr->COL[currentCollisionSlot++] = i;
|
currentProcessedActorPtr->COL[currentCollisionSlot++] = i;
|
||||||
|
|
||||||
|
@ -3275,8 +3280,6 @@ int checkObjectCollisions(int actorIdx, ZVStruct* zvPtr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
currentActor++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return(currentCollisionSlot);
|
return(currentCollisionSlot);
|
||||||
}
|
}
|
||||||
|
@ -3319,7 +3322,7 @@ void take(int objIdx)
|
||||||
objPtr->stage = -1;
|
objPtr->stage = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void hardColSuB1Sub1(int flag)
|
void Glisser(int flag)
|
||||||
{
|
{
|
||||||
switch(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 oldpos = 0;
|
||||||
s32 var_8;
|
s32 oldtype;
|
||||||
s32 halfX;
|
s32 halfX;
|
||||||
s32 halfZ;
|
s32 halfZ;
|
||||||
s32 var_A;
|
s32 pos;
|
||||||
s32 var_6;
|
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
|
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
|
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
|
else
|
||||||
{
|
{
|
||||||
if(!flag)
|
if(oldpos == 0)
|
||||||
{
|
{
|
||||||
var_8 = 0;
|
oldtype = 0;
|
||||||
|
|
||||||
hardColStepZ = 0;
|
hardColStepZ = 0;
|
||||||
hardColStepX = 0;
|
hardColStepX = 0;
|
||||||
|
@ -3392,77 +3401,76 @@ void handleCollision(ZVStruct* startZv, ZVStruct* zvPtr2, ZVStruct* zvPtr3)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var_8 = 1;
|
oldtype = 1; // corner
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
halfX = (zvPtr2->ZVX1 + zvPtr2->ZVX2) / 2;
|
halfX = (animatedZv->ZVX1 + animatedZv->ZVX2) / 2;
|
||||||
halfZ = (zvPtr2->ZVZ1 + zvPtr2->ZVZ2) / 2;
|
halfZ = (animatedZv->ZVZ1 + animatedZv->ZVZ2) / 2;
|
||||||
|
|
||||||
if(zvPtr3->ZVX1 > halfX)
|
if(fixZv->ZVX1 > halfX)
|
||||||
{
|
{
|
||||||
var_A = 4;
|
pos = 4; // left
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(zvPtr3->ZVX2 < halfX)
|
if(fixZv->ZVX2 < halfX)
|
||||||
{
|
{
|
||||||
var_A = 0;
|
pos = 0; // center
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var_A = 8;
|
pos = 8; // right
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(zvPtr3->ZVZ1 > halfZ)
|
if(fixZv->ZVZ1 > halfZ)
|
||||||
{
|
{
|
||||||
var_A |= 1;
|
pos |= 1; // up
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(zvPtr3->ZVZ2 < halfZ)
|
if(fixZv->ZVZ2 < halfZ)
|
||||||
{
|
{
|
||||||
var_A |= 0; // once again, not that much usefull
|
pos |= 0; // center
|
||||||
}
|
}
|
||||||
else
|
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
|
else
|
||||||
{
|
{
|
||||||
if(!var_A)
|
if(pos == 0)
|
||||||
{
|
{
|
||||||
var_6 = 0;
|
type = 0; // center
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var_6 = 1;
|
type = 1; // border
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(var_8 == 1)
|
if(oldtype == 1) // border
|
||||||
{
|
{
|
||||||
hardColSuB1Sub1(flag);
|
Glisser(oldpos);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
if(var_6 == 1 && (var_A & flag))
|
|
||||||
{
|
{
|
||||||
hardColSuB1Sub1(var_A);
|
if ((type == 1) && (pos & oldpos))
|
||||||
return;
|
{
|
||||||
|
Glisser(pos);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
if(var_A == flag || flag == 15)
|
if ((pos == oldpos) || (pos+oldpos == 15))
|
||||||
{
|
{
|
||||||
int Xmod = abs(zvPtr2->ZVX1 - startZv->ZVX1); // recheck
|
int Xmod = abs(animatedZv->ZVX1 - oldZv->ZVX1); // recheck
|
||||||
int Zmod = abs(zvPtr2->ZVZ1 - startZv->ZVZ1);
|
int Zmod = abs(animatedZv->ZVZ1 - oldZv->ZVZ1);
|
||||||
|
|
||||||
if (Xmod > Zmod)
|
if (Xmod > Zmod)
|
||||||
{
|
{
|
||||||
|
@ -3475,14 +3483,16 @@ void handleCollision(ZVStruct* startZv, ZVStruct* zvPtr2, ZVStruct* zvPtr3)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(!var_6 || (var_6 == 1 && !(var_A & flag)))
|
if ((type == 0) || ((type == 1) && ((pos & oldpos) == 0)))
|
||||||
{
|
{
|
||||||
hardColStepZ = 0;
|
hardColStepZ = 0;
|
||||||
hardColStepX = 0;
|
hardColStepX = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
hardColSuB1Sub1(flag&var_A);
|
Glisser(oldpos & pos);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3605,7 +3615,7 @@ int findBestCamera(void)
|
||||||
int foundAngle = 32000;
|
int foundAngle = 32000;
|
||||||
int foundCamera = -1;
|
int foundCamera = -1;
|
||||||
|
|
||||||
tObject* actorPtr = &objectTable[currentCameraTargetActor];
|
tObject* actorPtr = &ListObjets[currentCameraTargetActor];
|
||||||
|
|
||||||
int x1 = actorPtr->zv.ZVX1/10;
|
int x1 = actorPtr->zv.ZVX1/10;
|
||||||
int x2 = actorPtr->zv.ZVX2/10;
|
int x2 = actorPtr->zv.ZVX2/10;
|
||||||
|
@ -3658,7 +3668,7 @@ void GereSwitchCamera(void)
|
||||||
int zvz1;
|
int zvz1;
|
||||||
int zvz2;
|
int zvz2;
|
||||||
|
|
||||||
actorPtr = &objectTable[currentCameraTargetActor];
|
actorPtr = &ListObjets[currentCameraTargetActor];
|
||||||
|
|
||||||
zvx1 = actorPtr->zv.ZVX1/10;
|
zvx1 = actorPtr->zv.ZVX1/10;
|
||||||
zvx2 = actorPtr->zv.ZVX2/10;
|
zvx2 = actorPtr->zv.ZVX2/10;
|
||||||
|
@ -3890,9 +3900,9 @@ int checkLineProjectionWithActors( int actorIdx, int X, int Y, int Z, int beta,
|
||||||
}
|
}
|
||||||
else
|
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))
|
if(currentActorPtr->indexInWorld != -1 && i != actorIdx && !(currentActorPtr->objectType & AF_SPECIAL))
|
||||||
{
|
{
|
||||||
ZVStruct* zvPtr = ¤tActorPtr->zv;
|
ZVStruct* zvPtr = ¤tActorPtr->zv;
|
||||||
|
@ -3901,10 +3911,10 @@ int checkLineProjectionWithActors( int actorIdx, int X, int Y, int Z, int beta,
|
||||||
{
|
{
|
||||||
ZVStruct localZv2;
|
ZVStruct localZv2;
|
||||||
|
|
||||||
copyZv(&localZv, &localZv2);
|
CopyZV(&localZv, &localZv2);
|
||||||
getZvRelativePosition(&localZv2, room, currentActorPtr->room);
|
AdjustZV(&localZv2, room, currentActorPtr->room);
|
||||||
|
|
||||||
if(!checkZvCollision(&localZv2,zvPtr))
|
if(!CubeIntersect(&localZv2,zvPtr))
|
||||||
{
|
{
|
||||||
currentActorPtr++;
|
currentActorPtr++;
|
||||||
continue;
|
continue;
|
||||||
|
@ -3912,7 +3922,7 @@ int checkLineProjectionWithActors( int actorIdx, int X, int Y, int Z, int beta,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(!checkZvCollision(&localZv,zvPtr))
|
if(!CubeIntersect(&localZv,zvPtr))
|
||||||
{
|
{
|
||||||
currentActorPtr++;
|
currentActorPtr++;
|
||||||
continue;
|
continue;
|
||||||
|
@ -3940,7 +3950,7 @@ void PutAtObjet(int objIdx, int objIdxToPutAt)
|
||||||
|
|
||||||
if(objPtrToPutAt->objIndex != -1)
|
if(objPtrToPutAt->objIndex != -1)
|
||||||
{
|
{
|
||||||
tObject* actorToPutAtPtr = &objectTable[objPtrToPutAt->objIndex];
|
tObject* actorToPutAtPtr = &ListObjets[objPtrToPutAt->objIndex];
|
||||||
|
|
||||||
DeleteInventoryObjet(objIdx);
|
DeleteInventoryObjet(objIdx);
|
||||||
|
|
||||||
|
@ -4046,7 +4056,7 @@ void throwStoppedAt(int x, int z)
|
||||||
while(!foundPosition)
|
while(!foundPosition)
|
||||||
{
|
{
|
||||||
walkStep(0,-step,currentProcessedActorPtr->beta+0x200);
|
walkStep(0,-step,currentProcessedActorPtr->beta+0x200);
|
||||||
copyZv(&zvLocal,&zvCopy);
|
CopyZV(&zvLocal,&zvCopy);
|
||||||
|
|
||||||
x2 = x + animMoveX;
|
x2 = x + animMoveX;
|
||||||
z2 = z + animMoveZ;
|
z2 = z + animMoveZ;
|
||||||
|
|
|
@ -14,7 +14,7 @@ void GereSwitchCamera(void);
|
||||||
void GenereActiveList();
|
void GenereActiveList();
|
||||||
void GenereAffList();
|
void GenereAffList();
|
||||||
void AllRedraw(int mode);
|
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 checkLineProjectionWithActors( int actorIdx, int X, int Y, int Z, int beta, int room, int param );
|
||||||
int AsmCheckListCol(ZVStruct* zvPtr, roomDataStruct* pRoomData);
|
int AsmCheckListCol(ZVStruct* zvPtr, roomDataStruct* pRoomData);
|
||||||
void DeleteInventoryObjet(int objIdx);
|
void DeleteInventoryObjet(int objIdx);
|
||||||
|
@ -38,12 +38,12 @@ void OpenProgram(void);
|
||||||
void freeAll(void);
|
void freeAll(void);
|
||||||
void startGame(int startupEtage, int startupRoom, int allowSystemMenu);
|
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 AffRect(int x1, int y1, int x2, int y2, char color); // fast recode. No RE
|
||||||
void copyZv(ZVStruct* source, ZVStruct* dest);
|
void CopyZV(ZVStruct* source, ZVStruct* dest);
|
||||||
void getZvRelativePosition(ZVStruct* zvPtr, int startRoom, int destRoom);
|
void AdjustZV(ZVStruct* zvPtr, int startRoom, int destRoom);
|
||||||
void take(int objIdx);
|
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);
|
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 PutAtObjet(int objIdx, int objIdxToPutAt);
|
||||||
void SetClip(int left, int top, int right, int bottom);
|
void SetClip(int left, int top, int right, int bottom);
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ void deleteObject(int objIdx);
|
||||||
void removeFromBGIncrust(int actorIdx);
|
void removeFromBGIncrust(int actorIdx);
|
||||||
void makeMessage(int messageIdx);
|
void makeMessage(int messageIdx);
|
||||||
int drawTextOverlay(void);
|
int drawTextOverlay(void);
|
||||||
void handleCollision(ZVStruct* startZv, ZVStruct* zvPtr2, ZVStruct* zvPtr3);
|
void GereCollision(ZVStruct* startZv, ZVStruct* zvPtr2, ZVStruct* zvPtr3);
|
||||||
|
|
||||||
void addActorToBgInscrust(int actorIdx);
|
void addActorToBgInscrust(int actorIdx);
|
||||||
|
|
||||||
|
|
|
@ -113,7 +113,7 @@ void PlayWorld(int allowSystemMenu, int deltaTime)
|
||||||
|
|
||||||
for(currentProcessedActorIdx = 0; currentProcessedActorIdx < NUM_MAX_OBJECT; currentProcessedActorIdx++)
|
for(currentProcessedActorIdx = 0; currentProcessedActorIdx < NUM_MAX_OBJECT; currentProcessedActorIdx++)
|
||||||
{
|
{
|
||||||
currentProcessedActorPtr = &objectTable[currentProcessedActorIdx];
|
currentProcessedActorPtr = &ListObjets[currentProcessedActorIdx];
|
||||||
if(currentProcessedActorPtr->indexInWorld >= 0)
|
if(currentProcessedActorPtr->indexInWorld >= 0)
|
||||||
{
|
{
|
||||||
currentProcessedActorPtr->COL_BY = -1;
|
currentProcessedActorPtr->COL_BY = -1;
|
||||||
|
@ -126,7 +126,7 @@ void PlayWorld(int allowSystemMenu, int deltaTime)
|
||||||
|
|
||||||
for(currentProcessedActorIdx = 0; currentProcessedActorIdx < NUM_MAX_OBJECT; currentProcessedActorIdx++)
|
for(currentProcessedActorIdx = 0; currentProcessedActorIdx < NUM_MAX_OBJECT; currentProcessedActorIdx++)
|
||||||
{
|
{
|
||||||
currentProcessedActorPtr = &objectTable[currentProcessedActorIdx];
|
currentProcessedActorPtr = &ListObjets[currentProcessedActorIdx];
|
||||||
if(currentProcessedActorPtr->indexInWorld >= 0)
|
if(currentProcessedActorPtr->indexInWorld >= 0)
|
||||||
{
|
{
|
||||||
int flag = currentProcessedActorPtr->objectType;
|
int flag = currentProcessedActorPtr->objectType;
|
||||||
|
@ -150,7 +150,7 @@ void PlayWorld(int allowSystemMenu, int deltaTime)
|
||||||
|
|
||||||
for(currentProcessedActorIdx = 0; currentProcessedActorIdx < NUM_MAX_OBJECT; currentProcessedActorIdx++)
|
for(currentProcessedActorIdx = 0; currentProcessedActorIdx < NUM_MAX_OBJECT; currentProcessedActorIdx++)
|
||||||
{
|
{
|
||||||
currentProcessedActorPtr = &objectTable[currentProcessedActorIdx];
|
currentProcessedActorPtr = &ListObjets[currentProcessedActorIdx];
|
||||||
if(currentProcessedActorPtr->indexInWorld >= 0)
|
if(currentProcessedActorPtr->indexInWorld >= 0)
|
||||||
{
|
{
|
||||||
if(currentProcessedActorPtr->life != -1)
|
if(currentProcessedActorPtr->life != -1)
|
||||||
|
@ -209,7 +209,7 @@ void PlayWorld(int allowSystemMenu, int deltaTime)
|
||||||
|
|
||||||
for (currentProcessedActorIdx = 0; currentProcessedActorIdx < NUM_MAX_OBJECT; currentProcessedActorIdx++)
|
for (currentProcessedActorIdx = 0; currentProcessedActorIdx < NUM_MAX_OBJECT; currentProcessedActorIdx++)
|
||||||
{
|
{
|
||||||
currentProcessedActorPtr = &objectTable[currentProcessedActorIdx];
|
currentProcessedActorPtr = &ListObjets[currentProcessedActorIdx];
|
||||||
if (currentProcessedActorPtr->indexInWorld >= 0)
|
if (currentProcessedActorPtr->indexInWorld >= 0)
|
||||||
{
|
{
|
||||||
if (currentProcessedActorPtr->life != -1)
|
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 i;
|
||||||
int j;
|
int j;
|
||||||
tObject* actorPtr = objectTable.data();
|
tObject* actorPtr = ListObjets.data();
|
||||||
ZVStruct* zvPtr;
|
ZVStruct* zvPtr;
|
||||||
|
|
||||||
for(i=0;i<NUM_MAX_OBJECT;i++)
|
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))
|
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;
|
x = 0;
|
||||||
y = 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)
|
// 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.
|
// We still need to create a 4:3 window for the actual display on screen.
|
||||||
int scale = 4;
|
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);
|
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++)
|
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.
|
/* 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...
|
// 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)
|
if(i!=currentCameraTargetActor)
|
||||||
{
|
{
|
||||||
objectTable[i].worldX -= var_E;
|
ListObjets[i].worldX -= var_E;
|
||||||
objectTable[i].worldY += var_C;
|
ListObjets[i].worldY += var_C;
|
||||||
objectTable[i].worldZ += var_A;
|
ListObjets[i].worldZ += var_A;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
objectTable[i].worldX = objectTable[i].roomX;
|
ListObjets[i].worldX = ListObjets[i].roomX;
|
||||||
objectTable[i].worldY = objectTable[i].roomY;
|
ListObjets[i].worldY = ListObjets[i].roomY;
|
||||||
objectTable[i].worldZ = objectTable[i].roomZ;
|
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++)
|
for(i=0;i<NUM_MAX_OBJECT;i++)
|
||||||
{
|
{
|
||||||
ASSERT(sizeof(objectTable[i].indexInWorld) == 2);
|
ASSERT(sizeof(ListObjets[i].indexInWorld) == 2);
|
||||||
fread(&objectTable[i].indexInWorld,2,1,fHandle);
|
fread(&ListObjets[i].indexInWorld,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].bodyNum) == 2);
|
ASSERT(sizeof(ListObjets[i].bodyNum) == 2);
|
||||||
fread(&objectTable[i].bodyNum,2,1,fHandle);
|
fread(&ListObjets[i].bodyNum,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].objectType) == 2);
|
ASSERT(sizeof(ListObjets[i].objectType) == 2);
|
||||||
fread(&objectTable[i].objectType,2,1,fHandle);
|
fread(&ListObjets[i].objectType,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].dynFlags) == 2);
|
ASSERT(sizeof(ListObjets[i].dynFlags) == 2);
|
||||||
fread(&objectTable[i].dynFlags,2,1,fHandle);
|
fread(&ListObjets[i].dynFlags,2,1,fHandle);
|
||||||
|
|
||||||
// ASSERT(sizeof(actorTable[i].zv.ZVX1) == 2);
|
// ASSERT(sizeof(actorTable[i].zv.ZVX1) == 2);
|
||||||
fread(&objectTable[i].zv.ZVX1,2,1,fHandle);
|
fread(&ListObjets[i].zv.ZVX1,2,1,fHandle);
|
||||||
objectTable[i].zv.ZVX1 = (s16)objectTable[i].zv.ZVX1;
|
ListObjets[i].zv.ZVX1 = (s16)ListObjets[i].zv.ZVX1;
|
||||||
|
|
||||||
// ASSERT(sizeof(actorTable[i].zv.ZVX2) == 2);
|
// ASSERT(sizeof(actorTable[i].zv.ZVX2) == 2);
|
||||||
fread(&objectTable[i].zv.ZVX2,2,1,fHandle);
|
fread(&ListObjets[i].zv.ZVX2,2,1,fHandle);
|
||||||
objectTable[i].zv.ZVX2 = (s16)objectTable[i].zv.ZVX2;
|
ListObjets[i].zv.ZVX2 = (s16)ListObjets[i].zv.ZVX2;
|
||||||
|
|
||||||
// ASSERT(sizeof(actorTable[i].zv.ZVY1) == 2);
|
// ASSERT(sizeof(actorTable[i].zv.ZVY1) == 2);
|
||||||
fread(&objectTable[i].zv.ZVY1,2,1,fHandle);
|
fread(&ListObjets[i].zv.ZVY1,2,1,fHandle);
|
||||||
objectTable[i].zv.ZVY1 = (s16)objectTable[i].zv.ZVY1;
|
ListObjets[i].zv.ZVY1 = (s16)ListObjets[i].zv.ZVY1;
|
||||||
|
|
||||||
// ASSERT(sizeof(actorTable[i].zv.ZVY2) == 2);
|
// ASSERT(sizeof(actorTable[i].zv.ZVY2) == 2);
|
||||||
fread(&objectTable[i].zv.ZVY2,2,1,fHandle);
|
fread(&ListObjets[i].zv.ZVY2,2,1,fHandle);
|
||||||
objectTable[i].zv.ZVY2 = (s16)objectTable[i].zv.ZVY2;
|
ListObjets[i].zv.ZVY2 = (s16)ListObjets[i].zv.ZVY2;
|
||||||
|
|
||||||
// ASSERT(sizeof(actorTable[i].zv.ZVZ1) == 2);
|
// ASSERT(sizeof(actorTable[i].zv.ZVZ1) == 2);
|
||||||
fread(&objectTable[i].zv.ZVZ1,2,1,fHandle);
|
fread(&ListObjets[i].zv.ZVZ1,2,1,fHandle);
|
||||||
objectTable[i].zv.ZVZ1 = (s16)objectTable[i].zv.ZVZ1;
|
ListObjets[i].zv.ZVZ1 = (s16)ListObjets[i].zv.ZVZ1;
|
||||||
|
|
||||||
// ASSERT(sizeof(actorTable[i].zv.ZVZ2) == 2);
|
// ASSERT(sizeof(actorTable[i].zv.ZVZ2) == 2);
|
||||||
fread(&objectTable[i].zv.ZVZ2,2,1,fHandle);
|
fread(&ListObjets[i].zv.ZVZ2,2,1,fHandle);
|
||||||
objectTable[i].zv.ZVZ2 = (s16)objectTable[i].zv.ZVZ2;
|
ListObjets[i].zv.ZVZ2 = (s16)ListObjets[i].zv.ZVZ2;
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].screenXMin) == 2);
|
ASSERT(sizeof(ListObjets[i].screenXMin) == 2);
|
||||||
fread(&objectTable[i].screenXMin,2,1,fHandle);
|
fread(&ListObjets[i].screenXMin,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].screenYMin) == 2);
|
ASSERT(sizeof(ListObjets[i].screenYMin) == 2);
|
||||||
fread(&objectTable[i].screenYMin,2,1,fHandle);
|
fread(&ListObjets[i].screenYMin,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].screenXMax) == 2);
|
ASSERT(sizeof(ListObjets[i].screenXMax) == 2);
|
||||||
fread(&objectTable[i].screenXMax,2,1,fHandle);
|
fread(&ListObjets[i].screenXMax,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].screenYMax) == 2);
|
ASSERT(sizeof(ListObjets[i].screenYMax) == 2);
|
||||||
fread(&objectTable[i].screenYMax,2,1,fHandle);
|
fread(&ListObjets[i].screenYMax,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].roomX) == 2);
|
ASSERT(sizeof(ListObjets[i].roomX) == 2);
|
||||||
fread(&objectTable[i].roomX,2,1,fHandle);
|
fread(&ListObjets[i].roomX,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].roomY) == 2);
|
ASSERT(sizeof(ListObjets[i].roomY) == 2);
|
||||||
fread(&objectTable[i].roomY,2,1,fHandle);
|
fread(&ListObjets[i].roomY,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].roomZ) == 2);
|
ASSERT(sizeof(ListObjets[i].roomZ) == 2);
|
||||||
fread(&objectTable[i].roomZ,2,1,fHandle);
|
fread(&ListObjets[i].roomZ,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].worldX) == 2);
|
ASSERT(sizeof(ListObjets[i].worldX) == 2);
|
||||||
fread(&objectTable[i].worldX,2,1,fHandle);
|
fread(&ListObjets[i].worldX,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].worldY) == 2);
|
ASSERT(sizeof(ListObjets[i].worldY) == 2);
|
||||||
fread(&objectTable[i].worldY,2,1,fHandle);
|
fread(&ListObjets[i].worldY,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].worldZ) == 2);
|
ASSERT(sizeof(ListObjets[i].worldZ) == 2);
|
||||||
fread(&objectTable[i].worldZ,2,1,fHandle);
|
fread(&ListObjets[i].worldZ,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].alpha) == 2);
|
ASSERT(sizeof(ListObjets[i].alpha) == 2);
|
||||||
fread(&objectTable[i].alpha,2,1,fHandle);
|
fread(&ListObjets[i].alpha,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].beta) == 2);
|
ASSERT(sizeof(ListObjets[i].beta) == 2);
|
||||||
fread(&objectTable[i].beta,2,1,fHandle);
|
fread(&ListObjets[i].beta,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].gamma) == 2);
|
ASSERT(sizeof(ListObjets[i].gamma) == 2);
|
||||||
fread(&objectTable[i].gamma,2,1,fHandle);
|
fread(&ListObjets[i].gamma,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].room) == 2);
|
ASSERT(sizeof(ListObjets[i].room) == 2);
|
||||||
fread(&objectTable[i].room,2,1,fHandle);
|
fread(&ListObjets[i].room,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].stage) == 2);
|
ASSERT(sizeof(ListObjets[i].stage) == 2);
|
||||||
fread(&objectTable[i].stage,2,1,fHandle);
|
fread(&ListObjets[i].stage,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].lifeMode) == 2);
|
ASSERT(sizeof(ListObjets[i].lifeMode) == 2);
|
||||||
fread(&objectTable[i].lifeMode,2,1,fHandle);
|
fread(&ListObjets[i].lifeMode,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].life) == 2);
|
ASSERT(sizeof(ListObjets[i].life) == 2);
|
||||||
fread(&objectTable[i].life,2,1,fHandle);
|
fread(&ListObjets[i].life,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].CHRONO) == 4);
|
ASSERT(sizeof(ListObjets[i].CHRONO) == 4);
|
||||||
fread(&objectTable[i].CHRONO,4,1,fHandle);
|
fread(&ListObjets[i].CHRONO,4,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].ROOM_CHRONO) == 4);
|
ASSERT(sizeof(ListObjets[i].ROOM_CHRONO) == 4);
|
||||||
fread(&objectTable[i].ROOM_CHRONO,4,1,fHandle);
|
fread(&ListObjets[i].ROOM_CHRONO,4,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].ANIM) == 2);
|
ASSERT(sizeof(ListObjets[i].ANIM) == 2);
|
||||||
fread(&objectTable[i].ANIM,2,1,fHandle);
|
fread(&ListObjets[i].ANIM,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].animType) == 2);
|
ASSERT(sizeof(ListObjets[i].animType) == 2);
|
||||||
fread(&objectTable[i].animType,2,1,fHandle);
|
fread(&ListObjets[i].animType,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].animInfo) == 2);
|
ASSERT(sizeof(ListObjets[i].animInfo) == 2);
|
||||||
fread(&objectTable[i].animInfo,2,1,fHandle);
|
fread(&ListObjets[i].animInfo,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].newAnim) == 2);
|
ASSERT(sizeof(ListObjets[i].newAnim) == 2);
|
||||||
fread(&objectTable[i].newAnim,2,1,fHandle);
|
fread(&ListObjets[i].newAnim,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].newAnimType) == 2);
|
ASSERT(sizeof(ListObjets[i].newAnimType) == 2);
|
||||||
fread(&objectTable[i].newAnimType,2,1,fHandle);
|
fread(&ListObjets[i].newAnimType,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].newAnimInfo) == 2);
|
ASSERT(sizeof(ListObjets[i].newAnimInfo) == 2);
|
||||||
fread(&objectTable[i].newAnimInfo,2,1,fHandle);
|
fread(&ListObjets[i].newAnimInfo,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].frame) == 2);
|
ASSERT(sizeof(ListObjets[i].frame) == 2);
|
||||||
fread(&objectTable[i].frame,2,1,fHandle);
|
fread(&ListObjets[i].frame,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].numOfFrames) == 2);
|
ASSERT(sizeof(ListObjets[i].numOfFrames) == 2);
|
||||||
fread(&objectTable[i].numOfFrames,2,1,fHandle);
|
fread(&ListObjets[i].numOfFrames,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].END_FRAME) == 2);
|
ASSERT(sizeof(ListObjets[i].END_FRAME) == 2);
|
||||||
fread(&objectTable[i].END_FRAME,2,1,fHandle);
|
fread(&ListObjets[i].END_FRAME,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].flagEndAnim) == 2);
|
ASSERT(sizeof(ListObjets[i].flagEndAnim) == 2);
|
||||||
fread(&objectTable[i].flagEndAnim,2,1,fHandle);
|
fread(&ListObjets[i].flagEndAnim,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].trackMode) == 2);
|
ASSERT(sizeof(ListObjets[i].trackMode) == 2);
|
||||||
fread(&objectTable[i].trackMode,2,1,fHandle);
|
fread(&ListObjets[i].trackMode,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].trackNumber) == 2);
|
ASSERT(sizeof(ListObjets[i].trackNumber) == 2);
|
||||||
fread(&objectTable[i].trackNumber,2,1,fHandle);
|
fread(&ListObjets[i].trackNumber,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].MARK) == 2);
|
ASSERT(sizeof(ListObjets[i].MARK) == 2);
|
||||||
fread(&objectTable[i].MARK,2,1,fHandle);
|
fread(&ListObjets[i].MARK,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].positionInTrack) == 2);
|
ASSERT(sizeof(ListObjets[i].positionInTrack) == 2);
|
||||||
fread(&objectTable[i].positionInTrack,2,1,fHandle);
|
fread(&ListObjets[i].positionInTrack,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].stepX) == 2);
|
ASSERT(sizeof(ListObjets[i].stepX) == 2);
|
||||||
fread(&objectTable[i].stepX,2,1,fHandle);
|
fread(&ListObjets[i].stepX,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].stepY) == 2);
|
ASSERT(sizeof(ListObjets[i].stepY) == 2);
|
||||||
fread(&objectTable[i].stepY,2,1,fHandle);
|
fread(&ListObjets[i].stepY,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].stepZ) == 2); // 45
|
ASSERT(sizeof(ListObjets[i].stepZ) == 2); // 45
|
||||||
fread(&objectTable[i].stepZ,2,1,fHandle);
|
fread(&ListObjets[i].stepZ,2,1,fHandle);
|
||||||
|
|
||||||
loadInterpolatedValue(&objectTable[i].YHandler,fHandle);
|
loadInterpolatedValue(&ListObjets[i].YHandler,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].falling) == 2);
|
ASSERT(sizeof(ListObjets[i].falling) == 2);
|
||||||
fread(&objectTable[i].falling,2,1,fHandle);
|
fread(&ListObjets[i].falling,2,1,fHandle);
|
||||||
|
|
||||||
loadInterpolatedValue(&objectTable[i].rotate,fHandle);
|
loadInterpolatedValue(&ListObjets[i].rotate,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].direction) == 2);
|
ASSERT(sizeof(ListObjets[i].direction) == 2);
|
||||||
fread(&objectTable[i].direction,2,1,fHandle);
|
fread(&ListObjets[i].direction,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].speed) == 2);
|
ASSERT(sizeof(ListObjets[i].speed) == 2);
|
||||||
fread(&objectTable[i].speed,2,1,fHandle);
|
fread(&ListObjets[i].speed,2,1,fHandle);
|
||||||
|
|
||||||
loadInterpolatedValue(&objectTable[i].speedChange,fHandle);
|
loadInterpolatedValue(&ListObjets[i].speedChange,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].COL[0]) == 2);
|
ASSERT(sizeof(ListObjets[i].COL[0]) == 2);
|
||||||
fread(&objectTable[i].COL[0],2,1,fHandle);
|
fread(&ListObjets[i].COL[0],2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].COL[1]) == 2);
|
ASSERT(sizeof(ListObjets[i].COL[1]) == 2);
|
||||||
fread(&objectTable[i].COL[1],2,1,fHandle);
|
fread(&ListObjets[i].COL[1],2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].COL[2]) == 2);
|
ASSERT(sizeof(ListObjets[i].COL[2]) == 2);
|
||||||
fread(&objectTable[i].COL[2],2,1,fHandle);
|
fread(&ListObjets[i].COL[2],2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].COL_BY) == 2);
|
ASSERT(sizeof(ListObjets[i].COL_BY) == 2);
|
||||||
fread(&objectTable[i].COL_BY,2,1,fHandle);
|
fread(&ListObjets[i].COL_BY,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].HARD_DEC) == 2);
|
ASSERT(sizeof(ListObjets[i].HARD_DEC) == 2);
|
||||||
fread(&objectTable[i].HARD_DEC,2,1,fHandle);
|
fread(&ListObjets[i].HARD_DEC,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].HARD_COL) == 2);
|
ASSERT(sizeof(ListObjets[i].HARD_COL) == 2);
|
||||||
fread(&objectTable[i].HARD_COL,2,1,fHandle);
|
fread(&ListObjets[i].HARD_COL,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].HIT) == 2);
|
ASSERT(sizeof(ListObjets[i].HIT) == 2);
|
||||||
fread(&objectTable[i].HIT,2,1,fHandle);
|
fread(&ListObjets[i].HIT,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].HIT_BY) == 2);
|
ASSERT(sizeof(ListObjets[i].HIT_BY) == 2);
|
||||||
fread(&objectTable[i].HIT_BY,2,1,fHandle);
|
fread(&ListObjets[i].HIT_BY,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].animActionType) == 2);
|
ASSERT(sizeof(ListObjets[i].animActionType) == 2);
|
||||||
fread(&objectTable[i].animActionType,2,1,fHandle);
|
fread(&ListObjets[i].animActionType,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].animActionANIM) == 2);
|
ASSERT(sizeof(ListObjets[i].animActionANIM) == 2);
|
||||||
fread(&objectTable[i].animActionANIM,2,1,fHandle);
|
fread(&ListObjets[i].animActionANIM,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].animActionFRAME) == 2);
|
ASSERT(sizeof(ListObjets[i].animActionFRAME) == 2);
|
||||||
fread(&objectTable[i].animActionFRAME,2,1,fHandle);
|
fread(&ListObjets[i].animActionFRAME,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].animActionParam) == 2);
|
ASSERT(sizeof(ListObjets[i].animActionParam) == 2);
|
||||||
fread(&objectTable[i].animActionParam,2,1,fHandle);
|
fread(&ListObjets[i].animActionParam,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].hitForce) == 2);
|
ASSERT(sizeof(ListObjets[i].hitForce) == 2);
|
||||||
fread(&objectTable[i].hitForce,2,1,fHandle);
|
fread(&ListObjets[i].hitForce,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].hotPointID) == 2);
|
ASSERT(sizeof(ListObjets[i].hotPointID) == 2);
|
||||||
fread(&objectTable[i].hotPointID,2,1,fHandle);
|
fread(&ListObjets[i].hotPointID,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].hotPoint.x) == 2);
|
ASSERT(sizeof(ListObjets[i].hotPoint.x) == 2);
|
||||||
fread(&objectTable[i].hotPoint.x,2,1,fHandle);
|
fread(&ListObjets[i].hotPoint.x,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].hotPoint.y) == 2);
|
ASSERT(sizeof(ListObjets[i].hotPoint.y) == 2);
|
||||||
fread(&objectTable[i].hotPoint.x,2,1,fHandle);
|
fread(&ListObjets[i].hotPoint.x,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].hotPoint.z) == 2);
|
ASSERT(sizeof(ListObjets[i].hotPoint.z) == 2);
|
||||||
fread(&objectTable[i].hotPoint.x,2,1,fHandle);
|
fread(&ListObjets[i].hotPoint.x,2,1,fHandle);
|
||||||
}
|
}
|
||||||
fclose(fHandle);
|
fclose(fHandle);
|
||||||
|
|
||||||
for(i=0;i<NUM_MAX_OBJECT;i++)
|
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);
|
sAnimation* animPtr = HQR_Get(HQ_Anims,ListObjets[i].ANIM);
|
||||||
SetAnimObjet(objectTable[i].frame,animPtr,bodyPtr);
|
SetAnimObjet(ListObjets[i].frame,animPtr,bodyPtr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -556,13 +556,13 @@ int makeSaveFile(int entry)
|
||||||
// For safety, destroy special objects before mallocs
|
// For safety, destroy special objects before mallocs
|
||||||
for(i=0;i<NUM_MAX_OBJECT;i++)
|
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;
|
ListObjets[i].indexInWorld = -1;
|
||||||
if (objectTable[i].ANIM == 4)
|
if (ListObjets[i].ANIM == 4)
|
||||||
{
|
{
|
||||||
CVars[getCVarsIdx(FOG_FLAG)] = 0;
|
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++)
|
for(i=0;i<NUM_MAX_OBJECT;i++)
|
||||||
{
|
{
|
||||||
ASSERT(sizeof(objectTable[i].indexInWorld) == 2);
|
ASSERT(sizeof(ListObjets[i].indexInWorld) == 2);
|
||||||
fwrite(&objectTable[i].indexInWorld,2,1,fHandle);
|
fwrite(&ListObjets[i].indexInWorld,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].bodyNum) == 2);
|
ASSERT(sizeof(ListObjets[i].bodyNum) == 2);
|
||||||
fwrite(&objectTable[i].bodyNum,2,1,fHandle);
|
fwrite(&ListObjets[i].bodyNum,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].objectType) == 2);
|
ASSERT(sizeof(ListObjets[i].objectType) == 2);
|
||||||
fwrite(&objectTable[i].objectType,2,1,fHandle);
|
fwrite(&ListObjets[i].objectType,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].dynFlags) == 2);
|
ASSERT(sizeof(ListObjets[i].dynFlags) == 2);
|
||||||
fwrite(&objectTable[i].dynFlags,2,1,fHandle);
|
fwrite(&ListObjets[i].dynFlags,2,1,fHandle);
|
||||||
|
|
||||||
// ASSERT(sizeof(actorTable[i].zv.ZVX1) == 2);
|
// ASSERT(sizeof(actorTable[i].zv.ZVX1) == 2);
|
||||||
fwrite(&objectTable[i].zv.ZVX1,2,1,fHandle);
|
fwrite(&ListObjets[i].zv.ZVX1,2,1,fHandle);
|
||||||
objectTable[i].zv.ZVX1 = (s16)objectTable[i].zv.ZVX1;
|
ListObjets[i].zv.ZVX1 = (s16)ListObjets[i].zv.ZVX1;
|
||||||
|
|
||||||
// ASSERT(sizeof(actorTable[i].zv.ZVX2) == 2);
|
// ASSERT(sizeof(actorTable[i].zv.ZVX2) == 2);
|
||||||
fwrite(&objectTable[i].zv.ZVX2,2,1,fHandle);
|
fwrite(&ListObjets[i].zv.ZVX2,2,1,fHandle);
|
||||||
objectTable[i].zv.ZVX2 = (s16)objectTable[i].zv.ZVX2;
|
ListObjets[i].zv.ZVX2 = (s16)ListObjets[i].zv.ZVX2;
|
||||||
|
|
||||||
// ASSERT(sizeof(actorTable[i].zv.ZVY1) == 2);
|
// 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);
|
// 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);
|
// 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);
|
// 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);
|
ASSERT(sizeof(ListObjets[i].screenXMin) == 2);
|
||||||
fwrite(&objectTable[i].screenXMin,2,1,fHandle);
|
fwrite(&ListObjets[i].screenXMin,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].screenYMin) == 2);
|
ASSERT(sizeof(ListObjets[i].screenYMin) == 2);
|
||||||
fwrite(&objectTable[i].screenYMin,2,1,fHandle);
|
fwrite(&ListObjets[i].screenYMin,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].screenXMax) == 2);
|
ASSERT(sizeof(ListObjets[i].screenXMax) == 2);
|
||||||
fwrite(&objectTable[i].screenXMax,2,1,fHandle);
|
fwrite(&ListObjets[i].screenXMax,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].screenYMax) == 2);
|
ASSERT(sizeof(ListObjets[i].screenYMax) == 2);
|
||||||
fwrite(&objectTable[i].screenYMax,2,1,fHandle);
|
fwrite(&ListObjets[i].screenYMax,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].roomX) == 2);
|
ASSERT(sizeof(ListObjets[i].roomX) == 2);
|
||||||
fwrite(&objectTable[i].roomX,2,1,fHandle);
|
fwrite(&ListObjets[i].roomX,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].roomY) == 2);
|
ASSERT(sizeof(ListObjets[i].roomY) == 2);
|
||||||
fwrite(&objectTable[i].roomY,2,1,fHandle);
|
fwrite(&ListObjets[i].roomY,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].roomZ) == 2);
|
ASSERT(sizeof(ListObjets[i].roomZ) == 2);
|
||||||
fwrite(&objectTable[i].roomZ,2,1,fHandle);
|
fwrite(&ListObjets[i].roomZ,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].worldX) == 2);
|
ASSERT(sizeof(ListObjets[i].worldX) == 2);
|
||||||
fwrite(&objectTable[i].worldX,2,1,fHandle);
|
fwrite(&ListObjets[i].worldX,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].worldY) == 2);
|
ASSERT(sizeof(ListObjets[i].worldY) == 2);
|
||||||
fwrite(&objectTable[i].worldY,2,1,fHandle);
|
fwrite(&ListObjets[i].worldY,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].worldZ) == 2);
|
ASSERT(sizeof(ListObjets[i].worldZ) == 2);
|
||||||
fwrite(&objectTable[i].worldZ,2,1,fHandle);
|
fwrite(&ListObjets[i].worldZ,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].alpha) == 2);
|
ASSERT(sizeof(ListObjets[i].alpha) == 2);
|
||||||
fwrite(&objectTable[i].alpha,2,1,fHandle);
|
fwrite(&ListObjets[i].alpha,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].beta) == 2);
|
ASSERT(sizeof(ListObjets[i].beta) == 2);
|
||||||
fwrite(&objectTable[i].beta,2,1,fHandle);
|
fwrite(&ListObjets[i].beta,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].gamma) == 2);
|
ASSERT(sizeof(ListObjets[i].gamma) == 2);
|
||||||
fwrite(&objectTable[i].gamma,2,1,fHandle);
|
fwrite(&ListObjets[i].gamma,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].room) == 2);
|
ASSERT(sizeof(ListObjets[i].room) == 2);
|
||||||
fwrite(&objectTable[i].room,2,1,fHandle);
|
fwrite(&ListObjets[i].room,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].stage) == 2);
|
ASSERT(sizeof(ListObjets[i].stage) == 2);
|
||||||
fwrite(&objectTable[i].stage,2,1,fHandle);
|
fwrite(&ListObjets[i].stage,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].lifeMode) == 2);
|
ASSERT(sizeof(ListObjets[i].lifeMode) == 2);
|
||||||
fwrite(&objectTable[i].lifeMode,2,1,fHandle);
|
fwrite(&ListObjets[i].lifeMode,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].life) == 2);
|
ASSERT(sizeof(ListObjets[i].life) == 2);
|
||||||
fwrite(&objectTable[i].life,2,1,fHandle);
|
fwrite(&ListObjets[i].life,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].CHRONO) == 4);
|
ASSERT(sizeof(ListObjets[i].CHRONO) == 4);
|
||||||
fwrite(&objectTable[i].CHRONO,4,1,fHandle);
|
fwrite(&ListObjets[i].CHRONO,4,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].ROOM_CHRONO) == 4);
|
ASSERT(sizeof(ListObjets[i].ROOM_CHRONO) == 4);
|
||||||
fwrite(&objectTable[i].ROOM_CHRONO,4,1,fHandle);
|
fwrite(&ListObjets[i].ROOM_CHRONO,4,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].ANIM) == 2);
|
ASSERT(sizeof(ListObjets[i].ANIM) == 2);
|
||||||
fwrite(&objectTable[i].ANIM,2,1,fHandle);
|
fwrite(&ListObjets[i].ANIM,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].animType) == 2);
|
ASSERT(sizeof(ListObjets[i].animType) == 2);
|
||||||
fwrite(&objectTable[i].animType,2,1,fHandle);
|
fwrite(&ListObjets[i].animType,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].animInfo) == 2);
|
ASSERT(sizeof(ListObjets[i].animInfo) == 2);
|
||||||
fwrite(&objectTable[i].animInfo,2,1,fHandle);
|
fwrite(&ListObjets[i].animInfo,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].newAnim) == 2);
|
ASSERT(sizeof(ListObjets[i].newAnim) == 2);
|
||||||
fwrite(&objectTable[i].newAnim,2,1,fHandle);
|
fwrite(&ListObjets[i].newAnim,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].newAnimType) == 2);
|
ASSERT(sizeof(ListObjets[i].newAnimType) == 2);
|
||||||
fwrite(&objectTable[i].newAnimType,2,1,fHandle);
|
fwrite(&ListObjets[i].newAnimType,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].newAnimInfo) == 2);
|
ASSERT(sizeof(ListObjets[i].newAnimInfo) == 2);
|
||||||
fwrite(&objectTable[i].newAnimInfo,2,1,fHandle);
|
fwrite(&ListObjets[i].newAnimInfo,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].frame) == 2);
|
ASSERT(sizeof(ListObjets[i].frame) == 2);
|
||||||
fwrite(&objectTable[i].frame,2,1,fHandle);
|
fwrite(&ListObjets[i].frame,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].numOfFrames) == 2);
|
ASSERT(sizeof(ListObjets[i].numOfFrames) == 2);
|
||||||
fwrite(&objectTable[i].numOfFrames,2,1,fHandle);
|
fwrite(&ListObjets[i].numOfFrames,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].END_FRAME) == 2);
|
ASSERT(sizeof(ListObjets[i].END_FRAME) == 2);
|
||||||
fwrite(&objectTable[i].END_FRAME,2,1,fHandle);
|
fwrite(&ListObjets[i].END_FRAME,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].flagEndAnim) == 2);
|
ASSERT(sizeof(ListObjets[i].flagEndAnim) == 2);
|
||||||
fwrite(&objectTable[i].flagEndAnim,2,1,fHandle);
|
fwrite(&ListObjets[i].flagEndAnim,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].trackMode) == 2);
|
ASSERT(sizeof(ListObjets[i].trackMode) == 2);
|
||||||
fwrite(&objectTable[i].trackMode,2,1,fHandle);
|
fwrite(&ListObjets[i].trackMode,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].trackNumber) == 2);
|
ASSERT(sizeof(ListObjets[i].trackNumber) == 2);
|
||||||
fwrite(&objectTable[i].trackNumber,2,1,fHandle);
|
fwrite(&ListObjets[i].trackNumber,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].MARK) == 2);
|
ASSERT(sizeof(ListObjets[i].MARK) == 2);
|
||||||
fwrite(&objectTable[i].MARK,2,1,fHandle);
|
fwrite(&ListObjets[i].MARK,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].positionInTrack) == 2);
|
ASSERT(sizeof(ListObjets[i].positionInTrack) == 2);
|
||||||
fwrite(&objectTable[i].positionInTrack,2,1,fHandle);
|
fwrite(&ListObjets[i].positionInTrack,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].stepX) == 2);
|
ASSERT(sizeof(ListObjets[i].stepX) == 2);
|
||||||
fwrite(&objectTable[i].stepX,2,1,fHandle);
|
fwrite(&ListObjets[i].stepX,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].stepY) == 2);
|
ASSERT(sizeof(ListObjets[i].stepY) == 2);
|
||||||
fwrite(&objectTable[i].stepY,2,1,fHandle);
|
fwrite(&ListObjets[i].stepY,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].stepZ) == 2); // 45
|
ASSERT(sizeof(ListObjets[i].stepZ) == 2); // 45
|
||||||
fwrite(&objectTable[i].stepZ,2,1,fHandle);
|
fwrite(&ListObjets[i].stepZ,2,1,fHandle);
|
||||||
|
|
||||||
saveInterpolatedValue(&objectTable[i].YHandler,fHandle);
|
saveInterpolatedValue(&ListObjets[i].YHandler,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].falling) == 2);
|
ASSERT(sizeof(ListObjets[i].falling) == 2);
|
||||||
fwrite(&objectTable[i].falling,2,1,fHandle);
|
fwrite(&ListObjets[i].falling,2,1,fHandle);
|
||||||
|
|
||||||
saveInterpolatedValue(&objectTable[i].rotate,fHandle);
|
saveInterpolatedValue(&ListObjets[i].rotate,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].direction) == 2);
|
ASSERT(sizeof(ListObjets[i].direction) == 2);
|
||||||
fwrite(&objectTable[i].direction,2,1,fHandle);
|
fwrite(&ListObjets[i].direction,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].speed) == 2);
|
ASSERT(sizeof(ListObjets[i].speed) == 2);
|
||||||
fwrite(&objectTable[i].speed,2,1,fHandle);
|
fwrite(&ListObjets[i].speed,2,1,fHandle);
|
||||||
|
|
||||||
saveInterpolatedValue(&objectTable[i].speedChange,fHandle);
|
saveInterpolatedValue(&ListObjets[i].speedChange,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].COL[0]) == 2);
|
ASSERT(sizeof(ListObjets[i].COL[0]) == 2);
|
||||||
fwrite(&objectTable[i].COL[0],2,1,fHandle);
|
fwrite(&ListObjets[i].COL[0],2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].COL[1]) == 2);
|
ASSERT(sizeof(ListObjets[i].COL[1]) == 2);
|
||||||
fwrite(&objectTable[i].COL[1],2,1,fHandle);
|
fwrite(&ListObjets[i].COL[1],2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].COL[2]) == 2);
|
ASSERT(sizeof(ListObjets[i].COL[2]) == 2);
|
||||||
fwrite(&objectTable[i].COL[2],2,1,fHandle);
|
fwrite(&ListObjets[i].COL[2],2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].COL_BY) == 2);
|
ASSERT(sizeof(ListObjets[i].COL_BY) == 2);
|
||||||
fwrite(&objectTable[i].COL_BY,2,1,fHandle);
|
fwrite(&ListObjets[i].COL_BY,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].HARD_DEC) == 2);
|
ASSERT(sizeof(ListObjets[i].HARD_DEC) == 2);
|
||||||
fwrite(&objectTable[i].HARD_DEC,2,1,fHandle);
|
fwrite(&ListObjets[i].HARD_DEC,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].HARD_COL) == 2);
|
ASSERT(sizeof(ListObjets[i].HARD_COL) == 2);
|
||||||
fwrite(&objectTable[i].HARD_COL,2,1,fHandle);
|
fwrite(&ListObjets[i].HARD_COL,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].HIT) == 2);
|
ASSERT(sizeof(ListObjets[i].HIT) == 2);
|
||||||
fwrite(&objectTable[i].HIT,2,1,fHandle);
|
fwrite(&ListObjets[i].HIT,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].HIT_BY) == 2);
|
ASSERT(sizeof(ListObjets[i].HIT_BY) == 2);
|
||||||
fwrite(&objectTable[i].HIT_BY,2,1,fHandle);
|
fwrite(&ListObjets[i].HIT_BY,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].animActionType) == 2);
|
ASSERT(sizeof(ListObjets[i].animActionType) == 2);
|
||||||
fwrite(&objectTable[i].animActionType,2,1,fHandle);
|
fwrite(&ListObjets[i].animActionType,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].animActionANIM) == 2);
|
ASSERT(sizeof(ListObjets[i].animActionANIM) == 2);
|
||||||
fwrite(&objectTable[i].animActionANIM,2,1,fHandle);
|
fwrite(&ListObjets[i].animActionANIM,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].animActionFRAME) == 2);
|
ASSERT(sizeof(ListObjets[i].animActionFRAME) == 2);
|
||||||
fwrite(&objectTable[i].animActionFRAME,2,1,fHandle);
|
fwrite(&ListObjets[i].animActionFRAME,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].animActionParam) == 2);
|
ASSERT(sizeof(ListObjets[i].animActionParam) == 2);
|
||||||
fwrite(&objectTable[i].animActionParam,2,1,fHandle);
|
fwrite(&ListObjets[i].animActionParam,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].hitForce) == 2);
|
ASSERT(sizeof(ListObjets[i].hitForce) == 2);
|
||||||
fwrite(&objectTable[i].hitForce,2,1,fHandle);
|
fwrite(&ListObjets[i].hitForce,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].hotPointID) == 2);
|
ASSERT(sizeof(ListObjets[i].hotPointID) == 2);
|
||||||
fwrite(&objectTable[i].hotPointID,2,1,fHandle);
|
fwrite(&ListObjets[i].hotPointID,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].hotPoint.x) == 2);
|
ASSERT(sizeof(ListObjets[i].hotPoint.x) == 2);
|
||||||
fwrite(&objectTable[i].hotPoint.x,2,1,fHandle);
|
fwrite(&ListObjets[i].hotPoint.x,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].hotPoint.y) == 2);
|
ASSERT(sizeof(ListObjets[i].hotPoint.y) == 2);
|
||||||
fwrite(&objectTable[i].hotPoint.x,2,1,fHandle);
|
fwrite(&ListObjets[i].hotPoint.x,2,1,fHandle);
|
||||||
|
|
||||||
ASSERT(sizeof(objectTable[i].hotPoint.z) == 2);
|
ASSERT(sizeof(ListObjets[i].hotPoint.z) == 2);
|
||||||
fwrite(&objectTable[i].hotPoint.x,2,1,fHandle);
|
fwrite(&ListObjets[i].hotPoint.x,2,1,fHandle);
|
||||||
}
|
}
|
||||||
|
|
||||||
fclose(fHandle);
|
fclose(fHandle);
|
||||||
|
|
|
@ -242,7 +242,7 @@ void processTrack(void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
tObject* followedActorPtr = &objectTable[followedActorIdx];
|
tObject* followedActorPtr = &ListObjets[followedActorIdx];
|
||||||
|
|
||||||
int targetRoomNumber = followedActorPtr->room;
|
int targetRoomNumber = followedActorPtr->room;
|
||||||
int targetX = followedActorPtr->roomX;
|
int targetX = followedActorPtr->roomX;
|
||||||
|
|
|
@ -71,7 +71,7 @@ char* screenSm3;
|
||||||
char* screenSm4;
|
char* screenSm4;
|
||||||
char* screenSm5;
|
char* screenSm5;
|
||||||
|
|
||||||
std::array<tObject, NUM_MAX_OBJECT> objectTable;
|
std::array<tObject, NUM_MAX_OBJECT> ListObjets;
|
||||||
|
|
||||||
s16 currentWorldTarget;
|
s16 currentWorldTarget;
|
||||||
|
|
||||||
|
|
|
@ -306,7 +306,7 @@ extern char* screenSm3;
|
||||||
extern char* screenSm4;
|
extern char* screenSm4;
|
||||||
extern char* screenSm5;
|
extern char* screenSm5;
|
||||||
|
|
||||||
extern std::array<tObject, NUM_MAX_OBJECT> objectTable;
|
extern std::array<tObject, NUM_MAX_OBJECT> ListObjets;
|
||||||
|
|
||||||
extern s16 currentWorldTarget;
|
extern s16 currentWorldTarget;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue