[Scummvm-git-logs] scummvm branch-2-6 -> ce5c575898233fe185b2a3c93e0e4e5f8bc80bd4
bluegr
noreply at scummvm.org
Wed Jul 6 14:32:42 UTC 2022
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
ce5c575898 CHEWY: Fix playing game SFX - bugs #13520, #13633
Commit: ce5c575898233fe185b2a3c93e0e4e5f8bc80bd4
https://github.com/scummvm/scummvm/commit/ce5c575898233fe185b2a3c93e0e4e5f8bc80bd4
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2022-07-06T17:32:26+03:00
Commit Message:
CHEWY: Fix playing game SFX - bugs #13520, #13633
Changed paths:
engines/chewy/defines.h
engines/chewy/detail.cpp
engines/chewy/detail.h
engines/chewy/dialogs/options.cpp
engines/chewy/inits.cpp
engines/chewy/main.cpp
engines/chewy/r_event.cpp
engines/chewy/room.cpp
engines/chewy/rooms/room00.cpp
engines/chewy/rooms/room01.cpp
engines/chewy/rooms/room04.cpp
engines/chewy/rooms/room17.cpp
engines/chewy/rooms/room24.cpp
engines/chewy/rooms/room25.cpp
engines/chewy/rooms/room26.cpp
engines/chewy/rooms/room31.cpp
engines/chewy/rooms/room37.cpp
engines/chewy/rooms/room40.cpp
engines/chewy/rooms/room41.cpp
engines/chewy/rooms/room42.cpp
engines/chewy/rooms/room43.cpp
engines/chewy/rooms/room45.cpp
engines/chewy/rooms/room47.cpp
engines/chewy/rooms/room48.cpp
engines/chewy/rooms/room49.cpp
engines/chewy/rooms/room51.cpp
engines/chewy/rooms/room52.cpp
engines/chewy/rooms/room54.cpp
engines/chewy/rooms/room56.cpp
engines/chewy/rooms/room57.cpp
engines/chewy/rooms/room68.cpp
engines/chewy/rooms/room69.cpp
engines/chewy/rooms/room70.cpp
engines/chewy/rooms/room71.cpp
engines/chewy/rooms/room72.cpp
engines/chewy/rooms/room73.cpp
engines/chewy/rooms/room74.cpp
engines/chewy/rooms/room75.cpp
engines/chewy/rooms/room76.cpp
engines/chewy/rooms/room77.cpp
engines/chewy/rooms/room78.cpp
engines/chewy/rooms/room79.cpp
engines/chewy/rooms/room80.cpp
engines/chewy/rooms/room81.cpp
engines/chewy/rooms/room82.cpp
engines/chewy/rooms/room83.cpp
engines/chewy/rooms/room84.cpp
engines/chewy/rooms/room85.cpp
engines/chewy/rooms/room86.cpp
engines/chewy/rooms/room90.cpp
engines/chewy/rooms/room95.cpp
engines/chewy/rooms/room97.cpp
engines/chewy/sound.cpp
diff --git a/engines/chewy/defines.h b/engines/chewy/defines.h
index aa502b054a3..69bb2376e72 100644
--- a/engines/chewy/defines.h
+++ b/engines/chewy/defines.h
@@ -290,7 +290,7 @@ enum SetupScreenMode {
#define PILLOW_INV 0
#define SLIME_INV 1
#define RED_CARD_INV 2
-#define KABEL_INV 3
+#define CABLE_INV 3
#define MONOCLE_INV 4
#define NOTEBOOK_INV 5
#define NOTEBOOK_OPEN_INV 6
diff --git a/engines/chewy/detail.cpp b/engines/chewy/detail.cpp
index cf16ce2dfbc..f6062f28a05 100644
--- a/engines/chewy/detail.cpp
+++ b/engines/chewy/detail.cpp
@@ -55,14 +55,15 @@ bool RoomAutoMov::load(Common::SeekableReadStream *src) {
bool SoundDefBlk::load(Common::SeekableReadStream *src) {
int i;
- for (i = 0; i < MAX_SOUNDS; ++i)
- sound_enable[i] = src->readSint16LE();
- for (i = 0; i < MAX_SOUNDS; ++i)
+ src->skip(MAX_SOUNDS * 2); // sound_enable flags
+ for (i = 0; i < MAX_SOUNDS; ++i) {
sound_index[i] = src->readSint16LE();
+ debug("Sound %d: %d", i, sound_index[i]);
+ }
for (i = 0; i < MAX_SOUNDS; ++i)
sound_start[i] = src->readSint16LE();
for (i = 0; i < MAX_SOUNDS; ++i)
- kanal[i] = src->readSint16LE();
+ channel[i] = src->readSint16LE();
for (i = 0; i < MAX_SOUNDS; ++i)
volume[i] = src->readSint16LE();
for (i = 0; i < MAX_SOUNDS; ++i)
@@ -100,7 +101,7 @@ bool StaticDetailInfo::load(Common::SeekableReadStream *src) {
y = src->readSint16LE();
SprNr = src->readSint16LE();
z_ebene = src->readSint16LE();
- Hide = src->readByte();
+ hide = src->readByte();
Dummy = src->readByte();
return true;
@@ -115,17 +116,17 @@ bool RoomDetailInfo::load(Common::SeekableReadStream *src) {
for (i = 0; i < MAXDETAILS; ++i)
Ainfo[i].load(src);
for (i = 0; i < MAXDETAILS; ++i)
- Sinfo[i].load(src);
+ staticSprite[i].load(src);
for (i = 0; i < MAX_M_ITEMS * 4; ++i)
mvect[i] = src->readSint16LE();
for (i = 0; i < MAX_M_ITEMS; ++i)
mtxt[i] = src->readSint16LE();
Ri.load(src);
for (i = 0; i < MAX_AUTO_MOV; ++i)
- AutoMov[i].load(src);
+ autoMove[i].load(src);
for (i = 0; i < MAXDETAILS * MAX_SOUNDS; ++i)
- tvp_index[i] = src->readSint16LE();
- src->skip(4 * MAXDETAILS * MAX_SOUNDS); // sample
+ detailSfxIndex[i] = src->readSint16LE();
+ src->skip(4 * MAXDETAILS * MAX_SOUNDS); // sample offsets
return true;
}
@@ -146,7 +147,7 @@ Detail::Detail() {
*tptr++ = 0;
for (int16 i = 0; i < MAXDETAILS; i++) {
- _rdi.Sinfo[i].SprNr = -1;
+ _rdi.staticSprite[i].SprNr = -1;
_rdi.Ainfo[i].start_ani = -1;
}
@@ -159,8 +160,7 @@ Detail::Detail() {
_rdi.dptr = nullptr;
_tafName = "";
for (int16 i = 0; i < (MAXDETAILS * MAX_SOUNDS); i++) {
- _rdi.sample[i] = nullptr;
- _rdi.tvp_index[i] = -1;
+ _rdi.detailSfxIndex[i] = -1;
}
_directTafAni = OFF;
}
@@ -239,8 +239,8 @@ void Detail::load_taf_tbl(TafInfo *fti) {
if (fti) {
for (int16 i = 0; i < MAXDETAILS; i++) {
- if (_rdi.Sinfo[i].SprNr != -1)
- load_taf_seq(_rdi.Sinfo[i].SprNr, 1, fti);
+ if (_rdi.staticSprite[i].SprNr != -1)
+ load_taf_seq(_rdi.staticSprite[i].SprNr, 1, fti);
if (_rdi.Ainfo[i].start_ani != -1 &&
_rdi.Ainfo[i].end_ani != -1 && !_rdi.Ainfo[i].load_flag)
load_taf_seq(_rdi.Ainfo[i].start_ani, (_rdi.Ainfo[i].end_ani - _rdi.Ainfo[i].start_ani) + 1, fti);
@@ -273,8 +273,8 @@ void Detail::del_taf_tbl(TafInfo *Tt) {
for (int16 i = 0; i < Tt->count; i++) {
free(Tt->image[i]);
}
- free((char *) Tt->correction);
- free((char *) Tt);
+ free(Tt->correction);
+ free(Tt);
}
void Detail::del_taf_tbl(int16 start, int16 nr, TafInfo *Tt) {
@@ -303,23 +303,23 @@ void Detail::load_taf_seq(int16 sprNr, int16 sprCount, TafInfo *Tt) {
void Detail::hideStaticSpr(int16 nr) {
if (nr >= 0 && nr < MAXDETAILS)
- _rdi.Sinfo[nr].Hide = true;
+ _rdi.staticSprite[nr].hide = true;
}
void Detail::showStaticSpr(int16 nr) {
if (nr >= 0 && nr < MAXDETAILS)
- _rdi.Sinfo[nr].Hide = false;
+ _rdi.staticSprite[nr].hide = false;
}
void Detail::setStaticPos(int16 detNr, int16 x, int16 y, bool hideFl, bool correctionFlag) {
if (correctionFlag) {
- int16 *Cxy = &_rdi.dptr->correction[_rdi.Sinfo[detNr].SprNr * 2];
+ int16 *Cxy = &_rdi.dptr->correction[_rdi.staticSprite[detNr].SprNr * 2];
x += Cxy[0];
y += Cxy[1];
}
- _rdi.Sinfo[detNr].x = x;
- _rdi.Sinfo[detNr].y = y;
- _rdi.Sinfo[detNr].Hide = hideFl;
+ _rdi.staticSprite[detNr].x = x;
+ _rdi.staticSprite[detNr].y = y;
+ _rdi.staticSprite[detNr].hide = hideFl;
}
void Detail::setDetailPos(int16 detNr, int16 x, int16 y) {
@@ -333,8 +333,7 @@ void Detail::getAniValues(int16 aniNr, int16 *start, int16 *end) {
}
AniDetailInfo *Detail::getAniDetail(int16 aniNr) {
- AniDetailInfo *ret = &_rdi.Ainfo[aniNr];
- return ret;
+ return &_rdi.Ainfo[aniNr];
}
void Detail::init_taf(TafInfo *dptr) {
@@ -342,8 +341,7 @@ void Detail::init_taf(TafInfo *dptr) {
}
TafInfo *Detail::get_taf_info() {
- TafInfo *ret = _rdi.dptr;
- return ret;
+ return _rdi.dptr;
}
RoomDetailInfo *Detail::getRoomDetailInfo() {
@@ -354,7 +352,7 @@ void Detail::freezeAni() {
_aniFreezeflag = true;
}
-void Detail::unfreeze_ani() {
+void Detail::unfreezeAni() {
_aniFreezeflag = false;
}
@@ -398,13 +396,13 @@ void Detail::plot_ani_details(int16 scrx, int16 scry, int16 start, int16 end, in
Sound *sound = g_engine->_sound;
for (int16 k = 0; k < MAX_SOUNDS; k++) {
- int16 soundEffect = adiptr->sfx.sound_index[k];
- if ((adiptr->sfx.sound_enable[k]) && (soundEffect != -1) &&
- (_rdi.sample[soundEffect])) {
- if ((adiptr->sfx.sound_start[k] == adiptr->ani_count) &&
- (!adiptr->delay_count)) {
- const uint channel = adiptr->sfx.kanal[k] & 7;
- sound->playSound(soundEffect, channel, adiptr->sfx.repeats[k], adiptr->sfx.volume[k], adiptr->sfx.stereo[k]);
+ const int16 sfxSlot = adiptr->sfx.sound_index[k];
+ if (sfxSlot != -1) {
+ const int16 sfxIndex = _rdi.detailSfxIndex[sfxSlot];
+ if (adiptr->sfx.sound_start[k] == adiptr->ani_count &&
+ !adiptr->delay_count) {
+ const uint channel = adiptr->sfx.channel[k] & 7;
+ sound->playSound(sfxIndex, channel, false /*adiptr->sfx.repeats[k]*/, adiptr->sfx.volume[k], adiptr->sfx.stereo[k]);
}
}
}
@@ -444,9 +442,9 @@ void Detail::plot_ani_details(int16 scrx, int16 scry, int16 start, int16 end, in
} else {
adiptr->start_flag = 0;
if (adiptr->show_1_phase) {
- _rdi.Sinfo[adiptr->phase_nr].Hide = false;
+ _rdi.staticSprite[adiptr->phase_nr].hide = false;
plot_static_details(scrx, scry, adiptr->phase_nr, adiptr->phase_nr);
- _rdi.Sinfo[adiptr->phase_nr].Hide = true;
+ _rdi.staticSprite[adiptr->phase_nr].hide = true;
}
}
}
@@ -463,11 +461,11 @@ void Detail::plot_static_details(int16 scrx, int16 scry, int16 start, int16 end)
end = MAXDETAILS - 1;
for (int16 i = start; i <= end; i++) {
- if (_rdi.Sinfo[i].SprNr != -1 && !_rdi.Sinfo[i].Hide) {
- int16 x = _rdi.Sinfo[i].x - scrx;
- int16 y = _rdi.Sinfo[i].y - scry;
- byte *simage = _rdi.dptr->image[_rdi.Sinfo[i].SprNr];
- _G(out)->spriteSet(simage, x, y, 0);
+ if (_rdi.staticSprite[i].SprNr != -1 && !_rdi.staticSprite[i].hide) {
+ int16 x = _rdi.staticSprite[i].x - scrx;
+ int16 y = _rdi.staticSprite[i].y - scry;
+ byte *spriteImage = _rdi.dptr->image[_rdi.staticSprite[i].SprNr];
+ _G(out)->spriteSet(spriteImage, x, y, 0);
}
}
}
@@ -490,11 +488,22 @@ void Detail::startDetail(int16 nr, int16 rep, int16 reverse) {
void Detail::stop_detail(int16 nr) {
if (nr >= 0 && nr < 32) {
- AniDetailInfo *adiptr = &_rdi.Ainfo[nr];
- adiptr->start_flag = 0;
+ _rdi.Ainfo[nr].start_flag = 0;
+ }
+}
+
+void Detail::playSound(int16 nr, int16 slot) {
+ const int16 sfxSlot = _rdi.Ainfo[nr].sfx.sound_index[slot];
+ if (sfxSlot != -1) {
+ const int16 sfxIndex = _rdi.detailSfxIndex[sfxSlot];
+ g_engine->_sound->playSound(sfxIndex, slot);
}
}
+void Detail::stopSound(int16 slot) {
+ g_engine->_sound->stopSound(slot);
+}
+
int16 Detail::maus_vector(int16 x, int16 y) {
int16 i = -1;
for (int16 j = 0; (j < (MAX_M_ITEMS - 1) << 2) && (i == -1); j += 4) {
@@ -509,12 +518,7 @@ int16 Detail::maus_vector(int16 x, int16 y) {
}
int16 Detail::get_ani_status(int16 det_nr) {
- int16 ret;
- if (_rdi.Ainfo[det_nr].start_flag > 0)
- ret = 1;
- else
- ret = 0;
- return ret;
+ return (_rdi.Ainfo[det_nr].start_flag > 0) ? 1 : 0;
}
SprInfo Detail::plot_detail_sprite(int16 scrx, int16 scry, int16 det_nr, int16 spr_nr, int16 mode) {
@@ -539,10 +543,9 @@ SprInfo Detail::plot_detail_sprite(int16 scrx, int16 scry, int16 det_nr, int16 s
for (int16 k = 0; k < MAX_SOUNDS; k++) {
int16 soundEffect = adiptr->sfx.sound_index[k];
- if ((adiptr->sfx.sound_enable[k]) && (soundEffect != -1) &&
- (_rdi.sample[soundEffect])) {
+ if (soundEffect != -1) {
if (adiptr->sfx.sound_start[k] == spr_nr) {
- const uint channel = adiptr->sfx.kanal[k] & 7;
+ const uint channel = adiptr->sfx.channel[k] & 7;
sound->playSound(soundEffect, channel, adiptr->sfx.repeats[k], adiptr->sfx.volume[k], adiptr->sfx.stereo[k]);
}
}
@@ -552,8 +555,7 @@ SprInfo Detail::plot_detail_sprite(int16 scrx, int16 scry, int16 det_nr, int16 s
}
void Detail::set_global_delay(int16 delay) {
- _globalDelay = delay;
- _globalDelay -= 2;
+ _globalDelay = delay - 2;
}
void Detail::calc_zoom_kor(int16 *kx, int16 *ky, int16 xzoom, int16 yzoom) {
@@ -570,92 +572,6 @@ void Detail::calc_zoom_kor(int16 *kx, int16 *ky, int16 xzoom, int16 yzoom) {
*ky += (int16)tmpy;
}
-void Detail::disable_detail_sound(int16 nr) {
- SoundDefBlk *sdb = &_rdi.Ainfo[nr].sfx;
- for (int16 i = 0; i < MAX_SOUNDS; i++)
- sdb->sound_enable[i] = false;
-}
-
-void Detail::enable_detail_sound(int16 nr) {
- SoundDefBlk *sdb = &_rdi.Ainfo[nr].sfx;
- for (int16 i = 0; i < MAX_SOUNDS; i++)
- if (sdb->sound_index[i] != -1)
- sdb->sound_enable[i] = true;
-}
-
-void Detail::play_detail_sound(int16 nr) {
- SoundDefBlk *sdb = &_rdi.Ainfo[nr].sfx;
- Sound *sound = g_engine->_sound;
- for (int16 k = 0; k < MAX_SOUNDS; k++) {
- if ((sdb->sound_enable[k]) && (sdb->sound_index[k] != -1) &&
- (_rdi.sample[sdb->sound_index[k]])) {
- const uint channel = sdb->kanal[k] & 7;
- sound->playSound(sdb->sound_index[k], channel, sdb->repeats[k], sdb->volume[k], sdb->stereo[k]);
- }
- }
-}
-
-void Detail::clear_detail_sound(int16 nr) {
- SoundDefBlk *sdb = &_rdi.Ainfo[nr].sfx;
- for (short i = 0; i < MAX_SOUNDS; i++) {
- sdb->sound_enable[i] = false;
- sdb->sound_index[i] = -1;
- sdb->sound_start[i] = 0;
- sdb->kanal[i] = 0;
- sdb->volume[i] = 0;
- sdb->repeats[i] = 0;
- sdb->stereo[i] = 0;
- }
- removeUnusedSamples();
-}
-
-void Detail::disable_room_sound() {
- for (int16 i = 0; i < MAXDETAILS; i++)
- disable_detail_sound(i);
- g_engine->_sound->stopAllSounds();
-}
-
-void Detail::enable_room_sound() {
- for (int16 i = 0; i < MAXDETAILS; i++)
- enable_detail_sound(i);
-}
-
-void Detail::clear_room_sound() {
- for (int16 j = 0; j < MAXDETAILS; j++) {
- SoundDefBlk *sdb = &_rdi.Ainfo[j].sfx;
- for (int16 i = 0; i < MAX_SOUNDS; i++) {
- sdb->sound_enable[i] = false;
- sdb->sound_index[i] = -1;
- sdb->sound_start[i] = 0;
- sdb->kanal[i] = 0;
- sdb->volume[i] = 0;
- sdb->repeats[i] = 0;
- sdb->stereo[i] = 0;
- }
- }
- for (int16 i = 0; i < MAXDETAILS * MAX_SOUNDS; i++) {
- _rdi.tvp_index[i] = -1;
- _rdi.sample[i] = nullptr;
- }
-}
-
-void Detail::removeUnusedSamples() {
- for (int16 k = 0; k < MAXDETAILS * MAX_SOUNDS; k++) {
- if (_rdi.tvp_index[k] != -1) {
- bool found = false;
- for (int16 i = 0; (i < MAXDETAILS) && (found == false); i++) {
- for (int16 j = 0; (j < MAX_SOUNDS) && (found == false); j++)
- if (_rdi.Ainfo[i].sfx.sound_index[j] == k)
- found = true;
- }
- if (!found) {
- _rdi.tvp_index[k] = -1;
- _rdi.sample[k] = nullptr;
- }
- }
- }
-}
-
int16 Detail::mouse_on_detail(int16 mouse_x, int16 mouse_y, int16 scrx, int16 scry) {
int16 ok = false;
int16 detail_nr = -1;
diff --git a/engines/chewy/detail.h b/engines/chewy/detail.h
index 6e28792246d..b9ec6e63220 100644
--- a/engines/chewy/detail.h
+++ b/engines/chewy/detail.h
@@ -74,10 +74,10 @@ struct SprInfo {
};
struct SoundDefBlk {
- bool sound_enable[MAX_SOUNDS];
+ // 2 * MAX_SOUNDS sound_enable flags
int16 sound_index[MAX_SOUNDS];
int16 sound_start[MAX_SOUNDS];
- int16 kanal[MAX_SOUNDS];
+ int16 channel[MAX_SOUNDS];
int16 volume[MAX_SOUNDS];
int16 repeats[MAX_SOUNDS];
int16 stereo[MAX_SOUNDS];
@@ -119,7 +119,7 @@ struct StaticDetailInfo {
int16 y;
int16 SprNr;
int16 z_ebene;
- bool Hide;
+ bool hide;
uint8 Dummy;
bool load(Common::SeekableReadStream *src);
@@ -133,13 +133,12 @@ struct RoomDetailInfo {
int16 _aniDetailNr = 0;
TafInfo *dptr = nullptr;
AniDetailInfo Ainfo[MAXDETAILS];
- StaticDetailInfo Sinfo[MAXDETAILS];
+ StaticDetailInfo staticSprite[MAXDETAILS];
int16 mvect[MAX_M_ITEMS * 4] = { 0 };
int16 mtxt[MAX_M_ITEMS] = { 0 };
RoomInfo Ri;
- RoomAutoMov AutoMov[MAX_AUTO_MOV];
- int16 tvp_index[MAXDETAILS * MAX_SOUNDS] = { 0 };
- byte *sample[MAXDETAILS * MAX_SOUNDS] = { 0 };
+ RoomAutoMov autoMove[MAX_AUTO_MOV];
+ int16 detailSfxIndex[MAXDETAILS * MAX_SOUNDS] = { 0 };
bool load(Common::SeekableReadStream *src);
static constexpr int SIZE() {
@@ -176,7 +175,7 @@ public:
void hideStaticSpr(int16 detNr);
void showStaticSpr(int16 detNr);
void freezeAni();
- void unfreeze_ani();
+ void unfreezeAni();
void getAniValues(int16 aniNr, int16 *start, int16 *end);
AniDetailInfo *getAniDetail(int16 aniNr);
void init_taf(TafInfo *dptr);
@@ -188,6 +187,8 @@ public:
void del_static_ani(int16 ani_nr);
void startDetail(int16 nr, int16 rep, int16 reverse);
void stop_detail(int16 nr);
+ void playSound(int16 nr, int16 slot);
+ void stopSound(int16 slot);
void plot_ani_details(int16 scrx, int16 scry, int16 start, int16 end,
int16 zoomx, int16 zoomy);
void plot_static_details(int16 scrx, int16 scry, int16 start, int16 end);
@@ -216,19 +217,11 @@ public:
int16 mouse_on_detail(int16 mouse_x, int16 mouse_y,
int16 scrx, int16 scry);
- void disable_detail_sound(int16 nr);
- void enable_detail_sound(int16 nr);
- void clear_detail_sound(int16 nr);
- void play_detail_sound(int16 nr);
- void disable_room_sound();
- void enable_room_sound();
- void clear_room_sound();
void set_taf_ani_mem(byte *load_area);
private:
void load_taf_ani_sprite(int16 nr);
- void removeUnusedSamples();
RoomDetailInfo _rdi;
RdiDataHeader _rdiDataHeader;
SprInfo _sprInfo;
diff --git a/engines/chewy/dialogs/options.cpp b/engines/chewy/dialogs/options.cpp
index e93df89cebb..13f64314d09 100644
--- a/engines/chewy/dialogs/options.cpp
+++ b/engines/chewy/dialogs/options.cpp
@@ -172,10 +172,8 @@ void Options::execute(TafInfo *ti) {
case 4: // Speaker (sound)
if (g_engine->_sound->soundEnabled()) {
g_engine->_sound->toggleSound(false);
- _G(det)->disable_room_sound();
} else {
g_engine->_sound->toggleSound(true);
- _G(det)->enable_room_sound();
}
g_engine->syncSoundSettings();
break;
diff --git a/engines/chewy/inits.cpp b/engines/chewy/inits.cpp
index c94270feba1..86cbb9bc587 100644
--- a/engines/chewy/inits.cpp
+++ b/engines/chewy/inits.cpp
@@ -78,7 +78,7 @@ void standard_init() {
void var_init() {
_G(Rdi) = _G(det)->getRoomDetailInfo();
- _G(Sdi) = &_G(Rdi)->Sinfo[0];
+ _G(Sdi) = &_G(Rdi)->staticSprite[0];
_G(Adi) = &_G(Rdi)->Ainfo[0];
_G(auto_p_nr) = 0;
diff --git a/engines/chewy/main.cpp b/engines/chewy/main.cpp
index 8a4cdc56df7..57b24491670 100644
--- a/engines/chewy/main.cpp
+++ b/engines/chewy/main.cpp
@@ -183,7 +183,7 @@ void menuEntry() {
}
void menuExit() {
- _G(det)->unfreeze_ani();
+ _G(det)->unfreezeAni();
_G(uhr)->setAllStatus(TIMER_UNFREEZE);
_G(uhr)->resetTimer(0, 0);
_G(FrameSpeed) = 0;
@@ -455,7 +455,7 @@ void setupScreen(SetupScreenMode mode) {
plotMainMenu();
} else {
kb_mov(1);
- _G(det)->unfreeze_ani();
+ _G(det)->unfreezeAni();
check_mouse_ausgang(g_events->_mousePos.x + _G(gameState).scrollx, g_events->_mousePos.y + _G(gameState).scrolly);
if (!_G(flags).SaveMenu)
@@ -1106,9 +1106,9 @@ bool autoMove(int16 movNr, int16 playerNum) {
_G(auto_p_nr) = playerNum;
int16 tmp = _G(mouseLeftClick);
_G(mouseLeftClick) = false;
- _G(gpkt).Dx = _G(Rdi)->AutoMov[movNr]._x -
+ _G(gpkt).Dx = _G(Rdi)->autoMove[movNr]._x -
_G(spieler_mi)[playerNum].HotMovX + _G(spieler_mi)[playerNum].HotX;
- _G(gpkt).Dy = _G(Rdi)->AutoMov[movNr]._y -
+ _G(gpkt).Dy = _G(Rdi)->autoMove[movNr]._y -
_G(spieler_mi)[playerNum].HotMovY + _G(spieler_mi)[playerNum].HotY;
_G(gpkt).Sx = _G(moveState)[playerNum].Xypos[0] + _G(spieler_mi)[playerNum].HotX;
_G(gpkt).Sy = _G(moveState)[playerNum].Xypos[1] + _G(spieler_mi)[playerNum].HotY;
@@ -1159,7 +1159,7 @@ bool autoMove(int16 movNr, int16 playerNum) {
setPersonPos(_G(spieler_mi)[playerNum].XyzEnd[0],
_G(spieler_mi)[playerNum].XyzEnd[1],
- playerNum, _G(Rdi)->AutoMov[movNr]._sprNr);
+ playerNum, _G(Rdi)->autoMove[movNr]._sprNr);
}
}
endLoopFl = true;
@@ -1648,9 +1648,9 @@ void calc_ausgang(int16 x, int16 y) {
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));
- setPersonPos(_G(Rdi)->AutoMov[_G(gameState).room_e_obj[nr].ExitMov]._x -
+ setPersonPos(_G(Rdi)->autoMove[_G(gameState).room_e_obj[nr].ExitMov]._x -
_G(spieler_mi)[_G(auto_p_nr)].HotMovX,
- _G(Rdi)->AutoMov[_G(gameState).room_e_obj[nr].ExitMov]._y - _G(spieler_mi)[_G(auto_p_nr)].HotMovY
+ _G(Rdi)->autoMove[_G(gameState).room_e_obj[nr].ExitMov]._y - _G(spieler_mi)[_G(auto_p_nr)].HotMovY
, P_CHEWY, -1);
int16 *ScrXy = (int16 *)_G(ablage)[_G(room_blk).AkAblage];
get_scroll_off(_G(moveState)[P_CHEWY].Xypos[0] + _G(spieler_mi)[P_CHEWY].HotX,
@@ -1661,7 +1661,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);
setShadowPalette(paletteId, false);
- setPersonSpr(_G(Rdi)->AutoMov[_G(gameState).room_e_obj[nr].ExitMov]._sprNr, P_CHEWY);
+ setPersonSpr(_G(Rdi)->autoMove[_G(gameState).room_e_obj[nr].ExitMov]._sprNr, P_CHEWY);
_G(moveState)[P_CHEWY]._delayCount = 0;
_G(fx_blend) = BLEND1;
_G(auto_obj) = 0;
diff --git a/engines/chewy/r_event.cpp b/engines/chewy/r_event.cpp
index ecacd2e0f46..f8f704618e4 100644
--- a/engines/chewy/r_event.cpp
+++ b/engines/chewy/r_event.cpp
@@ -218,7 +218,7 @@ void enter_room(int16 eib_nr) {
Room17::entry();
if (g_engine->_sound->soundEnabled()) {
if (!_G(gameState).R17EnergieOut)
- g_engine->_sound->playSound(15);
+ _G(det)->playSound(15, 0);
}
break;
@@ -231,7 +231,7 @@ void enter_room(int16 eib_nr) {
case 24:
Room24::entry();
if (g_engine->_sound->soundEnabled())
- g_engine->_sound->playSound(17);
+ _G(det)->playSound(17, 0);
break;
ENTRY(25);
@@ -317,7 +317,7 @@ void enter_room(int16 eib_nr) {
void exit_room(int16 eib_nr) {
bool no_exit = false;
- _G(det)->disable_room_sound();
+ g_engine->_sound->stopAllSounds();
switch (_G(gameState)._personRoomNr[P_CHEWY]) {
case 6:
@@ -709,7 +709,6 @@ void flic_cut(int16 nr) {
bool keepPlaying = true;
_G(out)->setPointer(nullptr);
- _G(det)->disable_room_sound();
g_engine->_sound->stopAllSounds();
g_events->delay(50);
@@ -783,7 +782,7 @@ void flic_cut(int16 nr) {
break;
}
- g_engine->_sound->stopSound();
+ _G(det)->stopSound(0);
SHOULD_QUIT_RETURN;
g_events->delay(50);
@@ -791,7 +790,6 @@ void flic_cut(int16 nr) {
if (nr != FCUT_135) {
g_engine->_sound->playRoomMusic(_G(gameState)._personRoomNr[0]);
- _G(det)->enable_room_sound();
_G(uhr)->resetTimer(0, 0);
}
@@ -1028,11 +1026,11 @@ int16 sib_event_no_inv(int16 sib_nr) {
case SIB_DOORKNOB_R18:
if (_G(gameState).R18DoorBruecke) {
- g_engine->_sound->stopSound(0);
- g_engine->_sound->playSound(19, 1);
+ _G(det)->stopSound(0);
+ _G(det)->playSound(19, 1);
} else {
- g_engine->_sound->playSound(19, 0);
- g_engine->_sound->stopSound(1);
+ _G(det)->playSound(19, 0);
+ _G(det)->stopSound(1);
}
if (!_G(gameState).R6DoorLeftF) {
diff --git a/engines/chewy/room.cpp b/engines/chewy/room.cpp
index b5ed4bd7ef3..f34358d44e8 100644
--- a/engines/chewy/room.cpp
+++ b/engines/chewy/room.cpp
@@ -164,8 +164,6 @@ void Room::loadRoom(RaumBlk *Rb, int16 room_nr, GameState *player) {
clear_prog_ani();
_G(det)->load_rdi(Rb->DetFile, room_nr);
- if (!g_engine->_sound->soundEnabled())
- _G(det)->disable_room_sound();
RoomDetailInfo *Rdi_ = _G(det)->getRoomDetailInfo();
_roomInfo = &Rdi_->Ri;
if (_roomInfo->_tafLoad != 255) {
diff --git a/engines/chewy/rooms/room00.cpp b/engines/chewy/rooms/room00.cpp
index e0ede5e1336..f146f357f62 100644
--- a/engines/chewy/rooms/room00.cpp
+++ b/engines/chewy/rooms/room00.cpp
@@ -202,15 +202,15 @@ void Room0::eyeStart(EyeMode mode) {
_G(flags).AniUserAction = true;
if (mode == EYE_START) {
- g_engine->_sound->playSound(FLAP_DETAIL, 0);
- g_engine->_sound->stopSound(1);
- g_engine->_sound->playSound(HOSE_DETAIL, 0);
- g_engine->_sound->stopSound(2);
+ _G(det)->playSound(FLAP_DETAIL, 0);
+ _G(det)->stopSound(1);
+ _G(det)->playSound(HOSE_DETAIL, 0);
+ _G(det)->stopSound(2);
} else {
- g_engine->_sound->stopSound(0);
- g_engine->_sound->playSound(FLAP_DETAIL, 1);
- g_engine->_sound->stopSound(0);
- g_engine->_sound->playSound(HOSE_DETAIL, 2);
+ _G(det)->stopSound(0);
+ _G(det)->playSound(FLAP_DETAIL, 1);
+ _G(det)->stopSound(0);
+ _G(det)->playSound(HOSE_DETAIL, 2);
}
while (!ende) {
@@ -457,15 +457,15 @@ void Room0::feederStart(int16 mode) {
if (!mode) {
trapDoorOpen();
- g_engine->_sound->playSound(FLAP_DETAIL, 0);
- g_engine->_sound->stopSound(1);
- g_engine->_sound->playSound(FEEDER_HOSE, 0);
- g_engine->_sound->stopSound(2);
+ _G(det)->playSound(FLAP_DETAIL, 0);
+ _G(det)->stopSound(1);
+ _G(det)->playSound(FEEDER_HOSE, 0);
+ _G(det)->stopSound(2);
} else {
- g_engine->_sound->stopSound(0);
- g_engine->_sound->playSound(FLAP_DETAIL, 1);
- g_engine->_sound->stopSound(0);
- g_engine->_sound->playSound(FEEDER_HOSE, 2);
+ _G(det)->stopSound(0);
+ _G(det)->playSound(FLAP_DETAIL, 1);
+ _G(det)->stopSound(0);
+ _G(det)->playSound(FEEDER_HOSE, 2);
}
bool endLoopFl = false;
@@ -747,8 +747,8 @@ void Room0::feederAni() {
_G(gameState)._personRoomNr[P_CHEWY] = 1;
_G(room)->loadRoom(&_G(room_blk), _G(gameState)._personRoomNr[P_CHEWY], &_G(gameState));
- setPersonPos(_G(Rdi)->AutoMov[4]._x - CH_HOT_MOV_X,
- _G(Rdi)->AutoMov[4]._y - CH_HOT_MOV_Y, P_CHEWY, P_RIGHT);
+ setPersonPos(_G(Rdi)->autoMove[4]._x - CH_HOT_MOV_X,
+ _G(Rdi)->autoMove[4]._y - CH_HOT_MOV_Y, P_CHEWY, P_RIGHT);
_G(moveState)[P_CHEWY]._delayCount = 0;
setShadowPalette(4, false);
diff --git a/engines/chewy/rooms/room01.cpp b/engines/chewy/rooms/room01.cpp
index cf2f1621649..68254f5c21f 100644
--- a/engines/chewy/rooms/room01.cpp
+++ b/engines/chewy/rooms/room01.cpp
@@ -37,24 +37,24 @@ void Room1::gottenCard() {
}
void Room1::gedAction(int index) {
- #define KABELABDECKUNG 1
+ #define CABLEBOX 1
if (index == 0 && !_G(gameState).R2ElectrocutedBork) {
- bool flag = false;
- if (_G(cur)->getInventoryCursor() == KABEL_INV) {
- flag = true;
+ bool pickedUpCable = false;
+ if (_G(cur)->getInventoryCursor() == CABLE_INV) {
+ pickedUpCable = true;
delInventory(_G(cur)->getInventoryCursor());
- } else if (_G(obj)->checkInventory(KABEL_INV)) {
- flag = true;
- _G(obj)->del_obj_use(KABEL_INV);
- remove_inventory(KABEL_INV);
+ } else if (_G(obj)->checkInventory(CABLE_INV)) {
+ pickedUpCable = true;
+ _G(obj)->del_obj_use(CABLE_INV);
+ remove_inventory(CABLE_INV);
}
- if (flag) {
+ if (pickedUpCable) {
startAadWait(54);
_G(atds)->set_ats_str(8, TXT_MARK_LOOK, 0, ATS_DATA);
- _G(gameState).room_s_obj[KABELABDECKUNG].ZustandFlipFlop = 2;
- _G(obj)->calc_rsi_flip_flop(KABELABDECKUNG);
+ _G(gameState).room_s_obj[CABLEBOX].ZustandFlipFlop = 2;
+ _G(obj)->calc_rsi_flip_flop(CABLEBOX);
_G(obj)->calc_all_static_detail();
}
}
diff --git a/engines/chewy/rooms/room04.cpp b/engines/chewy/rooms/room04.cpp
index 83cb97b48b0..adddb3a621d 100644
--- a/engines/chewy/rooms/room04.cpp
+++ b/engines/chewy/rooms/room04.cpp
@@ -90,13 +90,13 @@ int16 Room4::comp_probe() {
--curX;
else
curX = 2;
- g_engine->_sound->playSound(0, 1);
+ _G(det)->playSound(0, 1);
break;
case 1:
endLoop = true;
sprNr = YELLOW_FRAME;
- g_engine->_sound->playSound(0, 0);
+ _G(det)->playSound(0, 0);
break;
case 2:
@@ -104,7 +104,7 @@ int16 Room4::comp_probe() {
++curX;
else
curX = 0;
- g_engine->_sound->playSound(0, 2);
+ _G(det)->playSound(0, 2);
break;
default:
diff --git a/engines/chewy/rooms/room17.cpp b/engines/chewy/rooms/room17.cpp
index 9cd46ac53e7..f194e61c16e 100644
--- a/engines/chewy/rooms/room17.cpp
+++ b/engines/chewy/rooms/room17.cpp
@@ -300,12 +300,12 @@ int16 Room17::energie_hebel() {
_G(atds)->set_ats_str(142, _G(gameState).R17EnergieOut ? 1 : 0, ATS_DATA);
_G(atds)->set_ats_str(140, _G(gameState).R17EnergieOut ? 1 : 0, ATS_DATA);
- g_engine->_sound->playSound(12);
+ _G(det)->playSound(12, 0);
if (_G(gameState).R17EnergieOut) {
- g_engine->_sound->stopSound(0);
+ _G(det)->stopSound(0);
} else {
- g_engine->_sound->playSound(15, 0);
+ _G(det)->playSound(15, 0);
}
}
diff --git a/engines/chewy/rooms/room24.cpp b/engines/chewy/rooms/room24.cpp
index b5f72547bfa..879fcc62a9c 100644
--- a/engines/chewy/rooms/room24.cpp
+++ b/engines/chewy/rooms/room24.cpp
@@ -92,16 +92,16 @@ void Room24::use_hebel(int16 txt_nr) {
if (_G(gameState).R24Hebel[0] == 1 && _G(gameState).R24Hebel[1] == 0 && _G(gameState).R24Hebel[2] == 2) {
_G(gameState).R16F5Exit = true;
- g_engine->_sound->playSound(1, 0);
- g_engine->_sound->stopSound(1);
+ _G(det)->playSound(1, 0);
+ _G(det)->stopSound(1);
_G(det)->startDetail(1, 1, ANI_FRONT);
_G(det)->showStaticSpr(10);
_G(atds)->set_ats_str(164, TXT_MARK_NAME, 1, ATS_DATA);
} else if (_G(gameState).R16F5Exit) {
_G(det)->hideStaticSpr(10);
- g_engine->_sound->playSound(1, 1);
- g_engine->_sound->stopSound(0);
+ _G(det)->playSound(1, 1);
+ _G(det)->stopSound(0);
_G(det)->startDetail(1, 1, ANI_BACK);
_G(gameState).R16F5Exit = false;
_G(atds)->set_ats_str(164, TXT_MARK_NAME, 0, ATS_DATA);
@@ -134,8 +134,8 @@ void Room24::calc_animation(int16 kristall_nr) {
if (KRISTALL_SPR[kristall_nr][_G(gameState).R24Hebel[kristall_nr]] == 20) {
int16 ani_nr = _G(gameState).R24KristallLast[kristall_nr] == 13 ? 7 : 8;
- g_engine->_sound->playSound(ani_nr + kristall_nr * 4, 0);
- g_engine->_sound->stopSound(0);
+ _G(det)->playSound(ani_nr + kristall_nr * 4, 0);
+ _G(det)->stopSound(0);
_G(det)->hideStaticSpr(_G(gameState).R24KristallLast[kristall_nr] + kristall_nr * 2);
startSetAILWait(ani_nr + kristall_nr * 4, 1, ANI_BACK);
startSetAILWait(6 + kristall_nr * 4, 1, ANI_BACK);
@@ -143,8 +143,8 @@ void Room24::calc_animation(int16 kristall_nr) {
} else if (_G(gameState).R24KristallLast[kristall_nr] == 20) {
int16 ani_nr = KRISTALL_SPR[kristall_nr][_G(gameState).R24Hebel[kristall_nr]] == 13 ? 7 : 8;
- g_engine->_sound->stopSound(0);
- g_engine->_sound->playSound(5 + ani_nr + kristall_nr * 4, 0);
+ _G(det)->stopSound(0);
+ _G(det)->playSound(5 + ani_nr + kristall_nr * 4, 0);
_G(det)->stop_detail(5 + kristall_nr * 4);
startSetAILWait(6 + kristall_nr * 4, 1, ANI_FRONT);
startSetAILWait(ani_nr + kristall_nr * 4, 1, ANI_FRONT);
diff --git a/engines/chewy/rooms/room25.cpp b/engines/chewy/rooms/room25.cpp
index 00edbc2c09b..e3d6c4f2d05 100644
--- a/engines/chewy/rooms/room25.cpp
+++ b/engines/chewy/rooms/room25.cpp
@@ -47,7 +47,7 @@ static const MovLine SURIMY_MPKT[2] = {
void Room25::entry() {
if (!_G(gameState).R25GleiteLoesch) {
- g_engine->_sound->playSound(0, 0);
+ _G(det)->playSound(0, 0);
for (int i = 0; i < 9; ++i)
_G(det)->startDetail(i, 255, ANI_FRONT);
@@ -75,7 +75,7 @@ void Room25::entry() {
_G(gameState).R25FirstEntry = true;
_G(gameState)._personHide[P_CHEWY] = true;
flic_cut(FCUT_029);
- g_engine->_sound->playSound(0, 0);
+ _G(det)->playSound(0, 0);
_G(fx_blend) = BLEND_NONE;
setPersonPos(219, 141, P_CHEWY, P_RIGHT);
_G(gameState)._personHide[P_CHEWY] = false;
@@ -108,7 +108,7 @@ int16 Room25::gleiter_loesch() {
_G(obj)->calc_rsi_flip_flop(SIB_SCHLAUCH_R25);
_G(atds)->set_ats_str(219, 1, ATS_DATA);
_G(atds)->set_ats_str(187, 1, ATS_DATA);
- g_engine->_sound->stopSound(0);
+ _G(det)->stopSound(0);
for (int i = 0; i < 9; ++i)
_G(det)->stop_detail(i);
diff --git a/engines/chewy/rooms/room26.cpp b/engines/chewy/rooms/room26.cpp
index b7192ef5442..a4eb47ea382 100644
--- a/engines/chewy/rooms/room26.cpp
+++ b/engines/chewy/rooms/room26.cpp
@@ -30,9 +30,9 @@ namespace Rooms {
void Room26::entry() {
if (_G(gameState).R25GleiteLoesch)
- g_engine->_sound->stopSound(0);
+ _G(det)->stopSound(0);
else
- g_engine->_sound->playSound(0, 0);
+ _G(det)->playSound(0, 0);
}
} // namespace Rooms
diff --git a/engines/chewy/rooms/room31.cpp b/engines/chewy/rooms/room31.cpp
index faa5fed4de0..3f158681cb2 100644
--- a/engines/chewy/rooms/room31.cpp
+++ b/engines/chewy/rooms/room31.cpp
@@ -101,7 +101,7 @@ int16 Room31::open_luke() {
autoMove(2, P_CHEWY);
start_spz_wait(CH_LGET_U, 1, false, P_CHEWY);
_G(gameState).R31KlappeZu = false;
- g_engine->_sound->playSound(3);
+ _G(det)->playSound(3, 0);
calc_luke();
showCur();
}
@@ -118,7 +118,7 @@ int16 Room31::close_luke_proc1() {
autoMove(2, P_CHEWY);
start_spz_wait(CH_LGET_O, 1, false, P_CHEWY);
_G(gameState).R31KlappeZu = true;
- g_engine->_sound->playSound(3);
+ _G(det)->playSound(3, 0);
calc_luke();
showCur();
}
@@ -132,8 +132,8 @@ void Room31::close_luke_proc3() {
autoMove(2, P_CHEWY);
start_spz_wait(13, 1, false, P_CHEWY);
_G(gameState).R31KlappeZu = true;
- g_engine->_sound->playSound(3);
- g_engine->_sound->playSound(3, 1, false);
+ _G(det)->playSound(3, 0);
+ _G(det)->playSound(3, 1);
calc_luke();
showCur();
}
diff --git a/engines/chewy/rooms/room37.cpp b/engines/chewy/rooms/room37.cpp
index 5b4eef10626..e0ba788caea 100644
--- a/engines/chewy/rooms/room37.cpp
+++ b/engines/chewy/rooms/room37.cpp
@@ -58,7 +58,7 @@ void Room37::entry() {
if (!_G(gameState).R37HundScham) {
_G(timer_nr)[0] = _G(room)->set_timer(3, 4);
_G(det)->set_static_ani(3, -1);
- g_engine->_sound->playSound(3, 0);
+ _G(det)->playSound(3, 0);
}
}
@@ -158,7 +158,7 @@ int16 Room37::use_glas() {
startAadWait(146);
showCur();
_G(flags).NoScroll = false;
- g_engine->_sound->playSound(3);
+ _G(det)->playSound(3, 0);
} else {
autoMove(4, P_CHEWY);
}
@@ -174,7 +174,7 @@ void Room37::dog_bell() {
if (!_G(flags).AutoAniPlay) {
_G(flags).AutoAniPlay = true;
- g_engine->_sound->stopSound(0); // nr 3, sslot 0
+ _G(det)->stopSound(0); // nr 3, sslot 0
if (!_G(gameState).R37Gebiss) {
stopPerson(P_CHEWY);
@@ -198,8 +198,8 @@ void Room37::dog_bell() {
_G(det)->showStaticSpr(9);
startAniBlock(3, ABLOCK31);
_G(det)->set_static_ani(3, -1);
- g_engine->_sound->playSound(3, 0);
-// g_engine->_sound->playSound(3);
+ _G(det)->playSound(3, 0);
+// _G(det)->playSound(3);
enable_timer();
dia_nr = 149;
ani_nr = CH_TALK12;
diff --git a/engines/chewy/rooms/room40.cpp b/engines/chewy/rooms/room40.cpp
index 8e0218b35a0..fcd5af1d964 100644
--- a/engines/chewy/rooms/room40.cpp
+++ b/engines/chewy/rooms/room40.cpp
@@ -178,7 +178,7 @@ void Room40::move_train(int16 mode) {
if (mode && _G(gameState).ChewyAni == CHEWY_PUMPKIN)
_G(det)->showStaticSpr(12);
- g_engine->_sound->playSound(7, 0);
+ _G(det)->playSound(7, 0);
int16 delay = 0;
while (ax < 560) {
diff --git a/engines/chewy/rooms/room41.cpp b/engines/chewy/rooms/room41.cpp
index ae2bfbc21a4..d0fe44b354b 100644
--- a/engines/chewy/rooms/room41.cpp
+++ b/engines/chewy/rooms/room41.cpp
@@ -40,7 +40,7 @@ void Room41::entry() {
hideCur();
if (!_G(gameState).R41LolaOk) {
- g_engine->_sound->playSound(6);
+ _G(det)->playSound(6, 0);
if (!_G(flags).LoadGame) {
_G(room)->set_timer_status(0, TIMER_STOP);
@@ -196,7 +196,7 @@ int16 Room41::use_lola() {
action_flag = true;
_G(gameState).R41LolaOk = true;
autoMove(4, P_CHEWY);
- g_engine->_sound->stopSound(0);
+ _G(det)->stopSound(0);
flic_cut(FCUT_057);
setPersonPos(127, 112, P_CHEWY, P_LEFT);
_G(det)->stop_detail(6);
diff --git a/engines/chewy/rooms/room42.cpp b/engines/chewy/rooms/room42.cpp
index 27e4d290c3f..490db76a87f 100644
--- a/engines/chewy/rooms/room42.cpp
+++ b/engines/chewy/rooms/room42.cpp
@@ -33,7 +33,7 @@ namespace Rooms {
void Room42::entry() {
if (!_G(gameState).R42BeamterWach) {
- g_engine->_sound->playSound(0);
+ _G(det)->playSound(0, 0);
_G(det)->startDetail(0, 255, ANI_FRONT);
}
@@ -45,7 +45,7 @@ void Room42::entry() {
_G(timer_nr)[0] = _G(room)->set_timer(8, 5);
_G(det)->set_static_ani(8, -1);
_G(gameState).R42BeamterWach = true;
- g_engine->_sound->stopSound(0);
+ _G(det)->stopSound(0);
_G(SetUpScreenFunc) = setup_func;
@@ -194,7 +194,7 @@ void Room42::dialogWithStationEmployee(int16 str_end_nr) {
break;
case 2:
- g_engine->_sound->playSound(4);
+ _G(det)->playSound(4, 0);
startSetAILWait(4, 13, ANI_FRONT);
break;
@@ -212,7 +212,7 @@ void Room42::dialogWithStationEmployee(int16 str_end_nr) {
}
_G(det)->stop_detail(0);
- g_engine->_sound->stopSound(0);
+ _G(det)->stopSound(0);
startSetAILWait(1, 1, ANI_FRONT);
_G(det)->startDetail(2, 255, ANI_FRONT);
@@ -223,8 +223,8 @@ void Room42::dialogWithStationEmployee(int16 str_end_nr) {
_G(det)->stop_detail(2);
_G(det)->startDetail(0, 255, ANI_FRONT);
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0);
+ _G(det)->playSound(0, 0);
+ _G(det)->playSound(0, 0);
}
_G(gameState)._personHide[P_CHEWY] = true;
diff --git a/engines/chewy/rooms/room43.cpp b/engines/chewy/rooms/room43.cpp
index 01273d777dc..012f26b4dd5 100644
--- a/engines/chewy/rooms/room43.cpp
+++ b/engines/chewy/rooms/room43.cpp
@@ -35,7 +35,7 @@ void Room43::night_small() {
_G(gameState).scrolly = 0;
switchRoom(43);
g_engine->_sound->stopMusic();
- g_engine->_sound->playSound(0);
+ _G(det)->playSound(0, 0);
hideCur();
_G(flags).NoScroll = true;
_G(gameState).ScrollxStep = 1;
@@ -57,7 +57,7 @@ void Room43::night_small() {
_G(gameState).scrollx = 194;
startAadWait(191);
flic_cut(FCUT_058);
- g_engine->_sound->stopSound(0);
+ _G(det)->stopSound(0);
_G(flags).NoScroll = false;
_G(gameState).ScrollxStep = 1;
_G(gameState).scrollx = 0;
@@ -72,7 +72,7 @@ void Room43::catch_pg() {
_G(gameState).scrolly = 0;
switchRoom(43);
g_engine->_sound->stopMusic();
- g_engine->_sound->playSound(0);
+ _G(det)->playSound(0, 0);
hideCur();
_G(flags).NoScroll = true;
_G(gameState).ScrollxStep = 1;
@@ -82,7 +82,7 @@ void Room43::catch_pg() {
_G(gameState).R43GetPgLady = true;
flic_cut(FCUT_058);
- g_engine->_sound->stopSound(0);
+ _G(det)->stopSound(0);
register_cutscene(14);
_G(flags).NoScroll = false;
diff --git a/engines/chewy/rooms/room45.cpp b/engines/chewy/rooms/room45.cpp
index 5bd01c989a4..d6afae361cf 100644
--- a/engines/chewy/rooms/room45.cpp
+++ b/engines/chewy/rooms/room45.cpp
@@ -213,7 +213,7 @@ void Room45::taxi_mov() {
_G(HowardMov) = 2;
_G(room)->set_timer_status(12, TIMER_STOP);
_G(det)->del_static_ani(12);
- g_engine->_sound->playSound(15, 1);
+ _G(det)->playSound(15, 1);
_G(det)->showStaticSpr(11);
autoMove(3, P_CHEWY);
_G(gameState)._personHide[P_CHEWY] = true;
@@ -227,11 +227,10 @@ void Room45::taxi_mov() {
}
_G(det)->hideStaticSpr(11);
- g_engine->_sound->playSound(15, 2);
- g_engine->_sound->playSound(15, 2, false);
- g_engine->_sound->playSound(15, 0);
+ _G(det)->playSound(15, 2);
+ _G(det)->playSound(15, 0);
startSetAILWait(15, 1, ANI_FRONT);
- g_engine->_sound->stopSound(0);
+ _G(det)->stopSound(0);
switchRoom(48);
}
diff --git a/engines/chewy/rooms/room47.cpp b/engines/chewy/rooms/room47.cpp
index f0e16282f76..297ebc32a3d 100644
--- a/engines/chewy/rooms/room47.cpp
+++ b/engines/chewy/rooms/room47.cpp
@@ -67,8 +67,7 @@ int16 Room47::use_button(int16 txt_nr) {
break;
}
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0);
+ _G(det)->playSound(0, 0);
++_G(gameState).R47Schloss[k_nr];
if (_G(gameState).R47Schloss[k_nr] > 9)
diff --git a/engines/chewy/rooms/room48.cpp b/engines/chewy/rooms/room48.cpp
index e4ca69eb146..d114a5becb3 100644
--- a/engines/chewy/rooms/room48.cpp
+++ b/engines/chewy/rooms/room48.cpp
@@ -137,7 +137,7 @@ void Room48::setup_func() {
_G(det)->stop_detail(0);
_G(det)->del_static_ani(0);
startSetAILWait(2, 1, ANI_FRONT);
- g_engine->_sound->stopSound(0);
+ _G(det)->stopSound(0);
_G(menu_item) = CUR_WALK;
cursorChoice(_G(menu_item));
showCur();
diff --git a/engines/chewy/rooms/room49.cpp b/engines/chewy/rooms/room49.cpp
index 0e1487bf415..3de0cd4d306 100644
--- a/engines/chewy/rooms/room49.cpp
+++ b/engines/chewy/rooms/room49.cpp
@@ -261,7 +261,7 @@ int16 Room49::use_taxi() {
_G(det)->hideStaticSpr(7);
startSetAILWait(5, 1, ANI_FRONT);
- g_engine->_sound->stopSound(0);
+ _G(det)->stopSound(0);
switchRoom(48);
}
diff --git a/engines/chewy/rooms/room51.cpp b/engines/chewy/rooms/room51.cpp
index 8bd50e5fe61..2981e756ee5 100644
--- a/engines/chewy/rooms/room51.cpp
+++ b/engines/chewy/rooms/room51.cpp
@@ -237,8 +237,7 @@ int16 Room51::use_door(int16 txt_nr) {
autoMove(9, P_CHEWY);
if (!_G(gameState).R51KillerWeg) {
- g_engine->_sound->playSound(2, 0);
- g_engine->_sound->playSound(2);
+ _G(det)->playSound(2, 0);
_G(det)->showStaticSpr(1);
startSetAILWait(2, 1, ANI_FRONT);
_G(det)->startDetail(5, 255, ANI_FRONT);
@@ -249,12 +248,12 @@ int16 Room51::use_door(int16 txt_nr) {
_G(det)->stop_detail(5);
startAniBlock(5, ABLOCK37);
_G(det)->hideStaticSpr(1);
- g_engine->_sound->stopSound(0);
+ _G(det)->stopSound(0);
startAadWait(284);
} else {
_G(gameState).R51KillerWeg = true;
startAadWait(290);
- g_engine->_sound->stopSound(0);
+ _G(det)->stopSound(0);
_G(out)->fadeOut();
_G(out)->setPointer(nullptr);
_G(out)->cls();
diff --git a/engines/chewy/rooms/room52.cpp b/engines/chewy/rooms/room52.cpp
index 82f6586bdcd..33216f137d6 100644
--- a/engines/chewy/rooms/room52.cpp
+++ b/engines/chewy/rooms/room52.cpp
@@ -36,10 +36,9 @@ void Room52::entry() {
if (_G(gameState).R52HotDogOk && !_G(gameState).R52KakerWeg) {
plot_armee(0);
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0);
+ _G(det)->playSound(0, 0);
} else {
- g_engine->_sound->stopSound(0);
+ _G(det)->stopSound(0);
}
if (_G(gameState).R52KakerWeg)
@@ -82,8 +81,7 @@ int16 Room52::use_hot_dog() {
autoMove(4, P_CHEWY);
_G(gameState).R52HotDogOk = true;
plot_armee(20);
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0);
+ _G(det)->playSound(0, 0);
_G(atds)->set_ats_str(341, 1, ATS_DATA);
autoMove(2, P_CHEWY);
setPersonSpr(P_LEFT, P_CHEWY);
@@ -94,8 +92,7 @@ int16 Room52::use_hot_dog() {
autoMove(5, P_CHEWY);
_G(gameState)._personHide[P_CHEWY] = true;
startSetAILWait(7, 1, ANI_FRONT);
- g_engine->_sound->playSound(7, 0);
- g_engine->_sound->playSound(7);
+ _G(det)->playSound(7, 0);
_G(det)->startDetail(8, 255, ANI_FRONT);
for (int16 i = 0; i < 5; i++) {
@@ -103,11 +100,11 @@ int16 Room52::use_hot_dog() {
_G(det)->stop_detail(2 + i);
}
- g_engine->_sound->stopSound(0);
+ _G(det)->stopSound(0);
_G(det)->stop_detail(0);
_G(det)->stop_detail(8);
startSetAILWait(7, 1, ANI_BACK);
- g_engine->_sound->stopSound(0);
+ _G(det)->stopSound(0);
_G(gameState)._personHide[P_CHEWY] = false;
_G(atds)->setControlBit(341, ATS_ACTIVE_BIT);
startAadWait(303);
diff --git a/engines/chewy/rooms/room54.cpp b/engines/chewy/rooms/room54.cpp
index d5106d73fe5..41cc9b4e8c2 100644
--- a/engines/chewy/rooms/room54.cpp
+++ b/engines/chewy/rooms/room54.cpp
@@ -138,9 +138,9 @@ int16 Room54::use_schalter() {
start_spz_wait(CH_ROCK_GET2, 1, false, P_CHEWY);
_G(det)->showStaticSpr(0);
autoMove(2, P_CHEWY);
- g_engine->_sound->playSound(1, 0);
- g_engine->_sound->playSound(0, 1);
- g_engine->_sound->stopSound(2);
+ _G(det)->playSound(1, 0);
+ _G(det)->playSound(0, 1);
+ _G(det)->stopSound(2);
startSetAILWait(1, 1, ANI_FRONT);
_G(det)->startDetail(3, 255, ANI_FRONT);
@@ -152,11 +152,11 @@ int16 Room54::use_schalter() {
if (_G(gameState).R54LiftCount < 3) {
startSetAILWait(2, 1, ANI_FRONT);
_G(det)->hideStaticSpr(0);
- g_engine->_sound->stopSound(0);
- g_engine->_sound->stopSound(1);
- g_engine->_sound->playSound(1, 2);
+ _G(det)->stopSound(0);
+ _G(det)->stopSound(1);
+ _G(det)->playSound(1, 2);
startSetAILWait(1, 1, ANI_BACK);
- g_engine->_sound->stopSound(2);
+ _G(det)->stopSound(2);
aad_nr = 295;
} else {
@@ -285,8 +285,7 @@ int16 Room54::use_azug() {
_G(gameState).R55Location = true;
_G(SetUpScreenFunc) = nullptr;
goAutoXy(91, 62, P_HOWARD, ANI_WAIT);
- g_engine->_sound->playSound(1, 0);
- g_engine->_sound->playSound(1);
+ _G(det)->playSound(1, 0);
int16 ch_y = 68;
int16 ay = 0;
@@ -326,8 +325,7 @@ void Room54::aufzug_ab() {
_G(gameState).scrollx = 0;
_G(SetUpScreenFunc) = setup_func;
_G(det)->showStaticSpr(12);
- g_engine->_sound->playSound(1, 0);
- g_engine->_sound->playSound(1);
+ _G(det)->playSound(1, 0);
int16 ch_y = -40;
int16 ay = -108;
@@ -349,7 +347,7 @@ void Room54::aufzug_ab() {
SHOULD_QUIT_RETURN;
}
- g_engine->_sound->stopSound(0);
+ _G(det)->stopSound(0);
_G(det)->hideStaticSpr(12);
setPersonPos(99, 82, P_CHEWY, P_RIGHT);
_G(gameState)._personHide[P_CHEWY] = false;
diff --git a/engines/chewy/rooms/room56.cpp b/engines/chewy/rooms/room56.cpp
index 5240db78118..66543fcb957 100644
--- a/engines/chewy/rooms/room56.cpp
+++ b/engines/chewy/rooms/room56.cpp
@@ -57,12 +57,12 @@ void Room56::entry() {
_G(zoom_horizont) = 0;
setPersonPos(-6, 16, P_HOWARD, P_RIGHT);
setPersonPos(3, 42, P_CHEWY, P_RIGHT);
- g_engine->_sound->stopSound(0);
- g_engine->_sound->playSound(7, 1);
+ _G(det)->stopSound(0);
+ _G(det)->playSound(7, 1);
startSetAILWait(7, 1, ANI_BACK);
startSetAILWait(8, 1, ANI_FRONT);
- g_engine->_sound->stopSound(1);
- g_engine->_sound->playSound(7, 0);
+ _G(det)->stopSound(1);
+ _G(det)->playSound(7, 0);
startSetAILWait(7, 1, ANI_FRONT);
setupScreen(DO_SETUP);
@@ -188,8 +188,7 @@ void Room56::entry() {
break;
}
- g_engine->_sound->playSound(9, 0);
- g_engine->_sound->playSound(9);
+ _G(det)->playSound(9, 0);
}
void Room56::xit() {
@@ -212,8 +211,8 @@ int16 Room56::use_taxi() {
action_ret = true;
hideCur();
autoMove(1, P_CHEWY);
- g_engine->_sound->stopSound(0);
- g_engine->_sound->playSound(7, 1);
+ _G(det)->stopSound(0);
+ _G(det)->playSound(7, 1);
startSetAILWait(7, 1, ANI_BACK);
_G(det)->startDetail(8, 1, ANI_FRONT);
_G(zoom_horizont) = 0;
@@ -302,12 +301,12 @@ int16 Room56::use_kneipe() {
auto_scroll(0, 0);
startSetAILWait(12, 3, ANI_FRONT);
flic_cut(FCUT_075);
- g_engine->_sound->stopSound(0);
- g_engine->_sound->playSound(9);
+ _G(det)->stopSound(0);
+ _G(det)->playSound(9, 0);
_G(det)->startDetail(10, 6, ANI_FRONT);
startAadWait(307);
_G(det)->stop_detail(10);
- g_engine->_sound->playSound(10, 0);
+ _G(det)->playSound(10, 0);
_G(out)->fadeOut();
setupScreen(DO_SETUP);
_G(gameState)._personHide[P_CHEWY] = false;
@@ -361,8 +360,7 @@ int16 Room56::use_kneipe() {
setupScreen(NO_SETUP);
_G(fx_blend) = BLEND3;
showCur();
- g_engine->_sound->playSound(9, 0);
- g_engine->_sound->playSound(9);
+ _G(det)->playSound(9, 0);
}
return action_ret;
}
diff --git a/engines/chewy/rooms/room57.cpp b/engines/chewy/rooms/room57.cpp
index bd6d9a60cb8..7c3d1b047b7 100644
--- a/engines/chewy/rooms/room57.cpp
+++ b/engines/chewy/rooms/room57.cpp
@@ -84,8 +84,7 @@ int16 Room57::use_taxi() {
action_ret = true;
hideCur();
autoMove(3, P_CHEWY);
- g_engine->_sound->playSound(3, 0);
- g_engine->_sound->playSound(3);
+ _G(det)->playSound(3, 0);
_G(det)->showStaticSpr(7);
goAutoXy(16, 160, P_CHEWY, ANI_WAIT);
_G(gameState)._personHide[P_CHEWY] = true;
@@ -98,12 +97,12 @@ int16 Room57::use_taxi() {
_G(gameState)._personRoomNr[P_HOWARD] = 48;
}
_G(det)->hideStaticSpr(7);
- g_engine->_sound->playSound(3, 1);
- g_engine->_sound->playSound(3);
+ _G(det)->playSound(3, 1);
+ _G(det)->playSound(3, 0);
_G(room)->set_timer_status(3, TIMER_STOP);
_G(det)->del_static_ani(3);
startSetAILWait(5, 1, ANI_FRONT);
- g_engine->_sound->stopSound(0);
+ _G(det)->stopSound(0);
switchRoom(48);
}
return action_ret;
@@ -140,7 +139,7 @@ int16 Room57::use_pfoertner() {
_G(gameState).room_e_obj[91].Attribut = EXIT_TOP;
_G(det)->hideStaticSpr(4);
startSetAILWait(6, 1, ANI_WAIT);
- g_engine->_sound->stopSound(0);
+ _G(det)->stopSound(0);
_G(atds)->setControlBit(358, ATS_ACTIVE_BIT);
} else {
startAadWait(349);
diff --git a/engines/chewy/rooms/room68.cpp b/engines/chewy/rooms/room68.cpp
index c0b797cadec..48057029a03 100644
--- a/engines/chewy/rooms/room68.cpp
+++ b/engines/chewy/rooms/room68.cpp
@@ -102,8 +102,8 @@ void Room68::setup_func() {
if (_G(det)->get_ani_status(_G(r68HohesC)) == false) {
_G(r68HohesC) = 2;
if (g_engine->_sound->speechEnabled()) {
- g_engine->_sound->playSound(2, 0);
- g_engine->_sound->playSound(_G(r68HohesC));
+ _G(det)->playSound(2, 0);
+ _G(det)->playSound(_G(r68HohesC), 0);
_G(det)->startDetail(_G(r68HohesC), 255, ANI_FRONT);
// TODO
@@ -360,7 +360,7 @@ void Room68::kostuem_aad(int16 aad_nr) {
startSetAILWait(23, 3, ANI_FRONT);
else {
_G(det)->startDetail(23, 255, ANI_FRONT);
- g_engine->_sound->playSound(109, 1, false);
+ _G(det)->playSound(109, 1);
waitShowScreen(2);
g_engine->_sound->waitForSpeechToFinish();
@@ -368,7 +368,7 @@ void Room68::kostuem_aad(int16 aad_nr) {
_G(det)->stop_detail(23);
}
- g_engine->_sound->playSound(108, 1, false);
+ _G(det)->playSound(108, 1);
_G(det)->startDetail(24, 255, ANI_FRONT);
setPersonPos(26, 40, P_NICHELLE, P_RIGHT);
diff --git a/engines/chewy/rooms/room69.cpp b/engines/chewy/rooms/room69.cpp
index 4bd1dc5e783..6249f2cc0ee 100644
--- a/engines/chewy/rooms/room69.cpp
+++ b/engines/chewy/rooms/room69.cpp
@@ -31,8 +31,7 @@ namespace Chewy {
namespace Rooms {
void Room69::entry(int16 eib_nr) {
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0);
+ _G(det)->playSound(0, 0);
_G(gameState).ScrollxStep = 2;
_G(gameState).ZoomXy[P_HOWARD][0] = 46;
diff --git a/engines/chewy/rooms/room70.cpp b/engines/chewy/rooms/room70.cpp
index 256e1797724..1acb1816c69 100644
--- a/engines/chewy/rooms/room70.cpp
+++ b/engines/chewy/rooms/room70.cpp
@@ -30,8 +30,7 @@ namespace Chewy {
namespace Rooms {
void Room70::entry(int16 eib_nr) {
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0);
+ _G(det)->playSound(0, 0);
_G(gameState).ScrollxStep = 2;
_G(gameState).ZoomXy[P_HOWARD][0] = 70;
_G(gameState).ZoomXy[P_HOWARD][1] = 100;
diff --git a/engines/chewy/rooms/room71.cpp b/engines/chewy/rooms/room71.cpp
index caa3e3100fd..4df1509a874 100644
--- a/engines/chewy/rooms/room71.cpp
+++ b/engines/chewy/rooms/room71.cpp
@@ -34,10 +34,8 @@ int Room71::_state;
int Room71::_delay;
void Room71::entry(int16 eib_nr) {
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0, 1);
- g_engine->_sound->playSound(0);
- g_engine->_sound->playSound(0, 1, false);
+ _G(det)->playSound(0, 0);
+ _G(det)->playSound(0, 1);
_G(gameState).ScrollxStep = 2;
_G(spieler_mi)[P_HOWARD].Mode = true;
_G(spieler_mi)[P_NICHELLE].Mode = true;
diff --git a/engines/chewy/rooms/room72.cpp b/engines/chewy/rooms/room72.cpp
index e933e8f17be..104bb56749a 100644
--- a/engines/chewy/rooms/room72.cpp
+++ b/engines/chewy/rooms/room72.cpp
@@ -30,8 +30,7 @@ namespace Chewy {
namespace Rooms {
void Room72::entry(int16 eib_nr) {
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0);
+ _G(det)->playSound(0, 0);
_G(spieler_mi)[P_HOWARD].Mode = true;
_G(spieler_mi)[P_NICHELLE].Mode = true;
diff --git a/engines/chewy/rooms/room73.cpp b/engines/chewy/rooms/room73.cpp
index 0d0685ce0d3..64f5762cdcc 100644
--- a/engines/chewy/rooms/room73.cpp
+++ b/engines/chewy/rooms/room73.cpp
@@ -30,8 +30,7 @@ namespace Chewy {
namespace Rooms {
void Room73::entry(int16 eib_nr) {
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0);
+ _G(det)->playSound(0, 0);
_G(gameState).ScrollxStep = 2;
_G(gameState).ZoomXy[P_HOWARD][0] = 70;
_G(gameState).ZoomXy[P_HOWARD][1] = 100;
diff --git a/engines/chewy/rooms/room74.cpp b/engines/chewy/rooms/room74.cpp
index b474dbd0186..2508441c664 100644
--- a/engines/chewy/rooms/room74.cpp
+++ b/engines/chewy/rooms/room74.cpp
@@ -31,8 +31,7 @@ namespace Chewy {
namespace Rooms {
void Room74::entry(int16 eib_nr) {
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0);
+ _G(det)->playSound(0, 0);
_G(gameState).ScrollxStep = 2;
_G(gameState).ZoomXy[P_HOWARD][0] = 70;
_G(gameState).ZoomXy[P_HOWARD][1] = 100;
diff --git a/engines/chewy/rooms/room75.cpp b/engines/chewy/rooms/room75.cpp
index 16fdf9e072a..371c762577f 100644
--- a/engines/chewy/rooms/room75.cpp
+++ b/engines/chewy/rooms/room75.cpp
@@ -29,8 +29,7 @@ namespace Chewy {
namespace Rooms {
void Room75::entry(int16 eib_nr) {
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0);
+ _G(det)->playSound(0, 0);
_G(gameState).ScrollxStep = 2;
_G(gameState).ZoomXy[P_HOWARD][0] = 70;
_G(gameState).ZoomXy[P_HOWARD][1] = 100;
diff --git a/engines/chewy/rooms/room76.cpp b/engines/chewy/rooms/room76.cpp
index d483ca1f5f8..3d8788bf1b4 100644
--- a/engines/chewy/rooms/room76.cpp
+++ b/engines/chewy/rooms/room76.cpp
@@ -34,10 +34,8 @@ int Room76::_state;
void Room76::entry() {
- g_engine->_sound->playSound(0,0);
- g_engine->_sound->playSound(0, 1);
- g_engine->_sound->playSound(0);
- g_engine->_sound->playSound(0, 1, false);
+ _G(det)->playSound(0,0);
+ _G(det)->playSound(0, 1);
_G(gameState).ScrollxStep = 2;
_G(SetUpScreenFunc) = setup_func;
_state = 0;
diff --git a/engines/chewy/rooms/room77.cpp b/engines/chewy/rooms/room77.cpp
index 8a47badca69..b3a2b88b775 100644
--- a/engines/chewy/rooms/room77.cpp
+++ b/engines/chewy/rooms/room77.cpp
@@ -30,10 +30,8 @@ namespace Chewy {
namespace Rooms {
void Room77::entry() {
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0, 1);
- g_engine->_sound->playSound(0);
- g_engine->_sound->playSound(0, 1, false);
+ _G(det)->playSound(0, 0);
+ _G(det)->playSound(0, 1);
_G(gameState).ScrollxStep = 2;
if (_G(gameState).r76State == 1) {
_G(gameState).flags29_4 = true;
diff --git a/engines/chewy/rooms/room78.cpp b/engines/chewy/rooms/room78.cpp
index 06b8cd88976..5b8677a3e15 100644
--- a/engines/chewy/rooms/room78.cpp
+++ b/engines/chewy/rooms/room78.cpp
@@ -31,8 +31,7 @@ namespace Rooms {
void Room78::entry() {
_G(gameState).r76State = -1;
- g_engine->_sound->playSound(0, 1);
- g_engine->_sound->playSound(0, 1, false);
+ _G(det)->playSound(0, 1);
hideCur();
_G(gameState).ScrollxStep = 1;
_G(gameState)._personHide[P_CHEWY] = true;
diff --git a/engines/chewy/rooms/room79.cpp b/engines/chewy/rooms/room79.cpp
index ef3d78b14d6..76c3ad8b184 100644
--- a/engines/chewy/rooms/room79.cpp
+++ b/engines/chewy/rooms/room79.cpp
@@ -30,8 +30,7 @@ namespace Chewy {
namespace Rooms {
void Room79::entry() {
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0);
+ _G(det)->playSound(0, 0);
_G(gameState).ScrollxStep = 2;
_G(spieler_mi)[P_HOWARD].Mode = true;
_G(spieler_mi)[P_NICHELLE].Mode = true;
diff --git a/engines/chewy/rooms/room80.cpp b/engines/chewy/rooms/room80.cpp
index dedaa32eda2..dee93f52860 100644
--- a/engines/chewy/rooms/room80.cpp
+++ b/engines/chewy/rooms/room80.cpp
@@ -32,12 +32,9 @@ void Room80::entry() {
_G(mouseLeftClick) = false;
_G(gameState).scrollx = 0;
_G(gameState).scrolly = 0;
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0, 1);
- g_engine->_sound->playSound(0, 2);
- g_engine->_sound->playSound(0);
- g_engine->_sound->playSound(0, 1, false);
- g_engine->_sound->playSound(0, 2, false);
+ _G(det)->playSound(0, 0);
+ _G(det)->playSound(0, 1);
+ _G(det)->playSound(0, 2);
if (_G(gameState).gottenDiary) {
_G(atds)->delControlBit(476, ATS_ACTIVE_BIT);
diff --git a/engines/chewy/rooms/room81.cpp b/engines/chewy/rooms/room81.cpp
index c0471cdf66c..453dbb13312 100644
--- a/engines/chewy/rooms/room81.cpp
+++ b/engines/chewy/rooms/room81.cpp
@@ -30,8 +30,7 @@ namespace Chewy {
namespace Rooms {
void Room81::entry() {
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0);
+ _G(det)->playSound(0, 0);
_G(spieler_mi)[P_HOWARD].Mode = true;
_G(spieler_mi)[P_NICHELLE].Mode = true;
_G(zoom_horizont) = 140;
diff --git a/engines/chewy/rooms/room82.cpp b/engines/chewy/rooms/room82.cpp
index 5830c6a3be4..fc9432a0ee8 100644
--- a/engines/chewy/rooms/room82.cpp
+++ b/engines/chewy/rooms/room82.cpp
@@ -34,8 +34,7 @@ namespace Chewy {
namespace Rooms {
void Room82::entry() {
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0);
+ _G(det)->playSound(0, 0);
_G(gameState).ScrollxStep = 2;
_G(spieler_mi)[P_HOWARD].Mode = true;
_G(spieler_mi)[P_NICHELLE].Mode = true;
diff --git a/engines/chewy/rooms/room83.cpp b/engines/chewy/rooms/room83.cpp
index 51fb27ef194..56b87fdb791 100644
--- a/engines/chewy/rooms/room83.cpp
+++ b/engines/chewy/rooms/room83.cpp
@@ -27,8 +27,7 @@ namespace Chewy {
namespace Rooms {
void Room83::entry() {
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0);
+ _G(det)->playSound(0, 0);
}
} // namespace Rooms
diff --git a/engines/chewy/rooms/room84.cpp b/engines/chewy/rooms/room84.cpp
index 0246e354cf3..3d86395e58b 100644
--- a/engines/chewy/rooms/room84.cpp
+++ b/engines/chewy/rooms/room84.cpp
@@ -41,7 +41,7 @@ void Room84::entry() {
_G(spieler_mi)[P_NICHELLE].Mode = true;
_G(gameState).R84GoonsPresent = !_G(gameState).R88UsedMonkey;
_flag = false;
- g_engine->_sound->playSound(0, 0);
+ _G(det)->playSound(0, 0);
if (_G(gameState).R88UsedMonkey) {
_G(det)->del_static_ani(3);
diff --git a/engines/chewy/rooms/room85.cpp b/engines/chewy/rooms/room85.cpp
index c375c3f80a3..01062ea76cd 100644
--- a/engines/chewy/rooms/room85.cpp
+++ b/engines/chewy/rooms/room85.cpp
@@ -32,10 +32,8 @@ namespace Chewy {
namespace Rooms {
void Room85::entry(int16 eib_nr) {
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0);
- g_engine->_sound->playSound(0, 1);
- g_engine->_sound->playSound(0, 1, false);
+ _G(det)->playSound(0, 0);
+ _G(det)->playSound(0, 1);
_G(gameState).ScrollxStep = 2;
_G(SetUpScreenFunc) = setup_func;
_G(spieler_mi)[P_HOWARD].Mode = true;
diff --git a/engines/chewy/rooms/room86.cpp b/engines/chewy/rooms/room86.cpp
index 9e186e0f1f8..28e6ab9d005 100644
--- a/engines/chewy/rooms/room86.cpp
+++ b/engines/chewy/rooms/room86.cpp
@@ -151,8 +151,7 @@ int Room86::proc2() {
autoMove(2, P_CHEWY);
start_spz_wait(13, 1, false, P_CHEWY);
_G(det)->startDetail(0, 255, false);
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0);
+ _G(det)->playSound(0, 0);
delInventory(_G(cur)->getInventoryCursor());
autoMove(3, P_CHEWY);
proc3(true);
@@ -184,10 +183,8 @@ void Room86::proc3(bool cond) {
_G(det)->setStaticPos(0, 352, destY, false, false);
_G(det)->showStaticSpr(0);
- g_engine->_sound->playSound(0, 1);
- g_engine->_sound->playSound(0, 2);
- g_engine->_sound->playSound(0, 1, false);
- g_engine->_sound->playSound(0, 2, false);
+ _G(det)->playSound(0, 1);
+ _G(det)->playSound(0, 2);
for (int i = 0; i < 48; ++i) {
setupScreen(NO_SETUP);
@@ -197,8 +194,8 @@ void Room86::proc3(bool cond) {
_G(out)->copyToScreen();
}
- g_engine->_sound->stopSound(1);
- g_engine->_sound->stopSound(2);
+ _G(det)->stopSound(1);
+ _G(det)->stopSound(2);
_G(flags).NoScroll = false;
}
diff --git a/engines/chewy/rooms/room90.cpp b/engines/chewy/rooms/room90.cpp
index fc2b62f9b2e..23b206e14e2 100644
--- a/engines/chewy/rooms/room90.cpp
+++ b/engines/chewy/rooms/room90.cpp
@@ -68,8 +68,7 @@ void Room90::entry(int16 eib_nr) {
if (_G(gameState).flags34_40 && !_G(gameState).flags33_40) {
_G(det)->setDetailPos(12, 329, 15);
_G(det)->startDetail(12, 255, false);
- g_engine->_sound->playSound(12, 0);
- g_engine->_sound->playSound(12);
+ _G(det)->playSound(12, 0);
}
if (_G(gameState).flags33_40 && !_G(gameState).flags34_10) {
@@ -259,8 +258,7 @@ int Room90::getHubcaps() {
auto_scroll(176, 0);
_G(det)->setDetailPos(12, 495, 15);
_G(det)->startDetail(12, 255, false);
- g_engine->_sound->playSound(12, 0);
- g_engine->_sound->playSound(12);
+ _G(det)->playSound(12, 0);
int destX = 495;
diff --git a/engines/chewy/rooms/room95.cpp b/engines/chewy/rooms/room95.cpp
index 5c45252a924..4aa4b93f34d 100644
--- a/engines/chewy/rooms/room95.cpp
+++ b/engines/chewy/rooms/room95.cpp
@@ -31,8 +31,7 @@ namespace Chewy {
namespace Rooms {
void Room95::entry(int16 eib_nr) {
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0);
+ _G(det)->playSound(0, 0);
_G(SetUpScreenFunc) = setup_func;
_G(zoom_horizont) = 140;
_G(gameState).ScrollxStep = 2;
diff --git a/engines/chewy/rooms/room97.cpp b/engines/chewy/rooms/room97.cpp
index 399c628978e..90e0e2b1f34 100644
--- a/engines/chewy/rooms/room97.cpp
+++ b/engines/chewy/rooms/room97.cpp
@@ -40,8 +40,7 @@ int Room97::_word18DB38;
bool Room97::_bool18DB3A;
void Room97::entry() {
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0);
+ _G(det)->playSound(0, 0);
_G(SetUpScreenFunc) = setup_func;
_G(zoom_horizont) = 0;
@@ -87,9 +86,9 @@ void Room97::entry() {
_G(det)->stop_detail(23 + i);
_G(det)->startDetail(27 + i, 255, ANI_FRONT);
}
- g_engine->_sound->stopSound(0);
- g_engine->_sound->stopSound(0);
- g_engine->_sound->stopSound(0);
+ _G(det)->stopSound(0);
+ _G(det)->stopSound(0);
+ _G(det)->stopSound(0);
}
if (_G(gameState).flags37_1)
@@ -339,8 +338,8 @@ void Room97::proc4() {
hideCur();
_G(spieler_mi)[P_CHEWY].Mode = true;
stopPerson(P_CHEWY);
- g_engine->_sound->playSound(9, 0);
- g_engine->_sound->stopSound(1);
+ _G(det)->playSound(9, 0);
+ _G(det)->stopSound(1);
startSetAILWait(9, 1, ANI_FRONT);
_G(det)->showStaticSpr(21);
@@ -361,8 +360,8 @@ void Room97::proc4() {
startSetAILWait(29, 1, ANI_FRONT);
_G(det)->hideStaticSpr(21);
- g_engine->_sound->playSound(9, 1);
- g_engine->_sound->stopSound(0);
+ _G(det)->playSound(9, 1);
+ _G(det)->stopSound(0);
startSetAILWait(9, 0, ANI_BACK);
goAutoXy(1008, 93, P_CHEWY, ANI_WAIT);
@@ -395,8 +394,7 @@ int Room97::proc5() {
flic_cut(FCUT_122);
register_cutscene(34);
- g_engine->_sound->playSound(0, 0);
- g_engine->_sound->playSound(0);
+ _G(det)->playSound(0, 0);
_G(gameState).scrollx = 720;
setPersonPos(822, 98, P_CHEWY, P_LEFT);
setPersonPos(861, 81, P_HOWARD, P_LEFT);
@@ -405,8 +403,8 @@ int Room97::proc5() {
_G(gameState).flags35_80 = true;
startAadWait(546);
_G(det)->hideStaticSpr(21);
- g_engine->_sound->playSound(9, 1);
- g_engine->_sound->stopSound(0);
+ _G(det)->playSound(9, 1);
+ _G(det)->stopSound(0);
startSetAILWait(9, 0, ANI_GO);
showCur();
@@ -497,8 +495,7 @@ int Room97::proc8() {
auto_scroll(406, 0);
waitShowScreen(40);
_G(det)->stop_detail(24);
- g_engine->_sound->playSound(26, 0);
- g_engine->_sound->playSound(26);
+ _G(det)->playSound(26, 0);
startSetAILWait(25, 1, ANI_FRONT);
_G(det)->startDetail(26, 255, false);
_G(det)->stop_detail(23);
@@ -563,8 +560,8 @@ int Room97::proc10() {
hideCur();
autoMove(8, P_CHEWY);
start_spz_wait(13, 1, false, P_CHEWY);
- g_engine->_sound->playSound(7, 0);
- g_engine->_sound->stopSound(1);
+ _G(det)->playSound(7, 0);
+ _G(det)->stopSound(1);
startSetAILWait(7, 1, ANI_FRONT);
_G(det)->showStaticSpr(19);
_G(gameState).flags37_1 = true;
@@ -592,8 +589,7 @@ int Room97::proc11() {
autoMove(7, P_CHEWY);
start_spz(CH_TALK6, 255, false, P_CHEWY);
startAadWait(571);
- g_engine->_sound->playSound(4, 0);
- g_engine->_sound->playSound(4);
+ _G(det)->playSound(4, 0);
_G(det)->startDetail(4, 1, false);
autoMove(12, P_CHEWY);
start_spz_wait(64, 1, false, P_CHEWY);
@@ -713,8 +709,8 @@ void Room97::sensorAnim() {
_G(det)->hideStaticSpr(27);
startSetAILWait(18, 1, ANI_FRONT);
- g_engine->_sound->playSound(8, 0);
- g_engine->_sound->stopSound(1);
+ _G(det)->playSound(8, 0);
+ _G(det)->stopSound(1);
startSetAILWait(8, 1, ANI_FRONT);
_G(det)->showStaticSpr(20);
autoMove(10, P_CHEWY);
diff --git a/engines/chewy/sound.cpp b/engines/chewy/sound.cpp
index 6674b4f40d7..86344cdaae1 100644
--- a/engines/chewy/sound.cpp
+++ b/engines/chewy/sound.cpp
@@ -47,6 +47,9 @@ Sound::~Sound() {
}
void Sound::playSound(int num, uint channel, bool loop, uint16 volume, uint16 balance) {
+ if (num < 0)
+ return;
+
SoundChunk *sound = _soundRes->getSound(num);
uint8 *data = (uint8 *)MALLOC(sound->size);
memcpy(data, sound->data, sound->size);
More information about the Scummvm-git-logs
mailing list