mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-01 23:18:44 +00:00
LOL: - extended text displayer and added one more opcode
svn-id: r41100
This commit is contained in:
parent
18f5ef8234
commit
660aa71662
@ -2722,7 +2722,7 @@ void LoLEngine::setupOpcodeTable() {
|
|||||||
Opcode(olol_assignSpecialGuiShape);
|
Opcode(olol_assignSpecialGuiShape);
|
||||||
Opcode(olol_findInventoryItem);
|
Opcode(olol_findInventoryItem);
|
||||||
Opcode(olol_restoreFadePalette);
|
Opcode(olol_restoreFadePalette);
|
||||||
OpcodeUnImpl();
|
Opcode(olol_calcNewBlockPosition);
|
||||||
|
|
||||||
// 0xA8
|
// 0xA8
|
||||||
OpcodeUnImpl();
|
OpcodeUnImpl();
|
||||||
|
@ -578,15 +578,16 @@ int LoLEngine::selectionCharInfo(int character) {
|
|||||||
void LoLEngine::selectionCharInfoIntro(char *file) {
|
void LoLEngine::selectionCharInfoIntro(char *file) {
|
||||||
int index = 0;
|
int index = 0;
|
||||||
file[4] = '0';
|
file[4] = '0';
|
||||||
|
bool processAnim = true;
|
||||||
|
|
||||||
while (_charSelectionInfoResult == -1 && !shouldQuit()) {
|
while (_charSelectionInfoResult == -1 && !shouldQuit()) {
|
||||||
if (!_sound->isVoicePresent(file))
|
if (_speechFlag && !_sound->isVoicePresent(file))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
_sound->voicePlay(file, &_speechHandle);
|
_sound->voicePlay(file, &_speechHandle);
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
while (_sound->voiceIsPlaying(&_speechHandle) && _charSelectionInfoResult == -1 && !shouldQuit()) {
|
while ((!_speechFlag || (_speechFlag && _sound->voiceIsPlaying(&_speechHandle))) && _charSelectionInfoResult == -1 && !shouldQuit()) {
|
||||||
_screen->drawShape(0, _screen->getPtrToShape(_screen->getCPagePtr(9), _charInfoFrameTable[i]), 11, 130, 0, 0);
|
_screen->drawShape(0, _screen->getPtrToShape(_screen->getCPagePtr(9), _charInfoFrameTable[i]), 11, 130, 0, 0);
|
||||||
_screen->updateScreen();
|
_screen->updateScreen();
|
||||||
|
|
||||||
@ -596,7 +597,10 @@ void LoLEngine::selectionCharInfoIntro(char *file) {
|
|||||||
_system->delayMillis(10);
|
_system->delayMillis(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
i = (i + 1) % 32;
|
if (_speechFlag || processAnim)
|
||||||
|
i = (i + 1) % 32;
|
||||||
|
if (i == 0)
|
||||||
|
processAnim = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
_sound->voiceStop(&_speechHandle);
|
_sound->voiceStop(&_speechHandle);
|
||||||
|
@ -354,6 +354,8 @@ void TextDisplayer_LoL::displayText(char *str, ...) {
|
|||||||
const ScreenDim *sd = _screen->_curDim;
|
const ScreenDim *sd = _screen->_curDim;
|
||||||
int sdx = _screen->curDimIndex();
|
int sdx = _screen->curDimIndex();
|
||||||
|
|
||||||
|
uint16 charsPerLine = (sd->w << 3) / (_screen->getFontWidth() + _screen->_charWidth);
|
||||||
|
|
||||||
while (c) {
|
while (c) {
|
||||||
char a = tolower(_ctrl[1]);
|
char a = tolower(_ctrl[1]);
|
||||||
|
|
||||||
@ -372,6 +374,8 @@ void TextDisplayer_LoL::displayText(char *str, ...) {
|
|||||||
c = parseCommand();
|
c = parseCommand();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint16 dv = _textDimData[sdx].column / (_screen->getFontWidth() + _screen->_charWidth);
|
||||||
|
|
||||||
switch (c - 1) {
|
switch (c - 1) {
|
||||||
case 0:
|
case 0:
|
||||||
printLine(_currentLine);
|
printLine(_currentLine);
|
||||||
@ -390,7 +394,12 @@ void TextDisplayer_LoL::displayText(char *str, ...) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 8:
|
case 8:
|
||||||
//TODO
|
printLine(_currentLine);
|
||||||
|
dv = _textDimData[sdx].column / (_screen->getFontWidth() + _screen->_charWidth);
|
||||||
|
dv = ((dv + 8) & 0xfff8) - 1;
|
||||||
|
if (dv >= charsPerLine)
|
||||||
|
dv = 0;
|
||||||
|
_textDimData[sdx].column = (_screen->getFontWidth() + _screen->_charWidth) * dv;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 11:
|
case 11:
|
||||||
|
Loading…
Reference in New Issue
Block a user