PRIVATE: implemented DossierChgSheet
This commit is contained in:
parent
43f0921816
commit
04851ed522
3 changed files with 77 additions and 1 deletions
|
@ -228,7 +228,28 @@ static void fDossierBitmap(ArgArray args) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void fDossierChgSheet(ArgArray args) {
|
static void fDossierChgSheet(ArgArray args) {
|
||||||
debugC(1, kPrivateDebugScript, "WARNING: DossierChgSheet is not implemented");
|
assert(args.size() == 4);
|
||||||
|
debugC(1, kPrivateDebugScript, "DossierChgSheet(%s,%d,%d,%d)", args[0].u.str, args[1].u.val, args[2].u.val, args[3].u.val);
|
||||||
|
Common::String s(args[0].u.str);
|
||||||
|
MaskInfo m;
|
||||||
|
|
||||||
|
int p = args[1].u.val;
|
||||||
|
int x = args[2].u.val;
|
||||||
|
int y = args[3].u.val;
|
||||||
|
|
||||||
|
m.surf = g_private->loadMask(s, x, y, true);
|
||||||
|
m.cursor = "kExit";
|
||||||
|
m.nextSetting = "";
|
||||||
|
m.flag1 = NULL;
|
||||||
|
m.flag2 = NULL;
|
||||||
|
if (p == 0)
|
||||||
|
g_private->_dossierPrevSheetMask = m;
|
||||||
|
else if (p == 1)
|
||||||
|
g_private->_dossierNextSheetMask = m;
|
||||||
|
else
|
||||||
|
error("Invalid sheet number in DossierChgSheet %d", p);
|
||||||
|
|
||||||
|
g_private->_masks.push_front(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void fDossierPrevSuspect(ArgArray args) {
|
static void fDossierPrevSuspect(ArgArray args) {
|
||||||
|
|
|
@ -105,6 +105,8 @@ PrivateEngine::PrivateEngine(OSystem *syst, const ADGameDescription *gd)
|
||||||
_dossierSuspect = 0;
|
_dossierSuspect = 0;
|
||||||
_dossierNextSuspectMask.clear();
|
_dossierNextSuspectMask.clear();
|
||||||
_dossierPrevSuspectMask.clear();
|
_dossierPrevSuspectMask.clear();
|
||||||
|
_dossierNextSheetMask.clear();
|
||||||
|
_dossierPrevSheetMask.clear();
|
||||||
|
|
||||||
// Diary
|
// Diary
|
||||||
_diaryLocPrefix = "inface/diary/loclist/";
|
_diaryLocPrefix = "inface/diary/loclist/";
|
||||||
|
@ -216,6 +218,10 @@ Common::Error PrivateEngine::run() {
|
||||||
break;
|
break;
|
||||||
else if (selectDossierPrevSuspect(mousePos))
|
else if (selectDossierPrevSuspect(mousePos))
|
||||||
break;
|
break;
|
||||||
|
else if (selectDossierNextSheet(mousePos))
|
||||||
|
break;
|
||||||
|
else if (selectDossierPrevSheet(mousePos))
|
||||||
|
break;
|
||||||
|
|
||||||
selectPauseMovie(mousePos);
|
selectPauseMovie(mousePos);
|
||||||
selectPhoneArea(mousePos);
|
selectPhoneArea(mousePos);
|
||||||
|
@ -338,6 +344,16 @@ void PrivateEngine::clearAreas() {
|
||||||
_dossierPrevSuspectMask.surf->free();
|
_dossierPrevSuspectMask.surf->free();
|
||||||
delete _dossierPrevSuspectMask.surf;
|
delete _dossierPrevSuspectMask.surf;
|
||||||
_dossierPrevSuspectMask.clear();
|
_dossierPrevSuspectMask.clear();
|
||||||
|
|
||||||
|
if (_dossierNextSheetMask.surf)
|
||||||
|
_dossierNextSheetMask.surf->free();
|
||||||
|
delete _dossierNextSheetMask.surf;
|
||||||
|
_dossierNextSheetMask.clear();
|
||||||
|
|
||||||
|
if (_dossierPrevSheetMask.surf)
|
||||||
|
_dossierPrevSheetMask.surf->free();
|
||||||
|
delete _dossierPrevSheetMask.surf;
|
||||||
|
_dossierPrevSheetMask.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void PrivateEngine::startPoliceBust() {
|
void PrivateEngine::startPoliceBust() {
|
||||||
|
@ -625,6 +641,41 @@ bool PrivateEngine::selectDossierNextSuspect(Common::Point mousePos) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool PrivateEngine::selectDossierPrevSheet(Common::Point mousePos) {
|
||||||
|
if (_dossierNextSheetMask.surf == NULL)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (inMask(_dossierPrevSheetMask.surf, mousePos)) {
|
||||||
|
if (_dossierPage == 1) {
|
||||||
|
_dossierPage = 0;
|
||||||
|
loadDossier();
|
||||||
|
drawMask(_dossierNextSuspectMask.surf);
|
||||||
|
drawMask(_dossierPrevSuspectMask.surf);
|
||||||
|
drawScreen();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool PrivateEngine::selectDossierNextSheet(Common::Point mousePos) {
|
||||||
|
if (_dossierNextSheetMask.surf == NULL)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (inMask(_dossierNextSheetMask.surf, mousePos)) {
|
||||||
|
DossierInfo m = _dossiers[_dossierSuspect];
|
||||||
|
if (_dossierPage == 0 && !m.page2.empty()) {
|
||||||
|
_dossierPage = 1;
|
||||||
|
loadDossier();
|
||||||
|
drawMask(_dossierNextSuspectMask.surf);
|
||||||
|
drawMask(_dossierPrevSuspectMask.surf);
|
||||||
|
drawScreen();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
bool PrivateEngine::selectDossierPrevSuspect(Common::Point mousePos) {
|
bool PrivateEngine::selectDossierPrevSuspect(Common::Point mousePos) {
|
||||||
if (_dossierPrevSuspectMask.surf == NULL)
|
if (_dossierPrevSuspectMask.surf == NULL)
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -228,8 +228,12 @@ public:
|
||||||
unsigned int _dossierPage;
|
unsigned int _dossierPage;
|
||||||
MaskInfo _dossierNextSuspectMask;
|
MaskInfo _dossierNextSuspectMask;
|
||||||
MaskInfo _dossierPrevSuspectMask;
|
MaskInfo _dossierPrevSuspectMask;
|
||||||
|
MaskInfo _dossierNextSheetMask;
|
||||||
|
MaskInfo _dossierPrevSheetMask;
|
||||||
bool selectDossierNextSuspect(Common::Point);
|
bool selectDossierNextSuspect(Common::Point);
|
||||||
bool selectDossierPrevSuspect(Common::Point);
|
bool selectDossierPrevSuspect(Common::Point);
|
||||||
|
bool selectDossierNextSheet(Common::Point);
|
||||||
|
bool selectDossierPrevSheet(Common::Point);
|
||||||
void loadDossier();
|
void loadDossier();
|
||||||
|
|
||||||
// Police Bust
|
// Police Bust
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue