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) {
|
||||
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) {
|
||||
|
|
|
@ -105,6 +105,8 @@ PrivateEngine::PrivateEngine(OSystem *syst, const ADGameDescription *gd)
|
|||
_dossierSuspect = 0;
|
||||
_dossierNextSuspectMask.clear();
|
||||
_dossierPrevSuspectMask.clear();
|
||||
_dossierNextSheetMask.clear();
|
||||
_dossierPrevSheetMask.clear();
|
||||
|
||||
// Diary
|
||||
_diaryLocPrefix = "inface/diary/loclist/";
|
||||
|
@ -216,6 +218,10 @@ Common::Error PrivateEngine::run() {
|
|||
break;
|
||||
else if (selectDossierPrevSuspect(mousePos))
|
||||
break;
|
||||
else if (selectDossierNextSheet(mousePos))
|
||||
break;
|
||||
else if (selectDossierPrevSheet(mousePos))
|
||||
break;
|
||||
|
||||
selectPauseMovie(mousePos);
|
||||
selectPhoneArea(mousePos);
|
||||
|
@ -338,6 +344,16 @@ void PrivateEngine::clearAreas() {
|
|||
_dossierPrevSuspectMask.surf->free();
|
||||
delete _dossierPrevSuspectMask.surf;
|
||||
_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() {
|
||||
|
@ -625,6 +641,41 @@ bool PrivateEngine::selectDossierNextSuspect(Common::Point mousePos) {
|
|||
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) {
|
||||
if (_dossierPrevSuspectMask.surf == NULL)
|
||||
return false;
|
||||
|
|
|
@ -228,8 +228,12 @@ public:
|
|||
unsigned int _dossierPage;
|
||||
MaskInfo _dossierNextSuspectMask;
|
||||
MaskInfo _dossierPrevSuspectMask;
|
||||
MaskInfo _dossierNextSheetMask;
|
||||
MaskInfo _dossierPrevSheetMask;
|
||||
bool selectDossierNextSuspect(Common::Point);
|
||||
bool selectDossierPrevSuspect(Common::Point);
|
||||
bool selectDossierNextSheet(Common::Point);
|
||||
bool selectDossierPrevSheet(Common::Point);
|
||||
void loadDossier();
|
||||
|
||||
// Police Bust
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue