浏览代码

Added option to disable animations for very low-end systems

Ivan Savenko 2 年之前
父节点
当前提交
cda78fb30f
共有 2 个文件被更改,包括 15 次插入1 次删除
  1. 6 0
      client/mapRenderer/MapRendererContext.cpp
  2. 9 1
      config/schemas/settings.json

+ 6 - 0
client/mapRenderer/MapRendererContext.cpp

@@ -90,6 +90,9 @@ size_t MapRendererContext::objectImageIndex(ObjectInstanceID objectID, size_t gr
 	if(groupSize == 0)
 	if(groupSize == 0)
 		return 0;
 		return 0;
 
 
+	if (!settings["adventure"]["objectAnimation"].Bool())
+		return 0;
+
 	// H3 timing for adventure map objects animation is 180 ms
 	// H3 timing for adventure map objects animation is 180 ms
 	// Terrain animations also use identical interval, however those are only present in HotA and/or HD Mod
 	// Terrain animations also use identical interval, however those are only present in HotA and/or HD Mod
 	size_t baseFrameTime = 180;
 	size_t baseFrameTime = 180;
@@ -106,6 +109,9 @@ size_t MapRendererContext::objectImageIndex(ObjectInstanceID objectID, size_t gr
 
 
 size_t MapRendererContext::terrainImageIndex(size_t groupSize) const
 size_t MapRendererContext::terrainImageIndex(size_t groupSize) const
 {
 {
+	if (!settings["adventure"]["terrainAnimation"].Bool())
+		return 0;
+
 	size_t baseFrameTime = 180;
 	size_t baseFrameTime = 180;
 	size_t frameCounter = animationTime / baseFrameTime;
 	size_t frameCounter = animationTime / baseFrameTime;
 	size_t frameIndex = frameCounter % groupSize;
 	size_t frameIndex = frameCounter % groupSize;

+ 9 - 1
config/schemas/settings.json

@@ -161,7 +161,7 @@
 			"type" : "object",
 			"type" : "object",
 			"additionalProperties" : false,
 			"additionalProperties" : false,
 			"default": {},
 			"default": {},
-			"required" : [ "heroMoveTime", "enemyMoveTime", "scrollSpeedPixels", "heroReminder", "quickCombat" ],
+			"required" : [ "heroMoveTime", "enemyMoveTime", "scrollSpeedPixels", "heroReminder", "quickCombat", "objectAnimation", "terrainAnimation" ],
 			"properties" : {
 			"properties" : {
 				"heroMoveTime" : {
 				"heroMoveTime" : {
 					"type" : "number",
 					"type" : "number",
@@ -182,6 +182,14 @@
 				"quickCombat" : {
 				"quickCombat" : {
 					"type" : "boolean",
 					"type" : "boolean",
 					"default" : false
 					"default" : false
+				},
+				"objectAnimation" : {
+					"type" : "boolean",
+					"default" : true
+				},
+				"terrainAnimation" : {
+					"type" : "boolean",
+					"default" : true
 				}
 				}
 			}
 			}
 		},
 		},