Compare commits
1174 Commits
4.0.89
...
v5.0.0-bet
Author | SHA1 | Date | |
---|---|---|---|
![]() |
f8a31cf3a9 | ||
![]() |
5372f09c67 | ||
![]() |
b9f0e88f7e | ||
![]() |
a5c3767cca | ||
![]() |
05e21484cf | ||
![]() |
6c204494b5 | ||
![]() |
af4cdcd485 | ||
![]() |
2977f0b1a7 | ||
![]() |
16a31cf1ae | ||
![]() |
dd14a2a86c | ||
![]() |
a8559bfbbc | ||
![]() |
a77f8e139f | ||
![]() |
07af3990ac | ||
![]() |
33eee8e00a | ||
![]() |
3f32134018 | ||
![]() |
5b12935851 | ||
![]() |
7a4d563875 | ||
![]() |
a0105fda37 | ||
![]() |
d2f997ab4c | ||
![]() |
eb58f592ed | ||
![]() |
8b6b896520 | ||
![]() |
34f240fe59 | ||
![]() |
e78411f3a8 | ||
![]() |
3128a19901 | ||
![]() |
14d58eac32 | ||
![]() |
7488b12704 | ||
![]() |
f5fa82c95e | ||
![]() |
6ddd093d56 | ||
![]() |
b5ce3a996d | ||
![]() |
d8409d5f1e | ||
![]() |
7773d431e8 | ||
![]() |
5f916903ab | ||
![]() |
60fe29660d | ||
![]() |
596e0087e5 | ||
![]() |
8034247494 | ||
![]() |
73b60e6da8 | ||
![]() |
57e00a7ce0 | ||
![]() |
1a6aa3b7ab | ||
![]() |
e6eb05ce22 | ||
![]() |
ddf63637fe | ||
![]() |
c02aec0f6b | ||
![]() |
280eebbccd | ||
![]() |
48611c2c38 | ||
![]() |
5dbbc25b2b | ||
![]() |
23c85d8a75 | ||
![]() |
cdd0f72266 | ||
![]() |
68189bf720 | ||
![]() |
376c2cc5c5 | ||
![]() |
38b587cdd4 | ||
![]() |
dd65aaf086 | ||
![]() |
db7604ee88 | ||
![]() |
d94749177b | ||
![]() |
d061be627b | ||
![]() |
3dede19f1f | ||
![]() |
916d2eb99e | ||
![]() |
9fadc0faab | ||
![]() |
ba6c7ec78d | ||
![]() |
0b4fc055bf | ||
![]() |
8a841fa68f | ||
![]() |
f71983679c | ||
![]() |
be3cc48e32 | ||
![]() |
956656236b | ||
![]() |
a53de69c4e | ||
![]() |
a7abbda061 | ||
![]() |
c267d14348 | ||
![]() |
7db2709ff0 | ||
![]() |
86a3614f89 | ||
![]() |
b8e0b5d8e3 | ||
![]() |
c7a8df3d5a | ||
![]() |
3be8966132 | ||
![]() |
61cefa6cd7 | ||
![]() |
e1dd41bb32 | ||
![]() |
24466ca653 | ||
![]() |
1c9497dc92 | ||
![]() |
5dd3ed43cf | ||
![]() |
368cdebd78 | ||
![]() |
3d7279144b | ||
![]() |
18682eccfa | ||
![]() |
f70c565e7d | ||
![]() |
b9035efc9e | ||
![]() |
493fc7b6f9 | ||
![]() |
52db6e15ee | ||
![]() |
28de2b179b | ||
![]() |
4a6c37f502 | ||
![]() |
9ce734e204 | ||
![]() |
fb3a0edfac | ||
![]() |
e613c7d546 | ||
![]() |
6db6455bb6 | ||
![]() |
86e928724a | ||
![]() |
f31d8f88c2 | ||
![]() |
940eac6bc4 | ||
![]() |
6908f51b4a | ||
![]() |
a537f678fb | ||
![]() |
1019aaba5f | ||
![]() |
5770ac6396 | ||
![]() |
7171f691a3 | ||
![]() |
0ad7b71cf2 | ||
![]() |
006d7296a2 | ||
![]() |
443c49f83e | ||
![]() |
9884965595 | ||
![]() |
e0379466e0 | ||
![]() |
622cba4642 | ||
![]() |
50c7a582ef | ||
![]() |
e501fd4a09 | ||
![]() |
29808c8800 | ||
![]() |
fcfb71132c | ||
![]() |
2017d34197 | ||
![]() |
662c7bd397 | ||
![]() |
cf5011c149 | ||
![]() |
954520ae3b | ||
![]() |
6ffcd6dfb0 | ||
![]() |
80e7a6010a | ||
![]() |
0dc023ba89 | ||
![]() |
e70021d0dd | ||
![]() |
eb63bda7d2 | ||
![]() |
10833aa45d | ||
![]() |
eed844357e | ||
![]() |
6d91676dab | ||
![]() |
69410d62ea | ||
![]() |
977425e700 | ||
![]() |
50746b3c75 | ||
![]() |
1c5364f917 | ||
![]() |
89d099ff7d | ||
![]() |
49d409260a | ||
![]() |
a50b62a2d8 | ||
![]() |
6b21ebcc9b | ||
![]() |
3c8aa4a249 | ||
![]() |
a8e9fa5895 | ||
![]() |
c9f8b4a8ed | ||
![]() |
6b38479166 | ||
![]() |
4ccbc1b958 | ||
![]() |
54d7d284c8 | ||
![]() |
ca1721ef9a | ||
![]() |
58ed74e020 | ||
![]() |
e8ce83b162 | ||
![]() |
9b91f06011 | ||
![]() |
17247cbbf1 | ||
![]() |
10b81dd232 | ||
![]() |
3f3a5dbd3b | ||
![]() |
6ff8ee749d | ||
![]() |
db5f146818 | ||
![]() |
ddcf51a2b7 | ||
![]() |
b7467afd1b | ||
![]() |
ee993f0cdb | ||
![]() |
bc6d3ce16f | ||
![]() |
1fae899497 | ||
![]() |
8319f60c95 | ||
![]() |
f6fe1a3205 | ||
![]() |
01e2b53a3f | ||
![]() |
da9eb3cea7 | ||
![]() |
c044b32c04 | ||
![]() |
46279e7762 | ||
![]() |
4936b014ae | ||
![]() |
c1cd0d8780 | ||
![]() |
557af32cc9 | ||
![]() |
729a85a9a9 | ||
![]() |
34146c2f18 | ||
![]() |
00146bb8f8 | ||
![]() |
6026d79ebb | ||
![]() |
fc28f272b3 | ||
![]() |
9702db06a5 | ||
![]() |
209f83d697 | ||
![]() |
0ef8eb32a5 | ||
![]() |
8115b8181e | ||
![]() |
e79a328748 | ||
![]() |
2083ee1029 | ||
![]() |
3e982cdd87 | ||
![]() |
883527b289 | ||
![]() |
a4d84efdd5 | ||
![]() |
e46c8493bc | ||
![]() |
4c443b09cf | ||
![]() |
98bc2236f4 | ||
![]() |
5199299639 | ||
![]() |
3268d1db25 | ||
![]() |
741770924b | ||
![]() |
49aa9469bb | ||
![]() |
7cbe34436c | ||
![]() |
122f7ecf3e | ||
![]() |
d79bdd9554 | ||
![]() |
3e331cb2e8 | ||
![]() |
361fb6aeab | ||
![]() |
b4a76895ee | ||
![]() |
b2251e1a12 | ||
![]() |
1c1860370a | ||
![]() |
1a190b2a44 | ||
![]() |
b1e0f72416 | ||
![]() |
2c4ae7573e | ||
![]() |
04ff1f2726 | ||
![]() |
eaa5200f95 | ||
![]() |
53c749b79e | ||
![]() |
eb96ee8497 | ||
![]() |
458444ee7b | ||
![]() |
c8eb13f18f | ||
![]() |
a224b93edc | ||
![]() |
f077ca6723 | ||
![]() |
6bbfa1d4a1 | ||
![]() |
3c3dc6ef6e | ||
![]() |
5c101dbcda | ||
![]() |
701b78361a | ||
![]() |
07f26027f6 | ||
![]() |
09cf13d6e2 | ||
![]() |
42f91565fa | ||
![]() |
ac6c146808 | ||
![]() |
59ad23f8ac | ||
![]() |
769c6fe3d5 | ||
![]() |
07b92911ab | ||
![]() |
eb57bcfc87 | ||
![]() |
7addeba73a | ||
![]() |
263902b45a | ||
![]() |
d283f759fe | ||
![]() |
fabd028a63 | ||
![]() |
2b18272c41 | ||
![]() |
a1fb39da3d | ||
![]() |
09602fdf9e | ||
![]() |
d574ef17ba | ||
![]() |
0e3f70627b | ||
![]() |
a814a07105 | ||
![]() |
c49af90a9c | ||
![]() |
24afa155c8 | ||
![]() |
9e5a431516 | ||
![]() |
182a94285c | ||
![]() |
442c2c8dd9 | ||
![]() |
f8fd0dd353 | ||
![]() |
faad9e23ac | ||
![]() |
d2af0da1b1 | ||
![]() |
c65e5c3e49 | ||
![]() |
24a8dfc5f0 | ||
![]() |
9c6790ac37 | ||
![]() |
18ef7460ba | ||
![]() |
63cd0e76c3 | ||
![]() |
bdbf7fd9fc | ||
![]() |
6bbedbd8f9 | ||
![]() |
648bd1ff2e | ||
![]() |
d4288caedb | ||
![]() |
0a35bc3272 | ||
![]() |
d8b737a31f | ||
![]() |
cfd2655f6c | ||
![]() |
1896241b9d | ||
![]() |
0ed22a6ee1 | ||
![]() |
2bfcb99c3e | ||
![]() |
815f8a520a | ||
![]() |
f115b6607f | ||
![]() |
c876f67502 | ||
![]() |
27674f272c | ||
![]() |
02879507e3 | ||
![]() |
0a7629878f | ||
![]() |
b0368232d0 | ||
![]() |
a32bf3db98 | ||
![]() |
64cbbb20d3 | ||
![]() |
dd4fbecc98 | ||
![]() |
807a75a265 | ||
![]() |
6e1b44ea56 | ||
![]() |
d870a54f58 | ||
![]() |
9f464a3f23 | ||
![]() |
ed4e84d665 | ||
![]() |
1e4ab96233 | ||
![]() |
380c034ff5 | ||
![]() |
7c9abe432d | ||
![]() |
2ca853c22c | ||
![]() |
b23d55612a | ||
![]() |
b261faacfc | ||
![]() |
9984b32876 | ||
![]() |
d63ba75430 | ||
![]() |
2db903ed94 | ||
![]() |
3f9bc4d335 | ||
![]() |
3df95d0e21 | ||
![]() |
f445695f6a | ||
![]() |
6f3163d7bd | ||
![]() |
5421eae23d | ||
![]() |
a0e82ee22f | ||
![]() |
1fbf822769 | ||
![]() |
6b0f037722 | ||
![]() |
ae231d2fe6 | ||
![]() |
2e95899da7 | ||
![]() |
3f45b38dfc | ||
![]() |
daf4d36348 | ||
![]() |
477cd16f23 | ||
![]() |
83eded0056 | ||
![]() |
338de9c149 | ||
![]() |
6d99d4e661 | ||
![]() |
4e5a8060c8 | ||
![]() |
eb938e39ff | ||
![]() |
cff8604a5f | ||
![]() |
2afa54bcd2 | ||
![]() |
4da6025b6f | ||
![]() |
c4f64444e7 | ||
![]() |
b0205b296f | ||
![]() |
e0c8b3cc81 | ||
![]() |
80ca92336e | ||
![]() |
6c0681e4ca | ||
![]() |
26e8503dc8 | ||
![]() |
c1ce78efde | ||
![]() |
2f52c2f062 | ||
![]() |
24d11a2446 | ||
![]() |
e1d4ae5bbd | ||
![]() |
dcfe346f54 | ||
![]() |
3906db9efe | ||
![]() |
ba5244d95d | ||
![]() |
52db730870 | ||
![]() |
82d2278ebd | ||
![]() |
30d08ac72d | ||
![]() |
6f1e71c8e5 | ||
![]() |
385be9b5f5 | ||
![]() |
25cb041d78 | ||
![]() |
18fa9cd659 | ||
![]() |
ce760541c5 | ||
![]() |
db51b652f0 | ||
![]() |
4222d98aa9 | ||
![]() |
484f1e5dcb | ||
![]() |
7304b94a77 | ||
![]() |
ee5ec7df72 | ||
![]() |
9a1e4bdf7c | ||
![]() |
a43cca7629 | ||
![]() |
0cdabab2ec | ||
![]() |
28b968ea99 | ||
![]() |
5160033092 | ||
![]() |
ce086c07b9 | ||
![]() |
bf9348488d | ||
![]() |
70b3e0701b | ||
![]() |
dc3d890937 | ||
![]() |
f68be32e2d | ||
![]() |
3758e7af03 | ||
![]() |
5ab1858349 | ||
![]() |
54353bcb24 | ||
![]() |
de7640558d | ||
![]() |
2e17b16516 | ||
![]() |
345f9f1786 | ||
![]() |
8c9214ce5e | ||
![]() |
fc9cc8046d | ||
![]() |
e592bb855d | ||
![]() |
f8407264da | ||
![]() |
202fe2b69a | ||
![]() |
d14a93f9d0 | ||
![]() |
1d1ccdbf06 | ||
![]() |
92fd647316 | ||
![]() |
d8ca506200 | ||
![]() |
928d6eda98 | ||
![]() |
d5e6755694 | ||
![]() |
a1431126ec | ||
![]() |
13c8caeb8c | ||
![]() |
b2b5ee0e19 | ||
![]() |
ff74ecd7c9 | ||
![]() |
0ac3e79156 | ||
![]() |
3a69936e2e | ||
![]() |
e738d5dd5f | ||
![]() |
ed8ee21c04 | ||
![]() |
87220a941a | ||
![]() |
4425d13c7a | ||
![]() |
b818e5f493 | ||
![]() |
403563ba32 | ||
![]() |
156ca68116 | ||
![]() |
de3677a6c3 | ||
![]() |
3b76dfe9f4 | ||
![]() |
6e38ee6d16 | ||
![]() |
454657b00f | ||
![]() |
aad0c4e909 | ||
![]() |
d106ee9ac1 | ||
![]() |
5b1e6e4381 | ||
![]() |
e1106c6145 | ||
![]() |
0c5caf9986 | ||
![]() |
2fdcd6c639 | ||
![]() |
8332adf07b | ||
![]() |
fb40e908c0 | ||
![]() |
b6ef67568a | ||
![]() |
9c591ec3b1 | ||
![]() |
495900c083 | ||
![]() |
7874e2af27 | ||
![]() |
19b37b7111 | ||
![]() |
8593249bc6 | ||
![]() |
6d483ec887 | ||
![]() |
e1a28f0f90 | ||
![]() |
c2ba76a821 | ||
![]() |
c4f8134d89 | ||
![]() |
59416fd0cd | ||
![]() |
ef7ed24114 | ||
![]() |
07dd2bcb5c | ||
![]() |
81dfeb3ab1 | ||
![]() |
09d558744f | ||
![]() |
abe7dd7ccd | ||
![]() |
0da624dc18 | ||
![]() |
a082585b4e | ||
![]() |
d1582723ba | ||
![]() |
829a88f290 | ||
![]() |
79f2e57fa9 | ||
![]() |
322787ba0e | ||
![]() |
7bd2dab47c | ||
![]() |
dd1446cfb0 | ||
![]() |
cf96db75ea | ||
![]() |
da4f350cdb | ||
![]() |
862c012bb6 | ||
![]() |
72a65cb1d2 | ||
![]() |
22379ae31b | ||
![]() |
73e0ba8264 | ||
![]() |
2b0e28f456 | ||
![]() |
151a9b1a74 | ||
![]() |
172d7f049e | ||
![]() |
5ef703eff4 | ||
![]() |
98d970de30 | ||
![]() |
8896fb280a | ||
![]() |
8df5ab9e62 | ||
![]() |
eb32d51999 | ||
![]() |
8901809f88 | ||
![]() |
1de22ef53b | ||
![]() |
d328ae0c7e | ||
![]() |
dabb0f9dad | ||
![]() |
5adcfc5bad | ||
![]() |
b03bf86a35 | ||
![]() |
db1b1eadf1 | ||
![]() |
939266b18b | ||
![]() |
b68a9d8b47 | ||
![]() |
af1a028203 | ||
![]() |
c697d5fb99 | ||
![]() |
b5d2c6f4bc | ||
![]() |
a42c488ac8 | ||
![]() |
1ccc58c015 | ||
![]() |
68a736ea13 | ||
![]() |
a9980f8e89 | ||
![]() |
7156950cb8 | ||
![]() |
833cabfe3b | ||
![]() |
ed23b760a9 | ||
![]() |
98580efafa | ||
![]() |
8794861a11 | ||
![]() |
8fccc7bda4 | ||
![]() |
a09ea0ea13 | ||
![]() |
74c6ca50cb | ||
![]() |
67249c1029 | ||
![]() |
dba79bcca1 | ||
![]() |
006f93dccf | ||
![]() |
94335b9ee2 | ||
![]() |
187e27f232 | ||
![]() |
f7631bd8a5 | ||
![]() |
ad154c34e7 | ||
![]() |
357ecaca1e | ||
![]() |
e67e8d2264 | ||
![]() |
c39fc5f478 | ||
![]() |
b4c84d2058 | ||
![]() |
b7cca91e54 | ||
![]() |
86118abfb3 | ||
![]() |
119d588619 | ||
![]() |
8c1028a28b | ||
![]() |
65e47a11ec | ||
![]() |
c20a705773 | ||
![]() |
bea778cb06 | ||
![]() |
7315fe2403 | ||
![]() |
ef4e0aba6b | ||
![]() |
7d84dda389 | ||
![]() |
de1dab64fd | ||
![]() |
4333d8a3ba | ||
![]() |
4579e619a3 | ||
![]() |
7bcee7e400 | ||
![]() |
bf6ed92b1f | ||
![]() |
87bffb4361 | ||
![]() |
151182c5aa | ||
![]() |
faa678e4f7 | ||
![]() |
6113505367 | ||
![]() |
8eb124c685 | ||
![]() |
4fb2028801 | ||
![]() |
a5cc7de08f | ||
![]() |
8b0845fe9f | ||
![]() |
e127d1bb7b | ||
![]() |
75ff956418 | ||
![]() |
90236f9c43 | ||
![]() |
c480ac2d8e | ||
![]() |
793a242e00 | ||
![]() |
16713e4668 | ||
![]() |
33d731e958 | ||
![]() |
4095b4b65b | ||
![]() |
0a7778f951 | ||
![]() |
7c8c3e8a6a | ||
![]() |
26792429f7 | ||
![]() |
50810aab1d | ||
![]() |
8eeb137764 | ||
![]() |
ff2db6356e | ||
![]() |
c2eba4a0b0 | ||
![]() |
a289c0a521 | ||
![]() |
2f5dd01878 | ||
![]() |
0a95120fbb | ||
![]() |
60bf3115dd | ||
![]() |
d5f4a47eab | ||
![]() |
e5bc6b3a13 | ||
![]() |
4efe9e3d88 | ||
![]() |
869db14995 | ||
![]() |
9531d60479 | ||
![]() |
7d83fe8c07 | ||
![]() |
d285e24ff8 | ||
![]() |
09db74fc65 | ||
![]() |
41be98b306 | ||
![]() |
46cb1318a5 | ||
![]() |
1f98e4a268 | ||
![]() |
15f61e5867 | ||
![]() |
698d3095ec | ||
![]() |
608ebcb0cf | ||
![]() |
78c67a18e6 | ||
![]() |
c12de11ce0 | ||
![]() |
e15b442c1f | ||
![]() |
f84cf59f9e | ||
![]() |
b8aff5e77a | ||
![]() |
9eb5951e66 | ||
![]() |
cb92d56ff6 | ||
![]() |
6223fbb792 | ||
![]() |
16bce2f765 | ||
![]() |
e2f5665700 | ||
![]() |
c9b48ffafa | ||
![]() |
a291d846d8 | ||
![]() |
0287d80cbf | ||
![]() |
97ea23066a | ||
![]() |
e9b8b79d76 | ||
![]() |
44133370bd | ||
![]() |
e1e1fe27ae | ||
![]() |
b426212496 | ||
![]() |
940721c676 | ||
![]() |
c3118e8da3 | ||
![]() |
a9e4d8a606 | ||
![]() |
e5e46d0a5a | ||
![]() |
eed3c7ef36 | ||
![]() |
a6e0853cd6 | ||
![]() |
1dff23f201 | ||
![]() |
0586150eaf | ||
![]() |
c43d6231d7 | ||
![]() |
56230096b3 | ||
![]() |
29e707704e | ||
![]() |
33b417ac94 | ||
![]() |
0069627801 | ||
![]() |
0d3c6ee590 | ||
![]() |
7c2e3d43be | ||
![]() |
3dcd6e2803 | ||
![]() |
689b2ba5c3 | ||
![]() |
f67ba78843 | ||
![]() |
6aa515d085 | ||
![]() |
557aff7534 | ||
![]() |
59e11d8597 | ||
![]() |
26de1ae213 | ||
![]() |
dc32f948da | ||
![]() |
50768df001 | ||
![]() |
4b375b01ac | ||
![]() |
c1b02677f3 | ||
![]() |
eb8cf8028f | ||
![]() |
b80f2b566d | ||
![]() |
748c798172 | ||
![]() |
83472388f4 | ||
![]() |
34f1c5ae49 | ||
![]() |
37732928cb | ||
![]() |
2a6b7f194f | ||
![]() |
0f4d73fae3 | ||
![]() |
906fceeb9a | ||
![]() |
e616d668f3 | ||
![]() |
05baedfd5d | ||
![]() |
5bf3c26b35 | ||
![]() |
59d53c63b9 | ||
![]() |
e1a3409702 | ||
![]() |
f320f34b19 | ||
![]() |
f723182b80 | ||
![]() |
c0c71faac6 | ||
![]() |
5f73fa30fb | ||
![]() |
edbcb32bec | ||
![]() |
f57d3edf0f | ||
![]() |
71ab16a76e | ||
![]() |
7b81ddd877 | ||
![]() |
de50a90235 | ||
![]() |
536b353a24 | ||
![]() |
72740fb62c | ||
![]() |
de3f485191 | ||
![]() |
68738d343c | ||
![]() |
c0529ff5ab | ||
![]() |
4904627a6c | ||
![]() |
d00dae1d9e | ||
![]() |
5270b2bd73 | ||
![]() |
916acf16f7 | ||
![]() |
ceb8b4dde1 | ||
![]() |
577fa8bdf7 | ||
![]() |
ff131165f4 | ||
![]() |
4b45b8d7e4 | ||
![]() |
8431b10a81 | ||
![]() |
1b14519223 | ||
![]() |
5b3526b7e8 | ||
![]() |
b59a2b656f | ||
![]() |
70516b1d88 | ||
![]() |
d73ed4f6f9 | ||
![]() |
d58190e5c5 | ||
![]() |
1b996623f8 | ||
![]() |
09294dbc07 | ||
![]() |
1b27ca9647 | ||
![]() |
891a81f53e | ||
![]() |
ceb7d80ed3 | ||
![]() |
2591efee1c | ||
![]() |
adc473a6c3 | ||
![]() |
8f6e587a0d | ||
![]() |
597f1d0ebb | ||
![]() |
c3746ab388 | ||
![]() |
7f5711cb62 | ||
![]() |
eb066b88e2 | ||
![]() |
22fe36c8b5 | ||
![]() |
cdf9652934 | ||
![]() |
aa5408b1fb | ||
![]() |
facb08e502 | ||
![]() |
111dc42ec9 | ||
![]() |
b08759bf57 | ||
![]() |
a89b196a0c | ||
![]() |
1efa8674fc | ||
![]() |
9ed2aa2a70 | ||
![]() |
26aa52157a | ||
![]() |
825c3e0d26 | ||
![]() |
1f2de9f156 | ||
![]() |
bb52fab95a | ||
![]() |
e1c9db4955 | ||
![]() |
cf9d9bdd5c | ||
![]() |
41f6d8164c | ||
![]() |
31c741b8c6 | ||
![]() |
8619f18b93 | ||
![]() |
fd466d1f57 | ||
![]() |
0c688e714a | ||
![]() |
dd7a4429be | ||
![]() |
8ed7e8251a | ||
![]() |
6bcca6d024 | ||
![]() |
3c6b100188 | ||
![]() |
24cd4b52f6 | ||
![]() |
f63a8fc36e | ||
![]() |
70f6aab913 | ||
![]() |
4c12ad5f1d | ||
![]() |
6d5e4e388f | ||
![]() |
415b05b1dc | ||
![]() |
78e2f8d705 | ||
![]() |
7b0fb791cb | ||
![]() |
bd993b2c43 | ||
![]() |
6a8e15a07f | ||
![]() |
fa6033250c | ||
![]() |
b176699827 | ||
![]() |
3bf0a14951 | ||
![]() |
0c380629d5 | ||
![]() |
79f756a6f1 | ||
![]() |
d35edb72b2 | ||
![]() |
cc9851b49c | ||
![]() |
369bcfdda5 | ||
![]() |
c0e8f9e2a1 | ||
![]() |
7223da00b7 | ||
![]() |
0987ca8b3e | ||
![]() |
a886049f72 | ||
![]() |
168f06b535 | ||
![]() |
def81b6a62 | ||
![]() |
311e451a2f | ||
![]() |
8c7b4cc7bd | ||
![]() |
2494f984a9 | ||
![]() |
cec0ca0b71 | ||
![]() |
a262cebdfb | ||
![]() |
49145136d8 | ||
![]() |
9e01231334 | ||
![]() |
0d869b9f7b | ||
![]() |
ad333dff69 | ||
![]() |
16ae5dd0aa | ||
![]() |
f778f4302b | ||
![]() |
f948fd14a4 | ||
![]() |
9d05dbdd42 | ||
![]() |
9fbc4613ac | ||
![]() |
13bb7b1209 | ||
![]() |
70cbe5156e | ||
![]() |
6933030bcf | ||
![]() |
39f5aad915 | ||
![]() |
64dcfeec09 | ||
![]() |
aeea9c9f57 | ||
![]() |
0d0ce7d44d | ||
![]() |
525ea4b042 | ||
![]() |
7dbd836073 | ||
![]() |
a6f6729b88 | ||
![]() |
d4e290cfed | ||
![]() |
17ea67c2a9 | ||
![]() |
cf436333b9 | ||
![]() |
a77aa15c5e | ||
![]() |
cef7acc1c4 | ||
![]() |
91a84eb000 | ||
![]() |
a09221e4a3 | ||
![]() |
99452c2de0 | ||
![]() |
14244a4561 | ||
![]() |
1c47bbfb36 | ||
![]() |
7e16ea1aa3 | ||
![]() |
16e4df182d | ||
![]() |
1d81690bd5 | ||
![]() |
4980db392b | ||
![]() |
2a99dc6e8a | ||
![]() |
d4898c56f8 | ||
![]() |
dee9442eb6 | ||
![]() |
1bb74af465 | ||
![]() |
f990dacf65 | ||
![]() |
4630ff9d07 | ||
![]() |
06c4377141 | ||
![]() |
4e6fb68e39 | ||
![]() |
e307505d03 | ||
![]() |
f7cfd21c48 | ||
![]() |
e68e9d27bb | ||
![]() |
30a8c5be34 | ||
![]() |
3265ac5b6d | ||
![]() |
6a7d1eaf2e | ||
![]() |
cd587ba8da | ||
![]() |
35f640c1ba | ||
![]() |
2f88ab5178 | ||
![]() |
18f9b66615 | ||
![]() |
ae49eb02c4 | ||
![]() |
e215654bb3 | ||
![]() |
3feae8c257 | ||
![]() |
6f4abd3eb9 | ||
![]() |
6ea781533b | ||
![]() |
456fdc0872 | ||
![]() |
f76a531143 | ||
![]() |
151271c250 | ||
![]() |
22dea528e0 | ||
![]() |
045f7194b5 | ||
![]() |
51007bc5cd | ||
![]() |
612439a88d | ||
![]() |
f145ecd7b3 | ||
![]() |
cf7a39537d | ||
![]() |
23736e8981 | ||
![]() |
d633b032f9 | ||
![]() |
13050967c7 | ||
![]() |
eeaab6d12f | ||
![]() |
c728044260 | ||
![]() |
89a80c685f | ||
![]() |
ec7673d861 | ||
![]() |
f50940ae66 | ||
![]() |
664db415c7 | ||
![]() |
5810972a2d | ||
![]() |
4d5fd7d3d4 | ||
![]() |
f12c9c9ad8 | ||
![]() |
a144258f8d | ||
![]() |
6907cc3847 | ||
![]() |
5f367f7278 | ||
![]() |
73b7523dc6 | ||
![]() |
8eac4b616f | ||
![]() |
ea2a05cfff | ||
![]() |
d307be6d0e | ||
![]() |
a7aa1f3940 | ||
![]() |
ef879413d9 | ||
![]() |
e3eacb53ee | ||
![]() |
3db6edb1f8 | ||
![]() |
3636d99b47 | ||
![]() |
56caeaaf08 | ||
![]() |
a507f7a3ee | ||
![]() |
316e01e7f8 | ||
![]() |
134efa8ec3 | ||
![]() |
85b75b646f | ||
![]() |
09b41fa719 | ||
![]() |
f970352faa | ||
![]() |
76305ae77c | ||
![]() |
6c995d6d20 | ||
![]() |
3d14c9e555 | ||
![]() |
f8fa933a02 | ||
![]() |
fff2edc1c1 | ||
![]() |
190ad686f5 | ||
![]() |
f4b5d57c61 | ||
![]() |
fdec778d04 | ||
![]() |
c227afd8d7 | ||
![]() |
2f91fecd60 | ||
![]() |
406f98245c | ||
![]() |
eaf76105a1 | ||
![]() |
b7e0e7d54d | ||
![]() |
8f109d5a27 | ||
![]() |
907f319ce7 | ||
![]() |
146b69f91e | ||
![]() |
51d23e30e5 | ||
![]() |
a87ba9db6f | ||
![]() |
1f593d576d | ||
![]() |
346003f377 | ||
![]() |
1bd45ec96b | ||
![]() |
c078ed1e55 | ||
![]() |
4f1f04242b | ||
![]() |
976826b9ab | ||
![]() |
b4f2082454 | ||
![]() |
b4318f63d3 | ||
![]() |
6e1140fa0c | ||
![]() |
2322b3dac1 | ||
![]() |
91914c80f7 | ||
![]() |
cc127ff5ba | ||
![]() |
0b3d2be1a2 | ||
![]() |
a44bf9d6d2 | ||
![]() |
a6207f27a3 | ||
![]() |
92664eadc5 | ||
![]() |
edcbd5c9a1 | ||
![]() |
96d8066983 | ||
![]() |
0cf6583bcc | ||
![]() |
063f76750f | ||
![]() |
fef0e68dd3 | ||
![]() |
e40ffbba74 | ||
![]() |
38f58ded69 | ||
![]() |
51c60de26a | ||
![]() |
e977cd2d23 | ||
![]() |
6efdabdb36 | ||
![]() |
8709de1e3e | ||
![]() |
a29332e4dc | ||
![]() |
c82c125bb4 | ||
![]() |
6528a12671 | ||
![]() |
bb3149817d | ||
![]() |
fb805cebf1 | ||
![]() |
0702d0188a | ||
![]() |
185cbbc594 | ||
![]() |
04c4c9ed50 | ||
![]() |
dc445736ef | ||
![]() |
06ea17e7e8 | ||
![]() |
1d2ed3fe9d | ||
![]() |
6e953004f8 | ||
![]() |
1b4d1582d4 | ||
![]() |
90bd58b14a | ||
![]() |
d78cecd34f | ||
![]() |
91771682f0 | ||
![]() |
da5669ab70 | ||
![]() |
afd7ac7c92 | ||
![]() |
e8b1509fc2 | ||
![]() |
db1923c38c | ||
![]() |
86789ac491 | ||
![]() |
8f028f778d | ||
![]() |
2a3d998e7c | ||
![]() |
3969561e8d | ||
![]() |
0118b740fa | ||
![]() |
92a6e4819e | ||
![]() |
2afdcfdfa0 | ||
![]() |
a488f13aa6 | ||
![]() |
5ef46253b1 | ||
![]() |
4a4dbe850c | ||
![]() |
37c643f7bc | ||
![]() |
2e67ec83fd | ||
![]() |
de1a7c67b9 | ||
![]() |
eaba616f71 | ||
![]() |
21cf59ff5a | ||
![]() |
182c25f721 | ||
![]() |
6002dc26dc | ||
![]() |
e30e3cd705 | ||
![]() |
88f0bbca8b | ||
![]() |
6026bb8ff4 | ||
![]() |
d57d186218 | ||
![]() |
834fed0b64 | ||
![]() |
ad7544c7a3 | ||
![]() |
0bf05afead | ||
![]() |
f1bb8b5149 | ||
![]() |
5d34d7a0b0 | ||
![]() |
7b8e1c70ba | ||
![]() |
ba3fd0ebff | ||
![]() |
01ee88cdc7 | ||
![]() |
cd34cbe934 | ||
![]() |
276850b306 | ||
![]() |
883129f379 | ||
![]() |
dea86d7c33 | ||
![]() |
3d89bd50fc | ||
![]() |
54c94f62a4 | ||
![]() |
b9d71b0d9c | ||
![]() |
e5631383dd | ||
![]() |
8dc3bd3831 | ||
![]() |
cdc3e3ed90 | ||
![]() |
5281cd54cc | ||
![]() |
be66e670e9 | ||
![]() |
ee9a3d181d | ||
![]() |
a81170d934 | ||
![]() |
4825313b15 | ||
![]() |
90e1a33829 | ||
![]() |
7ad075cb59 | ||
![]() |
fd67843d0d | ||
![]() |
0b9771815b | ||
![]() |
d01a80c7b9 | ||
![]() |
3f005449ad | ||
![]() |
10e7a11a34 | ||
![]() |
65b02a7460 | ||
![]() |
0b28b0d15a | ||
![]() |
4e32b64bc6 | ||
![]() |
d7509cf7c7 | ||
![]() |
78ec0fd201 | ||
![]() |
e982f6218b | ||
![]() |
4dae5dd567 | ||
![]() |
9f81038f1d | ||
![]() |
40fcb668c4 | ||
![]() |
96afbeb931 | ||
![]() |
1ed005a472 | ||
![]() |
b9abd568d0 | ||
![]() |
6ca3a08dd8 | ||
![]() |
ccf75c63ad | ||
![]() |
f616075508 | ||
![]() |
880ccad7f5 | ||
![]() |
7d9774c01d | ||
![]() |
50b493ab2c | ||
![]() |
66ef1e0abf | ||
![]() |
ae93430539 | ||
![]() |
42022290b8 | ||
![]() |
5c9279c6df | ||
![]() |
69b2a41caa | ||
![]() |
b6d92d69bc | ||
![]() |
940ea8ba19 | ||
![]() |
ea5d92a289 | ||
![]() |
9631bc0c32 | ||
![]() |
7c14f9dd39 | ||
![]() |
59b9373974 | ||
![]() |
ab9403bece | ||
![]() |
7e23652eef | ||
![]() |
6badf722c0 | ||
![]() |
d20b5a0fbb | ||
![]() |
ba791eddcb | ||
![]() |
9a532a19db | ||
![]() |
3b75fd6df4 | ||
![]() |
d6f3b2776e | ||
![]() |
dba2d55193 | ||
![]() |
7cae68c5b8 | ||
![]() |
11c96dbef1 | ||
![]() |
46fff2dec4 | ||
![]() |
72df404d7f | ||
![]() |
cdbd3c515d | ||
![]() |
b0e29bab5b | ||
![]() |
70fada11e7 | ||
![]() |
626651ec51 | ||
![]() |
a47963e77f | ||
![]() |
179183f414 | ||
![]() |
67b7a3a060 | ||
![]() |
63dfc887cc | ||
![]() |
b537c36643 | ||
![]() |
146ed26eed | ||
![]() |
d971a4eb6a | ||
![]() |
11ac1be195 | ||
![]() |
f1509cf7b8 | ||
![]() |
612ea7f067 | ||
![]() |
fa3399f7d2 | ||
![]() |
296a2ae345 | ||
![]() |
0c7c841aab | ||
![]() |
ce7b0bfe85 | ||
![]() |
affdbbead8 | ||
![]() |
6ac34ee7e3 | ||
![]() |
e07b9ae942 | ||
![]() |
ac57c1e25a | ||
![]() |
3f3b619cd2 | ||
![]() |
6a92872fd0 | ||
![]() |
be38240eee | ||
![]() |
1bf86461f0 | ||
![]() |
2ff461f3b1 | ||
![]() |
e88701df92 | ||
![]() |
5aa30efa52 | ||
![]() |
0ac9f8720b | ||
![]() |
82684041ff | ||
![]() |
85867a53a9 | ||
![]() |
0e21c757d2 | ||
![]() |
cc4e48d82f | ||
![]() |
fa1861da27 | ||
![]() |
3533608cb0 | ||
![]() |
d22a183078 | ||
![]() |
771a2196ea | ||
![]() |
60ada8d94f | ||
![]() |
ee868546d3 | ||
![]() |
526fdd852f | ||
![]() |
cc84aa5478 | ||
![]() |
8c613ed6a3 | ||
![]() |
1e2cf210b5 | ||
![]() |
422132d8c7 | ||
![]() |
4830e6b5bc | ||
![]() |
fc2fe9e1eb | ||
![]() |
682efcbfdc | ||
![]() |
e4c6f2dd0c | ||
![]() |
cbc0a6bf2b | ||
![]() |
982fd4cc67 | ||
![]() |
f33f361e45 | ||
![]() |
be72d44a4d | ||
![]() |
7e9a2e40aa | ||
![]() |
bc5349fd26 | ||
![]() |
9131b6a143 | ||
![]() |
6fc8d1cf97 | ||
![]() |
51c172f4d5 | ||
![]() |
116e7cfe25 | ||
![]() |
d70204b24c | ||
![]() |
edae3892ca | ||
![]() |
b3b39ab468 | ||
![]() |
4699e161e4 | ||
![]() |
be3ae5802d | ||
![]() |
097508829a | ||
![]() |
1eac74c12c | ||
![]() |
af8d2fc5d8 | ||
![]() |
2ae5f01836 | ||
![]() |
a1fa6dad15 | ||
![]() |
7d8178c2e5 | ||
![]() |
70a35c11c2 | ||
![]() |
d7c897b488 | ||
![]() |
d12924daaf | ||
![]() |
2d3cdcdde8 | ||
![]() |
5ab601e8e6 | ||
![]() |
5c66a37406 | ||
![]() |
cfa161f763 | ||
![]() |
84c8efffa3 | ||
![]() |
a4e2a3e8f1 | ||
![]() |
73984d7cfc | ||
![]() |
327a3b05b8 | ||
![]() |
a9e5790d78 | ||
![]() |
a544666ea4 | ||
![]() |
d0ca9cac54 | ||
![]() |
d0910e3e6f | ||
![]() |
4018353d50 | ||
![]() |
6388e6a914 | ||
![]() |
4f144f7532 | ||
![]() |
82a7c3048f | ||
![]() |
8daa0354e1 | ||
![]() |
f26357c9b8 | ||
![]() |
4110c38c10 | ||
![]() |
084f8fbe72 | ||
![]() |
db074c7f57 | ||
![]() |
5b1fed4d9e | ||
![]() |
447106b7fb | ||
![]() |
91cfff6e84 | ||
![]() |
db3a107e0f | ||
![]() |
23dab62ad5 | ||
![]() |
3dd5c0f997 | ||
![]() |
517ef5fc57 | ||
![]() |
1d539968bb | ||
![]() |
4879bfe1b1 | ||
![]() |
e83d2a2b48 | ||
![]() |
cd84f6c43c | ||
![]() |
7bcc3dc6bb | ||
![]() |
1a995ba55c | ||
![]() |
622fcdcc62 | ||
![]() |
b933ab24dd | ||
![]() |
7fe4a5c5ff | ||
![]() |
3b36e16256 | ||
![]() |
b620737b18 | ||
![]() |
bcb9b03eab | ||
![]() |
e20f66909e | ||
![]() |
667d0a1f4a | ||
![]() |
de9d6bd103 | ||
![]() |
ba625133f1 | ||
![]() |
44ce216894 | ||
![]() |
0bcf3475b0 | ||
![]() |
09b35c9dd8 | ||
![]() |
0123128206 | ||
![]() |
7a728d370d | ||
![]() |
6bb426ecf6 | ||
![]() |
459b395ee9 | ||
![]() |
943401d8bf | ||
![]() |
020348e3b0 | ||
![]() |
347ee2a74e | ||
![]() |
c7cd582152 | ||
![]() |
6625e3fd00 | ||
![]() |
1710aacb17 | ||
![]() |
c88f7e53c0 | ||
![]() |
4c62c8c046 | ||
![]() |
ab2a347f97 | ||
![]() |
2a90e9bd5e | ||
![]() |
08a9a856a7 | ||
![]() |
ad2e85be49 | ||
![]() |
71f6cd529f | ||
![]() |
70c804e34a | ||
![]() |
8d92dd818e | ||
![]() |
7af76081d0 | ||
![]() |
3e31081e88 | ||
![]() |
c5b5819edf | ||
![]() |
6820a3eb10 | ||
![]() |
727b34df75 | ||
![]() |
bdb5461847 | ||
![]() |
c41537bcac | ||
![]() |
cd05c57e20 | ||
![]() |
c432378c78 | ||
![]() |
b650ba33b1 | ||
![]() |
f67206940e | ||
![]() |
bb69871c93 | ||
![]() |
6abfa19dd8 | ||
![]() |
f8cbd788a1 | ||
![]() |
5516c85f1d | ||
![]() |
dfc4f524fc | ||
![]() |
0b9728030a | ||
![]() |
8aeb7bfacb | ||
![]() |
966105fcc4 | ||
![]() |
51a6c935d9 | ||
![]() |
0d34568afc | ||
![]() |
b68d24e8e4 | ||
![]() |
13d5069bd3 | ||
![]() |
01372c9589 | ||
![]() |
e7498fd8f3 | ||
![]() |
846eceabdf | ||
![]() |
64692e405e | ||
![]() |
1adb4febb1 | ||
![]() |
ff24bf7af6 | ||
![]() |
d705f7503a | ||
![]() |
61b01aa1a1 | ||
![]() |
0296162cda | ||
![]() |
c11ffca94a | ||
![]() |
2fce1fc16f | ||
![]() |
2a3657abef | ||
![]() |
da4dc223f7 | ||
![]() |
eeb0dc8a63 | ||
![]() |
f6f56d77a0 | ||
![]() |
749c383fd7 | ||
![]() |
98c822bfb4 | ||
![]() |
2ed48d302d | ||
![]() |
7e7e93b94c | ||
![]() |
848df5aa5b | ||
![]() |
7a6f3ffe7c | ||
![]() |
21012c3445 | ||
![]() |
5485b28b19 | ||
![]() |
d313f13475 | ||
![]() |
a4e88bd504 | ||
![]() |
f446a75fd8 | ||
![]() |
e64bb8a6f7 | ||
![]() |
1cd4226427 | ||
![]() |
817fba1114 | ||
![]() |
37a0c3c919 | ||
![]() |
fc4b12803d | ||
![]() |
51f09d1bb6 | ||
![]() |
8ce9afff6b | ||
![]() |
84711a25c3 | ||
![]() |
d33042cece | ||
![]() |
719032f91d | ||
![]() |
73c0bf56c8 | ||
![]() |
acd8d54c5e | ||
![]() |
99b0c8345c | ||
![]() |
c97fea1a9e | ||
![]() |
cd7457eba8 | ||
![]() |
c9a0cc9afd | ||
![]() |
0f990cc913 | ||
![]() |
656921b9c8 | ||
![]() |
246bde6dec | ||
![]() |
d54eadf39d | ||
![]() |
3a2f6a2ac7 | ||
![]() |
feb243d2f7 | ||
![]() |
aea43b96d5 | ||
![]() |
64f077bcb2 | ||
![]() |
9e5893883f | ||
![]() |
99681bb89b | ||
![]() |
13dcc9a1bd | ||
![]() |
7eb96d97af | ||
![]() |
8e8b49f27d | ||
![]() |
226f67f114 | ||
![]() |
0c2600ccf4 | ||
![]() |
d3d37afea6 | ||
![]() |
507c23f401 | ||
![]() |
961513f81b | ||
![]() |
de45e12245 | ||
![]() |
746bdd0114 | ||
![]() |
8a0d0d332d | ||
![]() |
40be4153c2 | ||
![]() |
9bae415530 | ||
![]() |
fad17d7901 | ||
![]() |
35f857060c | ||
![]() |
90b8854ecf | ||
![]() |
cbb79a2d52 | ||
![]() |
116411a300 | ||
![]() |
7f3ef4002d | ||
![]() |
7ad5358451 | ||
![]() |
acd08be06a | ||
![]() |
12071e8645 | ||
![]() |
9aad6a89df | ||
![]() |
927632cd0f | ||
![]() |
f44d2ec219 | ||
![]() |
1006cf3fcb | ||
![]() |
fd8b6ce4ba | ||
![]() |
2dac7b12bb | ||
![]() |
cab91ebb8b | ||
![]() |
95709fbd4d | ||
![]() |
72a5d32979 | ||
![]() |
dca642ebb1 | ||
![]() |
d1b486f3cf | ||
![]() |
35c7328a48 | ||
![]() |
e68e814853 | ||
![]() |
117722621a | ||
![]() |
ce1c1c3cea | ||
![]() |
18626964eb | ||
![]() |
f2f40a4275 | ||
![]() |
77e4a1a614 | ||
![]() |
bec51c705b | ||
![]() |
3df427fb7c | ||
![]() |
7a6d549f53 | ||
![]() |
34981bd794 | ||
![]() |
c499817bed | ||
![]() |
f1be2948cf | ||
![]() |
976ea58f6b | ||
![]() |
12323965e0 | ||
![]() |
804e8c8718 | ||
![]() |
a549f220cb | ||
![]() |
452a4ec616 | ||
![]() |
1af2bb6023 | ||
![]() |
21dcb391b4 | ||
![]() |
8602bbfa51 | ||
![]() |
99e4c394fe | ||
![]() |
dc85bbacea | ||
![]() |
b24060f8d0 | ||
![]() |
40ba9526c4 | ||
![]() |
12106192b9 | ||
![]() |
d306c8f3fd | ||
![]() |
57c1b66a25 | ||
![]() |
54b6a7f295 |
26
.clang_complete
Normal file
@@ -0,0 +1,26 @@
|
||||
-DGDJS_EXPORTS
|
||||
-DGD_API=
|
||||
-DGD_CORE_API=
|
||||
-DGD_EXTENSION_API=
|
||||
-DGD_IDE_ONLY
|
||||
-DMACOS
|
||||
-DRELEASE
|
||||
-DWXUSINGDLL
|
||||
-D_FILE_OFFSET_BITS=64
|
||||
-D__WXMAC__
|
||||
-D__WXOSX_COCOA__
|
||||
-D__WXOSX__
|
||||
-DwxDEBUG_LEVEL=0
|
||||
-D_WCHAR_H_CPLUSPLUS_98_CONFORMANCE_
|
||||
-Wno-potentially-evaluated-expression
|
||||
-std=gnu++11
|
||||
-I/usr/local/Cellar/wxmac/3.0.2/include/wx-3.0
|
||||
-DNDEBUG
|
||||
-fPIC
|
||||
-I/Users/florian/Projects/F/GD/ExtLibs/SFML/include
|
||||
-I/Users/florian/Projects/F/GD/Core
|
||||
-I/usr/local/Cellar/wxmac/3.0.2/lib/wx/include/osx_cocoa-unicode-3.0
|
||||
-I/usr/local/Cellar/wxmac/3.0.2/include/wx-3.0
|
||||
-I/Users/florian/Projects/F/GD/GDCpp/.
|
||||
-I/Users/florian/Projects/F/GD/GDJS/.
|
||||
-F/Users/florian/Projects/F/GD/ExtLibs/SFML/extlibs/libs-osx/Frameworks
|
12
.gitignore
vendored
@@ -1,11 +1,11 @@
|
||||
/Core/GDCore/Tools/VersionPriv.h
|
||||
/docs/GDJS Runtime Documentation
|
||||
/docs/GDJS Documentation
|
||||
/docs/GDCpp Documentation
|
||||
/docs/GDCore Documentation
|
||||
/ExtLibs/boost
|
||||
/ExtLibs/SFML
|
||||
/ExtLibs/wxwidgets
|
||||
/ExtLibs/wxWidgets
|
||||
/ExtLibs/SFML
|
||||
/ExtLibs/*.7z
|
||||
/scripts/Repository keys
|
||||
/scripts/logs/*.txt
|
||||
@@ -50,11 +50,13 @@ Binaries/Packaging/logs
|
||||
!/Binaries/Output/Release_Linux/CppPlatform/
|
||||
/Binaries/**/MinGW32
|
||||
/Binaries/**/CppPlatform/Runtime
|
||||
/Binaries/**/CppPlatform/Sources
|
||||
/Binaries/**/CppPlatform/include
|
||||
/Binaries/**/CppPlatform/Extensions/include
|
||||
/Binaries/**/JsPlatform/Runtime
|
||||
/Binaries/**/JsPlatform/*.dll
|
||||
/Binaries/**/JsPlatform/*.dll.a
|
||||
/Binaries/Output/Release_Windows/newIDE
|
||||
*.autosave
|
||||
/Binaries/Output/libGD.js/Release
|
||||
/Binaries/Output/libGD.js/Debug
|
||||
@@ -63,12 +65,14 @@ Binaries/Packaging/logs
|
||||
!/scripts/libgettextlib-0-17.dll
|
||||
!/scripts/libgettextsrc-0-17.dll
|
||||
!/xgettext.exe
|
||||
!/Binaries/Output/Release_Windows/locale/libgettextlib-0-17.dll
|
||||
!/Binaries/Output/Release_Windows/locale/libgettextsrc-0-17.dll
|
||||
!/Binaries/Output/Release_Windows/locale/*.dll
|
||||
!/Binaries/Output/Release_Windows/locale/msgcat.exe
|
||||
!/Binaries/Output/Release_Windows/locale/msgfmt.exe
|
||||
!/ExtLibs/curl.exe
|
||||
!/ExtLibs/7za.exe
|
||||
!/ExtLibs/SFML/extlibs/**/*.dll
|
||||
!/ExtLibs/SFML/extlibs/**/*.so
|
||||
!/ExtLibs/SFML/extlibs/**/*.a
|
||||
**/.DS_Store
|
||||
**/node_modules/
|
||||
.idea
|
||||
|
33
.travis.yml
@@ -4,6 +4,14 @@ compiler:
|
||||
- gcc
|
||||
- clang
|
||||
|
||||
# Cache .npm folder for faster npm install
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.npm
|
||||
|
||||
git:
|
||||
depth: 999999
|
||||
|
||||
env:
|
||||
global:
|
||||
- GCC_VERSION="4.8"
|
||||
@@ -34,6 +42,12 @@ before_install:
|
||||
- "sh -e /etc/init.d/xvfb start"
|
||||
|
||||
install:
|
||||
#Install newIDE tests dependencies
|
||||
- cd newIDE/app && npm install
|
||||
- cd ../..
|
||||
#Install GDJS tests dependencies
|
||||
- cd GDJS/tests && npm install
|
||||
- cd ../..
|
||||
#Get the correct version of gcc/g++
|
||||
- if [ "$CXX" = "g++" ]; then export CXX="g++-${GCC_VERSION}" CC="gcc-${GCC_VERSION}"; fi
|
||||
#Compile the tests only
|
||||
@@ -42,20 +56,21 @@ install:
|
||||
- cmake -DBUILD_GDJS=FALSE -DBUILD_IDE=FALSE -DBUILD_TESTS=TRUE -DNO_GUI=TRUE -DCMAKE_CXX_COMPILER=$(which $CXX) -DCMAKE_C_COMPILER=$(which $CC) ..
|
||||
- make -j 4
|
||||
- cd ..
|
||||
#Install GDJS tests dependencies
|
||||
- cd GDJS/tests
|
||||
- npm install
|
||||
- cd ../..
|
||||
|
||||
script:
|
||||
#GDJS game engine tests:
|
||||
- cd GDJS/tests
|
||||
- npm test
|
||||
- cd ../..
|
||||
#GDCore and GDCpp game engine tests:
|
||||
- cd .build-tests
|
||||
# - export LD_LIBRARY_PATH=$PWD/Binaries/Output/Release_Linux:$PWD/.build-tests/ExtLibs/SFML/lib:$LD_LIBRARY_PATH
|
||||
- Core/GDCore_tests
|
||||
- GDCpp/GDCpp_tests
|
||||
- Extensions/PathfindingBehavior/PathfindingBehavior_Runtime_tests
|
||||
- Extensions/LinkedObjects/LinkedObjects_Runtime_tests
|
||||
- cd ..
|
||||
#newIDE tests:
|
||||
- cd newIDE/app
|
||||
- npm test
|
||||
- npm run flow
|
||||
- cd ../..
|
||||
#GDJS game engine tests, disabled on Travis CI because ChromeHeadless can't be started.
|
||||
#See them running on Semaphore-CI instead: https://semaphoreci.com/4ian/gd
|
||||
# - cd GDJS/tests && npm test
|
||||
# - cd ../..
|
||||
|
125
.vscode/c_cpp_properties.json
vendored
Normal file
@@ -0,0 +1,125 @@
|
||||
{
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Mac",
|
||||
"includePath": [
|
||||
"${workspaceRoot}",
|
||||
"${workspaceRoot}/IDE",
|
||||
"${workspaceRoot}/GDCpp",
|
||||
"${workspaceRoot}/GDJS",
|
||||
"${workspaceRoot}/Extensions",
|
||||
"${workspaceRoot}/Core",
|
||||
"${workspaceRoot}/ExtLibs/SFML/include",
|
||||
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1",
|
||||
"/usr/local/include",
|
||||
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/9.0.0/include",
|
||||
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include",
|
||||
"/usr/include",
|
||||
"/usr/local/lib/wx/include/osx_cocoa-unicode-3.0",
|
||||
"/usr/local/include/wx-3.0",
|
||||
"${workspaceRoot}"
|
||||
],
|
||||
"defines": [
|
||||
"GD_IDE_ONLY",
|
||||
"__WXMAC__",
|
||||
"__WXOSX__",
|
||||
"__WXOSX_COCOA__",
|
||||
"GD_CORE_API=/* Macro used to export classes on Windows, please ignore */",
|
||||
"GD_API=/* Macro used to export classes on Windows, please ignore */",
|
||||
"GD_EXTENSION_API=/* Macro used to export classes on Windows, please ignore */",
|
||||
"WXUSINGDLL"
|
||||
],
|
||||
"intelliSenseMode": "clang-x64",
|
||||
"browse": {
|
||||
"path": [
|
||||
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1",
|
||||
"/usr/local/include",
|
||||
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/9.0.0/include",
|
||||
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include",
|
||||
"/usr/include",
|
||||
"${workspaceRoot}"
|
||||
],
|
||||
"limitSymbolsToIncludedHeaders": true,
|
||||
"databaseFilename": ""
|
||||
},
|
||||
"macFrameworkPath": [
|
||||
"/System/Library/Frameworks",
|
||||
"/Library/Frameworks"
|
||||
],
|
||||
"compilerPath": "/usr/bin/clang",
|
||||
"cStandard": "c11",
|
||||
"cppStandard": "c++17"
|
||||
},
|
||||
{
|
||||
"name": "Linux",
|
||||
"includePath": [
|
||||
"${workspaceRoot}",
|
||||
"${workspaceRoot}/IDE",
|
||||
"${workspaceRoot}/GDCpp",
|
||||
"${workspaceRoot}/GDJS",
|
||||
"${workspaceRoot}/Extensions",
|
||||
"${workspaceRoot}/Core",
|
||||
"${workspaceRoot}/ExtLibs/SFML/include",
|
||||
"/usr/include",
|
||||
"/usr/local/include",
|
||||
"${workspaceRoot}"
|
||||
],
|
||||
"defines": [
|
||||
"GD_IDE_ONLY",
|
||||
"__WXMAC__",
|
||||
"__WXOSX__",
|
||||
"__WXOSX_COCOA__",
|
||||
"GD_CORE_API=/* Macro used to export classes on Windows, please ignore */",
|
||||
"GD_API=/* Macro used to export classes on Windows, please ignore */",
|
||||
"GD_EXTENSION_API=/* Macro used to export classes on Windows, please ignore */",
|
||||
"WXUSINGDLL"
|
||||
],
|
||||
"intelliSenseMode": "clang-x64",
|
||||
"browse": {
|
||||
"path": [
|
||||
"/usr/include",
|
||||
"/usr/local/include",
|
||||
"${workspaceRoot}"
|
||||
],
|
||||
"limitSymbolsToIncludedHeaders": true,
|
||||
"databaseFilename": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Win32",
|
||||
"includePath": [
|
||||
"${workspaceRoot}",
|
||||
"${workspaceRoot}/IDE",
|
||||
"${workspaceRoot}/GDCpp",
|
||||
"${workspaceRoot}/GDJS",
|
||||
"${workspaceRoot}/Extensions",
|
||||
"${workspaceRoot}/Core",
|
||||
"${workspaceRoot}/ExtLibs/SFML/include",
|
||||
"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include",
|
||||
"${workspaceRoot}"
|
||||
],
|
||||
"defines": [
|
||||
"_DEBUG",
|
||||
"UNICODE",
|
||||
"GD_IDE_ONLY",
|
||||
"__WXMAC__",
|
||||
"__WXOSX__",
|
||||
"__WXOSX_COCOA__",
|
||||
"GD_CORE_API=/* Macro used to export classes on Windows, please ignore */",
|
||||
"GD_API=/* Macro used to export classes on Windows, please ignore */",
|
||||
"GD_EXTENSION_API=/* Macro used to export classes on Windows, please ignore */",
|
||||
"WXUSINGDLL"
|
||||
],
|
||||
"intelliSenseMode": "msvc-x64",
|
||||
"browse": {
|
||||
"path": [
|
||||
"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include/*",
|
||||
"${workspaceRoot}"
|
||||
],
|
||||
"limitSymbolsToIncludedHeaders": true,
|
||||
"databaseFilename": ""
|
||||
}
|
||||
}
|
||||
],
|
||||
"version": 4
|
||||
}
|
97
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,97 @@
|
||||
// Place your settings in this file to overwrite default and user settings.
|
||||
{
|
||||
"files.associations": {
|
||||
"*.idl": "java",
|
||||
"iosfwd": "cpp",
|
||||
"functional": "cpp",
|
||||
"type_traits": "cpp",
|
||||
"utility": "cpp",
|
||||
"algorithm": "cpp",
|
||||
"random": "cpp",
|
||||
"__config": "cpp",
|
||||
"cstddef": "cpp",
|
||||
"exception": "cpp",
|
||||
"initializer_list": "cpp",
|
||||
"new": "cpp",
|
||||
"stdexcept": "cpp",
|
||||
"typeinfo": "cpp",
|
||||
"*.tcc": "cpp",
|
||||
"cctype": "cpp",
|
||||
"clocale": "cpp",
|
||||
"cmath": "cpp",
|
||||
"complex": "cpp",
|
||||
"cstdarg": "cpp",
|
||||
"cstdio": "cpp",
|
||||
"cstdlib": "cpp",
|
||||
"ctime": "cpp",
|
||||
"cwchar": "cpp",
|
||||
"cwctype": "cpp",
|
||||
"istream": "cpp",
|
||||
"limits": "cpp",
|
||||
"memory": "cpp",
|
||||
"ostream": "cpp",
|
||||
"sstream": "cpp",
|
||||
"streambuf": "cpp",
|
||||
"hashtable": "cpp",
|
||||
"tuple": "cpp",
|
||||
"unordered_map": "cpp",
|
||||
"unordered_set": "cpp",
|
||||
"__split_buffer": "cpp",
|
||||
"deque": "cpp",
|
||||
"iterator": "cpp",
|
||||
"list": "cpp",
|
||||
"map": "cpp",
|
||||
"queue": "cpp",
|
||||
"regex": "cpp",
|
||||
"set": "cpp",
|
||||
"stack": "cpp",
|
||||
"string": "cpp",
|
||||
"vector": "cpp",
|
||||
"iostream": "cpp",
|
||||
"__functional_03": "cpp",
|
||||
"__hash_table": "cpp",
|
||||
"__tree": "cpp",
|
||||
"bitset": "cpp",
|
||||
"__bit_reference": "cpp",
|
||||
"__mutex_base": "cpp",
|
||||
"fstream": "cpp",
|
||||
"ios": "cpp",
|
||||
"__locale": "cpp",
|
||||
"valarray": "cpp",
|
||||
"freeglut_spaceball.c": "cpp",
|
||||
"__tuple": "cpp",
|
||||
"hash_map": "cpp",
|
||||
"hash_set": "cpp",
|
||||
"system_error": "cpp",
|
||||
"__nullptr": "cpp",
|
||||
"__functional_base": "cpp",
|
||||
"__functional_base_03": "cpp",
|
||||
"chrono": "cpp",
|
||||
"ratio": "cpp",
|
||||
"atomic": "cpp",
|
||||
"locale": "cpp",
|
||||
"string_view": "cpp",
|
||||
"__string": "cpp",
|
||||
"cstring": "cpp",
|
||||
"iomanip": "cpp",
|
||||
"cstdint": "cpp"
|
||||
},
|
||||
"files.exclude": {
|
||||
"Binaries/*build*": true,
|
||||
"Binaries/Output": true,
|
||||
"Binaries/Packaging/GDevelop.app": true,
|
||||
"ExtLibs/SFML": true,
|
||||
"docs": true,
|
||||
"GDJS/docs": true,
|
||||
"GDCpp/docs": true,
|
||||
"Core/docs": true,
|
||||
"Extensions/CommonDialogs/dlib-18.16": true,
|
||||
"newIDE/electron-app/dist": true,
|
||||
"newIDE/app/build": true,
|
||||
"newIDE/app/resources/GDJS": true,
|
||||
"newIDE/electron-app/app/www": true
|
||||
},
|
||||
// Support for Flowtype:
|
||||
"javascript.validate.enable": false,
|
||||
"flow.useNPMPackagedFlow": true
|
||||
}
|
After Width: | Height: | Size: 308 B |
After Width: | Height: | Size: 226 B |
After Width: | Height: | Size: 303 B |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 15 KiB |
@@ -55,7 +55,7 @@
|
||||
<resource alwaysLoaded="false" file="mur 6.png" kind="image" name="mur 6.png" smoothed="true" userAdded="true" />
|
||||
<resource alwaysLoaded="false" file="mur 7.png" kind="image" name="mur 7.png" smoothed="true" userAdded="true" />
|
||||
<resource alwaysLoaded="false" file="mur 8.png" kind="image" name="mur 8.png" smoothed="true" userAdded="true" />
|
||||
<resource alwaysLoaded="false" file="lumière.png" kind="image" name="lumière.png" smoothed="true" userAdded="true" />
|
||||
<resource alwaysLoaded="false" file="lumiere.png" kind="image" name="lumiere.png" smoothed="true" userAdded="true" />
|
||||
<resource alwaysLoaded="false" file="towerground.png" kind="image" name="towerground.png" smoothed="true" userAdded="true" />
|
||||
</resources>
|
||||
<resourceFolders />
|
||||
@@ -282,7 +282,7 @@
|
||||
<directions>
|
||||
<direction looping="false" timeBetweenFrames="1.000000">
|
||||
<sprites>
|
||||
<sprite hasCustomCollisionMask="false" image="lumière.png">
|
||||
<sprite hasCustomCollisionMask="false" image="lumiere.png">
|
||||
<points />
|
||||
<originPoint name="origine" x="0.000000" y="0.000000" />
|
||||
<centerPoint automatic="true" name="centre" x="4.000000" y="4.000000" />
|
||||
|
@@ -1,4 +1,4 @@
|
||||
#include "GDCpp/RuntimeScene.h"
|
||||
#include "GDCpp/Runtime/RuntimeScene.h"
|
||||
#include "TextObject/TextObject.h" //but do not forget extensions includes
|
||||
#include <iostream>
|
||||
|
||||
|
748
Binaries/Output/Release_Windows/Examples/Copy_Variables.gdg
Normal file
@@ -0,0 +1,748 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<project firstLayout="">
|
||||
<gdVersion build="95" major="4" minor="0" revision="8" />
|
||||
<properties folderProject="false" linuxExecutableFilename="" macExecutableFilename="" packageName="com.example.gamename" projectFile="C:\Users\Maciel\Programacion\gits\GD\Binaries\Output\Release_Windows\Examples\Copy_Variables.gdg" useExternalSourceFiles="false" winExecutableFilename="" winExecutableIconFile="">
|
||||
<name>Project</name>
|
||||
<author></author>
|
||||
<windowWidth>800</windowWidth>
|
||||
<windowHeight>600</windowHeight>
|
||||
<latestCompilationDirectory></latestCompilationDirectory>
|
||||
<maxFPS>60</maxFPS>
|
||||
<minFPS>10</minFPS>
|
||||
<verticalSync>false</verticalSync>
|
||||
<extensions>
|
||||
<extension name="BuiltinObject" />
|
||||
<extension name="BuiltinAudio" />
|
||||
<extension name="BuiltinVariables" />
|
||||
<extension name="BuiltinTime" />
|
||||
<extension name="BuiltinMouse" />
|
||||
<extension name="BuiltinKeyboard" />
|
||||
<extension name="BuiltinJoystick" />
|
||||
<extension name="BuiltinCamera" />
|
||||
<extension name="BuiltinWindow" />
|
||||
<extension name="BuiltinFile" />
|
||||
<extension name="BuiltinNetwork" />
|
||||
<extension name="BuiltinScene" />
|
||||
<extension name="BuiltinAdvanced" />
|
||||
<extension name="Sprite" />
|
||||
<extension name="BuiltinCommonInstructions" />
|
||||
<extension name="BuiltinCommonConversions" />
|
||||
<extension name="BuiltinStringInstructions" />
|
||||
<extension name="BuiltinMathematicalTools" />
|
||||
<extension name="BuiltinExternalLayouts" />
|
||||
<extension name="TextObject" />
|
||||
</extensions>
|
||||
<platforms>
|
||||
<platform name="GDevelop C++ platform" />
|
||||
<platform name="GDevelop JS platform" />
|
||||
</platforms>
|
||||
<currentPlatform>GDevelop C++ platform</currentPlatform>
|
||||
</properties>
|
||||
<resources>
|
||||
<resources />
|
||||
<resourceFolders />
|
||||
</resources>
|
||||
<objects />
|
||||
<objectsGroups />
|
||||
<variables />
|
||||
<layouts>
|
||||
<layout b="30" disableInputWhenNotFocused="true" mangledName="Scene" name="Scene" oglFOV="90.000000" oglZFar="500.000000" oglZNear="1.000000" r="30" standardSortMethod="false" stopSoundsOnStartup="true" title="" v="30">
|
||||
<uiSettings grid="false" gridB="80" gridG="80" gridHeight="32" gridOffsetX="0" gridOffsetY="0" gridR="80" gridWidth="32" snap="true" windowMask="false" zoomFactor="0.701632" />
|
||||
<objectsGroups />
|
||||
<variables>
|
||||
<variable name="Scene">
|
||||
<children>
|
||||
<variable name="A" value="5" />
|
||||
<variable name="B">
|
||||
<children>
|
||||
<variable name="alpha">
|
||||
<children>
|
||||
<variable name="x" value="5.5" />
|
||||
<variable name="y" value="-8" />
|
||||
</children>
|
||||
</variable>
|
||||
<variable name="beta" value="150;255;150" />
|
||||
<variable name="gamma" value="Apples" />
|
||||
</children>
|
||||
</variable>
|
||||
</children>
|
||||
</variable>
|
||||
</variables>
|
||||
<instances>
|
||||
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="DebugText" width="0.000000" x="400.000000" y="300.000000" zOrder="1">
|
||||
<numberProperties />
|
||||
<stringProperties />
|
||||
<initialVariables>
|
||||
<variable name="ID" value="3" />
|
||||
</initialVariables>
|
||||
</instance>
|
||||
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="DebugText" width="0.000000" x="20.000000" y="20.000000" zOrder="1">
|
||||
<numberProperties />
|
||||
<stringProperties />
|
||||
<initialVariables>
|
||||
<variable name="ID" value="0" />
|
||||
</initialVariables>
|
||||
</instance>
|
||||
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="DebugText" width="0.000000" x="400.000000" y="20.000000" zOrder="1">
|
||||
<numberProperties />
|
||||
<stringProperties />
|
||||
<initialVariables>
|
||||
<variable name="ID" value="1" />
|
||||
</initialVariables>
|
||||
</instance>
|
||||
<instance angle="0.000000" customSize="false" height="0.000000" layer="" locked="false" name="DebugText" width="0.000000" x="20.000000" y="300.000000" zOrder="1">
|
||||
<numberProperties />
|
||||
<stringProperties />
|
||||
<initialVariables>
|
||||
<variable name="ID" value="2" />
|
||||
</initialVariables>
|
||||
</instance>
|
||||
</instances>
|
||||
<objects>
|
||||
<object bold="false" italic="false" name="DebugText" smoothed="true" type="TextObject::Text" underlined="false">
|
||||
<variables />
|
||||
<behaviors />
|
||||
<string>DebugText</string>
|
||||
<font></font>
|
||||
<characterSize>24</characterSize>
|
||||
<color b="220" g="220" r="220" />
|
||||
</object>
|
||||
</objects>
|
||||
<events>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Comment</type>
|
||||
<color b="128" g="255" r="128" textB="0" textG="0" textR="0" />
|
||||
<comment>Update debug text at the beginning (only Scene variable will be drawn because others haven't childrend)</comment>
|
||||
<comment2></comment2>
|
||||
</event>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Standard</type>
|
||||
<conditions>
|
||||
<condition>
|
||||
<type inverted="false" value="DepartScene" />
|
||||
<parameters>
|
||||
<parameter></parameter>
|
||||
</parameters>
|
||||
<subConditions />
|
||||
</condition>
|
||||
</conditions>
|
||||
<actions>
|
||||
<action>
|
||||
<type inverted="false" value="ModVarScene" />
|
||||
<parameters>
|
||||
<parameter>Update</parameter>
|
||||
<parameter>=</parameter>
|
||||
<parameter>1</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
</actions>
|
||||
<events />
|
||||
</event>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Comment</type>
|
||||
<color b="128" g="255" r="128" textB="0" textG="0" textR="0" />
|
||||
<comment>If "A" key is pressed, convert the Scene variable into JSON and parse it into a Global variable, then randomize a child from the Global structure, to identify it</comment>
|
||||
<comment2></comment2>
|
||||
</event>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Standard</type>
|
||||
<conditions>
|
||||
<condition>
|
||||
<type inverted="false" value="KeyPressed" />
|
||||
<parameters>
|
||||
<parameter></parameter>
|
||||
<parameter>a</parameter>
|
||||
</parameters>
|
||||
<subConditions />
|
||||
</condition>
|
||||
<condition>
|
||||
<type inverted="false" value="BuiltinCommonInstructions::Once" />
|
||||
<parameters />
|
||||
<subConditions />
|
||||
</condition>
|
||||
</conditions>
|
||||
<actions>
|
||||
<action>
|
||||
<type inverted="false" value="JSONToGlobalVariableStructure" />
|
||||
<parameters>
|
||||
<parameter>ToJSON(Scene)</parameter>
|
||||
<parameter>Global</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
<action>
|
||||
<type inverted="false" value="ModVarGlobal" />
|
||||
<parameters>
|
||||
<parameter>Global.B.alpha.x</parameter>
|
||||
<parameter>=</parameter>
|
||||
<parameter>Random(1000)</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
<action>
|
||||
<type inverted="false" value="ModVarScene" />
|
||||
<parameters>
|
||||
<parameter>Update</parameter>
|
||||
<parameter>=</parameter>
|
||||
<parameter>1</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
</actions>
|
||||
<events />
|
||||
</event>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Comment</type>
|
||||
<color b="128" g="255" r="128" textB="0" textG="0" textR="0" />
|
||||
<comment>If "S" key is pressed, convert the Global variable into JSON and parse it into an Object variable, then randomize another child from the Object structure, to identify it</comment>
|
||||
<comment2></comment2>
|
||||
</event>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Standard</type>
|
||||
<conditions>
|
||||
<condition>
|
||||
<type inverted="false" value="KeyPressed" />
|
||||
<parameters>
|
||||
<parameter></parameter>
|
||||
<parameter>s</parameter>
|
||||
</parameters>
|
||||
<subConditions />
|
||||
</condition>
|
||||
<condition>
|
||||
<type inverted="false" value="VarObjet" />
|
||||
<parameters>
|
||||
<parameter>DebugText</parameter>
|
||||
<parameter>ID</parameter>
|
||||
<parameter>=</parameter>
|
||||
<parameter>2</parameter>
|
||||
</parameters>
|
||||
<subConditions />
|
||||
</condition>
|
||||
<condition>
|
||||
<type inverted="false" value="BuiltinCommonInstructions::Once" />
|
||||
<parameters />
|
||||
<subConditions />
|
||||
</condition>
|
||||
</conditions>
|
||||
<actions>
|
||||
<action>
|
||||
<type inverted="false" value="JSONToObjectVariableStructure" />
|
||||
<parameters>
|
||||
<parameter>GlobalVarToJSON(Global)</parameter>
|
||||
<parameter>DebugText</parameter>
|
||||
<parameter>Object</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
<action>
|
||||
<type inverted="false" value="ModVarObjet" />
|
||||
<parameters>
|
||||
<parameter>DebugText</parameter>
|
||||
<parameter>Object.B.alpha.y</parameter>
|
||||
<parameter>=</parameter>
|
||||
<parameter>Random(1000)</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
<action>
|
||||
<type inverted="false" value="ModVarScene" />
|
||||
<parameters>
|
||||
<parameter>Update</parameter>
|
||||
<parameter>=</parameter>
|
||||
<parameter>1</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
</actions>
|
||||
<events />
|
||||
</event>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Comment</type>
|
||||
<color b="128" g="255" r="128" textB="0" textG="0" textR="0" />
|
||||
<comment>If "D" key is pressed, convert the Object variable into JSON (note there are no whitespaces after the "," before the variable name in the ObjectVarToJSON) and parse it into another scene variable Scene_2</comment>
|
||||
<comment2></comment2>
|
||||
</event>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Standard</type>
|
||||
<conditions>
|
||||
<condition>
|
||||
<type inverted="false" value="KeyPressed" />
|
||||
<parameters>
|
||||
<parameter></parameter>
|
||||
<parameter>d</parameter>
|
||||
</parameters>
|
||||
<subConditions />
|
||||
</condition>
|
||||
<condition>
|
||||
<type inverted="false" value="VarObjet" />
|
||||
<parameters>
|
||||
<parameter>DebugText</parameter>
|
||||
<parameter>ID</parameter>
|
||||
<parameter>=</parameter>
|
||||
<parameter>2</parameter>
|
||||
</parameters>
|
||||
<subConditions />
|
||||
</condition>
|
||||
<condition>
|
||||
<type inverted="false" value="BuiltinCommonInstructions::Once" />
|
||||
<parameters />
|
||||
<subConditions />
|
||||
</condition>
|
||||
</conditions>
|
||||
<actions>
|
||||
<action>
|
||||
<type inverted="false" value="JSONToVariableStructure" />
|
||||
<parameters>
|
||||
<parameter>ObjectVarToJSON(DebugText,Object)</parameter>
|
||||
<parameter>Scene_2</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
<action>
|
||||
<type inverted="false" value="ModVarScene" />
|
||||
<parameters>
|
||||
<parameter>Update</parameter>
|
||||
<parameter>=</parameter>
|
||||
<parameter>1</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
</actions>
|
||||
<events />
|
||||
</event>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Comment</type>
|
||||
<color b="128" g="255" r="128" textB="0" textG="0" textR="0" />
|
||||
<comment>Time to update the debug text objects, set Update = 0 to update it only once, and start a counter "i" = 0</comment>
|
||||
<comment2></comment2>
|
||||
</event>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Standard</type>
|
||||
<conditions>
|
||||
<condition>
|
||||
<type inverted="false" value="VarScene" />
|
||||
<parameters>
|
||||
<parameter>Update</parameter>
|
||||
<parameter>=</parameter>
|
||||
<parameter>1</parameter>
|
||||
</parameters>
|
||||
<subConditions />
|
||||
</condition>
|
||||
</conditions>
|
||||
<actions>
|
||||
<action>
|
||||
<type inverted="false" value="ModVarScene" />
|
||||
<parameters>
|
||||
<parameter>Update</parameter>
|
||||
<parameter>=</parameter>
|
||||
<parameter>0</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
<action>
|
||||
<type inverted="false" value="ModVarScene" />
|
||||
<parameters>
|
||||
<parameter>i</parameter>
|
||||
<parameter>=</parameter>
|
||||
<parameter>0</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
</actions>
|
||||
<events>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Comment</type>
|
||||
<color b="128" g="255" r="128" textB="0" textG="0" textR="0" />
|
||||
<comment>Repeat 4 times because there are 4 debug objects, in each repeat select the object with ID = i (counter variable)
Update the counter variable (i + 1)
Clear the temporal variable Temp, otherwise children are kept from one update to another, messing up the test</comment>
|
||||
<comment2></comment2>
|
||||
</event>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Repeat</type>
|
||||
<repeatExpression>4</repeatExpression>
|
||||
<conditions>
|
||||
<condition>
|
||||
<type inverted="false" value="VarObjet" />
|
||||
<parameters>
|
||||
<parameter>DebugText</parameter>
|
||||
<parameter>ID</parameter>
|
||||
<parameter>=</parameter>
|
||||
<parameter>Variable(i)</parameter>
|
||||
</parameters>
|
||||
<subConditions />
|
||||
</condition>
|
||||
</conditions>
|
||||
<actions>
|
||||
<action>
|
||||
<type inverted="false" value="ModVarScene" />
|
||||
<parameters>
|
||||
<parameter>i</parameter>
|
||||
<parameter>+</parameter>
|
||||
<parameter>1</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
<action>
|
||||
<type inverted="false" value="VariableClearChildren" />
|
||||
<parameters>
|
||||
<parameter>Temp</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
</actions>
|
||||
<events>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Comment</type>
|
||||
<color b="128" g="255" r="128" textB="0" textG="0" textR="0" />
|
||||
<comment>Set starting title in function of the debug object ID, and copy the testing variables into the variable Temp (this way Temp will be equal to one of the variables under test)</comment>
|
||||
<comment2></comment2>
|
||||
</event>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Standard</type>
|
||||
<conditions>
|
||||
<condition>
|
||||
<type inverted="false" value="VarObjet" />
|
||||
<parameters>
|
||||
<parameter>DebugText</parameter>
|
||||
<parameter>ID</parameter>
|
||||
<parameter>=</parameter>
|
||||
<parameter>0</parameter>
|
||||
</parameters>
|
||||
<subConditions />
|
||||
</condition>
|
||||
</conditions>
|
||||
<actions>
|
||||
<action>
|
||||
<type inverted="false" value="TextObject::String" />
|
||||
<parameters>
|
||||
<parameter>DebugText</parameter>
|
||||
<parameter>=</parameter>
|
||||
<parameter>"Scene" + NewLine()</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
<action>
|
||||
<type inverted="false" value="JSONToVariableStructure" />
|
||||
<parameters>
|
||||
<parameter>ToJSON(Scene)</parameter>
|
||||
<parameter>Temp</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
</actions>
|
||||
<events />
|
||||
</event>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Standard</type>
|
||||
<conditions>
|
||||
<condition>
|
||||
<type inverted="false" value="VarObjet" />
|
||||
<parameters>
|
||||
<parameter>DebugText</parameter>
|
||||
<parameter>ID</parameter>
|
||||
<parameter>=</parameter>
|
||||
<parameter>1</parameter>
|
||||
</parameters>
|
||||
<subConditions />
|
||||
</condition>
|
||||
</conditions>
|
||||
<actions>
|
||||
<action>
|
||||
<type inverted="false" value="TextObject::String" />
|
||||
<parameters>
|
||||
<parameter>DebugText</parameter>
|
||||
<parameter>=</parameter>
|
||||
<parameter>"Global" + NewLine()</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
<action>
|
||||
<type inverted="false" value="JSONToVariableStructure" />
|
||||
<parameters>
|
||||
<parameter>GlobalVarToJSON(Global)</parameter>
|
||||
<parameter>Temp</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
</actions>
|
||||
<events />
|
||||
</event>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Standard</type>
|
||||
<conditions>
|
||||
<condition>
|
||||
<type inverted="false" value="VarObjet" />
|
||||
<parameters>
|
||||
<parameter>DebugText</parameter>
|
||||
<parameter>ID</parameter>
|
||||
<parameter>=</parameter>
|
||||
<parameter>2</parameter>
|
||||
</parameters>
|
||||
<subConditions />
|
||||
</condition>
|
||||
</conditions>
|
||||
<actions>
|
||||
<action>
|
||||
<type inverted="false" value="TextObject::String" />
|
||||
<parameters>
|
||||
<parameter>DebugText</parameter>
|
||||
<parameter>=</parameter>
|
||||
<parameter>"Object" + NewLine()</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
<action>
|
||||
<type inverted="false" value="JSONToVariableStructure" />
|
||||
<parameters>
|
||||
<parameter>ObjectVarToJSON(DebugText,Object)</parameter>
|
||||
<parameter>Temp</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
</actions>
|
||||
<events />
|
||||
</event>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Standard</type>
|
||||
<conditions>
|
||||
<condition>
|
||||
<type inverted="false" value="VarObjet" />
|
||||
<parameters>
|
||||
<parameter>DebugText</parameter>
|
||||
<parameter>ID</parameter>
|
||||
<parameter>=</parameter>
|
||||
<parameter>3</parameter>
|
||||
</parameters>
|
||||
<subConditions />
|
||||
</condition>
|
||||
</conditions>
|
||||
<actions>
|
||||
<action>
|
||||
<type inverted="false" value="TextObject::String" />
|
||||
<parameters>
|
||||
<parameter>DebugText</parameter>
|
||||
<parameter>=</parameter>
|
||||
<parameter>"Scene_2" + NewLine()</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
<action>
|
||||
<type inverted="false" value="JSONToVariableStructure" />
|
||||
<parameters>
|
||||
<parameter>ToJSON(Scene_2)</parameter>
|
||||
<parameter>Temp</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
</actions>
|
||||
<events />
|
||||
</event>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Comment</type>
|
||||
<color b="128" g="255" r="128" textB="0" textG="0" textR="0" />
|
||||
<comment>Copy values from variable Test in the debug object, to draw it, one debug object is selected at each iteration and one variable is copy into Temp variable</comment>
|
||||
<comment2></comment2>
|
||||
</event>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Standard</type>
|
||||
<conditions>
|
||||
<condition>
|
||||
<type inverted="false" value="VariableChildExists" />
|
||||
<parameters>
|
||||
<parameter>Temp</parameter>
|
||||
<parameter>"A"</parameter>
|
||||
</parameters>
|
||||
<subConditions />
|
||||
</condition>
|
||||
</conditions>
|
||||
<actions>
|
||||
<action>
|
||||
<type inverted="false" value="TextObject::String" />
|
||||
<parameters>
|
||||
<parameter>DebugText</parameter>
|
||||
<parameter>+</parameter>
|
||||
<parameter>"____A = " + VariableString(Temp.A) + NewLine()</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
</actions>
|
||||
<events />
|
||||
</event>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Standard</type>
|
||||
<conditions>
|
||||
<condition>
|
||||
<type inverted="false" value="VariableChildExists" />
|
||||
<parameters>
|
||||
<parameter>Temp</parameter>
|
||||
<parameter>"B"</parameter>
|
||||
</parameters>
|
||||
<subConditions />
|
||||
</condition>
|
||||
</conditions>
|
||||
<actions>
|
||||
<action>
|
||||
<type inverted="false" value="TextObject::String" />
|
||||
<parameters>
|
||||
<parameter>DebugText</parameter>
|
||||
<parameter>+</parameter>
|
||||
<parameter>"____B" + NewLine()</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
</actions>
|
||||
<events>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Standard</type>
|
||||
<conditions>
|
||||
<condition>
|
||||
<type inverted="false" value="VariableChildExists" />
|
||||
<parameters>
|
||||
<parameter>Temp.B</parameter>
|
||||
<parameter>"alpha"</parameter>
|
||||
</parameters>
|
||||
<subConditions />
|
||||
</condition>
|
||||
</conditions>
|
||||
<actions>
|
||||
<action>
|
||||
<type inverted="false" value="TextObject::String" />
|
||||
<parameters>
|
||||
<parameter>DebugText</parameter>
|
||||
<parameter>+</parameter>
|
||||
<parameter>"________alpha" + NewLine()</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
</actions>
|
||||
<events>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Standard</type>
|
||||
<conditions>
|
||||
<condition>
|
||||
<type inverted="false" value="VariableChildExists" />
|
||||
<parameters>
|
||||
<parameter>Temp.B.alpha</parameter>
|
||||
<parameter>"x"</parameter>
|
||||
</parameters>
|
||||
<subConditions />
|
||||
</condition>
|
||||
</conditions>
|
||||
<actions>
|
||||
<action>
|
||||
<type inverted="false" value="TextObject::String" />
|
||||
<parameters>
|
||||
<parameter>DebugText</parameter>
|
||||
<parameter>+</parameter>
|
||||
<parameter>"____________x = " + VariableString(Temp.B.alpha.x) + NewLine()</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
</actions>
|
||||
<events />
|
||||
</event>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Standard</type>
|
||||
<conditions>
|
||||
<condition>
|
||||
<type inverted="false" value="VariableChildExists" />
|
||||
<parameters>
|
||||
<parameter>Temp.B.alpha</parameter>
|
||||
<parameter>"y"</parameter>
|
||||
</parameters>
|
||||
<subConditions />
|
||||
</condition>
|
||||
</conditions>
|
||||
<actions>
|
||||
<action>
|
||||
<type inverted="false" value="TextObject::String" />
|
||||
<parameters>
|
||||
<parameter>DebugText</parameter>
|
||||
<parameter>+</parameter>
|
||||
<parameter>"____________y = " + VariableString(Temp.B.alpha.y) + NewLine()</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
</actions>
|
||||
<events />
|
||||
</event>
|
||||
</events>
|
||||
</event>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Standard</type>
|
||||
<conditions>
|
||||
<condition>
|
||||
<type inverted="false" value="VariableChildExists" />
|
||||
<parameters>
|
||||
<parameter>Temp.B</parameter>
|
||||
<parameter>"beta"</parameter>
|
||||
</parameters>
|
||||
<subConditions />
|
||||
</condition>
|
||||
</conditions>
|
||||
<actions>
|
||||
<action>
|
||||
<type inverted="false" value="TextObject::String" />
|
||||
<parameters>
|
||||
<parameter>DebugText</parameter>
|
||||
<parameter>+</parameter>
|
||||
<parameter>"________beta = " + VariableString(Temp.B.beta) + NewLine()</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
</actions>
|
||||
<events />
|
||||
</event>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Standard</type>
|
||||
<conditions>
|
||||
<condition>
|
||||
<type inverted="false" value="VariableChildExists" />
|
||||
<parameters>
|
||||
<parameter>Temp.B</parameter>
|
||||
<parameter>"gamma"</parameter>
|
||||
</parameters>
|
||||
<subConditions />
|
||||
</condition>
|
||||
</conditions>
|
||||
<actions>
|
||||
<action>
|
||||
<type inverted="false" value="TextObject::String" />
|
||||
<parameters>
|
||||
<parameter>DebugText</parameter>
|
||||
<parameter>+</parameter>
|
||||
<parameter>"________gamma = " + VariableString(Temp.B.gamma)</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
</actions>
|
||||
<events />
|
||||
</event>
|
||||
</events>
|
||||
</event>
|
||||
</events>
|
||||
</event>
|
||||
</events>
|
||||
</event>
|
||||
</events>
|
||||
<layers>
|
||||
<layer name="New layer" visibility="true">
|
||||
<cameras>
|
||||
<camera defaultSize="true" defaultViewport="true" height="0.000000" viewportBottom="1.000000" viewportLeft="0.000000" viewportRight="1.000000" viewportTop="0.000000" width="0.000000" />
|
||||
</cameras>
|
||||
<effects />
|
||||
</layer>
|
||||
<layer name="" visibility="true">
|
||||
<cameras>
|
||||
<camera defaultSize="true" defaultViewport="true" height="0.000000" viewportBottom="1.000000" viewportLeft="0.000000" viewportRight="1.000000" viewportTop="0.000000" width="0.000000" />
|
||||
</cameras>
|
||||
<effects />
|
||||
</layer>
|
||||
</layers>
|
||||
<behaviorsSharedData />
|
||||
</layout>
|
||||
</layouts>
|
||||
<externalEvents />
|
||||
<externalLayouts />
|
||||
<externalSourceFiles />
|
||||
</project>
|
@@ -1,15 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<project firstLayout="">
|
||||
<gdVersion build="84" major="3" minor="6" revision="0" />
|
||||
<properties linuxExecutableFilename="" macExecutableFilename="" useExternalSourceFiles="false" winExecutableFilename="" winExecutableIconFile="">
|
||||
<gdVersion build="97" major="4" minor="0" revision="0" />
|
||||
<properties folderProject="false" linuxExecutableFilename="" macExecutableFilename="" orientation="default" packageName="" projectFile="C:\Users\Maciel\Programacion\gits\GD\Binaries\Output\Release_Windows\Examples\Particles - Explosions.gdg" useExternalSourceFiles="false" winExecutableFilename="" winExecutableIconFile="">
|
||||
<name>Explosions</name>
|
||||
<author></author>
|
||||
<windowWidth>800</windowWidth>
|
||||
<windowHeight>600</windowHeight>
|
||||
<latestCompilationDirectory></latestCompilationDirectory>
|
||||
<latestCompilationDirectory>C:\Users\Maciel\AppData\Local\Temp\GDTemporaries\JSCocosExportParticles</latestCompilationDirectory>
|
||||
<maxFPS>60</maxFPS>
|
||||
<minFPS>10</minFPS>
|
||||
<verticalSync>false</verticalSync>
|
||||
<platformSpecificAssets />
|
||||
<loadingScreen showGDevelopSplash="true" />
|
||||
<extensions>
|
||||
<extension name="BuiltinObject" />
|
||||
<extension name="BuiltinAudio" />
|
||||
@@ -34,6 +36,7 @@
|
||||
</extensions>
|
||||
<platforms>
|
||||
<platform name="GDevelop C++ platform" />
|
||||
<platform name="GDevelop JS platform" />
|
||||
</platforms>
|
||||
<currentPlatform>GDevelop C++ platform</currentPlatform>
|
||||
</properties>
|
||||
@@ -48,40 +51,40 @@
|
||||
<variables />
|
||||
<layouts>
|
||||
<layout b="0" disableInputWhenNotFocused="true" mangledName="New_32scene" name="New scene" oglFOV="90.000000" oglZFar="500.000000" oglZNear="1.000000" r="0" standardSortMethod="true" stopSoundsOnStartup="true" title="" v="0">
|
||||
<uiSettings associatedLayout="" grid="false" gridB="255" gridG="180" gridHeight="32" gridOffsetX="0" gridOffsetY="0" gridR="158" gridWidth="32" snap="true" windowMask="false" zoomFactor="1.000000" />
|
||||
<uiSettings grid="false" gridB="255" gridG="180" gridHeight="32" gridOffsetX="0" gridOffsetY="0" gridR="158" gridWidth="32" snap="true" windowMask="false" zoomFactor="1.000000" />
|
||||
<objectsGroups />
|
||||
<variables />
|
||||
<instances />
|
||||
<objects>
|
||||
<object additive="true" alphaParam="Mutable" angleParam="Random" blueParam="Mutable" destroyWhenNoParticles="true" emissionEditionSimpleMode="false" emitterAngleA="180.000000" emitterAngleB="160.000000" emitterForceMax="40.000000" emitterForceMin="5.000000" emitterXDirection="0.000000" emitterYDirection="0.000000" emitterZDirection="1.000000" flow="-1.000000" friction="2.000000" gravityEditionSimpleMode="false" greenParam="Mutable" maxParticleNb="5000" name="Explosion" particleAlpha1="204.000000" particleAlpha2="0.000000" particleAlphaRandomness1="0.000000" particleAlphaRandomness2="0.000000" particleAngle1="0.000000" particleAngle2="0.000000" particleAngleRandomness1="0.000000" particleAngleRandomness2="0.000000" particleBlue1="25.000000" particleBlue2="50.000000" particleEditionSimpleMode="false" particleGravityX="0.000000" particleGravityY="0.000000" particleGravityZ="20.000000" particleGreen1="128.000000" particleGreen2="50.000000" particleLifeTimeMax="1.500000" particleLifeTimeMin="0.700000" particleRed1="255.000000" particleRed2="50.000000" particleSize1="100.000000" particleSize2="100.000000" particleSizeRandomness1="0.000000" particleSizeRandomness2="0.000000" redParam="Mutable" rendererParam1="20.000000" rendererParam2="20.000000" rendererType="Quad" sizeParam="Random" tank="1000.000000" textureParticleName="ExplosionTexture.png" type="ParticleSystem::ParticleEmitter" zoneRadius="2.000000">
|
||||
<object additive="true" alphaParam="Mutable" angleParam="Random" blueParam="Mutable" destroyWhenNoParticles="true" emissionEditionSimpleMode="true" emitterAngleA="0.000000" emitterAngleB="360.000000" emitterForceMax="70.000000" emitterForceMin="30.000000" emitterXDirection="0.000000" emitterYDirection="0.000000" emitterZDirection="1.000000" flow="-1.000000" friction="2.000000" gravityEditionSimpleMode="false" greenParam="Mutable" maxParticleNb="100" name="Explosion" particleAlpha1="225.000000" particleAlpha2="0.000000" particleAlphaRandomness1="0.000000" particleAlphaRandomness2="0.000000" particleAngle1="0.000000" particleAngle2="0.000000" particleAngleRandomness1="0.000000" particleAngleRandomness2="0.000000" particleBlue1="25.000000" particleBlue2="50.000000" particleEditionSimpleMode="false" particleGravityX="0.000000" particleGravityY="0.000000" particleGravityZ="20.000000" particleGreen1="128.000000" particleGreen2="50.000000" particleLifeTimeMax="1.500000" particleLifeTimeMin="0.700000" particleRed1="255.000000" particleRed2="50.000000" particleSize1="100.000000" particleSize2="100.000000" particleSizeRandomness1="0.000000" particleSizeRandomness2="0.000000" redParam="Mutable" rendererParam1="20.000000" rendererParam2="20.000000" rendererType="Quad" sizeParam="Random" tank="100.000000" textureParticleName="ExplosionTexture.png" type="ParticleSystem::ParticleEmitter" zoneRadius="2.000000">
|
||||
<variables />
|
||||
<automatisms />
|
||||
<behaviors />
|
||||
</object>
|
||||
<object additive="true" alphaParam="Mutable" angleParam="Random" blueParam="Mutable" destroyWhenNoParticles="true" emissionEditionSimpleMode="false" emitterAngleA="0.000000" emitterAngleB="180.000000" emitterForceMax="130.000000" emitterForceMin="50.000000" emitterXDirection="1.000000" emitterYDirection="0.000000" emitterZDirection="1.000000" flow="-1.000000" friction="2.000000" gravityEditionSimpleMode="false" greenParam="Mutable" maxParticleNb="5000" name="Explosion2" particleAlpha1="204.000000" particleAlpha2="0.000000" particleAlphaRandomness1="0.000000" particleAlphaRandomness2="0.000000" particleAngle1="0.000000" particleAngle2="0.000000" particleAngleRandomness1="0.000000" particleAngleRandomness2="0.000000" particleBlue1="25.000000" particleBlue2="75.000000" particleEditionSimpleMode="false" particleGravityX="0.000000" particleGravityY="0.000000" particleGravityZ="30.000000" particleGreen1="76.000000" particleGreen2="180.000000" particleLifeTimeMax="1.500000" particleLifeTimeMin="0.700000" particleRed1="153.000000" particleRed2="1.000000" particleSize1="100.000000" particleSize2="100.000000" particleSizeRandomness1="0.000000" particleSizeRandomness2="0.000000" redParam="Enabled" rendererParam1="0.050000" rendererParam2="1.000000" rendererType="Line" sizeParam="Random" tank="350.000000" textureParticleName="" type="ParticleSystem::ParticleEmitter" zoneRadius="2.000000">
|
||||
<object additive="true" alphaParam="Mutable" angleParam="Random" blueParam="Mutable" destroyWhenNoParticles="true" emissionEditionSimpleMode="true" emitterAngleA="0.000000" emitterAngleB="360.000000" emitterForceMax="130.000000" emitterForceMin="130.000000" emitterXDirection="1.000000" emitterYDirection="0.000000" emitterZDirection="1.000000" flow="-1.000000" friction="2.000000" gravityEditionSimpleMode="false" greenParam="Mutable" maxParticleNb="151" name="Explosion2" particleAlpha1="204.000000" particleAlpha2="0.000000" particleAlphaRandomness1="0.000000" particleAlphaRandomness2="0.000000" particleAngle1="0.000000" particleAngle2="0.000000" particleAngleRandomness1="0.000000" particleAngleRandomness2="0.000000" particleBlue1="25.000000" particleBlue2="75.000000" particleEditionSimpleMode="false" particleGravityX="0.000000" particleGravityY="0.000000" particleGravityZ="30.000000" particleGreen1="76.000000" particleGreen2="180.000000" particleLifeTimeMax="1.000000" particleLifeTimeMin="0.700000" particleRed1="153.000000" particleRed2="1.000000" particleSize1="100.000000" particleSize2="100.000000" particleSizeRandomness1="0.000000" particleSizeRandomness2="0.000000" redParam="Enabled" rendererParam1="3.000000" rendererParam2="6.000000" rendererType="Line" sizeParam="Random" tank="40.000000" textureParticleName="" type="ParticleSystem::ParticleEmitter" zoneRadius="2.000000">
|
||||
<variables />
|
||||
<automatisms />
|
||||
<behaviors />
|
||||
</object>
|
||||
<object additive="true" alphaParam="Mutable" angleParam="Random" blueParam="Enabled" destroyWhenNoParticles="true" emissionEditionSimpleMode="false" emitterAngleA="45.000000" emitterAngleB="180.000000" emitterForceMax="10.000000" emitterForceMin="0.000000" emitterXDirection="0.000000" emitterYDirection="0.000000" emitterZDirection="1.000000" flow="400.000000" friction="2.000000" gravityEditionSimpleMode="true" greenParam="Enabled" maxParticleNb="5000" name="ExplosionSmoke" particleAlpha1="153.000000" particleAlpha2="0.000000" particleAlphaRandomness1="0.000000" particleAlphaRandomness2="0.000000" particleAngle1="0.000000" particleAngle2="0.000000" particleAngleRandomness1="0.000000" particleAngleRandomness2="0.000000" particleBlue1="25.000000" particleBlue2="0.000000" particleEditionSimpleMode="false" particleGravityX="0.000000" particleGravityY="0.000000" particleGravityZ="30.000000" particleGreen1="25.000000" particleGreen2="0.800000" particleLifeTimeMax="1.200000" particleLifeTimeMin="0.700000" particleRed1="25.000000" particleRed2="0.100000" particleSize1="100.000000" particleSize2="100.000000" particleSizeRandomness1="0.000000" particleSizeRandomness2="0.000000" redParam="Enabled" rendererParam1="20.000000" rendererParam2="20.000000" rendererType="Quad" sizeParam="Random" tank="500.000000" textureParticleName="ExplosionTexture.png" type="ParticleSystem::ParticleEmitter" zoneRadius="20.000000">
|
||||
<object additive="true" alphaParam="Mutable" angleParam="Random" blueParam="Enabled" destroyWhenNoParticles="true" emissionEditionSimpleMode="false" emitterAngleA="45.000000" emitterAngleB="180.000000" emitterForceMax="10.000000" emitterForceMin="0.000000" emitterXDirection="0.000000" emitterYDirection="0.000000" emitterZDirection="1.000000" flow="400.000000" friction="2.000000" gravityEditionSimpleMode="true" greenParam="Enabled" maxParticleNb="50" name="ExplosionSmoke" particleAlpha1="153.000000" particleAlpha2="0.000000" particleAlphaRandomness1="0.000000" particleAlphaRandomness2="0.000000" particleAngle1="0.000000" particleAngle2="0.000000" particleAngleRandomness1="0.000000" particleAngleRandomness2="0.000000" particleBlue1="25.000000" particleBlue2="0.000000" particleEditionSimpleMode="false" particleGravityX="0.000000" particleGravityY="0.000000" particleGravityZ="30.000000" particleGreen1="25.000000" particleGreen2="0.800000" particleLifeTimeMax="2.000000" particleLifeTimeMin="0.700000" particleRed1="25.000000" particleRed2="0.100000" particleSize1="100.000000" particleSize2="100.000000" particleSizeRandomness1="0.000000" particleSizeRandomness2="0.000000" redParam="Enabled" rendererParam1="20.000000" rendererParam2="20.000000" rendererType="Quad" sizeParam="Random" tank="50.000000" textureParticleName="ExplosionTexture.png" type="ParticleSystem::ParticleEmitter" zoneRadius="20.000000">
|
||||
<variables />
|
||||
<automatisms />
|
||||
<behaviors />
|
||||
</object>
|
||||
</objects>
|
||||
<events>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Standard</type>
|
||||
<conditions>
|
||||
<condition>
|
||||
<instruction>
|
||||
<type inverted="false" value="Timer" />
|
||||
<parameters>
|
||||
<parameter></parameter>
|
||||
<parameter>Random(0.3)+0.2</parameter>
|
||||
<parameter>"Creating"</parameter>
|
||||
</parameters>
|
||||
<subConditions />
|
||||
</condition>
|
||||
<subInstructions />
|
||||
</instruction>
|
||||
</conditions>
|
||||
<actions>
|
||||
<action>
|
||||
<instruction>
|
||||
<type inverted="false" value="Create" />
|
||||
<parameters>
|
||||
<parameter></parameter>
|
||||
@@ -90,9 +93,9 @@
|
||||
<parameter>Random(600)</parameter>
|
||||
<parameter></parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
<action>
|
||||
<subInstructions />
|
||||
</instruction>
|
||||
<instruction>
|
||||
<type inverted="false" value="Create" />
|
||||
<parameters>
|
||||
<parameter></parameter>
|
||||
@@ -101,9 +104,9 @@
|
||||
<parameter>Explosion.Y()</parameter>
|
||||
<parameter></parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
<action>
|
||||
<subInstructions />
|
||||
</instruction>
|
||||
<instruction>
|
||||
<type inverted="false" value="Create" />
|
||||
<parameters>
|
||||
<parameter></parameter>
|
||||
@@ -112,16 +115,16 @@
|
||||
<parameter>Explosion.Y()</parameter>
|
||||
<parameter></parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
<action>
|
||||
<subInstructions />
|
||||
</instruction>
|
||||
<instruction>
|
||||
<type inverted="false" value="ResetTimer" />
|
||||
<parameters>
|
||||
<parameter></parameter>
|
||||
<parameter>"Creating"</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
<subInstructions />
|
||||
</instruction>
|
||||
</actions>
|
||||
<events />
|
||||
</event>
|
||||
@@ -131,9 +134,10 @@
|
||||
<cameras>
|
||||
<camera defaultSize="true" defaultViewport="true" height="0.000000" viewportBottom="1.000000" viewportLeft="0.000000" viewportRight="1.000000" viewportTop="0.000000" width="0.000000" />
|
||||
</cameras>
|
||||
<effects />
|
||||
</layer>
|
||||
</layers>
|
||||
<automatismsSharedData />
|
||||
<behaviorsSharedData />
|
||||
</layout>
|
||||
</layouts>
|
||||
<externalEvents />
|
||||
|
@@ -1,15 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<project firstLayout="">
|
||||
<gdVersion build="84" major="3" minor="6" revision="0" />
|
||||
<properties linuxExecutableFilename="" macExecutableFilename="" useExternalSourceFiles="false" winExecutableFilename="" winExecutableIconFile="">
|
||||
<gdVersion build="97" major="4" minor="0" revision="0" />
|
||||
<properties folderProject="false" linuxExecutableFilename="" macExecutableFilename="" orientation="default" packageName="" projectFile="C:\Users\Maciel\Programacion\gits\GD\Binaries\Output\Release_Windows\Examples\Particles - Various effects.gdg" useExternalSourceFiles="false" winExecutableFilename="" winExecutableIconFile="">
|
||||
<name>Project</name>
|
||||
<author></author>
|
||||
<windowWidth>800</windowWidth>
|
||||
<windowHeight>600</windowHeight>
|
||||
<latestCompilationDirectory></latestCompilationDirectory>
|
||||
<latestCompilationDirectory>C:\Users\Maciel\AppData\Local\Temp\GDTemporaries\JSCocosExportParticles</latestCompilationDirectory>
|
||||
<maxFPS>60</maxFPS>
|
||||
<minFPS>10</minFPS>
|
||||
<verticalSync>false</verticalSync>
|
||||
<platformSpecificAssets />
|
||||
<loadingScreen showGDevelopSplash="true" />
|
||||
<extensions>
|
||||
<extension name="BuiltinObject" />
|
||||
<extension name="BuiltinAudio" />
|
||||
@@ -34,6 +36,7 @@
|
||||
</extensions>
|
||||
<platforms>
|
||||
<platform name="GDevelop C++ platform" />
|
||||
<platform name="GDevelop JS platform" />
|
||||
</platforms>
|
||||
<currentPlatform>GDevelop C++ platform</currentPlatform>
|
||||
</properties>
|
||||
@@ -47,8 +50,8 @@
|
||||
<objectsGroups />
|
||||
<variables />
|
||||
<layouts>
|
||||
<layout b="0" disableInputWhenNotFocused="true" mangledName="Nouvelle_32sc_232ne" name="Nouvelle scène" oglFOV="90.000000" oglZFar="500.000000" oglZNear="1.000000" r="0" standardSortMethod="true" stopSoundsOnStartup="true" title="" v="0">
|
||||
<uiSettings associatedLayout="" grid="false" gridB="255" gridG="180" gridHeight="32" gridOffsetX="0" gridOffsetY="0" gridR="158" gridWidth="32" snap="true" windowMask="false" zoomFactor="1.000000" />
|
||||
<layout b="0" disableInputWhenNotFocused="true" mangledName="Scene" name="Scene" oglFOV="90.000000" oglZFar="500.000000" oglZNear="1.000000" r="0" standardSortMethod="true" stopSoundsOnStartup="true" title="" v="0">
|
||||
<uiSettings grid="false" gridB="255" gridG="180" gridHeight="32" gridOffsetX="0" gridOffsetY="0" gridR="158" gridWidth="32" snap="true" windowMask="false" zoomFactor="1.000000" />
|
||||
<objectsGroups />
|
||||
<variables />
|
||||
<instances>
|
||||
@@ -99,47 +102,47 @@
|
||||
</instance>
|
||||
</instances>
|
||||
<objects>
|
||||
<object additive="true" alphaParam="Mutable" angleParam="Mutable" blueParam="Random" destroyWhenNoParticles="false" emissionEditionSimpleMode="true" emitterAngleA="0.000000" emitterAngleB="180.000000" emitterForceMax="10.000000" emitterForceMin="0.000000" emitterXDirection="0.000000" emitterYDirection="1.000000" emitterZDirection="0.000000" flow="300.000000" friction="2.000000" gravityEditionSimpleMode="true" greenParam="Random" maxParticleNb="5000" name="Fire" particleAlpha1="204.000000" particleAlpha2="0.000000" particleAlphaRandomness1="0.000000" particleAlphaRandomness2="0.000000" particleAngle1="0.000000" particleAngle2="0.000000" particleAngleRandomness1="0.000000" particleAngleRandomness2="30.000000" particleBlue1="50.000000" particleBlue2="0.000000" particleEditionSimpleMode="false" particleGravityX="0.000000" particleGravityY="-100.000000" particleGravityZ="0.000000" particleGreen1="50.000000" particleGreen2="204.000000" particleLifeTimeMax="2.500000" particleLifeTimeMin="0.500000" particleRed1="240.000000" particleRed2="1.000000" particleSize1="100.000000" particleSize2="0.000000" particleSizeRandomness1="0.000000" particleSizeRandomness2="0.000000" redParam="Enabled" rendererParam1="10.000000" rendererParam2="20.000000" rendererType="Quad" sizeParam="Mutable" tank="-1.000000" textureParticleName="Fire" type="ParticleSystem::ParticleEmitter" zoneRadius="5.000000">
|
||||
<object additive="true" alphaParam="Mutable" angleParam="Mutable" blueParam="Mutable" destroyWhenNoParticles="false" emissionEditionSimpleMode="true" emitterAngleA="0.000000" emitterAngleB="180.000000" emitterForceMax="10.000000" emitterForceMin="0.000000" emitterXDirection="0.000000" emitterYDirection="1.000000" emitterZDirection="0.000000" flow="30.000000" friction="2.000000" gravityEditionSimpleMode="true" greenParam="Mutable" maxParticleNb="200" name="Fire" particleAlpha1="204.000000" particleAlpha2="0.000000" particleAlphaRandomness1="0.000000" particleAlphaRandomness2="0.000000" particleAngle1="0.000000" particleAngle2="0.000000" particleAngleRandomness1="0.000000" particleAngleRandomness2="30.000000" particleBlue1="50.000000" particleBlue2="0.000000" particleEditionSimpleMode="true" particleGravityX="0.000000" particleGravityY="-100.000000" particleGravityZ="0.000000" particleGreen1="50.000000" particleGreen2="191.000000" particleLifeTimeMax="2.500000" particleLifeTimeMin="0.500000" particleRed1="240.000000" particleRed2="255.000000" particleSize1="100.000000" particleSize2="0.000000" particleSizeRandomness1="0.000000" particleSizeRandomness2="0.000000" redParam="Mutable" rendererParam1="10.000000" rendererParam2="20.000000" rendererType="Quad" sizeParam="Mutable" tank="-1.000000" textureParticleName="Fire" type="ParticleSystem::ParticleEmitter" zoneRadius="5.000000">
|
||||
<variables />
|
||||
<automatisms />
|
||||
<behaviors />
|
||||
</object>
|
||||
<object additive="false" alphaParam="Mutable" angleParam="Random" blueParam="Enabled" destroyWhenNoParticles="false" emissionEditionSimpleMode="true" emitterAngleA="0.000000" emitterAngleB="180.000000" emitterForceMax="0.000000" emitterForceMin="0.000000" emitterXDirection="0.000000" emitterYDirection="1.000000" emitterZDirection="0.000000" flow="200.000000" friction="2.000000" gravityEditionSimpleMode="true" greenParam="Enabled" maxParticleNb="5000" name="Smoke" particleAlpha1="160.000000" particleAlpha2="0.000000" particleAlphaRandomness1="0.000000" particleAlphaRandomness2="0.000000" particleAngle1="0.000000" particleAngle2="360.000000" particleAngleRandomness1="0.000000" particleAngleRandomness2="0.000000" particleBlue1="50.000000" particleBlue2="0.000000" particleEditionSimpleMode="false" particleGravityX="0.000000" particleGravityY="-100.000000" particleGravityZ="0.000000" particleGreen1="50.000000" particleGreen2="0.800000" particleLifeTimeMax="2.500000" particleLifeTimeMin="0.500000" particleRed1="50.000000" particleRed2="1.000000" particleSize1="20.000000" particleSize2="100.000000" particleSizeRandomness1="0.000000" particleSizeRandomness2="0.000000" redParam="Enabled" rendererParam1="30.000000" rendererParam2="30.000000" rendererType="Quad" sizeParam="Mutable" tank="-1.000000" textureParticleName="Fire" type="ParticleSystem::ParticleEmitter" zoneRadius="7.000000">
|
||||
<object additive="false" alphaParam="Mutable" angleParam="Random" blueParam="Mutable" destroyWhenNoParticles="false" emissionEditionSimpleMode="true" emitterAngleA="0.000000" emitterAngleB="360.000000" emitterForceMax="0.000000" emitterForceMin="0.000000" emitterXDirection="0.000000" emitterYDirection="1.000000" emitterZDirection="0.000000" flow="150.000000" friction="2.000000" gravityEditionSimpleMode="true" greenParam="Mutable" maxParticleNb="150" name="Smoke" particleAlpha1="160.000000" particleAlpha2="0.000000" particleAlphaRandomness1="0.000000" particleAlphaRandomness2="0.000000" particleAngle1="0.000000" particleAngle2="360.000000" particleAngleRandomness1="0.000000" particleAngleRandomness2="0.000000" particleBlue1="255.000000" particleBlue2="149.000000" particleEditionSimpleMode="true" particleGravityX="0.000000" particleGravityY="-100.000000" particleGravityZ="0.000000" particleGreen1="250.000000" particleGreen2="144.000000" particleLifeTimeMax="2.500000" particleLifeTimeMin="0.500000" particleRed1="253.000000" particleRed2="135.000000" particleSize1="20.000000" particleSize2="100.000000" particleSizeRandomness1="0.000000" particleSizeRandomness2="0.000000" redParam="Mutable" rendererParam1="30.000000" rendererParam2="30.000000" rendererType="Quad" sizeParam="Mutable" tank="-1.000000" textureParticleName="Fire" type="ParticleSystem::ParticleEmitter" zoneRadius="15.000000">
|
||||
<variables />
|
||||
<automatisms />
|
||||
<behaviors />
|
||||
</object>
|
||||
<object additive="true" alphaParam="Mutable" angleParam="Random" blueParam="Random" destroyWhenNoParticles="false" emissionEditionSimpleMode="true" emitterAngleA="0.000000" emitterAngleB="180.000000" emitterForceMax="65.000000" emitterForceMin="25.000000" emitterXDirection="0.000000" emitterYDirection="1.000000" emitterZDirection="0.000000" flow="200.000000" friction="2.000000" gravityEditionSimpleMode="true" greenParam="Random" maxParticleNb="5000" name="Particles" particleAlpha1="204.000000" particleAlpha2="0.000000" particleAlphaRandomness1="0.000000" particleAlphaRandomness2="0.000000" particleAngle1="0.000000" particleAngle2="0.000000" particleAngleRandomness1="0.000000" particleAngleRandomness2="0.000000" particleBlue1="125.000000" particleBlue2="204.000000" particleEditionSimpleMode="false" particleGravityX="0.000000" particleGravityY="0.000000" particleGravityZ="250.000000" particleGreen1="125.000000" particleGreen2="204.000000" particleLifeTimeMax="2.500000" particleLifeTimeMin="0.500000" particleRed1="204.000000" particleRed2="255.000000" particleSize1="0.000000" particleSize2="0.000000" particleSizeRandomness1="0.000000" particleSizeRandomness2="0.000000" redParam="Random" rendererParam1="8.000000" rendererParam2="1.000000" rendererType="Point" sizeParam="Random" tank="-1.000000" textureParticleName="" type="ParticleSystem::ParticleEmitter" zoneRadius="2.000000">
|
||||
<object additive="true" alphaParam="Mutable" angleParam="Random" blueParam="Random" destroyWhenNoParticles="false" emissionEditionSimpleMode="true" emitterAngleA="0.000000" emitterAngleB="180.000000" emitterForceMax="65.000000" emitterForceMin="25.000000" emitterXDirection="0.000000" emitterYDirection="1.000000" emitterZDirection="0.000000" flow="200.000000" friction="2.000000" gravityEditionSimpleMode="true" greenParam="Random" maxParticleNb="5000" name="Particles" particleAlpha1="204.000000" particleAlpha2="0.000000" particleAlphaRandomness1="0.000000" particleAlphaRandomness2="0.000000" particleAngle1="0.000000" particleAngle2="0.000000" particleAngleRandomness1="0.000000" particleAngleRandomness2="0.000000" particleBlue1="125.000000" particleBlue2="204.000000" particleEditionSimpleMode="false" particleGravityX="0.000000" particleGravityY="0.000000" particleGravityZ="250.000000" particleGreen1="125.000000" particleGreen2="204.000000" particleLifeTimeMax="2.500000" particleLifeTimeMin="0.500000" particleRed1="204.000000" particleRed2="255.000000" particleSize1="100.000000" particleSize2="100.000000" particleSizeRandomness1="0.000000" particleSizeRandomness2="0.000000" redParam="Random" rendererParam1="8.000000" rendererParam2="1.000000" rendererType="Point" sizeParam="Random" tank="-1.000000" textureParticleName="" type="ParticleSystem::ParticleEmitter" zoneRadius="2.000000">
|
||||
<variables />
|
||||
<automatisms />
|
||||
<behaviors />
|
||||
</object>
|
||||
<object additive="false" alphaParam="Mutable" angleParam="Random" blueParam="Random" destroyWhenNoParticles="false" emissionEditionSimpleMode="true" emitterAngleA="0.000000" emitterAngleB="180.000000" emitterForceMax="0.000000" emitterForceMin="0.000000" emitterXDirection="0.000000" emitterYDirection="1.000000" emitterZDirection="0.000000" flow="100.000000" friction="2.000000" gravityEditionSimpleMode="true" greenParam="Random" maxParticleNb="5000" name="Beam" particleAlpha1="250.000000" particleAlpha2="0.000000" particleAlphaRandomness1="0.000000" particleAlphaRandomness2="0.000000" particleAngle1="0.000000" particleAngle2="0.000000" particleAngleRandomness1="0.000000" particleAngleRandomness2="0.000000" particleBlue1="204.000000" particleBlue2="255.000000" particleEditionSimpleMode="false" particleGravityX="0.000000" particleGravityY="0.000000" particleGravityZ="500.000000" particleGreen1="127.000000" particleGreen2="230.000000" particleLifeTimeMax="2.000000" particleLifeTimeMin="0.500000" particleRed1="153.000000" particleRed2="180.000000" particleSize1="0.000000" particleSize2="0.000000" particleSizeRandomness1="0.000000" particleSizeRandomness2="0.000000" redParam="Random" rendererParam1="3.000000" rendererParam2="1.000000" rendererType="Line" sizeParam="Random" tank="-1.000000" textureParticleName="" type="ParticleSystem::ParticleEmitter" zoneRadius="3.000000">
|
||||
<object additive="false" alphaParam="Mutable" angleParam="Random" blueParam="Random" destroyWhenNoParticles="false" emissionEditionSimpleMode="false" emitterAngleA="-55.000000" emitterAngleB="-35.000000" emitterForceMax="5.000000" emitterForceMin="0.000000" emitterXDirection="0.000000" emitterYDirection="1.000000" emitterZDirection="0.000000" flow="100.000000" friction="2.000000" gravityEditionSimpleMode="true" greenParam="Random" maxParticleNb="151" name="Beam" particleAlpha1="250.000000" particleAlpha2="0.000000" particleAlphaRandomness1="0.000000" particleAlphaRandomness2="0.000000" particleAngle1="0.000000" particleAngle2="0.000000" particleAngleRandomness1="0.000000" particleAngleRandomness2="0.000000" particleBlue1="204.000000" particleBlue2="255.000000" particleEditionSimpleMode="false" particleGravityX="100.000000" particleGravityY="0.000000" particleGravityZ="500.000000" particleGreen1="127.000000" particleGreen2="230.000000" particleLifeTimeMax="2.000000" particleLifeTimeMin="0.500000" particleRed1="153.000000" particleRed2="180.000000" particleSize1="100.000000" particleSize2="100.000000" particleSizeRandomness1="0.000000" particleSizeRandomness2="0.000000" redParam="Random" rendererParam1="100.000000" rendererParam2="3.000000" rendererType="Line" sizeParam="Random" tank="-1.000000" textureParticleName="" type="ParticleSystem::ParticleEmitter" zoneRadius="20.000000">
|
||||
<variables />
|
||||
<automatisms />
|
||||
<behaviors />
|
||||
</object>
|
||||
<object additive="true" alphaParam="Mutable" angleParam="Random" blueParam="Random" destroyWhenNoParticles="false" emissionEditionSimpleMode="true" emitterAngleA="0.000000" emitterAngleB="0.000000" emitterForceMax="65.000000" emitterForceMin="25.000000" emitterXDirection="0.000000" emitterYDirection="0.000000" emitterZDirection="0.000000" flow="300.000000" friction="2.000000" gravityEditionSimpleMode="true" greenParam="Random" maxParticleNb="5000" name="Beam2" particleAlpha1="125.000000" particleAlpha2="0.000000" particleAlphaRandomness1="0.000000" particleAlphaRandomness2="0.000000" particleAngle1="0.000000" particleAngle2="0.000000" particleAngleRandomness1="0.000000" particleAngleRandomness2="0.000000" particleBlue1="255.000000" particleBlue2="204.000000" particleEditionSimpleMode="false" particleGravityX="-500.000000" particleGravityY="0.000000" particleGravityZ="0.000000" particleGreen1="204.000000" particleGreen2="125.000000" particleLifeTimeMax="5.000000" particleLifeTimeMin="0.500000" particleRed1="127.000000" particleRed2="0.500000" particleSize1="0.000000" particleSize2="0.000000" particleSizeRandomness1="0.000000" particleSizeRandomness2="0.000000" redParam="Enabled" rendererParam1="0.500000" rendererParam2="2.000000" rendererType="Line" sizeParam="Random" tank="-1.000000" textureParticleName="" type="ParticleSystem::ParticleEmitter" zoneRadius="3.000000">
|
||||
<object additive="true" alphaParam="Mutable" angleParam="Random" blueParam="Random" destroyWhenNoParticles="false" emissionEditionSimpleMode="true" emitterAngleA="0.000000" emitterAngleB="0.000000" emitterForceMax="65.000000" emitterForceMin="25.000000" emitterXDirection="0.000000" emitterYDirection="0.000000" emitterZDirection="0.000000" flow="50.000000" friction="2.000000" gravityEditionSimpleMode="true" greenParam="Random" maxParticleNb="5000" name="Beam2" particleAlpha1="125.000000" particleAlpha2="0.000000" particleAlphaRandomness1="0.000000" particleAlphaRandomness2="0.000000" particleAngle1="0.000000" particleAngle2="0.000000" particleAngleRandomness1="0.000000" particleAngleRandomness2="0.000000" particleBlue1="255.000000" particleBlue2="204.000000" particleEditionSimpleMode="false" particleGravityX="-500.000000" particleGravityY="0.000000" particleGravityZ="0.000000" particleGreen1="204.000000" particleGreen2="125.000000" particleLifeTimeMax="5.000000" particleLifeTimeMin="0.500000" particleRed1="127.000000" particleRed2="0.500000" particleSize1="100.000000" particleSize2="100.000000" particleSizeRandomness1="0.000000" particleSizeRandomness2="0.000000" redParam="Enabled" rendererParam1="10.000000" rendererParam2="3.000000" rendererType="Line" sizeParam="Random" tank="-1.000000" textureParticleName="" type="ParticleSystem::ParticleEmitter" zoneRadius="10.000000">
|
||||
<variables />
|
||||
<automatisms />
|
||||
<behaviors />
|
||||
</object>
|
||||
<object additive="true" alphaParam="Mutable" angleParam="Random" blueParam="Random" destroyWhenNoParticles="true" emissionEditionSimpleMode="true" emitterAngleA="0.000000" emitterAngleB="180.000000" emitterForceMax="100.000000" emitterForceMin="25.000000" emitterXDirection="0.000000" emitterYDirection="0.000000" emitterZDirection="1.000000" flow="400.000000" friction="2.000000" gravityEditionSimpleMode="true" greenParam="Enabled" maxParticleNb="5000" name="Pyro" particleAlpha1="204.000000" particleAlpha2="0.000000" particleAlphaRandomness1="0.000000" particleAlphaRandomness2="0.000000" particleAngle1="0.000000" particleAngle2="0.000000" particleAngleRandomness1="0.000000" particleAngleRandomness2="0.000000" particleBlue1="204.000000" particleBlue2="255.000000" particleEditionSimpleMode="false" particleGravityX="0.000000" particleGravityY="-100.000000" particleGravityZ="0.000000" particleGreen1="127.000000" particleGreen2="1.000000" particleLifeTimeMax="1.000000" particleLifeTimeMin="0.500000" particleRed1="127.000000" particleRed2="230.000000" particleSize1="100.000000" particleSize2="1.000000" particleSizeRandomness1="0.000000" particleSizeRandomness2="0.000000" redParam="Random" rendererParam1="0.060000" rendererParam2="3.000000" rendererType="Line" sizeParam="Mutable" tank="600.000000" textureParticleName="" type="ParticleSystem::ParticleEmitter" zoneRadius="7.000000">
|
||||
<object additive="true" alphaParam="Mutable" angleParam="Random" blueParam="Random" destroyWhenNoParticles="true" emissionEditionSimpleMode="true" emitterAngleA="0.000000" emitterAngleB="360.000000" emitterForceMax="100.000000" emitterForceMin="25.000000" emitterXDirection="0.000000" emitterYDirection="0.000000" emitterZDirection="1.000000" flow="70.000000" friction="2.000000" gravityEditionSimpleMode="true" greenParam="Enabled" maxParticleNb="151" name="Pyro" particleAlpha1="204.000000" particleAlpha2="0.000000" particleAlphaRandomness1="0.000000" particleAlphaRandomness2="0.000000" particleAngle1="0.000000" particleAngle2="0.000000" particleAngleRandomness1="0.000000" particleAngleRandomness2="0.000000" particleBlue1="204.000000" particleBlue2="255.000000" particleEditionSimpleMode="false" particleGravityX="-0.000080" particleGravityY="-200.000000" particleGravityZ="0.000000" particleGreen1="127.000000" particleGreen2="1.000000" particleLifeTimeMax="1.000000" particleLifeTimeMin="0.500000" particleRed1="127.000000" particleRed2="230.000000" particleSize1="100.000000" particleSize2="1.000000" particleSizeRandomness1="0.000000" particleSizeRandomness2="0.000000" redParam="Random" rendererParam1="8.000000" rendererParam2="8.000000" rendererType="Line" sizeParam="Mutable" tank="80.000000" textureParticleName="" type="ParticleSystem::ParticleEmitter" zoneRadius="25.000000">
|
||||
<variables />
|
||||
<automatisms />
|
||||
<behaviors />
|
||||
</object>
|
||||
</objects>
|
||||
<events>
|
||||
<event disabled="false" folded="false">
|
||||
<type>BuiltinCommonInstructions::Standard</type>
|
||||
<conditions>
|
||||
<condition>
|
||||
<instruction>
|
||||
<type inverted="false" value="Timer" />
|
||||
<parameters>
|
||||
<parameter></parameter>
|
||||
<parameter>Random(0.3)+1</parameter>
|
||||
<parameter>1</parameter>
|
||||
<parameter>"Creating"</parameter>
|
||||
</parameters>
|
||||
<subConditions />
|
||||
</condition>
|
||||
<subInstructions />
|
||||
</instruction>
|
||||
</conditions>
|
||||
<actions>
|
||||
<action>
|
||||
<instruction>
|
||||
<type inverted="false" value="Create" />
|
||||
<parameters>
|
||||
<parameter></parameter>
|
||||
@@ -148,16 +151,16 @@
|
||||
<parameter>100+Random(300)</parameter>
|
||||
<parameter></parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
<action>
|
||||
<subInstructions />
|
||||
</instruction>
|
||||
<instruction>
|
||||
<type inverted="false" value="ResetTimer" />
|
||||
<parameters>
|
||||
<parameter></parameter>
|
||||
<parameter>"Creating"</parameter>
|
||||
</parameters>
|
||||
<subActions />
|
||||
</action>
|
||||
<subInstructions />
|
||||
</instruction>
|
||||
</actions>
|
||||
<events />
|
||||
</event>
|
||||
@@ -167,9 +170,10 @@
|
||||
<cameras>
|
||||
<camera defaultSize="true" defaultViewport="true" height="0.000000" viewportBottom="1.000000" viewportLeft="0.000000" viewportRight="1.000000" viewportTop="0.000000" width="0.000000" />
|
||||
</cameras>
|
||||
<effects />
|
||||
</layer>
|
||||
</layers>
|
||||
<automatismsSharedData />
|
||||
<behaviorsSharedData />
|
||||
</layout>
|
||||
</layouts>
|
||||
<externalEvents />
|
||||
|
1864
Binaries/Output/Release_Windows/Examples/SkeletonTest.gdg
Normal file
Before Width: | Height: | Size: 130 B After Width: | Height: | Size: 130 B |
1
Binaries/Output/Release_Windows/Examples/skeleton.json
Normal file
@@ -0,0 +1 @@
|
||||
{"SubTexture":[{"frameY":0,"y":234,"frameWidth":112,"frameX":0,"frameHeight":210,"width":111,"height":209,"name":"parts/tailTip","x":456},{"width":112,"y":234,"height":86,"name":"parts/armUpperL","x":340},{"width":48,"y":859,"height":80,"name":"parts/armL","x":373},{"width":96,"y":922,"height":78,"name":"parts/handL","x":1},{"frameY":0,"y":677,"frameWidth":204,"frameX":0,"frameHeight":180,"width":203,"height":180,"name":"parts/legL","x":238},{"frameY":0,"y":397,"frameWidth":236,"frameX":0,"frameHeight":348,"width":235,"height":347,"name":"parts/body","x":1},{"width":216,"y":397,"height":278,"name":"parts/tail","x":238},{"width":208,"y":746,"height":174,"name":"parts/clothes1","x":1},{"width":124,"y":677,"height":282,"name":"parts/hair","x":443},{"frameY":0,"y":1,"frameWidth":338,"frameX":0,"frameHeight":394,"width":337,"height":394,"name":"parts/head","x":1},{"width":28,"y":961,"height":46,"name":"parts/eyeL","x":459},{"frameY":0,"y":961,"frameWidth":38,"frameX":0,"frameHeight":58,"width":37,"height":58,"name":"parts/eyeR","x":420},{"frameY":0,"y":1,"frameWidth":180,"frameX":0,"frameHeight":232,"width":180,"height":231,"name":"parts/legR","x":340},{"width":160,"y":859,"height":94,"name":"parts/armUpperR","x":211},{"frameY":0,"y":941,"frameWidth":46,"frameX":0,"frameHeight":78,"width":45,"height":77,"name":"parts/armR","x":373},{"width":98,"y":322,"height":58,"name":"parts/handR","x":340},{"frameY":0,"y":955,"frameWidth":120,"frameX":0,"frameHeight":36,"width":119,"height":36,"name":"parts/beardL","x":237},{"width":136,"y":955,"height":36,"name":"parts/beardR","x":99}],"width":1024,"height":1024,"name":"dragon","imagePath":"dragon_tex.png"}
|
BIN
Binaries/Output/Release_Windows/Examples/skeleton_texture.png
Normal file
After Width: | Height: | Size: 156 KiB |
@@ -26,4 +26,16 @@
|
||||
/>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<application>
|
||||
<!-- Windows 8.1 -->
|
||||
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
|
||||
<!-- Windows 8 -->
|
||||
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
|
||||
<!-- Windows 7 -->
|
||||
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
|
||||
<!-- Windows Vista -->
|
||||
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
|
||||
</application>
|
||||
</compatibility>
|
||||
</assembly>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 354 B |
After Width: | Height: | Size: 486 B |
After Width: | Height: | Size: 464 B |
After Width: | Height: | Size: 638 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 550 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 469 B |
After Width: | Height: | Size: 600 B |
27035
Binaries/Output/Release_Windows/locale/de_DE/GD.po
Executable file → Normal file
25629
Binaries/Output/Release_Windows/locale/es_ES/GD.po
Executable file → Normal file
25449
Binaries/Output/Release_Windows/locale/fi_FI/GD.po
Executable file → Normal file
38506
Binaries/Output/Release_Windows/locale/fr_FR/GD.po
Executable file → Normal file
29819
Binaries/Output/Release_Windows/locale/it_IT/GD.po
Executable file → Normal file
BIN
Binaries/Output/Release_Windows/locale/libexpat.dll
Normal file
BIN
Binaries/Output/Release_Windows/locale/libgettextlib.dll
Normal file
BIN
Binaries/Output/Release_Windows/locale/libgettextpo.dll
Normal file
BIN
Binaries/Output/Release_Windows/locale/libgettextsrc.dll
Normal file
BIN
Binaries/Output/Release_Windows/locale/libiconv2.dll
Normal file
BIN
Binaries/Output/Release_Windows/locale/libintl-8.dll
Normal file
BIN
Binaries/Output/Release_Windows/locale/libintl3.dll
Normal file
25478
Binaries/Output/Release_Windows/locale/nl_NL/GD.po
Executable file → Normal file
32644
Binaries/Output/Release_Windows/locale/pl_PL/GD.po
Executable file → Normal file
25327
Binaries/Output/Release_Windows/locale/pt_PT/GD.po
Executable file → Normal file
25562
Binaries/Output/Release_Windows/locale/ru_RU/GD.po
Executable file → Normal file
39378
Binaries/Output/Release_Windows/locale/zh_CN/GD.po
Executable file → Normal file
BIN
Binaries/Output/Release_Windows/res/GD-logo-big.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
Binaries/Output/Release_Windows/res/centerPoint.png
Normal file
After Width: | Height: | Size: 1005 B |
After Width: | Height: | Size: 324 B |
After Width: | Height: | Size: 382 B |
BIN
Binaries/Output/Release_Windows/res/conditions/raycast.png
Normal file
After Width: | Height: | Size: 328 B |
BIN
Binaries/Output/Release_Windows/res/conditions/raycast24.png
Normal file
After Width: | Height: | Size: 378 B |
BIN
Binaries/Output/Release_Windows/res/originPoint.png
Normal file
After Width: | Height: | Size: 1006 B |
BIN
Binaries/Output/Release_Windows/res/ribbon_default/export32.png
Normal file
After Width: | Height: | Size: 293 B |
After Width: | Height: | Size: 413 B |
After Width: | Height: | Size: 568 B |
After Width: | Height: | Size: 1.6 KiB |
BIN
Binaries/Output/Release_Windows/res/ribbon_default/networkpreview64.png
Executable file
After Width: | Height: | Size: 3.6 KiB |
BIN
Binaries/Output/Release_Windows/res/ribbon_default/objects64.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 2.1 KiB |
@@ -51,9 +51,9 @@ cd $CUR_DIR/opensuse-build-service/gdevelop
|
||||
tar zxf gdevelop_$GD_VERSION.orig.tar.gz
|
||||
echo "[OK]"
|
||||
|
||||
#We need to include ExtLibs/SFML.7z and ExtLibs/boost.7z because buildbot do not have access to internet
|
||||
#We need to include ExtLibs/SFML.7z because the buildbot do not have access to internet
|
||||
printf " Copying SFML archive... "
|
||||
cp $GD_BASE_DIR/ExtLibs/SFML.7z gdevelop-$GD_VERSION/ExtLibs/
|
||||
cp -rf $GD_BASE_DIR/ExtLibs/SFML gdevelop-$GD_VERSION/ExtLibs/
|
||||
echo "[OK]"
|
||||
|
||||
#Recreate the tar.gz with the added sources
|
||||
|
@@ -11,7 +11,7 @@ IF NOT EXIST "%INNOSETUP_EXE%" set INNOSETUP_EXE=C:\Program Files\Inno Setup 5\I
|
||||
IF EXIST "%INNOSETUP_EXE%" (
|
||||
echo "Note: InnoSetup found at %INNOSETUP_EXE%"
|
||||
) ELSE (
|
||||
echo Warning: InnoSetup not found! Skipping installer creation.
|
||||
echo Warning: InnoSetup Unicode not found! Skipping installer creation.
|
||||
SET SKIPINSTALLER=1
|
||||
)
|
||||
|
||||
@@ -35,14 +35,14 @@ del Output\Release_Windows\log.txt > NUL 2> NUL
|
||||
|
||||
echo.
|
||||
echo --Creating installer...
|
||||
IF NOT "%SKIPINSTALLER%"=="1" "C:\Program Files (x86)\Inno Setup 5\ISCC.exe" Releases\InnoSetupInstallerScript.iss /Q
|
||||
IF NOT "%SKIPINSTALLER%"=="1" "C:\Program Files (x86)\Inno Setup 5\ISCC.exe" Releases\InnoSetupInstallerScript.iss /Qp
|
||||
IF "%SKIPINSTALLER%"=="1" echo (Skipped)
|
||||
|
||||
echo.
|
||||
echo --Creating archive...
|
||||
if exist Releases\gd3xxxx.zip (del Releases\gd3xxxx.zip)
|
||||
if exist Releases\gd4xxxx.7z (del Releases\gd4xxxx.7z)
|
||||
cd Output\Release_Windows\
|
||||
IF NOT "%SKIPINSTALLERANDARCHIVE%"=="1" "..\..\..\ExtLibs\7za.exe" a ..\..\Releases\gd3xxxx.zip * > ..\..\Packaging\logs\zipArchiveLog.txt
|
||||
IF NOT "%SKIPINSTALLERANDARCHIVE%"=="1" "..\..\..\ExtLibs\7za.exe" a ..\..\Releases\gd4xxxx.7z * -bb
|
||||
IF "%SKIPINSTALLERANDARCHIVE%"=="1" echo (Skipped)
|
||||
cd ..\..\..
|
||||
|
||||
@@ -50,4 +50,4 @@ echo. >CON
|
||||
echo Finished. Do not forget to : >CON
|
||||
echo -Update news.txt >CON
|
||||
echo -Update pad file >CON
|
||||
pause >CON
|
||||
pause >CON
|
||||
|
@@ -2,7 +2,9 @@
|
||||
Version=1.0
|
||||
Name=GDevelop
|
||||
GenericName=Game creator IDE
|
||||
GenericName[de]=Entwicklungsumgebung für Spiele
|
||||
Comment=HTML5 and native game development software
|
||||
Comment[de]=Entwicklungsumgebung für native und HTML5-Spiele
|
||||
Exec=sh -c "gdevelop %F"
|
||||
MimeType=application/x-gdevelop-project;
|
||||
Icon=GDevelop
|
||||
|
@@ -1,3 +1,4 @@
|
||||
#Files needed by the IDE to build games (they are not part of a devel package)
|
||||
addFilter("devel-file-in-non-devel-package.*/opt/gdevelop/CppPlatform/include/.*")
|
||||
addFilter("devel-file-in-non-devel-package.*/opt/gdevelop/CppPlatform/Extensions/include/.*")
|
||||
addFilter("devel-file-in-non-devel-package.*/opt/gdevelop/CppPlatform/Extensions/include/.*")
|
||||
addFilter("devel-file-in-non-devel-package.*/opt/gdevelop/CppPlatform/Sources/.*")
|
||||
|
@@ -12,11 +12,11 @@ Source100: gdevelop-rpmlintrc
|
||||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
|
||||
BuildRequires: git rsync curl gcc-c++ cmake p7zip glew-devel xorg-x11-devel libsndfile-devel openal-soft-devel desktop-file-utils
|
||||
BuildRequires: git rsync curl gcc-c++ cmake p7zip glew-devel libsndfile-devel openal-soft-devel desktop-file-utils
|
||||
%if 0%{?fedora}
|
||||
BuildRequires: systemd-devel libjpeg-turbo-devel gtk2-devel wxGTK3-devel
|
||||
BuildRequires: systemd-devel libjpeg-turbo-devel gtk2-devel wxGTK3-devel libX11-devel
|
||||
%else
|
||||
BuildRequires: update-desktop-files libudev-devel libjpeg8-devel wxWidgets-3_0-devel
|
||||
BuildRequires: update-desktop-files libudev-devel libjpeg8-devel wxWidgets-3_0-devel xorg-x11-devel
|
||||
%endif
|
||||
Requires: gcc-c++ p7zip
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
; Inno Setup installation script for GDevelop.
|
||||
; Inno Setup installation script for GDevelop 4.
|
||||
|
||||
[Setup]
|
||||
AppName=GDevelop
|
||||
@@ -13,17 +13,17 @@ AllowNoIcons=yes
|
||||
LicenseFile=..\Output\Release_Windows\License-en.rtf
|
||||
InfoBeforeFile=..\Output\Release_Windows\Informations-en.rtf
|
||||
OutputDir=.\
|
||||
OutputBaseFilename=gd4083
|
||||
OutputBaseFilename=gd4097
|
||||
Compression=lzma
|
||||
SolidCompression=yes
|
||||
SetupIconFile=..\Output\Release_Windows\res\icon.ico
|
||||
VersionInfoVersion=4.0
|
||||
WizardImageFile=Setup bitmap\wizbmp.bmp
|
||||
WizardSmallImageFile=Setup bitmap/smallicon.bmp
|
||||
AppCopyright=2008-2016 Florian Rival
|
||||
AppCopyright=2008-2018 Florian Rival
|
||||
VersionInfoCompany=Florian Rival
|
||||
VersionInfoDescription=GDevelop setup
|
||||
VersionInfoCopyright=2008-2016 Florian Rival
|
||||
VersionInfoCopyright=2008-2018 Florian Rival
|
||||
VersionInfoProductName=GDevelop
|
||||
VersionInfoProductVersion=4.0
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
<News>
|
||||
<Version Major="4" Minor="0" Build="88" Revision="0"/>
|
||||
<Info Info="La version 4.0.88 est disponible.

Importants changements en interne pour supporter l'Unicode dans les jeux, c'est <20> dire la possibilit<69> de pouvoir utiliser des charact<63>res de d'autres alphabets.
Nouvel objet AdMob, pour afficher des banni<6E>res publicitaires (ou <20>crans interstitiels) dans les jeux HTML5 export<72>s sur Android/iOS avec Intel XDK.
Les automatismes sont maintenant appel<65>s des Comportements (Behavior en anglais).
Nouvelle fonctionnalit<69>, la 'pile de sc<73>nes' : une nouvelle action permet de mettre en pause la sc<73>ne courante et d'en lancer une autre. On peut ensuite revenir <20> la sc<73>ne pr<70>c<EFBFBD>dente avec une autre action. Id<49>al pour faire des menus de pause, des <20>crans de combats, des <20>crans d'int<6E>rieurs de batiments..
Am<41>lioration de l'export des jeux HTML5 pour Cordova/Intel XDK.
Nouvel <20>diteur pour les objets textes
Ajout de la fonctionnalit<69> 'Sauvegarder en tant que projet dossier': les projets peuvent <20>tre sauvegard<72>s avec les sc<73>nes, <20>v<EFBFBD>nements externes et agencements externes sauvegard<72>s dans diff<66>rents fichiers. Cela rend beaucoup plus facile la collaboration dans une <20>quipe.
L'appui sur Shift dans l'<27>diteur de sc<73>ne permet de redimensionner un objet en gardant ses proportions.
L'appui sur Shift dans l'<27>diteur de sc<73>ne permet de tourner un objet par incr<63>ment r<>guliers de 15 degr<67>s.
La grille aimant<6E>e de l'<27>diteur de sc<73>ne s'applique aussi lors du redimensionnement d'objets.
Am<EFBFBD>lioration de l'objet Carte de Tuiles, notamment une baisse de la consommation m<>moire pour les grandes cartes.
Am<41>lioration pour les <20>crans haute d<>finition ('retina').
Plusieurs corrections de bugs pour la recherche de chemin, qui devrait maintenant fonctionner correctement dans tous les cas.
Correction de la recherche dans l'<27>diteur d'objets.
Correction de la condition sur la bordure suppl<70>mentaire du comportement 'D<>truire <20> la sortie de l'<27>cran'
Nouvel d<>mo utilisant les fonctionnalit<69>s Javascript 'PIXI Particles'
Correction dans l'<27>diteur de sc<73>ne o<> les objets sur des calques cach<63>s pouvaient encore <20>tre selectionn<6E>s.
Am<41>lioration et nettoyage du code en interne.
Corrections pour Mac OS X dans l'<27>diteur de sc<73>ne.
Suppression de la compilation en un fichier unique (trop instable et detect<63> comme un virus par certains antivirus).
Ajout du support pour les molettes <20> d<>filement horizontal dans l'<27>diteur de sc<73>ne.
Divers bugs corrig<69>s." Lien="http://compilgames.net"/>
|
||||
<CommunityNews text="GDevApp est une web app de cr<EFBFBD>ation de jeux bas<EFBFBD>e sur GDevelop : venez essayer la plus avanc<EFBFBD>e des applications online de cr<EFBFBD>ation de jeux. Compatible avec les tablettes et fournie avec des superbes packs de graphismes pr<EFBFBD>-pr<EFBFBD>par<EFBFBD>s." link1="https://github.com/4ian/GD" linkLabel1="GDevelop sur GitHub" link2="https://gdevapp.com?utm_source=software&utm_medium=link_fr&utm_campaign=launch" linkLabel2="Tester GDevApp, la nouvelle app de cr<EFBFBD>ation de jeux"/>
|
||||
<Version Major="4" Minor="0" Build="92" Revision="0"/>
|
||||
<Info Info="La version 4.0.92 est disponible.

(Expérimental) Exportation des jeux HTML5 vers Android/iOS/Mac/Windows avec le moteur Cocos2d-JS.
(Expérimental) Exportation des jeux natifs vers Android.

Les objets avec le comportement 'Objet se déplaçant sur des plateformes' peuvent maintenant agripper les rebords des plateformes - il faut activer l'option dans le comportement de l'objet.
Les animations des objets Sprite peuvent maintenant être nommés. Une condition et action ont été ajoutées pour utiliser ces noms.
Ajout du support basique d'effets pour les jeux HTML5. ✨ Pour le moment, 3 effets sont disponibles et peuvent être attribués au calques d'une scène. 
Amélioration des performances des jeux HTML5
Correction et améliorations pour les jeux HTML5 exportés avec Cocos2d-JS.
Lors de la recherche dans les évènements, l'évènement surlignés est correctement affiché en dépliant au besoin les groupes/évènements repliés.
Correction du rendu sur Windows avec les thèmes à fort contraste." Lien="http://compilgames.net"/>
|
||||
<CommunityNews text="GDevApp est une web app de création de jeux basée sur GDevelop : venez essayer la plus avancée des applications online de création de jeux. Compatible avec les tablettes et fournie avec des superbes packs de graphismes pré-préparés." link1="https://github.com/4ian/GD" linkLabel1="GDevelop sur GitHub" link2="https://gdevapp.com?utm_source=software&utm_medium=link_fr&utm_campaign=launch" linkLabel2="Tester GDevApp, la nouvelle app de création de jeux"/>
|
||||
</News>
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
<News>
|
||||
<Version Major="4" Minor="0" Build="88" Revision="0"/>
|
||||
<Info Info="Version 4.0.88 is available.

Huge internal changes to have multi-language support ('Unicode') in games.
New AdMob object, that can be used to display ad banners (or interstitial screens) in HTML5 games exported to iOS/Android with Intel XDK.
Automatisms are now called Behaviors for objects (more intuitive and easier to understand).
New scene stacking feature: a new action allows to pause the current scene and launch a new one. You can then go back to the previous one with another action. This makes it easy to create a pause menu, a RPG combat system, rooms/building that you enter from a map...
Improved export of HTML5 games to Cordova/Intel XDK.
New editor for text objects
Add 'Save as a folder project': projects can be saved with scenes, external events and external layouts stored in a different file for each. This makes it easier to collaborate on a game as a team.
Hold Shift in scene editor to resize object while keeping its aspect ratio.
Hold Shift in scene editor to rotate an object in increments.
'Snap to grid' now snaps objects when resizing them in scene editor.
Improvements on TileMap objects, including a reduced memory consumption for large maps.
Improvements for HDPI ('retina') screens.
Several bugfixes for pathfinding that should now work properly in all cases.
Fixed search not working in the objects editor.
Fixed extra border condition of Destroy Outside Behavior.
New PIXI Particles advanced Javascript demo.
Fixed objects from hidden layers could still be selected and moved in scene editor
Internal code cleaning and improvements.
Fixes for Mac OS X in the scene editor.
Removed compilation of native games to a single file executable (was too unstable and prone to antivirus blocking).
Add support for horizontal mouse wheel in the scene editor.
Fixed Vertical Synchronization and framerate limit not applied after changing the window resolution in native games
Fix small bug in Destroy Outside behavior of HTML5 games
Add an option to repeat borders and center textures of PanelSprite objects for HTML5 games
Improve performances of PanelSprite objects for HTML5 games
Fix hitboxes collision condition for HTML5 games
Fix conflicts when exporting a game using different images with the same file name.
Fix error when deactivating a behavior of an object that was just created.
Fix scene editor not properly refreshed after being resized on OS X." Lien="http://compilgames.net"/>
|
||||
<Version Major="4" Minor="0" Build="92" Revision="0"/>
|
||||
<Info Info="Version 4.0.92 is available.

New experimental option to export HTML5 games to Android/iOS/Mac/Windows using the Cocos2d as the underlying game engine.

 New experimental option to export native games to Android.

Platformer object now have an option allowing them to grab platform ledges. Activate this option in the behavior and be sure to also enable this on platforms.
Animations of Sprite objects can now be named. Specific actions/conditions are also available.
Add basic support for effects for HTML5 games. For now, there are 3 simple effects (Night, LightNight, Sepia) and you can apply one of them on each layer of a scene.
Performance improvement for HTML5 games.
Fix text rendering when using a custom font, when exporting HTML5 games with Cocos2d-JS.
Add support for non-smoothed texture for HTML5 games using Cocos2d-JS.
Add support for storage actions when for HTML5 games using Cocos2d-JS on Android/iOS.
When searching in events, events that are matched are unfolded.
Provide compatibility with Windows high contrast themes (thanks @RandomShaper!)
Many fixes" Lien="http://compilgames.net"/>
|
||||
<CommunityNews text="GDevelop has a new website! Help us to translate it to your language by going on the Crowdin project.

GDevApp is an online game creator based on GDevelop: Go try the most advanced game creation web app. Compatible with tablets and bundled with awesome graphics assets." link1="https://crowdin.com/project/gdevelop-website/" linkLabel1="Help translate GD website" link2="https://gdevapp.com?utm_source=software&utm_medium=link_en&utm_campaign=launch" linkLabel2="Try GDevApp, the online game creator based on GD"/>
|
||||
</News>
|
||||
|
@@ -4,6 +4,9 @@
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
cmake_policy(SET CMP0011 NEW)
|
||||
|
||||
# Add utility functions
|
||||
include(scripts/CMakeClangUtils.txt) # To add clang-format and clang-tidy support to a target
|
||||
|
||||
# Macro for defining an option
|
||||
macro(gd_set_option var default type docstring)
|
||||
if(NOT DEFINED ${var})
|
||||
@@ -18,6 +21,7 @@ gd_set_option(BUILD_IDE TRUE BOOL "TRUE to build the IDE")
|
||||
gd_set_option(BUILD_EXTENSIONS TRUE BOOL "TRUE to build the extensions")
|
||||
gd_set_option(BUILD_TESTS FALSE BOOL "TRUE to build the tests")
|
||||
gd_set_option(NO_GUI FALSE BOOL "TRUE to build without wxWidgets GUI")
|
||||
gd_set_option(FULL_VERSION_NUMBER TRUE BOOL "TRUE to build GDevelop with its full version number (lastest tag + commit hash), FALSE to only use the lastest tag (avoid rebulding many source file when developping)")
|
||||
|
||||
#Setting up installation directory, for Linux (has to be done before "project" command).
|
||||
IF(NOT WIN32)
|
||||
@@ -76,6 +80,8 @@ endif()
|
||||
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
#Add all the CMakeLists:
|
||||
ADD_SUBDIRECTORY(Version)
|
||||
|
||||
ADD_SUBDIRECTORY(ExtLibs)
|
||||
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/Core/CMakeLists.txt" AND BUILD_CORE)
|
||||
ADD_SUBDIRECTORY(Core)
|
||||
|
@@ -72,7 +72,12 @@ IF(NO_GUI)
|
||||
list(REMOVE_ITEM source_files "${CMAKE_CURRENT_SOURCE_DIR}/GDCore/IDE/Dialogs/GDCoreDialogs.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/GDCore/IDE/Dialogs/GDCoreDialogs.h" "${CMAKE_CURRENT_SOURCE_DIR}/GDCore/IDE/Dialogs/GDCoreDialogs_dialogs_bitmaps.cpp")
|
||||
ENDIF()
|
||||
|
||||
file(GLOB_RECURSE formatted_source_files tests/* GDCore/Events/* GDCore/Extensions/* GDCore/IDE/* GDCore/Project/* GDCore/Serialization/* GDCore/Tools/*)
|
||||
list(REMOVE_ITEM formatted_source_files "${CMAKE_CURRENT_SOURCE_DIR}/GDCore/IDE/Dialogs/GDCoreDialogs.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/GDCore/IDE/Dialogs/GDCoreDialogs.h" "${CMAKE_CURRENT_SOURCE_DIR}/GDCore/IDE/Dialogs/GDCoreDialogs_dialogs_bitmaps.cpp")
|
||||
gd_add_clang_utils(GDCore "${formatted_source_files}")
|
||||
|
||||
add_library(GDCore SHARED ${source_files})
|
||||
add_dependencies(GDCore GDVersion)
|
||||
IF(EMSCRIPTEN)
|
||||
set_target_properties(GDCore PROPERTIES SUFFIX ".bc")
|
||||
ELSEIF(WIN32)
|
||||
|
@@ -510,7 +510,7 @@
|
||||
<wxDialog wxs="wxsmith/EditForEachEvent.wxs" src="GDCore/IDE/Dialogs/EditForEachEvent.cpp" hdr="GDCore/IDE/Dialogs/EditForEachEvent.h" fwddecl="0" i18n="1" name="EditForEachEvent" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/EditRepeatEvent.wxs" src="GDCore/IDE/Dialogs/EditRepeatEvent.cpp" hdr="GDCore/IDE/Dialogs/EditRepeatEvent.h" fwddecl="0" i18n="1" name="EditRepeatEvent" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/ProjectUpdateDialog.wxs" src="GDCore/IDE/Dialogs/ProjectUpdateDialog.cpp" hdr="GDCore/IDE/Dialogs/ProjectUpdateDialog.h" fwddecl="0" i18n="1" name="ProjectUpdateDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/SpriteObjectEditor.wxs" src="GDCore\Extensions\BuiltinExtensions\SpriteExtension\Dialogs\SpriteObjectEditor.cpp" hdr="GDCore\Extensions\BuiltinExtensions\SpriteExtension\Dialogs\SpriteObjectEditor.h" fwddecl="0" i18n="1" name="SpriteObjectEditor" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/SpriteObjectEditor.wxs" src="GDCore/Extensions/Builtin/SpriteExtension/Dialogs/SpriteObjectEditor.cpp" hdr="GDCore/Extensions/Builtin/SpriteExtension/Dialogs/SpriteObjectEditor.h" fwddecl="0" i18n="1" name="SpriteObjectEditor" language="CPP" />
|
||||
<wxPanel wxs="wxsmith/ResourcesEditor.wxs" src="GDCore/IDE/Dialogs/ResourcesEditor.cpp" hdr="GDCore/IDE/Dialogs/ResourcesEditor.h" fwddecl="0" i18n="1" name="ResourcesEditor" language="CPP" />
|
||||
</resources>
|
||||
</wxsmith>
|
||||
|
@@ -71,13 +71,14 @@
|
||||
*
|
||||
* Download the current version of the compiler used by GDevelop on Windows here:
|
||||
*
|
||||
* http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-4.9.2.exe/download
|
||||
* https://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/Previous/1.1309.0/tdm-gcc-4.9.2.exe/download
|
||||
*
|
||||
* \section installWinCompiler_install Installation
|
||||
*
|
||||
* The installation is fairly simple :<br>
|
||||
* <br>
|
||||
* - Launch the installer.<br>
|
||||
* - Uncheck "Check for updated files on the TDM-GCC server" (otherwise you won't get TDM-GCC 4.9.2 but a more recent version that won't be compatible with wxWidgets pre-compiled binaries)
|
||||
* - Choose Create.<br>
|
||||
|
||||
\image html compilerInstall1.png
|
||||
@@ -222,6 +223,7 @@ brew install cmake
|
||||
brew install p7zip
|
||||
brew install pkgconfig
|
||||
brew install wxwidgets
|
||||
brew install freetype
|
||||
\endcode
|
||||
* If you want to generate the documentation and translations, install Doxygen and Gettext:
|
||||
\code
|
||||
@@ -337,7 +339,7 @@ make -j4
|
||||
* \section platformstructure Structure of a platform
|
||||
*
|
||||
* A platform for GDevelop Core is a class inheriting from gd::Platform.<br>
|
||||
* They contains the extensions of the platform (see below) and offer various methods, like gd::Platform::GetProjectExporter which
|
||||
* They contains the extensions of the platform (see below) and offer various methods, like gd::Platform::GetProjectExporters which
|
||||
* is called by the IDE to export a gd::Project to a stand-alone game.
|
||||
*
|
||||
* \subsection platformloading Platforms loading
|
||||
@@ -406,7 +408,7 @@ str += " world";
|
||||
str += " " + gd::String::From(2);
|
||||
//str now contains "Hello world 2";
|
||||
|
||||
gd::string twopointfiveStr = "2.5";
|
||||
gd::String twopointfiveStr = "2.5";
|
||||
double twopointfive = twopointfive.To<double>();
|
||||
//twopointfive == 2.5
|
||||
\endcode
|
||||
@@ -499,30 +501,22 @@ Actions are declared like this :
|
||||
* Adding an object is made using gd::PlatformExtension::AddObject method.
|
||||
*
|
||||
* \code
|
||||
gd::ObjectMetadata & obj = AddObject("Name",
|
||||
gd::ObjectMetadata & obj = AddObject<MyObject>(
|
||||
"Name",
|
||||
_("Name displayed to users"),
|
||||
_("Description"),
|
||||
"path-to-a-32-by-32-icon.png",
|
||||
&FunctionForCreatingTheObject);
|
||||
* \endcode
|
||||
*
|
||||
* *FunctionForCreatingTheObject* is a function that must just create the object. It should look like this:
|
||||
*
|
||||
* \code
|
||||
gd::Object * CreateTextObject(std::string name)
|
||||
{
|
||||
return new TextObject(name);
|
||||
}
|
||||
"path-to-a-32-by-32-icon.png");
|
||||
* \endcode
|
||||
*
|
||||
* The *C++ platform* also requires that you call *AddRuntimeObject* to declare the RuntimeObject class associated to the object being declared:<br>
|
||||
* You must pass as parameter the name of the class inheriting from RuntimeObject and a function used to create an instance of the
|
||||
* RuntimeObject.
|
||||
* It has two template parameters: the first one is the corresponding object class declared with *AddObject* (class inheriting from *gd::Object*) and the
|
||||
* second one is the *RuntimeObject* class.
|
||||
* You must pass as parameter the metadata from the object previously declared and the name of the class inheriting from RuntimeObject.
|
||||
*
|
||||
* You will also want to specify the .h file associated to the object using gd::ObjectMetadata::SetIncludeFile. For example:
|
||||
* \code
|
||||
//obj is the gd::ObjectMetadata returned when you called AddObject.
|
||||
AddRuntimeObject(obj, "RuntimeTextObject", CreateRuntimeTextObject);
|
||||
AddRuntimeObject<TextObject, RuntimeTextObject>(obj, "RuntimeTextObject");
|
||||
obj.SetIncludeFile("TextObject/TextObject.h");
|
||||
* \endcode
|
||||
*
|
||||
@@ -538,7 +532,7 @@ AddEvent("Name",
|
||||
"Description",
|
||||
"Group",
|
||||
"path-to-a-16-by-16-icon.png",
|
||||
std::shared_ptr<gd::BaseEvent>(new EventClassName))
|
||||
std::make_shared<EventClassName>())
|
||||
* \endcode
|
||||
*
|
||||
* The event must be able to generate its code when events are being translated to C++ or Javascript:<br>
|
||||
@@ -550,7 +544,7 @@ AddEvent("Standard",
|
||||
_("Standard event: Actions are run if conditions are fulfilled."),
|
||||
"",
|
||||
"res/eventaddicon.png",
|
||||
std::shared_ptr<gd::BaseEvent>(new gd::StandardEvent))
|
||||
std::make_shared<gd::StandardEvent>())
|
||||
.SetCodeGenerator(std::shared_ptr<gd::EventMetadata::CodeGenerator>(codeGen));
|
||||
* \endcode
|
||||
|
||||
@@ -567,8 +561,8 @@ gd::BehaviorMetadata & aut = AddBehavior("Name",
|
||||
"Group",
|
||||
"path-to-a-32-by-32-icon.png",
|
||||
"BehaviorClassName",
|
||||
std::shared_ptr<gd::Behavior>(new BehaviorClassName),
|
||||
std::shared_ptr<gd::BehaviorsSharedData>(new BehaviorSharedDataClassName));
|
||||
std::make_shared<BehaviorClassName>(),
|
||||
std::make_shared<BehaviorSharedDataClassName>());
|
||||
* \endcode
|
||||
* The last line can be replaced by <code>std::shared_ptr<gd::BehaviorsSharedData>()</code> if no shared data are being used.
|
||||
*
|
||||
@@ -626,8 +620,8 @@ public:
|
||||
"",
|
||||
"CppPlatform/Extensions/myicon.png",
|
||||
"PhysicsBehavior",
|
||||
std::shared_ptr<gd::Behavior>(new BehaviorClassName),
|
||||
std::shared_ptr<gd::BehaviorsSharedData>(new BehaviorSharedDataClassName));
|
||||
std::make_shared<BehaviorClassName>(),
|
||||
std::make_shared<BehaviorSharedDataClassName>());
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
behaviorInfo.SetIncludeFile("MyExtension/MyIncludeFile.h");
|
||||
@@ -785,5 +779,3 @@ extern "C" ExtensionBase * GD_EXTENSION_API CreateGDExtension() {
|
||||
* \brief Part of the tinyxml library
|
||||
* \ingroup TinyXml
|
||||
*/
|
||||
|
||||
|
||||
|
@@ -1,152 +1,189 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights
|
||||
* reserved. This project is released under the MIT License.
|
||||
*/
|
||||
|
||||
#if !defined(GD_NO_WX_GUI)
|
||||
#include <wx/dcmemory.h>
|
||||
#endif
|
||||
#include "CommentEvent.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsRenderingHelper.h"
|
||||
#include "GDCore/Serialization/SerializerElement.h"
|
||||
#include "GDCore/CommonTools.h"
|
||||
#include "GDCore/IDE/Dialogs/EditComment.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsEditorItemsAreas.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsEditorSelection.h"
|
||||
#include "GDCore/CommonTools.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsRenderingHelper.h"
|
||||
#include "GDCore/Serialization/SerializerElement.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace gd
|
||||
{
|
||||
namespace gd {
|
||||
|
||||
void CommentEvent::SerializeTo(SerializerElement & element) const
|
||||
{
|
||||
element.AddChild("color")
|
||||
.SetAttribute("r", r)
|
||||
.SetAttribute("g", v)
|
||||
.SetAttribute("b", b)
|
||||
.SetAttribute("textR", textR)
|
||||
.SetAttribute("textG", textG)
|
||||
.SetAttribute("textB", textB);
|
||||
void CommentEvent::SerializeTo(SerializerElement &element) const {
|
||||
element.AddChild("color")
|
||||
.SetAttribute("r", r)
|
||||
.SetAttribute("g", v)
|
||||
.SetAttribute("b", b)
|
||||
.SetAttribute("textR", textR)
|
||||
.SetAttribute("textG", textG)
|
||||
.SetAttribute("textB", textB);
|
||||
|
||||
element.AddChild("comment").SetValue(com1);
|
||||
element.AddChild("comment2").SetValue(com2);
|
||||
element.AddChild("comment").SetValue(com1);
|
||||
element.AddChild("comment2").SetValue(com2);
|
||||
}
|
||||
|
||||
void CommentEvent::UnserializeFrom(gd::Project & project, const SerializerElement & element)
|
||||
{
|
||||
const SerializerElement & colorElement = element.GetChild("color", 0, "Couleur");
|
||||
r = colorElement.GetIntAttribute("r");
|
||||
v = colorElement.GetIntAttribute("g", 0, "v");
|
||||
b = colorElement.GetIntAttribute("b");
|
||||
textR = colorElement.GetIntAttribute("textR");
|
||||
textG = colorElement.GetIntAttribute("textG");
|
||||
textB = colorElement.GetIntAttribute("textB");
|
||||
void CommentEvent::UnserializeFrom(gd::Project &project,
|
||||
const SerializerElement &element) {
|
||||
const SerializerElement &colorElement =
|
||||
element.GetChild("color", 0, "Couleur");
|
||||
r = colorElement.GetIntAttribute("r");
|
||||
v = colorElement.GetIntAttribute("g", 0, "v");
|
||||
b = colorElement.GetIntAttribute("b");
|
||||
textR = colorElement.GetIntAttribute("textR");
|
||||
textG = colorElement.GetIntAttribute("textG");
|
||||
textB = colorElement.GetIntAttribute("textB");
|
||||
|
||||
com1 = element.GetChild("comment", 0, "Com1").GetValue().GetString();
|
||||
com2 = element.GetChild("comment2", 0, "Com2").GetValue().GetString();
|
||||
com1 = element.GetChild("comment", 0, "Com1").GetValue().GetString();
|
||||
com2 = element.GetChild("comment2", 0, "Com2").GetValue().GetString();
|
||||
}
|
||||
|
||||
gd::BaseEvent::EditEventReturnType CommentEvent::EditEvent(wxWindow* parent_, gd::Project & game_, gd::Layout & scene_, gd::MainFrameWrapper & mainFrameWrapper_)
|
||||
{
|
||||
gd::BaseEvent::EditEventReturnType CommentEvent::EditEvent(
|
||||
wxWindow *parent_,
|
||||
gd::Project &game_,
|
||||
gd::Layout &scene_,
|
||||
gd::MainFrameWrapper &mainFrameWrapper_) {
|
||||
#if !defined(GD_NO_WX_GUI)
|
||||
EditComment dialog(parent_, *this);
|
||||
if ( dialog.ShowModal() == 0) return Cancelled;
|
||||
EditComment dialog(parent_, *this);
|
||||
if (dialog.ShowModal() == 0) return Cancelled;
|
||||
#endif
|
||||
|
||||
return ChangesMadeButNoNeedForEventsRecompilation;
|
||||
return ChangesMadeButNoNeedForEventsRecompilation;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the event
|
||||
*/
|
||||
void CommentEvent::Render(wxDC & dc, int x, int y, unsigned int width, gd::EventsEditorItemsAreas & areas, gd::EventsEditorSelection & selection, const gd::Platform &)
|
||||
{
|
||||
void CommentEvent::Render(wxDC &dc,
|
||||
int x,
|
||||
int y,
|
||||
unsigned int width,
|
||||
gd::EventsEditorItemsAreas &areas,
|
||||
gd::EventsEditorSelection &selection,
|
||||
const gd::Platform &) {
|
||||
#if !defined(GD_NO_WX_GUI)
|
||||
x += 1; //Small border
|
||||
x += 1; // Small border
|
||||
|
||||
gd::EventsRenderingHelper *renderingHelper = gd::EventsRenderingHelper::Get();
|
||||
renderingHelper->GetHTMLRenderer().SetDC(&dc);
|
||||
renderingHelper->GetHTMLRenderer().SetStandardFonts(
|
||||
renderingHelper->GetNiceFont().GetPointSize());
|
||||
|
||||
// Prepare HTML texts
|
||||
gd::String str1 =
|
||||
"<FONT color=" +
|
||||
wxColour(textR, textG, textB).GetAsString(wxC2S_HTML_SYNTAX) + ">" +
|
||||
renderingHelper->GetHTMLText(com1) + "</FONT>";
|
||||
gd::String str2 =
|
||||
"<FONT color=" +
|
||||
wxColour(textR, textG, textB).GetAsString(wxC2S_HTML_SYNTAX) + ">" +
|
||||
renderingHelper->GetHTMLText(com2) + "</FONT>";
|
||||
|
||||
// Calculate space constraints
|
||||
const int sideSeparation = 3; // Spacing between text and borders
|
||||
|
||||
unsigned int textWidth = com2.empty() ? width - sideSeparation * 2
|
||||
: width / 2 - sideSeparation * 2;
|
||||
renderingHelper->GetHTMLRenderer().SetSize(textWidth, 9999);
|
||||
|
||||
renderingHelper->GetHTMLRenderer().SetHtmlText(str1);
|
||||
unsigned int text1Height =
|
||||
renderingHelper->GetHTMLRenderer().GetTotalHeight();
|
||||
|
||||
renderingHelper->GetHTMLRenderer().SetHtmlText(str2);
|
||||
unsigned int text2Height =
|
||||
renderingHelper->GetHTMLRenderer().GetTotalHeight();
|
||||
|
||||
// Prepare background
|
||||
dc.SetBrush(wxBrush(wxColour(r, v, b), wxBRUSHSTYLE_TRANSPARENT));
|
||||
dc.SetPen(wxPen(wxColour(r / 2, v / 2, b / 2), 1));
|
||||
|
||||
// Draw the background
|
||||
unsigned int height = std::max(text1Height, text2Height) + sideSeparation * 2;
|
||||
height = std::max(height, (unsigned int)15);
|
||||
wxRect rectangle(x, y, width - 2, height);
|
||||
dc.GradientFillLinear(rectangle,
|
||||
wxColour(r + 20 > 255 ? 255 : r + 20,
|
||||
v + 20 > 255 ? 255 : v + 20,
|
||||
b + 20 > 255 ? 255 : b + 20),
|
||||
wxColour(r, v, b),
|
||||
wxSOUTH);
|
||||
dc.DrawRectangle(rectangle);
|
||||
|
||||
// Draw text
|
||||
{
|
||||
renderingHelper->GetHTMLRenderer().SetHtmlText(str1);
|
||||
wxArrayInt neededArray;
|
||||
renderingHelper->GetHTMLRenderer().Render(
|
||||
x + sideSeparation, y + sideSeparation, neededArray);
|
||||
}
|
||||
if (!com2.empty()) // Optional text
|
||||
{
|
||||
renderingHelper->GetHTMLRenderer().SetHtmlText(str2);
|
||||
wxArrayInt neededArray;
|
||||
renderingHelper->GetHTMLRenderer().Render(
|
||||
x + sideSeparation + textWidth + sideSeparation,
|
||||
y + sideSeparation,
|
||||
neededArray);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
unsigned int CommentEvent::GetRenderedHeight(unsigned int width,
|
||||
const gd::Platform &) const {
|
||||
#if !defined(GD_NO_WX_GUI)
|
||||
if (eventHeightNeedUpdate) {
|
||||
gd::EventsRenderingHelper *renderingHelper =
|
||||
gd::EventsRenderingHelper::Get();
|
||||
|
||||
wxMemoryDC dc;
|
||||
wxBitmap fakeBmp(1, 1);
|
||||
dc.SelectObject(fakeBmp);
|
||||
|
||||
gd::EventsRenderingHelper * renderingHelper = gd::EventsRenderingHelper::Get();
|
||||
renderingHelper->GetHTMLRenderer().SetDC(&dc);
|
||||
renderingHelper->GetHTMLRenderer().SetStandardFonts(renderingHelper->GetNiceFont().GetPointSize());
|
||||
renderingHelper->GetHTMLRenderer().SetStandardFonts(
|
||||
renderingHelper->GetNiceFont().GetPointSize());
|
||||
|
||||
//Prepare HTML texts
|
||||
gd::String str1 = "<FONT color="+wxColour(textR, textG, textB).GetAsString(wxC2S_HTML_SYNTAX)+">"+renderingHelper->GetHTMLText(com1)+"</FONT>";
|
||||
gd::String str2 = "<FONT color="+wxColour(textR, textG, textB).GetAsString(wxC2S_HTML_SYNTAX)+">"+renderingHelper->GetHTMLText(com2)+"</FONT>";
|
||||
gd::String str1 =
|
||||
"<FONT color=" +
|
||||
wxColour(textR, textG, textB).GetAsString(wxC2S_HTML_SYNTAX) + ">" +
|
||||
renderingHelper->GetHTMLText(com1) + "</FONT>";
|
||||
gd::String str2 =
|
||||
"<FONT color=" +
|
||||
wxColour(textR, textG, textB).GetAsString(wxC2S_HTML_SYNTAX) + ">" +
|
||||
renderingHelper->GetHTMLText(com2) + "</FONT>";
|
||||
|
||||
//Calculate space constraints
|
||||
const int sideSeparation = 3; //Spacing between text and borders
|
||||
// Calculate space constraints
|
||||
const int sideSeparation = 3; // Spacing between text and borders
|
||||
|
||||
unsigned int textWidth = com2.empty() ? width-sideSeparation*2 : width/2-sideSeparation*2;
|
||||
unsigned int textWidth = com2.empty() ? width - sideSeparation * 2
|
||||
: width / 2 - sideSeparation * 2;
|
||||
renderingHelper->GetHTMLRenderer().SetSize(textWidth, 9999);
|
||||
|
||||
renderingHelper->GetHTMLRenderer().SetHtmlText(str1);
|
||||
unsigned int text1Height = renderingHelper->GetHTMLRenderer().GetTotalHeight();
|
||||
unsigned int text1Height =
|
||||
renderingHelper->GetHTMLRenderer().GetTotalHeight();
|
||||
|
||||
renderingHelper->GetHTMLRenderer().SetHtmlText(str2);
|
||||
unsigned int text2Height = renderingHelper->GetHTMLRenderer().GetTotalHeight();
|
||||
unsigned int text2Height =
|
||||
renderingHelper->GetHTMLRenderer().GetTotalHeight();
|
||||
|
||||
//Prepare background
|
||||
dc.SetBrush(wxBrush(wxColour(r, v, b), wxBRUSHSTYLE_TRANSPARENT));
|
||||
dc.SetPen(wxPen(wxColour(r/2, v/2, b/2), 1));
|
||||
|
||||
//Draw the background
|
||||
unsigned int height = std::max(text1Height, text2Height)+sideSeparation*2;
|
||||
unsigned int height =
|
||||
std::max(text1Height, text2Height) + sideSeparation * 2;
|
||||
height = std::max(height, (unsigned int)15);
|
||||
wxRect rectangle(x, y, width-2, height);
|
||||
dc.GradientFillLinear(rectangle, wxColour(r+20 > 255 ? 255 : r+20, v+20 > 255 ? 255 : v+20, b+20 > 255 ? 255 : b+20), wxColour(r, v, b), wxSOUTH);
|
||||
dc.DrawRectangle(rectangle);
|
||||
|
||||
//Draw text
|
||||
{
|
||||
renderingHelper->GetHTMLRenderer().SetHtmlText(str1);
|
||||
wxArrayInt neededArray;
|
||||
renderingHelper->GetHTMLRenderer().Render(x + sideSeparation, y+sideSeparation, neededArray);
|
||||
}
|
||||
if ( !com2.empty() ) //Optional text
|
||||
{
|
||||
renderingHelper->GetHTMLRenderer().SetHtmlText(str2);
|
||||
wxArrayInt neededArray;
|
||||
renderingHelper->GetHTMLRenderer().Render(x + sideSeparation + textWidth + sideSeparation, y+sideSeparation, neededArray);
|
||||
}
|
||||
renderedHeight = height;
|
||||
}
|
||||
#endif
|
||||
return renderedHeight + 2; // 2 : 2 small borders
|
||||
}
|
||||
|
||||
unsigned int CommentEvent::GetRenderedHeight(unsigned int width, const gd::Platform &) const
|
||||
{
|
||||
#if !defined(GD_NO_WX_GUI)
|
||||
if ( eventHeightNeedUpdate )
|
||||
{
|
||||
gd::EventsRenderingHelper * renderingHelper = gd::EventsRenderingHelper::Get();
|
||||
|
||||
wxMemoryDC dc;
|
||||
wxBitmap fakeBmp(1,1);
|
||||
dc.SelectObject(fakeBmp);
|
||||
|
||||
renderingHelper->GetHTMLRenderer().SetDC(&dc);
|
||||
renderingHelper->GetHTMLRenderer().SetStandardFonts(renderingHelper->GetNiceFont().GetPointSize());
|
||||
|
||||
gd::String str1 = "<FONT color="+wxColour(textR, textG, textB).GetAsString(wxC2S_HTML_SYNTAX)+">"+renderingHelper->GetHTMLText(com1)+"</FONT>";
|
||||
gd::String str2 = "<FONT color="+wxColour(textR, textG, textB).GetAsString(wxC2S_HTML_SYNTAX)+">"+renderingHelper->GetHTMLText(com2)+"</FONT>";
|
||||
|
||||
//Calculate space constraints
|
||||
const int sideSeparation = 3; //Spacing between text and borders
|
||||
|
||||
unsigned int textWidth = com2.empty() ? width-sideSeparation*2 : width/2-sideSeparation*2;
|
||||
renderingHelper->GetHTMLRenderer().SetSize(textWidth, 9999);
|
||||
|
||||
renderingHelper->GetHTMLRenderer().SetHtmlText(str1);
|
||||
unsigned int text1Height = renderingHelper->GetHTMLRenderer().GetTotalHeight();
|
||||
|
||||
renderingHelper->GetHTMLRenderer().SetHtmlText(str2);
|
||||
unsigned int text2Height = renderingHelper->GetHTMLRenderer().GetTotalHeight();
|
||||
|
||||
unsigned int height = std::max(text1Height, text2Height)+sideSeparation*2;
|
||||
height = std::max(height, (unsigned int)15);
|
||||
renderedHeight = height;
|
||||
}
|
||||
#endif
|
||||
return renderedHeight+2;//2 : 2 small borders
|
||||
}
|
||||
|
||||
}
|
||||
} // namespace gd
|
||||
|
@@ -1,61 +1,105 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights
|
||||
* reserved. This project is released under the MIT License.
|
||||
*/
|
||||
#ifndef COMMENTEVENT_H
|
||||
#define COMMENTEVENT_H
|
||||
|
||||
#include "GDCore/Events/Event.h"
|
||||
class TiXmlElement;
|
||||
namespace gd { class Layout; }
|
||||
namespace gd { class Project; }
|
||||
namespace gd { class MainFrameWrapper; }
|
||||
namespace gd { class Project; }
|
||||
namespace gd {
|
||||
class Layout;
|
||||
}
|
||||
namespace gd {
|
||||
class Project;
|
||||
}
|
||||
namespace gd {
|
||||
class MainFrameWrapper;
|
||||
}
|
||||
namespace gd {
|
||||
class Project;
|
||||
}
|
||||
class wxWindow;
|
||||
namespace gd { class EventsEditorItemsAreas; }
|
||||
namespace gd { class EventsEditorSelection; }
|
||||
namespace gd {
|
||||
class EventsEditorItemsAreas;
|
||||
}
|
||||
namespace gd {
|
||||
class EventsEditorSelection;
|
||||
}
|
||||
|
||||
namespace gd
|
||||
{
|
||||
namespace gd {
|
||||
|
||||
/**
|
||||
* \brief Allows to add a text in the events editor.
|
||||
*/
|
||||
class GD_CORE_API CommentEvent : public gd::BaseEvent
|
||||
{
|
||||
public:
|
||||
CommentEvent() : BaseEvent(), r(255), v(230), b(109), textR(0), textG(0), textB(0) {};
|
||||
virtual ~CommentEvent() {};
|
||||
virtual gd::CommentEvent * Clone() const { return new CommentEvent(*this);}
|
||||
class GD_CORE_API CommentEvent : public gd::BaseEvent {
|
||||
public:
|
||||
CommentEvent()
|
||||
: BaseEvent(), r(255), v(230), b(109), textR(0), textG(0), textB(0){};
|
||||
virtual ~CommentEvent(){};
|
||||
virtual gd::CommentEvent* Clone() const { return new CommentEvent(*this); }
|
||||
|
||||
virtual void SerializeTo(SerializerElement & element) const;
|
||||
virtual void UnserializeFrom(gd::Project & project, const SerializerElement & element);
|
||||
int GetBackgroundColorRed() const { return r; }
|
||||
int GetBackgroundColorGreen() const { return v; }
|
||||
int GetBackgroundColorBlue() const { return b; }
|
||||
void SetBackgroundColor(int r_, int g_, int b_) {
|
||||
r = r_;
|
||||
v = g_;
|
||||
b = b_;
|
||||
}
|
||||
|
||||
int r; ///< Background color Red component
|
||||
int v; ///< Background color Green component
|
||||
int b; ///< Background color Blue component
|
||||
int GetTextColorRed() const { return textR; }
|
||||
int GetTextColorGreen() const { return textG; }
|
||||
int GetTextColorBlue() const { return textB; }
|
||||
void SetTextColor(int r_, int g_, int b_) {
|
||||
textR = r_;
|
||||
textG = g_;
|
||||
textB = b_;
|
||||
}
|
||||
|
||||
int textR; ///< Text color Red component
|
||||
int textG; ///< Text color Green component
|
||||
int textB; ///< Text color Blue component
|
||||
const gd::String& GetComment() const { return com1; }
|
||||
void SetComment(const gd::String& comment) { com1 = comment; }
|
||||
|
||||
gd::String com1; ///< Comment gd::String
|
||||
gd::String com2; ///< Optional second comment gd::String
|
||||
virtual void SerializeTo(SerializerElement& element) const;
|
||||
virtual void UnserializeFrom(gd::Project& project,
|
||||
const SerializerElement& element);
|
||||
|
||||
/**
|
||||
* Called by event editor to draw the event.
|
||||
*/
|
||||
virtual void Render(wxDC & dc, int x, int y, unsigned int width, gd::EventsEditorItemsAreas & areas, gd::EventsEditorSelection & selection, const gd::Platform & );
|
||||
int r; ///< Background color Red component
|
||||
int v; ///< Background color Green component
|
||||
int b; ///< Background color Blue component
|
||||
|
||||
/**
|
||||
* Must return the height of the event when rendered
|
||||
*/
|
||||
virtual unsigned int GetRenderedHeight(unsigned int width, const gd::Platform & ) const;
|
||||
int textR; ///< Text color Red component
|
||||
int textG; ///< Text color Green component
|
||||
int textB; ///< Text color Blue component
|
||||
|
||||
virtual EditEventReturnType EditEvent(wxWindow* parent_, gd::Project & game_, gd::Layout & scene_, gd::MainFrameWrapper & mainFrameWrapper_);
|
||||
gd::String com1; ///< Comment
|
||||
gd::String com2; ///< Optional second column comment, deprecated
|
||||
|
||||
/**
|
||||
* Called by event editor to draw the event.
|
||||
*/
|
||||
virtual void Render(wxDC& dc,
|
||||
int x,
|
||||
int y,
|
||||
unsigned int width,
|
||||
gd::EventsEditorItemsAreas& areas,
|
||||
gd::EventsEditorSelection& selection,
|
||||
const gd::Platform&);
|
||||
|
||||
/**
|
||||
* Must return the height of the event when rendered
|
||||
*/
|
||||
virtual unsigned int GetRenderedHeight(unsigned int width,
|
||||
const gd::Platform&) const;
|
||||
|
||||
virtual EditEventReturnType EditEvent(
|
||||
wxWindow* parent_,
|
||||
gd::Project& game_,
|
||||
gd::Layout& scene_,
|
||||
gd::MainFrameWrapper& mainFrameWrapper_);
|
||||
};
|
||||
|
||||
}
|
||||
} // namespace gd
|
||||
|
||||
#endif // COMMENTEVENT_H
|
||||
#endif // COMMENTEVENT_H
|
||||
|
@@ -1,164 +1,198 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights
|
||||
* reserved. This project is released under the MIT License.
|
||||
*/
|
||||
|
||||
#include "ForEachEvent.h"
|
||||
#include <iostream>
|
||||
#include "GDCore/TinyXml/tinyxml.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsRenderingHelper.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsEditorItemsAreas.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsEditorSelection.h"
|
||||
#include "GDCore/Serialization/SerializerElement.h"
|
||||
#include "GDCore/Events/Serialization.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerationContext.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerator.h"
|
||||
#include "GDCore/Events/CodeGeneration/ExpressionsCodeGeneration.h"
|
||||
#include "GDCore/Events/Serialization.h"
|
||||
#include "GDCore/Events/Tools/EventsCodeNameMangler.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerationContext.h"
|
||||
#include "GDCore/IDE/Dialogs/EditForEachEvent.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsEditorItemsAreas.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsEditorSelection.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsRenderingHelper.h"
|
||||
#include "GDCore/Serialization/SerializerElement.h"
|
||||
#include "GDCore/TinyXml/tinyxml.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace gd
|
||||
{
|
||||
namespace gd {
|
||||
|
||||
ForEachEvent::ForEachEvent() :
|
||||
BaseEvent(),
|
||||
objectsToPick(""),
|
||||
objectsToPickSelected(false)
|
||||
{
|
||||
ForEachEvent::ForEachEvent()
|
||||
: BaseEvent(), objectsToPick(""), objectsToPickSelected(false) {}
|
||||
|
||||
vector<gd::InstructionsList*> ForEachEvent::GetAllConditionsVectors() {
|
||||
vector<gd::InstructionsList*> allConditions;
|
||||
allConditions.push_back(&conditions);
|
||||
|
||||
return allConditions;
|
||||
}
|
||||
|
||||
vector < gd::InstructionsList* > ForEachEvent::GetAllConditionsVectors()
|
||||
{
|
||||
vector < gd::InstructionsList* > allConditions;
|
||||
allConditions.push_back(&conditions);
|
||||
vector<gd::InstructionsList*> ForEachEvent::GetAllActionsVectors() {
|
||||
vector<gd::InstructionsList*> allActions;
|
||||
allActions.push_back(&actions);
|
||||
|
||||
return allConditions;
|
||||
return allActions;
|
||||
}
|
||||
|
||||
vector < gd::InstructionsList* > ForEachEvent::GetAllActionsVectors()
|
||||
{
|
||||
vector < gd::InstructionsList* > allActions;
|
||||
allActions.push_back(&actions);
|
||||
vector<gd::Expression*> ForEachEvent::GetAllExpressions() {
|
||||
vector<gd::Expression*> allExpressions;
|
||||
allExpressions.push_back(&objectsToPick);
|
||||
|
||||
return allActions;
|
||||
return allExpressions;
|
||||
}
|
||||
vector<const gd::InstructionsList*> ForEachEvent::GetAllConditionsVectors()
|
||||
const {
|
||||
vector<const gd::InstructionsList*> allConditions;
|
||||
allConditions.push_back(&conditions);
|
||||
|
||||
return allConditions;
|
||||
}
|
||||
|
||||
vector < gd::Expression* > ForEachEvent::GetAllExpressions()
|
||||
{
|
||||
vector < gd::Expression* > allExpressions;
|
||||
allExpressions.push_back(&objectsToPick);
|
||||
vector<const gd::InstructionsList*> ForEachEvent::GetAllActionsVectors() const {
|
||||
vector<const gd::InstructionsList*> allActions;
|
||||
allActions.push_back(&actions);
|
||||
|
||||
return allExpressions;
|
||||
}
|
||||
vector < const gd::InstructionsList* > ForEachEvent::GetAllConditionsVectors() const
|
||||
{
|
||||
vector < const gd::InstructionsList* > allConditions;
|
||||
allConditions.push_back(&conditions);
|
||||
|
||||
return allConditions;
|
||||
return allActions;
|
||||
}
|
||||
|
||||
vector < const gd::InstructionsList* > ForEachEvent::GetAllActionsVectors() const
|
||||
{
|
||||
vector < const gd::InstructionsList* > allActions;
|
||||
allActions.push_back(&actions);
|
||||
vector<const gd::Expression*> ForEachEvent::GetAllExpressions() const {
|
||||
vector<const gd::Expression*> allExpressions;
|
||||
allExpressions.push_back(&objectsToPick);
|
||||
|
||||
return allActions;
|
||||
return allExpressions;
|
||||
}
|
||||
|
||||
vector < const gd::Expression* > ForEachEvent::GetAllExpressions() const
|
||||
{
|
||||
vector < const gd::Expression* > allExpressions;
|
||||
allExpressions.push_back(&objectsToPick);
|
||||
|
||||
return allExpressions;
|
||||
void ForEachEvent::SerializeTo(SerializerElement& element) const {
|
||||
element.AddChild("object").SetValue(objectsToPick.GetPlainString());
|
||||
gd::EventsListSerialization::SerializeInstructionsTo(
|
||||
conditions, element.AddChild("conditions"));
|
||||
gd::EventsListSerialization::SerializeInstructionsTo(
|
||||
actions, element.AddChild("actions"));
|
||||
gd::EventsListSerialization::SerializeEventsTo(events,
|
||||
element.AddChild("events"));
|
||||
}
|
||||
|
||||
void ForEachEvent::SerializeTo(SerializerElement & element) const
|
||||
{
|
||||
element.AddChild("object").SetValue(objectsToPick.GetPlainString());
|
||||
gd::EventsListSerialization::SaveConditions(conditions, element.AddChild("conditions"));
|
||||
gd::EventsListSerialization::SaveActions(actions, element.AddChild("actions"));
|
||||
gd::EventsListSerialization::SerializeEventsTo(events, element.AddChild("events"));
|
||||
}
|
||||
|
||||
void ForEachEvent::UnserializeFrom(gd::Project & project, const SerializerElement & element)
|
||||
{
|
||||
objectsToPick = gd::Expression(element.GetChild("object", 0, "Object").GetValue().GetString());
|
||||
gd::EventsListSerialization::OpenConditions(project, conditions, element.GetChild("conditions", 0, "Conditions"));
|
||||
gd::EventsListSerialization::OpenActions(project, actions, element.GetChild("actions", 0, "Actions"));
|
||||
gd::EventsListSerialization::UnserializeEventsFrom(project, events, element.GetChild("events", 0, "Events"));
|
||||
void ForEachEvent::UnserializeFrom(gd::Project& project,
|
||||
const SerializerElement& element) {
|
||||
objectsToPick = gd::Expression(
|
||||
element.GetChild("object", 0, "Object").GetValue().GetString());
|
||||
gd::EventsListSerialization::UnserializeInstructionsFrom(
|
||||
project, conditions, element.GetChild("conditions", 0, "Conditions"));
|
||||
gd::EventsListSerialization::UnserializeInstructionsFrom(
|
||||
project, actions, element.GetChild("actions", 0, "Actions"));
|
||||
gd::EventsListSerialization::UnserializeEventsFrom(
|
||||
project, events, element.GetChild("events", 0, "Events"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the event in the bitmap
|
||||
*/
|
||||
void ForEachEvent::Render(wxDC & dc, int x, int y, unsigned int width, gd::EventsEditorItemsAreas & areas, gd::EventsEditorSelection & selection, const gd::Platform & platform)
|
||||
{
|
||||
void ForEachEvent::Render(wxDC& dc,
|
||||
int x,
|
||||
int y,
|
||||
unsigned int width,
|
||||
gd::EventsEditorItemsAreas& areas,
|
||||
gd::EventsEditorSelection& selection,
|
||||
const gd::Platform& platform) {
|
||||
#if !defined(GD_NO_WX_GUI)
|
||||
gd::EventsRenderingHelper * renderingHelper = gd::EventsRenderingHelper::Get();
|
||||
gd::EventsRenderingHelper* renderingHelper = gd::EventsRenderingHelper::Get();
|
||||
int border = renderingHelper->instructionsListBorder;
|
||||
const int forEachTextHeight = 20;
|
||||
|
||||
// Draw header rectangle
|
||||
wxRect headerRect(x, y, width, forEachTextHeight);
|
||||
renderingHelper->DrawNiceRectangle(dc, headerRect);
|
||||
|
||||
// For Each text
|
||||
dc.SetFont(renderingHelper->GetNiceFont().Bold());
|
||||
if (!IsDisabled())
|
||||
dc.SetTextForeground(wxColour(0, 0, 0));
|
||||
else
|
||||
dc.SetTextForeground(wxColour(160, 160, 160));
|
||||
dc.DrawText(_("For each object") + " " + objectsToPick.GetPlainString() +
|
||||
_(", repeat :"),
|
||||
x + 4,
|
||||
y + 3);
|
||||
|
||||
// Draw conditions rectangle
|
||||
wxRect rect(x,
|
||||
y + forEachTextHeight,
|
||||
renderingHelper->GetConditionsColumnWidth() + border,
|
||||
GetRenderedHeight(width, platform) - forEachTextHeight);
|
||||
renderingHelper->DrawNiceRectangle(dc, rect);
|
||||
|
||||
// Draw actions and conditions
|
||||
renderingHelper->DrawConditionsList(
|
||||
conditions,
|
||||
dc,
|
||||
x + border,
|
||||
y + forEachTextHeight + border,
|
||||
renderingHelper->GetConditionsColumnWidth() - border,
|
||||
this,
|
||||
areas,
|
||||
selection,
|
||||
platform);
|
||||
renderingHelper->DrawActionsList(
|
||||
actions,
|
||||
dc,
|
||||
x + renderingHelper->GetConditionsColumnWidth() + border,
|
||||
y + forEachTextHeight + border,
|
||||
width - renderingHelper->GetConditionsColumnWidth() - border * 2,
|
||||
this,
|
||||
areas,
|
||||
selection,
|
||||
platform);
|
||||
#endif
|
||||
}
|
||||
|
||||
unsigned int ForEachEvent::GetRenderedHeight(
|
||||
unsigned int width, const gd::Platform& platform) const {
|
||||
#if !defined(GD_NO_WX_GUI)
|
||||
if (eventHeightNeedUpdate) {
|
||||
gd::EventsRenderingHelper* renderingHelper =
|
||||
gd::EventsRenderingHelper::Get();
|
||||
int border = renderingHelper->instructionsListBorder;
|
||||
const int forEachTextHeight = 20;
|
||||
|
||||
//Draw header rectangle
|
||||
wxRect headerRect(x, y, width, forEachTextHeight);
|
||||
renderingHelper->DrawNiceRectangle(dc, headerRect);
|
||||
// Get maximum height needed
|
||||
int conditionsHeight = renderingHelper->GetRenderedConditionsListHeight(
|
||||
conditions,
|
||||
renderingHelper->GetConditionsColumnWidth() - border,
|
||||
platform);
|
||||
int actionsHeight = renderingHelper->GetRenderedActionsListHeight(
|
||||
actions,
|
||||
width - renderingHelper->GetConditionsColumnWidth() - border * 2,
|
||||
platform);
|
||||
|
||||
//For Each text
|
||||
dc.SetFont( renderingHelper->GetNiceFont().Bold() );
|
||||
dc.SetTextForeground(wxColour(0,0,0));
|
||||
dc.DrawText( _("For each object") + " " + objectsToPick.GetPlainString() + _(", repeat :"), x + 4, y + 3 );
|
||||
renderedHeight =
|
||||
((conditionsHeight > actionsHeight ? conditionsHeight : actionsHeight) +
|
||||
forEachTextHeight) +
|
||||
border * 2;
|
||||
eventHeightNeedUpdate = false;
|
||||
}
|
||||
|
||||
//Draw conditions rectangle
|
||||
wxRect rect(x, y+forEachTextHeight, renderingHelper->GetConditionsColumnWidth()+border, GetRenderedHeight(width, platform)-forEachTextHeight);
|
||||
renderingHelper->DrawNiceRectangle(dc, rect);
|
||||
|
||||
//Draw actions and conditions
|
||||
renderingHelper->DrawConditionsList(conditions, dc,
|
||||
x+border,
|
||||
y+forEachTextHeight+border,
|
||||
renderingHelper->GetConditionsColumnWidth()-border, this, areas, selection, platform);
|
||||
renderingHelper->DrawActionsList(actions, dc,
|
||||
x+renderingHelper->GetConditionsColumnWidth()+border,
|
||||
y+forEachTextHeight+border,
|
||||
width-renderingHelper->GetConditionsColumnWidth()-border*2, this, areas, selection, platform);
|
||||
#endif
|
||||
}
|
||||
|
||||
unsigned int ForEachEvent::GetRenderedHeight(unsigned int width, const gd::Platform & platform) const
|
||||
{
|
||||
#if !defined(GD_NO_WX_GUI)
|
||||
if ( eventHeightNeedUpdate )
|
||||
{
|
||||
gd::EventsRenderingHelper * renderingHelper = gd::EventsRenderingHelper::Get();
|
||||
int border = renderingHelper->instructionsListBorder;
|
||||
const int forEachTextHeight = 20;
|
||||
|
||||
//Get maximum height needed
|
||||
int conditionsHeight = renderingHelper->GetRenderedConditionsListHeight(conditions, renderingHelper->GetConditionsColumnWidth()-border, platform);
|
||||
int actionsHeight = renderingHelper->GetRenderedActionsListHeight(actions, width-renderingHelper->GetConditionsColumnWidth()-border*2, platform);
|
||||
|
||||
renderedHeight = (( conditionsHeight > actionsHeight ? conditionsHeight : actionsHeight ) + forEachTextHeight)+border*2;
|
||||
eventHeightNeedUpdate = false;
|
||||
}
|
||||
|
||||
return renderedHeight;
|
||||
return renderedHeight;
|
||||
#else
|
||||
return 0;
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
gd::BaseEvent::EditEventReturnType ForEachEvent::EditEvent(wxWindow* parent_, gd::Project & game_, gd::Layout & scene_, gd::MainFrameWrapper & mainFrameWrapper_)
|
||||
{
|
||||
gd::BaseEvent::EditEventReturnType ForEachEvent::EditEvent(
|
||||
wxWindow* parent_,
|
||||
gd::Project& game_,
|
||||
gd::Layout& scene_,
|
||||
gd::MainFrameWrapper& mainFrameWrapper_) {
|
||||
#if !defined(GD_NO_WX_GUI)
|
||||
EditForEachEvent dialog(parent_, *this, game_, scene_);
|
||||
if ( dialog.ShowModal() == 0 ) return Cancelled;
|
||||
EditForEachEvent dialog(parent_, *this, game_, scene_);
|
||||
if (dialog.ShowModal() == 0) return Cancelled;
|
||||
#endif
|
||||
|
||||
return ChangesMade;
|
||||
return ChangesMade;
|
||||
}
|
||||
|
||||
}
|
||||
} // namespace gd
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights
|
||||
* reserved. This project is released under the MIT License.
|
||||
*/
|
||||
|
||||
#ifndef FOREACHEVENT_H
|
||||
@@ -9,79 +9,107 @@
|
||||
#include "GDCore/Events/Event.h"
|
||||
#include "GDCore/Events/EventsList.h"
|
||||
class RuntimeScene;
|
||||
namespace gd { class Instruction; }
|
||||
namespace gd { class Project; }
|
||||
namespace gd { class MainFrameWrapper; }
|
||||
namespace gd {
|
||||
class Instruction;
|
||||
}
|
||||
namespace gd {
|
||||
class Project;
|
||||
}
|
||||
namespace gd {
|
||||
class MainFrameWrapper;
|
||||
}
|
||||
class TiXmlElement;
|
||||
namespace gd { class EventsEditorItemsAreas; }
|
||||
namespace gd { class EventsEditorSelection; }
|
||||
namespace gd { class Layout; }
|
||||
namespace gd {
|
||||
class EventsEditorItemsAreas;
|
||||
}
|
||||
namespace gd {
|
||||
class EventsEditorSelection;
|
||||
}
|
||||
namespace gd {
|
||||
class Layout;
|
||||
}
|
||||
class wxWindow;
|
||||
|
||||
namespace gd
|
||||
{
|
||||
namespace gd {
|
||||
|
||||
/**
|
||||
* \brief Event repeated for each object of a list.
|
||||
*
|
||||
* Each time the event is repeated, only the specific object of the list is picked.
|
||||
* Each time the event is repeated, only the specific object of the list is
|
||||
* picked.
|
||||
*/
|
||||
class GD_CORE_API ForEachEvent : public gd::BaseEvent
|
||||
{
|
||||
public:
|
||||
ForEachEvent();
|
||||
virtual ~ForEachEvent() {};
|
||||
virtual gd::ForEachEvent * Clone() const { return new ForEachEvent(*this);}
|
||||
class GD_CORE_API ForEachEvent : public gd::BaseEvent {
|
||||
public:
|
||||
ForEachEvent();
|
||||
virtual ~ForEachEvent(){};
|
||||
virtual gd::ForEachEvent* Clone() const { return new ForEachEvent(*this); }
|
||||
|
||||
virtual bool IsExecutable() const {return true;}
|
||||
virtual bool IsExecutable() const { return true; }
|
||||
|
||||
virtual bool CanHaveSubEvents() const {return true;}
|
||||
virtual const gd::EventsList & GetSubEvents() const {return events;};
|
||||
virtual gd::EventsList & GetSubEvents() {return events;};
|
||||
virtual bool CanHaveSubEvents() const { return true; }
|
||||
virtual const gd::EventsList& GetSubEvents() const { return events; };
|
||||
virtual gd::EventsList& GetSubEvents() { return events; };
|
||||
|
||||
const gd::InstructionsList & GetConditions() const { return conditions; };
|
||||
gd::InstructionsList & GetConditions() { return conditions; };
|
||||
const gd::InstructionsList& GetConditions() const { return conditions; };
|
||||
gd::InstructionsList& GetConditions() { return conditions; };
|
||||
|
||||
const gd::InstructionsList & GetActions() const { return actions; };
|
||||
gd::InstructionsList & GetActions() { return actions; };
|
||||
const gd::InstructionsList& GetActions() const { return actions; };
|
||||
gd::InstructionsList& GetActions() { return actions; };
|
||||
|
||||
const gd::String & GetObjectToPick() const { return objectsToPick.GetPlainString(); };
|
||||
void SetObjectToPick(gd::String objectsToPick_) { objectsToPick = gd::Expression(objectsToPick_); };
|
||||
const gd::String& GetObjectToPick() const {
|
||||
return objectsToPick.GetPlainString();
|
||||
};
|
||||
void SetObjectToPick(gd::String objectsToPick_) {
|
||||
objectsToPick = gd::Expression(objectsToPick_);
|
||||
};
|
||||
|
||||
virtual std::vector < const gd::InstructionsList* > GetAllConditionsVectors() const;
|
||||
virtual std::vector < const gd::InstructionsList* > GetAllActionsVectors() const;
|
||||
virtual std::vector < const gd::Expression* > GetAllExpressions() const;
|
||||
virtual std::vector < gd::InstructionsList* > GetAllConditionsVectors();
|
||||
virtual std::vector < gd::InstructionsList* > GetAllActionsVectors();
|
||||
virtual std::vector < gd::Expression* > GetAllExpressions();
|
||||
virtual std::vector<const gd::InstructionsList*> GetAllConditionsVectors()
|
||||
const;
|
||||
virtual std::vector<const gd::InstructionsList*> GetAllActionsVectors() const;
|
||||
virtual std::vector<const gd::Expression*> GetAllExpressions() const;
|
||||
virtual std::vector<gd::InstructionsList*> GetAllConditionsVectors();
|
||||
virtual std::vector<gd::InstructionsList*> GetAllActionsVectors();
|
||||
virtual std::vector<gd::Expression*> GetAllExpressions();
|
||||
|
||||
virtual void SerializeTo(SerializerElement & element) const;
|
||||
virtual void UnserializeFrom(gd::Project & project, const SerializerElement & element);
|
||||
virtual void SerializeTo(SerializerElement& element) const;
|
||||
virtual void UnserializeFrom(gd::Project& project,
|
||||
const SerializerElement& element);
|
||||
|
||||
/**
|
||||
* Called by event editor to draw the event.
|
||||
*/
|
||||
virtual void Render(wxDC & dc, int x, int y, unsigned int width, gd::EventsEditorItemsAreas & areas, gd::EventsEditorSelection & selection, const gd::Platform & platform);
|
||||
/**
|
||||
* Called by event editor to draw the event.
|
||||
*/
|
||||
virtual void Render(wxDC& dc,
|
||||
int x,
|
||||
int y,
|
||||
unsigned int width,
|
||||
gd::EventsEditorItemsAreas& areas,
|
||||
gd::EventsEditorSelection& selection,
|
||||
const gd::Platform& platform);
|
||||
|
||||
/**
|
||||
* Must return the height of the event when rendered
|
||||
*/
|
||||
virtual unsigned int GetRenderedHeight(unsigned int width, const gd::Platform & platform) const;
|
||||
/**
|
||||
* Must return the height of the event when rendered
|
||||
*/
|
||||
virtual unsigned int GetRenderedHeight(unsigned int width,
|
||||
const gd::Platform& platform) const;
|
||||
|
||||
/**
|
||||
* Called when the user want to edit the event
|
||||
*/
|
||||
virtual EditEventReturnType EditEvent(wxWindow* parent_, gd::Project & game_, gd::Layout & scene_, gd::MainFrameWrapper & mainFrameWrapper_);
|
||||
/**
|
||||
* Called when the user want to edit the event
|
||||
*/
|
||||
virtual EditEventReturnType EditEvent(
|
||||
wxWindow* parent_,
|
||||
gd::Project& game_,
|
||||
gd::Layout& scene_,
|
||||
gd::MainFrameWrapper& mainFrameWrapper_);
|
||||
|
||||
private:
|
||||
gd::Expression objectsToPick;
|
||||
gd::InstructionsList conditions;
|
||||
gd::InstructionsList actions;
|
||||
gd::EventsList events;
|
||||
private:
|
||||
gd::Expression objectsToPick;
|
||||
gd::InstructionsList conditions;
|
||||
gd::InstructionsList actions;
|
||||
gd::EventsList events;
|
||||
|
||||
bool objectsToPickSelected;
|
||||
bool objectsToPickSelected;
|
||||
};
|
||||
|
||||
}
|
||||
} // namespace gd
|
||||
|
||||
#endif // FOREACHEVENT_H
|
||||
#endif // FOREACHEVENT_H
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights
|
||||
* reserved. This project is released under the MIT License.
|
||||
*/
|
||||
|
||||
#include "GroupEvent.h"
|
||||
@@ -10,155 +10,154 @@
|
||||
#include <wx/renderer.h>
|
||||
#include "GDCore/IDE/Dialogs/MainFrameWrapper.h"
|
||||
#endif
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsRenderingHelper.h"
|
||||
#include "GDCore/CommonTools.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerationContext.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerator.h"
|
||||
#include "GDCore/Events/Serialization.h"
|
||||
#include "GDCore/IDE/Dialogs/EventStoreDialog.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsEditorItemsAreas.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsEditorSelection.h"
|
||||
#include "GDCore/Events/Serialization.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsRenderingHelper.h"
|
||||
#include "GDCore/IDE/Dialogs/GroupEventDialog.h"
|
||||
#include "GDCore/Serialization/SerializerElement.h"
|
||||
#include "GDCore/TinyXml/tinyxml.h"
|
||||
#include "GDCore/CommonTools.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerator.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerationContext.h"
|
||||
#include "GDCore/IDE/Dialogs/GroupEventDialog.h"
|
||||
#include "GDCore/IDE/Dialogs/EventStoreDialog.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace gd
|
||||
{
|
||||
namespace gd {
|
||||
|
||||
GroupEvent::GroupEvent() :
|
||||
BaseEvent(),
|
||||
creationTime(0),
|
||||
colorR(74),
|
||||
colorG(176),
|
||||
colorB(228)
|
||||
{
|
||||
GroupEvent::GroupEvent()
|
||||
: BaseEvent(), creationTime(0), colorR(74), colorG(176), colorB(228) {}
|
||||
|
||||
void GroupEvent::SerializeTo(SerializerElement& element) const {
|
||||
element.SetAttribute("name", name);
|
||||
element.SetAttribute("source", source);
|
||||
element.SetAttribute("creationTime", (int)creationTime);
|
||||
element.SetAttribute("colorR", (int)colorR);
|
||||
element.SetAttribute("colorG", (int)colorG);
|
||||
element.SetAttribute("colorB", (int)colorB);
|
||||
gd::EventsListSerialization::SerializeEventsTo(events,
|
||||
element.AddChild("events"));
|
||||
|
||||
gd::SerializerElement& parametersElement = element.AddChild("parameters");
|
||||
parametersElement.ConsiderAsArrayOf("parameter");
|
||||
for (std::size_t i = 0; i < parameters.size(); ++i)
|
||||
parametersElement.AddChild("parameter").SetValue(parameters[i]);
|
||||
}
|
||||
|
||||
void GroupEvent::SerializeTo(SerializerElement & element) const
|
||||
{
|
||||
element.SetAttribute("name", name);
|
||||
element.SetAttribute("source", source);
|
||||
element.SetAttribute("creationTime", (int)creationTime);
|
||||
element.SetAttribute("colorR", (int)colorR);
|
||||
element.SetAttribute("colorG", (int)colorG);
|
||||
element.SetAttribute("colorB", (int)colorB);
|
||||
gd::EventsListSerialization::SerializeEventsTo(events, element.AddChild("events"));
|
||||
void GroupEvent::UnserializeFrom(gd::Project& project,
|
||||
const SerializerElement& element) {
|
||||
name = element.GetStringAttribute("name");
|
||||
source = element.GetStringAttribute("source");
|
||||
creationTime = element.GetIntAttribute("creationTime");
|
||||
colorR = element.GetIntAttribute("colorR");
|
||||
colorG = element.GetIntAttribute("colorG");
|
||||
colorB = element.GetIntAttribute("colorB");
|
||||
gd::EventsListSerialization::UnserializeEventsFrom(
|
||||
project, events, element.GetChild("events"));
|
||||
|
||||
gd::SerializerElement & parametersElement = element.AddChild("parameters");
|
||||
parametersElement.ConsiderAsArrayOf("parameter");
|
||||
for ( std::size_t i = 0;i < parameters.size();++i)
|
||||
parametersElement.AddChild("parameter").SetValue(parameters[i]);
|
||||
parameters.clear();
|
||||
gd::SerializerElement& parametersElement = element.GetChild("parameters");
|
||||
parametersElement.ConsiderAsArrayOf("parameters");
|
||||
for (std::size_t i = 0; i < parametersElement.GetChildrenCount(); ++i)
|
||||
parameters.push_back(parametersElement.GetChild(i).GetValue().GetString());
|
||||
}
|
||||
|
||||
void GroupEvent::UnserializeFrom(gd::Project & project, const SerializerElement & element)
|
||||
{
|
||||
name = element.GetStringAttribute("name");
|
||||
source = element.GetStringAttribute("source");
|
||||
creationTime = element.GetIntAttribute("creationTime");
|
||||
colorR = element.GetIntAttribute("colorR");
|
||||
colorG = element.GetIntAttribute("colorG");
|
||||
colorB = element.GetIntAttribute("colorB");
|
||||
gd::EventsListSerialization::UnserializeEventsFrom(project, events, element.GetChild("events"));
|
||||
|
||||
parameters.clear();
|
||||
gd::SerializerElement & parametersElement = element.GetChild("parameters");
|
||||
parametersElement.ConsiderAsArrayOf("parameters");
|
||||
for ( std::size_t i = 0;i < parametersElement.GetChildrenCount();++i)
|
||||
parameters.push_back(parametersElement.GetChild(i).GetValue().GetString());
|
||||
}
|
||||
|
||||
gd::BaseEvent::EditEventReturnType GroupEvent::EditEvent(wxWindow* parent_, gd::Project & project, gd::Layout & scene, gd::MainFrameWrapper & mainFrameWrapper)
|
||||
{
|
||||
if (events.IsEmpty())
|
||||
events.InsertNewEvent(project, "BuiltinCommonInstructions::Standard");
|
||||
gd::BaseEvent::EditEventReturnType GroupEvent::EditEvent(
|
||||
wxWindow* parent_,
|
||||
gd::Project& project,
|
||||
gd::Layout& scene,
|
||||
gd::MainFrameWrapper& mainFrameWrapper) {
|
||||
if (events.IsEmpty())
|
||||
events.InsertNewEvent(project, "BuiltinCommonInstructions::Standard");
|
||||
|
||||
#if !defined(GD_NO_WX_GUI)
|
||||
if (source.empty())
|
||||
{
|
||||
GroupEventDialog dialog(parent_, *this);
|
||||
dialog.ShowModal();
|
||||
return ChangesMadeButNoNeedForEventsRecompilation;
|
||||
if (source.empty()) {
|
||||
GroupEventDialog dialog(parent_, *this);
|
||||
dialog.ShowModal();
|
||||
return ChangesMadeButNoNeedForEventsRecompilation;
|
||||
} else {
|
||||
gd::EventStoreDialog dialog(parent_, project, scene);
|
||||
|
||||
size_t found = source.rfind("/");
|
||||
if (found != gd::String::npos && found < source.size() - 1) {
|
||||
gd::String sourceId = source.substr(found + 1, source.size());
|
||||
dialog.RefreshWith(sourceId, parameters);
|
||||
}
|
||||
else
|
||||
{
|
||||
gd::EventStoreDialog dialog(parent_, project, scene);
|
||||
|
||||
size_t found = source.rfind("/");
|
||||
if (found != gd::String::npos && found < source.size()-1) {
|
||||
gd::String sourceId = source.substr(found+1, source.size());
|
||||
dialog.RefreshWith(sourceId, parameters);
|
||||
}
|
||||
if (dialog.ShowModal() != 1) return Cancelled;
|
||||
|
||||
if (dialog.ShowModal() != 1) return Cancelled;
|
||||
|
||||
//Insert new events
|
||||
*this = dialog.GetGroupEvent();
|
||||
return ChangesMade;
|
||||
}
|
||||
// Insert new events
|
||||
*this = dialog.GetGroupEvent();
|
||||
return ChangesMade;
|
||||
}
|
||||
#else
|
||||
return Cancelled;
|
||||
return Cancelled;
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
void GroupEvent::SetBackgroundColor(unsigned int colorR_, unsigned int colorG_, unsigned int colorB_)
|
||||
{
|
||||
colorR = colorR_;
|
||||
colorG = colorG_;
|
||||
colorB = colorB_;
|
||||
void GroupEvent::SetBackgroundColor(unsigned int colorR_,
|
||||
unsigned int colorG_,
|
||||
unsigned int colorB_) {
|
||||
colorR = colorR_;
|
||||
colorG = colorG_;
|
||||
colorB = colorB_;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the event in the bitmap
|
||||
*/
|
||||
void GroupEvent::Render(wxDC & dc, int x, int y, unsigned int width, gd::EventsEditorItemsAreas & areas, gd::EventsEditorSelection & selection, const gd::Platform & platform)
|
||||
{
|
||||
void GroupEvent::Render(wxDC& dc,
|
||||
int x,
|
||||
int y,
|
||||
unsigned int width,
|
||||
gd::EventsEditorItemsAreas& areas,
|
||||
gd::EventsEditorSelection& selection,
|
||||
const gd::Platform& platform) {
|
||||
#if !defined(GD_NO_WX_GUI)
|
||||
wxString groupTitle = name.empty() ? _("Untitled group") : wxString(name);
|
||||
wxColour backgroundColor = wxColour(colorR, colorG, colorB);
|
||||
wxColour textColor = colorR + colorG + colorB > 200 * 3 ? *wxBLACK : *wxWHITE;
|
||||
if (IsDisabled()) {
|
||||
backgroundColor.MakeDisabled();
|
||||
textColor = wxColour(160, 160, 160);
|
||||
}
|
||||
|
||||
dc.SetBrush(wxBrush(backgroundColor));
|
||||
dc.SetPen(wxPen(backgroundColor.ChangeLightness(70)));
|
||||
wxRect rect(x + 1, y, width - 2, GetRenderedHeight(width, platform) - 2);
|
||||
dc.DrawRectangle(rect);
|
||||
|
||||
dc.SetTextBackground(backgroundColor);
|
||||
dc.SetTextForeground(textColor);
|
||||
dc.SetFont(
|
||||
wxFont(12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD));
|
||||
dc.DrawText(groupTitle, x + 5, y + 5);
|
||||
#endif
|
||||
}
|
||||
|
||||
unsigned int GroupEvent::GetRenderedHeight(unsigned int width,
|
||||
const gd::Platform& platform) const {
|
||||
#if !defined(GD_NO_WX_GUI)
|
||||
if (eventHeightNeedUpdate) {
|
||||
wxMemoryDC dc;
|
||||
wxBitmap fakeBmp(1, 1);
|
||||
dc.SelectObject(fakeBmp);
|
||||
|
||||
wxString groupTitle = name.empty() ? _("Untitled group") : wxString(name);
|
||||
wxColour backgroundColor = wxColour(colorR, colorG, colorB);
|
||||
wxColour textColor = colorR + colorG + colorB > 200*3 ? *wxBLACK : *wxWHITE;
|
||||
if (IsDisabled())
|
||||
{
|
||||
backgroundColor.MakeDisabled();
|
||||
textColor = wxColour(160, 160, 160);
|
||||
}
|
||||
|
||||
dc.SetBrush(wxBrush(backgroundColor));
|
||||
dc.SetPen(wxPen(backgroundColor.ChangeLightness(70)));
|
||||
wxRect rect(x+1, y, width-2, GetRenderedHeight(width, platform)-2);
|
||||
dc.DrawRectangle(rect);
|
||||
dc.SetFont(wxFont(
|
||||
12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL));
|
||||
wxRect text = dc.GetTextExtent(groupTitle);
|
||||
|
||||
dc.SetTextBackground(backgroundColor);
|
||||
dc.SetTextForeground(textColor);
|
||||
dc.SetFont( wxFont( 12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD ) );
|
||||
dc.DrawText( groupTitle, x+5, y + 5 );
|
||||
#endif
|
||||
}
|
||||
renderedHeight = text.GetHeight() + 10;
|
||||
eventHeightNeedUpdate = false;
|
||||
}
|
||||
|
||||
unsigned int GroupEvent::GetRenderedHeight(unsigned int width, const gd::Platform & platform) const
|
||||
{
|
||||
#if !defined(GD_NO_WX_GUI)
|
||||
if ( eventHeightNeedUpdate )
|
||||
{
|
||||
wxMemoryDC dc;
|
||||
wxBitmap fakeBmp(1,1);
|
||||
dc.SelectObject(fakeBmp);
|
||||
|
||||
wxString groupTitle = name.empty() ? _("Untitled group") : wxString(name);
|
||||
|
||||
dc.SetFont( wxFont( 12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL ) );
|
||||
wxRect text = dc.GetTextExtent(groupTitle);
|
||||
|
||||
renderedHeight = text.GetHeight()+10;
|
||||
eventHeightNeedUpdate = false;
|
||||
}
|
||||
|
||||
return renderedHeight;
|
||||
return renderedHeight;
|
||||
#else
|
||||
return 0;
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
} // namespace gd
|
||||
|
@@ -1,136 +1,165 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights
|
||||
* reserved. This project is released under the MIT License.
|
||||
*/
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
#ifndef GDCORE_GROUPEVENT_H
|
||||
#define GDCORE_GROUPEVENT_H
|
||||
#include "GDCore/Events/Event.h"
|
||||
#include "GDCore/Events/Instruction.h"
|
||||
#include "GDCore/Events/EventsList.h"
|
||||
namespace gd { class Instruction; }
|
||||
namespace gd { class Project; }
|
||||
#include "GDCore/Events/Instruction.h"
|
||||
namespace gd {
|
||||
class Instruction;
|
||||
}
|
||||
namespace gd {
|
||||
class Project;
|
||||
}
|
||||
class RuntimeScene;
|
||||
class TiXmlElement;
|
||||
class EventsCodeGenerationContext;
|
||||
namespace gd { class EventsEditorItemsAreas; }
|
||||
namespace gd { class EventsEditorSelection; }
|
||||
|
||||
namespace gd
|
||||
{
|
||||
|
||||
/**
|
||||
* \brief A group event, containing only sub events and some (visual only) properties.
|
||||
*/
|
||||
class GD_CORE_API GroupEvent : public gd::BaseEvent
|
||||
{
|
||||
public:
|
||||
GroupEvent();
|
||||
virtual ~GroupEvent() {};
|
||||
virtual gd::GroupEvent * Clone() const { return new GroupEvent(*this);}
|
||||
|
||||
virtual bool IsExecutable() const {return true;}
|
||||
|
||||
/**
|
||||
* \brief Get the name of the group.
|
||||
*/
|
||||
const gd::String & GetName() const { return name; }
|
||||
|
||||
/**
|
||||
* \brief Change the name of the group.
|
||||
*/
|
||||
void SetName(const gd::String & name_) { name = name_; }
|
||||
|
||||
/**
|
||||
* \brief Get the source of the group.
|
||||
* \note The source is usually an URL from which
|
||||
* the group and its events was downloaded.
|
||||
*/
|
||||
const gd::String & GetSource() const { return source; }
|
||||
|
||||
/**
|
||||
* \brief Set the source of the group.
|
||||
*/
|
||||
void SetSource(const gd::String & source_) { source = source_; }
|
||||
|
||||
/**
|
||||
* \brief Get the vector containing the parameters that have been used to
|
||||
* create the group and its sub events.
|
||||
* \note These parameters are optional and only used to remember how the
|
||||
* group was created from an events template for example: if the user wants
|
||||
* to update the group with a new version of the template, the parameters
|
||||
* can be displayed again to easy the update.
|
||||
*/
|
||||
std::vector<gd::String> & GetCreationParameters() { return parameters; }
|
||||
const std::vector<gd::String> & GetCreationParameters() const { return parameters; }
|
||||
|
||||
/**
|
||||
* \brief Return the creation timestamp
|
||||
* \return The timestamp, or 0 if not specified for the group.
|
||||
*/
|
||||
unsigned int GetCreationTimestamp() const { return creationTime; }
|
||||
|
||||
/**
|
||||
* \brief Set timestamp of the creation of the group.
|
||||
* \note This is purely optional and only used for checking for example if
|
||||
* a new version of the group is available, if it has a source URL.
|
||||
*/
|
||||
void SetCreationTimestamp(unsigned int creationTime_) { creationTime = creationTime_; }
|
||||
|
||||
/**
|
||||
* \brief Change the color of the group
|
||||
*/
|
||||
void SetBackgroundColor(unsigned int colorR, unsigned int colorG, unsigned int colorB);
|
||||
|
||||
/**
|
||||
* \brief Get background color red component.
|
||||
*/
|
||||
unsigned int GetBackgroundColorR() const { return colorR; };
|
||||
|
||||
/**
|
||||
* \brief Get background color green component.
|
||||
*/
|
||||
unsigned int GetBackgroundColorG() const { return colorG; };
|
||||
|
||||
/**
|
||||
* \brief Get background color blue component.
|
||||
*/
|
||||
unsigned int GetBackgroundColorB() const { return colorB; };
|
||||
|
||||
virtual bool CanHaveSubEvents() const {return true;}
|
||||
virtual const gd::EventsList & GetSubEvents() const {return events;};
|
||||
virtual gd::EventsList & GetSubEvents() {return events;};
|
||||
|
||||
virtual void SerializeTo(SerializerElement & element) const;
|
||||
virtual void UnserializeFrom(gd::Project & project, const SerializerElement & element);
|
||||
|
||||
virtual gd::BaseEvent::EditEventReturnType EditEvent(wxWindow* parent_, gd::Project & project, gd::Layout & scene, gd::MainFrameWrapper & mainFrameWrapper);
|
||||
|
||||
/**
|
||||
* Called by event editor to draw the event.
|
||||
*/
|
||||
virtual void Render(wxDC & dc, int x, int y, unsigned int width, gd::EventsEditorItemsAreas & areas, gd::EventsEditorSelection & selection, const gd::Platform & platform);
|
||||
|
||||
/**
|
||||
* Must return the height of the event when rendered
|
||||
*/
|
||||
virtual unsigned int GetRenderedHeight(unsigned int width, const gd::Platform & platform) const;
|
||||
|
||||
private:
|
||||
EventsList events;
|
||||
|
||||
gd::String name; ///<Optional. A name displayed in the events editor.
|
||||
gd::String source; ///< Optional. The source can contains the URL from which the group was downloaded.
|
||||
unsigned int creationTime; ///< Optional. The time when the group was created from an event template.
|
||||
std::vector<gd::String> parameters; ///< Optional. Can be used to remember the parameters used if the group was created from an events template.
|
||||
unsigned int colorR;
|
||||
unsigned int colorG;
|
||||
unsigned int colorB;
|
||||
};
|
||||
|
||||
namespace gd {
|
||||
class EventsEditorItemsAreas;
|
||||
}
|
||||
namespace gd {
|
||||
class EventsEditorSelection;
|
||||
}
|
||||
|
||||
#endif // GDCORE_GROUPEVENT_H
|
||||
namespace gd {
|
||||
|
||||
/**
|
||||
* \brief A group event, containing only sub events and some (visual only)
|
||||
* properties.
|
||||
*/
|
||||
class GD_CORE_API GroupEvent : public gd::BaseEvent {
|
||||
public:
|
||||
GroupEvent();
|
||||
virtual ~GroupEvent(){};
|
||||
virtual gd::GroupEvent* Clone() const { return new GroupEvent(*this); }
|
||||
|
||||
virtual bool IsExecutable() const { return true; }
|
||||
|
||||
/**
|
||||
* \brief Get the name of the group.
|
||||
*/
|
||||
const gd::String& GetName() const { return name; }
|
||||
|
||||
/**
|
||||
* \brief Change the name of the group.
|
||||
*/
|
||||
void SetName(const gd::String& name_) { name = name_; }
|
||||
|
||||
/**
|
||||
* \brief Get the source of the group.
|
||||
* \note The source is usually an URL from which
|
||||
* the group and its events was downloaded.
|
||||
*/
|
||||
const gd::String& GetSource() const { return source; }
|
||||
|
||||
/**
|
||||
* \brief Set the source of the group.
|
||||
*/
|
||||
void SetSource(const gd::String& source_) { source = source_; }
|
||||
|
||||
/**
|
||||
* \brief Get the vector containing the parameters that have been used to
|
||||
* create the group and its sub events.
|
||||
* \note These parameters are optional and only used to remember how the
|
||||
* group was created from an events template for example: if the user wants
|
||||
* to update the group with a new version of the template, the parameters
|
||||
* can be displayed again to easy the update.
|
||||
*/
|
||||
std::vector<gd::String>& GetCreationParameters() { return parameters; }
|
||||
const std::vector<gd::String>& GetCreationParameters() const {
|
||||
return parameters;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Return the creation timestamp
|
||||
* \return The timestamp, or 0 if not specified for the group.
|
||||
*/
|
||||
unsigned int GetCreationTimestamp() const { return creationTime; }
|
||||
|
||||
/**
|
||||
* \brief Set timestamp of the creation of the group.
|
||||
* \note This is purely optional and only used for checking for example if
|
||||
* a new version of the group is available, if it has a source URL.
|
||||
*/
|
||||
void SetCreationTimestamp(unsigned int creationTime_) {
|
||||
creationTime = creationTime_;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Change the color of the group
|
||||
*/
|
||||
void SetBackgroundColor(unsigned int colorR,
|
||||
unsigned int colorG,
|
||||
unsigned int colorB);
|
||||
|
||||
/**
|
||||
* \brief Get background color red component.
|
||||
*/
|
||||
unsigned int GetBackgroundColorR() const { return colorR; };
|
||||
|
||||
/**
|
||||
* \brief Get background color green component.
|
||||
*/
|
||||
unsigned int GetBackgroundColorG() const { return colorG; };
|
||||
|
||||
/**
|
||||
* \brief Get background color blue component.
|
||||
*/
|
||||
unsigned int GetBackgroundColorB() const { return colorB; };
|
||||
|
||||
virtual bool CanHaveSubEvents() const { return true; }
|
||||
virtual const gd::EventsList& GetSubEvents() const { return events; };
|
||||
virtual gd::EventsList& GetSubEvents() { return events; };
|
||||
|
||||
virtual void SerializeTo(SerializerElement& element) const;
|
||||
virtual void UnserializeFrom(gd::Project& project,
|
||||
const SerializerElement& element);
|
||||
|
||||
virtual gd::BaseEvent::EditEventReturnType EditEvent(
|
||||
wxWindow* parent_,
|
||||
gd::Project& project,
|
||||
gd::Layout& scene,
|
||||
gd::MainFrameWrapper& mainFrameWrapper);
|
||||
|
||||
/**
|
||||
* Called by event editor to draw the event.
|
||||
*/
|
||||
virtual void Render(wxDC& dc,
|
||||
int x,
|
||||
int y,
|
||||
unsigned int width,
|
||||
gd::EventsEditorItemsAreas& areas,
|
||||
gd::EventsEditorSelection& selection,
|
||||
const gd::Platform& platform);
|
||||
|
||||
/**
|
||||
* Must return the height of the event when rendered
|
||||
*/
|
||||
virtual unsigned int GetRenderedHeight(unsigned int width,
|
||||
const gd::Platform& platform) const;
|
||||
|
||||
private:
|
||||
EventsList events;
|
||||
|
||||
gd::String name; ///< Optional. A name displayed in the events editor.
|
||||
gd::String source; ///< Optional. The source can contains the URL from which
|
||||
///< the group was downloaded.
|
||||
unsigned int creationTime; ///< Optional. The time when the group was created
|
||||
///< from an event template.
|
||||
std::vector<gd::String>
|
||||
parameters; ///< Optional. Can be used to remember the parameters used if
|
||||
///< the group was created from an events template.
|
||||
unsigned int colorR;
|
||||
unsigned int colorG;
|
||||
unsigned int colorB;
|
||||
};
|
||||
|
||||
} // namespace gd
|
||||
|
||||
#endif // GDCORE_GROUPEVENT_H
|
||||
#endif
|
||||
|
@@ -1,190 +1,250 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights
|
||||
* reserved. This project is released under the MIT License.
|
||||
*/
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
#if !defined(GD_NO_WX_GUI)
|
||||
#include <wx/dcmemory.h>
|
||||
#endif
|
||||
#include "GDCore/IDE/wxTools/SkinHelper.h"
|
||||
#include "GDCore/Serialization/SerializerElement.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsRenderingHelper.h"
|
||||
#include "GDCore/Project/Object.h"
|
||||
#include "GDCore/Project/Project.h"
|
||||
#include "GDCore/Project/Layout.h"
|
||||
#include "GDCore/Project/ExternalEvents.h"
|
||||
#include "GDCore/CommonTools.h"
|
||||
#include "GDCore/Events/Builtin/GroupEvent.h"
|
||||
#include "GDCore/Events/Builtin/LinkEvent.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerationContext.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerator.h"
|
||||
#include "GDCore/Events/Tools/EventsCodeNameMangler.h"
|
||||
#include "GDCore/Events/Builtin/LinkEvent.h"
|
||||
#include "GDCore/IDE/Dialogs/EditLink.h"
|
||||
#include "GDCore/CommonTools.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsRenderingHelper.h"
|
||||
#include "GDCore/IDE/Dialogs/LinkEventEditor.h"
|
||||
#include "GDCore/IDE/wxTools/SkinHelper.h"
|
||||
#include "GDCore/Project/ExternalEvents.h"
|
||||
#include "GDCore/Project/Layout.h"
|
||||
#include "GDCore/Project/Object.h"
|
||||
#include "GDCore/Project/Project.h"
|
||||
#include "GDCore/Serialization/SerializerElement.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace gd
|
||||
{
|
||||
namespace gd {
|
||||
|
||||
const EventsList * LinkEvent::GetLinkedEvents(const gd::Project & project) const
|
||||
{
|
||||
const EventsList * events = NULL;
|
||||
const gd::ExternalEvents * linkedExternalEvents = NULL;
|
||||
if ( project.HasExternalEventsNamed(GetTarget()) )
|
||||
{
|
||||
linkedExternalEvents = &project.GetExternalEvents(GetTarget());
|
||||
events = &project.GetExternalEvents(GetTarget()).GetEvents();
|
||||
}
|
||||
else if ( project.HasLayoutNamed(GetTarget()) )
|
||||
events = &project.GetLayout(GetTarget()).GetEvents();
|
||||
const EventsList* LinkEvent::GetLinkedEvents(const gd::Project& project) const {
|
||||
const EventsList* events = nullptr;
|
||||
const gd::ExternalEvents* linkedExternalEvents = nullptr;
|
||||
if (project.HasExternalEventsNamed(GetTarget())) {
|
||||
linkedExternalEvents = &project.GetExternalEvents(GetTarget());
|
||||
events = &project.GetExternalEvents(GetTarget()).GetEvents();
|
||||
} else if (project.HasLayoutNamed(GetTarget()))
|
||||
events = &project.GetLayout(GetTarget()).GetEvents();
|
||||
|
||||
return events;
|
||||
}
|
||||
|
||||
void LinkEvent::ReplaceLinkByLinkedEvents(gd::Project & project, EventsList & eventList, std::size_t indexOfTheEventInThisList)
|
||||
{
|
||||
//Finding what to link to.
|
||||
const EventsList * eventsToInclude = GetLinkedEvents(project);
|
||||
if ( eventsToInclude != NULL )
|
||||
{
|
||||
std::size_t firstEvent = IncludeAllEvents() ? 0 : GetIncludeStart();
|
||||
std::size_t lastEvent = IncludeAllEvents() ? eventsToInclude->size() - 1 : GetIncludeEnd();
|
||||
|
||||
//Check bounds
|
||||
if ( firstEvent >= eventsToInclude->size() )
|
||||
{
|
||||
std::cout << "Unable to get events from a link ( Invalid start )" << std::endl;
|
||||
linkWasInvalid = true;
|
||||
return;
|
||||
}
|
||||
if ( lastEvent >= eventsToInclude->size() )
|
||||
{
|
||||
std::cout << "Unable to get events from a link ( Invalid end )" << std::endl;
|
||||
linkWasInvalid = true;
|
||||
return;
|
||||
}
|
||||
if ( firstEvent > lastEvent )
|
||||
{
|
||||
std::cout << "Unable to get events from a link ( End is before start )" << std::endl;
|
||||
linkWasInvalid = true;
|
||||
return;
|
||||
}
|
||||
|
||||
//Insert an empty event to replace the link event ( we'll delete the link event at the end )
|
||||
//( If we just erase the link event without adding a blank event to replace it,
|
||||
//the first event inserted by the link will not be preprocessed ( and it can be annoying if it require preprocessing, such as another link event ). )
|
||||
gd::EmptyEvent emptyEvent;
|
||||
eventList.InsertEvent(emptyEvent, indexOfTheEventInThisList);
|
||||
eventList.InsertEvents(*eventsToInclude, firstEvent, lastEvent, indexOfTheEventInThisList+1);
|
||||
|
||||
//Delete the link event ( which is now at the end of the list of events we've just inserted )
|
||||
eventList.RemoveEvent(indexOfTheEventInThisList + 1 + static_cast<unsigned>(lastEvent-firstEvent)+1);
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Unable to get events from a link." << std::endl;
|
||||
linkWasInvalid = true;
|
||||
|
||||
//Delete the link event
|
||||
eventList.RemoveEvent(indexOfTheEventInThisList);
|
||||
return;
|
||||
// If the link only includes an events group, search it inside the
|
||||
// layout/external events
|
||||
if (includeConfig == INCLUDE_EVENTS_GROUP) {
|
||||
std::size_t i = 0;
|
||||
std::size_t eventsCount = events->GetEventsCount();
|
||||
for (; i < eventsCount; ++i) {
|
||||
std::shared_ptr<const GroupEvent> groupEvent =
|
||||
std::dynamic_pointer_cast<const GroupEvent>(
|
||||
events->GetEventSmartPtr(i));
|
||||
if (groupEvent && groupEvent->GetName() == eventsGroupName) {
|
||||
// Get its sub-events
|
||||
events = &groupEvent->GetSubEvents();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
linkWasInvalid = false;
|
||||
if (i >= eventsCount) // We didn't find the events group, return nullptr
|
||||
events = nullptr;
|
||||
}
|
||||
|
||||
return events;
|
||||
}
|
||||
|
||||
LinkEvent::~LinkEvent()
|
||||
{
|
||||
void LinkEvent::ReplaceLinkByLinkedEvents(
|
||||
const gd::Project& project,
|
||||
EventsList& eventList,
|
||||
std::size_t indexOfTheEventInThisList) {
|
||||
linkWasInvalid = false;
|
||||
// Finding what to link to.
|
||||
const EventsList* eventsToInclude = GetLinkedEvents(project);
|
||||
if (eventsToInclude != NULL) {
|
||||
std::size_t firstEvent =
|
||||
includeConfig == INCLUDE_BY_INDEX ? GetIncludeStart() : 0;
|
||||
std::size_t lastEvent = includeConfig == INCLUDE_BY_INDEX
|
||||
? GetIncludeEnd()
|
||||
: eventsToInclude->size() - 1;
|
||||
|
||||
// Check bounds
|
||||
if (firstEvent >= eventsToInclude->size()) {
|
||||
std::cout << "Unable to get events from a link ( Invalid start )"
|
||||
<< std::endl;
|
||||
linkWasInvalid = true;
|
||||
return;
|
||||
}
|
||||
if (lastEvent >= eventsToInclude->size()) {
|
||||
std::cout << "Unable to get events from a link ( Invalid end )"
|
||||
<< std::endl;
|
||||
linkWasInvalid = true;
|
||||
return;
|
||||
}
|
||||
if (firstEvent > lastEvent) {
|
||||
std::cout << "Unable to get events from a link ( End is before start )"
|
||||
<< std::endl;
|
||||
linkWasInvalid = true;
|
||||
return;
|
||||
}
|
||||
|
||||
// Insert an empty event to replace the link event ( we'll delete the link
|
||||
// event at the end ) ( If we just erase the link event without adding a
|
||||
// blank event to replace it, the first event inserted by the link will not
|
||||
// be preprocessed ( and it can be annoying if it require preprocessing,
|
||||
// such as another link event ). )
|
||||
gd::EmptyEvent emptyEvent;
|
||||
eventList.InsertEvent(emptyEvent, indexOfTheEventInThisList);
|
||||
eventList.InsertEvents(
|
||||
*eventsToInclude, firstEvent, lastEvent, indexOfTheEventInThisList + 1);
|
||||
|
||||
// Delete the link event ( which is now at the end of the list of events
|
||||
// we've just inserted )
|
||||
eventList.RemoveEvent(indexOfTheEventInThisList + 1 +
|
||||
static_cast<unsigned>(lastEvent - firstEvent) + 1);
|
||||
} else {
|
||||
std::cout << "Unable to get events from a link." << std::endl;
|
||||
linkWasInvalid = true;
|
||||
|
||||
// Delete the link event
|
||||
eventList.RemoveEvent(indexOfTheEventInThisList);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void LinkEvent::SerializeTo(SerializerElement & element) const
|
||||
{
|
||||
element.AddChild("include")
|
||||
.SetAttribute("includeAll", IncludeAllEvents())
|
||||
.SetAttribute("start", (int)GetIncludeStart())
|
||||
.SetAttribute("end", (int)GetIncludeEnd());
|
||||
LinkEvent::~LinkEvent() {}
|
||||
|
||||
element.AddChild("target").SetValue(GetTarget());
|
||||
void LinkEvent::SerializeTo(SerializerElement& element) const {
|
||||
SerializerElement& includeElement = element.AddChild("include").SetAttribute(
|
||||
"includeConfig", static_cast<int>(GetIncludeConfig()));
|
||||
|
||||
if (GetIncludeConfig() == INCLUDE_EVENTS_GROUP) {
|
||||
includeElement.SetAttribute("eventsGroup", GetEventsGroupName());
|
||||
} else if (GetIncludeConfig() == INCLUDE_BY_INDEX) {
|
||||
includeElement.SetAttribute("start", static_cast<int>(GetIncludeStart()));
|
||||
includeElement.SetAttribute("end", static_cast<int>(GetIncludeEnd()));
|
||||
}
|
||||
|
||||
element.AddChild("target").SetValue(GetTarget());
|
||||
}
|
||||
|
||||
void LinkEvent::UnserializeFrom(gd::Project & project, const SerializerElement & element)
|
||||
{
|
||||
SerializerElement & includeElement = element.GetChild("include", 0, "Limites");
|
||||
SetIncludeStartAndEnd(includeElement.GetIntAttribute("start"),
|
||||
includeElement.GetIntAttribute("end"));
|
||||
SetIncludeAllEvents(includeElement.GetBoolAttribute("includeAll", true));
|
||||
void LinkEvent::UnserializeFrom(gd::Project& project,
|
||||
const SerializerElement& element) {
|
||||
SerializerElement& includeElement = element.GetChild("include", 0, "Limites");
|
||||
|
||||
SetTarget(element.GetChild("target", 0, "Scene").GetValue().GetString());
|
||||
SetTarget(element.GetChild("target", 0, "Scene").GetValue().GetString());
|
||||
|
||||
if (includeElement.HasAttribute("includeAll")) {
|
||||
// Compatibility with GDevelop <= 4.0.92
|
||||
if (includeElement.GetBoolAttribute("includeAll", true)) {
|
||||
SetIncludeAllEvents();
|
||||
} else {
|
||||
SetIncludeStartAndEnd(includeElement.GetIntAttribute("start"),
|
||||
includeElement.GetIntAttribute("end"));
|
||||
}
|
||||
} else {
|
||||
// GDevelop > 4.0.92
|
||||
IncludeConfig config = static_cast<IncludeConfig>(
|
||||
includeElement.GetIntAttribute("includeConfig", 0));
|
||||
if (config == INCLUDE_ALL)
|
||||
SetIncludeAllEvents();
|
||||
else if (config == INCLUDE_EVENTS_GROUP)
|
||||
SetIncludeEventsGroup(includeElement.GetStringAttribute("eventsGroup"));
|
||||
else if (config == INCLUDE_BY_INDEX)
|
||||
SetIncludeStartAndEnd(includeElement.GetIntAttribute("start"),
|
||||
includeElement.GetIntAttribute("end"));
|
||||
}
|
||||
}
|
||||
|
||||
gd::BaseEvent::EditEventReturnType LinkEvent::EditEvent(wxWindow* parent_, gd::Project & project, gd::Layout & scene_, gd::MainFrameWrapper & mainFrameWrapper_)
|
||||
{
|
||||
gd::BaseEvent::EditEventReturnType LinkEvent::EditEvent(
|
||||
wxWindow* parent_,
|
||||
gd::Project& project,
|
||||
gd::Layout& scene_,
|
||||
gd::MainFrameWrapper& mainFrameWrapper_) {
|
||||
#if !defined(GD_NO_WX_GUI)
|
||||
EditLink dialog(parent_, *this, project);
|
||||
if ( dialog.ShowModal() == 0 ) return Cancelled;
|
||||
LinkEventEditor dialog(parent_, *this, project);
|
||||
if (dialog.ShowModal() == 0) return Cancelled;
|
||||
#endif
|
||||
|
||||
return ChangesMade;
|
||||
return ChangesMade;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the event in the bitmap
|
||||
*/
|
||||
void LinkEvent::Render(wxDC & dc, int x, int y, unsigned int width, gd::EventsEditorItemsAreas & areas, gd::EventsEditorSelection & selection, const gd::Platform & platform)
|
||||
{
|
||||
void LinkEvent::Render(wxDC& dc,
|
||||
int x,
|
||||
int y,
|
||||
unsigned int width,
|
||||
gd::EventsEditorItemsAreas& areas,
|
||||
gd::EventsEditorSelection& selection,
|
||||
const gd::Platform& platform) {
|
||||
#if !defined(GD_NO_WX_GUI)
|
||||
gd::EventsRenderingHelper * renderingHelper = gd::EventsRenderingHelper::Get();
|
||||
gd::EventsRenderingHelper* renderingHelper = gd::EventsRenderingHelper::Get();
|
||||
|
||||
dc.SetBrush( wxBrush( wxColour( 255, 255, 255 ) ) );
|
||||
dc.SetPen( wxPen( wxColour( 0, 0, 0 ), 1) );
|
||||
wxRect rect(x+1, y, width-2, GetRenderedHeight(width, platform)-2);
|
||||
dc.DrawRectangle(rect);
|
||||
dc.SetBrush(wxBrush(wxColour(255, 255, 255)));
|
||||
dc.SetPen(wxPen(wxColour(0, 0, 0), 1));
|
||||
wxRect rect(x + 1, y, width - 2, GetRenderedHeight(width, platform) - 2);
|
||||
dc.DrawRectangle(rect);
|
||||
|
||||
dc.DrawBitmap( gd::SkinHelper::GetIcon("events", 24), x+4, y + 1, true);
|
||||
dc.DrawBitmap(gd::SkinHelper::GetIcon("events", 24), x + 4, y + 1, true);
|
||||
|
||||
dc.SetTextBackground( wxColour( 255, 255, 255 ) );
|
||||
if ( !IsDisabled() )
|
||||
dc.SetTextForeground( wxColour( 0, 0, 0 ) );
|
||||
else
|
||||
dc.SetTextForeground( wxColour( 160, 160, 160 ) );
|
||||
dc.SetTextBackground(wxColour(255, 255, 255));
|
||||
if (!IsDisabled())
|
||||
dc.SetTextForeground(wxColour(0, 0, 0));
|
||||
else
|
||||
dc.SetTextForeground(wxColour(160, 160, 160));
|
||||
|
||||
dc.SetFont(renderingHelper->GetNiceFont());
|
||||
dc.DrawText( _("Link to ")+GetTarget(), x+32, y + 3 );
|
||||
dc.SetFont(renderingHelper->GetNiceFont());
|
||||
dc.DrawText(_("Link to ") + GetTarget(), x + 32, y + 3);
|
||||
|
||||
if ( !IncludeAllEvents() )
|
||||
{
|
||||
wxRect textRect = dc.GetTextExtent(_("Link to ")+GetTarget());
|
||||
dc.DrawText( _("Include only events ")+gd::String::From(GetIncludeStart()+1)+_(" to ")+gd::String::From(GetIncludeEnd()+1), x+textRect.GetWidth()+32+10, y + 5 );
|
||||
}
|
||||
if (GetIncludeConfig() == INCLUDE_BY_INDEX) {
|
||||
wxRect textRect = dc.GetTextExtent(_("Link to ") + GetTarget());
|
||||
dc.DrawText(_("Include only events ") +
|
||||
gd::String::From(GetIncludeStart() + 1) + _(" to ") +
|
||||
gd::String::From(GetIncludeEnd() + 1),
|
||||
x + textRect.GetWidth() + 32 + 10,
|
||||
y + 5);
|
||||
} else if (GetIncludeConfig() == INCLUDE_EVENTS_GROUP) {
|
||||
wxRect textRect = dc.GetTextExtent(_("Link to ") + GetTarget());
|
||||
dc.DrawText(_("Include only the events group named \"") +
|
||||
gd::String::From(GetEventsGroupName()) + _("\""),
|
||||
x + textRect.GetWidth() + 32 + 10,
|
||||
y + 5);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* Precompute height for the link
|
||||
*/
|
||||
unsigned int LinkEvent::GetRenderedHeight(unsigned int width, const gd::Platform & platform) const
|
||||
{
|
||||
unsigned int LinkEvent::GetRenderedHeight(unsigned int width,
|
||||
const gd::Platform& platform) const {
|
||||
#if !defined(GD_NO_WX_GUI)
|
||||
if ( eventHeightNeedUpdate )
|
||||
{
|
||||
gd::EventsRenderingHelper * renderingHelper = gd::EventsRenderingHelper::Get();
|
||||
if (eventHeightNeedUpdate) {
|
||||
gd::EventsRenderingHelper* renderingHelper =
|
||||
gd::EventsRenderingHelper::Get();
|
||||
|
||||
wxMemoryDC dc;
|
||||
wxBitmap fakeBmp(1,1);
|
||||
dc.SelectObject(fakeBmp);
|
||||
wxMemoryDC dc;
|
||||
wxBitmap fakeBmp(1, 1);
|
||||
dc.SelectObject(fakeBmp);
|
||||
|
||||
dc.SetFont(renderingHelper->GetNiceFont());
|
||||
wxRect lien = dc.GetTextExtent(_("Link to "));
|
||||
dc.SetFont(renderingHelper->GetNiceFont());
|
||||
wxRect lien = dc.GetTextExtent(_("Link to "));
|
||||
|
||||
renderedHeight = lien.GetHeight()+15;
|
||||
eventHeightNeedUpdate = false;
|
||||
}
|
||||
renderedHeight = lien.GetHeight() + 15;
|
||||
eventHeightNeedUpdate = false;
|
||||
}
|
||||
|
||||
return renderedHeight;
|
||||
return renderedHeight;
|
||||
#else
|
||||
return 0;
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
} // namespace gd
|
||||
|