PageSourceSearch

https://mission1929.de/game/assets/js/options.js

js mission1929.de collected 2026-10-05 07:12:46 UTC 5,644 bytes, 219 lines download raw bytes

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.