TRECISION: Move room to engine class, remove unused function, get rid of some LLBOOL's

This commit is contained in:
strangerke authored and SupSuper committed 2021-05-29 21:22:50 +01:00
1 parent b41bd8ba79
commit 87b775d12e
17 files changed
+289 -295

No files matched your search

+21 -21
View File
@@ -348,7 +348,7 @@ void doMouse() {
SemShowHomo = true;
RegenRoom();
memcpy(SmackImagePointer, ImagePointer, MAXX * AREA * 2);
StartSmackAnim(Room[g_vm->_curRoom]._bkgAnim);
StartSmackAnim(g_vm->_room[g_vm->_curRoom]._bkgAnim);
// combinazione giusta
if ((ruotepos[0] == 7) && (ruotepos[1] == 5) && (ruotepos[2] == 11)) {
@@ -397,9 +397,9 @@ void doMouse() {
InitQueue(&Homo);
if (CheckMask(TheMessage->wparam1, TheMessage->wparam2) && (!SemDialogActive)) {
if ((g_vm->_curRoom == r1D) && !(Room[r1D]._flag & OBJFLAG_EXTRA) && (g_vm->_curObj != oSCALA1D))
if ((g_vm->_curRoom == r1D) && !(g_vm->_room[r1D]._flag & OBJFLAG_EXTRA) && (g_vm->_curObj != oSCALA1D))
g_vm->_curObj = oDONNA1D;
else if ((g_vm->_curRoom == r2B) && (Room[r2B]._flag & OBJFLAG_EXTRA) && (g_vm->_curObj != oCARTELLO2B) && (g_vm->_curObj != od2BALLA28)) {
else if ((g_vm->_curRoom == r2B) && (g_vm->_room[r2B]._flag & OBJFLAG_EXTRA) && (g_vm->_curObj != oCARTELLO2B) && (g_vm->_curObj != od2BALLA28)) {
ClearText();
g_vm->_curObj = oPORTA2B;
StartCharacterAction(a2B1PROVAAPRIREPORTA, 0, 0, 0);
@@ -418,7 +418,7 @@ void doMouse() {
ClearText();
}
break;
} else if ((g_vm->_curRoom == r35) && !(Room[r35]._flag & OBJFLAG_EXTRA) && ((g_vm->_curObj == oSPORTELLOC35) || (g_vm->_curObj == oSPORTELLOA35) || (g_vm->_curObj == oASCENSORE35) || (g_vm->_curObj == oMONITOR35) || (g_vm->_curObj == oSEDIA35) || (g_vm->_curObj == oRIBELLEA35) || (g_vm->_curObj == oCOMPUTER35) || (g_vm->_curObj == oGIORNALE35))) {
} else if ((g_vm->_curRoom == r35) && !(g_vm->_room[r35]._flag & OBJFLAG_EXTRA) && ((g_vm->_curObj == oSPORTELLOC35) || (g_vm->_curObj == oSPORTELLOA35) || (g_vm->_curObj == oASCENSORE35) || (g_vm->_curObj == oMONITOR35) || (g_vm->_curObj == oSEDIA35) || (g_vm->_curObj == oRIBELLEA35) || (g_vm->_curObj == oCOMPUTER35) || (g_vm->_curObj == oGIORNALE35))) {
g_vm->_curObj = oLASTLEV5;
doEvent(MC_HOMO, ME_HOMOGOTOEXAMINE, MP_DEFAULT, TheMessage->wparam1, TheMessage->wparam2, 0, g_vm->_curObj);
if (SemUseWithStarted) {
@@ -437,8 +437,8 @@ void doMouse() {
}
break;
} else if ((TheMessage->event == ME_MLEFT) &&
((!(Room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA) && ((g_vm->_curObj == oENTRANCE2E) || (g_vm->_curObj == od24ALLA26) || (g_vm->_curObj == od21ALLA23 && !(_obj[g_vm->_curObj]._flag & OBJFLAG_EXAMINE)))) ||
((Room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA) && ((g_vm->_curObj == od2EALLA2C) || (g_vm->_curObj == od24ALLA23) || (g_vm->_curObj == od21ALLA22 && !(_obj[g_vm->_curObj]._flag & OBJFLAG_EXAMINE)) || (g_vm->_curObj == od2GVALLA26))))) {
((!(g_vm->_room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA) && ((g_vm->_curObj == oENTRANCE2E) || (g_vm->_curObj == od24ALLA26) || (g_vm->_curObj == od21ALLA23 && !(_obj[g_vm->_curObj]._flag & OBJFLAG_EXAMINE)))) ||
((g_vm->_room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA) && ((g_vm->_curObj == od2EALLA2C) || (g_vm->_curObj == od24ALLA23) || (g_vm->_curObj == od21ALLA22 && !(_obj[g_vm->_curObj]._flag & OBJFLAG_EXAMINE)) || (g_vm->_curObj == od2GVALLA26))))) {
doEvent(MC_HOMO, ME_HOMOGOTO, MP_DEFAULT, TheMessage->wparam1, TheMessage->wparam2, 0, 0);
break;
}
@@ -787,7 +787,7 @@ void doSystem() {
nextStep();
// Gestione exit veloci in stanze doppie livello 2
if (Room[g_vm->_oldRoom]._flag & OBJFLAG_EXTRA) {
if (g_vm->_room[g_vm->_oldRoom]._flag & OBJFLAG_EXTRA) {
if (g_vm->_curObj == od2EALLA2C)
SetRoom(r2E, false);
if (g_vm->_curObj == od24ALLA23)
@@ -848,31 +848,31 @@ void doSystem() {
else if ((g_vm->_curRoom == r2B) && (g_vm->_oldRoom == r2A))
SetRoom(r2B, false);
// for save/load
else if ((g_vm->_curRoom == r15) && (Room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
else if ((g_vm->_curRoom == r15) && (g_vm->_room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
read3D("152.3d");
else if ((g_vm->_curRoom == r17) && (Room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
else if ((g_vm->_curRoom == r17) && (g_vm->_room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
read3D("172.3d");
else if ((g_vm->_curRoom == r1D) && (Room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
else if ((g_vm->_curRoom == r1D) && (g_vm->_room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
read3D("1d2.3d");
else if ((g_vm->_curRoom == r21) && (Room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
else if ((g_vm->_curRoom == r21) && (g_vm->_room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
read3D("212.3d");
else if ((g_vm->_curRoom == r24) && (Room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
else if ((g_vm->_curRoom == r24) && (g_vm->_room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
read3D("242.3d");
else if ((g_vm->_curRoom == r28) && (Room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
else if ((g_vm->_curRoom == r28) && (g_vm->_room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
read3D("282.3d");
else if ((g_vm->_curRoom == r2A) && (Room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
else if ((g_vm->_curRoom == r2A) && (g_vm->_room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
read3D("2A2.3d");
else if ((g_vm->_curRoom == r2B) && (Room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
else if ((g_vm->_curRoom == r2B) && (g_vm->_room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
read3D("2B2.3d");
else if ((g_vm->_curRoom == r2E) && (Room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
else if ((g_vm->_curRoom == r2E) && (g_vm->_room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
read3D("2E2.3d");
else if ((g_vm->_curRoom == r2GV) && (Room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
else if ((g_vm->_curRoom == r2GV) && (g_vm->_room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
read3D("2GV2.3d");
else if ((g_vm->_curRoom == r35) && (Room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
else if ((g_vm->_curRoom == r35) && (g_vm->_room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
read3D("352.3d");
else if ((g_vm->_curRoom == r37) && (Room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
else if ((g_vm->_curRoom == r37) && (g_vm->_room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
read3D("372.3d");
else if ((g_vm->_curRoom == r4P) && (Room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
else if ((g_vm->_curRoom == r4P) && (g_vm->_room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA))
read3D("4P2.3d");
// end save/load
@@ -884,7 +884,7 @@ void doSystem() {
AtEndChangeRoom();
Room[g_vm->_curRoom]._flag |= OBJFLAG_DONE; // visitata
g_vm->_room[g_vm->_curRoom]._flag |= OBJFLAG_DONE; // visitata
drawCharacter(CALCPOINTS); // for right _actorPos entrance
break;
+4 -4
View File
@@ -212,7 +212,7 @@ void afterChoice(int numframe) {
if (_curChoice == 136) {
_obj[ocBARBONE17]._mode &= ~OBJMODE_OBJSTATUS;
_obj[oBARBONED17]._mode |= OBJMODE_OBJSTATUS;
Room[r17]._bkgAnim = aBKG17B;
g_vm->_room[r17]._bkgAnim = aBKG17B;
AddIcon(iPATTINO);
} else if (_curChoice == 137) {
_obj[ocBARBONE17]._flag |= OBJFLAG_PERSON;
@@ -354,8 +354,8 @@ void afterChoice(int numframe) {
_obj[oPORTAUA17]._action = 193;
_obj[oPORTAUB17]._action = 197;
_obj[oFINGERPAD17]._mode &= ~OBJMODE_OBJSTATUS;
Room[r17]._flag &= ~OBJFLAG_DONE;
Room[r17]._flag |= OBJFLAG_EXTRA;
g_vm->_room[r17]._flag &= ~OBJFLAG_DONE;
g_vm->_room[r17]._flag |= OBJFLAG_EXTRA;
break;
case dF1C1:
@@ -530,7 +530,7 @@ void afterChoice(int numframe) {
case dC5A1:
_obj[oFINESTRAA5A]._action = 1402;
if (Room[r5A]._flag & OBJFLAG_EXTRA)
if (g_vm->_room[r5A]._flag & OBJFLAG_EXTRA)
PlayDialog(dF5A1);
break;
+63 -65
View File
@@ -318,7 +318,7 @@ void doMouseExamine(uint16 TheObj) {
break;
case oCREPACCIO2E:
if (Room[r2E]._flag & OBJFLAG_EXTRA)
if (g_vm->_room[r2E]._flag & OBJFLAG_EXTRA)
doEvent(MC_HOMO, ME_HOMOACTION, MP_DEFAULT, a2E7GUARDACREPACCIODILA, 0, 0, TheObj);
else
doEvent(MC_HOMO, ME_HOMOACTION, MP_DEFAULT, a2E6GUARDACREPACCIODIQUA, 0, 0, TheObj);
@@ -381,7 +381,7 @@ void doMouseExamine(uint16 TheObj) {
break;
case oSCAFFALE35:
if (Room[r35]._flag & OBJFLAG_EXTRA)
if (g_vm->_room[r35]._flag & OBJFLAG_EXTRA)
doEvent(MC_HOMO, ME_HOMOACTION, MP_DEFAULT, a3517ESAMINACIANFRUSAGLIE, 0, 0, TheObj);
else
doEvent(MC_HOMO, ME_HOMOACTION, MP_DEFAULT, a3517AESAMINACIANFRUSAGLIE, 0, 0, TheObj);
@@ -389,7 +389,7 @@ void doMouseExamine(uint16 TheObj) {
break;
case oGIORNALE35:
if (Room[r35]._flag & OBJFLAG_EXTRA) {
if (g_vm->_room[r35]._flag & OBJFLAG_EXTRA) {
doEvent(MC_HOMO, ME_HOMOACTION, MP_DEFAULT, a3521LEGGEGIORNALE, 0, 0, TheObj);
printsent = false;
}
@@ -558,7 +558,7 @@ void doMouseOperate(uint16 TheObj) {
break;
case oPORTAA13:
if (Room[r14]._flag & OBJFLAG_DONE) {
if (g_vm->_room[r14]._flag & OBJFLAG_DONE) {
doEvent(MC_HOMO, ME_HOMOACTION, MP_DEFAULT, a1312METTELETTERARICALCA, r14, 14, UseWith[WITH]);
printsent = false;
} else
@@ -650,13 +650,13 @@ void doMouseOperate(uint16 TheObj) {
case oCATENAT21:
if ((IconPos(iSBARRA21) != MAXICON) && ((_choice[436]._flag & OBJFLAG_DONE) || (_choice[466]._flag & OBJFLAG_DONE))) {
if (Room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA) // va a destra
if (g_vm->_room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA) // va a destra
PlayDialog(dF212); // 436
else // va a sinistra
PlayDialog(dF213); // 466
printsent = false;
} else if ((_choice[451]._flag & OBJFLAG_DONE) || (_choice[481]._flag & OBJFLAG_DONE)) {
if (Room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA) // va a destra
if (g_vm->_room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA) // va a destra
PlayDialog(dF212B); // 451
else // va a sinistra
PlayDialog(dF213B); // 481
@@ -714,7 +714,7 @@ void doMouseOperate(uint16 TheObj) {
break;
case oPASSAGGIO24:
if (Room[r24]._flag & OBJFLAG_EXTRA) {
if (g_vm->_room[r24]._flag & OBJFLAG_EXTRA) {
doEvent(MC_HOMO, ME_HOMOACTION, MP_DEFAULT, a244, 0, 14, TheObj);
SetRoom(r24, false);
printsent = false;
@@ -800,7 +800,7 @@ void doMouseOperate(uint16 TheObj) {
if (!(_obj[od2CALLA2D]._mode & OBJMODE_OBJSTATUS)) {
extern uint16 ruotepos[3];
StopSmackAnim(Room[g_vm->_curRoom]._bkgAnim);
StopSmackAnim(g_vm->_room[g_vm->_curRoom]._bkgAnim);
AnimTab[aBKG2C].flag |= SMKANIM_OFF1;
_obj[oBASERUOTE2C]._mode |= OBJMODE_OBJSTATUS;
_obj[omRUOTE2C]._mode |= OBJMODE_OBJSTATUS;
@@ -892,7 +892,7 @@ void doMouseOperate(uint16 TheObj) {
break;
case oPROIETTORE35:
Room[r35]._flag |= OBJFLAG_EXTRA;
g_vm->_room[r35]._flag |= OBJFLAG_EXTRA;
read3D("352.3d"); // dopo scossa
_obj[oRIBELLEA35]._mode &= ~OBJMODE_OBJSTATUS;
@@ -1214,7 +1214,7 @@ void doMouseOperate(uint16 TheObj) {
break;
case oLIBRIEG2B:
if (Room[r2C]._flag & OBJFLAG_DONE) { // se sono gia' stato nella 2C prendo libro
if (g_vm->_room[r2C]._flag & OBJFLAG_DONE) { // se sono gia' stato nella 2C prendo libro
printsent = false;
if (_obj[TheObj]._anim)
doEvent(MC_HOMO, ME_HOMOACTION, MP_DEFAULT, a2B4PRENDELIBRO, 0, 0, TheObj);
@@ -1777,7 +1777,7 @@ void doInvScrUseWith() {
break;
case iLETTERA12:
if (UseWith[WITH] == oPENPADA13) {
if (Room[r14]._flag & OBJFLAG_DONE)
if (g_vm->_room[r14]._flag & OBJFLAG_DONE)
doEvent(MC_HOMO, ME_HOMOACTION, MP_DEFAULT, a1312METTELETTERARICALCA, r14, 14, UseWith[WITH]);
else {
doEvent(MC_HOMO, ME_HOMOACTION, MP_DEFAULT, a135METTELETTERA, 0, 0, UseWith[WITH]);
@@ -1839,7 +1839,7 @@ void doInvScrUseWith() {
printsent = false;
if (((UseWith[WITH] == oPENPADA13) || (UseWith[WITH] == oLETTERA13)) && (_obj[oLETTERA13]._mode & OBJMODE_OBJSTATUS))
doEvent(MC_HOMO, ME_HOMOACTION, MP_DEFAULT, a137RICALCAFIRMA, r14, 14, UseWith[WITH]);
else if ((UseWith[WITH] == oPENPADA13) && (Room[r14]._flag & OBJFLAG_DONE))
else if ((UseWith[WITH] == oPENPADA13) && (g_vm->_room[r14]._flag & OBJFLAG_DONE))
doEvent(MC_HOMO, ME_HOMOACTION, MP_DEFAULT, a1312METTELETTERARICALCA, r14, 14, UseWith[WITH]);
else if (UseWith[WITH] == oPENPADA13) {
if (!(_obj[oCASSETTA12]._mode & OBJMODE_OBJSTATUS)) {
@@ -2154,14 +2154,14 @@ void doInvScrUseWith() {
KillIcon(iTOPO1D);
read3D("1d2.3d"); // dopo pattino
_obj[oDONNA1D]._mode &= ~OBJMODE_OBJSTATUS;
Room[g_vm->_curRoom]._flag |= OBJFLAG_EXTRA;
g_vm->_room[g_vm->_curRoom]._flag |= OBJFLAG_EXTRA;
AnimTab[aBKG1D].flag |= SMKANIM_OFF1;
printsent = false;
}
break;
case iPISTOLA15:
if ((UseWith[WITH] == oPORTAC21) && !(Room[r21]._flag & OBJFLAG_EXTRA)) {
if ((UseWith[WITH] == oPORTAC21) && !(g_vm->_room[r21]._flag & OBJFLAG_EXTRA)) {
doEvent(MC_HOMO, ME_HOMOACTION, MP_DEFAULT, a211, 0, 0, UseWith[WITH]);
InvObj[iPISTOLA15]._examine = 1472;
InvObj[iPISTOLA15]._action = 1473;
@@ -2347,7 +2347,7 @@ void doInvScrUseWith() {
case iPINZA:
case iSBARRA21:
if (UseWith[WITH] == oCATENAT21) {
if (Room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA) {
if (g_vm->_room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA) {
if (UseWith[USED] == iPINZA)
PlayDialog(dF212B);
else
@@ -2428,7 +2428,7 @@ void doInvScrUseWith() {
_obj[oMONTACARICHI31]._mode |= OBJMODE_OBJSTATUS;
_obj[oPANNELLO31]._mode &= ~OBJMODE_OBJSTATUS;
_obj[oPANNELLON31]._mode &= ~OBJMODE_OBJSTATUS;
Room[r32]._flag |= OBJFLAG_EXTRA;
g_vm->_room[r32]._flag |= OBJFLAG_EXTRA;
doEvent(MC_SYSTEM, ME_CHANGEROOM, MP_SYSTEM, r31, 0, 11, UseWith[WITH]);
printsent = false;
@@ -2657,7 +2657,7 @@ void doInvScrUseWith() {
_obj[oLICANTROPO4P]._mode &= ~OBJMODE_OBJSTATUS;
_obj[oLICANTROPOM4P]._mode |= OBJMODE_OBJSTATUS;
_obj[oSANGUE4P]._mode |= OBJMODE_OBJSTATUS;
Room[r4P]._flag |= OBJFLAG_EXTRA;
g_vm->_room[r4P]._flag |= OBJFLAG_EXTRA;
read3D("4p2.3d"); // dopo licantropo
AnimTab[aBKG4P].flag |= SMKANIM_OFF1;
PlayDialog(dF4P2);
@@ -2866,7 +2866,7 @@ void doInvScrUseWith() {
PlayDialog(dC5A1);
_obj[oFINESTRAA58]._anim = a587;
printsent = false;
Room[r5A]._flag |= OBJFLAG_EXTRA;
g_vm->_room[r5A]._flag |= OBJFLAG_EXTRA;
} else if ((UseWith[WITH] == oFINESTRAA5A) && (_choice[871]._flag & OBJFLAG_DONE)) {
KillIcon(iARMAEVA);
PlayDialog(dF5A1);
@@ -3226,7 +3226,7 @@ void doScript() {
case ME_SETROOM:
switch (campo) {
// case C_RANIM: Room[indice]._anim[indice2] = (uint8)valore; break;
// case C_RANIM: _room[indice]._anim[indice2] = (uint8)valore; break;
}
break;
@@ -3392,11 +3392,11 @@ void doScript() {
bool AtMouseClick(uint16 TheObj) {
bool ret = true;
if ((g_vm->_curRoom == r1D) && !(Room[r1D]._flag & OBJFLAG_EXTRA) && (TheObj != oSCALA1D)) {
if ((g_vm->_curRoom == r1D) && !(g_vm->_room[r1D]._flag & OBJFLAG_EXTRA) && (TheObj != oSCALA1D)) {
g_vm->_curObj = oDONNA1D;
goToPosition(_obj[oDONNA1D]._position);
return (true);
} else if ((g_vm->_curRoom == r2B) && (Room[r2B]._flag & OBJFLAG_EXTRA) && (TheObj != oCARTELLO2B) && (TheObj != od2BALLA28)) {
} else if ((g_vm->_curRoom == r2B) && (g_vm->_room[r2B]._flag & OBJFLAG_EXTRA) && (TheObj != oCARTELLO2B) && (TheObj != od2BALLA28)) {
g_vm->_curObj = oPORTA2B;
goToPosition(_obj[oCARTELLO2B]._position);
return (true);
@@ -3404,7 +3404,7 @@ bool AtMouseClick(uint16 TheObj) {
switch (TheObj) {
case oPORTAA13:
if ((mright) && (Room[r14]._flag & OBJFLAG_DONE)) {
if ((mright) && (g_vm->_room[r14]._flag & OBJFLAG_DONE)) {
if (_characterGoToPosition != 4) goToPosition(4);
} else {
if (_characterGoToPosition != _obj[TheObj]._position) goToPosition(_obj[TheObj]._position);
@@ -3578,7 +3578,7 @@ bool AtMouseClick(uint16 TheObj) {
break;
}
if (Room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA) {
if (g_vm->_room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA) {
if ((TheObj == oTUBO21) || (TheObj == oCARTELLONE21) || (TheObj == oESSE21) || (TheObj == oRAMPINO21) || (TheObj == oCATENA21) || (TheObj == od21ALLA22) || (TheObj == oPORTAC21) || (TheObj == oPORTAA21) || (TheObj == oCUNICOLO21) || (TheObj == od24ALLA23) || (TheObj == od2EALLA2C) || (TheObj == od2GVALLA26)) {
_characterGoToPosition = -1;
ret = true;
@@ -3659,11 +3659,11 @@ void AtEndChangeRoom() {
StartCharacterAction(a1314ARRIVAASCENSOREDABASSO, 0, 0, 0);
else if ((g_vm->_curRoom == r14) && (g_vm->_oldRoom == r13))
StartCharacterAction(a1414ENTERROOM, 0, 0, 0);
else if ((g_vm->_curRoom == r18) && (g_vm->_oldRoom == r17) && !(Room[r18]._flag & OBJFLAG_DONE))
else if ((g_vm->_curRoom == r18) && (g_vm->_oldRoom == r17) && !(g_vm->_room[r18]._flag & OBJFLAG_DONE))
StartCharacterAction(a186GUARDAPIAZZA, 0, 0, 0);
else if ((g_vm->_curRoom == r18) && (g_vm->_oldRoom == r19))
StartCharacterAction(a189ENTRADALCLUB, 0, 0, 0);
else if ((g_vm->_curRoom == r1A) && (g_vm->_oldRoom == r18) && (Room[r1A]._flag & OBJFLAG_DONE)) {
else if ((g_vm->_curRoom == r1A) && (g_vm->_oldRoom == r18) && (g_vm->_room[r1A]._flag & OBJFLAG_DONE)) {
StartCharacterAction(a1A5ENTRA, 0, 0, 0);
AnimTab[aBKG1A].flag |= SMKANIM_OFF1;
} else if ((g_vm->_curRoom == r1C) && (g_vm->_oldRoom == r1B))
@@ -3706,9 +3706,9 @@ void AtEndChangeRoom() {
StartCharacterAction(aWALKIN, 0, 0, 0);
else if ((g_vm->_curRoom == r23B) && (g_vm->_oldRoom == r21))
StartCharacterAction(aWALKIN, 0, 0, 0);
else if ((g_vm->_curRoom == r23A) && (g_vm->_oldRoom == r21) && (Room[r23A]._flag & OBJFLAG_DONE))
else if ((g_vm->_curRoom == r23A) && (g_vm->_oldRoom == r21) && (g_vm->_room[r23A]._flag & OBJFLAG_DONE))
StartCharacterAction(aWALKIN, 0, 0, 0);
else if ((g_vm->_curRoom == r23A) && (g_vm->_oldRoom == r21) && (!(Room[r23A]._flag & OBJFLAG_DONE)))
else if ((g_vm->_curRoom == r23A) && (g_vm->_oldRoom == r21) && (!(g_vm->_room[r23A]._flag & OBJFLAG_DONE)))
SemShowHomo = false;
else if ((g_vm->_curRoom == r21) && ((g_vm->_oldRoom == r23A) || (g_vm->_oldRoom == r23B)))
StartCharacterAction(aWALKIN, 0, 0, 0);
@@ -3725,7 +3725,7 @@ void AtEndChangeRoom() {
StartCharacterAction(a2F4ESCEASCENSORE, 0, 0, 0);
else if ((g_vm->_curRoom == r31) && (g_vm->_oldRoom == r2F))
StartCharacterAction(a3114ESCEPASSAGGIO, 0, 0, 0);
else if ((g_vm->_curRoom == r31) && !(Room[r31]._flag & OBJFLAG_DONE))
else if ((g_vm->_curRoom == r31) && !(g_vm->_room[r31]._flag & OBJFLAG_DONE))
setPosition(14);
else if ((g_vm->_curRoom == r32) && (g_vm->_oldRoom == r31))
StartCharacterAction(a321SALEMONTACARICHI, 0, 0, 0);
@@ -3779,12 +3779,12 @@ void AtEndChangeRoom() {
} else if ((g_vm->_curRoom == r2GV) && (g_vm->_oldRoom == r2G)) {
PlayDialog(dF2G2);
WaitSoundFadEnd();
} else if ((g_vm->_curRoom == r31) && (g_vm->_oldRoom == r32) && (Room[r32]._flag & OBJFLAG_EXTRA)) {
} else if ((g_vm->_curRoom == r31) && (g_vm->_oldRoom == r32) && (g_vm->_room[r32]._flag & OBJFLAG_EXTRA)) {
PlayDialog(dF321);
SemShowHomo = false;
WaitSoundFadEnd();
Room[r32]._flag &= ~OBJFLAG_EXTRA;
} else if ((g_vm->_curRoom == r19) && !(Room[r19]._flag & OBJFLAG_DONE)) {
g_vm->_room[r32]._flag &= ~OBJFLAG_EXTRA;
} else if ((g_vm->_curRoom == r19) && !(g_vm->_room[r19]._flag & OBJFLAG_DONE)) {
PlayScript(s19EVA);
SemNoPaintScreen = false;
ClearText();
@@ -3792,7 +3792,7 @@ void AtEndChangeRoom() {
WaitSoundFadEnd();
}
// CHECKME: This check is identical to the 3rd one, thus it's always false
else if ((g_vm->_curRoom == r21) && (/*!( Room[g_vm->_curRoom]._flag & OBJFLAG_DONE ) || */ (g_vm->_oldRoom == r1C))) {
else if ((g_vm->_curRoom == r21) && (/*!( _room[g_vm->_curRoom]._flag & OBJFLAG_DONE ) || */ (g_vm->_oldRoom == r1C))) {
setPosition(10);
TendIn();
SemNoPaintScreen = false;
@@ -3810,7 +3810,7 @@ void AtEndChangeRoom() {
} else if ((g_vm->_curRoom == r4A) && (g_vm->_oldRoom == r41D) && (InvObj[iDISLOCATORE]._flag & OBJFLAG_EXTRA) && (_obj[ocHELLEN4A]._mode & OBJMODE_OBJSTATUS)) {
WaitSoundFadEnd();
PlayDialog(dC4A1);
} else if ((g_vm->_curRoom == r4P) && (g_vm->_oldRoom == r4O) && !(Room[r4P]._flag & OBJFLAG_DONE)) {
} else if ((g_vm->_curRoom == r4P) && (g_vm->_oldRoom == r4O) && !(g_vm->_room[r4P]._flag & OBJFLAG_DONE)) {
PlayDialog(dF4PI);
SemShowHomo = false;
WaitSoundFadEnd();
@@ -3828,7 +3828,7 @@ void AtEndChangeRoom() {
}
*/
else if ((g_vm->_curRoom == r1A) && (g_vm->_oldRoom == r18)) {
if (!(Room[r1A]._flag & OBJFLAG_DONE)) {
if (!(g_vm->_room[r1A]._flag & OBJFLAG_DONE)) {
PlayDialog(dF1A1);
WaitSoundFadEnd();
_obj[oTOPO1C]._flag |= OBJFLAG_TAKE;
@@ -3846,20 +3846,20 @@ void AtEndChangeRoom() {
}
// Sentence
if ((g_vm->_curRoom == r17) && (g_vm->_oldRoom == r18) && !(Room[r17]._flag & OBJFLAG_DONE) && (_obj[oRETE17]._mode & OBJMODE_OBJSTATUS))
if ((g_vm->_curRoom == r17) && (g_vm->_oldRoom == r18) && !(g_vm->_room[r17]._flag & OBJFLAG_DONE) && (_obj[oRETE17]._mode & OBJMODE_OBJSTATUS))
CharacterSay(189);
if (((g_vm->_curRoom == r12CU) || (g_vm->_curRoom == r13CU)) && (CloseUpObj) && (_obj[CloseUpObj]._examine))
CharacterSay(_obj[CloseUpObj]._examine);
else if ((g_vm->_curRoom == r23A) && (g_vm->_oldRoom == r21) && (!(Room[r23A]._flag & OBJFLAG_DONE))) {
else if ((g_vm->_curRoom == r23A) && (g_vm->_oldRoom == r21) && (!(g_vm->_room[r23A]._flag & OBJFLAG_DONE))) {
SemShowHomo = true;
StartCharacterAction(aWALKIN, 0, 0, 361);
} else if ((g_vm->_curRoom == r24) && !(Room[r24]._flag & OBJFLAG_DONE))
} else if ((g_vm->_curRoom == r24) && !(g_vm->_room[r24]._flag & OBJFLAG_DONE))
CharacterSay(381);
else if ((g_vm->_curRoom == r2G) && !(Room[r2G]._flag & OBJFLAG_DONE))
else if ((g_vm->_curRoom == r2G) && !(g_vm->_room[r2G]._flag & OBJFLAG_DONE))
CharacterSay(688);
else if ((g_vm->_curRoom == r4C) && (g_vm->_oldRoom == r4CT))
CharacterSay(1163);
else if ((g_vm->_curRoom == r41) && (g_vm->_oldRoom == r36) && !(Room[r41]._flag & OBJFLAG_DONE))
else if ((g_vm->_curRoom == r41) && (g_vm->_oldRoom == r36) && !(g_vm->_room[r41]._flag & OBJFLAG_DONE))
CharacterSay(900);
else if ((g_vm->_curRoom == r58) && (_obj[oGUARDIA58]._mode & OBJMODE_OBJSTATUS) && (_obj[oGUARDIA58]._anim)) {
g_vm->_curObj = oGUARDIA58;
@@ -3868,7 +3868,7 @@ void AtEndChangeRoom() {
CharacterSay(1394);
else if ((g_vm->_curRoom == r58) && (g_vm->_oldRoom == r58T))
CharacterSay(1368);
else if ((g_vm->_curRoom == r5A) && !(Room[r5A]._flag & OBJFLAG_DONE))
else if ((g_vm->_curRoom == r5A) && !(g_vm->_room[r5A]._flag & OBJFLAG_DONE))
CharacterSay(1408);
else if ((g_vm->_curRoom == rSYS) && (g_vm->_oldRoom == rSYS))
DoSys(o00LOAD);
@@ -3915,7 +3915,7 @@ void ExecuteATFDO(struct ATFHandle *h, int doit, int obj) {
_obj[obj]._anim = 0;
break;
case fCREPACCIO:
if (Room[r2E]._flag & OBJFLAG_EXTRA)
if (g_vm->_room[r2E]._flag & OBJFLAG_EXTRA)
_obj[oCREPACCIO2E]._position = 7;
else
_obj[oCREPACCIO2E]._position = 6;
@@ -3979,41 +3979,41 @@ void ExecuteATFDO(struct ATFHandle *h, int doit, int obj) {
break;
case fANIMOFF1:
AnimTab[Room[g_vm->_curRoom]._bkgAnim].flag |= SMKANIM_OFF1;
AnimTab[g_vm->_room[g_vm->_curRoom]._bkgAnim].flag |= SMKANIM_OFF1;
if ((g_vm->_curRoom == r11) || (g_vm->_curRoom == r1D) || (g_vm->_curRoom == r14) || (g_vm->_curRoom == r22) || (g_vm->_curRoom == r48) || (g_vm->_curRoom == r4P))
CallSmackVolumePan(0, 1, 0);
break;
case fANIMOFF2:
AnimTab[Room[g_vm->_curRoom]._bkgAnim].flag |= SMKANIM_OFF2;
AnimTab[g_vm->_room[g_vm->_curRoom]._bkgAnim].flag |= SMKANIM_OFF2;
if ((g_vm->_curRoom == r2E))
CallSmackVolumePan(0, 2, 0);
break;
case fANIMOFF3:
AnimTab[Room[g_vm->_curRoom]._bkgAnim].flag |= SMKANIM_OFF3;
AnimTab[g_vm->_room[g_vm->_curRoom]._bkgAnim].flag |= SMKANIM_OFF3;
break;
case fANIMOFF4:
AnimTab[Room[g_vm->_curRoom]._bkgAnim].flag |= SMKANIM_OFF4;
AnimTab[g_vm->_room[g_vm->_curRoom]._bkgAnim].flag |= SMKANIM_OFF4;
if (g_vm->_curRoom == r28)
CallSmackVolumePan(0, 1, 0);
break;
case fANIMON1:
AnimTab[Room[g_vm->_curRoom]._bkgAnim].flag &= ~SMKANIM_OFF1;
AnimTab[g_vm->_room[g_vm->_curRoom]._bkgAnim].flag &= ~SMKANIM_OFF1;
if ((g_vm->_curRoom == r14) || (g_vm->_curRoom == r1D) || (g_vm->_curRoom == r22) || (g_vm->_curRoom == r48) || (g_vm->_curRoom == r4P)) {
CallSmackVolumePan(0, 1, 1);
}
break;
case fANIMON2:
AnimTab[Room[g_vm->_curRoom]._bkgAnim].flag &= ~SMKANIM_OFF2;
AnimTab[g_vm->_room[g_vm->_curRoom]._bkgAnim].flag &= ~SMKANIM_OFF2;
if ((g_vm->_curRoom == r2E)) {
CallSmackVolumePan(0, 2, 1);
}
break;
case fANIMON3:
AnimTab[Room[g_vm->_curRoom]._bkgAnim].flag &= ~SMKANIM_OFF3;
AnimTab[g_vm->_room[g_vm->_curRoom]._bkgAnim].flag &= ~SMKANIM_OFF3;
break;
case fANIMON4:
AnimTab[Room[g_vm->_curRoom]._bkgAnim].flag &= ~SMKANIM_OFF4;
AnimTab[g_vm->_room[g_vm->_curRoom]._bkgAnim].flag &= ~SMKANIM_OFF4;
break;
case fENDDEMO:
@@ -4113,13 +4113,13 @@ void ProcessATF(struct ATFHandle *h, int type, int atf) {
break;
case ATFREADBOX:
if (h->curanim->atframe[atf].index == 1) {
sprintf(UStr, "%s.3d", Room[g_vm->_curRoom]._baseName);
sprintf(UStr, "%s.3d", g_vm->_room[g_vm->_curRoom]._baseName);
read3D(UStr);
Room[g_vm->_curRoom]._flag &= ~OBJFLAG_EXTRA;
g_vm->_room[g_vm->_curRoom]._flag &= ~OBJFLAG_EXTRA;
} else if (h->curanim->atframe[atf].index == 2) {
sprintf(UStr, "%s2.3d", Room[g_vm->_curRoom]._baseName);
sprintf(UStr, "%s2.3d", g_vm->_room[g_vm->_curRoom]._baseName);
read3D(UStr);
Room[g_vm->_curRoom]._flag |= OBJFLAG_EXTRA;
g_vm->_room[g_vm->_curRoom]._flag |= OBJFLAG_EXTRA;
if ((g_vm->_curRoom == r37)) {
CallSmackVolumePan(0, 1, 1);
}
@@ -4128,7 +4128,7 @@ void ProcessATF(struct ATFHandle *h, int type, int atf) {
case ATFONESPEAK:
switch (h->curanim->atframe[atf].index) {
case 1:
if (Room[r1D]._flag & OBJFLAG_EXTRA)
if (g_vm->_room[r1D]._flag & OBJFLAG_EXTRA)
break;
SomeOneTalk(307 + dc, oDONNA1D, 0, 0);
@@ -4215,10 +4215,10 @@ void AtFrameEnd(int type) {
// se e' il momento di eseguire questo AtFrame
if ((anim->atframe[a].nframe == 0) && (anim->atframe[a].type)) {
if ((anim->atframe[a].child == 0) ||
((anim->atframe[a].child == 1) && !(AnimTab[Room[g_vm->_curRoom]._bkgAnim].flag & SMKANIM_OFF1)) ||
((anim->atframe[a].child == 2) && !(AnimTab[Room[g_vm->_curRoom]._bkgAnim].flag & SMKANIM_OFF2)) ||
((anim->atframe[a].child == 3) && !(AnimTab[Room[g_vm->_curRoom]._bkgAnim].flag & SMKANIM_OFF3)) ||
((anim->atframe[a].child == 4) && !(AnimTab[Room[g_vm->_curRoom]._bkgAnim].flag & SMKANIM_OFF4)))
((anim->atframe[a].child == 1) && !(AnimTab[g_vm->_room[g_vm->_curRoom]._bkgAnim].flag & SMKANIM_OFF1)) ||
((anim->atframe[a].child == 2) && !(AnimTab[g_vm->_room[g_vm->_curRoom]._bkgAnim].flag & SMKANIM_OFF2)) ||
((anim->atframe[a].child == 3) && !(AnimTab[g_vm->_room[g_vm->_curRoom]._bkgAnim].flag & SMKANIM_OFF3)) ||
((anim->atframe[a].child == 4) && !(AnimTab[g_vm->_room[g_vm->_curRoom]._bkgAnim].flag & SMKANIM_OFF4)))
ProcessATF(h, anim->atframe[a].type, a);
}
}
@@ -4244,14 +4244,12 @@ void AtFrameHandler(int type) {
for (int32 a = 0; a < MAXATFRAME; a++) {
// se e' il momento di eseguire questo AtFrame
if ((anim->atframe[a].nframe > h->lastframe) &&
(anim->atframe[a].nframe <= h->curframe) &&
(anim->atframe[a].nframe != 0)) {
if ((anim->atframe[a].nframe > h->lastframe) && (anim->atframe[a].nframe <= h->curframe) && (anim->atframe[a].nframe != 0)) {
if ((anim->atframe[a].child == 0) ||
((anim->atframe[a].child == 1) && !(AnimTab[Room[g_vm->_curRoom]._bkgAnim].flag & SMKANIM_OFF1)) ||
((anim->atframe[a].child == 2) && !(AnimTab[Room[g_vm->_curRoom]._bkgAnim].flag & SMKANIM_OFF2)) ||
((anim->atframe[a].child == 3) && !(AnimTab[Room[g_vm->_curRoom]._bkgAnim].flag & SMKANIM_OFF3)) ||
((anim->atframe[a].child == 4) && !(AnimTab[Room[g_vm->_curRoom]._bkgAnim].flag & SMKANIM_OFF4)))
((anim->atframe[a].child == 1) && !(AnimTab[g_vm->_room[g_vm->_curRoom]._bkgAnim].flag & SMKANIM_OFF1)) ||
((anim->atframe[a].child == 2) && !(AnimTab[g_vm->_room[g_vm->_curRoom]._bkgAnim].flag & SMKANIM_OFF2)) ||
((anim->atframe[a].child == 3) && !(AnimTab[g_vm->_room[g_vm->_curRoom]._bkgAnim].flag & SMKANIM_OFF3)) ||
((anim->atframe[a].child == 4) && !(AnimTab[g_vm->_room[g_vm->_curRoom]._bkgAnim].flag & SMKANIM_OFF4)))
ProcessATF(h, anim->atframe[a].type, a);
}
}
-1
View File
@@ -27,7 +27,6 @@ namespace Trecision {
/*-------------------------------------------------------------------------*/
/* INIT */
/*-------------------------------------------------------------------------*/
extern struct SRoom Room[];
extern struct SObject _obj[];
extern struct SInvObject InvObj[];
extern struct SSound GSample[];
-1
View File
@@ -31,7 +31,6 @@ namespace Trecision {
/*-------------------------------------------------------------------------*/
/* INIT */
/*-------------------------------------------------------------------------*/
struct SRoom Room[MAXROOMS];
struct SObject _obj[MAXOBJ];
struct SInvObject InvObj[MAXINVENTORY];
struct SSound GSample[MAXSAMPLE];
+5 -5
View File
@@ -214,7 +214,7 @@ void StartSmackAnim(uint16 num) {
CallSmackVolumePan(0, 1, 0);
else if ((num == aBKG28) && (AnimTab[num].flag & SMKANIM_OFF4))
CallSmackVolumePan(0, 1, 0);
else if ((num == aBKG37) && (!(Room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA)))
else if ((num == aBKG37) && (!(g_vm->_room[g_vm->_curRoom]._flag & OBJFLAG_EXTRA)))
CallSmackVolumePan(0, 1, 0);
else if ((num == aBKG2E) && (AnimTab[num].flag & SMKANIM_OFF2))
CallSmackVolumePan(0, 2, 0);
@@ -371,7 +371,7 @@ void StopFullMotion() {
if (/*( _curDialog != dF1C1 ) && */ !((_curDialog == dNEGOZIANTE1A) && (_curChoice == 185))) {
if ((_curDialog == dF582) || (_curDialog == dFLOG) || (_curDialog == dINTRO) || (_curDialog == dF362) || (_curDialog == dC381) || (_curDialog == dF381) ||
(_curDialog == dF491) || ((_curDialog == dC581) && !(_choice[886]._flag & OBJFLAG_DONE) && (_choice[258]._flag & OBJFLAG_DONE)) ||
((_curDialog == dC5A1) && (Room[r5A]._flag & OBJFLAG_EXTRA)))
((_curDialog == dC5A1) && (g_vm->_room[r5A]._flag & OBJFLAG_EXTRA)))
SemShowHomo = 0;
else
RedrawRoom();
@@ -430,12 +430,12 @@ void RedrawRoom() {
memset(VideoObjStatus, 0, MAXOBJINROOM);
wordset(Video2, 0, CurRoomMaxX * MAXY);
if (Room[g_vm->_curRoom]._bkgAnim)
if (g_vm->_room[g_vm->_curRoom]._bkgAnim)
MCopy(ImagePointer, SmackImagePointer, CurRoomMaxX * AREA);
MCopy(Video2 + TOP * CurRoomMaxX, ImagePointer, CurRoomMaxX * AREA);
if (Room[g_vm->_curRoom]._bkgAnim)
StartSmackAnim(Room[g_vm->_curRoom]._bkgAnim);
if (g_vm->_room[g_vm->_curRoom]._bkgAnim)
StartSmackAnim(g_vm->_room[g_vm->_curRoom]._bkgAnim);
if ((g_vm->_curRoom == r4P) && (_curDialog == dF4PI)) {
memset(SmackBuffer[0], 0, SCREENLEN * AREA);
+7 -6
View File
@@ -28,6 +28,7 @@
#include "trecision/nl/extern.h"
#include "trecision/nl/ll/llinc.h"
#include "trecision/nl/define.h"
#include "trecision/trecision.h"
#include <common/file.h>
@@ -98,16 +99,16 @@ void LoadAll() {
for (int i = 0; i < MAXROOMS; ++i) {
for (int j = 0; j < 4; ++j)
Room[i]._baseName[j] = dataNl.readSByte();
Room[i]._flag = dataNl.readByte();
g_vm->_room[i]._baseName[j] = dataNl.readSByte();
g_vm->_room[i]._flag = dataNl.readByte();
dataNl.readByte(); // Padding
Room[i]._bkgAnim = dataNl.readUint16LE();
g_vm->_room[i]._bkgAnim = dataNl.readUint16LE();
for (int j = 0; j < MAXOBJINROOM; ++j)
Room[i]._object[j] = dataNl.readUint16LE();
g_vm->_room[i]._object[j] = dataNl.readUint16LE();
for (int j = 0; j < MAXSOUNDSINROOM; ++j)
Room[i]._sounds[j] = dataNl.readUint16LE();
g_vm->_room[i]._sounds[j] = dataNl.readUint16LE();
for (int j = 0; j < MAXACTIONINROOM; ++j)
Room[i]._actions[j] = dataNl.readUint16LE();
g_vm->_room[i]._actions[j] = dataNl.readUint16LE();
}
for (int i = 0; i < MAXOBJ; ++i) {
+8 -8
View File
@@ -679,10 +679,10 @@ insave:
fwrite(&_oldPanel, sizeof(int), 1, fh);
for (a = 0; a < MAXROOMS; a++) {
fwrite(Room[a]._baseName, sizeof(char), 4, fh);
fwrite(Room[a]._actions, sizeof(uint16), MAXACTIONINROOM, fh);
fwrite(&Room[a]._flag, sizeof(uint8), 1, fh);
fwrite(&Room[a]._bkgAnim, sizeof(uint16), 1, fh);
fwrite(g_vm->_room[a]._baseName, sizeof(char), 4, fh);
fwrite(g_vm->_room[a]._actions, sizeof(uint16), MAXACTIONINROOM, fh);
fwrite(&g_vm->_room[a]._flag, sizeof(uint8), 1, fh);
fwrite(&g_vm->_room[a]._bkgAnim, sizeof(uint16), 1, fh);
}
for (a = 0; a < MAXOBJ; a++) {
fwrite(&_obj[a]._lim, sizeof(uint16), 4, fh);
@@ -975,10 +975,10 @@ bool DataLoad() {
fread(&_oldPanel, sizeof(int), 1, fh);
for (a = 0; a < MAXROOMS; a++) {
fread(Room[a]._baseName, sizeof(char), 4, fh);
fread(Room[a]._actions, sizeof(uint16), MAXACTIONINROOM, fh);
fread(&Room[a]._flag, sizeof(uint8), 1, fh);
fread(&Room[a]._bkgAnim, sizeof(uint16), 1, fh);
fread(g_vm->_room[a]._baseName, sizeof(char), 4, fh);
fread(g_vm->_room[a]._actions, sizeof(uint16), MAXACTIONINROOM, fh);
fread(&g_vm->_room[a]._flag, sizeof(uint8), 1, fh);
fread(&g_vm->_room[a]._bkgAnim, sizeof(uint16), 1, fh);
}
for (a = 0; a < MAXOBJ; a++) {
fread(&_obj[a]._lim, sizeof(uint16), 4, fh);
+155 -159
View File
@@ -162,7 +162,6 @@ void openSys() {
OpenVideo
--------------------------------------------------*/
void OpenVideo() {
GameBytePointer = 0;
GameWordPointer = 0;
@@ -300,10 +299,8 @@ void OpenVideo() {
ReadActor
--------------------------------------------------*/
uint32 ReadActor(const char *filename, uint8 *Area) {
int32 Read;
int32 ActionNum;
extern uint32 materials[21][181];
extern uint16 _textureMat[256][91];
extern int16 _textureCoord[MAXFACE][3][2];
@@ -321,7 +318,7 @@ uint32 ReadActor(const char *filename, uint8 *Area) {
_actor._vertex = (struct SVertex *)(Area);
_characterArea = Area;
Read = FastFileRead(ff, _actor._vertex, sizeof(struct SVertex) * VertexNum * ActionNum);
int32 Read = FastFileRead(ff, _actor._vertex, sizeof(struct SVertex) * VertexNum * ActionNum);
FastFileRead(ff, &FaceNum, 4);
_actor._faceNum = FaceNum;
@@ -349,8 +346,7 @@ uint32 ReadActor(const char *filename, uint8 *Area) {
extern float _vertsCorr[104][3];
extern int _vertsCorrList[84];
double v1[3], v2[3], v[3], q[3], m1[3][3], m2[3][3], s;
struct SVertex *sv;
int b, c, d, e, f;
int c, d, f;
v1[0] = _actor._vertex[P2]._x - _actor._vertex[P1]._x;
v1[1] = _actor._vertex[P2]._y - _actor._vertex[P1]._y;
@@ -388,8 +384,8 @@ uint32 ReadActor(const char *filename, uint8 *Area) {
m1[0][1] = v1[1];
m1[0][2] = v1[2];
for (b = 0; b < ActionNum; b++) {
sv = (struct SVertex *)(_actor._vertex + b * VertexNum);
for (int b = 0; b < ActionNum; b++) {
struct SVertex *sv = (struct SVertex *)(_actor._vertex + b * VertexNum);
v1[0] = sv[P2]._x - sv[P1]._x;
v1[1] = sv[P2]._y - sv[P1]._y;
@@ -435,7 +431,7 @@ uint32 ReadActor(const char *filename, uint8 *Area) {
v1[1] = _actor._vertex[P1]._y;
v1[2] = _actor._vertex[P1]._z;
for (e = 279; e < 383; e++) {
for (int e = 279; e < 383; e++) {
for (f = 0; f < 84; f++)
if (_vertsCorrList[f] == e)
break;
@@ -482,7 +478,7 @@ int actionInRoom(int curA) {
int b;
for (b = 0; b < MAXACTIONINROOM; b++) {
if (Room[g_vm->_curRoom]._actions[b] == curA)
if (g_vm->_room[g_vm->_curRoom]._actions[b] == curA)
break;
}
@@ -491,7 +487,7 @@ int actionInRoom(int curA) {
return (0) ;
}
return (b);
return b;
}
int RoomReady = 0;
@@ -502,7 +498,7 @@ void ReadLoc() {
extern uint16 _playingAnims[];
RoomReady = 0;
if ((g_vm->_curRoom == r11) && !(Room[r11]._flag & OBJFLAG_DONE))
if ((g_vm->_curRoom == r11) && !(g_vm->_room[r11]._flag & OBJFLAG_DONE))
SemShowHomo = 1;
SoundFadOut();
@@ -511,7 +507,7 @@ void ReadLoc() {
GameWordPointer = (CurRoomMaxX * MAXY); // space for Video2
sprintf(UStr, "%s.cr", Room[g_vm->_curRoom]._baseName);
sprintf(UStr, "%s.cr", g_vm->_room[g_vm->_curRoom]._baseName);
ImagePointer = (uint16 *)Video2 + GameWordPointer - 4;
GameWordPointer += (DecCR(UStr, (uint8 *)ImagePointer, (uint8 *)Video2) + 1) / 2;
@@ -520,15 +516,14 @@ void ReadLoc() {
UpdatePixelFormat(ImagePointer, BmInfo.dx * BmInfo.dy);
ReadObj();
if ((Room[g_vm->_curRoom]._sounds[0] != 0))
if ((g_vm->_room[g_vm->_curRoom]._sounds[0] != 0))
ReadSounds();
sprintf(UStr, "%s.3d", Room[g_vm->_curRoom]._baseName);
sprintf(UStr, "%s.3d", g_vm->_room[g_vm->_curRoom]._baseName);
_actionPointer[0] = (uint8 *)(Video2 + GameWordPointer);
GameWordPointer += read3D(UStr) / 2;
sprintf(UStr, "act\\%s.act", Room[g_vm->_curRoom]._baseName);
// ReadAction( UStr );
sprintf(UStr, "act\\%s.act", g_vm->_room[g_vm->_curRoom]._baseName);
wordset(Video2, 0, CurRoomMaxX * MAXY);
MCopy(Video2 + TOP * CurRoomMaxX, ImagePointer, CurRoomMaxX * AREA);
@@ -539,13 +534,13 @@ void ReadLoc() {
RegenRoom();
if (Room[g_vm->_curRoom]._bkgAnim) {
if (g_vm->_room[g_vm->_curRoom]._bkgAnim) {
wordcopy(SmackImagePointer, ImagePointer, MAXX * AREA);
StartSmackAnim(Room[g_vm->_curRoom]._bkgAnim);
StartSmackAnim(g_vm->_room[g_vm->_curRoom]._bkgAnim);
} else
StopSmackAnim(_playingAnims[0]);
InitAtFrameHandler(Room[g_vm->_curRoom]._bkgAnim, 0);
InitAtFrameHandler(g_vm->_room[g_vm->_curRoom]._bkgAnim, 0);
if (MaxMemory < (GameWordPointer * 2 + GameBytePointer))
MaxMemory = (GameWordPointer * 2 + GameBytePointer);
@@ -555,8 +550,6 @@ void ReadLoc() {
TendIn
--------------------------------------------------*/
void TendIn() {
// int a;
TextStatus = TEXT_OFF;
if (g_vm->_curRoom == rINTRO) {
@@ -570,7 +563,7 @@ void TendIn() {
ShowScreen(0, 0, MAXX, MAXY);
RoomReady = 1;
// for( a=0; a<MAXY; a++ )
// for(int a=0; a<MAXY; a++ )
// VCopy(a*VirtualPageLen+VideoScrollPageDx,Video2+a*CurRoomMaxX+CurScrollPageDx,VirtualPageLen);
// UnlockVideo();
}
@@ -579,53 +572,54 @@ void TendIn() {
ReadObj
--------------------------------------------------*/
void ReadObj() {
if (Room[g_vm->_curRoom]._object[0]) {
uint16 *o = (uint16 *)ImagePointer + BmInfo.dx * BmInfo.dy;
if (!g_vm->_room[g_vm->_curRoom]._object[0])
return;
uint32 b = 0;
for (uint16 a = 0; a < MAXOBJINROOM; a++) {
uint16 c = Room[g_vm->_curRoom]._object[a];
if (!c)
break;
uint16 *o = (uint16 *)ImagePointer + BmInfo.dx * BmInfo.dy;
uint32 b = 0;
for (uint16 a = 0; a < MAXOBJINROOM; a++) {
uint16 c = g_vm->_room[g_vm->_curRoom]._object[a];
if (!c)
break;
if ((g_vm->_curRoom == r41D) && (a == 89))
break;
else if ((g_vm->_curRoom == r2C) && (a == 20))
break;
if ((g_vm->_curRoom == r41D) && (a == 89))
break;
if (_obj[c]._mode & OBJMODE_FULL) {
wordcopy(&BmInfo, o + b, 4);
b += 4;
_obj[c]._px = BmInfo.px;
_obj[c]._py = BmInfo.py;
_obj[c]._dx = BmInfo.dx;
_obj[c]._dy = BmInfo.dy;
if ((g_vm->_curRoom == r2C) && (a == 20))
break;
ObjPointers[a] = (uint16 *)(o + b);
UpdatePixelFormat(ObjPointers[a], (_obj[c]._dx * _obj[c]._dy));
b += (_obj[c]._dx * _obj[c]._dy);
}
if (_obj[c]._mode & OBJMODE_FULL) {
wordcopy(&BmInfo, o + b, 4);
b += 4;
_obj[c]._px = BmInfo.px;
_obj[c]._py = BmInfo.py;
_obj[c]._dx = BmInfo.dx;
_obj[c]._dy = BmInfo.dy;
if ((_obj[c]._mode & OBJMODE_MASK)) {
wordcopy(&BmInfo, o + b, 4);
b += 4;
_obj[c]._px = BmInfo.px;
_obj[c]._py = BmInfo.py;
_obj[c]._dx = BmInfo.dx;
_obj[c]._dy = BmInfo.dy;
ObjPointers[a] = (uint16 *)(o + b);
UpdatePixelFormat(ObjPointers[a], (_obj[c]._dx * _obj[c]._dy));
b += (_obj[c]._dx * _obj[c]._dy);
}
uint32 *p = (uint32 *)(o + b);
ObjPointers[a] = (uint16 *)p + 2;
UpdatePixelFormat(ObjPointers[a], *p);
if ((_obj[c]._mode & OBJMODE_MASK)) {
wordcopy(&BmInfo, o + b, 4);
b += 4;
_obj[c]._px = BmInfo.px;
_obj[c]._py = BmInfo.py;
_obj[c]._dx = BmInfo.dx;
_obj[c]._dy = BmInfo.dy;
b += (p[0]);
b += 2;
uint32 *p = (uint32 *)(o + b);
ObjPointers[a] = (uint16 *)p + 2;
UpdatePixelFormat(ObjPointers[a], *p);
p = (uint32 *)(o + b);
MaskPointers[a] = (uint8 *)p + 4;
b += (*p / 2);
b += 2;
}
b += (p[0]);
b += 2;
p = (uint32 *)(o + b);
MaskPointers[a] = (uint8 *)p + 4;
b += (*p / 2);
b += 2;
}
}
}
@@ -634,51 +628,52 @@ void ReadObj() {
ReadObj
--------------------------------------------------*/
void ReadExtraObj2C() {
if (Room[g_vm->_curRoom]._object[32]) {
uint16 *o = (uint16 *)ExtraObj2C;
ff = FastFileOpen("2C2.bm");
FastFileRead(ff, ExtraObj2C, FastFileLen(ff));
FastFileClose(ff);
if (!g_vm->_room[g_vm->_curRoom]._object[32])
return;
uint16 *o = (uint16 *)ExtraObj2C;
ff = FastFileOpen("2C2.bm");
FastFileRead(ff, ExtraObj2C, FastFileLen(ff));
FastFileClose(ff);
uint32 b = 0;
for (uint16 a = 20; a < MAXOBJINROOM; a++) {
uint16 c = Room[g_vm->_curRoom]._object[a];
if (!c)
break;
uint32 b = 0;
for (uint16 a = 20; a < MAXOBJINROOM; a++) {
uint16 c = g_vm->_room[g_vm->_curRoom]._object[a];
if (!c)
break;
if (_obj[c]._mode & OBJMODE_FULL) {
wordcopy(&BmInfo, o + b, 4);
b += 4;
_obj[c]._px = BmInfo.px;
_obj[c]._py = BmInfo.py;
_obj[c]._dx = BmInfo.dx;
_obj[c]._dy = BmInfo.dy;
if (_obj[c]._mode & OBJMODE_FULL) {
wordcopy(&BmInfo, o + b, 4);
b += 4;
_obj[c]._px = BmInfo.px;
_obj[c]._py = BmInfo.py;
_obj[c]._dx = BmInfo.dx;
_obj[c]._dy = BmInfo.dy;
ObjPointers[a] = (uint16 *)(o + b);
UpdatePixelFormat(ObjPointers[a], (_obj[c]._dx * _obj[c]._dy));
b += (_obj[c]._dx * _obj[c]._dy);
}
ObjPointers[a] = (uint16 *)(o + b);
UpdatePixelFormat(ObjPointers[a], (_obj[c]._dx * _obj[c]._dy));
b += (_obj[c]._dx * _obj[c]._dy);
}
if ((_obj[c]._mode & OBJMODE_MASK)) {
wordcopy(&BmInfo, o + b, 4);
b += 4;
_obj[c]._px = BmInfo.px;
_obj[c]._py = BmInfo.py;
_obj[c]._dx = BmInfo.dx;
_obj[c]._dy = BmInfo.dy;
if ((_obj[c]._mode & OBJMODE_MASK)) {
wordcopy(&BmInfo, o + b, 4);
b += 4;
_obj[c]._px = BmInfo.px;
_obj[c]._py = BmInfo.py;
_obj[c]._dx = BmInfo.dx;
_obj[c]._dy = BmInfo.dy;
uint32 *p = (uint32 *)(o + b);
ObjPointers[a] = (uint16 *)p + 2;
UpdatePixelFormat(ObjPointers[a], *p);
uint32 *p = (uint32 *)(o + b);
ObjPointers[a] = (uint16 *)p + 2;
UpdatePixelFormat(ObjPointers[a], *p);
b += (p[0]);
b += 2;
b += (p[0]);
b += 2;
p = (uint32 *)(o + b);
MaskPointers[a] = (uint8 *)p + 4;
b += (*p / 2);
b += 2;
}
p = (uint32 *)(o + b);
MaskPointers[a] = (uint8 *)p + 4;
b += (*p / 2);
b += 2;
}
}
}
@@ -687,51 +682,52 @@ void ReadExtraObj2C() {
ReadObj
--------------------------------------------------*/
void ReadExtraObj41D() {
if (Room[g_vm->_curRoom]._object[32]) {
uint16 *o = (uint16 *)ExtraObj41D;
ff = FastFileOpen("41D2.bm");
FastFileRead(ff, ExtraObj41D, FastFileLen(ff));
FastFileClose(ff);
if (!g_vm->_room[g_vm->_curRoom]._object[32])
return;
uint32 b = 0;
for (uint16 a = 89; a < MAXOBJINROOM; a++) {
uint16 c = Room[g_vm->_curRoom]._object[a];
if (!c)
break;
uint16 *o = (uint16 *)ExtraObj41D;
ff = FastFileOpen("41D2.bm");
FastFileRead(ff, ExtraObj41D, FastFileLen(ff));
FastFileClose(ff);
if (_obj[c]._mode & OBJMODE_FULL) {
wordcopy(&BmInfo, o + b, 4);
b += 4;
_obj[c]._px = BmInfo.px;
_obj[c]._py = BmInfo.py;
_obj[c]._dx = BmInfo.dx;
_obj[c]._dy = BmInfo.dy;
uint32 b = 0;
for (uint16 a = 89; a < MAXOBJINROOM; a++) {
uint16 c = g_vm->_room[g_vm->_curRoom]._object[a];
if (!c)
break;
ObjPointers[a] = (uint16 *)(o + b);
UpdatePixelFormat(ObjPointers[a], (_obj[c]._dx * _obj[c]._dy));
b += (_obj[c]._dx * _obj[c]._dy);
}
if (_obj[c]._mode & OBJMODE_FULL) {
wordcopy(&BmInfo, o + b, 4);
b += 4;
_obj[c]._px = BmInfo.px;
_obj[c]._py = BmInfo.py;
_obj[c]._dx = BmInfo.dx;
_obj[c]._dy = BmInfo.dy;
if ((_obj[c]._mode & OBJMODE_MASK)) {
wordcopy(&BmInfo, o + b, 4);
b += 4;
_obj[c]._px = BmInfo.px;
_obj[c]._py = BmInfo.py;
_obj[c]._dx = BmInfo.dx;
_obj[c]._dy = BmInfo.dy;
ObjPointers[a] = (uint16 *)(o + b);
UpdatePixelFormat(ObjPointers[a], (_obj[c]._dx * _obj[c]._dy));
b += (_obj[c]._dx * _obj[c]._dy);
}
uint32 *p = (uint32 *)(o + b);
ObjPointers[a] = (uint16 *)p + 2;
UpdatePixelFormat(ObjPointers[a], *p);
if ((_obj[c]._mode & OBJMODE_MASK)) {
wordcopy(&BmInfo, o + b, 4);
b += 4;
_obj[c]._px = BmInfo.px;
_obj[c]._py = BmInfo.py;
_obj[c]._dx = BmInfo.dx;
_obj[c]._dy = BmInfo.dy;
b += (p[0]);
b += 2;
uint32 *p = (uint32 *)(o + b);
ObjPointers[a] = (uint16 *)p + 2;
UpdatePixelFormat(ObjPointers[a], *p);
p = (uint32 *)(o + b);
MaskPointers[a] = (uint8 *)p + 4;
b += (*p / 2);
b += 2;
}
b += (p[0]);
b += 2;
p = (uint32 *)(o + b);
MaskPointers[a] = (uint8 *)p + 4;
b += (*p / 2);
b += 2;
}
}
}
@@ -744,7 +740,7 @@ void ReadSounds() {
return;
for (uint16 a = 0; a < MAXSOUNDSINROOM; a++) {
uint16 b = Room[g_vm->_curRoom]._sounds[a];
uint16 b = g_vm->_room[g_vm->_curRoom]._sounds[a];
if (b == 0)
break;
@@ -776,16 +772,16 @@ void ReadSounds() {
--------------------------------------------------*/
void RegenRoom() {
for (uint16 a = 0; a < MAXOBJINROOM; a++) {
if (Room[g_vm->_curRoom]._object[a] == 0)
if (g_vm->_room[g_vm->_curRoom]._object[a] == 0)
break;
int status = (_obj[Room[g_vm->_curRoom]._object[a]]._mode & OBJMODE_OBJSTATUS);
int status = (_obj[g_vm->_room[g_vm->_curRoom]._object[a]]._mode & OBJMODE_OBJSTATUS);
if (status) {
if ((!OldObjStatus[a]) && (_obj[Room[g_vm->_curRoom]._object[a]]._mode & (OBJMODE_MASK | OBJMODE_FULL))) {
if ((!OldObjStatus[a]) && (_obj[g_vm->_room[g_vm->_curRoom]._object[a]]._mode & (OBJMODE_MASK | OBJMODE_FULL))) {
OldObjStatus[a] = 1;
}
} else if ((OldObjStatus[a]) && (_obj[Room[g_vm->_curRoom]._object[a]]._mode & (OBJMODE_MASK | OBJMODE_FULL)))
} else if ((OldObjStatus[a]) && (_obj[g_vm->_room[g_vm->_curRoom]._object[a]]._mode & (OBJMODE_MASK | OBJMODE_FULL)))
OldObjStatus[a] = 0;
}
}
@@ -796,7 +792,7 @@ void RegenRoom() {
void PaintRegenRoom() {
for (uint16 a = 0; a < MAXOBJINROOM; a++) {
if ((OldObjStatus[a]) && (!VideoObjStatus[a])) {
SortTable[g_vm->_curSortTableNum].index = Room[g_vm->_curRoom]._object[a];
SortTable[g_vm->_curSortTableNum].index = g_vm->_room[g_vm->_curRoom]._object[a];
SortTable[g_vm->_curSortTableNum].roomindex = a;
SortTable[g_vm->_curSortTableNum].togli = false;
SortTable[g_vm->_curSortTableNum].framecur = 0;
@@ -804,7 +800,7 @@ void PaintRegenRoom() {
VideoObjStatus[a] = 1;
g_vm->_curSortTableNum++;
} else if ((!OldObjStatus[a]) && (VideoObjStatus[a])) {
SortTable[g_vm->_curSortTableNum].index = Room[g_vm->_curRoom]._object[a];
SortTable[g_vm->_curSortTableNum].index = g_vm->_room[g_vm->_curRoom]._object[a];
SortTable[g_vm->_curSortTableNum].roomindex = a;
SortTable[g_vm->_curSortTableNum].togli = true;
SortTable[g_vm->_curSortTableNum].framecur = 0;
@@ -892,20 +888,19 @@ void DrawObj(struct SDObj d) {
RegenInventory()
--------------------------------------------------*/
void RegenInventory(uint8 StartIcon, uint8 StartLine) {
uint16 a, b;
if (StartLine > ICONDY)
StartLine = ICONDY;
if (StartLine > ICONDY) StartLine = ICONDY;
for (b = 0; b < ICONDY; b++)
for (uint16 b = 0; b < ICONDY; b++)
wordset(Video2 + (FIRSTLINE + b)*CurRoomMaxX + CurScrollPageDx, 0, SCREENLEN);
for (a = 0; a < ICONSHOWN; a++) {
for (uint16 a = 0; a < ICONSHOWN; a++) {
if ((_inventory[a + StartIcon] >= LASTICON) /*|| ( _inventory[a+StartIcon] == iEMPTYSLOT )*/) {
for (b = 0; b < (ICONDY - StartLine); b++)
for (uint16 b = 0; b < (ICONDY - StartLine); b++)
MCopy(Video2 + (FIRSTLINE + b)*CurRoomMaxX + a * (ICONDX) + ICONMARGSX + CurScrollPageDx,
Icone + (_inventory[a + StartIcon] - LASTICON + READICON + 1)*ICONDX * ICONDY + (b + StartLine)*ICONDX, ICONDX);
} else if (_inventory[a + StartIcon] != LightIcon) {
for (b = 0; b < (ICONDY - StartLine); b++)
for (uint16 b = 0; b < (ICONDY - StartLine); b++)
MCopy(Video2 + (FIRSTLINE + b)*CurRoomMaxX + a * (ICONDX) + ICONMARGSX + CurScrollPageDx,
Icone + _inventory[a + StartIcon]*ICONDX * ICONDY + (b + StartLine)*ICONDX, ICONDX);
}
@@ -914,7 +909,7 @@ void RegenInventory(uint8 StartIcon, uint8 StartLine) {
// frecce
if (StartIcon != 0) { // COPIA LA SINISTRA
LeftArrow = ICONMARGSX * ICONDY * 3;
for (b = 0; b < (ICONDY - StartLine); b++) {
for (uint16 b = 0; b < (ICONDY - StartLine); b++) {
MCopy(Video2 + (FIRSTLINE + b)*CurRoomMaxX + CurScrollPageDx,
Arrows + LeftArrow + (b + StartLine)*ICONMARGSX, ICONMARGSX);
}
@@ -922,7 +917,7 @@ void RegenInventory(uint8 StartIcon, uint8 StartLine) {
if ((StartIcon + ICONSHOWN) < _inventorySize) { // COPIA LA DESTRA
RightArrow = ICONMARGDX * ICONDY * 2;
for (b = 0; b < (ICONDY - StartLine); b++) {
for (uint16 b = 0; b < (ICONDY - StartLine); b++) {
MCopy(Video2 + (FIRSTLINE + b)*CurRoomMaxX + CurScrollPageDx + SCREENLEN - ICONMARGDX,
Arrows + RightArrow + ICONMARGSX * ICONDY * 2 + (b + StartLine)*ICONMARGSX, ICONMARGSX);
}
@@ -933,9 +928,10 @@ void RegenInventory(uint8 StartIcon, uint8 StartLine) {
//RegenSmackIcon( StartIcon, 2 );
VMouseCopy();
for (a = 0; a < ICONDY; a++)
VCopy((FIRSTLINE + a)*VirtualPageLen + VideoScrollPageDx,
Video2 + (FIRSTLINE + a)*CurRoomMaxX + CurScrollPageDx, SCREENLEN);
for (uint16 a = 0; a < ICONDY; a++) {
VCopy((FIRSTLINE + a) * VirtualPageLen + VideoScrollPageDx,
Video2 + (FIRSTLINE + a) * CurRoomMaxX + CurScrollPageDx, SCREENLEN);
}
VMouseRestore();
//VMouseON();
UnlockVideo();
@@ -964,7 +960,7 @@ uint16 RGB2Color(uint8 r, uint8 g, uint8 b) {
((uint16)((uint16)(r & 0x1F) << 10L) & 0x7C00)
);
return (a);
return a;
}
/* -----------------20/11/97 16.59-------------------
@@ -981,7 +977,7 @@ uint16 ULaw2Linear(uint8 ulawbyte) {
if (sign != 0)
sample = -sample;
return (sample);
return sample;
}
} // End of namespace Trecision
+1 -1
View File
@@ -154,7 +154,7 @@ uint16 UnUpdatePixelFormat(uint16 t) {
bool CheckMask(uint16 MX, uint16 my) {
for (int8 a = (MAXOBJINROOM - 1); a >= 0; a--) {
uint16 CheckedObj = Room[g_vm->_curRoom]._object[a];
uint16 CheckedObj = g_vm->_room[g_vm->_curRoom]._object[a];
if ((CheckedObj) && (_obj[CheckedObj]._mode & (OBJMODE_OBJSTATUS))) {
if ((MX >= _obj[CheckedObj]._lim[0]) &&
-1
View File
@@ -67,7 +67,6 @@ void openSys();
void OpenVideo();
uint32 ReadActor(const char *filename, uint8 *Area);
int actionInRoom(int curA);
void ReadAction(const char *name);
void ReadLoc();
void TendIn();
void ReadObj();
+3 -3
View File
@@ -160,7 +160,7 @@ void PaintScreen(uint8 flag) {
// CANCELLA TUTTI GLI OGGETTI TOGLI
for (a = 0; a < g_vm->_curSortTableNum; a++) {
if (SortTable[a].togli == true) {
if (SortTable[a].togli) {
DObj.x = 0;
DObj.y = TOP;
DObj.dx = CurRoomMaxX;
@@ -240,7 +240,7 @@ void PaintScreen(uint8 flag) {
TextStatus = TEXT_DRAW; // attiva aggiornamento scritta
}
SoundPasso((_actor._lim[1] + _actor._lim[0]) / 2, (_actor._lim[5] + _actor._lim[4]) / 2, _actor._curAction, _actor._curFrame, Room[g_vm->_curRoom]._sounds);
SoundPasso((_actor._lim[1] + _actor._lim[0]) / 2, (_actor._lim[5] + _actor._lim[4]) / 2, _actor._curAction, _actor._curFrame, g_vm->_room[g_vm->_curRoom]._sounds);
for (liv = 0; liv < limitinum; liv++) {
for (int b = limiti[liv][1]; b < limiti[liv][3]; b++) {
@@ -430,7 +430,7 @@ void PaintObjAnm(uint16 CurBox) {
}
for (a = 0; a < limitinum; a++) {
for (b = 0; b < MAXOBJINROOM; b++) {
TheObject = Room[g_vm->_curRoom]._object[b];
TheObject = g_vm->_room[g_vm->_curRoom]._object[b];
if (!TheObject)
break;
+1 -1
View File
@@ -164,7 +164,7 @@ void ShowObjName(uint16 obj, bool showhide) {
if (obj == lastobj)
return;
if (!(_obj[obj]._flag & OBJFLAG_EXAMINE)) {
if ((_obj[obj]._flag & OBJFLAG_DONE) || (Room[_obj[obj]._goRoom]._flag & OBJFLAG_DONE)) {
if ((_obj[obj]._flag & OBJFLAG_DONE) || (g_vm->_room[_obj[obj]._goRoom]._flag & OBJFLAG_DONE)) {
strcpy(locsent, _sysSent[25]);
if (_obj[obj]._mode & OBJMODE_HIDDEN)
strcat(locsent, dunno);
+6 -2
View File
@@ -24,6 +24,9 @@
Structures definitions
--------------------------------------------------*/
#ifndef TRECISION_NL_STRUCT_H
#define TRECISION_NL_STRUCT_H
namespace Trecision {
struct SRoom {
@@ -150,7 +153,7 @@ typedef struct queue {
struct SSortTable {
uint16 index; // indice nell' elenco
uint16 typology; // tipo di bitmap
LLBOOL togli; // se copiare o togliere
bool togli; // se copiare o togliere
uint16 roomindex; // indice nella room
uint16 framecur; // frame corrente se animazione
};
@@ -166,7 +169,7 @@ struct SScriptFrame {
uint16 lparam;
LLBOOL nowait;
bool nowait;
};
struct SScript {
@@ -182,3 +185,4 @@ struct SSound {
};
} // End of namespace Trecision
#endif
-6
View File
@@ -51,12 +51,6 @@ struct SNLSample {
} NLSample[NUMSAMPLES];
SNLSample SpeechSample;
struct SSound {
char name[14];
uint8 volume;
uint8 flag;
int8 panning;
};
extern SSound GSample[];
int SoundDevice = -1;
+11 -11
View File
@@ -482,7 +482,7 @@ void SetRoom(unsigned short r, bool b) {
case r21:
if (!b) {
read3D("21.3d");
Room[r21]._flag &= ~OBJFLAG_EXTRA;
g_vm->_room[r21]._flag &= ~OBJFLAG_EXTRA;
setPosition(14);
_obj[oCATENAT21]._position = 5;
_obj[oUSCITA21]._position = 11;
@@ -509,7 +509,7 @@ void SetRoom(unsigned short r, bool b) {
_obj[oCARTELLONE21]._mode |= OBJMODE_OBJSTATUS;
} else {
read3D("212.3d");
Room[r21]._flag |= OBJFLAG_EXTRA;
g_vm->_room[r21]._flag |= OBJFLAG_EXTRA;
setPosition(15);
_obj[oCATENAT21]._position = 6;
_obj[oUSCITA21]._position = 21;
@@ -541,14 +541,14 @@ void SetRoom(unsigned short r, bool b) {
case r24:
if (!b) {
read3D("24.3d");
Room[r24]._flag &= ~OBJFLAG_EXTRA;
g_vm->_room[r24]._flag &= ~OBJFLAG_EXTRA;
_obj[oPASSAGGIO24]._position = 3;
_obj[oMACERIE24]._position = 3;
_obj[oDUMMY24]._mode &= ~OBJMODE_OBJSTATUS;
_obj[oDUMMY24A]._mode |= OBJMODE_OBJSTATUS;
} else {
read3D("242.3d");
Room[r24]._flag |= OBJFLAG_EXTRA;
g_vm->_room[r24]._flag |= OBJFLAG_EXTRA;
_obj[od24ALLA26]._mode |= OBJMODE_OBJSTATUS;
_obj[oPASSAGGIO24]._position = 4;
_obj[oMACERIE24]._position = 4;
@@ -560,12 +560,12 @@ void SetRoom(unsigned short r, bool b) {
case r2A:
if (!b) {
read3D("2A.3d");
Room[r2A]._flag &= ~OBJFLAG_EXTRA;
g_vm->_room[r2A]._flag &= ~OBJFLAG_EXTRA;
_obj[oDUMMY2A2]._mode |= OBJMODE_OBJSTATUS;
_obj[oDUMMY2A]._mode &= ~OBJMODE_OBJSTATUS;
} else {
read3D("2A2.3d");
Room[r2A]._flag |= OBJFLAG_EXTRA;
g_vm->_room[r2A]._flag |= OBJFLAG_EXTRA;
_obj[oDUMMY2A]._mode |= OBJMODE_OBJSTATUS;
_obj[oDUMMY2A2]._mode &= ~OBJMODE_OBJSTATUS;
}
@@ -573,12 +573,12 @@ void SetRoom(unsigned short r, bool b) {
case r2B:
if (!b) {
read3D("2B.3d");
Room[r2B]._flag &= ~OBJFLAG_EXTRA;
g_vm->_room[r2B]._flag &= ~OBJFLAG_EXTRA;
_obj[oPORTA2B]._mode |= OBJMODE_OBJSTATUS;
_obj[od2BALLA28]._mode &= ~OBJMODE_OBJSTATUS;
} else {
read3D("2B2.3d");
Room[r2B]._flag |= OBJFLAG_EXTRA;
g_vm->_room[r2B]._flag |= OBJFLAG_EXTRA;
_obj[oPORTA2B]._mode &= ~OBJMODE_OBJSTATUS;
_obj[od2BALLA28]._mode |= OBJMODE_OBJSTATUS;
}
@@ -589,7 +589,7 @@ void SetRoom(unsigned short r, bool b) {
_obj[oCATWALKA2E]._position = 2;
_obj[oCATWALKA2E]._anim = a2E2PRIMAPALLONTANANDO;
read3D("2E.3d");
Room[r2E]._flag &= ~OBJFLAG_EXTRA;
g_vm->_room[r2E]._flag &= ~OBJFLAG_EXTRA;
_obj[oDUMMY2E]._mode &= ~OBJMODE_OBJSTATUS;
_obj[oENTRANCE2E]._flag &= ~OBJFLAG_EXAMINE;
_obj[oPASSERELLAB2E]._mode &= ~OBJMODE_OBJSTATUS;
@@ -600,7 +600,7 @@ void SetRoom(unsigned short r, bool b) {
_obj[oCATWALKA2E]._position = 3;
_obj[oCATWALKA2E]._anim = a2E3PRIMAPAVVICINANDO;
read3D("2E2.3d");
Room[r2E]._flag |= OBJFLAG_EXTRA;
g_vm->_room[r2E]._flag |= OBJFLAG_EXTRA;
_obj[oDUMMY2E]._mode |= OBJMODE_OBJSTATUS;
_obj[oENTRANCE2E]._mode |= OBJMODE_OBJSTATUS;
_obj[oENTRANCE2E]._flag |= OBJFLAG_EXAMINE;
@@ -616,7 +616,7 @@ void SetRoom(unsigned short r, bool b) {
_obj[oVIADOTTO2GV]._position = 7;
_obj[oVIADOTTO2GV]._anim = a2G7ATTRAVERSAPONTICELLO;
read3D("2GV.3d");
Room[r2GV]._flag &= ~OBJFLAG_EXTRA;
g_vm->_room[r2GV]._flag &= ~OBJFLAG_EXTRA;
_obj[oDUMMY2GV]._mode &= ~OBJMODE_OBJSTATUS;
_obj[oRAGAZZOS2GV]._mode &= ~OBJMODE_OBJSTATUS;
_obj[oCOCCODRILLO2GV]._mode &= ~OBJMODE_OBJSTATUS;
+4
View File
@@ -24,6 +24,8 @@
#define TRECISION_TRECISION_H
#include "engines/engine.h"
#include "nl/sysdef.h"
#include "trecision/nl/struct.h"
namespace Trecision {
@@ -41,6 +43,8 @@ public:
int32 _curSortTableNum;
uint16 _curObj;
uint16 CurScriptFrame[10];
SRoom _room[MAXROOMS];
};
extern TrecisionEngine *g_vm;