Implemented custom config of QFT
This commit is contained in:
parent
06f7ad9864
commit
013052f82c
12 changed files with 752 additions and 379 deletions
389
Codes.xml
389
Codes.xml
|
@ -1236,11 +1236,14 @@
|
||||||
</source>
|
</source>
|
||||||
</code>
|
</code>
|
||||||
<code>
|
<code>
|
||||||
|
<id>qft</id>
|
||||||
<category>timer</category>
|
<category>timer</category>
|
||||||
<title lang="en-US">Quarterframe Timer (Experimental)</title>
|
<title lang="en-US">Quarterframe Timer (Experimental)</title>
|
||||||
<author>Noki Doki</author>
|
<title lang="ja-JP">QFタイマー</title>
|
||||||
<version>0.5</version>
|
<author>Noki Doki, sup39(サポミク)</author>
|
||||||
<date>Nov 28, 2021</date>
|
<version>1.0</version>
|
||||||
|
<date>Apr 08, 2022</date>
|
||||||
|
<dependencies version="GMSJ01">drawText</dependencies>
|
||||||
<description lang="en-US">
|
<description lang="en-US">
|
||||||
Adds an in-game timer to every level, starting on the last black frame after the
|
Adds an in-game timer to every level, starting on the last black frame after the
|
||||||
loading screen and ending as soon as the 'Shine Get' animation starts
|
loading screen and ending as soon as the 'Shine Get' animation starts
|
||||||
|
@ -1250,382 +1253,10 @@
|
||||||
The timer pauses during loading times and FMVs.
|
The timer pauses during loading times and FMVs.
|
||||||
:::
|
:::
|
||||||
</description>
|
</description>
|
||||||
<source version="GMSJ01">
|
<source version="GMSJ01"></source>
|
||||||
C20ECE44 0000000B
|
<source version="GMSE01"></source>
|
||||||
981A0260 3CE0817F
|
<source version="GMSP01"></source>
|
||||||
880700B3 2C000000
|
<source version="GMSJ0A"></source>
|
||||||
38000000 900700BC
|
|
||||||
4182000C B00700B2
|
|
||||||
900700B4 60E30110
|
|
||||||
38800000 60E50094
|
|
||||||
80CD97F8 80C60048
|
|
||||||
60E700A4 39000002
|
|
||||||
39200000 3D808001
|
|
||||||
618C9904 7D8803A6
|
|
||||||
4E800021 00000000
|
|
||||||
C2206738 0000001B
|
|
||||||
3C60817F 888300B2
|
|
||||||
810300B4 2C040000
|
|
||||||
40A20030 808300BC
|
|
||||||
2C040000 40A20010
|
|
||||||
810D97E8 8108005C
|
|
||||||
48000010 3884FFFF
|
|
||||||
908300BC 810300B8
|
|
||||||
800300B4 7D080214
|
|
||||||
3CE0000A 60E7F9B0
|
|
||||||
7C074000 40A00010
|
|
||||||
7CE83B78 98E300B2
|
|
||||||
90E300B4 1D0803E9
|
|
||||||
38000078 7D080396
|
|
||||||
380003E8 7CE80396
|
|
||||||
7C0701D6 7D004050
|
|
||||||
3800003C 7CC70396
|
|
||||||
7C0601D6 7CE03850
|
|
||||||
38A300A4 3880000F
|
|
||||||
80630210 4CC63182
|
|
||||||
3D808008 618C40C4
|
|
||||||
7D8803A6 4E800021
|
|
||||||
3C60817F 60630110
|
|
||||||
38800000 38A00000
|
|
||||||
38C10E90 38E00081
|
|
||||||
3D808001 618C8E64
|
|
||||||
7D8803A6 4E800021
|
|
||||||
881F0046 00000000
|
|
||||||
C20EFA30 00000005
|
|
||||||
3CA0817F A00500B2
|
|
||||||
2C000000 40820014
|
|
||||||
800500B4 80C3005C
|
|
||||||
7C003214 900500B4
|
|
||||||
7C0802A6 00000000
|
|
||||||
C20EDB30 00000005
|
|
||||||
3CA0817F 80C500B4
|
|
||||||
8003005C 7CC60214
|
|
||||||
38C60004 54C6003A
|
|
||||||
90C500B4 38C0FFFF
|
|
||||||
B0C500B2 00000000
|
|
||||||
C21D1F38 00000005
|
|
||||||
3D00817F 80C800B4
|
|
||||||
8003005C 7CC60214
|
|
||||||
38C60004 54C6003A
|
|
||||||
90C800B4 38C0FFFF
|
|
||||||
B0C800B2 00000000
|
|
||||||
C22257CC 00000002
|
|
||||||
2C030001 3C60817F
|
|
||||||
98A300B3 00000000
|
|
||||||
C20EBD78 00000002
|
|
||||||
389C0001 3CA0817F
|
|
||||||
988500B3 00000000
|
|
||||||
C20EC72C 00000005
|
|
||||||
3CA0817F 38600001
|
|
||||||
986500B3 807F005C
|
|
||||||
38630003 5463003A
|
|
||||||
906500B8 3860FFFF
|
|
||||||
906500BC 00000000
|
|
||||||
C20ED8F0 00000005
|
|
||||||
3CA0817F 980500B3
|
|
||||||
801E005C 30000004
|
|
||||||
5400003A 900500B8
|
|
||||||
3800FFFF 900500BC
|
|
||||||
60000000 00000000
|
|
||||||
C2196314 00000004
|
|
||||||
80AD97E8 8005005C
|
|
||||||
3CA0817F 900500B8
|
|
||||||
3800001E 900500BC
|
|
||||||
38A00000 00000000
|
|
||||||
C2196128 00000005
|
|
||||||
7C030378 80A3005C
|
|
||||||
38A50003 54A0003A
|
|
||||||
3CA0817F 900500B8
|
|
||||||
3800001E 900500BC
|
|
||||||
60000000 00000000
|
|
||||||
077F0094 0000001D
|
|
||||||
00000010 000001A0
|
|
||||||
00000280 000001E0
|
|
||||||
25753A25 3032752E
|
|
||||||
25303375 00000000
|
|
||||||
</source>
|
|
||||||
<source version="GMSE01">
|
|
||||||
C22998C0 0000000B
|
|
||||||
981A0260 3CE0817F
|
|
||||||
880700B3 2C000000
|
|
||||||
38000000 900700BC
|
|
||||||
4182000C B00700B2
|
|
||||||
900700B4 60E30110
|
|
||||||
38800000 60E50094
|
|
||||||
80CD9FC8 80C60048
|
|
||||||
60E700A4 39000002
|
|
||||||
39200000 3D80802D
|
|
||||||
618C0848 7D8803A6
|
|
||||||
4E800021 00000000
|
|
||||||
C2143F18 0000001B
|
|
||||||
3C60817F 888300B2
|
|
||||||
810300B4 2C040000
|
|
||||||
40A20030 808300BC
|
|
||||||
2C040000 40A20010
|
|
||||||
810D9FB8 8108005C
|
|
||||||
48000010 3884FFFF
|
|
||||||
908300BC 810300B8
|
|
||||||
800300B4 7D080214
|
|
||||||
3CE0000A 60E7F9B0
|
|
||||||
7C074000 40A00010
|
|
||||||
7CE83B78 98E300B2
|
|
||||||
90E300B4 1D0803E9
|
|
||||||
38000078 7D080396
|
|
||||||
380003E8 7CE80396
|
|
||||||
7C0701D6 7D004050
|
|
||||||
3800003C 7CC70396
|
|
||||||
7C0601D6 7CE03850
|
|
||||||
38A300A4 3880000F
|
|
||||||
80630210 4CC63182
|
|
||||||
3D808033 618C97A4
|
|
||||||
7D8803A6 4E800021
|
|
||||||
3C60817F 60630110
|
|
||||||
38800000 38A00000
|
|
||||||
38C10BD0 38E00081
|
|
||||||
3D80802C 618CFDA8
|
|
||||||
7D8803A6 4E800021
|
|
||||||
881F0046 00000000
|
|
||||||
C229C520 00000005
|
|
||||||
3CA0817F A00500B2
|
|
||||||
2C000000 40820014
|
|
||||||
800500B4 80C3005C
|
|
||||||
7C003214 900500B4
|
|
||||||
7C0802A6 00000000
|
|
||||||
C229A5AC 00000005
|
|
||||||
3CA0817F 80C500B4
|
|
||||||
8003005C 7CC60214
|
|
||||||
38C60004 54C6003A
|
|
||||||
90C500B4 38C0FFFF
|
|
||||||
B0C500B2 00000000
|
|
||||||
C21FA380 00000005
|
|
||||||
3D00817F 80C800B4
|
|
||||||
8003005C 7CC60214
|
|
||||||
38C60004 54C6003A
|
|
||||||
90C800B4 38C0FFFF
|
|
||||||
B0C800B2 00000000
|
|
||||||
C2164E24 00000002
|
|
||||||
2C030001 3C60817F
|
|
||||||
98A300B3 00000000
|
|
||||||
C229880C 00000002
|
|
||||||
389C0001 3CA0817F
|
|
||||||
988500B3 00000000
|
|
||||||
C22991A8 00000005
|
|
||||||
3CA0817F 38600001
|
|
||||||
986500B3 807F005C
|
|
||||||
38630003 5463003A
|
|
||||||
906500B8 3860FFFF
|
|
||||||
906500BC 00000000
|
|
||||||
C229A36C 00000005
|
|
||||||
3CA0817F 980500B3
|
|
||||||
801E005C 30000004
|
|
||||||
5400003A 900500B8
|
|
||||||
3800FFFF 900500BC
|
|
||||||
60000000 00000000
|
|
||||||
C21BE474 00000004
|
|
||||||
80AD9FB8 8005005C
|
|
||||||
3CA0817F 900500B8
|
|
||||||
3800001E 900500BC
|
|
||||||
38A00000 00000000
|
|
||||||
C21BE288 00000005
|
|
||||||
7C030378 80A3005C
|
|
||||||
38A50003 54A0003A
|
|
||||||
3CA0817F 900500B8
|
|
||||||
3800001E 900500BC
|
|
||||||
60000000 00000000
|
|
||||||
077F0094 0000001D
|
|
||||||
00000010 000001A0
|
|
||||||
00000280 000001E0
|
|
||||||
25753A25 3032752E
|
|
||||||
25303375 00000000
|
|
||||||
</source>
|
|
||||||
<source version="GMSP01">
|
|
||||||
C2291758 0000000B
|
|
||||||
981A0260 3CE0817F
|
|
||||||
880700B3 2C000000
|
|
||||||
38000000 900700BC
|
|
||||||
4182000C B00700B2
|
|
||||||
900700B4 60E30110
|
|
||||||
38800000 60E50094
|
|
||||||
80CD9EF0 80C60048
|
|
||||||
60E700A4 39000002
|
|
||||||
39200000 3D80802C
|
|
||||||
618C89F0 7D8803A6
|
|
||||||
4E800021 00000000
|
|
||||||
C2138B54 0000001B
|
|
||||||
3C60817F 888300B2
|
|
||||||
810300B4 2C040000
|
|
||||||
40A20030 808300BC
|
|
||||||
2C040000 40A20010
|
|
||||||
810D9EE0 8108005C
|
|
||||||
48000010 3884FFFF
|
|
||||||
908300BC 810300B8
|
|
||||||
800300B4 7D080214
|
|
||||||
3CE0000A 60E7F9B0
|
|
||||||
7C074000 40A00010
|
|
||||||
7CE83B78 98E300B2
|
|
||||||
90E300B4 1D0803E9
|
|
||||||
38000078 7D080396
|
|
||||||
380003E8 7CE80396
|
|
||||||
7C0701D6 7D004050
|
|
||||||
3800003C 7CC70396
|
|
||||||
7C0601D6 7CE03850
|
|
||||||
38A300A4 3880000F
|
|
||||||
80630210 4CC63182
|
|
||||||
3D808033 618C1924
|
|
||||||
7D8803A6 4E800021
|
|
||||||
3C60817F 60630110
|
|
||||||
38800000 38A00000
|
|
||||||
38C10BE4 38E00081
|
|
||||||
3D80802C 618C7F50
|
|
||||||
7D8803A6 4E800021
|
|
||||||
881F0046 00000000
|
|
||||||
C22943FC 00000005
|
|
||||||
3CA0817F A00500B2
|
|
||||||
2C000000 40820014
|
|
||||||
800500B4 80C3005C
|
|
||||||
7C003214 900500B4
|
|
||||||
7C0802A6 00000000
|
|
||||||
C2292480 00000005
|
|
||||||
3CA0817F 80C500B4
|
|
||||||
8003005C 7CC60214
|
|
||||||
38C60004 54C6003A
|
|
||||||
90C500B4 38C0FFFF
|
|
||||||
B0C500B2 00000000
|
|
||||||
C21F2258 00000005
|
|
||||||
3D00817F 80C800B4
|
|
||||||
8003005C 7CC60214
|
|
||||||
38C60004 54C6003A
|
|
||||||
90C800B4 38C0FFFF
|
|
||||||
B0C800B2 00000000
|
|
||||||
C2159E9C 00000002
|
|
||||||
2C030001 3C60817F
|
|
||||||
98A300B3 00000000
|
|
||||||
C22906A4 00000002
|
|
||||||
389C0001 3CA0817F
|
|
||||||
988500B3 00000000
|
|
||||||
C2291040 00000005
|
|
||||||
3CA0817F 38600001
|
|
||||||
986500B3 807F005C
|
|
||||||
38630003 5463003A
|
|
||||||
906500B8 3860FFFF
|
|
||||||
906500BC 00000000
|
|
||||||
C2292204 00000005
|
|
||||||
3CA0817F 980500B3
|
|
||||||
801E005C 30000004
|
|
||||||
5400003A 900500B8
|
|
||||||
3800FFFF 900500BC
|
|
||||||
60000000 00000000
|
|
||||||
C21B632C 00000004
|
|
||||||
80AD9EE0 8005005C
|
|
||||||
3CA0817F 900500B8
|
|
||||||
3800001E 900500BC
|
|
||||||
38A00000 00000000
|
|
||||||
C21B6140 00000005
|
|
||||||
7C030378 80A3005C
|
|
||||||
38A50003 54A0003A
|
|
||||||
3CA0817F 900500B8
|
|
||||||
3800001E 900500BC
|
|
||||||
60000000 00000000
|
|
||||||
077F0094 0000001D
|
|
||||||
00000010 000001A0
|
|
||||||
00000280 000001E0
|
|
||||||
25753A25 3032752E
|
|
||||||
25303375 00000000
|
|
||||||
</source>
|
|
||||||
<source version="GMSJ0A">
|
|
||||||
C2279570 0000000B
|
|
||||||
981A0260 3CE0817F
|
|
||||||
880700B3 2C000000
|
|
||||||
38000000 900700BC
|
|
||||||
4182000C B00700B2
|
|
||||||
900700B4 60E30110
|
|
||||||
38800000 60E50094
|
|
||||||
80CD9E88 80C60048
|
|
||||||
60E700A4 39000002
|
|
||||||
39200000 3D80802B
|
|
||||||
618C0058 7D8803A6
|
|
||||||
4E800021 00000000
|
|
||||||
C21252A4 0000001B
|
|
||||||
3C60817F 888300B2
|
|
||||||
810300B4 2C040000
|
|
||||||
40A20030 808300BC
|
|
||||||
2C040000 40A20010
|
|
||||||
810D9E78 8108005C
|
|
||||||
48000010 3884FFFF
|
|
||||||
908300BC 810300B8
|
|
||||||
800300B4 7D080214
|
|
||||||
3CE0000A 60E7F9B0
|
|
||||||
7C074000 40A00010
|
|
||||||
7CE83B78 98E300B2
|
|
||||||
90E300B4 1D0803E9
|
|
||||||
38000078 7D080396
|
|
||||||
380003E8 7CE80396
|
|
||||||
7C0701D6 7D004050
|
|
||||||
3800003C 7CC70396
|
|
||||||
7C0601D6 7CE03850
|
|
||||||
38A300A4 3880000F
|
|
||||||
80630210 4CC63182
|
|
||||||
3D808031 618C90A4
|
|
||||||
7D8803A6 4E800021
|
|
||||||
3C60817F 60630110
|
|
||||||
38800000 38A00000
|
|
||||||
38C10BEC 38E00081
|
|
||||||
3D80802A 618CF5B8
|
|
||||||
7D8803A6 4E800021
|
|
||||||
881F0046 00000000
|
|
||||||
C227C214 00000005
|
|
||||||
3CA0817F A00500B2
|
|
||||||
2C000000 40820014
|
|
||||||
800500B4 80C3005C
|
|
||||||
7C003214 900500B4
|
|
||||||
7C0802A6 00000000
|
|
||||||
C227A298 00000005
|
|
||||||
3CA0817F 80C500B4
|
|
||||||
8003005C 7CC60214
|
|
||||||
38C60004 54C6003A
|
|
||||||
90C500B4 38C0FFFF
|
|
||||||
B0C500B2 00000000
|
|
||||||
C21DA0FC 00000005
|
|
||||||
3D00817F 80C800B4
|
|
||||||
8003005C 7CC60214
|
|
||||||
38C60004 54C6003A
|
|
||||||
90C800B4 38C0FFFF
|
|
||||||
B0C800B2 00000000
|
|
||||||
C2145EBC 00000002
|
|
||||||
2C030001 3C60817F
|
|
||||||
98A300B3 00000000
|
|
||||||
C22784B4 00000002
|
|
||||||
389C0001 3CA0817F
|
|
||||||
988500B3 00000000
|
|
||||||
C2278E58 00000005
|
|
||||||
3CA0817F 38600001
|
|
||||||
986500B3 807F005C
|
|
||||||
38630003 5463003A
|
|
||||||
906500B8 3860FFFF
|
|
||||||
906500BC 00000000
|
|
||||||
C227A01C 00000005
|
|
||||||
3CA0817F 980500B3
|
|
||||||
801E005C 30000004
|
|
||||||
5400003A 900500B8
|
|
||||||
3800FFFF 900500BC
|
|
||||||
60000000 00000000
|
|
||||||
C219E1FC 00000004
|
|
||||||
80AD9E78 8005005C
|
|
||||||
3CA0817F 900500B8
|
|
||||||
3800001E 900500BC
|
|
||||||
38A00000 00000000
|
|
||||||
C219E010 00000005
|
|
||||||
7C030378 80A3005C
|
|
||||||
38A50003 54A0003A
|
|
||||||
3CA0817F 900500B8
|
|
||||||
3800001E 900500BC
|
|
||||||
60000000 00000000
|
|
||||||
077F0094 0000001D
|
|
||||||
00000010 000001A0
|
|
||||||
00000280 000001E0
|
|
||||||
25753A25 3032752E
|
|
||||||
25303375 00000000
|
|
||||||
</source>
|
|
||||||
</code>
|
</code>
|
||||||
<code>
|
<code>
|
||||||
<category>loader</category>
|
<category>loader</category>
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
## Apr 08, 2022
|
## Apr 08, 2022
|
||||||
|
### Implemented custom config of QFT
|
||||||
|
- Appearance: location, font size, font color, background color (GMSJ01 only)
|
||||||
|
- Freezing the timer
|
||||||
|
|
||||||
### Implemented customizable code
|
### Implemented customizable code
|
||||||
- Add code info in `Codes.xml` as other code,
|
- Add code info in `Codes.xml` as other code,
|
||||||
but you should specify `<id>` and available versions with `<source version="XXX"></source>`
|
but you should specify `<id>` and available versions with `<source version="XXX"></source>`
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
import InstantRestart from './InstantRestart/codegen.js';
|
import InstantRestart from './InstantRestart/codegen.js';
|
||||||
|
import qft from './qft/codegen.js';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
InstantRestart,
|
InstantRestart,
|
||||||
|
qft,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
101
site/.vuepress/components/codes/qft/code/GMSE01.js
Normal file
101
site/.vuepress/components/codes/qft/code/GMSE01.js
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
export const freezeCodegen = {
|
||||||
|
redCoin: (s) => `
|
||||||
|
C21BE474 00000004
|
||||||
|
80AD9FB8 8005005C
|
||||||
|
3CA0817F 900500B8
|
||||||
|
3800${s} 900500BC
|
||||||
|
38A00000 00000000
|
||||||
|
`,
|
||||||
|
blueCoin: (s) => `
|
||||||
|
C21BE288 00000005
|
||||||
|
7C030378 80A3005C
|
||||||
|
38A50003 54A0003A
|
||||||
|
3CA0817F 900500B8
|
||||||
|
3800${s} 900500BC
|
||||||
|
60000000 00000000
|
||||||
|
`,
|
||||||
|
};
|
||||||
|
|
||||||
|
export const baseCode = `
|
||||||
|
C22998C0 0000000B
|
||||||
|
981A0260 3CE0817F
|
||||||
|
880700B3 2C000000
|
||||||
|
38000000 900700BC
|
||||||
|
4182000C B00700B2
|
||||||
|
900700B4 60E30110
|
||||||
|
38800000 60E50094
|
||||||
|
80CD9FC8 80C60048
|
||||||
|
60E700A4 39000002
|
||||||
|
39200000 3D80802D
|
||||||
|
618C0848 7D8803A6
|
||||||
|
4E800021 00000000
|
||||||
|
C2143F18 0000001B
|
||||||
|
3C60817F 888300B2
|
||||||
|
810300B4 2C040000
|
||||||
|
40A20030 808300BC
|
||||||
|
2C040000 40A20010
|
||||||
|
810D9FB8 8108005C
|
||||||
|
48000010 3884FFFF
|
||||||
|
908300BC 810300B8
|
||||||
|
800300B4 7D080214
|
||||||
|
3CE0000A 60E7F9B0
|
||||||
|
7C074000 40A00010
|
||||||
|
7CE83B78 98E300B2
|
||||||
|
90E300B4 1D0803E9
|
||||||
|
38000078 7D080396
|
||||||
|
380003E8 7CE80396
|
||||||
|
7C0701D6 7D004050
|
||||||
|
3800003C 7CC70396
|
||||||
|
7C0601D6 7CE03850
|
||||||
|
38A300A4 3880000F
|
||||||
|
80630210 4CC63182
|
||||||
|
3D808033 618C97A4
|
||||||
|
7D8803A6 4E800021
|
||||||
|
3C60817F 60630110
|
||||||
|
38800000 38A00000
|
||||||
|
38C10BD0 38E00081
|
||||||
|
3D80802C 618CFDA8
|
||||||
|
7D8803A6 4E800021
|
||||||
|
881F0046 00000000
|
||||||
|
C229C520 00000005
|
||||||
|
3CA0817F A00500B2
|
||||||
|
2C000000 40820014
|
||||||
|
800500B4 80C3005C
|
||||||
|
7C003214 900500B4
|
||||||
|
7C0802A6 00000000
|
||||||
|
C229A5AC 00000005
|
||||||
|
3CA0817F 80C500B4
|
||||||
|
8003005C 7CC60214
|
||||||
|
38C60004 54C6003A
|
||||||
|
90C500B4 38C0FFFF
|
||||||
|
B0C500B2 00000000
|
||||||
|
C21FA380 00000005
|
||||||
|
3D00817F 80C800B4
|
||||||
|
8003005C 7CC60214
|
||||||
|
38C60004 54C6003A
|
||||||
|
90C800B4 38C0FFFF
|
||||||
|
B0C800B2 00000000
|
||||||
|
C2164E24 00000002
|
||||||
|
2C030001 3C60817F
|
||||||
|
98A300B3 00000000
|
||||||
|
C229880C 00000002
|
||||||
|
389C0001 3CA0817F
|
||||||
|
988500B3 00000000
|
||||||
|
C22991A8 00000005
|
||||||
|
3CA0817F 38600001
|
||||||
|
986500B3 807F005C
|
||||||
|
38630003 5463003A
|
||||||
|
906500B8 3860FFFF
|
||||||
|
906500BC 00000000
|
||||||
|
C229A36C 00000005
|
||||||
|
3CA0817F 980500B3
|
||||||
|
801E005C 30000004
|
||||||
|
5400003A 900500B8
|
||||||
|
3800FFFF 900500BC
|
||||||
|
60000000 00000000
|
||||||
|
077F0094 0000001D
|
||||||
|
00000010 000001A0
|
||||||
|
00000280 000001E0
|
||||||
|
25753A25 3032752E
|
||||||
|
25303375 00000000
|
||||||
|
`;
|
136
site/.vuepress/components/codes/qft/code/GMSJ01.js
Normal file
136
site/.vuepress/components/codes/qft/code/GMSJ01.js
Normal file
|
@ -0,0 +1,136 @@
|
||||||
|
export const freezeCodegen = {
|
||||||
|
yellowCoin: (s) => `
|
||||||
|
C2196B54 00000004
|
||||||
|
806d97e8 8083005c
|
||||||
|
3c60817f 908300b8
|
||||||
|
3880${s} 908300bc
|
||||||
|
8805000E 00000000
|
||||||
|
`,
|
||||||
|
redCoin: (s) => `
|
||||||
|
C2196314 00000004
|
||||||
|
80AD97E8 8005005C
|
||||||
|
3CA0817F 900500B8
|
||||||
|
3800${s} 900500BC
|
||||||
|
38A00000 00000000
|
||||||
|
`,
|
||||||
|
blueCoin: (s) => `
|
||||||
|
C2196128 00000005
|
||||||
|
7C030378 80A3005C
|
||||||
|
38A50003 54A0003A
|
||||||
|
3CA0817F 900500B8
|
||||||
|
3800${s} 900500BC
|
||||||
|
60000000 00000000
|
||||||
|
`,
|
||||||
|
item: (s) => `
|
||||||
|
C21971F8 00000004
|
||||||
|
806d97e8 8083005c
|
||||||
|
3c60817f 908300b8
|
||||||
|
3880${s} 908300bc
|
||||||
|
8001001C 00000000
|
||||||
|
`,
|
||||||
|
talk: (s) => `
|
||||||
|
C20EB6E4 00000004
|
||||||
|
807f005c 3c80817f
|
||||||
|
906400b8 3860${s}
|
||||||
|
906400bc 60000000
|
||||||
|
807f00b0 00000000
|
||||||
|
`,
|
||||||
|
demo: (s) => `
|
||||||
|
C20EB74C 00000004
|
||||||
|
807f005c 3c80817f
|
||||||
|
906400b8 3860${s}
|
||||||
|
906400bc 60000000
|
||||||
|
806DA8B0 00000000
|
||||||
|
`,
|
||||||
|
cleaned: (s) => `
|
||||||
|
C217A3C0 00000004
|
||||||
|
806d97e8 8083005c
|
||||||
|
3c60817f 908300b8
|
||||||
|
3880${s} 908300bc
|
||||||
|
80010044 00000000
|
||||||
|
`,
|
||||||
|
bowser: (s) => `
|
||||||
|
C21D3C78 00000004
|
||||||
|
806d97e8 8083005c
|
||||||
|
3c60817f 908300b8
|
||||||
|
3880${s} 908300bc
|
||||||
|
2c1d0003 00000000
|
||||||
|
`,
|
||||||
|
};
|
||||||
|
|
||||||
|
export const baseCode = `
|
||||||
|
C20ECE44 00000005
|
||||||
|
981A0260 3CE0817F
|
||||||
|
880700B3 2C000000
|
||||||
|
38000000 900700BC
|
||||||
|
4182000C B00700B2
|
||||||
|
900700B4 00000000
|
||||||
|
C2206738 0000001F
|
||||||
|
3C60817F 6064011C
|
||||||
|
38630094 3D808020
|
||||||
|
398C1EA8 7D8803A6
|
||||||
|
4E800021 3C60817F
|
||||||
|
888300B2 810300B4
|
||||||
|
2C040000 40820030
|
||||||
|
808300BC 2C040000
|
||||||
|
40820010 810D97E8
|
||||||
|
8108005C 48000010
|
||||||
|
3884FFFF 908300BC
|
||||||
|
810300B8 800300B4
|
||||||
|
7D080214 3CE0000A
|
||||||
|
60E7F9B0 7C074000
|
||||||
|
40800010 7CE83B78
|
||||||
|
98E300B2 90E300B4
|
||||||
|
3C60817F 1D0803E9
|
||||||
|
38000078 7D080396
|
||||||
|
9421FFF0 380003E8
|
||||||
|
7CE80396 7C0701D6
|
||||||
|
7D004050 91010008
|
||||||
|
3800003C 7D270396
|
||||||
|
7C0901D6 7D403850
|
||||||
|
80E30118 390300A4
|
||||||
|
80C30114 3D80817F
|
||||||
|
80A30110 618C0238
|
||||||
|
808300A0 7D8803A6
|
||||||
|
80630094 4E800021
|
||||||
|
38210010 38610E90
|
||||||
|
3D808003 398C5228
|
||||||
|
7D8803A6 4E800021
|
||||||
|
881F0046 00000000
|
||||||
|
C20EFA30 00000005
|
||||||
|
3CA0817F A00500B2
|
||||||
|
2C000000 40820014
|
||||||
|
800500B4 80C3005C
|
||||||
|
7C003214 900500B4
|
||||||
|
7C0802A6 00000000
|
||||||
|
C20EDB30 00000005
|
||||||
|
3CA0817F 80C500B4
|
||||||
|
8003005C 7CC60214
|
||||||
|
38C60004 54C6003A
|
||||||
|
90C500B4 38C0FFFF
|
||||||
|
B0C500B2 00000000
|
||||||
|
C21D1F38 00000005
|
||||||
|
3D00817F 80C800B4
|
||||||
|
8003005C 7CC60214
|
||||||
|
38C60004 54C6003A
|
||||||
|
90C800B4 38C0FFFF
|
||||||
|
B0C800B2 00000000
|
||||||
|
C22257CC 00000002
|
||||||
|
2C030001 3C60817F
|
||||||
|
98A300B3 00000000
|
||||||
|
C20EBD78 00000002
|
||||||
|
389C0001 3CA0817F
|
||||||
|
988500B3 00000000
|
||||||
|
C20EC72C 00000005
|
||||||
|
3CA0817F 38600001
|
||||||
|
986500B3 807F005C
|
||||||
|
38630003 5463003A
|
||||||
|
906500B8 3860FFFF
|
||||||
|
906500BC 00000000
|
||||||
|
C20ED8F0 00000005
|
||||||
|
3CA0817F 980500B3
|
||||||
|
801E005C 30000004
|
||||||
|
5400003A 900500B8
|
||||||
|
3800FFFF 900500BC
|
||||||
|
60000000 00000000
|
||||||
|
`;
|
101
site/.vuepress/components/codes/qft/code/GMSJ0A.js
Normal file
101
site/.vuepress/components/codes/qft/code/GMSJ0A.js
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
export const freezeCodegen = {
|
||||||
|
redCoin: (s) => `
|
||||||
|
C219E1FC 00000004
|
||||||
|
80AD9E78 8005005C
|
||||||
|
3CA0817F 900500B8
|
||||||
|
3800${s} 900500BC
|
||||||
|
38A00000 00000000
|
||||||
|
`,
|
||||||
|
blueCoin: (s) => `
|
||||||
|
C219E010 00000005
|
||||||
|
7C030378 80A3005C
|
||||||
|
38A50003 54A0003A
|
||||||
|
3CA0817F 900500B8
|
||||||
|
3800${s} 900500BC
|
||||||
|
60000000 00000000
|
||||||
|
`,
|
||||||
|
};
|
||||||
|
|
||||||
|
export const baseCode = `
|
||||||
|
C2279570 0000000B
|
||||||
|
981A0260 3CE0817F
|
||||||
|
880700B3 2C000000
|
||||||
|
38000000 900700BC
|
||||||
|
4182000C B00700B2
|
||||||
|
900700B4 60E30110
|
||||||
|
38800000 60E50094
|
||||||
|
80CD9E88 80C60048
|
||||||
|
60E700A4 39000002
|
||||||
|
39200000 3D80802B
|
||||||
|
618C0058 7D8803A6
|
||||||
|
4E800021 00000000
|
||||||
|
C21252A4 0000001B
|
||||||
|
3C60817F 888300B2
|
||||||
|
810300B4 2C040000
|
||||||
|
40A20030 808300BC
|
||||||
|
2C040000 40A20010
|
||||||
|
810D9E78 8108005C
|
||||||
|
48000010 3884FFFF
|
||||||
|
908300BC 810300B8
|
||||||
|
800300B4 7D080214
|
||||||
|
3CE0000A 60E7F9B0
|
||||||
|
7C074000 40A00010
|
||||||
|
7CE83B78 98E300B2
|
||||||
|
90E300B4 1D0803E9
|
||||||
|
38000078 7D080396
|
||||||
|
380003E8 7CE80396
|
||||||
|
7C0701D6 7D004050
|
||||||
|
3800003C 7CC70396
|
||||||
|
7C0601D6 7CE03850
|
||||||
|
38A300A4 3880000F
|
||||||
|
80630210 4CC63182
|
||||||
|
3D808031 618C90A4
|
||||||
|
7D8803A6 4E800021
|
||||||
|
3C60817F 60630110
|
||||||
|
38800000 38A00000
|
||||||
|
38C10BEC 38E00081
|
||||||
|
3D80802A 618CF5B8
|
||||||
|
7D8803A6 4E800021
|
||||||
|
881F0046 00000000
|
||||||
|
C227C214 00000005
|
||||||
|
3CA0817F A00500B2
|
||||||
|
2C000000 40820014
|
||||||
|
800500B4 80C3005C
|
||||||
|
7C003214 900500B4
|
||||||
|
7C0802A6 00000000
|
||||||
|
C227A298 00000005
|
||||||
|
3CA0817F 80C500B4
|
||||||
|
8003005C 7CC60214
|
||||||
|
38C60004 54C6003A
|
||||||
|
90C500B4 38C0FFFF
|
||||||
|
B0C500B2 00000000
|
||||||
|
C21DA0FC 00000005
|
||||||
|
3D00817F 80C800B4
|
||||||
|
8003005C 7CC60214
|
||||||
|
38C60004 54C6003A
|
||||||
|
90C800B4 38C0FFFF
|
||||||
|
B0C800B2 00000000
|
||||||
|
C2145EBC 00000002
|
||||||
|
2C030001 3C60817F
|
||||||
|
98A300B3 00000000
|
||||||
|
C22784B4 00000002
|
||||||
|
389C0001 3CA0817F
|
||||||
|
988500B3 00000000
|
||||||
|
C2278E58 00000005
|
||||||
|
3CA0817F 38600001
|
||||||
|
986500B3 807F005C
|
||||||
|
38630003 5463003A
|
||||||
|
906500B8 3860FFFF
|
||||||
|
906500BC 00000000
|
||||||
|
C227A01C 00000005
|
||||||
|
3CA0817F 980500B3
|
||||||
|
801E005C 30000004
|
||||||
|
5400003A 900500B8
|
||||||
|
3800FFFF 900500BC
|
||||||
|
60000000 00000000
|
||||||
|
077F0094 0000001D
|
||||||
|
00000010 000001A0
|
||||||
|
00000280 000001E0
|
||||||
|
25753A25 3032752E
|
||||||
|
25303375 00000000
|
||||||
|
`;
|
101
site/.vuepress/components/codes/qft/code/GMSP01.js
Normal file
101
site/.vuepress/components/codes/qft/code/GMSP01.js
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
export const freezeCodegen = {
|
||||||
|
redCoin: (s) => `
|
||||||
|
C21B632C 00000004
|
||||||
|
80AD9EE0 8005005C
|
||||||
|
3CA0817F 900500B8
|
||||||
|
3800${s} 900500BC
|
||||||
|
38A00000 00000000
|
||||||
|
`,
|
||||||
|
blueCoin: (s) => `
|
||||||
|
C21B6140 00000005
|
||||||
|
7C030378 80A3005C
|
||||||
|
38A50003 54A0003A
|
||||||
|
3CA0817F 900500B8
|
||||||
|
3800${s} 900500BC
|
||||||
|
60000000 00000000
|
||||||
|
`,
|
||||||
|
};
|
||||||
|
|
||||||
|
export const baseCode = `
|
||||||
|
C2291758 0000000B
|
||||||
|
981A0260 3CE0817F
|
||||||
|
880700B3 2C000000
|
||||||
|
38000000 900700BC
|
||||||
|
4182000C B00700B2
|
||||||
|
900700B4 60E30110
|
||||||
|
38800000 60E50094
|
||||||
|
80CD9EF0 80C60048
|
||||||
|
60E700A4 39000002
|
||||||
|
39200000 3D80802C
|
||||||
|
618C89F0 7D8803A6
|
||||||
|
4E800021 00000000
|
||||||
|
C2138B54 0000001B
|
||||||
|
3C60817F 888300B2
|
||||||
|
810300B4 2C040000
|
||||||
|
40A20030 808300BC
|
||||||
|
2C040000 40A20010
|
||||||
|
810D9EE0 8108005C
|
||||||
|
48000010 3884FFFF
|
||||||
|
908300BC 810300B8
|
||||||
|
800300B4 7D080214
|
||||||
|
3CE0000A 60E7F9B0
|
||||||
|
7C074000 40A00010
|
||||||
|
7CE83B78 98E300B2
|
||||||
|
90E300B4 1D0803E9
|
||||||
|
38000078 7D080396
|
||||||
|
380003E8 7CE80396
|
||||||
|
7C0701D6 7D004050
|
||||||
|
3800003C 7CC70396
|
||||||
|
7C0601D6 7CE03850
|
||||||
|
38A300A4 3880000F
|
||||||
|
80630210 4CC63182
|
||||||
|
3D808033 618C1924
|
||||||
|
7D8803A6 4E800021
|
||||||
|
3C60817F 60630110
|
||||||
|
38800000 38A00000
|
||||||
|
38C10BE4 38E00081
|
||||||
|
3D80802C 618C7F50
|
||||||
|
7D8803A6 4E800021
|
||||||
|
881F0046 00000000
|
||||||
|
C22943FC 00000005
|
||||||
|
3CA0817F A00500B2
|
||||||
|
2C000000 40820014
|
||||||
|
800500B4 80C3005C
|
||||||
|
7C003214 900500B4
|
||||||
|
7C0802A6 00000000
|
||||||
|
C2292480 00000005
|
||||||
|
3CA0817F 80C500B4
|
||||||
|
8003005C 7CC60214
|
||||||
|
38C60004 54C6003A
|
||||||
|
90C500B4 38C0FFFF
|
||||||
|
B0C500B2 00000000
|
||||||
|
C21F2258 00000005
|
||||||
|
3D00817F 80C800B4
|
||||||
|
8003005C 7CC60214
|
||||||
|
38C60004 54C6003A
|
||||||
|
90C800B4 38C0FFFF
|
||||||
|
B0C800B2 00000000
|
||||||
|
C2159E9C 00000002
|
||||||
|
2C030001 3C60817F
|
||||||
|
98A300B3 00000000
|
||||||
|
C22906A4 00000002
|
||||||
|
389C0001 3CA0817F
|
||||||
|
988500B3 00000000
|
||||||
|
C2291040 00000005
|
||||||
|
3CA0817F 38600001
|
||||||
|
986500B3 807F005C
|
||||||
|
38630003 5463003A
|
||||||
|
906500B8 3860FFFF
|
||||||
|
906500BC 00000000
|
||||||
|
C2292204 00000005
|
||||||
|
3CA0817F 980500B3
|
||||||
|
801E005C 30000004
|
||||||
|
5400003A 900500B8
|
||||||
|
3800FFFF 900500BC
|
||||||
|
60000000 00000000
|
||||||
|
077F0094 0000001D
|
||||||
|
00000010 000001A0
|
||||||
|
00000280 000001E0
|
||||||
|
25753A25 3032752E
|
||||||
|
25303375 00000000
|
||||||
|
`;
|
85
site/.vuepress/components/codes/qft/codegen.js
Normal file
85
site/.vuepress/components/codes/qft/codegen.js
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
import { parseJSON } from '../codegen.js';
|
||||||
|
export const lskey = 'config/qft';
|
||||||
|
|
||||||
|
export const defaultConfig = {
|
||||||
|
x: 16,
|
||||||
|
y: 456,
|
||||||
|
width: 112,
|
||||||
|
fontSize: 20,
|
||||||
|
fgRGB: 0xffffff,
|
||||||
|
fgA: 0xff,
|
||||||
|
fgRGB2: null,
|
||||||
|
fgA2: null,
|
||||||
|
bgRGB: 0x000000,
|
||||||
|
bgA: 0x80,
|
||||||
|
freeze: {
|
||||||
|
yellowCoin: 0,
|
||||||
|
redCoin: 30,
|
||||||
|
blueCoin: 30,
|
||||||
|
item: 30,
|
||||||
|
talk: 30,
|
||||||
|
demo: 30,
|
||||||
|
cleaned: 30,
|
||||||
|
bowser: 30, // onBathhubGripDestroyed
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export function getConfig() {
|
||||||
|
const config = parseJSON(localStorage.getItem(lskey)) ?? {};
|
||||||
|
return {
|
||||||
|
...defaultConfig,
|
||||||
|
...config,
|
||||||
|
freeze: {
|
||||||
|
...defaultConfig.freeze,
|
||||||
|
...config.freeze,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
const int16 = (x) => (x < 0 ? x + 0x10000 : x).toString(16).padStart(4, '0').slice(-4);
|
||||||
|
const int32 = (x) => (x < 0 ? x + 0x100000000 : x).toString(16).padStart(8, '0').slice(-8);
|
||||||
|
|
||||||
|
import * as GMSJ01 from './code/GMSJ01.js';
|
||||||
|
import * as GMSE01 from './code/GMSE01.js';
|
||||||
|
import * as GMSP01 from './code/GMSP01.js';
|
||||||
|
import * as GMSJ0A from './code/GMSJ0A.js';
|
||||||
|
export const codes = { GMSJ01, GMSE01, GMSP01, GMSJ0A };
|
||||||
|
|
||||||
|
export default function codegen(version) {
|
||||||
|
const config = getConfig();
|
||||||
|
const { freezeCodegen, baseCode } = codes[version] ?? {};
|
||||||
|
if (baseCode == null) return '';
|
||||||
|
|
||||||
|
let code = baseCode;
|
||||||
|
|
||||||
|
// freeze code
|
||||||
|
Object.entries(config.freeze).forEach(
|
||||||
|
([key, frame]) => (code += frame > 0 ? freezeCodegen[key]?.(int16(frame)) ?? '' : ''),
|
||||||
|
);
|
||||||
|
|
||||||
|
// ui (GMSJ01 only)
|
||||||
|
if (['GMSJ01'].includes(version)) {
|
||||||
|
/* bounds */
|
||||||
|
const { x, y, fontSize, width } = config;
|
||||||
|
const scale = fontSize / 20;
|
||||||
|
code += '077F0094 0000001D';
|
||||||
|
code += [
|
||||||
|
x, // x1
|
||||||
|
y - fontSize - 2, // y1
|
||||||
|
x + width * scale, // x2
|
||||||
|
y, // y2
|
||||||
|
]
|
||||||
|
.map(int32)
|
||||||
|
.join('');
|
||||||
|
code += '25753a253032752e2530337500000000'; // fmt
|
||||||
|
/* fontSize, fgColor, bgColor */
|
||||||
|
code += '077F0110 00000010';
|
||||||
|
const bgColor = (config.bgRGB & 0xffffff) * 256 + (config.bgA & 0xff);
|
||||||
|
const fgColor = (config.fgRGB & 0xffffff) * 256 + (config.fgA & 0xff);
|
||||||
|
const fgColor2 =
|
||||||
|
((config.fgRGB2 ?? config.fgRGB) & 0xffffff) * 256 + ((config.fgA2 ?? config.fgA) & 0xff);
|
||||||
|
code += [fontSize, fgColor, fgColor2, bgColor].map(int32).join('');
|
||||||
|
}
|
||||||
|
|
||||||
|
return code.replace(/\s/g, '');
|
||||||
|
}
|
154
site/.vuepress/components/codes/qft/config.vue
Normal file
154
site/.vuepress/components/codes/qft/config.vue
Normal file
|
@ -0,0 +1,154 @@
|
||||||
|
<template>
|
||||||
|
<div id="config">
|
||||||
|
<section v-if="version=='GMSJ01'" class="appearance">
|
||||||
|
<h3>{{l.h3}}</h3>
|
||||||
|
<div>
|
||||||
|
<span>{{l.location}}(</span><input type="number" min="0" max="600" v-model.number="x"><span>, </span><input type="number" min="16" max="464" v-model.number="y"><span>)</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span>{{l.fontSize}}</span><input type="number" min="0" v-model.number="fontSize">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span>{{fgRGB2==null ? l.fgColor : l.fgColor1}}</span><input type="color" :value="rgbI2S(fgRGB)" @change="fgRGB = rgbS2I($event.target.value)">
|
||||||
|
<span>{{l.alpha}}</span><input type="number" min="0" max="255" v-model.number="fgA"><span>/255={{(fgA/2.55).toFixed(1)}}%</span>
|
||||||
|
<input type="checkbox" :checked="fgRGB2!=null" @change="toggleGradient"><span>{{l.fgColorGrad}}</span>
|
||||||
|
</div>
|
||||||
|
<div v-if="fgRGB2 != null">
|
||||||
|
<span>{{l.fgColor2}}</span><input type="color" :value="rgbI2S(fgRGB2)" @change="fgRGB2 = rgbS2I($event.target.value)">
|
||||||
|
<span>{{l.alpha}}</span><input type="number" min="0" max="255" v-model.number="fgA2"><span>/255={{(fgA2/2.55).toFixed(1)}}%</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span>{{l.bgColor}}</span><input type="color" :value="rgbI2S(bgRGB)" @change="bgRGB = rgbS2I($event.target.value)">
|
||||||
|
<span>{{l.alpha}}</span><input type="number" min="0" max="255" v-model.number="bgA"><span>/255={{(bgA/2.55).toFixed(1)}}%</span>
|
||||||
|
</div>
|
||||||
|
<h4>{{l.preview}}</h4>
|
||||||
|
<svg viewBox="0 16 600 448">
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="fgColor" x1="0%" y1="0%" x2="0%" y2="100%">
|
||||||
|
<stop offset="0%" :style="{stopColor: rgbI2S(fgRGB), stopOpacity: fgA/255}" />
|
||||||
|
<stop offset="100%" :style="{
|
||||||
|
stopColor: rgbI2S(fgRGB2 == null ? fgRGB : fgRGB2),
|
||||||
|
stopOpacity: (fgA2 == null ? fgA : fgA2)/255,
|
||||||
|
}" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<image href="/img/qft/preview-base.jpg" y="16" width="600" height="448" />
|
||||||
|
<rect :x="x" :y="y-fontSize" :width="width*fontSize/20" :height="fontSize" :fill="rgbaI2S(bgRGB, bgA)" />
|
||||||
|
<text :x="x+fontSize/10" :y="y-fontSize/10" fill="url(#fgColor)"
|
||||||
|
:style="{fontSize: fontSize+'px', fontFamily: 'auto'}">0:00.000</text>
|
||||||
|
</svg>
|
||||||
|
<div style="white-space: pre">{{l.previewNote}}</div>
|
||||||
|
</section>
|
||||||
|
<section class="freeze">
|
||||||
|
<h3>{{l.freeze.h3}}</h3>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<th v-for="s in l.freeze.th" :key="s">{{s}}</th>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr v-for="key in freezeKeys" :key="key">
|
||||||
|
<td>{{l.freeze.rows[key]}}</td>
|
||||||
|
<td><input type="number" :value="freeze[key]" @change="onChangeFreeze($event, key)"></td>
|
||||||
|
<td class="right">{{(freeze[key]*1001/30000).toFixed(2)}}</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {getConfig, lskey, buttonValues, codes} from './codegen.js';
|
||||||
|
import labels from './labels.json';
|
||||||
|
import {getLabels} from '../codegen.js';
|
||||||
|
|
||||||
|
function updateConfig() {
|
||||||
|
const {x, y, fontSize, width, fgRGB, fgA, fgRGB2, fgA2, bgRGB, bgA, freeze} = this;
|
||||||
|
localStorage.setItem(lskey, JSON.stringify({
|
||||||
|
x, y, fontSize, width, fgRGB, fgA, fgRGB2, fgA2, bgRGB, bgA, freeze,
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
version: {type: String},
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
updateConfig,
|
||||||
|
onChangeFreeze($event, key) {
|
||||||
|
this.freeze[key] = parseInt($event.target.value);
|
||||||
|
this.updateConfig();
|
||||||
|
},
|
||||||
|
toggleGradient($event) {
|
||||||
|
if ($event.target.checked) {
|
||||||
|
this.fgRGB2 = this.fgRGB;
|
||||||
|
this.fgA2 = this.fgA;
|
||||||
|
} else {
|
||||||
|
this.fgRGB2 = null;
|
||||||
|
this.fgA2 = null;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
rgbI2S: (x) => '#'+x.toString(16).padStart(6, '0'),
|
||||||
|
rgbS2I: (s) => parseInt(s.slice(1), 16),
|
||||||
|
rgbaI2S: (rgb, a) => '#'+rgb.toString(16).padStart(6, '0')+a.toString(16).padStart(2, '0'),
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
const {x, y, fontSize, width, fgRGB, fgA, fgRGB2, fgA2, bgRGB, bgA, freeze} = getConfig();
|
||||||
|
return {
|
||||||
|
x, y, fontSize, width,
|
||||||
|
fgRGB, fgA, fgRGB2, fgA2, bgRGB, bgA,
|
||||||
|
freeze,
|
||||||
|
// const
|
||||||
|
freezeKeys: Object.keys(codes[this.version]?.freezeCodegen ?? {}),
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
l() {
|
||||||
|
return labels[this.$lang] ?? labels['en-US'];
|
||||||
|
},
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
x: updateConfig,
|
||||||
|
y: updateConfig,
|
||||||
|
fontSize: updateConfig,
|
||||||
|
width: updateConfig,
|
||||||
|
fgRGB: updateConfig,
|
||||||
|
fgA: updateConfig,
|
||||||
|
fgRGB2: updateConfig,
|
||||||
|
fgA2: updateConfig,
|
||||||
|
bgRGB: updateConfig,
|
||||||
|
bgA: updateConfig,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
input[type=number], td.right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.appearance input[type="number"] {
|
||||||
|
width: 3em;
|
||||||
|
margin: 0 2px;
|
||||||
|
}
|
||||||
|
.appearance > div {
|
||||||
|
padding: 0 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
th {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
td > input[type=number] {
|
||||||
|
width: 8em;
|
||||||
|
max-width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type=number] {
|
||||||
|
-moz-appearance: textfield;
|
||||||
|
}
|
||||||
|
input[type="number"]::-webkit-inner-spin-button,
|
||||||
|
input[type="number"]::-webkit-outer-spin-button {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
</style>
|
56
site/.vuepress/components/codes/qft/labels.json
Normal file
56
site/.vuepress/components/codes/qft/labels.json
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
{
|
||||||
|
"ja-JP": {
|
||||||
|
"h3": "見た目",
|
||||||
|
"location": "位置:",
|
||||||
|
"fontSize": "文字サイズ:",
|
||||||
|
"fgColor": "文字色:",
|
||||||
|
"fgColorGrad": "グラデーション",
|
||||||
|
"fgColor1": "文字色(上):",
|
||||||
|
"fgColor2": "文字色(下):",
|
||||||
|
"bgColor": "背景色:",
|
||||||
|
"alpha": "不透明度=",
|
||||||
|
"preview": "プレビュー",
|
||||||
|
"previewNote": "※ x座標の範囲は0~600、y座標の範囲は16~464です\n※ ゲーム内のフォントはプレビューのより幅が広いです",
|
||||||
|
"freeze": {
|
||||||
|
"h3": "一時停止",
|
||||||
|
"th": ["タイミング", "停止フレーム数", "停止秒数"],
|
||||||
|
"rows": {
|
||||||
|
"yellowCoin": "黄コインを取った時",
|
||||||
|
"redCoin": "赤コインを取った時",
|
||||||
|
"blueCoin": "青コインを取った時",
|
||||||
|
"item": "アイテム(ノズル等)を取った時",
|
||||||
|
"talk": "会話開始時",
|
||||||
|
"demo": "カットシーン開始時",
|
||||||
|
"cleaned": "NPCを洗った時",
|
||||||
|
"bowser": "クッパ戦の足場を破壊した時"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"en-US": {
|
||||||
|
"h3": "Appearance",
|
||||||
|
"location": "Location: ",
|
||||||
|
"fontSize": "Font size: ",
|
||||||
|
"fgColor": "Font color: ",
|
||||||
|
"fgColorGrad": "Gradient",
|
||||||
|
"fgColor1": "Font color(Top): ",
|
||||||
|
"fgColor2": "Font color(Bottom): ",
|
||||||
|
"bgColor": "Background color: ",
|
||||||
|
"alpha": "Alpha=",
|
||||||
|
"preview": "Preview",
|
||||||
|
"previewNote": "※ x ranges from 0 to 600, and y ranges from 16 to 464.\n※ The font is wider in the game compared to the preview.",
|
||||||
|
"freeze": {
|
||||||
|
"h3": "Freezing the timer",
|
||||||
|
"th": ["Timing", "Duration(frame)", "Duration(sec)"],
|
||||||
|
"rows": {
|
||||||
|
"yellowCoin": "When collected a yellow coin",
|
||||||
|
"redCoin": "When collected a red coin",
|
||||||
|
"blueCoin": "When collected a blue coin",
|
||||||
|
"item": "When collected an item (e.g. nozzle)",
|
||||||
|
"talk": "When dialogue started",
|
||||||
|
"demo": "When cutscene started",
|
||||||
|
"cleaned": "When NPC is cleaned",
|
||||||
|
"bowser": "When destroyed platform in Bowser fight"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,7 @@
|
||||||
import InstantRestart from './InstantRestart/config.vue';
|
import InstantRestart from './InstantRestart/config.vue';
|
||||||
|
import qft from './qft/config.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
InstantRestart,
|
InstantRestart,
|
||||||
|
qft,
|
||||||
};
|
};
|
||||||
|
|
BIN
site/.vuepress/public/img/qft/preview-base.jpg
Normal file
BIN
site/.vuepress/public/img/qft/preview-base.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 80 KiB |
Loading…
Reference in a new issue