Compare commits
1283 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d7838829ad | |||
| cea45370a6 | |||
| 2234a508c3 | |||
| 37ce334688 | |||
| 2abb218164 | |||
| c8f763173d | |||
| 81d4b3d84f | |||
| 8d740c6bc1 | |||
| d3379c9c08 | |||
| 89cdeead88 | |||
| 17d6860505 | |||
| bc9142ad6e | |||
| 6c9c770f2d | |||
| ed330fa70c | |||
| 7bce2a19e2 | |||
| 60ca9e05c0 | |||
| f383d0b8a5 | |||
| b17eb2c870 | |||
| d3c0e397b6 | |||
| a72c35a693 | |||
| d0d7554b1d | |||
| cf9f6ed474 | |||
| eb8da4d4b2 | |||
| a858ed405f | |||
| 8f432718cf | |||
| f1ee227b84 | |||
| 8c031585cf | |||
| 74ddb33239 | |||
| a00919cc02 | |||
| 6fe1e4d351 | |||
| f6274dc914 | |||
| 783bcf1142 | |||
| b9d6410aba | |||
| b35e503a0f | |||
| 024e015dfc | |||
| dd844fc25e | |||
| c60f8787d1 | |||
| 4bdc1fdfe1 | |||
| f6199719fd | |||
| 2b7baf7fc8 | |||
| 5184132e8b | |||
| 3a38e7f4ab | |||
| 17fdc5bc9f | |||
| 0b5f375df6 | |||
| f982124209 | |||
| 177541b30c | |||
| 2ff2d4ac79 | |||
| 77c48dc1d5 | |||
| 91d19e2852 | |||
| 69885cf90a | |||
| 6229de7c55 | |||
| 7c8b634086 | |||
| 7a6c4b2c15 | |||
| eaaa4d783b | |||
| 4c00dfb3b6 | |||
| fe1a89e67a | |||
| 5dbe6f8c9c | |||
| 0fce1c591f | |||
| d9e3101212 | |||
| 21b5308420 | |||
| 0d31ec5b21 | |||
| 65bf650868 | |||
| e3aff3c23a | |||
| 1444ed6b7c | |||
| 1f98173197 | |||
| b7c6725b44 | |||
| f9e0746e1c | |||
| b2c55e307c | |||
| 99033e3fb2 | |||
| 053f202f32 | |||
| 991625dea4 | |||
| 0ca310da54 | |||
| d40d6f319e | |||
| 3a8d70ff27 | |||
| 1aed1c1517 | |||
| a801069a3a | |||
| e67078355a | |||
| 0d2e4af2a3 | |||
| 3e7ef8c77c | |||
| b09763d89e | |||
| bf3d35463f | |||
| a753bb0c1b | |||
| d2ea81bdbc | |||
| d4b663220f | |||
| f4353fb0e9 | |||
| 3ec955bf2c | |||
| 68d21ddd23 | |||
| 16e6df9503 | |||
| 7c696ac213 | |||
| d18232df10 | |||
| d6a1a8eda8 | |||
| ced2c85076 | |||
| 6ef9ecc147 | |||
| c704dfbfb2 | |||
| d751ed3540 | |||
| 1202ea609e | |||
| 252e66736a | |||
| 42f2c34a46 | |||
| c78e90a5b5 | |||
| a52cd305b7 | |||
| 6a00c0ad1d | |||
| e6c1f652db | |||
| 48bdc6c951 | |||
| 939dc20855 | |||
| 8c39eac856 | |||
| 272199dced | |||
| cab90b8fe2 | |||
| d5a8b80f5a | |||
| 4f3a179be4 | |||
| 519c90dd9d | |||
| 3d46b41efc | |||
| fbf1f9e1e0 | |||
| d0cd6e8b21 | |||
| 90c51fbb2d | |||
| edf7714f0c | |||
| 77241ee496 | |||
| ad0e8383e4 | |||
| 795debeb0d | |||
| b7a7efd9db | |||
| d005aefdc7 | |||
| 30647615f2 | |||
| 3ee3aaf7d8 | |||
| a2403e4eee | |||
| 3e618c062a | |||
| b1bc13cb0d | |||
| fe60f5fe81 | |||
| 7bf463c7ea | |||
| e1df4e5072 | |||
| 1b860218e0 | |||
| 75347a2f37 | |||
| 29985718a7 | |||
| 8cf2b7ab69 | |||
| a99eaac35d | |||
| c4eb931192 | |||
| a6a053e10e | |||
| ad26450151 | |||
| e4f5d7784a | |||
| 023816aa65 | |||
| bf6439db00 | |||
| 1b320d5325 | |||
| 6d872ed176 | |||
| 00ce669edb | |||
| 61dc3013f4 | |||
| c4ba879382 | |||
| 495e5f1429 | |||
| 827f5a71bc | |||
| 573c72f72d | |||
| 612be9737d | |||
| 4bc339e82b | |||
| 668fc41862 | |||
| 457b8c3bf2 | |||
| 135f2a1e45 | |||
| 2d9cab915a | |||
| 22d8d16b71 | |||
| 453906e350 | |||
| 5e16e0d1ba | |||
| 1c09918225 | |||
| 251e1634f7 | |||
| 727d4579a0 | |||
| 52e3177ef2 | |||
| fc40971dc7 | |||
| ccc26f400d | |||
| 210a250dce | |||
| a2594f1fb7 | |||
| 587155353c | |||
| 2b398b425d | |||
| 67c7102687 | |||
| 6212af0f48 | |||
| 5688b28981 | |||
| c162eff8cf | |||
| 60e6d314e0 | |||
| 7cf722114b | |||
| 8645cb9e1e | |||
| 275eb9e06e | |||
| 60b4bb31f5 | |||
| a5eb2eba37 | |||
| a00cf2a1d1 | |||
| b863188c3c | |||
| 21778de9fb | |||
| c81eecf6d2 | |||
| 402323a990 | |||
| 75b335e59c | |||
| 9f69336c94 | |||
| 331e54a732 | |||
| 3d25630dd6 | |||
| 5b652ba688 | |||
| c60df6c99d | |||
| 8bef671a70 | |||
| 9df8e90ab6 | |||
| 45d7cecaf3 | |||
| 730c8479f9 | |||
| 1dca08a33b | |||
| 233cec7a9f | |||
| 08f69dc832 | |||
| 464a6ff1b8 | |||
| c664760359 | |||
| f180b8cc56 | |||
| 044bbb3d4b | |||
| c4884e4715 | |||
| 253be9e9bd | |||
| db517858fa | |||
| 923a8e8fd9 | |||
| 8d395620a1 | |||
| a547591608 | |||
| 601a4432dc | |||
| ca7c8f5cf9 | |||
| f44ad43413 | |||
| 1ec448daef | |||
| adee84d60f | |||
| a46786eb28 | |||
| 5c7b4b7618 | |||
| bdcb10a54f | |||
| 6083ad76d6 | |||
| b66674492b | |||
| 0f0e627cf5 | |||
| 83e7bfffd0 | |||
| 28b1c0e86f | |||
| d0e4aa635b | |||
| a82a2e3571 | |||
| 68161b2aaa | |||
| 4e7463c77e | |||
| 8ab7212aa2 | |||
| 16d989e8ca | |||
| 0c8e51693a | |||
| 9f4e7fb7b2 | |||
| 9dd5807cae | |||
| 7441ae2e8b | |||
| c8869f4048 | |||
| 21440c977d | |||
| 06ccc923ea | |||
| c82fc3b5ce | |||
| 7a19ae8f40 | |||
| 43be15e832 | |||
| 4ce2a5c36e | |||
| 82e53a8c39 | |||
| dcc7e23b84 | |||
| 54e4d881a7 | |||
| 83f8d1c5d7 | |||
| cf738e76d3 | |||
| 744e380df9 | |||
| 8970fa673b | |||
| 88e09bbd05 | |||
| 7d86578152 | |||
| 6fd6f9061c | |||
| ba918b27ee | |||
| 0b90a471d6 | |||
| 24fd17ecf8 | |||
| 06ec97676e | |||
| 4e4752856b | |||
| bc79115985 | |||
| 6ecd762d18 | |||
| 0fa1f04e71 | |||
| 225be4d9aa | |||
| 29b89ba562 | |||
| 7d51b985a6 | |||
| 91bfa11a4f | |||
| 46834a6ee9 | |||
| 07119b88f6 | |||
| 95af76a3b2 | |||
| 0132f7aa5e | |||
| 4df34c82c2 | |||
| 50d49e47e7 | |||
| b29c37eb25 | |||
| c7d09d8389 | |||
| 87ce6df145 | |||
| f5a20110c4 | |||
| 264183a42a | |||
| af0de566fe | |||
| 480adfe83a | |||
| ce5b07b5b1 | |||
| 09098893e6 | |||
| 414d99525d | |||
| 4f42ddadb5 | |||
| 901a7ca984 | |||
| d3feccff75 | |||
| ccd17d32d0 | |||
| 5c67d11aa6 | |||
| 7a529bac6d | |||
| 2c62cfd487 | |||
| a27216c317 | |||
| 8315acbe86 | |||
| 7a2f23db45 | |||
| 711f52e5ce | |||
| 91f50009e1 | |||
| 0cf8c1a970 | |||
| 2750b34b4f | |||
| b023dd89b6 | |||
| 9504027fdc | |||
| 5c7528dbcf | |||
| e856538259 | |||
| 1749330e8a | |||
| 893e64e4f7 | |||
| 169467158a | |||
| ab0a5496b0 | |||
| 0c4deea3ed | |||
| dd785a872e | |||
| c8603204ac | |||
| ae81568463 | |||
| 2fe9924fe5 | |||
| 818233213e | |||
| d9019c0808 | |||
| fdaed6503a | |||
| e10213a373 | |||
| 34732a5f54 | |||
| d8d6025652 | |||
| 01117f4cb7 | |||
| a25448cde7 | |||
| ef4b18b394 | |||
| 683b2fbed8 | |||
| cdfadec38b | |||
| 7b434f33e8 | |||
| 29f1420abc | |||
| 39884d9711 | |||
| a5c9f877f7 | |||
| c603765908 | |||
| a0b4a1f77c | |||
| e0a2a45037 | |||
| 4c6f5126a6 | |||
| 50da2fef42 | |||
| 9dfd513ad3 | |||
| 30622010df | |||
| f4d9de9490 | |||
| 1092d4121a | |||
| 2ec4b78a8a | |||
| 1b88f7d3f9 | |||
| 2ac3ec6f09 | |||
| 73138d2176 | |||
| 7cb0d8b843 | |||
| 1dc5c48ff6 | |||
| 42754fd83c | |||
| 301de0f6f7 | |||
| 9be1d44788 | |||
| 7328c45013 | |||
| 3d9526a1dd | |||
| 1b8157ef0e | |||
| 8d20fd6483 | |||
| 66741957c3 | |||
| eb7d8850f4 | |||
| 934b9d2856 | |||
| 0af443b753 | |||
| 41e160ae34 | |||
| 8b620627d9 | |||
| d943778309 | |||
| 06cb835a5b | |||
| f1a529576e | |||
| 1af3cff419 | |||
| 5db6b807ba | |||
| 1c6b0bdfd5 | |||
| 3dfcc65fa6 | |||
| c3937ce517 | |||
| ab1fbaa806 | |||
| 6eca5bea2f | |||
| e4d73d95ec | |||
| 363383df6d | |||
| 0d05804376 | |||
| cdd36a404b | |||
| 64c509980c | |||
| 46ba018201 | |||
| 0cb931e6e2 | |||
| 58af6f73d9 | |||
| e81f1299cb | |||
| 9b5f9684b0 | |||
| d934c0948c | |||
| 917a3a88df | |||
| dc5b8a8c52 | |||
| d2b44e652b | |||
| 1ce3b469e7 | |||
| 07e6d90c98 | |||
| 85231cda01 | |||
| 8549b7b1b4 | |||
| 9f58ef9916 | |||
| c734ee9fd1 | |||
| 77d87902d9 | |||
| b5c8656ac9 | |||
| 28f6b73da6 | |||
| 521b505543 | |||
| c5a3310103 | |||
| 0c053c713a | |||
| bc06f93aae | |||
| 8e919aeeb1 | |||
| 6bd09e42e0 | |||
| 1f670b9919 | |||
| c805a58fb0 | |||
| 34517004df | |||
| b0506bcd96 | |||
| 7a3a6c04a6 | |||
| 54e4b08e1f | |||
| 67c22c5186 | |||
| 87aba86fa8 | |||
| 28ea300f42 | |||
| 858c26b46a | |||
| 70a6c7149c | |||
| b4a34216c8 | |||
| 3868f4eb98 | |||
| 44304ee5b3 | |||
| 9f4b8d65c8 | |||
| 665f8ce755 | |||
| e1d5348f23 | |||
| b596dc9eea | |||
| eb8370b86b | |||
| fa69686f0a | |||
| 3fe5372d28 | |||
| 3058d42b49 | |||
| 4975ee0028 | |||
| d4e1d809f3 | |||
| 44cb0d995e | |||
| c73d08187b | |||
| 4382c34539 | |||
| cb173b7bf9 | |||
| b5d4674471 | |||
| be1803dfb6 | |||
| 417c1af21e | |||
| 00bccd02da | |||
| 8596443da5 | |||
| a2eda76a26 | |||
| b4e25838bd | |||
| 44d703887c | |||
| 29fd3e4c96 | |||
| 0778b13e2b | |||
| bef1f6d8b8 | |||
| d6a0b04930 | |||
| 87ae60f323 | |||
| 85df061701 | |||
| 4ed44c638f | |||
| 54f0cd7864 | |||
| 4f523b1b9b | |||
| d492481a4f | |||
| 3975a45858 | |||
| 5f2fbb370c | |||
| d9bd6bbb32 | |||
| 31814bda37 | |||
| 8f61b590f8 | |||
| 37642c1f78 | |||
| 8ea7b4d4cb | |||
| 245f5c6e93 | |||
| 88d1c29621 | |||
| 44926393ac | |||
| 5d790c9406 | |||
| 66261b0f51 | |||
| e99a9abacd | |||
| b01c1455f5 | |||
| 650d794eec | |||
| acf74e7f6e | |||
| 53f0c2421d | |||
| 01d46615a7 | |||
| 57f55e4270 | |||
| 5c159e86d7 | |||
| fb03037923 | |||
| ff6e4aec9a | |||
| c78db0eb26 | |||
| 324e206b74 | |||
| 030dca051a | |||
| 24e3fd3267 | |||
| a28f6b1194 | |||
| 38e97aa79f | |||
| 8adfd1b10b | |||
| ffda7a53fe | |||
| 20ddd9157f | |||
| a3f329bd7a | |||
| 13c6837b60 | |||
| 84fe9fbc74 | |||
| e5ec92ac2a | |||
| 12155f9390 | |||
| 00da0bd0d1 | |||
| 4bf5943ac5 | |||
| f205de7205 | |||
| f782c535f9 | |||
| 030d6bc4bb | |||
| 9c10574e49 | |||
| 9512e5c3db | |||
| 8686fef96a | |||
| 06285c11c7 | |||
| 3b58790c96 | |||
| a8b494f960 | |||
| 72c6f448d0 | |||
| ce3c75817c | |||
| 56c943d6d1 | |||
| 21b0b4c524 | |||
| 51daf691b3 | |||
| e889aff42c | |||
| df07b6dc9e | |||
| 63c15b54d6 | |||
| b76a231083 | |||
| e0f58e1916 | |||
| 78bfa604e2 | |||
| dcbe0c40b0 | |||
| f384d75de8 | |||
| cf6084071b | |||
| 0150796064 | |||
| f91186ffa4 | |||
| ba73da321b | |||
| 8ae3e1ea98 | |||
| fa5b075af5 | |||
| a66fced2f7 | |||
| 33492602fb | |||
| b7dae1025b | |||
| 7627a00dce | |||
| d761bac85c | |||
| 3bf1cca118 | |||
| cdb056e8ba | |||
| e47256eae7 | |||
| 5f1874edae | |||
| 22376e873e | |||
| 02d882a7c3 | |||
| d878e0c450 | |||
| 1430cfd6b4 | |||
| 5a3493c0c9 | |||
| 911f8f6de6 | |||
| fe8fbd058b | |||
| c4529a0949 | |||
| 6ec3a68f0a | |||
| 458731778d | |||
| 64547271dc | |||
| 9e584951ac | |||
| c859fdd08e | |||
| 1380ee6f20 | |||
| 2da2272a53 | |||
| 17b6996ae4 | |||
| 0f82b6efba | |||
| 178fcb9717 | |||
| 19f0c653d1 | |||
| 7dc76876e4 | |||
| 60457886cc | |||
| ec078b6ccc | |||
| ec730a4383 | |||
| b2b3255f59 | |||
| df925cfcb0 | |||
| 5b96f30b1a | |||
| 8feb870c8f | |||
| d0b2340a73 | |||
| efac298eb0 | |||
| 453c5b0d6e | |||
| 816010582a | |||
| a260eb11a8 | |||
| b1d271f1c2 | |||
| 3faa959c09 | |||
| a12a5e1637 | |||
| 7c6d59a292 | |||
| 9836d8595c | |||
| c9d5dfaf1b | |||
| 028f6cbb4e | |||
| c56d1b0bec | |||
| 2e61f6c13d | |||
| 8437467320 | |||
| 039be43c2b | |||
| a1af7d9b9f | |||
| 4ce37964f4 | |||
| c1cdfa78d3 | |||
| ff4911116c | |||
| bb9d98cc0c | |||
| 2d93d9b3cc | |||
| 1c60ba6e7f | |||
| 11b3989615 | |||
| c9f26a48c7 | |||
| 75cbaf0f06 | |||
| de1dc6828d | |||
| e6bf23e536 | |||
| 5b16ff4a69 | |||
| ed42c3fd29 | |||
| 9cd67eedc1 | |||
| acc589bdb6 | |||
| 2d78512ca2 | |||
| 84023a5f66 | |||
| 443f378d1b | |||
| d4989d7576 | |||
| 860b0b64e3 | |||
| ba40253a46 | |||
| 95b81b6425 | |||
| b664c2bed1 | |||
| c6c4c17b30 | |||
| 5e46016c4d | |||
| da874738d6 | |||
| 0a68a056d8 | |||
| 5a3a32462d | |||
| c70762f871 | |||
| 6c28496dd8 | |||
| 90ed6e1fdd | |||
| 60d7675a36 | |||
| a9b42127d1 | |||
| 01fdcfdfec | |||
| 2d383e237f | |||
| 143b3d98b1 | |||
| 6f4377de76 | |||
| 722056e78a | |||
| 21710ddfb3 | |||
| 13f590c6a2 | |||
| d604ae2d77 | |||
| 7a35c253cb | |||
| b5129f702e | |||
| 6b1e51b4f6 | |||
| 3776bff594 | |||
| 3afcc7fdf9 | |||
| e74921cbdf | |||
| e9c33e3bea | |||
| 36d4db49ca | |||
| 2c40c77403 | |||
| 15febaf851 | |||
| 02dce1af2e | |||
| 5915ceb0a5 | |||
| d6f666d9a0 | |||
| 37fa69fc39 | |||
| 8e47927805 | |||
| f1c1161da5 | |||
| 392382e3e3 | |||
| d6403918b6 | |||
| fc9b0b233c | |||
| f16755b86b | |||
| f45e975b14 | |||
| b3de6a283d | |||
| 7fa204fc9c | |||
| f284a9691b | |||
| 9bb63a68f5 | |||
| 77d20e89c8 | |||
| 66f664207a | |||
| bac69f95d8 | |||
| 75e372ac9b | |||
| ef31192f33 | |||
| fde707b726 | |||
| e158e95245 | |||
| 5b23cc2e33 | |||
| c72cdff0f1 | |||
| 831c8f73b0 | |||
| 2dc6c62acb | |||
| 9e1d1a056c | |||
| 9a32ae2c6d | |||
| b1a2003a84 | |||
| e2c1d62552 | |||
| db0f6d6c0b | |||
| bc44ee8056 | |||
| 65a9bd55d8 | |||
| 2aa0668c28 | |||
| 9f5e37a03c | |||
| f27763870c | |||
| ab22e02db8 | |||
| 257afd3525 | |||
| eec38de558 | |||
| 35de677999 | |||
| 8b9dfdf96d | |||
| c830ef88ca | |||
| ba0daed776 | |||
| f37d946b4e | |||
| 477419cc32 | |||
| 70e8d1c4b3 | |||
| 732f795be4 | |||
| 00536fa3d9 | |||
| 042f00cc58 | |||
| acef89ea03 | |||
| d7770d285f | |||
| 7932941a01 | |||
| c4eac5e62b | |||
| 763bd60e74 | |||
| 3fa52e7ac5 | |||
| 9104afdef7 | |||
| 942c95e736 | |||
| dc696a0f45 | |||
| d26e9da6c4 | |||
| ea09b1f6bc | |||
| da033eb28e | |||
| b2a0ccba05 | |||
| 3f146c94e5 | |||
| 9d92bdcd75 | |||
| 6354d8ccca | |||
| 1d0237f15d | |||
| c535d033ec | |||
| fcf900c5e0 | |||
| c265ce8222 | |||
| 658b90067a | |||
| 80b6496780 | |||
| 711934a249 | |||
| ea5e397595 | |||
| c8dc416071 | |||
| 30026fc307 | |||
| 7b0fdcd721 | |||
| c0afb3b95e | |||
| 5504bf23d1 | |||
| 28b51d3335 | |||
| fb91726c35 | |||
| a97a7edca6 | |||
| 92b4909fc8 | |||
| 3998c21178 | |||
| 41d925d7c9 | |||
| 7029636291 | |||
| a916c1067f | |||
| 7322d4da8b | |||
| 31f15b12cb | |||
| 4d3e463aba | |||
| 166526dbbe | |||
| 348ada3f0d | |||
| 2c5f6d8332 | |||
| e128d548f4 | |||
| bb2ab1c1fe | |||
| 715bedb71a | |||
| 8fed9e47d1 | |||
| 89f8f7e25e | |||
| 7bbba293a6 | |||
| d57a694d3c | |||
| f31d5c04c8 | |||
| 85f66a8fec | |||
| 48ec606bc5 | |||
| 75cc809b16 | |||
| 2a27a491e7 | |||
| 3e75d70632 | |||
| cf2d094df6 | |||
| 18a7955240 | |||
| 22ebc27997 | |||
| c53ee24b5b | |||
| 25e681c04a | |||
| 365e0b49ae | |||
| e3dc78b28e | |||
| e3319f6fe4 | |||
| 0a9b006a94 | |||
| 5692be3b66 | |||
| 6ea5dea849 | |||
| 8debcf0fa2 | |||
| 1cf4845cb2 | |||
| b9d1292add | |||
| 19063fd8db | |||
| 76cf732100 | |||
| 30a7eef611 | |||
| 99f0020583 | |||
| f2e0da47ed | |||
| ca66a428d8 | |||
| f077a4e074 | |||
| e46631a960 | |||
| 2da1957c70 | |||
| ad6c48688d | |||
| 71da7fb384 | |||
| 0159e0e41e | |||
| 457a3fdc7a | |||
| 8507c0138d | |||
| 4f7901b946 | |||
| e239dc039b | |||
| 1428eeba06 | |||
| adcf6fb86d | |||
| de2d663968 | |||
| 60f6c683a3 | |||
| f8009672e9 | |||
| 9fe5ac1994 | |||
| 58efb51c07 | |||
| 5c3a064746 | |||
| 94aefa6dba | |||
| 7f6e96459c | |||
| 6fe57be115 | |||
| 37b3f28065 | |||
| 0b9468da1b | |||
| e558f21ebc | |||
| 71c1512ef2 | |||
| d03ebdace8 | |||
| d86b9119a4 | |||
| 0ab872e152 | |||
| 5e7f81678d | |||
| ff510248e9 | |||
| bba5d4380d | |||
| 39ad95d4db | |||
| e9adde8ac6 | |||
| 8fc120d9f9 | |||
| 7f8339aedf | |||
| d2183f3b91 | |||
| 11b4aa7308 | |||
| 51481daf03 | |||
| 1bdd0f6e26 | |||
| 1de492973e | |||
| eea96dac73 | |||
| ebc378a620 | |||
| 3d08ca0cc1 | |||
| f11cc41df8 | |||
| 19ce59b1b4 | |||
| 5101ac9d8e | |||
| 5149882bb5 | |||
| 26222ee853 | |||
| 0394e2cda9 | |||
| 501b310efa | |||
| 53e0b1b81c | |||
| 81be616847 | |||
| b9b2c9afb0 | |||
| 848cd9a485 | |||
| 75921e1130 | |||
| 0b14639c66 | |||
| 5c54f85de4 | |||
| 0202313bc8 | |||
| 2671826b19 | |||
| 7dc89ad090 | |||
| c54f0ea329 | |||
| d90f3ce309 | |||
| bcc6ced47c | |||
| 1b5c61a285 | |||
| ca95192de3 | |||
| c2e04443e3 | |||
| f4f8c94c6a | |||
| f957fca162 | |||
| 9671711bf5 | |||
| ea3d4c67f8 | |||
| cab1f59181 | |||
| 8c01611850 | |||
| d6b682ab88 | |||
| d2beaa0ab9 | |||
| ce0fafd45b | |||
| c0dbd00b74 | |||
| a556aed34f | |||
| 8d19ee8ab3 | |||
| 8c4c80731c | |||
| de6619b383 | |||
| 941dc253fb | |||
| 25705a6b02 | |||
| 4d56269130 | |||
| 96236df293 | |||
| f447482e32 | |||
| 401b8fc496 | |||
| 2e2a2aaf03 | |||
| 66c2ab38ed | |||
| 6e0b7e2c23 | |||
| f335623f69 | |||
| f8369ee39a | |||
| 2a1bacdfa4 | |||
| a93dd6586d | |||
| f3dd1be125 | |||
| 5b49530df9 | |||
| 00555e3c75 | |||
| 972746d388 | |||
| db3aaf96c7 | |||
| e12c87b869 | |||
| ad80b000c9 | |||
| 9bcc54c56c | |||
| 3e6d207bf0 | |||
| 6c836e0fde | |||
| 5f9e123571 | |||
| 20ba624de2 | |||
| 12426cf8a7 | |||
| 1cd6f00c59 | |||
| 365d5784b7 | |||
| a90cddf589 | |||
| 5f71017142 | |||
| c81402b8ce | |||
| 6122410db1 | |||
| 42e240c9ab | |||
| 01459b7759 | |||
| cd2f4480f4 | |||
| ce92679be0 | |||
| e9705b2cc5 | |||
| a2007dd59e | |||
| d6052b718e | |||
| 6bfc79fb03 | |||
| e9a5f30c71 | |||
| 9a61b7f13b | |||
| 2073f3d7ed | |||
| 774cd46892 | |||
| f593ee7c9f | |||
| 47d35446e2 | |||
| 3e16969808 | |||
| 3e95f5cd05 | |||
| 15a8437d79 | |||
| 6a213bffa6 | |||
| 5be01a7577 | |||
| 89b8eabe0c | |||
| 3cecc34a9c | |||
| 9e76214be8 | |||
| 5b059f974f | |||
| ecb4f64f91 | |||
| 992121c659 | |||
| cbc41214d8 | |||
| 53c7a81666 | |||
| a63065b44f | |||
| cec4494ce6 | |||
| 60411027ca | |||
| 8d7b9293b5 | |||
| 2133dfd80c | |||
| 1a75f51aa6 | |||
| 2a8c036c63 | |||
| c90f357bff | |||
| 4d381452b5 | |||
| 087b53c1c5 | |||
| 58a2769f2b | |||
| ce38c3e5c5 | |||
| 12f7d5e4b6 | |||
| fd703dd4d1 | |||
| 3ef4c1f6e0 | |||
| 0e95444552 | |||
| aca90db2c2 | |||
| 09edd055e6 | |||
| 892ef6b1b3 | |||
| ed838815ef | |||
| 8d8c4d1a95 | |||
| debdf917ea | |||
| f03961bc19 | |||
| fb4572264d | |||
| d7445a70f9 | |||
| 78bcf9a738 | |||
| d71c85412f | |||
| f5c9ab72ef | |||
| 5c4cd74c39 | |||
| 5a1daf5dc9 | |||
| 4de2a45195 | |||
| 91d3a6ecb7 | |||
| 763918e129 | |||
| 525c166f62 | |||
| 6b2ed24fc3 | |||
| 1eae3a032f | |||
| 755cfe19d5 | |||
| 559331cf82 | |||
| 18fddb1537 | |||
| 861620cb6e | |||
| 568f3ae94f | |||
| 0af00a313e | |||
| ff52f020e2 | |||
| 55bf7bcbda | |||
| bccb740c45 | |||
| b7307adc10 | |||
| edb71dcef0 | |||
| 7ddf232615 | |||
| a7cdb0a514 | |||
| 7157e571c8 | |||
| d073b7b3c0 | |||
| 27d67398fb | |||
| cc6ced9197 | |||
| 712e42c71f | |||
| 53efc96e30 | |||
| 5b2ac0f022 | |||
| b5cdcc29bc | |||
| df3e6e5fb7 | |||
| 27145bdabe | |||
| 71aedfd96d | |||
| 8530292fef | |||
| f1bc268f58 | |||
| 2e79f5a369 | |||
| 1427b1709a | |||
| 960d4d35fb | |||
| 7a467ce860 | |||
| cd46314b4e | |||
| 9c81acff53 | |||
| d8b2e2873b | |||
| 98cd6675d9 | |||
| 002085ad32 | |||
| 2e525dfdcc | |||
| a378e3a72d | |||
| 7e14b2fc5a | |||
| 51016f9258 | |||
| adad723110 | |||
| a10e7ab279 | |||
| 0c124327de | |||
| 6c5f706064 | |||
| 2422e72713 | |||
| e49e4a5e67 | |||
| 14d8d65de0 | |||
| d3305cadb6 | |||
| 17c28ca584 | |||
| 151905c5f3 | |||
| ab49ea07e8 | |||
| 8e436e6b55 | |||
| de5414ec19 | |||
| e5d71579af | |||
| 5ec4c9714c | |||
| eafb2558c2 | |||
| 4cefcb26c2 | |||
| 8a86e7d0f7 | |||
| b20fb61e1c | |||
| feeed99c62 | |||
| aa5008f865 | |||
| c4ce2aa977 | |||
| 7cc31a473c | |||
| a8193012aa | |||
| eb0ecedecf | |||
| de44abd529 | |||
| 9807ca99f9 | |||
| 8c9d2d6f1d | |||
| 65ef1f384c | |||
| bf2cc36719 | |||
| 34ffe7eefa | |||
| b756c8b9ec | |||
| 19a98c9ad6 | |||
| e159025ebb | |||
| 05e81ad923 | |||
| 8e1a0eb20f | |||
| a881b8fa5a | |||
| 6982030013 | |||
| 01da4c6af5 | |||
| a42805d4cc | |||
| 01145c4581 | |||
| 4d1dfb58ff | |||
| 43f44a4142 | |||
| b314d3cafe | |||
| 9bbf28e44b | |||
| d995d25f69 | |||
| 1f58b8e6a7 | |||
| eeb881cdc2 | |||
| 807874ce5d | |||
| 213d11c8e9 | |||
| dfd0761506 | |||
| 4c30086896 | |||
| 1efdca399e | |||
| 4f27c8051a | |||
| d43693fef0 | |||
| 88f0202b16 | |||
| be98e0b543 | |||
| 8a907bb3f3 | |||
| 1b34a478a1 | |||
| cda0bba555 | |||
| dae1b10de1 | |||
| 0c4e72ece2 | |||
| 77dfd51b28 | |||
| b601a549d0 | |||
| c4907edd76 | |||
| dcf4148d75 | |||
| 8afeef568f | |||
| dd5635d9cd | |||
| 62a6ddf3ca | |||
| 195daa97f3 | |||
| b1c5c87443 | |||
| 1ab88940f9 | |||
| 8ba97b8a74 | |||
| e7f5442a64 | |||
| 066dd866b1 | |||
| fa0722a9e2 | |||
| 5f276f6b22 | |||
| c45b5751af | |||
| 161802cf9d | |||
| 0679832b04 | |||
| b20d6f8820 | |||
| 52fb40d543 | |||
| 067279d2e8 | |||
| a0bbed6c6c | |||
| 9371125eb0 | |||
| 0a0f6cdce9 | |||
| fc350be3a1 | |||
| be731a99c0 | |||
| c65fd1d7ae | |||
| be899159f3 | |||
| 2400e6578b | |||
| 1aac2b8e75 | |||
| c7581220b8 | |||
| f3968215e0 | |||
| 56a8011b78 | |||
| adccae7937 | |||
| 1c63c1937a | |||
| 4753f7bb51 | |||
| d7fec7d10a | |||
| 3c90a29b1e | |||
| 98de361bf4 | |||
| c1df10e064 | |||
| 3743e0bc03 | |||
| 12e6a4d0ae | |||
| 969511953a | |||
| 223e2e04b0 | |||
| 0b0368ffcc | |||
| 9e4684b524 | |||
| d825c7e4ea | |||
| c38c996773 | |||
| 71a9ef00ee | |||
| 89a30ae5ee | |||
| 94bd0e057b | |||
| 0efc6338bb | |||
| 3b98da1d86 | |||
| 6927c68811 | |||
| f0909ba3a0 | |||
| 2f7d2873f7 | |||
| 7a6b6aa335 | |||
| 2861ef0c73 | |||
| 059fc06f3a | |||
| a971576de0 | |||
| a4e059e3ec | |||
| 07408b7bc3 | |||
| 9722f7b71e | |||
| 45d8413d59 | |||
| 5c400457a9 | |||
| 3e9ee5890f | |||
| 1acdb40498 | |||
| 1dc0b00133 | |||
| f2208389bd | |||
| ab92c3e15b | |||
| 018e35295a | |||
| 2c9e90eee0 | |||
| 847f21f7dc | |||
| b90dfbe3b0 | |||
| c230794c82 | |||
| 7f83aa7253 | |||
| 1039815017 | |||
| 2c43eac80d | |||
| 4aa6ad3203 | |||
| 730b05ad1b | |||
| 5a7b2c5029 | |||
| 7ae551de9d | |||
| 96dd3faef0 | |||
| ffdc8cd9ff | |||
| 8256ac3bee | |||
| 037ab83519 | |||
| a56e77310d | |||
| 5350fb7f5d | |||
| 9161f89057 | |||
| 1d2abeb20b | |||
| 833c21192a | |||
| 86168e454f | |||
| a20c2ce29a | |||
| 874b27c56d | |||
| a7dc44e4e1 | |||
| 047d08882e | |||
| 52df1ad963 | |||
| c2cec37928 | |||
| 239a186b36 | |||
| 5aeb2ebc05 | |||
| a7e87aaae5 | |||
| eb545eca57 | |||
| 44ab1827bf | |||
| 96b4f024b4 | |||
| b070035770 | |||
| 1b0c3d8c00 | |||
| 2e71cb08d0 | |||
| 3da5d12bee | |||
| e8019bbb92 | |||
| 30dab27202 | |||
| cc7077d783 | |||
| fda7e9f39d | |||
| e178533493 | |||
| e3ad9296bc | |||
| 01042a62ae | |||
| 7bd940ddb3 | |||
| f168702aad | |||
| 2a33c0c375 | |||
| eea240d7f2 | |||
| afb98a374c | |||
| ed0d28eaf6 | |||
| 50345101e5 | |||
| c0e4010c88 | |||
| 193d7accb4 | |||
| a9be34c627 | |||
| 0e14226968 | |||
| 068b03a0bb | |||
| b99f9ae752 | |||
| 3519871f80 | |||
| e9db853f28 | |||
| a6fdd89e1d | |||
| b8bfe7acc1 | |||
| dd5d5589ff | |||
| 7d460e093c | |||
| 54e86915b0 | |||
| ab2effd776 | |||
| 4f0da67a83 | |||
| 014ca36a4a | |||
| 2971e64182 | |||
| d7737c13ff | |||
| eebcc9c925 | |||
| 0c90b39a96 | |||
| 4f3f96337f | |||
| e855ca72aa | |||
| 8ff47bf8e2 | |||
| 9d75f69a79 | |||
| ae33977e10 | |||
| 07b5f35b98 | |||
| c4acf006dd | |||
| 12b80307a7 | |||
| 43fd399d10 | |||
| cc5d8940bf | |||
| 09ed1ab683 | |||
| 26c85fd18a | |||
| 894615bee6 | |||
| aeed094be0 | |||
| 61068ee166 | |||
| bdce25cb8c | |||
| 6a71bf5653 | |||
| 3007ddc093 | |||
| 4495e1649f | |||
| f960cdea9b | |||
| b70b2a65bc | |||
| 4a73e90da8 | |||
| fc59bef156 | |||
| 512f4ca4e4 | |||
| f254ca57c6 | |||
| 5e35dac1da | |||
| 44cbd408ce | |||
| 6fbe9de1a8 | |||
| 3b1410f913 | |||
| f9265923a9 | |||
| 3282848631 | |||
| f142363bfa | |||
| c0e9800179 | |||
| 97308ca31c | |||
| 02992954c2 | |||
| 78d4f178a3 | |||
| fe577d9dd0 | |||
| 007010067b | |||
| bc2d8dab31 | |||
| 296f8645fb | |||
| 2d76c8ff0d | |||
| 0a3d9f9876 | |||
| 2a1d0b19ce | |||
| a99c57ab1a | |||
| 6832049ccc | |||
| 6d72753216 | |||
| b6b3898536 | |||
| 99922d38e2 | |||
| 161623a8d2 | |||
| 155a7a6582 | |||
| 6aafe9dee0 | |||
| 680c9d64cb | |||
| ca395492d5 | |||
| ea920d352f | |||
| 0c0031455b | |||
| a8a9893ce4 | |||
| 5143743661 | |||
| 88a42b25cc | |||
| b371bf6efa | |||
| 3bc7ed6f8c | |||
| f996510969 | |||
| 58fd119636 | |||
| f275792604 | |||
| 9f8ead5e4e | |||
| a35ccbbe5b | |||
| 9a60a8838f | |||
| bb9e02da6b | |||
| 0fd0c5ecc1 | |||
| c89961ebf0 | |||
| 0f81e82206 | |||
| 7c7c8c4f34 | |||
| 3d7362aa9d | |||
| f3061a2526 | |||
| 2657af1aef | |||
| dd03ed4b30 | |||
| 64c6b05963 | |||
| 05017b0236 | |||
| efd9cce4ef | |||
| 144c78fa4b | |||
| 3147aa539c | |||
| ad4532932b | |||
| ffac3462af | |||
| 7c163592b5 | |||
| a6211e371e | |||
| 775085eca1 | |||
| b3d580cada | |||
| 37987ddb57 | |||
| a56ab4f561 | |||
| 6f649bd680 | |||
| 6316577ec7 | |||
| 61cd74fcd0 | |||
| 37fd0ebbd2 | |||
| 8e987a6718 | |||
| 520be9dbe8 | |||
| 322e6f7edf | |||
| b6eea6fe2e | |||
| dc84c50ea8 | |||
| 07d7df7271 | |||
| 5b9f3c70dc | |||
| bd36590084 | |||
| 4e64ff4ff9 | |||
| 2dd882a7a5 | |||
| fe4c102c7d | |||
| 1380bc9940 | |||
| 5cc549ad3a | |||
| 75395f6622 | |||
| c9576e260e | |||
| 362d692879 | |||
| acbaa69305 | |||
| 592a48c725 | |||
| bfaaf7d893 | |||
| 9e73dc9c00 | |||
| d37aac0c71 | |||
| 8314d4c9ae | |||
| d860954c32 | |||
| 0b4b085095 | |||
| c0334d0c94 | |||
| 6acd897e16 | |||
| 2adfc55339 | |||
| 208b4f68b5 | |||
| 33fd704a00 | |||
| 6d8ece6822 | |||
| 6b5cbd5f11 | |||
| ea6017511b | |||
| 2477b8a3ea | |||
| cdd1075384 | |||
| c61c17f19c | |||
| 774b79f07e | |||
| 002172281b | |||
| 4e9d4bfaf6 | |||
| 894e9f244f | |||
| 189b45ab9b | |||
| b0912de788 | |||
| f435946f66 | |||
| 64d91ccaab | |||
| e97fbb2784 | |||
| 0029e0ed43 | |||
| 088f235f29 | |||
| dd5aa90498 | |||
| c866e5dd45 | |||
| 6e8f74af15 | |||
| d70fd8c208 | |||
| 9568fe7d4d |
@@ -1,4 +1,5 @@
|
||||
language: cpp
|
||||
dist: trusty
|
||||
branches:
|
||||
except:
|
||||
- latest-master
|
||||
@@ -9,16 +10,16 @@ before_install:
|
||||
- export BUILD_Qt=YES
|
||||
- export BUILD_MAC=NO
|
||||
# Only building on Mac when not handling pull request
|
||||
- if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
|
||||
export BUILD_MAC=YES;
|
||||
fi
|
||||
# - if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
|
||||
# export BUILD_MAC=YES;
|
||||
# fi
|
||||
- sudo apt-get update -qq
|
||||
# Building for PSP here
|
||||
- if [ "$BUILD_PSP" == "YES" ]; then
|
||||
export PSPDEV="$TRAVIS_BUILD_DIR/opt/pspsdk" &&
|
||||
export PSPSDK="$PSPDEV/psp/sdk" &&
|
||||
export PATH="$PATH:$PSPDEV/bin:$PSPSDK/bin" &&
|
||||
wget -O sdk.lzma http://superb-sea2.dl.sourceforge.net/project/minpspw/SDK%20%2B%20devpak/pspsdk%200.11.2/minpspw_0.11.2-amd64.tar.lzma;
|
||||
wget -O sdk.lzma http://downloads.sourceforge.net/project/minpspw/SDK%20%2B%20devpak/pspsdk%200.11.2/minpspw_0.11.2-amd64.tar.lzma;
|
||||
fi
|
||||
# Building for Qt here
|
||||
- if [ "$BUILD_Qt" == "YES" ]; then
|
||||
@@ -31,9 +32,11 @@ before_install:
|
||||
# Building for Android here
|
||||
- if [ "$BUILD_ANDROID" == "YES" ]; then
|
||||
export ANDROID="android-sdk-linux/tools/android" &&
|
||||
if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch jq; fi &&
|
||||
wget http://dl.google.com/android/ndk/android-ndk-r9-linux-x86_64.tar.bz2 -nv &&
|
||||
wget http://dl.google.com/android/android-sdk_r24.3.4-linux.tgz -nv;
|
||||
if [ `uname -m` = x86_64 ]; then
|
||||
sudo dpkg --add-architecture i386 && sudo apt-get update &&
|
||||
sudo apt-get install -qq --force-yes libgd2-xpm-dev libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1 jq ant; fi &&
|
||||
wget https://dl.google.com/android/repository/android-ndk-r22-linux-x86_64.zip -nv &&
|
||||
wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz -nv;
|
||||
fi
|
||||
|
||||
install:
|
||||
@@ -41,21 +44,16 @@ install:
|
||||
tar -x --xz -f sdk.lzma;
|
||||
fi
|
||||
- if [ "$BUILD_ANDROID" == "YES" ]; then
|
||||
tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 &&
|
||||
tar -zxf android-sdk_r24.3.4-linux.tgz &&
|
||||
unzip android-ndk-r22-linux-x86_64.zip &&
|
||||
tar -zxf android-sdk_r24.4.1-linux.tgz &&
|
||||
$ANDROID list sdk --extended -a &&
|
||||
echo yes | $ANDROID update sdk -a -t tools,platform-tools,build-tools-23.0.1,android-10 --no-ui --force --no-https;
|
||||
echo yes | $ANDROID update sdk -a -t tools,platform-tools,build-tools-23.0.1,android-23 --no-ui --force --no-https;
|
||||
fi
|
||||
- sudo python -m easy_install --upgrade pyOpenSSL
|
||||
- sudo pip install pyjavaproperties
|
||||
- sudo pip install github3.py
|
||||
- sudo pip install cpp-coveralls
|
||||
|
||||
env:
|
||||
global:
|
||||
- secure: "EBzr1+qjQsOhn0s+tcFmXR1jP9B0xiOSXuXbRXWZ1OEHNvp8+A5/pS84LYVFlaZqmxr5dApxvPtwhgLIUbQ3EPXm8LpC3KgSD4dS+9/QMbxhe5TK4oczgFRGcDTMJQZsCzhOh7hp3tbcbJg5Gp+VT7aFjFQSHDGwhzSJXsXwh/8="
|
||||
- secure: "X5dTQfofqAutnXxmu11Ep2MQ5QYnMN8m0AITRtwymhEF2UclcOudI1+skPtuhAGbWQnSO+lhunV3cvMfw2/Ml3k/VDz6VdFSKFrzAu7ja1VLJfcxr7chi0s8q30pVBb66tGydjIBac3B+RQyqgmZQW1frbRrhC/kPFQ6wPWOJdQ="
|
||||
- secure: "T97NUPnxCpVZ/c5HH0zfo0FO3DPSRMSmze58ubW5EUTZOjAMtEt+OFdsrNZvUTCugUj2M1agtonZbAbczpaAL+lgZcHDgXgWMkfO0pMnsWX1yyCNqMuE/iTMpJr/xsLQeyWlftWjJLsseQU45abZsd1XVmda/G+ZhrDLF1y55SA="
|
||||
|
||||
|
||||
script: "tools/travis-script.sh"
|
||||
|
||||
after_success:
|
||||
@@ -63,3 +61,4 @@ after_success:
|
||||
- python tools/upload-binaries.py -t $GH_TOKEN -s $TRAVIS_COMMIT -l core.zip -r Wagic-core.zip -b $TRAVIS_BRANCH
|
||||
- python tools/upload-binaries.py -t $GH_TOKEN -s $TRAVIS_COMMIT -l projects/mtg/Android/bin/Wagic-debug.apk -r Wagic-android.apk -b $TRAVIS_BRANCH
|
||||
- python tools/upload-binaries.py -t $GH_TOKEN -s $TRAVIS_COMMIT -l projects/mtg/psprelease.zip -r Wagic-psp.zip -b $TRAVIS_BRANCH
|
||||
- python tools/upload-binaries.py -t $GH_TOKEN -s $TRAVIS_COMMIT -l qt-gui-build/linuxqtrelease.zip -r Wagic-linux-QT.zip -b $TRAVIS_BRANCH
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace boost {
|
||||
|
||||
enum xtime_clock_types
|
||||
{
|
||||
TIME_UTC=1
|
||||
TIME_UTC_=1
|
||||
// TIME_TAI,
|
||||
// TIME_MONOTONIC,
|
||||
// TIME_PROCESS,
|
||||
@@ -68,7 +68,7 @@ inline xtime get_xtime(boost::system_time const& abs_time)
|
||||
|
||||
inline int xtime_get(struct xtime* xtp, int clock_type)
|
||||
{
|
||||
if (clock_type == TIME_UTC)
|
||||
if (clock_type == TIME_UTC_)
|
||||
{
|
||||
*xtp=get_xtime(get_system_time());
|
||||
return clock_type;
|
||||
|
||||
@@ -350,7 +350,7 @@ namespace boost
|
||||
cond.timed_wait(lock, xt);
|
||||
# endif
|
||||
xtime cur;
|
||||
xtime_get(&cur, TIME_UTC);
|
||||
xtime_get(&cur, TIME_UTC_);
|
||||
if (xtime_cmp(xt, cur) <= 0)
|
||||
return;
|
||||
}
|
||||
@@ -365,7 +365,7 @@ namespace boost
|
||||
BOOST_VERIFY(!pthread_yield());
|
||||
# else
|
||||
xtime xt;
|
||||
xtime_get(&xt, TIME_UTC);
|
||||
xtime_get(&xt, TIME_UTC_);
|
||||
sleep(xt);
|
||||
# endif
|
||||
}
|
||||
|
||||
@@ -20,8 +20,8 @@ const int NANOSECONDS_PER_MICROSECOND = 1000;
|
||||
inline void to_time(int milliseconds, boost::xtime& xt)
|
||||
{
|
||||
int res = 0;
|
||||
res = boost::xtime_get(&xt, boost::TIME_UTC);
|
||||
BOOST_ASSERT(res == boost::TIME_UTC);
|
||||
res = boost::xtime_get(&xt, boost::TIME_UTC_);
|
||||
BOOST_ASSERT(res == boost::TIME_UTC_);
|
||||
|
||||
xt.sec += (milliseconds / MILLISECONDS_PER_SECOND);
|
||||
xt.nsec += ((milliseconds % MILLISECONDS_PER_SECOND) *
|
||||
@@ -57,8 +57,8 @@ inline void to_timespec_duration(const boost::xtime& xt, timespec& ts)
|
||||
{
|
||||
boost::xtime cur;
|
||||
int res = 0;
|
||||
res = boost::xtime_get(&cur, boost::TIME_UTC);
|
||||
BOOST_ASSERT(res == boost::TIME_UTC);
|
||||
res = boost::xtime_get(&cur, boost::TIME_UTC_);
|
||||
BOOST_ASSERT(res == boost::TIME_UTC_);
|
||||
|
||||
if (boost::xtime_cmp(xt, cur) <= 0)
|
||||
{
|
||||
@@ -88,8 +88,8 @@ inline void to_duration(boost::xtime xt, int& milliseconds)
|
||||
{
|
||||
boost::xtime cur;
|
||||
int res = 0;
|
||||
res = boost::xtime_get(&cur, boost::TIME_UTC);
|
||||
BOOST_ASSERT(res == boost::TIME_UTC);
|
||||
res = boost::xtime_get(&cur, boost::TIME_UTC_);
|
||||
BOOST_ASSERT(res == boost::TIME_UTC_);
|
||||
|
||||
if (boost::xtime_cmp(xt, cur) <= 0)
|
||||
milliseconds = 0;
|
||||
@@ -110,8 +110,8 @@ inline void to_microduration(boost::xtime xt, int& microseconds)
|
||||
{
|
||||
boost::xtime cur;
|
||||
int res = 0;
|
||||
res = boost::xtime_get(&cur, boost::TIME_UTC);
|
||||
BOOST_ASSERT(res == boost::TIME_UTC);
|
||||
res = boost::xtime_get(&cur, boost::TIME_UTC_);
|
||||
BOOST_ASSERT(res == boost::TIME_UTC_);
|
||||
|
||||
if (boost::xtime_cmp(xt, cur) <= 0)
|
||||
microseconds = 0;
|
||||
|
||||
@@ -1,6 +1,37 @@
|
||||
# Changelog
|
||||
|
||||
## [latest-master] (https://github.com/WagicProject/wagic/tree/latest-master)
|
||||
#### 8/3/16
|
||||
- *Merged pull-request:* andAbility on ATokenCreator, Extend AAFlip [#\824] (https://github.com/WagicProject/wagic/pull/824) ([kevlahnota](https://github.com/kevlahnota))
|
||||
|
||||
#### 7/31/16
|
||||
- *Merged pull-request:* Fix Chandra, Flamecaller & Cryptolith Rite [#\818] (https://github.com/WagicProject/wagic/pull/818) ([kevlahnota](https://github.com/kevlahnota))
|
||||
|
||||
#### 7/28/16
|
||||
- *Merged pull-request:* changing some of the logic to the previous fixes, we want to avoid using code that looks for specific card names. [#\800] (https://github.com/WagicProject/wagic/pull/800) ([zethfoxster](https://github.com/zethfoxster))
|
||||
|
||||
#### 7/26/16
|
||||
- *Merged pull-request:* granted flashback [#\791] (https://github.com/WagicProject/wagic/pull/791) ([kevlahnota](https://github.com/kevlahnota))
|
||||
|
||||
#### 7/23/16
|
||||
- *Merged pull-request:* Fix Flying vs Moat (multiples of them). Fixes issue #526 [#\783] (https://github.com/WagicProject/wagic/pull/783) ([kevlahnota](https://github.com/kevlahnota))
|
||||
|
||||
#### 7/19/16
|
||||
- *Merged pull-request:* pushing to master [#\770] (https://github.com/WagicProject/wagic/pull/770) ([zethfoxster](https://github.com/zethfoxster))
|
||||
|
||||
#### 7/18/16
|
||||
- *Merged pull-request:* Fix Deck Menu layer, Change Main Menu Layout, Fix Crash cdaactive on tokens [#\765] (https://github.com/WagicProject/wagic/pull/765) ([kevlahnota](https://github.com/kevlahnota))
|
||||
|
||||
#### 7/12/16
|
||||
- *Merged pull-request:* Pushing fixes [#\750] (https://github.com/WagicProject/wagic/pull/750) ([zethfoxster](https://github.com/zethfoxster))
|
||||
|
||||
- *Merged pull-request:* try to fix failed logic here [#\747] (https://github.com/WagicProject/wagic/pull/747) ([kevlahnota](https://github.com/kevlahnota))
|
||||
|
||||
#### 7/9/16
|
||||
- *Merged pull-request:* pushing to master [#\738] (https://github.com/WagicProject/wagic/pull/738) ([zethfoxster](https://github.com/zethfoxster))
|
||||
|
||||
- *Merged pull-request:* Sorted Primitives and Cleanup Tabs [#\736] (https://github.com/WagicProject/wagic/pull/736) ([kevlahnota](https://github.com/kevlahnota))
|
||||
|
||||
#### 7/7/16
|
||||
- *Merged pull-request:* Sorted Primitives and Cleanup Tabs [#\727] (https://github.com/WagicProject/wagic/pull/719) ([kevlahnota](https://github.com/kevlahnota))
|
||||
|
||||
|
||||
@@ -77,6 +77,13 @@ SDL_AtomicTryLock(SDL_SpinLock *lock)
|
||||
: "=&r" (result) : "r" (1), "r" (lock) : "cc", "memory");
|
||||
return (result == 0);
|
||||
|
||||
#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
|
||||
int result;
|
||||
__asm__ __volatile__(
|
||||
"lock ; xchgl %0, (%1)\n"
|
||||
: "=r" (result) : "r" (lock), "0" (1) : "cc", "memory");
|
||||
return (result == 0);
|
||||
|
||||
#else
|
||||
/* Need CPU instructions for spinlock here! */
|
||||
__need_spinlock_implementation__
|
||||
|
||||
@@ -474,7 +474,7 @@
|
||||
|
||||
#ifndef PNG_VERSION_INFO_ONLY
|
||||
/* include the compression library's header */
|
||||
#include "zlib.h"
|
||||
#include "../include/zlib.h"
|
||||
#endif
|
||||
|
||||
/* include all user configurable info, including optional assembler routines */
|
||||
|
||||
@@ -32,6 +32,7 @@ HGE_OBJS = src/hge/hgecolor.o src/hge/hgeparticle.o \
|
||||
|
||||
CXXFLAGS = -W -Wall -Werror -Wno-unused
|
||||
CXXFLAGS += -DTIXML_USE_STL
|
||||
CXXFLAGS += -Wno-deprecated-declarations -Wno-sign-compare
|
||||
|
||||
ifdef DEBUG
|
||||
CXXFLAGS += -ggdb3
|
||||
@@ -82,8 +83,8 @@ ifeq ($(TARGET_ARCHITECTURE),linux)
|
||||
OBJS = $(GENERIC_OBJS) $(LINUX_OBJS)
|
||||
TARGET_LIB = libjge.a
|
||||
TARGET_HGE = libhgetools.a
|
||||
INCDIR = $(shell freetype-config --cflags 2> /dev/null) -I/usr/X11/include -I../Boost -Isrc/zipFS -Iinclude/
|
||||
CXXFLAGS += -DLINUX $(FMOD)
|
||||
INCDIR = $(shell freetype-config --cflags 2> /dev/null) -I/usr/X11/include -I/usr/include/boost -Isrc/zipFS -Iinclude/
|
||||
CXXFLAGS += -DLINUX -DNETWORK_SUPPORT $(FMOD)
|
||||
CXXFLAGS += $(INCDIR)
|
||||
LIBDIR = lib/linux
|
||||
endif
|
||||
|
||||
@@ -18,9 +18,9 @@ using namespace std;
|
||||
template <class T>
|
||||
std::string ToHex(T* pointer)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
stream << hex << showbase << setfill('0') << setw(8) << (uint64_t) pointer;
|
||||
return stream.str();
|
||||
std::ostringstream stream;
|
||||
stream << hex << showbase << setfill('0') << setw(8) << (uint64_t) pointer;
|
||||
return stream.str();
|
||||
}
|
||||
|
||||
#ifdef LINUX
|
||||
@@ -42,9 +42,9 @@ std::string ToHex(T* pointer)
|
||||
#else // CAPTURE_STDERR
|
||||
#define DebugTrace(inString) \
|
||||
{ \
|
||||
std::ostringstream stream; \
|
||||
stream << inString; \
|
||||
qDebug("%s", stream.str().c_str()); \
|
||||
std::ostringstream stream; \
|
||||
stream << inString; \
|
||||
qDebug("%s", stream.str().c_str()); \
|
||||
}
|
||||
#endif // CAPTURE_STDERR
|
||||
|
||||
@@ -52,16 +52,16 @@ std::string ToHex(T* pointer)
|
||||
#include <android/log.h>
|
||||
#define DebugTrace(inString) \
|
||||
{ \
|
||||
std::ostringstream stream; \
|
||||
stream << inString; \
|
||||
__android_log_write(ANDROID_LOG_DEBUG, "Wagic", stream.str().c_str());\
|
||||
std::ostringstream stream; \
|
||||
stream << inString; \
|
||||
__android_log_write(ANDROID_LOG_DEBUG, "Wagic", stream.str().c_str());\
|
||||
}
|
||||
#else
|
||||
#define DebugTrace(inString) \
|
||||
{ \
|
||||
std::ostringstream stream; \
|
||||
stream << inString << std::endl; \
|
||||
OutputDebugStringA(stream.str().c_str()); \
|
||||
OutputDebugStringA(stream.str().c_str()); \
|
||||
}
|
||||
#endif // QT_CONFIG
|
||||
#endif // Win32, Linux
|
||||
@@ -71,7 +71,7 @@ std::string ToHex(T* pointer)
|
||||
#ifndef DebugTrace
|
||||
#define DebugTrace(inString) \
|
||||
{ \
|
||||
std::cerr << inString << std::endl; \
|
||||
std::cerr << inString << std::endl; \
|
||||
}
|
||||
#endif //DEBUG
|
||||
#endif
|
||||
|
||||
@@ -394,6 +394,7 @@ class JGE
|
||||
void SetJNIEnv(JNIEnv * env, jclass cls);
|
||||
void sendJNICommand(std::string command);
|
||||
std::string getFileSystemLocation();
|
||||
std::string getFileUserFolderPath();
|
||||
#endif
|
||||
|
||||
protected:
|
||||
|
||||
@@ -30,6 +30,7 @@ const int kInfoMenuID = -200;
|
||||
const int kRandomPlayerMenuID = -11;
|
||||
const int kRandomAIPlayerMenuID = -12;
|
||||
const int kEvilTwinMenuID = -14;
|
||||
const int kCommanderMenuID = -33;
|
||||
|
||||
class JGuiListener
|
||||
{
|
||||
|
||||
@@ -16,9 +16,14 @@ User folder is the only one that is really needed to guarantee both read and wri
|
||||
The content that users should not be touching.
|
||||
*/
|
||||
|
||||
#ifndef PSP
|
||||
#if defined (ANDROID)
|
||||
#include "PrecompiledHeader.h"
|
||||
#endif //PSP
|
||||
#endif //ANDROID
|
||||
|
||||
#if defined (LINUX)
|
||||
#include "../../projects/mtg/include/PrecompiledHeader.h"
|
||||
#endif //LINUX
|
||||
|
||||
|
||||
#ifdef WIN32
|
||||
#pragma warning(disable : 4786)
|
||||
@@ -126,10 +131,11 @@ JFileSystem::JFileSystem(const string & _userPath, const string & _systemPath)
|
||||
systemPath = [[documentsDirectory stringByAppendingString: @"/Res/"] cStringUsingEncoding:1];
|
||||
|
||||
#elif defined (ANDROID)
|
||||
userPath = JGE::GetInstance()->getFileSystemLocation();
|
||||
systemPath = "";
|
||||
userPath = JGE::GetInstance()->getFileUserFolderPath();
|
||||
systemPath = JGE::GetInstance()->getFileSystemLocation();
|
||||
|
||||
DebugTrace("User path " << userPath);
|
||||
DebugTrace("User path " << userPath);
|
||||
DebugTrace("System path " << systemPath);
|
||||
#elif defined (QT_CONFIG)
|
||||
|
||||
QDir sysDir(RESDIR);
|
||||
@@ -254,6 +260,7 @@ void JFileSystem::clearZipCache()
|
||||
|
||||
bool JFileSystem::AttachZipFile(const string &zipfile, char *password /* = NULL */)
|
||||
{
|
||||
#ifndef WIN32
|
||||
if (mZipAvailable && mZipFile.is_open())
|
||||
{
|
||||
if (mZipFileName != zipfile)
|
||||
@@ -261,7 +268,7 @@ bool JFileSystem::AttachZipFile(const string &zipfile, char *password /* = NULL
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif
|
||||
mZipFileName = zipfile;
|
||||
mPassword = password;
|
||||
|
||||
|
||||
@@ -249,6 +249,7 @@ u32 JGE::BindKey(LocalKeySym sym, JButton button)
|
||||
u32 JGE::UnbindKey(LocalKeySym sym, JButton button)
|
||||
{
|
||||
for (keycodes_it it = keyBinds.begin(); it != keyBinds.end(); )
|
||||
{
|
||||
if (sym == it->first && button == it->second)
|
||||
{
|
||||
keycodes_it er = it;
|
||||
@@ -256,7 +257,8 @@ u32 JGE::UnbindKey(LocalKeySym sym, JButton button)
|
||||
keyBinds.erase(er);
|
||||
}
|
||||
else ++it;
|
||||
return keyBinds.size();
|
||||
}
|
||||
return keyBinds.size();
|
||||
}
|
||||
|
||||
u32 JGE::UnbindKey(LocalKeySym sym)
|
||||
@@ -666,7 +668,7 @@ string JGE::getFileSystemLocation()
|
||||
if (env == NULL)
|
||||
{
|
||||
DebugTrace("An Error Occurred in getting the JNI Environment whie trying to get the system folder location. Defaulting to /mnt/sdcard/net.wagic.app/Wagic");
|
||||
return "/mnt/sdcard/Wagic";
|
||||
return "/mnt/sdcard/Wagic/Res";
|
||||
};
|
||||
|
||||
jclass jniClass = env->FindClass("org/libsdl/app/SDLActivity");
|
||||
@@ -675,7 +677,36 @@ string JGE::getFileSystemLocation()
|
||||
if (methodId == 0)
|
||||
{
|
||||
DebugTrace("An Error Occurred in getting the JNI methodID for getSystemFolderPath. Defaulting to /mnt/sdcard/Wagic");
|
||||
return "/mnt/sdcard/Wagic";
|
||||
return "/mnt/sdcard/Wagic/Res";
|
||||
};
|
||||
|
||||
jstring systemPath = (jstring) env->CallStaticObjectMethod(jniClass, methodId);
|
||||
|
||||
// Now convert the Java String to C++ char array
|
||||
const char* cstr = env->GetStringUTFChars(systemPath, 0);
|
||||
string retVal (cstr);
|
||||
env->ReleaseStringUTFChars(systemPath, cstr);
|
||||
env->DeleteLocalRef(systemPath);
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
string JGE::getFileUserFolderPath()
|
||||
{
|
||||
JNIEnv * env = getJNIEnv();
|
||||
if (env == NULL)
|
||||
{
|
||||
DebugTrace("An Error Occurred in getting the JNI Environment whie trying to get the system folder location. Defaulting to /mnt/sdcard/net.wagic.app/Wagic");
|
||||
return "/mnt/sdcard/Wagic/User";
|
||||
};
|
||||
|
||||
jclass jniClass = env->FindClass("org/libsdl/app/SDLActivity");
|
||||
jmethodID methodId = env->GetStaticMethodID( jniClass, "getUserFolderPath", "()Ljava/lang/String;");
|
||||
|
||||
if (methodId == 0)
|
||||
{
|
||||
DebugTrace("An Error Occurred in getting the JNI methodID for getSystemFolderPath. Defaulting to /mnt/sdcard/Wagic");
|
||||
return "/mnt/sdcard/Wagic/User";
|
||||
};
|
||||
|
||||
jstring systemPath = (jstring) env->CallStaticObjectMethod(jniClass, methodId);
|
||||
|
||||
@@ -197,7 +197,7 @@ bool JGuiController::CheckUserInput(JButton key)
|
||||
mObjects[mCurr]->Entering();
|
||||
}
|
||||
mEngine->LeftClickedProcessed();
|
||||
mEngine->ResetInput();
|
||||
mEngine->ResetInput();
|
||||
return true;
|
||||
}
|
||||
mEngine->LeftClickedProcessed();
|
||||
|
||||
@@ -87,8 +87,6 @@ WagicWrapper::~WagicWrapper()
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
QCoreApplication a(argc, argv);
|
||||
|
||||
int result = 0;
|
||||
WagicWrapper* wagicCore = new WagicWrapper();
|
||||
MTGCollection()->loadFolder("sets/primitives/");
|
||||
|
||||
@@ -18,6 +18,11 @@
|
||||
#include <stdexcept>
|
||||
#include <iostream>
|
||||
#include <math.h>
|
||||
#ifndef WIN32
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#if (defined FORCE_GLES)
|
||||
#undef GL_ES_VERSION_2_0
|
||||
@@ -53,6 +58,7 @@ JGameLauncher* g_launcher = NULL;
|
||||
#ifdef ANDROID
|
||||
JNIEnv * mJNIEnv = NULL;
|
||||
jclass * mJNIClass = NULL;
|
||||
int SDL_ResumeSyncTime = 0;
|
||||
#endif
|
||||
|
||||
class SdlApp;
|
||||
@@ -78,6 +84,7 @@ extern "C" void Java_org_libsdl_app_SDLActivity_nativeResume(
|
||||
{
|
||||
if (!g_engine)
|
||||
return;
|
||||
SDL_ResumeSyncTime = 100000;
|
||||
g_engine->Resume();
|
||||
}
|
||||
|
||||
@@ -136,8 +143,16 @@ public:
|
||||
if(!g_engine->IsPaused())
|
||||
OnEvent(&Event);
|
||||
}
|
||||
if(!g_engine->IsPaused())
|
||||
if(!g_engine->IsPaused()){
|
||||
#ifdef ANDROID
|
||||
// Fix for SDL crash on resuming Android app from background.
|
||||
if(SDL_ResumeSyncTime){
|
||||
usleep(SDL_ResumeSyncTime);
|
||||
SDL_ResumeSyncTime = 0;
|
||||
}
|
||||
#endif
|
||||
OnUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -293,17 +308,18 @@ static const struct { LocalKeySym keysym; JButton keycode; } gDefaultBindings[]
|
||||
{ SDLK_DOWN, JGE_BTN_DOWN },
|
||||
{ SDLK_LEFT, JGE_BTN_LEFT },
|
||||
{ SDLK_RIGHT, JGE_BTN_RIGHT },
|
||||
{ SDLK_z, JGE_BTN_UP },
|
||||
{ SDLK_d, JGE_BTN_RIGHT },
|
||||
{ SDLK_w, JGE_BTN_UP },
|
||||
{ SDLK_s, JGE_BTN_DOWN },
|
||||
{ SDLK_q, JGE_BTN_LEFT },
|
||||
{ SDLK_a, JGE_BTN_PREV },
|
||||
{ SDLK_a, JGE_BTN_LEFT },
|
||||
{ SDLK_d, JGE_BTN_RIGHT },
|
||||
{ SDLK_q, JGE_BTN_PREV },
|
||||
{ SDLK_e, JGE_BTN_NEXT },
|
||||
{ SDLK_i, JGE_BTN_CANCEL },
|
||||
{ SDLK_l, JGE_BTN_OK },
|
||||
{ SDLK_SPACE, JGE_BTN_OK },
|
||||
{ SDLK_k, JGE_BTN_SEC },
|
||||
{ SDLK_j, JGE_BTN_PRI },
|
||||
{ SDLK_b, JGE_BTN_SOUND },
|
||||
{ SDLK_f, JGE_BTN_FULLSCREEN },
|
||||
|
||||
/* old Qt ones, basically modified to comply with the N900 keyboard
|
||||
|
||||
@@ -185,9 +185,9 @@ static const int doubleBufferAttributes[] = {
|
||||
GLX_RED_SIZE, 1, /* the maximum number of bits per component */
|
||||
GLX_GREEN_SIZE, 1,
|
||||
GLX_BLUE_SIZE, 1,
|
||||
None
|
||||
0L /* None */
|
||||
};
|
||||
static Bool WaitForNotify(Display *dpy, XEvent *event, XPointer arg)
|
||||
static int WaitForNotify(Display *dpy, XEvent *event, XPointer arg)
|
||||
{
|
||||
return (event->type == MapNotify) && (event->xmap.window == (Window) arg);
|
||||
}
|
||||
@@ -387,13 +387,13 @@ int main(int argc, char* argv[])
|
||||
if (XCheckWindowEvent(gXDisplay, gXWindow, KeyPressMask | KeyReleaseMask | StructureNotifyMask, &event))
|
||||
switch (event.type)
|
||||
{
|
||||
case KeyPress:
|
||||
case 2: /* KeyPress */
|
||||
{
|
||||
const KeySym sym = XKeycodeToKeysym(gXDisplay, event.xkey.keycode, 1);
|
||||
g_engine->HoldKey_NoRepeat(sym);
|
||||
}
|
||||
break;
|
||||
case KeyRelease:
|
||||
case 3: /* KeyRelease */
|
||||
g_engine->ReleaseKey(XKeycodeToKeysym(gXDisplay, event.xkey.keycode, 1));
|
||||
break;
|
||||
case ConfigureNotify:
|
||||
|
||||
@@ -184,7 +184,13 @@ JMusic *JSoundSystem::LoadMusic(const char *fileName)
|
||||
const SLboolean req[2] = {SL_BOOLEAN_TRUE, SL_BOOLEAN_TRUE};
|
||||
result = (*engineEngine)->CreateAudioPlayer(engineEngine, &music->playerObject, &audioSrc, &audioSnk, 2, ids, req);
|
||||
DebugTrace("result " << result);
|
||||
|
||||
|
||||
if(result == SL_RESULT_MEMORY_FAILURE){
|
||||
delete music;
|
||||
mCurrentMusic = NULL;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// realize the player
|
||||
result = (*music->playerObject)->Realize(music->playerObject, SL_BOOLEAN_FALSE);
|
||||
DebugTrace("result " << result);
|
||||
@@ -303,6 +309,12 @@ JSample *JSoundSystem::LoadSample(const char *fileName)
|
||||
1, ids, req);
|
||||
DebugTrace("result " << result);
|
||||
|
||||
if(result == SL_RESULT_MEMORY_FAILURE){
|
||||
delete sample;
|
||||
mCurrentSample = NULL;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// realize the player
|
||||
result = (*sample->playerObject)->Realize(sample->playerObject, SL_BOOLEAN_FALSE);
|
||||
DebugTrace("result " << result);
|
||||
|
||||
@@ -96,7 +96,8 @@ hgeParticleSystem::hgeParticleSystem(hgeParticleSystemInfo *psi)
|
||||
{
|
||||
//hge=hgeCreate(HGE_VERSION);
|
||||
|
||||
memcpy(&info, psi, sizeof(hgeParticleSystemInfo));
|
||||
if (psi)
|
||||
memcpy(&info, psi, sizeof(hgeParticleSystemInfo));
|
||||
|
||||
vecLocation.x=vecPrevLocation.x=0.0f;
|
||||
vecLocation.y=vecPrevLocation.y=0.0f;
|
||||
|
||||
@@ -1804,7 +1804,7 @@ static void PNGCustomReadDataFn(png_structp png_ptr, png_bytep data, png_size_t
|
||||
{
|
||||
png_size_t check;
|
||||
|
||||
JFileSystem *fileSystem = (JFileSystem*)png_ptr->io_ptr;
|
||||
JFileSystem *fileSystem = (JFileSystem*)png_get_io_ptr(png_ptr);
|
||||
|
||||
check = fileSystem->ReadFile(data, length);
|
||||
|
||||
@@ -1887,7 +1887,7 @@ int JRenderer::LoadPNG(TextureInfo &textureInfo, const char *filename, int mode
|
||||
//fclose(fp);
|
||||
fileSystem->CloseFile();
|
||||
|
||||
png_destroy_read_struct(&png_ptr, png_infopp_NULL, png_infopp_NULL);
|
||||
png_destroy_read_struct(&png_ptr, NULL, NULL);
|
||||
|
||||
return JGE_ERR_PNG;
|
||||
}
|
||||
@@ -1896,11 +1896,15 @@ int JRenderer::LoadPNG(TextureInfo &textureInfo, const char *filename, int mode
|
||||
|
||||
png_set_sig_bytes(png_ptr, sig_read);
|
||||
png_read_info(png_ptr, info_ptr);
|
||||
png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, &interlace_type, int_p_NULL, int_p_NULL);
|
||||
png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, &interlace_type, NULL, NULL);
|
||||
png_set_strip_16(png_ptr);
|
||||
png_set_packing(png_ptr);
|
||||
if (color_type == PNG_COLOR_TYPE_PALETTE) png_set_palette_to_rgb(png_ptr);
|
||||
#if PNG_LIBPNG_VER >= 10400
|
||||
if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) png_set_expand_gray_1_2_4_to_8(png_ptr);
|
||||
#else
|
||||
if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) png_set_gray_1_2_4_to_8(png_ptr);
|
||||
#endif
|
||||
if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) png_set_tRNS_to_alpha(png_ptr);
|
||||
png_set_filler(png_ptr, 0xff, PNG_FILLER_AFTER);
|
||||
|
||||
@@ -1910,7 +1914,7 @@ int JRenderer::LoadPNG(TextureInfo &textureInfo, const char *filename, int mode
|
||||
//fclose(fp);
|
||||
fileSystem->CloseFile();
|
||||
|
||||
png_destroy_read_struct(&png_ptr, png_infopp_NULL, png_infopp_NULL);
|
||||
png_destroy_read_struct(&png_ptr, NULL, NULL);
|
||||
return JGE_ERR_MALLOC_FAILED;
|
||||
}
|
||||
|
||||
@@ -1932,7 +1936,7 @@ int JRenderer::LoadPNG(TextureInfo &textureInfo, const char *filename, int mode
|
||||
|
||||
for (y = 0; y < (int)height; y++)
|
||||
{
|
||||
png_read_row(png_ptr, (BYTE*) line, png_bytep_NULL);
|
||||
png_read_row(png_ptr, (BYTE*) line, NULL);
|
||||
for (x = 0; x < (int)width; x++)
|
||||
{
|
||||
DWORD color32 = line[x];
|
||||
@@ -1955,7 +1959,7 @@ int JRenderer::LoadPNG(TextureInfo &textureInfo, const char *filename, int mode
|
||||
free (line);
|
||||
|
||||
png_read_end(png_ptr, info_ptr);
|
||||
png_destroy_read_struct(&png_ptr, &info_ptr, png_infopp_NULL);
|
||||
png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
|
||||
|
||||
fileSystem->CloseFile();
|
||||
|
||||
@@ -1998,8 +2002,15 @@ int JRenderer::image_readgif(void * handle, TextureInfo &textureInfo, DWORD * bg
|
||||
GifFileType *GifFileIn = NULL;
|
||||
ColorMapObject *palette;
|
||||
int ExtCode;
|
||||
|
||||
#if GIFLIB_MAJOR >= 5
|
||||
if ((GifFileIn = DGifOpen(handle, readFunc, NULL)) == NULL)
|
||||
return 1;
|
||||
#else
|
||||
if ((GifFileIn = DGifOpen(handle, readFunc)) == NULL)
|
||||
return 1;
|
||||
#endif
|
||||
|
||||
*bgcolor = 0;
|
||||
textureInfo.mWidth = 0;
|
||||
textureInfo.mHeight = 0;
|
||||
@@ -2008,7 +2019,11 @@ int JRenderer::image_readgif(void * handle, TextureInfo &textureInfo, DWORD * bg
|
||||
do {
|
||||
if (DGifGetRecordType(GifFileIn, &RecordType) == GIF_ERROR)
|
||||
{
|
||||
#if GIFLIB_MAJOR >= 5
|
||||
DGifCloseFile(GifFileIn, NULL);
|
||||
#else
|
||||
DGifCloseFile(GifFileIn);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -2017,12 +2032,20 @@ int JRenderer::image_readgif(void * handle, TextureInfo &textureInfo, DWORD * bg
|
||||
{
|
||||
if (DGifGetImageDesc(GifFileIn) == GIF_ERROR)
|
||||
{
|
||||
#if GIFLIB_MAJOR >= 5
|
||||
DGifCloseFile(GifFileIn, NULL);
|
||||
#else
|
||||
DGifCloseFile(GifFileIn);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
if((palette = (GifFileIn->SColorMap != NULL) ? GifFileIn->SColorMap : GifFileIn->Image.ColorMap) == NULL)
|
||||
{
|
||||
#if GIFLIB_MAJOR >= 5
|
||||
DGifCloseFile(GifFileIn, NULL);
|
||||
#else
|
||||
DGifCloseFile(GifFileIn);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
textureInfo.mWidth = GifFileIn->Image.Width;
|
||||
@@ -2030,7 +2053,11 @@ int JRenderer::image_readgif(void * handle, TextureInfo &textureInfo, DWORD * bg
|
||||
*bgcolor = gif_color32(GifFileIn->SBackGroundColor);
|
||||
if((LineIn = (GifRowType) malloc(GifFileIn->Image.Width * sizeof(GifPixelType))) == NULL)
|
||||
{
|
||||
#if GIFLIB_MAJOR >= 5
|
||||
DGifCloseFile(GifFileIn, NULL);
|
||||
#else
|
||||
DGifCloseFile(GifFileIn);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
textureInfo.mTexWidth = getNextPower2(GifFileIn->Image.Width);
|
||||
@@ -2040,7 +2067,11 @@ int JRenderer::image_readgif(void * handle, TextureInfo &textureInfo, DWORD * bg
|
||||
if((p32 = (DWORD *)malloc(sizeof(PIXEL_TYPE) * textureInfo.mTexWidth * textureInfo.mTexHeight)) == NULL)
|
||||
{
|
||||
free((void *)LineIn);
|
||||
#if GIFLIB_MAJOR >= 5
|
||||
DGifCloseFile(GifFileIn, NULL);
|
||||
#else
|
||||
DGifCloseFile(GifFileIn);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
DWORD * curr = p32;
|
||||
@@ -2052,7 +2083,11 @@ int JRenderer::image_readgif(void * handle, TextureInfo &textureInfo, DWORD * bg
|
||||
{
|
||||
free((void *)p32);
|
||||
free((void *)LineIn);
|
||||
#if GIFLIB_MAJOR >= 5
|
||||
DGifCloseFile(GifFileIn, NULL);
|
||||
#else
|
||||
DGifCloseFile(GifFileIn);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
for (GifWord j = 0; j < GifFileIn->Image.Width; j ++)
|
||||
@@ -2081,7 +2116,11 @@ int JRenderer::image_readgif(void * handle, TextureInfo &textureInfo, DWORD * bg
|
||||
}
|
||||
if(LineIn != NULL)
|
||||
free((void *)LineIn);
|
||||
#if GIFLIB_MAJOR >= 5
|
||||
DGifCloseFile(GifFileIn, NULL);
|
||||
#else
|
||||
DGifCloseFile(GifFileIn);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
while (Extension != NULL) {
|
||||
@@ -2094,7 +2133,11 @@ int JRenderer::image_readgif(void * handle, TextureInfo &textureInfo, DWORD * bg
|
||||
}
|
||||
if(LineIn != NULL)
|
||||
free((void *)LineIn);
|
||||
#if GIFLIB_MAJOR >= 5
|
||||
DGifCloseFile(GifFileIn, NULL);
|
||||
#else
|
||||
DGifCloseFile(GifFileIn);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@@ -2109,7 +2152,11 @@ int JRenderer::image_readgif(void * handle, TextureInfo &textureInfo, DWORD * bg
|
||||
|
||||
if(LineIn != NULL)
|
||||
free((void *)LineIn);
|
||||
#if GIFLIB_MAJOR >= 5
|
||||
DGifCloseFile(GifFileIn, NULL);
|
||||
#else
|
||||
DGifCloseFile(GifFileIn);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -48,7 +48,9 @@ JSocket::JSocket(string ipAddr)
|
||||
|
||||
#ifdef WIN32
|
||||
unsigned int addr_dest = inet_addr(ipAddr.c_str());
|
||||
hostentptr=gethostbyaddr((char*) &addr_dest, 4, AF_INET);
|
||||
hostentptr = gethostbyaddr((char*) &addr_dest, 4, AF_INET);
|
||||
if (hostentptr == NULL)
|
||||
hostentptr = gethostbyname(ipAddr.c_str()); // Fix for Windows if IP Address cannot be resolved.
|
||||
#elif LINUX
|
||||
hostentptr = gethostbyname(ipAddr.c_str());
|
||||
#endif
|
||||
|
||||
@@ -631,8 +631,8 @@ streamoff filesystem::CentralDirZipped(std::istream & File, std::streamoff begin
|
||||
std::streamoff eof = begin + size;
|
||||
|
||||
// Look for the "end of central dir" header. Start minimum 22 bytes before end.
|
||||
if (! File.seekg(eof - 22, ios::beg))
|
||||
return -1;
|
||||
if (! File.seekg(eof - 22, ios::beg))
|
||||
return -1;
|
||||
|
||||
streamoff EndPos;
|
||||
streamoff StartPos = File.tellg();
|
||||
|
||||
@@ -258,8 +258,8 @@ inline void izfstream::open(const char * FilePath, filesystem * pFS) {
|
||||
if (pFS)
|
||||
m_pFS = pFS;
|
||||
|
||||
if (m_pFS != NULL)
|
||||
m_pFS->Open(* this, FilePath);
|
||||
if (m_pFS != NULL)
|
||||
m_pFS->Open(* this, FilePath);
|
||||
}
|
||||
|
||||
inline void izfstream::close() {
|
||||
|
||||
@@ -76,8 +76,8 @@ bool zbuffer::use(std::streamoff Offset, std::streamoff Size)
|
||||
return false;
|
||||
|
||||
//Don't use a buffer already used;
|
||||
if (m_Used)
|
||||
return false;
|
||||
if (m_Used)
|
||||
return false;
|
||||
|
||||
// adjust file position
|
||||
if (! m_ZipFile.seekg(Offset, ios::beg))
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#Wagic the Homebrew
|
||||
|
||||
|
||||
[](https://travis-ci.org/WagicProject/wagic)
|
||||
[](https://travis-ci.com/WagicProject/wagic)
|
||||
[](https://ci.appveyor.com/project/xawotihs/wagic/branch/master)
|
||||
[](https://coveralls.io/r/WagicProject/wagic?branch=master)
|
||||
|
||||
@@ -20,7 +20,7 @@ It is highly customizable and allows the player to tweak the rules / create thei
|
||||
|
||||
Info, downloads, discussions and more at http://wololo.net/forum/index.php
|
||||
|
||||
-
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
/gen
|
||||
/bin
|
||||
/libs
|
||||
|
||||
|
||||
@@ -1,18 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="0201" android:versionName="@string/app_version" package="net.wagic.app">
|
||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<application android:debuggable="true" android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
|
||||
<activity android:configChanges="keyboard|keyboardHidden|orientation" android:label="@string/app_name" android:name="org.libsdl.app.SDLActivity" android:screenOrientation="sensorLandscape">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:configChanges="keyboard|keyboardHidden|orientation" android:name="com.google.ads.AdActivity" android:screenOrientation="sensorLandscape"/>
|
||||
</application>
|
||||
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="10"/>
|
||||
</manifest>
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:versionCode="0231"
|
||||
android:installLocation="preferExternal"
|
||||
android:versionName="@string/app_version"
|
||||
package="net.wagic.app">
|
||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<application android:icon="@drawable/icon"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
|
||||
|
||||
<activity android:debuggable="false"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation"
|
||||
android:label="@string/app_name"
|
||||
android:name="org.libsdl.app.SDLActivity"
|
||||
android:screenOrientation="sensorLandscape">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
<uses-sdk android:minSdkVersion="10"
|
||||
android:targetSdkVersion="29" />
|
||||
</manifest>
|
||||
|
||||
@@ -8,4 +8,4 @@
|
||||
# project structure.
|
||||
|
||||
# Project target.
|
||||
target=android-10
|
||||
target=android-23
|
||||
|
||||
@@ -11,9 +11,8 @@ SDL_PATH := $(JGE_PATH)/Dependencies/SDL
|
||||
BOOST_PATH := $(MY_WAGIC_ROOT)/Boost
|
||||
JPEG_PATH := $(JGE_PATH)/Dependencies/libjpeg
|
||||
PNG_PATH := $(JGE_PATH)/Dependencies/libpng
|
||||
DEBUG ?= DEBUG
|
||||
|
||||
LOCAL_CFLAGS += -DLINUX -DANDROID -DSDL_CONFIG -D_$(DEBUG)
|
||||
LOCAL_CFLAGS += -DLINUX -DANDROID -DSDL_CONFIG -DNETWORK_SUPPORT
|
||||
LOCAL_CFLAGS += -D_STLP_USE_SIMPLE_NODE_ALLOC -DTIXML_USE_STL
|
||||
LOCAL_CFLAGS += -D__arm__ -D_REENTRANT -D_GLIBCXX__PTHREADS
|
||||
LOCAL_STATIC_LIBRARIES := libpng libjpeg
|
||||
@@ -134,6 +133,7 @@ LOCAL_SRC_FILES := $(SDL_PATH)/src/main/android/SDL_android_main.cpp \
|
||||
$(MTG_PATH)/src/WFilter.cpp \
|
||||
$(MTG_PATH)/src/WFont.cpp \
|
||||
$(MTG_PATH)/src/WGui.cpp \
|
||||
$(MTG_PATH)/src/WParsedInt.cpp \
|
||||
$(MTG_PATH)/src/WResourceManager.cpp \
|
||||
$(MTG_PATH)/src/DeckView.cpp \
|
||||
$(MTG_PATH)/src/CarouselDeckView.cpp \
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
APP_PROJECT_PATH := $(call my-dir)/..
|
||||
APP_CPPFLAGS += -frtti -fexceptions
|
||||
APP_ABI := armeabi armeabi-v7a
|
||||
APP_STL := gnustl_static
|
||||
APP_ABI := armeabi-v7a
|
||||
#APP_ABI := x86 # mainly for emulators
|
||||
APP_STL := c++_static
|
||||
APP_MODULES := libpng libjpeg main SDL
|
||||
|
||||
#APP_OPTIM is 'release' by default
|
||||
|
||||
@@ -11,4 +11,4 @@
|
||||
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
|
||||
|
||||
# Project target.
|
||||
target=android-10
|
||||
target=android-23
|
||||
|
||||
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 7.1 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 60 KiB |
@@ -4,6 +4,7 @@
|
||||
android:id="@+id/mainLayout"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:keepScreenOn="true"
|
||||
>
|
||||
<TextView
|
||||
android:layout_width="fill_parent"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">Wagic</string>
|
||||
<string name="app_version">0.20.1</string>
|
||||
<string name="info_text">Wagic v0.20.1\\nAll Rights Reserved.</string>
|
||||
<string name="app_version">0.23.1</string>
|
||||
<string name="info_text">All Rights Reserved.</string>
|
||||
</resources>
|
||||
|
||||
@@ -11,13 +11,13 @@ import android.util.Log;
|
||||
|
||||
public class DeckImporter
|
||||
{
|
||||
|
||||
public static String importDeck( File f, String mypath, String activePath )
|
||||
{
|
||||
String message = "";
|
||||
String deck = "";
|
||||
String deckname = "";
|
||||
String prefix = "#SB:";
|
||||
String prefix = "";
|
||||
int cardcount = 0;
|
||||
if(f.exists() && !f.isDirectory())
|
||||
{
|
||||
deckname = f.getName();
|
||||
@@ -35,90 +35,90 @@ public class DeckImporter
|
||||
while (scanner.hasNext())
|
||||
{
|
||||
String line = scanner.nextLine();
|
||||
line = line.trim();
|
||||
if (!line.equals("")) // don't write out blank lines
|
||||
{
|
||||
String[] slines = line.split("\\s+");
|
||||
String arranged = "";
|
||||
for(int idx = 1; idx < slines.length; idx++)
|
||||
{
|
||||
arranged += slines[idx] + " ";
|
||||
}
|
||||
if ((isNumeric(slines[0])) && arranged != null)
|
||||
{
|
||||
if (slines[1] != null && slines[1].startsWith("["))
|
||||
{
|
||||
arranged = arranged.substring(5);
|
||||
slines[1] = slines[1].replaceAll("\\[", "").replaceAll("\\]","");
|
||||
deck += arranged + " (" + renameSet(slines[1]) + ") * " + slines[0] + "\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
deck += arranged + "(*) * " + slines[0] + "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
File profile = new File(activePath+"/Res/settings/options.txt");
|
||||
if(profile.exists() && !profile.isDirectory())
|
||||
{
|
||||
String profileName = getActiveProfile(profile);
|
||||
if(profileName != "Missing!")
|
||||
{
|
||||
File rootProfiles = new File(activePath+"/Res/profiles/"+profileName);
|
||||
if(rootProfiles.exists() && rootProfiles.isDirectory())
|
||||
{
|
||||
//save deck
|
||||
int countdeck = 1;
|
||||
File[] files = rootProfiles.listFiles();
|
||||
for (int i = 0; i < files.length; i++)
|
||||
{//check if there is available deck...
|
||||
if(files[i].getName().startsWith("deck"))
|
||||
countdeck++;
|
||||
}
|
||||
File toSave = new File(rootProfiles+"/deck"+countdeck+".txt");
|
||||
try
|
||||
{
|
||||
FileOutputStream fop = new FileOutputStream(toSave);
|
||||
|
||||
// if file doesn't exists, then create it
|
||||
if (!toSave.exists()) {
|
||||
toSave.createNewFile();
|
||||
}
|
||||
// get the content in bytes
|
||||
byte[] contentInBytes = deck.getBytes();
|
||||
fop.write(contentInBytes);
|
||||
fop.flush();
|
||||
fop.close();
|
||||
message = "Import Deck Success!\n\n"+deck;
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
message = e.getMessage();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
message = "Missing Folder!";
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
message = "Invalid Profile!";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
message = "No errors, and file EMPTY";
|
||||
}
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
message = e.getMessage();
|
||||
}
|
||||
}
|
||||
return message;
|
||||
line = line.trim();
|
||||
if (line.equals("")) {
|
||||
line = scanner.nextLine();
|
||||
if (line.equals("")) {
|
||||
line = scanner.nextLine();
|
||||
prefix = "#SB:"; // Sideboard started from next card (we assumed that there are 2 blank lines from main deck and sideboard).
|
||||
}
|
||||
}
|
||||
if (!line.equals("")) // don't write out blank lines
|
||||
{
|
||||
String[] slines = line.split("\\s+");
|
||||
String arranged = "";
|
||||
for (int idx = 1; idx < slines.length; idx++)
|
||||
{
|
||||
arranged += slines[idx] + " ";
|
||||
}
|
||||
if ((isNumeric(slines[0])) && arranged != null)
|
||||
{
|
||||
if (slines[1] != null && slines[1].startsWith("["))
|
||||
{
|
||||
arranged = arranged.substring(5);
|
||||
slines[1] = slines[1].replaceAll("\\[", "").replaceAll("\\]", "");
|
||||
deck += prefix + arranged + " (" + renameSet(slines[1]) + ") * " + slines[0] + "\n";
|
||||
} else
|
||||
{
|
||||
deck += prefix + arranged + "(*) * " + slines[0] + "\n";
|
||||
}
|
||||
cardcount += Integer.parseInt(slines[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
File profile = new File(activePath + "/User/settings/options.txt");
|
||||
String profileName = "Default";
|
||||
if (profile.exists() && !profile.isDirectory())
|
||||
profileName = getActiveProfile(profile);
|
||||
File rootDecks = null;
|
||||
if (!profileName.equalsIgnoreCase("Default"))
|
||||
rootDecks = new File(activePath + "/User/profiles/" + profileName);
|
||||
else
|
||||
rootDecks = new File(activePath + "/User/player/");
|
||||
if (rootDecks.exists() && rootDecks.isDirectory())
|
||||
{
|
||||
//save deck
|
||||
int countdeck = 1;
|
||||
File[] files = rootDecks.listFiles();
|
||||
for (int i = 0; i < files.length; i++)
|
||||
{//check if there is available deck...
|
||||
if (files[i].getName().startsWith("deck"))
|
||||
countdeck++;
|
||||
}
|
||||
File toSave = new File(rootDecks + "/deck" + countdeck + ".txt");
|
||||
try
|
||||
{
|
||||
FileOutputStream fop = new FileOutputStream(toSave);
|
||||
|
||||
// if file doesn't exists, then create it
|
||||
if (!toSave.exists())
|
||||
{
|
||||
toSave.createNewFile();
|
||||
}
|
||||
// get the content in bytes
|
||||
byte[] contentInBytes = deck.getBytes();
|
||||
fop.write(contentInBytes);
|
||||
fop.flush();
|
||||
fop.close();
|
||||
message = "The deck has been successfully imported as: " + toSave.getName() + "\n" + cardcount + " total cards in this deck\n\n" + deck;
|
||||
} catch (IOException e)
|
||||
{
|
||||
message = e.getMessage();
|
||||
}
|
||||
} else
|
||||
{
|
||||
message = "Problem opening decks folder: " + rootDecks.getAbsolutePath();
|
||||
}
|
||||
} else
|
||||
{
|
||||
message = "No errors, and file EMPTY";
|
||||
}
|
||||
} catch (IOException e)
|
||||
{
|
||||
message = e.getMessage();
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
|
||||
private static boolean isNumeric(String input)
|
||||
@@ -133,7 +133,7 @@ public class DeckImporter
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
private static String getActiveProfile(File mypath)
|
||||
{
|
||||
String name = "";
|
||||
@@ -147,16 +147,16 @@ public class DeckImporter
|
||||
}
|
||||
else
|
||||
{
|
||||
return "Missing!";
|
||||
return "Default";
|
||||
}
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
return "Missing!";
|
||||
return "Default";
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
|
||||
private static String renameSet(String set)
|
||||
{
|
||||
if (set == "")
|
||||
@@ -276,5 +276,4 @@ public class DeckImporter
|
||||
else
|
||||
return set;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ import android.util.Log;
|
||||
|
||||
public class StorageOptions
|
||||
{
|
||||
private static final String TAG = StorageOptions.class.getCanonicalName();
|
||||
private static ArrayList<String> mMounts = new ArrayList<String>();
|
||||
private static ArrayList<String> mVold = new ArrayList<String>();
|
||||
|
||||
@@ -22,7 +23,7 @@ public class StorageOptions
|
||||
public static int count = 0;
|
||||
public static String defaultMountPoint;
|
||||
|
||||
public static void determineStorageOptions()
|
||||
public static void determineStorageOptions(android.content.Context mContext)
|
||||
{
|
||||
initializeMountPoints();
|
||||
if (findForcemount()){
|
||||
@@ -35,6 +36,16 @@ public class StorageOptions
|
||||
}
|
||||
compareMountsWithVold();
|
||||
testAndCleanMountsList();
|
||||
File[] externalStorageVolumes = mContext.getExternalFilesDirs("");
|
||||
for(int i = 0; i < externalStorageVolumes.length; i++){
|
||||
mMounts.add(externalStorageVolumes[i].getAbsolutePath());
|
||||
}
|
||||
for(int i = 0; i < mMounts.size(); i++){
|
||||
for(int j = 0; j < mMounts.size(); j++){
|
||||
if(i!=j && mMounts.get(i).startsWith(mMounts.get(j)))
|
||||
mMounts.remove(i);
|
||||
}
|
||||
}
|
||||
setProperties();
|
||||
}
|
||||
|
||||
@@ -77,11 +88,11 @@ public class StorageOptions
|
||||
} catch (FileNotFoundException fnfex)
|
||||
{
|
||||
// if proc/mount doesn't exist we just use
|
||||
Log.i(StorageOptions.class.getCanonicalName(), fnfex.getMessage() + ": assuming " + defaultMountPoint + " is the only mount point");
|
||||
Log.i(TAG, fnfex.getMessage() + ": assuming " + defaultMountPoint + " is the only mount point");
|
||||
mMounts.add(defaultMountPoint);
|
||||
} catch (Exception e)
|
||||
{
|
||||
Log.e(StorageOptions.class.getCanonicalName(), e.getMessage() + ": unknown exception while reading mounts file");
|
||||
Log.e(TAG, e.getMessage() + ": unknown exception while reading mounts file");
|
||||
mMounts.add(defaultMountPoint);
|
||||
}
|
||||
}
|
||||
@@ -111,11 +122,11 @@ public class StorageOptions
|
||||
} catch (FileNotFoundException fnfex)
|
||||
{
|
||||
// if proc/mount doesn't exist we just use
|
||||
Log.i(StorageOptions.class.getCanonicalName(), fnfex.getMessage() + ": assuming " + defaultMountPoint + " is the only mount point");
|
||||
Log.i(TAG, fnfex.getMessage() + ": assuming " + defaultMountPoint + " is the only mount point");
|
||||
mMounts.add(defaultMountPoint);
|
||||
} catch (Exception e)
|
||||
{
|
||||
Log.e(StorageOptions.class.getCanonicalName(), e.getMessage() + ": unknown exception while reading mounts file");
|
||||
Log.e(TAG, e.getMessage() + ": unknown exception while reading mounts file");
|
||||
mMounts.add(defaultMountPoint);
|
||||
}
|
||||
}
|
||||
@@ -144,11 +155,11 @@ public class StorageOptions
|
||||
} catch (FileNotFoundException fnfex)
|
||||
{
|
||||
// if vold.fstab doesn't exist we use the value gathered from the Environment
|
||||
Log.i(StorageOptions.class.getCanonicalName(), fnfex.getMessage() + ": assuming " + defaultMountPoint + " is the only mount point");
|
||||
Log.i(TAG, fnfex.getMessage() + ": assuming " + defaultMountPoint + " is the only mount point");
|
||||
mMounts.add(defaultMountPoint);
|
||||
} catch (Exception e)
|
||||
{
|
||||
Log.e(StorageOptions.class.getCanonicalName(), e.getMessage() + ": unknown exception while reading mounts file");
|
||||
Log.e(TAG, e.getMessage() + ": unknown exception while reading vold.fstab file");
|
||||
mMounts.add(defaultMountPoint);
|
||||
}
|
||||
}
|
||||
@@ -174,15 +185,18 @@ public class StorageOptions
|
||||
{
|
||||
/*
|
||||
* Sometimes the two lists of mount points will be different. We only want those mount points that are in both list.
|
||||
*
|
||||
*
|
||||
* Compare the two lists together and remove items that are not in both lists.
|
||||
*/
|
||||
|
||||
for (int i = 0; i < mMounts.size(); i++)
|
||||
if (mVold.size() > 0)
|
||||
{
|
||||
String mount = mMounts.get(i);
|
||||
if (!mVold.contains(mount))
|
||||
mMounts.remove(i--);
|
||||
for (int i = 0; i < mMounts.size(); i++)
|
||||
{
|
||||
String mount = mMounts.get(i);
|
||||
if (!mVold.contains(mount))
|
||||
mMounts.remove(i--);
|
||||
}
|
||||
}
|
||||
|
||||
// don't need this anymore, clear the vold list to reduce memory
|
||||
@@ -204,9 +218,10 @@ public class StorageOptions
|
||||
if (!root.exists() || !root.isDirectory() || !root.canWrite())
|
||||
mMounts.remove(i--);
|
||||
}
|
||||
|
||||
|
||||
if (t == 0 && Build.VERSION.SDK_INT >= 16 && findForcemount())
|
||||
{//if none is found lets force it for Jellybean and above...
|
||||
{
|
||||
//if none is found lets force it for Jellybean and above...
|
||||
if (System.getenv("EXTERNAL_STORAGE") != null)
|
||||
{
|
||||
File root = new File(System.getenv("EXTERNAL_STORAGE"));
|
||||
@@ -224,7 +239,7 @@ public class StorageOptions
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (System.getenv("SECONDARY_STORAGE") != null)
|
||||
{
|
||||
File root = new File(System.getenv("SECONDARY_STORAGE"));
|
||||
@@ -247,6 +262,7 @@ public class StorageOptions
|
||||
|
||||
private static void setProperties()
|
||||
{
|
||||
Log.d(TAG, "setProperties()");
|
||||
/*
|
||||
* At this point all the paths in the list should be valid. Build the public properties.
|
||||
*/
|
||||
@@ -258,21 +274,22 @@ public class StorageOptions
|
||||
for (String path : mMounts)
|
||||
{//with forcemount menu
|
||||
if ("/mnt/sdcard".equalsIgnoreCase(path) || "/storage/sdcard0".equalsIgnoreCase(path))
|
||||
mLabels.add("Internal SD " + "[" + path + "]");
|
||||
mLabels.add("Internal SD " + "[" + path + "/]");
|
||||
else if (path.contains("emulated"))
|
||||
mLabels.add("Emulated SD " + " [" + path + "]");
|
||||
mLabels.add("Emulated SD " + " [" + path + "/]");
|
||||
else
|
||||
mLabels.add("External SD " + " [" + path + "]");
|
||||
mLabels.add("External SD " + " [" + path + "/]");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (String path : mMounts)
|
||||
{ // TODO: /mnt/sdcard is assumed to always mean internal storage. Use this comparison until there is a better way to do this
|
||||
if ("/mnt/sdcard".equalsIgnoreCase(path))
|
||||
mLabels.add("Built-in Storage");
|
||||
{
|
||||
// TODO: /mnt/sdcard and emulated are assumed to always mean internal storage. Use this comparison until there is a better way to do this
|
||||
if ("/mnt/sdcard".equalsIgnoreCase(path) || path.contains("emulated"))
|
||||
mLabels.add("Built-in Storage " + "[" + path + "/]");
|
||||
else
|
||||
mLabels.add("External SD Card " + i++);
|
||||
mLabels.add("External SD Card " + "[" + path + "/]");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -310,84 +327,97 @@ public class StorageOptions
|
||||
*
|
||||
* @return <code>true</code> if the device is rooted, <code>false</code> otherwise.
|
||||
*/
|
||||
public static boolean isRooted() {
|
||||
|
||||
// get from build info
|
||||
String buildTags = android.os.Build.TAGS;
|
||||
if (buildTags != null && buildTags.contains("test-keys")) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// check if /system/app/Superuser.apk is present
|
||||
try {
|
||||
File file = new File("/system/app/Superuser.apk");
|
||||
if (file.exists()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception e1) {
|
||||
// ignore
|
||||
}
|
||||
try {
|
||||
File file = new File("/system/app/Superuser/Superuser.apk");
|
||||
if (file.exists()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception e1) {
|
||||
// ignore
|
||||
}
|
||||
//SuperSU
|
||||
try {
|
||||
File file = new File("/system/app/SuperSU.apk");
|
||||
if (file.exists()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception e1) {
|
||||
// ignore
|
||||
}
|
||||
try {
|
||||
File file = new File("/system/app/SuperSU/SuperSU.apk");
|
||||
if (file.exists()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception e1) {
|
||||
// ignore
|
||||
}
|
||||
// try executing commands
|
||||
return canExecuteCommand("/system/xbin/which su")
|
||||
|| canExecuteCommand("/system/bin/which su") || canExecuteCommand("which su");
|
||||
}
|
||||
|
||||
// executes a command on the system
|
||||
private static boolean canExecuteCommand(String command) {
|
||||
boolean executedSuccesfully;
|
||||
try {
|
||||
Runtime.getRuntime().exec(command);
|
||||
executedSuccesfully = true;
|
||||
}
|
||||
catch (Exception e) {
|
||||
executedSuccesfully = false;
|
||||
}
|
||||
|
||||
return executedSuccesfully;
|
||||
}
|
||||
|
||||
private static boolean findForcemount(){
|
||||
try
|
||||
public static boolean isRooted()
|
||||
{
|
||||
File file = new File(System.getenv("EXTERNAL_STORAGE")+"/forcemount");
|
||||
if (file.exists())
|
||||
// get from build info
|
||||
String buildTags = android.os.Build.TAGS;
|
||||
if (buildTags != null && buildTags.contains("test-keys"))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception e1)
|
||||
|
||||
// check if /system/app/Superuser.apk is present
|
||||
try
|
||||
{
|
||||
File file = new File("/system/app/Superuser.apk");
|
||||
if (file.exists())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
} catch (Exception e1)
|
||||
{
|
||||
// ignore
|
||||
}
|
||||
try
|
||||
{
|
||||
File file = new File("/system/app/Superuser/Superuser.apk");
|
||||
if (file.exists())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
} catch (Exception e1)
|
||||
{
|
||||
// ignore
|
||||
}
|
||||
//SuperSU
|
||||
try
|
||||
{
|
||||
File file = new File("/system/app/SuperSU.apk");
|
||||
if (file.exists())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
} catch (Exception e1)
|
||||
{
|
||||
// ignore
|
||||
}
|
||||
try
|
||||
{
|
||||
File file = new File("/system/app/SuperSU/SuperSU.apk");
|
||||
if (file.exists())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
} catch (Exception e1)
|
||||
{
|
||||
// ignore
|
||||
}
|
||||
// try executing commands
|
||||
return canExecuteCommand("/system/xbin/which su")
|
||||
|| canExecuteCommand("/system/bin/which su") || canExecuteCommand("which su");
|
||||
}
|
||||
|
||||
// executes a command on the system
|
||||
private static boolean canExecuteCommand(String command)
|
||||
{
|
||||
boolean executedSuccesfully;
|
||||
try
|
||||
{
|
||||
Runtime.getRuntime().exec(command);
|
||||
executedSuccesfully = true;
|
||||
} catch (Exception e)
|
||||
{
|
||||
executedSuccesfully = false;
|
||||
}
|
||||
|
||||
return executedSuccesfully;
|
||||
}
|
||||
|
||||
private static boolean findForcemount()
|
||||
{
|
||||
Log.d(TAG, "findForcemount()");
|
||||
try
|
||||
{
|
||||
File file = new File(System.getenv("EXTERNAL_STORAGE") + "/forcemount");
|
||||
if (file.exists())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
} catch (Exception e)
|
||||
{
|
||||
Log.w(TAG, e.getMessage());
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ OBJS = objs/InteractiveButton.o objs/AbilityParser.o objs/ActionElement.o\
|
||||
objs/ThisDescriptor.o objs/Token.o objs/Translate.o objs/TranslateKeys.o\
|
||||
objs/Trash.o objs/utils.o objs/WEvent.o objs/WResourceManager.o\
|
||||
objs/WCachedResource.o objs/WDataSrc.o objs/WGui.o objs/WFilter.o objs/Tasks.o\
|
||||
objs/WFont.o objs/CarouselDeckView.o objs/GridDeckView.o objs/DeckView.o
|
||||
objs/WFont.o objs/WParsedInt.o objs/CarouselDeckView.o objs/GridDeckView.o objs/DeckView.o
|
||||
DEPS = $(patsubst objs/%.o, deps/%.d, $(OBJS))
|
||||
|
||||
RESULT = $(shell psp-config --psp-prefix 2> Makefile.cache)
|
||||
@@ -59,7 +59,6 @@ endif
|
||||
|
||||
ifeq ($(TARGET_ARCHITECTURE),psp)
|
||||
DEFAULT_RULE = 3xx
|
||||
TARGET_ARCHITECTURE = psp
|
||||
PSP_FW_VERSION=371
|
||||
BUILD_PRX = 1
|
||||
SIGN_PRX = 1
|
||||
@@ -74,19 +73,36 @@ PSP_EBOOT_PIC1 = pic1.png
|
||||
INCDIR = ../../JGE/include ../../JGE/src/zipFS ../../JGE/include/psp ../../JGE/include/psp/freetype2 ../../JGE/src ../../projects/mtg/include ../../Boost
|
||||
LIBDIR = ../../JGE/lib/psp
|
||||
CFLAGS = -O2 -G0 -DPSPFW3XX -DDEVHOOK -DUSE_PRECOMPILED_HEADERS=1 -DPSP -DTIXML_USE_STL
|
||||
|
||||
else
|
||||
|
||||
ifeq ($(MAKECMDGOALS),x11)
|
||||
|
||||
OBJS += objs/TestSuiteAI.o
|
||||
INCDIR = -I../../JGE/include -I../../JGE/src -I/usr/X11/include -I../../projects/mtg/include -I/usr/include/boost -I../../JGE/src/zipFS
|
||||
LIBDIR = -L../../JGE/lib/linux -L../../JGE -L/usr/X11/lib
|
||||
LIBS = -ljge -lfreetype -ljpeg -lgif -lpng -lz -lm -lstdc++ -lhgetools -lGL -lGLU -lX11 -lpthread $(FMOD)
|
||||
CFLAGS = $(INCDIR) -DLINUX -DNETWORK_SUPPORT -DUSE_PRECOMPILED_HEADERS=1 -DTIXML_USE_STL -Wno-nonnull-compare
|
||||
|
||||
ASFLAGS = $(CXXFLAGS)
|
||||
|
||||
all: $(DEFAULT_RULE)
|
||||
else
|
||||
|
||||
OBJS += objs/TestSuiteAI.o
|
||||
INCDIR = -I../../JGE/include -I../../JGE/src -I/usr/X11/include -I../../projects/mtg/include -I../../Boost -I../../JGE/src/zipFS
|
||||
LIBDIR = -L../../JGE/lib/linux -L../../JGE -L/usr/X11/lib -L../../Boost/lib
|
||||
LIBS = -ljge -lfreetype -ljpeg -lgif -lpng -lz -lm -lstdc++ -lhgetools -lGL -lGLU -lX11 -lboost_thread $(FMOD)
|
||||
CFLAGS = $(INCDIR) -DLINUX -DUSE_PRECOMPILED_HEADERS=1
|
||||
CFLAGS = $(INCDIR) -DLINUX -DNETWORK_SUPPORT -DUSE_PRECOMPILED_HEADERS=1 -Wno-nonnull-compare
|
||||
|
||||
ASFLAGS = $(CXXFLAGS)
|
||||
|
||||
all: $(DEFAULT_RULE)
|
||||
|
||||
endif
|
||||
endif
|
||||
|
||||
CFLAGS := -Wall -W -Werror -Wno-unused $(CFLAGS)
|
||||
CFLAGS := -Wall -W -Werror -Wno-unused -Wno-deprecated-declarations $(CFLAGS)
|
||||
CXXFLAGS += $(CFLAGS)
|
||||
# -fno-exceptions
|
||||
|
||||
@@ -110,8 +126,6 @@ debug: all
|
||||
|
||||
else
|
||||
|
||||
|
||||
|
||||
$(TARGET): Makefile.$(TARGET_ARCHITECTURE) $(OBJS) ../../JGE/lib/linux/libjge.a
|
||||
$(CXX) -o $(TARGET) $(OBJS) $(LIBS) $(LIBDIR)
|
||||
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
#NAME:Herdsmen
|
||||
Aurochs (ICE) *4
|
||||
Brushwagg (MIR) *2
|
||||
Birds of Paradise (7ED) *4
|
||||
Snorting Gahr (MRQ) *1
|
||||
Aggressive Urge (INV) *4
|
||||
Blanchwood Armor (8ED) *4
|
||||
Bull Aurochs (CSP) *4
|
||||
Boreal Druid (CSP) *4
|
||||
Aurochs Herd (CSP) *4
|
||||
Timbermaw Larva (ZEN) *4
|
||||
Bramble Creeper (M10) *2
|
||||
Awakening Zone (ROE) *4
|
||||
Beastmaster Ascension (ZEN) *4
|
||||
Forest (M11) *4
|
||||
Forest (SOM) *4
|
||||
Forest (SOM) *4
|
||||
Forest (SOM) *4
|
||||
Forest (SOM) *4
|
||||
#NAME:Herdsmen
|
||||
Aurochs (ICE) *4
|
||||
Brushwagg (MIR) *2
|
||||
Birds of Paradise (7ED) *4
|
||||
Snorting Gahr (MRQ) *1
|
||||
Aggressive Urge (INV) *4
|
||||
Blanchwood Armor (8ED) *4
|
||||
Bull Aurochs (CSP) *4
|
||||
Boreal Druid (CSP) *4
|
||||
Aurochs Herd (CSP) *4
|
||||
Timbermaw Larva (ZEN) *4
|
||||
Bramble Creeper (M10) *2
|
||||
Awakening Zone (ROE) *4
|
||||
Beastmaster Ascension (ZEN) *4
|
||||
Forest (M11) *4
|
||||
Forest (SOM) *4
|
||||
Forest (SOM) *4
|
||||
Forest (SOM) *4
|
||||
Forest (SOM) *4
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
#NAME:The KOR
|
||||
#DESC:The Kor never stand down.Golem-Skin Gauntlets (MRD) *1
|
||||
Plains (8ED) *4
|
||||
Plains (8ED) *4
|
||||
Bonesplitter (MRD) *2
|
||||
Vulshok Battlegear (MRD) *1
|
||||
Plains (MRD) *4
|
||||
Plains (MRD) *4
|
||||
Plains (MRD) *4
|
||||
Cranial Plating (5DN) *2
|
||||
Skyhunter Skirmisher (5DN) *2
|
||||
Paradise Mantle (5DN) *2
|
||||
Shuko (BOK) *2
|
||||
Umezawa's Jitte (BOK) *2
|
||||
Kor Duelist (ZEN) *2
|
||||
Spidersilk Net (ZEN) *1
|
||||
Bone Saw (CFX) *2
|
||||
Armament Master (ZEN) *3
|
||||
Lone Missionary (ROE) *2
|
||||
Pennon Blade (ROE) *1
|
||||
Kor Line-Slinger (ROE) *2
|
||||
Kitesail Apprentice (WWK) *2
|
||||
Stoneforge Mystic (WWK) *2
|
||||
Accorder's Shield (SOM) *2
|
||||
Swords to Plowshares (EVT) *2
|
||||
Kor Hookmaster (EVT) *2
|
||||
#NAME:The KOR
|
||||
#DESC:The Kor never stand down.Golem-Skin Gauntlets (MRD) *1
|
||||
Plains (8ED) *4
|
||||
Plains (8ED) *4
|
||||
Bonesplitter (MRD) *2
|
||||
Vulshok Battlegear (MRD) *1
|
||||
Plains (MRD) *4
|
||||
Plains (MRD) *4
|
||||
Plains (MRD) *4
|
||||
Cranial Plating (5DN) *2
|
||||
Skyhunter Skirmisher (5DN) *2
|
||||
Paradise Mantle (5DN) *2
|
||||
Shuko (BOK) *2
|
||||
Umezawa's Jitte (BOK) *2
|
||||
Kor Duelist (ZEN) *2
|
||||
Spidersilk Net (ZEN) *1
|
||||
Bone Saw (CFX) *2
|
||||
Armament Master (ZEN) *3
|
||||
Lone Missionary (ROE) *2
|
||||
Pennon Blade (ROE) *1
|
||||
Kor Line-Slinger (ROE) *2
|
||||
Kitesail Apprentice (WWK) *2
|
||||
Stoneforge Mystic (WWK) *2
|
||||
Accorder's Shield (SOM) *2
|
||||
Swords to Plowshares (EVT) *2
|
||||
Kor Hookmaster (EVT) *2
|
||||
|
||||
@@ -1,37 +1,37 @@
|
||||
#NAME:Smoke and mirrors
|
||||
Order of the Ebon Hand (FEM) *2
|
||||
Combat Medic (FEM) *1
|
||||
Combat Medic (FEM) *1
|
||||
Combat Medic (FEM) *1
|
||||
Sanctum Custodian (USG) *2
|
||||
False Prophet (UDS) *1
|
||||
Revered Elder (MRQ) *1
|
||||
Hallowed Healer (ODY) *1
|
||||
Beloved Chaplain (ODY) *2
|
||||
Ancestor's Chosen (JUD) *1
|
||||
Battlefield Medic (ONS) *1
|
||||
Rotlung Reanimator (ONS) *4
|
||||
Doubtless One (ONS) *2
|
||||
Glowrider (LGN) *2
|
||||
Aven Redeemer (LGN) *1
|
||||
Edgewalker (SCG) *2
|
||||
Vile Deacon (LGN) *2
|
||||
Master Healer (8ED) *1
|
||||
Auriok Champion (5DN) *2
|
||||
Swamp (UNH) *3
|
||||
Master Healer (9ED) *1
|
||||
Godless Shrine (GPT) *3
|
||||
Disciple of Tevesh Szat (CSP) *2
|
||||
Blightspeaker (PLC) *2
|
||||
True Believer (10E) *1
|
||||
Soul Warden (10E) *1
|
||||
Icatian Priest (10E) *1
|
||||
Platinum Angel (10E) *1
|
||||
Soul's Attendant (ROE) *1
|
||||
Plains (ZEN) *3
|
||||
Plains (ZEN) *2
|
||||
Plains (ZEN) *2
|
||||
Plains (ZEN) *3
|
||||
Swamp (ZEN) *3
|
||||
Swamp (ZEN) *3
|
||||
Shepherd of Rot (HOP) *2
|
||||
#NAME:Smoke and mirrors
|
||||
Order of the Ebon Hand (FEM) *2
|
||||
Combat Medic (FEM) *1
|
||||
Combat Medic (FEM) *1
|
||||
Combat Medic (FEM) *1
|
||||
Sanctum Custodian (USG) *2
|
||||
False Prophet (UDS) *1
|
||||
Revered Elder (MRQ) *1
|
||||
Hallowed Healer (ODY) *1
|
||||
Beloved Chaplain (ODY) *2
|
||||
Ancestor's Chosen (JUD) *1
|
||||
Battlefield Medic (ONS) *1
|
||||
Rotlung Reanimator (ONS) *4
|
||||
Doubtless One (ONS) *2
|
||||
Glowrider (LGN) *2
|
||||
Aven Redeemer (LGN) *1
|
||||
Edgewalker (SCG) *2
|
||||
Vile Deacon (LGN) *2
|
||||
Master Healer (8ED) *1
|
||||
Auriok Champion (5DN) *2
|
||||
Swamp (UNH) *3
|
||||
Master Healer (9ED) *1
|
||||
Godless Shrine (GPT) *3
|
||||
Disciple of Tevesh Szat (CSP) *2
|
||||
Blightspeaker (PLC) *2
|
||||
True Believer (10E) *1
|
||||
Soul Warden (10E) *1
|
||||
Icatian Priest (10E) *1
|
||||
Platinum Angel (10E) *1
|
||||
Soul's Attendant (ROE) *1
|
||||
Plains (ZEN) *3
|
||||
Plains (ZEN) *2
|
||||
Plains (ZEN) *2
|
||||
Plains (ZEN) *3
|
||||
Swamp (ZEN) *3
|
||||
Swamp (ZEN) *3
|
||||
Shepherd of Rot (HOP) *2
|
||||
|
||||
@@ -1,29 +1,29 @@
|
||||
#NAME:Kill by Numbers
|
||||
#DESC:They just keep multiplying.
|
||||
#HINT:castpriority(enchantment,instant,sorcery,artifact,creature)
|
||||
#HINT:dontattackwith(Rhys the Redeemed)
|
||||
#HINT:dontblockwith(Rhys the Redeemed)
|
||||
#HINT:dontattackwith(Kazandu Tuskcaller)
|
||||
#HINT:dontblockwith(Kazandu Tuskcaller)
|
||||
|
||||
Mox Emerald (LEA) *2
|
||||
Mox Pearl (LEA) *2
|
||||
Forest (LEA) *15
|
||||
Plains (LEA) *8
|
||||
Marble Diamond (MIR) *2
|
||||
Blazing Archon (*) *2
|
||||
Serra's Sanctum (USG) *1
|
||||
Gaea's Cradle (USG) *2
|
||||
Rofellos, Llanowar Emissary (UDS) *2
|
||||
Beacon of Creation (5DN) *2
|
||||
Honden of Life's Web (CHK) *2
|
||||
Kabira Vindicator (*) *2
|
||||
Rhys the Redeemed (SHM) *2
|
||||
Fable of Wolf and Owl (EVE) *2
|
||||
Murkfiend Liege (EVE) *2
|
||||
Creakwood Liege (EVE) *2
|
||||
Spawnwrithe (SHM) *2
|
||||
Awakening Zone (ROE) *3
|
||||
Kazandu Tuskcaller (ROE) *2
|
||||
Conqueror's Pledge (ZEN) *2
|
||||
Bestial Menace (WWK) *2
|
||||
#NAME:Kill by Numbers
|
||||
#DESC:They just keep multiplying.
|
||||
#HINT:castpriority(enchantment,instant,sorcery,artifact,creature)
|
||||
#HINT:dontattackwith(Rhys the Redeemed)
|
||||
#HINT:dontblockwith(Rhys the Redeemed)
|
||||
#HINT:dontattackwith(Kazandu Tuskcaller)
|
||||
#HINT:dontblockwith(Kazandu Tuskcaller)
|
||||
|
||||
Mox Emerald (LEA) *2
|
||||
Mox Pearl (LEA) *2
|
||||
Forest (LEA) *15
|
||||
Plains (LEA) *8
|
||||
Marble Diamond (MIR) *2
|
||||
Blazing Archon (*) *2
|
||||
Serra's Sanctum (USG) *1
|
||||
Gaea's Cradle (USG) *2
|
||||
Rofellos, Llanowar Emissary (UDS) *2
|
||||
Beacon of Creation (5DN) *2
|
||||
Honden of Life's Web (CHK) *2
|
||||
Kabira Vindicator (*) *2
|
||||
Rhys the Redeemed (SHM) *2
|
||||
Fable of Wolf and Owl (EVE) *2
|
||||
Murkfiend Liege (EVE) *2
|
||||
Creakwood Liege (EVE) *2
|
||||
Spawnwrithe (SHM) *2
|
||||
Awakening Zone (ROE) *3
|
||||
Kazandu Tuskcaller (ROE) *2
|
||||
Conqueror's Pledge (ZEN) *2
|
||||
Bestial Menace (WWK) *2
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
#NAME:Infected wounds
|
||||
Forest (UGL) *4
|
||||
Forest (ALA) *1
|
||||
Forest (ALA) *1
|
||||
Forest (M10) *1
|
||||
Forest (M10) *1
|
||||
Necropede (SOM) *2
|
||||
Contagious Nim (SOM) *2
|
||||
Blight Mamba (SOM) *2
|
||||
Ichor Rats (SOM) *2
|
||||
Ichorclaw Myr (SOM) *4
|
||||
Blackcleave Goblin (SOM) *2
|
||||
Corpse Cur (SOM) *2
|
||||
Forest (ZEN) *4
|
||||
Forest (ZEN) *3
|
||||
Forest (ZEN) *4
|
||||
Forest (ZEN) *2
|
||||
Swamp (HOP) *3
|
||||
Cystbearer (SOM) *2
|
||||
Tel-Jilad Fallen (SOM) *2
|
||||
Swamp (ROE) *4
|
||||
Swamp (ROE) *3
|
||||
Swamp (ROE) *4
|
||||
Putrefax (SOM) *2
|
||||
Plague Stinger (SOM) *2
|
||||
Relic Putrescence (SOM) *2
|
||||
Skithiryx, the Blight Dragon (SOM) *2
|
||||
Hand of the Praetors (SOM) *2
|
||||
#NAME:Infected wounds
|
||||
Forest (UGL) *4
|
||||
Forest (ALA) *1
|
||||
Forest (ALA) *1
|
||||
Forest (M10) *1
|
||||
Forest (M10) *1
|
||||
Necropede (SOM) *2
|
||||
Contagious Nim (SOM) *2
|
||||
Blight Mamba (SOM) *2
|
||||
Ichor Rats (SOM) *2
|
||||
Ichorclaw Myr (SOM) *4
|
||||
Blackcleave Goblin (SOM) *2
|
||||
Corpse Cur (SOM) *2
|
||||
Forest (ZEN) *4
|
||||
Forest (ZEN) *3
|
||||
Forest (ZEN) *4
|
||||
Forest (ZEN) *2
|
||||
Swamp (HOP) *3
|
||||
Cystbearer (SOM) *2
|
||||
Tel-Jilad Fallen (SOM) *2
|
||||
Swamp (ROE) *4
|
||||
Swamp (ROE) *3
|
||||
Swamp (ROE) *4
|
||||
Putrefax (SOM) *2
|
||||
Plague Stinger (SOM) *2
|
||||
Relic Putrescence (SOM) *2
|
||||
Skithiryx, the Blight Dragon (SOM) *2
|
||||
Hand of the Praetors (SOM) *2
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
#NAME:Painful Dream
|
||||
Traumatize (ODY) *2
|
||||
Island (UNH) *4
|
||||
Followed Footsteps (RAV) *4
|
||||
Howling Mine (10E) *4
|
||||
Dreamborn Muse (10E) *4
|
||||
Forced Fruition (LRW) *4
|
||||
Memory Erosion (ALA) *4
|
||||
Hedron Crab (ZEN) *4
|
||||
Font of Mythos (CFX) *4
|
||||
Tome Scour (M10) *4
|
||||
Island (ZEN) *4
|
||||
Island (ZEN) *4
|
||||
Island (ZEN) *4
|
||||
Island (ZEN) *4
|
||||
Platinum Angel (M11) *1
|
||||
Sword of Body and Mind (SOM) *2
|
||||
Seat of the Synod (EVT) *4
|
||||
#NAME:Painful Dream
|
||||
Traumatize (ODY) *2
|
||||
Island (UNH) *4
|
||||
Followed Footsteps (RAV) *4
|
||||
Howling Mine (10E) *4
|
||||
Dreamborn Muse (10E) *4
|
||||
Forced Fruition (LRW) *4
|
||||
Memory Erosion (ALA) *4
|
||||
Hedron Crab (ZEN) *4
|
||||
Font of Mythos (CFX) *4
|
||||
Tome Scour (M10) *4
|
||||
Island (ZEN) *4
|
||||
Island (ZEN) *4
|
||||
Island (ZEN) *4
|
||||
Island (ZEN) *4
|
||||
Platinum Angel (M11) *1
|
||||
Sword of Body and Mind (SOM) *2
|
||||
Seat of the Synod (EVT) *4
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
#NAME:Etched Affinity
|
||||
#DESC:Modern URB Aggro
|
||||
#HINT:dontattackwith(creature[power<=0])
|
||||
#HINT:combo hold(Glimmervoid|myhand)^until(artifact|mybattlefield)^cast(Glimmervoid|myhand)^totalmananeeded({0})
|
||||
#HINT:combo hold(Galvanic Blast|myhand)^cast(Galvanic Blast|myhand)^restriction{type(artifact|mybattlefield)~morethan~2,turn:3}^totalmananeeded({R})
|
||||
|
||||
#25 creatures
|
||||
|
||||
@@ -1,109 +1,109 @@
|
||||
#NAME:Synthetic
|
||||
#DESC:Selesnya Guild
|
||||
########################################
|
||||
# Creatures #
|
||||
########################################
|
||||
#1 x Giant Adephage (GTC), {5}{g}{g}, Creature Insect, 7/7, trample;
|
||||
366394
|
||||
|
||||
#2 x Rubblebelt Raiders (GTC), {1}{r/g}{r/g}{r/g}, Creature Human Warrior, 3/3,
|
||||
366462
|
||||
366462
|
||||
|
||||
#4 x Voice of Resurgence (DGM), {g}{w}, Creature Elemental, 2/2,
|
||||
368951
|
||||
368951
|
||||
368951
|
||||
368951
|
||||
|
||||
#4 x Trostani's Summoner (DGM), {5}{g}{w}, Creature Elf Shaman, 1/1,
|
||||
369072
|
||||
369072
|
||||
369072
|
||||
369072
|
||||
|
||||
#4 x Armada Wurm (RTR), {2}{g}{g}{w}{w}, Creature Wurm, 5/5, trample;
|
||||
999009
|
||||
999009
|
||||
999009
|
||||
999009
|
||||
|
||||
#2 x Precinct Captain (RTR), {w}{w}, Creature Human Soldier, 2/2, first strike;
|
||||
999171
|
||||
999171
|
||||
|
||||
#4 x Wayfaring Temple (RTR), {1}{g}{w}, Creature Elemental, 0/0,
|
||||
999260
|
||||
999260
|
||||
999260
|
||||
999260
|
||||
|
||||
#1 x Worldspine Wurm (RTR), {8}{g}{g}{g}, Creature Wurm, 15/15, trample;
|
||||
999262
|
||||
|
||||
|
||||
|
||||
########################################
|
||||
# Spells #
|
||||
########################################
|
||||
#4 x Advent of the Wurm (DGM), {1}{g}{g}{w}, Instant,
|
||||
369036
|
||||
369036
|
||||
369036
|
||||
369036
|
||||
|
||||
#2 x Selesnya Cluestone (DGM), {3}, Artifact,
|
||||
369060
|
||||
369060
|
||||
|
||||
#2 x Chromatic Lantern (RTR), {3}, Artifact,
|
||||
999039
|
||||
999039
|
||||
|
||||
#4 x Growing Ranks (RTR), {2}{g/w}{g/w}, Enchantment,
|
||||
999106
|
||||
999106
|
||||
999106
|
||||
999106
|
||||
|
||||
|
||||
|
||||
########################################
|
||||
# Lands #
|
||||
########################################
|
||||
#4 x Forest (GVL), Basic Land Forest,
|
||||
204967
|
||||
204967
|
||||
204967
|
||||
204967
|
||||
|
||||
#4 x Selesnya Guildgate (DGM), Land Gate,
|
||||
369018
|
||||
369018
|
||||
369018
|
||||
369018
|
||||
|
||||
#4 x Forest (RTR), Basic Land Forest,
|
||||
999086
|
||||
999086
|
||||
999086
|
||||
999086
|
||||
|
||||
#4 x Plains (RTR), Basic Land Plains,
|
||||
999168
|
||||
999168
|
||||
999168
|
||||
999168
|
||||
|
||||
#2 x Temple Garden (RTR), Land Forest Plains,
|
||||
999238
|
||||
999238
|
||||
|
||||
#4 x Plains (RTR), Basic Land Plains,
|
||||
999265
|
||||
999265
|
||||
999265
|
||||
999265
|
||||
|
||||
|
||||
|
||||
#NAME:Synthetic
|
||||
#DESC:Selesnya Guild
|
||||
########################################
|
||||
# Creatures #
|
||||
########################################
|
||||
#1 x Giant Adephage (GTC), {5}{g}{g}, Creature Insect, 7/7, trample;
|
||||
366394
|
||||
|
||||
#2 x Rubblebelt Raiders (GTC), {1}{r/g}{r/g}{r/g}, Creature Human Warrior, 3/3,
|
||||
366462
|
||||
366462
|
||||
|
||||
#4 x Voice of Resurgence (DGM), {g}{w}, Creature Elemental, 2/2,
|
||||
368951
|
||||
368951
|
||||
368951
|
||||
368951
|
||||
|
||||
#4 x Trostani's Summoner (DGM), {5}{g}{w}, Creature Elf Shaman, 1/1,
|
||||
369072
|
||||
369072
|
||||
369072
|
||||
369072
|
||||
|
||||
#4 x Armada Wurm (RTR), {2}{g}{g}{w}{w}, Creature Wurm, 5/5, trample;
|
||||
253587
|
||||
253587
|
||||
253587
|
||||
253587
|
||||
|
||||
#2 x Precinct Captain (RTR), {w}{w}, Creature Human Soldier, 2/2, first strike;
|
||||
270792
|
||||
270792
|
||||
|
||||
#4 x Wayfaring Temple (RTR), {1}{g}{w}, Creature Elemental, 0/0,
|
||||
253539
|
||||
253539
|
||||
253539
|
||||
253539
|
||||
|
||||
#1 x Worldspine Wurm (RTR), {8}{g}{g}{g}, Creature Wurm, 15/15, trample;
|
||||
253575
|
||||
|
||||
|
||||
|
||||
########################################
|
||||
# Spells #
|
||||
########################################
|
||||
#4 x Advent of the Wurm (DGM), {1}{g}{g}{w}, Instant,
|
||||
369036
|
||||
369036
|
||||
369036
|
||||
369036
|
||||
|
||||
#2 x Selesnya Cluestone (DGM), {3}, Artifact,
|
||||
369060
|
||||
369060
|
||||
|
||||
#2 x Chromatic Lantern (RTR), {3}, Artifact,
|
||||
290542
|
||||
290542
|
||||
|
||||
#4 x Growing Ranks (RTR), {2}{g/w}{g/w}, Enchantment,
|
||||
270957
|
||||
270957
|
||||
270957
|
||||
270957
|
||||
|
||||
|
||||
|
||||
########################################
|
||||
# Lands #
|
||||
########################################
|
||||
#4 x Forest (GVL), Basic Land Forest,
|
||||
204967
|
||||
204967
|
||||
204967
|
||||
204967
|
||||
|
||||
#4 x Selesnya Guildgate (DGM), Land Gate,
|
||||
369018
|
||||
369018
|
||||
369018
|
||||
369018
|
||||
|
||||
#4 x Forest (RTR), Basic Land Forest,
|
||||
289326
|
||||
289326
|
||||
289326
|
||||
289326
|
||||
|
||||
#4 x Plains (RTR), Basic Land Plains,
|
||||
289310
|
||||
289310
|
||||
289310
|
||||
289310
|
||||
|
||||
#2 x Temple Garden (RTR), Land Forest Plains,
|
||||
253681
|
||||
253681
|
||||
|
||||
#4 x Plains (RTR), Basic Land Plains,
|
||||
289309
|
||||
289309
|
||||
289309
|
||||
289309
|
||||
|
||||
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 143 KiB After Width: | Height: | Size: 151 KiB |
|
After Width: | Height: | Size: 233 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 156 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 122 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 122 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 142 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 128 KiB |
|
After Width: | Height: | Size: 17 KiB |