Compare commits
630 Commits
develop-bl
...
25bbd8f7f6
| Author | SHA1 | Date | |
|---|---|---|---|
| 25bbd8f7f6 | |||
|
|
50aed798a1 | ||
|
|
0ccff93fae | ||
|
|
db0d179b37 | ||
|
|
0d2454ed65 | ||
|
|
412e9e262f | ||
|
|
7363e1c264 | ||
|
|
317c057e86 | ||
|
|
2b336a4582 | ||
|
|
14b464bab2 | ||
|
|
efc4086c6a | ||
|
|
7c5cccaf92 | ||
|
|
972ed22167 | ||
|
|
5494a81eb1 | ||
|
|
ebea14f297 | ||
|
|
0127cbcf62 | ||
|
|
a461d8f6fb | ||
|
|
4729eef7c8 | ||
|
|
0b3ebd584d | ||
|
|
e0a1b23525 | ||
|
|
1be7533675 | ||
|
|
3228843886 | ||
|
|
9f61e635d2 | ||
|
|
c7180762d9 | ||
|
|
178471bf20 | ||
|
|
d1b7edfa7c | ||
|
|
6fea1821a1 | ||
|
|
42ba25449e | ||
|
|
d1643aa196 | ||
|
|
5576f93ef6 | ||
|
|
7edf44e170 | ||
|
|
53dc7f43ba | ||
|
|
5f139ef311 | ||
|
|
88625c4350 | ||
|
|
99c1f23d5b | ||
|
|
69e03dcc52 | ||
|
|
98ec5519cf | ||
|
|
2f32abb511 | ||
|
|
4aa6e2ec28 | ||
|
|
94b650ec67 | ||
|
|
57269c8e46 | ||
|
|
5e13570b83 | ||
|
|
5fe4680a20 | ||
|
|
8c4d4738cc | ||
|
|
c439d62137 | ||
|
|
2cfb0f73dc | ||
|
|
c61c1c0fec | ||
|
|
ccdd8e63ff | ||
|
|
5f0c0c8e2f | ||
|
|
ef042be5ea | ||
|
|
0498d36428 | ||
|
|
692ef416ee | ||
|
|
1949033f93 | ||
|
|
c758f1ad84 | ||
|
|
1d9de8544a | ||
|
|
25ee1ec3ab | ||
|
|
96c4fef05c | ||
|
|
b65c1c8317 | ||
|
|
4e82ea192a | ||
|
|
2af5d21125 | ||
|
|
b6bf97e2f1 | ||
|
|
43f77c13fb | ||
|
|
b8634f1d8b | ||
|
|
5c8ff76554 | ||
|
|
09b0fdbc93 | ||
|
|
f2c34d8c11 | ||
|
|
38e684fda3 | ||
|
|
8f51dfbaf4 | ||
|
|
04ed1825f0 | ||
|
|
94a02dd53a | ||
|
|
6a9567b369 | ||
|
|
9f6ffc9f2a | ||
|
|
2f12677b25 | ||
|
|
a40ca58aba | ||
|
|
1f57f72acd | ||
|
|
d7b4e5a24d | ||
|
|
97eaa8b3e0 | ||
|
|
e7dce8e055 | ||
|
|
908ecbb795 | ||
|
|
716f6bc042 | ||
|
|
4e3b8d0b13 | ||
|
|
c906c71f71 | ||
|
|
e9ef09eee4 | ||
|
|
cefc9c02fa | ||
|
|
b35883e1f6 | ||
|
|
c93b6188c8 | ||
|
|
e6d6b6d7d1 | ||
|
|
b15ac97dea | ||
|
|
45449623bb | ||
|
|
7899b6a048 | ||
|
|
614ec084fa | ||
|
|
005044868a | ||
|
|
7767cb6d39 | ||
|
|
139381a0e0 | ||
|
|
63859efa40 | ||
|
|
0f948efb51 | ||
|
|
99e60b81fd | ||
|
|
3174545749 | ||
|
|
a1aa046814 | ||
|
|
60ec65592a | ||
|
|
6deff6d749 | ||
|
|
92a1d260da | ||
|
|
6340ad3d5c | ||
|
|
63597ec633 | ||
|
|
7522f31cc8 | ||
|
|
b6df96c530 | ||
|
|
40ad4fed82 | ||
|
|
3882086677 | ||
|
|
49aa33038d | ||
|
|
b65acb9c9d | ||
|
|
91425a39ac | ||
|
|
f19ad1e75b | ||
|
|
2a335b1cd8 | ||
|
|
6f01d68c3c | ||
|
|
d4c1118d1b | ||
|
|
0d41af6978 | ||
|
|
460a098bec | ||
|
|
2b650a4979 | ||
|
|
2c07edc4eb | ||
|
|
0a946e5b9d | ||
|
|
b07c64ecf9 | ||
|
|
a547d51abb | ||
|
|
d841357fd4 | ||
|
|
8dd03ef097 | ||
|
|
a393f48c7c | ||
|
|
00ac1d566d | ||
|
|
fcf7d4bd15 | ||
|
|
9f56ef5090 | ||
|
|
d46bfd9716 | ||
|
|
5a7bc9a459 | ||
|
|
6b51909aa5 | ||
|
|
fe5dce24b5 | ||
|
|
c3ffaa918d | ||
|
|
b6cdc6c490 | ||
|
|
d4d3e8bc0f | ||
|
|
c2cf154e3e | ||
|
|
0e99b30e91 | ||
|
|
19df711123 | ||
|
|
0702b11b90 | ||
|
|
d9ebce9f9f | ||
|
|
4cae79fd89 | ||
|
|
8e1f1aea82 | ||
|
|
e987cdae24 | ||
|
|
c63f57850f | ||
|
|
b1fea3fe78 | ||
|
|
0210374cc4 | ||
|
|
d67dcb92f2 | ||
|
|
3206425e1b | ||
|
|
e447143e48 | ||
|
|
e6947c733c | ||
|
|
71c6f02a86 | ||
|
|
b83ca39c98 | ||
|
|
7eb5acf224 | ||
|
|
f31172c647 | ||
|
|
1e1ba54cf6 | ||
|
|
92cb7f1594 | ||
|
|
04eb8d1601 | ||
|
|
21a270c0b3 | ||
|
|
6a31700820 | ||
|
|
a2f2697d0d | ||
|
|
293adcf9ee | ||
|
|
743103fbe9 | ||
|
|
ce8dd7931c | ||
|
|
8fd41474c1 | ||
|
|
2bfae47b7f | ||
|
|
65c7c3e4a9 | ||
|
|
2656c20f71 | ||
|
|
c021a0e8a2 | ||
|
|
cc0941cc9f | ||
|
|
a4eacdd267 | ||
|
|
79d6f54be1 | ||
|
|
23606325e6 | ||
|
|
8176e57144 | ||
|
|
473a77bbb2 | ||
|
|
a365446832 | ||
|
|
e2db315ffa | ||
|
|
16ee01404a | ||
|
|
077fda8749 | ||
|
|
f5264be192 | ||
|
|
983d04d362 | ||
|
|
2af265dbce | ||
|
|
dfba6b319b | ||
|
|
894b8e6c86 | ||
|
|
2da233c40b | ||
|
|
6b160fac1c | ||
|
|
78c68ae3d4 | ||
|
|
fae74d4a5e | ||
|
|
c9414b4d45 | ||
|
|
9991a95ab1 | ||
|
|
c360b2dee4 | ||
|
|
596b714fa4 | ||
|
|
f52b653cfb | ||
|
|
35039565df | ||
|
|
451820cac4 | ||
|
|
d7981bf03f | ||
|
|
a2245f7a47 | ||
|
|
7588734a42 | ||
|
|
0dc6989438 | ||
|
|
be0f8fec9f | ||
|
|
651078f0b3 | ||
|
|
f541c3f4ad | ||
|
|
c71cc68951 | ||
|
|
04c5d50b3e | ||
|
|
eab279c0be | ||
|
|
7006ef7404 | ||
|
|
18b00e7bc1 | ||
|
|
60205ec0bd | ||
|
|
5e802f232d | ||
|
|
f474a86928 | ||
|
|
9ab58a8d07 | ||
|
|
1af0f4e395 | ||
|
|
c36468ccbd | ||
|
|
7850fa82df | ||
|
|
5a484331b6 | ||
|
|
44d351698b | ||
|
|
69f151e79d | ||
|
|
04df48944a | ||
|
|
6606eefbf1 | ||
|
|
6e4c010ffe | ||
|
|
9c1a1728ee | ||
|
|
704ace8fd3 | ||
|
|
c7e4e8ccee | ||
|
|
7b3efb1e7b | ||
|
|
c43139ebd6 | ||
|
|
a92f07e1f1 | ||
|
|
0821c2e315 | ||
|
|
0d4986f2c3 | ||
|
|
6e6834af22 | ||
|
|
e149e09e08 | ||
|
|
45fb38e309 | ||
|
|
cb21208b4b | ||
|
|
5d2d7a7f09 | ||
|
|
31eefd57df | ||
|
|
cd8bd69c6e | ||
|
|
7627b0567b | ||
|
|
65227f65f2 | ||
|
|
989bbe0dd0 | ||
|
|
14a6bc1f85 | ||
|
|
5bbc32c2d1 | ||
|
|
c2152a8713 | ||
|
|
39b8aacdef | ||
|
|
3e0225272f | ||
|
|
ba0ecc59aa | ||
|
|
9ca5ce0b53 | ||
|
|
8584ced40b | ||
|
|
feb1429471 | ||
|
|
71a47559f7 | ||
|
|
4839e575b1 | ||
|
|
f72ee2b814 | ||
|
|
307cd7f8cd | ||
|
|
36ff9ec562 | ||
|
|
e6fb9a6b64 | ||
|
|
e26269d1b3 | ||
|
|
443badee87 | ||
|
|
b5a7dc7c2d | ||
|
|
8783f4cff7 | ||
|
|
708bd0739a | ||
|
|
5b0d8be484 | ||
|
|
da5f28afd8 | ||
|
|
3f8aa32d12 | ||
|
|
7c4a3359f0 | ||
|
|
392bb6c59f | ||
|
|
ea40cb2c0c | ||
|
|
0e7212d939 | ||
|
|
34728efe6f | ||
|
|
2ed9c56ca3 | ||
|
|
a134d2c59a | ||
|
|
16249f0909 | ||
|
|
db91fd37e1 | ||
|
|
9af262c1bb | ||
|
|
6c724a2c01 | ||
|
|
6a1fb1412b | ||
|
|
5b275343db | ||
|
|
7db2a97cea | ||
|
|
07208fcf15 | ||
|
|
ba78039a69 | ||
|
|
e3865e28af | ||
|
|
1e55c1295f | ||
|
|
6953edecee | ||
|
|
7748939504 | ||
|
|
5fea53ed56 | ||
|
|
1c4b78d35e | ||
|
|
657b78a016 | ||
|
|
7d6c6f032e | ||
|
|
480a1658b1 | ||
|
|
ef2b4cd42c | ||
|
|
6f060a9222 | ||
|
|
31824afa4a | ||
|
|
c0ba618f60 | ||
|
|
10680f53e7 | ||
|
|
88494169e6 | ||
|
|
33758e49db | ||
|
|
dd9d63eecb | ||
|
|
0bd08d626a | ||
|
|
31db9e4ade | ||
|
|
f666444876 | ||
|
|
d3a6288c7e | ||
|
|
ff0c309b5a | ||
|
|
14a241ed3f | ||
|
|
9e6c9a478e | ||
|
|
d227292935 | ||
|
|
1463e76ef7 | ||
|
|
c0d9fe876c | ||
|
|
1a9ea03e00 | ||
|
|
d62e8108fd | ||
|
|
2e5a985745 | ||
|
|
bc47a9ec6f | ||
|
|
7ca93e93be | ||
|
|
8cc02fd235 | ||
|
|
5d63146267 | ||
|
|
50c023b86b | ||
|
|
8ee637880d | ||
|
|
d41273f34b | ||
|
|
c688923272 | ||
|
|
7d6a82be4f | ||
|
|
e96503c0bd | ||
|
|
fbfef95617 | ||
|
|
cd08f343a6 | ||
|
|
82b279f55e | ||
|
|
5822c33268 | ||
|
|
6e27cd7107 | ||
|
|
ace2f7869b | ||
|
|
f273ea4294 | ||
|
|
a1f9971c12 | ||
|
|
9c24ccec1a | ||
|
|
1c21608a95 | ||
|
|
58e851dd2b | ||
|
|
999f980d7c | ||
|
|
b24d266974 | ||
|
|
cc21163765 | ||
|
|
3fa4af2cea | ||
|
|
352a4e9260 | ||
|
|
05d865337c | ||
|
|
9edb4e3c36 | ||
|
|
971c3c5c94 | ||
|
|
e9aad17d17 | ||
|
|
7176960a0e | ||
|
|
9d8addca04 | ||
|
|
f83f73d671 | ||
|
|
7e829a0780 | ||
|
|
098cb70460 | ||
|
|
9401d4fd71 | ||
|
|
280455db42 | ||
|
|
b649f5ed52 | ||
|
|
17f7c3e8f5 | ||
|
|
42282c804e | ||
|
|
c24b2d74d5 | ||
|
|
8aa7b2fc71 | ||
|
|
a2e4e4d417 | ||
|
|
4366da631b | ||
|
|
9cd31099e2 | ||
|
|
0073736467 | ||
|
|
bc48fa84fd | ||
|
|
da6cf439d6 | ||
|
|
0f41ecb145 | ||
|
|
2ee4e70b9a | ||
|
|
3e6b590db4 | ||
|
|
c68c8f1284 | ||
|
|
4aebdab43d | ||
|
|
eca9eac0cf | ||
|
|
05233487f8 | ||
|
|
16909c47cd | ||
|
|
daeb3a84c7 | ||
|
|
623a7e4f7b | ||
|
|
060878fb2e | ||
|
|
cd1d619c9f | ||
|
|
6ccdfc6051 | ||
|
|
1e1a47c263 | ||
|
|
14fb9e60d8 | ||
|
|
dadc2e5218 | ||
|
|
c005248129 | ||
|
|
75c9c579a4 | ||
|
|
a31b7d9ae7 | ||
|
|
25be804841 | ||
|
|
5629d033c2 | ||
|
|
36cd3a27e2 | ||
|
|
754d79a86e | ||
|
|
33929534f5 | ||
|
|
3eade8133e | ||
|
|
c0848ccba8 | ||
|
|
a3e540ebfe | ||
|
|
6b83070343 | ||
|
|
7ff93a3960 | ||
|
|
3d525d7eb1 | ||
|
|
5249cd89df | ||
|
|
8073f96856 | ||
|
|
66a9c7a218 | ||
|
|
0e162cbb7c | ||
|
|
3793e821c8 | ||
|
|
43118146e4 | ||
|
|
be70bb3296 | ||
|
|
4aaad850bd | ||
|
|
cf275b1a6c | ||
|
|
0014f40676 | ||
|
|
f015a1b339 | ||
|
|
b2090dcf83 | ||
|
|
ebf8a3b47f | ||
|
|
f3b0d8e230 | ||
|
|
156a1a7816 | ||
|
|
4e913cc094 | ||
|
|
9f089aa6f8 | ||
|
|
1ba6cf643d | ||
|
|
b30191f369 | ||
|
|
7ffd01f133 | ||
|
|
a419b431a7 | ||
|
|
48f4f56bac | ||
|
|
1b29c0cad3 | ||
|
|
74312442d5 | ||
|
|
248fe8cb13 | ||
|
|
c4f9712eff | ||
|
|
cadae90c81 | ||
|
|
ad2807ce32 | ||
|
|
ae1cee9b13 | ||
|
|
56a05c392e | ||
|
|
955ee9b9ba | ||
|
|
dc5e9686c0 | ||
|
|
8d441f3ae5 | ||
|
|
7004c1fc4f | ||
|
|
c806f23494 | ||
|
|
1cd2f60e24 | ||
|
|
6ef8be58d7 | ||
|
|
a73d80c82b | ||
|
|
c0aa3deb93 | ||
|
|
56ab4c51fd | ||
|
|
73f3427ced | ||
|
|
e254c1f908 | ||
|
|
94b07aaa73 | ||
|
|
8302c2322f | ||
|
|
f253d24cdc | ||
|
|
52a8f6c281 | ||
|
|
57c368aa2c | ||
|
|
7700b34646 | ||
|
|
82e2fbb43f | ||
|
|
0973a4211e | ||
|
|
474d944cfa | ||
|
|
04780de5ec | ||
|
|
5e199ffea8 | ||
|
|
f4336cdec7 | ||
|
|
b337f38737 | ||
|
|
dd2628f737 | ||
|
|
6c724382f5 | ||
|
|
004890f2f8 | ||
|
|
c22fbc08d7 | ||
|
|
5cac826f97 | ||
|
|
545cc396b4 | ||
|
|
e10b882c08 | ||
|
|
5ed3db0a7e | ||
|
|
004ad3aea3 | ||
|
|
11a73f88ae | ||
|
|
dbbbe0f727 | ||
|
|
3cf1d65466 | ||
|
|
b7de53bf8d | ||
|
|
7c8fc85c50 | ||
|
|
207de8f408 | ||
|
|
14d269d99e | ||
|
|
4b9c949428 | ||
|
|
c7975898a5 | ||
|
|
b30c4ab7da | ||
|
|
a576bffe3a | ||
|
|
eeb5a809ae | ||
|
|
8e15cefe2b | ||
|
|
577c5639df | ||
|
|
b944d01b12 | ||
|
|
7cce840472 | ||
|
|
4bc2bb5592 | ||
|
|
911c107b6e | ||
|
|
a88cac300e | ||
|
|
ba693ecac4 | ||
|
|
e6663a1c49 | ||
|
|
524ba26034 | ||
|
|
f7ab811c20 | ||
|
|
640a7d24b4 | ||
|
|
7ff2355c7e | ||
|
|
e5d0f7befa | ||
|
|
64280146fe | ||
|
|
e9f1296781 | ||
|
|
aacb4ad2f7 | ||
|
|
bd4e146599 | ||
|
|
52d452307e | ||
|
|
a76c1ca9db | ||
|
|
beea799081 | ||
|
|
fc866e695e | ||
|
|
9a59af2a5e | ||
|
|
e0e3cb21a3 | ||
|
|
113e899f09 | ||
|
|
3c084ef2a1 | ||
|
|
263afb9c09 | ||
|
|
93c163a99c | ||
|
|
4c269cab30 | ||
|
|
d8453b2b68 | ||
|
|
6e6f8dcc9d | ||
|
|
7ee7084746 | ||
|
|
bdaf352440 | ||
|
|
cc477fbef2 | ||
|
|
860bc57a2a | ||
|
|
4a9a98d93c | ||
|
|
3128fb0112 | ||
|
|
9eafa852b5 | ||
|
|
7b4df9bdb2 | ||
|
|
fadae49977 | ||
|
|
ee20f7f762 | ||
|
|
ce38e03562 | ||
|
|
9cdffc080b | ||
|
|
c597e1c4ce | ||
|
|
526d221c56 | ||
|
|
3e39a94083 | ||
|
|
6d4c6f8ea6 | ||
|
|
429021d434 | ||
|
|
1d20000411 | ||
|
|
73209fcf2c | ||
|
|
27d88c80b1 | ||
|
|
237dcfec74 | ||
|
|
ec54d02c0c | ||
|
|
cddc7353af | ||
|
|
48d2193fec | ||
|
|
05a7f728e7 | ||
|
|
db58c3a029 | ||
|
|
f80836d8b7 | ||
|
|
928bb7767b | ||
|
|
96d3b480b1 | ||
|
|
7f3d2adc63 | ||
|
|
015dcf2af1 | ||
|
|
30d1932354 | ||
|
|
002e8e9f09 | ||
|
|
063fb2577f | ||
|
|
16c3cb1adf | ||
|
|
112fbc5a4b | ||
|
|
9924ebbd05 | ||
|
|
e15f8d395b | ||
|
|
9e686ae6f6 | ||
|
|
1d24edaa92 | ||
|
|
63bd4ed565 | ||
|
|
c2e7adf915 | ||
|
|
74560a360d | ||
|
|
040e0e1921 | ||
|
|
64f9e433da | ||
|
|
e0ebc115ce | ||
|
|
cf0ea3033e | ||
|
|
2d59721b7a | ||
|
|
7ecefa8f90 | ||
|
|
7514bdc08b | ||
|
|
3943242cb2 | ||
|
|
517b52176c | ||
|
|
7f3aac36b2 | ||
|
|
1e60c48e3a | ||
|
|
4c31f2bc88 | ||
|
|
180d6a1b90 | ||
|
|
561f151615 | ||
|
|
565d57112e | ||
|
|
7f4c570a47 | ||
|
|
073205c862 | ||
|
|
4f95ab3f46 | ||
|
|
c0ea595fa5 | ||
|
|
a9ede7d46e | ||
|
|
be22c02d00 | ||
|
|
81b3123586 | ||
|
|
87c971372d | ||
|
|
4c547416cc | ||
|
|
081338b9f9 | ||
|
|
330e64180c | ||
|
|
213ea742eb | ||
|
|
cd32181415 | ||
|
|
c2b6942282 | ||
|
|
2b1322d723 | ||
|
|
62c03abfd4 | ||
|
|
bf3add7a72 | ||
|
|
9432b3420b | ||
|
|
52debea44b | ||
|
|
07328a0ecb | ||
|
|
af99ef8e07 | ||
|
|
dbc2ff09b5 | ||
|
|
abb0a93945 | ||
|
|
5b2c30edb0 | ||
|
|
3377dc636a | ||
|
|
3a60c3f651 | ||
|
|
56a53e9fac | ||
|
|
f5d8f1eece | ||
|
|
40fa3c8d64 | ||
|
|
2b360d4bbe | ||
|
|
fa6f45bde5 | ||
|
|
4e8e6d2313 | ||
|
|
8b4cad1710 | ||
|
|
f2298c6a8e | ||
|
|
99c3fa6006 | ||
|
|
3a069e621e | ||
|
|
a2541fded8 | ||
|
|
150029fa49 | ||
|
|
e4448f491e | ||
|
|
db8440e744 | ||
|
|
d8acc32876 | ||
|
|
ae480e107e | ||
|
|
ca32dfd246 | ||
|
|
24013e2e5c | ||
|
|
1d716a5975 | ||
|
|
79b6719db3 | ||
|
|
4216776cd6 | ||
|
|
e1f6297807 | ||
|
|
50f42b93fe | ||
|
|
3c0e7bcf72 | ||
|
|
b418db7792 | ||
|
|
4f0ed2949e | ||
|
|
026c7619da | ||
|
|
9010b8c540 | ||
|
|
e673eaefb6 | ||
|
|
23a5198986 | ||
|
|
5b6844ccd8 | ||
|
|
b900f8599a | ||
|
|
45d9fe54d2 | ||
|
|
afc52f07d2 | ||
|
|
eb95f9060f | ||
|
|
f9cde383b7 | ||
|
|
6a93625f5c | ||
|
|
a0e49f9960 | ||
|
|
626511ffb1 | ||
|
|
1a322c3eb5 | ||
|
|
3c33185d1a | ||
|
|
d790ea4bce | ||
|
|
4c9063caa7 | ||
|
|
4debe6829a | ||
|
|
7cbb0d4d61 | ||
|
|
e13714e88d | ||
|
|
fbbfc07ff1 | ||
|
|
52a3058926 | ||
|
|
14907a24b0 | ||
|
|
824c203b97 | ||
|
|
7e78694aee | ||
|
|
f37c3aa228 | ||
|
|
2deea6e105 | ||
|
|
ef8fa17e7c | ||
|
|
1e51f1e162 |
@@ -1,13 +1,65 @@
|
||||
FROM mcr.microsoft.com/devcontainers/cpp:ubuntu-22.04
|
||||
|
||||
RUN apt-get update && apt-get install -y libsdl2-dev libsdl2-net-dev libpng-dev libglew-dev ninja-build
|
||||
RUN apt-get update && apt-get upgrade -y \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# download and install cmake from source
|
||||
# this ensures we use the same version as in the github runner image
|
||||
RUN apt-get purge -y cmake || true
|
||||
ARG CMAKE_VERSION=3.31.11
|
||||
# download
|
||||
WORKDIR /tmp
|
||||
RUN curl -fsSL \
|
||||
https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}.tar.gz \
|
||||
-o cmake.tar.gz \
|
||||
&& tar -xzf cmake.tar.gz \
|
||||
&& rm cmake.tar.gz
|
||||
# build and install
|
||||
WORKDIR /tmp/cmake-${CMAKE_VERSION}
|
||||
RUN ./bootstrap \
|
||||
--prefix=/usr/local \
|
||||
--parallel=$(nproc) \
|
||||
&& make -j$(nproc) \
|
||||
&& make install
|
||||
# clean up
|
||||
WORKDIR /
|
||||
RUN rm -rf /tmp/cmake-${CMAKE_VERSION}
|
||||
|
||||
# download and install tinyxml2 from source
|
||||
# this ensures we have the cmake files needed for find_package
|
||||
RUN apt-get purge -y libtinyxml2-dev || true
|
||||
ARG TINYXML2_VERSION=11.0.0
|
||||
# download
|
||||
WORKDIR /tmp
|
||||
RUN curl -fsSL \
|
||||
https://github.com/leethomason/tinyxml2/archive/refs/tags/${TINYXML2_VERSION}.tar.gz \
|
||||
-o tinyxml2.tar.gz \
|
||||
&& tar -xzf tinyxml2.tar.gz \
|
||||
&& rm tinyxml2.tar.gz
|
||||
# build and install
|
||||
WORKDIR /tmp/tinyxml2-${TINYXML2_VERSION}
|
||||
RUN cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local \
|
||||
&& cmake --build build --parallel $(nproc) \
|
||||
&& cmake --install build
|
||||
# clean up
|
||||
WORKDIR /
|
||||
RUN rm -rf /tmp/tinyxml2-${TINYXML2_VERSION}
|
||||
|
||||
# install apt dependencies
|
||||
RUN apt-get update && apt-get install -y \
|
||||
libusb-dev libusb-1.0-0-dev libsdl2-dev libsdl2-net-dev libpng-dev \
|
||||
libglew-dev nlohmann-json3-dev libspdlog-dev ninja-build libogg-dev \
|
||||
libopus-dev opus-tools libopusfile-dev libvorbis-dev libespeak-ng-dev \
|
||||
lsb-release git clang clang-format-14 zipcmp zipmerge ziptool \
|
||||
libopengl-dev libbz2-dev libzip-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install latest SDL2
|
||||
RUN wget https://www.libsdl.org/release/SDL2-2.26.1.tar.gz && \
|
||||
tar -xzf SDL2-2.26.1.tar.gz && \
|
||||
cd SDL2-2.26.1 && \
|
||||
./configure && \
|
||||
make && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
cd .. && \
|
||||
rm -rf SDL2-2.26.1 && \
|
||||
@@ -19,7 +71,7 @@ RUN wget https://www.libsdl.org/projects/SDL_net/release/SDL2_net-2.2.0.tar.gz &
|
||||
tar -xzf SDL2_net-2.2.0.tar.gz && \
|
||||
cd SDL2_net-2.2.0 && \
|
||||
./configure && \
|
||||
make && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
cd .. && \
|
||||
rm -rf SDL2_net-2.2.0 && \
|
||||
|
||||
2
.github/workflows/apt-deps.txt
vendored
2
.github/workflows/apt-deps.txt
vendored
@@ -1 +1 @@
|
||||
libusb-dev libusb-1.0-0-dev libsdl2-dev libsdl2-net-dev libpng-dev libglew-dev nlohmann-json3-dev libtinyxml2-dev libspdlog-dev ninja-build
|
||||
libusb-dev libusb-1.0-0-dev libsdl2-dev libsdl2-net-dev libpng-dev libglew-dev nlohmann-json3-dev libtinyxml2-dev libspdlog-dev ninja-build libogg-dev libopus-dev opus-tools libopusfile-dev libvorbis-dev libespeak-ng-dev
|
||||
2
.github/workflows/clang-format.yml
vendored
2
.github/workflows/clang-format.yml
vendored
@@ -8,7 +8,7 @@ jobs:
|
||||
clang-format:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 2
|
||||
- name: Install clang-format
|
||||
|
||||
60
.github/workflows/generate-builds.yml
vendored
60
.github/workflows/generate-builds.yml
vendored
@@ -11,7 +11,7 @@ jobs:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Git Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
- name: Configure ccache
|
||||
@@ -27,7 +27,7 @@ jobs:
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y $(cat .github/workflows/apt-deps.txt) libzip-dev zipcmp zipmerge ziptool
|
||||
- name: Restore Cached deps folder
|
||||
uses: actions/cache/restore@v4
|
||||
uses: actions/cache/restore@v5
|
||||
with:
|
||||
key: ${{ runner.os }}-deps-${{ github.ref }}-${{ github.sha }}
|
||||
restore-keys: |
|
||||
@@ -62,16 +62,16 @@ jobs:
|
||||
cmake ..
|
||||
make
|
||||
sudo make install
|
||||
- name: Generate soh.otr
|
||||
- name: Generate soh.o2r
|
||||
run: |
|
||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
cmake --no-warn-unused-cli -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=Release
|
||||
cmake --build build-cmake --config Release --target GenerateSohOtr -j3
|
||||
- name: Upload soh.otr
|
||||
uses: actions/upload-artifact@v4
|
||||
- name: Upload soh.o2r
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: soh.otr
|
||||
path: soh.otr
|
||||
name: soh.o2r
|
||||
path: soh.o2r
|
||||
retention-days: 3
|
||||
|
||||
build-macos:
|
||||
@@ -79,7 +79,7 @@ jobs:
|
||||
runs-on: macos-14
|
||||
steps:
|
||||
- name: Git Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
- name: Configure ccache
|
||||
@@ -99,7 +99,7 @@ jobs:
|
||||
sudo chmod +x /opt/homebrew/bin/gtar
|
||||
- name: Restore Cached MacPorts
|
||||
id: restore-cache-macports
|
||||
uses: actions/cache/restore@v4
|
||||
uses: actions/cache/restore@v5
|
||||
with:
|
||||
key: ${{ runner.os }}-14-macports-${{ hashFiles('.github/workflows/macports-deps.txt') }}-${{ github.sha }}
|
||||
restore-keys: |
|
||||
@@ -113,8 +113,8 @@ jobs:
|
||||
echo "MacPorts already installed"
|
||||
else
|
||||
echo "Installing MacPorts"
|
||||
wget https://github.com/macports/macports-base/releases/download/v2.9.3/MacPorts-2.9.3-14-Sonoma.pkg
|
||||
sudo installer -pkg ./MacPorts-2.9.3-14-Sonoma.pkg -target /
|
||||
wget https://github.com/macports/macports-base/releases/download/v2.11.5/MacPorts-2.11.5-14-Sonoma.pkg
|
||||
sudo installer -pkg ./MacPorts-2.11.5-14-Sonoma.pkg -target /
|
||||
fi
|
||||
echo "/opt/local/bin:/opt/local/sbin" >> "$GITHUB_PATH"
|
||||
- name: Install dependencies
|
||||
@@ -122,10 +122,10 @@ jobs:
|
||||
brew uninstall --ignore-dependencies libpng
|
||||
sudo port install $(cat .github/workflows/macports-deps.txt)
|
||||
brew install ninja
|
||||
- name: Download soh.otr
|
||||
uses: actions/download-artifact@v4
|
||||
- name: Download soh.o2r
|
||||
uses: actions/download-artifact@v7
|
||||
with:
|
||||
name: soh.otr
|
||||
name: soh.o2r
|
||||
path: build-cmake/soh
|
||||
- name: Build SoH
|
||||
run: |
|
||||
@@ -137,7 +137,7 @@ jobs:
|
||||
mv _packages/*.dmg SoH.dmg
|
||||
mv README.md readme.txt
|
||||
- name: Upload build
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: soh-mac
|
||||
path: |
|
||||
@@ -145,7 +145,7 @@ jobs:
|
||||
readme.txt
|
||||
- name: Save Cache MacPorts
|
||||
if: ${{ github.ref_name == github.event.repository.default_branch }}
|
||||
uses: actions/cache/save@v4
|
||||
uses: actions/cache/save@v5
|
||||
with:
|
||||
key: ${{ steps.restore-cache-macports.outputs.cache-primary-key }}
|
||||
path: /opt/local/
|
||||
@@ -155,7 +155,7 @@ jobs:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Git Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
- name: Install dependencies
|
||||
@@ -172,7 +172,7 @@ jobs:
|
||||
${{ runner.os }}-ccache
|
||||
- name: Restore Cached deps folder
|
||||
id: restore-cache-deps
|
||||
uses: actions/cache/restore@v4
|
||||
uses: actions/cache/restore@v5
|
||||
with:
|
||||
key: ${{ runner.os }}-deps-${{ github.ref }}-${{ github.sha }}
|
||||
restore-keys: |
|
||||
@@ -233,10 +233,10 @@ jobs:
|
||||
make
|
||||
sudo make install
|
||||
sudo cp -av /usr/local/lib/libzip* /lib/x86_64-linux-gnu/
|
||||
- name: Download soh.otr
|
||||
uses: actions/download-artifact@v4
|
||||
- name: Download soh.o2r
|
||||
uses: actions/download-artifact@v7
|
||||
with:
|
||||
name: soh.otr
|
||||
name: soh.o2r
|
||||
path: build-cmake/soh
|
||||
- name: Build SoH
|
||||
run: |
|
||||
@@ -251,7 +251,7 @@ jobs:
|
||||
CC: gcc-12
|
||||
CXX: g++-12
|
||||
- name: Upload build
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: soh-linux
|
||||
path: |
|
||||
@@ -259,7 +259,7 @@ jobs:
|
||||
readme.txt
|
||||
- name: Save Cache deps folder
|
||||
if: ${{ github.ref_name == github.event.repository.default_branch }}
|
||||
uses: actions/cache/save@v4
|
||||
uses: actions/cache/save@v5
|
||||
with:
|
||||
key: ${{ steps.restore-cache-deps.outputs.cache-primary-key }}
|
||||
path: deps
|
||||
@@ -273,7 +273,7 @@ jobs:
|
||||
choco install ninja -y
|
||||
Remove-Item -Path "C:\ProgramData\Chocolatey\bin\ccache.exe" -Force -ErrorAction SilentlyContinue
|
||||
- name: Git Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
- name: Configure sccache
|
||||
@@ -289,7 +289,7 @@ jobs:
|
||||
${{ runner.os }}-ccache
|
||||
- name: Restore Cached VCPKG folder
|
||||
id: restore-cache-vcpkg
|
||||
uses: actions/cache/restore@v4
|
||||
uses: actions/cache/restore@v5
|
||||
with:
|
||||
key: ${{ runner.os }}-vcpkg-${{ github.ref }}-${{ github.sha }}
|
||||
restore-keys: |
|
||||
@@ -298,10 +298,10 @@ jobs:
|
||||
path: vcpkg
|
||||
- name: Configure Developer Command Prompt
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
- name: Download soh.otr
|
||||
uses: actions/download-artifact@v4
|
||||
- name: Download soh.o2r
|
||||
uses: actions/download-artifact@v7
|
||||
with:
|
||||
name: soh.otr
|
||||
name: soh.o2r
|
||||
path: build-windows/soh
|
||||
- name: Build SoH
|
||||
env:
|
||||
@@ -317,13 +317,13 @@ jobs:
|
||||
- name: Unzip package
|
||||
run: Expand-Archive -Path _packages/soh-windows.zip -DestinationPath soh-windows
|
||||
- name: Upload build
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: soh-windows
|
||||
path: soh-windows
|
||||
- name: Save Cache VCPKG folder
|
||||
if: ${{ github.ref_name == github.event.repository.default_branch }}
|
||||
uses: actions/cache/save@v4
|
||||
uses: actions/cache/save@v5
|
||||
with:
|
||||
key: ${{ steps.restore-cache-vcpkg.outputs.cache-primary-key }}
|
||||
path: vcpkg
|
||||
|
||||
2
.github/workflows/macports-deps.txt
vendored
2
.github/workflows/macports-deps.txt
vendored
@@ -1 +1 @@
|
||||
libsdl2 +universal libsdl2_net +universal libpng +universal glew +universal libzip +universal nlohmann-json +universal tinyxml2 +universal
|
||||
libsdl2 +universal libsdl2_net +universal libpng +universal glew +universal libzip +universal nlohmann-json +universal tinyxml2 +universal libogg +universal libopus +universal opusfile +universal libvorbis +universal
|
||||
6
.github/workflows/pr-artifacts.yml
vendored
6
.github/workflows/pr-artifacts.yml
vendored
@@ -12,7 +12,7 @@ jobs:
|
||||
if: ${{ github.event.workflow_run.event == 'pull_request' }}
|
||||
steps:
|
||||
- id: 'pr-number'
|
||||
uses: actions/github-script@v7
|
||||
uses: actions/github-script@v8
|
||||
with:
|
||||
result-encoding: string
|
||||
script: |
|
||||
@@ -37,7 +37,7 @@ jobs:
|
||||
|
||||
return prNumber;
|
||||
- id: 'artifacts-text'
|
||||
uses: actions/github-script@v7
|
||||
uses: actions/github-script@v8
|
||||
with:
|
||||
result-encoding: string
|
||||
script: |
|
||||
@@ -48,7 +48,7 @@ jobs:
|
||||
});
|
||||
|
||||
return allArtifacts.data.artifacts.reduce((acc, item) => {
|
||||
if (item.name === "soh.otr") return acc;
|
||||
if (item.name === "soh.o2r") return acc;
|
||||
acc += `
|
||||
- [${item.name}.zip](https://nightly.link/${context.repo.owner}/${context.repo.repo}/actions/artifacts/${item.id}.zip)`;
|
||||
return acc;
|
||||
|
||||
14
.github/workflows/test-builds-on-distros.yml
vendored
14
.github/workflows/test-builds-on-distros.yml
vendored
@@ -23,24 +23,24 @@ jobs:
|
||||
if: ${{ matrix.image == 'archlinux:base' }}
|
||||
run: |
|
||||
echo arch
|
||||
echo pacman -S ${{ matrix.cc }} git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net boost
|
||||
echo pacman -S ${{ matrix.cc }} git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net
|
||||
pacman -Syu --noconfirm
|
||||
pacman -S --noconfirm ${{ matrix.cc }} git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net boost
|
||||
pacman -S --noconfirm ${{ matrix.cc }} git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net
|
||||
- name: Install dependencies (dnf)
|
||||
if: ${{ matrix.image == 'fedora:39' }}
|
||||
run: |
|
||||
echo fedora
|
||||
echo dnf install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'gcc-c++') || '' }} wget git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools tinyxml2-devel spdlog-devel boost-devel
|
||||
echo dnf install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'gcc-c++') || '' }} wget git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools tinyxml2-devel spdlog-devel
|
||||
dnf -y upgrade
|
||||
dnf -y install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'gcc-c++') || '' }} wget git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools tinyxml2-devel spdlog-devel boost-devel
|
||||
dnf -y install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'gcc-c++') || '' }} wget git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools tinyxml2-devel spdlog-devel
|
||||
- name: Install dependencies (apt)
|
||||
if: ${{ matrix.image == 'ubuntu:mantic' || matrix.image == 'debian:bookworm' }}
|
||||
run: |
|
||||
echo debian based
|
||||
echo apt-get install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'g++') || '' }} git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libboost-dev libopengl-dev
|
||||
echo apt-get install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'g++') || '' }} git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libopengl-dev
|
||||
apt-get update
|
||||
apt-get -y full-upgrade
|
||||
apt-get -y install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'g++') || '' }} git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libboost-dev libopengl-dev
|
||||
apt-get -y install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'g++') || '' }} git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libopengl-dev
|
||||
- name: Install dependencies (zypper)
|
||||
if: ${{ matrix.image == 'opensuse/tumbleweed:latest' }}
|
||||
run: |
|
||||
@@ -59,7 +59,7 @@ jobs:
|
||||
cmake ..
|
||||
make
|
||||
sudo make install
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
- name: Build SoH
|
||||
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -2,6 +2,7 @@
|
||||
__pycache__/
|
||||
.pyc
|
||||
.DS_Store
|
||||
.cache/*
|
||||
|
||||
# Text editor remnants
|
||||
.vscode/*
|
||||
@@ -412,10 +413,12 @@ ReleaseObj/*
|
||||
.tags
|
||||
tags
|
||||
*.otr
|
||||
*.o2r
|
||||
*.sav
|
||||
shipofharkinian.ini
|
||||
shipofharkinian.json
|
||||
imgui.ini
|
||||
timesplitdata.json
|
||||
|
||||
# Switch Stuff
|
||||
|
||||
@@ -456,3 +459,4 @@ soh/properties.h
|
||||
# Tools
|
||||
/clang-format
|
||||
/clang-format.exe
|
||||
*.o2r
|
||||
|
||||
45
.vscode/tasks.json
vendored
45
.vscode/tasks.json
vendored
@@ -9,14 +9,24 @@
|
||||
"-S",
|
||||
".",
|
||||
"-B",
|
||||
"build/x64",
|
||||
"build-cmake",
|
||||
"-G",
|
||||
"Visual Studio 17 2022",
|
||||
"-T",
|
||||
"v143",
|
||||
"-A",
|
||||
"x64"
|
||||
"Ninja"
|
||||
],
|
||||
"windows": {
|
||||
"args": [
|
||||
"-S",
|
||||
".",
|
||||
"-B",
|
||||
"build/x64",
|
||||
"-G",
|
||||
"Visual Studio 17 2022",
|
||||
"-T",
|
||||
"v143",
|
||||
"-A",
|
||||
"x64"
|
||||
]
|
||||
},
|
||||
"group": "build",
|
||||
"problemMatcher": []
|
||||
},
|
||||
@@ -26,10 +36,19 @@
|
||||
"command": "cmake",
|
||||
"args": [
|
||||
"--build",
|
||||
"./build/x64",
|
||||
"build-cmake",
|
||||
"--target",
|
||||
"GenerateSohOtr"
|
||||
"GenerateSohOtr",
|
||||
"--parallel"
|
||||
],
|
||||
"windows": {
|
||||
"args": [
|
||||
"--build",
|
||||
"./build/x64",
|
||||
"--target",
|
||||
"GenerateSohOtr"
|
||||
]
|
||||
},
|
||||
"group": "build",
|
||||
"problemMatcher": []
|
||||
},
|
||||
@@ -39,8 +58,14 @@
|
||||
"command": "cmake",
|
||||
"args": [
|
||||
"--build",
|
||||
"./build/x64"
|
||||
"build-cmake"
|
||||
],
|
||||
"windows": {
|
||||
"args": [
|
||||
"--build",
|
||||
"./build/x64"
|
||||
]
|
||||
},
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
@@ -58,4 +83,4 @@
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
61
CMake/FindOgg.cmake
Normal file
61
CMake/FindOgg.cmake
Normal file
@@ -0,0 +1,61 @@
|
||||
# - Find ogg
|
||||
# Find the native ogg includes and libraries
|
||||
#
|
||||
# OGG_INCLUDE_DIRS - where to find ogg.h, etc.
|
||||
# OGG_LIBRARIES - List of libraries when using ogg.
|
||||
# OGG_FOUND - True if ogg found.
|
||||
|
||||
if (OGG_INCLUDE_DIR)
|
||||
# Already in cache, be silent
|
||||
set(OGG_FIND_QUIETLY TRUE)
|
||||
endif ()
|
||||
|
||||
find_package (PkgConfig QUIET)
|
||||
pkg_check_modules (PC_OGG QUIET ogg>=1.3.0)
|
||||
|
||||
set (OGG_VERSION ${PC_OGG_VERSION})
|
||||
|
||||
find_path (OGG_INCLUDE_DIR ogg/ogg.h
|
||||
HINTS
|
||||
${PC_OGG_INCLUDEDIR}
|
||||
${PC_OGG_INCLUDE_DIRS}
|
||||
${OGG_ROOT}
|
||||
)
|
||||
# MSVC built ogg may be named ogg_static.
|
||||
# The provided project files name the library with the lib prefix.
|
||||
find_library (OGG_LIBRARY
|
||||
NAMES
|
||||
ogg
|
||||
ogg_static
|
||||
libogg
|
||||
libogg_static
|
||||
HINTS
|
||||
${PC_OGG_LIBDIR}
|
||||
${PC_OGG_LIBRARY_DIRS}
|
||||
${OGG_ROOT}
|
||||
)
|
||||
# Handle the QUIETLY and REQUIRED arguments and set OGG_FOUND
|
||||
# to TRUE if all listed variables are TRUE.
|
||||
include (FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args (Ogg
|
||||
REQUIRED_VARS
|
||||
OGG_LIBRARY
|
||||
OGG_INCLUDE_DIR
|
||||
VERSION_VAR
|
||||
OGG_VERSION
|
||||
)
|
||||
|
||||
if (OGG_FOUND)
|
||||
set (OGG_LIBRARIES ${OGG_LIBRARY})
|
||||
set (OGG_INCLUDE_DIRS ${OGG_INCLUDE_DIR})
|
||||
|
||||
if(NOT TARGET Ogg::ogg)
|
||||
add_library(Ogg::ogg UNKNOWN IMPORTED)
|
||||
set_target_properties(Ogg::ogg PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${OGG_INCLUDE_DIRS}"
|
||||
IMPORTED_LOCATION "${OGG_LIBRARIES}"
|
||||
)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
mark_as_advanced (OGG_INCLUDE_DIR OGG_LIBRARY)
|
||||
44
CMake/FindOpus.cmake
Normal file
44
CMake/FindOpus.cmake
Normal file
@@ -0,0 +1,44 @@
|
||||
# - FindOpus.cmake
|
||||
# Find the native opus includes and libraries
|
||||
#
|
||||
# OPUS_INCLUDE_DIRS - where to find opus/opus.h, etc.
|
||||
# OPUS_LIBRARIES - List of libraries when using libopus(file).
|
||||
# OPUS_FOUND - True if libopus found.
|
||||
|
||||
if(OPUS_INCLUDE_DIR AND OPUS_LIBRARY AND OPUSFILE_LIBRARY)
|
||||
# Already in cache, be silent
|
||||
set(OPUS_FIND_QUIETLY TRUE)
|
||||
endif(OPUS_INCLUDE_DIR AND OPUS_LIBRARY AND OPUSFILE_LIBRARY)
|
||||
|
||||
find_path(OPUS_INCLUDE_DIR
|
||||
NAMES opusfile.h
|
||||
PATH_SUFFIXES opus
|
||||
)
|
||||
|
||||
# MSVC built opus may be named opus_static
|
||||
# The provided project files name the library with the lib prefix.
|
||||
find_library(OPUS_LIBRARY
|
||||
NAMES opus opus_static libopus libopus_static
|
||||
)
|
||||
#find_library(OPUSFILE_LIBRARY
|
||||
# NAMES opusfile opusfile_static libopusfile libopusfile_static
|
||||
#)
|
||||
|
||||
# Handle the QUIETLY and REQUIRED arguments and set OPUS_FOUND
|
||||
# to TRUE if all listed variables are TRUE.
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Opus DEFAULT_MSG
|
||||
OPUS_LIBRARY OPUS_INCLUDE_DIR
|
||||
)
|
||||
|
||||
if(OPUS_FOUND)
|
||||
set(OPUS_LIBRARIES ${OPUS_LIBRARY})
|
||||
set(OPUS_INCLUDE_DIRS ${OPUS_INCLUDE_DIR})
|
||||
if(NOT TARGET Opus::opus)
|
||||
add_library(Opus::opus UNKNOWN IMPORTED)
|
||||
set_target_properties(Opus::opus PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${OPUS_INCLUDE_DIRS}"
|
||||
IMPORTED_LOCATION "${OPUS_LIBRARIES}"
|
||||
)
|
||||
endif()
|
||||
endif(OPUS_FOUND)
|
||||
63
CMake/FindOpusFile.cmake
Normal file
63
CMake/FindOpusFile.cmake
Normal file
@@ -0,0 +1,63 @@
|
||||
# FindOpusFile.cmake
|
||||
# Locate the libopusfile library and its dependencies (libopus and libogg).
|
||||
# Defines the following variables on success:
|
||||
# OPUSFILE_FOUND - Indicates if opusfile was found
|
||||
# OPUSFILE_INCLUDE_DIR - Directory containing opusfile.h
|
||||
# OPUSFILE_LIBRARY - Path to the opusfile library
|
||||
# OPUSFILE_LIBRARIES - Full list of libraries to link (opusfile, opus, ogg)
|
||||
|
||||
# Use pkg-config to find opusfile if available
|
||||
find_package(PkgConf)
|
||||
if(PKG_CONFIG_FOUND)
|
||||
pkg_check_modules(PC_OPUSFILE QUIET opusfile)
|
||||
endif()
|
||||
|
||||
# Search for the OpusFile header
|
||||
find_path(OPUSFILE_INCLUDE_DIR
|
||||
NAMES opusfile.h
|
||||
HINTS ${PC_OPUSFILE_INCLUDE_DIRS}
|
||||
PATHS /usr/include/opus /usr/local/include/opus /opt/local/include/opus /opt/homebrew/include/opus
|
||||
DOC "Directory where opusfile.h is located"
|
||||
)
|
||||
|
||||
# Search for the OpusFile library
|
||||
find_library(OPUSFILE_LIBRARY
|
||||
NAMES opusfile
|
||||
HINTS ${PC_OPUSFILE_LIBRARY_DIRS}
|
||||
DOC "Path to the libopusfile library"
|
||||
)
|
||||
|
||||
# Search for the Opus library (dependency of OpusFile)
|
||||
find_library(OPUS_LIBRARY
|
||||
NAMES opus
|
||||
DOC "Path to the libopus library (dependency of libopusfile)"
|
||||
)
|
||||
|
||||
# Search for the Ogg library (dependency of OpusFile)
|
||||
find_library(OGG_LIBRARY
|
||||
NAMES ogg
|
||||
DOC "Path to the libogg library (dependency of libopusfile)"
|
||||
)
|
||||
|
||||
# Check if all required components are found
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(OpusFile
|
||||
REQUIRED_VARS OPUSFILE_LIBRARY OPUSFILE_INCLUDE_DIR OPUS_LIBRARY OGG_LIBRARY
|
||||
VERSION_VAR OPUSFILE_VERSION
|
||||
)
|
||||
|
||||
# Define an imported target if everything is found
|
||||
if (OPUSFILE_FOUND)
|
||||
add_library(Opusfile::Opusfile INTERFACE IMPORTED)
|
||||
|
||||
set_target_properties(Opusfile::Opusfile PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${OPUSFILE_INCLUDE_DIR}"
|
||||
INTERFACE_LINK_LIBRARIES "${OPUSFILE_LIBRARY};${OPUS_LIBRARY};${OGG_LIBRARY}"
|
||||
)
|
||||
|
||||
# Optionally expose the include and libraries separately
|
||||
set(OPUSFILE_LIBRARIES ${OPUSFILE_LIBRARY} ${OPUS_LIBRARY} ${OGG_LIBRARY})
|
||||
set(OPUSFILE_INCLUDE_DIRS ${OPUSFILE_INCLUDE_DIR})
|
||||
else()
|
||||
set(OPUSFILE_FOUND FALSE)
|
||||
endif()
|
||||
210
CMake/FindVorbis.cmake
Normal file
210
CMake/FindVorbis.cmake
Normal file
@@ -0,0 +1,210 @@
|
||||
#[=======================================================================[.rst:
|
||||
FindVorbis
|
||||
----------
|
||||
|
||||
Finds the native vorbis, vorbisenc amd vorbisfile includes and libraries.
|
||||
|
||||
Imported Targets
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This module provides the following imported targets, if found:
|
||||
|
||||
``Vorbis::vorbis``
|
||||
The Vorbis library
|
||||
``Vorbis::vorbisenc``
|
||||
The VorbisEnc library
|
||||
``Vorbis::vorbisfile``
|
||||
The VorbisFile library
|
||||
|
||||
Result Variables
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This will define the following variables:
|
||||
|
||||
``Vorbis_Vorbis_INCLUDE_DIRS``
|
||||
List of include directories when using vorbis.
|
||||
``Vorbis_Enc_INCLUDE_DIRS``
|
||||
List of include directories when using vorbisenc.
|
||||
``Vorbis_File_INCLUDE_DIRS``
|
||||
List of include directories when using vorbisfile.
|
||||
``Vorbis_Vorbis_LIBRARIES``
|
||||
List of libraries when using vorbis.
|
||||
``Vorbis_Enc_LIBRARIES``
|
||||
List of libraries when using vorbisenc.
|
||||
``Vorbis_File_LIBRARIES``
|
||||
List of libraries when using vorbisfile.
|
||||
``Vorbis_FOUND``
|
||||
True if vorbis and requested components found.
|
||||
``Vorbis_Vorbis_FOUND``
|
||||
True if vorbis found.
|
||||
``Vorbis_Enc_FOUND``
|
||||
True if vorbisenc found.
|
||||
``Vorbis_Enc_FOUND``
|
||||
True if vorbisfile found.
|
||||
|
||||
Cache variables
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
The following cache variables may also be set:
|
||||
|
||||
``Vorbis_Vorbis_INCLUDE_DIR``
|
||||
The directory containing ``vorbis/vorbis.h``.
|
||||
``Vorbis_Enc_INCLUDE_DIR``
|
||||
The directory containing ``vorbis/vorbisenc.h``.
|
||||
``Vorbis_File_INCLUDE_DIR``
|
||||
The directory containing ``vorbis/vorbisenc.h``.
|
||||
``Vorbis_Vorbis_LIBRARY``
|
||||
The path to the vorbis library.
|
||||
``Vorbis_Enc_LIBRARY``
|
||||
The path to the vorbisenc library.
|
||||
``Vorbis_File_LIBRARY``
|
||||
The path to the vorbisfile library.
|
||||
|
||||
Hints
|
||||
^^^^^
|
||||
|
||||
A user may set ``Vorbis_ROOT`` to a vorbis installation root to tell this module where to look.
|
||||
|
||||
#]=======================================================================]
|
||||
|
||||
if (Vorbis_Vorbis_INCLUDE_DIR)
|
||||
# Already in cache, be silent
|
||||
set (Vorbis_FIND_QUIETLY TRUE)
|
||||
endif ()
|
||||
|
||||
set (Vorbis_Vorbis_FIND_QUIETLY TRUE)
|
||||
set (Vorbis_Enc_FIND_QUIETLY TRUE)
|
||||
set (Vorbis_File_FIND_QUIETLY TRUE)
|
||||
|
||||
find_package (Ogg QUIET)
|
||||
|
||||
find_package (PkgConfig QUIET)
|
||||
pkg_check_modules (PC_Vorbis_Vorbis QUIET vorbis)
|
||||
pkg_check_modules (PC_Vorbis_Enc QUIET vorbisenc)
|
||||
pkg_check_modules (PC_Vorbis_File QUIET vorbisfile)
|
||||
|
||||
set (Vorbis_VERSION ${PC_Vorbis_Vorbis_VERSION})
|
||||
|
||||
find_path (Vorbis_Vorbis_INCLUDE_DIR vorbis/codec.h
|
||||
HINTS
|
||||
${PC_Vorbis_Vorbis_INCLUDEDIR}
|
||||
${PC_Vorbis_Vorbis_INCLUDE_DIRS}
|
||||
${Vorbis_ROOT}
|
||||
)
|
||||
|
||||
find_path (Vorbis_Enc_INCLUDE_DIR vorbis/vorbisenc.h
|
||||
HINTS
|
||||
${PC_Vorbis_Enc_INCLUDEDIR}
|
||||
${PC_Vorbis_Enc_INCLUDE_DIRS}
|
||||
${Vorbis_ROOT}
|
||||
)
|
||||
|
||||
find_path (Vorbis_File_INCLUDE_DIR vorbis/vorbisfile.h
|
||||
HINTS
|
||||
${PC_Vorbis_File_INCLUDEDIR}
|
||||
${PC_Vorbis_File_INCLUDE_DIRS}
|
||||
${Vorbis_ROOT}
|
||||
)
|
||||
|
||||
find_library (Vorbis_Vorbis_LIBRARY
|
||||
NAMES
|
||||
vorbis
|
||||
vorbis_static
|
||||
libvorbis
|
||||
libvorbis_static
|
||||
HINTS
|
||||
${PC_Vorbis_Vorbis_LIBDIR}
|
||||
${PC_Vorbis_Vorbis_LIBRARY_DIRS}
|
||||
${Vorbis_ROOT}
|
||||
)
|
||||
|
||||
find_library (Vorbis_Enc_LIBRARY
|
||||
NAMES
|
||||
vorbisenc
|
||||
vorbisenc_static
|
||||
libvorbisenc
|
||||
libvorbisenc_static
|
||||
HINTS
|
||||
${PC_Vorbis_Enc_LIBDIR}
|
||||
${PC_Vorbis_Enc_LIBRARY_DIRS}
|
||||
${Vorbis_ROOT}
|
||||
)
|
||||
|
||||
find_library (Vorbis_File_LIBRARY
|
||||
NAMES
|
||||
vorbisfile
|
||||
vorbisfile_static
|
||||
libvorbisfile
|
||||
libvorbisfile_static
|
||||
HINTS
|
||||
${PC_Vorbis_File_LIBDIR}
|
||||
${PC_Vorbis_File_LIBRARY_DIRS}
|
||||
${Vorbis_ROOT}
|
||||
)
|
||||
|
||||
include (FindPackageHandleStandardArgs)
|
||||
|
||||
if (Vorbis_Vorbis_LIBRARY AND Vorbis_Vorbis_INCLUDE_DIR AND Ogg_FOUND)
|
||||
set (Vorbis_Vorbis_FOUND TRUE)
|
||||
endif ()
|
||||
|
||||
if (Vorbis_Enc_LIBRARY AND Vorbis_Enc_INCLUDE_DIR AND Vorbis_Vorbis_FOUND)
|
||||
set (Vorbis_Enc_FOUND TRUE)
|
||||
endif ()
|
||||
|
||||
if (Vorbis_Vorbis_FOUND AND Vorbis_File_LIBRARY AND Vorbis_File_INCLUDE_DIR)
|
||||
set (Vorbis_File_FOUND TRUE)
|
||||
endif ()
|
||||
|
||||
find_package_handle_standard_args (Vorbis
|
||||
REQUIRED_VARS
|
||||
Vorbis_Vorbis_LIBRARY
|
||||
Vorbis_Vorbis_INCLUDE_DIR
|
||||
Ogg_FOUND
|
||||
HANDLE_COMPONENTS
|
||||
VERSION_VAR Vorbis_VERSION)
|
||||
|
||||
|
||||
if (Vorbis_Vorbis_FOUND)
|
||||
set (Vorbis_Vorbis_INCLUDE_DIRS ${VORBIS_INCLUDE_DIR})
|
||||
set (Vorbis_Vorbis_LIBRARIES ${VORBIS_LIBRARY} ${OGG_LIBRARIES})
|
||||
if (NOT TARGET Vorbis::vorbis)
|
||||
add_library (Vorbis::vorbis UNKNOWN IMPORTED)
|
||||
set_target_properties (Vorbis::vorbis PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${Vorbis_Vorbis_INCLUDE_DIR}"
|
||||
IMPORTED_LOCATION "${Vorbis_Vorbis_LIBRARY}"
|
||||
INTERFACE_LINK_LIBRARIES Ogg::ogg
|
||||
)
|
||||
endif ()
|
||||
|
||||
if (Vorbis_Enc_FOUND)
|
||||
set (Vorbis_Enc_INCLUDE_DIRS ${Vorbis_Enc_INCLUDE_DIR})
|
||||
set (Vorbis_Enc_LIBRARIES ${Vorbis_Enc_LIBRARY} ${Vorbis_Enc_LIBRARIES})
|
||||
if (NOT TARGET Vorbis::vorbisenc)
|
||||
add_library (Vorbis::vorbisenc UNKNOWN IMPORTED)
|
||||
set_target_properties (Vorbis::vorbisenc PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${Vorbis_Enc_INCLUDE_DIR}"
|
||||
IMPORTED_LOCATION "${Vorbis_Enc_LIBRARY}"
|
||||
INTERFACE_LINK_LIBRARIES Vorbis::vorbis
|
||||
)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
if (Vorbis_File_FOUND)
|
||||
set (Vorbis_File_INCLUDE_DIRS ${Vorbis_File_INCLUDE_DIR})
|
||||
set (Vorbis_File_LIBRARIES ${Vorbis_File_LIBRARY} ${Vorbis_File_LIBRARIES})
|
||||
if (NOT TARGET Vorbis::vorbisfile)
|
||||
add_library (Vorbis::vorbisfile UNKNOWN IMPORTED)
|
||||
set_target_properties (Vorbis::vorbisfile PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${Vorbis_File_INCLUDE_DIR}"
|
||||
IMPORTED_LOCATION "${Vorbis_File_LIBRARY}"
|
||||
INTERFACE_LINK_LIBRARIES Vorbis::vorbis
|
||||
)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
endif ()
|
||||
|
||||
mark_as_advanced (Vorbis_Vorbis_INCLUDE_DIR Vorbis_Vorbis_LIBRARY)
|
||||
mark_as_advanced (Vorbis_Enc_INCLUDE_DIR Vorbis_Enc_LIBRARY)
|
||||
mark_as_advanced (Vorbis_File_INCLUDE_DIR Vorbis_File_LIBRARY)
|
||||
@@ -1,7 +1,5 @@
|
||||
set(CVAR_VSYNC_ENABLED "${CVAR_PREFIX_SETTING}.VsyncEnabled" CACHE STRING "")
|
||||
set(CVAR_Z_FIGHTING_MODE "${CVAR_PREFIX_SETTING}.ZFightingMode" CACHE STRING "")
|
||||
set(CVAR_NEW_FILE_DROPPED "${CVAR_PREFIX_GENERAL}.NewFileDropped" CACHE STRING "")
|
||||
set(CVAR_DROPPED_FILE "${CVAR_PREFIX_GENERAL}.DroppedFile" CACHE STRING "")
|
||||
set(CVAR_INTERNAL_RESOLUTION "${CVAR_PREFIX_SETTING}.InternalResolution" CACHE STRING "")
|
||||
set(CVAR_MSAA_VALUE "${CVAR_PREFIX_SETTING}.MSAAValue" CACHE STRING "")
|
||||
set(CVAR_SDL_WINDOWED_FULLSCREEN "${CVAR_PREFIX_SETTING}.SdlWindowedFullscreen" CACHE STRING "")
|
||||
|
||||
@@ -2,13 +2,16 @@ cmake_minimum_required(VERSION 3.26.0 FATAL_ERROR)
|
||||
|
||||
set(CMAKE_SYSTEM_VERSION 10.0 CACHE STRING "" FORCE)
|
||||
set(CMAKE_CXX_STANDARD 20 CACHE STRING "The C++ standard to use")
|
||||
set(CMAKE_C_STANDARD 17 CACHE STRING "The C standard to use")
|
||||
set(CMAKE_C_STANDARD 23 CACHE STRING "The C standard to use")
|
||||
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version")
|
||||
|
||||
project(Ship VERSION 9.0.5 LANGUAGES C CXX)
|
||||
project(Ship VERSION 9.2.1 LANGUAGES C CXX)
|
||||
include(CMake/soh-cvars.cmake)
|
||||
include(CMake/lus-cvars.cmake)
|
||||
set(SPDLOG_LEVEL_TRACE 0)
|
||||
set(SPDLOG_LEVEL_OFF 6)
|
||||
set(SPDLOG_MIN_CUTOFF SPDLOG_LEVEL_TRACE CACHE STRING "cutoff at trace")
|
||||
|
||||
option(SUPPRESS_WARNINGS "Suppress warnings in LUS and src (decomp)" ON)
|
||||
if(SUPPRESS_WARNINGS)
|
||||
@@ -35,7 +38,7 @@ math(EXPR PATCH_INDEX "${PROJECT_VERSION_PATCH}")
|
||||
# Use the patch number to select the correct word
|
||||
list(GET NATO_PHONETIC_ALPHABET ${PATCH_INDEX} PROJECT_PATCH_WORD)
|
||||
|
||||
set(PROJECT_BUILD_NAME "Blair ${PROJECT_PATCH_WORD}" CACHE STRING "" FORCE)
|
||||
set(PROJECT_BUILD_NAME "Ackbar ${PROJECT_PATCH_WORD}" CACHE STRING "" FORCE)
|
||||
set(PROJECT_TEAM "github.com/harbourmasters" CACHE STRING "" FORCE)
|
||||
|
||||
execute_process(
|
||||
@@ -75,6 +78,7 @@ set(CMAKE_PROJECT_GIT_COMMIT_TAG "${GIT_COMMIT_TAG}" CACHE STRING "Git commit ta
|
||||
set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT soh)
|
||||
add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/MP>)
|
||||
add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/utf-8>)
|
||||
add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/Zc:preprocessor>)
|
||||
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
include(CMake/automate-vcpkg.cmake)
|
||||
@@ -83,8 +87,7 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
set(VCPKG_TARGET_TRIPLET x64-windows-static)
|
||||
|
||||
vcpkg_bootstrap()
|
||||
vcpkg_install_packages(zlib bzip2 libzip libpng sdl2 sdl2-net glew glfw3 nlohmann-json tinyxml2 spdlog)
|
||||
|
||||
vcpkg_install_packages(zlib bzip2 libzip libpng sdl2 sdl2-net glew glfw3 nlohmann-json tinyxml2 spdlog libogg libvorbis opus opusfile)
|
||||
if (CMAKE_C_COMPILER_LAUNCHER MATCHES "ccache|sccache")
|
||||
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT Embedded)
|
||||
endif()
|
||||
@@ -154,6 +157,10 @@ set(GFX_DEBUG_DISASSEMBLER ON)
|
||||
|
||||
# Tell LUS we're using F3DEX_GBI_2 (in a way that doesn't break libgfxd)
|
||||
set(GBI_UCODE F3DEX_GBI_2)
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake")
|
||||
|
||||
# Enable MPQ and OTR support
|
||||
set(INCLUDE_MPQ_SUPPORT ON)
|
||||
|
||||
################################################################################
|
||||
# Set CONTROLLERBUTTONS_T
|
||||
@@ -165,6 +172,7 @@ add_compile_definitions(CONTROLLERBUTTONS_T=uint32_t)
|
||||
################################################################################
|
||||
add_subdirectory(libultraship ${CMAKE_BINARY_DIR}/libultraship)
|
||||
target_compile_options(libultraship PRIVATE "${WARNING_OVERRIDE}")
|
||||
target_compile_definitions(libultraship PUBLIC INCLUDE_MPQ_SUPPORT)
|
||||
add_subdirectory(ZAPDTR/ZAPD ${CMAKE_BINARY_DIR}/ZAPD)
|
||||
add_subdirectory(OTRExporter)
|
||||
add_subdirectory(soh)
|
||||
@@ -174,24 +182,15 @@ set_property(TARGET soh PROPERTY APPIMAGE_DESKTOP_FILE "${CMAKE_SOURCE_DIR}/scri
|
||||
set_property(TARGET soh PROPERTY APPIMAGE_ICON_FILE "${CMAKE_BINARY_DIR}/sohIcon.png")
|
||||
|
||||
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
|
||||
install(PROGRAMS "${CMAKE_BINARY_DIR}/linux/soh.sh" DESTINATION . COMPONENT appimage)
|
||||
install(FILES "${CMAKE_BINARY_DIR}/soh/soh.otr" DESTINATION . COMPONENT ship)
|
||||
install(FILES "${CMAKE_BINARY_DIR}/soh/soh.o2r" DESTINATION . COMPONENT ship)
|
||||
install(TARGETS ZAPD DESTINATION ./assets/extractor COMPONENT extractor)
|
||||
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/extractor/" DESTINATION ./assets/extractor COMPONENT extractor)
|
||||
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/xml/" DESTINATION ./assets/extractor/xmls COMPONENT extractor)
|
||||
install(DIRECTORY "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/filelists/" DESTINATION ./assets/extractor/filelists COMPONENT extractor)
|
||||
install(FILES "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ActorList_OoTMqDbg.txt" DESTINATION ./assets/extractor/symbols COMPONENT extractor)
|
||||
install(FILES "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ObjectList_OoTMqDbg.txt" DESTINATION ./assets/extractor/symbols COMPONENT extractor)
|
||||
install(FILES "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/SymbolMap_OoTMqDbg.txt" DESTINATION ./assets/extractor/symbols COMPONENT extractor)
|
||||
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/extractor/" DESTINATION ./assets COMPONENT extractor)
|
||||
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/xml/" DESTINATION ./assets/xml COMPONENT extractor)
|
||||
endif()
|
||||
|
||||
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
|
||||
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/extractor/" DESTINATION ./assets/extractor COMPONENT ship)
|
||||
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/xml/" DESTINATION ./assets/extractor/xmls COMPONENT ship)
|
||||
install(DIRECTORY "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/filelists/" DESTINATION ./assets/extractor/filelists COMPONENT ship)
|
||||
install(FILES "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ActorList_OoTMqDbg.txt" DESTINATION ./assets/extractor/symbols COMPONENT ship)
|
||||
install(FILES "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ObjectList_OoTMqDbg.txt" DESTINATION ./assets/extractor/symbols COMPONENT ship)
|
||||
install(FILES "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/SymbolMap_OoTMqDbg.txt" DESTINATION ./assets/extractor/symbols COMPONENT ship)
|
||||
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/extractor/" DESTINATION ./assets/ COMPONENT ship)
|
||||
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/xml/" DESTINATION ./assets/xml COMPONENT ship)
|
||||
endif()
|
||||
|
||||
find_package(Python3 COMPONENTS Interpreter)
|
||||
@@ -199,42 +198,42 @@ find_package(Python3 COMPONENTS Interpreter)
|
||||
# Target to generate OTRs
|
||||
add_custom_target(
|
||||
ExtractAssets
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -f oot.otr oot-mq.otr soh.otr
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -f oot.o2r oot-mq.o2r soh.o2r
|
||||
|
||||
# copy LUS default shaders into assets/custom
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -r -f ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom/shaders/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/graphic/Fast3D/shaders/ ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom/shaders/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/fast/shaders/ ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom/shaders/
|
||||
|
||||
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter/extract_assets.py -z "$<TARGET_FILE:ZAPD>" --non-interactive --xml-root ../soh/assets/xml --custom-otr-file soh.otr "--custom-assets-path" ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom --port-ver "${CMAKE_PROJECT_VERSION}"
|
||||
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter/extract_assets.py -z "$<TARGET_FILE:ZAPD>" --non-interactive --xml-root assets/xml --custom-otr-file soh.o2r "--custom-assets-path" ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom --port-ver "${CMAKE_PROJECT_VERSION}"
|
||||
COMMAND ${CMAKE_COMMAND} -DSYSTEM_NAME=${CMAKE_SYSTEM_NAME} -DTARGET_DIR="$<TARGET_FILE_DIR:ZAPD>" -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} -DBINARY_DIR=${CMAKE_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/copy-existing-otrs.cmake
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/soh
|
||||
COMMENT "Running asset extraction..."
|
||||
DEPENDS ZAPD
|
||||
BYPRODUCTS oot.otr ${CMAKE_SOURCE_DIR}/oot.otr oot-mq.otr ${CMAKE_SOURCE_DIR}/oot-mq.otr ${CMAKE_SOURCE_DIR}/soh.otr
|
||||
BYPRODUCTS oot.o2r ${CMAKE_SOURCE_DIR}/oot.o2r oot-mq.o2r ${CMAKE_SOURCE_DIR}/oot-mq.o2r ${CMAKE_SOURCE_DIR}/soh.o2r
|
||||
)
|
||||
|
||||
# Target to generate headers
|
||||
add_custom_target(
|
||||
ExtractAssetHeaders
|
||||
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter/extract_assets.py -z "$<TARGET_FILE:ZAPD>" --non-interactive --xml-root ../soh/assets/xml --gen-headers
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter
|
||||
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter/extract_assets.py -z "$<TARGET_FILE:ZAPD>" --non-interactive --xml-root assets/xml --gen-headers
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/soh
|
||||
COMMENT "Generating asset headers..."
|
||||
DEPENDS ZAPD
|
||||
)
|
||||
|
||||
# Target to generate only soh.otr
|
||||
# Target to generate only soh.o2r
|
||||
add_custom_target(
|
||||
GenerateSohOtr
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -f soh.otr
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -f soh.o2r
|
||||
|
||||
# copy LUS default shaders into assets/custom
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -r -f ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom/shaders/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/graphic/Fast3D/shaders/ ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom/shaders/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/libultraship/src/fast/shaders/ ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom/shaders/
|
||||
|
||||
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter/extract_assets.py -z "$<TARGET_FILE:ZAPD>" --norom --custom-otr-file soh.otr "--custom-assets-path" ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom --port-ver "${CMAKE_PROJECT_VERSION}"
|
||||
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter/extract_assets.py -z "$<TARGET_FILE:ZAPD>" --norom --custom-otr-file soh.o2r "--custom-assets-path" ${CMAKE_CURRENT_SOURCE_DIR}/soh/assets/custom --port-ver "${CMAKE_PROJECT_VERSION}"
|
||||
COMMAND ${CMAKE_COMMAND} -DSYSTEM_NAME=${CMAKE_SYSTEM_NAME} -DTARGET_DIR="$<TARGET_FILE_DIR:ZAPD>" -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} -DBINARY_DIR=${CMAKE_BINARY_DIR} -DONLYSOHOTR=On -P ${CMAKE_CURRENT_SOURCE_DIR}/copy-existing-otrs.cmake
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter
|
||||
COMMENT "Generating soh.otr..."
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/soh
|
||||
COMMENT "Generating soh.o2r..."
|
||||
DEPENDS ZAPD
|
||||
)
|
||||
|
||||
@@ -267,22 +266,12 @@ add_custom_target(CreateOSXIcons
|
||||
)
|
||||
add_dependencies(soh CreateOSXIcons)
|
||||
|
||||
install(TARGETS ZAPD DESTINATION ${CMAKE_BINARY_DIR}/assets/extractor)
|
||||
install(TARGETS ZAPD DESTINATION ${CMAKE_BINARY_DIR}/assets)
|
||||
|
||||
set(PROGRAM_PERMISSIONS_EXECUTE OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ)
|
||||
|
||||
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/extractor/" DESTINATION ./assets/extractor)
|
||||
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/xml/" DESTINATION ./assets/extractor/xmls)
|
||||
install(DIRECTORY "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/filelists/" DESTINATION ./assets/extractor/filelists)
|
||||
install(FILES "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ActorList_OoTMqDbg.txt" DESTINATION ./assets/extractor/symbols)
|
||||
install(FILES "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ObjectList_OoTMqDbg.txt" DESTINATION ./assets/extractor/symbols)
|
||||
install(FILES "${CMAKE_SOURCE_DIR}/OTRExporter/CFG/SymbolMap_OoTMqDbg.txt" DESTINATION ./assets/extractor/symbols)
|
||||
|
||||
install(DIRECTORY ${CMAKE_BINARY_DIR}/assets
|
||||
DESTINATION .
|
||||
PATTERN ZAPD.out
|
||||
PERMISSIONS ${PROGRAM_PERMISSIONS_EXECUTE}
|
||||
)
|
||||
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/extractor/" DESTINATION ./assets/)
|
||||
install(DIRECTORY "${CMAKE_SOURCE_DIR}/soh/assets/xml/" DESTINATION ./assets/xml)
|
||||
|
||||
# Rename the installed soh binary to drop the macos suffix
|
||||
INSTALL(CODE "FILE(RENAME \${CMAKE_INSTALL_PREFIX}/../MacOS/soh-macos \${CMAKE_INSTALL_PREFIX}/../MacOS/soh)")
|
||||
|
||||
Submodule OTRExporter updated: 41052efcdf...32e088e28c
396
PLAN_TRADUCCION.md
Normal file
396
PLAN_TRADUCCION.md
Normal file
@@ -0,0 +1,396 @@
|
||||
# Plan de Implementación del Sistema de Traducción
|
||||
|
||||
## Objetivo
|
||||
Crear un sistema de traducción dinámico que permita cargar idiomas desde archivos JSON externos **sin modificar los textos hardcodeados existentes**. Los textos en el código permanecen en inglés como fallback por defecto.
|
||||
|
||||
---
|
||||
|
||||
## 1. Funcionamiento Clave
|
||||
|
||||
### 1.1 Comportamiento
|
||||
- **Sin carpeta de idiomas**: El juego funciona exactamente como ahora con los textos hardcodeados en inglés
|
||||
- **Con carpeta de idiomas**: Cuando el usuario selecciona un idioma, se carga el JSON y se traducen los textos disponibles
|
||||
- **Fallback**: Si una traducción no existe en el JSON, se usa el texto hardcodeado (inglés)
|
||||
- **Persistencia**: El idioma seleccionado se guarda en la configuración y se carga automáticamente al iniciar
|
||||
|
||||
### 1.2 Carpeta de Idiomas (opcional)
|
||||
```
|
||||
/lenguajes/
|
||||
├── Espanol.json
|
||||
├── Portugues.json
|
||||
└── (otros idiomas).json
|
||||
```
|
||||
|
||||
**Nota**: No se requiere English.json porque el inglés ya está hardcodeado en el código.
|
||||
|
||||
---
|
||||
|
||||
## 2. Archivos Creados
|
||||
|
||||
| Archivo | Descripción |
|
||||
|---------|-------------|
|
||||
| `soh/soh/SohGui/LanguageManager.h` | Header del manager de idiomas |
|
||||
| `soh/soh/SohGui/LanguageManager.cpp` | Implementación del manager |
|
||||
| `lenguajes/Espanol.json` | Traducción español (~950 claves) |
|
||||
| `soh/soh/Localization.h` | Stub para compatibilidad de compilación |
|
||||
| `soh/soh/Localization.cpp` | Stub para compatibilidad de compilación |
|
||||
|
||||
---
|
||||
|
||||
## 3. Archivos Modificados (Implementación Base)
|
||||
|
||||
| Archivo | Cambios |
|
||||
|---------|---------|
|
||||
| `soh/soh/SohGui/SohMenuSettings.cpp` | Agregar selector de idioma dinámico + carga automática al inicio |
|
||||
| `soh/soh/SohGui/SohMenu.cpp` | Aplicar traducción automática en DrawElement() con almacenamiento de nombres originales |
|
||||
| `soh/soh/SohGui/SohMenu.h` | Agregar mapa de nombres originales y tooltips originales |
|
||||
|
||||
---
|
||||
|
||||
## 4. Ubicación de la Carpeta de Idiomas
|
||||
|
||||
### 4.1 Ubicaciones Buscadas
|
||||
El sistema busca la carpeta `lenguajes` en este orden:
|
||||
1. **Directorio actual** (desde donde se ejecuta el juego)
|
||||
2. **Directorio de datos de la app** (~/.local/share/com.shipofharkinian.soh/)
|
||||
|
||||
### 4.2 Cómo colocar los archivos
|
||||
```bash
|
||||
# Opción 1: Copiar junto al ejecutable (después de compilar)
|
||||
cp -r lenguajes build-cmake/soh/
|
||||
|
||||
# Opción 2: En el directorio de datos de la app
|
||||
# Linux: ~/.local/share/com.shipofharkinian.soh/lenguajes/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Formato de Archivos JSON
|
||||
|
||||
### 5.1 Estructura del JSON
|
||||
```json
|
||||
{
|
||||
"language": "Español",
|
||||
"strings": {
|
||||
"Settings": "Configuración",
|
||||
"Enabled": "Activado",
|
||||
"Disabled": "Desactivado"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 5.2 Espanol.json (Completo)
|
||||
Actualmente incluye ~950 traducciones extraídas automáticamente de todos los archivos del menú.
|
||||
|
||||
---
|
||||
|
||||
## 6. Implementación del LanguageManager
|
||||
|
||||
### 6.1 LanguageManager.h
|
||||
```cpp
|
||||
class LanguageManager {
|
||||
public:
|
||||
static LanguageManager& Instance();
|
||||
|
||||
void Init();
|
||||
void LoadLanguage(const std::string& languageName);
|
||||
std::string GetString(const std::string& key);
|
||||
std::vector<std::string> GetAvailableLanguages();
|
||||
std::string GetCurrentLanguage();
|
||||
bool IsTranslationLoaded();
|
||||
|
||||
private:
|
||||
std::string currentLanguage;
|
||||
std::map<std::string, std::string> translations;
|
||||
bool translationLoaded;
|
||||
|
||||
void ScanLanguageFiles();
|
||||
bool LoadJsonFile(const std::string& path);
|
||||
std::string GetLanguagesDirectory();
|
||||
};
|
||||
```
|
||||
|
||||
### 6.2 Lógica de Funcionamiento
|
||||
```cpp
|
||||
std::string LanguageManager::GetString(const std::string& key) {
|
||||
if (!translationLoaded || translations.empty()) {
|
||||
return key;
|
||||
}
|
||||
auto it = translations.find(key);
|
||||
if (it != translations.end()) {
|
||||
return it->second;
|
||||
}
|
||||
return key; // Fallback al texto original
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. Estado Actual de la Implementación
|
||||
|
||||
### ✅ Completado
|
||||
- [x] LanguageManager.h/cpp - Carga de idiomas desde JSON
|
||||
- [x] Selector de idioma dinámico en Settings (usa CVar integer para el índice)
|
||||
- [x] Traducción automática de nombres de widgets en DrawElement()
|
||||
- [x] Almacenamiento de nombres originales con claves estables (sección|sidebar|columna|índice)
|
||||
- [x] Persistencia del idioma seleccionado
|
||||
- [x] Espanol.json con ~950 traducciones
|
||||
- [x] Compilación exitosa y funcional
|
||||
|
||||
### ❌ Pendiente - Fase 1: Menú Completo (Riesgo Bajo-Medio)
|
||||
- [ ] Headers del menú principal (Settings, Enhancements, Randomizer, Network, Dev Tools)
|
||||
- [ ] Labels de sidebars (General, Audio, Graphics, Controls, etc.)
|
||||
- [ ] Tooltips de widgets (mensajes al pasar el mouse)
|
||||
- [ ] Opciones de combobox (temas, filtros de textura, etc.)
|
||||
- [ ] Mensajes de estado (disabled tooltips, mensajes de error)
|
||||
- [ ] Custom widgets que usan ImGui directo
|
||||
- [ ] Editor de resolución (labels de presets, textos de configuración)
|
||||
- [ ] Textos del sistema base de búsqueda (Search Results, Clear Search, No results found)
|
||||
- [ ] Botones del header (Quit SoH, Reset, Close Menu)
|
||||
- [ ] Nombres de botones N64 en UIWidgets (Modifier 1, Modifier 2)
|
||||
- [ ] Textos dinámicos en PreFunc (Connecting..., Connected, etc.)
|
||||
|
||||
### ❌ Pendiente - Fase 2: Randomizer (Riesgo Alto)
|
||||
- [ ] Opciones del randomizer (settings.cpp - macros OPT_U8, OPT_BOOL)
|
||||
- [ ] Descripciones de opciones (option_descriptions.cpp)
|
||||
- [ ] Nombres de grupos de opciones (OptionGroup::SubGroup)
|
||||
- [ ] Textos custom del menú randomizer (ImGui directo)
|
||||
- [ ] Nombres de tricks y descripciones
|
||||
- [ ] Nombres de áreas
|
||||
- [ ] Textos del Plandomizer (Locations, Items, etc.)
|
||||
|
||||
---
|
||||
|
||||
## 8. Análisis Completo de Textos por Categoría
|
||||
|
||||
### Categoría 1: SohMenu.cpp - Mensajes de Estado
|
||||
**Archivo:** `soh/soh/SohGui/SohMenu.cpp`
|
||||
**Textos:** ~14 mensajes de disabledMap
|
||||
**Ejemplos:** "Disabling VSync not supported", "Debug Mode is Disabled", "Frame Advance is Disabled"
|
||||
**Cómo se dibujan:** Se concatenan en `Menu::MenuDrawItem()` como tooltips de widgets deshabilitados
|
||||
**Tipo:** `const char*` en struct `disabledInfo`
|
||||
**Riesgo:** BAJO
|
||||
|
||||
### Categoría 2: SohMenuSettings.cpp - Widgets de Settings
|
||||
**Archivo:** `soh/soh/SohGui/SohMenuSettings.cpp`
|
||||
**Textos:** ~200 (nombres de widgets, tooltips, opciones de combobox)
|
||||
**Ejemplos de combobox options:** "Small", "Normal", "Large" (ImGui Scale), "Red", "Dark Red", "Orange" (temas), "Three-Point", "Linear", "None" (filtro textura)
|
||||
**Ejemplos de tooltips:** "Changes the Theme of the Menu Widgets.", "Allows controller navigation of the port menu..."
|
||||
**Cómo se dibujan:** Via `AddWidget().Tooltip("...")` y `.ComboMap(mapa)`
|
||||
**Tipo:** Tooltips como `std::string` en WidgetOptions, combobox como `std::map<int32_t, const char*>`
|
||||
**Riesgo:** MEDIO
|
||||
|
||||
### Categoría 3: SohMenuEnhancements.cpp - Widgets de Enhancements
|
||||
**Archivo:** `soh/soh/SohGui/SohMenuEnhancements.cpp`
|
||||
**Textos:** ~500+ (nombres, tooltips, opciones de combobox, disabledTooltips)
|
||||
**Ejemplos de combobox options:** "Vanilla", "Faster Run", "Faster + Longer Jump" (Bunny Hood), "Plentiful", "Balanced", "Scarce", "Minimal" (Item Pool del randomizer)
|
||||
**Ejemplos de tooltips:** Textos largos de varias líneas explicando cada mejora
|
||||
**Cómo se dibujan:** Mismo patrón que Settings
|
||||
**Riesgo:** MEDIO-ALTO (volumen grande)
|
||||
|
||||
### Categoría 4: SohMenuRandomizer.cpp - Widgets de Randomizer
|
||||
**Archivo:** `soh/soh/SohGui/SohMenuRandomizer.cpp`
|
||||
**Textos:** ~100 + datos del motor del randomizer
|
||||
**Ejemplos:** "Seed Entry", "Generate Randomizer", "Filter (inc,-exc)", "Disable All", "Enable All"
|
||||
**Cómo se dibujan:** Mix de `AddWidget()` y custom widgets con ImGui directo (`ImGui::Text()`, `ImGui::Button()`, `ImGui::BeginTable()`)
|
||||
**Datos del randomizer:** Nombres de ubicaciones, tricks, áreas vienen de `Rando::StaticData`, `TrickSetting`, `Option`
|
||||
**Riesgo:** ALTO (datos del randomizer pueden afectar compatibilidad con seeds)
|
||||
|
||||
### Categoría 5: SohMenuNetwork.cpp - Widgets de Network
|
||||
**Archivo:** `soh/soh/SohGui/SohMenuNetwork.cpp`
|
||||
**Textos:** ~30
|
||||
**Ejemplos:** "Host & Port", "Enable##Sail", "Connecting...##Sail", "About Crowd Control"
|
||||
**Cómo se dibujan:** Mix de `AddWidget()` y textos ImGui directo
|
||||
**Riesgo:** BAJO
|
||||
|
||||
### Categoría 6: SohMenuDevTools.cpp - Widgets de Dev Tools
|
||||
**Archivo:** `soh/soh/SohGui/SohMenuDevTools.cpp`
|
||||
**Textos:** ~50
|
||||
**Ejemplos:** "Debug Mode", "Frame Advance", "Log Level", "Trace", "Debug", "Info", "Warn"
|
||||
**Riesgo:** BAJO (herramientas de desarrollo, prioridad baja)
|
||||
|
||||
### Categoría 7: Menu.cpp - Sistema Base del Menú
|
||||
**Archivo:** `soh/soh/SohGui/Menu.cpp`
|
||||
**Textos:** ~20
|
||||
**Ejemplos:** "This setting is disabled because: \n", "Search Results", "Clear Search", "No results found", "Quit SoH", "Reset", "Close Menu (Esc)"
|
||||
**Cómo se dibujan:** Directamente en `MenuDrawItem()` con llamadas ImGui
|
||||
**Riesgo:** MEDIO (textos del sistema core)
|
||||
|
||||
### Categoría 8: UIWidgets.cpp - Widgets UI
|
||||
**Archivo:** `soh/soh/SohGui/UIWidgets.cpp`
|
||||
**Textos:** ~15
|
||||
**Ejemplos:** "Modifier 1", "Modifier 2", "Remove this button from the combination", "Resets this color to its default value"
|
||||
**Cómo se dibujan:** En `BtnSelector()` y Color Picker
|
||||
**Riesgo:** BAJO-MEDIO
|
||||
|
||||
### Categoría 9: ResolutionEditor.cpp - Editor de Resolución
|
||||
**Archivo:** `soh/soh/SohGui/ResolutionEditor.cpp`
|
||||
**Textos:** ~40
|
||||
**Ejemplos:** "Off", "Custom", "Original (4:3)", "Widescreen (16:9)", "Pixel Perfect Mode", "Integer Scaling Settings"
|
||||
**Cómo se dibujan:** Mix de `AddWidget()` y `ResolutionCustomWidget()` con ImGui directo
|
||||
**Riesgo:** MEDIO
|
||||
|
||||
### Categoría 10: Randomizer Settings - Opciones del Randomizer
|
||||
**Archivos:**
|
||||
- `soh/soh/Enhancements/randomizer/settings.cpp`
|
||||
- `soh/soh/Enhancements/randomizer/option_descriptions.cpp`
|
||||
**Textos:** ~1000+
|
||||
**Ejemplos:** "Item Pool", "Logic", "Closed Forest", "Kakariko Gate", "Starting Age"
|
||||
**Cómo se dibujan:** Via macros `OPT_U8`, `OPT_BOOL` que crean objetos `Option`, no pasan por `AddWidget()`
|
||||
**Descripciones:** Textos largos en `option_descriptions.cpp` (~836 líneas)
|
||||
**Grupos:** `OptionGroup::SubGroup("Logic Options", ...)`, `OptionGroup::SubGroup("Logical Tricks", ...)`
|
||||
**Riesgo:** MUY ALTO (puede romper compatibilidad con seeds, spoiler logs, herramientas externas)
|
||||
|
||||
### Categoría 11: SohMenu.h - Idiomas del Juego
|
||||
**Archivo:** `soh/soh/SohGui/SohMenu.h`
|
||||
**Textos:** 4 ("English", "German", "French", "Japanese")
|
||||
**Riesgo:** MUY BAJO (nombres propios de idiomas)
|
||||
|
||||
---
|
||||
|
||||
## 9. Plan de Implementación Gradual (Opción C)
|
||||
|
||||
### Fase 1: Menú Completo (sin Randomizer)
|
||||
**Objetivo:** Traducir todo el menú principal ~700 textos adicionales
|
||||
**Riesgo:** Medio
|
||||
**Tiempo estimado:** Moderado
|
||||
|
||||
#### Paso 1.1: Headers y Sidebars
|
||||
- Modificar `DrawElement()` para traducir `section.label` y `sidebarOrder`
|
||||
- Usar claves estables basadas en índices (igual que widgets)
|
||||
- **Archivo:** `soh/soh/SohGui/SohMenu.cpp`
|
||||
|
||||
#### Paso 1.2: Tooltips de Widgets
|
||||
- Agregar mapa `mOriginalTooltips` en SohMenu.h
|
||||
- Guardar tooltips originales con claves de índice
|
||||
- Traducir en `DrawElement()` antes de dibujar
|
||||
- **Archivos:** `SohMenu.h`, `SohMenu.cpp`
|
||||
|
||||
#### Paso 1.3: Opciones de Combobox
|
||||
- Traducir en `PreFunc` de cada widget combobox
|
||||
- Usar mapas estáticos con traducción dinámica
|
||||
- **Archivos:** `SohMenuSettings.cpp`, `SohMenuEnhancements.cpp`, etc.
|
||||
|
||||
#### Paso 1.4: Mensajes de Estado (disabledMap)
|
||||
- Traducir `disabledInfo.reason` en `MenuDrawItem()` al concatenar
|
||||
- **Archivo:** `soh/soh/SohGui/Menu.cpp`
|
||||
|
||||
#### Paso 1.5: Textos del Sistema Base
|
||||
- Traducir textos de búsqueda, botones del header, diálogos de confirmación
|
||||
- **Archivo:** `soh/soh/SohGui/Menu.cpp`
|
||||
|
||||
#### Paso 1.6: Custom Widgets
|
||||
- Envolver textos ImGui directo con `LanguageManager::Instance().GetString()`
|
||||
- **Archivos:** `SohMenuNetwork.cpp`, `SohMenuDevTools.cpp`, `ResolutionEditor.cpp`
|
||||
|
||||
#### Paso 1.7: UIWidgets
|
||||
- Traducir labels de botones (Modifier 1, Modifier 2) y tooltips de Color Picker
|
||||
- **Archivo:** `soh/soh/SohGui/UIWidgets.cpp`
|
||||
|
||||
### Fase 2: Randomizer (requiere diseño cuidadoso)
|
||||
**Objetivo:** Traducir opciones del randomizer ~1000+ textos
|
||||
**Riesgo:** Alto
|
||||
**Consideraciones:**
|
||||
- Los nombres de opciones se usan como keys en mapas y serialización
|
||||
- Puede afectar compatibilidad con seeds existentes y spoiler logs
|
||||
- Los nombres de tricks son parte de la cultura del speedrunning
|
||||
- Se necesita evaluar si traducir solo display names o también keys internas
|
||||
|
||||
#### Paso 2.1: Opciones del Randomizer
|
||||
- Integrar `LanguageManager` en el sistema de `Option`
|
||||
- Traducir `GetName()` al renderizar, NO al crear la opción
|
||||
- **Archivo:** `soh/soh/Enhancements/randomizer/settings.cpp`
|
||||
|
||||
#### Paso 2.2: Descripciones de Opciones
|
||||
- Traducir `mOptionDescriptions[]` al mostrar
|
||||
- **Archivo:** `soh/soh/Enhancements/randomizer/option_descriptions.cpp`
|
||||
|
||||
#### Paso 2.3: Grupos de Opciones
|
||||
- Traducir nombres de `OptionGroup::SubGroup()` al renderizar
|
||||
- **Archivo:** `soh/soh/Enhancements/randomizer/settings.cpp`
|
||||
|
||||
#### Paso 2.4: Custom Widgets del Randomizer
|
||||
- Traducir textos ImGui directo en el menú del randomizer
|
||||
- **Archivo:** `soh/soh/SohGui/SohMenuRandomizer.cpp`
|
||||
|
||||
#### Paso 2.5: Tricks y Áreas (opcional, bajo demanda)
|
||||
- Traducir nombres de tricks y áreas
|
||||
- Evaluar impacto en la comunidad de speedrunning
|
||||
- **Archivos:** `soh/soh/Enhancements/randomizer/3drando/tricks.cpp`, etc.
|
||||
|
||||
---
|
||||
|
||||
## 10. Notas Importantes
|
||||
|
||||
- ✅ **Textos hardcodeados permanecen**: El código no se modifica, los textos en inglés quedan como están
|
||||
- ✅ **Sin carpeta de idiomas funciona igual**: Si no existe la carpeta, el juego funciona exactamente como antes
|
||||
- ✅ **Fallback automático**: Si falta una traducción, se muestra el texto original
|
||||
- ✅ **Selector dinámico**: Los nombres de idiomas vienen de los archivos JSON, no están hardcodeados
|
||||
- ✅ **Fácil agregar idiomas**: Solo hay que crear un nuevo archivo `.json` en la carpeta
|
||||
- ✅ **Persistencia**: El idioma seleccionado se guarda y se carga automáticamente al iniciar
|
||||
- ⚠️ **Ubicación de carpeta**: La carpeta `lenguajes` debe estar junto al ejecutable o en el directorio de datos de la app
|
||||
- ⚠️ **Claves estables**: Los nombres de widgets se traducen usando claves basadas en índices para evitar corrupción al cambiar idioma
|
||||
|
||||
---
|
||||
|
||||
## 11. Cómo Compilar y Ejecutar
|
||||
|
||||
```bash
|
||||
# 1. Compilar el proyecto
|
||||
cmake -H. -Bbuild-cmake -GNinja
|
||||
cmake --build build-cmake -j$(nproc)
|
||||
|
||||
# 2. Copiar carpeta de idiomas junto al ejecutable
|
||||
cp -r lenguajes build-cmake/soh/
|
||||
|
||||
# 3. Ejecutar desde la raíz del proyecto
|
||||
./build-cmake/soh/soh.elf
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 12. Resumen de Dificultad por Categoría
|
||||
|
||||
| Categoría | Textos | Dificultad | Riesgo |
|
||||
|---|---|---|---|
|
||||
| Headers y Sidebars | ~30 | Media | Medio |
|
||||
| Tooltips del menú | ~400 | Media | Medio |
|
||||
| Opciones de combobox | ~150 | Media | Medio |
|
||||
| Mensajes de estado | ~30 | Baja | Bajo |
|
||||
| Custom widgets | ~80 | Media | Medio |
|
||||
| Editor de resolución | ~40 | Media | Medio |
|
||||
| Sistema base (búsqueda, botones) | ~20 | Media | Medio |
|
||||
| UIWidgets | ~15 | Baja | Bajo |
|
||||
| **Opciones del Randomizer** | ~1000+ | Muy Alta | **Muy Alto** |
|
||||
| Tricks y Áreas | ~100+ | Muy Alta | **Muy Alto** |
|
||||
|
||||
---
|
||||
|
||||
## 13. Archivos de Referencia con Textos Hardcodeados
|
||||
|
||||
### SohGui (ya analizados)
|
||||
- `SohMenu_hardcoded.txt`
|
||||
- `SohMenuSettings_hardcoded.txt`
|
||||
- `SohMenuEnhancements_hardcoded.txt`
|
||||
- `SohMenuRandomizer_hardcoded.txt`
|
||||
- `SohMenuNetwork_hardcoded.txt`
|
||||
- `SohMenuDevTools_hardcoded.txt`
|
||||
- `SohMenuBar_hardcoded.txt`
|
||||
- `ResolutionEditor_hardcoded.txt`
|
||||
|
||||
---
|
||||
|
||||
## 14. Diferencias con el Plan Anterior
|
||||
|
||||
| Aspecto | Plan Anterior | Plan Actual |
|
||||
|---------|---------------|--------------|
|
||||
| English.json | Obligatorio | No necesario (hardcodeado es fallback) |
|
||||
| Reemplazo de textos | Sí, en todos los archivos | No, solo agregar función GetString |
|
||||
| Archivos a modificar | 8+ archivos | 2 archivos (SohMenuSettings.cpp, SohMenu.cpp) |
|
||||
| Funcionamiento sin carpeta | Requiere English.json | Funciona igual que antes |
|
||||
| Stub Localization | No previsto | Necesario para compilar |
|
||||
| Persistencia de idioma | No implementada | ✅ Guardado y cargado automáticamente |
|
||||
| Strings en selector | Implementación con problemas | ✅ Solucionado con map estático |
|
||||
| Traducción de tooltips | No previsto | ✅ Implementado con claves estables |
|
||||
| Headers y Sidebars | No previsto | ⏳ Pendiente (Fase 1) |
|
||||
| Randomizer | No previsto | ⏳ Pendiente (Fase 2, requiere diseño) |
|
||||
10
README.md
10
README.md
@@ -34,16 +34,16 @@ You can verify you have dumped a supported copy of the game by using the compati
|
||||
* You should see a notification saying `Processing OTR`, then, once the process is complete, you should get a notification saying `OTR Successfully Generated`, then the game should start.
|
||||
|
||||
#### Nintendo Switch
|
||||
* Run one of the PC releases to generate an `oot.otr` and/or `oot-mq.otr` file. After launching the game on PC, you will be able to find these files in the same directory as `soh.exe` or `soh.appimage`. On macOS, these files can be found in `/Users/<username>/Library/Application Support/com.shipofharkinian.soh/`
|
||||
* Run one of the PC releases to generate an `oot.o2r` and/or `oot-mq.o2r` file. After launching the game on PC, you will be able to find these files in the same directory as `soh.exe` or `soh.appimage`. On macOS, these files can be found in `/Users/<username>/Library/Application Support/com.shipofharkinian.soh/`
|
||||
* Copy the files to your sd card
|
||||
```
|
||||
sdcard
|
||||
└── switch
|
||||
└── soh
|
||||
├── oot-mq.otr
|
||||
├── oot.otr
|
||||
├── oot-mq.o2r
|
||||
├── oot.o2r
|
||||
├── soh.nro
|
||||
└── soh.otr
|
||||
└── soh.o2r
|
||||
```
|
||||
* Launch via Atmosphere's `Game+R` launcher method.
|
||||
|
||||
@@ -74,7 +74,7 @@ Congratulations, you are now sailing with the Ship of Harkinian! Have fun!
|
||||
# Project Overview
|
||||
Ship of Harkinian (SOH) is built atop a custom library dubbed libultraship (LUS). Back in the N64 days, there was an SDK distributed to developers named libultra; LUS is designed to mimic the functionality of libultra on modern hardware. In addition, we are dependant on the source code provided by the OOT decompilation project.
|
||||
|
||||
In order for the game to function, you will require a **legally acquired** ROM for Ocarina of Time. Click [here](https://ship.equipment/) to check the compatibility of your specific rom. Any copyrighted assets are extracted from the ROM and reformatted as a .otr archive file which the code uses.
|
||||
In order for the game to function, you will require a **legally acquired** ROM for Ocarina of Time. Click [here](https://ship.equipment/) to check the compatibility of your specific rom. Any copyrighted assets are extracted from the ROM and reformatted as a .o2r archive file which the code uses.
|
||||
|
||||
### Graphics Backends
|
||||
Currently, there are three rendering APIs supported: DirectX11 (Windows), OpenGL (all platforms), and Metal (MacOS). You can change which API to use in the `Settings` menu of the menubar, which requires a restart. If you're having an issue with crashing, you can change the API in the `shipofharkinian.json` file by finding the line `gfxbackend:""` and changing the value to `sdl` for OpenGL. DirectX 11 is the default on Windows.
|
||||
|
||||
2
ZAPDTR
2
ZAPDTR
Submodule ZAPDTR updated: 2aeababbfb...ee3397a365
@@ -1,37 +1,37 @@
|
||||
message(STATUS "Copying otr files...")
|
||||
|
||||
if(NOT ONLYSOHOTR AND EXISTS ${SOURCE_DIR}/OTRExporter/oot.otr)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot.otr ${SOURCE_DIR})
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot.otr ${BINARY_DIR}/soh/)
|
||||
message(STATUS "Copied oot.otr")
|
||||
if(NOT ONLYSOHOTR AND EXISTS ${SOURCE_DIR}/soh/oot.o2r)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot.o2r ${SOURCE_DIR})
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot.o2r ${BINARY_DIR}/soh/)
|
||||
message(STATUS "Copied oot.o2r")
|
||||
endif()
|
||||
if(NOT ONLYSOHOTR AND EXISTS ${SOURCE_DIR}/OTRExporter/oot-mq.otr)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot-mq.otr ${SOURCE_DIR})
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot-mq.otr ${BINARY_DIR}/soh/)
|
||||
message(STATUS "Copied oot-mq.otr")
|
||||
if(NOT ONLYSOHOTR AND EXISTS ${SOURCE_DIR}/soh/oot-mq.o2r)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot-mq.o2r ${SOURCE_DIR})
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot-mq.o2r ${BINARY_DIR}/soh/)
|
||||
message(STATUS "Copied oot-mq.o2r")
|
||||
endif()
|
||||
if(EXISTS ${SOURCE_DIR}/OTRExporter/soh.otr)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy soh.otr ${SOURCE_DIR})
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy soh.otr ${BINARY_DIR}/soh/)
|
||||
message(STATUS "Copied soh.otr")
|
||||
if(EXISTS ${SOURCE_DIR}/soh/soh.o2r)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy soh.o2r ${SOURCE_DIR})
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy soh.o2r ${BINARY_DIR}/soh/)
|
||||
message(STATUS "Copied soh.o2r")
|
||||
endif()
|
||||
|
||||
# Additionally for Windows, copy the otrs to the target dir, side by side with soh.exe
|
||||
if(SYSTEM_NAME MATCHES "Windows")
|
||||
if(NOT ONLYSOHOTR AND EXISTS ${SOURCE_DIR}/OTRExporter/oot.otr)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot.otr ${TARGET_DIR})
|
||||
if(NOT ONLYSOHOTR AND EXISTS ${SOURCE_DIR}/soh/oot.o2r)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot.o2r ${TARGET_DIR})
|
||||
endif()
|
||||
if(NOT ONLYSOHOTR AND EXISTS ${SOURCE_DIR}/OTRExporter/oot-mq.otr)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot-mq.otr ${TARGET_DIR})
|
||||
if(NOT ONLYSOHOTR AND EXISTS ${SOURCE_DIR}/soh/oot-mq.o2r)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot-mq.o2r ${TARGET_DIR})
|
||||
endif()
|
||||
if(EXISTS ${SOURCE_DIR}/OTRExporter/soh.otr)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy soh.otr ${TARGET_DIR})
|
||||
if(EXISTS ${SOURCE_DIR}/soh/soh.o2r)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy soh.o2r ${TARGET_DIR})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT ONLYSOHOTR AND (NOT EXISTS ${SOURCE_DIR}/oot.otr AND NOT EXISTS ${SOURCE_DIR}/oot-mq.otr))
|
||||
if(NOT ONLYSOHOTR AND (NOT EXISTS ${SOURCE_DIR}/oot.o2r AND NOT EXISTS ${SOURCE_DIR}/oot-mq.o2r))
|
||||
message(FATAL_ERROR "Failed to copy. No OTR files found.")
|
||||
endif()
|
||||
if(NOT EXISTS ${SOURCE_DIR}/soh.otr)
|
||||
if(NOT EXISTS ${SOURCE_DIR}/soh.o2r)
|
||||
message(FATAL_ERROR "Failed to copy. No soh OTR found.")
|
||||
endif()
|
||||
|
||||
100
docs/BUILDING.md
100
docs/BUILDING.md
@@ -22,7 +22,7 @@ It is recommended that you install Python and Git standalone, the install proces
|
||||
|
||||
_Note: Be sure to either clone with the ``--recursive`` flag or do ``git submodule update --init`` after cloning to pull in the libultraship submodule!_
|
||||
|
||||
2. After setup and initial build, use the built-in OTR extraction to make your oot.otr/oot-mq.otr files.
|
||||
2. After setup and initial build, use the built-in OTR extraction to make your oot.o2r/oot-mq.o2r files.
|
||||
|
||||
_Note: Instructions assume using powershell_
|
||||
```powershell
|
||||
@@ -34,7 +34,7 @@ cd Shipwright
|
||||
# Add `-DSUPPRESS_WARNINGS=0` to prevent suppression of warnings from LUS and decomp (src) files. set to 1 to re-enable suppression
|
||||
& 'C:\Program Files\CMake\bin\cmake' -S . -B "build/x64" -G "Visual Studio 17 2022" -T v143 -A x64
|
||||
|
||||
# Generate soh.otr
|
||||
# Generate soh.o2r
|
||||
& 'C:\Program Files\CMake\bin\cmake.exe' --build .\build\x64 --target GenerateSohOtr
|
||||
|
||||
# Compile project
|
||||
@@ -90,36 +90,94 @@ C:\Program Files\CMake\bin\cmake.exe --build build-cmake --target ExtractAssetHe
|
||||
#### Debian/Ubuntu
|
||||
```sh
|
||||
# using gcc
|
||||
apt-get install gcc g++ git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libboost-dev libopengl-dev
|
||||
apt-get install gcc g++ git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libopengl-dev libopusfile-dev libvorbis-dev
|
||||
|
||||
# or using clang
|
||||
apt-get install clang git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libboost-dev libopengl-dev
|
||||
apt-get install clang git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libopengl-dev libopusfile-dev libvorbis-dev
|
||||
```
|
||||
#### Arch
|
||||
```sh
|
||||
# using gcc
|
||||
pacman -S gcc git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net boost
|
||||
pacman -S gcc git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net opusfile libvorbis
|
||||
|
||||
# or using clang
|
||||
pacman -S clang git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net boost
|
||||
pacman -S clang git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net opusfile libvorbis
|
||||
```
|
||||
#### Fedora
|
||||
```sh
|
||||
# using gcc
|
||||
dnf install gcc gcc-c++ git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools nlohmann-json-devel tinyxml2-devel spdlog-devel boost-devel
|
||||
dnf install gcc gcc-c++ git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools nlohmann-json-devel tinyxml2-devel spdlog-devel opusfile-devel libvorbis-devel
|
||||
|
||||
# or using clang
|
||||
dnf install clang git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools nlohmann-json-devel tinyxml2-devel spdlog-devel boost-devel
|
||||
dnf install clang git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools nlohmann-json-devel tinyxml2-devel spdlog-devel opusfile-devel libvorbis-devel
|
||||
```
|
||||
#### openSUSE
|
||||
```sh
|
||||
# using gcc
|
||||
zypper in gcc gcc-c++ git cmake ninja SDL2-devel libpng16-devel libzip-devel libzip-tools nlohmann_json-devel tinyxml2-devel spdlog-devel
|
||||
#### Nix
|
||||
You can use a `flake.nix` file to instantly setup a development environment using [Nix](https://nixos.org/). Write this `flake.nix` file in the root directory:
|
||||
|
||||
# or using clang
|
||||
zypper in clang libstdc++-devel git cmake ninja SDL2-devel libpng16-devel libzip-devel libzip-tools nlohmann_json-devel tinyxml2-devel spdlog-devel
|
||||
```nix
|
||||
{
|
||||
description = "Shipwright development environment";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, flake-utils }:
|
||||
flake-utils.lib.eachDefaultSystem (system:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
in
|
||||
{
|
||||
devShells.default = pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
# Build tools
|
||||
clang
|
||||
git
|
||||
cmake
|
||||
ninja
|
||||
lsb-release
|
||||
pkg-config
|
||||
|
||||
# SDL2 libraries
|
||||
SDL2
|
||||
SDL2.dev
|
||||
SDL2_net
|
||||
|
||||
# Other libraries
|
||||
libpng
|
||||
libzip
|
||||
nlohmann_json
|
||||
tinyxml-2
|
||||
spdlog
|
||||
libGL
|
||||
libGL.dev
|
||||
bzip2
|
||||
|
||||
# X11 libraries
|
||||
xorg.libX11
|
||||
|
||||
# Audio libraries
|
||||
libogg
|
||||
libogg.dev
|
||||
libvorbis
|
||||
libvorbis.dev
|
||||
libopus
|
||||
libopus.dev
|
||||
opusfile
|
||||
opusfile.dev
|
||||
];
|
||||
shellHook = ''
|
||||
echo "Shipwright development environment loaded"
|
||||
echo "Available tools: clang, git, cmake, ninja"
|
||||
'';
|
||||
};
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
Now type `nix develop` and you will be dropped into a shell with all dependencies, ensuring that all build commands work.
|
||||
|
||||
### Build
|
||||
|
||||
_Note: If you're using Visual Studio Code, the [CMake Tools plugin](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools) makes it very easy to just press run and debug._
|
||||
@@ -138,7 +196,7 @@ git submodule update --init
|
||||
# Add `-DPython3_EXECUTABLE=$(which python3)` if you are using non-standard Python installations such as PyEnv
|
||||
cmake -H. -Bbuild-cmake -GNinja
|
||||
|
||||
# Generate soh.otr
|
||||
# Generate soh.o2r
|
||||
cmake --build build-cmake --target GenerateSohOtr
|
||||
|
||||
# Compile the project
|
||||
@@ -173,7 +231,7 @@ cmake --build build-cmake --target ExtractAssetHeaders
|
||||
```
|
||||
|
||||
## macOS
|
||||
Requires Xcode (or xcode-tools) && `sdl2, libpng, glew, ninja, cmake, tinyxml2, nlohmann-json, libzip` (can be installed via [homebrew](https://brew.sh/), macports, etc)
|
||||
Requires Xcode (or xcode-tools) && `sdl2, libpng, glew, ninja, cmake, tinyxml2, nlohmann-json, libzip, opusfile, libvorbis` (can be installed via [homebrew](https://brew.sh/), macports, etc)
|
||||
|
||||
**Important: For maximum performance make sure you have ninja build tools installed!**
|
||||
|
||||
@@ -188,14 +246,14 @@ cd ShipWright
|
||||
git submodule update --init
|
||||
|
||||
# Install development dependencies (assuming homebrew)
|
||||
brew install sdl2 libpng glew ninja cmake tinyxml2 nlohmann-json libzip
|
||||
brew install sdl2 libpng glew ninja cmake tinyxml2 nlohmann-json libzip opusfile libvorbis
|
||||
|
||||
# Generate Ninja project
|
||||
# Add `-DCMAKE_BUILD_TYPE:STRING=Release` if you're packaging
|
||||
# Add `-DSUPPRESS_WARNINGS=0` to prevent suppression of warnings from LUS and decomp (src) files. set to 1 to re-enable suppression
|
||||
cmake -H. -Bbuild-cmake -GNinja
|
||||
|
||||
# Generate soh.otr
|
||||
# Generate soh.o2r
|
||||
cmake --build build-cmake --target GenerateSohOtr
|
||||
|
||||
# Compile the project
|
||||
@@ -231,7 +289,7 @@ cmake --build build-cmake --target ExtractAssetHeaders
|
||||
|
||||
## Switch
|
||||
1. Requires that your build machine is setup with the tools necessary for your platform above
|
||||
2. Requires that you have the switch build tools installed
|
||||
2. Requires that you have the switch build tools installed
|
||||
3. Clone the Ship of Harkinian repository
|
||||
4. Place one or more [compatible](#compatible-roms) roms in the `OTRExporter` directory with namings of your choice
|
||||
|
||||
@@ -252,7 +310,7 @@ cmake --build build-switch --target soh_nro
|
||||
|
||||
## Wii U
|
||||
1. Requires that your build machine is setup with the tools necessary for your platform above
|
||||
2. Requires that you have the Wii U build tools installed
|
||||
2. Requires that you have the Wii U build tools installed
|
||||
3. Clone the Ship of Harkinian repository
|
||||
4. Place one or more [compatible](#compatible-roms) roms in the `OTRExporter` directory with namings of your choice
|
||||
|
||||
@@ -265,7 +323,7 @@ cmake --build build-cmake --target ExtractAssets
|
||||
# Setup cmake project for building for Wii U
|
||||
cmake -H. -Bbuild-wiiu -GNinja -DCMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/WiiU.cmake # -DCMAKE_BUILD_TYPE:STRING=Release (if you're packaging)
|
||||
# Build project and generate rpx
|
||||
cmake --build build-wiiu --target soh # --target soh_wuhb (for building .wuhb)
|
||||
cmake --build build-wiiu --target soh # --target soh_wuhb (for building .wuhb)
|
||||
|
||||
# Now you can run the executable in ./build-wiiu/soh/soh.rpx or the Wii U Homebrew Bundle in ./build-wiiu/soh/soh.wuhb
|
||||
# To develop the project open the repository in VSCode (or your preferred editor)
|
||||
|
||||
@@ -19,6 +19,6 @@ Once you have prepared your sequences folder:
|
||||
(*NOTE:* SoH can handle 1024 custom sequence in total. This includes the original music. Keep that in mind!)
|
||||
1. Click the "Finalize OTR" text in the green footer.
|
||||
1. Click "Generate OTR" and, using the file selection screen, save the file to the `mods` folder of your SoH installation.
|
||||
- This `mods` folder should be in the same folder as your `oot.otr` file.
|
||||
- This `mods` folder should be in the same folder as your `oot.o2r` file.
|
||||
|
||||
Assuming you have done everything correctly, boot up SoH and select the SFX Editor from the enhancements dropdown menu. You should now be able to swap out any of the in game sequences/fanfares for the sequences added in your newly generated OTR file. If you have any trouble with this process, please reach out in the support section of the Discord.
|
||||
|
||||
@@ -1,38 +1,38 @@
|
||||
# SDL GameControllerDB
|
||||
|
||||
The Ship of Harkinian utilizes a text file with SDL controller mappings for extended controller hardware support.
|
||||
This file is pulled from https://github.com/gabomdq/SDL_GameControllerDB during the build process as [a part of CMakeLists.txt](https://github.com/HarbourMasters/Shipwright/blob/bb643661f62865dfc757c185d0daaebb32f2d53d/soh/CMakeLists.txt#L760).
|
||||
This file is pulled from https://github.com/mdqinc/SDL_GameControllerDB during the build process as [a part of CMakeLists.txt](https://github.com/HarbourMasters/Shipwright/blob/bb643661f62865dfc757c185d0daaebb32f2d53d/soh/CMakeLists.txt#L760).
|
||||
|
||||
## Released versions
|
||||
|
||||
| Release | sha | diff |
|
||||
| - | - | - |
|
||||
| Zhora Alfa 4.0.0 | [967daa8](https://github.com/gabomdq/SDL_GameControllerDB/tree/967daa8f89c48b01ed0f9c6a86ac849930442fc6) | |
|
||||
| Zhora Bravo 4.0.1 | [ccac7cd](https://github.com/gabomdq/SDL_GameControllerDB/tree/ccac7cd97f445955d4437e21c5f82123d9b4349b) | [+1](https://github.com/gabomdq/SDL_GameControllerDB/compare/967daa8...ccac7cd) |
|
||||
| Zhora Charlie 4.0.2 | [ff26eb0](https://github.com/gabomdq/SDL_GameControllerDB/tree/ff26eb04d0fe18356985d968119429d6012e7d75) | [+8/-3](https://github.com/gabomdq/SDL_GameControllerDB/compare/ccac7cd...ff26eb0) |
|
||||
| Zhora Delta 4.0.3 | [ad02da5](https://github.com/gabomdq/SDL_GameControllerDB/tree/ad02da5a95ca8005f2c1facc11a5a52f8522f0ee) | [+4/-5](https://github.com/gabomdq/SDL_GameControllerDB/compare/ff26eb0...ad02da5) |
|
||||
| Zohra Echo 4.0.4 | [c203690](https://github.com/gabomdq/SDL_GameControllerDB/tree/c203690b1e13980699802918d362cd9dadf89bd0) | [+8/-4](https://github.com/gabomdq/SDL_GameControllerDB/compare/ad02da5...c203690) |
|
||||
| Zhora Foxtrot 4.0.5 | [9db8101](https://github.com/gabomdq/SDL_GameControllerDB/tree/9db8101a5780d1b0721bf6de385e6ffe0d07dfc7) | [+6](https://github.com/gabomdq/SDL_GameControllerDB/compare/c203690...9db8101) |
|
||||
| Flynn Alfa 5.0.0 | [163cc5d](https://github.com/gabomdq/SDL_GameControllerDB/tree/163cc5d45e9fc2f1bb2b95ea7eee4bbc9a57955c) | [+29/-8](https://github.com/gabomdq/SDL_GameControllerDB/compare/9db8101...163cc5d) |
|
||||
| Flynn Bravo 5.0.1 | [7efce7d](https://github.com/gabomdq/SDL_GameControllerDB/tree/7efce7d3f309ec1fa409b1af09153f9eb77fbedf) | [-1](https://github.com/gabomdq/SDL_GameControllerDB/compare/163cc5d...7efce7d) |
|
||||
| Flynn Charlie 5.0.2 | [e607703](https://github.com/gabomdq/SDL_GameControllerDB/tree/e607703392145343e8aca42be052121c0b7bd1c9) | [+40/-17](https://github.com/gabomdq/SDL_GameControllerDB/compare/7efce7d...e607703) |
|
||||
| Bradley Alfa 5.1.0 | [2ba9676](https://github.com/gabomdq/SDL_GameControllerDB/tree/2ba96761af795c15e916cc97790b51e09dc0cd54) | [+1/-1](https://github.com/gabomdq/SDL_GameControllerDB/compare/e607703...2ba9676) |
|
||||
| Bradley Charlie 5.1.2 | [4f5d1d4](https://github.com/gabomdq/SDL_GameControllerDB/tree/4f5d1d497985b75f4a83a5de46f596dc4d7f002e) | [+5/-1](https://github.com/gabomdq/SDL_GameControllerDB/compare/2ba9676...4f5d1d4) |
|
||||
| Bradley Delta 5.1.3 | [9b73049](https://github.com/gabomdq/SDL_GameControllerDB/tree/9b73049ee62a2cc862d6ad94c2c777f2e8363a48) | [+4/-1](https://github.com/gabomdq/SDL_GameControllerDB/compare/4f5d1d4...9b73049) |
|
||||
| Bradley Echo 5.1.4 | [6d3801f](https://github.com/gabomdq/SDL_GameControllerDB/tree/6d3801fcfe74b1989de96403b7b560eba72a175c) | [+56/-21](https://github.com/gabomdq/SDL_GameControllerDB/compare/9b73049...6d3801f) |
|
||||
| Gibbs Alfa 6.0.0 | [0562b00](https://github.com/gabomdq/SDL_GameControllerDB/tree/0562b00eaf5c0308c49d329b79263d2dae1c3a85) | [+8/-2](https://github.com/gabomdq/SDL_GameControllerDB/compare/6d3801f...0562b00) |
|
||||
| Khan Alfa 6.1.0 | [436c7e3](https://github.com/gabomdq/SDL_GameControllerDB/tree/436c7e3d54a57189ea0ab44d05f36b7cc7ea496c) | [+31/-16](https://github.com/gabomdq/SDL_GameControllerDB/compare/0562b00...436c7e3) |
|
||||
| Khan Bravo 6.1.1 | [01cca2e](https://github.com/gabomdq/SDL_GameControllerDB/tree/01cca2e77f9bf9f1432be04f876f287eb78297fe) | [+23/-6](https://github.com/gabomdq/SDL_GameControllerDB/compare/436c7e3...01cca2e) |
|
||||
| Khan Charlie 6.1.2 | [6852946](https://github.com/gabomdq/SDL_GameControllerDB/tree/6852946487534c69b7d228fd4eb8c87cf6966475) | [+25/-15](https://github.com/gabomdq/SDL_GameControllerDB/compare/01cca2e...6852946) |
|
||||
| Spock Alfa 7.0.0 | [38bda81](https://github.com/gabomdq/SDL_GameControllerDB/tree/38bda816dc786f18493876f7bc30bc12dfd2636a) | [+15/-1](https://github.com/gabomdq/SDL_GameControllerDB/compare/6852946...38bda81) |
|
||||
| Spock Bravo 7.0.1 | [228d980](https://github.com/gabomdq/SDL_GameControllerDB/tree/228d980d3d791e9df3b096472f6b97459f8709fe) | [+7/-3](https://github.com/gabomdq/SDL_GameControllerDB/compare/38bda81...228d980) |
|
||||
| Spock Charlie 7.0.2 | [c5b4df0](https://github.com/gabomdq/SDL_GameControllerDB/tree/c5b4df0e1061175cb11e3ebbf8045178339864a5) | [+3](https://github.com/gabomdq/SDL_GameControllerDB/compare/228d980...c5b4df0) |
|
||||
| Sulu Alfa 7.1.0 | [a2cf171](https://github.com/gabomdq/SDL_GameControllerDB/tree/a2cf1711b4ebc646a3814705d2fb6aac5707bcae) | [+4/-1](https://github.com/gabomdq/SDL_GameControllerDB/compare/c5b4df0...a2cf171) |
|
||||
| Sulu Bravo 7.1.1 | [cc9f777](https://github.com/gabomdq/SDL_GameControllerDB/tree/cc9f777721f0cb30058d9eef52a295130b734a4a) | [+29/-9](https://github.com/gabomdq/SDL_GameControllerDB/compare/a2cf171...cc9f777) |
|
||||
| MacReady Alfa 8.0.0 | [c56329f](https://github.com/gabomdq/SDL_GameControllerDB/tree/c56329f4df93fc7a780bdbeae47a9c91447b629c) | [+67/-23](https://github.com/gabomdq/SDL_GameControllerDB/compare/cc9f777...c56329f) |
|
||||
| MacReady Bravo 8.0.1 | [721b575](https://github.com/gabomdq/SDL_GameControllerDB/tree/721b575d3053b21d6d30419bf74afb5b1d0fa7a4) | [+5/-5](https://github.com/gabomdq/SDL_GameControllerDB/compare/c56329f...721b575) |
|
||||
| MacReady Charlie 8.0.2 | [721b575](https://github.com/gabomdq/SDL_GameControllerDB/tree/721b575d3053b21d6d30419bf74afb5b1d0fa7a4) | [+0/-0](https://github.com/gabomdq/SDL_GameControllerDB/compare/721b575...721b575) |
|
||||
| MacReady Delta 8.0.3 | [d4ab609](https://github.com/gabomdq/SDL_GameControllerDB/tree/d4ab609121ee6e687bc3d3a7e80244b3b26d1164) | [+5/-3](https://github.com/gabomdq/SDL_GameControllerDB/compare/721b575...d4ab609) |
|
||||
| MacReady Echo 8.0.4 | [6555d47](https://github.com/gabomdq/SDL_GameControllerDB/tree/6555d47ecb5d9eebac0e3d8cd19a545e9d946c40) | [+2/-0](https://github.com/gabomdq/SDL_GameControllerDB/compare/d4ab609...6555d47) |
|
||||
| MacReady Foxtrot 8.0.5 | [037d6a1](https://github.com/gabomdq/SDL_GameControllerDB/tree/037d6a1533ed94fbc6a8c71e6f1f9aff1e46208a) | [+47/-14](https://github.com/gabomdq/SDL_GameControllerDB/compare/6555d47...037d6a1) |
|
||||
| MacReady Golf 8.0.6 | [075c154](https://github.com/gabomdq/SDL_GameControllerDB/tree/075c1549075ef89a397fd7e0663d21e53a2485fd) | [+340/-301](https://github.com/gabomdq/SDL_GameControllerDB/compare/037d6a1...075c154) |
|
||||
| Zhora Alfa 4.0.0 | [967daa8](https://github.com/mdqinc/SDL_GameControllerDB/tree/967daa8f89c48b01ed0f9c6a86ac849930442fc6) | |
|
||||
| Zhora Bravo 4.0.1 | [ccac7cd](https://github.com/mdqinc/SDL_GameControllerDB/tree/ccac7cd97f445955d4437e21c5f82123d9b4349b) | [+1](https://github.com/mdqinc/SDL_GameControllerDB/compare/967daa8...ccac7cd) |
|
||||
| Zhora Charlie 4.0.2 | [ff26eb0](https://github.com/mdqinc/SDL_GameControllerDB/tree/ff26eb04d0fe18356985d968119429d6012e7d75) | [+8/-3](https://github.com/mdqinc/SDL_GameControllerDB/compare/ccac7cd...ff26eb0) |
|
||||
| Zhora Delta 4.0.3 | [ad02da5](https://github.com/mdqinc/SDL_GameControllerDB/tree/ad02da5a95ca8005f2c1facc11a5a52f8522f0ee) | [+4/-5](https://github.com/mdqinc/SDL_GameControllerDB/compare/ff26eb0...ad02da5) |
|
||||
| Zohra Echo 4.0.4 | [c203690](https://github.com/mdqinc/SDL_GameControllerDB/tree/c203690b1e13980699802918d362cd9dadf89bd0) | [+8/-4](https://github.com/mdqinc/SDL_GameControllerDB/compare/ad02da5...c203690) |
|
||||
| Zhora Foxtrot 4.0.5 | [9db8101](https://github.com/mdqinc/SDL_GameControllerDB/tree/9db8101a5780d1b0721bf6de385e6ffe0d07dfc7) | [+6](https://github.com/mdqinc/SDL_GameControllerDB/compare/c203690...9db8101) |
|
||||
| Flynn Alfa 5.0.0 | [163cc5d](https://github.com/mdqinc/SDL_GameControllerDB/tree/163cc5d45e9fc2f1bb2b95ea7eee4bbc9a57955c) | [+29/-8](https://github.com/mdqinc/SDL_GameControllerDB/compare/9db8101...163cc5d) |
|
||||
| Flynn Bravo 5.0.1 | [7efce7d](https://github.com/mdqinc/SDL_GameControllerDB/tree/7efce7d3f309ec1fa409b1af09153f9eb77fbedf) | [-1](https://github.com/mdqinc/SDL_GameControllerDB/compare/163cc5d...7efce7d) |
|
||||
| Flynn Charlie 5.0.2 | [e607703](https://github.com/mdqinc/SDL_GameControllerDB/tree/e607703392145343e8aca42be052121c0b7bd1c9) | [+40/-17](https://github.com/mdqinc/SDL_GameControllerDB/compare/7efce7d...e607703) |
|
||||
| Bradley Alfa 5.1.0 | [2ba9676](https://github.com/mdqinc/SDL_GameControllerDB/tree/2ba96761af795c15e916cc97790b51e09dc0cd54) | [+1/-1](https://github.com/mdqinc/SDL_GameControllerDB/compare/e607703...2ba9676) |
|
||||
| Bradley Charlie 5.1.2 | [4f5d1d4](https://github.com/mdqinc/SDL_GameControllerDB/tree/4f5d1d497985b75f4a83a5de46f596dc4d7f002e) | [+5/-1](https://github.com/mdqinc/SDL_GameControllerDB/compare/2ba9676...4f5d1d4) |
|
||||
| Bradley Delta 5.1.3 | [9b73049](https://github.com/mdqinc/SDL_GameControllerDB/tree/9b73049ee62a2cc862d6ad94c2c777f2e8363a48) | [+4/-1](https://github.com/mdqinc/SDL_GameControllerDB/compare/4f5d1d4...9b73049) |
|
||||
| Bradley Echo 5.1.4 | [6d3801f](https://github.com/mdqinc/SDL_GameControllerDB/tree/6d3801fcfe74b1989de96403b7b560eba72a175c) | [+56/-21](https://github.com/mdqinc/SDL_GameControllerDB/compare/9b73049...6d3801f) |
|
||||
| Gibbs Alfa 6.0.0 | [0562b00](https://github.com/mdqinc/SDL_GameControllerDB/tree/0562b00eaf5c0308c49d329b79263d2dae1c3a85) | [+8/-2](https://github.com/mdqinc/SDL_GameControllerDB/compare/6d3801f...0562b00) |
|
||||
| Khan Alfa 6.1.0 | [436c7e3](https://github.com/mdqinc/SDL_GameControllerDB/tree/436c7e3d54a57189ea0ab44d05f36b7cc7ea496c) | [+31/-16](https://github.com/mdqinc/SDL_GameControllerDB/compare/0562b00...436c7e3) |
|
||||
| Khan Bravo 6.1.1 | [01cca2e](https://github.com/mdqinc/SDL_GameControllerDB/tree/01cca2e77f9bf9f1432be04f876f287eb78297fe) | [+23/-6](https://github.com/mdqinc/SDL_GameControllerDB/compare/436c7e3...01cca2e) |
|
||||
| Khan Charlie 6.1.2 | [6852946](https://github.com/mdqinc/SDL_GameControllerDB/tree/6852946487534c69b7d228fd4eb8c87cf6966475) | [+25/-15](https://github.com/mdqinc/SDL_GameControllerDB/compare/01cca2e...6852946) |
|
||||
| Spock Alfa 7.0.0 | [38bda81](https://github.com/mdqinc/SDL_GameControllerDB/tree/38bda816dc786f18493876f7bc30bc12dfd2636a) | [+15/-1](https://github.com/mdqinc/SDL_GameControllerDB/compare/6852946...38bda81) |
|
||||
| Spock Bravo 7.0.1 | [228d980](https://github.com/mdqinc/SDL_GameControllerDB/tree/228d980d3d791e9df3b096472f6b97459f8709fe) | [+7/-3](https://github.com/mdqinc/SDL_GameControllerDB/compare/38bda81...228d980) |
|
||||
| Spock Charlie 7.0.2 | [c5b4df0](https://github.com/mdqinc/SDL_GameControllerDB/tree/c5b4df0e1061175cb11e3ebbf8045178339864a5) | [+3](https://github.com/mdqinc/SDL_GameControllerDB/compare/228d980...c5b4df0) |
|
||||
| Sulu Alfa 7.1.0 | [a2cf171](https://github.com/mdqinc/SDL_GameControllerDB/tree/a2cf1711b4ebc646a3814705d2fb6aac5707bcae) | [+4/-1](https://github.com/mdqinc/SDL_GameControllerDB/compare/c5b4df0...a2cf171) |
|
||||
| Sulu Bravo 7.1.1 | [cc9f777](https://github.com/mdqinc/SDL_GameControllerDB/tree/cc9f777721f0cb30058d9eef52a295130b734a4a) | [+29/-9](https://github.com/mdqinc/SDL_GameControllerDB/compare/a2cf171...cc9f777) |
|
||||
| MacReady Alfa 8.0.0 | [c56329f](https://github.com/mdqinc/SDL_GameControllerDB/tree/c56329f4df93fc7a780bdbeae47a9c91447b629c) | [+67/-23](https://github.com/mdqinc/SDL_GameControllerDB/compare/cc9f777...c56329f) |
|
||||
| MacReady Bravo 8.0.1 | [721b575](https://github.com/mdqinc/SDL_GameControllerDB/tree/721b575d3053b21d6d30419bf74afb5b1d0fa7a4) | [+5/-5](https://github.com/mdqinc/SDL_GameControllerDB/compare/c56329f...721b575) |
|
||||
| MacReady Charlie 8.0.2 | [721b575](https://github.com/mdqinc/SDL_GameControllerDB/tree/721b575d3053b21d6d30419bf74afb5b1d0fa7a4) | [+0/-0](https://github.com/mdqinc/SDL_GameControllerDB/compare/721b575...721b575) |
|
||||
| MacReady Delta 8.0.3 | [d4ab609](https://github.com/mdqinc/SDL_GameControllerDB/tree/d4ab609121ee6e687bc3d3a7e80244b3b26d1164) | [+5/-3](https://github.com/mdqinc/SDL_GameControllerDB/compare/721b575...d4ab609) |
|
||||
| MacReady Echo 8.0.4 | [6555d47](https://github.com/mdqinc/SDL_GameControllerDB/tree/6555d47ecb5d9eebac0e3d8cd19a545e9d946c40) | [+2/-0](https://github.com/mdqinc/SDL_GameControllerDB/compare/d4ab609...6555d47) |
|
||||
| MacReady Foxtrot 8.0.5 | [037d6a1](https://github.com/mdqinc/SDL_GameControllerDB/tree/037d6a1533ed94fbc6a8c71e6f1f9aff1e46208a) | [+47/-14](https://github.com/mdqinc/SDL_GameControllerDB/compare/6555d47...037d6a1) |
|
||||
| MacReady Golf 8.0.6 | [075c154](https://github.com/mdqinc/SDL_GameControllerDB/tree/075c1549075ef89a397fd7e0663d21e53a2485fd) | [+340/-301](https://github.com/mdqinc/SDL_GameControllerDB/compare/037d6a1...075c154) |
|
||||
|
||||
@@ -41,15 +41,28 @@ You can name your branch whatever you want, but it's recommended to name it some
|
||||
|
||||
The limit is your imagination. You can add new features, fix bugs, add new mods, or even change the way the game works. We will demonstrate this by creating a mod that changes the speed of the day/night cycle.
|
||||
|
||||
Let's being by finding where the time is updated. Thankfully in the save editor we have a slider already hooked up to the time of day so we can check there for reference. The save editor file is at `soh/soh/Enhancements/debugger/debugSaveEditor.cpp`, if we do a quick search within that file for time we will find the following at line 400:
|
||||
Let's begin by finding where the time is updated. Thankfully in the save editor we have a slider already hooked up to the time of day so we can check there for reference. The save editor file is at `soh/soh/Enhancements/debugger/debugSaveEditor.cpp`, if we do a quick search within that file for time we will find the following at around line 217:
|
||||
|
||||
```cpp
|
||||
const uint16_t dayTimeMin = 0;
|
||||
const uint16_t dayTimeMax = 0xFFFF;
|
||||
ImGui::SliderScalar("Time", ImGuiDataType_U16, &gSaveContext.dayTime, &dayTimeMin, &dayTimeMax);
|
||||
SliderInt("Time", (int32_t*)&gSaveContext.dayTime, intSliderOptionsBase.Min(0).Max(0xFFFF).Tooltip("Time of day"));
|
||||
if (Button("Dawn", buttonOptionsBase)) {
|
||||
gSaveContext.dayTime = 0x4000;
|
||||
}
|
||||
ImGui::SameLine();
|
||||
if (Button("Noon", buttonOptionsBase)) {
|
||||
gSaveContext.dayTime = 0x8000;
|
||||
}
|
||||
ImGui::SameLine();
|
||||
if (Button("Sunset", buttonOptionsBase)) {
|
||||
gSaveContext.dayTime = 0xC001;
|
||||
}
|
||||
ImGui::SameLine();
|
||||
if (Button("Midnight", buttonOptionsBase)) {
|
||||
gSaveContext.dayTime = 0;
|
||||
}
|
||||
```
|
||||
|
||||
So this tells us that `gSaveContext.dayTime` is what we're looking for. Let's now do a global search for this to see if we can find where it is updated. We find the following in `soh/src/code/z_kankyo.c` line 925:
|
||||
So this tells us that `gSaveContext.dayTime` is what we're looking for. Let's now do a global search for this to see if we can find where it is updated. We find the following in `soh/src/code/z_kankyo.c` around line 925:
|
||||
|
||||
```cpp
|
||||
if (IS_DAY || gTimeIncrement >= 0x190) {
|
||||
@@ -71,16 +84,19 @@ if (IS_DAY || gTimeIncrement >= 0x190) {
|
||||
}
|
||||
```
|
||||
|
||||
Rebuild the game and launch it, then load a save file. You should see that the time of day is now moving much faster. Terrific! While we could wrap this up and call it a day, we could make this user configurable by making a few more changes. I think a slider would be good for this, there's a slider in the cheat menu that we can use as a reference. Let's find it in `soh/soh/SohMenuBar.cpp` around line 1120:
|
||||
Rebuild the game and launch it, then load a save file. You should see that the time of day is now moving much faster. Terrific! While we could wrap this up and call it a day, we could make this user configurable by making a few more changes. I think a slider would be good for this, there's a slider in the cheat menu that we can use as a reference. Let's find it in `soh/soh/SohGui/SohMenuEnhancements.cpp` around line 1565:
|
||||
|
||||
```cpp
|
||||
UIWidgets::EnhancementSliderFloat("Hookshot Reach Multiplier: %.1fx", "##gCheatHookshotReachMultiplier", "gCheatHookshotReachMultiplier", 1.0f, 5.0f, "", 1.0f, false);
|
||||
AddWidget(path, "Hookshot Reach Multiplier: %.2fx", WIDGET_CVAR_SLIDER_FLOAT)
|
||||
.CVar(CVAR_CHEAT("HookshotReachMultiplier"))
|
||||
.Options(FloatSliderOptions().Format("%.2f").Min(1.0f).Max(5.0f));
|
||||
```
|
||||
|
||||
The float values being passed in here are `minimum`, `maximum`, and `default` respectively. We'll make our minimum 0.2 to allow it to move slower, and our maximum 5.0 to allow it to move up to 5x faster. We'll also set the default to 1.0 so that it doesn't change the behavior by default. Copy this line and paste it below, then make the relevant changes:
|
||||
This adds a `Widget` which sets a CVar, which then sets the options of the slider. We'll make our minimum 0.2 to allow it to move slower, and our maximum 5.0 to allow it to move up to 5x faster. We'll also set the default to 1.0 so that it doesn't change the behavior by default. Copy this line and paste it below, then make the relevant changes:
|
||||
|
||||
```cpp
|
||||
UIWidgets::EnhancementSliderFloat("Time Multiplier: %.1fx", "##gCheatTimeMultiplier", "gCheatTimeMultiplier", 0.2f, 5.0f, "", 1.0f, false);
|
||||
AddWidget(path, "Time Multiplier: %.2fx", WIDGET_CVAR_SLIDER_FLOAT)
|
||||
.CVar(CVAR_CHEAT("TimeOfDayMultiplier"))
|
||||
.Options(FloatSliderOptions().Format("%.2f").Min(0.2f).Max(5.0f).DefaultValue(1.0f));
|
||||
```
|
||||
|
||||
Now we need to replace our hard coded values with the new variable. We can do this by replacing the `10` with a cvar call
|
||||
@@ -88,10 +104,10 @@ Now we need to replace our hard coded values with the new variable. We can do th
|
||||
```diff
|
||||
if (IS_DAY || gTimeIncrement >= 0x190) {
|
||||
- gSaveContext.dayTime += gTimeIncrement * 10;
|
||||
+ gSaveContext.dayTime += gTimeIncrement * CVarGetFloat("gCheatTimeMultiplier", 1.0f);
|
||||
+ gSaveContext.dayTime += gTimeIncrement * CVarGetFloat(CVAR_CHEAT("TimeOfDayMultiplier"),1.0f);
|
||||
} else {
|
||||
- gSaveContext.dayTime += gTimeIncrement * 2 * 10;
|
||||
+ gSaveContext.dayTime += gTimeIncrement * 2 * CVarGetFloat("gCheatTimeMultiplier", 1.0f);
|
||||
+ gSaveContext.dayTime += gTimeIncrement * 2 * CVarGetFloat(CVAR_CHEAT("TimeOfDayMultiplier"),1.0f);
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
## About Versions
|
||||
|
||||
The Ship of Harkinian's versioning system is a unique system, comprising of a three-numbered version (`x.y.z`) and a version codename. The main version number `x` signifies major feature updates that require a new `oot.otr` file. The version number `y` signifies major feature updates and bugfixes that do not require a new `oot.otr` file. The version number `z` signifies minor updates such as a collection of bugfixes.
|
||||
The Ship of Harkinian's versioning system is a unique system, comprising of a three-numbered version (`x.y.z`) and a version codename. The main version number `x` signifies major feature updates that require a new `oot.o2r` file. The version number `y` signifies major feature updates and bugfixes that do not require a new `oot.o2r` file. The version number `z` signifies minor updates such as a collection of bugfixes.
|
||||
|
||||
The version codename consists of a sci-fi film character followed by a phonetic alphabet code word. The film character represents a major release version which increments with the major `x` or `y` version bumps. The code word represents a minor release version which increments with the minor `z` version bump.
|
||||
|
||||
954
lenguajes/Espanol.json
Normal file
954
lenguajes/Espanol.json
Normal file
@@ -0,0 +1,954 @@
|
||||
{
|
||||
"language": "Español",
|
||||
"strings": {
|
||||
"English": "Inglés",
|
||||
"German": "Alemán",
|
||||
"French": "Francés",
|
||||
"Japanese": "Japonés",
|
||||
"Red": "Rojo",
|
||||
"Dark Red": "Rojo Oscuro",
|
||||
"Orange": "Naranja",
|
||||
"Green": "Verde",
|
||||
"Dark Green": "Verde Oscuro",
|
||||
"Light Blue": "Azul Claro",
|
||||
"Blue": "Azul",
|
||||
"Dark Blue": "Azul Oscuro",
|
||||
"Indigo": "Índigo",
|
||||
"Violet": "Violeta",
|
||||
"Purple": "Púrpura",
|
||||
"Brown": "Marrón",
|
||||
"Gray": "Gris",
|
||||
"Dark Gray": "Gris Oscuro",
|
||||
"Three-Point": "Tres Puntos",
|
||||
"Linear": "Lineal",
|
||||
"None": "Ninguno",
|
||||
"Trace": "Rastro",
|
||||
"Debug": "Depuración",
|
||||
"Info": "Información",
|
||||
"Warn": "Advertencia",
|
||||
"Error": "Error",
|
||||
"Critical": "Crítico",
|
||||
"Off": "Apagado",
|
||||
"Top Left": "Superior Izquierda",
|
||||
"Top Right": "Superior Derecha",
|
||||
"Bottom Left": "Inferior Izquierda",
|
||||
"Bottom Right": "Inferior Derecha",
|
||||
"Hidden": "Oculto",
|
||||
"Normal": "Normal",
|
||||
"Unbreakable": "Inquebrantable",
|
||||
"Unbreakable + Always on Fire": "Inquebrantable + Siempre en Llamas",
|
||||
"Navi": "Navi",
|
||||
"NPCs": "NPCs",
|
||||
"All": "Todos",
|
||||
"Disabled": "Desactivado",
|
||||
"Junk Items": "Objetos Basura",
|
||||
"All Items": "Todos los Objetos",
|
||||
"Both": "Ambos",
|
||||
"Texture Only": "Solo Textura",
|
||||
"Size Only": "Solo Tamaño",
|
||||
"Ocarina of Time": "Ocarina del Tiempo",
|
||||
"Any Ocarina": "Cualquier Ocarina",
|
||||
"Always": "Siempre",
|
||||
"Once": "Una vez",
|
||||
"Never": "Nunca",
|
||||
"Vanilla (1x)": "Original (1x)",
|
||||
"Double (2x)": "Doble (2x)",
|
||||
"Quadruple (4x)": "Cuádruple (4x)",
|
||||
"Octuple (8x)": "Óctuple (8x)",
|
||||
"Foolish (16x)": "Absurdo (16x)",
|
||||
"Ridiculous (32x)": "Ridículo (32x)",
|
||||
"Merciless (64x)": "Cruel (64x)",
|
||||
"Pure Torture (128x)": "Pura Tortura (128x)",
|
||||
"OHKO (256x)": "KO (256x)",
|
||||
"No Damage": "Sin Daño",
|
||||
"0.25 Hearts": "0.25 Corazones",
|
||||
"0.5 Hearts": "0.5 Corazones",
|
||||
"1 Heart": "1 Corazón",
|
||||
"2 Hearts": "2 Corazones",
|
||||
"4 Hearts": "4 Corazones",
|
||||
"8 Hearts": "8 Corazones",
|
||||
"Only in Rando": "Solo en Rando",
|
||||
"Child Toggle": "Cambiar Niño",
|
||||
"Both Ages": "Ambas Edades",
|
||||
"Consistent Vanish": "Desvanecer Consistente",
|
||||
"No Vanish": "Sin Desvanecer",
|
||||
"Random": "Aleatorio",
|
||||
"Random (Seeded)": "Aleatorio (Semilla)",
|
||||
"Dungeons": "Mazmorras",
|
||||
"Dungeons (Vanilla)": "Mazmorras (Original)",
|
||||
"Dungeons (MQ)": "Mazmorras (MQ)",
|
||||
"Dungeons Random": "Mazmorras Aleatorio",
|
||||
"Dungeons Random (Seeded)": "Mazmorras Aleatorio (Semilla)",
|
||||
"Vanilla": "Original",
|
||||
"Maxed": "Maximizado",
|
||||
"Default": "Por Defecto",
|
||||
"Authentic": "Auténtico",
|
||||
"File Select": "Selección de Archivo",
|
||||
"Vanilla Plus": "Original Plus",
|
||||
"Enhanced": "Mejorado",
|
||||
"Randomizer": "Randomizer",
|
||||
"Small": "Pequeño",
|
||||
"Large": "Grande",
|
||||
"X-Large": "Extra Grande",
|
||||
"NTSC 1.0": "NTSC 1.0",
|
||||
"NTSC 1.1": "NTSC 1.1",
|
||||
"NTSC 1.2": "NTSC 1.2",
|
||||
"NTSC-U GC": "NTSC-U GC",
|
||||
"NTSC-J GC": "NTSC-J GC",
|
||||
"NTSC-J GC (Collector's Edition)": "NTSC-J GC (Edición Coleccionista)",
|
||||
"NTSC-U MQ": "NTSC-U MQ",
|
||||
"NTSC-J MQ": "NTSC-J MQ",
|
||||
"PAL 1.0": "PAL 1.0",
|
||||
"PAL 1.1": "PAL 1.1",
|
||||
"PAL GC": "PAL GC",
|
||||
"PAL MQ": "PAL MQ",
|
||||
"PAL GC-D": "PAL GC-D",
|
||||
"PAL MQ-D": "PAL MQ-D",
|
||||
"IQUE CN": "IQUE CN",
|
||||
"IQUE TW": "IQUE TW",
|
||||
"UNKNOWN": "DESCONOCIDO",
|
||||
"Changes the Theme of the Menu Widgets.": "Cambia el tema de los widgets del menú.",
|
||||
"Allows controller navigation of the port menu": "Permite navegación con controlador del menú de puertos",
|
||||
"CAUTION: This will disable game inputs while the menu is visible.": "ADVERTENCIA: Esto deshabilitará las entradas del juego mientras el menú sea visible.",
|
||||
"D-pad to move between items, A to select, B to move up in scope.": "D-pad para mover entre elementos, A para seleccionar, B para subir.",
|
||||
"Sets the opacity of the background of the port menu.": "Establece la opacidad del fondo del menú de puertos.",
|
||||
"Makes the cursor always visible, even in full screen.": "Hace el cursor siempre visible, incluso en pantalla completa.",
|
||||
"Displays the Search menu as a sidebar entry in Settings instead of in the header.": "Muestra el menú de búsqueda como entrada lateral en Configuración.",
|
||||
"Search input box gets autofocus when visible.": "La caja de búsqueda obtiene enfoque automático cuando es visible.",
|
||||
"Allows pressing the Tab key to toggle alternate assets": "Permite presionar Tab para alternar assets alternativos",
|
||||
"Opens the folder that contains the save and mods folders, etc.": "Abre la carpeta que contiene guardados y mods.",
|
||||
"Configure what happens when starting or resetting the game.": "Configura qué sucede al iniciar o reiniciar el juego.",
|
||||
"Default: LUS logo -> N64 logo": "Por defecto: Logo LUS -> Logo N64",
|
||||
"Authentic: N64 logo only": "Auténtico: Solo logo N64",
|
||||
"File Select: Skip to file select menu": "Selección de Archivo: Saltar al menú de selección",
|
||||
"Enables text to speech for in game dialog": "Habilita texto a voz para diálogos del juego",
|
||||
"Disables the automatic re-centering of the camera when idle.": "Deshabilita el recentrado automático de la cámara.",
|
||||
"EXPERIMENTAL": "EXPERIMENTAL",
|
||||
"Changes the scaling of the ImGui menu elements.": "Cambia la escala de los elementos del menú ImGui.",
|
||||
"Ship Of Harkinian": "Ship Of Harkinian",
|
||||
"Branch": "Rama",
|
||||
"Commit": "Commit",
|
||||
"Master Volume: %d %%": "Volumen Principal: %d %%",
|
||||
"Main Music Volume: %d %%": "Volumen de Música Principal: %d %%",
|
||||
"Sub Music Volume: %d %%": "Volumen de Música Secundaria: %d %%",
|
||||
"Fanfare Volume: %d %%": "Volumen de Fanfarria: %d %%",
|
||||
"Sound Effects Volume: %d %%": "Volumen de Efectos de Sonido: %d %%",
|
||||
"Audio API (Needs reload)": "API de Audio (Necesita recargar)",
|
||||
"Uses Matrix Interpolation to create extra frames": "Usa Interpolación de Matrices para crear cuadros extra",
|
||||
"Toggles Fullscreen On/Off.": "Alternar Pantalla Completa.",
|
||||
"Multiplies your output resolution by the value inputted": "Multiplica tu resolución de salida por el valor introducido",
|
||||
"Activates MSAA (multi-sample anti-aliasing) from 2x up to 8x": "Activa MSAA (antialiasing multiamuestra) de 2x hasta 8x",
|
||||
"Original (%d)": "Original (%d)",
|
||||
"Match interpolation value to the refresh rate of your display.": "Coincidir valor de interpolación con tasa de refresco.",
|
||||
"Renderer API (Needs reload)": "API del Renderizador (Necesita recargar)",
|
||||
"Removes tearing, but clamps your max FPS to your displays refresh rate.": "Elimina tearing, pero limita FPS máximos.",
|
||||
"Enables Windowed Fullscreen Mode.": "Habilita Modo Ventana Pantalla Completa.",
|
||||
"Allows multiple windows to be opened at once.": "Permite múltiples ventanas a la vez.",
|
||||
"Sets the applied Texture Filtering.": "Establece el filtro de textura aplicado.",
|
||||
"Advanced Graphics Options": "Opciones Avanzadas de Gráficos",
|
||||
"Controller Bindings": "Botones del Controlador",
|
||||
"Enables the separate Bindings Window.": "Habilita la ventana de botones separada.",
|
||||
"Input Viewer": "Visor de Entrada",
|
||||
"Toggles the Input Viewer.": "Alterna el visor de entrada.",
|
||||
"Input Viewer Settings": "Configuración del Visor de Entrada",
|
||||
"Which corner of the screen notifications appear in.": "En qué esquina aparecen las notificaciones.",
|
||||
"Duration (seconds):": "Duración (segundos):",
|
||||
"How long notifications are displayed for.": "Cuánto tiempo se muestran las notificaciones.",
|
||||
"Background Opacity": "Opacidad del Fondo",
|
||||
"How opaque the background of notifications is.": "Qué tan opaco es el fondo de notificaciones.",
|
||||
"Size:": "Tamaño:",
|
||||
"How large notifications are.": "Qué tan grandes son las notificaciones.",
|
||||
"Test Notification": "Probar Notificación",
|
||||
"This is a test.": "Esto es una prueba.",
|
||||
"Displays a test notification.": "Muestra una notificación de prueba.",
|
||||
"Quality of Life": "Calidad de Vida",
|
||||
"Saving": "Guardado",
|
||||
"Save the game automatically on a 3 minute interval": "Guardar automáticamente cada 3 minutos",
|
||||
"When loading a save, places Link at the last entrance": "Al cargar, coloca a Link en la última entrada",
|
||||
"Containers Match Contents": "Contenedores equal Contenido",
|
||||
"Chests of Agony": "Cofres de Agonía",
|
||||
"Time of Day": "Hora del Día",
|
||||
"Nighttime GS Always Spawn": "GS Nocturno Siempre Aparece",
|
||||
"Pull Grave During the Day": "Tumbar de Día",
|
||||
"Dampe Appears All Night": "Dampe Aparece Toda la Noche",
|
||||
"Exit Market at Night": "Salir del Mercado de Noche",
|
||||
"Shops and Games Always Open": "Tiendas y Juegos Siempre Abiertos",
|
||||
"Pause Menu": "Menú de Pausa",
|
||||
"Allow the Cursor to be on Any Slot": "Permitir Cursor en Cualquier Ranura",
|
||||
"Pause Warp": "Teletransporte de Pausa",
|
||||
"Controls": "Controles",
|
||||
"Answer Navi Prompt with L Button": "Responder a Navi con Botón L",
|
||||
"Don't Require Input for Credits Sequence": "No Requerir Input para Secuencia de Créditos",
|
||||
"Include Held Inputs at the Start of Pause Buffer Input Window": "Incluir Inputs Sostenidos al Inicio de Ventana de Pausa",
|
||||
"Pause Buffer Input Window: %d frames": "Ventana de Input de Pausa: %d cuadros",
|
||||
"Simulated Input Lag: %d frames": "Lag de Input Simulado: %d cuadros",
|
||||
"Item Count Messages": "Mensajes de Cantidad de Objetos",
|
||||
"Gold Skulltula Tokens": "Tokens de Gold Skulltula",
|
||||
"Pieces of Heart": "Piezas de Corazón",
|
||||
"Heart Containers": "Contenedores de Corazón",
|
||||
"Misc": "Varios",
|
||||
"Disable Crit Wiggle": "Desactivar Crítico",
|
||||
"Better Owl": "Mejor Búho",
|
||||
"Quit Fishing at Door": "Salir de Pescar en Puerta",
|
||||
"Instant Putaway": "Guardar Instantáneo",
|
||||
"Navi Timer Resets on Scene Change": "Temporizador de Navi Resetea al Cambiar Escena",
|
||||
"Link's Cow in Both Time Periods": "Vaca de Link en Ambos Períodos",
|
||||
"Play Zelda's Lullaby to Open Sleeping Waterfall": "Tocar Canción de Zelda para Abrir Cascada Dormida",
|
||||
"Skips & Speed-ups": "Saltos y Aceleraciones",
|
||||
"Cutscenes": "Cinematicas",
|
||||
"Skip Intro": "Saltar Introducción",
|
||||
"Skip Entrance Cutscenes": "Saltar Cinemáticas de Entrada",
|
||||
"Skip Story Cutscenes": "Saltar Cinemáticas de Historia",
|
||||
"Skip Song Cutscenes": "Saltar Cinemáticas de Canciones",
|
||||
"Skip Boss Introductions": "Saltar Introducciones de Jefes",
|
||||
"Quick Boss Deaths": "Muertes Rápidas de Jefes",
|
||||
"Skip One Point Cutscenes": "Saltar Cinemáticas de Un Punto",
|
||||
"Skip Owl Interactions": "Saltar Interacciones del Búho",
|
||||
"Skip Misc Interactions": "Saltar Interacciones Varias",
|
||||
"Disable Title Card": "Desactivar Tarjeta de Título",
|
||||
"Exclude Glitch-Aiding Cutscenes": "Excluir Cinemáticas de Glitch",
|
||||
"Text": "Texto",
|
||||
"Skip Pickup Messages": "Saltar Mensajes de Recolección",
|
||||
"Skip Forced Dialog": "Saltar Diálogo Forzado",
|
||||
"Skip Text": "Saltar Texto",
|
||||
"Text Speed: %dx": "Velocidad de Texto: %dx",
|
||||
"Slow Text Speed: %dx": "Velocidad de Texto Lento: %dx",
|
||||
"Animations": "Animaciones",
|
||||
"Faster Heavy Block Lift": "Levantar Bloque Pesado Más Rápido",
|
||||
"Fast Chests": "Cofres Rápidos",
|
||||
"Skip Water Take Breath Animation": "Saltar Animación de Respirar Bajo Agua",
|
||||
"Vine/Ladder Climb Speed +%d": "Velocidad de Escalar Enredadera/Escalera +%d",
|
||||
"Block Pushing Speed +%d": "Velocidad de Empujar Bloques +%d",
|
||||
"Crawl Speed %dx": "Velocidad de Arrastre %dx",
|
||||
"King Zra Speed: %.2fx": "Velocidad de Rey Zora: %.2fx",
|
||||
"Skip Child Stealth": "Saltar Sigilo de Niño",
|
||||
"Skip Tower Escape": "Saltar Escape de Torre",
|
||||
"Skip Scarecrow's Song": "Saltar Canción del Espantapájaros",
|
||||
"Faster Rupee Accumulator": "Acumulador de Rupias Más Rápido",
|
||||
"No Skulltula Freeze": "Sin Congelamiento de Skulltula",
|
||||
"Skip Save Confirmation": "Saltar Confirmación de Guardado",
|
||||
"Link as Default File Name": "Link como Nombre de Archivo por Defecto",
|
||||
"Biggoron Forge Time: %d days": "Tiempo de Forja de Biggoron: %d días",
|
||||
"Mods": "Mods",
|
||||
"Use Alternate Assets": "Usar Assets Alternativos",
|
||||
"Disable Bomb Billboarding": "Desactivar Billboard de Bombas",
|
||||
"Disable Grotto Fixed Rotation": "Desactivar Rotación Fija de Grotto",
|
||||
"Ingame Text Spacing: %d": "Espaciado de Texto en Juego: %d",
|
||||
"Models & Textures": "Modelos y Texturas",
|
||||
"Disable LOD": "Desactivar LOD",
|
||||
"Enemy Health Bars": "Barras de Salud de Enemigos",
|
||||
"Enable 3D Dropped Items/Projectiles": "Habilitar Objetos 3D Lanzados",
|
||||
"Animated Link in Pause Menu": "Link Animado en Menú de Pausa",
|
||||
"Show Age-Dependent Equipment": "Mostrar Equipo Dependiente de Edad",
|
||||
"Scale Adult Equipment as Child": "Escalar Equipo de Adulto como Niño",
|
||||
"Show Gauntlets in First Person": "Mostrar Guanteletes en Primera Persona",
|
||||
"Show Chains on Both Sides of Locked Doors": "Mostrar Cadenas en Ambos Lados de Puertas Cerradas",
|
||||
"Color Temple of Time's Medallions": "Colorear Medallones del Templo del Tiempo",
|
||||
"UI": "Interfaz",
|
||||
"Minimal UI": "Interfaz Mínima",
|
||||
"Disable Hot/Underwater Warning Text": "Desactivar Texto de Advertencia Calor/Submarino",
|
||||
"Remember Minimap State Between Areas": "Recordar Estado del Minimapa Entre Áreas",
|
||||
"Visual Stone of Agony": "Piedra Visual de Agonía",
|
||||
"Disable HUD Heart Animations": "Desactivar Animaciones de Corazones HUD",
|
||||
"Glitch Line-up Tick": "Ticks de Alineación de Glitch",
|
||||
"Disable Black Bar Letterboxes": "Desactivar Carteleras Negras",
|
||||
"Dynamic Wallet Icon": "Icono de Billetera Dinámico",
|
||||
"Always Show Dungeon Entrances": "Siempre Mostrar Entradas de Mazmorras",
|
||||
"More Info in File Select": "Más Info en Selección de Archivo",
|
||||
"Better Ammo Rendering in Pause Menu": "Mejor Renderizado de Munición en Pausa",
|
||||
"Enable Passage of Time on File Select": "Habilitar Paso del Tiempo en Selección",
|
||||
"Misc.": "Varios",
|
||||
"N64 Mode": "Modo N64",
|
||||
"Remove Spin Attack Darkness": "Remover Oscuridad de Ataque Giratorio",
|
||||
"Draw Distance": "Distancia de Dibujo",
|
||||
"Increase Actor Draw Distance: %dx": "Aumentar Distancia de Dibujo de Actores: %dx",
|
||||
"Kokiri Draw Distance": "Distancia de Dibujo Kokiri",
|
||||
"Widescreen Actor Culling": "Culling de Actores Widescreen",
|
||||
"Cull Glitch Useful Actors": "Culling de Actores Útiles para Glitch",
|
||||
"Items": "Objetos",
|
||||
"Equipment": "Equipo",
|
||||
"Equip Items on Dpad": "Equipar Objetos en Dpad",
|
||||
"Assignable Tunics and Boots": "Túnicas y Botas Asignables",
|
||||
"Equipment Toggle": "Alternar Equipo",
|
||||
"Allow Strength Equipment to be Toggled": "Permitir Alternar Equipo de Fuerza",
|
||||
"Sword Toggle Options": "Opciones de Alternar Espada",
|
||||
"Ask to Equip New Items": "Preguntar para Equipar Nuevos Objetos",
|
||||
"Ocarina": "Ocarina",
|
||||
"Prevent Dropped Ocarina Inputs": "Prevenir Inputs de Ocarina Suelta",
|
||||
"Fast Ocarina Playback": "Reproducción Rápida de Ocarina",
|
||||
"Time Travel with Song of Time": "Viajar en el Tiempo con Canción del Tiempo",
|
||||
"Masks": "Máscaras",
|
||||
"Bunny Hood Effect": "Efecto de Máscara de Conejo",
|
||||
"Masks Equippable as Adult": "Máscaras Equipables como Adulto",
|
||||
"Persistent Masks": "Máscaras Persistentes",
|
||||
"Invisible Bunny Hood": "Máscara de Conejo Invisible",
|
||||
"Mask Select in Inventory": "Selección de Máscara en Inventario",
|
||||
"Explosives": "Explosivos",
|
||||
"Deku Nuts Explode Bombs": "Nueces Deku Explotan Bombas",
|
||||
"Remove Explosive Limit": "Remover Límite de Explosivos",
|
||||
"Static Explosion Radius": "Radio de Explosión Estático",
|
||||
"Prevent Bombchus Forcing First-Person": "Prevenir Bombchus Forzando Primera Persona",
|
||||
"Better Bombchu Shopping": "Mejor Compra de Bombchus",
|
||||
"Bow / Slingshot": "Arco/Honda",
|
||||
"Equip Multiple Arrows at Once": "Equipar Múltiples Flechas a la Vez",
|
||||
"Skip Magic Arrow Equip Animation": "Saltar Animación de Equipar Flecha Mágica",
|
||||
"Blue Fire Arrows": "Flechas de Fuego Azul",
|
||||
"Sunlight Arrows": "Flechas de Luz Solar",
|
||||
"Bow as Child/Slingshot as Adult": "Arco como Niño/Honda como Adulto",
|
||||
"Aiming Reticle for the Bow/Slingshot": "Retícula de Puntería para Arco/Honda",
|
||||
"Hookshot": "Gancho",
|
||||
"Targetable Hookshot Reticle": "Retícula de Gancho Dirigible",
|
||||
"Boomerang": "Bumerang",
|
||||
"Instant Boomerang Recall": "Retorno Instantáneo de Bumerang",
|
||||
"Aim Boomerang in First-Person Mode": "Apuntar Bumerang en Modo Primera Persona",
|
||||
"Aiming Reticle for Boomerang": "Retícula de Puntería para Bumerang",
|
||||
"Magic Spells": "Hechizos",
|
||||
"Better Farore's Wind": "Mejor Viento de Farore",
|
||||
"Faster Farore's Wind": "Viento de Farore Más Rápido",
|
||||
"Fixes": "Arreglos",
|
||||
"Gameplay Fixes": "Arreglos de Jugabilidad",
|
||||
"Fix the Gravedigging Tour Glitch": "Arreglar Glitch de Excursión de Excavación",
|
||||
"Fix Raised Floor Switches": "Arreglar Interruptores de Piso Elevado",
|
||||
"Popout Randomizer Settings Window": "Abrir Ventana de Configuración de Randomizer",
|
||||
"Randomizer Settings": "Configuración de Randomizer",
|
||||
"Enables the separate Randomizer Settings Window.": "Habilita la ventana separada de configuración de Randomizer.",
|
||||
"Randomizer Enhancements": "Mejoras de Randomizer",
|
||||
"Rando-Relevant Navi Hints": "Pistas de Navi Relevantes para Rando",
|
||||
"Random Rupee Names": "Nombres Aleatorios de Rupias",
|
||||
"Use Custom Key Models": "Usar Modelos de Llaves Personalizados",
|
||||
"Map & Compass Colors Match Dungeon": "Colores de Mapa y Brújula igual a Mazmorra",
|
||||
"Quest Item Fanfares": "Fanfarrias de Objetos de Misión",
|
||||
"Mysterious Shuffled Items": "Objetos Mezclados Misteriosos",
|
||||
"Simpler Boss Soul Models": "Modelos de Almas de Jefe Simples",
|
||||
"Skip Get Item Animations": "Saltar Animaciones de Obtener Objeto",
|
||||
"Item Scale: %.2f": "Escala de Objeto: %.2f",
|
||||
"Popout Plandomizer Window": "Abrir Ventana de Plandomizer",
|
||||
"Plandomizer Editor": "Editor de Plandomizer",
|
||||
"Item Tracker": "Rastreador de Objetos",
|
||||
"Toggle Item Tracker": "Alternar Rastreador de Objetos",
|
||||
"Item Tracker Settings": "Configuración de Rastreador de Objetos",
|
||||
"Popout Item Tracker Settings": "Abrir Configuración de Rastreador de Objetos",
|
||||
"Entrance Tracker": "Rastreador de Entradas",
|
||||
"Toggle Entrance Tracker": "Alternar Rastreador de Entradas",
|
||||
"Entrance Tracker Settings": "Configuración de Rastreador de Entradas",
|
||||
"Popout Entrance Tracker Settings": "Abrir Configuración de Rastreador de Entradas",
|
||||
"Check Tracker": "Rastreador de Checks",
|
||||
"Toggle Check Tracker": "Alternar Rastreador de Checks",
|
||||
"Check Tracker Settings": "Configuración de Rastreador de Checks",
|
||||
"Popout Check Tracker Settings": "Abrir Configuración de Rastreador de Checks",
|
||||
"Popout Menu": "Abrir Menú",
|
||||
"Debug Mode": "Modo Depuración",
|
||||
"OoT Registry Editor": "Editor de Registro de OoT",
|
||||
"Debug Save File Mode": "Modo de Archivo de Guardado de Depuración",
|
||||
"OoT Skulltula Debug": "Depuración de Skulltula de OoT",
|
||||
"Better Debug Warp Screen": "Mejor Pantalla de Teletransporte de Depuración",
|
||||
"Debug Warp Screen Translation": "Traducción de Pantalla de Teletransporte",
|
||||
"Resource logging": "Registro de Recursos",
|
||||
"Frame Advance": "Avance de Cuadro",
|
||||
"Advance 1": "Avanzar 1",
|
||||
"Advance (Hold)": "Avanzar (Mantener)",
|
||||
"Popout Stats Window": "Abrir Ventana de Estadísticas",
|
||||
"Stats": "Estadísticas",
|
||||
"Popout Console": "Abrir Consola",
|
||||
"Console": "Consola",
|
||||
"Popout Save Editor": "Abrir Editor de Guardado",
|
||||
"Save Editor": "Editor de Guardado",
|
||||
"Popout Hook Debugger": "Abrir Depurador de Hooks",
|
||||
"Hook Debugger": "Depurador de Hooks",
|
||||
"Popout Collision Viewer": "Abrir Visor de Colisiones",
|
||||
"Collision Viewer": "Visor de Colisiones",
|
||||
"Popout Actor Viewer": "Abrir Visor de Actores",
|
||||
"Actor Viewer": "Visor de Actores",
|
||||
"Popout Display List Viewer": "Abrir Visor de Lista de Display",
|
||||
"Display List Viewer": "Visor de Lista de Display",
|
||||
"Popout Value Viewer": "Abrir Visor de Valores",
|
||||
"Value Viewer": "Visor de Valores",
|
||||
"Popout Message Viewer": "Abrir Visor de Mensajes",
|
||||
"Message Viewer": "Visor de Mensajes",
|
||||
"Popout Gfx Debugger": "Abrir Depurador de Gráficos",
|
||||
"Gfx Debugger": "Depurador de Gráficos",
|
||||
"DirectX": "DirectX",
|
||||
"OpenGL": "OpenGL",
|
||||
"Metal": "Metal",
|
||||
"Resolution Presets": "Preajustes de Resolución",
|
||||
"Custom": "Personalizado",
|
||||
"Original (4:3)": "Original (4:3)",
|
||||
"Widescreen (16:9)": "Pantalla Amplia (16:9)",
|
||||
"Nintendo 3DS (5:3)": "Nintendo 3DS (5:3)",
|
||||
"16:10 (8:5)": "16:10 (8:5)",
|
||||
"Ultrawide (21:9)": "Ultrawide (21:9)",
|
||||
"Pixel Count Presets": "Preajustes de Cantidad de Píxeles",
|
||||
"Native N64 (240p)": "Nativo N64 (240p)",
|
||||
"2x (480p)": "2x (480p)",
|
||||
"3x (720p)": "3x (720p)",
|
||||
"4x (960p)": "4x (960p)",
|
||||
"5x (1200p)": "5x (1200p)",
|
||||
"6x (1440p)": "6x (1440p)",
|
||||
"Full HD (1080p)": "Full HD (1080p)",
|
||||
"4K (2160p)": "4K (2160p)",
|
||||
"Set fixed vertical resolution": "Establecer resolución vertical fija",
|
||||
"Horiz. Pixel Count": "Cantidad de Píxeles Horiz.",
|
||||
"Force aspect ratio": "Forzar proporción de aspecto",
|
||||
"Click to resolve": "Clic para resolver",
|
||||
"Vertical Pixel Count": "Cantidad de Píxeles Vertical",
|
||||
"Integer Scaling Settings": "Configuración de Escala Entera",
|
||||
"Pixel Perfect Mode": "Modo Pixel Perfecto",
|
||||
"Integer scale factor: {}": "Factor de escala entera: {}",
|
||||
"Window exceeded.": "Ventana excedida.",
|
||||
"Automatically scale image to fit viewport": "Escalar automáticamente imagen para ajustar",
|
||||
"Additional Settings": "Configuración Adicional",
|
||||
"If the image is stretched and you don't know why, click this.": "Si la imagen está estirada y no sabes por qué, haz clic.",
|
||||
"Click to reenable aspect correction.": "Clic para rehabilitar corrección de aspecto.",
|
||||
"Show a horizontal resolution field": "Mostrar campo de resolución horizontal",
|
||||
"Allow integer scale factor to go +1 above maximum screen bounds.": "Permitir factor de escala entera +1 arriba del máximo.",
|
||||
"A scroll bar may become visible if screen bounds are exceeded.": "Barra de desplazamiento puede aparecer.",
|
||||
"Click to reset a console variable that may be causing this.": "Clic para reiniciar variable.",
|
||||
"Viewport dimensions: {} x {}": "Dimensiones de viewport: {} x {}",
|
||||
"Internal resolution: {} x {}": "Resolución interna: {} x {}",
|
||||
"Enable advanced settings.": "Habilitar configuración avanzada.",
|
||||
"Significant frame rate (FPS) drops may be occuring.": "Caídas significativas de FPS pueden estar ocurriendo.",
|
||||
"N64 Mode is overriding these settings.": "Modo N64 está sobrescribiendo estas configuraciones.",
|
||||
"Click to disable N64 mode": "Clic para desactivar modo N64",
|
||||
"Aspect Ratio": "Proporción de Aspecto",
|
||||
"Disabling VSync not supported": "Desactivar VSync no soportado",
|
||||
"Windowed Fullscreen not supported": "Pantalla Completa en Ventana no soportada",
|
||||
"Multi-viewports not supported": "Multi-viewports no soportado",
|
||||
"Available Only on DirectX": "Solo Disponible en DirectX",
|
||||
"Not Available on DirectX": "No Disponible en DirectX",
|
||||
"Match Refresh Rate is Enabled": "Coincidir Tasa de Refresco está Habilitado",
|
||||
"Advanced Resolution Enabled": "Resolución Avanzada Habilitada",
|
||||
"Vertical Resolution Toggle Enabled": "Alternar Resolución Vertical Habilitado",
|
||||
"N64 Mode Enabled": "Modo N64 Habilitado",
|
||||
"Save Not Loaded": "Guardado No Cargado",
|
||||
"Debug Mode is Disabled": "Modo Depuración está Desactivado",
|
||||
"Frame Advance is Disabled": "Avance de Cuadro está Desactivado",
|
||||
"Advanced Resolution is Disabled": "Resolución Avanzada está Desactivada",
|
||||
"Vertical Resolution Toggle is Off": "Alternar Resolución Vertical está Apagado",
|
||||
"A Wallmaster follows Link everywhere, don't get caught!": "¡Un Wallmaster sigue a Link a todas partes, no te dejes atrapar!",
|
||||
"About": "Acerca de",
|
||||
"About Crowd Control": "Acerca de Crowd Control",
|
||||
"Accessibility": "Accesibilidad",
|
||||
"Activates MSAA (multi-sample anti-aliasing) from 2x up to 8x, to smooth the edges of": "Activa MSAA (antialiasing multiamuestra) de 2x hasta 8x, para suavizar los bordes de",
|
||||
"Additional Traps": "Trampas Adicionales",
|
||||
"Adds a prompt to equip newly-obtained Swords, Shields, and Tunics.": "Agrega un aviso para equipar Espadas, Escudos y Túnicas recién obtenidas.",
|
||||
"Adds back in a delay after unpausing before the game resumes playing again,": "Agrega un retraso después de despausar antes de que el juego se reanude,",
|
||||
"Adjust the number of notes the Skull Kids play to start the first round.": "Ajusta el número de notas que tocan los Skull Kids para iniciar la primera ronda.",
|
||||
"Adjust the number of notes you need to play to end the first round.": "Ajusta el número de notas que debes tocar para terminar la primera ronda.",
|
||||
"Adjust the number of notes you need to play to end the second round.": "Ajusta el número de notas que debes tocar para terminar la segunda ronda.",
|
||||
"Adjust the number of notes you need to play to end the third round.": "Ajusta el número de notas que debes tocar para terminar la tercera ronda.",
|
||||
"Adjusts rate Dampe drops flames during race.": "Ajusta la velocidad a la que Dampe lanza llamas durante la carrera.",
|
||||
"Adjusts the Horizontal Culling Plane to account for Widescreen Resolutions.": "Ajusta el Plano de Recorte Horizontal para tener en cuenta Resoluciones Panorámicas.",
|
||||
"Adult Minimum Weight: %d lbs.": "Peso Mínimo Adulto: %d lbs.",
|
||||
"Adult Starting Ammunition: %d arrows": "Munición Inicial Adulto: %d flechas",
|
||||
"Advance 1 frame.": "Avanzar 1 cuadro.",
|
||||
"Advance frames while the button is held.": "Avanzar cuadros mientras se mantiene el botón.",
|
||||
"Aiming with a Bow or Slingshot will display a reticle as with the Hookshot": "Apuntar con Arco o Honda mostrará una retícula como con el Gancho",
|
||||
"Aiming with the Boomerang will display a reticle as with the Hookshot.": "Apuntar con el Bumerán mostrará una retícula como con el Gancho.",
|
||||
"All Dogs are Richard": "Todos los Perros son Richard",
|
||||
"All Fish are Hyrule Loaches": "Todos los Peces son Lochas de Hyrule",
|
||||
"All Major Bosses move and act twice as fast.": "Todos los Jefes Mayores se mueven y actúan el doble de rápido.",
|
||||
"All Regular Enemies and Mini-Bosses move and act twice as fast.": "Todos los Enemigos Regulares y Mini-Jefes se mueven y actúan el doble de rápido.",
|
||||
"All dogs can be traded in and will count as Richard.": "Todos los perros pueden ser intercambiados y contarán como Richard.",
|
||||
"All fish will be caught instantly.": "Todos los peces se atrapan instantáneamente.",
|
||||
"All##Skips": "Todos##Saltos",
|
||||
"Allow Link to enter Jabu-Jabu without feeding him a fish.": "Permitir que Link entre a Jabu-Jabu sin alimentarlo con un pez.",
|
||||
"Allow Link to put items away without having to wait around.": "Permitir que Link guarde objetos sin tener que esperar.",
|
||||
"Allow background inputs": "Permitir entradas de fondo",
|
||||
"Allow multi-windows": "Permitir múltiples ventanas",
|
||||
"Allow unequipping Items": "Permitir Desequipar Objetos",
|
||||
"Allows Bombchus to explode out of bounds. Similar to GameCube and Wii VC.": "Permite que las Bombchus exploten fuera de límites. Similar a GameCube y Wii VC.",
|
||||
"Allows Child Link to use a Bow with Arrows.\n": "Permite que Link Niño use un Arco con Flechas.\n",
|
||||
"Allows Link to bounce off walls when linear velocity is high enough, this is": "Permite que Link rebote en paredes cuando la velocidad lineal es suficientemente alta, esto es",
|
||||
"Allows Link to freely change age by playing the Song of Time.\n": "Permite que Link cambie de edad libremente tocando la Canción del Tiempo.\n",
|
||||
"Allows Link to unsheathe sword without slashing automatically.": "Permite que Link desenvaine la espada sin cortar automáticamente.",
|
||||
"Allows Z-Targeting Gold Skulltulas.": "Permite Apuntar a las Gold Skulltulas.",
|
||||
"Allows any item to be equipped, regardless of age.\n": "Permite equipar cualquier objeto, sin importar la edad.\n",
|
||||
"Allows controller inputs to be picked up by the game even when the game window isn't": "Permite que el juego capture entradas del controlador incluso cuando la ventana del juego no está",
|
||||
"Allows dogs to follow you anywhere you go, even if you leave the Market.": "Permite que los perros te sigan a donde vayas, incluso si sales del Mercado.",
|
||||
"Allows equipping Shields, Tunics and Boots to C-Buttons/D-pad.": "Permite equipar Escudos, Túnicas y Botas a los Botones-C/D-pad.",
|
||||
"Allows graves to be pulled when child during the day.": "Permite tumbar lápidas siendo niño durante el día.",
|
||||
"Allows masks to be equipped normally from the pause menu as adult.": "Permite que las máscaras se equipen normalmente desde el menú de pausa como adulto.",
|
||||
"Allows multiple windows to be opened at once. Requires a reload to take effect.": "Permite abrir múltiples ventanas a la vez. Requiere recargar para tener efecto.",
|
||||
"Allows the cursor on the pause menu to be over any slot. Sometimes required in Randomizer": "Permite que el cursor del menú de pausa esté sobre cualquier ranura. A veces requerido en Randomizer",
|
||||
"Allows unequipping items from C-Buttons/D-pad by hovering over an equipped": "Permite desequipar objetos de los Botones-C/d-pad pasando el cursor sobre un equipado",
|
||||
"Allows you to control a Bombchu after dropping it.\n": "Permite controlar una Bombchu después de soltarla.\n",
|
||||
"Allows you to have \"Link\" as a premade file name.": "Permite tener \"Link\" como nombre de archivo predeterminado.",
|
||||
"Allows you to use any item at any location": "Permite usar cualquier objeto en cualquier ubicación",
|
||||
"Allows you to walk through walls.": "Permite caminar a través de paredes.",
|
||||
"Always Win Dampe Digging Game": "Ganar Siempre Juego de Excavación de Dampe",
|
||||
"Always Win Goron Pot": "Ganar Siempre Olla Goron",
|
||||
"Always get the Heart Piece/Purple Rupee from the Spinning Goron Pot.": "Obtener siempre la Pieza de Corazón/Rupia Púrpura de la Olla Giratoria Goron.",
|
||||
"Always shows dungeon entrance icons on the Minimap.": "Siempre muestra iconos de entrada de mazmorras en el Minimapa.",
|
||||
"Ammo": "Munición",
|
||||
"Ammo Traps": "Trampas de Munición",
|
||||
"Amy's block pushing puzzle instantly solved.": "Puzzle de empujar bloques de Amy resuelto instantáneamente.",
|
||||
"Anti-aliasing (MSAA)": "Antialiasing (MSAA)",
|
||||
"Any Ocarina + Master Sword": "Cualquier Ocarina + Espada Maestra",
|
||||
"Arrow Cycle": "Ciclo de Flechas",
|
||||
"Assignable Shields, Tunics and Boots": "Escudos, Túnicas y Botas Asignables",
|
||||
"Audio": "Audio",
|
||||
"Audio Fixes": "Arreglos de Audio",
|
||||
"Autosave": "Autoguardado",
|
||||
"Be sure to explore the Presets and Enhancements Menus for various Speedups and Quality of life changes!": "¡Asegúrate de explorar los menús de Preajustes y Mejoras para varias aceleraciones y cambios de calidad de vida!",
|
||||
"Beta Quest": "Misión Beta",
|
||||
"Beta Quest World: %d": "Mundo de Misión Beta: %d",
|
||||
"Blue Fire dropped from bottle can be bottled.": "Fuego Azul derramado de botella puede ser embotellado.",
|
||||
"Bomb Timer Multiplier: %.2fx": "Multiplicador de Temporizador de Bomba: %.2fx",
|
||||
"Bomb Traps": "Trampas de Bomba",
|
||||
"Bombchu Bowling": "Bolos de Bombchu",
|
||||
"Bombchu Count: %d bombchus": "Cantidad de Bombchus: %d bombchus",
|
||||
"Bombchus Out of Bounds": "Bombchus Fuera de Límites",
|
||||
"Bombchus do not sell out when bought, and a 10 pack of Bombchus costs 99 rupees": "Las Bombchus no se agotan al comprarlas, y un paquete de 10 cuesta 99 rupias",
|
||||
"Bombchus will sometimes drop in place of Bombs.": "Las Bombchus a veces caerán en lugar de Bombas.",
|
||||
"Bonk Damage Multiplier": "Multiplicador de Daño por Golpe",
|
||||
"Boot": "Inicio",
|
||||
"Boot Sequence": "Secuencia de Inicio",
|
||||
"Bottles": "Botellas",
|
||||
"Bounce off Walls": "Rebotar en Paredes",
|
||||
"Buffers your inputs to be executed a specified amount of frames later.": "Almacena tus entradas para ser ejecutadas una cantidad específica de cuadros después.",
|
||||
"Bugs don't Despawn": "Los Bichos no Desaparecen",
|
||||
"Burn Traps": "Trampas de Quemadura",
|
||||
"Button Combination:": "Combinación de Botones:",
|
||||
"Buttons that activate Speed Modifier 1.\n\n": "Botones que activan el Modificador de Velocidad 1.\n\n",
|
||||
"Buttons to activate target switching.": "Botones para activar cambio de objetivo.",
|
||||
"Camera Fixes": "Arreglos de Cámara",
|
||||
"Cancel": "Cancelar",
|
||||
"Causes your Wallet to fill and empty faster when you gain or lose money.": "Hace que tu Billetera se llene y vacíe más rápido al ganar o perder dinero.",
|
||||
"Change Age": "Cambiar Edad",
|
||||
"Changes Heart Piece and Heart Container functionality.\n\n": "Cambia la funcionalidad de Piezas de Corazón y Contenedores de Corazón.\n\n",
|
||||
"Changes the behavior of debug file select creation (creating a save file on slot 1": "Cambia el comportamiento de creación de archivo de depuración (crear un archivo en la ranura 1",
|
||||
"Changes the menu display from overlay to windowed.": "Cambia la visualización del menú de superpuesto a ventana.",
|
||||
"Child Minimum Weight: %d lbs.": "Peso Mínimo Niño: %d lbs.",
|
||||
"Child Starting Ammunition: %d seeds": "Munición Inicial Niño: %d semillas",
|
||||
"Clear": "Limpiar",
|
||||
"Clear Config": "Limpiar Configuración",
|
||||
"Clear Cutscene Pointer": "Limpiar Puntero de Cinemática",
|
||||
"Clear Devices": "Limpiar Dispositivos",
|
||||
"Clears the cutscene pointer to a value safe for wrong warps.": "Limpia el puntero de cinemática a un valor seguro para wrong warps.",
|
||||
"Climb Everything": "Escalar Todo",
|
||||
"Configure what happens when starting or resetting the game.\n\n": "Configura qué sucede al iniciar o reiniciar el juego.\n\n",
|
||||
"Connect to Crowd Control": "Conectar a Crowd Control",
|
||||
"Connecting...": "Conectando...",
|
||||
"Connecting...##Sail": "Conectando...##Sail",
|
||||
"Containers of Agony": "Contenedores de Agonía",
|
||||
"Convenience": "Conveniencia",
|
||||
"Correctly centers the Navi text prompt on the HUD's C-Up button.": "Centra correctamente el aviso de texto de Navi en el botón C-Arriba del HUD.",
|
||||
"Creates a new random seed value to be used when generating a randomizer": "Crea un nuevo valor de semilla aleatoria para usar al generar un randomizer",
|
||||
"Crowd Control is a platform that allows viewers to interact": "Crowd Control es una plataforma que permite a los espectadores interactuar",
|
||||
"Cuccos Needed By Anju: %d": "Cuccos Necesarios por Anju: %d",
|
||||
"Cuccos Stay Put Multiplier: %dx": "Multiplicador de Cuccos Quietos: %dx",
|
||||
"Current FPS": "FPS Actuales",
|
||||
"Cursor Always Visible": "Cursor Siempre Visible",
|
||||
"Customize Behavior##Bowling": "Personalizar Comportamiento##Bolos",
|
||||
"Customize Behavior##Fishing": "Personalizar Comportamiento##Pesca",
|
||||
"Customize Behavior##Frogs": "Personalizar Comportamiento##Ranas",
|
||||
"Customize Behavior##LostWoods": "Personalizar Comportamiento##BosquePerdido",
|
||||
"Customize Behavior##Shooting": "Personalizar Comportamiento##Tiro",
|
||||
"Damage Multiplier": "Multiplicador de Daño",
|
||||
"Dampe Drop Rate": "Tasa de Caída de Dampe",
|
||||
"Dampe's Inferno": "Infierno de Dampe",
|
||||
"Death Traps": "Trampas de Muerte",
|
||||
"Debug Warp Screen": "Pantalla de Teletransporte Debug",
|
||||
"Deku Sticks:": "Palos Deku:",
|
||||
"Delete File on Death": "Eliminar Archivo al Morir",
|
||||
"Despawn Timers": "Temporizadores de Desaparición",
|
||||
"Desync Fixes": "Arreglos de Desincronización",
|
||||
"Dev Tools": "Htas. Desarrollo",
|
||||
"Disable 2D Pre-Rendered Scenes": "Desactivar Escenas Pre-renderizadas 2D",
|
||||
"Disable Fixed Camera": "Desactivar Cámara Fija",
|
||||
"Disable Haunted Wasteland Sandstorm": "Desactivar Tormenta de Arena del Páramo",
|
||||
"Disable Idle Camera Re-Centering": "Desactivar Recentrado de Cámara en Reposo",
|
||||
"Disable Jabu Wobble": "Desactivar Bamboleo de Jabu",
|
||||
"Disable Kokiri Fade": "Desactivar Desvanecimiento Kokiri",
|
||||
"Disable Link Spinning With Goron Pot": "Desactivar Giro de Link con Olla Goron",
|
||||
"Disable Link's Sword Trail": "Desactivar Estela de Espada de Link",
|
||||
"Disable Random Camera Wiggle at Low Health.": "Desactivar Movimiento Aleatorio de Cámara con Poca Salud.",
|
||||
"Disable Screen Flash for Finishing Blow": "Desactivar Flash de Pantalla para Golpe Final",
|
||||
"Disable the geometry wobble and camera distortion inside Jabu.": "Desactivar el bamboleo de geometría y distorsión de cámara dentro de Jabu.",
|
||||
"Disabled: Paths vanish more the higher the resolution (Z-Fighting is based on resolution).\n": "Desactivado: Los caminos desaparecen más cuanto mayor es la resolución (Z-Fighting depende de la resolución).\n",
|
||||
"Disables 2D pre-rendered backgrounds. Enable this when using a mod that": "Desactiva fondos pre-renderizados 2D. Habilita esto al usar un mod que",
|
||||
"Disables Random Drops, except from the Goron Pot, Dampe, and Bosses.": "Desactiva Caídas Aleatorias, excepto de la Olla Goron, Dampe y Jefes.",
|
||||
"Disables sandstorm effect in Haunted Wasteland.": "Desactiva el efecto de tormenta de arena en el Páramo Encantado.",
|
||||
"Disables the Beating Animation of the Hearts on the HUD.": "Desactiva la Animación de Latido de los Corazones en el HUD.",
|
||||
"Disables the sword trail effect when swinging Link's sword. Useful when": "Desactiva el efecto de estela de espada al balancear la espada de Link. Útil cuando",
|
||||
"Disables the white screen flash on enemy kill.": "Desactiva el flash de pantalla blanca al matar enemigos.",
|
||||
"Disables warning text when you don't have on the Goron/Zora Tunic": "Desactiva texto de advertencia cuando no tienes puesta la Túnica Goron/Zora",
|
||||
"Dogs Follow You Everywhere": "Los Perros te Siguen a Todas Partes",
|
||||
"Don't affect jump distance/velocity": "No afecta distancia/velocidad de salto",
|
||||
"Don't increase crawl speed when exiting glitch-useful crawlspaces.": "No aumentar velocidad de arrastre al salir de espacios de arrastre útiles para glitches.",
|
||||
"Don't scale image to fill window.": "No escalar imagen para llenar ventana.",
|
||||
"Don't skip cutscenes that are associated with useful glitches. Currently, it is": "No saltar cinemáticas asociadas con glitches útiles. Actualmente, es",
|
||||
"Drops": "Caídas",
|
||||
"Drops Don't Despawn": "Las Caídas no Desaparecen",
|
||||
"Drops from enemies, grass, etc. don't disappear after a set amount of time.": "Las caídas de enemigos, hierba, etc. no desaparecen después de un tiempo establecido.",
|
||||
"Dying will delete your file.\n\n": "Morir eliminará tu archivo.\n\n",
|
||||
"Early Eyeball Frog": "Rana Ojo Temprana",
|
||||
"Easy Frame Advancing with Pause": "Avance de Cuadro Fácil con Pausa",
|
||||
"Easy ISG": "ISG Fácil",
|
||||
"Easy QPA": "QPA Fácil",
|
||||
"Empty Bottles Faster": "Vaciar Botellas Más Rápido",
|
||||
"Enable Beta Quest": "Habilitar Misión Beta",
|
||||
"Enable Bombchu Drops": "Habilitar Caída de Bombchus",
|
||||
"Enable Visual Guard Vision": "Habilitar Visión Visual de Guardia",
|
||||
"Enable Vsync": "Habilitar Vsync",
|
||||
"Enable##CrowdControl": "Habilitar##CrowdControl",
|
||||
"Enable##Sail": "Habilitar##Sail",
|
||||
"Enables Debug Mode, allowing you to select maps with L + R + Z, noclip": "Habilita el Modo Debug, permitiéndote seleccionar mapas con L + R + Z, noclip",
|
||||
"Enables Skulltula Debug, when moving the cursor in the menu above various": "Habilita Debug de Skulltula, al mover el cursor en el menú sobre varios",
|
||||
"Enables additional Trap variants.": "Habilita variantes adicionales de Trampas.",
|
||||
"Enables the registry editor.": "Habilita el editor de registro.",
|
||||
"Enables the separate Actor Viewer Window.": "Habilita la ventana separada de Visor de Actores.",
|
||||
"Enables the separate Additional Timers Window.": "Habilita la ventana separada de Temporizadores Adicionales.",
|
||||
"Enables the separate Audio Editor Window.": "Habilita la ventana separada de Editor de Audio.",
|
||||
"Enables the separate Check Tracker Settings Window.": "Habilita la ventana separada de Configuración de Rastreador de Checks.",
|
||||
"Enables the separate Collision Viewer Window.": "Habilita la ventana separada de Visor de Colisiones.",
|
||||
"Enables the separate Console Window.": "Habilita la ventana separada de Consola.",
|
||||
"Enables the separate Cosmetics Editor Window.": "Habilita la ventana separada de Editor de Cosméticos.",
|
||||
"Enables the separate Display List Viewer Window.": "Habilita la ventana separada de Visor de Lista de Display.",
|
||||
"Enables the separate Entrance Tracker Settings Window.": "Habilita la ventana separada de Configuración de Rastreador de Entradas.",
|
||||
"Enables the separate Gameplay Stats Window.": "Habilita la ventana separada de Estadísticas de Jugabilidad.",
|
||||
"Enables the separate Gfx Debugger Window.": "Habilita la ventana separada de Depurador de Gráficos.",
|
||||
"Enables the separate Hook Debugger Window.": "Habilita la ventana separada de Depurador de Hooks.",
|
||||
"Enables the separate Input Viewer Settings Window.": "Habilita la ventana separada de Configuración de Visor de Entradas.",
|
||||
"Enables the separate Item Tracker Settings Window.": "Habilita la ventana separada de Configuración de Rastreador de Objetos.",
|
||||
"Enables the separate Message Viewer Window.": "Habilita la ventana separada de Visor de Mensajes.",
|
||||
"Enables the separate Mod Menu Window.": "Habilita la ventana separada de Menú de Mods.",
|
||||
"Enables the separate Save Editor Window.": "Habilita la ventana separada de Editor de Guardado.",
|
||||
"Enables the separate Stats Window.": "Habilita la ventana separada de Estadísticas.",
|
||||
"Enables the separate Time Splits Window.": "Habilita la ventana separada de Divisiones de Tiempo.",
|
||||
"Enables the separate Value Viewer Window.": "Habilita la ventana separada de Visor de Valores.",
|
||||
"Enemies": "Enemigos",
|
||||
"Enemies spawned by CrowdControl won't be considered for \"clear enemy": "Los enemigos generados por CrowdControl no se considerarán para \"enemigo despejado\"",
|
||||
"Enemy Name Tags": "Etiquetas de Nombre de Enemigos",
|
||||
"Enhancements": "Mejoras",
|
||||
"Epona Boost": "Impulso de Epona",
|
||||
"Every fish in the Fishing Pond will always be a Hyrule Loach.\n\n": "Todos los peces en el Estanque de Pesca siempre serán Loachas de Hyrule.\n\n",
|
||||
"Exclude Glitch-Aiding Crawlspaces": "Excluir Espacios de Arrastre para Glitches",
|
||||
"Excluded Locations": "Ubicaciones Excluidas",
|
||||
"F5 to save, F6 to change slots, F7 to load": "F5 para guardar, F6 para cambiar ranuras, F7 para cargar",
|
||||
"Fall Damage Multiplier": "Multiplicador de Daño por Caída",
|
||||
"Faster + Longer Jump": "Salto Más Rápido + Largo",
|
||||
"Faster Pause Menu": "Menú de Pausa Más Rápido",
|
||||
"Faster Run": "Carrera Más Rápida",
|
||||
"Faster Shadow Ship": "Barco de Sombra Más Rápido",
|
||||
"Fireproof Deku Shield": "Escudo Deku Ignífugo",
|
||||
"Fish don't Despawn": "Los Peces no Desaparecen",
|
||||
"Fish never Escape": "Los Peces Nunca Escapan",
|
||||
"Fish while Hovering": "Pescar mientras Flotas",
|
||||
"Fishing": "Pesca",
|
||||
"Fix Anubis Fireballs": "Arreglar Bolas de Fuego de Anubis",
|
||||
"Fix Broken Giant's Knife Bug": "Arreglar Bug de Espada del Gigante Rota",
|
||||
"Fix Bush Item Drops": "Arreglar Caídas de Objetos de Arbustos",
|
||||
"Fix Camera Drift": "Arreglar Deriva de Cámara",
|
||||
"Fix Camera Swing": "Arreglar Balanceo de Cámara",
|
||||
"Fix Credits Timing (PAL)": "Arreglar Tiempo de Créditos (PAL)",
|
||||
"Fix Dampé Going Backwards": "Arreglar Dampe Yendo Hacia Atrás",
|
||||
"Fix Darunia Dancing too Fast": "Arreglar Darunia Bailando Demasiado Rápido",
|
||||
"Fix Deku Nut Upgrade": "Arreglar Mejora de Nuez Deku",
|
||||
"Fix Dungeon Entrances": "Arreglar Entradas de Mazmorras",
|
||||
"Fix Enemies not Spawning Near Water": "Arreglar Enemigos que no Aparecen Cerca del Agua",
|
||||
"Fix Falling from Vine Edges": "Arreglar Caída desde Bordes de Enredadera",
|
||||
"Fix Gerudo Warrior's Clothing Colors": "Arreglar Colores de Ropa de Guerrera Gerudo",
|
||||
"Fix Goron City Doors After Fire Temple": "Arreglar Puertas de Ciudad Goron Después del Templo del Fuego",
|
||||
"Fix Hand Holding Hammer": "Arreglar Mano Sosteniendo Martillo",
|
||||
"Fix Hanging Ledge Swing Rate": "Arreglar Velocidad de Balanceo de Borde Colgante",
|
||||
"Fix Kokiri Forest Quest State": "Arreglar Estado de Misión del Bosque Kokiri",
|
||||
"Fix L&R Pause Menu": "Arreglar Menú de Pausa L&R",
|
||||
"Fix L&Z Page Switch in Pause Menu": "Arreglar Cambio de Página L&Z en Menú de Pausa",
|
||||
"Fix Link's Eyes Open while Sleeping": "Arreglar Ojos de Link Abiertos mientras Duerme",
|
||||
"Fix Megaton Hammer Crouch Stab": "Arreglar Puñalada Agachada con Martillo Megatón",
|
||||
"Fix Missing Jingle after 5 Silver Rupees": "Arreglar Jingle Faltante después de 5 Rupias de Plata",
|
||||
"Fix Navi Text HUD Position": "Arreglar Posición de Texto de Navi en HUD",
|
||||
"Fix Out of Bounds Textures": "Arreglar Texturas Fuera de Límites",
|
||||
"Fix Poacher's Saw Softlock": "Arreglar Softlock de Sierra de Cazador Furtivo",
|
||||
"Fix Two-Handed Idle Animations": "Arreglar Animaciones de Inactividad a Dos Manos",
|
||||
"Fix Vanishing Paths": "Arreglar Caminos que Desaparecen",
|
||||
"Fix Zora Hint Dialogue": "Arreglar Diálogo de Pista Zora",
|
||||
"Fixes camera slightly drifting to the left when standing still due to a": "Arregla la deriva leve de la cámara hacia la izquierda al estar quieto debido a un",
|
||||
"Fixes camera swing rate when the player falls off a ledge and the camera": "Arregla la velocidad de balanceo de cámara cuando el jugador cae de un borde y la cámara",
|
||||
"Fixes kokiri animation state to match their text state when getting": "Arregla el estado de animación de los kokiri para coincidir con su estado de texto al obtener",
|
||||
"Fixes the Broken Giant's Knife flag not being reset when Medigoron fixes it.": "Arregla la bandera de Espada del Gigante Rota no siendo reiniciada cuando Medigoron la arregla.",
|
||||
"Font Scale: %.2fx": "Escala de Fuente: %.2fx",
|
||||
"Force aspect ratio:": "Forzar proporción de aspecto:",
|
||||
"Forest Temple": "Templo del Bosque",
|
||||
"Freeze Time": "Congelar Tiempo",
|
||||
"Freeze Traps": "Trampas de Congelación",
|
||||
"Freezes the time of day.": "Congela la hora del día.",
|
||||
"Frogs' Ocarina Game": "Juego de Ocarina de las Ranas",
|
||||
"General": "General",
|
||||
"General Settings": "Configuración General",
|
||||
"Generate Randomizer": "Generar Randomizer",
|
||||
"Ghost Pepper": "Chile Fantasma",
|
||||
"Gives you the glitched damage value of the quick put away glitch.": "Te da el valor de daño glitcheado del glitch de guardado rápido.",
|
||||
"Glitch Aids": "Ayudas de Glitch",
|
||||
"Glitch Restorations": "Restauraciones de Glitch",
|
||||
"Graphical Fixes": "Arreglos Gráficos",
|
||||
"Graphical Restorations": "Restauraciones Gráficas",
|
||||
"Graphics": "Gráficos",
|
||||
"Graphics Options": "Opciones de Gráficos",
|
||||
"Grave Hole Jumps": "Saltos de Agujero de Tumba",
|
||||
"Greatly decreases cast time of Farore's Wind magic spell.": "Disminuye enormemente el tiempo de lanzamiento del hechizo Viento de Farore.",
|
||||
"Guarantee Bite": "Garantizar Mordida",
|
||||
"Habanero": "Habanero",
|
||||
"Health": "Salud",
|
||||
"Hide Background": "Ocultar Fondo",
|
||||
"Hides most of the UI when not needed.\n": "Oculta la mayor parte de la interfaz cuando no es necesaria.\n",
|
||||
"Holding L makes you float into the air.": "Mantener L te hace flotar en el aire.",
|
||||
"Holding down B skips text.": "Mantener presionado B salta el texto.",
|
||||
"Hookshot Everything": "Gancho a Todo",
|
||||
"Hookshot Reach Multiplier: %.2fx": "Multiplicador de Alcance del Gancho: %.2fx",
|
||||
"Host & Port": "Anfitrión y Puerto",
|
||||
"Hurt Container Mode": "Modo Contenedor Dañino",
|
||||
"Hyper Bosses": "Jefes Hiper",
|
||||
"Hyper Enemies": "Enemigos Hiper",
|
||||
"I promise I have read the warning": "Prometo que he leído la advertencia",
|
||||
"I understand, enable save states": "Entiendo, habilitar estados de guardado",
|
||||
"If enabled, signs near loading zones will tell you where they lead to.": "Si está habilitado, los letreros cerca de zonas de carga te dirán a dónde llevan.",
|
||||
"ImGui Menu Scaling": "Escalado de Menú ImGui",
|
||||
"Infinite...": "Infinito...",
|
||||
"Instant Age Change": "Cambio de Edad Instantáneo",
|
||||
"Instant Fishing": "Pesca Instantánea",
|
||||
"Instant Win": "Victoria Instantánea",
|
||||
"Instant Win##Frogs": "Victoria Instantánea##Ranas",
|
||||
"Instant Win##LostWoods": "Victoria Instantánea##BosquePerdido",
|
||||
"Instantly return the Boomerang to Link by pressing its item button while": "Devuelve instantáneamente el Bumerán a Link presionando su botón de objeto mientras",
|
||||
"Integer scales the image. Only available in Pixel Perfect Mode.": "Escala la imagen en números enteros. Solo disponible en Modo Pixel Perfect.",
|
||||
"Internal Resolution": "Resolución Interna",
|
||||
"Interval between Rupee reduction in Rupee Dash Mode.": "Intervalo entre reducción de Rupias en Modo Rupee Dash.",
|
||||
"Introduces Options for unequipping Link's sword\n\n": "Introduce Opciones para desequipar la espada de Link\n\n",
|
||||
"Item-related Fixes": "Arreglos Relacionados con Objetos",
|
||||
"Ivan the Fairy (Coop Mode)": "Ivan el Hada (Modo Coop)",
|
||||
"Jabber Nut Colors Match Kind": "Colores de Nueces Jabber Coinciden con Tipo",
|
||||
"Jalapeño": "Jalapeño",
|
||||
"Keese/Guay don't Target You": "Keese/Guay no te Apuntan",
|
||||
"King Zora Speed: %.2fx": "Velocidad de Rey Zora: %.2fx",
|
||||
"Knockback Traps": "Trampas de Retroceso",
|
||||
"Language": "Idioma",
|
||||
"Languages": "Idiomas",
|
||||
"Leever Spawn Rate: %d seconds": "Tasa de Aparición de Leever: %d segundos",
|
||||
"Link will not spin when the Goron Pot starts to spin.": "Link no girará cuando la Olla Goron comience a girar.",
|
||||
"Loaches always Appear": "Las Lochas Siempre Aparecen",
|
||||
"Loaches will always appear in the fishing pond instead of every four visits.": "Las lochas siempre aparecerán en el estanque de pesca en lugar de cada cuatro visitas.",
|
||||
"Log Level": "Nivel de Registro",
|
||||
"Logs some resources as XML when they're loaded in binary format.": "Registra algunos recursos como XML cuando se cargan en formato binario.",
|
||||
"Lost Woods Ocarina Game": "Juego de Ocarina del Bosque Perdido",
|
||||
"Magic": "Magia",
|
||||
"Make Deku Nuts explode Bombs, similar to how they interact with Bombchus.": "Hace que las Nueces Deku exploten Bombas, similar a como interactúan con Bombchus.",
|
||||
"Make crouch stabbing always do the same damage as a regular slash.": "Hace que la puñalada agachada siempre haga el mismo daño que un corte regular.",
|
||||
"Makes Link always kick the chest to open it, instead of doing the longer": "Hace que Link siempre patee el cofre para abrirlo, en lugar de hacer la animación más larga",
|
||||
"Makes all equipment visible, regardless of age.": "Hace que todo el equipo sea visible, sin importar la edad.",
|
||||
"Makes every surface in the game climbable.": "Hace que cada superficie en el juego sea escalable.",
|
||||
"Makes every surface in the game hookshotable.": "Hace que cada superficie en el juego sea alcanzable con el gancho.",
|
||||
"Makes every tunic have the effects of every other tunic.": "Hace que cada túnica tenga los efectos de todas las demás túnicas.",
|
||||
"Makes the L and R buttons in the pause menu the same color.": "Hace que los botones L y R en el menú de pausa sean del mismo color.",
|
||||
"Manual seed entry": "Entrada manual de semilla",
|
||||
"Map Select Button Combination:": "Combinación de Botones de Selección de Mapa:",
|
||||
"Match Refresh Rate": "Coincidir Tasa de Refresco",
|
||||
"Matches interpolation value to the refresh rate of your display.": "Coincide el valor de interpolación con la tasa de refresco de tu pantalla.",
|
||||
"Matches the color of maps & compasses to the dungeon they belong to.": "Coincide el color de mapas y brújulas con la mazmorra a la que pertenecen.",
|
||||
"Menu Background Opacity": "Opacidad de Fondo del Menú",
|
||||
"Menu Controller Navigation": "Navegación de Controlador del Menú",
|
||||
"Menu Settings": "Configuración del Menú",
|
||||
"Menu Theme": "Tema del Menú",
|
||||
"Mirrored World": "Mundo Espejado",
|
||||
"Misc Restorations": "Restauraciones Varias",
|
||||
"Miscellaneous": "Misceláneo",
|
||||
"Modifies Damage taken after Bonking.": "Modifica el Daño recibido después de Golpearse.",
|
||||
"Modifies damage taken after falling into a void:\n": "Modifica el daño recibido al caer en un vacío:\n",
|
||||
"Modify Note Timer: %dx": "Modificar Temporizador de Notas: %dx",
|
||||
"Money": "Dinero",
|
||||
"Moon Jump on L": "Salto Lunar en L",
|
||||
"MoreResolutionSettings": "MásConfiguracionesDeResolución",
|
||||
"Multiplier:": "Multiplicador:",
|
||||
"Multiplies your output resolution by the value inputted, as a more intensive but effective": "Multiplica tu resolución de salida por el valor ingresado, como una forma más intensiva pero efectiva",
|
||||
"Mute Notification Sound": "Silenciar Sonido de Notificación",
|
||||
"N64 Weird Frames": "Cuadros Extraños N64",
|
||||
"Nayru's Love": "Amor de Nayru",
|
||||
"Network": "Red",
|
||||
"Nighttime Skulltulas will spawn during both day and night.": "Las Skulltulas nocturnas aparecerán tanto de día como de noche.",
|
||||
"No Clip": "Sin Colisión",
|
||||
"No Clip Button Combination:": "Combinación de Botones Sin Colisión:",
|
||||
"No Heart Drops": "Sin Caídas de Corazones",
|
||||
"No Random Drops": "Sin Caídas Aleatorias",
|
||||
"No ReDead/Gibdo Freeze": "Sin Congelación de ReDead/Gibdo",
|
||||
"No Rupee Randomization": "Sin Aleatorización de Rupias",
|
||||
"None##Skips": "Ninguno##Saltos",
|
||||
"Note Play Speed: %dx": "Velocidad de Reproducción de Notas: %dx",
|
||||
"Notification on Autosave": "Notificación de Autoguardado",
|
||||
"Number of Starting Notes: %d notes": "Número de Notas Iniciales: %d notas",
|
||||
"OHKO": "KO",
|
||||
"Ocarina of Time + Master Sword": "Ocarina del Tiempo + Espada Maestra",
|
||||
"Once a hook as been set, Fish will never let go while being reeled in.": "Una vez que se ha puesto un gancho, los peces nunca soltarán mientras se recogen.",
|
||||
"Only change the texture of containers if you have the Stone of Agony.": "Cambiar solo la textura de contenedores si tienes la Piedra de Agonía.",
|
||||
"Open App Files Folder": "Abrir Carpeta de Archivos de la App",
|
||||
"Optimized Debug Warp Screen, with the added ability to chose entrances and time of day.": "Pantalla de Teletransporte Debug optimizada, con la capacidad añadida de elegir entradas y hora del día.",
|
||||
"Override the resolution scale slider and use the settings below, irrespective of window size.": "Anular el control deslizante de escala de resolución y usar las configuraciones de abajo, independientemente del tamaño de ventana.",
|
||||
"Passive Infinite Sword Glitch\n": "Glitch de Espada Infinita Pasiva\n",
|
||||
"Permanent Heart Loss": "Pérdida Permanente de Corazón",
|
||||
"Popout Audio Editor Window": "Abrir Ventana de Editor de Audio",
|
||||
"Popout Bindings Window": "Abrir Ventana de Controles",
|
||||
"Popout Cosmetics Editor Window": "Abrir Ventana de Editor de Cosméticos",
|
||||
"Popout Gameplay Stats Window": "Abrir Ventana de Estadísticas de Jugabilidad",
|
||||
"Popout Input Viewer Settings": "Abrir Configuración de Visor de Entradas",
|
||||
"Popout Mod Menu Window": "Abrir Ventana de Menú de Mods",
|
||||
"Popout Time Splits Window": "Abrir Ventana de Divisiones de Tiempo",
|
||||
"Position": "Posición",
|
||||
"Prevent dropping inputs when playing the Ocarina too quickly.": "Prevenir pérdida de entradas al tocar la Ocarina demasiado rápido.",
|
||||
"Prevent forced conversations with Navi and/or other NPCs.": "Prevenir conversaciones forzadas con Navi y/o otros NPCs.",
|
||||
"Prevent notifications from playing a sound.": "Prevenir que las notificaciones reproduzcan un sonido.",
|
||||
"Prevents ReDeads and Gibdos from being able to freeze you with their scream.": "Previene que ReDeads y Gibdos puedan congelarte con su grito.",
|
||||
"Prevents bugs from automatically despawning after a while when dropped.": "Previene que los bichos desaparezcan automáticamente después de un tiempo al soltarlos.",
|
||||
"Prevents fish from automatically despawning after a while when dropped.": "Previene que los peces desaparezcan automáticamente después de un tiempo al soltarlos.",
|
||||
"Prevents immediately falling off climbable surfaces if climbing on the edges.": "Previene caer inmediatamente de superficies escalables si estás escalando en los bordes.",
|
||||
"Prevents integer scaling factor from exceeding screen bounds.\n\n": "Previene que el factor de escala entero exceda los límites de la pantalla.\n\n",
|
||||
"Prevents the Deku Shield from burning on contact with fire.": "Previene que el Escudo Deku se queme al contacto con fuego.",
|
||||
"Prevents the Forest Stage Deku Nut upgrade from becoming unobtainable": "Previene que la mejora de Nuez Deku del Bosque se vuelva inalcanzable",
|
||||
"Prevents the big Cucco from appearing in the Bombchu Bowling minigame.": "Previene que el Cucco grande aparezca en el minijuego de Bolos de Bombchu.",
|
||||
"Prevents the small Cucco from appearing in the Bombchu Bowling minigame.": "Previene que el Cucco pequeño aparezca en el minijuego de Bolos de Bombchu.",
|
||||
"Pulsate Boss Icon": "Icono de Jefe Pulsante",
|
||||
"Quick Bongo Kill": "Muerte Rápida de Bongo",
|
||||
"Quick Putaway": "Guardado Rápido",
|
||||
"Randomize All Settings": "Aleatorizar Todas las Configuraciones",
|
||||
"Randomizes all randomizer settings to random valid values (excludes tricks).": "Aleatoriza todas las configuraciones del randomizer a valores válidos aleatorios (excluye trucos).",
|
||||
"Rebottle Blue Fire": "Reembottellar Fuego Azul",
|
||||
"Red Ganon Blood": "Sangre de Ganon Roja",
|
||||
"Remember Save Location": "Recordar Ubicación de Guardado",
|
||||
"Remote Bombchu": "Bombchu Remota",
|
||||
"Remove Big Cucco": "Eliminar Cucco Grande",
|
||||
"Remove Power Crouch Stab": "Eliminar Puñalada Agachada de Poder",
|
||||
"Remove Small Cucco": "Eliminar Cucco Pequeño",
|
||||
"Remove the Darkness that appears when charging a Spin Attack.": "Eliminar la Oscuridad que aparece al cargar un Ataque Giratorio.",
|
||||
"Removes the cap of 3 active explosives being deployed at once.": "Elimina el límite de 3 explosivos activos desplegados a la vez.",
|
||||
"Removes the timer to play back the song.": "Elimina el temporizador para reproducir la canción.",
|
||||
"Renders Gauntlets when using the Bow and Hookshot like in OoT3D.": "Renderiza Guanteletes al usar el Arco y Gancho como en OoT3D.",
|
||||
"Renders a health bar for Enemies when Z-Targeted.": "Renderiza una barra de salud para Enemigos cuando se Apunta con Z.",
|
||||
"Replace Navi's overworld quest hints with rando-related gameplay hints.": "Reemplaza las pistas de misión del mundo de Navi con pistas de jugabilidad relacionadas con rando.",
|
||||
"Reset Button Combination:": "Combinación de Botones de Reinicio:",
|
||||
"Resets the Navi timer on scene change. If you have already talked to her,": "Reinicia el temporizador de Navi al cambiar de escena. Si ya has hablado con ella,",
|
||||
"Respawn with Full Health instead of 3 hearts.": "Reaparecer con Salud Completa en lugar de 3 corazones.",
|
||||
"Restore Old Gold Skulltula Cutscene": "Restaurar Cinemática de Gold Skulltula Antigua",
|
||||
"Restore the original red blood from NTSC 1.0/1.1. Disable for Green blood.": "Restaurar la sangre roja original de NTSC 1.0/1.1. Desactivar para sangre verde.",
|
||||
"Restores the wider range of certain shutter doors from NTSC 1.0.\n": "Restaura el rango más amplio de ciertas puertas correderas de NTSC 1.0.\n",
|
||||
"Reworked Targeting": "Apuntado Retrabajado",
|
||||
"Reworks targeting functionality\n": "Retrabaja la funcionalidad de apuntado\n",
|
||||
"Round One Notes: %d notes": "Notas de la Ronda Uno: %d notas",
|
||||
"Round Three Notes: %d notes": "Notas de la Ronda Tres: %d notas",
|
||||
"Round Two Notes: %d notes": "Notas de la Ronda Dos: %d notas",
|
||||
"Rupee Dash Interval %d seconds": "Intervalo de Rupee Dash %d segundos",
|
||||
"Rupee Dash Mode": "Modo Rupee Dash",
|
||||
"Rupees reduce over time, Link suffers damage when the count hits 0.": "Las rupias se reducen con el tiempo, Link sufre daño cuando el conteo llega a 0.",
|
||||
"Sail": "Sail",
|
||||
"Sail is a networking protocol designed to facilitate remote": "Sail es un protocolo de red diseñado para facilitar remoto",
|
||||
"Save States": "Estados de Guardado",
|
||||
"Search In Sidebar": "Buscar en Barra Lateral",
|
||||
"Search Input Autofocus": "Autoenfoque de Entrada de Búsqueda",
|
||||
"Seed": "Semilla",
|
||||
"Seed Entry": "Entrada de Semilla",
|
||||
"Select the UI translation language...": "Seleccionar el idioma de traducción de la interfaz...",
|
||||
"Serrano": "Serrano",
|
||||
"Settings": "Configuración",
|
||||
"Shadow Tag Mode": "Modo Sombra Pegajosa",
|
||||
"Shield with Two-Handed Weapons": "Escudo con Armas a Dos Manos",
|
||||
"Shock Traps": "Trampas de Choque",
|
||||
"Shooting Gallery": "Galería de Tiro",
|
||||
"Shops and Minigames are open both day and night. Requires a scene reload to take effect.": "Tiendas y Minijuegos están abiertos de día y de noche. Requiere recargar escena para tener efecto.",
|
||||
"Show Gauntlets in First-Person": "Mostrar Guanteletes en Primera Persona",
|
||||
"Show a notification when the game is autosaved.": "Mostrar una notificación cuando el juego se autoguarda.",
|
||||
"Signs Hint Entrances": "Letreros Indican Entradas",
|
||||
"Skip Bottle Pickup Messages": "Saltar Mensajes de Recoger Botella",
|
||||
"Skip Consumable Item Pickup Messages": "Saltar Mensajes de Recoger Objetos Consumibles",
|
||||
"Skip Feeding Jabu-Jabu": "Saltar Alimentar a Jabu-Jabu",
|
||||
"Skip Keep Confirmation": "Saltar Confirmación de Keep",
|
||||
"Skip One Point Cutscenes (Chests, Door Unlocks, etc.)": "Saltar Cinemáticas de Un Punto (Cofres, Apertura de Puertas, etc.)",
|
||||
"Skip Pickup Messages for Bottle Swipes.": "Saltar Mensajes de Recoger para Botellas.",
|
||||
"Skip Pickup Messages for new Consumable Items.": "Saltar Mensajes de Recoger para Objetos Consumibles nuevos.",
|
||||
"Skip Playing Scarecrow's Song": "Saltar Tocar Canción del Espantapájaros",
|
||||
"Skip the \"Game Saved\" confirmation screen.": "Saltar la pantalla de confirmación \"Juego Guardado\".",
|
||||
"Skip the part where the Ocarina Playback is called when you play a song.": "Saltar la parte donde se llama la Reproducción de Ocarina al tocar una canción.",
|
||||
"Skip the tower escape sequence between Ganondorf and Ganon.": "Saltar la secuencia de escape de la torre entre Ganondorf y Ganon.",
|
||||
"Skips Link's taking breath animation after coming up from water.": "Salta la animación de Link tomando aire al salir del agua.",
|
||||
"Skips the Frogs' Ocarina Game.": "Salta el Juego de Ocarina de las Ranas.",
|
||||
"Skips the Lost Woods Ocarina Memory Game.": "Salta el Juego de Memoria de Ocarina del Bosque Perdido.",
|
||||
"Skips the Shooting Gallery minigame.": "Salta el minijuego de la Galería de Tiro.",
|
||||
"Solve Amy's Puzzle": "Resolver Puzzle de Amy",
|
||||
"Spawn Bean Skulltula Faster": "Aparecer Bean Skulltula Más Rápido",
|
||||
"Spawn with Full Health": "Aparecer con Salud Completa",
|
||||
"Spawned Enemies Ignored Ingame": "Enemigos Generados Ignorados en el Juego",
|
||||
"Speak to Navi with L but enter First-Person Camera with C-Up.": "Hablar con Navi con L pero entrar a Cámara en Primera Persona con C-Arriba.",
|
||||
"Speed Modifier": "Modificador de Velocidad",
|
||||
"Speed Traps": "Trampas de Velocidad",
|
||||
"Speeds up animation of the pause menu, similar to Majora's Mask": "Acelera la animación del menú de pausa, similar a Majora's Mask",
|
||||
"Speeds up emptying animation when dumping out the contents of a bottle.": "Acelera la animación de vaciado al verter el contenido de una botella.",
|
||||
"Speeds up lifting Silver Rocks and Obelisks.": "Acelera el levantamiento de Rocas de Plata y Obeliscos.",
|
||||
"Speeds up ship in Shadow Temple.": "Acelera el barco en el Templo de las Sombras.",
|
||||
"Spoiler File": "Archivo de Spoiler",
|
||||
"Stops masks from automatically unequipping on certain situations:\n": "Detiene que las máscaras se desequen automáticamente en ciertas situaciones:\n",
|
||||
"Super Tunic": "Super Túnica",
|
||||
"Switch Timer Multiplier": "Multiplicador de Temporizador de Cambio",
|
||||
"Switches Link's age and reloads the area.": "Cambia la edad de Link y recarga el área.",
|
||||
"Syncs the in-game time with the real world time.": "Sincroniza el tiempo del juego con el tiempo del mundo real.",
|
||||
"Target Switch Button Combination:": "Combinación de Botones de Cambio de Objetivo:",
|
||||
"Targetable Gold Skulltula": "Gold Skulltula Apuntable",
|
||||
"Teleport Traps": "Trampas de Teletransporte",
|
||||
"Text to Speech": "Texto a Voz",
|
||||
"Texture Filter (Needs reload)": "Filtro de Textura (Necesita recargar)",
|
||||
"The Pond Owner will not ask to confirm if you want to keep a smaller Fish.": "El Dueño del Estanque no pedirá confirmar si quieres quedarte con un Pez más pequeño.",
|
||||
"The ammunition at the start of the Shooting Gallery minigame as Adult.": "La munición al inicio del minijuego de Galería de Tiro como Adulto.",
|
||||
"The ammunition at the start of the Shooting Gallery minigame as Child.": "La munición al inicio del minijuego de Galería de Tiro como Niño.",
|
||||
"The log level determines which messages are printed to the console.": "El nivel de registro determina qué mensajes se imprimen en la consola.",
|
||||
"The number of Bombchus available at the start of the Bombchu Bowling minigame.": "El número de Bombchus disponibles al inicio del minijuego de Bolos de Bombchu.",
|
||||
"The skybox in the background of the File Select screen will go through the": "El skybox en el fondo de la pantalla de Selección de Archivo pasará por el",
|
||||
"The time between groups of Leevers spawning.": "El tiempo entre grupos de Leevers apareciendo.",
|
||||
"These are NOT like emulator states. They do not save your game progress": "Estos NO son como estados de emulador. No guardan tu progreso del juego",
|
||||
"These enhancements are only useful in the Randomizer mode but do not affect the randomizer logic.": "Estas mejoras solo son útiles en el modo Randomizer pero no afectan la lógica del randomizer.",
|
||||
"This will completely erase the controls config, including registered devices.\nContinue?": "Esto borrará completamente la configuración de controles, incluyendo dispositivos registrados.\n¿Continuar?",
|
||||
"Tier 1 Traps:": "Trampas de Nivel 1:",
|
||||
"Tier 2 Traps:": "Trampas de Nivel 2:",
|
||||
"Tier 3 Traps:": "Trampas de Nivel 3:",
|
||||
"Time Sync": "Sincronización de Tiempo",
|
||||
"Timeless Equipment": "Equipo Atemporal",
|
||||
"Toggle Fullscreen": "Alternar Pantalla Completa",
|
||||
"Toggle Input Viewer": "Alternar Visor de Entradas",
|
||||
"Toggle Timers Window": "Alternar Ventana de Temporizadores",
|
||||
"Toggle modifier instead of holding": "Alternar modificador en lugar de mantener",
|
||||
"Toggles the Check Tracker.": "Alterna el Rastreador de Checks.",
|
||||
"Toggles the Entrance Tracker.": "Alterna el Rastreador de Entradas.",
|
||||
"Toggles the Item Tracker.": "Alterna el Rastreador de Objetos.",
|
||||
"Translate Title Screen": "Traducir Pantalla de Título",
|
||||
"Translate the Debug Warp Screen based on the game language.": "Traducir la Pantalla de Teletransporte Debug según el idioma del juego.",
|
||||
"Trap Options": "Opciones de Trampas",
|
||||
"Trees Drop Sticks": "Los Árboles Suelten Palos",
|
||||
"Tricks/Glitches": "Trucos/Glitches",
|
||||
"Turn on/off changes to the Bombchu Bowling behavior.": "Activar/desactivar cambios al comportamiento de Bolos de Bombchu.",
|
||||
"Turn on/off changes to the Fishing behavior.": "Activar/desactivar cambios al comportamiento de Pesca.",
|
||||
"Turn on/off changes to the Frogs' Ocarina Game behavior.": "Activar/desactivar cambios al comportamiento del Juego de Ocarina de las Ranas.",
|
||||
"Turn on/off changes to the Lost Woods Ocarina Game behavior.": "Activar/desactivar cambios al comportamiento del Juego de Ocarina del Bosque Perdido.",
|
||||
"Turn on/off changes to the shooting gallery behavior.": "Activar/desactivar cambios al comportamiento de la galería de tiro.",
|
||||
"Turns Bunny Hood Invisible while still maintaining its effects.": "Vuelve invisible la Máscara de Conejo mientras mantiene sus efectos.",
|
||||
"Turns on OoT Beta Quest. *WARNING*: This will reset your game!": "Activa la Misión Beta de OoT. *ADVERTENCIA*: ¡Esto reiniciará tu juego!",
|
||||
"Turns the Static Image of Link in the Pause Menu's Equipment Subscreen": "Convierte la Imagen Estática de Link en la Subpantalla de Equipo del Menú de Pausa",
|
||||
"UI Translation": "Traducción de Interfaz",
|
||||
"Unlimited Playback Time##Frogs": "Tiempo de Reproducción Ilimitado##Ranas",
|
||||
"Unlimited Playback Time##LostWoods": "Tiempo de Reproducción Ilimitado##BosquePerdido",
|
||||
"Unrestricted Items": "Objetos Sin Restricciones",
|
||||
"Unsheathe Sword Without Slashing": "Desenvainar Espada sin Cortar",
|
||||
"Use Custom graphics for Dungeon Keys, Big and Small, so that they can be easily told apart.": "Usar gráficos personalizados para Llaves de Mazmorra, Grandes y Pequeñas, para que puedan distinguirse fácilmente.",
|
||||
"Void Damage Multiplier": "Multiplicador de Daño de Vacío",
|
||||
"Void Traps": "Trampas de Vacío",
|
||||
"Warp Point": "Punto de Teletransporte",
|
||||
"Warp Points": "Puntos de Teletransporte",
|
||||
"Warping": "Teletransporte",
|
||||
"Wearing the Bunny Hood grants a speed and jump boost like in Majora's Mask.\n": "Usar la Máscara de Conejo otorga un aumento de velocidad y salto como en Majora's Mask.\n",
|
||||
"When a line is stable, guarantee bite. Otherwise use Default logic.": "Cuando una línea es estable, garantizar mordida. De lo contrario usar lógica predeterminada.",
|
||||
"When obtaining Rupees, randomize what the Rupee is called in the textbox.": "Al obtener Rupias, aleatorizar cómo se llama la Rupia en el cuadro de texto.",
|
||||
"Wide Door Ranges": "Rangos de Puertas Anchos",
|
||||
"Windowed Fullscreen": "Pantalla Completa en Ventana",
|
||||
"With Shuffle Speak, jabber nut model & color will be generic.": "Con Shuffle Speak, el modelo y color de nuez jabber será genérico.",
|
||||
"https://github.com/HarbourMasters/sail": "https://github.com/HarbourMasters/sail",
|
||||
"AspectRatioCustom": "ProporciónPersonalizada",
|
||||
"AspectSep": "SepProporción",
|
||||
"Automatically sets scale factor to fit window. Only available in Pixel Perfect Mode.": "Establece automáticamente el factor de escala para ajustar a la ventana. Solo disponible en Modo Pixel Perfect.",
|
||||
"Item Pool": "Lista de Objetos",
|
||||
"Logic": "Logica"
|
||||
}
|
||||
}
|
||||
Submodule libultraship updated: ffc062cbf4...fdcaf63367
@@ -25,7 +25,7 @@ if (-not (Test-Path $clangFormatFilePath) -or ($currentVersion -ne $requiredVers
|
||||
}
|
||||
|
||||
$wc = New-Object net.webclient
|
||||
$wc.Downloadfile($url, $llvmInstallerPath)
|
||||
$wc.Downloadfile($url, $PSScriptRoot + $llvmInstallerPath)
|
||||
|
||||
$sevenZipPath = "C:\Program Files\7-Zip\7z.exe"
|
||||
$specificFileInArchive = "bin\clang-format.exe"
|
||||
@@ -37,12 +37,13 @@ if (-not (Test-Path $clangFormatFilePath) -or ($currentVersion -ne $requiredVers
|
||||
$basePath = (Resolve-Path .).Path
|
||||
$files = Get-ChildItem -Path $basePath\soh -Recurse -File `
|
||||
| Where-Object { ($_.Extension -eq '.c' -or $_.Extension -eq '.cpp' -or `
|
||||
($_.Extension -eq '.h' -and `
|
||||
(($_.Extension -eq '.h' -or $_.Extension -eq '.hpp') -and `
|
||||
(-not ($_.FullName -like "*\soh\src\*" -or $_.FullName -like "*\soh\include\*")))) -and `
|
||||
(-not ($_.FullName -like "*\soh\assets\*")) }
|
||||
(-not ($_.FullName -like "*\soh\assets\*" -or $_.FullName -like "*\soh\build\*")) }
|
||||
|
||||
foreach ($file in $files) {
|
||||
for ($i = 0; $i -lt $files.Length; $i++) {
|
||||
$file = $files[$i]
|
||||
$relativePath = $file.FullName.Substring($basePath.Length + 1)
|
||||
Write-Host "Formatting $relativePath"
|
||||
Write-Host "Formatting [$($i+1)/$($files.Length)] $relativePath"
|
||||
.\clang-format.exe -i $file.FullName
|
||||
}
|
||||
|
||||
@@ -10,20 +10,20 @@
|
||||
# -name "*.c" -o -name "*.cpp"
|
||||
# find all .c and .cpp files
|
||||
#
|
||||
# -name "*.h" ! -path "soh/src/**.h" ! -path "soh/include/**.h"
|
||||
# find all .h files that aren't in soh/src or soh/include
|
||||
# ( -name "*.h" -o -name "*.hpp" ) ! -path "soh/src/**.h" ! -path "soh/include/**.h"
|
||||
# find all .h and .hpp files that aren't in soh/src or soh/include
|
||||
# this is because zret decomp only runs clang-format on c files
|
||||
# https://github.com/zeldaret/mm/blob/b7e5468ca16315a7e322055eff3d97fe980bbc25/format.py#L182
|
||||
#
|
||||
# ! -path "soh/assets/*"
|
||||
# asset headers are autogenerated, don't fight them
|
||||
#
|
||||
# | sed 's| |\\ |g'
|
||||
# pipe the result of find into sed to
|
||||
# ensure all the paths returned by find have spaces escaped
|
||||
# -print0
|
||||
# separate paths with NUL bytes, avoiding issues with spaces in paths
|
||||
#
|
||||
# | xargs clang-format-14 -i
|
||||
# | xargs -0 clang-format-14 -i -verbose
|
||||
# use xargs to take each path we've found
|
||||
# and pass it as an argument to clang-format
|
||||
# verbose to print files being formatted and X out of Y status
|
||||
|
||||
find soh -type f \( -name "*.c" -o -name "*.cpp" -o \( -name "*.h" ! -path "soh/src/**.h" ! -path "soh/include/**.h" \) \) ! -path "soh/assets/*" | sed 's| |\\ |g' | xargs clang-format-14 -i
|
||||
find soh -type f \( -name "*.c" -o -name "*.cpp" -o \( \( -name "*.h" -o -name "*.hpp" \) ! -path "soh/src/*" ! -path "soh/include/*" \) \) ! -path "soh/assets/*" -print0 | xargs -0 clang-format-14 -i --verbose
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=SOH
|
||||
Exec=soh.sh
|
||||
Exec=soh.elf
|
||||
Terminal=false
|
||||
Icon=sohIcon
|
||||
Type=Application
|
||||
|
||||
@@ -1,338 +0,0 @@
|
||||
#!/bin/bash
|
||||
HERE="$(dirname "$(readlink -f "${0}")")"/../..
|
||||
|
||||
export PATH="$HERE"/bin:"$HERE"/usr/bin:"$PATH"
|
||||
export LD_LIBRARY_PATH="$HERE"/usr/lib:"$LD_LIBRARY_PATH"
|
||||
export ZENITY=$(command -v zenity)
|
||||
|
||||
if [ -z ${SHIP_HOME+x} ]; then
|
||||
export SHIP_HOME=$PWD
|
||||
fi
|
||||
|
||||
if [ -z ${SHIP_BIN_DIR+x} ]; then
|
||||
export SHIP_BIN_DIR="$HERE/usr/bin"
|
||||
fi
|
||||
|
||||
if [[ ! -e "$SHIP_HOME"/mods ]]; then
|
||||
mkdir -p "$SHIP_HOME"/mods
|
||||
touch "$SHIP_HOME"/mods/custom_otr_files_go_here.txt
|
||||
fi
|
||||
|
||||
while [[ (! -e "$SHIP_HOME"/oot.otr) || (! -e "$SHIP_HOME"/oot-mq.otr) ]]; do
|
||||
for romfile in "$SHIP_HOME"/*.*64
|
||||
do
|
||||
if [[ -e "$romfile" ]] || [[ -L "$romfile" ]]; then
|
||||
export ASSETDIR="$(mktemp -d /tmp/assets-XXXXX)"
|
||||
ln -s "$SHIP_BIN_DIR"/{assets,soh.elf,ZAPD} "$ASSETDIR"
|
||||
export OLDPWD="$PWD"
|
||||
mkdir -p "$ASSETDIR"/tmp
|
||||
if [[ -e "$romfile" ]]; then
|
||||
ln -s "$romfile" "$ASSETDIR"/tmp/rom.z64
|
||||
else
|
||||
ORIG_ROM_PATH=$(readlink "$romfile")
|
||||
ln -s "$ORIG_ROM_PATH" "$ASSETDIR"/tmp/rom.z64
|
||||
fi
|
||||
cd "$ASSETDIR"
|
||||
ROMHASH=$(sha1sum -b "$ASSETDIR"/tmp/rom.z64 | awk '{ print $1 }')
|
||||
|
||||
# Remap v64 and n64 hashes to their z64 hash equivalent
|
||||
# ZAPD will handle converting the data into z64 format
|
||||
case "$ROMHASH" in
|
||||
a9059b56e761c9034fbe02fe4c24985aaa835dac) # v64
|
||||
ROMHASH=cee6bc3c2a634b41728f2af8da54d9bf8cc14099
|
||||
;;
|
||||
24708102dc504d3f375a37f4ae4e149c167dc515) # n64
|
||||
ROMHASH=cee6bc3c2a634b41728f2af8da54d9bf8cc14099
|
||||
;;
|
||||
580dd0bd1b6d2c51cc20a764eece84dba558964c) # v64
|
||||
ROMHASH=0227d7c0074f2d0ac935631990da8ec5914597b4
|
||||
;;
|
||||
d6342c59007e57c1194661ec6880b2f078403f4e) # n64
|
||||
ROMHASH=0227d7c0074f2d0ac935631990da8ec5914597b4
|
||||
;;
|
||||
d0bdc2eb320668b4ba6893b9aefe4040a73123ff) # v64
|
||||
ROMHASH=328a1f1beba30ce5e178f031662019eb32c5f3b5
|
||||
;;
|
||||
4946ab250f6ac9b32d76b21f309ebb8ebc8103d2) # n64
|
||||
ROMHASH=328a1f1beba30ce5e178f031662019eb32c5f3b5
|
||||
;;
|
||||
663c34f1b2c05a09e5beffe4d0dcd440f7d49dc7) # v64
|
||||
ROMHASH=cfbb98d392e4a9d39da8285d10cbef3974c2f012
|
||||
;;
|
||||
24c73d378b0620a380ce5ef9f2b186c6c157a68b) # n64
|
||||
ROMHASH=cfbb98d392e4a9d39da8285d10cbef3974c2f012
|
||||
;;
|
||||
8ebf2e29313f44f2d49e5b4191971d09919e8e48) # v64
|
||||
ROMHASH=f46239439f59a2a594ef83cf68ef65043b1bffe2
|
||||
;;
|
||||
4264bf7b875737b8fae77d52322a5099d051fc11) # n64
|
||||
ROMHASH=f46239439f59a2a594ef83cf68ef65043b1bffe2
|
||||
;;
|
||||
973bc6fe56010a8d646166a1182a81b4f13b8cf9) # v64
|
||||
ROMHASH=50bebedad9e0f10746a52b07239e47fa6c284d03
|
||||
;;
|
||||
d327752c46edc70ff3668b9514083dbbee08927c) # v64
|
||||
ROMHASH=50bebedad9e0f10746a52b07239e47fa6c284d03
|
||||
;;
|
||||
ecdeb1747560834e079c22243febea7f6f26ba3b) # v64
|
||||
ROMHASH=079b855b943d6ad8bd1eb026c0ed169ecbdac7da
|
||||
;;
|
||||
f19f8662ec7abee29484a272a6fda53e39efe0f1) # n64
|
||||
ROMHASH=079b855b943d6ad8bd1eb026c0ed169ecbdac7da
|
||||
;;
|
||||
ab519ce04a33818ce2c39b3c514a751d807a494a) # v64
|
||||
ROMHASH=cfecfdc58d650e71a200c81f033de4e6d617a9f6
|
||||
;;
|
||||
c19a34f7646305e1755249fca2071e178bd7cd00) # n64
|
||||
ROMHASH=cfecfdc58d650e71a200c81f033de4e6d617a9f6
|
||||
;;
|
||||
25e8ae79ea0839ca5c984473f7460d8040c36f9c) # v64
|
||||
ROMHASH=517bd9714c73cb96c21e7c2ef640d7b55186102f
|
||||
;;
|
||||
166c02770d67fcc3954c443eb400a6a3573d3fc0) # n64
|
||||
ROMHASH=517bd9714c73cb96c21e7c2ef640d7b55186102f
|
||||
;;
|
||||
79a4f053d34018e59279e6d4b83c7daccd985c87) # v64
|
||||
ROMHASH=ad69c91157f6705e8ab06c79fe08aad47bb57ba7
|
||||
;;
|
||||
82fafee9c6ac7946739282958364ce606077ac65) # n64
|
||||
ROMHASH=ad69c91157f6705e8ab06c79fe08aad47bb57ba7
|
||||
;;
|
||||
18cd0eb65914a21d8fa08dfe71c29d865e9d728a) # v64
|
||||
ROMHASH=d3ecb253776cd847a5aa63d859d8c89a2f37b364
|
||||
;;
|
||||
07940d5609e04b7caac63570731e01189129212e) # n64
|
||||
ROMHASH=d3ecb253776cd847a5aa63d859d8c89a2f37b364
|
||||
;;
|
||||
3ac86253e0c0d55486d212e647350c1527b9c92d) # v64
|
||||
ROMHASH=41b3bdc48d98c48529219919015a1af22f5057c2
|
||||
;;
|
||||
70bf30a9980026e615a1ae8d2735a773cf9fcc94) # n64
|
||||
ROMHASH=41b3bdc48d98c48529219919015a1af22f5057c2
|
||||
;;
|
||||
f9e2b6840b9103e9707ea390089a7b6943592a98) # v64
|
||||
ROMHASH=c892bbda3993e66bd0d56a10ecd30b1ee612210f
|
||||
;;
|
||||
2fae1601aa7ae8d3e03ba3f4dcdfca3a36002ac5) # n64
|
||||
ROMHASH=c892bbda3993e66bd0d56a10ecd30b1ee612210f
|
||||
;;
|
||||
1181034d5f9533f53ebe8e1c781badbee115f5aa) # v64
|
||||
ROMHASH=dbfc81f655187dc6fefd93fa6798face770d579d
|
||||
;;
|
||||
07477067943abe8d0c50285eb4a6cb9ece99e79b) # n64
|
||||
ROMHASH=dbfc81f655187dc6fefd93fa6798face770d579d
|
||||
;;
|
||||
2d8fb7140a9c5d11ce614561e5a36ffef0c17540) # v64
|
||||
ROMHASH=fa5f5942b27480d60243c2d52c0e93e26b9e6b86
|
||||
;;
|
||||
d90bbe422ac728ac54ac6a2c9fec942f7ff04df9) # n64
|
||||
ROMHASH=fa5f5942b27480d60243c2d52c0e93e26b9e6b86
|
||||
;;
|
||||
44c75962911e13bdfdc31b35e0b8e3be6a6a49ab) # v64
|
||||
b82710ba2bd3b4c6ee8aa1a7e9acf787dfc72e9b
|
||||
;;
|
||||
5d47025581060af5ba19e6719c25fea7398e87cf) # n64
|
||||
b82710ba2bd3b4c6ee8aa1a7e9acf787dfc72e9b
|
||||
;;
|
||||
e1d070ad7b017de9f992b362164dcd9d7f820f7e) # v64
|
||||
8b5d13aac69bfbf989861cfdc50b1d840945fc1d
|
||||
;;
|
||||
a8c04cd5aa94a6a32198f36ff2069d43342d18a8) # n64
|
||||
8b5d13aac69bfbf989861cfdc50b1d840945fc1d
|
||||
;;
|
||||
245410280d152f28d5b1c0c0fc37f384db0020cd) # v64
|
||||
0769c84615422d60f16925cd859593cdfa597f84
|
||||
;;
|
||||
fbdc9e444807f9b881e3432cedf66f38746b81d8) # n64
|
||||
0769c84615422d60f16925cd859593cdfa597f84
|
||||
;;
|
||||
b6d33d6bf5d6700c64b6a873ab8b06ff039619bc) # v64
|
||||
2ce2d1a9f0534c9cd9fa04ea5317b80da21e5e73
|
||||
;;
|
||||
2c7113d20044f93c82ec888c19aa09ea7797396d) # n64
|
||||
2ce2d1a9f0534c9cd9fa04ea5317b80da21e5e73
|
||||
;;
|
||||
06c3c098f0e14ed61811dfaf0e8e4519d7d7a826) # v64
|
||||
dd14e143c4275861fe93ea79d0c02e36ae8c6c2f
|
||||
;;
|
||||
bb3f85bfaad9ae7a20afbf618fc9fe126c8c1b4f) # n64
|
||||
dd14e143c4275861fe93ea79d0c02e36ae8c6c2f
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$ROMHASH" in
|
||||
cee6bc3c2a634b41728f2af8da54d9bf8cc14099)
|
||||
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
|
||||
ROM=GC_NMQ_D
|
||||
OTRNAME="oot.otr"
|
||||
fi
|
||||
;;
|
||||
0227d7c0074f2d0ac935631990da8ec5914597b4)
|
||||
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
|
||||
ROM=GC_NMQ_PAL_F
|
||||
OTRNAME="oot.otr"
|
||||
else
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
328a1f1beba30ce5e178f031662019eb32c5f3b5)
|
||||
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
|
||||
ROM=N64_PAL_10
|
||||
OTRNAME="oot.otr"
|
||||
else
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
cfbb98d392e4a9d39da8285d10cbef3974c2f012)
|
||||
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
|
||||
ROM=N64_PAL_11
|
||||
OTRNAME="oot.otr"
|
||||
else
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
ad69c91157f6705e8ab06c79fe08aad47bb57ba7|c892bbda3993e66bd0d56a10ecd30b1ee612210f)
|
||||
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
|
||||
ROM=N64_NTSC_10
|
||||
OTRNAME="oot.otr"
|
||||
else
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
d3ecb253776cd847a5aa63d859d8c89a2f37b364|dbfc81f655187dc6fefd93fa6798face770d579d)
|
||||
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
|
||||
ROM=N64_NTSC_11
|
||||
OTRNAME="oot.otr"
|
||||
else
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
41b3bdc48d98c48529219919015a1af22f5057c2|fa5f5942b27480d60243c2d52c0e93e26b9e6b86)
|
||||
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
|
||||
ROM=N64_NTSC_12
|
||||
OTRNAME="oot.otr"
|
||||
else
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
f46239439f59a2a594ef83cf68ef65043b1bffe2)
|
||||
if [[ ! -e "$SHIP_HOME"/oot-mq.otr ]]; then
|
||||
ROM=GC_MQ_PAL_F
|
||||
OTRNAME="oot-mq.otr"
|
||||
else
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
50bebedad9e0f10746a52b07239e47fa6c284d03)
|
||||
if [[ ! -e "$SHIP_HOME"/oot-mq.otr ]]; then
|
||||
ROM=GC_MQ_D
|
||||
OTRNAME="oot-mq.otr"
|
||||
else
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
079b855b943d6ad8bd1eb026c0ed169ecbdac7da)
|
||||
if [[ ! -e "$SHIP_HOME"/oot-mq.otr ]]; then
|
||||
ROM=GC_MQ_D
|
||||
OTRNAME="oot-mq.otr"
|
||||
else
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
cfecfdc58d650e71a200c81f033de4e6d617a9f6)
|
||||
if [[ ! -e "$SHIP_HOME"/oot-mq.otr ]]; then
|
||||
ROM=GC_MQ_D
|
||||
OTRNAME="oot-mq.otr"
|
||||
else
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
517bd9714c73cb96c21e7c2ef640d7b55186102f)
|
||||
if [[ ! -e "$SHIP_HOME"/oot-mq.otr ]]; then
|
||||
ROM=GC_MQ_D
|
||||
OTRNAME="oot-mq.otr"
|
||||
else
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
b82710ba2bd3b4c6ee8aa1a7e9acf787dfc72e9b)
|
||||
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
|
||||
ROM=GC_NMQ_NTSC_U
|
||||
OTRNAME="oot.otr"
|
||||
else
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
8b5d13aac69bfbf989861cfdc50b1d840945fc1d)
|
||||
if [[ ! -e "$SHIP_HOME"/oot-mq.otr ]]; then
|
||||
ROM=GC_MQ_NTSC_U
|
||||
OTRNAME="oot-mq.otr"
|
||||
else
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
0769c84615422d60f16925cd859593cdfa597f84)
|
||||
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
|
||||
ROM=GC_NMQ_NTSC_J
|
||||
OTRNAME="oot.otr"
|
||||
else
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
2ce2d1a9f0534c9cd9fa04ea5317b80da21e5e73)
|
||||
if [[ ! -e "$SHIP_HOME"/oot.otr ]]; then
|
||||
ROM=GC_NMQ_NTSC_J_CE
|
||||
OTRNAME="oot.otr"
|
||||
else
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
dd14e143c4275861fe93ea79d0c02e36ae8c6c2f)
|
||||
if [[ ! -e "$SHIP_HOME"/oot-mq.otr ]]; then
|
||||
ROM=GC_MQ_NTSC_J
|
||||
OTRNAME="oot-mq.otr"
|
||||
else
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo -e "\n$romfile - $ROMHASH rom hash does not match\n"
|
||||
continue;;
|
||||
esac
|
||||
if [[ ! -e "$SHIP_HOME"/"$OTRNAME" ]]; then
|
||||
if [ -n "$ZENITY" ]; then
|
||||
(echo "# 25%"; echo "25"; sleep 2; echo "# 50%"; echo "50"; sleep 3; echo "# 75%"; echo "75"; sleep 2; echo "# 100%"; echo "100"; sleep 3) |
|
||||
zenity --progress --title="OTR Generating..." --timeout=10 --percentage=0 --icon-name=soh --window-icon=soh.png --height=80 --width=400 &
|
||||
else
|
||||
echo "Processing..."
|
||||
fi
|
||||
assets/extractor/ZAPD.out ed -eh -i assets/extractor/xmls/"${ROM}" -b tmp/rom.z64 -fl assets/extractor/filelists -o placeholder -osf placeholder -gsf 1 -rconf assets/extractor/Config_"${ROM}".xml -se OTR --otrfile "${OTRNAME}" --portVer "@CMAKE_PROJECT_VERSION@" > /dev/null 2>&1
|
||||
cp "$ASSETDIR"/"$OTRNAME" "$SHIP_HOME"
|
||||
fi
|
||||
else
|
||||
if [[ (! -e "$SHIP_HOME"/oot.otr) && (! -e "$SHIP_HOME"/oot-mq.otr) ]]; then
|
||||
if [ -n "$ZENITY" ]; then
|
||||
zenity --error --timeout=5 --text="Place ROM in $SHIP_HOME" --title="Missing ROM file" --width=500 --width=200
|
||||
else
|
||||
echo -e "\nPlace ROM in this folder\n"
|
||||
fi
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
done
|
||||
if [[ (! -e "$SHIP_HOME"/oot.otr) && (! -e "$SHIP_HOME"/oot-mq.otr) ]]; then
|
||||
if [ -n "$ZENITY" ]; then
|
||||
zenity --error --timeout=10 --text="No valid ROMs were provided, No OTR was generated." --title="Incorrect ROM file" --width=500 --width=200
|
||||
else
|
||||
echo "No valid roms provided, no OTR was generated."
|
||||
fi
|
||||
rm -r "$ASSETDIR"
|
||||
exit
|
||||
else
|
||||
(cd "$SHIP_BIN_DIR"; ./soh.elf)
|
||||
exit
|
||||
fi
|
||||
rm -r "$ASSETDIR"
|
||||
done
|
||||
(cd "$SHIP_BIN_DIR"; ./soh.elf)
|
||||
exit
|
||||
9
soh.desktop
Normal file
9
soh.desktop
Normal file
@@ -0,0 +1,9 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=SOH
|
||||
Exec=soh.elf
|
||||
Terminal=false
|
||||
Icon=sohIcon
|
||||
Type=Application
|
||||
Categories=Game;
|
||||
X-AppImage-Integrate=false
|
||||
@@ -4,7 +4,7 @@ set(CMAKE_SYSTEM_VERSION 10.0 CACHE STRING "" FORCE)
|
||||
|
||||
project(soh LANGUAGES C CXX)
|
||||
set(CMAKE_CXX_STANDARD 20 CACHE STRING "The C++ standard to use")
|
||||
set(CMAKE_C_STANDARD 17 CACHE STRING "The C standard to use")
|
||||
set(CMAKE_C_STANDARD 23 CACHE STRING "The C standard to use")
|
||||
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
enable_language(OBJCXX)
|
||||
@@ -19,15 +19,15 @@ set (BUILD_SHARED_LIBS OFF CACHE STRING "install/link shared instead of static l
|
||||
# Set target arch type if empty. Visual studio solution generator provides it.
|
||||
################################################################################
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
if(NOT CMAKE_VS_PLATFORM_NAME)
|
||||
set(CMAKE_VS_PLATFORM_NAME "x64")
|
||||
endif()
|
||||
message("${CMAKE_VS_PLATFORM_NAME} architecture in use")
|
||||
if(NOT CMAKE_VS_PLATFORM_NAME)
|
||||
set(CMAKE_VS_PLATFORM_NAME "x64")
|
||||
endif()
|
||||
message("${CMAKE_VS_PLATFORM_NAME} architecture in use")
|
||||
|
||||
if(NOT ("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64"
|
||||
OR "${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32"))
|
||||
message(FATAL_ERROR "${CMAKE_VS_PLATFORM_NAME} arch is not supported!")
|
||||
endif()
|
||||
if(NOT ("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64"
|
||||
OR "${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32"))
|
||||
message(FATAL_ERROR "${CMAKE_VS_PLATFORM_NAME} arch is not supported!")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
################################################################################
|
||||
@@ -138,20 +138,27 @@ endforeach()
|
||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||
set_source_files_properties(soh/OTRGlobals.cpp PROPERTIES COMPILE_FLAGS "/utf-8")
|
||||
set_source_files_properties(soh/Enhancements/tts/tts.cpp PROPERTIES COMPILE_FLAGS "/utf-8")
|
||||
set_source_files_properties(soh/Enhancements/custom-message/CustomMessageManager.cpp PROPERTIES COMPILE_FLAGS "/utf-8")
|
||||
set_source_files_properties(soh/Enhancements/custom-message/CustomMessageManager.h PROPERTIES COMPILE_FLAGS "/utf-8")
|
||||
endif()
|
||||
|
||||
# handle Network removals
|
||||
if (!BUILD_REMOTE_CONTROL)
|
||||
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/crowd-control/*")
|
||||
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/crowd-control/")
|
||||
endif()
|
||||
|
||||
# handle speechsynthesizer removals
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/speechsynthesizer/Darwin*")
|
||||
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/speechsynthesizer/Darwin")
|
||||
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/speechsynthesizer/SAPI*")
|
||||
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/speechsynthesizer/SAPI")
|
||||
else()
|
||||
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/speechsynthesizer/(Darwin|SAPI).*")
|
||||
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/speechsynthesizer/(Darwin|SAPI)")
|
||||
endif()
|
||||
|
||||
find_library(ESPEAK espeak-ng)
|
||||
if (NOT ESPEAK)
|
||||
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/speechsynthesizer/ESpeak")
|
||||
endif()
|
||||
|
||||
# soh/Extractor {{{
|
||||
@@ -177,12 +184,12 @@ file(GLOB_RECURSE src__ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "src/*.c" "src/*.h"
|
||||
set_source_files_properties(${src__} PROPERTIES COMPILE_OPTIONS "${WARNING_OVERRIDE}")
|
||||
|
||||
list(APPEND src__ ${CMAKE_CURRENT_SOURCE_DIR}/Resource.rc)
|
||||
list(FILTER src__ EXCLUDE REGEX "src/dmadata/*")
|
||||
list(FILTER src__ EXCLUDE REGEX "src/elf_message/*")
|
||||
list(FILTER src__ EXCLUDE REGEX "src/libultra/io/*")
|
||||
list(FILTER src__ EXCLUDE REGEX "src/libultra/libc/*")
|
||||
list(FILTER src__ EXCLUDE REGEX "src/libultra/os/*")
|
||||
list(FILTER src__ EXCLUDE REGEX "src/libultra/rmon/*")
|
||||
list(FILTER src__ EXCLUDE REGEX "src/dmadata/")
|
||||
list(FILTER src__ EXCLUDE REGEX "src/elf_message/")
|
||||
list(FILTER src__ EXCLUDE REGEX "src/libultra/io/")
|
||||
list(FILTER src__ EXCLUDE REGEX "src/libultra/libc/")
|
||||
list(FILTER src__ EXCLUDE REGEX "src/libultra/os/")
|
||||
list(FILTER src__ EXCLUDE REGEX "src/libultra/rmon/")
|
||||
list(APPEND src__ "src/libultra/libc/sprintf.c")
|
||||
list(REMOVE_ITEM src__ "src/libultra/gu/cosf.c")
|
||||
list(REMOVE_ITEM src__ "src/libultra/gu/lookat.c")
|
||||
@@ -225,85 +232,68 @@ endif()
|
||||
set(ROOT_NAMESPACE soh)
|
||||
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
VS_GLOBAL_KEYWORD "Win32Proj"
|
||||
)
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
INTERPROCEDURAL_OPTIMIZATION_RELEASE "TRUE"
|
||||
)
|
||||
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
INTERPROCEDURAL_OPTIMIZATION_RELEASE "TRUE"
|
||||
)
|
||||
endif()
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
VS_GLOBAL_KEYWORD "Win32Proj"
|
||||
)
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
INTERPROCEDURAL_OPTIMIZATION_RELEASE "TRUE"
|
||||
)
|
||||
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
INTERPROCEDURAL_OPTIMIZATION_RELEASE "TRUE"
|
||||
)
|
||||
endif()
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES
|
||||
OUTPUT_NAME "soh-macos"
|
||||
)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
OUTPUT_NAME "soh.elf"
|
||||
)
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
OUTPUT_NAME "soh.elf"
|
||||
)
|
||||
endif()
|
||||
################################################################################
|
||||
# MSVC runtime library
|
||||
################################################################################
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
get_property(MSVC_RUNTIME_LIBRARY_DEFAULT TARGET ${PROJECT_NAME} PROPERTY MSVC_RUNTIME_LIBRARY)
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
string(CONCAT "MSVC_RUNTIME_LIBRARY_STR"
|
||||
$<$<CONFIG:Debug>:
|
||||
MultiThreadedDebug
|
||||
>
|
||||
$<$<CONFIG:Release>:
|
||||
MultiThreaded
|
||||
>
|
||||
$<$<NOT:$<OR:$<CONFIG:Debug>,$<CONFIG:Release>>>:${MSVC_RUNTIME_LIBRARY_DEFAULT}>
|
||||
)
|
||||
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
|
||||
string(CONCAT "MSVC_RUNTIME_LIBRARY_STR"
|
||||
$<$<CONFIG:Debug>:
|
||||
MultiThreadedDebug
|
||||
>
|
||||
$<$<CONFIG:Release>:
|
||||
MultiThreaded
|
||||
>
|
||||
$<$<NOT:$<OR:$<CONFIG:Debug>,$<CONFIG:Release>>>:${MSVC_RUNTIME_LIBRARY_DEFAULT}>
|
||||
)
|
||||
endif()
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES MSVC_RUNTIME_LIBRARY ${MSVC_RUNTIME_LIBRARY_STR})
|
||||
get_property(MSVC_RUNTIME_LIBRARY_DEFAULT TARGET ${PROJECT_NAME} PROPERTY MSVC_RUNTIME_LIBRARY)
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
string(CONCAT "MSVC_RUNTIME_LIBRARY_STR"
|
||||
$<$<CONFIG:Debug>:
|
||||
MultiThreadedDebug
|
||||
>
|
||||
$<$<CONFIG:Release>:
|
||||
MultiThreaded
|
||||
>
|
||||
$<$<NOT:$<OR:$<CONFIG:Debug>,$<CONFIG:Release>>>:${MSVC_RUNTIME_LIBRARY_DEFAULT}>
|
||||
)
|
||||
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
|
||||
string(CONCAT "MSVC_RUNTIME_LIBRARY_STR"
|
||||
$<$<CONFIG:Debug>:
|
||||
MultiThreadedDebug
|
||||
>
|
||||
$<$<CONFIG:Release>:
|
||||
MultiThreaded
|
||||
>
|
||||
$<$<NOT:$<OR:$<CONFIG:Debug>,$<CONFIG:Release>>>:${MSVC_RUNTIME_LIBRARY_DEFAULT}>
|
||||
)
|
||||
endif()
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES MSVC_RUNTIME_LIBRARY ${MSVC_RUNTIME_LIBRARY_STR})
|
||||
endif()
|
||||
################################################################################
|
||||
# Find/download Boost
|
||||
# Find/download Dr Libs (For custom audio)
|
||||
################################################################################
|
||||
include(FetchContent)
|
||||
|
||||
FetchContent_Declare(
|
||||
Boost
|
||||
URL https://archives.boost.io/release/1.81.0/source/boost_1_81_0.tar.gz
|
||||
URL_HASH SHA256=205666dea9f6a7cfed87c7a6dfbeb52a2c1b9de55712c9c1a87735d7181452b6
|
||||
SOURCE_SUBDIR "null" # Set to a nonexistent directory so boost is not built (we don't need to build it)
|
||||
DOWNLOAD_EXTRACT_TIMESTAMP false # supress timestamp warning, not needed since the url wont change
|
||||
dr_libs
|
||||
GIT_REPOSITORY https://github.com/mackron/dr_libs.git
|
||||
GIT_TAG da35f9d6c7374a95353fd1df1d394d44ab66cf01
|
||||
)
|
||||
FetchContent_MakeAvailable(dr_libs)
|
||||
|
||||
set(Boost_NO_BOOST_CMAKE false)
|
||||
set(BOOST_INCLUDEDIR ${FETCHCONTENT_BASE_DIR}/boost-src) # Location where FetchContent stores the source
|
||||
message("Searching for Boost installation")
|
||||
find_package(Boost)
|
||||
|
||||
if (NOT ${Boost_FOUND})
|
||||
message("Boost not found. Downloading now...")
|
||||
FetchContent_MakeAvailable(Boost)
|
||||
message("Boost downloaded to " ${FETCHCONTENT_BASE_DIR}/boost-src)
|
||||
set(BOOST-INCLUDE ${FETCHCONTENT_BASE_DIR}/boost-src)
|
||||
else()
|
||||
message("Boost found in " ${Boost_INCLUDE_DIRS})
|
||||
set(BOOST-INCLUDE ${Boost_INCLUDE_DIRS})
|
||||
endif()
|
||||
################################################################################
|
||||
# Compile definitions
|
||||
################################################################################
|
||||
find_package(SDL2)
|
||||
set(SDL2-INCLUDE ${SDL2_INCLUDE_DIRS})
|
||||
|
||||
@@ -318,113 +308,103 @@ if (BUILD_REMOTE_CONTROL)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (ESPEAK)
|
||||
add_compile_definitions(ESPEAK=1)
|
||||
endif()
|
||||
|
||||
################################################################################
|
||||
# Compile definitions
|
||||
################################################################################
|
||||
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE assets
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include/
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include/
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/log
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/debug
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/menu
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/utils
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/utils/binarytools
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/config
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/resource
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/resource/type
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/resource/factory
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/audio
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/window
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/window/gui
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/config
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/public
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/public/libultra
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/public/bridge
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/extern
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/extern/tinyxml2
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/libultraship/Lib/
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/libultraship/Lib/libjpeg/include/
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/graphic/Fast3D/U64/PR
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libultraship/src/graphic
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../ZAPDTR/ZAPD/resource/type
|
||||
${SDL2-INCLUDE}
|
||||
${SDL2-INCLUDE}
|
||||
${SDL2-NET-INCLUDE}
|
||||
${BOOST-INCLUDE}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/assets/
|
||||
.
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/assets/
|
||||
${dr_libs_SOURCE_DIR}
|
||||
.
|
||||
)
|
||||
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
||||
"$<$<CONFIG:Debug>:"
|
||||
"_DEBUG;"
|
||||
"_CRT_SECURE_NO_WARNINGS;"
|
||||
"ENABLE_DX11;"
|
||||
">"
|
||||
"$<$<CONFIG:Release>:"
|
||||
"NDEBUG"
|
||||
">"
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
||||
"$<$<CONFIG:Debug>:"
|
||||
"_DEBUG;"
|
||||
"_CRT_SECURE_NO_WARNINGS;"
|
||||
"ENABLE_DX11;"
|
||||
">"
|
||||
"$<$<CONFIG:Release>:"
|
||||
"NDEBUG;"
|
||||
">"
|
||||
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:ENABLE_REMOTE_CONTROL>"
|
||||
"INCLUDE_GAME_PRINTF;"
|
||||
"INCLUDE_GAME_PRINTF;"
|
||||
"F3DEX_GBI_2"
|
||||
"UNICODE;"
|
||||
"_UNICODE"
|
||||
STORMLIB_NO_AUTO_LINK
|
||||
"_CRT_SECURE_NO_WARNINGS;"
|
||||
"UNICODE;"
|
||||
"_UNICODE"
|
||||
SPDLOG_ACTIVE_LEVEL=${SPDLOG_MIN_CUTOFF}
|
||||
LOG_LEVEL_GAME_PRINTS=${SPDLOG_LEVEL_OFF}
|
||||
STORMLIB_NO_AUTO_LINK
|
||||
"_CRT_SECURE_NO_WARNINGS;"
|
||||
NOMINMAX
|
||||
)
|
||||
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
||||
"$<$<CONFIG:Debug>:"
|
||||
"NOINCLUDE_GAME_PRINTF;"
|
||||
"_DEBUG;"
|
||||
"_CRT_SECURE_NO_WARNINGS;"
|
||||
"ENABLE_OPENGL"
|
||||
">"
|
||||
"$<$<CONFIG:Release>:"
|
||||
"NDEBUG;"
|
||||
">"
|
||||
"INCLUDE_GAME_PRINTF;"
|
||||
)
|
||||
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
||||
"$<$<CONFIG:Debug>:"
|
||||
"NOINCLUDE_GAME_PRINTF;"
|
||||
"_DEBUG;"
|
||||
"_CRT_SECURE_NO_WARNINGS;"
|
||||
"ENABLE_OPENGL;"
|
||||
">"
|
||||
"$<$<CONFIG:Release>:"
|
||||
"NDEBUG;"
|
||||
">"
|
||||
"INCLUDE_GAME_PRINTF;"
|
||||
"F3DEX_GBI_2"
|
||||
"WIN32;"
|
||||
"UNICODE;"
|
||||
"_UNICODE"
|
||||
STORMLIB_NO_AUTO_LINK
|
||||
"WIN32;"
|
||||
"UNICODE;"
|
||||
"_UNICODE;"
|
||||
SPDLOG_ACTIVE_LEVEL=${SPDLOG_MIN_CUTOFF}
|
||||
LOG_LEVEL_GAME_PRINTS=${SPDLOG_LEVEL_OFF}
|
||||
STORMLIB_NO_AUTO_LINK
|
||||
NOMINMAX
|
||||
)
|
||||
endif()
|
||||
)
|
||||
endif()
|
||||
elseif (CMAKE_SYSTEM_NAME STREQUAL "CafeOS")
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
||||
"$<$<CONFIG:Debug>:"
|
||||
"_DEBUG"
|
||||
">"
|
||||
"$<$<CONFIG:Release>:"
|
||||
"NDEBUG"
|
||||
">"
|
||||
"F3DEX_GBI_2"
|
||||
"SPDLOG_ACTIVE_LEVEL=3;"
|
||||
"SPDLOG_NO_THREAD_ID;"
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
||||
"$<$<CONFIG:Debug>:"
|
||||
"_DEBUG;"
|
||||
">"
|
||||
"$<$<CONFIG:Release>:"
|
||||
"NDEBUG;"
|
||||
">"
|
||||
"F3DEX_GBI_2;"
|
||||
"SPDLOG_NO_THREAD_ID;"
|
||||
"SPDLOG_NO_TLS;"
|
||||
"STBI_NO_THREAD_LOCALS;"
|
||||
)
|
||||
"STBI_NO_THREAD_LOCALS;"
|
||||
SPDLOG_ACTIVE_LEVEL=${SPDLOG_MIN_CUTOFF}
|
||||
LOG_LEVEL_GAME_PRINTS=${SPDLOG_LEVEL_OFF}
|
||||
)
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU|Clang|AppleClang")
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
||||
"$<$<CONFIG:Debug>:"
|
||||
"_DEBUG"
|
||||
">"
|
||||
"$<$<CONFIG:Release>:"
|
||||
"NDEBUG"
|
||||
">"
|
||||
"F3DEX_GBI_2"
|
||||
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:ENABLE_REMOTE_CONTROL>"
|
||||
"SPDLOG_ACTIVE_LEVEL=0;"
|
||||
"_CONSOLE;"
|
||||
"_CRT_SECURE_NO_WARNINGS;"
|
||||
"ENABLE_OPENGL;"
|
||||
"UNICODE;"
|
||||
"_UNICODE"
|
||||
)
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
||||
"$<$<CONFIG:Debug>:"
|
||||
"_DEBUG;"
|
||||
">"
|
||||
"$<$<CONFIG:Release>:"
|
||||
"NDEBUG;"
|
||||
">"
|
||||
"F3DEX_GBI_2;"
|
||||
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:ENABLE_REMOTE_CONTROL>;"
|
||||
"_CONSOLE;"
|
||||
"_CRT_SECURE_NO_WARNINGS;"
|
||||
"ENABLE_OPENGL;"
|
||||
"UNICODE;"
|
||||
"_UNICODE;"
|
||||
SPDLOG_ACTIVE_LEVEL=${SPDLOG_MIN_CUTOFF}
|
||||
LOG_LEVEL_GAME_PRINTS=${SPDLOG_LEVEL_OFF}
|
||||
)
|
||||
endif()
|
||||
################################################################################
|
||||
# Compile and link options
|
||||
@@ -504,6 +484,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
target_compile_options(${PROJECT_NAME} PRIVATE
|
||||
-Wall -Wextra -Wno-error
|
||||
-Wformat-security
|
||||
-Wno-return-type
|
||||
-Wno-unused-parameter
|
||||
-Wno-unused-function
|
||||
@@ -512,10 +493,10 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
|
||||
-Wno-parentheses
|
||||
-Wno-narrowing
|
||||
-Wno-missing-braces
|
||||
-Wno-int-conversion
|
||||
$<$<COMPILE_LANGUAGE:C>:
|
||||
-Werror-implicit-function-declaration
|
||||
-Wno-incompatible-pointer-types
|
||||
-Wno-int-conversion
|
||||
>
|
||||
$<$<COMPILE_LANGUAGE:CXX>:-fpermissive>
|
||||
$<$<COMPILE_LANGUAGE:CXX>:
|
||||
@@ -531,6 +512,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
|
||||
elseif (CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch")
|
||||
target_compile_options(${PROJECT_NAME} PRIVATE
|
||||
-Wall -Wextra -Wno-error
|
||||
-Wformat-security
|
||||
-Wno-return-type
|
||||
-Wno-unused-parameter
|
||||
-Wno-unused-function
|
||||
@@ -576,11 +558,12 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
|
||||
)
|
||||
else()
|
||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
|
||||
set(CPU_OPTION -msse2 -mfpmath=sse)
|
||||
set(CPU_OPTION -msse2 -mfpmath=sse)
|
||||
endif()
|
||||
|
||||
target_compile_options(${PROJECT_NAME} PRIVATE
|
||||
-Wall -Wextra -Wno-error
|
||||
-Wformat-security
|
||||
-Wno-unused-parameter
|
||||
-Wno-unused-function
|
||||
-Wno-unused-variable
|
||||
@@ -588,20 +571,21 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
|
||||
-Wno-parentheses
|
||||
-Wno-narrowing
|
||||
-Wno-missing-braces
|
||||
-Wno-int-conversion
|
||||
-Wno-implicit-int
|
||||
$<$<COMPILE_LANGUAGE:C>:
|
||||
-Werror-implicit-function-declaration
|
||||
-Wno-implicit-int
|
||||
-Wno-incompatible-pointer-types
|
||||
-Wno-int-conversion
|
||||
>
|
||||
$<$<COMPILE_LANGUAGE:CXX>:-fpermissive>
|
||||
$<$<COMPILE_LANGUAGE:CXX>:-Wno-deprecated-enum-enum-conversion>
|
||||
-pthread
|
||||
${CPU_OPTION}
|
||||
${CPU_OPTION}
|
||||
)
|
||||
|
||||
target_link_options(${PROJECT_NAME} PRIVATE
|
||||
-pthread
|
||||
#-fsanitize=address
|
||||
-Wl,-export-dynamic
|
||||
)
|
||||
endif()
|
||||
@@ -610,21 +594,22 @@ endif()
|
||||
# Pre build events
|
||||
################################################################################
|
||||
if (CMAKE_GENERATOR MATCHES "Visual Studio")
|
||||
set(VS_COPY_ASSETS_CMD ${CMAKE_COMMAND} -E copy_directory_if_different $<TARGET_FILE_DIR:soh>/assets ${CMAKE_BINARY_DIR}/soh/assets)
|
||||
add_custom_command(
|
||||
TARGET ${PROJECT_NAME}
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_SOURCE_DIR}/soh/assets/extractor ${CMAKE_BINARY_DIR}/soh/assets
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_SOURCE_DIR}/soh/assets/xml ${CMAKE_BINARY_DIR}/soh/assets/xml
|
||||
)
|
||||
endif()
|
||||
if(NOT CMAKE_SYSTEM_NAME MATCHES "NintendoSwitch|CafeOS")
|
||||
add_custom_command(
|
||||
TARGET ${PROJECT_NAME}
|
||||
POST_BUILD
|
||||
COMMENT "Copying asset xmls..."
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_SOURCE_DIR}/soh/assets/extractor $<TARGET_FILE_DIR:soh>/assets/extractor
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_SOURCE_DIR}/soh/assets/xml $<TARGET_FILE_DIR:soh>/assets/extractor/xmls
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/filelists $<TARGET_FILE_DIR:soh>/assets/extractor/filelists
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:soh>/assets/extractor/symbols
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ActorList_OoTMqDbg.txt $<TARGET_FILE_DIR:soh>/assets/extractor/symbols
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/ObjectList_OoTMqDbg.txt $<TARGET_FILE_DIR:soh>/assets/extractor/symbols
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/OTRExporter/CFG/SymbolMap_OoTMqDbg.txt $<TARGET_FILE_DIR:soh>/assets/extractor/symbols
|
||||
COMMAND ${VS_COPY_ASSETS_CMD}
|
||||
TARGET ${PROJECT_NAME}
|
||||
POST_BUILD
|
||||
COMMENT "Copying asset xmls..."
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_SOURCE_DIR}/soh/assets/extractor $<TARGET_FILE_DIR:soh>/assets
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_SOURCE_DIR}/soh/assets/xml $<TARGET_FILE_DIR:soh>/assets/xml
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:soh>/assets/symbols
|
||||
# COMMAND ${VS_COPY_ASSETS_CMD}
|
||||
)
|
||||
endif()
|
||||
################################################################################
|
||||
@@ -641,34 +626,49 @@ endif()
|
||||
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
find_package(glfw3 REQUIRED)
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
set(ADDITIONAL_LIBRARY_DEPENDENCIES
|
||||
"libultraship;"
|
||||
"ZAPDLib;"
|
||||
"glu32;"
|
||||
"SDL2::SDL2;"
|
||||
"SDL2::SDL2main;"
|
||||
find_package(Ogg CONFIG REQUIRED)
|
||||
link_libraries(Ogg::ogg)
|
||||
|
||||
find_package(Vorbis CONFIG REQUIRED)
|
||||
link_libraries(Vorbis::vorbisfile)
|
||||
find_package(Opus CONFIG REQUIRED)
|
||||
link_libraries(Opus::opus)
|
||||
find_package(OpusFile CONFIG REQUIRED)
|
||||
link_libraries(OpusFile::opusfile CONFIG REQUIRED)
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
set(ADDITIONAL_LIBRARY_DEPENDENCIES
|
||||
"libultraship;"
|
||||
"ZAPDLib;"
|
||||
"glu32;"
|
||||
"SDL2::SDL2;"
|
||||
"SDL2::SDL2main;"
|
||||
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:SDL2_net::SDL2_net-static>"
|
||||
"glfw;"
|
||||
"winmm;"
|
||||
"imm32;"
|
||||
"version;"
|
||||
"setupapi"
|
||||
)
|
||||
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
|
||||
set(ADDITIONAL_LIBRARY_DEPENDENCIES
|
||||
"libultraship;"
|
||||
"ZAPDLib;"
|
||||
"glu32;"
|
||||
"SDL2::SDL2;"
|
||||
"SDL2::SDL2main;"
|
||||
"glfw;"
|
||||
"winmm;"
|
||||
"imm32;"
|
||||
"version;"
|
||||
"setupapi"
|
||||
)
|
||||
endif()
|
||||
"glfw;"
|
||||
"winmm;"
|
||||
"imm32;"
|
||||
"version;"
|
||||
"setupapi"
|
||||
"Ogg::ogg"
|
||||
"Opus::opus"
|
||||
"Vorbis::vorbis"
|
||||
"Vorbis::vorbisenc"
|
||||
"Vorbis::vorbisfile"
|
||||
"OpusFile::opusfile"
|
||||
)
|
||||
elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")
|
||||
set(ADDITIONAL_LIBRARY_DEPENDENCIES
|
||||
"libultraship;"
|
||||
"ZAPDLib;"
|
||||
"glu32;"
|
||||
"SDL2::SDL2;"
|
||||
"SDL2::SDL2main;"
|
||||
"glfw;"
|
||||
"winmm;"
|
||||
"imm32;"
|
||||
"version;"
|
||||
"setupapi"
|
||||
)
|
||||
endif()
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch")
|
||||
find_package(SDL2)
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
@@ -694,14 +694,24 @@ else()
|
||||
find_package(SDL2)
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
find_package(Threads REQUIRED)
|
||||
set(ADDITIONAL_LIBRARY_DEPENDENCIES
|
||||
"libultraship;"
|
||||
"ZAPDLib;"
|
||||
SDL2::SDL2
|
||||
find_package(Ogg REQUIRED)
|
||||
find_package(Vorbis REQUIRED)
|
||||
find_package(Opus REQUIRED)
|
||||
find_package(OpusFile REQUIRED)
|
||||
set(ADDITIONAL_LIBRARY_DEPENDENCIES
|
||||
"libultraship;"
|
||||
"ZAPDLib;"
|
||||
SDL2::SDL2
|
||||
"Ogg::ogg"
|
||||
"Vorbis::vorbis"
|
||||
"Vorbis::vorbisenc"
|
||||
"Vorbis::vorbisfile"
|
||||
"Opus::opus"
|
||||
"Opusfile::Opusfile"
|
||||
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:SDL2_net::SDL2_net>"
|
||||
${CMAKE_DL_LIBS}
|
||||
Threads::Threads
|
||||
)
|
||||
${CMAKE_DL_LIBS}
|
||||
Threads::Threads
|
||||
)
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_SYSTEM_NAME MATCHES "Darwin|NintendoSwitch|CafeOS")
|
||||
@@ -710,21 +720,17 @@ endif()
|
||||
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
INSTALL(FILES $<TARGET_PDB_FILE:soh> DESTINATION ./debug COMPONENT ship)
|
||||
INSTALL(FILES ${CMAKE_BINARY_DIR}/soh/soh.otr DESTINATION . COMPONENT ship)
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/linux/appimage/soh.sh.in ${CMAKE_BINARY_DIR}/linux/soh.sh @ONLY)
|
||||
INSTALL(FILES ${CMAKE_BINARY_DIR}/soh/soh.o2r DESTINATION . COMPONENT ship)
|
||||
endif()
|
||||
|
||||
find_program(CURL NAMES curl DOC "Path to the curl program. Used to download files.")
|
||||
execute_process(COMMAND ${CURL} -sSfL https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt -o ${CMAKE_BINARY_DIR}/gamecontrollerdb.txt OUTPUT_VARIABLE RESULT)
|
||||
execute_process(COMMAND ${CURL} -sSfL https://raw.githubusercontent.com/mdqinc/SDL_GameControllerDB/master/gamecontrollerdb.txt -o ${CMAKE_BINARY_DIR}/gamecontrollerdb.txt OUTPUT_VARIABLE RESULT)
|
||||
|
||||
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
|
||||
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/macosx/Info.plist.in ${CMAKE_BINARY_DIR}/macosx/Info.plist @ONLY)
|
||||
INSTALL(TARGETS soh DESTINATION ../MacOS COMPONENT ship)
|
||||
INSTALL(FILES ${CMAKE_BINARY_DIR}/gamecontrollerdb.txt DESTINATION ../MacOS COMPONENT ship)
|
||||
INSTALL(FILES ${CMAKE_BINARY_DIR}/soh/soh.otr DESTINATION ../Resources COMPONENT ship)
|
||||
INSTALL(FILES ${CMAKE_BINARY_DIR}/soh/soh.o2r DESTINATION ../Resources COMPONENT ship)
|
||||
elseif(NOT "${CMAKE_SYSTEM_NAME}" MATCHES "NintendoSwitch|CafeOS")
|
||||
INSTALL(FILES ${CMAKE_BINARY_DIR}/gamecontrollerdb.txt DESTINATION . COMPONENT ship)
|
||||
endif()
|
||||
@@ -758,10 +764,10 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "CafeOS")
|
||||
wut_create_rpx(${PROJECT_NAME})
|
||||
|
||||
wut_create_wuhb(${PROJECT_NAME}
|
||||
NAME "Ship of Harkinian"
|
||||
SHORTNAME "SoH"
|
||||
AUTHOR "${PROJECT_TEAM}"
|
||||
ICON ${CMAKE_CURRENT_SOURCE_DIR}/icon.jpg
|
||||
NAME "Ship of Harkinian"
|
||||
SHORTNAME "SoH"
|
||||
AUTHOR "${PROJECT_TEAM}"
|
||||
ICON ${CMAKE_CURRENT_SOURCE_DIR}/icon.jpg
|
||||
)
|
||||
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/soh.rpx ${CMAKE_CURRENT_BINARY_DIR}/soh.wuhb DESTINATION . COMPONENT ship)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
#include <ship/resource/Resource.h>
|
||||
#include "properties.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
@@ -25,5 +25,5 @@
|
||||
"quest_sel_vanilla": "Quest - Original",
|
||||
"quest_sel_mq": "Quest - Master Quest",
|
||||
"quest_sel_randomizer": "Quest - Randomizer",
|
||||
"quest_sel_boss_rush": "Quest - Bosse Rush"
|
||||
}
|
||||
"quest_sel_boss_rush": "Quest - Boss Rush"
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
"health": "Health - $0 Hearts",
|
||||
"magic": "Magic - $0",
|
||||
"rupees": "Rupees - $0",
|
||||
"keys": "Keys - $0",
|
||||
"floor": "Floor $0",
|
||||
"basement": "Basement $0",
|
||||
"item_menu": "Select Item",
|
||||
@@ -171,6 +172,7 @@
|
||||
"153": "STICK UPGRADE 30",
|
||||
"154": "NUT UPGRADE 30",
|
||||
"155": "NUT UPGRADE 40",
|
||||
"157": "Roc's Feather",
|
||||
"255": "",
|
||||
"256": "Haunted Wasteland",
|
||||
"257": "Gerudos Fortress",
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
"health": "Vie - $0 Coeurs",
|
||||
"magic": "Magie - $0",
|
||||
"rupees": "Rubis - $0",
|
||||
"keys": "Clés - $0",
|
||||
"floor": "Étage $0",
|
||||
"basement": "Sous-sol $0",
|
||||
"item_menu": "Inventaire",
|
||||
@@ -171,6 +172,7 @@
|
||||
"153": "AMÉLIORATION BÂTON MOJO 30",
|
||||
"154": "AMÉLIORATION NOIX MOJO 30",
|
||||
"155": "AMÉLIORATION NOIX MOJO 40",
|
||||
"157": "Plume de Roc",
|
||||
"255": "",
|
||||
"256": "Désert Hanté",
|
||||
"257": "Forteresse Gerudo",
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
"health": "Energie - $0 Herzen",
|
||||
"magic": "Magie - $0",
|
||||
"rupees": "Rubine - $0",
|
||||
"keys": "Schlüssel - $0",
|
||||
"floor": "Etage $0",
|
||||
"basement": "Keller $0",
|
||||
"item_menu": "Gegenstände",
|
||||
@@ -46,7 +47,7 @@
|
||||
"28": "Blaues Feuer",
|
||||
"29": "Käfer",
|
||||
"30": "Nachtschwärmer",
|
||||
"31": "Milch (1/2)",
|
||||
"31": "Milch (Halbe Füllung)",
|
||||
"32": "Irrlicht",
|
||||
"33": "Seltsames Ei",
|
||||
"34": "Huhn",
|
||||
@@ -66,7 +67,7 @@
|
||||
"48": "Schimmelpilz",
|
||||
"49": "Modertrank",
|
||||
"50": "Säge",
|
||||
"51": "Goronen-Schwert (zerbrochen)",
|
||||
"51": "Zerbr. Goronen-Schwert",
|
||||
"52": "Rezept",
|
||||
"53": "Glotzfrosch",
|
||||
"54": "Augentropfen",
|
||||
@@ -77,7 +78,7 @@
|
||||
"59": "Kokiri-Schwert",
|
||||
"60": "Master-Schwert",
|
||||
"61": "Langschwert",
|
||||
"62": "Deku-schild",
|
||||
"62": "Deku-Schild",
|
||||
"63": "Hylia-Schild",
|
||||
"64": "Spiegel-Schild",
|
||||
"65": "Kokiri-Rüstung",
|
||||
@@ -98,13 +99,13 @@
|
||||
"80": "Goronen-Armband",
|
||||
"81": "Krafthandschuh",
|
||||
"82": "Titanhandschuh",
|
||||
"83": "Silberschuppe",
|
||||
"84": "Goldschuppe",
|
||||
"85": "Langschwert (gebrochen)",
|
||||
"83": "Silberne Schuppe",
|
||||
"84": "Goldene Schuppe",
|
||||
"85": "Zerbr. Langschwert",
|
||||
"86": "Große Börse",
|
||||
"87": "Riesenbörse",
|
||||
"88": "Deku-Kerne",
|
||||
"89": "Angel",
|
||||
"89": "Angelrute",
|
||||
"90": "Menuett des Waldes",
|
||||
"91": "Bolero des Feuers",
|
||||
"92": "Serenade des Wassers",
|
||||
@@ -116,7 +117,7 @@
|
||||
"98": "Salias Lied",
|
||||
"99": "Hymne der Sonne",
|
||||
"100": "Hymne der Zeit",
|
||||
"101": "Song of Storms",
|
||||
"101": "Hymne des Sturms",
|
||||
"102": "Amulett des Waldes",
|
||||
"103": "Amulett des Feuers",
|
||||
"104": "Amulett des Wassers",
|
||||
@@ -124,7 +125,7 @@
|
||||
"106": "Amulett des Schattens",
|
||||
"107": "Amulett des Lichts",
|
||||
"108": "Kokiri-Smaragd",
|
||||
"109": "Goronen-Opal",
|
||||
"109": "Goronen-Rubin",
|
||||
"110": "Zora-Saphir",
|
||||
"111": "Stein des Wissens",
|
||||
"112": "Gerudo-Paß",
|
||||
@@ -135,8 +136,8 @@
|
||||
"117": "Kompaß",
|
||||
"118": "Labyrinth-Karte",
|
||||
"119": "Kleiner Schlüssel",
|
||||
"120": "MAGIE KLEIN",
|
||||
"121": "MAGIE GROß",
|
||||
"120": "Kleine Magieflasche",
|
||||
"121": "Große Magieflasche",
|
||||
"122": "Biggoron-Schwert",
|
||||
"123": "UNGÜLTIG 1",
|
||||
"124": "UNGÜLTIG 2",
|
||||
@@ -153,24 +154,25 @@
|
||||
"135": "50 Rubine",
|
||||
"136": "200 Rubine",
|
||||
"137": "UNGÜLTIG 8",
|
||||
"138": "STÄBE 5",
|
||||
"139": "STÄBE 10",
|
||||
"140": "NÜSSE 5",
|
||||
"141": "NÜSSE 10",
|
||||
"138": "DEKU-STÄBE 5",
|
||||
"139": "DEKU-STÄBE 10",
|
||||
"140": "DEKU-NÜSSE 5",
|
||||
"141": "DEKU-NÜSSE 10",
|
||||
"142": "BOMBEN 5",
|
||||
"143": "BOMBEN 10",
|
||||
"144": "BOMBEN 20",
|
||||
"145": "BOMBEN 30",
|
||||
"146": "PFEILE KLEIN",
|
||||
"147": "PFEILE MITTEL",
|
||||
"148": "PFEILE GROß",
|
||||
"149": "KERNE 30",
|
||||
"146": "PFEILE 5",
|
||||
"147": "PFEILE 10",
|
||||
"148": "PFEILE 30",
|
||||
"149": "DEKU-KERNE 30",
|
||||
"150": "KRABBELMINEN 5",
|
||||
"151": "KRABBELMINEN 20",
|
||||
"152": "STAB UPGRADE 20",
|
||||
"153": "STAB UPGRADE 30",
|
||||
"154": "NUß UPGRADE 30",
|
||||
"155": "NUß UPGRADE 40",
|
||||
"152": "DEKU-STAB-KAPAZITÄT 20",
|
||||
"153": "DEKU-STAB-KAPAZITÄT 30",
|
||||
"154": "DEKU-NUẞ-KAPAZITÄT 30",
|
||||
"155": "DEKU-NUẞ-KAPAZITÄT 40",
|
||||
"157": "Greifenfeder",
|
||||
"255": "",
|
||||
"256": "Gespensterwüste",
|
||||
"257": "Gerudo-Festung",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"7": "Schattentempel",
|
||||
"8": "Grund des Brunnens",
|
||||
"9": "Eishöhle",
|
||||
"10": "", // Treppe zu Ganondorfs Verließ (Keine Title-Card)
|
||||
"10": "", // Treppe zu Ganondorfs Verlies (Keine Title-Card)
|
||||
"11": "Gerudo-Arena",
|
||||
"12": "Diebesversteck",
|
||||
"13": "Ganons Schloß",
|
||||
@@ -22,7 +22,7 @@
|
||||
"20": "Reitendes Unheil - Phantom-Ganon",
|
||||
"21": "Subterraner Lavadrachoid - Volvagia",
|
||||
"22": "Aquamöbes Wassertentakel - Morpha",
|
||||
"23": "Höllische Hexenarmada - Killa Ohmaz",
|
||||
"23": "Höllische Hexenarmada - Twinrova",
|
||||
"24": "Bestialische Schattenmonstrosität - Bongo Bongo",
|
||||
"25": "Großmeister des Bösen - Ganondorf",
|
||||
"26": "",
|
||||
@@ -109,4 +109,4 @@
|
||||
"107": "",
|
||||
"108": "", // Debug: SRD Raum (Keine Title-Card)
|
||||
"109": "" // Debug: Schatzkisten Teleport (Keine Title-Card)
|
||||
}
|
||||
}
|
||||
|
||||
BIN
soh/assets/custom/fonts/NotoSansJP-Regular.ttf
Normal file
BIN
soh/assets/custom/fonts/NotoSansJP-Regular.ttf
Normal file
Binary file not shown.
1010
soh/assets/custom/lang/en_US.json
Normal file
1010
soh/assets/custom/lang/en_US.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,19 +0,0 @@
|
||||
<DisplayList Version="0">
|
||||
<CallDisplayList Path="objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potrim"/>
|
||||
<CallDisplayList Path="objects/gameplay_dangeon_keep/gRandoPotDL_tri_0"/>
|
||||
<CallDisplayList Path="objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potface"/>
|
||||
<CallDisplayList Path="objects/gameplay_dangeon_keep/gRandoPotDL_tri_1"/>
|
||||
<CallDisplayList Path="objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potbase"/>
|
||||
<CallDisplayList Path="objects/gameplay_dangeon_keep/gRandoPotDL_tri_2"/>
|
||||
<CallDisplayList Path="objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potbottom"/>
|
||||
<CallDisplayList Path="objects/gameplay_dangeon_keep/gRandoPotDL_tri_3"/>
|
||||
<CallDisplayList Path="objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potvoid"/>
|
||||
<CallDisplayList Path="objects/gameplay_dangeon_keep/gRandoPotDL_tri_4"/>
|
||||
<PipeSync/>
|
||||
<SetGeometryMode G_LIGHTING="1" />
|
||||
<ClearGeometryMode G_TEXTURE_GEN="1" />
|
||||
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
|
||||
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -1,82 +0,0 @@
|
||||
<Vertex Version="0">
|
||||
<Vtx X="-35" Y="133" Z="-20" S="546" T="573" R="159" G="61" B="200" A="255"/>
|
||||
<Vtx X="-35" Y="133" Z="20" S="305" T="573" R="159" G="61" B="56" A="255"/>
|
||||
<Vtx X="-35" Y="146" Z="20" S="305" T="654" R="196" G="149" B="34" A="255"/>
|
||||
<Vtx X="-35" Y="146" Z="-20" S="546" T="654" R="196" G="149" B="222" A="255"/>
|
||||
<Vtx X="-43" Y="146" Z="25" S="278" T="699" R="169" G="178" B="50" A="255"/>
|
||||
<Vtx X="-43" Y="146" Z="-25" S="572" T="699" R="169" G="178" B="206" A="255"/>
|
||||
<Vtx X="-43" Y="160" Z="25" S="278" T="778" R="169" G="78" B="50" A="255"/>
|
||||
<Vtx X="-43" Y="160" Z="-25" S="572" T="778" R="169" G="78" B="206" A="255"/>
|
||||
<Vtx X="-29" Y="160" Z="17" S="325" T="858" R="60" G="107" B="222" A="255"/>
|
||||
<Vtx X="-29" Y="160" Z="-17" S="526" T="858" R="60" G="107" B="34" A="255"/>
|
||||
<Vtx X="-29" Y="134" Z="17" S="325" T="1008" R="87" G="78" B="206" A="255"/>
|
||||
<Vtx X="-29" Y="134" Z="-17" S="526" T="1008" R="87" G="78" B="50" A="255"/>
|
||||
<Vtx X="-35" Y="133" Z="20" S="10" T="1008" R="159" G="61" B="56" A="255"/>
|
||||
<Vtx X="0" Y="133" Z="41" S="252" T="1008" R="0" G="61" B="112" A="255"/>
|
||||
<Vtx X="0" Y="146" Z="41" S="252" T="927" R="0" G="149" B="69" A="255"/>
|
||||
<Vtx X="-35" Y="146" Z="20" S="10" T="927" R="196" G="149" B="34" A="255"/>
|
||||
<Vtx X="-35" Y="146" Z="20" S="10" T="927" R="196" G="149" B="34" A="255"/>
|
||||
<Vtx X="0" Y="146" Z="41" S="252" T="927" R="0" G="149" B="69" A="255"/>
|
||||
<Vtx X="0" Y="146" Z="49" S="278" T="882" R="0" G="178" B="101" A="255"/>
|
||||
<Vtx X="-43" Y="146" Z="25" S="-16" T="882" R="169" G="178" B="50" A="255"/>
|
||||
<Vtx X="0" Y="160" Z="49" S="278" T="803" R="0" G="78" B="101" A="255"/>
|
||||
<Vtx X="-43" Y="160" Z="25" S="-16" T="803" R="169" G="78" B="50" A="255"/>
|
||||
<Vtx X="0" Y="160" Z="34" S="232" T="723" R="0" G="107" B="187" A="255"/>
|
||||
<Vtx X="-29" Y="160" Z="17" S="30" T="723" R="60" G="107" B="222" A="255"/>
|
||||
<Vtx X="0" Y="134" Z="34" S="232" T="573" R="0" G="78" B="155" A="255"/>
|
||||
<Vtx X="-29" Y="134" Z="17" S="30" T="573" R="87" G="78" B="206" A="255"/>
|
||||
<Vtx X="0" Y="133" Z="-41" S="573" T="740" R="0" G="61" B="144" A="255"/>
|
||||
<Vtx X="-35" Y="133" Z="-20" S="573" T="982" R="159" G="61" B="200" A="255"/>
|
||||
<Vtx X="-35" Y="146" Z="-20" S="654" T="982" R="196" G="149" B="222" A="255"/>
|
||||
<Vtx X="0" Y="146" Z="-41" S="654" T="740" R="0" G="149" B="187" A="255"/>
|
||||
<Vtx X="-43" Y="146" Z="-25" S="699" T="1008" R="169" G="178" B="206" A="255"/>
|
||||
<Vtx X="0" Y="146" Z="-49" S="699" T="714" R="0" G="178" B="155" A="255"/>
|
||||
<Vtx X="0" Y="146" Z="-49" S="699" T="714" R="0" G="178" B="155" A="255"/>
|
||||
<Vtx X="-43" Y="146" Z="-25" S="699" T="1008" R="169" G="178" B="206" A="255"/>
|
||||
<Vtx X="-43" Y="160" Z="-25" S="778" T="1008" R="169" G="78" B="206" A="255"/>
|
||||
<Vtx X="0" Y="160" Z="-49" S="778" T="714" R="0" G="78" B="155" A="255"/>
|
||||
<Vtx X="-29" Y="160" Z="-17" S="858" T="962" R="60" G="107" B="34" A="255"/>
|
||||
<Vtx X="0" Y="160" Z="-34" S="858" T="760" R="0" G="107" B="69" A="255"/>
|
||||
<Vtx X="-29" Y="134" Z="-17" S="1008" T="962" R="87" G="78" B="50" A="255"/>
|
||||
<Vtx X="0" Y="134" Z="-34" S="1008" T="760" R="0" G="78" B="101" A="255"/>
|
||||
<Vtx X="35" Y="133" Z="20" S="687" T="137" R="97" G="61" B="56" A="255"/>
|
||||
<Vtx X="35" Y="133" Z="-20" S="446" T="137" R="97" G="61" B="200" A="255"/>
|
||||
<Vtx X="35" Y="146" Z="-20" S="446" T="218" R="60" G="149" B="222" A="255"/>
|
||||
<Vtx X="35" Y="146" Z="20" S="687" T="218" R="60" G="149" B="34" A="255"/>
|
||||
<Vtx X="43" Y="146" Z="-25" S="420" T="263" R="87" G="178" B="206" A="255"/>
|
||||
<Vtx X="43" Y="146" Z="25" S="714" T="263" R="87" G="178" B="50" A="255"/>
|
||||
<Vtx X="43" Y="160" Z="-25" S="420" T="342" R="87" G="78" B="206" A="255"/>
|
||||
<Vtx X="43" Y="160" Z="25" S="714" T="342" R="87" G="78" B="50" A="255"/>
|
||||
<Vtx X="29" Y="160" Z="-17" S="466" T="422" R="196" G="107" B="34" A="255"/>
|
||||
<Vtx X="43" Y="160" Z="25" S="714" T="342" R="87" G="78" B="50" A="255"/>
|
||||
<Vtx X="43" Y="160" Z="-25" S="420" T="342" R="87" G="78" B="206" A="255"/>
|
||||
<Vtx X="29" Y="160" Z="17" S="667" T="422" R="196" G="107" B="222" A="255"/>
|
||||
<Vtx X="29" Y="134" Z="-17" S="466" T="572" R="169" G="78" B="50" A="255"/>
|
||||
<Vtx X="29" Y="134" Z="17" S="667" T="572" R="169" G="78" B="206" A="255"/>
|
||||
<Vtx X="35" Y="133" Z="-20" S="-16" T="305" R="97" G="61" B="200" A="255"/>
|
||||
<Vtx X="0" Y="133" Z="-41" S="-16" T="546" R="0" G="61" B="144" A="255"/>
|
||||
<Vtx X="0" Y="146" Z="-41" S="65" T="546" R="0" G="149" B="187" A="255"/>
|
||||
<Vtx X="35" Y="146" Z="-20" S="65" T="305" R="60" G="149" B="222" A="255"/>
|
||||
<Vtx X="0" Y="146" Z="-49" S="110" T="572" R="0" G="178" B="155" A="255"/>
|
||||
<Vtx X="43" Y="146" Z="-25" S="110" T="278" R="87" G="178" B="206" A="255"/>
|
||||
<Vtx X="0" Y="160" Z="-49" S="189" T="572" R="0" G="78" B="155" A="255"/>
|
||||
<Vtx X="43" Y="160" Z="-25" S="189" T="278" R="87" G="78" B="206" A="255"/>
|
||||
<Vtx X="0" Y="160" Z="-34" S="269" T="526" R="0" G="107" B="69" A="255"/>
|
||||
<Vtx X="29" Y="160" Z="-17" S="269" T="325" R="196" G="107" B="34" A="255"/>
|
||||
<Vtx X="29" Y="160" Z="-17" S="269" T="325" R="196" G="107" B="34" A="255"/>
|
||||
<Vtx X="0" Y="160" Z="-34" S="269" T="526" R="0" G="107" B="69" A="255"/>
|
||||
<Vtx X="0" Y="134" Z="-34" S="419" T="526" R="0" G="78" B="101" A="255"/>
|
||||
<Vtx X="29" Y="134" Z="-17" S="419" T="325" R="169" G="78" B="50" A="255"/>
|
||||
<Vtx X="0" Y="133" Z="41" S="419" T="252" R="0" G="61" B="112" A="255"/>
|
||||
<Vtx X="35" Y="133" Z="20" S="419" T="10" R="97" G="61" B="56" A="255"/>
|
||||
<Vtx X="35" Y="146" Z="20" S="338" T="10" R="60" G="149" B="34" A="255"/>
|
||||
<Vtx X="0" Y="146" Z="41" S="338" T="252" R="0" G="149" B="69" A="255"/>
|
||||
<Vtx X="43" Y="146" Z="25" S="293" T="-16" R="87" G="178" B="50" A="255"/>
|
||||
<Vtx X="0" Y="146" Z="49" S="293" T="278" R="0" G="178" B="101" A="255"/>
|
||||
<Vtx X="43" Y="160" Z="25" S="214" T="-16" R="87" G="78" B="50" A="255"/>
|
||||
<Vtx X="0" Y="160" Z="49" S="214" T="278" R="0" G="78" B="101" A="255"/>
|
||||
<Vtx X="29" Y="160" Z="17" S="134" T="30" R="196" G="107" B="222" A="255"/>
|
||||
<Vtx X="0" Y="160" Z="34" S="134" T="232" R="0" G="107" B="187" A="255"/>
|
||||
<Vtx X="29" Y="134" Z="17" S="-16" T="30" R="169" G="78" B="206" A="255"/>
|
||||
<Vtx X="0" Y="134" Z="34" S="-16" T="232" R="0" G="78" B="155" A="255"/>
|
||||
</Vertex>
|
||||
@@ -1,26 +0,0 @@
|
||||
<Vertex Version="0">
|
||||
<Vtx X="0" Y="0" Z="-51" S="240" T="240" R="0" G="150" B="185" A="255"/>
|
||||
<Vtx X="0" Y="43" Z="-82" S="240" T="-16" R="0" G="220" B="134" A="255"/>
|
||||
<Vtx X="71" Y="43" Z="-41" S="-16" T="-16" R="106" G="220" B="195" A="255"/>
|
||||
<Vtx X="44" Y="0" Z="-25" S="-16" T="240" R="61" G="150" B="221" A="255"/>
|
||||
<Vtx X="44" Y="0" Z="-25" S="240" T="240" R="61" G="150" B="221" A="255"/>
|
||||
<Vtx X="71" Y="43" Z="-41" S="240" T="-16" R="106" G="220" B="195" A="255"/>
|
||||
<Vtx X="71" Y="43" Z="41" S="-16" T="-16" R="106" G="220" B="61" A="255"/>
|
||||
<Vtx X="44" Y="0" Z="25" S="-16" T="240" R="61" G="150" B="35" A="255"/>
|
||||
<Vtx X="44" Y="0" Z="25" S="240" T="240" R="61" G="150" B="35" A="255"/>
|
||||
<Vtx X="71" Y="43" Z="41" S="240" T="-16" R="106" G="220" B="61" A="255"/>
|
||||
<Vtx X="0" Y="43" Z="82" S="-16" T="-16" R="0" G="220" B="122" A="255"/>
|
||||
<Vtx X="0" Y="0" Z="51" S="-16" T="240" R="0" G="150" B="71" A="255"/>
|
||||
<Vtx X="0" Y="0" Z="51" S="240" T="240" R="0" G="150" B="71" A="255"/>
|
||||
<Vtx X="0" Y="43" Z="82" S="240" T="-16" R="0" G="220" B="122" A="255"/>
|
||||
<Vtx X="-71" Y="43" Z="41" S="-16" T="-16" R="150" G="220" B="61" A="255"/>
|
||||
<Vtx X="-44" Y="0" Z="25" S="-16" T="240" R="195" G="150" B="35" A="255"/>
|
||||
<Vtx X="-44" Y="0" Z="25" S="240" T="240" R="195" G="150" B="35" A="255"/>
|
||||
<Vtx X="-71" Y="43" Z="41" S="240" T="-16" R="150" G="220" B="61" A="255"/>
|
||||
<Vtx X="-71" Y="43" Z="-41" S="-16" T="-16" R="150" G="220" B="195" A="255"/>
|
||||
<Vtx X="-44" Y="0" Z="-25" S="-16" T="240" R="195" G="150" B="221" A="255"/>
|
||||
<Vtx X="-44" Y="0" Z="-25" S="240" T="240" R="195" G="150" B="221" A="255"/>
|
||||
<Vtx X="-71" Y="43" Z="-41" S="240" T="-16" R="150" G="220" B="195" A="255"/>
|
||||
<Vtx X="0" Y="43" Z="-82" S="-16" T="-16" R="0" G="220" B="134" A="255"/>
|
||||
<Vtx X="0" Y="0" Z="-51" S="-16" T="240" R="0" G="150" B="185" A="255"/>
|
||||
</Vertex>
|
||||
Binary file not shown.
Binary file not shown.
BIN
soh/assets/custom/objects/object_box/gBoxChestCornerHealthTex
Normal file
BIN
soh/assets/custom/objects/object_box/gBoxChestCornerHealthTex
Normal file
Binary file not shown.
BIN
soh/assets/custom/objects/object_box/gBoxChestCornerJunkTex
Normal file
BIN
soh/assets/custom/objects/object_box/gBoxChestCornerJunkTex
Normal file
Binary file not shown.
BIN
soh/assets/custom/objects/object_box/gBoxChestCornerLesserTex
Normal file
BIN
soh/assets/custom/objects/object_box/gBoxChestCornerLesserTex
Normal file
Binary file not shown.
BIN
soh/assets/custom/objects/object_box/gBoxChestCornerMajorTex
Normal file
BIN
soh/assets/custom/objects/object_box/gBoxChestCornerMajorTex
Normal file
Binary file not shown.
BIN
soh/assets/custom/objects/object_box/gBoxChestCornerMaskTex
Normal file
BIN
soh/assets/custom/objects/object_box/gBoxChestCornerMaskTex
Normal file
Binary file not shown.
Binary file not shown.
BIN
soh/assets/custom/objects/object_box/gBoxChestCornerSmallKeyTex
Normal file
BIN
soh/assets/custom/objects/object_box/gBoxChestCornerSmallKeyTex
Normal file
Binary file not shown.
Binary file not shown.
BIN
soh/assets/custom/objects/object_box/gBoxChestLockHealthTex
Normal file
BIN
soh/assets/custom/objects/object_box/gBoxChestLockHealthTex
Normal file
Binary file not shown.
BIN
soh/assets/custom/objects/object_box/gBoxChestLockJunkTex
Normal file
BIN
soh/assets/custom/objects/object_box/gBoxChestLockJunkTex
Normal file
Binary file not shown.
BIN
soh/assets/custom/objects/object_box/gBoxChestLockLesserTex
Normal file
BIN
soh/assets/custom/objects/object_box/gBoxChestLockLesserTex
Normal file
Binary file not shown.
BIN
soh/assets/custom/objects/object_box/gBoxChestLockMajorTex
Normal file
BIN
soh/assets/custom/objects/object_box/gBoxChestLockMajorTex
Normal file
Binary file not shown.
BIN
soh/assets/custom/objects/object_box/gBoxChestLockMaskTex
Normal file
BIN
soh/assets/custom/objects/object_box/gBoxChestLockMaskTex
Normal file
Binary file not shown.
BIN
soh/assets/custom/objects/object_box/gBoxChestLockSkullTokenTex
Normal file
BIN
soh/assets/custom/objects/object_box/gBoxChestLockSkullTokenTex
Normal file
Binary file not shown.
BIN
soh/assets/custom/objects/object_box/gBoxChestLockSmallKeyTex
Normal file
BIN
soh/assets/custom/objects/object_box/gBoxChestLockSmallKeyTex
Normal file
Binary file not shown.
BIN
soh/assets/custom/objects/object_box/gBoxChestLockStrayFairyTex
Normal file
BIN
soh/assets/custom/objects/object_box/gBoxChestLockStrayFairyTex
Normal file
Binary file not shown.
13
soh/assets/custom/objects/object_box/gChestBodyFairyDL
Normal file
13
soh/assets/custom/objects/object_box/gChestBodyFairyDL
Normal file
@@ -0,0 +1,13 @@
|
||||
<DisplayList Version="0">
|
||||
<CallDisplayList Path="objects/object_box/mat_gChestBodyFairyDL_Sides"/>
|
||||
<CallDisplayList Path="objects/object_box/gChestBodyFairyDL_tri_0"/>
|
||||
<CallDisplayList Path="objects/object_box/mat_gChestBodyFairyDL_Front"/>
|
||||
<CallDisplayList Path="objects/object_box/gChestBodyFairyDL_tri_1"/>
|
||||
<PipeSync/>
|
||||
<SetGeometryMode G_LIGHTING="1" />
|
||||
<ClearGeometryMode G_TEXTURE_GEN="1" />
|
||||
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
|
||||
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
33
soh/assets/custom/objects/object_box/gChestBodyFairyDL_tri_0
Normal file
33
soh/assets/custom/objects/object_box/gChestBodyFairyDL_tri_0
Normal file
@@ -0,0 +1,33 @@
|
||||
<DisplayList Version="0">
|
||||
<LoadVertices Path="objects/object_box/gChestBodyFairyDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="6" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="10" V02="11"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="14" V02="15"/>
|
||||
<LoadVertices Path="objects/object_box/gChestBodyFairyDL_vtx_0" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="6" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="10" V02="11"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="14" V02="15"/>
|
||||
<LoadVertices Path="objects/object_box/gChestBodyFairyDL_vtx_0" VertexBufferIndex="0" VertexOffset="32" Count="12"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="5" V01="7" V02="6"/>
|
||||
<Triangle1 V00="5" V01="8" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="7"/>
|
||||
<Triangle1 V00="8" V01="10" V02="9"/>
|
||||
<Triangle1 V00="10" V01="11" V02="9"/>
|
||||
<Triangle1 V00="10" V01="4" V02="11"/>
|
||||
<Triangle1 V00="4" V01="6" V02="11"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<DisplayList Version="0">
|
||||
<LoadVertices Path="objects/object_box/gChestBodyFairyDL_vtx_1" VertexBufferIndex="0" VertexOffset="0" Count="4"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
46
soh/assets/custom/objects/object_box/gChestBodyFairyDL_vtx_0
Normal file
46
soh/assets/custom/objects/object_box/gChestBodyFairyDL_vtx_0
Normal file
@@ -0,0 +1,46 @@
|
||||
<Vertex Version="0">
|
||||
<Vtx X="-2530" Y="0" Z="1950" S="-20" T="-12" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="1950" S="-20" T="2036" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="-1950" S="2036" T="2036" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="-1950" S="2036" T="-12" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="-1950" S="2036" T="2036" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="-1950" S="2036" T="-12" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="1950" S="-20" T="-12" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="1950" S="-20" T="2036" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="1950" S="2036" T="2036" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="1950" S="2036" T="-17" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="1950" S="-20" T="-17" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="1950" S="-20" T="2036" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="-1950" S="2032" T="-16" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="-1950" S="-16" T="-16" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="1950" S="-16" T="2040" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="1950" S="2032" T="2040" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="1750" S="-16" T="2037" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="1750" S="2051" T="2037" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="1750" S="2051" T="-16" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="1750" S="-16" T="-16" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="-1750" S="2051" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="-1750" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="1750" S="-16" T="2037" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="1750" S="2051" T="2037" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="-1750" S="-9" T="2044" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="-1750" S="2044" T="2044" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="-1750" S="2044" T="-23" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="-1750" S="-9" T="-23" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="1750" S="-9" T="2044" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="-1750" S="2044" T="2044" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="-1750" S="2044" T="-23" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="1750" S="-9" T="-23" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="-1750" S="-16" T="2037" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="1750" S="2051" T="2037" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="1750" S="2051" T="-16" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="-1750" S="-16" T="-16" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="1750" S="83" T="81" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="1750" S="1932" T="102" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="1950" S="2021" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="-1950" S="2021" T="2031" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="-1750" S="1932" T="1923" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="-1950" S="-16" T="2031" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="-1750" S="83" T="1944" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="1950" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
</Vertex>
|
||||
@@ -0,0 +1,6 @@
|
||||
<Vertex Version="0">
|
||||
<Vtx X="-2530" Y="0" Z="-1950" S="2034" T="2028" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="-1950" S="2034" T="-6" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="-1950" S="-13" T="-6" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="-1950" S="-13" T="2028" R="0" G="0" B="129" A="255"/>
|
||||
</Vertex>
|
||||
13
soh/assets/custom/objects/object_box/gChestBodyHeartDL
Normal file
13
soh/assets/custom/objects/object_box/gChestBodyHeartDL
Normal file
@@ -0,0 +1,13 @@
|
||||
<DisplayList Version="0">
|
||||
<CallDisplayList Path="objects/object_box/mat_gChestBodyHeartDL_Sides"/>
|
||||
<CallDisplayList Path="objects/object_box/gChestBodyHeartDL_tri_0"/>
|
||||
<CallDisplayList Path="objects/object_box/mat_gChestBodyHeartDL_Front"/>
|
||||
<CallDisplayList Path="objects/object_box/gChestBodyHeartDL_tri_1"/>
|
||||
<PipeSync/>
|
||||
<SetGeometryMode G_LIGHTING="1" />
|
||||
<ClearGeometryMode G_TEXTURE_GEN="1" />
|
||||
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
|
||||
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
33
soh/assets/custom/objects/object_box/gChestBodyHeartDL_tri_0
Normal file
33
soh/assets/custom/objects/object_box/gChestBodyHeartDL_tri_0
Normal file
@@ -0,0 +1,33 @@
|
||||
<DisplayList Version="0">
|
||||
<LoadVertices Path="objects/object_box/gChestBodyHeartDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="6" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="10" V02="11"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="14" V02="15"/>
|
||||
<LoadVertices Path="objects/object_box/gChestBodyHeartDL_vtx_0" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="6" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="10" V02="11"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="14" V02="15"/>
|
||||
<LoadVertices Path="objects/object_box/gChestBodyHeartDL_vtx_0" VertexBufferIndex="0" VertexOffset="32" Count="12"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="5" V01="7" V02="6"/>
|
||||
<Triangle1 V00="5" V01="8" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="7"/>
|
||||
<Triangle1 V00="8" V01="10" V02="9"/>
|
||||
<Triangle1 V00="10" V01="11" V02="9"/>
|
||||
<Triangle1 V00="10" V01="4" V02="11"/>
|
||||
<Triangle1 V00="4" V01="6" V02="11"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<DisplayList Version="0">
|
||||
<LoadVertices Path="objects/object_box/gChestBodyHeartDL_vtx_1" VertexBufferIndex="0" VertexOffset="0" Count="4"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
46
soh/assets/custom/objects/object_box/gChestBodyHeartDL_vtx_0
Normal file
46
soh/assets/custom/objects/object_box/gChestBodyHeartDL_vtx_0
Normal file
@@ -0,0 +1,46 @@
|
||||
<Vertex Version="0">
|
||||
<Vtx X="-2530" Y="0" Z="1950" S="-20" T="-12" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="1950" S="-20" T="2036" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="-1950" S="2036" T="2036" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="-1950" S="2036" T="-12" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="-1950" S="2036" T="2036" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="-1950" S="2036" T="-12" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="1950" S="-20" T="-12" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="1950" S="-20" T="2036" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="1950" S="2036" T="2036" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="1950" S="2036" T="-17" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="1950" S="-20" T="-17" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="1950" S="-20" T="2036" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="-1950" S="2032" T="-16" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="-1950" S="-16" T="-16" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="1950" S="-16" T="2040" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="1950" S="2032" T="2040" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="1750" S="-16" T="2037" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="1750" S="2051" T="2037" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="1750" S="2051" T="-16" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="1750" S="-16" T="-16" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="-1750" S="2051" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="-1750" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="1750" S="-16" T="2037" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="1750" S="2051" T="2037" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="-1750" S="-9" T="2044" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="-1750" S="2044" T="2044" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="-1750" S="2044" T="-23" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="-1750" S="-9" T="-23" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="1750" S="-9" T="2044" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="-1750" S="2044" T="2044" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="-1750" S="2044" T="-23" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="1750" S="-9" T="-23" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="-1750" S="-16" T="2037" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="1750" S="2051" T="2037" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="1750" S="2051" T="-16" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="-1750" S="-16" T="-16" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="1750" S="83" T="81" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="1750" S="1932" T="102" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="1950" S="2021" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="-1950" S="2021" T="2031" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="-1750" S="1932" T="1923" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="-1950" S="-16" T="2031" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="-1750" S="83" T="1944" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="1950" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
</Vertex>
|
||||
@@ -0,0 +1,6 @@
|
||||
<Vertex Version="0">
|
||||
<Vtx X="-2530" Y="0" Z="-1950" S="2034" T="2028" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="-1950" S="2034" T="-6" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="-1950" S="-13" T="-6" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="-1950" S="-13" T="2028" R="0" G="0" B="129" A="255"/>
|
||||
</Vertex>
|
||||
13
soh/assets/custom/objects/object_box/gChestBodyJunkDL
Normal file
13
soh/assets/custom/objects/object_box/gChestBodyJunkDL
Normal file
@@ -0,0 +1,13 @@
|
||||
<DisplayList Version="0">
|
||||
<CallDisplayList Path="objects/object_box/mat_gChestBodyJunkDL_Sides"/>
|
||||
<CallDisplayList Path="objects/object_box/gChestBodyJunkDL_tri_0"/>
|
||||
<CallDisplayList Path="objects/object_box/mat_gChestBodyJunkDL_Front"/>
|
||||
<CallDisplayList Path="objects/object_box/gChestBodyJunkDL_tri_1"/>
|
||||
<PipeSync/>
|
||||
<SetGeometryMode G_LIGHTING="1" />
|
||||
<ClearGeometryMode G_TEXTURE_GEN="1" />
|
||||
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
|
||||
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
33
soh/assets/custom/objects/object_box/gChestBodyJunkDL_tri_0
Normal file
33
soh/assets/custom/objects/object_box/gChestBodyJunkDL_tri_0
Normal file
@@ -0,0 +1,33 @@
|
||||
<DisplayList Version="0">
|
||||
<LoadVertices Path="objects/object_box/gChestBodyJunkDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="6" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="10" V02="11"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="14" V02="15"/>
|
||||
<LoadVertices Path="objects/object_box/gChestBodyJunkDL_vtx_0" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="6" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="10" V02="11"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="14" V02="15"/>
|
||||
<LoadVertices Path="objects/object_box/gChestBodyJunkDL_vtx_0" VertexBufferIndex="0" VertexOffset="32" Count="12"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="5" V01="7" V02="6"/>
|
||||
<Triangle1 V00="5" V01="8" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="7"/>
|
||||
<Triangle1 V00="8" V01="10" V02="9"/>
|
||||
<Triangle1 V00="10" V01="11" V02="9"/>
|
||||
<Triangle1 V00="10" V01="4" V02="11"/>
|
||||
<Triangle1 V00="4" V01="6" V02="11"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<DisplayList Version="0">
|
||||
<LoadVertices Path="objects/object_box/gChestBodyJunkDL_vtx_1" VertexBufferIndex="0" VertexOffset="0" Count="4"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
46
soh/assets/custom/objects/object_box/gChestBodyJunkDL_vtx_0
Normal file
46
soh/assets/custom/objects/object_box/gChestBodyJunkDL_vtx_0
Normal file
@@ -0,0 +1,46 @@
|
||||
<Vertex Version="0">
|
||||
<Vtx X="-2530" Y="0" Z="1950" S="-20" T="-12" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="1950" S="-20" T="2036" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="-1950" S="2036" T="2036" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="-1950" S="2036" T="-12" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="-1950" S="2036" T="2036" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="-1950" S="2036" T="-12" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="1950" S="-20" T="-12" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="1950" S="-20" T="2036" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="1950" S="2036" T="2036" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="1950" S="2036" T="-17" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="1950" S="-20" T="-17" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="1950" S="-20" T="2036" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="-1950" S="2032" T="-16" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="-1950" S="-16" T="-16" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="1950" S="-16" T="2040" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="1950" S="2032" T="2040" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="1750" S="-16" T="2037" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="1750" S="2051" T="2037" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="1750" S="2051" T="-16" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="1750" S="-16" T="-16" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="-1750" S="2051" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="-1750" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="1750" S="-16" T="2037" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="1750" S="2051" T="2037" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="-1750" S="-9" T="2044" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="-1750" S="2044" T="2044" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="-1750" S="2044" T="-23" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="-1750" S="-9" T="-23" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="1750" S="-9" T="2044" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="-1750" S="2044" T="2044" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="-1750" S="2044" T="-23" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="1750" S="-9" T="-23" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="-1750" S="-16" T="2037" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="1750" S="2051" T="2037" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="1750" S="2051" T="-16" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="-1750" S="-16" T="-16" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="1750" S="83" T="81" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="1750" S="1932" T="102" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="1950" S="2021" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="-1950" S="2021" T="2031" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="-1750" S="1932" T="1923" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="-1950" S="-16" T="2031" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="-1750" S="83" T="1944" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="1950" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
</Vertex>
|
||||
@@ -0,0 +1,6 @@
|
||||
<Vertex Version="0">
|
||||
<Vtx X="-2530" Y="0" Z="-1950" S="2034" T="2028" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="-1950" S="2034" T="-6" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="-1950" S="-13" T="-6" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="-1950" S="-13" T="2028" R="0" G="0" B="129" A="255"/>
|
||||
</Vertex>
|
||||
13
soh/assets/custom/objects/object_box/gChestBodyMajorDL
Normal file
13
soh/assets/custom/objects/object_box/gChestBodyMajorDL
Normal file
@@ -0,0 +1,13 @@
|
||||
<DisplayList Version="0">
|
||||
<CallDisplayList Path="objects/object_box/mat_gChestBodyMajorDL_Sides"/>
|
||||
<CallDisplayList Path="objects/object_box/gChestBodyMajorDL_tri_0"/>
|
||||
<CallDisplayList Path="objects/object_box/mat_gChestBodyMajorDL_Front"/>
|
||||
<CallDisplayList Path="objects/object_box/gChestBodyMajorDL_tri_1"/>
|
||||
<PipeSync/>
|
||||
<SetGeometryMode G_LIGHTING="1" />
|
||||
<ClearGeometryMode G_TEXTURE_GEN="1" />
|
||||
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
|
||||
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
33
soh/assets/custom/objects/object_box/gChestBodyMajorDL_tri_0
Normal file
33
soh/assets/custom/objects/object_box/gChestBodyMajorDL_tri_0
Normal file
@@ -0,0 +1,33 @@
|
||||
<DisplayList Version="0">
|
||||
<LoadVertices Path="objects/object_box/gChestBodyMajorDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="6" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="10" V02="11"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="14" V02="15"/>
|
||||
<LoadVertices Path="objects/object_box/gChestBodyMajorDL_vtx_0" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="6" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="10" V02="11"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="14" V02="15"/>
|
||||
<LoadVertices Path="objects/object_box/gChestBodyMajorDL_vtx_0" VertexBufferIndex="0" VertexOffset="32" Count="12"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="5" V01="7" V02="6"/>
|
||||
<Triangle1 V00="5" V01="8" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="7"/>
|
||||
<Triangle1 V00="8" V01="10" V02="9"/>
|
||||
<Triangle1 V00="10" V01="11" V02="9"/>
|
||||
<Triangle1 V00="10" V01="4" V02="11"/>
|
||||
<Triangle1 V00="4" V01="6" V02="11"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<DisplayList Version="0">
|
||||
<LoadVertices Path="objects/object_box/gChestBodyMajorDL_vtx_1" VertexBufferIndex="0" VertexOffset="0" Count="4"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
46
soh/assets/custom/objects/object_box/gChestBodyMajorDL_vtx_0
Normal file
46
soh/assets/custom/objects/object_box/gChestBodyMajorDL_vtx_0
Normal file
@@ -0,0 +1,46 @@
|
||||
<Vertex Version="0">
|
||||
<Vtx X="-2530" Y="0" Z="1950" S="-20" T="-12" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="1950" S="-20" T="2036" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="-1950" S="2036" T="2036" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="-1950" S="2036" T="-12" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="-1950" S="2036" T="2036" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="-1950" S="2036" T="-12" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="1950" S="-20" T="-12" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="1950" S="-20" T="2036" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="1950" S="2036" T="2036" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="1950" S="2036" T="-17" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="1950" S="-20" T="-17" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="1950" S="-20" T="2036" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="-1950" S="2032" T="-16" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="-1950" S="-16" T="-16" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="1950" S="-16" T="2040" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="1950" S="2032" T="2040" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="1750" S="-16" T="2037" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="1750" S="2051" T="2037" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="1750" S="2051" T="-16" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="1750" S="-16" T="-16" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="-1750" S="2051" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="-1750" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="1750" S="-16" T="2037" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="1750" S="2051" T="2037" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="-1750" S="-9" T="2044" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="-1750" S="2044" T="2044" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="-1750" S="2044" T="-23" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="-1750" S="-9" T="-23" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="1750" S="-9" T="2044" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="-1750" S="2044" T="2044" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="-1750" S="2044" T="-23" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="1750" S="-9" T="-23" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="-1750" S="-16" T="2037" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="1750" S="2051" T="2037" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="1750" S="2051" T="-16" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="-1750" S="-16" T="-16" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="1750" S="83" T="81" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="1750" S="1932" T="102" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="1950" S="2021" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="-1950" S="2021" T="2031" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="-1750" S="1932" T="1923" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="-1950" S="-16" T="2031" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="-1750" S="83" T="1944" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="1950" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
</Vertex>
|
||||
@@ -0,0 +1,6 @@
|
||||
<Vertex Version="0">
|
||||
<Vtx X="-2530" Y="0" Z="-1950" S="2034" T="2028" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="-1950" S="2034" T="-6" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="-1950" S="-13" T="-6" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="-1950" S="-13" T="2028" R="0" G="0" B="129" A="255"/>
|
||||
</Vertex>
|
||||
13
soh/assets/custom/objects/object_box/gChestBodyMaskDL
Normal file
13
soh/assets/custom/objects/object_box/gChestBodyMaskDL
Normal file
@@ -0,0 +1,13 @@
|
||||
<DisplayList Version="0">
|
||||
<CallDisplayList Path="objects/object_box/mat_gChestBodyMaskDL_Sides"/>
|
||||
<CallDisplayList Path="objects/object_box/gChestBodyMaskDL_tri_0"/>
|
||||
<CallDisplayList Path="objects/object_box/mat_gChestBodyMaskDL_Front"/>
|
||||
<CallDisplayList Path="objects/object_box/gChestBodyMaskDL_tri_1"/>
|
||||
<PipeSync/>
|
||||
<SetGeometryMode G_LIGHTING="1" />
|
||||
<ClearGeometryMode G_TEXTURE_GEN="1" />
|
||||
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
|
||||
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
33
soh/assets/custom/objects/object_box/gChestBodyMaskDL_tri_0
Normal file
33
soh/assets/custom/objects/object_box/gChestBodyMaskDL_tri_0
Normal file
@@ -0,0 +1,33 @@
|
||||
<DisplayList Version="0">
|
||||
<LoadVertices Path="objects/object_box/gChestBodyMaskDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="6" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="10" V02="11"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="14" V02="15"/>
|
||||
<LoadVertices Path="objects/object_box/gChestBodyMaskDL_vtx_0" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="6" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="10" V02="11"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="14" V02="15"/>
|
||||
<LoadVertices Path="objects/object_box/gChestBodyMaskDL_vtx_0" VertexBufferIndex="0" VertexOffset="32" Count="12"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="5" V01="7" V02="6"/>
|
||||
<Triangle1 V00="5" V01="8" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="7"/>
|
||||
<Triangle1 V00="8" V01="10" V02="9"/>
|
||||
<Triangle1 V00="10" V01="11" V02="9"/>
|
||||
<Triangle1 V00="10" V01="4" V02="11"/>
|
||||
<Triangle1 V00="4" V01="6" V02="11"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<DisplayList Version="0">
|
||||
<LoadVertices Path="objects/object_box/gChestBodyMaskDL_vtx_1" VertexBufferIndex="0" VertexOffset="0" Count="4"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
46
soh/assets/custom/objects/object_box/gChestBodyMaskDL_vtx_0
Normal file
46
soh/assets/custom/objects/object_box/gChestBodyMaskDL_vtx_0
Normal file
@@ -0,0 +1,46 @@
|
||||
<Vertex Version="0">
|
||||
<Vtx X="-2530" Y="0" Z="1950" S="-20" T="-12" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="1950" S="-20" T="2036" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="-1950" S="2036" T="2036" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="-1950" S="2036" T="-12" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="-1950" S="2036" T="2036" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="-1950" S="2036" T="-12" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="1950" S="-20" T="-12" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="1950" S="-20" T="2036" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="1950" S="2036" T="2036" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="1950" S="2036" T="-17" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="1950" S="-20" T="-17" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="1950" S="-20" T="2036" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="-1950" S="2032" T="-16" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="-1950" S="-16" T="-16" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="1950" S="-16" T="2040" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="1950" S="2032" T="2040" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="1750" S="-16" T="2037" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="1750" S="2051" T="2037" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="1750" S="2051" T="-16" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="1750" S="-16" T="-16" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="-1750" S="2051" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="-1750" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="1750" S="-16" T="2037" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="1750" S="2051" T="2037" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="-1750" S="-9" T="2044" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="-1750" S="2044" T="2044" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="-1750" S="2044" T="-23" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="-1750" S="-9" T="-23" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="1750" S="-9" T="2044" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="-1750" S="2044" T="2044" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="-1750" S="2044" T="-23" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="1750" S="-9" T="-23" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="-1750" S="-16" T="2037" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="1750" S="2051" T="2037" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="1750" S="2051" T="-16" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="-1750" S="-16" T="-16" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="1750" S="83" T="81" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="1750" S="1932" T="102" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="1950" S="2021" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="-1950" S="2021" T="2031" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="-1750" S="1932" T="1923" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="-1950" S="-16" T="2031" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="-1750" S="83" T="1944" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="1950" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
</Vertex>
|
||||
@@ -0,0 +1,6 @@
|
||||
<Vertex Version="0">
|
||||
<Vtx X="-2530" Y="0" Z="-1950" S="2034" T="2028" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="-1950" S="2034" T="-6" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="-1950" S="-13" T="-6" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="-1950" S="-13" T="2028" R="0" G="0" B="129" A="255"/>
|
||||
</Vertex>
|
||||
13
soh/assets/custom/objects/object_box/gChestBodyMinorDL
Normal file
13
soh/assets/custom/objects/object_box/gChestBodyMinorDL
Normal file
@@ -0,0 +1,13 @@
|
||||
<DisplayList Version="0">
|
||||
<CallDisplayList Path="objects/object_box/mat_gChestBodyMinorDL_Sides"/>
|
||||
<CallDisplayList Path="objects/object_box/gChestBodyMinorDL_tri_0"/>
|
||||
<CallDisplayList Path="objects/object_box/mat_gChestBodyMinorDL_Front"/>
|
||||
<CallDisplayList Path="objects/object_box/gChestBodyMinorDL_tri_1"/>
|
||||
<PipeSync/>
|
||||
<SetGeometryMode G_LIGHTING="1" />
|
||||
<ClearGeometryMode G_TEXTURE_GEN="1" />
|
||||
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
|
||||
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
33
soh/assets/custom/objects/object_box/gChestBodyMinorDL_tri_0
Normal file
33
soh/assets/custom/objects/object_box/gChestBodyMinorDL_tri_0
Normal file
@@ -0,0 +1,33 @@
|
||||
<DisplayList Version="0">
|
||||
<LoadVertices Path="objects/object_box/gChestBodyMinorDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="6" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="10" V02="11"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="14" V02="15"/>
|
||||
<LoadVertices Path="objects/object_box/gChestBodyMinorDL_vtx_0" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="6" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="10" V02="11"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="14" V02="15"/>
|
||||
<LoadVertices Path="objects/object_box/gChestBodyMinorDL_vtx_0" VertexBufferIndex="0" VertexOffset="32" Count="12"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="5" V01="7" V02="6"/>
|
||||
<Triangle1 V00="5" V01="8" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="7"/>
|
||||
<Triangle1 V00="8" V01="10" V02="9"/>
|
||||
<Triangle1 V00="10" V01="11" V02="9"/>
|
||||
<Triangle1 V00="10" V01="4" V02="11"/>
|
||||
<Triangle1 V00="4" V01="6" V02="11"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<DisplayList Version="0">
|
||||
<LoadVertices Path="objects/object_box/gChestBodyMinorDL_vtx_1" VertexBufferIndex="0" VertexOffset="0" Count="4"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
46
soh/assets/custom/objects/object_box/gChestBodyMinorDL_vtx_0
Normal file
46
soh/assets/custom/objects/object_box/gChestBodyMinorDL_vtx_0
Normal file
@@ -0,0 +1,46 @@
|
||||
<Vertex Version="0">
|
||||
<Vtx X="-2530" Y="0" Z="1950" S="-20" T="-12" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="1950" S="-20" T="2036" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="-1950" S="2036" T="2036" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="-1950" S="2036" T="-12" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="-1950" S="2036" T="2036" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="-1950" S="2036" T="-12" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="1950" S="-20" T="-12" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="1950" S="-20" T="2036" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="1950" S="2036" T="2036" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="1950" S="2036" T="-17" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="1950" S="-20" T="-17" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="1950" S="-20" T="2036" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="-1950" S="2032" T="-16" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="-1950" S="-16" T="-16" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="1950" S="-16" T="2040" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="1950" S="2032" T="2040" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="1750" S="-16" T="2037" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="1750" S="2051" T="2037" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="1750" S="2051" T="-16" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="1750" S="-16" T="-16" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="-1750" S="2051" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="-1750" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="1750" S="-16" T="2037" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="1750" S="2051" T="2037" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="-1750" S="-9" T="2044" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="-1750" S="2044" T="2044" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="-1750" S="2044" T="-23" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="-1750" S="-9" T="-23" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="1750" S="-9" T="2044" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="-1750" S="2044" T="2044" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="-1750" S="2044" T="-23" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="1750" S="-9" T="-23" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="-1750" S="-16" T="2037" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="1750" S="2051" T="2037" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="1750" S="2051" T="-16" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="-1750" S="-16" T="-16" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="1750" S="83" T="81" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="1750" S="1932" T="102" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="1950" S="2021" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="-1950" S="2021" T="2031" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="-1750" S="1932" T="1923" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="-1950" S="-16" T="2031" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="-1750" S="83" T="1944" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="1950" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
</Vertex>
|
||||
@@ -0,0 +1,6 @@
|
||||
<Vertex Version="0">
|
||||
<Vtx X="-2530" Y="0" Z="-1950" S="2034" T="2028" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="-1950" S="2034" T="-6" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="-1950" S="-13" T="-6" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="-1950" S="-13" T="2028" R="0" G="0" B="129" A="255"/>
|
||||
</Vertex>
|
||||
13
soh/assets/custom/objects/object_box/gChestBodySmallKeyDL
Normal file
13
soh/assets/custom/objects/object_box/gChestBodySmallKeyDL
Normal file
@@ -0,0 +1,13 @@
|
||||
<DisplayList Version="0">
|
||||
<CallDisplayList Path="objects/object_box/mat_gChestBodySmallKeyDL_Sides"/>
|
||||
<CallDisplayList Path="objects/object_box/gChestBodySmallKeyDL_tri_0"/>
|
||||
<CallDisplayList Path="objects/object_box/mat_gChestBodySmallKeyDL_Front"/>
|
||||
<CallDisplayList Path="objects/object_box/gChestBodySmallKeyDL_tri_1"/>
|
||||
<PipeSync/>
|
||||
<SetGeometryMode G_LIGHTING="1" />
|
||||
<ClearGeometryMode G_TEXTURE_GEN="1" />
|
||||
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
|
||||
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
<DisplayList Version="0">
|
||||
<LoadVertices Path="objects/object_box/gChestBodySmallKeyDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="6" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="10" V02="11"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="14" V02="15"/>
|
||||
<LoadVertices Path="objects/object_box/gChestBodySmallKeyDL_vtx_0" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="6" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="10" V02="11"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="14" V02="15"/>
|
||||
<LoadVertices Path="objects/object_box/gChestBodySmallKeyDL_vtx_0" VertexBufferIndex="0" VertexOffset="32" Count="12"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="5" V01="7" V02="6"/>
|
||||
<Triangle1 V00="5" V01="8" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="7"/>
|
||||
<Triangle1 V00="8" V01="10" V02="9"/>
|
||||
<Triangle1 V00="10" V01="11" V02="9"/>
|
||||
<Triangle1 V00="10" V01="4" V02="11"/>
|
||||
<Triangle1 V00="4" V01="6" V02="11"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<DisplayList Version="0">
|
||||
<LoadVertices Path="objects/object_box/gChestBodySmallKeyDL_vtx_1" VertexBufferIndex="0" VertexOffset="0" Count="4"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
<Vertex Version="0">
|
||||
<Vtx X="-2530" Y="0" Z="1950" S="-20" T="-12" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="1950" S="-20" T="2036" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="-1950" S="2036" T="2036" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="-1950" S="2036" T="-12" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="-1950" S="2036" T="2036" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="-1950" S="2036" T="-12" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="1950" S="-20" T="-12" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="1950" S="-20" T="2036" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="1950" S="2036" T="2036" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="1950" S="2036" T="-17" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="1950" S="-20" T="-17" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="1950" S="-20" T="2036" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="-1950" S="2032" T="-16" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="-1950" S="-16" T="-16" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="1950" S="-16" T="2040" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="0" Z="1950" S="2032" T="2040" R="0" G="129" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="1750" S="-16" T="2037" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="1750" S="2051" T="2037" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="1750" S="2051" T="-16" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="1750" S="-16" T="-16" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="-1750" S="2051" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="-1750" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="1750" S="-16" T="2037" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="1750" S="2051" T="2037" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="-1750" S="-9" T="2044" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="-1750" S="2044" T="2044" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="-1750" S="2044" T="-23" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="-1750" S="-9" T="-23" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="1750" S="-9" T="2044" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="-1750" S="2044" T="2044" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="-1750" S="2044" T="-23" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="200" Z="1750" S="-9" T="-23" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="-1750" S="-16" T="2037" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="1750" S="2051" T="2037" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="1750" S="2051" T="-16" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="200" Z="-1750" S="-16" T="-16" R="127" G="0" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="1750" S="83" T="81" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="1750" S="1932" T="102" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="1950" S="2021" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="-1950" S="2021" T="2031" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="-2430" Y="2730" Z="-1750" S="1932" T="1923" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="-1950" S="-16" T="2031" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2430" Y="2730" Z="-1750" S="83" T="1944" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="1950" S="-16" T="-16" R="0" G="127" B="0" A="255"/>
|
||||
</Vertex>
|
||||
@@ -0,0 +1,6 @@
|
||||
<Vertex Version="0">
|
||||
<Vtx X="-2530" Y="0" Z="-1950" S="2034" T="2028" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="-2530" Y="2730" Z="-1950" S="2034" T="-6" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2530" Y="2730" Z="-1950" S="-13" T="-6" R="0" G="0" B="129" A="255"/>
|
||||
<Vtx X="2530" Y="0" Z="-1950" S="-13" T="2028" R="0" G="0" B="129" A="255"/>
|
||||
</Vertex>
|
||||
13
soh/assets/custom/objects/object_box/gChestBodyTokenDL
Normal file
13
soh/assets/custom/objects/object_box/gChestBodyTokenDL
Normal file
@@ -0,0 +1,13 @@
|
||||
<DisplayList Version="0">
|
||||
<CallDisplayList Path="objects/object_box/mat_gChestBodyTokenDL_Sides"/>
|
||||
<CallDisplayList Path="objects/object_box/gChestBodyTokenDL_tri_0"/>
|
||||
<CallDisplayList Path="objects/object_box/mat_gChestBodyTokenDL_Front"/>
|
||||
<CallDisplayList Path="objects/object_box/gChestBodyTokenDL_tri_1"/>
|
||||
<PipeSync/>
|
||||
<SetGeometryMode G_LIGHTING="1" />
|
||||
<ClearGeometryMode G_TEXTURE_GEN="1" />
|
||||
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
|
||||
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
33
soh/assets/custom/objects/object_box/gChestBodyTokenDL_tri_0
Normal file
33
soh/assets/custom/objects/object_box/gChestBodyTokenDL_tri_0
Normal file
@@ -0,0 +1,33 @@
|
||||
<DisplayList Version="0">
|
||||
<LoadVertices Path="objects/object_box/gChestBodyTokenDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="6" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="10" V02="11"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="14" V02="15"/>
|
||||
<LoadVertices Path="objects/object_box/gChestBodyTokenDL_vtx_0" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="6" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="10" V02="11"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="14" V02="15"/>
|
||||
<LoadVertices Path="objects/object_box/gChestBodyTokenDL_vtx_0" VertexBufferIndex="0" VertexOffset="32" Count="12"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="5" V01="7" V02="6"/>
|
||||
<Triangle1 V00="5" V01="8" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="7"/>
|
||||
<Triangle1 V00="8" V01="10" V02="9"/>
|
||||
<Triangle1 V00="10" V01="11" V02="9"/>
|
||||
<Triangle1 V00="10" V01="4" V02="11"/>
|
||||
<Triangle1 V00="4" V01="6" V02="11"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<DisplayList Version="0">
|
||||
<LoadVertices Path="objects/object_box/gChestBodyTokenDL_vtx_1" VertexBufferIndex="0" VertexOffset="0" Count="4"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user