aboutsummaryrefslogtreecommitdiff
path: root/queen
diff options
context:
space:
mode:
authorGregory Montoir2004-10-03 20:14:55 +0000
committerGregory Montoir2004-10-03 20:14:55 +0000
commitf94cc6b19893243c3ef0030d3f7647139824204b (patch)
tree4a10f34a09719084f952c260528002c7dab99627 /queen
parent247d5724f5cbc3e7ed100150a81f8681d0389354 (diff)
downloadscummvm-rg350-f94cc6b19893243c3ef0030d3f7647139824204b.tar.gz
scummvm-rg350-f94cc6b19893243c3ef0030d3f7647139824204b.tar.bz2
scummvm-rg350-f94cc6b19893243c3ef0030d3f7647139824204b.zip
cleanup
svn-id: r15396
Diffstat (limited to 'queen')
-rw-r--r--queen/bankman.cpp8
-rw-r--r--queen/command.cpp1
-rw-r--r--queen/display.cpp38
-rw-r--r--queen/graphics.cpp12
-rw-r--r--queen/journal.cpp13
-rw-r--r--queen/logic.cpp24
-rw-r--r--queen/talk.cpp28
7 files changed, 54 insertions, 70 deletions
diff --git a/queen/bankman.cpp b/queen/bankman.cpp
index 890d864b24..45e31699d7 100644
--- a/queen/bankman.cpp
+++ b/queen/bankman.cpp
@@ -55,7 +55,7 @@ void BankManager::load(const char *bankname, uint32 bankslot) {
debug(9, "BankManager::load() entries = %d", entries);
uint32 offset = 2;
- uint8 *p = _banks[bankslot].data;
+ const uint8 *p = _banks[bankslot].data;
for (uint16 i = 1; i <= entries; ++i) {
_banks[bankslot].indexes[i] = offset;
uint16 w = READ_LE_UINT16(p + offset + 0);
@@ -74,7 +74,7 @@ void BankManager::unpack(uint32 srcframe, uint32 dstframe, uint32 bankslot) {
assert(_banks[bankslot].data != NULL);
BobFrame *pbf = &_frames[dstframe];
- uint8 *p = _banks[bankslot].data + _banks[bankslot].indexes[srcframe];
+ const uint8 *p = _banks[bankslot].data + _banks[bankslot].indexes[srcframe];
pbf->width = READ_LE_UINT16(p + 0);
pbf->height = READ_LE_UINT16(p + 2);
pbf->xhotspot = READ_LE_UINT16(p + 4);
@@ -91,7 +91,7 @@ void BankManager::overpack(uint32 srcframe, uint32 dstframe, uint32 bankslot) {
assert(bankslot < MAX_BANKS_NUMBER);
assert(_banks[bankslot].data != NULL);
- uint8 *p = _banks[bankslot].data + _banks[bankslot].indexes[srcframe];
+ const uint8 *p = _banks[bankslot].data + _banks[bankslot].indexes[srcframe];
uint16 src_w = READ_LE_UINT16(p + 0);
uint16 src_h = READ_LE_UINT16(p + 2);
@@ -135,7 +135,7 @@ void BankManager::eraseFrame(uint32 index) {
}
void BankManager::eraseFrames(bool joe) {
- uint32 i = 0;
+ uint32 i = 0;
if (!joe) {
i = FRAMES_JOE + FRAMES_JOE_XTRA;
}
diff --git a/queen/command.cpp b/queen/command.cpp
index fb3d8a4590..753018653e 100644
--- a/queen/command.cpp
+++ b/queen/command.cpp
@@ -30,7 +30,6 @@
#include "queen/queen.h"
#include "queen/sound.h"
#include "queen/state.h"
-#include "queen/talk.h"
#include "queen/walk.h"
namespace Queen {
diff --git a/queen/display.cpp b/queen/display.cpp
index 77ec75bec2..a8da50f81f 100644
--- a/queen/display.cpp
+++ b/queen/display.cpp
@@ -575,13 +575,14 @@ void Display::screenMode(int comPanel, bool inCutaway) {
}
void Display::prepareUpdate() {
- if (!_fullscreen)
+ int h = GAME_SCREEN_HEIGHT;
+ if (!_fullscreen) {
+ h = ROOM_ZONE_HEIGHT;
memcpy(_screenBuf + SCREEN_W * ROOM_ZONE_HEIGHT, _panelBuf, PANEL_W * PANEL_H);
- int i;
- int n = _fullscreen ? 200 : 150;
+ }
uint8 *dst = _screenBuf;
- uint8 *src = _backdropBuf + _horizontalScroll;
- for (i = 0; i < n; ++i) {
+ const uint8 *src = _backdropBuf + _horizontalScroll;
+ while (h--) {
memcpy(dst, src, SCREEN_W);
dst += SCREEN_W;
src += BACKDROP_W;
@@ -598,6 +599,7 @@ void Display::update(bool dynalum, int16 dynaX, int16 dynaY) {
_pal.dirtyMin = 144;
_pal.dirtyMax = 144;
}
+ // uncomment this line to disable the dirty blocks rendering
// _fullRefresh = 1;
if (_fullRefresh) {
_system->copyRectToScreen(_screenBuf, SCREEN_W, 0, 0, SCREEN_W, SCREEN_H);
@@ -639,7 +641,7 @@ void Display::update(bool dynalum, int16 dynaX, int16 dynaY) {
void Display::setupPanel() {
uint32 size;
- uint8 *pcxBuf = _vm->resource()->loadFile("panel.pcx", 0, &size);
+ const uint8 *pcxBuf = _vm->resource()->loadFile("panel.pcx", 0, &size);
uint8 *dst = _panelBuf + PANEL_W * 10;
readPCX(dst, PANEL_W, pcxBuf + 128, PANEL_W, PANEL_H - 10);
const uint8 *pal = pcxBuf + size - 768 + 144 * 3;
@@ -695,8 +697,7 @@ void Display::blit(uint8 *dstBuf, uint16 dstPitch, uint16 x, uint16 y, const uin
}
} else if (!xflip) { // Masked bitmap unflipped
while (h--) {
- int i;
- for(i = 0; i < w; ++i) {
+ for(int i = 0; i < w; ++i) {
uint8 b = *(srcBuf + i);
if(b != 0) {
*(dstBuf + i) = b;
@@ -707,8 +708,7 @@ void Display::blit(uint8 *dstBuf, uint16 dstPitch, uint16 x, uint16 y, const uin
}
} else { // Masked bitmap flipped
while (h--) {
- int i;
- for(i = 0; i < w; ++i) {
+ for(int i = 0; i < w; ++i) {
uint8 b = *(srcBuf + i);
if(b != 0) {
*(dstBuf - i) = b;
@@ -798,13 +798,11 @@ void Display::showMouseCursor(bool show) {
void Display::initFont() {
// calculate font justification sizes
- uint16 i, y, x;
-
- for (i = 0; i < 256; ++i) {
+ for (int i = 0; i < 256; ++i) {
_charWidth[i] = 0;
- for (y = 0; y < 8; ++y) {
+ for (int y = 0; y < 8; ++y) {
uint8 c = _font[i * 8 + y];
- for (x = 0; x < 8; ++x) {
+ for (int x = 0; x < 8; ++x) {
if ((c & (0x80 >> x)) && (x > _charWidth[i])) {
_charWidth[i] = x;
}
@@ -898,6 +896,8 @@ void Display::drawChar(uint16 x, uint16 y, uint8 color, const uint8 *chr) {
}
void Display::drawText(uint16 x, uint16 y, uint8 color, const char *text, bool outlined) {
+ static const int dx[] = { -1, 0, 1, 1, 1, 0, -1, -1 };
+ static const int dy[] = { -1, -1, -1, 0, 1, 1, 1, 0 };
const uint8 *str = (const uint8*)text;
uint16 xs = x;
while (*str && x < SCREEN_W) {
@@ -905,10 +905,8 @@ void Display::drawText(uint16 x, uint16 y, uint8 color, const char *text, bool o
const uint8 *pchr = _font + c * 8;
if (outlined) {
- const int xOff[] = { -1, 0, 1, 1, 1, 0, -1, -1 };
- const int yOff[] = { -1, -1, -1, 0, 1, 1, 1, 0 };
for (int i = 0; i < 8; ++i) {
- drawChar(x + xOff[i], y + yOff[i], INK_OUTLINED_TEXT, pchr);
+ drawChar(x + dx[i], y + dy[i], INK_OUTLINED_TEXT, pchr);
}
}
drawChar(x, y, color, pchr);
@@ -997,7 +995,7 @@ void Display::blankScreenEffect2() {
p += SCREEN_W;
}
_system->copyRectToScreen(buf, SCREEN_W, x, y, 2, 2);
- _system->updateScreen();
+ _system->updateScreen();
_vm->input()->delay(10);
}
}
@@ -1026,7 +1024,7 @@ void Display::blankScreenEffect3() {
++i;
_system->copyRectToScreen(buf, SCREEN_W, x, y, 2, 2);
}
- _system->updateScreen();
+ _system->updateScreen();
_vm->input()->delay(10);
}
}
diff --git a/queen/graphics.cpp b/queen/graphics.cpp
index c600626191..3b81b130cc 100644
--- a/queen/graphics.cpp
+++ b/queen/graphics.cpp
@@ -1151,6 +1151,11 @@ void BamScene::updateCarAnimation() {
}
void BamScene::updateFightAnimation() {
+ static const BamDataBlock *fightDataBlocks[] = {
+ _fight1Data,
+ _fight2Data,
+ _fight3Data
+ };
if (_flag != F_STOP) {
const BamDataBlock *bdb = &_fightData[_index];
@@ -1195,12 +1200,7 @@ void BamScene::updateFightAnimation() {
break;
case 99: // end of BAM data
_lastSoundIndex = _index = 0;
- const BamDataBlock *data[] = {
- _fight1Data,
- _fight2Data,
- _fight3Data
- };
- _fightData = data[_vm->randomizer.getRandomNumber(2)];
+ _fightData = fightDataBlocks[_vm->randomizer.getRandomNumber(2)];
if (_flag == F_REQ_STOP) {
_flag = F_STOP;
}
diff --git a/queen/journal.cpp b/queen/journal.cpp
index b42d858352..5a72dbccf1 100644
--- a/queen/journal.cpp
+++ b/queen/journal.cpp
@@ -187,7 +187,7 @@ void Journal::drawSaveDescriptions() {
_vm->display()->setText(136, y, _saveDescriptions[n], false);
_vm->display()->setText(109, y + 1, nb, false);
}
- // hightlight current page
+ // highlight current page
showBob(BOB_SAVE_PAGE, 300, 3 + _currentSavePage * 15, 6 + _currentSavePage);
}
@@ -220,8 +220,7 @@ void Journal::handleNormalMode(int16 zoneNum, int x) {
_quit = true;
} else if (zoneNum == ZN_GIVEUP) {
enterYesNoMode(zoneNum, TXT_GIVE_UP);
- }
- if (zoneNum == ZN_TEXT_SPEED) {
+ } else if (zoneNum == ZN_TEXT_SPEED) {
_vm->talkSpeed((x - 136) * 100 / 130);
drawConfigPanel();
} else if (zoneNum == ZN_SFX_TOGGLE) {
@@ -389,14 +388,14 @@ void Journal::drawPanel(const int *frames, const int *titles, int n) {
}
void Journal::drawNormalPanel() {
- int frames[] = { FRAME_BLUE_1, FRAME_BLUE_2, FRAME_BLUE_1, FRAME_ORANGE };
- int titles[] = { TXT_REVIEW_ENTRY, TXT_MAKE_ENTRY, TXT_CLOSE, TXT_GIVE_UP };
+ static const int frames[] = { FRAME_BLUE_1, FRAME_BLUE_2, FRAME_BLUE_1, FRAME_ORANGE };
+ static const int titles[] = { TXT_REVIEW_ENTRY, TXT_MAKE_ENTRY, TXT_CLOSE, TXT_GIVE_UP };
drawPanel(frames, titles, 4);
}
void Journal::drawYesNoPanel(int titleNum) {
- int frames[] = { FRAME_GREY, FRAME_BLUE_1, FRAME_BLUE_2 };
- int titles[] = { titleNum, TXT_YES, TXT_NO };
+ static const int frames[] = { FRAME_GREY, FRAME_BLUE_1, FRAME_BLUE_2 };
+ static const int titles[] = { titleNum, TXT_YES, TXT_NO };
drawPanel(frames, titles, 3);
hideBob(BOB_LEFT_RECT_4);
diff --git a/queen/logic.cpp b/queen/logic.cpp
index 02d23cf28d..7a02278d96 100644
--- a/queen/logic.cpp
+++ b/queen/logic.cpp
@@ -835,14 +835,22 @@ void Logic::makePersonSpeak(const char *sentence, Person *person, const char *vo
}
void Logic::startDialogue(const char *dlgFile, int personInRoom, char *cutaway) {
- char cutawayFile[20];
- if (cutaway == NULL) {
- cutaway = cutawayFile;
- }
- _vm->display()->fullscreen(true);
- Talk::talk(dlgFile, personInRoom, cutaway, _vm);
- if (!cutaway[0]) {
- _vm->display()->fullscreen(false);
+ ObjectData *data = objectData(_roomData[_currentRoom] + personInRoom);
+ if (data->name > 0 && data->entryObj <= 0) {
+ if (State::findTalk(data->state) == STATE_TALK_MUTE) {
+ // 'I can't talk to that'
+ makeJoeSpeak(24 + _vm->randomizer.getRandomNumber(2));
+ } else {
+ char cutawayFile[20];
+ if (cutaway == NULL) {
+ cutaway = cutawayFile;
+ }
+ _vm->display()->fullscreen(true);
+ Talk::talk(dlgFile, personInRoom, cutaway, _vm);
+ if (!cutaway[0]) {
+ _vm->display()->fullscreen(false);
+ }
+ }
}
}
diff --git a/queen/talk.cpp b/queen/talk.cpp
index c8dc02a535..92f0256b9c 100644
--- a/queen/talk.cpp
+++ b/queen/talk.cpp
@@ -85,21 +85,6 @@ void Talk::talk(const char *filename, int personInRoom, char *cutawayFilename) {
cutawayFilename[0] = '\0';
- int roomStart = _vm->logic()->currentRoomData();
- ObjectData *data = _vm->logic()->objectData(roomStart + personInRoom);
-
- if (data->name <= 0) // disabled!
- return;
-
- if (data->entryObj > 0)
- return;
-
- if (State::findTalk(data->state) == STATE_TALK_MUTE) {
- // 'I can't talk to that'
- _vm->logic()->makeJoeSpeak(24 + _vm->randomizer.getRandomNumber(2));
- return;
- }
-
load(filename);
Person person;
@@ -770,16 +755,13 @@ void Talk::defaultAnimation(
_vm->update();
}
+ if (_vm->input()->talkQuit())
+ break;
+
if (_vm->logic()->joeWalk() == JWM_SPEAK) {
- if (_vm->input()->talkQuit())
- break;
-
_vm->update();
}
else {
- if (_vm->input()->talkQuit())
- break;
-
_vm->update(true);
if (_vm->logic()->joeWalk() == JWM_EXECUTE)
// Selected a command, so exit
@@ -828,9 +810,7 @@ void Talk::speakSegment(
switch (command) {
case SPEAK_PAUSE:
- for (i = 0; i < 10; i++) {
- if (_vm->input()->talkQuit())
- break;
+ for (i = 0; i < 10 && !_vm->input()->talkQuit(); i++) {
_vm->update();
}
return;