diff --git a/engines/trecision/nl/classes.cpp b/engines/trecision/nl/classes.cpp index 30b0b7c2e07..09b0f78b9d7 100644 --- a/engines/trecision/nl/classes.cpp +++ b/engines/trecision/nl/classes.cpp @@ -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; diff --git a/engines/trecision/nl/dialog.cpp b/engines/trecision/nl/dialog.cpp index c4b7b24f5b9..0f63fa6473d 100644 --- a/engines/trecision/nl/dialog.cpp +++ b/engines/trecision/nl/dialog.cpp @@ -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; diff --git a/engines/trecision/nl/do.cpp b/engines/trecision/nl/do.cpp index 857b83e0915..1ce5a54825d 100644 --- a/engines/trecision/nl/do.cpp +++ b/engines/trecision/nl/do.cpp @@ -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); } } diff --git a/engines/trecision/nl/extern.h b/engines/trecision/nl/extern.h index eb19b27c810..5dee2bc2857 100644 --- a/engines/trecision/nl/extern.h +++ b/engines/trecision/nl/extern.h @@ -27,7 +27,6 @@ namespace Trecision { /*-------------------------------------------------------------------------*/ /* INIT */ /*-------------------------------------------------------------------------*/ -extern struct SRoom Room[]; extern struct SObject _obj[]; extern struct SInvObject InvObj[]; extern struct SSound GSample[]; diff --git a/engines/trecision/nl/globvar.cpp b/engines/trecision/nl/globvar.cpp index 9842fe392bc..3cf8a5e6f8a 100644 --- a/engines/trecision/nl/globvar.cpp +++ b/engines/trecision/nl/globvar.cpp @@ -31,7 +31,6 @@ namespace Trecision { /*-------------------------------------------------------------------------*/ /* INIT */ /*-------------------------------------------------------------------------*/ -struct SRoom Room[MAXROOMS]; struct SObject _obj[MAXOBJ]; struct SInvObject InvObj[MAXINVENTORY]; struct SSound GSample[MAXSAMPLE]; diff --git a/engines/trecision/nl/ll/llanim.cpp b/engines/trecision/nl/ll/llanim.cpp index 5ccb677807a..0d3b2da3ff1 100644 --- a/engines/trecision/nl/ll/llanim.cpp +++ b/engines/trecision/nl/ll/llanim.cpp @@ -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); diff --git a/engines/trecision/nl/ll/llkbd.cpp b/engines/trecision/nl/ll/llkbd.cpp index a6b3112a900..8dd29e15f9d 100644 --- a/engines/trecision/nl/ll/llkbd.cpp +++ b/engines/trecision/nl/ll/llkbd.cpp @@ -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 @@ -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) { diff --git a/engines/trecision/nl/ll/llmouse.cpp b/engines/trecision/nl/ll/llmouse.cpp index b37d252069a..8a27190796a 100644 --- a/engines/trecision/nl/ll/llmouse.cpp +++ b/engines/trecision/nl/ll/llmouse.cpp @@ -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); diff --git a/engines/trecision/nl/ll/llscreen.cpp b/engines/trecision/nl/ll/llscreen.cpp index 6900f981dd8..8432f42ce7f 100644 --- a/engines/trecision/nl/ll/llscreen.cpp +++ b/engines/trecision/nl/ll/llscreen.cpp @@ -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_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 diff --git a/engines/trecision/nl/ll/llvideo.cpp b/engines/trecision/nl/ll/llvideo.cpp index 3fe0593876e..ecbaa898928 100644 --- a/engines/trecision/nl/ll/llvideo.cpp +++ b/engines/trecision/nl/ll/llvideo.cpp @@ -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]) && diff --git a/engines/trecision/nl/proto.h b/engines/trecision/nl/proto.h index 94410adbed3..82943554685 100644 --- a/engines/trecision/nl/proto.h +++ b/engines/trecision/nl/proto.h @@ -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(); diff --git a/engines/trecision/nl/regen.cpp b/engines/trecision/nl/regen.cpp index 1d9f1ebf2cc..85d877fe3bb 100644 --- a/engines/trecision/nl/regen.cpp +++ b/engines/trecision/nl/regen.cpp @@ -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; diff --git a/engines/trecision/nl/string.cpp b/engines/trecision/nl/string.cpp index 8b04e4c5e60..fbf641de28e 100644 --- a/engines/trecision/nl/string.cpp +++ b/engines/trecision/nl/string.cpp @@ -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); diff --git a/engines/trecision/nl/struct.h b/engines/trecision/nl/struct.h index 9c579542b6c..6202b751054 100644 --- a/engines/trecision/nl/struct.h +++ b/engines/trecision/nl/struct.h @@ -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 diff --git a/engines/trecision/nl/sys/sound.cpp b/engines/trecision/nl/sys/sound.cpp index 227f5c84d61..a6b97b98a55 100644 --- a/engines/trecision/nl/sys/sound.cpp +++ b/engines/trecision/nl/sys/sound.cpp @@ -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; diff --git a/engines/trecision/nl/utility.cpp b/engines/trecision/nl/utility.cpp index d742b990fe6..3c620f9f93e 100644 --- a/engines/trecision/nl/utility.cpp +++ b/engines/trecision/nl/utility.cpp @@ -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; diff --git a/engines/trecision/trecision.h b/engines/trecision/trecision.h index a1fe6d1bd71..5304c982e1d 100644 --- a/engines/trecision/trecision.h +++ b/engines/trecision/trecision.h @@ -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;