diff --git a/_server/table/data.comment.js b/_server/table/data.comment.js
index d40625b1..f9951bf5 100644
--- a/_server/table/data.comment.js
+++ b/_server/table/data.comment.js
@@ -564,6 +564,12 @@ var data_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
"_docs": "横屏底部工具栏",
"_data": "在横屏状态下是否将工具栏挪动到游戏画布下方,从而完全解放状态栏空间"
},
+ "showHard": {
+ "_leaf": true,
+ "_type": "checkbox",
+ "_docs": "工具栏显示难度",
+ "_data": "工具栏是否显示难度字符。由于空间不足,显示时将隐藏回退等新增按钮。"
+ },
"flyNearStair": {
"_leaf": true,
"_type": "checkbox",
diff --git a/index.html b/index.html
index 5c667f2c..ab56d366 100644
--- a/index.html
+++ b/index.html
@@ -153,6 +153,8 @@
+
+
@@ -161,6 +163,8 @@
+
+
diff --git a/libs/control.js b/libs/control.js
index b64280af..26ea5c27 100644
--- a/libs/control.js
+++ b/libs/control.js
@@ -3218,6 +3218,8 @@ control.prototype._updateStatusBar_setToolboxIcon = function () {
core.statusBar.image.save.style.opacity = 1;
core.statusBar.image.load.src = core.statusBar.icons.speedUp.src;
core.statusBar.image.settings.src = core.statusBar.icons.save.src;
+ core.statusBar.image.rollback.src = core.statusBar.icons.single.src;
+ core.statusBar.image.undoRollback.src = core.statusBar.icons.valve.src;
}
else {
core.statusBar.image.book.src = core.statusBar.icons.book.src;
@@ -3237,6 +3239,8 @@ control.prototype._updateStatusBar_setToolboxIcon = function () {
core.statusBar.image.save.style.opacity = core.hasFlag('__forbidSave__') ? 0.3 : 1;
core.statusBar.image.load.src = core.statusBar.icons.load.src;
core.statusBar.image.settings.src = core.statusBar.icons.settings.src;
+ core.statusBar.image.rollback.src = core.statusBar.icons.rollback.src;
+ core.statusBar.image.undoRollback.src = core.statusBar.icons.undoRollback.src;
}
}
@@ -3320,6 +3324,9 @@ control.prototype.setToolbarButton = function (useButton) {
["book", "fly", "toolbox", "keyboard", "shop", "save", "load", "settings"].forEach(function (t) {
core.statusBar.image[t].style.display = 'none';
});
+ ["rollback", "undoRollback"].forEach(function (t) {
+ core.statusBar.image[t].style.display = 'none';
+ });
["btn1", "btn2", "btn3", "btn4", "btn5", "btn6", "btn7", "btn8"].forEach(function (t) {
core.statusBar.image[t].style.display = 'block';
})
@@ -3332,8 +3339,17 @@ control.prototype.setToolbarButton = function (useButton) {
["book", "fly", "toolbox", "save", "load", "settings"].forEach(function (t) {
core.statusBar.image[t].style.display = 'block';
});
+ if (core.domStyle.isVertical || core.flags.extendToolbar || !core.flags.showHard) {
+ core.statusBar.image.shop.style.display = "block";
+ }
+ else core.statusBar.image.shop.style.display = "none";
+
+ if (!core.flags.showHard) {
+ ["rollback", "undoRollback"].forEach(function (t) {
+ core.statusBar.image[t].style.display = 'block';
+ });
+ }
core.statusBar.image.keyboard.style.display
- = core.statusBar.image.shop.style.display
= core.domStyle.isVertical || core.flags.extendToolbar ? "block" : "none";
}
}
@@ -3671,7 +3687,7 @@ control.prototype._resize_tools = function (obj) {
var toolsHeight = 32 * core.domStyle.scale * ((core.domStyle.isVertical || obj.extendToolbar) && !obj.is15x15 ? 0.95 : 1);
var toolsMarginLeft;
if (core.domStyle.isVertical || obj.extendToolbar)
- toolsMarginLeft = (core.__HALF_SIZE__ - 3) * 3 * core.domStyle.scale;
+ toolsMarginLeft = (core.__HALF_SIZE__ - 3) * 3 * core.domStyle.scale - 1;
else
toolsMarginLeft = (obj.BAR_WIDTH * core.domStyle.scale - 9 - toolsHeight * 3) / 4;
for (var i = 0; i < core.dom.tools.length; ++i) {
@@ -3682,7 +3698,8 @@ control.prototype._resize_tools = function (obj) {
}
core.dom.hard.style.lineHeight = toolsHeight + "px";
if (core.domStyle.isVertical || obj.extendToolbar) {
- core.dom.hard.style.width = obj.outerSize - 9 * toolsMarginLeft - 8.5 * toolsHeight - 12 + "px";
+ if (core.flags.showHard) core.dom.hard.style.width = obj.outerSize - 9 * toolsMarginLeft - 8.5 * toolsHeight - 22 + "px";
+ else core.dom.hard.style.width = "10px";
}
else {
core.dom.hard.style.width = obj.BAR_WIDTH * core.domStyle.scale - 9 - 2 * toolsMarginLeft + "px";
diff --git a/main.js b/main.js
index 53901f52..c923587c 100644
--- a/main.js
+++ b/main.js
@@ -122,6 +122,10 @@ function main () {
'btn6': document.getElementById("img-btn6"),
'btn7': document.getElementById("img-btn7"),
'btn8': document.getElementById("img-btn8"),
+ 'rollback': document.getElementById("img-rollback"),
+ 'undoRollback': document.getElementById("img-undoRollback"),
+ 'single': document.getElementById("img-single"),
+ 'valve': document.getElementById("img-valve"),
},
'icons': {
'floor': 0,
@@ -159,7 +163,11 @@ function main () {
'btn5': 31,
'btn6': 32,
'btn7': 33,
- 'btn8': 34
+ 'btn8': 34,
+ 'rollback': 35,
+ 'undoRollback': 36,
+ 'single': 37,
+ 'valve': 38,
},
'floor': document.getElementById('floor'),
'name': document.getElementById('name'),
@@ -764,6 +772,33 @@ main.prototype.listen = function () {
main.core.openSettings(true);
}
+ ////// 点击状态栏中的回退菜单时 //////
+ main.statusBar.image.rollback.onclick = function (e) {
+ e.stopPropagation();
+
+ // 单步播放录像
+ if (core.isReplaying()) {
+ core.control.stepReplay();
+ return;
+ }
+
+ if (main.core.isPlaying())
+ core.doSL("autoSave", "load");
+ }
+
+ ////// 点击状态栏中的取消回退菜单时 //////
+ main.statusBar.image.undoRollback.onclick = function (e) {
+ e.stopPropagation();
+
+ if (core.isReplaying()) {
+ core.control.interceptReplay();
+ return;
+ }
+
+ if (main.core.isPlaying())
+ core.doSL("autoSave", "reload");
+ }
+
////// 点击工具栏时 //////
main.dom.hard.onclick = function () {
if (core.isReplaying())
diff --git a/project/data.js b/project/data.js
index 3f53054d..7ea77e44 100644
--- a/project/data.js
+++ b/project/data.js
@@ -729,6 +729,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"enableRouteFolding": true,
"disableShopOnDamage": false,
"blurFg": false,
- "chaseThroughEnemy": false
+ "chaseThroughEnemy": false,
+ "showHard": false
}
}
\ No newline at end of file
diff --git a/project/functions.js b/project/functions.js
index f5b233d4..90881971 100644
--- a/project/functions.js
+++ b/project/functions.js
@@ -1296,7 +1296,8 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
core.setStatusBarInnerHTML('fly', "飞" + core.itemCount('centerFly'));
// 难度
- if (core.statusBar.hard.innerText != core.status.hard) {
+ if (!core.flags.showHard) core.statusBar.hard.innerText = '';
+ else if (core.statusBar.hard.innerText != core.status.hard) {
core.statusBar.hard.innerText = core.status.hard;
}
var hardColor = core.getFlag('__hardColor__', 'red');
diff --git a/project/materials/icons.png b/project/materials/icons.png
index 9e17e786..fd4d0519 100644
Binary files a/project/materials/icons.png and b/project/materials/icons.png differ