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

dreammaster paulfgilbert at gmail.com
Fri May 8 01:33:18 UTC 2020


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

Summary:
5be5920795 ULTIMA4: Deprecating in-game key repeat settings
314df69117 ULTIMA4: Cleanup of other remaining TODOs
57453ad556 ULTIMA4: Fix implementation of peer action
a96006d56b ULTIMA8: Fix negative uint warning


Commit: 5be5920795f861a24996d266d9a6211b62a8700f
    https://github.com/scummvm/scummvm/commit/5be5920795f861a24996d266d9a6211b62a8700f
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-05-07T18:29:08-07:00

Commit Message:
ULTIMA4: Deprecating in-game key repeat settings

Changed paths:
    engines/ultima/ultima4/controllers/intro_controller.cpp
    engines/ultima/ultima4/controllers/intro_controller.h
    engines/ultima/ultima4/controllers/key_handler_controller.cpp
    engines/ultima/ultima4/controllers/key_handler_controller.h
    engines/ultima/ultima4/core/settings.cpp
    engines/ultima/ultima4/core/settings.h
    engines/ultima/ultima4/gfx/screen.cpp


diff --git a/engines/ultima/ultima4/controllers/intro_controller.cpp b/engines/ultima/ultima4/controllers/intro_controller.cpp
index aa0c776827..f30aa219a3 100644
--- a/engines/ultima/ultima4/controllers/intro_controller.cpp
+++ b/engines/ultima/ultima4/controllers/intro_controller.cpp
@@ -234,11 +234,8 @@ IntroController::IntroController() : Controller(1),
 	_soundMenu.setClosesMenu(USE_SETTINGS);
 	_soundMenu.setClosesMenu(CANCEL);
 
-	_inputMenu.setTitle("Keyboard Options:", 0, 0);
-	_inputMenu.add(MI_INPUT_01,  new IntMenuItem("Repeat Delay        %4d msec", 2,  2,/*'d'*/  7, &_settingsChanged._keyDelay, 100, MAX_KEY_DELAY, 100));
-	_inputMenu.add(MI_INPUT_02,  new IntMenuItem("Repeat Interval     %4d msec", 2,  3,/*'i'*/  7, &_settingsChanged._keyInterval, 10, MAX_KEY_INTERVAL, 10));
-	/* "Mouse Options:" is drawn in the updateInputMenu() function */
-	_inputMenu.add(MI_INPUT_03, new BoolMenuItem("Mouse                %s",      2,  7,/*'m'*/  0, &_settingsChanged._mouseOptions._enabled));
+	_inputMenu.setTitle("Mouse Options:", 0, 0);
+	_inputMenu.add(MI_INPUT_03, new BoolMenuItem("Mouse                %s",      2,  2,/*'m'*/  0, &_settingsChanged._mouseOptions._enabled));
 	_inputMenu.add(USE_SETTINGS,                 "\010 Use These Settings",      2, 11,/*'u'*/  2);
 	_inputMenu.add(CANCEL,                       "\010 Cancel",                  2, 12,/*'c'*/  2);
 	_inputMenu.addShortcutKey(CANCEL, ' ');
