mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-17 23:44:22 +00:00
Minor cleanup.
svn-id: r20242
This commit is contained in:
parent
04d7bb1d55
commit
45727596b9
@ -254,9 +254,12 @@ enum {
|
||||
|
||||
//! GameState vars
|
||||
enum {
|
||||
VAR_DRESSING_MODE = 19,
|
||||
VAR_HOTEL_ITEMS_REMOVED = 3,
|
||||
VAR_JOE_DRESSING_MODE = 19,
|
||||
VAR_BYPASS_ZOMBIES = 21,
|
||||
VAR_BYPASS_FLODA_RECEPTIONIST = 35,
|
||||
VAR_ESCAPE_FROM_HOTEL_COUNT = 93,
|
||||
VAR_GUARDS_TURNED_ON = 85,
|
||||
VAR_HOTEL_ESCAPE_STATE = 93,
|
||||
VAR_INTRO_PLAYED = 117,
|
||||
VAR_AZURA_IN_LOVE = 167
|
||||
};
|
||||
|
@ -151,20 +151,17 @@ void Display::dynalumUpdate(int16 x, int16 y) {
|
||||
}
|
||||
}
|
||||
|
||||
void Display::palConvert(uint8 *outPal, const uint8 *inPal, int start, int end) {
|
||||
for (int i = start; i <= end; i++) {
|
||||
outPal[4 * i + 0] = inPal[3 * i + 0];
|
||||
outPal[4 * i + 1] = inPal[3 * i + 1];
|
||||
outPal[4 * i + 2] = inPal[3 * i + 2];
|
||||
outPal[4 * i + 3] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void Display::palSet(const uint8 *pal, int start, int end, bool updateScreen) {
|
||||
debug(9, "Display::palSet(%d, %d)", start, end);
|
||||
const int numColors = end - start + 1;
|
||||
uint8 tempPal[256 * 4];
|
||||
palConvert(tempPal, pal, start, end);
|
||||
_system->setPalette(tempPal + start * 4, start, end - start + 1);
|
||||
for (int i = 0; i < numColors; i++) {
|
||||
tempPal[4 * i + 0] = *pal++;
|
||||
tempPal[4 * i + 1] = *pal++;
|
||||
tempPal[4 * i + 2] = *pal++;
|
||||
tempPal[4 * i + 3] = 0;
|
||||
}
|
||||
_system->setPalette(tempPal, start, numColors);
|
||||
if (updateScreen) {
|
||||
_system->updateScreen();
|
||||
_vm->input()->delay(20);
|
||||
@ -933,22 +930,26 @@ void Display::blankScreen() {
|
||||
}
|
||||
|
||||
void Display::blankScreenEffect1() {
|
||||
static const int inc[] = { -1, 1 };
|
||||
uint8 buf[32 * 32];
|
||||
while (_vm->input()->idleTime() >= Input::DELAY_SCREEN_BLANKER) {
|
||||
for (int i = 0; i < 2; ++i) {
|
||||
uint16 x = _rnd.getRandomNumber(SCREEN_W - 32 - 2) + 1;
|
||||
uint16 y = _rnd.getRandomNumber(SCREEN_H - 32 - 2) + 1;
|
||||
uint8 *p = _screenBuf + SCREEN_W * y + x;
|
||||
uint8 *q = buf;
|
||||
uint16 h = 32;
|
||||
while (h--) {
|
||||
memcpy(q, p, 32);
|
||||
int x = _rnd.getRandomNumber(SCREEN_W - 32 - 2) + 1;
|
||||
int y = _rnd.getRandomNumber(SCREEN_H - 32 - 2) + 1;
|
||||
const uint8 *p = _screenBuf + SCREEN_W * y + x;
|
||||
for (int j = 0; j < 32; ++j) {
|
||||
memcpy(buf + j * 32, p, 32);
|
||||
p += SCREEN_W;
|
||||
q += 32;
|
||||
}
|
||||
x += inc[_rnd.getRandomNumber(1)];
|
||||
y += inc[_rnd.getRandomNumber(1)];
|
||||
if (_rnd.getRandomNumber(1)) {
|
||||
++x;
|
||||
} else {
|
||||
--x;
|
||||
}
|
||||
if (_rnd.getRandomNumber(1)) {
|
||||
++y;
|
||||
} else {
|
||||
--y;
|
||||
}
|
||||
_system->copyRectToScreen(buf, 32, x, y, 32, 32);
|
||||
_system->updateScreen();
|
||||
_vm->input()->delay(10);
|
||||
@ -958,8 +959,8 @@ void Display::blankScreenEffect1() {
|
||||
|
||||
void Display::blankScreenEffect2() {
|
||||
while (_vm->input()->idleTime() >= Input::DELAY_SCREEN_BLANKER) {
|
||||
uint16 x = _rnd.getRandomNumber(SCREEN_W - 2);
|
||||
uint16 y = _rnd.getRandomNumber(SCREEN_H - 2);
|
||||
int x = _rnd.getRandomNumber(SCREEN_W - 2);
|
||||
int y = _rnd.getRandomNumber(SCREEN_H - 2);
|
||||
uint8 *p = _screenBuf + y * SCREEN_W + x;
|
||||
uint8 c = 0;
|
||||
switch (_rnd.getRandomNumber(3)) {
|
||||
@ -991,14 +992,11 @@ void Display::blankScreenEffect3() {
|
||||
memset(_screenBuf, 0, SCREEN_W * SCREEN_H);
|
||||
_system->copyRectToScreen(_screenBuf, SCREEN_W, 0, 0, SCREEN_W, SCREEN_H);
|
||||
} else {
|
||||
uint16 x = _rnd.getRandomNumber(SCREEN_W - 2);
|
||||
uint16 y = _rnd.getRandomNumber(SCREEN_H - 2);
|
||||
int x = _rnd.getRandomNumber(SCREEN_W - 2);
|
||||
int y = _rnd.getRandomNumber(SCREEN_H - 2);
|
||||
uint8 *p = _screenBuf + SCREEN_W * y + x;
|
||||
uint8 p0 = *p;
|
||||
uint8 p1 = *(p + 1);
|
||||
uint8 p2 = *(p + SCREEN_W);
|
||||
uint8 p3 = *(p + SCREEN_W + 1);
|
||||
uint8 c = (p0 + p1 + p2 + p3) / 4;
|
||||
int sum = *p + *(p + 1) + *(p + SCREEN_W) + *(p + SCREEN_W + 1);
|
||||
uint8 c = (uint8)(sum / 4);
|
||||
memset(p, c, 2);
|
||||
memset(p + SCREEN_W, c, 2);
|
||||
++i;
|
||||
|
@ -44,9 +44,6 @@ public:
|
||||
//! update dynalum for the current room
|
||||
void dynalumUpdate(int16 x, int16 y);
|
||||
|
||||
//! convert palette from RGB to RGBA (used before uploading to the backend)
|
||||
void palConvert(uint8 *outPal, const uint8 *inPal, int start, int end);
|
||||
|
||||
//! update the palette
|
||||
void palSet(const uint8 *pal, int start, int end, bool updateScreen = false);
|
||||
|
||||
|
@ -815,7 +815,7 @@ void Logic::joeUseDress(bool showCut) {
|
||||
if (showCut) {
|
||||
joeFacing(DIR_FRONT);
|
||||
joeFace();
|
||||
if (gameState(VAR_DRESSING_MODE) == 0) {
|
||||
if (gameState(VAR_JOE_DRESSING_MODE) == 0) {
|
||||
playCutaway("cdres.CUT");
|
||||
inventoryInsertItem(ITEM_CLOTHES);
|
||||
} else {
|
||||
@ -825,7 +825,7 @@ void Logic::joeUseDress(bool showCut) {
|
||||
_vm->display()->palSetJoeDress();
|
||||
loadJoeBanks("JoeD_A.BBK", "JoeD_B.BBK");
|
||||
inventoryDeleteItem(ITEM_DRESS);
|
||||
gameState(VAR_DRESSING_MODE, 2);
|
||||
gameState(VAR_JOE_DRESSING_MODE, 2);
|
||||
}
|
||||
|
||||
void Logic::joeUseClothes(bool showCut) {
|
||||
@ -838,13 +838,13 @@ void Logic::joeUseClothes(bool showCut) {
|
||||
_vm->display()->palSetJoeNormal();
|
||||
loadJoeBanks("Joe_A.BBK", "Joe_B.BBK");
|
||||
inventoryDeleteItem(ITEM_CLOTHES);
|
||||
gameState(VAR_DRESSING_MODE, 0);
|
||||
gameState(VAR_JOE_DRESSING_MODE, 0);
|
||||
}
|
||||
|
||||
void Logic::joeUseUnderwear() {
|
||||
_vm->display()->palSetJoeNormal();
|
||||
loadJoeBanks("JoeU_A.BBK", "JoeU_B.BBK");
|
||||
gameState(VAR_DRESSING_MODE, 1);
|
||||
gameState(VAR_JOE_DRESSING_MODE, 1);
|
||||
}
|
||||
|
||||
void Logic::makePersonSpeak(const char *sentence, Person *person, const char *voiceFilePrefix) {
|
||||
@ -1018,14 +1018,14 @@ void Logic::inventoryScroll(uint16 count, bool up) {
|
||||
}
|
||||
|
||||
void Logic::removeHotelItemsFromInventory() {
|
||||
if (currentRoom() == 1 && gameState(3) == 0) {
|
||||
if (currentRoom() == 1 && gameState(VAR_HOTEL_ITEMS_REMOVED) == 0) {
|
||||
inventoryDeleteItem(ITEM_CROWBAR, false);
|
||||
inventoryDeleteItem(ITEM_DRESS, false);
|
||||
inventoryDeleteItem(ITEM_CLOTHES, false);
|
||||
inventoryDeleteItem(ITEM_HAY, false);
|
||||
inventoryDeleteItem(ITEM_OIL, false);
|
||||
inventoryDeleteItem(ITEM_CHICKEN, false);
|
||||
gameState(3, 1);
|
||||
gameState(VAR_HOTEL_ITEMS_REMOVED, 1);
|
||||
inventoryRefresh();
|
||||
}
|
||||
}
|
||||
@ -1137,14 +1137,17 @@ void Logic::handleSpecialArea(Direction facing, uint16 areaNum, uint16 walkDataN
|
||||
break;
|
||||
case ROOM_TEMPLE_ZOMBIES:
|
||||
if (areaNum == 6) {
|
||||
if (_gameState[21] == 0) {
|
||||
switch (gameState(VAR_BYPASS_ZOMBIES)) {
|
||||
case 0:
|
||||
playCutaway("c50d.CUT", nextCut);
|
||||
while (nextCut[0] != '\0') {
|
||||
playCutaway(nextCut, nextCut);
|
||||
}
|
||||
_gameState[21] = 1;
|
||||
} else {
|
||||
gameState(VAR_BYPASS_ZOMBIES, 1);
|
||||
break;
|
||||
case 1:
|
||||
playCutaway("c50h.CUT", nextCut);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -1158,16 +1161,20 @@ void Logic::handleSpecialArea(Direction facing, uint16 areaNum, uint16 walkDataN
|
||||
makeJoeSpeak(21);
|
||||
break;
|
||||
case ROOM_HOTEL_LOBBY:
|
||||
if (_gameState[VAR_ESCAPE_FROM_HOTEL_COUNT] == 0) {
|
||||
switch (gameState(VAR_HOTEL_ESCAPE_STATE)) {
|
||||
case 0:
|
||||
playCutaway("c73a.CUT");
|
||||
_gameState[VAR_ESCAPE_FROM_HOTEL_COUNT] = 1;
|
||||
joeUseUnderwear();
|
||||
joeFace();
|
||||
} else if (_gameState[VAR_ESCAPE_FROM_HOTEL_COUNT] == 1) {
|
||||
gameState(VAR_HOTEL_ESCAPE_STATE, 1);
|
||||
break;
|
||||
case 1:
|
||||
playCutaway("c73b.CUT");
|
||||
_gameState[VAR_ESCAPE_FROM_HOTEL_COUNT] = 2;
|
||||
} else if (_gameState[VAR_ESCAPE_FROM_HOTEL_COUNT] == 2) {
|
||||
gameState(VAR_HOTEL_ESCAPE_STATE, 2);
|
||||
break;
|
||||
case 2:
|
||||
playCutaway("c73c.CUT");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case ROOM_TEMPLE_MAZE_5:
|
||||
@ -1176,17 +1183,20 @@ void Logic::handleSpecialArea(Direction facing, uint16 areaNum, uint16 walkDataN
|
||||
}
|
||||
break;
|
||||
case ROOM_TEMPLE_MAZE_6:
|
||||
if (areaNum == 5 && _gameState[187] == 0) {
|
||||
if (areaNum == 5 && gameState(187) == 0) {
|
||||
playCutaway("c101b.CUT", nextCut);
|
||||
}
|
||||
break;
|
||||
case ROOM_FLODA_FRONTDESK:
|
||||
if (areaNum == 3) {
|
||||
if (_gameState[VAR_BYPASS_FLODA_RECEPTIONIST] == 1) {
|
||||
playCutaway("c103e.CUT", nextCut);
|
||||
} else if (_gameState[VAR_BYPASS_FLODA_RECEPTIONIST] == 0) {
|
||||
switch (gameState(VAR_BYPASS_FLODA_RECEPTIONIST)) {
|
||||
case 0:
|
||||
playCutaway("c103b.CUT", nextCut);
|
||||
_gameState[VAR_BYPASS_FLODA_RECEPTIONIST] = 1;
|
||||
gameState(VAR_BYPASS_FLODA_RECEPTIONIST, 1);
|
||||
break;
|
||||
case 1:
|
||||
playCutaway("c103e.CUT", nextCut);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -1377,7 +1387,7 @@ void Logic::loadState(uint32 ver, byte *&ptr) {
|
||||
void Logic::setupRestoredGame() {
|
||||
_vm->sound()->playLastSong();
|
||||
|
||||
switch (gameState(VAR_DRESSING_MODE)) {
|
||||
switch (gameState(VAR_JOE_DRESSING_MODE)) {
|
||||
case 0:
|
||||
_vm->display()->palSetJoeNormal();
|
||||
loadJoeBanks("Joe_A.BBK", "Joe_B.BBK");
|
||||
@ -1675,7 +1685,7 @@ void Logic::asmPanToJoe() {
|
||||
}
|
||||
|
||||
void Logic::asmTurnGuardOn() {
|
||||
gameState(85, 1);
|
||||
gameState(VAR_GUARDS_TURNED_ON, 1);
|
||||
}
|
||||
|
||||
void Logic::asmPanLeft320To144() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user