[Scummvm-git-logs] scummvm branch-2-6 -> 49c1c3737a70532986aff539a0599594b85dc205
bluegr
noreply at scummvm.org
Fri Jul 1 17:07:19 UTC 2022
This automated email contains information about 9 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
58cec79d64 CHEWY: Merge AadTxtHeader and DialogCloseupTxtHeader
412cb1ebb9 CHEWY: Refactor checkShadow() and rename it to setShadowPalette()
cb8ee02595 CHEWY: Variable renaming
2c4ce77c66 CHEWY: Get rid of cur_hide_flag
1e50b502ca CHEWY: Remove the CursorStatus flag
a0e189c362 CHEWY: Remove useless check
8627246afd CHEWY: Variable renaming
6131654e3c CHEWY: Get rid of the cur_display global. Some cleanup
49c1c3737a CHEWY: Fix handling of the escape key - bug #13608
Commit: 58cec79d64c536173a155c106894554ad28c9d5e
https://github.com/scummvm/scummvm/commit/58cec79d64c536173a155c106894554ad28c9d5e
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2022-07-01T20:06:55+03:00
Commit Message:
CHEWY: Merge AadTxtHeader and DialogCloseupTxtHeader
Changed paths:
engines/chewy/atds.cpp
engines/chewy/atds.h
diff --git a/engines/chewy/atds.cpp b/engines/chewy/atds.cpp
index d92fa82ae85..1b7667a6cca 100644
--- a/engines/chewy/atds.cpp
+++ b/engines/chewy/atds.cpp
@@ -55,16 +55,6 @@ void AadInfoArray::load(const void *data, size_t count) {
(*this)[i].load(&src);
}
-bool AadTxtHeader::load(const void *src) {
- Common::MemoryReadStream rs((const byte *)src, 8);
-
- _diaNr = rs.readSint16LE();
- _perNr = rs.readSint16LE();
- _aMov = rs.readSint16LE();
- _curNr = rs.readSint16LE();
- return true;
-}
-
bool DialogCloseupTxtHeader::load(const void *src) {
Common::MemoryReadStream rs((const byte *)src, 8);
@@ -756,10 +746,10 @@ void Atdsys::aad_search_dia(int16 diaNr, char **ptr) {
uint16 *pos = (uint16 *)start_ptr;
if (pos[0] == diaNr) {
ende = true;
- _aadv._txtHeader = (AadTxtHeader *)start_ptr;
- *ptr = start_ptr + sizeof(AadTxtHeader);
+ _aadv._txtHeader = (DialogCloseupTxtHeader *)start_ptr;
+ *ptr = start_ptr + sizeof(DialogCloseupTxtHeader);
} else {
- start_ptr += sizeof(AadTxtHeader) + pos[1] * sizeof(AadInfo);
+ start_ptr += sizeof(DialogCloseupTxtHeader) + pos[1] * sizeof(AadInfo);
bool ende1 = false;
for (; !ende1; ++start_ptr) {
if (*start_ptr != ATDS_END_TEXT)
diff --git a/engines/chewy/atds.h b/engines/chewy/atds.h
index 1230fdc4354..74dadb6e945 100644
--- a/engines/chewy/atds.h
+++ b/engines/chewy/atds.h
@@ -84,10 +84,6 @@ namespace Chewy {
struct KbdMouseInfo;
class Text;
-struct AdsDiaHeaders {
- int16 _nr;
-};
-
struct AtdsVar {
int16 _silent = 0;
int16 _delay = 1;
@@ -122,33 +118,11 @@ public:
void load(const void *data, size_t count);
};
-struct AadTxtHeader {
- int16 _diaNr;
- int16 _perNr;
- int16 _aMov;
- int16 _curNr;
-
- bool load(const void *src);
- static constexpr int SIZE() { return 8; }
-};
-
struct AadStrHeader {
int16 _akPerson;
int16 _vocNr;
};
-struct AadVar {
- int16 _dialog;
-
- AadTxtHeader *_txtHeader;
- AadStrHeader *_strHeader;
- AadInfoArray _person;
- char *_ptr;
- int16 _strNr;
- int16 _delayCount;
- int16 _silentCount;
-};
-
// ADS (dialog closeup) header
struct DialogCloseupTxtHeader {
int16 _diaNr;
@@ -177,6 +151,18 @@ struct DialogCloseupNextBlock {
int16 _endNr;
};
+struct AadVar {
+ int16 _dialog;
+
+ DialogCloseupTxtHeader *_txtHeader;
+ AadStrHeader *_strHeader;
+ AadInfoArray _person;
+ char *_ptr;
+ int16 _strNr;
+ int16 _delayCount;
+ int16 _silentCount;
+};
+
struct AtsTxtHeader {
uint16 _txtNr = 0;
int16 _aMov = 0;
Commit: 412cb1ebb9cdf3f021428cba22b5532e1277cf2a
https://github.com/scummvm/scummvm/commit/412cb1ebb9cdf3f021428cba22b5532e1277cf2a
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2022-07-01T20:06:56+03:00
Commit Message:
CHEWY: Refactor checkShadow() and rename it to setShadowPalette()
Changed paths:
engines/chewy/globals.h
engines/chewy/main.cpp
engines/chewy/r_event.cpp
engines/chewy/rooms/room00.cpp
engines/chewy/rooms/room02.cpp
engines/chewy/rooms/room52.cpp
engines/chewy/rooms/room63.cpp
engines/chewy/sprite.cpp
diff --git a/engines/chewy/globals.h b/engines/chewy/globals.h
index 96a895f92fa..0b7278e6d63 100644
--- a/engines/chewy/globals.h
+++ b/engines/chewy/globals.h
@@ -340,7 +340,7 @@ void delInventory(int16 nr);
bool isCurInventory(int16 nr);
-void checkShadow(int16 palIdx, int16 mode);
+void setShadowPalette(int16 palIdx, bool setPartialPalette);
void get_scroll_off(int16 x, int16 y, int16 pic_x, int16 pic_y,
int16 *sc_x, int16 *sc_y);
diff --git a/engines/chewy/main.cpp b/engines/chewy/main.cpp
index ffb3f80e7a3..ec67eaeb99b 100644
--- a/engines/chewy/main.cpp
+++ b/engines/chewy/main.cpp
@@ -512,7 +512,7 @@ void setupScreen(SetupScreenMode mode) {
const int16 paletteId = _G(barriers)->getBarrierId(
_G(moveState)[P_CHEWY].Xypos[0] + _G(spieler_mi)[P_CHEWY].HotX,
_G(moveState)[P_CHEWY].Xypos[1] + _G(spieler_mi)[P_CHEWY].HotY);
- checkShadow(paletteId, 0);
+ setShadowPalette(paletteId, false);
} else {
for (i = 0; i < MAX_PERSON; i++) {
mov_objekt(&_G(moveState)[i], &_G(spieler_mi)[i]);
@@ -1009,31 +1009,24 @@ void swap_if_l(int16 *x1, int16 *x2) {
}
}
-void palcopy(byte *destPal, const byte *srcPal, int16 destStartIndex, int16 srcStartIndex, int16 colorNbr) {
- int16 j = srcStartIndex;
- for (int16 i = destStartIndex; i < destStartIndex + colorNbr; ++i) {
- destPal[i * 3] = srcPal[j * 3];
- destPal[i * 3 + 1] = srcPal[j * 3 + 1];
- destPal[i * 3 + 2] = srcPal[j * 3 + 2];
- ++j;
- }
-}
-
-void checkShadow(int16 palIdx, int16 mode) {
+void setShadowPalette(int16 palIdx, bool setPartialPalette) {
static const uint8 PAL_0[] = {
0, 0, 0,
39, 0, 26,
43, 0, 29,
51, 42, 29,
+
51, 0, 34,
49, 13, 34,
55, 0, 37,
63, 54, 40,
+
63, 0, 42,
63, 30, 42,
63, 12, 46,
63, 24, 50
};
+
static const uint8 PAL_1[] = {
0, 0, 0,
34, 0, 21,
@@ -1050,6 +1043,7 @@ void checkShadow(int16 palIdx, int16 mode) {
58, 7, 41,
58, 19, 45
};
+
static const uint8 PAL_2[] = {
0, 0, 0,
26, 0, 13,
@@ -1066,6 +1060,7 @@ void checkShadow(int16 palIdx, int16 mode) {
50, 0, 33,
50, 11, 37
};
+
static const uint8 PAL_3[] = {
0, 0, 0,
21, 3, 8,
@@ -1083,34 +1078,21 @@ void checkShadow(int16 palIdx, int16 mode) {
45, 6, 32
};
- switch (palIdx) {
- case 1:
- if (mode)
- _G(out)->set_partialpalette(PAL_1, 1, 11);
- palcopy(_G(pal), PAL_1, 0, 0, 12);
- break;
-
- case 2:
- if (mode)
- _G(out)->set_partialpalette(PAL_2, 1, 11);
- palcopy(_G(pal), PAL_2, 0, 0, 12);
- break;
-
- case 3:
- if (mode)
- _G(out)->set_partialpalette(PAL_3, 1, 11);
- palcopy(_G(pal), PAL_3, 0, 0, 12);
- break;
-
- case 4:
- if (mode)
- _G(out)->set_partialpalette(PAL_0, 1, 11);
- palcopy(_G(pal), PAL_0, 0, 0, 12);
- break;
+ const uint8 *palette;
+ if (palIdx == 1)
+ palette = PAL_1;
+ else if (palIdx == 2)
+ palette = PAL_2;
+ else if (palIdx == 3)
+ palette = PAL_3;
+ else if (palIdx == 4)
+ palette = PAL_0;
+ else
+ return;
- default:
- break;
- }
+ if (setPartialPalette)
+ _G(out)->set_partialpalette(palette, 1, 11);
+ memcpy(_G(pal), palette, 12 * 3);
}
void printShadowed(int16 x, int16 y, int16 fgCol, int16 bgCol, int16 shadowFgCol, int16 scrWidth, const char *txtPtr) {
@@ -1684,7 +1666,7 @@ void calc_ausgang(int16 x, int16 y) {
const int16 paletteId = _G(barriers)->getBarrierId(_G(moveState)[P_CHEWY].Xypos[0] + _G(spieler_mi)[P_CHEWY].HotX,
_G(moveState)[P_CHEWY].Xypos[1] + _G(spieler_mi)[P_CHEWY].HotY);
- checkShadow(paletteId, 0);
+ setShadowPalette(paletteId, false);
setPersonSpr(_G(Rdi)->AutoMov[_G(gameState).room_e_obj[nr].ExitMov]._sprNr, P_CHEWY);
_G(moveState)[P_CHEWY]._delayCount = 0;
_G(fx_blend) = BLEND1;
diff --git a/engines/chewy/r_event.cpp b/engines/chewy/r_event.cpp
index 5238c8e4dd7..bf5c20f8c18 100644
--- a/engines/chewy/r_event.cpp
+++ b/engines/chewy/r_event.cpp
@@ -1113,7 +1113,7 @@ int16 sib_event_no_inv(int16 sib_nr) {
case SIB_LAMPE_R52:
_G(atds)->delControlBit(338, ATS_ACTIVE_BIT);
_G(gameState).R52LichtAn ^= 1;
- checkShadow(2 * (_G(gameState).R52LichtAn + 1), 1);
+ setShadowPalette(2 * (_G(gameState).R52LichtAn + 1), true);
break;
case SIB_KAUTABAK_R56:
diff --git a/engines/chewy/rooms/room00.cpp b/engines/chewy/rooms/room00.cpp
index 6168796624b..57a7686b65d 100644
--- a/engines/chewy/rooms/room00.cpp
+++ b/engines/chewy/rooms/room00.cpp
@@ -752,7 +752,7 @@ void Room0::feederAni() {
_G(Rdi)->AutoMov[4]._y - CH_HOT_MOV_Y, P_CHEWY, P_RIGHT);
_G(moveState)[P_CHEWY]._delayCount = 0;
- checkShadow(4, 0);
+ setShadowPalette(4, false);
_G(fx_blend) = BLEND1;
setupScreen(DO_SETUP);
} else {
diff --git a/engines/chewy/rooms/room02.cpp b/engines/chewy/rooms/room02.cpp
index 753cc13b59a..6a345bca5ad 100644
--- a/engines/chewy/rooms/room02.cpp
+++ b/engines/chewy/rooms/room02.cpp
@@ -52,7 +52,7 @@ void Room2::jump_out_r1(int16 nr) {
_G(gameState)._personHide[P_CHEWY] = false;
clear_prog_ani();
switchRoom(1);
- checkShadow(2, 1);
+ setShadowPalette(2, true);
}
void Room2::electrifyWalkway1() {
diff --git a/engines/chewy/rooms/room52.cpp b/engines/chewy/rooms/room52.cpp
index 31a9425fec0..82f6586bdcd 100644
--- a/engines/chewy/rooms/room52.cpp
+++ b/engines/chewy/rooms/room52.cpp
@@ -53,7 +53,7 @@ void Room52::entry() {
autoMove(2, P_CHEWY);
_G(gameState).R52TuerAuf = false;
_G(det)->hideStaticSpr(4);
- checkShadow(2, 1);
+ setShadowPalette(2, true);
}
}
diff --git a/engines/chewy/rooms/room63.cpp b/engines/chewy/rooms/room63.cpp
index e5619945f18..0de7c58f254 100644
--- a/engines/chewy/rooms/room63.cpp
+++ b/engines/chewy/rooms/room63.cpp
@@ -137,7 +137,7 @@ void Room63::bork_platt() {
flic_cut(FCUT_081);
flic_cut(FCUT_082);
_G(gameState)._personHide[P_CHEWY] = false;
- checkShadow(4, 1);
+ setShadowPalette(4, true);
_G(spieler_mi)[P_CHEWY].Mode = true;
autoMove(6, P_CHEWY);
_G(spieler_mi)[P_CHEWY].Mode = false;
diff --git a/engines/chewy/sprite.cpp b/engines/chewy/sprite.cpp
index 9cfb51da073..1ff46c0105d 100644
--- a/engines/chewy/sprite.cpp
+++ b/engines/chewy/sprite.cpp
@@ -324,7 +324,7 @@ void setPersonPos(int16 x, int16 y, int16 personNr, int16 direction) {
_G(atds)->set_split_win(tmpNr, x1, y1);
if (!_G(flags).ExitMov && personNr == P_CHEWY) {
const int16 paletteId = _G(barriers)->getBarrierId(x + _G(spieler_mi)[personNr].HotX, y + _G(spieler_mi)[personNr].HotY);
- checkShadow(paletteId, 1);
+ setShadowPalette(paletteId, true);
}
}
@@ -795,7 +795,7 @@ void mov_objekt(ObjMov *om, MovInfo *mi) {
tmpy = 1;
}
if (mi->Id == CHEWY_OBJ)
- checkShadow(u_index, 1);
+ setShadowPalette(u_index, true);
if (abs(om->Xypos[1] - mi->XyzEnd[1]) <= abs(tmpy)) {
om->Count = 0;
@@ -832,7 +832,7 @@ void mov_objekt(ObjMov *om, MovInfo *mi) {
tmpx = 1;
}
if (mi->Id == CHEWY_OBJ)
- checkShadow(u_index, 1);
+ setShadowPalette(u_index, true);
if (abs(om->Xypos[0] - mi->XyzEnd[0]) <= abs(tmpx)) {
om->Count = 0;
@@ -864,7 +864,7 @@ void mov_objekt(ObjMov *om, MovInfo *mi) {
}
} else {
if (mi->Id == CHEWY_OBJ)
- checkShadow(u_index, 1);
+ setShadowPalette(u_index, true);
om->Xypos[0] += tmpx;
om->Xypos[1] += tmpy;
om->Xypos[2] += tmpz;
@@ -889,7 +889,7 @@ void mov_objekt(ObjMov *om, MovInfo *mi) {
if (mi->Id == CHEWY_OBJ) {
u_index = _G(barriers)->getBarrierId(om->Xypos[0] + mi->HotX,
om->Xypos[1] + mi->HotY);
- checkShadow(u_index, 1);
+ setShadowPalette(u_index, true);
}
}
if (mi->Id == CHEWY_OBJ) {
Commit: cb8ee02595e6a703afcf418b6e70cf754570b99c
https://github.com/scummvm/scummvm/commit/cb8ee02595e6a703afcf418b6e70cf754570b99c
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2022-07-01T20:06:56+03:00
Commit Message:
CHEWY: Variable renaming
Changed paths:
engines/chewy/globals.h
engines/chewy/main.cpp
engines/chewy/r_event.cpp
diff --git a/engines/chewy/globals.h b/engines/chewy/globals.h
index 0b7278e6d63..0e8c2040d45 100644
--- a/engines/chewy/globals.h
+++ b/engines/chewy/globals.h
@@ -323,7 +323,7 @@ void kb_mov(int16 mode);
void kb_cur_action(int16 key, int16 mode);
void mouseAction();
-void evaluateObj(int16 testNr, int16 txt_nr);
+void evaluateObj(int16 objectId, int16 txt_nr);
void swap_if_l(int16 *x1, int16 *x2);
@@ -417,7 +417,7 @@ void handleDialogCloseupMenu();
void stopDialogCloseupDialog();
-void play_scene_ani(int16 nr, int16 mode);
+void play_scene_ani(int16 nr, int16 direction);
void timer_action(int16 t_nr);
diff --git a/engines/chewy/main.cpp b/engines/chewy/main.cpp
index ec67eaeb99b..fd7450b5c38 100644
--- a/engines/chewy/main.cpp
+++ b/engines/chewy/main.cpp
@@ -815,28 +815,28 @@ void mouseAction() {
}
}
-void evaluateObj(int16 testNr, int16 mode) {
- int16 ani_nr;
+void evaluateObj(int16 objectId, int16 mode) {
+ int16 animationId;
int16 txt_nr;
- int16 tmp;
+ int16 direction;
int16 ret = NO_ACTION;
int16 action_flag = false;
switch (mode) {
case INVENTORY_NORMAL:
- ret = _G(obj)->action_iib_iib(_G(cur)->getInventoryCursor(), testNr);
+ ret = _G(obj)->action_iib_iib(_G(cur)->getInventoryCursor(), objectId);
if (ret != NO_ACTION) {
hideCur();
if (_G(flags).InventMenu == false) {
if (_G(gameState).room_m_obj[_G(cur)->getInventoryCursor()].AutoMov != 255) {
_G(mouseLeftClick) = false;
- autoMove(_G(gameState).room_m_obj[testNr].AutoMov, P_CHEWY);
+ autoMove(_G(gameState).room_m_obj[objectId].AutoMov, P_CHEWY);
}
- txt_nr = _G(obj)->iib_txt_nr(testNr);
+ txt_nr = _G(obj)->iib_txt_nr(objectId);
Dialogs::Inventory::look_screen(INVENTORY_NORMAL, txt_nr);
- if (_G(gameState).room_m_obj[testNr].AniFlag != 255) {
- _G(gameState)._personHide[P_CHEWY] = _G(gameState).room_m_obj[testNr].HeldHide;
- play_scene_ani(_G(gameState).room_m_obj[testNr].AniFlag, ANI_FRONT);
+ if (_G(gameState).room_m_obj[objectId].AniFlag != 255) {
+ _G(gameState)._personHide[P_CHEWY] = _G(gameState).room_m_obj[objectId].HeldHide;
+ play_scene_ani(_G(gameState).room_m_obj[objectId].AniFlag, ANI_FRONT);
_G(gameState)._personHide[P_CHEWY] = false;
}
}
@@ -845,34 +845,34 @@ void evaluateObj(int16 testNr, int16 mode) {
break;
case INVENTORY_STATIC:
- ret = _G(obj)->action_iib_sib(_G(cur)->getInventoryCursor(), testNr);
+ ret = _G(obj)->action_iib_sib(_G(cur)->getInventoryCursor(), objectId);
if (ret != NO_ACTION) {
_G(mouseLeftClick) = false;
hideCur();
if (_G(gameState).room_m_obj[_G(cur)->getInventoryCursor()].AutoMov != 255) {
- autoMove(_G(gameState).room_s_obj[testNr].AutoMov, P_CHEWY);
+ autoMove(_G(gameState).room_s_obj[objectId].AutoMov, P_CHEWY);
}
- txt_nr = _G(obj)->sib_txt_nr(testNr);
+ txt_nr = _G(obj)->sib_txt_nr(objectId);
Dialogs::Inventory::look_screen(INVENTORY_STATIC, txt_nr);
- if (_G(gameState).room_s_obj[testNr].AniFlag != 255) {
- _G(gameState)._personHide[P_CHEWY] = _G(gameState).room_s_obj[testNr].HeldHide;
- tmp = getAniDirection((int16)_G(gameState).room_s_obj[testNr].ZustandAk);
- ani_nr = _G(gameState).room_s_obj[testNr].AniFlag;
-
- if (ani_nr >= 150) {
- start_spz_wait(ani_nr - 150, 1, false, P_CHEWY);
- ani_nr = -1;
- } else if (ani_nr >= 100) {
- ani_nr -= 100;
- _G(obj)->calc_static_detail(testNr);
+ if (_G(gameState).room_s_obj[objectId].AniFlag != 255) {
+ _G(gameState)._personHide[P_CHEWY] = _G(gameState).room_s_obj[objectId].HeldHide;
+ direction = getAniDirection((int16)_G(gameState).room_s_obj[objectId].ZustandAk);
+ animationId = _G(gameState).room_s_obj[objectId].AniFlag;
+
+ if (animationId >= 150) {
+ start_spz_wait(animationId - 150, 1, false, P_CHEWY);
+ animationId = -1;
+ } else if (animationId >= 100) {
+ animationId -= 100;
+ _G(obj)->calc_static_detail(objectId);
}
- if (ani_nr != -1)
- play_scene_ani(ani_nr, tmp);
+ if (animationId != -1)
+ play_scene_ani(animationId, direction);
_G(gameState)._personHide[P_CHEWY] = false;
}
_G(menu_item_vorwahl) = CUR_WALK;
showCur();
- sib_event_inv(testNr);
+ sib_event_inv(objectId);
if (!_G(cur)->usingInventoryCursor()) {
_G(menu_item) = _G(menu_item_vorwahl);
@@ -883,41 +883,41 @@ void evaluateObj(int16 testNr, int16 mode) {
break;
case STATIC_USE:
- ret = _G(obj)->calc_static_use(testNr);
+ ret = _G(obj)->calc_static_use(objectId);
if (ret == OBJECT_1) {
_G(mouseLeftClick) = false;
hideCur();
- if (_G(gameState).room_s_obj[testNr].AutoMov != 255) {
+ if (_G(gameState).room_s_obj[objectId].AutoMov != 255) {
- autoMove(_G(gameState).room_s_obj[testNr].AutoMov, P_CHEWY);
+ autoMove(_G(gameState).room_s_obj[objectId].AutoMov, P_CHEWY);
}
- txt_nr = _G(obj)->sib_txt_nr(testNr);
+ txt_nr = _G(obj)->sib_txt_nr(objectId);
Dialogs::Inventory::look_screen(INVENTORY_STATIC, txt_nr);
- if (_G(gameState).room_s_obj[testNr].AniFlag != 255) {
- _G(gameState)._personHide[P_CHEWY] = _G(gameState).room_s_obj[testNr].HeldHide;
- tmp = getAniDirection((int16)_G(gameState).room_s_obj[testNr].ZustandAk);
-
- ani_nr = _G(gameState).room_s_obj[testNr].AniFlag;
-
- if (ani_nr >= 150) {
- start_spz_wait(ani_nr - 150, 1, false, P_CHEWY);
- ani_nr = -1;
- } else if (ani_nr >= 100) {
- ani_nr -= 100;
- _G(obj)->calc_static_detail(testNr);
+ if (_G(gameState).room_s_obj[objectId].AniFlag != 255) {
+ _G(gameState)._personHide[P_CHEWY] = _G(gameState).room_s_obj[objectId].HeldHide;
+ direction = getAniDirection((int16)_G(gameState).room_s_obj[objectId].ZustandAk);
+
+ animationId = _G(gameState).room_s_obj[objectId].AniFlag;
+
+ if (animationId >= 150) {
+ start_spz_wait(animationId - 150, 1, false, P_CHEWY);
+ animationId = -1;
+ } else if (animationId >= 100) {
+ animationId -= 100;
+ _G(obj)->calc_static_detail(objectId);
}
- if (ani_nr != -1)
- play_scene_ani(ani_nr, tmp);
+ if (animationId != -1)
+ play_scene_ani(animationId, direction);
_G(gameState)._personHide[P_CHEWY] = false;
}
- if (_G(gameState).room_s_obj[testNr].InvNr != -1) {
- invent_2_slot(_G(gameState).room_s_obj[testNr].InvNr);
+ if (_G(gameState).room_s_obj[objectId].InvNr != -1) {
+ invent_2_slot(_G(gameState).room_s_obj[objectId].InvNr);
action_flag = true;
}
_G(menu_item_vorwahl) = CUR_WALK;
showCur();
- int16 sib_ret = sib_event_no_inv(testNr);
+ int16 sib_ret = sib_event_no_inv(objectId);
_G(obj)->calc_all_static_detail();
@@ -931,43 +931,43 @@ void evaluateObj(int16 testNr, int16 mode) {
} else if (ret == SIB_GET_INV) {
_G(mouseLeftClick) = false;
hideCur();
- if (_G(gameState).room_s_obj[testNr].AutoMov != 255) {
- autoMove(_G(gameState).room_s_obj[testNr].AutoMov, P_CHEWY);
+ if (_G(gameState).room_s_obj[objectId].AutoMov != 255) {
+ autoMove(_G(gameState).room_s_obj[objectId].AutoMov, P_CHEWY);
}
- txt_nr = _G(obj)->sib_txt_nr(testNr);
+ txt_nr = _G(obj)->sib_txt_nr(objectId);
Dialogs::Inventory::look_screen(INVENTORY_STATIC, txt_nr);
- if (_G(gameState).room_s_obj[testNr].AniFlag != 255) {
- _G(gameState)._personHide[P_CHEWY] = _G(gameState).room_s_obj[testNr].HeldHide;
- tmp = getAniDirection((int16)_G(gameState).room_s_obj[testNr].ZustandAk);
-
- ani_nr = _G(gameState).room_s_obj[testNr].AniFlag;
-
- if (ani_nr >= 150) {
- start_spz_wait(ani_nr - 150, 1, false, P_CHEWY);
- ani_nr = -1;
- } else if (ani_nr >= 100) {
- ani_nr -= 100;
- _G(obj)->calc_static_detail(testNr);
+ if (_G(gameState).room_s_obj[objectId].AniFlag != 255) {
+ _G(gameState)._personHide[P_CHEWY] = _G(gameState).room_s_obj[objectId].HeldHide;
+ direction = getAniDirection((int16)_G(gameState).room_s_obj[objectId].ZustandAk);
+
+ animationId = _G(gameState).room_s_obj[objectId].AniFlag;
+
+ if (animationId >= 150) {
+ start_spz_wait(animationId - 150, 1, false, P_CHEWY);
+ animationId = -1;
+ } else if (animationId >= 100) {
+ animationId -= 100;
+ _G(obj)->calc_static_detail(objectId);
}
- if (ani_nr != -1) {
- play_scene_ani(ani_nr, tmp);
+ if (animationId != -1) {
+ play_scene_ani(animationId, direction);
}
_G(gameState)._personHide[P_CHEWY] = false;
}
- if (_G(gameState).room_s_obj[testNr].InvNr != -1)
- invent_2_slot(_G(gameState).room_s_obj[testNr].InvNr);
- _G(obj)->calc_rsi_flip_flop(testNr);
+ if (_G(gameState).room_s_obj[objectId].InvNr != -1)
+ invent_2_slot(_G(gameState).room_s_obj[objectId].InvNr);
+ _G(obj)->calc_rsi_flip_flop(objectId);
_G(menu_item_vorwahl) = CUR_WALK;
showCur();
- sib_event_no_inv(testNr);
+ sib_event_no_inv(objectId);
_G(obj)->calc_all_static_detail();
if (!_G(cur)->usingInventoryCursor()) {
_G(menu_item) = _G(menu_item_vorwahl);
cursorChoice(_G(menu_item));
}
} else if (ret == NO_ACTION) {
- txt_nr = _G(obj)->sib_txt_nr(testNr);
+ txt_nr = _G(obj)->sib_txt_nr(objectId);
Dialogs::Inventory::look_screen(INVENTORY_STATIC, txt_nr);
}
break;
@@ -980,14 +980,14 @@ void evaluateObj(int16 testNr, int16 mode) {
case OBJECT_1:
case OBJECT_2:
if (mode == INVENTORY_NORMAL)
- calc_inv_use_txt(testNr);
+ calc_inv_use_txt(objectId);
break;
case NO_ACTION:
if (mode == STATIC_USE && _G(flags).StaticUseTxt == true)
_G(flags).StaticUseTxt = false;
else if (mode != STATIC_USE)
- calc_inv_no_use(testNr, mode);
+ calc_inv_no_use(objectId, mode);
break;
diff --git a/engines/chewy/r_event.cpp b/engines/chewy/r_event.cpp
index bf5c20f8c18..fc7d1d45a25 100644
--- a/engines/chewy/r_event.cpp
+++ b/engines/chewy/r_event.cpp
@@ -32,7 +32,7 @@
namespace Chewy {
-void play_scene_ani(int16 nr, int16 mode) {
+void play_scene_ani(int16 nr, int16 direction) {
#define ROOM_1_1 101
#define ROOM_1_2 102
#define ROOM_1_5 105
@@ -61,7 +61,7 @@ void play_scene_ani(int16 nr, int16 mode) {
break;
}
- startSetAILWait(nr, 1, mode);
+ startSetAILWait(nr, 1, direction);
switch (r_nr) {
case ROOM_1_1:
Commit: 2c4ce77c66eb9aee3fce6ac5c2e9e1ba18bd563f
https://github.com/scummvm/scummvm/commit/2c4ce77c66eb9aee3fce6ac5c2e9e1ba18bd563f
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2022-07-01T20:06:57+03:00
Commit Message:
CHEWY: Get rid of cur_hide_flag
Changed paths:
engines/chewy/globals.h
engines/chewy/main.cpp
engines/chewy/r_event.cpp
engines/chewy/room.cpp
engines/chewy/rooms/room00.cpp
engines/chewy/rooms/room14.cpp
engines/chewy/rooms/room37.cpp
engines/chewy/rooms/room62.cpp
engines/chewy/rooms/room63.cpp
engines/chewy/rooms/room65.cpp
engines/chewy/rooms/room66.cpp
engines/chewy/rooms/room68.cpp
engines/chewy/rooms/room69.cpp
engines/chewy/rooms/room75.cpp
engines/chewy/t_event.cpp
diff --git a/engines/chewy/globals.h b/engines/chewy/globals.h
index 0e8c2040d45..04b9f359901 100644
--- a/engines/chewy/globals.h
+++ b/engines/chewy/globals.h
@@ -86,7 +86,6 @@ public:
int16 _pfeil_ani = 0;
int16 _pfeil_delay = 0;
- int16 _cur_hide_flag = 0;
int16 _auto_p_nr = 0;
int16 _zoom_horizont = 0;
diff --git a/engines/chewy/main.cpp b/engines/chewy/main.cpp
index fd7450b5c38..0ff8437b362 100644
--- a/engines/chewy/main.cpp
+++ b/engines/chewy/main.cpp
@@ -168,12 +168,9 @@ void cursorChoice(int16 nr) {
}
void hideCur() {
- if (!_G(cur_hide_flag)) {
- _G(cur_hide_flag) = true;
- _G(flags).ShowAtsInvTxt = false;
- _G(cur)->hideCursor();
- _G(flags).CursorStatus = false;
- }
+ _G(flags).ShowAtsInvTxt = false;
+ _G(cur)->hideCursor();
+ _G(flags).CursorStatus = false;
}
void showCur() {
@@ -601,7 +598,6 @@ void setupScreen(SetupScreenMode mode) {
if (g_engine->_showWalkAreas)
showWalkAreas();
- _G(cur_hide_flag) = false;
int16 *ScrXy = (int16 *)_G(ablage)[_G(room_blk).AkAblage];
if (!_G(menu_display))
calc_scroll(_G(moveState)[P_CHEWY].Xypos[0] + _G(spieler_mi)[P_CHEWY].HotX,
@@ -1650,7 +1646,6 @@ void calc_ausgang(int16 x, int16 y) {
_G(menu_item) = CUR_DISK;
cursorChoice(CUR_DISK);
setupScreen(DO_SETUP);
- _G(cur_hide_flag) = true;
exit_room(nr);
_G(gameState)._personRoomNr[P_CHEWY] = _G(gameState).room_e_obj[nr].Exit;
_G(room)->loadRoom(&_G(room_blk), _G(gameState)._personRoomNr[P_CHEWY], &_G(gameState));
diff --git a/engines/chewy/r_event.cpp b/engines/chewy/r_event.cpp
index fc7d1d45a25..8e29c99277b 100644
--- a/engines/chewy/r_event.cpp
+++ b/engines/chewy/r_event.cpp
@@ -194,7 +194,6 @@ void enter_room(int16 eib_nr) {
_G(flags).AutoAniPlay = false;
_G(SetUpScreenFunc) = nullptr;
_G(HowardMov) = 0;
- _G(cur_hide_flag) = false;
#define ENTRY(NUM) case NUM: Room##NUM::entry(); break
#define ENTRY_NR(NUM) case NUM: Room##NUM::entry(eib_nr); break
@@ -1129,7 +1128,6 @@ int16 sib_event_no_inv(int16 sib_nr) {
case 94:
_G(det)->showStaticSpr(7);
- _G(cur_hide_flag) = false;
hideCur();
startAadWait(406);
if (_G(gameState)._personRoomNr[P_HOWARD] == 66)
@@ -1266,7 +1264,6 @@ void sib_event_inv(int16 sib_nr) {
break;
case SIB_CART_FACH_R18:
- _G(cur_hide_flag) = false;
start_spz_wait(CH_LGET_O, 1, false, P_CHEWY);
_G(gameState).R18CartFach = true;
delInventory(_G(cur)->getInventoryCursor());
diff --git a/engines/chewy/room.cpp b/engines/chewy/room.cpp
index e5dea3dfd23..b5ed4bd7ef3 100644
--- a/engines/chewy/room.cpp
+++ b/engines/chewy/room.cpp
@@ -103,7 +103,6 @@ static const uint8 CHEWY_JM_PHASES[8][8] = {
static const uint8 CHEWY_JM_PHASE_NR[] = {8, 8, 8, 8, 8, 8, 8, 8};
void JungleRoom::topEntry() {
- _G(cur_hide_flag) = 0;
hideCur();
setPersonPos(236, 110, P_CHEWY, P_RIGHT);
setPersonPos(263, 85, P_NICHELLE, P_RIGHT);
diff --git a/engines/chewy/rooms/room00.cpp b/engines/chewy/rooms/room00.cpp
index 57a7686b65d..e0ede5e1336 100644
--- a/engines/chewy/rooms/room00.cpp
+++ b/engines/chewy/rooms/room00.cpp
@@ -53,7 +53,6 @@ void Room0::entry() {
if (!_G(flags).LoadGame) {
setPersonPos(150, 100, P_CHEWY, P_RIGHT);
- _G(cur_hide_flag) = 0;
hideCur();
_G(timer_nr)[0] = _G(room)->set_timer(255, 3);
diff --git a/engines/chewy/rooms/room14.cpp b/engines/chewy/rooms/room14.cpp
index 57418e6d4de..a5766c336fb 100644
--- a/engines/chewy/rooms/room14.cpp
+++ b/engines/chewy/rooms/room14.cpp
@@ -153,7 +153,6 @@ void Room14::feuer() {
int16 waffe = false;
int16 tmp = _G(cur)->getInventoryCursor();
_G(gameState).R14Feuer = true;
- _G(cur_hide_flag) = false;
_G(flags).AutoAniPlay = true;
hideCur();
diff --git a/engines/chewy/rooms/room37.cpp b/engines/chewy/rooms/room37.cpp
index 743e26b9b58..5b4eef10626 100644
--- a/engines/chewy/rooms/room37.cpp
+++ b/engines/chewy/rooms/room37.cpp
@@ -242,7 +242,6 @@ void Room37::talk_hahn() {
showCur();
if (!_G(gameState).R37TransHahn) {
- _G(cur_hide_flag) = 0;
hideCur();
startAadWait(145);
showCur();
diff --git a/engines/chewy/rooms/room62.cpp b/engines/chewy/rooms/room62.cpp
index 06c0031f607..8859da9d6f7 100644
--- a/engines/chewy/rooms/room62.cpp
+++ b/engines/chewy/rooms/room62.cpp
@@ -35,7 +35,6 @@ void Room62::entry() {
_G(gameState).room_e_obj[91].Attribut = 255;
if (!_G(gameState).R62FirstEntry) {
_G(gameState).R62TShow = false;
- _G(cur_hide_flag) = false;
hideCur();
_G(gameState).R62FirstEntry = true;
setPersonPos(49, 113, P_HOWARD, P_RIGHT);
diff --git a/engines/chewy/rooms/room63.cpp b/engines/chewy/rooms/room63.cpp
index 0de7c58f254..392a8072bd6 100644
--- a/engines/chewy/rooms/room63.cpp
+++ b/engines/chewy/rooms/room63.cpp
@@ -37,7 +37,6 @@ void Room63::entry() {
if (_G(gameState).R63FxMannWeg)
_G(det)->del_static_ani(5);
if (!_G(gameState).R63Uhr) {
- _G(cur_hide_flag) = false;
hideCur();
_G(det)->startDetail(12, 255, ANI_FRONT);
_G(det)->startDetail(10, 255, ANI_FRONT);
@@ -295,7 +294,6 @@ int16 Room63::use_aschenbecher() {
int16 action_ret = false;
if (isCurInventory(ASCHE_INV)) {
action_ret = true;
- _G(cur_hide_flag) = false;
hideCur();
if (_G(gameState).R63Uhr) {
if (_G(gameState).R63FxMannWeg) {
diff --git a/engines/chewy/rooms/room65.cpp b/engines/chewy/rooms/room65.cpp
index df2c68dcf34..4319ecb2549 100644
--- a/engines/chewy/rooms/room65.cpp
+++ b/engines/chewy/rooms/room65.cpp
@@ -46,7 +46,6 @@ void Room65::entry() {
_G(moveState)[P_HOWARD].Xypos[0] = 150;
_G(moveState)[P_HOWARD].Xypos[1] = 10;
if (_G(gameState).PersonDia[P_HOWARD] < 10000) {
- _G(cur_hide_flag) = false;
hideCur();
startAadWait(_G(gameState).PersonDia[P_HOWARD]);
showCur();
diff --git a/engines/chewy/rooms/room66.cpp b/engines/chewy/rooms/room66.cpp
index 554df23fe34..5f623aaa068 100644
--- a/engines/chewy/rooms/room66.cpp
+++ b/engines/chewy/rooms/room66.cpp
@@ -42,7 +42,6 @@ void Room66::entry(int16 eib_nr) {
if (!_G(gameState).flags26_4) {
_G(det)->showStaticSpr(4);
_G(det)->showStaticSpr(8);
- _G(cur_hide_flag) = false;
hideCur();
_G(gameState).flags26_4 = true;
_G(gameState).scrollx = 476;
@@ -193,7 +192,6 @@ int Room66::proc7() {
}
proc8(7, 2, 3, 411 + (_G(gameState).flags26_10 ? 1 : 0));
- _G(cur_hide_flag) = 0;
hideCur();
if (_G(gameState).flags26_20)
startSetAILWait(4, 1, ANI_FRONT);
diff --git a/engines/chewy/rooms/room68.cpp b/engines/chewy/rooms/room68.cpp
index f8599050639..c0b797cadec 100644
--- a/engines/chewy/rooms/room68.cpp
+++ b/engines/chewy/rooms/room68.cpp
@@ -190,7 +190,6 @@ int16 Room68::use_indigo() {
auto_scroll(78, 0);
delInventory(_G(cur)->getInventoryCursor());
talk_indigo(394);
- _G(cur_hide_flag) = false;
hideCur();
_G(room)->set_timer_status(8, TIMER_STOP);
_G(det)->del_static_ani(8);
@@ -199,7 +198,6 @@ int16 Room68::use_indigo() {
startSetAILWait(25, 1, ANI_FRONT);
_G(det)->set_static_ani(12, -1);
talk_indigo(398);
- _G(cur_hide_flag) = false;
hideCur();
_G(room)->set_timer_status(8, TIMER_STOP);
_G(det)->del_static_ani(8);
@@ -232,7 +230,6 @@ void Room68::talk_keeper() {
int16 y = _G(moveState)[P_CHEWY].Xypos[1] - _G(gameState).scrolly;
_G(atds)->set_split_win(3, x, y);
startDialogCloseupWait(20);
- _G(cur_hide_flag) = false;
hideCur();
_G(det)->del_static_ani(16);
startSetAILWait(15, 1, ANI_BACK);
diff --git a/engines/chewy/rooms/room69.cpp b/engines/chewy/rooms/room69.cpp
index 474f0aa5244..4bd1dc5e783 100644
--- a/engines/chewy/rooms/room69.cpp
+++ b/engines/chewy/rooms/room69.cpp
@@ -49,7 +49,6 @@ void Room69::entry(int16 eib_nr) {
if (_G(flags).LoadGame)
return;
- _G(cur_hide_flag) = false;
hideCur();
if (eib_nr == 102)
diff --git a/engines/chewy/rooms/room75.cpp b/engines/chewy/rooms/room75.cpp
index 4de41f77138..16fdf9e072a 100644
--- a/engines/chewy/rooms/room75.cpp
+++ b/engines/chewy/rooms/room75.cpp
@@ -84,7 +84,6 @@ void Room75::xit(int16 eib_nr) {
}
void Room75::proc1() {
- _G(cur_hide_flag) = 0;
hideCur();
setPersonPos(363, 110, P_CHEWY, P_LEFT);
setPersonPos(322, 85, P_NICHELLE, P_RIGHT);
diff --git a/engines/chewy/t_event.cpp b/engines/chewy/t_event.cpp
index e1fd03c314f..ad7ef1ca3d8 100644
--- a/engines/chewy/t_event.cpp
+++ b/engines/chewy/t_event.cpp
@@ -2761,7 +2761,6 @@ void calc_person_dia(int16 p_nr) {
} else if (p_nr == P_NICHELLE) {
if (_G(gameState).PersonDia[P_NICHELLE] < 10000) {
- _G(cur_hide_flag) = false;
hideCur();
startAadWait(_G(gameState).PersonDia[P_NICHELLE]);
_G(stopAutoMove)[P_NICHELLE] = _G(gameState).PersonDiaRoom[P_NICHELLE];
Commit: 1e50b502cae3679cf32fa00a083f7f13282bda71
https://github.com/scummvm/scummvm/commit/1e50b502cae3679cf32fa00a083f7f13282bda71
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2022-07-01T20:06:57+03:00
Commit Message:
CHEWY: Remove the CursorStatus flag
Changed paths:
engines/chewy/cursor.cpp
engines/chewy/cursor.h
engines/chewy/globals.h
engines/chewy/inits.cpp
engines/chewy/main.cpp
engines/chewy/types.h
diff --git a/engines/chewy/cursor.cpp b/engines/chewy/cursor.cpp
index 29a8df7bc67..18c8501b9cc 100644
--- a/engines/chewy/cursor.cpp
+++ b/engines/chewy/cursor.cpp
@@ -97,6 +97,10 @@ void Cursor::hideCursor() {
CursorMan.showMouse(false);
}
+bool Cursor::isCursorVisible() const {
+ return CursorMan.isVisible();
+}
+
void Cursor::setAnimation(uint8 start, uint8 end, int16 delay) {
_aniCount = _animStart = start;
_animEnd = end;
diff --git a/engines/chewy/cursor.h b/engines/chewy/cursor.h
index 15faf2e38c3..e2cec3016f9 100644
--- a/engines/chewy/cursor.h
+++ b/engines/chewy/cursor.h
@@ -41,6 +41,7 @@ public:
void updateCursor();
void showCursor();
void hideCursor();
+ bool isCursorVisible() const;
void setAnimation(uint8 start, uint8 end, int16 delay);
void setCustomCursor(byte *data, uint16 width, uint16 height);
void setCustomRoomCursor(byte *roomSprite);
diff --git a/engines/chewy/globals.h b/engines/chewy/globals.h
index 04b9f359901..66ef944165a 100644
--- a/engines/chewy/globals.h
+++ b/engines/chewy/globals.h
@@ -204,7 +204,7 @@ public:
MouseInfo _minfo;
RaumBlk _room_blk;
Flags _flags = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+ 0, 0, 0, 0, 0, 0, 0, 0 };
CustomInfo _Ci;
GotoPkt _gpkt;
diff --git a/engines/chewy/inits.cpp b/engines/chewy/inits.cpp
index 5527cd06b93..9a2a3abc621 100644
--- a/engines/chewy/inits.cpp
+++ b/engines/chewy/inits.cpp
@@ -133,7 +133,6 @@ void var_init() {
_G(pfeil_delay) = 0;
_G(pfeil_ani) = 0;
_G(timer_action_ctr) = 0;
- _G(flags).CursorStatus = true;
_G(savegameFlag) = false;
}
diff --git a/engines/chewy/main.cpp b/engines/chewy/main.cpp
index 0ff8437b362..62e5bbcf1c6 100644
--- a/engines/chewy/main.cpp
+++ b/engines/chewy/main.cpp
@@ -170,13 +170,11 @@ void cursorChoice(int16 nr) {
void hideCur() {
_G(flags).ShowAtsInvTxt = false;
_G(cur)->hideCursor();
- _G(flags).CursorStatus = false;
}
void showCur() {
_G(flags).ShowAtsInvTxt = true;
_G(cur)->showCursor();
- _G(flags).CursorStatus = true;
}
void menuEntry() {
@@ -540,7 +538,7 @@ void setupScreen(SetupScreenMode mode) {
if (_G(cur_display) && mode == DO_SETUP) {
_G(cur)->updateCursor();
- if (_G(cur)->usingInventoryCursor() && _G(flags).CursorStatus)
+ if (_G(cur)->usingInventoryCursor() && _G(cur)->isCursorVisible())
_G(out)->spriteSet(
_G(cur)->getCursorSprite(),
g_events->_mousePos.x,
diff --git a/engines/chewy/types.h b/engines/chewy/types.h
index 2ba3e769f76..81662512ed6 100644
--- a/engines/chewy/types.h
+++ b/engines/chewy/types.h
@@ -580,8 +580,6 @@ struct Flags {
uint16 NoDiaBox : 1;
uint16 NoEndPosMovObj: 1;
uint16 SavePersonRnr : 1;
-
- uint16 CursorStatus : 1;
};
extern void *MALLOC(size_t size);
Commit: a0e189c36236d9073127d3a51a6735e2eb8bf241
https://github.com/scummvm/scummvm/commit/a0e189c36236d9073127d3a51a6735e2eb8bf241
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2022-07-01T20:06:57+03:00
Commit Message:
CHEWY: Remove useless check
Changed paths:
engines/chewy/rooms/room54.cpp
diff --git a/engines/chewy/rooms/room54.cpp b/engines/chewy/rooms/room54.cpp
index 7caf214c5cf..d5106d73fe5 100644
--- a/engines/chewy/rooms/room54.cpp
+++ b/engines/chewy/rooms/room54.cpp
@@ -118,8 +118,7 @@ void Room54::setup_func() {
}
}
- if (!_G(flags).SaveMenu)
- goAutoXy(x, y, P_HOWARD, ANI_GO);
+ goAutoXy(x, y, P_HOWARD, ANI_GO);
}
}
}
Commit: 8627246afd99a3d6b9d3a23a7b072e7efb0b63a9
https://github.com/scummvm/scummvm/commit/8627246afd99a3d6b9d3a23a7b072e7efb0b63a9
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2022-07-01T20:06:58+03:00
Commit Message:
CHEWY: Variable renaming
Changed paths:
engines/chewy/dialogs/inventory.cpp
diff --git a/engines/chewy/dialogs/inventory.cpp b/engines/chewy/dialogs/inventory.cpp
index 7f4f09acf24..63ed3169b03 100644
--- a/engines/chewy/dialogs/inventory.cpp
+++ b/engines/chewy/dialogs/inventory.cpp
@@ -314,14 +314,14 @@ void Inventory::menu() {
}
ret_look = -1;
- int16 abfrage = _G(in)->getSwitchCode();
+ int16 keyCode = _G(in)->getSwitchCode();
// The original hid the cursor here
if (taste_flag) {
- if (abfrage != taste_flag)
+ if (keyCode != taste_flag)
taste_flag = 0;
} else {
- switch (abfrage) {
+ switch (keyCode) {
case Common::KEYCODE_F1:
keyVal = Common::KEYCODE_F1;
break;
Commit: 6131654e3c43e228cc4233997b3d0593d8fdac01
https://github.com/scummvm/scummvm/commit/6131654e3c43e228cc4233997b3d0593d8fdac01
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2022-07-01T20:06:58+03:00
Commit Message:
CHEWY: Get rid of the cur_display global. Some cleanup
Changed paths:
engines/chewy/dialogs/main_menu.cpp
engines/chewy/globals.h
engines/chewy/main.cpp
engines/chewy/menus.cpp
engines/chewy/rooms/room04.cpp
diff --git a/engines/chewy/dialogs/main_menu.cpp b/engines/chewy/dialogs/main_menu.cpp
index 4236e75022c..a7b53720fcb 100644
--- a/engines/chewy/dialogs/main_menu.cpp
+++ b/engines/chewy/dialogs/main_menu.cpp
@@ -208,7 +208,6 @@ bool MainMenu::loadGame() {
int result = Files::execute(false);
cursorChoice((_G(cur)->usingInventoryCursor() && _G(menu_item) == CUR_USE) ? 8 : 0);
- _G(cur_display) = true;
restorePersonAni();
_G(flags).SaveMenu = false;
@@ -223,7 +222,6 @@ bool MainMenu::loadGame() {
void MainMenu::playGame() {
// unused1 = 0;
_G(inv_disp_ok) = false;
- _G(cur_display) = true;
_G(tmp_menu_item) = 0;
_G(mouseLeftClick) = false;
g_events->_kbInfo._scanCode = Common::KEYCODE_INVALID;
diff --git a/engines/chewy/globals.h b/engines/chewy/globals.h
index 66ef944165a..9a5f8e85ca2 100644
--- a/engines/chewy/globals.h
+++ b/engines/chewy/globals.h
@@ -93,7 +93,6 @@ public:
int16 _auto_obj = 0;
- bool _cur_display = false;
int16 _mouseLeftClick = 0;
Common::String _calc_inv_text_str1, _calc_inv_text_str2;
bool _stopAutoMove[3] = { false };
diff --git a/engines/chewy/main.cpp b/engines/chewy/main.cpp
index 62e5bbcf1c6..1a5e98f9f5a 100644
--- a/engines/chewy/main.cpp
+++ b/engines/chewy/main.cpp
@@ -242,7 +242,6 @@ bool mainLoop(int16 mode) {
Dialogs::Inventory::menu();
menuExit();
_G(menu_display) = 0;
- _G(cur_display) = true;
if (!_G(cur)->usingInventoryCursor()) {
_G(menu_item) = _G(tmp_menu_item);
cursorChoice(_G(menu_item));
@@ -268,7 +267,6 @@ bool mainLoop(int16 mode) {
}
if (!(_G(cur)->usingInventoryCursor() && _G(menu_item) == CUR_USE))
cursorChoice(_G(menu_item));
- _G(cur_display) = true;
_G(flags).SaveMenu = false;
_G(cur)->showCursor();
_G(out)->setPointer(_G(workptr));
@@ -282,7 +280,6 @@ bool mainLoop(int16 mode) {
_G(maus_old_x) = g_events->_mousePos.x;
_G(maus_old_y) = g_events->_mousePos.y;
_G(menu_display) = MENU_DISPLAY;
- _G(cur_display) = false;
_G(cur)->move((MOUSE_MENU_MAX_X / 5) * (_G(menu_item)), 100);
} else {
menuExit();
@@ -304,7 +301,6 @@ bool mainLoop(int16 mode) {
Dialogs::Inventory::menu();
menuExit();
_G(menu_display) = 0;
- _G(cur_display) = true;
if (!_G(cur)->usingInventoryCursor()) {
_G(menu_item) = _G(tmp_menu_item);
cursorChoice(_G(menu_item));
@@ -337,7 +333,6 @@ bool mainLoop(int16 mode) {
if (!(_G(cur)->usingInventoryCursor() && _G(menu_item) == CUR_USE))
cursorChoice(_G(tmp_menu_item));
- _G(cur_display) = true;
_G(flags).SaveMenu = false;
_G(cur)->showCursor();
@@ -349,7 +344,6 @@ bool mainLoop(int16 mode) {
menuExit();
_G(cur)->showCursor();
_G(menu_display) = 0;
- _G(cur_display) = true;
_G(cur)->move(_G(maus_old_x), _G(maus_old_y));
g_events->_mousePos.x = _G(maus_old_x);
g_events->_mousePos.y = _G(maus_old_y);
@@ -387,7 +381,6 @@ bool mainLoop(int16 mode) {
if (_G(menu_display) == MENU_HIDE) {
menuExit();
_G(menu_display) = 0;
- _G(cur_display) = true;
_G(cur)->move(_G(maus_old_x), _G(maus_old_y));
g_events->_mousePos.x = _G(maus_old_x);
g_events->_mousePos.y = _G(maus_old_y);
@@ -535,7 +528,7 @@ void setupScreen(SetupScreenMode mode) {
calc_mouse_person(g_events->_mousePos.x, g_events->_mousePos.y);
}
}
- if (_G(cur_display) && mode == DO_SETUP) {
+ if (mode == DO_SETUP) {
_G(cur)->updateCursor();
if (_G(cur)->usingInventoryCursor() && _G(cur)->isCursorVisible())
@@ -776,37 +769,38 @@ void mouseAction() {
}
_G(inv_disp_ok) = false;
}
- if (_G(atds)->aadGetStatus() == -1) {
- if (_G(minfo).button || g_events->_kbInfo._keyCode == Common::KEYCODE_ESCAPE || g_events->_kbInfo._keyCode == Common::KEYCODE_RETURN) {
- if (_G(minfo).button == 2 || g_events->_kbInfo._keyCode == Common::KEYCODE_ESCAPE) {
- if (!_G(flags).mainMouseFlag) {
- g_events->_kbInfo._scanCode = Common::KEYCODE_ESCAPE;
- }
- } else if (_G(minfo).button == 1 || g_events->_kbInfo._keyCode == Common::KEYCODE_RETURN) {
- if (!_G(flags).mainMouseFlag) {
- if (_G(menu_display) == MENU_DISPLAY)
- g_events->_kbInfo._scanCode = Common::KEYCODE_RETURN;
- else if (_G(cur)->usingInventoryCursor()) {
- if (_G(inv_disp_ok)) {
- if (_G(cur)->usingInventoryCursor()) {
- _G(menu_item) = CUR_USE;
- cursorChoice(_G(menu_item));
- _G(cur)->setInventoryCursor(-1);
- } else {
- _G(menu_item) = CUR_USE;
- g_events->_kbInfo._scanCode = Common::KEYCODE_INVALID;
- }
- } else if (!_G(flags).MouseLeft)
- _G(mouseLeftClick) = true;
+ if (_G(atds)->aadGetStatus() != -1)
+ return;
+
+ if (_G(minfo).button || g_events->_kbInfo._keyCode == Common::KEYCODE_ESCAPE || g_events->_kbInfo._keyCode == Common::KEYCODE_RETURN) {
+ if (_G(minfo).button == 2 || g_events->_kbInfo._keyCode == Common::KEYCODE_ESCAPE) {
+ if (!_G(flags).mainMouseFlag) {
+ g_events->_kbInfo._scanCode = Common::KEYCODE_ESCAPE;
+ }
+ } else if (_G(minfo).button == 1 || g_events->_kbInfo._keyCode == Common::KEYCODE_RETURN) {
+ if (!_G(flags).mainMouseFlag) {
+ if (_G(menu_display) == MENU_DISPLAY)
+ g_events->_kbInfo._scanCode = Common::KEYCODE_RETURN;
+ else if (_G(cur)->usingInventoryCursor()) {
+ if (_G(inv_disp_ok)) {
+ if (_G(cur)->usingInventoryCursor()) {
+ _G(menu_item) = CUR_USE;
+ cursorChoice(_G(menu_item));
+ _G(cur)->setInventoryCursor(-1);
+ } else {
+ _G(menu_item) = CUR_USE;
+ g_events->_kbInfo._scanCode = Common::KEYCODE_INVALID;
+ }
} else if (!_G(flags).MouseLeft)
_G(mouseLeftClick) = true;
- }
+ } else if (!_G(flags).MouseLeft)
+ _G(mouseLeftClick) = true;
}
- _G(flags).mainMouseFlag = 1;
- } else
- _G(flags).mainMouseFlag = 0;
- }
+ }
+ _G(flags).mainMouseFlag = 1;
+ } else
+ _G(flags).mainMouseFlag = 0;
}
void evaluateObj(int16 objectId, int16 mode) {
@@ -1545,7 +1539,6 @@ void get_user_key(int16 mode) {
_G(menu_item) = CUR_USE;
Dialogs::Inventory::menu();
_G(menu_display) = 0;
- _G(cur_display) = true;
if (!_G(cur)->usingInventoryCursor()) {
_G(menu_item) = _G(tmp_menu_item);
cursorChoice(_G(menu_item));
diff --git a/engines/chewy/menus.cpp b/engines/chewy/menus.cpp
index ceeb56a1ddd..43ba04996a5 100644
--- a/engines/chewy/menus.cpp
+++ b/engines/chewy/menus.cpp
@@ -267,7 +267,6 @@ void handleDialogCloseupMenu() {
if (_G(atds)->aadGetStatus() == -1 && _G(ads_push) == false &&
_G(flags).NoDiaBox == false) {
- _G(cur_display) = true;
buildMenu(ADS_WIN);
_G(fontMgr)->setFont(_G(font6));
@@ -288,7 +287,6 @@ void handleDialogCloseupMenu() {
case 255:
case Common::KEYCODE_RETURN:
if (curY < _G(ads_item_nr) && curY >= 0 && _G(ads_push) == false) {
- _G(cur_display) = false;
_G(ads_push) = true;
g_events->_mousePos.y = 159;
DialogCloseupNextBlock *an_blk = _G(atds)->dialogCloseupItemChoice(_G(ads_dia_nr), _G(ads_blk_nr), curY);
@@ -319,7 +317,6 @@ void handleDialogCloseupMenu() {
void stopDialogCloseupDialog() {
aadWait(-1);
_G(gameState).DispFlag = _G(ads_tmp_dsp);
- _G(cur_display) = true;
_G(flags).ShowAtsInvTxt = true;
_G(flags).MainInput = true;
_G(flags).DialogCloseup = false;
diff --git a/engines/chewy/rooms/room04.cpp b/engines/chewy/rooms/room04.cpp
index 032d4dddd6a..83cb97b48b0 100644
--- a/engines/chewy/rooms/room04.cpp
+++ b/engines/chewy/rooms/room04.cpp
@@ -52,9 +52,7 @@ int16 Room4::comp_probe() {
cur_2_inventory();
_G(gameState)._personHide[P_CHEWY] = true;
- _G(cur_display) = false;
switchRoom(4);
- _G(cur_display) = true;
bool endLoop = false;
// TODO: The original limited the cursor height to 16 pixels
Commit: 49c1c3737a70532986aff539a0599594b85dc205
https://github.com/scummvm/scummvm/commit/49c1c3737a70532986aff539a0599594b85dc205
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2022-07-01T20:06:59+03:00
Commit Message:
CHEWY: Fix handling of the escape key - bug #13608
Changed paths:
engines/chewy/main.cpp
diff --git a/engines/chewy/main.cpp b/engines/chewy/main.cpp
index 1a5e98f9f5a..629165779c3 100644
--- a/engines/chewy/main.cpp
+++ b/engines/chewy/main.cpp
@@ -775,6 +775,7 @@ void mouseAction() {
if (_G(minfo).button || g_events->_kbInfo._keyCode == Common::KEYCODE_ESCAPE || g_events->_kbInfo._keyCode == Common::KEYCODE_RETURN) {
if (_G(minfo).button == 2 || g_events->_kbInfo._keyCode == Common::KEYCODE_ESCAPE) {
+ g_events->_kbInfo._keyCode = '\0';
if (!_G(flags).mainMouseFlag) {
g_events->_kbInfo._scanCode = Common::KEYCODE_ESCAPE;
}
More information about the Scummvm-git-logs
mailing list