@@ -1137,9 +1134,6 @@ void IntroController::updateInputMenu(MenuEvent &event) {
 			settings.setData(_settingsChanged);
 			settings.write();
 
-			// re-initialize keyboard
-			KeyHandler::setKeyRepeat(_settingsChanged._keyDelay, _settingsChanged._keyInterval);
-
 #ifdef SLACK_ON_SDL_AGNOSTICISM
 			if (settings.mouseOptions.enabled) {
 				SDL_ShowCursor(SDL_ENABLE);
@@ -1161,9 +1155,6 @@ void IntroController::updateInputMenu(MenuEvent &event) {
 	// draw the extended background for all option screens
 	_backgroundArea.draw(BKGD_OPTIONS_TOP, 0, 0);
 	_backgroundArea.draw(BKGD_OPTIONS_BTM, 0, 120);
-
-	// after drawing the menu, extra menu text can be added here
-	_extendedMenuArea.textAt(0, 5, "Mouse Options:");
 }
 
 void IntroController::updateSpeedMenu(MenuEvent &event) {
diff --git a/engines/ultima/ultima4/controllers/intro_controller.h b/engines/ultima/ultima4/controllers/intro_controller.h
index 1d437be6eb..968e85b11e 100644
--- a/engines/ultima/ultima4/controllers/intro_controller.h
+++ b/engines/ultima/ultima4/controllers/intro_controller.h
@@ -126,7 +126,7 @@ public:
 	/**
 	 * Update the screen when an observed menu is reset or has an item
 	 * activated.
-	 * TODO, reduce duped code.
+	 * TODO: Reduce duped code.
 	 */
 	void update(Menu *menu, MenuEvent &event);
 	void updateConfMenu(MenuEvent &event);
@@ -292,8 +292,6 @@ private:
 		MI_GFX_TILE_TRANSPARENCY_SHADOW_OPACITY,
 		MI_GFX_RETURN,
 		MI_SOUND_03,
-		MI_INPUT_01,
-		MI_INPUT_02,
 		MI_INPUT_03,
 		MI_SPEED_01,
 		MI_SPEED_02,
diff --git a/engines/ultima/ultima4/controllers/key_handler_controller.cpp b/engines/ultima/ultima4/controllers/key_handler_controller.cpp
index 61a56a95c4..a90b43887c 100644
--- a/engines/ultima/ultima4/controllers/key_handler_controller.cpp
+++ b/engines/ultima/ultima4/controllers/key_handler_controller.cpp
@@ -36,17 +36,6 @@ KeyHandler::KeyHandler(Callback func, void *d, bool asyncronous) :
 	_data(d) {
 }
 
-/**
- * Sets the key-repeat characteristics of the keyboard.
- */
-int KeyHandler::setKeyRepeat(int delay, int interval) {
-#ifdef TODO
-	return SDL_EnableKeyRepeat(delay, interval);
-#else
-	return 0;
-#endif
-}
-
 bool KeyHandler::globalHandler(int key) {
 	if (key == Common::KEYCODE_F5) {
 		(void)g_ultima->saveGameDialog();
diff --git a/engines/ultima/ultima4/controllers/key_handler_controller.h b/engines/ultima/ultima4/controllers/key_handler_controller.h
index 52dbf53892..190b3a56b6 100644
--- a/engines/ultima/ultima4/controllers/key_handler_controller.h
+++ b/engines/ultima/ultima4/controllers/key_handler_controller.h
@@ -55,9 +55,6 @@ public:
 	/* Constructors */
 	KeyHandler(Callback func, void *data = nullptr, bool asyncronous = true);
 
-	/* Static functions */
-	static int setKeyRepeat(int delay, int interval);
-
 	/**
 	 * Handles any and all keystrokes.
 	 * Generally used to exit the application, switch applications,
diff --git a/engines/ultima/ultima4/core/settings.cpp b/engines/ultima/ultima4/core/settings.cpp
index 24c672226a..e30ae72884 100644
--- a/engines/ultima/ultima4/core/settings.cpp
+++ b/engines/ultima/ultima4/core/settings.cpp
@@ -65,8 +65,6 @@ bool SettingsData::operator==(const SettingsData &s) const {
 		&& _screenAnimationFramesPerSecond == s._screenAnimationFramesPerSecond
 		&& _innAlwaysCombat == s._innAlwaysCombat
 		&& _innTime == s._innTime
-		&& _keyDelay == s._keyDelay
-		&& _keyInterval == s._keyInterval
 		&& _mouseOptions == s._mouseOptions
 		&& _screenShakes == s._screenShakes
 		&& _gamma == s._gamma
@@ -145,8 +143,6 @@ void Settings::synchronize(Shared::ConfSerializer &s) {
 	s.syncAsInt("gamma", _gamma, DEFAULT_GAMMA);
 	s.syncAsBool("volumeFades", _volumeFades, DEFAULT_VOLUME_FADES);
 	s.syncAsBool("shortcutCommands", _shortcutCommands, DEFAULT_SHORTCUT_COMMANDS);
-	s.syncAsInt("keydelay", _keyDelay, DEFAULT_KEY_DELAY);
-	s.syncAsInt("keyinterval", _keyInterval, DEFAULT_KEY_INTERVAL);
 	s.syncAsBool("filterMoveMessages", _filterMoveMessages, DEFAULT_FILTER_MOVE_MESSAGES);
 	s.syncAsInt("battlespeed", _battleSpeed, DEFAULT_BATTLE_SPEED);
 	s.syncAsBool("enhancements", _enhancements, DEFAULT_ENHANCEMENTS);
diff --git a/engines/ultima/ultima4/core/settings.h b/engines/ultima/ultima4/core/settings.h
index b6b51b2321..96c3320a67 100644
--- a/engines/ultima/ultima4/core/settings.h
+++ b/engines/ultima/ultima4/core/settings.h
@@ -118,8 +118,6 @@ public:
 	int _screenAnimationFramesPerSecond;
 	bool _innAlwaysCombat;
 	int _innTime;
-	int _keyDelay;
-	int _keyInterval;
 	MouseOptions _mouseOptions;
 	uint _scale;
 	bool _screenShakes;
diff --git a/engines/ultima/ultima4/gfx/screen.cpp b/engines/ultima/ultima4/gfx/screen.cpp
index 201511d789..ef451f7113 100644
--- a/engines/ultima/ultima4/gfx/screen.cpp
+++ b/engines/ultima/ultima4/gfx/screen.cpp
@@ -90,8 +90,6 @@ void Screen::init() {
 
 	debug(1, "using %s scaler\n", settings._filter.c_str());
 
-	KeyHandler::setKeyRepeat(settings._keyDelay, settings._keyInterval);
-
 	/* find the tile animations for our tileset */
 	_tileAnims = nullptr;
 	for (Std::vector<TileAnimSet *>::const_iterator i = _tileAnimSets.begin(); i != _tileAnimSets.end(); i++) {


Commit: 314df6911776093318af7e611674fa9a66e28832
    https://github.com/scummvm/scummvm/commit/314df6911776093318af7e611674fa9a66e28832
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-05-07T18:29:08-07:00

Commit Message:
ULTIMA4: Cleanup of other remaining TODOs

Changed paths:
    engines/ultima/ultima4/events/timed_event_mgr.cpp
    engines/ultima/ultima4/events/timed_event_mgr.h
    engines/ultima/ultima4/gfx/image.cpp
    engines/ultima/ultima4/gfx/screen.cpp
    engines/ultima/ultima4/map/map.cpp


diff --git a/engines/ultima/ultima4/events/timed_event_mgr.cpp b/engines/ultima/ultima4/events/timed_event_mgr.cpp
index 51a2c66dbf..b6623a6337 100644
--- a/engines/ultima/ultima4/events/timed_event_mgr.cpp
+++ b/engines/ultima/ultima4/events/timed_event_mgr.cpp
@@ -43,24 +43,6 @@ void TimedEventMgr::poll() {
 
 void TimedEventMgr::reset(uint interval) {
 	_baseInterval = interval;
-	stop();
-	start();
-}
-
-void TimedEventMgr::stop() {
-#ifdef TODO
-	if (id) {
-		SDL_RemoveTimer(static_cast<SDL_TimerID>(id));
-		id = nullptr;
-	}
-#endif
-}
-
-void TimedEventMgr::start() {
-#ifdef TODO
-	if (!id)
-		id = static_cast<void *>(SDL_AddTimer(baseInterval, &TimedEventMgr::callback, this));
-#endif
 }
 
 /*-------------------------------------------------------------------*/
diff --git a/engines/ultima/ultima4/events/timed_event_mgr.h b/engines/ultima/ultima4/events/timed_event_mgr.h
index 6d72cb45fa..d42c5935bb 100644
--- a/engines/ultima/ultima4/events/timed_event_mgr.h
+++ b/engines/ultima/ultima4/events/timed_event_mgr.h
@@ -110,8 +110,6 @@ public:
 	 * Runs each of the callback functions of the TimedEvents associated with this manager.
 	 */
 	void tick();
-	void stop();
-	void start();
 
 	/**
 	 * Re-initializes the timer manager to a new timer granularity
diff --git a/engines/ultima/ultima4/gfx/image.cpp b/engines/ultima/ultima4/gfx/image.cpp
index d7a5b2b13e..efbb43b924 100644
--- a/engines/ultima/ultima4/gfx/image.cpp
+++ b/engines/ultima/ultima4/gfx/image.cpp
@@ -229,9 +229,10 @@ bool Image::getTransparentIndex(uint &index) const {
 
 void Image::initializeToBackgroundColor(RGBA backgroundColor) {
 	if (_paletted)
-		error("Not supported"); //TODO, this better
-	this->_backgroundColor = backgroundColor;
-	this->fillRect(0, 0, _surface->w, _surface->h, backgroundColor.r,
+		error("initializeToBackgroundColor: Not supported");
+
+	_backgroundColor = backgroundColor;
+	fillRect(0, 0, _surface->w, _surface->h, backgroundColor.r,
 		backgroundColor.g, backgroundColor.b, backgroundColor.a);
 }
 
@@ -280,7 +281,6 @@ void Image::makeBackgroundColorTransparent(int haloSize, int shadowOpacity) {
 	performTransparencyHack(bgColor, 1, 0, haloSize, shadowOpacity);
 }
 
-//TODO Separate functionalities found in here
 void Image::performTransparencyHack(uint colorValue, uint numFrames,
                                     uint currentFrameIndex, uint haloWidth,
                                     uint haloOpacityIncrementByPixelDistance) {
diff --git a/engines/ultima/ultima4/gfx/screen.cpp b/engines/ultima/ultima4/gfx/screen.cpp
index ef451f7113..a63b0a45ee 100644
--- a/engines/ultima/ultima4/gfx/screen.cpp
+++ b/engines/ultima/ultima4/gfx/screen.cpp
@@ -1208,7 +1208,7 @@ void Screen::screenGemUpdate() {
 	Layout *layout = screenGetGemLayout(g_context->_location->_map);
 
 
-	//TODO, move the code responsible for determining 'peer' visibility to a non SDL specific part of the code.
+	// TODO: Move the code responsible for determining 'peer' visibility to a non SDL specific part of the code.
 	if (g_context->_location->_map->_type == Map::DUNGEON) {
 		//DO THE SPECIAL DUNGEON MAP TRAVERSAL
 		Std::vector<Std::vector<int> > drawnTiles(layout->_viewport.width(), Std::vector<int>(layout->_viewport.height(), 0));
diff --git a/engines/ultima/ultima4/map/map.cpp b/engines/ultima/ultima4/map/map.cpp
index af89855c07..9f9eb92d80 100644
--- a/engines/ultima/ultima4/map/map.cpp
+++ b/engines/ultima/ultima4/map/map.cpp
@@ -48,7 +48,6 @@ bool MapCoords::operator!=(const MapCoords &a) const {
 	return !operator==(a);
 }
 bool MapCoords::operator<(const MapCoords &a)  const {
-	// TODO: cooler boolean logic
 	if (x > a.x)
 		return false;
 	if (y > a.y)


Commit: 57453ad5567e53d775043a457f99d6a453d660b7
    https://github.com/scummvm/scummvm/commit/57453ad5567e53d775043a457f99d6a453d660b7
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-05-07T18:29:08-07:00

Commit Message:
ULTIMA4: Fix implementation of peer action

Changed paths:
    engines/ultima/shared/engine/debugger.h
    engines/ultima/ultima4/core/debugger.cpp
    engines/ultima/ultima4/core/debugger.h
    engines/ultima/ultima4/game/game.cpp
    engines/ultima/ultima4/meta_engine.cpp
    engines/ultima/ultima4/meta_engine.h


diff --git a/engines/ultima/shared/engine/debugger.h b/engines/ultima/shared/engine/debugger.h
index 12767e387a..523e003ca3 100644
--- a/engines/ultima/shared/engine/debugger.h
+++ b/engines/ultima/shared/engine/debugger.h
@@ -41,6 +41,13 @@ protected:
 	 */
 	int strToInt(const char *s);
 
+	/**
+	 * Converts a string to a boolean
+	 */
+	bool strToBool(const char *s) {
+		return s && tolower(*s) == 't';
+	}
+
 	/**
 	 * Split up a command string into arg values
 	 */
diff --git a/engines/ultima/ultima4/core/debugger.cpp b/engines/ultima/ultima4/core/debugger.cpp
index fe19f2d4d9..83cbbe3d15 100644
--- a/engines/ultima/ultima4/core/debugger.cpp
+++ b/engines/ultima/ultima4/core/debugger.cpp
@@ -108,6 +108,7 @@ Debugger::Debugger() : Shared::Debugger() {
 	registerCmd("mixtures", WRAP_METHOD(Debugger, cmdMixtures));
 	registerCmd("moon", WRAP_METHOD(Debugger, cmdMoon));
 	registerCmd("opacity", WRAP_METHOD(Debugger, cmdOpacity));
+	registerCmd("overhead", WRAP_METHOD(Debugger, cmdOverhead));
 	registerCmd("reagents", WRAP_METHOD(Debugger, cmdReagents));
 	registerCmd("summon", WRAP_METHOD(Debugger, cmdSummon));
 	registerCmd("torch", WRAP_METHOD(Debugger, cmdTorch));
@@ -898,14 +899,9 @@ bool Debugger::cmdPass(int argc, const char **argv) {
 }
 
 bool Debugger::cmdPeer(int argc, const char **argv) {
-	if ((g_context->_location->_viewMode == VIEW_NORMAL) || (g_context->_location->_viewMode == VIEW_DUNGEON))
-		g_context->_location->_viewMode = VIEW_GEM;
-	else if (g_context->_location->_context == CTX_DUNGEON)
-		g_context->_location->_viewMode = VIEW_DUNGEON;
-	else
-		g_context->_location->_viewMode = VIEW_NORMAL;
+	bool useGem = (argc != 2) ? true : strToBool(argv[1]);
+	peer(useGem);
 
-	print("Toggle view");
 	return isDebuggerActive();
 }
 
@@ -1522,6 +1518,18 @@ bool Debugger::cmdMixtures(int argc, const char **argv) {
 	return isDebuggerActive();
 }
 
+bool Debugger::cmdOverhead(int argc, const char **argv) {
+	if ((g_context->_location->_viewMode == VIEW_NORMAL) || (g_context->_location->_viewMode == VIEW_DUNGEON))
+		g_context->_location->_viewMode = VIEW_GEM;
+	else if (g_context->_location->_context == CTX_DUNGEON)
+		g_context->_location->_viewMode = VIEW_DUNGEON;
+	else
+		g_context->_location->_viewMode = VIEW_NORMAL;
+
+	print("Toggle view");
+	return isDebuggerActive();
+}
+
 bool Debugger::cmdMoon(int argc, const char **argv) {
 	int moonNum;
 
diff --git a/engines/ultima/ultima4/core/debugger.h b/engines/ultima/ultima4/core/debugger.h
index 5cdbaa7477..9fbe31ebe9 100644
--- a/engines/ultima/ultima4/core/debugger.h
+++ b/engines/ultima/ultima4/core/debugger.h
@@ -341,6 +341,11 @@ private:
 	 */
 	bool cmdOpacity(int argc, const char **argv);
 
+	/**
+	 * Toggle overhead view
+	 */
+	bool cmdOverhead(int argc, const char **argv);
+
 	/**
 	 * Give all the reagents
 	 */
diff --git a/engines/ultima/ultima4/game/game.cpp b/engines/ultima/ultima4/game/game.cpp
index bc1bf71fee..4c845e50b1 100644
--- a/engines/ultima/ultima4/game/game.cpp
+++ b/engines/ultima/ultima4/game/game.cpp
@@ -319,7 +319,6 @@ bool gamePeerCity(int city, void *data) {
 }
 
 void peer(bool useGem) {
-
 	if (useGem) {
 		if (g_ultima->_saveGame->_gems <= 0) {
 			g_screen->screenMessage("%cPeer at What?%c\n", FG_GREY, FG_WHITE);
diff --git a/engines/ultima/ultima4/meta_engine.cpp b/engines/ultima/ultima4/meta_engine.cpp
index a1871351fe..46384354e6 100644
--- a/engines/ultima/ultima4/meta_engine.cpp
+++ b/engines/ultima/ultima4/meta_engine.cpp
@@ -112,6 +112,7 @@ static const KeybindingRecord CHEAT_KEYS[] = {
 	{ KEYBIND_CHEAT_KARMA, "CHEAT-KARMA", "List Karma", "karma", "A+k", nullptr },
 	{ KEYBIND_CHEAT_LEAVE, "CHEAT-LEAVE", "Leave Location", "leave", "A+l", nullptr },
 	{ KEYBIND_CHEAT_MIXTURES, "CHEAT-MIXTURES", "Give Mixtures", "mixtures", "A+m", nullptr },
+	{ KEYBIND_CHEAT_OVERHEAD, "CHEAT_OVERHEAD", "Toggle Overhead View", "overhead", "A+o", nullptr },
 	{ KEYBIND_CHEAT_PARTY, "CHEAT-PARTY", "Full Party", "companions", "A+p", nullptr },
 	{ KEYBIND_CHEAT_REAGENTS, "CHEAT-REAGENTS", "Give Reagents", "reagents", "A+r", nullptr },
 	{ KEYBIND_CHEAT_STATS, "CHEAT-STATS", "Full Stats", "fullstats", "A+s", nullptr },
diff --git a/engines/ultima/ultima4/meta_engine.h b/engines/ultima/ultima4/meta_engine.h
index 854f366068..bdb6d61d65 100644
--- a/engines/ultima/ultima4/meta_engine.h
+++ b/engines/ultima/ultima4/meta_engine.h
@@ -51,9 +51,10 @@ enum KeybindingAction {
 	KEYBIND_CHEAT_DESTROY_CREATURES, KEYBIND_CHEAT_EQUIPMENT,
 	KEYBIND_CHEAT_FLEE, KEYBIND_CHEAT_GOTO, KEYBIND_CHEAT_HELP,
 	KEYBIND_CHEAT_ITEMS, KEYBIND_CHEAT_KARMA, KEYBIND_CHEAT_LEAVE,
-	KEYBIND_CHEAT_MIXTURES, KEYBIND_CHEAT_PARTY, KEYBIND_CHEAT_REAGENTS,
-	KEYBIND_CHEAT_STATS, KEYBIND_CHEAT_TRANSPORT, KEYBIND_CHEAT_UP,
-	KEYBIND_CHEAT_DOWN, KEYBIND_CHEAT_VIRTUE, KEYBIND_CHEAT_WIND,
+	KEYBIND_CHEAT_MIXTURES, KEYBIND_CHEAT_OVERHEAD, KEYBIND_CHEAT_PARTY,
+	KEYBIND_CHEAT_REAGENTS, KEYBIND_CHEAT_STATS, KEYBIND_CHEAT_TRANSPORT,
+	KEYBIND_CHEAT_UP, KEYBIND_CHEAT_DOWN, KEYBIND_CHEAT_VIRTUE,
+	KEYBIND_CHEAT_WIND,
 
 	KEYBIND_NONE
 };


Commit: a96006d56bf16c5efe7429500fc533b0b486dc24
    https://github.com/scummvm/scummvm/commit/a96006d56bf16c5efe7429500fc533b0b486dc24
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-05-07T18:32:43-07:00

Commit Message:
ULTIMA8: Fix negative uint warning

Changed paths:
    engines/ultima/ultima8/gumps/quit_gump.cpp


diff --git a/engines/ultima/ultima8/gumps/quit_gump.cpp b/engines/ultima/ultima8/gumps/quit_gump.cpp
index 73fd023712..05acfc9f6a 100644
--- a/engines/ultima/ultima8/gumps/quit_gump.cpp
+++ b/engines/ultima/ultima8/gumps/quit_gump.cpp
@@ -112,7 +112,7 @@ void QuitGump::InitGump(Gump *newparent, bool take_focus) {
 
 	widget = new ButtonWidget(0, 0, nobutton_up, nobutton_down);
 	widget->InitGump(this);
-	widget->setRelativePosition(TOP_RIGHT, -_buttonXOff, _buttonYOff);
+	widget->setRelativePosition(TOP_RIGHT, -(int)_buttonXOff, _buttonYOff);
 	_noWidget = widget->getObjId();
 }
 




More information about the Scummvm-git-logs mailing list