mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-19 08:06:42 +00:00
HOPKINS: Some renaming and cleanup of font structures
This commit is contained in:
parent
36e3fe49a6
commit
d394570213
@ -152,7 +152,7 @@ void OptionsDialog::show(HopkinsEngine *vm) {
|
||||
doneFlag = true;
|
||||
}
|
||||
if (mousePos.x >= vm->_graphicsManager.ofscroll + 355 && mousePos.y > 285 && mousePos.x <= vm->_graphicsManager.ofscroll + 490 && mousePos.y <= 310)
|
||||
doneFlag = 1;
|
||||
doneFlag = true;
|
||||
if (mousePos.x >= vm->_graphicsManager.ofscroll + 300 && mousePos.y > 194 && mousePos.x <= vm->_graphicsManager.ofscroll + 358 && mousePos.y <= 219) {
|
||||
switch (vm->_graphicsManager.SPEED_SCROLL) {
|
||||
case 1:
|
||||
@ -209,22 +209,12 @@ void OptionsDialog::show(HopkinsEngine *vm) {
|
||||
vm->_globals.opt_vitesse = 5;
|
||||
if (vm->_globals.vitesse == 3)
|
||||
vm->_globals.opt_vitesse = 4;
|
||||
if (!vm->_soundManager.TEXTOFF)
|
||||
vm->_globals.opt_txt = 7;
|
||||
if (vm->_soundManager.TEXTOFF == 1)
|
||||
vm->_globals.opt_txt = 8;
|
||||
if (!vm->_soundManager.VOICEOFF)
|
||||
vm->_globals.opt_voice = 7;
|
||||
if (vm->_soundManager.VOICEOFF == 1)
|
||||
vm->_globals.opt_voice = 8;
|
||||
if (!vm->_soundManager.SOUNDOFF)
|
||||
vm->_globals.opt_sound = 7;
|
||||
if (vm->_soundManager.SOUNDOFF == 1)
|
||||
vm->_globals.opt_sound = 8;
|
||||
if (!vm->_soundManager.MUSICOFF)
|
||||
vm->_globals.opt_music = 7;
|
||||
if (vm->_soundManager.MUSICOFF == 1)
|
||||
vm->_globals.opt_music = 8;
|
||||
|
||||
vm->_globals.opt_txt = !vm->_soundManager.TEXTOFF ? 7 : 8;
|
||||
vm->_globals.opt_voice = !vm->_soundManager.VOICEOFF ? 7 : 8;
|
||||
vm->_globals.opt_sound = !vm->_soundManager.SOUNDOFF ? 7 : 8;
|
||||
vm->_globals.opt_music = !vm->_soundManager.MUSICOFF ? 7 : 8;
|
||||
|
||||
if (vm->_globals.SVGA == 1)
|
||||
vm->_globals.opt_anm = 10;
|
||||
if (vm->_globals.SVGA == 2)
|
||||
|
@ -38,14 +38,14 @@ void FontManager::setParent(HopkinsEngine *vm) {
|
||||
|
||||
void FontManager::clearAll() {
|
||||
for (int idx = 0; idx < 11; ++idx) {
|
||||
Txt[idx].field0 = 0;
|
||||
Txt[idx].field12 = 0;
|
||||
Txt[idx].textOn = false;
|
||||
Txt[idx].lineCount = 0;
|
||||
Txt[idx].field3FC = 0;
|
||||
Txt[idx].field3FE = 0;
|
||||
Txt[idx].field400 = 0;
|
||||
Txt[idx].textBlock = NULL;
|
||||
Txt[idx].width = 0;
|
||||
Txt[idx].height = 0;
|
||||
Txt[idx].field408 = 0;
|
||||
Txt[idx].textLoaded = false;
|
||||
|
||||
ListeTxt[idx].enabled = false;
|
||||
}
|
||||
@ -56,12 +56,12 @@ void FontManager::TEXTE_ON(int idx) {
|
||||
error("Attempted to display text > MAX_TEXT.");
|
||||
|
||||
TxtItem &txt = Txt[idx - 5];
|
||||
txt.field0 = 1;
|
||||
txt.field408 = 0;
|
||||
txt.textOn = true;
|
||||
txt.textLoaded = false;
|
||||
|
||||
if (txt.field400 != g_PTRNUL) {
|
||||
_vm->_globals.dos_free2(txt.field400);
|
||||
txt.field400 = g_PTRNUL;
|
||||
if (txt.textBlock != g_PTRNUL) {
|
||||
_vm->_globals.dos_free2(txt.textBlock);
|
||||
txt.textBlock = g_PTRNUL;
|
||||
}
|
||||
}
|
||||
|
||||
@ -71,17 +71,17 @@ void FontManager::TEXTE_OFF(int idx) {
|
||||
error("Attempted to display text > MAX_TEXT.");
|
||||
|
||||
TxtItem &txt = Txt[idx - 5];
|
||||
txt.field0 = 0;
|
||||
txt.field408 = 0;
|
||||
txt.textOn = false;
|
||||
txt.textLoaded = false;
|
||||
|
||||
if (txt.field400 != g_PTRNUL) {
|
||||
_vm->_globals.dos_free2(txt.field400);
|
||||
txt.field400 = g_PTRNUL;
|
||||
if (txt.textBlock != g_PTRNUL) {
|
||||
_vm->_globals.dos_free2(txt.textBlock);
|
||||
txt.textBlock = g_PTRNUL;
|
||||
}
|
||||
}
|
||||
|
||||
void FontManager::COUL_TXT(int idx, byte colByte) {
|
||||
Txt[idx - 5].field40A = colByte;
|
||||
Txt[idx - 5].colour = colByte;
|
||||
}
|
||||
|
||||
void FontManager::OPTI_COUL_TXT(int idx1, int idx2, int idx3, int idx4) {
|
||||
@ -91,24 +91,24 @@ void FontManager::OPTI_COUL_TXT(int idx1, int idx2, int idx3, int idx4) {
|
||||
COUL_TXT(idx4, 253);
|
||||
}
|
||||
|
||||
void FontManager::DOS_TEXT(int idx, int a2, const Common::String &filename, int xp, int yp, int a6, int a7, int a8, int a9, int a10) {
|
||||
void FontManager::DOS_TEXT(int idx, int messageId, const Common::String &filename, int xp, int yp, int a6, int a7, int a8, int a9, int colour) {
|
||||
if ((idx - 5) > 11)
|
||||
error("Attempted to display text > MAX_TEXT.");
|
||||
|
||||
TxtItem &txt = Txt[idx - 5];
|
||||
txt.field0 = 0;
|
||||
txt.textOn = false;
|
||||
txt.filename = filename;
|
||||
txt.xp = xp;
|
||||
txt.yp = yp;
|
||||
txt.fieldC = a2;
|
||||
txt.messageId = messageId;
|
||||
txt.fieldE = a6;
|
||||
txt.field10 = a7;
|
||||
txt.field3FC = a8;
|
||||
txt.field3FE = a9;
|
||||
txt.field40A = a10;
|
||||
txt.colour = colour;
|
||||
}
|
||||
|
||||
void FontManager::BOITE(int idx, int fileIndex, const Common::String &filename, int xp, int yp) {
|
||||
void FontManager::BOITE(int idx, int messageId, const Common::String &filename, int xp, int yp) {
|
||||
int filesize;
|
||||
byte *v9;
|
||||
const byte *v10;
|
||||
@ -129,26 +129,21 @@ void FontManager::BOITE(int idx, int fileIndex, const Common::String &filename,
|
||||
int v27;
|
||||
int v28;
|
||||
int v29;
|
||||
int v31;
|
||||
int v32;
|
||||
int v33;
|
||||
int v34;
|
||||
int v35;
|
||||
int v36;
|
||||
int v37;
|
||||
int v38;
|
||||
int v40;
|
||||
int ptrb;
|
||||
int ptrc;
|
||||
byte *ptrd;
|
||||
byte *ptre;
|
||||
Common::String s;
|
||||
int v49;
|
||||
int v50;
|
||||
int blockSize;
|
||||
int v51;
|
||||
int v52;
|
||||
int blockHeight;
|
||||
int v53;
|
||||
int v54;
|
||||
int blockWidth;
|
||||
int v55;
|
||||
int v56;
|
||||
int lineSize;
|
||||
@ -166,7 +161,6 @@ void FontManager::BOITE(int idx, int fileIndex, const Common::String &filename,
|
||||
int v69;
|
||||
int v70;
|
||||
int v71;
|
||||
int v72;
|
||||
int v73;
|
||||
int i;
|
||||
int v75;
|
||||
@ -181,31 +175,26 @@ void FontManager::BOITE(int idx, int fileIndex, const Common::String &filename,
|
||||
_vm->_globals.police_l = 11;
|
||||
|
||||
_vm->_globals.largeur_boite = 11 * Txt[idx].field3FE;
|
||||
if (Txt[idx].field408) {
|
||||
if (Txt[idx].textLoaded) {
|
||||
v34 = Txt[idx].field3FC;
|
||||
if (v34 != 6 && v34 != 1 && v34 != 3 && v34 != 5) {
|
||||
v72 = yp + 5;
|
||||
v38 = 0;
|
||||
if (Txt[idx].field12 > 0) {
|
||||
do {
|
||||
v40 = idx;
|
||||
TEXT_NOW1(xp + 5, v72, Txt[idx].lines[v38], Txt[idx].field40A);
|
||||
v72 += _vm->_globals.police_h + 1;
|
||||
++v38;
|
||||
idx = v40;
|
||||
} while (Txt[v40].field12 > v38);
|
||||
int yCurrent = yp + 5;
|
||||
if (Txt[idx].lineCount > 0) {
|
||||
for (int lineNum = 0; lineNum < Txt[idx].lineCount; ++lineNum) {
|
||||
TEXT_NOW1(xp + 5, yCurrent, Txt[idx].lines[lineNum], Txt[idx].colour);
|
||||
yCurrent += _vm->_globals.police_h + 1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
v35 = idx;
|
||||
v36 = Txt[v35].height;
|
||||
v37 = Txt[v35].width;
|
||||
v36 = Txt[idx].height;
|
||||
v37 = Txt[idx].width;
|
||||
_vm->_graphicsManager.Restore_Mem(
|
||||
_vm->_graphicsManager.VESA_BUFFER,
|
||||
Txt[v35].field400,
|
||||
Txt[idx].textBlock,
|
||||
xp,
|
||||
yp,
|
||||
Txt[v35].width,
|
||||
Txt[v35].height);
|
||||
Txt[idx].width,
|
||||
Txt[idx].height);
|
||||
_vm->_graphicsManager.Ajoute_Segment_Vesa(xp, yp, xp + v37, yp + v36);
|
||||
}
|
||||
} else {
|
||||
@ -213,7 +202,7 @@ void FontManager::BOITE(int idx, int fileIndex, const Common::String &filename,
|
||||
do {
|
||||
TRIER_TEXT[v62++] = 0;
|
||||
} while (v62 <= 19);
|
||||
Txt[idx].field408 = 1;
|
||||
Txt[idx].textLoaded = true;
|
||||
_vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, filename);
|
||||
|
||||
file = _vm->_globals.NFICHIER;
|
||||
@ -235,7 +224,7 @@ void FontManager::BOITE(int idx, int fileIndex, const Common::String &filename,
|
||||
error("Error opening file - %s", nom_index.c_str());
|
||||
|
||||
v69 = 2048;
|
||||
f.seek(Index[fileIndex]);
|
||||
f.seek(Index[messageId]);
|
||||
|
||||
texte_tmp = _vm->_globals.dos_malloc2(0x80Au);
|
||||
if (texte_tmp == g_PTRNUL)
|
||||
@ -249,7 +238,7 @@ void FontManager::BOITE(int idx, int fileIndex, const Common::String &filename,
|
||||
_vm->_globals.texte_long = 100;
|
||||
v9 = _vm->_globals.dos_malloc2(0x6Eu);
|
||||
texte_tmp = v9;
|
||||
v10 = _vm->_globals.BUF_ZONE + Index[fileIndex];
|
||||
v10 = _vm->_globals.BUF_ZONE + Index[messageId];
|
||||
memcpy(v9, v10, 0x60u);
|
||||
v11 = 0;
|
||||
WRITE_LE_UINT16((uint16 *)v9 + 48, (int16)READ_LE_UINT16(v10 + 96));
|
||||
@ -440,48 +429,48 @@ LABEL_57:
|
||||
_vm->_graphicsManager.Plot_Vline(_vm->_graphicsManager.VESA_BUFFER, v56, v70, v51, (byte)-2);
|
||||
_vm->_graphicsManager.Plot_Vline(_vm->_graphicsManager.VESA_BUFFER, v53 + v56, v70, v51, (byte)-2);
|
||||
}
|
||||
Txt[idx].field12 = lineCount;
|
||||
Txt[idx].lineCount = lineCount;
|
||||
v75 = v73 + 5;
|
||||
v71 = v70 + 5;
|
||||
|
||||
if (lineCount > 0) {
|
||||
for (int lineNum = 0; lineNum < lineCount; ++lineNum) {
|
||||
TEXT_NOW1(v75, v71, Txt[idx].lines[lineNum], Txt[idx].field40A);
|
||||
TEXT_NOW1(v75, v71, Txt[idx].lines[lineNum], Txt[idx].colour);
|
||||
v71 += _vm->_globals.police_h + 1;
|
||||
}
|
||||
}
|
||||
v54 = v53 + 1;
|
||||
v52 = v51 + 1;
|
||||
v31 = idx;
|
||||
Txt[v31].width = v54;
|
||||
Txt[v31].height = v52;
|
||||
v32 = Txt[v31].field3FC;
|
||||
if (v32 == 6 || v32 == 1 || v32 == 3 || v32 == 5) {
|
||||
v33 = idx;
|
||||
if (Txt[v33].field400 != g_PTRNUL)
|
||||
Txt[v33].field400 = _vm->_globals.dos_free2(Txt[v33].field400);
|
||||
v50 = v52 * v54;
|
||||
ptre = _vm->_globals.dos_malloc2(v50 + 20);
|
||||
if (ptre == g_PTRNUL)
|
||||
error("Cutting a block for text box (%d)", v50);
|
||||
|
||||
Txt[v33].field400 = ptre;
|
||||
Txt[v33].width = v54;
|
||||
Txt[v33].height = v52;
|
||||
_vm->_graphicsManager.Capture_Mem(_vm->_graphicsManager.VESA_BUFFER, Txt[v33].field400, v56, v55, Txt[v33].width, v52);
|
||||
blockWidth = v53 + 1;
|
||||
blockHeight = v51 + 1;
|
||||
|
||||
Txt[idx].width = blockWidth;
|
||||
Txt[idx].height = blockHeight;
|
||||
v32 = Txt[idx].field3FC;
|
||||
if (v32 == 6 || v32 == 1 || v32 == 3 || v32 == 5) {
|
||||
if (Txt[idx].textBlock != g_PTRNUL)
|
||||
Txt[idx].textBlock = _vm->_globals.dos_free2(Txt[idx].textBlock);
|
||||
blockSize = blockHeight * blockWidth;
|
||||
ptre = _vm->_globals.dos_malloc2(blockSize + 20);
|
||||
if (ptre == g_PTRNUL)
|
||||
error("Cutting a block for text box (%d)", blockSize);
|
||||
|
||||
Txt[idx].textBlock = ptre;
|
||||
Txt[idx].width = blockWidth;
|
||||
Txt[idx].height = blockHeight;
|
||||
_vm->_graphicsManager.Capture_Mem(_vm->_graphicsManager.VESA_BUFFER, Txt[idx].textBlock, v56, v55, Txt[idx].width, blockHeight);
|
||||
}
|
||||
texte_tmp = _vm->_globals.dos_free2(texte_tmp);
|
||||
}
|
||||
}
|
||||
|
||||
void FontManager::TEXT_NOW1(int xp, int yp, const Common::String &message, int transColour) {
|
||||
void FontManager::TEXT_NOW1(int xp, int yp, const Common::String &message, int colour) {
|
||||
for (uint idx = 0; idx < message.size(); ++idx) {
|
||||
char currentChar = message[idx];
|
||||
|
||||
if (currentChar > 31) {
|
||||
int characterIndex = currentChar - 32;
|
||||
_vm->_graphicsManager.Affiche_Fonte(_vm->_graphicsManager.VESA_BUFFER, _vm->_globals.police,
|
||||
xp, yp, characterIndex, transColour);
|
||||
xp, yp, characterIndex, colour);
|
||||
xp += _vm->_objectsManager.Get_Largeur(_vm->_globals.police, characterIndex);
|
||||
}
|
||||
}
|
||||
|
@ -31,23 +31,23 @@ namespace Hopkins {
|
||||
class HopkinsEngine;
|
||||
|
||||
struct TxtItem {
|
||||
int field0;
|
||||
bool textOn;
|
||||
int field2;
|
||||
Common::String filename;
|
||||
int16 xp;
|
||||
int16 yp;
|
||||
int fieldC;
|
||||
int messageId;
|
||||
int fieldE;
|
||||
int field10;
|
||||
int field12;
|
||||
int lineCount;
|
||||
Common::String lines[10];
|
||||
int field3FC;
|
||||
int field3FE;
|
||||
byte *field400;
|
||||
byte *textBlock;
|
||||
int16 width;
|
||||
int16 height;
|
||||
int field408;
|
||||
int field40A;
|
||||
bool textLoaded;
|
||||
int colour;
|
||||
};
|
||||
|
||||
struct ListeTxtItem {
|
||||
@ -78,9 +78,9 @@ public:
|
||||
void TEXTE_OFF(int idx);
|
||||
void COUL_TXT(int idx, byte colByte);
|
||||
void OPTI_COUL_TXT(int idx1, int idx2, int idx3, int idx4);
|
||||
void DOS_TEXT(int idx, int a2, const Common::String &filename, int xp, int yp, int a6, int a7, int a8, int a9, int a10);
|
||||
void BOITE(int idx, int a2, const Common::String &filename, int xp, int yp);
|
||||
void TEXT_NOW1(int xp, int yp, const Common::String &message, int transColour);
|
||||
void DOS_TEXT(int idx, int messageId, const Common::String &filename, int xp, int yp, int a6, int a7, int a8, int a9, int a10);
|
||||
void BOITE(int idx, int messageId, const Common::String &filename, int xp, int yp);
|
||||
void TEXT_NOW1(int xp, int yp, const Common::String &message, int colour);
|
||||
};
|
||||
|
||||
} // End of namespace Hopkins
|
||||
|
@ -2243,7 +2243,7 @@ void GraphicsManager::Copy_Mem(const byte *srcSurface, int x1, int y1, unsigned
|
||||
}
|
||||
|
||||
void GraphicsManager::Affiche_Fonte(byte *surface, const byte *spriteData, int xp, int yp,
|
||||
int characterIndex, int transColour) {
|
||||
int characterIndex, int colour) {
|
||||
const byte *v6;
|
||||
int i;
|
||||
const byte *v8;
|
||||
@ -2278,7 +2278,7 @@ void GraphicsManager::Affiche_Fonte(byte *surface, const byte *spriteData, int x
|
||||
v14 = *v11;
|
||||
if (*v11) {
|
||||
if (v14 == (byte)-4)
|
||||
v14 = transColour;
|
||||
v14 = colour;
|
||||
*destP = v14;
|
||||
}
|
||||
|
||||
|
@ -174,7 +174,7 @@ public:
|
||||
void AFFICHE_SPEED(const byte *spriteData, int xp, int yp, int spriteIndex);
|
||||
void SCOPY(const byte *surface, int x1, int y1, int width, int height, byte *destSurface, int destX, int destY);
|
||||
void Copy_Mem(const byte *srcSurface, int x1, int y1, unsigned int width, int height, byte *destSurface, int destX, int destY);
|
||||
void Affiche_Fonte(byte *surface, const byte *spriteData, int xp, int yp, int characterIndex, int transColour);
|
||||
void Affiche_Fonte(byte *surface, const byte *spriteData, int xp, int yp, int characterIndex, int colour);
|
||||
void INI_ECRAN(const Common::String &file);
|
||||
void INI_ECRAN2(const Common::String &file);
|
||||
void OPTI_INI(const Common::String &file, int a2);
|
||||
|
Loading…
Reference in New Issue
Block a user