1import * as utils from "./utils.js"; 2 3import { 4 gameCode 5} from "./game.js"; 6 7import { 8 setMute, 9 set_volumes, 10 unlock_sound 11} from "./sound.js"; 12 13import * as main_game from "./main.js"; 14 15import * as tutorial from "./tutorial.js"; 16 17import { 18 show_hilfe 19} from "./forms.js"; 20 21var main_instance; 22 23var element; 24 25var detail_bg; 26 27export var isActive = false; 28 29export var volSpeak = 100; 30 31export var volAmbient = 50; 32 33export var volSFX = 70; 34 35export var masterMute = false; 36 37export function preload(instance) { 38 main_instance = instance; 39 utils.log("preload options"); 40 main_instance.load.html("setupform", "assets/dom/setupform.html"); 41} 42 43export function create() { 44 load_values(); 45 main_instance.input.keyboard.on("keydown", function(event) {}); 46 detail_bg = main_instance.add.sprite(1920 / 2, 1080 / 2, "blank"); 47 detail_bg.on("pointerdown", function(pointer) {}); 48 detail_bg.displayWidth = 1920; 49 detail_bg.displayHeight = 1080; 50 detail_bg.depth = 100; 51 detail_bg.setAlpha(.5); 52 element = main_instance.add.dom(1920 / 2, 1080 / 2).createFromCache("setupform"); 53 element.addListener("click"); 54 element.on("click", function(event) { 55 if (event.target.name == "btnHelp") { 56 element.setVisible(false); 57 detail_bg.setVisible(false); 58 isActive = false; 59 show_hilfe(); 60 } 61 if (event.target.name == "btnExitGame") { 62 utils.log("btnExitGame"); 63 element.setVisible(false); 64 detail_bg.setVisible(false); 65 isActive = false; 66 if (tutorial.started) { 67 tutorial.exit(true); 68 } else { 69 main_game.end_game_now(); 70 } 71 } 72 if (event.target.name === "btnFullscreen") { 73 utils.log("btnFullscreen"); 74 element.setVisible(false); 75 detail_bg.setVisible(false); 76 isActive = false; 77 SwitchFullScreen(); 78 } 79 if (event.target.name == "btnSoundMute") { 80 utils.log("btnSoundMute"); 81 if (!masterMute) masterMute = true; else masterMute = false; 82 utils.log("masterMute: " + masterMute); 83 show_ui_values(); 84 } 85 if (event.target.name == "btnExit") { 86 volSpeak = get_slider_value("volSpeak", volSpeak); 87 utils.log("volSpeak: " + volSpeak); 88 89 volAmbient = get_slider_value("volAmbient", volAmbient); 90 utils.log("volAmbiente: " + volAmbient); 91 92 volSFX = get_slider_value("volSFX", volSFX); 93 utils.log("volSFX: " + volSFX); 94 95 utils.log("masterMute: " + masterMute); 96 97 save_values(); 98 set_volumes(); 99 element.setVisible(false); 100 detail_bg.setVisible(false); 101 isActive = false; 102 } 103 }); 104 element.setVisible(false); 105 detail_bg.setVisible(false); 106} 107 108function get_slider_value(id, fallback) { 109 var el = document.getElementById(id); 110 if (el == null) { 111 return fallback; 112 } 113 114 var value = parseInt(el.value, 10); 115 if (Number.isNaN(value)) { 116 return fallback; 117 } 118 119 return value; 120} 121 122function hide_fullscreen_button() { 123 var btn_fs = document.getElementById("btnFullscreen"); 124 if (btn_fs != null) { 125 btn_fs.remove(); 126 } 127} 128 129export function show_option_window() { 130 load_values(); 131 show_ui_values(); 132 133 var code = document.getElementById("gameCode"); 134 if (code != null) { 135 code.value = gameCode || ""; 136 } 137 138 var btnSpielende = document.getElementById("btnExitGame"); 139 if (btnSpielende != null) { 140 if (tutorial.started) { 141 btnSpielende.value = "Tutorial beenden"; 142 } else { 143 btnSpielende.value = "Spiel beenden"; 144 } 145 } 146 147 if (utils.isIOSSafari()) { 148 hide_fullscreen_button(); 149 } 150 151 detail_bg.setVisible(true); 152 element.setVisible(true); 153 isActive = true; 154} 155 156function SwitchFullScreen() { 157 if (main_instance.scale.isFullscreen) { 158 main_instance.scale.stopFullscreen(); 159 } else { 160 main_instance.scale.startFullscreen(); 161 } 162} 163 164function show_ui_values() { 165 var volSpeakSlider = document.getElementById("volSpeak"); 166 if (volSpeakSlider != null) { 167 volSpeakSlider.value = volSpeak; 168 } 169 170 var volAmbientSlider = document.getElementById("volAmbient"); 171 if (volAmbientSlider != null) { 172 volAmbientSlider.value = volAmbient; 173 } 174 175 var volSFXSlider = document.getElementById("volSFX"); 176 if (volSFXSlider != null) { 177 volSFXSlider.value = volSFX; 178 } 179 180 var btnMute = document.getElementById("btnSoundMute"); 181 if (btnMute != null) { 182 if (masterMute) { 183 btnMute.value = "Ton aus"; 184 setMute(true); 185 } else { 186 btnMute.value = "Ton an"; 187 setMute(false); 188 } 189 } 190} 191 192function load_values() { 193 volSpeak = parseInt(localStorage.getItem("save_vol_speak"), 10); 194 if (Number.isNaN(volSpeak)) volSpeak = 50; 195 196 volAmbient = parseInt(localStorage.getItem("save_vol_ambient"), 10); 197 if (Number.isNaN(volAmbient)) volAmbient = 50; 198 199 volSFX = parseInt(localStorage.getItem("save_vol_sfx"), 10); 200 if (Number.isNaN(volSFX)) volSFX = 50; 201 202 if (localStorage.getItem("save_master_mute") == "1") { 203 masterMute = true; 204 setMute(true); 205 } else { 206 masterMute = false;
207 setMute(false); 208 } 209 210 utils.log("load - masterMute: " + masterMute); 211} 212 213function save_values() { 214 localStorage.setItem("save_vol_speak", volSpeak); 215 localStorage.setItem("save_vol_ambient", volAmbient); 216 localStorage.setItem("save_vol_sfx", volSFX); 217 if (masterMute) localStorage.setItem("save_master_mute", "1"); 218 if (!masterMute) localStorage.setItem("save_master_mute", "0"); 219}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.