@famibee/skynovel 1.48.13 → 1.63.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/CallStack.js +25 -0
- package/dist/CallStack.js.map +1 -0
- package/dist/EventMng.js +1588 -0
- package/dist/EventMng.js.map +1 -0
- package/dist/LayerMng.js +2924 -0
- package/dist/LayerMng.js.map +1 -0
- package/dist/PropParser.js +833 -0
- package/dist/PropParser.js.map +1 -0
- package/dist/Reading.js +784 -0
- package/dist/Reading.js.map +1 -0
- package/dist/ScriptIterator.js +1125 -0
- package/dist/ScriptIterator.js.map +1 -0
- package/dist/SndBuf.js +1519 -0
- package/dist/SndBuf.js.map +1 -0
- package/dist/SoundMng.js +136 -0
- package/dist/SoundMng.js.map +1 -0
- package/dist/Variable.js +479 -0
- package/dist/Variable.js.map +1 -0
- package/dist/app.d.ts +5 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/appMain.d.ts +6 -6
- package/dist/appMain.d.ts.map +1 -1
- package/dist/appMain_cmn.d.ts +30 -0
- package/dist/appMain_cmn.d.ts.map +1 -0
- package/dist/build.d.ts +2 -0
- package/dist/build.d.ts.map +1 -0
- package/dist/gamepad.js +511 -0
- package/dist/gamepad.js.map +1 -0
- package/dist/index.d.ts +32 -38
- package/dist/index.d.ts.map +1 -1
- package/dist/preload.d.ts +34 -31
- package/dist/preload.d.ts.map +1 -1
- package/dist/sn/AnalyzeTagArg.d.ts +10 -6
- package/dist/sn/AnalyzeTagArg.d.ts.map +1 -1
- package/dist/sn/Areas.d.ts +7 -5
- package/dist/sn/Areas.d.ts.map +1 -1
- package/dist/sn/Button.d.ts +2 -2
- package/dist/sn/Button.d.ts.map +1 -1
- package/dist/sn/CallStack.d.ts +12 -5
- package/dist/sn/CallStack.d.ts.map +1 -1
- package/dist/sn/CmnInterface.d.ts +178 -117
- package/dist/sn/CmnInterface.d.ts.map +1 -1
- package/dist/sn/CmnLib.d.ts +20 -19
- package/dist/sn/CmnLib.d.ts.map +1 -1
- package/dist/sn/CmnTween.d.ts +6 -8
- package/dist/sn/CmnTween.d.ts.map +1 -1
- package/dist/sn/Config.d.ts +6 -4
- package/dist/sn/Config.d.ts.map +1 -1
- package/dist/sn/ConfigBase.d.ts +39 -24
- package/dist/sn/ConfigBase.d.ts.map +1 -1
- package/dist/sn/DebugMng.d.ts +3 -2
- package/dist/sn/DebugMng.d.ts.map +1 -1
- package/dist/sn/DesignCast.d.ts +5 -6
- package/dist/sn/DesignCast.d.ts.map +1 -1
- package/dist/sn/EventListenerCtn.d.ts +3 -3
- package/dist/sn/EventListenerCtn.d.ts.map +1 -1
- package/dist/sn/EventMng.d.ts +5 -11
- package/dist/sn/EventMng.d.ts.map +1 -1
- package/dist/sn/FocusMng.d.ts.map +1 -1
- package/dist/sn/FrameMng.d.ts +3 -4
- package/dist/sn/FrameMng.d.ts.map +1 -1
- package/dist/sn/Grammar.d.ts +133 -16
- package/dist/sn/Grammar.d.ts.map +1 -1
- package/dist/sn/GrpLayer.d.ts +8 -4
- package/dist/sn/GrpLayer.d.ts.map +1 -1
- package/dist/sn/Hyphenation.d.ts +42 -0
- package/dist/sn/Hyphenation.d.ts.map +1 -0
- package/dist/sn/Layer.d.ts +24 -4
- package/dist/sn/Layer.d.ts.map +1 -1
- package/dist/sn/LayerMng.d.ts +17 -24
- package/dist/sn/LayerMng.d.ts.map +1 -1
- package/dist/sn/Log.d.ts +18 -0
- package/dist/sn/Log.d.ts.map +1 -0
- package/dist/sn/Main.d.ts +4 -6
- package/dist/sn/Main.d.ts.map +1 -1
- package/dist/sn/Pages.d.ts +1 -1
- package/dist/sn/Pages.d.ts.map +1 -1
- package/dist/sn/PropParser.d.ts +2 -2
- package/dist/sn/PropParser.d.ts.map +1 -1
- package/dist/sn/Reading.d.ts +86 -0
- package/dist/sn/Reading.d.ts.map +1 -0
- package/dist/sn/RubySpliter.d.ts +1 -3
- package/dist/sn/RubySpliter.d.ts.map +1 -1
- package/dist/sn/ScriptIterator.d.ts +20 -10
- package/dist/sn/ScriptIterator.d.ts.map +1 -1
- package/dist/sn/SndBuf.d.ts +15 -5
- package/dist/sn/SndBuf.d.ts.map +1 -1
- package/dist/sn/SoundMng.d.ts +3 -2
- package/dist/sn/SoundMng.d.ts.map +1 -1
- package/dist/sn/SpritesMng.d.ts +4 -4
- package/dist/sn/SpritesMng.d.ts.map +1 -1
- package/dist/sn/SysApp.d.ts +12 -16
- package/dist/sn/SysApp.d.ts.map +1 -1
- package/dist/sn/SysBase.d.ts +24 -27
- package/dist/sn/SysBase.d.ts.map +1 -1
- package/dist/sn/SysNode.d.ts +9 -9
- package/dist/sn/SysNode.d.ts.map +1 -1
- package/dist/sn/SysWeb.d.ts +10 -14
- package/dist/sn/SysWeb.d.ts.map +1 -1
- package/dist/sn/TxtLayer.d.ts +79 -7
- package/dist/sn/TxtLayer.d.ts.map +1 -1
- package/dist/sn/TxtStage.d.ts +45 -30
- package/dist/sn/TxtStage.d.ts.map +1 -1
- package/dist/sn/Variable.d.ts +33 -13
- package/dist/sn/Variable.d.ts.map +1 -1
- package/dist/sn/htm2tx.d.ts +3 -0
- package/dist/sn/htm2tx.d.ts.map +1 -0
- package/dist/test/AnalyzeTagArg.test.d.ts +2 -0
- package/dist/test/AnalyzeTagArg.test.d.ts.map +1 -0
- package/dist/test/AreasTest.test.d.ts +2 -0
- package/dist/test/AreasTest.test.d.ts.map +1 -0
- package/dist/test/CmnLib.test.d.ts +2 -0
- package/dist/test/CmnLib.test.d.ts.map +1 -0
- package/dist/test/Config.test.d.ts +2 -0
- package/dist/test/Config.test.d.ts.map +1 -0
- package/dist/test/Grammar.test.d.ts +2 -0
- package/dist/test/Grammar.test.d.ts.map +1 -0
- package/dist/test/HyphTest.test.d.ts +2 -0
- package/dist/test/HyphTest.test.d.ts.map +1 -0
- package/dist/test/Log.test.d.ts +2 -0
- package/dist/test/Log.test.d.ts.map +1 -0
- package/dist/test/PropParser.test.d.ts +2 -0
- package/dist/test/PropParser.test.d.ts.map +1 -0
- package/dist/test/RubySpliter.test.d.ts +2 -0
- package/dist/test/RubySpliter.test.d.ts.map +1 -0
- package/dist/test/SysTest.d.ts +5 -0
- package/dist/test/SysTest.d.ts.map +1 -0
- package/dist/test/ValTest.d.ts +31 -0
- package/dist/test/ValTest.d.ts.map +1 -0
- package/dist/test/Variable.test.d.ts +2 -0
- package/dist/test/Variable.test.d.ts.map +1 -0
- package/dist/web.d.ts +5 -1
- package/dist/web.d.ts.map +1 -1
- package/dist/web.js +6 -30102
- package/dist/web.js.map +1 -1
- package/dist/web2.js +23020 -0
- package/dist/web2.js.map +1 -0
- package/dist_app/CallStack.js +25 -0
- package/dist_app/CallStack.js.map +1 -0
- package/dist_app/EventMng.js +1588 -0
- package/dist_app/EventMng.js.map +1 -0
- package/dist_app/LayerMng.js +2924 -0
- package/dist_app/LayerMng.js.map +1 -0
- package/dist_app/PropParser.js +833 -0
- package/dist_app/PropParser.js.map +1 -0
- package/dist_app/Reading.js +784 -0
- package/dist_app/Reading.js.map +1 -0
- package/dist_app/ScriptIterator.js +1125 -0
- package/dist_app/ScriptIterator.js.map +1 -0
- package/dist_app/SndBuf.js +1519 -0
- package/dist_app/SndBuf.js.map +1 -0
- package/dist_app/SoundMng.js +136 -0
- package/dist_app/SoundMng.js.map +1 -0
- package/dist_app/Variable.js +479 -0
- package/dist_app/Variable.js.map +1 -0
- package/dist_app/app.d.ts +9 -0
- package/dist_app/app.d.ts.map +1 -0
- package/dist_app/app.js +9 -0
- package/dist_app/app.js.map +1 -0
- package/dist_app/app2.js +19819 -0
- package/dist_app/app2.js.map +1 -0
- package/dist_app/appMain.d.ts +9 -0
- package/dist_app/appMain.d.ts.map +1 -0
- package/dist_app/appMain.js +23 -0
- package/dist_app/appMain.js.map +1 -0
- package/dist_app/appMain_cmn.d.ts +30 -0
- package/dist_app/appMain_cmn.d.ts.map +1 -0
- package/dist_app/build.d.ts +2 -0
- package/dist_app/build.d.ts.map +1 -0
- package/dist_app/gamepad.js +511 -0
- package/dist_app/gamepad.js.map +1 -0
- package/dist_app/index.d.ts +33 -0
- package/dist_app/index.d.ts.map +1 -0
- package/dist_app/preload.d.ts +47 -0
- package/dist_app/preload.d.ts.map +1 -0
- package/dist_app/preload.js +2 -0
- package/dist_app/preload.js.map +1 -0
- package/dist_app/sn/AnalyzeTagArg.d.ts +28 -0
- package/dist_app/sn/AnalyzeTagArg.d.ts.map +1 -0
- package/dist_app/sn/Areas.d.ts +15 -0
- package/dist_app/sn/Areas.d.ts.map +1 -0
- package/dist_app/sn/Button.d.ts +23 -0
- package/dist_app/sn/Button.d.ts.map +1 -0
- package/dist_app/sn/CallStack.d.ts +23 -0
- package/dist_app/sn/CallStack.d.ts.map +1 -0
- package/dist_app/sn/CmnInterface.d.ts +227 -0
- package/dist_app/sn/CmnInterface.d.ts.map +1 -0
- package/dist_app/sn/CmnLib.d.ts +46 -0
- package/dist_app/sn/CmnLib.d.ts.map +1 -0
- package/dist_app/sn/CmnTween.d.ts +35 -0
- package/dist_app/sn/CmnTween.d.ts.map +1 -0
- package/dist_app/sn/Config.d.ts +12 -0
- package/dist_app/sn/Config.d.ts.map +1 -0
- package/dist_app/sn/ConfigBase.d.ts +111 -0
- package/dist_app/sn/ConfigBase.d.ts.map +1 -0
- package/dist_app/sn/DebugMng.d.ts +14 -0
- package/dist_app/sn/DebugMng.d.ts.map +1 -0
- package/dist_app/sn/DesignCast.d.ts +53 -0
- package/dist_app/sn/DesignCast.d.ts.map +1 -0
- package/dist_app/sn/EventListenerCtn.d.ts +13 -0
- package/dist_app/sn/EventListenerCtn.d.ts.map +1 -0
- package/dist_app/sn/EventMng.d.ts +29 -0
- package/dist_app/sn/EventMng.d.ts.map +1 -0
- package/dist_app/sn/FocusMng.d.ts +13 -0
- package/dist_app/sn/FocusMng.d.ts.map +1 -0
- package/dist_app/sn/FrameMng.d.ts +20 -0
- package/dist_app/sn/FrameMng.d.ts.map +1 -0
- package/dist_app/sn/Grammar.d.ts +291 -0
- package/dist_app/sn/Grammar.d.ts.map +1 -0
- package/dist_app/sn/GrpLayer.d.ts +49 -0
- package/dist_app/sn/GrpLayer.d.ts.map +1 -0
- package/dist_app/sn/Hyphenation.d.ts +42 -0
- package/dist_app/sn/Hyphenation.d.ts.map +1 -0
- package/dist_app/sn/Layer.d.ts +86 -0
- package/dist_app/sn/Layer.d.ts.map +1 -0
- package/dist_app/sn/LayerMng.d.ts +46 -0
- package/dist_app/sn/LayerMng.d.ts.map +1 -0
- package/dist_app/sn/Log.d.ts +18 -0
- package/dist_app/sn/Log.d.ts.map +1 -0
- package/dist_app/sn/Main.d.ts +16 -0
- package/dist_app/sn/Main.d.ts.map +1 -0
- package/dist_app/sn/Pages.d.ts +26 -0
- package/dist_app/sn/Pages.d.ts.map +1 -0
- package/dist_app/sn/PropParser.d.ts +12 -0
- package/dist_app/sn/PropParser.d.ts.map +1 -0
- package/dist_app/sn/Reading.d.ts +86 -0
- package/dist_app/sn/Reading.d.ts.map +1 -0
- package/dist_app/sn/RubySpliter.d.ts +14 -0
- package/dist_app/sn/RubySpliter.d.ts.map +1 -0
- package/dist_app/sn/ScriptIterator.d.ts +58 -0
- package/dist_app/sn/ScriptIterator.d.ts.map +1 -0
- package/dist_app/sn/SndBuf.d.ts +30 -0
- package/dist_app/sn/SndBuf.d.ts.map +1 -0
- package/dist_app/sn/SoundMng.d.ts +16 -0
- package/dist_app/sn/SoundMng.d.ts.map +1 -0
- package/dist_app/sn/SpritesMng.d.ts +27 -0
- package/dist_app/sn/SpritesMng.d.ts.map +1 -0
- package/dist_app/sn/SysApp.d.ts +32 -0
- package/dist_app/sn/SysApp.d.ts.map +1 -0
- package/dist_app/sn/SysBase.d.ts +79 -0
- package/dist_app/sn/SysBase.d.ts.map +1 -0
- package/dist_app/sn/SysNode.d.ts +15 -0
- package/dist_app/sn/SysNode.d.ts.map +1 -0
- package/dist_app/sn/SysWeb.d.ts +26 -0
- package/dist_app/sn/SysWeb.d.ts.map +1 -0
- package/dist_app/sn/TxtLayer.d.ts +121 -0
- package/dist_app/sn/TxtLayer.d.ts.map +1 -0
- package/dist_app/sn/TxtStage.d.ts +90 -0
- package/dist_app/sn/TxtStage.d.ts.map +1 -0
- package/dist_app/sn/Variable.d.ts +48 -0
- package/dist_app/sn/Variable.d.ts.map +1 -0
- package/dist_app/sn/htm2tx.d.ts +3 -0
- package/dist_app/sn/htm2tx.d.ts.map +1 -0
- package/dist_app/test/AnalyzeTagArg.test.d.ts +2 -0
- package/dist_app/test/AnalyzeTagArg.test.d.ts.map +1 -0
- package/dist_app/test/AreasTest.test.d.ts +2 -0
- package/dist_app/test/AreasTest.test.d.ts.map +1 -0
- package/dist_app/test/CmnLib.test.d.ts +2 -0
- package/dist_app/test/CmnLib.test.d.ts.map +1 -0
- package/dist_app/test/Config.test.d.ts +2 -0
- package/dist_app/test/Config.test.d.ts.map +1 -0
- package/dist_app/test/Grammar.test.d.ts +2 -0
- package/dist_app/test/Grammar.test.d.ts.map +1 -0
- package/dist_app/test/HyphTest.test.d.ts +2 -0
- package/dist_app/test/HyphTest.test.d.ts.map +1 -0
- package/dist_app/test/Log.test.d.ts +2 -0
- package/dist_app/test/Log.test.d.ts.map +1 -0
- package/dist_app/test/PropParser.test.d.ts +2 -0
- package/dist_app/test/PropParser.test.d.ts.map +1 -0
- package/dist_app/test/RubySpliter.test.d.ts +2 -0
- package/dist_app/test/RubySpliter.test.d.ts.map +1 -0
- package/dist_app/test/SysTest.d.ts +5 -0
- package/dist_app/test/SysTest.d.ts.map +1 -0
- package/dist_app/test/ValTest.d.ts +31 -0
- package/dist_app/test/ValTest.d.ts.map +1 -0
- package/dist_app/test/Variable.test.d.ts +2 -0
- package/dist_app/test/Variable.test.d.ts.map +1 -0
- package/dist_app/web.d.ts +9 -0
- package/dist_app/web.d.ts.map +1 -0
- package/package.json +57 -51
- package/dist/app.js +0 -28154
- package/dist/app.js.map +0 -1
- package/dist/appMain.js +0 -16
- package/dist/appMain.js.map +0 -1
- package/dist/preload.js +0 -2
- package/dist/preload.js.map +0 -1
- package/dist/sn/ReadState.d.ts +0 -79
- package/dist/sn/ReadState.d.ts.map +0 -1
|
@@ -0,0 +1,479 @@
|
|
|
1
|
+
import { u as S, c as p, a as v, i as f, b, d as c, e as d } from "./app2.js";
|
|
2
|
+
import { c as C } from "./CallStack.js";
|
|
3
|
+
import { PropParser as w } from "./PropParser.js";
|
|
4
|
+
import { R as N } from "./Reading.js";
|
|
5
|
+
class _ {
|
|
6
|
+
#t = {};
|
|
7
|
+
clear() {
|
|
8
|
+
this.#t = {};
|
|
9
|
+
}
|
|
10
|
+
static from(t) {
|
|
11
|
+
const s = new _();
|
|
12
|
+
return s.#t = { ...t }, s;
|
|
13
|
+
}
|
|
14
|
+
val() {
|
|
15
|
+
return { ...this.#t };
|
|
16
|
+
}
|
|
17
|
+
search(t) {
|
|
18
|
+
return Object.entries(this.#t).some(([s, e]) => t >= parseInt(s) && t <= e);
|
|
19
|
+
}
|
|
20
|
+
record(t) {
|
|
21
|
+
if (!this.search(t)) {
|
|
22
|
+
for (const [s, e] of Object.entries(this.#t))
|
|
23
|
+
if (e + 1 === t) {
|
|
24
|
+
String(t + 1) in this.#t ? (this.#t[s] = this.#t[t + 1], delete this.#t[t + 1]) : this.#t[s] = t;
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (String(t + 1) in this.#t) {
|
|
28
|
+
this.#t[t] = this.#t[t + 1], delete this.#t[t + 1];
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
this.#t[t] = t;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
erase(t) {
|
|
35
|
+
if (this.search(t)) {
|
|
36
|
+
if (String(t) in this.#t) {
|
|
37
|
+
this.#t[t] > t && (this.#t[t + 1] = this.#t[t]), delete this.#t[t];
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
for (const [s, e] of Object.entries(this.#t))
|
|
41
|
+
if (!(t < parseInt(s) || e < t)) {
|
|
42
|
+
if (this.#t[s] === t) {
|
|
43
|
+
this.#t[s] = t - 1;
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
this.#t[t + 1] = e, this.#t[s] = t - 1;
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
get count() {
|
|
52
|
+
return Object.keys(this.#t).length;
|
|
53
|
+
}
|
|
54
|
+
// 4tst
|
|
55
|
+
toString() {
|
|
56
|
+
let t = "";
|
|
57
|
+
for (const s of Object.keys(this.#t).map((e) => parseInt(e)).sort((e, i) => e - i))
|
|
58
|
+
t += s === this.#t[s] ? "," + String(s) : "," + String(s) + "~" + String(this.#t[String(s)]);
|
|
59
|
+
return t;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
class g {
|
|
63
|
+
constructor(t, s) {
|
|
64
|
+
this.cfg = t, s.let = (e) => this.#o(e), s.let_abs = (e) => this.#P(e), s.let_char_at = (e) => this.#R(e), s.let_index_of = (e) => this.#L(e), s.let_length = (e) => this.#K(e), s.let_replace = (e) => this.#F(e), s.let_round = (e) => this.#M(e), s.let_search = (e) => this.#D(e), s.let_substr = (e) => this.#x(e), s.clearsysvar = () => this.#l(), s.clearvar = () => this.#E(), s.dump_val = () => this.#B(), s.copybookmark = (e) => this.#V(e), s.erasebookmark = (e) => this.#j(e), this.defTmp("const.sn.bookmark.json", () => {
|
|
65
|
+
const e = [];
|
|
66
|
+
for (const [i, o] of Object.entries(this.#s.mark)) {
|
|
67
|
+
const n = { ...o.json };
|
|
68
|
+
n.place = S(i), e.push(n);
|
|
69
|
+
}
|
|
70
|
+
return JSON.stringify(e);
|
|
71
|
+
}), this.#l(!0), this.#i["const.sn.config.window.width"] = t.oCfg.window.width, this.#i["const.sn.config.window.height"] = t.oCfg.window.height, this.#i["const.sn.config.book.title"] = t.oCfg.book.title, this.#i["const.sn.config.book.version"] = t.oCfg.book.version;
|
|
72
|
+
}
|
|
73
|
+
#t = p();
|
|
74
|
+
#i = v();
|
|
75
|
+
#e = {
|
|
76
|
+
sys: {},
|
|
77
|
+
// clearsysvarを呼ぶので
|
|
78
|
+
save: this.#t,
|
|
79
|
+
tmp: this.#i,
|
|
80
|
+
mp: {},
|
|
81
|
+
mark: {}
|
|
82
|
+
};
|
|
83
|
+
#r;
|
|
84
|
+
#s = {
|
|
85
|
+
sys: {},
|
|
86
|
+
// clearsysvarを呼ぶので
|
|
87
|
+
mark: {},
|
|
88
|
+
kidoku: {}
|
|
89
|
+
};
|
|
90
|
+
#n;
|
|
91
|
+
#a = {};
|
|
92
|
+
#d;
|
|
93
|
+
async setSys(t) {
|
|
94
|
+
this.#r = t, await t.initVal(this.#s, this.#i, (s) => {
|
|
95
|
+
this.updateData(s), this.cfg.oCfg.debug.variable ? this.#W(t) : this.#h = () => t.flush(), this.#d = (i, o) => t.callHook(i, o), t.addHook((i, o) => this.#O[i]?.(i, o));
|
|
96
|
+
const e = f(this.getVal("sys:sn.tagCh.msecWait", -1));
|
|
97
|
+
(this.#i["const.sn.isFirstBoot"] || e === -1) && this.#l(!0), this.#g = !!this.getVal("sys:sn.tagCh.doWait"), this.#k = !!this.getVal("sys:sn.tagCh.doWait_Kidoku"), this.#_ = f(this.getVal("sys:sn.tagCh.msecWait")), this.#m = f(this.getVal("sys:sn.tagCh.msecWait_Kidoku")), this.#y();
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
//MARK: SessionStorage で確認できるデバッグ機能
|
|
101
|
+
#W(t) {
|
|
102
|
+
sessionStorage.clear();
|
|
103
|
+
const s = this.cfg.headNs;
|
|
104
|
+
this.#h = () => {
|
|
105
|
+
const e = b();
|
|
106
|
+
for (const [h, r] of Object.entries(this.#n))
|
|
107
|
+
r instanceof Function || (e[h] = r);
|
|
108
|
+
sessionStorage[s + "sys"] = JSON.stringify(e);
|
|
109
|
+
const i = p();
|
|
110
|
+
for (const [h, r] of Object.entries(this.#t))
|
|
111
|
+
i[h] = r;
|
|
112
|
+
sessionStorage[s + "save"] = JSON.stringify(i);
|
|
113
|
+
const o = v();
|
|
114
|
+
for (const [h, r] of Object.entries(this.#i))
|
|
115
|
+
o[h] = r instanceof Function ? r() : r;
|
|
116
|
+
sessionStorage[s + "tmp"] = JSON.stringify(o);
|
|
117
|
+
const n = C();
|
|
118
|
+
for (const [h, r] of Object.entries(this.#e.mp))
|
|
119
|
+
n[h] = r;
|
|
120
|
+
sessionStorage[s + "mp"] = JSON.stringify(n);
|
|
121
|
+
const a = {};
|
|
122
|
+
for (const [h, r] of Object.entries(this.#s.mark))
|
|
123
|
+
a[f(h)] = r instanceof Function ? r() : r;
|
|
124
|
+
sessionStorage[s + "mark"] = JSON.stringify(a), sessionStorage[s + "kidoku"] = structuredClone(this.#s.kidoku), t.flush();
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
#y() {
|
|
128
|
+
N.playbackPage(
|
|
129
|
+
String(this.getVal("sys:const.sn.aPageLog", "[]")),
|
|
130
|
+
String(this.getVal("save:const.sn.styPaging", N.INI_STYPAGE))
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
#O = {
|
|
134
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access
|
|
135
|
+
auth: (t, s) => this.#S(s.hBreakpoint.aData),
|
|
136
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access
|
|
137
|
+
var: (t, s) => this.#r.send2Dbg(s.ri, { v: this.#e[s.scope] ?? {} }),
|
|
138
|
+
set_var: (t, s) => {
|
|
139
|
+
try {
|
|
140
|
+
this.#b(s.nm, s.val), this.#r.send2Dbg(s.ri, {});
|
|
141
|
+
} catch {
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
set_data_break: (t, s) => {
|
|
145
|
+
this.#S(s.a), this.#r.send2Dbg(s.ri, {});
|
|
146
|
+
},
|
|
147
|
+
disconnect: (t) => {
|
|
148
|
+
g.#c = {};
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
152
|
+
#S(t) {
|
|
153
|
+
g.#c = {};
|
|
154
|
+
for (const s of t) g.#c[s.dataId] = 1;
|
|
155
|
+
}
|
|
156
|
+
//MARK: 外からのデータで保持データを更新
|
|
157
|
+
// 初期化時やインポートなどで使用
|
|
158
|
+
updateData(t) {
|
|
159
|
+
this.#s = t, this.#n = this.#e.sys = this.#s.sys, this.#a = {};
|
|
160
|
+
for (const [s, e] of Object.entries(this.#s.kidoku))
|
|
161
|
+
this.#a[s] = _.from(e);
|
|
162
|
+
}
|
|
163
|
+
#h = () => {
|
|
164
|
+
};
|
|
165
|
+
flush() {
|
|
166
|
+
this.#h();
|
|
167
|
+
}
|
|
168
|
+
// 先にこのメソッドへの参照を配ってしまうので、中身を入れ替える
|
|
169
|
+
setDoRecProc(t) {
|
|
170
|
+
this.#v = t;
|
|
171
|
+
}
|
|
172
|
+
#v = (t) => {
|
|
173
|
+
};
|
|
174
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access
|
|
175
|
+
defTmp(t, s) {
|
|
176
|
+
this.#i[t] = s;
|
|
177
|
+
}
|
|
178
|
+
cloneMp() {
|
|
179
|
+
return { ...this.#e.mp };
|
|
180
|
+
}
|
|
181
|
+
setMp(t) {
|
|
182
|
+
this.#e.mp = t;
|
|
183
|
+
}
|
|
184
|
+
setMark(t, s) {
|
|
185
|
+
this.#s.mark[t] = s, this.flush();
|
|
186
|
+
}
|
|
187
|
+
getMark(t) {
|
|
188
|
+
const s = this.#s.mark[t];
|
|
189
|
+
if (!s) throw `place【${String(t)}】は存在しません`;
|
|
190
|
+
return s;
|
|
191
|
+
}
|
|
192
|
+
cloneSave() {
|
|
193
|
+
return { ...this.#e.save };
|
|
194
|
+
}
|
|
195
|
+
mark2save(t) {
|
|
196
|
+
this.#t = this.#e.save = { ...t.hSave }, this.#u = this.#t["sn.doRecLog"];
|
|
197
|
+
}
|
|
198
|
+
// 既読系
|
|
199
|
+
touchAreaKidoku(t) {
|
|
200
|
+
const s = this.#a[t];
|
|
201
|
+
return s || (this.#s.kidoku[t] = {}, this.#a[t] = new _());
|
|
202
|
+
}
|
|
203
|
+
getAreaKidoku(t) {
|
|
204
|
+
const s = this.#a[t];
|
|
205
|
+
if (!s) throw `hAreaKidoku${t}】は存在しません`;
|
|
206
|
+
return s;
|
|
207
|
+
}
|
|
208
|
+
saveKidoku() {
|
|
209
|
+
for (const [t, s] of Object.entries(this.#a))
|
|
210
|
+
this.#s.kidoku[t] = s.val();
|
|
211
|
+
this.flush();
|
|
212
|
+
}
|
|
213
|
+
// // しおり
|
|
214
|
+
// しおりの複写
|
|
215
|
+
#V(t) {
|
|
216
|
+
const s = c(t, "from", NaN), e = c(t, "to", NaN);
|
|
217
|
+
if (s === e) return !1;
|
|
218
|
+
const i = this.#s.mark[s];
|
|
219
|
+
if (!i) throw `from:${String(s)} のセーブデータは存在しません`;
|
|
220
|
+
return this.setMark(e, { ...i }), this.#r.copyBMFolder(s, e), !1;
|
|
221
|
+
}
|
|
222
|
+
// しおりの消去
|
|
223
|
+
#j(t) {
|
|
224
|
+
const s = c(t, "place", NaN);
|
|
225
|
+
return delete this.#s.mark[s], this.flush(), this.#r.eraseBMFolder(s), !1;
|
|
226
|
+
}
|
|
227
|
+
// // 変数操作
|
|
228
|
+
// 変数代入・演算
|
|
229
|
+
#o(t) {
|
|
230
|
+
if (!t.name) throw "nameは必須です";
|
|
231
|
+
let s = !0;
|
|
232
|
+
if (t.cast)
|
|
233
|
+
switch (t.cast) {
|
|
234
|
+
case "num":
|
|
235
|
+
c(t, "text", NaN);
|
|
236
|
+
break;
|
|
237
|
+
case "int":
|
|
238
|
+
t.text = String(f(c(t, "text", NaN)));
|
|
239
|
+
break;
|
|
240
|
+
case "uint":
|
|
241
|
+
t.text = String(S(c(t, "text", NaN)));
|
|
242
|
+
break;
|
|
243
|
+
case "bool":
|
|
244
|
+
d(t, "text", !1);
|
|
245
|
+
break;
|
|
246
|
+
case "str":
|
|
247
|
+
s = !1;
|
|
248
|
+
break;
|
|
249
|
+
default:
|
|
250
|
+
throw "cast【" + t.cast + "】は未定義です";
|
|
251
|
+
}
|
|
252
|
+
return this.#b(t.name, t.text, s), !1;
|
|
253
|
+
}
|
|
254
|
+
// 絶対値
|
|
255
|
+
#P(t) {
|
|
256
|
+
const s = c(t, "text", 0);
|
|
257
|
+
return t.text = String(s < 0 ? -s : s), this.#o(t), !1;
|
|
258
|
+
}
|
|
259
|
+
// 文字列から一字取りだし
|
|
260
|
+
#R(t) {
|
|
261
|
+
return t.text = (t.text ?? "").charAt(c(t, "pos", 0)), this.#o(t), !1;
|
|
262
|
+
}
|
|
263
|
+
// 文字列で検索
|
|
264
|
+
#L(t) {
|
|
265
|
+
const { val: s } = t;
|
|
266
|
+
if (!s) throw "valは必須です";
|
|
267
|
+
const e = c(t, "start", 0);
|
|
268
|
+
return t.text = String((t.text ?? "").indexOf(s, e)), this.#o(t), !1;
|
|
269
|
+
}
|
|
270
|
+
// 文字列の長さ
|
|
271
|
+
#K(t) {
|
|
272
|
+
return t.text = String((t.text ?? "").length), this.#o(t), !1;
|
|
273
|
+
}
|
|
274
|
+
// 正規表現で置換
|
|
275
|
+
#F(t) {
|
|
276
|
+
if (!t.reg) throw "regは必須です";
|
|
277
|
+
const { flags: s } = t, e = s ? new RegExp(t.reg, s) : new RegExp(t.reg);
|
|
278
|
+
return t.text = (t.text ?? "").replace(e, String(t.val)), this.#o(t), !1;
|
|
279
|
+
}
|
|
280
|
+
// 四捨五入
|
|
281
|
+
#M(t) {
|
|
282
|
+
const s = c(t, "text", 0);
|
|
283
|
+
return t.text = String(Math.round(s)), this.#o(t), !1;
|
|
284
|
+
}
|
|
285
|
+
// 正規表現で検索
|
|
286
|
+
#D(t) {
|
|
287
|
+
if (!t.reg) throw "regは必須です";
|
|
288
|
+
const { flags: s } = t, e = s ? new RegExp(t.reg, s) : new RegExp(t.reg);
|
|
289
|
+
return t.text = String((t.text ?? "").search(e)), this.#o(t), !1;
|
|
290
|
+
}
|
|
291
|
+
// 文字列から抜きだし
|
|
292
|
+
#x(t) {
|
|
293
|
+
const s = c(t, "pos", 0);
|
|
294
|
+
return t.text = t.len !== "all" ? (t.text ?? "").slice(s, s + f(c(t, "len", 1))) : (t.text ?? "").slice(s), this.#o(t), !1;
|
|
295
|
+
}
|
|
296
|
+
// // デバッグ・その他
|
|
297
|
+
// システム変数の全消去
|
|
298
|
+
#l(t = !1) {
|
|
299
|
+
const s = this.#n = this.#e.sys = this.#s.sys = b();
|
|
300
|
+
typeof process < "u" || (this.setVal_Nochk("sys", "const.sn.window.x", 0), this.setVal_Nochk("sys", "const.sn.window.y", 0)), this.setVal_Nochk("sys", "sn.tagCh.msecWait", this.cfg.oCfg.init.tagch_msecwait), this.setVal_Nochk("sys", "sn.tagCh.msecWait_Kidoku", this.cfg.oCfg.init.tagch_msecwait), this.setVal_Nochk("sys", "sn.auto.msecPageWait", c(s, "sn.auto.msecPageWait", this.cfg.oCfg.init.auto_msecpagewait)), this.setVal_Nochk("sys", "sn.auto.msecPageWait_Kidoku", c(s, "sn.auto.msecPageWait", this.cfg.oCfg.init.auto_msecpagewait));
|
|
301
|
+
for (const i of Object.values(this.#a)) i.clear();
|
|
302
|
+
return this.#e.mark = this.#s.mark = {}, t || this.#y(), this.flush(), !1;
|
|
303
|
+
}
|
|
304
|
+
// ゲーム変数の全消去
|
|
305
|
+
#E() {
|
|
306
|
+
const t = this.#t["const.sn.mesLayer"], s = this.#t["sn.doRecLog"], e = this.#t["const.sn.sLog"], i = this.#t["const.sn.styPaging"];
|
|
307
|
+
return this.#t = this.#e.save = p(), this.setVal_Nochk("save", "const.sn.mesLayer", t), this.setVal_Nochk("save", "sn.doRecLog", s), this.setVal_Nochk("save", "const.sn.sLog", e), this.setVal_Nochk("save", "const.sn.styPaging", i), !1;
|
|
308
|
+
}
|
|
309
|
+
#b(t, s, e = !0) {
|
|
310
|
+
if (!t) throw "[変数に値セット] nameは必須です";
|
|
311
|
+
if (s === void 0) throw "[変数に値セット] textは必須です(空文字はOK)";
|
|
312
|
+
const i = w.getValName(t);
|
|
313
|
+
if (!i) throw `[変数参照] name(${t})が変数名として異常です`;
|
|
314
|
+
const o = this.#e[i.scope];
|
|
315
|
+
if (!o) throw `[変数に値セット] scopeが異常【${String(i.scope)}】です`;
|
|
316
|
+
const n = i.name;
|
|
317
|
+
if (n.startsWith("const.") && n in o)
|
|
318
|
+
throw `[変数に値セット] 変数【${n}】は書き換え不可です`;
|
|
319
|
+
this.setVal_Nochk(i.scope, n, s, e);
|
|
320
|
+
}
|
|
321
|
+
setVal_Nochk(t, s, e, i = !1) {
|
|
322
|
+
const o = this.#e[t], n = i ? this.#f(e) : e, a = t + ":" + s;
|
|
323
|
+
if (a in g.#c) {
|
|
324
|
+
const h = o[s], r = n;
|
|
325
|
+
h != r && this.#d("data_break", {
|
|
326
|
+
dataId: a,
|
|
327
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
328
|
+
old_v: h,
|
|
329
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
330
|
+
new_v: r
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
o[s] = n, this.#w[a]?.(s, n ?? "");
|
|
334
|
+
}
|
|
335
|
+
// reload 再生成 Main に受け渡すため static
|
|
336
|
+
static #c = {};
|
|
337
|
+
// readonly getVal_save = (arg_name: string, def?: number | string)=> {
|
|
338
|
+
// if (! arg_name) throw '[変数参照] nameは必須です';
|
|
339
|
+
getVal(t, s, e = !1) {
|
|
340
|
+
if (!t) throw "[変数参照] nameは必須です";
|
|
341
|
+
const i = w.getValName(t);
|
|
342
|
+
if (!i) throw "[変数参照] name(" + t + ")が変数名として異常です";
|
|
343
|
+
const o = this.#e[i.scope];
|
|
344
|
+
if (!o) throw `[変数参照] scopeが異常【${String(i.scope)}】です`;
|
|
345
|
+
const n = i.name;
|
|
346
|
+
let a = o[n];
|
|
347
|
+
if (!(n in o)) {
|
|
348
|
+
if (a = s, e)
|
|
349
|
+
return o[n] = s, i.at === "@str" ? a : this.#f(a);
|
|
350
|
+
let h = "";
|
|
351
|
+
const r = n.split("."), k = r.length;
|
|
352
|
+
for (let u = 0; u < k; ++u, h += ".") {
|
|
353
|
+
if (h += r[u], !(h in o)) continue;
|
|
354
|
+
let l = JSON.parse(o[h]);
|
|
355
|
+
if (Object.prototype.toString.call(l) !== "[object Object]") {
|
|
356
|
+
if (u + 1 === k) {
|
|
357
|
+
a = l;
|
|
358
|
+
break;
|
|
359
|
+
}
|
|
360
|
+
continue;
|
|
361
|
+
}
|
|
362
|
+
let m = u;
|
|
363
|
+
for (; ++m < k; ) {
|
|
364
|
+
const y = r[m];
|
|
365
|
+
if (!(y in l)) {
|
|
366
|
+
a = s;
|
|
367
|
+
break;
|
|
368
|
+
}
|
|
369
|
+
if (l = l[y], Object.prototype.toString.call(l) !== "[object Object]" || m + 1 === k) {
|
|
370
|
+
a = l;
|
|
371
|
+
break;
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
a instanceof Object && (a = JSON.stringify(a));
|
|
375
|
+
break;
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
return a instanceof Function && (a = a()), i.at === "@str" ? a : this.#f(a);
|
|
379
|
+
}
|
|
380
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
381
|
+
#f(t) {
|
|
382
|
+
const s = t;
|
|
383
|
+
if (s === "true") return !0;
|
|
384
|
+
if (s === "false") return !1;
|
|
385
|
+
if (s === "null") return null;
|
|
386
|
+
if (s !== "undefined")
|
|
387
|
+
return this.#I.test(s) ? parseFloat(s) : t;
|
|
388
|
+
}
|
|
389
|
+
#I = /^-?[\d.]+$/;
|
|
390
|
+
// 変数のダンプ
|
|
391
|
+
#B() {
|
|
392
|
+
const t = { tmp: {}, sys: {}, save: {}, mp: {} };
|
|
393
|
+
for (const s in t) {
|
|
394
|
+
const e = this.#e[s], i = t[s];
|
|
395
|
+
for (const [o, n] of Object.entries(e))
|
|
396
|
+
n instanceof Function || (i[o] = n);
|
|
397
|
+
}
|
|
398
|
+
return console.info("🥟 [dump_val]", t), !1;
|
|
399
|
+
}
|
|
400
|
+
#u = !1;
|
|
401
|
+
doRecLog() {
|
|
402
|
+
return this.#u;
|
|
403
|
+
}
|
|
404
|
+
#g = !1;
|
|
405
|
+
get tagCh_doWait() {
|
|
406
|
+
return this.#g;
|
|
407
|
+
}
|
|
408
|
+
#k = !1;
|
|
409
|
+
get tagCh_doWait_Kidoku() {
|
|
410
|
+
return this.#k;
|
|
411
|
+
}
|
|
412
|
+
#_ = 0;
|
|
413
|
+
get tagCh_msecWait() {
|
|
414
|
+
return this.#_;
|
|
415
|
+
}
|
|
416
|
+
#m = 0;
|
|
417
|
+
get tagCh_msecWait_Kidoku() {
|
|
418
|
+
return this.#m;
|
|
419
|
+
}
|
|
420
|
+
#w = {
|
|
421
|
+
// sys
|
|
422
|
+
"sys:sn.tagCh.doWait": (t) => {
|
|
423
|
+
this.#g = this.#p(t);
|
|
424
|
+
},
|
|
425
|
+
"sys:sn.tagCh.doWait_Kidoku": (t) => {
|
|
426
|
+
this.#k = this.#p(t);
|
|
427
|
+
},
|
|
428
|
+
"sys:sn.tagCh.msecWait": (t) => {
|
|
429
|
+
this.#_ = this.#J(t);
|
|
430
|
+
},
|
|
431
|
+
"sys:sn.tagCh.msecWait_Kidoku": (t) => {
|
|
432
|
+
this.#m = this.#$(t);
|
|
433
|
+
},
|
|
434
|
+
"sys:sn.tagCh.canskip": (t) => this.#p(t),
|
|
435
|
+
"sys:sn.auto.msecPageWait": (t) => this.#N(t),
|
|
436
|
+
"sys:sn.auto.msecPageWait_Kidoku": (t) => this.#N(t),
|
|
437
|
+
"sys:sn.auto.msecLineWait": (t) => this.#C(t),
|
|
438
|
+
"sys:sn.auto.msecLineWait_Kidoku": (t) => this.#C(t),
|
|
439
|
+
// save
|
|
440
|
+
"save:sn.doRecLog": (t) => {
|
|
441
|
+
this.#v(
|
|
442
|
+
this.#u = this.#H(t)
|
|
443
|
+
);
|
|
444
|
+
},
|
|
445
|
+
"save:sn.userFnTail": (t, s) => {
|
|
446
|
+
const e = String(s);
|
|
447
|
+
if (e.includes("@")) throw "この変数では文字「@」は禁止です";
|
|
448
|
+
this.cfg.userFnTail = e;
|
|
449
|
+
},
|
|
450
|
+
// tmp
|
|
451
|
+
"tmp:flash.desktop.NativeApplication.nativeApplication.systemIdleMode": () => {
|
|
452
|
+
}
|
|
453
|
+
};
|
|
454
|
+
defValTrg(t, s) {
|
|
455
|
+
this.#w[t] = s;
|
|
456
|
+
}
|
|
457
|
+
#p = (t) => d(this.#n, t, !0);
|
|
458
|
+
#J = (t) => c(this.#n, t, 10);
|
|
459
|
+
#$ = (t) => c(
|
|
460
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
461
|
+
this.#n,
|
|
462
|
+
t,
|
|
463
|
+
this.cfg.oCfg.init.tagch_msecwait ?? 10
|
|
464
|
+
);
|
|
465
|
+
#N = (t) => c(
|
|
466
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
467
|
+
this.#n,
|
|
468
|
+
t,
|
|
469
|
+
this.cfg.oCfg.init.auto_msecpagewait ?? 3500
|
|
470
|
+
);
|
|
471
|
+
#C = (t) => c(this.#n, t, 500);
|
|
472
|
+
#H(t) {
|
|
473
|
+
return d(this.#t, t, !0);
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
export {
|
|
477
|
+
g as Variable
|
|
478
|
+
};
|
|
479
|
+
//# sourceMappingURL=Variable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Variable.js","sources":["../src/sn/Areas.ts","../src/sn/Variable.ts"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n\tCopyright (c) 2018-2025 Famibee (famibee.blog38.fc2.com)\n\n\tThis software is released under the MIT License.\n\thttp://opensource.org/licenses/mit-license.php\n** ***** END LICENSE BLOCK ***** */\n\nexport type T_H_Areas = {[begin: string]: number};\n\n\nexport class Areas {\n\t#hAreas\t: T_H_Areas\t= {};\n\n\tclear() {this.#hAreas = {}}\n\tstatic\tfrom(new_val: T_H_Areas): Areas {\n\t\tconst ar = new Areas;\n\t\tar.#hAreas = {...new_val};\n\t\treturn ar;\n\t}\n\tval(): T_H_Areas {return {...this.#hAreas}}\n\n\tsearch(idx: number): boolean {\n\t\treturn Object.entries(this.#hAreas)\n\t\t.some(([begin, v])=> idx >= parseInt(begin) && idx <= v);\n\t}\n\n\trecord(idx: number): void {\n\t\tif (this.search(idx)) return;\n\n\t\tfor (const [begin, v] of Object.entries(this.#hAreas)) {\n\t\t\t// 領域末尾+1とマッチ\n\t\t\tif (v +1 === idx) {\n\t\t\t\tif (String(idx +1) in this.#hAreas) {\n\t\t\t\t\t// 二つの領域がマージできる場合\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\tthis.#hAreas[begin] = this.#hAreas[idx +1]!;\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\t\t\t\tdelete this.#hAreas[idx +1]\n\t\t\t\t}\n\t\t\t\telse this.#hAreas[begin] = idx;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// 領域先頭-1とマッチ\n\t\tif (String(idx +1) in this.#hAreas) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\tthis.#hAreas[idx] = this.#hAreas[idx +1]!;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\t\tdelete this.#hAreas[idx +1];\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#hAreas[idx] = idx;\n\t}\n\n\terase(idx: number): void {\n\t\tif (! this.search(idx)) return;\n\n\t\t// 領域先頭とマッチ\n\t\tif (String(idx) in this.#hAreas) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\tif (this.#hAreas[idx]! > idx) this.#hAreas[idx +1] = this.#hAreas[idx]!;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\t\tdelete this.#hAreas[idx];\n\t\t\treturn;\n\t\t}\n\n\t\tfor (const [begin, v] of Object.entries(this.#hAreas)) {\n\t\t\tif (idx < parseInt(begin) || v < idx) continue;\n\n\t\t\t// 領域末尾とマッチ\n\t\t\tif (this.#hAreas[begin] === idx) {\n\t\t\t\tthis.#hAreas[begin] = idx -1;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// 領域内とマッチ、二つの領域に分割\n\t\t\tthis.#hAreas[idx +1] = v;\n\t\t\tthis.#hAreas[begin] = idx -1;\n\t\t\treturn;\n\t\t}\n\t}\n\n\tget count(): number {return Object.keys(this.#hAreas).length}\t// 4tst\n\n\ttoString(): string {\n\t\tlet ret = '';\n\n\t\tfor (const k of Object.keys(this.#hAreas)\n\t\t.map(k=> parseInt(k))\n\t\t.sort((x, y)=> x-y)) {\n\t\t\tret += k === this.#hAreas[k]\n\t\t\t? ','+ String(k)\n\t\t\t: ','+ String(k) +'~'+ String(this.#hAreas[String(k)]);\n\t\t}\n\n\t\treturn ret;\t// 先頭に , が付いている。削除したいが、修正すると互換性に問題あり凍結\n\t}\n\n}\n","/* ***** BEGIN LICENSE BLOCK *****\n\tCopyright (c) 2018-2025 Famibee (famibee.blog38.fc2.com)\n\n\tThis software is released under the MIT License.\n\thttp://opensource.org/licenses/mit-license.php\n** ***** END LICENSE BLOCK ***** */\n\nimport {uint, int, argChk_Boolean, argChk_Num} from './CmnLib';\nimport {creCSArg, type T_H_VAL_MP} from './CallStack';\nimport type {HArg, IHTag} from './Grammar';\nimport type {IVariable, T_fncSetVal, typeProcVal, ISysBase, T_Data4Vari, T_Mark, IFncHook, Scope, T_H_TMP_DATA, T_H_VAL_MARK, T_H_SYS_DATA, T_VAL_DATA_FNC, T_VAL_DATA, T_VAL_BSNU, T_H_SAVE_DATA} from './CmnInterface';\nimport {creSAVEDATA, creSYS_DATA, creTMP_DATA} from './CmnInterface';\nimport type {Config} from './Config';\nimport {Areas} from './Areas';\nimport {PropParser} from './PropParser';\nimport {ReadingState} from './Reading';\n\n\nexport class Variable implements IVariable {\n\t#hSave\t\t: T_H_SAVE_DATA\t= creSAVEDATA();\n\t#hTmp\t\t: T_H_TMP_DATA\t= creTMP_DATA();\n\t#hScopes\t= {\n\t\tsys\t\t: {},\t// clearsysvarを呼ぶので\n\t\tsave\t: this.#hSave,\n\t\ttmp\t\t: this.#hTmp,\n\t\tmp\t\t: <T_H_VAL_MP>{},\n\t\tmark\t: <T_H_VAL_MARK>{},\n\t};\n\n\n\tconstructor(private readonly cfg: Config, hTag: IHTag) {\n\t\t//\t変数操作\n\t\thTag.let\t\t\t= o=> this.#let(o);\t\t\t// 変数代入・演算\n\t\thTag.let_abs\t\t= o=> this.#let_abs(o);\t\t// 絶対値\n\t\thTag.let_char_at\t= o=> this.#let_char_at(o);\t// 文字列から一字取りだし\n\t\thTag.let_index_of\t= o=> this.#let_index_of(o);\t// 文字列で検索\n\t\thTag.let_length\t\t= o=> this.#let_length(o);\t// 文字列の長さ\n\t\t// let_mlはScriptIteratorにて定義\t\t\t\t// インラインテキスト代入\n\t\thTag.let_replace\t= o=> this.#let_replace(o);\t// 正規表現で置換\n\t\thTag.let_round\t\t= o=> this.#let_round(o);\t// 四捨五入\n\t\thTag.let_search\t\t= o=> this.#let_search(o);\t// 正規表現で検索\n\t\thTag.let_substr\t\t= o=> this.#let_substr(o);\t// 文字列から抜きだし\n\n\t\t//\tデバッグ・その他\n\t\thTag.clearsysvar\t= ()=> this.#clearsysvar();\t// システム変数の全消去\n\t\thTag.clearvar\t\t= ()=> this.#clearvar();\t// ゲーム変数の全消去\n\t\thTag.dump_val\t\t= ()=> this.#dump_val();\t// 変数のダンプ\n\n\t\t// しおり\n\t\thTag.copybookmark\t= o=> this.#copybookmark(o);\t// しおりの複写\n\t\thTag.erasebookmark\t= o=> this.#erasebookmark(o);\t// しおりの消去\n\t\t//hTag.load\t\t\t// ScriptIterator.ts内で定義\t// しおりの読込\n\t\t//hTag.record_place\t// ScriptIterator.ts内で定義\t// セーブポイント指定\n\t\t//hTag.save\t\t\t// ScriptIterator.ts内で定義\t// しおりの保存\n\n\t\t// save:\n\t\tthis.defTmp('const.sn.bookmark.json', ()=> {\n\t\t\tconst a: HArg[] = [];\n\t\t\tfor (const [nm, mk] of Object.entries(this.#data.mark)) {\n\t\t\t\tconst o = {...mk.json};\n\t\t\t\to.place = uint(nm);\n\t\t\t\ta.push(o);\t// パスを searchPath() で展開してはいけない\n\t\t\t}\n\t\t\treturn JSON.stringify(a);\n\t\t});\n\n\t\t// tmp:\n\t\t/*\n\t\t\tthis.hTmp['const.Stage.supportsOrientationChange']\n\t\t\t\t= Stage.supportsOrientationChange;\n\t\t\tif (this.hTmp['const.Stage.supportsOrientationChange']) {\n\t\t\t\tthis.hTmp['const.Stage.orientation']\n\t\t\t\t\t= ()=> {return stage.orientation};\n\t\t\t\tthis.hTmp['const.Stage.deviceOrientation']\n\t\t\t\t\t= ()=> {return stage.deviceOrientation};\n\n\t\t\t\tconst lenSO:uint = stage.supportedOrientations.length;\n\t\t\t\tfor (let iSO:uint=0; iSO<lenSO; ++iSO) {\n\t\t\t\t\tthis.hTmp['const.Stage.supportedOrientations.'\n\t\t\t\t\t\t+ stage.supportedOrientations[iSO]\n\t\t\t\t\t] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\t//\timport flash.display.StageOrientation;\n\t\t\t\tthis.hTmp['const.Stage.orientation'] =\n\t\t\t\tthis.hTmp['const.Stage.deviceOrientation'] =\n\t\t\t\t//\t\tStageOrientation.DEFAULT;\n\t\t\t\t\t'default';\n\t\t\t}\n\t\t*/\n\n\t\t// ・画面サイズ:screen.width ウインドウが表示されているディスプレイのサイズ\n\t\t//\t※ macOSなら【設定】-【ディスプレイ】-【使用形態】のイメージボタンにホバーすると出る数字と同じ\n// DebugMng.myTrace(`fn:Variable.ts 画面サイズ(${String(screen.width)} x ${String(screen.height)}) 利用可能領域(${String(screen.availWidth)} x ${String(screen.availHeight)})`, 'W');\n\n\t\tthis.#clearsysvar(true);\n\n\t\t// prj.json\n\t\tthis.#hTmp['const.sn.config.window.width']\t= cfg.oCfg.window.width;\n\t\tthis.#hTmp['const.sn.config.window.height']\t= cfg.oCfg.window.height;\n\t\tthis.#hTmp['const.sn.config.book.title']\t= cfg.oCfg.book.title;\n\t\tthis.#hTmp['const.sn.config.book.version']\t= cfg.oCfg.book.version;\n\t}\n\n\n\t#sys\t: ISysBase;\n\t#data\t: T_Data4Vari\t= {\n\t\tsys\t\t: <T_H_SYS_DATA>{},\t// clearsysvarを呼ぶので\n\t\tmark\t: {},\n\t\tkidoku\t: {},\n\t};\n\t#hSys\t: T_H_SYS_DATA;\n\t#hAreaKidoku\t: {[fn: string]: Areas}\t= {};\n\t#callHook\t\t: IFncHook;\n\tasync setSys(sys: ISysBase) {\n\t\tthis.#sys = sys;\n\t\tawait sys.initVal(this.#data, this.#hTmp, data=> {\n\t\t\tthis.updateData(data);\n\n\t\t\tif (this.cfg.oCfg.debug.variable) this.#dbgVariable(sys);\n\t\t\telse this.#flush = ()=> sys.flush();\n\n\t\t\tthis.#callHook = (type, o)=> sys.callHook(type, o);\n\t\t//x\tthis.callHook = sys.callHook;\n\t\t\tsys.addHook((type, o)=> this.#hProcDbgRes[type]?.(type, o));\n\n\t\t\t// 初回の初期化と、v1.11.0 まで未初期化変数があった件の対策\n\t\t\tconst tm = int(this.getVal('sys:sn.tagCh.msecWait', -1));\n\t\t\tif (this.#hTmp['const.sn.isFirstBoot'] || tm === -1) this.#clearsysvar(true);\n\n\t\t\tthis.#tagCh_doWait = Boolean(this.getVal('sys:sn.tagCh.doWait'));\n\t\t\tthis.#tagCh_doWait_Kidoku = Boolean(this.getVal('sys:sn.tagCh.doWait_Kidoku'));\n\t\t\tthis.#tagCh_msecWait = int(this.getVal('sys:sn.tagCh.msecWait'));\n\t\t\tthis.#tagCh_msecWait_Kidoku = int(this.getVal('sys:sn.tagCh.msecWait_Kidoku'));\n\n\t\t\tthis.#saPageLog();\n\t\t});\n\t}\n\n\t//MARK: SessionStorage で確認できるデバッグ機能\n\t#dbgVariable(sys: ISysBase) {\n\t\tsessionStorage.clear();\n\t\tconst ns = this.cfg.headNs;\n\n\t\tthis.#flush = () => {\n\t\t\tconst oSys = creSYS_DATA();\n\t\t\tfor (const [k, v] of Object.entries(this.#hSys)) {\n\t\t\t\tif (v instanceof Function) continue;\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(<any>oSys)[k] = v;\n\t\t\t}\n\t\t\tsessionStorage[ns + 'sys'] = JSON.stringify(oSys);\n\n\t\t\tconst oSave = creSAVEDATA();\n\t\t\tfor (const [k, v] of Object.entries(this.#hSave)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(<any>oSave)[k] = v;\n\t\t\t}\n\t\t\tsessionStorage[ns + 'save'] = JSON.stringify(oSave);\n\n\t\t\tconst oTmp = creTMP_DATA();\n\t\t\tfor (const [k, v] of Object.entries(this.#hTmp)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(<any>oTmp)[k] = v instanceof Function ? v() : v;\n\t\t\t\t//TODO: 実行するのか無視するのか問題\n\t\t\t}\n\t\t\tsessionStorage[ns + 'tmp'] = JSON.stringify(oTmp);\n\n\t\t\tconst oMp = creCSArg();\n\t\t\tfor (const [k, v] of Object.entries(this.#hScopes.mp)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(<any>oMp)[k] = v;\n\t\t\t}\n\t\t\tsessionStorage[ns + 'mp'] = JSON.stringify(oMp);\n\n\t\t\tconst oMark: T_H_VAL_MARK = {};\n\t\t\tfor (const [k, v] of Object.entries(this.#data.mark)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-assignment\n\t\t\t\toMark[int(k)] = v instanceof Function ? v() : v;\n\t\t\t}\n\t\t\tsessionStorage[ns + 'mark'] = JSON.stringify(oMark);\n\n\t\t\tsessionStorage[ns + 'kidoku'] = structuredClone(this.#data.kidoku);\n\n\t\t\tsys.flush();\n\t\t};\n\t}\n\n\n\t#saPageLog() {ReadingState.playbackPage(\n\t\tString(this.getVal('sys:const.sn.aPageLog', '[]')),\n\t\tString(this.getVal('save:const.sn.styPaging', ReadingState.INI_STYPAGE)),\n\t)}\n\treadonly\t#hProcDbgRes\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t: {[type: string]: (type: string, o: any)=> void}\t= {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\tauth: (_, o)=> this.#set_data_break(o.hBreakpoint.aData),\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\tvar\t: (_,o)=> this.#sys.send2Dbg(o.ri, {v: this.#hScopes[<Scope>o.scope] ?? {}}),\n\t\tset_var\t: (_, o)=> {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\ttry {this.#setVal(o.nm, o.val); this.#sys.send2Dbg(o.ri, {})} catch { /* empty */ }\n\t\t},\n\t\tset_data_break\t: (_, o)=> {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\tthis.#set_data_break(o.a);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\tthis.#sys.send2Dbg(o.ri, {});\n\t\t},\n\t\tdisconnect: _=> {Variable.#hSetEvent = {}},\n\t}\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t#set_data_break(a: any[]) {\t// o.a.length === 0 なら削除\n\t\tVariable.#hSetEvent = {};\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\tfor (const v of a) Variable.#hSetEvent[v.dataId] = 1;\n\t}\n\n\n\t//MARK: 外からのデータで保持データを更新\n\t//\t初期化時やインポートなどで使用\n\tupdateData(data: T_Data4Vari): void {\n\t\tthis.#data = data;\n\t\tthis.#hSys = this.#hScopes.sys = this.#data.sys;\n\n\t\tthis.#hAreaKidoku = {};\n\t\tfor (const [fn, dk] of Object.entries(this.#data.kidoku)) {\n\t\t\tthis.#hAreaKidoku[fn] = Areas.from(dk);\n\t\t}\n\t\t// this.flush();\t// saveKidoku() に任せる\n\t}\n\t#flush\t= ()=> { /* empty */ };\n\tflush() {this.#flush()}\t// 先にこのメソッドへの参照を配ってしまうので、中身を入れ替える\n\n\tsetDoRecProc(fnc: (doRec: boolean)=> void) {this.#doRecProc = fnc}\n\t#doRecProc = (_doRec: boolean)=> { /* empty */ };\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\tdefTmp(name: string, fnc: typeProcVal) {(<any>this.#hTmp)[name] = fnc}\n\n\tcloneMp() {return {...this.#hScopes.mp}}\n\tsetMp(mp: T_H_VAL_MP) {this.#hScopes.mp = mp}\n\n\tsetMark(place: number, mark: T_Mark) {\n\t\tthis.#data.mark[place] = mark;\n\t\tthis.flush();\n\t}\n\tgetMark(place: number) {\n\t\tconst mark = this.#data.mark[place];\n\t\tif (! mark) throw `place【${String(place)}】は存在しません`;\n\t\treturn mark;\n\t}\n\n\tcloneSave() {return {...this.#hScopes.save}}\n\tmark2save(mark: T_Mark) {\n\t\tthis.#hSave = this.#hScopes.save = {...mark.hSave};\n\t\tthis.#doRecLog\t= this.#hSave['sn.doRecLog'];\n\t}\n\n\n\t// 既読系\n\ttouchAreaKidoku(fn: string): Areas {\n\t\tconst ar = this.#hAreaKidoku[fn];\n\t\tif (ar) return ar;\n\n\t\tthis.#data.kidoku[fn] = {};\n\t\tconst ret = this.#hAreaKidoku[fn] = new Areas;\n\t\treturn ret;\n\t}\n\tgetAreaKidoku(fn: string): Areas {\n\t\tconst ar = this.#hAreaKidoku[fn];\n\t\tif (! ar) throw `hAreaKidoku${fn}】は存在しません`;\n\t\treturn ar;\n\t}\n\tsaveKidoku() {\n\t\tfor (const [fn, ak] of Object.entries(this.#hAreaKidoku)) {\n\t\t\tthis.#data.kidoku[fn] = ak.val();\n\t\t}\n\t\tthis.flush();\n\t}\n\n\n//\t// しおり\n\t// しおりの複写\n\t#copybookmark(hArg: HArg) {\n\t\tconst from = argChk_Num(hArg, 'from', NaN);\n\t\tconst to = argChk_Num(hArg, 'to', NaN);\n\t\t// const from = hArg.from;\n\t\t// const to = hArg.to;\n\t\tif (from === to) return false;\n\n\t\tconst f = this.#data.mark[from];\n\t\tif (! f) throw `from:${String(from)} のセーブデータは存在しません`;\n\t\tthis.setMark(to, {...f});\n\t\tthis.#sys.copyBMFolder(from, to);\n\n\t\treturn false;\n\t}\n\n\t// しおりの消去\n\t#erasebookmark(hArg: HArg) {\n\t\tconst place = argChk_Num(hArg, 'place', NaN);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\tdelete this.#data.mark[place];\n\t\tthis.flush();\n\n\t\tthis.#sys.eraseBMFolder(place);\n\n\t\treturn false;\n\t}\n\n\n//\t//\t変数操作\n\t// 変数代入・演算\n\t#let(hArg: HArg) {\n\t\tif (! hArg.name) throw 'nameは必須です';\n\n\t\tlet autocast = true;\n\t\tif (hArg.cast) {\n\t\t\t//switch (trim(hArg.cast)) {\n\t\t\tswitch (hArg.cast) {\n\t\t\tcase 'num':\n\t\t\t\targChk_Num(hArg, 'text', NaN);\n\t\t\t\tbreak;\n\t\t\tcase 'int':\n\t\t\t\thArg.text = String(int(argChk_Num(hArg, 'text', NaN)));\n\t\t\t\tbreak;\n\t\t\tcase 'uint':\n\t\t\t\thArg.text = String(uint(argChk_Num(hArg, 'text', NaN)));\n\t\t\t\tbreak;\n\t\t\tcase 'bool':\n\t\t\t\targChk_Boolean(hArg, 'text', false);\n\t\t\t\tbreak;\n\t\t\tcase 'str':\n\t\t\t\tautocast = false;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow 'cast【'+ hArg.cast +'】は未定義です';\n\t\t\t}\n\t\t}\n\n\t\tthis.#setVal(hArg.name, hArg.text, autocast);\n\n\t\treturn false;\n\t}\n\n\t// 絶対値\n\t#let_abs(hArg: HArg) {\n\t\tconst n = argChk_Num(hArg, 'text', 0);\n\t\t//hArg.text = Math.abs(n);\n\t\thArg.text = String(n < 0 ?-n :n);\n\t\t\t// JavaScriptのMath.abs()で絶対値を取得しないほうが良い理由 | iwb.jp https://iwb.jp/javascript-math-abs-deprecated/\n\t\t\t// 数値以外だとほとんどがNaNを返し、booleanは0や1を返しているため使い方によってはバグの原因になることがある。\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 文字列から一字取りだし\n\t#let_char_at(hArg: HArg) {\n\t\thArg.text = (hArg.text ?? '').charAt(argChk_Num(hArg, 'pos', 0));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 文字列で検索\n\t#let_index_of(hArg: HArg) {\n\t\tconst {val} = hArg;\n\t\tif (! val) throw 'valは必須です';\n\t\tconst start = argChk_Num(hArg, 'start', 0);\n\n\t\thArg.text = String((hArg.text ?? '').indexOf(val, start));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 文字列の長さ\n\t#let_length(hArg: HArg) {\n\t\thArg.text = String((hArg.text ?? '').length);\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 正規表現で置換\n\t#let_replace(hArg: HArg) {\n\t\tif (! hArg.reg) throw 'regは必須です';\n\n\t\tconst {flags} = hArg;\n\t\tconst reg = ! flags\n\t\t\t? new RegExp(hArg.reg)\n\t\t\t: new RegExp(hArg.reg, flags);\n\t\thArg.text = (hArg.text ?? '').replace(reg, String(hArg.val));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 四捨五入\n\t#let_round(hArg: HArg) {\n\t\tconst n = argChk_Num(hArg, 'text', 0);\n\t\thArg.text = String(Math.round(n));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 正規表現で検索\n\t#let_search(hArg: HArg) {\n\t\tif (! hArg.reg) throw 'regは必須です';\n\n\t\tconst {flags} = hArg;\n\t\tconst reg = ! flags\n\t\t\t? new RegExp(hArg.reg)\n\t\t\t: new RegExp(hArg.reg, flags);\n\t\thArg.text = String((hArg.text ?? '').search(reg));\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\t// 文字列から抜きだし\n\t#let_substr(hArg: HArg) {\n\t\tconst i = argChk_Num(hArg, 'pos', 0);\n\t\thArg.text = hArg.len !== 'all'\n\t\t\t? (hArg.text ?? '').slice(i, i +int(argChk_Num(hArg, 'len', 1)))\n\t\t\t: (hArg.text ?? '').slice(i);\n\t\tthis.#let(hArg);\n\n\t\treturn false;\n\t}\n\n\n//\t// デバッグ・その他\n\t// システム変数の全消去\n\t#clearsysvar(init = false) {\n\t\tconst sys = this.#hSys = this.#hScopes.sys = this.#data.sys = creSYS_DATA();\n\n\t\tconst is_nw = typeof process !== 'undefined';\n\t\tif (is_nw) {\n\t\t//\t//\tthis.setVal_Sub('sys:const.sn.window.x', stage.nativeWindow.x);\n\t\t//\t//\tthis.setVal_Sub('sys:const.sn.window.y', stage.nativeWindow.y);\n\t\t\t//NOTE: これは??\n\t\t}\n\t\telse {\n\t\t\tthis.setVal_Nochk('sys', 'const.sn.window.x', 0);\n\t\t\tthis.setVal_Nochk('sys', 'const.sn.window.y', 0);\n\t\t}\n\n\t\t// 文字表示Wait時間\n\t\tthis.setVal_Nochk('sys', 'sn.tagCh.msecWait', this.cfg.oCfg.init.tagch_msecwait);\n\t\tthis.setVal_Nochk('sys', 'sn.tagCh.msecWait_Kidoku', this.cfg.oCfg.init.tagch_msecwait);\n\n\t\t// 自動読みすすみモード時の改ページ時のウェイト\n\t\t//\t//\trunFirst_sys_an_auto_msecPageWait('sn.auto.msecPageWait', '');\n\t\tthis.setVal_Nochk('sys', 'sn.auto.msecPageWait', argChk_Num(sys, 'sn.auto.msecPageWait', this.cfg.oCfg.init.auto_msecpagewait));\n\t\tthis.setVal_Nochk('sys', 'sn.auto.msecPageWait_Kidoku', argChk_Num(sys, 'sn.auto.msecPageWait', this.cfg.oCfg.init.auto_msecpagewait));\n\n\t\t//\tSoundMixer.soundTransform = new SoundTransform(\n\t\t//\t\t(sys['flash.media.SoundMixer.soundTransform.volume'] = 1)\n\t\t//\t);\n\n\t\tfor (const ar of Object.values(this.#hAreaKidoku)) ar.clear();\n\t\t\t// this.#data.kidoku へのコピーは saveKidoku() に任せる\n\n\t\tthis.#hScopes.mark = this.#data.mark = {};\n\n\t\tif (! init) this.#saPageLog();\n\n\n\t\tthis.flush();\n\n\t\treturn false;\n\t}\n\n\t// ゲーム変数の全消去\n\t#clearvar() {\n\t\tconst mesLayer\t: string = this.#hSave['const.sn.mesLayer'];\n\t\tconst doRecLog\t: boolean= this.#hSave['sn.doRecLog'];\n\t\tconst sLog\t\t: string = this.#hSave['const.sn.sLog'];\n\t\tconst styPaging\t: string = this.#hSave['const.sn.styPaging'];\n\n\t\tthis.#hSave = this.#hScopes.save = creSAVEDATA();\n\n\t\tthis.setVal_Nochk('save', 'const.sn.mesLayer', mesLayer);\n\t\tthis.setVal_Nochk('save', 'sn.doRecLog', doRecLog);\n\t\tthis.setVal_Nochk('save', 'const.sn.sLog', sLog);\n\t\tthis.setVal_Nochk('save', 'const.sn.styPaging', styPaging);\n\n\t\treturn false;\n\t}\n\n\t#setVal(arg_name: string, val: T_VAL_BSNU, autocast = true) {\n\t\tif (! arg_name) throw '[変数に値セット] nameは必須です';\n\t\tif (val === undefined) throw '[変数に値セット] textは必須です(空文字はOK)';\n\n\t\tconst o = PropParser.getValName(arg_name);\n\t\tif (! o) throw `[変数参照] name(${arg_name})が変数名として異常です`;\n\n\t\tconst hScope = this.#hScopes[<Scope>o.scope];\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\t\tif (! hScope) throw `[変数に値セット] scopeが異常【${String(o.scope)}】です`;\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\tconst nm = o.name!;\n\t\tif (nm.startsWith('const.') && nm in hScope) {\n\t\t\tthrow `[変数に値セット] 変数【${nm}】は書き換え不可です`;\n\t\t}\n\n\t\tthis.setVal_Nochk(<Scope>o.scope, nm, val, autocast);\n\t}\n\tsetVal_Nochk(scope: Scope, nm: string, ival: T_VAL_BSNU, autocast = false) {\n\t\tconst hScope = this.#hScopes[scope];\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tconst val = autocast ?this.#castAuto(ival) : ival;\n\n\t\tconst fullnm = scope +':'+ nm;\n\t\tif (fullnm in Variable.#hSetEvent) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n\t\t\tconst old_v = (<any>hScope)[nm];\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\tconst new_v = val;\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif (old_v != new_v) this.#callHook('data_break', {\n\t\t\t\tdataId: fullnm,\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\told_v,\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\tnew_v,\n\t\t\t});\n\t\t}\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment\n\t\t(<any>hScope)[nm] = val;\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\tthis.#hSetValTrg[fullnm]?.(nm, val ?? '');\n\n\t\t// if (scope === 'sys') this.flush()\n\t\t\t// 厳密にはここですべきだが、パフォーマンスに問題があるので\n\t\t\t// クリック待ちを期待できるwait、waitclick、s、l、pタグで\n\t\t\t// saveKidoku()をコール。(中で保存しているのでついでに)\n\n\t\t//console.log(`\\tlet s[${scope}] n[${nm}]='${val}' trg[${(trg)}]`);\n\t}\n\t// reload 再生成 Main に受け渡すため static\n\tstatic\t#hSetEvent: {[fullnm: string]: 1} = {};\n\n\n\t// readonly getVal_save = (arg_name: string, def?: number | string)=> {\n\t// \tif (! arg_name) throw '[変数参照] nameは必須です';\n\n\tgetVal(arg_name: string, def?: number | string, touch = false): T_VAL_DATA {\n\t\tif (! arg_name) throw '[変数参照] nameは必須です';\n\n\t\tconst o = PropParser.getValName(arg_name);\n\t\tif (! o) throw '[変数参照] name('+ arg_name +')が変数名として異常です';\n\n\t\tconst hScope = this.#hScopes[<Scope>o.scope];\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\t\tif (! hScope) throw `[変数参照] scopeが異常【${String(o.scope)}】です`;\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\tconst val_name = o.name!;\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\t\tlet val = <T_VAL_DATA_FNC>(<any>hScope)[val_name];\n\t\t// let val = (<any>hScope)[val_name];\n// console.log(`fn:Variable.ts ・getVal arg_name=${arg_name}= val_name=${val_name}= A:${String(! (val_name in hScope))} val:%o`, val);\n\t\tif (! (val_name in hScope)) {\t// 存在しない変数名の場合、刻んで調べていく\n\t\t\tval = def;\n\t\t\tif (touch) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n\t\t\t\t(<any>hScope)[val_name] = def;\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\t\t\treturn o.at === '@str' ?val :this.#castAuto(val);\n\t\t\t}\n\n\t\t\tlet nm = '';\n\t\t\tconst aNm = val_name.split('.');\n\t\t\tconst len = aNm.length;\n\t\t\tfor (let i=0; i<len; ++i, nm += '.') {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n\t\t\t\tnm += aNm[i];\n\t\t\t\tif (! (nm in hScope)) continue;\t// 存在しない変数名の場合、延ばす\n\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n\t\t\t\tlet v = JSON.parse((<any>hScope)[nm]);\n\t\t\t\tif (Object.prototype.toString.call(v) !== '[object Object]') {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\t\tif (i +1 === len) {val = v; break}\t// 最下層ならそのまま返す\n\t\t\t\t\tcontinue;\n\t\t\t\t\t\t// 短い名前でヒットしたが、JSONでもなく\n\t\t\t\t\t\t// 変数名にはまだ続きがあるので探索続行\n\t\t\t\t}\n\n\t\t\t\tlet j = i;\t// JSONオブジェクトの階層を降りつつ探索\n\t\t\t\twhile (++j < len) {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\tconst nj = aNm[j]!;\n\t\t\t\t\tif (! (nj in v)) {val = def; break}\n\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t\tv = v[nj];\n\t\t\t\t\tif (Object.prototype.toString.call(v) !== '[object Object]'\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\t\t\t|| j +1 === len) {val = v; break}// 最下層ならそのまま返す\n\t\t\t\t}\n\n\t\t\t\tif (val instanceof Object) val = JSON.stringify(val);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (val instanceof Function) val = val();\n// console.log(`\\tget [${arg_name}] -> s[${o.scope ?? 'tmp'}'] a[${o.at ?? ''}] n[${val_name}'] ret['${String(val)}']('${typeof val}')'`);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\treturn o.at === '@str' ?val :this.#castAuto(val);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t#castAuto(val: T_VAL_DATA): any {\n\t\tconst s_val = <string>val;\n\t\tif (s_val === 'true') return true;\n\t\tif (s_val === 'false') return false;\n\t\tif (s_val === 'null') return null;\n\t\tif (s_val === 'undefined') return undefined;\n\t\tif (this.#REG_NUMERICLITERAL.test(s_val)) return parseFloat(s_val);\n\n\t\treturn val;\n\t}\n\t#REG_NUMERICLITERAL\t\t= /^-?[\\d.]+$/;\n\n\n\t// 変数のダンプ\n\t#dump_val() {\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tconst val: any = {tmp:{}, sys:{}, save:{}, mp:{}};\n\t\tfor (const scope in val) {\n\t\t\tconst hVal = this.#hScopes[<Scope>scope];\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n\t\t\tconst hRet = val[scope];\n\t\t\tfor (const [key, v] of Object.entries(hVal)) {\n\t\t\t\tif (v instanceof Function) continue;\n\n\t\t\t\t// // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\t// hRet[key] = v instanceof Function ?v() :v;\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\thRet[key] = v;\n\t\t\t\t\t//TODO: 実行するのか無視するのか問題\n\t\t\t}\n\t\t}\n\t\tconsole.info('🥟 [dump_val]', val);\n\n\t\treturn false;\n\t}\n\n\t#doRecLog\t= false;\n\tdoRecLog() {return this.#doRecLog}\n\n\n\t#tagCh_doWait = false;\n\tget tagCh_doWait() {return this.#tagCh_doWait;}\n\t#tagCh_doWait_Kidoku = false;\n\tget tagCh_doWait_Kidoku() {return this.#tagCh_doWait_Kidoku;}\n\t#tagCh_msecWait\t\t= 0;\n\tget tagCh_msecWait() {return this.#tagCh_msecWait;}\n\t#tagCh_msecWait_Kidoku= 0;\n\tget tagCh_msecWait_Kidoku() {return this.#tagCh_msecWait_Kidoku;}\n\n\t#hSetValTrg\t: {[name: string]: T_fncSetVal}\t= {\n\t\t// sys\n\t\t'sys:sn.tagCh.doWait'\t\t\t: name=> {\n\t\t\tthis.#tagCh_doWait =\n\t\t\tthis.#runFirst_Bool_hSysVal_true(name);\n\t\t},\n\t\t'sys:sn.tagCh.doWait_Kidoku'\t: name=> {\n\t\t\tthis.#tagCh_doWait_Kidoku =\n\t\t\tthis.#runFirst_Bool_hSysVal_true(name);\n\t\t},\n\t\t'sys:sn.tagCh.msecWait'\t\t\t: name=> {\n\t\t\tthis.#tagCh_msecWait =\n\t\t\tthis.#runFirst_sys_an_tagCh_msecWait(name);\n\t\t},\n\t\t'sys:sn.tagCh.msecWait_Kidoku'\t: name=> {\n\t\t\tthis.#tagCh_msecWait_Kidoku =\n\t\t\tthis.#runFirst_sys_an_tagCh_msecWait_Kidoku(name);\n\t\t},\n\t\t'sys:sn.tagCh.canskip'\t\t\t: name=> this.#runFirst_Bool_hSysVal_true(name),\n\n\t\t'sys:sn.auto.msecPageWait'\t\t\t: name=>\n\t\t\tthis.#runFirst_sys_an_auto_msecPageWait(name),\n\t\t'sys:sn.auto.msecPageWait_Kidoku'\t: name=>\n\t\t\tthis.#runFirst_sys_an_auto_msecPageWait(name),\n\t\t'sys:sn.auto.msecLineWait'\t\t\t: name=>\n\t\t\tthis.#runFirst_sys_an_auto_msecLineWait(name),\n\t\t'sys:sn.auto.msecLineWait_Kidoku'\t: name=>\n\t\t\tthis.#runFirst_sys_an_auto_msecLineWait(name),\n\n\t\t// save\n\t\t'save:sn.doRecLog'\t\t: name=> {\n\t\t\tthis.#doRecProc(\n\t\t\t\tthis.#doRecLog = this.#runFirst_Bool_hSaveVal_true(name)\n\t\t\t);\n\t\t},\n\t\t'save:sn.userFnTail'\t: (_name, ival)=> {\n\t\t\tconst val = String(ival);\n\t\t\tif (val.includes('@')) throw 'この変数では文字「@」は禁止です';\n\t\t\tthis.cfg.userFnTail = val;\n\t\t},\n\n\t\t// tmp\n\t\t'tmp:flash.desktop.NativeApplication.nativeApplication.systemIdleMode'\t:\n\t\t\t()=> {\n\t\t\t//\tNativeApplication.nativeApplication.systemIdleMode = val;\n\t\t\t}\n\t\t,\n\t};\n\tdefValTrg(name: string, fnc: T_fncSetVal) {this.#hSetValTrg[name] = fnc}\n\treadonly\t#runFirst_Bool_hSysVal_true = (name: string)=> argChk_Boolean(this.#hSys, name, true);\n\treadonly\t#runFirst_sys_an_tagCh_msecWait = (name: string)=> argChk_Num(this.#hSys, name, 10);\n\treadonly\t#runFirst_sys_an_tagCh_msecWait_Kidoku = (name: string)=> argChk_Num(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\t\tthis.#hSys, name, this.cfg.oCfg.init.tagch_msecwait ?? 10\n\t);\n\treadonly\t#runFirst_sys_an_auto_msecPageWait = (name: string)=> argChk_Num(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\t\tthis.#hSys, name, this.cfg.oCfg.init.auto_msecpagewait ?? 3500\n\t);\n\treadonly\t#runFirst_sys_an_auto_msecLineWait = (name: string)=> argChk_Num(this.#hSys, name, 500);\n\n\t#runFirst_Bool_hSaveVal_true(name: string) {\n\t\treturn argChk_Boolean(this.#hSave, name, true);\n\t}\n\n}\n"],"names":["Areas","#hAreas","new_val","ar","idx","begin","v","ret","k","x","y","Variable","cfg","hTag","o","#let","#let_abs","#let_char_at","#let_index_of","#let_length","#let_replace","#let_round","#let_search","#let_substr","#clearsysvar","#clearvar","#dump_val","#copybookmark","#erasebookmark","a","nm","mk","#data","uint","#hTmp","#hSave","creSAVEDATA","creTMP_DATA","#hScopes","#sys","#hSys","#hAreaKidoku","#callHook","sys","data","#dbgVariable","#flush","type","#hProcDbgRes","tm","int","#tagCh_doWait","#tagCh_doWait_Kidoku","#tagCh_msecWait","#tagCh_msecWait_Kidoku","#saPageLog","ns","oSys","creSYS_DATA","oSave","oTmp","oMp","creCSArg","oMark","ReadingState","_","#set_data_break","#setVal","#hSetEvent","fn","dk","fnc","#doRecProc","_doRec","name","mp","place","mark","#doRecLog","ak","hArg","from","argChk_Num","to","f","autocast","argChk_Boolean","n","val","start","flags","reg","i","init","mesLayer","doRecLog","sLog","styPaging","arg_name","PropParser","hScope","scope","ival","#castAuto","fullnm","old_v","new_v","#hSetValTrg","def","touch","val_name","aNm","len","j","nj","s_val","#REG_NUMERICLITERAL","hVal","hRet","key","#runFirst_Bool_hSysVal_true","#runFirst_sys_an_tagCh_msecWait","#runFirst_sys_an_tagCh_msecWait_Kidoku","#runFirst_sys_an_auto_msecPageWait","#runFirst_sys_an_auto_msecLineWait","#runFirst_Bool_hSaveVal_true","_name"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { HPlugin, IPlugin, IPluginInitArg } from './sn/CmnInterface';
|
|
2
|
+
import { HArg } from './sn/Grammar';
|
|
3
|
+
import { SysApp } from './sn/SysApp';
|
|
4
|
+
import { CmnLib, argChk_Num, argChk_Boolean } from './sn/CmnLib';
|
|
5
|
+
import { Layer } from './sn/Layer';
|
|
6
|
+
export type { HPlugin, IPlugin, IPluginInitArg };
|
|
7
|
+
export type { HArg };
|
|
8
|
+
export { SysApp, CmnLib, argChk_Num, argChk_Boolean, Layer };
|
|
9
|
+
//# sourceMappingURL=app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACxE,YAAY,EAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAC,CAAC;AAC/C,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AACvC,YAAY,EAAC,IAAI,EAAC,CAAC;AAEnB,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAC,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AACjC,OAAO,EAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,EAAC,CAAC"}
|
package/dist_app/app.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|