diff --git a/_server/editor.js b/_server/editor.js
index fcc93f00..66cf7328 100644
--- a/_server/editor.js
+++ b/_server/editor.js
@@ -53,6 +53,7 @@ function editor() {
lastUsedCtx: document.getElementById('lastUsed').getContext('2d'),
lockMode: document.getElementById('lockMode'),
gameInject: document.getElementById('gameInject'),
+ undoFloor: document.getElementById('undoFloor'),
maps: ['bgmap', 'fgmap', 'map'],
canvas: ['bg', 'fg'],
};
@@ -107,6 +108,9 @@ function editor() {
// 最近使用的图块
lastUsedType: null,
lastUsed: [],
+
+ // 最近访问的楼层
+ recentFloors: []
};
window.onerror = function (msg, url, lineNo, columnNo, error) {
diff --git a/_server/editor_listen.js b/_server/editor_listen.js
index 12bba2a9..bfdaa38f 100644
--- a/_server/editor_listen.js
+++ b/_server/editor_listen.js
@@ -35,6 +35,7 @@ editor_listen_wrapper = function (editor) {
editor.dom.pasteLoc.onmouseup = editor.uifunctions.pasteLoc_click
editor.dom.clearEvent.onmouseup = editor.uifunctions.clearEvent_click
editor.dom.clearLoc.onmouseup = editor.uifunctions.clearLoc_click
+ editor.dom.undoFloor.onclick = editor.uifunctions.undoFloor_click
editor.dom.lastUsed.onmouseup = editor.uifunctions.lastUsed_click;
editor.dom.lastUsed.oncontextmenu = function (e) { e.preventDefault(); }
diff --git a/_server/editor_mappanel.js b/_server/editor_mappanel.js
index 7e5d9292..9fdf7461 100644
--- a/_server/editor_mappanel.js
+++ b/_server/editor_mappanel.js
@@ -366,6 +366,7 @@ editor_mappanel_wrapper = function (editor) {
editor_mode.onmode('nextChange');
editor_mode.onmode('floor');
editor.dom.selectFloor.value = toId;
+ editor.uivalues.recentFloors.push(editor.currentFloorId);
editor.changeFloor(toId);
}
@@ -381,6 +382,16 @@ editor_mappanel_wrapper = function (editor) {
return false;
}
+ editor.uifunctions.undoFloor_click = function () {
+ var toId = editor.uivalues.recentFloors.pop();
+ if (toId == null || toId == editor.currentFloorId) return;
+
+ editor_mode.onmode('nextChange');
+ editor_mode.onmode('floor');
+ editor.dom.selectFloor.value = toId;
+ editor.changeFloor(toId);
+ }
+
/**
* 显示右键菜单
*/
@@ -809,6 +820,7 @@ editor_mappanel_wrapper = function (editor) {
selectFloor.onchange = function () {
editor_mode.onmode('nextChange');
editor_mode.onmode('floor');
+ editor.uivalues.recentFloors.push(editor.currentFloorId);
editor.changeFloor(selectFloor.value);
}
});
diff --git a/_server/editor_ui.js b/_server/editor_ui.js
index 67f32555..79e9bb61 100644
--- a/_server/editor_ui.js
+++ b/_server/editor_ui.js
@@ -171,6 +171,7 @@ editor_ui_wrapper = function (editor) {
editor_mode.onmode('nextChange');
editor_mode.onmode('floor');
document.getElementById('selectFloor').value = toId;
+ editor.uivalues.recentFloors.push(editor.currentFloorId);
editor.changeFloor(toId);
}
return;
diff --git a/editor-mobile.html b/editor-mobile.html
index 25289e44..7f8a0d75 100644
--- a/editor-mobile.html
+++ b/editor-mobile.html
@@ -376,6 +376,7 @@
+
diff --git a/editor.html b/editor.html
index 6fbf143b..268d386f 100644
--- a/editor.html
+++ b/editor.html
@@ -340,6 +340,7 @@
+