[Scummvm-git-logs] scummvm master -> f0eabd195220b68b0763f986c15c990f6e7c43c5

tag2015 noreply at scummvm.org
Thu May 25 13:00:49 UTC 2023


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
d792d5e32f AGS: Implement Click method in agsjoy plugin
8dc305eadf AGS: Mark steam/demo versions of Until I Have You as supported
f0eabd1952 AGS: Add workarounds in AGSController plugin for UIHY


Commit: d792d5e32f061537b9e0a284a0dcae7819ba2827
    https://github.com/scummvm/scummvm/commit/d792d5e32f061537b9e0a284a0dcae7819ba2827
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-05-25T11:11:07+02:00

Commit Message:
AGS: Implement Click method in agsjoy plugin

This is needed to use the keyboard in Until I Have You (Demo) menus

Changed paths:
    engines/ags/plugins/ags_joy/ags_joy.cpp


diff --git a/engines/ags/plugins/ags_joy/ags_joy.cpp b/engines/ags/plugins/ags_joy/ags_joy.cpp
index e50e57a7330..27af71eea2e 100644
--- a/engines/ags/plugins/ags_joy/ags_joy.cpp
+++ b/engines/ags/plugins/ags_joy/ags_joy.cpp
@@ -73,6 +73,9 @@ void AGSJoy::IsOpen(ScriptMethodParams &params) {
 }
 
 void AGSJoy::Click(ScriptMethodParams &params) {
+	PARAMS1(int, button);
+
+	PluginSimulateMouseClick(button);
 }
 
 void AGSJoy::Close(ScriptMethodParams &params) {


Commit: 8dc305eadff21d6894feb81d0e2b052090f5fe57
    https://github.com/scummvm/scummvm/commit/8dc305eadff21d6894feb81d0e2b052090f5fe57
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-05-25T13:03:10+02:00

Commit Message:
AGS: Mark steam/demo versions of Until I Have You as supported

Gamepad support is not implemented, but mouse/keyboard works fine

Changed paths:
    engines/ags/detection_tables.h


diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 08d1bd69578..9aca40bfaa4 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -3777,8 +3777,6 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
 	// Commercial game that likely uses custom extensions. Not only does it seem
 	// to use AGSController plugin built-in, even when I hooked up AGSController for
 	// the stand-alone AGS 3.5 interpreter, it hangs just like in ScummVM
-	UNSUPPORTED_DEMO_ENTRY("untilihaveyou", "until i have you.exe", "cda1d7e36993dd55ba5513c1c43e5b2b", 457842687),
-	UNSUPPORTED_GAME_ENTRY("untilihaveyou", "until i have you.exe", "cda1d7e36993dd55ba5513c1c43e5b2b", 1089857773), // Steam
 	UNSUPPORTED_GAME_ENTRY("untilihaveyou", "until i have you.exe", "cda1d7e36993dd55ba5513c1c43e5b2b", 1072879555),
 	// 2.55 game, but uses a plugin agsflashlight. Also, even with AGS interpreter
 	// hacked to specify plugin, errors on loading room107 saying that
@@ -4178,6 +4176,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
 	GAME_ENTRY_EN_GOG("unavowed", "Unavowed.exe", "52c411caa3bfb65788ed8768ceaa0c30", 1756040362), // Linux/Windows v.1.0.0 (GOG v1.31)
 	GAME_ENTRY_EN_GOG("unavowed", "Unavowed.exe", "52c411caa3bfb65788ed8768ceaa0c30", 1756041833), // Linux/Windows v.1.0.1 (GOG v1.32)
 	GAME_ENTRY_EN_GOG("unavowed", "Unavowed.exe", "52c411caa3bfb65788ed8768ceaa0c30", 1756042001), // Linux/Windows v.1.0.2 (GOG v1.4)
+	GAME_ENTRY_EN_STEAM("untilihaveyou", "until i have you.exe", "cda1d7e36993dd55ba5513c1c43e5b2b", 1089857773), // Steam
 	GAME_ENTRY_EN_STEAM("waitingfortheloop", "waitingfortheloop.exe", "0241777c2537fc5d077c05cde10bfa9f", 51472537),
 	GAME_ENTRY_EN("waitingfortheloop", "waitingfortheloop.exe", "0241777c2537fc5d077c05cde10bfa9f", 51273604),
 	GAME_ENTRY("welcometosunnymunarvagir", "alpha4.ags", "392dbdd0697ae32af4cfe5212f9213c5", 23000263),
@@ -4713,6 +4712,8 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
 	DEMO_ENTRY_LANG("tsomi2", "The Secret of Monkey Island 2.exe", "3b7cceb3e4bdb031dc5d8f290936e94b", 5075308, Common::ES_ESP),
 	DEMO_ENTRY_LANG("ultimalatinvii", "UltimaVIILatin1.0.exe", "63f8a60cc094996bd070e68cb3c4722c", 83843416, Common::ES_ESP),  // v1.00 demo/beta
 	GAME_ENTRY_LANG_PLATFORM("ultimalatinvii", "UltimaLauncher.exe", "63f8a60cc094996bd070e68cb3c4722c", 9065961, Common::ES_ESP, "Launcher"),
+	DEMO_ENTRY_EN("untilihaveyou", "until i have you.exe", "cda1d7e36993dd55ba5513c1c43e5b2b", 457842687),
+	DEMO_ENTRY_EN("untilihaveyou", "Until I Have You Demo.exe", "cda1d7e36993dd55ba5513c1c43e5b2b", 479749741),
 	DEMO_ENTRY_EN("updatequest", "U-Quest.exe", "06a03fe35791b0578068ab1873455463", 1776804),
 	DEMO_ENTRY_EN("valis", "valis 0.70.exe", "0710e2ec71042617f565c01824f0cf3c", 4348394),
 	DEMO_ENTRY_LANG("villard", "VMF_DEMO 2.0.1.exe", "534f936a0fac0c6f72b6ce6aaa6c9ce2", 653406938, Common::IT_ITA),


Commit: f0eabd195220b68b0763f986c15c990f6e7c43c5
    https://github.com/scummvm/scummvm/commit/f0eabd195220b68b0763f986c15c990f6e7c43c5
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-05-25T14:46:53+02:00

Commit Message:
AGS: Add workarounds in AGSController plugin for UIHY

* Use PluginSimulateMouseClick instead of eventmanager, this is needed
for the menus to work properly;
* Disable gamepad support - The current implementation does not work and
crashes in the options menu (controller support is problematic even in the
original game). Creating a map for ScummVM's keymapper specifically
for this game would probably be a better solution

Changed paths:
    engines/ags/plugins/ags_controller/ags_controller.cpp


diff --git a/engines/ags/plugins/ags_controller/ags_controller.cpp b/engines/ags/plugins/ags_controller/ags_controller.cpp
index 83853cc6360..35b74b2937b 100644
--- a/engines/ags/plugins/ags_controller/ags_controller.cpp
+++ b/engines/ags/plugins/ags_controller/ags_controller.cpp
@@ -65,6 +65,15 @@ void AGSController::Controller_Update() {
 }
 
 void AGSController::ControllerCount(ScriptMethodParams &params) {
+
+	// WORKAROUND: The current implementation doesn't work at all, in UIHY at least
+	// Just disable the gamepad for now, also to prevent accessing the controller options
+	// that crash everything
+	if ((ConfMan.get("gameid") == "untilihaveyou")) {
+		debug(0, "AGSController: Returning ControllerCount=0 to force-disable controller!");
+		params._result = 0;
+		return;
+	}
 	int joystickNum = ConfMan.getInt("joystick_num");
 	params._result = (joystickNum == -1) ? 0 : 1;
 }
@@ -129,6 +138,15 @@ void AGSController::Controller_BatteryStatus(ScriptMethodParams &params) {
 
 void AGSController::ClickMouse(ScriptMethodParams &params) {
 	PARAMS1(int, button);
+
+	// WORKAROUND: This method is used to fake mouseclicks in the game menus (for keyboard
+	// and gamepad control) but the implementation using eventmanager doesn't seem to work
+	// Just use PluginSimulateMouseClick, which matches AGSController original implementation
+	if ((ConfMan.get("gameid") == "untilihaveyou")) {
+		PluginSimulateMouseClick(button);
+		return;
+	}
+
 	assert(button < 3);
 	Common::EventType DOWN[3] = {
 		Common::EVENT_LBUTTONDOWN, Common::EVENT_RBUTTONDOWN, Common::EVENT_MBUTTONDOWN




More information about the Scummvm-git-logs mailing list