|
3 | 3 | const { readFileSync } = require('fs'); |
4 | 4 | const { join } = require('path'); |
5 | 5 |
|
6 | | -const base = __dirname + '/../../flex2_test/s1disasm/SonLVL INI Files/'; |
7 | | -const format = 'Sonic 1.js'; |
8 | | -const projectName = 'Sonic 1'; |
| 6 | +const base = __dirname + '/../../flex2_test/s2disasm/SonLVL INI Files/'; |
| 7 | +const format = 'Sonic 2.js'; |
| 8 | +const projectName = 'Sonic 2'; |
9 | 9 | const defaultCmp = 'Nemesis'; |
10 | 10 | const folders = [ |
11 | 11 | 'obj.ini', |
12 | | - 'objGHZ.ini', |
13 | | - 'objLZ.ini', |
14 | | - 'objMZ.ini', |
15 | | - 'objSBZ.ini', |
16 | | - 'objSLZ.ini', |
17 | | - 'objSYZ.ini', |
| 12 | + 'objARZ.ini', |
| 13 | + 'objMCZ.ini', |
| 14 | + 'objCNZ.ini', |
| 15 | + 'objMTZ.ini', |
| 16 | + 'objCPZ.ini', |
| 17 | + 'objOOZ.ini', |
| 18 | + 'objDEZ.ini', |
| 19 | + 'objSCZ.ini', |
| 20 | + 'objEHZ.ini', |
| 21 | + 'objWFZ.ini', |
18 | 22 | ]; |
19 | 23 | const basePalette = [ |
20 | | - { path: 'palette/Sonic.bin', length: 1 } |
| 24 | + { path: 'art/palettes/SonicAndTails.bin', length: 1 } |
21 | 25 | ]; |
22 | 26 | const pathMod = (str) => str.slice(3).replace(/&/g, '&').replace(/\|.+/, ''); |
23 | 27 |
|
@@ -63,7 +67,44 @@ folders.forEach(filename => { |
63 | 67 |
|
64 | 68 | const ini = readFileSync(join(base, filename), 'utf8'); |
65 | 69 | parseINI(ini).forEach(obj => { |
66 | | - if (obj.codefile) { |
| 70 | + if (obj.mapasm) { |
| 71 | + obj.map = obj.mapasm |
| 72 | + } |
| 73 | + if (obj.dplcasm) { |
| 74 | + obj.dplc = obj.dplcasm; |
| 75 | + } |
| 76 | + if (obj.art && obj.map) { |
| 77 | + const flexObj = { |
| 78 | + name: obj.name || '???', |
| 79 | + palettes, |
| 80 | + format, |
| 81 | + art: { |
| 82 | + path: pathMod(obj.art), |
| 83 | + compression: defaultCmp, |
| 84 | + offset: 0, |
| 85 | + }, |
| 86 | + mappings: { |
| 87 | + path: pathMod(obj.map), |
| 88 | + label: '', |
| 89 | + }, |
| 90 | + dplcs: { |
| 91 | + enabled: false, |
| 92 | + path: '', |
| 93 | + label: '', |
| 94 | + }, |
| 95 | + }; |
| 96 | + |
| 97 | + if (obj.dplc) { |
| 98 | + flexObj.dplcs.enabled = true; |
| 99 | + flexObj.dplcs.path = pathMod(obj.dplc); |
| 100 | + } |
| 101 | + |
| 102 | + if (obj.artcmp) { |
| 103 | + flexObj.art.compression = obj.artcmp; |
| 104 | + } |
| 105 | + |
| 106 | + folder.children.push(flexObj); |
| 107 | + } else if (obj.codefile) { |
67 | 108 | const cs = readFileSync(join(base, obj.codefile), 'utf8'); |
68 | 109 | const flexObj = { |
69 | 110 | name: '???', |
@@ -110,37 +151,6 @@ folders.forEach(filename => { |
110 | 151 | flexObj.mappings.path = pathMod(map[2]); |
111 | 152 | } |
112 | 153 |
|
113 | | - folder.children.push(flexObj); |
114 | | - } else if (obj.art && obj.mapasm) { |
115 | | - const flexObj = { |
116 | | - name: obj.name || '???', |
117 | | - palettes, |
118 | | - format, |
119 | | - art: { |
120 | | - path: pathMod(obj.art), |
121 | | - compression: defaultCmp, |
122 | | - offset: 0, |
123 | | - }, |
124 | | - mappings: { |
125 | | - path: pathMod(obj.mapasm), |
126 | | - label: '', |
127 | | - }, |
128 | | - dplcs: { |
129 | | - enabled: false, |
130 | | - path: '', |
131 | | - label: '', |
132 | | - }, |
133 | | - }; |
134 | | - |
135 | | - if (obj.dplcasm) { |
136 | | - flexObj.dplcs.enabled = true; |
137 | | - flexObj.dplcs.path = pathMod(obj.dplcasm); |
138 | | - } |
139 | | - |
140 | | - if (obj.artcmp) { |
141 | | - flexObj.art.compression = obj.artcmp; |
142 | | - } |
143 | | - |
144 | 154 | folder.children.push(flexObj); |
145 | 155 | } |
146 | 156 | }) |
|
0 commit comments