From 1651bb07d9d3dedb643eb2ac2cb4070980f33ba5 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 27 Oct 2012 20:19:21 +1100 Subject: HOPKINS: Move Save/Load dialog code from menu.cpp to dialogs.cpp --- engines/hopkins/menu.cpp | 264 +---------------------------------------------- 1 file changed, 1 insertion(+), 263 deletions(-) (limited to 'engines/hopkins/menu.cpp') diff --git a/engines/hopkins/menu.cpp b/engines/hopkins/menu.cpp index 1de66a103c..cfa9ed2c0f 100644 --- a/engines/hopkins/menu.cpp +++ b/engines/hopkins/menu.cpp @@ -189,7 +189,7 @@ int MenuManager::MENU() { _vm->_eventsManager.delay(200); _vm->_globals.SORTIE = -1; - CHARGE_PARTIE(); + _vm->_dialogsManager.CHARGE_PARTIE(); if (_vm->_globals.SORTIE != -1) { v6 = _vm->_globals.SORTIE; @@ -233,138 +233,6 @@ int MenuManager::MENU() { return v6; } -// Load Game -void MenuManager::CHARGE_PARTIE() { - int v1; - char v3; - byte *v4; - int v5; - Common::String s; - Common::String v8; - char v9; - char v10; - char v11; - Common::String v12; - char v13; - char v14; - char v15; - char v16; - char v17; - Common::File f; - - _vm->_eventsManager.VBL(); - LOAD_SAUVE(2); - do { - do { - v1 = CHERCHE_PARTIE(); - _vm->_eventsManager.VBL(); - } while (_vm->_eventsManager.BMOUSE() != 1); - } while (!v1); - _vm->_objectsManager.SL_FLAG = 0; - _vm->_graphicsManager.SCOPY(_vm->_graphicsManager.VESA_SCREEN, _vm->_eventsManager.start_x + 183, 60, 274, 353, _vm->_graphicsManager.VESA_BUFFER, _vm->_eventsManager.start_x + 183, 60); - _vm->_graphicsManager.Ajoute_Segment_Vesa(_vm->_eventsManager.start_x + 183, 60, 457, 413); - _vm->_objectsManager.BOBTOUS = 1; - _vm->_objectsManager.SL_SPR = _vm->_globals.dos_free2(_vm->_objectsManager.SL_SPR); - _vm->_objectsManager.SL_SPR2 = _vm->_globals.dos_free2(_vm->_objectsManager.SL_SPR2); - _vm->_objectsManager.SL_X = 0; - _vm->_objectsManager.SL_Y = 0; - if (v1 != 7) { - s = Common::String::format("%d", v1); - v8 = 80; - v9 = 65; - v10 = 82; - v11 = 84; - v12 = s; - v13 = 46; - v14 = 68; - v15 = 65; - v16 = 84; - v17 = 0; - _vm->_fileManager.CONSTRUIT_LINUX(v8); - if (f.open(_vm->_globals.NFICHIER)) { - f.close(); - - v3 = _vm->_globals.SAUVEGARDE->data[svField10]; - _vm->_fileManager.CONSTRUIT_LINUX(v8); - _vm->_fileManager.bload(_vm->_globals.NFICHIER, &_vm->_globals.SAUVEGARDE->data[0]); - - v4 = &_vm->_globals.SAUVEGARDE->data[svField1300]; - v5 = 0; - do { - _vm->_globals.INVENTAIRE[v5] = (int16)READ_LE_UINT16(v4 + 2 * v5); - ++v5; - } while (v5 <= 34); - - _vm->_globals.SAUVEGARDE->data[svField10] = v3; - _vm->_globals.SORTIE = _vm->_globals.SAUVEGARDE->data[svField5]; - _vm->_globals.SAUVEGARDE->data[svField6] = 0; - _vm->_globals.ECRAN = 0; - } - } - - _vm->_objectsManager.CHANGE_OBJET(14); -} - -// Save Game -void MenuManager::SAUVE_PARTIE() { - byte *v1; - int v2; - byte *v3; - int v4; - Common::String s; - Common::String v7; - char v12; - char v13; - char v14; - char v15; - char v16; - - _vm->_eventsManager.VBL(); - v1 = _vm->_globals.dos_malloc2(0x2DB4u); - _vm->_graphicsManager.Reduc_Ecran(_vm->_graphicsManager.VESA_BUFFER, v1, _vm->_eventsManager.start_x, 20, - SCREEN_WIDTH, SCREEN_HEIGHT - 40, 80); - _vm->_graphicsManager.INIT_TABLE(45, 80, _vm->_graphicsManager.Palette); - _vm->_graphicsManager.Trans_bloc2(v1, _vm->_graphicsManager.TABLE_COUL, 11136); - LOAD_SAUVE(1); - do { - do { - v2 = CHERCHE_PARTIE(); - _vm->_eventsManager.VBL(); - } while (_vm->_eventsManager.BMOUSE() != 1); - } while (!v2); - _vm->_objectsManager.SL_FLAG = 0; - _vm->_graphicsManager.SCOPY(_vm->_graphicsManager.VESA_SCREEN, _vm->_eventsManager.start_x + 183, 60, 274, 353, _vm->_graphicsManager.VESA_BUFFER, _vm->_eventsManager.start_x + 183, 60); - _vm->_graphicsManager.Ajoute_Segment_Vesa(_vm->_eventsManager.start_x + 183, 60, _vm->_eventsManager.start_x + 457, 413); - _vm->_objectsManager.BOBTOUS = 1; - _vm->_objectsManager.SL_SPR = _vm->_globals.dos_free2(_vm->_objectsManager.SL_SPR); - _vm->_objectsManager.SL_SPR2 = _vm->_globals.dos_free2(_vm->_objectsManager.SL_SPR2); - _vm->_objectsManager.SL_X = 0; - _vm->_objectsManager.SL_Y = 0; - if (v2 != 7) { - s = Common::String::format("%d", v2); - v7 = Common::String::format("PART%c.DAT", s[0]); - - _vm->_globals.SAUVEGARDE->data[svField10] = v2; - v3 = &_vm->_globals.SAUVEGARDE->data[svField1300]; - v4 = 0; - do { - WRITE_LE_UINT16(v3 + 2 * v4, _vm->_globals.INVENTAIRE[v4]); - ++v4; - } while (v4 <= 34); - - _vm->_fileManager.CONSTRUIT_LINUX(v7); - _vm->_saveLoadManager.SAUVE_FICHIER(_vm->_globals.NFICHIER, &_vm->_globals.SAUVEGARDE->data[0], 0x7D0u); - v12 = 46; - v13 = 69; - v14 = 67; - v15 = 82; - v16 = 0; - _vm->_fileManager.CONSTRUIT_LINUX(v7); - _vm->_saveLoadManager.SAUVE_FICHIER(_vm->_globals.NFICHIER, v1, 0x2B80u); - } - _vm->_globals.dos_free2(v1); -} - void MenuManager::COMPUT_HOPKINS(int idx) { // This is a text mode display? warning("TODO: COMPUT_HOPKINS"); @@ -562,135 +430,5 @@ void MenuManager::COMPUT_HOPKINS(int idx) { */ } -// Load Save -void MenuManager::LOAD_SAUVE(int a1) { - int v1; -// byte *v2; -// byte *v3; - Common::String s; - Common::File f; - - switch (_vm->_globals.FR) { - case 0: - _vm->_fileManager.CONSTRUIT_SYSTEM("SAVEAN.SPR"); - break; - case 1: - _vm->_fileManager.CONSTRUIT_SYSTEM("SAVEFR.SPR"); - break; - case 2: - _vm->_fileManager.CONSTRUIT_SYSTEM("SAVEES.SPR"); - break; - } - - _vm->_objectsManager.SL_SPR = _vm->_objectsManager.CHARGE_SPRITE(_vm->_globals.NFICHIER); - _vm->_fileManager.CONSTRUIT_SYSTEM("SAVE2.SPR"); - _vm->_objectsManager.SL_SPR2 = _vm->_objectsManager.CHARGE_SPRITE(_vm->_globals.NFICHIER); - _vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager.VESA_BUFFER, _vm->_objectsManager.SL_SPR, _vm->_eventsManager.start_x + 483, 360, 0); - - if (_vm->_globals.FR) { - if (a1 == 1) - _vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager.VESA_BUFFER, _vm->_objectsManager.SL_SPR, _vm->_eventsManager.start_x + 525, 375, 1); - if (a1 == 2) - _vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager.VESA_BUFFER, _vm->_objectsManager.SL_SPR, _vm->_eventsManager.start_x + 515, 375, 2); - } else { - if (a1 == 1) - _vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager.VESA_BUFFER, _vm->_objectsManager.SL_SPR, _vm->_eventsManager.start_x + 535, 372, 1); - if (a1 == 2) - _vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager.VESA_BUFFER, _vm->_objectsManager.SL_SPR, _vm->_eventsManager.start_x + 539, 372, 2); - } - - v1 = 1; - do { - s = Common::String::format("ART%d.ECR", v1); - - _vm->_fileManager.CONSTRUIT_LINUX(s); -/* TODO: Get from save file manager as part of save files - if (f.exists(_vm->_globals.NFICHIER)) { - v2 = _vm->_fileManager.CHARGE_FICHIER(_vm->_globals.NFICHIER); - v3 = v2; - if (v1 == 1) - _vm->_graphicsManager.Restore_Mem(_vm->_graphicsManager.VESA_BUFFER, v2, _vm->_eventsManager.start_x + 190, 112, 0x80u, 87); - if (v1 == 2) - _vm->_graphicsManager.Restore_Mem(_vm->_graphicsManager.VESA_BUFFER, v3, _vm->_eventsManager.start_x + 323, 112, 0x80u, 87); - if (v1 == 3) - _vm->_graphicsManager.Restore_Mem(_vm->_graphicsManager.VESA_BUFFER, v3, _vm->_eventsManager.start_x + 190, 203, 0x80u, 87); - if (v1 == 4) - _vm->_graphicsManager.Restore_Mem(_vm->_graphicsManager.VESA_BUFFER, v3, _vm->_eventsManager.start_x + 323, 203, 0x80u, 87); - if (v1 == 5) - _vm->_graphicsManager.Restore_Mem(_vm->_graphicsManager.VESA_BUFFER, v3, _vm->_eventsManager.start_x + 190, 294, 0x80u, 87); - if (v1 == 6) - _vm->_graphicsManager.Restore_Mem(_vm->_graphicsManager.VESA_BUFFER, v3, _vm->_eventsManager.start_x + 323, 294, 0x80u, 87); - _vm->_globals.dos_free2(v3); - } -*/ - ++v1; - } while (v1 <= 6); - _vm->_graphicsManager.Capture_Mem(_vm->_graphicsManager.VESA_BUFFER, _vm->_objectsManager.SL_SPR, _vm->_eventsManager.start_x + 183, 60, 0x112u, 353); - _vm->_objectsManager.SL_FLAG = 1; - _vm->_objectsManager.SL_MODE = a1; - _vm->_objectsManager.SL_X = 0; - _vm->_objectsManager.SL_Y = 0; -} - -// Search Game -int MenuManager::CHERCHE_PARTIE() { - int v0; - int v1; - int v2; - - v0 = 0; - v1 = _vm->_eventsManager.XMOUSE(); - v2 = _vm->_eventsManager.YMOUSE(); - _vm->_graphicsManager.ofscroll = _vm->_eventsManager.start_x; - if ((uint16)(v2 - 112) <= 0x56u) { - if (v1 > _vm->_eventsManager.start_x + 189 && v1 < _vm->_eventsManager.start_x + 318) - v0 = 1; - if ((uint16)(v2 - 112) <= 0x56u && v1 > _vm->_graphicsManager.ofscroll + 322 && v1 < _vm->_graphicsManager.ofscroll + 452) - v0 = 2; - } - if ((uint16)(v2 - 203) <= 0x56u) { - if (v1 > _vm->_graphicsManager.ofscroll + 189 && v1 < _vm->_graphicsManager.ofscroll + 318) - v0 = 3; - if ((uint16)(v2 - 203) <= 0x56u && v1 > _vm->_graphicsManager.ofscroll + 322 && v1 < _vm->_graphicsManager.ofscroll + 452) - v0 = 4; - } - if ((uint16)(v2 - 294) <= 0x56u) { - if (v1 > _vm->_graphicsManager.ofscroll + 189 && v1 < _vm->_graphicsManager.ofscroll + 318) - v0 = 5; - if ((uint16)(v2 - 294) <= 0x56u && v1 > _vm->_graphicsManager.ofscroll + 322 && v1 < _vm->_graphicsManager.ofscroll + 452) - v0 = 6; - } - if ((uint16)(v2 - 388) <= 0x10u && v1 > _vm->_graphicsManager.ofscroll + 273 && v1 < _vm->_graphicsManager.ofscroll + 355) - v0 = 7; - if (v0 == 1) { - _vm->_objectsManager.SL_X = 189; - _vm->_objectsManager.SL_Y = 111; - } - if (v0 == 2) { - _vm->_objectsManager.SL_X = 322; - _vm->_objectsManager.SL_Y = 111; - } - if (v0 == 3) { - _vm->_objectsManager.SL_X = 189; - _vm->_objectsManager.SL_Y = 202; - } - if (v0 == 4) { - _vm->_objectsManager.SL_X = 322; - _vm->_objectsManager.SL_Y = 202; - } - if (v0 == 5) { - _vm->_objectsManager.SL_X = 189; - _vm->_objectsManager.SL_Y = 293; - } - if (v0 == 6) { - _vm->_objectsManager.SL_X = 322; - _vm->_objectsManager.SL_Y = 293; - } - if (v0 == 7 || !v0) { - _vm->_objectsManager.SL_X = 0; - _vm->_objectsManager.SL_Y = 0; - } - return v0; -} } // End of namespace Hopkins -- cgit v1.2.3