mirror of
https://github.com/DaanVandenBosch/phantasmal-world.git
synced 2025-04-06 08:08:28 +08:00
F5 keybinding for "Run in VM". Bugfix for feature flags.
This commit is contained in:
parent
f2d746642f
commit
971444f847
@ -38,8 +38,6 @@ class GuiStore implements Disposable {
|
|||||||
const url = window.location.hash.slice(2);
|
const url = window.location.hash.slice(2);
|
||||||
const [tool_str, params_str] = url.split("?");
|
const [tool_str, params_str] = url.split("?");
|
||||||
|
|
||||||
this.tool.val = string_to_gui_tool(tool_str) || GuiTool.Viewer;
|
|
||||||
|
|
||||||
if (params_str) {
|
if (params_str) {
|
||||||
const features = params_str
|
const features = params_str
|
||||||
.split("&")
|
.split("&")
|
||||||
@ -53,6 +51,8 @@ class GuiStore implements Disposable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.tool.val = string_to_gui_tool(tool_str) || GuiTool.Viewer;
|
||||||
|
|
||||||
this.server = this._server;
|
this.server = this._server;
|
||||||
|
|
||||||
window.addEventListener("keydown", this.dispatch_global_keydown);
|
window.addEventListener("keydown", this.dispatch_global_keydown);
|
||||||
|
@ -71,7 +71,7 @@ export class QuestEditorToolBar extends ToolBar {
|
|||||||
);
|
);
|
||||||
const run_button = new Button("Run in VM", {
|
const run_button = new Button("Run in VM", {
|
||||||
icon_left: Icon.Play,
|
icon_left: Icon.Play,
|
||||||
tooltip: "[Experimental] Run the current quest in a virtual machine."
|
tooltip: "[Experimental] Run the current quest in a virtual machine (F5)",
|
||||||
});
|
});
|
||||||
|
|
||||||
const children = [
|
const children = [
|
||||||
@ -117,7 +117,7 @@ export class QuestEditorToolBar extends ToolBar {
|
|||||||
quest_editor_store.set_current_area(area),
|
quest_editor_store.set_current_area(area),
|
||||||
),
|
),
|
||||||
|
|
||||||
run_button.click.observe(() => quest_editor_store.run_current_quest_in_vm()),
|
run_button.click.observe(quest_editor_store.run_current_quest_in_vm),
|
||||||
|
|
||||||
gui_store.on_global_keydown(GuiTool.QuestEditor, "Ctrl-O", () =>
|
gui_store.on_global_keydown(GuiTool.QuestEditor, "Ctrl-O", () =>
|
||||||
open_file_button.click(),
|
open_file_button.click(),
|
||||||
@ -136,6 +136,12 @@ export class QuestEditorToolBar extends ToolBar {
|
|||||||
gui_store.on_global_keydown(GuiTool.QuestEditor, "Ctrl-Shift-Z", () => {
|
gui_store.on_global_keydown(GuiTool.QuestEditor, "Ctrl-Shift-Z", () => {
|
||||||
undo_manager.redo();
|
undo_manager.redo();
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
gui_store.on_global_keydown(
|
||||||
|
GuiTool.QuestEditor,
|
||||||
|
"F5",
|
||||||
|
quest_editor_store.run_current_quest_in_vm,
|
||||||
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
this.finalize_construction(QuestEditorToolBar.prototype);
|
this.finalize_construction(QuestEditorToolBar.prototype);
|
||||||
|
@ -352,7 +352,7 @@ export class QuestEditorStore implements Disposable {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
run_current_quest_in_vm = () => {
|
run_current_quest_in_vm = (): void => {
|
||||||
logger.setLevel(logger.TRACE);
|
logger.setLevel(logger.TRACE);
|
||||||
|
|
||||||
const quest = this.current_quest.val;
|
const quest = this.current_quest.val;
|
||||||
@ -365,8 +365,7 @@ export class QuestEditorStore implements Disposable {
|
|||||||
vm.load_object_code(quest.object_code);
|
vm.load_object_code(quest.object_code);
|
||||||
vm.start_thread(0);
|
vm.start_thread(0);
|
||||||
|
|
||||||
exec_loop:
|
exec_loop: while (true) {
|
||||||
while (true) {
|
|
||||||
const exec_result = vm.execute();
|
const exec_result = vm.execute();
|
||||||
|
|
||||||
switch (exec_result) {
|
switch (exec_result) {
|
||||||
@ -379,7 +378,7 @@ export class QuestEditorStore implements Disposable {
|
|||||||
break exec_loop;
|
break exec_loop;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export const quest_editor_store = new QuestEditorStore();
|
export const quest_editor_store = new QuestEditorStore();
|
||||||
|
Loading…
Reference in New Issue
Block a user