mirror of
https://github.com/kichikuou/system3-sdl2.git
synced 2026-10-05 21:38:09 +03:00
Minor refactoring of MAKO
- Move select_sound() from NACT to MAKO - Make cd_track private
This commit is contained in:
+10
-1
@@ -14,6 +14,11 @@
|
||||
#include "../common.h"
|
||||
#include "nact.h"
|
||||
|
||||
enum BGMDevice {
|
||||
BGM_FM,
|
||||
BGM_CD
|
||||
};
|
||||
|
||||
class MAKO
|
||||
{
|
||||
public:
|
||||
@@ -29,7 +34,11 @@ public:
|
||||
void stop_pcm();
|
||||
bool check_pcm();
|
||||
|
||||
void set_cd_track(int num, int track) { cd_track[num] = track; }
|
||||
|
||||
#ifdef _WIN32
|
||||
void select_sound(BGMDevice dev);
|
||||
|
||||
void on_mci_notify(SDL_SysWMmsg* msg);
|
||||
#endif
|
||||
|
||||
@@ -39,10 +48,10 @@ public:
|
||||
|
||||
int current_music;
|
||||
int next_loop; // Y19
|
||||
int cd_track[100]; // Z
|
||||
|
||||
private:
|
||||
NACT* nact;
|
||||
int cd_track[100]; // Z
|
||||
|
||||
#if !defined(__EMSCRIPTEN__) && !defined(__ANDROID__)
|
||||
bool load_playlist(const char* path);
|
||||
|
||||
@@ -420,23 +420,6 @@ void NACT::select_cursor()
|
||||
ags->select_cursor();
|
||||
}
|
||||
|
||||
void NACT::select_sound(int dev)
|
||||
{
|
||||
// 強制的に音源を変更する
|
||||
int page = mako->current_music;
|
||||
int old_dev = (1 <= page && page <= 99 && mako->cd_track[page]) ? 1 : 0;
|
||||
|
||||
for(int i = 1; i <= 99; i++) {
|
||||
mako->cd_track[i] = dev ? i : 0;
|
||||
}
|
||||
|
||||
// デバイスが変更された場合は再演奏する
|
||||
if(dev != old_dev && page) {
|
||||
mako->stop_music();
|
||||
mako->play_music(page);
|
||||
}
|
||||
}
|
||||
|
||||
void NACT::fatal(const char* format, ...) {
|
||||
char buf[512];
|
||||
va_list args;
|
||||
|
||||
@@ -241,7 +241,6 @@ public:
|
||||
int get_screen_height();
|
||||
|
||||
void select_cursor();
|
||||
void select_sound(int dev);
|
||||
|
||||
const char* get_game_id();
|
||||
static const int get_sys_ver(uint32 crc32_a, uint32 crc32_b);
|
||||
|
||||
@@ -1526,7 +1526,7 @@ void NACT_Sys3::cmd_z()
|
||||
} else if(cmd == 7) {
|
||||
ags->cursor_color = (uint8)(param & 0xff);
|
||||
} else if(101 <= cmd && cmd <= 199) {
|
||||
mako->cd_track[cmd - 100] = param;
|
||||
mako->set_cd_track(cmd - 100, param);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -304,6 +304,23 @@ bool MAKO::check_music()
|
||||
return music && music->is_playing();
|
||||
}
|
||||
|
||||
void MAKO::select_sound(BGMDevice dev)
|
||||
{
|
||||
// 強制的に音源を変更する
|
||||
int page = current_music;
|
||||
int old_dev = (1 <= page && page <= 99 && cd_track[page]) ? BGM_CD : BGM_FM;
|
||||
|
||||
for (int i = 1; i <= 99; i++) {
|
||||
cd_track[i] = (dev == BGM_CD) ? i : 0;
|
||||
}
|
||||
|
||||
// デバイスが変更された場合は再演奏する
|
||||
if (dev != old_dev && page) {
|
||||
stop_music();
|
||||
play_music(page);
|
||||
}
|
||||
}
|
||||
|
||||
void MAKO::get_mark(int* mark, int* loop)
|
||||
{
|
||||
// TODO: fix
|
||||
|
||||
@@ -150,10 +150,10 @@ void NACT::on_syswmevent(SDL_SysWMmsg* msg)
|
||||
ags->flush_screen(true);
|
||||
break;
|
||||
case ID_SOUND_FM:
|
||||
select_sound(0);
|
||||
mako->select_sound(BGM_FM);
|
||||
break;
|
||||
case ID_SOUND_CD:
|
||||
select_sound(1);
|
||||
mako->select_sound(BGM_CD);
|
||||
break;
|
||||
case ID_TEXT_SKIP:
|
||||
text_skip_enb = !text_skip_enb;
|
||||
|
||||
Reference in New Issue
Block a user