mirror of https://github.com/yaz0r/FITD.git
More cleanup
This commit is contained in:
parent
97ba0bf877
commit
f2d6decdb0
|
@ -61,7 +61,7 @@ int InitAnim(int animNum,int animType, int animInfo)
|
|||
|
||||
currentProcessedActorPtr->objectType |= AF_ANIMATED;
|
||||
|
||||
SetAnimObjet(currentProcessedActorPtr->frame, getAnimationFromPtr(HQR_Get(listAnim,animNum)), getBodyFromPtr(HQR_Get(HQ_Bodys, currentProcessedActorPtr->bodyNum)));
|
||||
SetAnimObjet(currentProcessedActorPtr->frame, getAnimationFromPtr(HQR_Get(HQ_Anims,animNum)), getBodyFromPtr(HQR_Get(HQ_Bodys, currentProcessedActorPtr->bodyNum)));
|
||||
|
||||
currentProcessedActorPtr->animType = animType;
|
||||
currentProcessedActorPtr->animInfo = animInfo;
|
||||
|
@ -96,7 +96,7 @@ int InitAnim(int animNum,int animType, int animInfo)
|
|||
removeFromBGIncrust(currentProcessedActorIdx);
|
||||
}
|
||||
|
||||
SetAnimObjet(0, getAnimationFromPtr(HQR_Get(listAnim,animNum)), getBodyFromPtr(HQR_Get(HQ_Bodys, currentProcessedActorPtr->bodyNum)));
|
||||
SetAnimObjet(0, getAnimationFromPtr(HQR_Get(HQ_Anims,animNum)), getBodyFromPtr(HQR_Get(HQ_Bodys, currentProcessedActorPtr->bodyNum)));
|
||||
|
||||
currentProcessedActorPtr->newAnim = animNum;
|
||||
currentProcessedActorPtr->newAnimType = animType;
|
||||
|
@ -270,7 +270,7 @@ void GereAnim(void)
|
|||
currentProcessedActorPtr->flagEndAnim = 0;
|
||||
currentProcessedActorPtr->frame = 0;
|
||||
|
||||
currentProcessedActorPtr->numOfFrames = GetNbFramesAnim(getAnimationFromPtr(HQR_Get(listAnim, newAnim)));
|
||||
currentProcessedActorPtr->numOfFrames = GetNbFramesAnim(getAnimationFromPtr(HQR_Get(HQ_Anims, newAnim)));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -316,7 +316,7 @@ void GereAnim(void)
|
|||
oldStepY = currentProcessedActorPtr->stepY;
|
||||
oldStepZ = currentProcessedActorPtr->stepZ;
|
||||
|
||||
currentProcessedActorPtr->END_FRAME = SetInterAnimObjet(currentProcessedActorPtr->frame, getAnimationFromPtr(HQR_Get(listAnim, currentProcessedActorPtr->ANIM)), getBodyFromPtr(HQR_Get(HQ_Bodys, currentProcessedActorPtr->bodyNum)));
|
||||
currentProcessedActorPtr->END_FRAME = SetInterAnimObjet(currentProcessedActorPtr->frame, getAnimationFromPtr(HQR_Get(HQ_Anims, currentProcessedActorPtr->ANIM)), getBodyFromPtr(HQR_Get(HQ_Bodys, currentProcessedActorPtr->bodyNum)));
|
||||
|
||||
walkStep(animStepX,animStepZ,currentProcessedActorPtr->beta);
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ int getPosRelTable[] = {4,1,8,2,4,1,8,0};
|
|||
|
||||
int getMatrix(int param1, int actorIdx, int param2)
|
||||
{
|
||||
unsigned char* matrixPtr = (unsigned char*)HQR_Get(listMatrix,param1);
|
||||
unsigned char* matrixPtr = (unsigned char*)HQR_Get(HQ_Matrices,param1);
|
||||
|
||||
int matrixWidth = *matrixPtr++;
|
||||
int matrixHeigh = *matrixPtr++;
|
||||
|
@ -515,7 +515,7 @@ int evalVar(const char* name)
|
|||
temp2 = *(s16*)currentLifePtr;
|
||||
currentLifePtr +=2;
|
||||
|
||||
return(testZvEndAnim(actorPtr,HQR_Get(listAnim,temp1),temp2));
|
||||
return(testZvEndAnim(actorPtr,HQR_Get(HQ_Anims,temp1),temp2));
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ void LoadEtage(int floorNumber)
|
|||
//stopSounds();
|
||||
|
||||
HQR_Reset(HQ_Bodys);
|
||||
HQR_Reset(listAnim);
|
||||
HQR_Reset(HQ_Anims);
|
||||
|
||||
g_currentFloor = floorNumber;
|
||||
|
||||
|
|
|
@ -198,7 +198,7 @@ int InitSpecialObjet(int mode, int X, int Y, int Z, int stage, int room, int alp
|
|||
}
|
||||
}
|
||||
|
||||
actorTurnedToObj = 1;
|
||||
FlagGenereAffList = 1;
|
||||
return(i);
|
||||
}
|
||||
|
||||
|
@ -746,7 +746,7 @@ void processLife(int lifeNum, bool callFoundLife)
|
|||
{
|
||||
if ((currentProcessedActorPtr->ANIM != -1) && (currentProcessedActorPtr->bodyNum != -1))
|
||||
{
|
||||
sAnimation* pAnim = getAnimationFromPtr(HQR_Get(listAnim, currentProcessedActorPtr->ANIM));
|
||||
sAnimation* pAnim = getAnimationFromPtr(HQR_Get(HQ_Anims, currentProcessedActorPtr->ANIM));
|
||||
|
||||
if (g_gameId >= JACK)
|
||||
{
|
||||
|
@ -787,7 +787,7 @@ void processLife(int lifeNum, bool callFoundLife)
|
|||
|
||||
if (currentProcessedActorPtr->objectType & AF_ANIMATED)
|
||||
{
|
||||
sAnimation* pAnim = getAnimationFromPtr(HQR_Get(listAnim, currentProcessedActorPtr->ANIM));
|
||||
sAnimation* pAnim = getAnimationFromPtr(HQR_Get(HQ_Anims, currentProcessedActorPtr->ANIM));
|
||||
|
||||
if (g_gameId >= JACK)
|
||||
{
|
||||
|
@ -1174,7 +1174,7 @@ void processLife(int lifeNum, bool callFoundLife)
|
|||
lifeTempVar1 = readNextArgument("TrackMode");
|
||||
lifeTempVar2 = readNextArgument("TrackNumber");
|
||||
|
||||
setMoveMode(lifeTempVar1, lifeTempVar2);
|
||||
InitDeplacement(lifeTempVar1, lifeTempVar2);
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
549
FitdLib/main.cpp
549
FitdLib/main.cpp
|
@ -1168,14 +1168,14 @@ void LoadWorld(void)
|
|||
if(g_gameId == AITD1)
|
||||
{
|
||||
HQ_Bodys = HQR_InitRessource(listBodySelect[CVars[getCVarsIdx(CHOOSE_PERSO)]],37000, 50); // was calculated from free mem size
|
||||
listAnim = HQR_InitRessource(listAnimSelect[CVars[getCVarsIdx(CHOOSE_PERSO)]],30000, 80); // was calculated from free mem size
|
||||
HQ_Anims = HQR_InitRessource(listAnimSelect[CVars[getCVarsIdx(CHOOSE_PERSO)]],30000, 80); // was calculated from free mem size
|
||||
}
|
||||
else
|
||||
{
|
||||
HQ_Bodys = HQR_InitRessource("LISTBODY",37000, 50); // was calculated from free mem size
|
||||
listAnim = HQR_InitRessource("LISTANIM",30000, 80); // was calculated from free mem size
|
||||
HQ_Anims = HQR_InitRessource("LISTANIM",30000, 80); // was calculated from free mem size
|
||||
|
||||
listMatrix = HQR_InitRessource("LISTMAT",64000,5);
|
||||
HQ_Matrices = HQR_InitRessource("LISTMAT",64000,5);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1713,7 +1713,7 @@ void DeleteObjet(int index) // remove actor
|
|||
objectPtr->stage = actorPtr->stage;
|
||||
objectPtr->room = actorPtr->room;
|
||||
|
||||
actorTurnedToObj = 1;
|
||||
FlagGenereAffList = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1785,7 +1785,7 @@ void RefreshAux2(void)
|
|||
//TODO: implementer la suite
|
||||
}
|
||||
|
||||
void setMoveMode(int trackMode, int trackNumber)
|
||||
void InitDeplacement(int trackMode, int trackNumber)
|
||||
{
|
||||
currentProcessedActorPtr->trackMode = trackMode;
|
||||
|
||||
|
@ -1807,7 +1807,7 @@ void setMoveMode(int trackMode, int trackNumber)
|
|||
}
|
||||
}
|
||||
|
||||
s16 cameraVisibilityVar = 0;
|
||||
s16 ObjSalleRel = 0;
|
||||
|
||||
int IsInCamera(int roomNumber)
|
||||
{
|
||||
|
@ -1817,12 +1817,12 @@ int IsInCamera(int roomNumber)
|
|||
{
|
||||
if(cameraDataTable[NumCamera]->viewedRoomTable[i].viewedRoomIdx == roomNumber)
|
||||
{
|
||||
cameraVisibilityVar = i;
|
||||
ObjSalleRel = i;
|
||||
return(1);
|
||||
}
|
||||
}
|
||||
|
||||
cameraVisibilityVar = -1;
|
||||
ObjSalleRel = -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -1835,376 +1835,283 @@ int IsInCamRectTestAITD2(int X, int Z) // TODO: not 100% exact
|
|||
return 0;
|
||||
}
|
||||
|
||||
int updateActorAitd2Only(int actorIdx)
|
||||
{
|
||||
tObject *currentActor = &objectTable[actorIdx];
|
||||
|
||||
if(g_gameId == AITD1)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(currentActor->bodyNum != -1)
|
||||
{
|
||||
if(IsInCamera(currentActor->room))
|
||||
{
|
||||
if(IsInCamRectTestAITD2(currentActor->roomX + currentActor->stepX, currentActor->roomZ + currentActor->stepZ))
|
||||
{
|
||||
currentActor->lifeMode |= 4;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void updateAllActorAndObjectsAITD2()
|
||||
{
|
||||
for(int i=0;i<NUM_MAX_OBJECT;i++)
|
||||
{
|
||||
tObject *pObject = &objectTable[i];
|
||||
for (int i = 0; i < NUM_MAX_OBJECT; i++)
|
||||
{
|
||||
tObject* pObject = &objectTable[i];
|
||||
|
||||
if(pObject->indexInWorld == -1)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (pObject->indexInWorld == -1)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
pObject->lifeMode &= ~4;
|
||||
pObject->lifeMode &= ~4;
|
||||
|
||||
if(pObject->stage == g_currentFloor)
|
||||
{
|
||||
switch(pObject->lifeMode)
|
||||
{
|
||||
case 0: // OFF
|
||||
break;
|
||||
case 1: // STAGE
|
||||
continue;
|
||||
case 2: // ROOM
|
||||
if(pObject->room == currentRoom)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
case 3: // CAMERA
|
||||
if(isInViewList(pObject->room))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
//assert(0);
|
||||
break;
|
||||
}
|
||||
if (pObject->stage == g_currentFloor)
|
||||
{
|
||||
switch (pObject->lifeMode)
|
||||
{
|
||||
case 0: // OFF
|
||||
break;
|
||||
case 1: // STAGE
|
||||
continue;
|
||||
case 2: // ROOM
|
||||
if (pObject->room == currentRoom)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
case 3: // CAMERA
|
||||
if (isInViewList(pObject->room))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if(updateActorAitd2Only(i))
|
||||
{
|
||||
pObject->lifeMode |= 4;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
DeleteObjet(i);
|
||||
}
|
||||
if (pObject->bodyNum != -1)
|
||||
{
|
||||
if (IsInCamera(pObject->room))
|
||||
{
|
||||
if (IsInCamRectTestAITD2(pObject->roomX + pObject->stepX, pObject->roomZ + pObject->stepZ))
|
||||
{
|
||||
pObject->lifeMode |= 4;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
DeleteObjet(i);
|
||||
}
|
||||
|
||||
for(int i=0;i<maxObjects;i++)
|
||||
{
|
||||
tWorldObject* currentObject = &ListWorldObjets[i];
|
||||
for (int i = 0; i < maxObjects; i++)
|
||||
{
|
||||
tWorldObject* currentObject = &ListWorldObjets[i];
|
||||
|
||||
if(currentObject->objIndex != -1)
|
||||
{
|
||||
if(currentWorldTarget == i)
|
||||
{
|
||||
currentCameraTargetActor = currentObject->objIndex;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(currentObject->stage == g_currentFloor)
|
||||
{
|
||||
if(currentObject->life != -1)
|
||||
{
|
||||
if(currentObject->lifeMode != -1)
|
||||
{
|
||||
int actorIdx;
|
||||
int di;
|
||||
if (currentObject->objIndex != -1)
|
||||
{
|
||||
if (currentWorldTarget == i)
|
||||
{
|
||||
currentCameraTargetActor = currentObject->objIndex;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
switch(currentObject->lifeMode&3)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
di = 0;
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
di = 1;
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
if(currentObject->room != currentRoom)
|
||||
{
|
||||
di = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
di = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
if(!isInViewList(currentObject->room))
|
||||
{
|
||||
di = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
di = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (currentObject->stage != g_currentFloor)
|
||||
continue;
|
||||
|
||||
if(!di)
|
||||
{
|
||||
if(currentObject->body != -1)
|
||||
{
|
||||
if(IsInCamera(currentObject->room))
|
||||
{
|
||||
if(IsInCamRectTestAITD2(currentObject->x,currentObject->z))
|
||||
{
|
||||
currentObject->lifeMode |= 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
bool isOk = false;
|
||||
switch (currentObject->lifeMode & 3)
|
||||
{
|
||||
case 0: // OFF
|
||||
isOk = false;
|
||||
break;
|
||||
case 1: // STAGE
|
||||
isOk = true;
|
||||
break;
|
||||
case 3: // CAMERA
|
||||
if (!isInViewList(currentObject->room))
|
||||
{
|
||||
isOk = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
isOk = true;
|
||||
}
|
||||
break;
|
||||
case 2: // ROOM
|
||||
if (currentObject->room != currentRoom)
|
||||
{
|
||||
isOk = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
isOk = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
//int var_C = currentObject->flags & 0xFFDF;
|
||||
//int var_E = currentObject->field_2;
|
||||
//int var_A = currentObject->anim;
|
||||
addObject:
|
||||
actorIdx = copyObjectToActor( currentObject->body, currentObject->typeZV, currentObject->foundName,
|
||||
currentObject->flags & 0xFFDF,
|
||||
currentObject->x, currentObject->y, currentObject->z,
|
||||
currentObject->stage, currentObject->room,
|
||||
currentObject->alpha, currentObject->beta, currentObject->gamma,
|
||||
currentObject->anim,
|
||||
currentObject->frame, currentObject->animType, currentObject->animInfo);
|
||||
if (!isOk) {
|
||||
if ((currentObject->body == -1) || (!IsInCamera(currentObject->room)) || (!IsInCamRectTestAITD2(currentObject->x, currentObject->z)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
else {
|
||||
currentObject->lifeMode |= 4;
|
||||
}
|
||||
}
|
||||
|
||||
currentObject->objIndex = actorIdx;
|
||||
currentObject->objIndex = InitObjet(currentObject->body, currentObject->typeZV, currentObject->foundName,
|
||||
currentObject->flags & ~AF_SPECIAL,
|
||||
currentObject->x, currentObject->y, currentObject->z,
|
||||
currentObject->stage, currentObject->room,
|
||||
currentObject->alpha, currentObject->beta, currentObject->gamma,
|
||||
currentObject->anim,
|
||||
currentObject->frame, currentObject->animType, currentObject->animInfo);
|
||||
|
||||
if(actorIdx != -1)
|
||||
{
|
||||
currentProcessedActorPtr = &objectTable[actorIdx];
|
||||
currentProcessedActorIdx = actorIdx;
|
||||
if (currentObject->objIndex != -1)
|
||||
{
|
||||
currentProcessedActorPtr = &objectTable[currentObject->objIndex];
|
||||
currentProcessedActorIdx = currentObject->objIndex;
|
||||
|
||||
if(currentWorldTarget == i)
|
||||
{
|
||||
currentCameraTargetActor = currentProcessedActorIdx;
|
||||
}
|
||||
if (currentWorldTarget == i)
|
||||
{
|
||||
currentCameraTargetActor = currentProcessedActorIdx;
|
||||
}
|
||||
|
||||
currentProcessedActorPtr->dynFlags = (currentObject->flags & 0x20) / 0x20; // recheck
|
||||
currentProcessedActorPtr->life = currentObject->life;
|
||||
currentProcessedActorPtr->lifeMode = currentObject->lifeMode;
|
||||
currentProcessedActorPtr->dynFlags = (currentObject->flags & 0x20) / 0x20; // recheck
|
||||
currentProcessedActorPtr->life = currentObject->life;
|
||||
currentProcessedActorPtr->lifeMode = currentObject->lifeMode;
|
||||
|
||||
currentProcessedActorPtr->indexInWorld = i;
|
||||
currentProcessedActorPtr->indexInWorld = i;
|
||||
|
||||
setMoveMode(currentObject->trackMode, currentObject->trackNumber);
|
||||
InitDeplacement(currentObject->trackMode, currentObject->trackNumber);
|
||||
|
||||
currentProcessedActorPtr->positionInTrack = currentObject->positionInTrack;
|
||||
currentProcessedActorPtr->positionInTrack = currentObject->positionInTrack;
|
||||
|
||||
if(g_gameId != AITD1)
|
||||
{
|
||||
currentProcessedActorPtr->MARK = currentObject->mark;
|
||||
}
|
||||
if (g_gameId != AITD1)
|
||||
{
|
||||
currentProcessedActorPtr->MARK = currentObject->mark;
|
||||
}
|
||||
|
||||
actorTurnedToObj = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(isInViewList(currentObject->room))
|
||||
goto addObject;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// objModifFlag1 = 0;
|
||||
|
||||
//TODO: object update
|
||||
FlagGenereAffList = 1;
|
||||
}
|
||||
}
|
||||
//FlagGenereActiveList = true;
|
||||
}
|
||||
|
||||
|
||||
void GenereActiveList()
|
||||
{
|
||||
int i;
|
||||
tObject *currentActor = objectTable.data();
|
||||
tWorldObject* currentObject;
|
||||
|
||||
if(g_gameId > JACK)
|
||||
{
|
||||
updateAllActorAndObjectsAITD2();
|
||||
return;
|
||||
}
|
||||
|
||||
for(i=0;i<NUM_MAX_OBJECT;i++)
|
||||
for(int i=0;i<NUM_MAX_OBJECT;i++)
|
||||
{
|
||||
if(currentActor->indexInWorld != -1)
|
||||
tObject* currentActor = &objectTable[i];
|
||||
if (currentActor->indexInWorld == -1)
|
||||
continue;
|
||||
|
||||
if(currentActor->stage == g_currentFloor)
|
||||
{
|
||||
if(currentActor->stage == g_currentFloor)
|
||||
if(currentActor->life != -1)
|
||||
{
|
||||
if(currentActor->life != -1)
|
||||
switch(currentActor->lifeMode)
|
||||
{
|
||||
switch(currentActor->lifeMode)
|
||||
case 0: // STAGE
|
||||
continue;
|
||||
case 1: // ROOM
|
||||
if(currentActor->room != currentRoom)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
if(currentActor->room != currentRoom)
|
||||
{
|
||||
DeleteObjet(i);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
if(!isInViewList(currentActor->room))
|
||||
{
|
||||
DeleteObjet(i);
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
DeleteObjet(i);
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
case 2: // CAMERA
|
||||
if(!isInViewList(currentActor->room))
|
||||
{
|
||||
DeleteObjet(i);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DeleteObjet(i);
|
||||
if(!isInViewList(currentActor->room))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
currentActor++;
|
||||
DeleteObjet(i);
|
||||
}
|
||||
|
||||
currentObject = &ListWorldObjets[0];
|
||||
|
||||
for(i=0;i<maxObjects;i++)
|
||||
for(int i=0;i<maxObjects;i++)
|
||||
{
|
||||
if(currentObject->objIndex != -1)
|
||||
{
|
||||
tWorldObject* currentObject = &ListWorldObjets[i];
|
||||
if(currentObject->objIndex != -1) {
|
||||
if(currentWorldTarget == i)
|
||||
{
|
||||
currentCameraTargetActor = currentObject->objIndex;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
else
|
||||
|
||||
if (currentObject->stage != g_currentFloor) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (currentObject->life != -1)
|
||||
{
|
||||
switch (currentObject->lifeMode)
|
||||
{
|
||||
case -1:
|
||||
continue;
|
||||
|
||||
case 0: // Stage
|
||||
break;
|
||||
|
||||
case 1: // Room
|
||||
if (currentObject->room != currentRoom)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
case 2: // Camera
|
||||
if (!isInViewList(currentObject->room))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!isInViewList(currentObject->room)) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
currentObject->objIndex = InitObjet( currentObject->body, currentObject->typeZV, currentObject->foundName,
|
||||
currentObject->flags & ~AF_SPECIAL,
|
||||
currentObject->x, currentObject->y, currentObject->z,
|
||||
currentObject->stage, currentObject->room,
|
||||
currentObject->alpha, currentObject->beta, currentObject->gamma,
|
||||
currentObject->anim,
|
||||
currentObject->frame, currentObject->animType, currentObject->animInfo);
|
||||
|
||||
if(currentObject->objIndex != -1)
|
||||
{
|
||||
if(currentObject->stage == g_currentFloor)
|
||||
currentProcessedActorPtr = &objectTable[currentObject->objIndex];
|
||||
currentProcessedActorIdx = currentObject->objIndex;
|
||||
|
||||
if(currentWorldTarget == i)
|
||||
{
|
||||
if(currentObject->life != -1)
|
||||
{
|
||||
if(currentObject->lifeMode != -1)
|
||||
{
|
||||
int actorIdx;
|
||||
|
||||
switch(currentObject->lifeMode)
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
if(currentObject->room != currentRoom)
|
||||
{
|
||||
currentObject++;
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
if(!isInViewList(currentObject->room))
|
||||
{
|
||||
currentObject++;
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//int var_C = currentObject->flags & 0xFFDF;
|
||||
//int var_E = currentObject->field_2;
|
||||
//int var_A = currentObject->anim;
|
||||
|
||||
addObject: actorIdx = copyObjectToActor( currentObject->body, currentObject->typeZV, currentObject->foundName,
|
||||
currentObject->flags & 0xFFDF,
|
||||
currentObject->x, currentObject->y, currentObject->z,
|
||||
currentObject->stage, currentObject->room,
|
||||
currentObject->alpha, currentObject->beta, currentObject->gamma,
|
||||
currentObject->anim,
|
||||
currentObject->frame, currentObject->animType, currentObject->animInfo);
|
||||
|
||||
currentObject->objIndex = actorIdx;
|
||||
|
||||
if(actorIdx != -1)
|
||||
{
|
||||
currentProcessedActorPtr = &objectTable[actorIdx];
|
||||
currentProcessedActorIdx = actorIdx;
|
||||
|
||||
if(currentWorldTarget == i)
|
||||
{
|
||||
currentCameraTargetActor = currentProcessedActorIdx;
|
||||
}
|
||||
|
||||
currentProcessedActorPtr->dynFlags = (currentObject->flags & 0x20) / 0x20; // recheck
|
||||
currentProcessedActorPtr->life = currentObject->life;
|
||||
currentProcessedActorPtr->lifeMode = currentObject->lifeMode;
|
||||
|
||||
currentProcessedActorPtr->indexInWorld = i;
|
||||
|
||||
setMoveMode(currentObject->trackMode, currentObject->trackNumber);
|
||||
|
||||
currentProcessedActorPtr->positionInTrack = currentObject->positionInTrack;
|
||||
|
||||
actorTurnedToObj = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(isInViewList(currentObject->room))
|
||||
goto addObject;
|
||||
}
|
||||
currentCameraTargetActor = currentProcessedActorIdx;
|
||||
}
|
||||
}
|
||||
|
||||
currentObject++;
|
||||
currentProcessedActorPtr->dynFlags = (currentObject->flags & 0x20) / 0x20; // recheck
|
||||
currentProcessedActorPtr->life = currentObject->life;
|
||||
currentProcessedActorPtr->lifeMode = currentObject->lifeMode;
|
||||
|
||||
currentProcessedActorPtr->indexInWorld = i;
|
||||
|
||||
InitDeplacement(currentObject->trackMode, currentObject->trackNumber);
|
||||
|
||||
currentProcessedActorPtr->positionInTrack = currentObject->positionInTrack;
|
||||
|
||||
FlagGenereAffList = 1;
|
||||
}
|
||||
}
|
||||
|
||||
// FlagGenereActiveList = 0;
|
||||
|
@ -3879,7 +3786,7 @@ void GereDec()
|
|||
}
|
||||
else
|
||||
{
|
||||
actorTurnedToObj = 1;
|
||||
FlagGenereAffList = 1;
|
||||
}
|
||||
|
||||
startChrono(¤tProcessedActorPtr->ROOM_CHRONO);
|
||||
|
@ -4481,7 +4388,7 @@ void cleanupAndExit(void)
|
|||
HQR_Free(listLife);
|
||||
HQR_Free(listTrack);
|
||||
HQR_Free(HQ_Bodys);
|
||||
HQR_Free(listAnim);
|
||||
HQR_Free(HQ_Anims);
|
||||
|
||||
/* free(tabTextes);
|
||||
free(aux);
|
||||
|
|
|
@ -58,7 +58,7 @@ void SetProjection(int centerX, int centerY, int x, int y, int z);
|
|||
void SetAngleCamera(int x, int y, int z);
|
||||
void SetPosCamera(int x, int y, int z);
|
||||
s16 GiveDistance2D(int x1, int z1, int x2, int z2);
|
||||
void setMoveMode(int trackMode, int trackNumber);
|
||||
void InitDeplacement(int trackMode, int trackNumber);
|
||||
void InitRealValue(s16 beta, s16 newBeta, s16 param, RealValue* rotatePtr);
|
||||
s16 updateActorRotation(RealValue* rotatePtr);
|
||||
void deleteObject(int objIdx);
|
||||
|
|
|
@ -219,7 +219,7 @@ void PlayWorld(int allowSystemMenu, int deltaTime)
|
|||
if (!(currentProcessedActorPtr->lifeMode & 4))
|
||||
{
|
||||
processLife(currentProcessedActorPtr->life, false);
|
||||
actorTurnedToObj = 1;
|
||||
FlagGenereAffList = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "common.h"
|
||||
|
||||
int copyObjectToActor(int body, int typeZv, int hardZvIdx, s16 objectType, int x, int y, int z, int stage, int room, int alpha, int beta, int gamma, int anim, int frame, int animtype, int animInfo)
|
||||
int InitObjet(int body, int typeZv, int hardZvIdx, s16 objectType, int x, int y, int z, int stage, int room, int alpha, int beta, int gamma, int anim, int frame, int animtype, int animInfo)
|
||||
{
|
||||
int i;
|
||||
int j;
|
||||
|
@ -101,7 +101,7 @@ int copyObjectToActor(int body, int typeZv, int hardZvIdx, s16 objectType, int x
|
|||
|
||||
if(anim != -1)
|
||||
{
|
||||
sAnimation* animPtr = getAnimationFromPtr(HQR_Get(listAnim,anim));
|
||||
sAnimation* animPtr = getAnimationFromPtr(HQR_Get(HQ_Anims,anim));
|
||||
|
||||
SetAnimObjet(frame,animPtr, bodyPtr);
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef _OBJECT_H_
|
||||
#define _OBJECT_H_
|
||||
int copyObjectToActor(int body, int typeZv, int hardZvIdx, s16 objectType, int x, int y, int z, int stage, int room, int alpha, int beta, int gamma, int anim, int frame, int animtype, int animInfo);
|
||||
int InitObjet(int body, int typeZv, int hardZvIdx, s16 objectType, int x, int y, int z, int stage, int room, int alpha, int beta, int gamma, int anim, int frame, int animtype, int animInfo);
|
||||
#endif
|
||||
|
|
|
@ -72,20 +72,20 @@ struct cameraViewedRoomStruct
|
|||
|
||||
struct cameraDataStruct
|
||||
{
|
||||
s16 alpha;
|
||||
s16 beta;
|
||||
s16 gamma;
|
||||
s16 alpha; // 0
|
||||
s16 beta; // 2
|
||||
s16 gamma; // 4
|
||||
|
||||
s16 x;
|
||||
s16 y;
|
||||
s16 z;
|
||||
s16 x; // 6
|
||||
s16 y; // 8
|
||||
s16 z; // 10
|
||||
|
||||
s16 focal1;
|
||||
s16 focal2;
|
||||
s16 focal3;
|
||||
s16 focal1; // 12
|
||||
s16 focal2; // 14
|
||||
s16 focal3; // 16
|
||||
|
||||
u16 numViewedRooms;
|
||||
std::vector<cameraViewedRoomStruct> viewedRoomTable;
|
||||
u16 numViewedRooms; // 18
|
||||
std::vector<cameraViewedRoomStruct> viewedRoomTable; // 20
|
||||
};
|
||||
|
||||
struct roomDataStruct
|
||||
|
|
|
@ -261,7 +261,7 @@ int loadSave(int saveNumber)
|
|||
if(g_gameId == AITD1)
|
||||
{
|
||||
configureHqrHero(HQ_Bodys,listBodySelect[CVars[getCVarsIdx(CHOOSE_PERSO)]]);
|
||||
configureHqrHero(listAnim,listAnimSelect[CVars[getCVarsIdx(CHOOSE_PERSO)]]);
|
||||
configureHqrHero(HQ_Anims,listAnimSelect[CVars[getCVarsIdx(CHOOSE_PERSO)]]);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -498,7 +498,7 @@ int loadSave(int saveNumber)
|
|||
|
||||
if(objectTable[i].ANIM != -1)
|
||||
{
|
||||
sAnimation* animPtr = getAnimationFromPtr(HQR_Get(listAnim,objectTable[i].ANIM));
|
||||
sAnimation* animPtr = getAnimationFromPtr(HQR_Get(HQ_Anims,objectTable[i].ANIM));
|
||||
SetAnimObjet(objectTable[i].frame,animPtr,bodyPtr);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -488,7 +488,7 @@ void processTrack(void)
|
|||
{
|
||||
currentProcessedActorPtr->speed = 0;
|
||||
currentProcessedActorPtr->trackNumber = -1;
|
||||
setMoveMode(0,0);
|
||||
InitDeplacement(0,0);
|
||||
break;
|
||||
}
|
||||
case TL_REPEAT:
|
||||
|
|
|
@ -80,11 +80,11 @@ s16 currentWorldTarget;
|
|||
int fileSize;
|
||||
|
||||
hqrEntryStruct* HQ_Bodys = nullptr;
|
||||
hqrEntryStruct* listAnim = nullptr;
|
||||
hqrEntryStruct* HQ_Anims = nullptr;
|
||||
hqrEntryStruct* listLife = nullptr;
|
||||
hqrEntryStruct* listTrack = nullptr;
|
||||
hqrEntryStruct* listHybrides = nullptr;
|
||||
hqrEntryStruct* listMatrix = nullptr;
|
||||
hqrEntryStruct* HQ_Matrices = nullptr;
|
||||
|
||||
s16 maxObjects;
|
||||
|
||||
|
@ -162,7 +162,7 @@ int cameraFovY;
|
|||
|
||||
char currentCameraVisibilityList[30];
|
||||
|
||||
int actorTurnedToObj = 0;
|
||||
int FlagGenereAffList = 0;
|
||||
|
||||
int currentProcessedActorIdx;
|
||||
tObject* currentProcessedActorPtr;
|
||||
|
|
|
@ -336,11 +336,11 @@ extern s16 currentWorldTarget;
|
|||
extern int fileSize;
|
||||
|
||||
extern hqrEntryStruct* HQ_Bodys;
|
||||
extern hqrEntryStruct* listAnim;
|
||||
extern hqrEntryStruct* HQ_Anims;
|
||||
extern hqrEntryStruct* listLife;
|
||||
extern hqrEntryStruct* listTrack;
|
||||
extern hqrEntryStruct* listHybrides;
|
||||
extern hqrEntryStruct* listMatrix;
|
||||
extern hqrEntryStruct* HQ_Matrices;
|
||||
|
||||
extern s16 maxObjects;
|
||||
|
||||
|
@ -417,7 +417,7 @@ extern int cameraFovY;
|
|||
|
||||
extern char currentCameraVisibilityList[30];
|
||||
|
||||
extern int actorTurnedToObj;
|
||||
extern int FlagGenereAffList;
|
||||
|
||||
extern int currentProcessedActorIdx;
|
||||
extern tObject* currentProcessedActorPtr;
|
||||
|
|
Loading…
Reference in New Issue