Windows: Add a menu command to control automatic mouse movement

This commit is contained in:
kichikuou
2022-08-07 17:36:13 +09:00
parent b1a2221f9f
commit 2f55371c10
5 changed files with 41 additions and 24 deletions
+1
View File
@@ -268,6 +268,7 @@ public:
void set_skip_menu_state(bool enabled, bool checked);
bool text_wait_enb; // テキスト表示のウェイト有効/無効
bool mouse_move_enabled = true;
int sys_ver;
uint32 crc32_a; // ADISK
uint32 crc32_b; // BDISK for D.P.S -SG- and Super D.P.S
+2
View File
@@ -114,6 +114,8 @@ void NACT::get_cursor(int* x, int* y)
void NACT::set_cursor(int x, int y)
{
if (!mouse_move_enabled)
return;
ags->translate_mouse_coords(&x, &y);
SDL_WarpMouseInWindow(g_window, x, y);
}
+12 -5
View File
@@ -21,13 +21,15 @@ HWND get_hwnd(SDL_Window* window) {
return info.info.win.window;
}
void init_menu()
void init_menu(bool mouse_move_enabled)
{
HINSTANCE hinst = (HINSTANCE)GetModuleHandle(NULL);
HMENU hmenu = LoadMenu(hinst, MAKEINTRESOURCE(IDR_MENU1));
SetMenu(get_hwnd(g_window), hmenu);
// Let SDL recalc the window size, taking menu height into account.
SDL_SetWindowSize(g_window, 640, 400);
if (mouse_move_enabled)
CheckMenuItem(hmenu, ID_OPTION_MOUSE_MOVE, MF_BYCOMMAND | MFS_CHECKED);
}
void init_console(int sys_ver)
@@ -129,7 +131,7 @@ void NACT::text_dialog()
void NACT::platform_initialize()
{
init_menu();
init_menu(mouse_move_enabled);
init_console(sys_ver);
SDL_EventState(SDL_SYSWMEVENT, SDL_ENABLE);
}
@@ -188,13 +190,18 @@ bool NACT::handle_platform_event(const SDL_Event& e)
SDL_SetWindowFullscreen(g_window, SDL_WINDOW_FULLSCREEN_DESKTOP);
ags->flush_screen(true);
break;
case ID_SOUND_FM:
case ID_OPTION_MOUSE_MOVE:
mouse_move_enabled = !mouse_move_enabled;
CheckMenuItem(GetMenu(get_hwnd(g_window)), ID_OPTION_MOUSE_MOVE,
MF_BYCOMMAND | mouse_move_enabled ? MFS_CHECKED : MFS_UNCHECKED);
break;
case ID_OPTION_FM:
mako->select_sound(BGM_FM);
break;
case ID_SOUND_MIDI:
case ID_OPTION_MIDI:
mako->select_sound(BGM_MIDI);
break;
case ID_SOUND_CD:
case ID_OPTION_CD:
mako->select_sound(BGM_CD);
break;
case ID_TEXT_SKIP:
+8 -7
View File
@@ -22,12 +22,13 @@
#define ID_SCREENSHOT 40000
#define ID_RESTART 40001
#define ID_EXIT 40002
#define ID_SCREEN_WINDOW 40003
#define ID_SCREEN_FULL 40004
#define ID_SOUND_FM 40005
#define ID_SOUND_MIDI 40006
#define ID_SOUND_CD 40007
#define ID_TEXT_SKIP 40008
#define ID_TEXT_WAIT 40009
#define ID_SCREEN_WINDOW 40010
#define ID_SCREEN_FULL 40011
#define ID_OPTION_MOUSE_MOVE 40020
#define ID_OPTION_FM 40021
#define ID_OPTION_MIDI 40022
#define ID_OPTION_CD 40023
#define ID_TEXT_SKIP 40030
#define ID_TEXT_WAIT 40031
#endif // _RESOURCE_H_
+18 -12
View File
@@ -98,11 +98,13 @@ BEGIN
MENUITEM "Window", ID_SCREEN_WINDOW
MENUITEM "Fullscreen", ID_SCREEN_FULL
END
POPUP "Sound"
POPUP "Option"
BEGIN
MENUITEM "FM Sound", ID_SOUND_FM
MENUITEM "MIDI Sound", ID_SOUND_MIDI
MENUITEM "CD Audio", ID_SOUND_CD
MENUITEM "Mouse Movement", ID_OPTION_MOUSE_MOVE
MENUITEM SEPARATOR
MENUITEM "FM Sound", ID_OPTION_FM
MENUITEM "MIDI Sound", ID_OPTION_MIDI
MENUITEM "CD Audio", ID_OPTION_CD
END
POPUP "Message"
BEGIN
@@ -152,11 +154,13 @@ BEGIN
MENUITEM "ウィンドウ", ID_SCREEN_WINDOW
MENUITEM "フルスクリーン", ID_SCREEN_FULL
END
POPUP "サウンド"
POPUP "オプション"
BEGIN
MENUITEM "FM音源", ID_SOUND_FM
MENUITEM "MIDI音源", ID_SOUND_MIDI
MENUITEM "CD音源", ID_SOUND_CD
MENUITEM "マウスカーソル移動", ID_OPTION_MOUSE_MOVE
MENUITEM SEPARATOR
MENUITEM "FM音源", ID_OPTION_FM
MENUITEM "MIDI音源", ID_OPTION_MIDI
MENUITEM "CD音源", ID_OPTION_CD
END
POPUP "メッセージ"
BEGIN
@@ -206,11 +210,13 @@ BEGIN
MENUITEM "窗口化", ID_SCREEN_WINDOW
MENUITEM "全屏化", ID_SCREEN_FULL
END
POPUP "音源"
POPUP "选项"
BEGIN
MENUITEM "FM 音源", ID_SOUND_FM
MENUITEM "MIDI 音源", ID_SOUND_MIDI
MENUITEM "CD 音源", ID_SOUND_CD
MENUITEM "Mouse Movement", ID_OPTION_MOUSE_MOVE
MENUITEM SEPARATOR
MENUITEM "FM 音源", ID_OPTION_FM
MENUITEM "MIDI 音源", ID_OPTION_MIDI
MENUITEM "CD 音源", ID_OPTION_CD
END
POPUP "消息"
BEGIN