MORTEVIELLE: Use 0-based array instead of 1-based for menu constants, some renaming

This commit is contained in:
Strangerke 2012-02-28 08:22:20 +01:00
parent f98a818c36
commit 2bdc20dc9b
6 changed files with 38 additions and 37 deletions

View file

@ -686,7 +686,7 @@ void fctPlace() {
else else
person(); person();
g_vm->_menu.menu_aff(); g_vm->_menu.displayMenu();
if (enterPassageFl) { if (enterPassageFl) {
s.mlieu = 17; s.mlieu = 17;
tmlieu(17); tmlieu(17);

View file

@ -145,7 +145,7 @@ void Menu::enableMenuItem(int no) {
} }
} }
void Menu::menu_aff() { void Menu::displayMenu() {
int ind_tabl, k, col; int ind_tabl, k, col;
int pt, x, y, color, msk, num_letr; int pt, x, y, color, msk, num_letr;
@ -191,7 +191,7 @@ void Menu::menu_aff() {
* Show the menu * Show the menu
*/ */
void Menu::drawMenu() { void Menu::drawMenu() {
menu_aff(); displayMenu();
_menuActive = true; _menuActive = true;
msg4 = OPCODE_NONE; msg4 = OPCODE_NONE;
msg3 = OPCODE_NONE; msg3 = OPCODE_NONE;
@ -206,38 +206,40 @@ void Menu::invers(int ix) {
if (msg4 == OPCODE_NONE) if (msg4 == OPCODE_NONE)
return; return;
g_vm->_screenSurface.putxy(don[msg3][1] << 3, (lo(msg4) + 1) << 3); int menuIndex = lo(msg4);
g_vm->_screenSurface.putxy(_menuConstants[msg3 - 1][0] << 3, (menuIndex + 1) << 3);
switch (msg3) { switch (msg3) {
case 1: case 1:
s = _inventoryStringArray[lo(msg4)]; s = _inventoryStringArray[menuIndex];
break; break;
case 2: case 2:
s = _moveStringArray[lo(msg4)]; s = _moveStringArray[menuIndex];
break; break;
case 3: case 3:
s = _actionStringArray[lo(msg4)]; s = _actionStringArray[menuIndex];
break; break;
case 4: case 4:
s = _selfStringArray[lo(msg4)]; s = _selfStringArray[menuIndex];
break; break;
case 5: case 5:
s = _discussStringArray[lo(msg4)]; s = _discussStringArray[menuIndex];
break; break;
case 6: case 6:
s = g_vm->getEngineString(S_SAVE_LOAD + lo(msg4)); s = g_vm->getEngineString(S_SAVE_LOAD + menuIndex);
break; break;
case 7: case 7:
s = g_vm->getEngineString(S_SAVE_LOAD + 1); s = g_vm->getEngineString(S_SAVE_LOAD + 1);
s += ' '; s += ' ';
s += (char)(48 + lo(msg4)); s += (char)(48 + menuIndex);
break; break;
case 8: case 8:
if (lo(msg4) == 1) { if (menuIndex == 1) {
s = g_vm->getEngineString(S_RESTART); s = g_vm->getEngineString(S_RESTART);
} else { } else {
s = g_vm->getEngineString(S_SAVE_LOAD + 2); s = g_vm->getEngineString(S_SAVE_LOAD + 2);
s += ' '; s += ' ';
s += (char)(47 + lo(msg4)); s += (char)(47 + menuIndex);
} }
break; break;
default: default:
@ -251,9 +253,9 @@ void Menu::invers(int ix) {
void Menu::util(int x, int y) { void Menu::util(int x, int y) {
int ymx = (don[msg3][4] << 3) + 16; int ymx = (_menuConstants[msg3 - 1][3] << 3) + 16;
int dxcar = don[msg3][3]; int dxcar = _menuConstants[msg3 - 1][2];
int xmn = (don[msg3][1] << 2) * res; int xmn = (_menuConstants[msg3 - 1][0] << 2) * res;
int ix; int ix;
if (res == 1) if (res == 1)
@ -287,19 +289,19 @@ void Menu::menuDown(int ii) {
g_vm->_backgroundSurface.copyFrom(g_vm->_screenSurface); g_vm->_backgroundSurface.copyFrom(g_vm->_screenSurface);
// Draw the menu // Draw the menu
xco = don[ii][1]; xco = _menuConstants[ii - 1][0];
nb_lig = don[ii][4]; nb_lig = _menuConstants[ii - 1][3];
hideMouse(); hideMouse();
sauvecr(10, (don[ii][2] + 1) << 1); sauvecr(10, (_menuConstants[ii - 1][1] + 1) << 1);
xco = xco << 3; xco = xco << 3;
if (res == 1) if (res == 1)
cx = 10; cx = 10;
else else
cx = 6; cx = 6;
xcc = xco + (don[ii][3] * cx) + 6; xcc = xco + (_menuConstants[ii - 1][2] * cx) + 6;
g_vm->_screenSurface.fillRect(15, Common::Rect(xco, 12, xcc, 10 + (don[ii][2] << 1))); g_vm->_screenSurface.fillRect(15, Common::Rect(xco, 12, xcc, 10 + (_menuConstants[ii - 1][1] << 1)));
g_vm->_screenSurface.fillRect(0, Common::Rect(xcc, 12, xcc + 4, 10 + (don[ii][2] << 1))); g_vm->_screenSurface.fillRect(0, Common::Rect(xcc, 12, xcc + 4, 10 + (_menuConstants[ii - 1][1] << 1)));
g_vm->_screenSurface.fillRect(0, Common::Rect(xco, 8 + (don[ii][2] << 1), xcc + 4, 12 + (don[ii][2] << 1))); g_vm->_screenSurface.fillRect(0, Common::Rect(xco, 8 + (_menuConstants[ii - 1][1] << 1), xcc + 4, 12 + (_menuConstants[ii - 1][1] << 1)));
g_vm->_screenSurface.putxy(xco, 16); g_vm->_screenSurface.putxy(xco, 16);
cx = 0; cx = 0;
do { do {
@ -360,7 +362,7 @@ void Menu::menuDown(int ii) {
void Menu::menuUp(int xx) { void Menu::menuUp(int xx) {
/* debug('menuUp'); */ /* debug('menuUp'); */
if (test0) { if (test0) {
charecr(10, (don[xx][2] + 1) << 1); charecr(10, (_menuConstants[xx - 1][1] + 1) << 1);
/* Restore the background area */ /* Restore the background area */
assert(g_vm->_screenSurface.pitch == g_vm->_backgroundSurface.pitch); assert(g_vm->_screenSurface.pitch == g_vm->_backgroundSurface.pitch);

View file

@ -51,7 +51,7 @@ public:
void menut(int no, Common::String name); void menut(int no, Common::String name);
void disableMenuItem(int no); void disableMenuItem(int no);
void enableMenuItem(int no); void enableMenuItem(int no);
void menu_aff(); void displayMenu();
void drawMenu(); void drawMenu();
void menuUp(int xx); void menuUp(int xx);
void eraseMenu(); void eraseMenu();

View file

@ -61,7 +61,7 @@ void changeGraphicalDevice(int newDevice) {
_maff = 68; _maff = 68;
afdes(0); afdes(0);
repon(2, crep); repon(2, crep);
g_vm->_menu.menu_aff(); g_vm->_menu.displayMenu();
} }
/** /**

View file

@ -59,16 +59,15 @@ const byte tnocon[364] = {
}; };
const byte don[9][5] = { const byte _menuConstants[8][4] = {
{ 0, 0, 0, 0, 0}, { 7, 37, 22, 8},
{ 0, 7, 37, 22, 8}, {19, 33, 23, 7},
{0, 19, 33, 23, 7}, {31, 89, 10, 21},
{0, 31, 89, 10, 21}, {43, 25, 11, 5},
{0, 43, 25, 11, 5}, {55, 37, 5, 8},
{0, 55, 37, 5, 8}, {64, 13, 11, 2},
{0, 64, 13, 11, 2}, {62, 22, 13, 4},
{0, 62, 22, 13, 4}, {62, 25, 13, 5}
{0, 62, 25, 13, 5}
}; };
const byte addv[2] = {8, 8}; const byte addv[2] = {8, 8};

View file

@ -149,7 +149,7 @@ extern const byte typcon[26];
extern const byte intcon[26]; extern const byte intcon[26];
extern const byte tnocon[364]; extern const byte tnocon[364];
extern const byte don[9][5]; extern const byte _menuConstants[8][4];
extern const byte addv[2]; extern const byte addv[2];