mirror of
https://github.com/scummvm/scummvm.git
synced 2026-06-20 05:45:29 +00:00
TRECISION: Move room to engine class, remove unused function, get rid of some LLBOOL's
This commit is contained in:
1 parent
b41bd8ba79
commit
87b775d12e
17 files changed
+289
-295
No files matched your search
@@ -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;
|
||||
|
||||
@@ -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
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,6 @@ namespace Trecision {
|
||||
/*-------------------------------------------------------------------------*/
|
||||
/* INIT */
|
||||
/*-------------------------------------------------------------------------*/
|
||||
extern struct SRoom Room[];
|
||||
extern struct SObject _obj[];
|
||||
extern struct SInvObject InvObj[];
|
||||
extern struct SSound GSample[];
|
||||
|
||||
@@ -31,7 +31,6 @@ namespace Trecision {
|
||||
/*-------------------------------------------------------------------------*/
|
||||
/* INIT */
|
||||
/*-------------------------------------------------------------------------*/
|
||||
struct SRoom Room[MAXROOMS];
|
||||
struct SObject _obj[MAXOBJ];
|
||||
struct SInvObject InvObj[MAXINVENTORY];
|
||||
struct SSound GSample[MAXSAMPLE];
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
@@ -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]) &&
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in new issue
Block a user