Compare commits
1308 Commits
ryzom/shee
...
main/gingo
Author | SHA1 | Date |
---|---|---|
Nuno Gonçalves (Ulukyn) | 7df9b2f255 | 3 years ago |
Nuno Gonçalves (Ulukyn) | 8697553956 | 3 years ago |
nimetu | d2508c8b15 | 3 years ago |
Nuno Gonçalves (Ulukyn) | d385dedabc | 3 years ago |
Nuno Gonçalves (Ulukyn) | ae33eb99bf | 3 years ago |
Nuno Gonçalves (Ulukyn) | 2b88fd66ba | 3 years ago |
Ben Saine | be5bfd992c | 3 years ago |
Nuno Gonçalves (Ulukyn) | 9a24e7557f | 3 years ago |
Nuno Gonçalves (Ulukyn) | 8708fd74c6 | 3 years ago |
Nuno | db86219eab | 3 years ago |
Nuno Gonçalves (Ulukyn) | c6ec8a8d7d | 3 years ago |
Ben Saine | 357934fcde | 3 years ago |
Nuno Gonçalves (Ulukyn) | e784c3aab1 | 3 years ago |
Nuno Gonçalves (Ulukyn) | 22b4c074e8 | 3 years ago |
Nuno Gonçalves (Ulukyn) | 255257a7f5 | 3 years ago |
Nuno Gonçalves (Ulukyn) | 855410f3d0 | 3 years ago |
Nuno Gonçalves (Ulukyn) | 71a2c6f6e8 | 3 years ago |
Ben Saine | 3b2553e3dd | 3 years ago |
Nuno Gonçalves (Ulukyn) | 54c7e09a10 | 3 years ago |
Meelis Mägi | aebab35cad | 3 years ago |
Nuno Gonçalves (Ulukyn) | 7cb6d4287e | 3 years ago |
Meelis Mägi | 663de25cbe | 3 years ago |
Nuno | a7811f553e | 3 years ago |
Nuno | 743bf7f601 | 3 years ago |
Nuno Gonçalves (Ulukyn) | e891dddd1e | 3 years ago |
Meelis Mägi | e185ddc19f | 3 years ago |
Nuno Gonçalves (Ulukyn) | b12c7ac25c | 3 years ago |
Meelis Mägi | 9cff221a1e | 3 years ago |
Nuno Gonçalves (Ulukyn) | 219bf0e066 | 3 years ago |
Meelis Mägi | c012e7ffcf | 3 years ago |
Ben Saine | 82b724fe88 | 3 years ago |
Nuno Gonçalves (Ulukyn) | 9f2d2e7dda | 3 years ago |
Ben Saine | 5df8ec43a0 | 3 years ago |
Nimetu | 7c82f26bac | 3 years ago |
Nimetu | 3521d2d02e | 3 years ago |
Nuno | 88280ef02f | 3 years ago |
Nimetu | 7344c98e6e | 3 years ago |
Nimetu | 005e714f7d | 3 years ago |
Nimetu | 37abc25dcb | 3 years ago |
kaetemi | ec41ba753f | 3 years ago |
kaetemi | 63b4ea547a | 3 years ago |
Nimetu | c31747a939 | 3 years ago |
Nimetu | 8aa1aed3bd | 3 years ago |
Nimetu | 19c5b582bc | 3 years ago |
Nuno | 993d749dba | 3 years ago |
Nimetu | f6ac9bc4c1 | 3 years ago |
Nuno Gonçalves (Ulukyn) | 9e3064871a | 3 years ago |
Nimetu | 36e83e32f4 | 3 years ago |
Nuno | 0df3879358 | 3 years ago |
Nuno | b7e5ac18e9 | 3 years ago |
Nuno Gonçalves (Ulukyn) | 80623a20cc | 3 years ago |
Nuno Gonçalves (Ulukyn) | efbceec12e | 3 years ago |
Nimetu | 013aad73d2 | 3 years ago |
Nuno | de638dfe6c | 3 years ago |
Nuno | 177e2395a5 | 3 years ago |
Nuno | 0e2ec103ab | 3 years ago |
Nuno | 574efe0c36 | 3 years ago |
Nuno | e43515e88a | 3 years ago |
Nuno | 41794a1122 | 3 years ago |
Nimetu | c47db9bf94 | 3 years ago |
Nimetu | b325126b20 | 3 years ago |
Nuno | 35a7a6628b | 3 years ago |
Nimetu | aa34e88101 | 3 years ago |
Nuno | b667ccb6b6 | 3 years ago |
Nuno Gonçalves (Ulukyn) | 568d8ab895 | 3 years ago |
Nuno Gonçalves (Ulukyn) | 7f01b21d11 | 3 years ago |
Nuno Gonçalves (Ulukyn) | d436d5616a | 3 years ago |
Nuno Gonçalves (Ulukyn) | 973e183f2e | 3 years ago |
Nuno | 5c56c87d09 | 3 years ago |
Nuno | c616010246 | 3 years ago |
Nuno | 700a9aadb7 | 3 years ago |
Nuno Gonçalves (Ulukyn) | a246f3e5d0 | 3 years ago |
Meelis Mägi | bbc291b9d3 | 3 years ago |
Nuno Gonçalves (Ulukyn) | a64981a92a | 3 years ago |
Nuno Gonçalves (Ulukyn) | 17c9dd061a | 3 years ago |
Ben Saine | b72a71e87c | 3 years ago |
bensaine | b4ce38099f | 3 years ago |
Nimetu | 9eaf7d3550 | 3 years ago |
Nimetu | 26827d2c66 | 3 years ago |
Nuno Gonçalves (Ulukyn) | b6781af51e | 3 years ago |
Nuno Gonçalves (Ulukyn) | e1b611f219 | 3 years ago |
Nuno Gonçalves (Ulukyn) | 8d7932a271 | 3 years ago |
Nuno Gonçalves (Ulukyn) | 0cc7a35dad | 3 years ago |
Nuno | 2304445c39 | 3 years ago |
Ulu Kyn | 701d7309e5 | 3 years ago |
Ulu Kyn | f3d0c9dc5b | 3 years ago |
Ulu Kyn | a71f022c1a | 3 years ago |
Nuno | cc3d42737e | 3 years ago |
Nuno | 1e590f1a69 | 3 years ago |
Nuno | f450b57be0 | 3 years ago |
Nuno | fbb343ad51 | 3 years ago |
bensaine | e1527b724b | 3 years ago |
bensaine | c3a633ae50 | 3 years ago |
Nuno | a76e8e1a64 | 3 years ago |
Nuno | 2df441225c | 3 years ago |
Nuno | 56cbc51005 | 3 years ago |
Nuno | 7ce53abffe | 3 years ago |
Nuno | 4c4028822e | 3 years ago |
Nuno | b4323b6515 | 3 years ago |
Nuno | 9923062417 | 3 years ago |
Nuno | 8f74ba7851 | 3 years ago |
Nuno | d6f367b2ba | 3 years ago |
Nuno | 3f5c3c5d98 | 3 years ago |
Nuno | 514f4613a8 | 3 years ago |
Ben Saine | 24b0c99034 | 3 years ago |
Nuno | 3dc2aa1bb6 | 3 years ago |
Nuno | 543be4bc4c | 3 years ago |
Nuno | 80007bc602 | 3 years ago |
Nuno | cf9855a6d5 | 3 years ago |
Nuno | bec18c661d | 3 years ago |
Nimetu | 13eef096b4 | 3 years ago |
Nimetu | d8deff3f23 | 3 years ago |
Nimetu | 2efc16ce52 | 3 years ago |
Nimetu | 5064f0417b | 3 years ago |
Nimetu | d893d15daf | 3 years ago |
kaetemi | 82ef7e5e81 | 3 years ago |
kaetemi | 8f839dc9c7 | 3 years ago |
kaetemi | 5fcaafbc60 | 3 years ago |
kaetemi | 6d60cfee71 | 3 years ago |
kaetemi | 3076b62063 | 3 years ago |
kaetemi | 3d208e024d | 3 years ago |
kaetemi | af16f09d52 | 3 years ago |
kaetemi | b9d4aa2abd | 3 years ago |
Nimetu | 759ece01d0 | 3 years ago |
Nuno | 4a06fe15dd | 3 years ago |
Nuno | 575d5d9957 | 3 years ago |
Nuno | 0d68ca05e2 | 3 years ago |
Nuno | 6091e76516 | 3 years ago |
Nuno | 0fbbf10361 | 3 years ago |
Nuno | 557f5d3d6c | 3 years ago |
Nuno | d7d1bc60c2 | 3 years ago |
Nuno | 3709ea4520 | 3 years ago |
Nuno | 70286d36a9 | 3 years ago |
Ulu Kyn | 92ff9f12b0 | 3 years ago |
Nimetu | 8cbb306db8 | 3 years ago |
Nuno | 36c2ff5b86 | 3 years ago |
Nuno | 1a49c4cd0b | 3 years ago |
Ben Saine | 111d4a7a0a | 3 years ago |
bensaine | 6cfc9585f5 | 3 years ago |
Nimetu | f76ad7a3eb | 3 years ago |
Nimetu | ce0d1234cc | 3 years ago |
Nuno Gonçalves (Ulukyn) | 5d91c33ddd | 3 years ago |
Nimetu | 78478e32cd | 3 years ago |
Nimetu | ea6e4d91c3 | 3 years ago |
Nimetu | d388ff78ec | 3 years ago |
Nimetu | 0b503e352b | 3 years ago |
Nimetu | df4833bf0f | 3 years ago |
Nuno Gonçalves (Ulukyn) | 8ef89b80b0 | 3 years ago |
Nuno Gonçalves (Ulukyn) | bdea7d24d2 | 3 years ago |
Nuno Gonçalves (Ulukyn) | 90161cd121 | 3 years ago |
Nuno Gonçalves (Ulukyn) | 583a16d126 | 3 years ago |
Nimetu | 591ea6869e | 3 years ago |
Nuno Gonçalves (Ulukyn) | 01a2508567 | 3 years ago |
Nuno Gonçalves (Ulukyn) | b86b9283b2 | 3 years ago |
Nimetu | 0225beefa6 | 3 years ago |
Nimetu | 0de1580520 | 3 years ago |
Nimetu | d9dd9863b7 | 3 years ago |
Ulukyn | 7bed39665e | 3 years ago |
Nimetu | 9ecda65791 | 3 years ago |
Nimetu | fc6ecc7dbd | 3 years ago |
Nimetu | 5c53148907 | 3 years ago |
Nimetu | 028f6cdd3e | 3 years ago |
Nuno | 6a1ea5ff59 | 3 years ago |
Nuno Gonçalves (Ulukyn) | 72ccfc9a02 | 3 years ago |
Ulukyn | 0e2a14c822 | 3 years ago |
Nimetu | a4248d5fa1 | 3 years ago |
Nimetu | 984b2b3590 | 3 years ago |
Nimetu | 3f3991816b | 3 years ago |
Nimetu | e0d54f7897 | 3 years ago |
Nimetu | 37eec8cd7f | 3 years ago |
Nimetu | 2046c4bf6e | 3 years ago |
Nimetu | 12c515c264 | 3 years ago |
Nimetu | 285cfb163f | 3 years ago |
Nimetu | a40ddf7955 | 3 years ago |
Nimetu | dff191a7c2 | 3 years ago |
Nimetu | f26dc534c8 | 3 years ago |
Nimetu | dfe45029ab | 3 years ago |
Nimetu | 65edd9f95d | 3 years ago |
Nuno | 4331e35227 | 3 years ago |
Nuno Gonçalves (Ulukyn) | ce5817721a | 3 years ago |
Nuno Gonçalves (Ulukyn) | aae899b65a | 3 years ago |
Nimetu | 487f9f060e | 3 years ago |
Nimetu | 2e816ddf6e | 3 years ago |
Nimetu | 5d4a04169b | 3 years ago |
Nimetu | b2ec03d1a1 | 3 years ago |
Nimetu | 234465387b | 3 years ago |
Nimetu | 2133f6d2b7 | 3 years ago |
Nimetu | 63f1fb73dd | 3 years ago |
Nimetu | a040f7a2a8 | 3 years ago |
Nimetu | 565932c18d | 3 years ago |
Nimetu | cade609a3a | 3 years ago |
Nimetu | 093702a704 | 3 years ago |
Nuno Gonçalves (Ulukyn) | 4c66865de7 | 3 years ago |
Nimetu | c00a9be398 | 3 years ago |
Nuno Gonçalves (Ulukyn) | 458861951b | 3 years ago |
Nuno Gonçalves (Ulukyn) | 3f991d3781 | 3 years ago |
Nuno Gonçalves (Ulukyn) | 8d5c0facf8 | 3 years ago |
Nuno Gonçalves (Ulukyn) | 178a22d961 | 3 years ago |
Nuno Gonçalves (Ulukyn) | f9dafe720c | 3 years ago |
Nuno Gonçalves (Ulukyn) | 72691a3379 | 3 years ago |
Nuno Gonçalves (Ulukyn) | bc991c8146 | 3 years ago |
Riasan | 62a821bc1d | 3 years ago |
Riasan | 103179ece7 | 3 years ago |
Nimetu | 19d0162332 | 3 years ago |
Nimetu | 5bf139f690 | 3 years ago |
Nimetu | d0d38238a8 | 3 years ago |
Nimetu | 95716b65ca | 3 years ago |
Nimetu | 75f490d394 | 3 years ago |
Nuno | 64bff20e03 | 3 years ago |
Nuno | 1eb651a946 | 3 years ago |
Nuno | 7da7d8cbbe | 3 years ago |
Nuno | 0ee26a6488 | 3 years ago |
Nuno | 9e404a5965 | 3 years ago |
Nuno | 97099768dc | 3 years ago |
kaetemi | 7d1661df42 | 3 years ago |
kaetemi | 19a0d929bb | 3 years ago |
Nuno | a443848924 | 3 years ago |
Nuno | ca0dc24aa0 | 3 years ago |
Nuno | 6d68e96dd4 | 3 years ago |
kaetemi | 0c5f4cdc1a | 3 years ago |
kaetemi | 8a7e96f7a6 | 3 years ago |
kaetemi | a227dccbb8 | 4 years ago |
kaetemi | 6d4b58c281 | 4 years ago |
kaetemi | fcf97d93df | 4 years ago |
kaetemi | c5658cfe26 | 4 years ago |
Nimetu | bc0071ac57 | 4 years ago |
kaetemi | 37a729b5cc | 4 years ago |
Nuno Gonçalves (Ulukyn) | efc1883cca | 4 years ago |
Nuno | 83a021e1e6 | 4 years ago |
kaetemi | 9d303b2a9a | 4 years ago |
Nuno | 58b5941bbe | 4 years ago |
Nuno | 431b1ea339 | 4 years ago |
kaetemi | c70ca1f8ab | 4 years ago |
Nuno | 6c3d6403b0 | 4 years ago |
Nuno | 405974c9c0 | 4 years ago |
kaetemi | bb03f80d84 | 4 years ago |
kaetemi | c6f8baa058 | 4 years ago |
kaetemi | 2c167fb360 | 4 years ago |
kaetemi | b9bdabd1f0 | 4 years ago |
kaetemi | d4a3a5bc06 | 4 years ago |
kaetemi | cdc2cacfc0 | 4 years ago |
kaetemi | c5ed59638e | 4 years ago |
kaetemi | 85ec6e618e | 4 years ago |
kaetemi | 1aba4c13cb | 4 years ago |
kaetemi | 56d747fa02 | 4 years ago |
Nuno | cc5bd3ddae | 4 years ago |
Nuno | 5613eb855e | 4 years ago |
Nimetu | 5614028f63 | 4 years ago |
Nimetu | a28bda89e6 | 4 years ago |
Nimetu | b2d6c313db | 4 years ago |
Nuno | 74c643f147 | 4 years ago |
Nuno | 3d43c3c626 | 4 years ago |
Nimetu | 78fa873003 | 4 years ago |
Nimetu | 96a03d1cf5 | 4 years ago |
Nimetu | 52e0e71c4a | 4 years ago |
Nimetu | 3b91146d23 | 4 years ago |
Nimetu | 474802810b | 4 years ago |
Nuno | 6bd853f7bf | 4 years ago |
Nuno | 49b4295765 | 4 years ago |
Nimetu | 1e465b6cff | 4 years ago |
Nimetu | 5abdccfd63 | 4 years ago |
Nimetu | a7bc98b0b4 | 4 years ago |
Nimetu | 825d70a80e | 4 years ago |
Nimetu | acd12c7c37 | 4 years ago |
Nimetu | aaa699014e | 4 years ago |
Nimetu | 624d78fe1a | 4 years ago |
Nimetu | f8d498e4b2 | 4 years ago |
Nimetu | cd4914ab94 | 4 years ago |
Nimetu | 3362afaa4d | 4 years ago |
Nuno | c5b34c927e | 4 years ago |
Nuno | fa3eab3305 | 4 years ago |
Nuno | 7d1534fb31 | 4 years ago |
Nuno | 791eb639df | 4 years ago |
Nuno | 772990d421 | 4 years ago |
Nuno | c8fd716f8a | 4 years ago |
Nuno | 72f7cbe4fa | 4 years ago |
Nuno | 9d2fc8c630 | 4 years ago |
Nuno | b4e54d5ad4 | 4 years ago |
Nuno | 904daebd88 | 4 years ago |
Nuno | 9c996b5fe3 | 4 years ago |
Nuno | 7964a42927 | 4 years ago |
Nuno | 24cb13d744 | 4 years ago |
Nuno | c8f4a85f0c | 4 years ago |
Nuno | 7bd936ea24 | 4 years ago |
Nuno | 4bcea9a70e | 4 years ago |
Nuno | 762e3b603e | 4 years ago |
Nuno | 292e142319 | 4 years ago |
Nuno | cdb1786018 | 4 years ago |
Nimetu | 1299484163 | 4 years ago |
Nimetu | 668e15e394 | 4 years ago |
Sit Melai | cdf1bacee1 | 4 years ago |
Nuno | 1ec4f88471 | 4 years ago |
Sit Melai | 673ce18e72 | 4 years ago |
Nuno | 54fd022501 | 4 years ago |
Nuno | 5fe26ec6d6 | 4 years ago |
Nuno | 40a9e782c3 | 4 years ago |
Nuno | 155e268ece | 4 years ago |
Nuno | 649527039b | 4 years ago |
Nuno | d350b1621d | 4 years ago |
Nuno | 22bab29654 | 4 years ago |
Nuno | 5632fffa44 | 4 years ago |
Nuno | 1cc000cc6c | 4 years ago |
Nuno | e9b7345ba5 | 4 years ago |
Nuno | 6f4319bfcb | 4 years ago |
Nuno | ab958d1891 | 4 years ago |
Nuno | c3c7e15c81 | 4 years ago |
Nuno | 568a7a10a9 | 4 years ago |
Nuno | f886d5eac7 | 4 years ago |
Nuno | 540ab1ffc8 | 4 years ago |
Nuno | 629e8f5272 | 4 years ago |
Nuno | 868f462d5f | 4 years ago |
Nuno | 5a7d067a71 | 4 years ago |
Nuno | 17f818eace | 4 years ago |
Nuno | 5825332757 | 4 years ago |
Nimetu | c1170a0a4d | 4 years ago |
Nimetu | 291d332b56 | 4 years ago |
Nimetu | d8f54820c4 | 4 years ago |
Nimetu | 155418b20b | 4 years ago |
Nimetu | d665e1fc45 | 4 years ago |
Nimetu | 36f9888b91 | 4 years ago |
Nimetu | 17782d5d21 | 4 years ago |
Nimetu | 8f1db24504 | 4 years ago |
Nuno | 85e788da81 | 4 years ago |
Nimetu | 04b4ae5333 | 4 years ago |
Nimetu | cc44eaf935 | 4 years ago |
Nimetu | e1e7bd837c | 4 years ago |
Nimetu | e5c0c63e3e | 4 years ago |
Nimetu | dbc77c7fc0 | 4 years ago |
Nimetu | db7afb07bd | 4 years ago |
Nimetu | 95cacf75a6 | 4 years ago |
Nimetu | 92eb1dcdc7 | 4 years ago |
Nimetu | 89a921e140 | 4 years ago |
Nimetu | 87e88cee6f | 4 years ago |
Nimetu | 36d482e6d1 | 4 years ago |
Nimetu | 4505ecf8a2 | 4 years ago |
Nimetu | 2f5b4d7c5b | 4 years ago |
Nimetu | 27826eb448 | 4 years ago |
Nimetu | d210c23b26 | 4 years ago |
Nimetu | 9262302baa | 4 years ago |
Nuno | 54de87acf4 | 4 years ago |
Nuno | ebab993e3e | 4 years ago |
Nuno | 3613dfd305 | 4 years ago |
Nuno | c09f82db16 | 4 years ago |
Nuno | 6402a31e4e | 4 years ago |
Nuno | 27cdcf1e02 | 4 years ago |
Nuno | de90245f27 | 4 years ago |
Nuno | bf2f8e39a5 | 4 years ago |
Nimetu | 26482eef1b | 4 years ago |
Nimetu | 383e362ed7 | 4 years ago |
Nimetu | c09ed63120 | 4 years ago |
Nimetu | fdb271bdb3 | 4 years ago |
kaetemi | dba92deea5 | 4 years ago |
Nuno | 0fb9422426 | 4 years ago |
kaetemi | 2528e542cb | 4 years ago |
kaetemi | 719f178f70 | 4 years ago |
Riasan | f83d8a206e | 4 years ago |
Riasan | 8cd863ff44 | 4 years ago |
Nuno | 89065eee3f | 4 years ago |
Sit Melai | 91b3ff25b4 | 4 years ago |
Nimetu | 4bcf9270eb | 4 years ago |
Sit Melai | c75071b488 | 4 years ago |
Nimetu | 04a5aa372b | 4 years ago |
Nimetu | 65415dfc55 | 4 years ago |
Nimetu | 29ef76e537 | 4 years ago |
Nimetu | 040eee5c9e | 4 years ago |
Nimetu | c6ede4a8b4 | 4 years ago |
Nuno | adf9a646b7 | 4 years ago |
Nuno | 2aaa928cdc | 4 years ago |
Nuno | 83d0e600f1 | 4 years ago |
Nuno | df69a1706f | 4 years ago |
Nuno | 6651e839f3 | 4 years ago |
Nuno | 62be2ab1fb | 4 years ago |
Nuno | 8c62f4e64c | 4 years ago |
Nuno | 2075bf7443 | 4 years ago |
Nuno | 44caf59afd | 4 years ago |
Nuno | 057cf828f4 | 4 years ago |
Nuno | 8d2071524c | 4 years ago |
Nuno | 6db93a0ef0 | 4 years ago |
Nuno | f61d10c75e | 4 years ago |
Nuno | 90728f372a | 4 years ago |
Nuno | 8fa5de61e3 | 4 years ago |
Nuno | 74dbe1e52c | 4 years ago |
Nuno | 6adf44f0b0 | 4 years ago |
Nuno | 98124a3bd5 | 4 years ago |
Nuno | 46ecaac095 | 4 years ago |
Nuno | 06e2840be5 | 4 years ago |
Nuno | bbabe75247 | 4 years ago |
Nuno | b62ddc49d2 | 4 years ago |
Nuno | 690286b2c4 | 4 years ago |
Nuno | ada7dec7d3 | 4 years ago |
Nuno | 98b091ab63 | 4 years ago |
Nuno | 53252d40db | 4 years ago |
Nuno | 2b648934ea | 4 years ago |
Nuno | 46c7b0309d | 4 years ago |
Nuno | 347ed4b2fb | 4 years ago |
Nuno | b9d29d5cfe | 4 years ago |
Nuno | ea212bcba2 | 4 years ago |
Nuno | 281ec4ba60 | 4 years ago |
Nuno | 951f000be4 | 4 years ago |
Nuno | 4726e74dcd | 4 years ago |
Nuno | c5fffb9ff0 | 4 years ago |
Nuno | ae9989dfe4 | 4 years ago |
Nuno | d35ae0db80 | 4 years ago |
Nuno | 3dbdbad80a | 4 years ago |
Riasan | 0a81f40606 | 4 years ago |
kaetemi | 00037b3644 | 4 years ago |
Nuno | c63b21150e | 4 years ago |
Nuno | 9771d79bc3 | 4 years ago |
kaetemi | ea1b3dbc28 | 4 years ago |
kaetemi | 93ad5e469c | 4 years ago |
kaetemi | b6b05b595a | 4 years ago |
kaetemi | 46410206ad | 4 years ago |
Nimetu | b70573d1dc | 4 years ago |
Nimetu | 7111cf44b3 | 4 years ago |
Nimetu | cb77552121 | 4 years ago |
Nuno | 2bf8faf29e | 4 years ago |
Nuno | b984e2e3d8 | 4 years ago |
Nuno | 140c380eb5 | 4 years ago |
Nuno | 1225fc0fe8 | 4 years ago |
Nuno | 13cb05c732 | 4 years ago |
Nimetu | f39038f98d | 4 years ago |
Nimetu | 990c38ca81 | 4 years ago |
Nimetu | 661a2bdaf7 | 4 years ago |
Nuno | f84184af25 | 4 years ago |
Nuno | 4b6e0184a3 | 4 years ago |
kaetemi | 87b5a77d4f | 4 years ago |
Nuno | 269526e87f | 4 years ago |
kaetemi | 30ece314c5 | 4 years ago |
Nuno | b8668813df | 4 years ago |
Nuno | 6f9dce0fdc | 4 years ago |
kaetemi | 3164e5fe3e | 4 years ago |
kaetemi | 06be2d003c | 4 years ago |
kaetemi | 06006cffd3 | 4 years ago |
kaetemi | 8fff5b8754 | 4 years ago |
kaetemi | 00520d6c11 | 4 years ago |
Nuno | fd8b2436ff | 4 years ago |
Nuno | 588bd79535 | 4 years ago |
Nuno | ced0ca3e1c | 4 years ago |
Nimetu | 76d29b2eda | 4 years ago |
kaetemi | a1f1bd888c | 4 years ago |
kaetemi | e998d3a85c | 4 years ago |
kaetemi | 5c3b0cf14b | 4 years ago |
Nuno | c327303222 | 4 years ago |
Nuno | 864eba1629 | 4 years ago |
Nuno | 29c3651063 | 4 years ago |
Nimetu | d9d9c6e1e6 | 4 years ago |
Nimetu | 779f87d6e7 | 4 years ago |
Nimetu | 53437989d4 | 4 years ago |
Nuno | acfb37103f | 4 years ago |
Nuno | 3d38a8ca89 | 4 years ago |
Nuno | 4f34ce36ae | 4 years ago |
Nuno | 8d2b26b738 | 4 years ago |
Nuno | 79e65a6b9e | 4 years ago |
Nuno | 6e59af8dc9 | 4 years ago |
Nuno | d23166ae49 | 4 years ago |
Nuno | 0b110c6a88 | 4 years ago |
Nuno | 13398f094a | 4 years ago |
Nuno | 7018a4439c | 4 years ago |
Riasan | cbbbc74a60 | 4 years ago |
Nuno | dab6321caa | 4 years ago |
Nuno | 07390fed37 | 4 years ago |
Nuno | ec98cd2e65 | 4 years ago |
Nuno | ad52a23437 | 4 years ago |
Nuno | c78d1d934f | 4 years ago |
Nuno | 677933ed98 | 4 years ago |
Nuno | 541529bb3f | 4 years ago |
Nuno | a273f78851 | 4 years ago |
Nuno | cb207bdd9d | 4 years ago |
Nuno | 8ec332fefa | 4 years ago |
Nuno | 2f776eab9c | 4 years ago |
Nuno | 04aa097781 | 4 years ago |
Nuno | 3996327394 | 4 years ago |
Nuno | 27e553ccb5 | 4 years ago |
Nimetu | 6bed86797b | 4 years ago |
Nuno | 323be1612e | 4 years ago |
Nuno | 184582cfc9 | 4 years ago |
Nimetu | e39cd0a8d3 | 4 years ago |
Nuno | 0b9599c57b | 4 years ago |
Sit Melai | 9d7f2af1a7 | 4 years ago |
Nuno | e021c09051 | 4 years ago |
Nuno | 52ff736ee9 | 4 years ago |
Nuno | d2c56f4b7c | 4 years ago |
Nuno | 2bdc6fb7ae | 4 years ago |
Nuno | a848eab99c | 4 years ago |
kaetemi | abf2715fa3 | 4 years ago |
kaetemi | 147cb75a80 | 4 years ago |
kaetemi | 3df1fd3857 | 4 years ago |
kaetemi | 257f6a6e23 | 4 years ago |
kaetemi | aa7d667b10 | 4 years ago |
kaetemi | 813b4d72d1 | 4 years ago |
kaetemi | b3bed095f8 | 4 years ago |
kaetemi | 210515addd | 4 years ago |
kaetemi | 57fbaf1feb | 4 years ago |
kaetemi | d6fe42f6a0 | 4 years ago |
kaetemi | 47d6e09099 | 4 years ago |
kaetemi | 23110247de | 4 years ago |
Nimetu | f3f67af69e | 4 years ago |
kaetemi | b1ef06d900 | 4 years ago |
kaetemi | 470b48ea0d | 4 years ago |
kaetemi | b0f1c73d77 | 4 years ago |
kaetemi | 109ed7eba5 | 4 years ago |
Nuno | 9ae2df4527 | 4 years ago |
kaetemi | f9cc9a1abe | 4 years ago |
kaetemi | 2e0b00d93c | 4 years ago |
kaetemi | 14da4d1e61 | 4 years ago |
kaetemi | 66ef424af0 | 4 years ago |
kaetemi | b884360c0e | 4 years ago |
kaetemi | 5fed277adf | 4 years ago |
kaetemi | cb949ae13a | 4 years ago |
kaetemi | c770191bef | 4 years ago |
Nimetu | 762962ef25 | 4 years ago |
Nimetu | 9f3250f4db | 4 years ago |
kaetemi | 8809d39835 | 4 years ago |
kaetemi | 773f27dfcb | 4 years ago |
kaetemi | 99df03dad0 | 4 years ago |
kaetemi | e20af7828a | 4 years ago |
kaetemi | bb564a6302 | 4 years ago |
kaetemi | 3b6e27e800 | 4 years ago |
kaetemi | 297de1d19a | 4 years ago |
kaetemi | 2444d94f4f | 4 years ago |
kaetemi | 0d2633b697 | 4 years ago |
kaetemi | c9f967b52b | 4 years ago |
kaetemi | e9fdac30a2 | 4 years ago |
kaetemi | 64b978b77a | 4 years ago |
kaetemi | 0ba45054d0 | 4 years ago |
kaetemi | f50b59702e | 4 years ago |
kaetemi | b220dac7b3 | 4 years ago |
Nimetu | 465a36b250 | 4 years ago |
Nimetu | e8c18b1b44 | 4 years ago |
Nimetu | 73610be10d | 4 years ago |
Nimetu | 72098f624d | 4 years ago |
kaetemi | 91bceae902 | 4 years ago |
kaetemi | be60cf8978 | 4 years ago |
kaetemi | 5bb21d7aa0 | 4 years ago |
kaetemi | 745db95184 | 4 years ago |
kaetemi | 3dfc6d5807 | 4 years ago |
kaetemi | f8de4aff59 | 4 years ago |
kaetemi | 36c676e2b2 | 4 years ago |
kaetemi | 281630c280 | 4 years ago |
kaetemi | ffa6179b82 | 4 years ago |
kaetemi | 73b8ba9e4e | 4 years ago |
kaetemi | 11b453baaa | 4 years ago |
kaetemi | 0dfff69c6f | 4 years ago |
kaetemi | c27547c3a3 | 4 years ago |
kaetemi | 52e3ca024f | 4 years ago |
kaetemi | 298e912949 | 4 years ago |
kaetemi | c069b70ce8 | 4 years ago |
Jan Boon | f859a39da4 | 4 years ago |
Jan Boon | 9d3891f1aa | 4 years ago |
Jan Boon | 2bb13937e8 | 4 years ago |
Jan Boon | afa22ee22b | 4 years ago |
Jan Boon | 6c247256d2 | 4 years ago |
Jan Boon | da9254e748 | 4 years ago |
Jan Boon | a1337dbda9 | 4 years ago |
kaetemi | 04805ec38c | 4 years ago |
Jan Boon | cd8ed8ab57 | 4 years ago |
kaetemi | 1a6e5e6e2b | 4 years ago |
kaetemi | 7249546db6 | 4 years ago |
kaetemi | 7adbb84514 | 4 years ago |
kaetemi | eac2aed175 | 4 years ago |
Jan Boon | 3a2922021e | 4 years ago |
kaetemi | 32ce3667a3 | 4 years ago |
kaetemi | e2afa4db5b | 4 years ago |
kaetemi | d201b8a392 | 4 years ago |
kaetemi | 72d9f8ea4f | 4 years ago |
kaetemi | ad0e970785 | 4 years ago |
kaetemi | 5fe2fae8b0 | 4 years ago |
kaetemi | 2d9f10bee3 | 4 years ago |
kaetemi | ecabc00ec5 | 4 years ago |
kaetemi | 5a470a7b16 | 4 years ago |
kaetemi | 9d534882e8 | 4 years ago |
kaetemi | 246ea2f603 | 4 years ago |
kaetemi | 7e8f84462f | 4 years ago |
kaetemi | 22fd1132ed | 4 years ago |
kaetemi | 0629951ba6 | 4 years ago |
kaetemi | 1c09d2ea4b | 4 years ago |
kaetemi | 13f99b393f | 4 years ago |
kaetemi | c061f3df3a | 4 years ago |
kaetemi | d238d2122b | 4 years ago |
kaetemi | 2a7bf997b9 | 4 years ago |
kaetemi | 39fc4895d2 | 4 years ago |
kaetemi | 7812ccafc1 | 4 years ago |
kaetemi | ff49b89b73 | 4 years ago |
kaetemi | 47c0c8cc07 | 4 years ago |
kaetemi | 0bd43913e1 | 4 years ago |
kaetemi | 182a917338 | 4 years ago |
kaetemi | 38e5dfe007 | 4 years ago |
Ryzom Pipeline | 19e00522d9 | 4 years ago |
kaetemi | 4fba8cc18d | 4 years ago |
kaetemi | 7ea4b2b989 | 4 years ago |
kaetemi | 592ec2aaf1 | 4 years ago |
kaetemi | 8dc777495a | 4 years ago |
Jan Boon | 7c028d7a83 | 4 years ago |
Jan Boon | e5fce11618 | 4 years ago |
Jan Boon | ce9c7aae84 | 4 years ago |
Jan Boon | 396f0d808e | 4 years ago |
Jan Boon | 850b8e0158 | 4 years ago |
Jan Boon | bc66f3a464 | 4 years ago |
kaetemi | 9ff5eee1e8 | 4 years ago |
kaetemi | 560a19e6f7 | 4 years ago |
kaetemi | 2450f95c03 | 4 years ago |
Jan Boon | 856f7e88f2 | 4 years ago |
kaetemi | 632f8133a2 | 4 years ago |
kaetemi | 376dd2aff1 | 4 years ago |
kaetemi | ac799e444d | 4 years ago |
kaetemi | 0b191bc6db | 4 years ago |
kaetemi | 079f9dff25 | 4 years ago |
kaetemi | 051c46b95a | 4 years ago |
kaetemi | 1963bdedcc | 4 years ago |
kaetemi | 6cd52d7871 | 4 years ago |
kaetemi | f8ef5743e3 | 4 years ago |
kaetemi | 2eb088ef1c | 4 years ago |
kaetemi | 2de4907b83 | 4 years ago |
kaetemi | 54337b757b | 4 years ago |
kaetemi | e1195fe34e | 4 years ago |
kaetemi | 506f9f26bd | 4 years ago |
kaetemi | c3ef0fc91c | 4 years ago |
kaetemi | c129ce87df | 4 years ago |
kaetemi | 9021ce465f | 4 years ago |
kaetemi | 698bfff501 | 4 years ago |
kaetemi | 6ff5ddd790 | 4 years ago |
kaetemi | 1ec9f16de4 | 4 years ago |
kaetemi | 993c37f56d | 4 years ago |
kaetemi | 55d83c9486 | 4 years ago |
kaetemi | 1d696b8921 | 4 years ago |
kaetemi | 932a612f53 | 4 years ago |
kaetemi | 1a045e437e | 4 years ago |
kaetemi | dca59073aa | 4 years ago |
kaetemi | 25049eaead | 4 years ago |
kaetemi | 8fc6ec3b35 | 4 years ago |
kaetemi | 81143cdf43 | 4 years ago |
kaetemi | 973531f461 | 4 years ago |
kaetemi | a3780e307e | 4 years ago |
kaetemi | c252b56c93 | 4 years ago |
kaetemi | 2568b6f321 | 4 years ago |
kaetemi | 06b430349c | 4 years ago |
kaetemi | 78917354d9 | 4 years ago |
kaetemi | 8c6609943b | 4 years ago |
kaetemi | 639b432817 | 4 years ago |
kaetemi | 8d94baaf14 | 4 years ago |
kaetemi | c068d757eb | 4 years ago |
kaetemi | c68c3746dd | 4 years ago |
kaetemi | 9896eae64d | 4 years ago |
kaetemi | 0367e4f7c3 | 4 years ago |
kaetemi | 8be138931d | 4 years ago |
kaetemi | 771248fcf4 | 4 years ago |
kaetemi | dd28130617 | 4 years ago |
kaetemi | 1300d5d4d4 | 4 years ago |
kaetemi | 3dddc5ab40 | 4 years ago |
kaetemi | bbf4a0ac8a | 4 years ago |
kaetemi | 6531fb0a2e | 4 years ago |
kaetemi | c4b142f770 | 4 years ago |
kaetemi | 8bf18d2e1d | 4 years ago |
kaetemi | b1056ee5ca | 4 years ago |
kaetemi | 2bd4c24a5e | 4 years ago |
kaetemi | e74e229ad9 | 4 years ago |
Nimetu | ae91cc4179 | 4 years ago |
Nimetu | b4901bf267 | 4 years ago |
Nimetu | 720f6da8b9 | 4 years ago |
Nimetu | 6ccd8853db | 4 years ago |
Nuno | cc7793202b | 4 years ago |
Nuno | 0bb160545f | 4 years ago |
Nuno | 0e1b464e98 | 4 years ago |
Nuno | dfe051a8df | 4 years ago |
Nuno Gonçalves (Ulukyn) | 2f6133c8ba | 4 years ago |
Nuno Gonçalves (Ulukyn) | 95f8cefecc | 4 years ago |
Nuno Gonçalves (Ulukyn) | b98cd5e345 | 4 years ago |
Nuno Gonçalves (Ulukyn) | bca2a28187 | 4 years ago |
Sit Melai | b7cbeeb2ae | 4 years ago |
Ulukyn | 5d4e81e24c | 4 years ago |
Ulukyn | c73fff2ca6 | 4 years ago |
Nimetu | 9532fc3a81 | 4 years ago |
Nimetu | 6b59fc0081 | 4 years ago |
Sit Melai | 47bf9ecbc8 | 4 years ago |
Sit Melai | 02732c1241 | 4 years ago |
Sit Melai | f96f0b41b9 | 4 years ago |
Sit Melai | 5dc85db8b1 | 4 years ago |
Sit Melai | 49fcec5759 | 4 years ago |
Sit Melai | b8b21914f6 | 4 years ago |
Sit Melai | bccc86bd99 | 4 years ago |
Sit Melai | e5b3b752d5 | 4 years ago |
Sit Melai | c06469b2a0 | 4 years ago |
Ulukyn | 6fa74cd5c2 | 4 years ago |
Riasan | 8cd685d1f4 | 4 years ago |
Riasan | f31eeff8fc | 4 years ago |
Sit Melai | 7e10c697eb | 4 years ago |
Nimetu | f7be62eb3d | 4 years ago |
Nimetu | 2a4b16ab1b | 4 years ago |
Ulukyn | f7e8e3f516 | 4 years ago |
Ulukyn | 107dbc1987 | 4 years ago |
Ulukyn | 97dc744759 | 4 years ago |
Ulukyn | 012339dcf1 | 4 years ago |
Ulukyn | 884c65fc26 | 4 years ago |
Ulukyn | 07f9a55e48 | 4 years ago |
Ulukyn | a87b0f4c97 | 4 years ago |
Nimetu | d367e32a40 | 4 years ago |
Ulukyn | 4138a99fb7 | 4 years ago |
Nimetu | 5e3cd0321a | 4 years ago |
Nimetu | 4fd3f59b9a | 4 years ago |
Ulukyn | 7be52a10fe | 4 years ago |
Ulukyn | f4a104bf3f | 4 years ago |
Ulukyn | 80a6bf72a9 | 4 years ago |
Ulukyn | 17e539132b | 4 years ago |
Ulukyn | 27bd2cec01 | 4 years ago |
Ulukyn | 6597f32fc1 | 4 years ago |
Ulukyn | 9e2872d15e | 4 years ago |
Ulukyn | 901f33d9a7 | 4 years ago |
Ulukyn | 421de3fa91 | 4 years ago |
Ulukyn | 08fb509d99 | 4 years ago |
Sit Melai | 6c8aeb6ae3 | 4 years ago |
Sit Melai | 59c794f716 | 4 years ago |
Heernis | 3c052d5fcc | 4 years ago |
Sit Melai | c2e7807f99 | 4 years ago |
Riasan | d130a7f826 | 5 years ago |
Ulukyn | fd2cc53d68 | 5 years ago |
Ulukyn | 6ae34e08d9 | 5 years ago |
Ulukyn | 80568ade1c | 5 years ago |
Ulukyn | a8016b6a59 | 5 years ago |
Ulukyn | d0fdfe175d | 5 years ago |
Ulukyn | 4254b6788a | 5 years ago |
Riasan | ada46dfabc | 5 years ago |
Nimetu | c09736a08a | 5 years ago |
Nimetu | e9f63f2556 | 5 years ago |
Nimetu | 334d1d2af1 | 5 years ago |
Nimetu | 3aa0493570 | 5 years ago |
kaetemi | fc197880a4 | 5 years ago |
Ulukyn | ada3c09a51 | 5 years ago |
Ulukyn | 83061f7f03 | 5 years ago |
Ulukyn | 3c6bed32fd | 5 years ago |
Nimetu | 92b3a31f0b | 5 years ago |
Ulukyn | f396858ea9 | 5 years ago |
Ulukyn | eae8f9999d | 5 years ago |
Ulukyn | b8885cd661 | 5 years ago |
Ulukyn | f67a1cde32 | 5 years ago |
Ulukyn | feb1a5647d | 5 years ago |
Ulukyn | f3009c4178 | 5 years ago |
Ulukyn | 820bd23cf6 | 5 years ago |
Ulukyn | c883ea63e0 | 5 years ago |
Ulukyn | 791a6641d9 | 5 years ago |
Ulukyn | 521a5c8fb7 | 5 years ago |
Ulukyn | da876dcf7c | 5 years ago |
Ulukyn | 0069db15a6 | 5 years ago |
Ulukyn | 3da2f45363 | 5 years ago |
Ulukyn | 1143ecaae0 | 5 years ago |
Heernis | bcc107e187 | 5 years ago |
karu | da890311bb | 5 years ago |
Nimetu | 4ebca98559 | 5 years ago |
Nimetu | 98709e55db | 5 years ago |
Nimetu | 36187626a9 | 5 years ago |
Nimetu | bde8d008d1 | 5 years ago |
Nimetu | 6993a2731f | 5 years ago |
kaetemi | 3cbfa82a6e | 5 years ago |
kaetemi | ec61fa02b6 | 5 years ago |
Nimetu | 52d6f89e1e | 5 years ago |
Nimetu | 5bddfcfb22 | 5 years ago |
kaetemi | d0068265fb | 5 years ago |
kaetemi | 8b8308c354 | 5 years ago |
kaetemi | c00701eee1 | 5 years ago |
kaetemi | db92cbc6bb | 5 years ago |
kaetemi | 1ab8fe06de | 5 years ago |
Ulukyn | aa15fd4e98 | 5 years ago |
Ulukyn | 0f8673beac | 5 years ago |
Ulukyn | 219914b4bf | 5 years ago |
Ulukyn | fb4aebf506 | 5 years ago |
Ulukyn | 81832ae0af | 5 years ago |
kaetemi | 5c0c6d2417 | 5 years ago |
kaetemi | 9b0852a91d | 5 years ago |
kaetemi | 05d6b16b9c | 5 years ago |
kaetemi | 39d6ca285a | 5 years ago |
kaetemi | c8fc110a9e | 5 years ago |
kaetemi | a9fc9c2015 | 5 years ago |
Ulukyn | e32c852d96 | 5 years ago |
Ulukyn | f3a02d4f2a | 5 years ago |
Ulukyn | bd99cd8aed | 5 years ago |
Ulukyn | 77d8cce15a | 5 years ago |
Ulukyn | aa0d9d0be9 | 5 years ago |
Ulukyn | 0845e19408 | 5 years ago |
Ulukyn | ece240448d | 5 years ago |
Ulukyn | 07ff703de2 | 5 years ago |
Ulukyn | f6116a813b | 5 years ago |
kaetemi | d293b3ef02 | 5 years ago |
kaetemi | a4aafa410a | 5 years ago |
kaetemi | 56ee772548 | 5 years ago |
kaetemi | 1a037ad3eb | 5 years ago |
kaetemi | a82df91bba | 5 years ago |
kaetemi | 900ec1a69a | 5 years ago |
kaetemi | 491d39ff08 | 5 years ago |
Ulukyn | 422a8bb744 | 5 years ago |
Nimetu | 0f5dbc318c | 5 years ago |
Nimetu | 2a2431b1d3 | 5 years ago |
Nimetu | 505283a17c | 5 years ago |
Nimetu | 1ab44cf123 | 5 years ago |
Ulukyn | 25d4cca3a9 | 5 years ago |
Ulukyn | 6a40fcf12d | 5 years ago |
Ulukyn | bf0042173f | 5 years ago |
Ulukyn | 681568ce08 | 5 years ago |
Ulukyn | 47863be96e | 5 years ago |
Ulukyn | ade5b6e702 | 5 years ago |
Ulukyn | ecd8b952a2 | 5 years ago |
Ulukyn | 272f91210b | 5 years ago |
Ulukyn | 24d4fb8253 | 5 years ago |
Nimetu | 24fd5a6230 | 5 years ago |
Riasan | 9043e78794 | 5 years ago |
Nimetu | 5250d22706 | 5 years ago |
Nimetu | 682985978d | 5 years ago |
Nimetu | b3f8f307b0 | 5 years ago |
Ulukyn | b5ffa8becd | 5 years ago |
kaetemi | 87cd9f19a4 | 5 years ago |
kaetemi | 83210ce17b | 5 years ago |
kaetemi | bcac1e7955 | 5 years ago |
kaetemi | 75777b3497 | 5 years ago |
kaetemi | e020c9f0d0 | 5 years ago |
Ulukyn | 92090056ea | 5 years ago |
Nimetu | a6c7b3dd37 | 5 years ago |
Ulukyn | 1e54da83ef | 5 years ago |
Ulukyn | 6ec06b29ab | 5 years ago |
Ulukyn | 7b15da1018 | 5 years ago |
Nimetu | 67b74ad2b7 | 5 years ago |
Nimetu | ddd16d4851 | 5 years ago |
Nimetu | 110f1715ea | 5 years ago |
Nimetu | 598be95efd | 5 years ago |
kaetemi | 4f0bbbad69 | 5 years ago |
kaetemi | 50be041116 | 5 years ago |
Nimetu | 7f373a904e | 5 years ago |
Nimetu | 983475ff7c | 5 years ago |
kaetemi | b713dccdc9 | 5 years ago |
Jan Boon | c9163412ad | 5 years ago |
Jan Boon | d2d89ac44f | 5 years ago |
Jan Boon | d036b616b5 | 5 years ago |
Jan Boon | 7b8f1b9a61 | 5 years ago |
Ulukyn | 44824414b1 | 5 years ago |
Ulukyn | 95b0f63622 | 5 years ago |
Ulukyn | 264b50a5ec | 5 years ago |
Jan Boon | 34ba374d8b | 5 years ago |
kaetemi | 075a34f7cc | 5 years ago |
kaetemi | e41339fa2d | 5 years ago |
kaetemi | 6961c10556 | 5 years ago |
kaetemi | 2c1be97a50 | 5 years ago |
kaetemi | e4883acceb | 5 years ago |
kaetemi | aeb127e011 | 5 years ago |
Ulukyn | 143b96c214 | 5 years ago |
Ulukyn | d4e5af7df2 | 5 years ago |
Ulukyn | 8dc9b89f94 | 5 years ago |
Nimetu | 2d86c5377d | 5 years ago |
Nimetu | 2c92649a72 | 5 years ago |
kaetemi | 6b9a1f39cd | 5 years ago |
kaetemi | 0244c348ee | 5 years ago |
kaetemi | f0687a8157 | 5 years ago |
kaetemi | f41126f4b2 | 5 years ago |
Jan Boon | abb6af4f3b | 5 years ago |
Ulukyn | 04f9d593e0 | 5 years ago |
Nimetu | 3be969a73d | 5 years ago |
Nimetu | 14076b899d | 5 years ago |
Ulukyn | ce8b05b284 | 5 years ago |
Nimetu | f78decc6ad | 5 years ago |
Ulukyn | 42b291c73e | 5 years ago |
Nimetu | 4aa94b3ae9 | 5 years ago |
Nimetu | c0110133d7 | 5 years ago |
Nimetu | c36faf2d61 | 5 years ago |
Ulukyn | fef0cad61a | 5 years ago |
Ulukyn | debb6b7d0c | 5 years ago |
Nimetu | e1dff3b4b8 | 5 years ago |
Nimetu | 6afd9ea1f2 | 5 years ago |
Nimetu | f449bb7c51 | 5 years ago |
Heernis | f11ed5ea49 | 5 years ago |
Ulukyn | 050d9fea2f | 5 years ago |
Ulukyn | 9a8f29bb67 | 5 years ago |
Ulukyn | c2e879ebcc | 5 years ago |
Ulukyn | 11086f9b44 | 5 years ago |
Ulukyn | 311e739d98 | 5 years ago |
Ulukyn | f6f7e553fc | 5 years ago |
Ulukyn | 255271cde5 | 5 years ago |
Ulukyn | 6d233cdc2c | 5 years ago |
Ulukyn | f337a28ae2 | 5 years ago |
Ulukyn | a36694614f | 5 years ago |
Ulukyn | bcb8080d42 | 5 years ago |
kaetemi | 7256109dcb | 5 years ago |
kaetemi | 86b809e581 | 5 years ago |
kaetemi | f8bee17d3c | 5 years ago |
kaetemi | c056cd7d24 | 5 years ago |
kaetemi | 0a1e8186b3 | 5 years ago |
kaetemi | 71e3ed5868 | 5 years ago |
kaetemi | 9d5af13c5e | 5 years ago |
kaetemi | e65d1587e7 | 5 years ago |
kaetemi | 168c770716 | 5 years ago |
kaetemi | 71c7d3161e | 5 years ago |
kaetemi | cd555f640b | 5 years ago |
kaetemi | 2ebe1c2a3d | 5 years ago |
Ulukyn | 2c9193fa74 | 5 years ago |
Ulukyn | 7e84ee9ec9 | 5 years ago |
Ulukyn | ff5d4e941c | 5 years ago |
Nimetu | f853adfcba | 5 years ago |
Nimetu | 1f736fc347 | 5 years ago |
Ulukyn | 8f3aaee987 | 5 years ago |
Ulukyn | 8d0172e1fb | 5 years ago |
Ulukyn | f06eebf26c | 5 years ago |
Ulukyn | 31ecfdf181 | 5 years ago |
Ulukyn | 4997576923 | 5 years ago |
Ulukyn | 9b6693763f | 5 years ago |
Ulukyn | b9d1cf26b7 | 5 years ago |
Ulukyn | ae25e054d4 | 5 years ago |
Ulukyn | 269f8c4b2d | 5 years ago |
Ulukyn | a3db3c6ba6 | 5 years ago |
Nimetu | 4d9aa3e684 | 5 years ago |
Nimetu | e99b7e257d | 5 years ago |
Nimetu | 94873c3d3f | 5 years ago |
Nimetu | 586e49282f | 5 years ago |
Nimetu | ca20d582b3 | 5 years ago |
Nimetu | 7cb5c817a6 | 5 years ago |
Nimetu | ec1dfca0c5 | 5 years ago |
Ulukyn | df6c0969c2 | 5 years ago |
Ulukyn | 590abe8bfd | 5 years ago |
Ulukyn | b31fa09af7 | 5 years ago |
Ulukyn | 3220a2aa47 | 5 years ago |
Ulukyn | c639bb3c07 | 5 years ago |
Nimetu | 2f635117f7 | 5 years ago |
Nimetu | 9c46a9d8f7 | 5 years ago |
Nimetu | dccbb376a0 | 5 years ago |
Nimetu | 0bec2ee2ff | 5 years ago |
Nimetu | 1337908369 | 5 years ago |
Nimetu | 0078df9593 | 5 years ago |
Ulukyn | 0cf26cbdf8 | 5 years ago |
Nimetu | 34083dee80 | 5 years ago |
Nimetu | edb0c1fe73 | 5 years ago |
Nimetu | 9aabe0bf35 | 5 years ago |
Nimetu | 3b08d50b83 | 5 years ago |
Nimetu | 90dcb7257f | 5 years ago |
Ulukyn | 523c07d9d9 | 5 years ago |
Ulukyn | e89d3233dc | 5 years ago |
Ulukyn | 96e95c19ee | 5 years ago |
Ulukyn | e10f79dbf2 | 5 years ago |
Ulukyn | 0aff3b4365 | 5 years ago |
Ulukyn | b0fa434c05 | 5 years ago |
Ulukyn | e349cb4399 | 5 years ago |
Ulukyn | f9cf9db049 | 5 years ago |
Ulukyn | 92f3c01a74 | 5 years ago |
Ulukyn | 3ffab7c1a1 | 5 years ago |
Ulukyn | 4df2489f59 | 5 years ago |
Ulukyn | de6418bb9a | 5 years ago |
Ulukyn | 1db0300515 | 5 years ago |
Nimetu | af221b7118 | 5 years ago |
Nimetu | e3df74eaee | 5 years ago |
Nimetu | ff9aa6c608 | 5 years ago |
Ulukyn | 435b4362d3 | 5 years ago |
Ulukyn | f9d37a390a | 5 years ago |
Ulukyn | 99413cff48 | 5 years ago |
Ulukyn | d45f6efcef | 5 years ago |
Ulukyn | 01cb2cfdd8 | 5 years ago |
Ulukyn | 5f762edac4 | 5 years ago |
Ulukyn | bfadcfaff5 | 5 years ago |
Ulukyn | 55172c93b5 | 5 years ago |
Ulukyn | c950373782 | 5 years ago |
Ulukyn | b1d18ddb53 | 5 years ago |
Ulukyn | b869cd07d6 | 5 years ago |
Ulukyn | aaa24fd0f4 | 5 years ago |
Ulukyn | 6747613b03 | 5 years ago |
Ulukyn | ac6afb7b2f | 5 years ago |
Ulukyn | 4048ef29db | 5 years ago |
Ulukyn | b5b395c127 | 5 years ago |
Ulukyn | a7d2175f93 | 5 years ago |
Ulukyn | b16d132e1d | 5 years ago |
Ulukyn | e3cef8803e | 5 years ago |
Ulukyn | cb2201a69a | 5 years ago |
Nimetu | dfeba1426a | 5 years ago |
Nimetu | c5d8f7b2de | 5 years ago |
Ulukyn | c9bec465bc | 5 years ago |
Nimetu | 7856e93723 | 5 years ago |
Nimetu | 8f59a71e3c | 5 years ago |
Nimetu | 15433b263b | 5 years ago |
Nimetu | b13d51242c | 5 years ago |
Nimetu | 2191d21bce | 5 years ago |
Nimetu | 8be553401d | 5 years ago |
Ulukyn | 58a731628b | 5 years ago |
Ulukyn | eb8daeb652 | 5 years ago |
Ulukyn | c6d5163c1d | 5 years ago |
Ulukyn | 2c63a3aa96 | 5 years ago |
Ulukyn | 4709e766b9 | 5 years ago |
Ulukyn | b2207337fa | 5 years ago |
Ulukyn | 47dc707c91 | 5 years ago |
Ulukyn | 232af164ed | 5 years ago |
Ulukyn | f18101d97e | 5 years ago |
Ulukyn | 0df2bdec2b | 5 years ago |
Ulukyn | ed17e66d97 | 5 years ago |
Ulukyn | 7f149563f6 | 5 years ago |
Ulukyn | d77d3b7102 | 5 years ago |
Ulukyn | 609d6b470f | 5 years ago |
Ulukyn | 414011ee37 | 5 years ago |
Ulukyn | b558a1a18b | 5 years ago |
Ulukyn | 6e00000b9b | 5 years ago |
Nimetu | f46ec8f6ff | 5 years ago |
Nimetu | b208c0b805 | 5 years ago |
Nimetu | d2ccc09b7d | 5 years ago |
Nimetu | 58cc988fbc | 5 years ago |
Ulukyn | 20b1f3a4c5 | 5 years ago |
Ulukyn | b88341792a | 5 years ago |
Ulukyn | d2edcbf4ee | 5 years ago |
Ulukyn | 123197b90b | 5 years ago |
Ulukyn | 9f61f08e74 | 5 years ago |
Ulukyn | aacbcf1e65 | 5 years ago |
Ulukyn | c838136d1a | 5 years ago |
Ulukyn | 0455d07125 | 5 years ago |
Ulukyn | cc5423fdd5 | 5 years ago |
Ulukyn | a7ca6f4499 | 5 years ago |
Ulukyn | 11573ee85a | 5 years ago |
Ulukyn | 48a9a84d0e | 5 years ago |
Ulukyn | 0ac92bc08b | 5 years ago |
Ulukyn | 935c5df73a | 5 years ago |
Ulukyn | 7f53767d85 | 5 years ago |
Ulukyn | 3d919974cf | 5 years ago |
Ulukyn | f053eaa157 | 5 years ago |
Ulukyn | 3966020294 | 5 years ago |
Ulukyn | eeac201cf3 | 5 years ago |
Ulukyn | 357e3f07e4 | 5 years ago |
Ulukyn | 51776f9203 | 5 years ago |
Ulukyn | 7b8a4e2210 | 5 years ago |
Ulukyn | 762dcd15e2 | 5 years ago |
Ulukyn | ac43b90ba0 | 5 years ago |
Ulukyn | df3c7c2f2e | 5 years ago |
Ulukyn | 780b9c7e63 | 5 years ago |
Ulukyn | f4ee795fde | 5 years ago |
Ulukyn | c521de1d48 | 5 years ago |
kaetemi | ae68ce722e | 5 years ago |
kaetemi | 2cdfc0ce29 | 5 years ago |
kaetemi | bddbed9da2 | 5 years ago |
kaetemi | d56eab0420 | 5 years ago |
kaetemi | 02270e7113 | 5 years ago |
kaetemi | 695ebeb0ef | 5 years ago |
kaetemi | e2610a025c | 5 years ago |
kaetemi | 45a43384da | 5 years ago |
kaetemi | 4645d1837d | 5 years ago |
kaetemi | e1c48be4ba | 5 years ago |
kaetemi | 761770d4eb | 5 years ago |
kaetemi | 8d48c8ee74 | 5 years ago |
Riasan | d5ceb97fa0 | 5 years ago |
kaetemi | 3ed3841c3a | 5 years ago |
kaetemi | 1069a5acf9 | 5 years ago |
kaetemi | 35bfb16ff9 | 5 years ago |
Ulukyn | cdc33730ad | 5 years ago |
Ulukyn | 305a27f0db | 5 years ago |
kaetemi | 281a599036 | 5 years ago |
kaetemi | ef6f2ea34b | 5 years ago |
kaetemi | 174aff62d7 | 5 years ago |
kaetemi | d934f5769a | 5 years ago |
kaetemi | 1b35b7812b | 5 years ago |
kaetemi | c2d0b6206c | 5 years ago |
kaetemi | 83316e6e2c | 5 years ago |
kaetemi | dc734ed662 | 5 years ago |
kaetemi | c2f01edab0 | 5 years ago |
kaetemi | c8e562f377 | 5 years ago |
kaetemi | 22f487876c | 5 years ago |
kaetemi | 8e21fed1e6 | 5 years ago |
kaetemi | 38d3344972 | 5 years ago |
kaetemi | 43452ea27c | 5 years ago |
kaetemi | ff4a521b07 | 5 years ago |
kaetemi | 76c252b23c | 5 years ago |
kaetemi | b28c9ef8c4 | 5 years ago |
kaetemi | f66a8b8fdc | 5 years ago |
kaetemi | ef058b10ff | 5 years ago |
kaetemi | 76e0e9c105 | 5 years ago |
kaetemi | 1cf2a792ae | 5 years ago |
kaetemi | dbef81c3c2 | 5 years ago |
kaetemi | 09e31cf75a | 5 years ago |
kaetemi | b32b1becec | 5 years ago |
kaetemi | cfaae39b83 | 5 years ago |
Jan Boon | 03340ee875 | 5 years ago |
Nimetu | 02e7393c14 | 5 years ago |
Nimetu | df21e21085 | 5 years ago |
NO-BREAK SPACE OÜ | 8cbadfbbcc | 5 years ago |
Jan Boon | 671035c9b1 | 5 years ago |
NO-BREAK SPACE OÜ | 46043f088a | 5 years ago |
kaetemi | a0869f11cd | 5 years ago |
kaetemi | a34541fe95 | 5 years ago |
kaetemi | 20c339891d | 5 years ago |
kaetemi | 0f59a02662 | 5 years ago |
NO-BREAK SPACE OÜ | c51e17cf0c | 5 years ago |
Jan Boon | 5487d77cf8 | 5 years ago |
kaetemi | edb3ba6002 | 5 years ago |
kaetemi | 111562822d | 5 years ago |
NO-BREAK SPACE OÜ | 94f0899f99 | 5 years ago |
kaetemi | 057b3ab11b | 5 years ago |
kaetemi | 830803cfe9 | 5 years ago |
kaetemi | c330067f19 | 5 years ago |
NO-BREAK SPACE OÜ | 80076ae97a | 5 years ago |
kaetemi | bbee8579c7 | 5 years ago |
kaetemi | 3475b3046a | 5 years ago |
kaetemi | 68d8e21629 | 5 years ago |
kaetemi | 22e9c17a72 | 5 years ago |
NO-BREAK SPACE OÜ | 5c872ad06e | 5 years ago |
kaetemi | c15e75ecc8 | 5 years ago |
kaetemi | 255c6956c7 | 5 years ago |
NO-BREAK SPACE OÜ | 1f6b79202c | 5 years ago |
kaetemi | 02305cdb33 | 5 years ago |
kaetemi | ed8a5c14a7 | 5 years ago |
NO-BREAK SPACE OÜ | f239faeb63 | 5 years ago |
Jan Boon | af31769a63 | 5 years ago |
kaetemi | e9c175d3f3 | 5 years ago |
kaetemi | dedb0cbc08 | 5 years ago |
kaetemi | cf2d5e939f | 5 years ago |
kaetemi | 3fe0ad30a3 | 5 years ago |
kaetemi | ce9fac5233 | 5 years ago |
kaetemi | 49a4d00522 | 5 years ago |
kaetemi | 8e4edcb954 | 5 years ago |
NO-BREAK SPACE OÜ | 8100f15ce7 | 5 years ago |
kaetemi | 9307cac83c | 5 years ago |
kaetemi | 2faa1d7ab8 | 5 years ago |
kaetemi | dd1043eaae | 5 years ago |
kaetemi | c635a27722 | 5 years ago |
kaetemi | 67bba962d7 | 5 years ago |
kaetemi | a24c758d95 | 5 years ago |
kaetemi | 943a3c239a | 5 years ago |
kaetemi | f81f348d64 | 5 years ago |
kaetemi | 41c4cdbc7b | 5 years ago |
kaetemi | 41a803dd40 | 5 years ago |
Nimetu | 84ff3391c3 | 5 years ago |
NO-BREAK SPACE OÜ | bd29ed2808 | 5 years ago |
kaetemi | 4c74d13931 | 5 years ago |
NO-BREAK SPACE OÜ | dc1bd19f61 | 5 years ago |
kaetemi | a138c727b7 | 5 years ago |
NO-BREAK SPACE OÜ | a53051c316 | 5 years ago |
kaetemi | 3d370f5f65 | 5 years ago |
kaetemi | 344b41439b | 5 years ago |
NO-BREAK SPACE OÜ | 442983e1a8 | 5 years ago |
kaetemi | 1e1a4419e6 | 5 years ago |
NO-BREAK SPACE OÜ | 8b17f84a6b | 5 years ago |
kaetemi | a9250a74f1 | 5 years ago |
Nimetu | 4c1daee42c | 5 years ago |
Ulu Kyn | 7b3c09f873 | 5 years ago |
Ulu Kyn | 3f7fc2e870 | 5 years ago |
Ulu Kyn | 99caf036ff | 5 years ago |
Ulu Kyn | 6c35550c83 | 5 years ago |
Ulu Kyn | 8221ee2eb9 | 5 years ago |
Ulu Kyn | fd1f151504 | 5 years ago |
Herrah | 99ededcfcb | 5 years ago |
Nimetu | e4cce24f80 | 5 years ago |
Nimetu | 2e3fa918d4 | 5 years ago |
Nuno Gonçalves | 89973681a2 | 5 years ago |
Nuno Gonçalves | 683af88cb9 | 5 years ago |
Nimetu | da5b7212f8 | 5 years ago |
Nimetu | 14b1c1232a | 5 years ago |
Nuno Gonçalves | de69dfc285 | 5 years ago |
Nuno Gonçalves | f5776610f1 | 5 years ago |
Inky | 11f2044c7d | 5 years ago |
Nimetu | b53d797745 | 5 years ago |
Nimetu | 8b4c179a15 | 5 years ago |
ulukyn | 959d52fd80 | 5 years ago |
Nimetu | b423c0f057 | 5 years ago |
Nimetu | 7148d476ad | 5 years ago |
Nimetu | c9a5fbacd9 | 5 years ago |
Inky | bfbb8e1292 | 5 years ago |
Inky | 045a80b59e | 5 years ago |
Inky | 1ad5cf7a8e | 5 years ago |
Inky | c752619f13 | 5 years ago |
Inky | 26aef169b1 | 5 years ago |
Inky | 8006dbeabe | 5 years ago |
Inky | 6fdbdc9ed1 | 5 years ago |
Inky | f75e413994 | 5 years ago |
Inky | 3acbf83058 | 5 years ago |
Inky | 77496daef4 | 5 years ago |
Inky | c545629a10 | 5 years ago |
Inky | 1910f7bc86 | 5 years ago |
Inky | c1e76fcbb2 | 5 years ago |
Inky | 20fe11c53f | 5 years ago |
Inky | 6fcb6f0669 | 5 years ago |
Inky | a7cdf29463 | 5 years ago |
Inky | b2b16e3cce | 5 years ago |
Inky | 0f3f64cdc2 | 5 years ago |
Inky | c8927c9c4b | 5 years ago |
Inky | 5d1233e805 | 5 years ago |
Inky | f5e9b7703c | 5 years ago |
Inky | 098df688b9 | 5 years ago |
Inky | 6d16b46890 | 5 years ago |
Inky | 331b0d8718 | 5 years ago |
Inky | d9cb317667 | 5 years ago |
Inky | 90e508032c | 5 years ago |
Inky | 4a5de4cb13 | 5 years ago |
Inky | 9d294ef242 | 5 years ago |
Inky | 860d6e2abb | 6 years ago |
Inky | bfab92082b | 6 years ago |
Inky | 64e26124f8 | 6 years ago |
Inky | 21dfa80b73 | 6 years ago |
Inky | ac4d9efd8b | 6 years ago |
Inky | 00f850f143 | 6 years ago |
Nimetu | a4b3e57fd0 | 6 years ago |
Nimetu | 8b2aef9317 | 6 years ago |
Nimetu | c123f63afd | 6 years ago |
Nimetu | a22767af76 | 6 years ago |
ulukyn | f8af0da354 | 6 years ago |
Riasan | 4f08aa3082 | 6 years ago |
ulukyn | 72d636ded1 | 6 years ago |
Riasan | cba4d7948d | 6 years ago |
ulukyn | 739d000055 | 6 years ago |
ulukyn | 963162855c | 6 years ago |
ulukyn | 89ef083460 | 6 years ago |
Inky | 795606628f | 6 years ago |
Inky | e572cc3e83 | 6 years ago |
ulukyn | bf34575037 | 6 years ago |
ulukyn | 57a32f10ee | 6 years ago |
ulukyn | 6c9a8da387 | 6 years ago |
Riasan | 2aa065d109 | 6 years ago |
ulukyn | 41b0fac726 | 6 years ago |
ulukyn | b7ec1c68ac | 6 years ago |
ulukyn | cc6159a9d5 | 6 years ago |
Inky | 438b521ece | 6 years ago |
Ulukyn | f5f4411a00 | 6 years ago |
Riasan | 29cb0c579f | 6 years ago |
ulukyn | 8434cb1a34 | 6 years ago |
ulukyn | 39004eb54b | 6 years ago |
Riasan | d2df2043c5 | 6 years ago |
Riasan | d8cfde63f8 | 6 years ago |
Nuno Gonçalves | 617682afe6 | 6 years ago |
Nuno Gonçalves | c9d19b4879 | 6 years ago |
ulukyn | 0b507cba7b | 6 years ago |
ulukyn | db5a7b141a | 6 years ago |
ulukyn | 478e2a646f | 6 years ago |
ulukyn | 020c59153d | 6 years ago |
ulukyn | 4f1008a413 | 6 years ago |
Riasan | f14c4d7746 | 6 years ago |
ulukyn | 23fe859e19 | 6 years ago |
Riasan | c6978f769f | 6 years ago |
Riasan | 319ae23064 | 6 years ago |
Riasan | 3e2e6cb696 | 6 years ago |
Riasan | 3c66bf2ba2 | 6 years ago |
Riasan | 1390a45f71 | 6 years ago |
ulukyn | d599fa4c14 | 6 years ago |
ulukyn | b4d09e0774 | 6 years ago |
ulukyn | 6f65197479 | 6 years ago |
ulukyn | 569599281b | 6 years ago |
ulukyn | 10562b720b | 6 years ago |
ulukyn | 1fc73a8079 | 6 years ago |
ulukyn | f821ff6973 | 6 years ago |
Riasan | d51b3b2eae | 6 years ago |
Riasan | 90c99b0b0e | 6 years ago |
Riasan | 48b2e9799e | 6 years ago |
Riasan | 9c680f43ce | 6 years ago |
Riasan | 537865cdb9 | 6 years ago |
ulukyn | 60feb8bc57 | 6 years ago |
ulukyn | dd6057ad71 | 6 years ago |
Riasan | 882e067fc0 | 6 years ago |
Riasan | a82a018f40 | 6 years ago |
Riasan | eb1c367464 | 6 years ago |
teanwen | 4ca7ea8957 | 6 years ago |
ulukyn | 6c731f049e | 6 years ago |
ulukyn | 363a59d238 | 6 years ago |
Riasan | b59b8a51a9 | 6 years ago |
ulukyn | 5648981968 | 6 years ago |
Riasan | c1510a8fb8 | 6 years ago |
Riasan | beb3dca614 | 6 years ago |
Riasan | 80204090d4 | 6 years ago |
Riasan | 57e55ed250 | 6 years ago |
Riasan | 5601d84d60 | 6 years ago |
Riasan | 2b24a51439 | 6 years ago |
Riasan | 3343f46e11 | 6 years ago |
Riasan | 82e5e1a4fc | 6 years ago |
Riasan | 19285bc8e9 | 6 years ago |
Riasan | cdbd2e1f47 | 6 years ago |
Riasan | f8a252abcf | 6 years ago |
Ul U'Kyn | 453c81bc7c | 6 years ago |
Riasan | 56f450782f | 6 years ago |
Riasan | dda9dff6ba | 6 years ago |
Riasan | e0266dedcb | 6 years ago |
Riasan | 28fd5a7265 | 6 years ago |
ulukyn | 085770a098 | 6 years ago |
ulukyn | a5f98add80 | 6 years ago |
ulukyn | bb667c736c | 6 years ago |
ulukyn | d824ff5baf | 7 years ago |
ulukyn | 6cc550732b | 7 years ago |
ulukyn | fcfb17c784 | 7 years ago |
Riasan | 22b06fdb3e | 7 years ago |
Riasan | 05baa720e9 | 7 years ago |
Riasan | 8be4abf0fe | 7 years ago |
Riasan | f47f2b4801 | 7 years ago |
Riasan | 7c8eb4b3c6 | 7 years ago |
Riasan | 146ccbbe4c | 7 years ago |
Ul U'Kyn | eaf08e863e | 7 years ago |
Riasan | 5afbc26916 | 7 years ago |
Ul U'Kyn | b5234633b4 | 7 years ago |
Riasan | c60705a297 | 7 years ago |
Ul U'Kyn | 9d4829ec54 | 7 years ago |
Ul U'Kyn | c37ef9592e | 7 years ago |
Ul U'Kyn | af3fe227c8 | 8 years ago |
Ul U'Kyn | 0e122c76ba | 8 years ago |
Nuno Gonçalves | 14c7013348 | 8 years ago |
Nuno Gonçalves | fbf0d664fc | 8 years ago |
Nuno Gonçalves | 0fd0934111 | 8 years ago |
Nuno Gonçalves | aadf864e4e | 8 years ago |
vl | f86da6ec78 | 9 years ago |
kaetemi | 5db42f1eb6 | 10 years ago |
kaetemi | a33799d210 | 10 years ago |
kaetemi | e277fedfb8 | 10 years ago |
kaetemi | 0f59cb4343 | 10 years ago |
kaetemi | a7af274ae0 | 10 years ago |
kaetemi | b19c685ace | 10 years ago |
kaetemi | 153ea8169d | 10 years ago |
kaetemi | 6b5d7b66a4 | 10 years ago |
kaetemi | b7208c9513 | 10 years ago |
kaetemi | 242476e1f6 | 10 years ago |
kaetemi | 8d93e9308f | 10 years ago |
kaetemi | 9a1510caf0 | 10 years ago |
kaetemi | 40f4eb4ad2 | 10 years ago |
kaetemi | 85615992d7 | 10 years ago |
kaetemi | fb7955103b | 10 years ago |
kaetemi | dccfc87975 | 10 years ago |
kaetemi | e6a327fb1a | 10 years ago |
kaetemi | 105ecbff90 | 10 years ago |
kaetemi | 7d09a6cb15 | 10 years ago |
kaetemi | 4ba6b6c4bf | 10 years ago |
kaetemi | 20b4fc8a87 | 10 years ago |
kaetemi | 9c3e8674ae | 10 years ago |
@ -1,19 +1,23 @@
|
||||
; Top-most EditorConfig file
|
||||
root = true
|
||||
|
||||
; 4-column tab indentation
|
||||
[*.cpp]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
|
||||
[*.c]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
|
||||
[*.h]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
|
||||
[*.py]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
; Top-most EditorConfig file
|
||||
root = true
|
||||
|
||||
; 4-column tab indentation
|
||||
[*.cpp]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
|
||||
[*.c]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
|
||||
[*.h]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
|
||||
[*.py]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
|
||||
[*.cfg]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
|
@ -0,0 +1,8 @@
|
||||
# This file is parsed by HunterGate command
|
||||
|
||||
hunter_config(luabind
|
||||
VERSION 0.9.1
|
||||
URL "https://github.com/nimetu/luabind/tarball/2fa4606"
|
||||
SHA1 "3b4646bab9f0b2362d7b8d71d78e40deaf3cc747"
|
||||
)
|
||||
|
@ -0,0 +1,537 @@
|
||||
# Copyright (c) 2013-2019, Ruslan Baratov
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
#
|
||||
# * Redistributions in binary form must reproduce the above copyright notice,
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# This is a gate file to Hunter package manager.
|
||||
# Include this file using `include` command and add package you need, example:
|
||||
#
|
||||
# cmake_minimum_required(VERSION 3.2)
|
||||
#
|
||||
# include("cmake/HunterGate.cmake")
|
||||
# HunterGate(
|
||||
# URL "https://github.com/path/to/hunter/archive.tar.gz"
|
||||
# SHA1 "798501e983f14b28b10cda16afa4de69eee1da1d"
|
||||
# )
|
||||
#
|
||||
# project(MyProject)
|
||||
#
|
||||
# hunter_add_package(Foo)
|
||||
# hunter_add_package(Boo COMPONENTS Bar Baz)
|
||||
#
|
||||
# Projects:
|
||||
# * https://github.com/hunter-packages/gate/
|
||||
# * https://github.com/ruslo/hunter
|
||||
|
||||
option(HUNTER_ENABLED "Enable Hunter package manager support" ON)
|
||||
|
||||
if(HUNTER_ENABLED)
|
||||
if(CMAKE_VERSION VERSION_LESS "3.2")
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"At least CMake version 3.2 required for Hunter dependency management."
|
||||
" Update CMake or set HUNTER_ENABLED to OFF."
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
include(CMakeParseArguments) # cmake_parse_arguments
|
||||
|
||||
option(HUNTER_STATUS_PRINT "Print working status" ON)
|
||||
option(HUNTER_STATUS_DEBUG "Print a lot info" OFF)
|
||||
option(HUNTER_TLS_VERIFY "Enable/disable TLS certificate checking on downloads" ON)
|
||||
set(HUNTER_ROOT "" CACHE FILEPATH "Override the HUNTER_ROOT.")
|
||||
|
||||
set(HUNTER_ERROR_PAGE "https://hunter.readthedocs.io/en/latest/reference/errors")
|
||||
|
||||
function(hunter_gate_status_print)
|
||||
if(HUNTER_STATUS_PRINT OR HUNTER_STATUS_DEBUG)
|
||||
foreach(print_message ${ARGV})
|
||||
message(STATUS "[hunter] ${print_message}")
|
||||
endforeach()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(hunter_gate_status_debug)
|
||||
if(HUNTER_STATUS_DEBUG)
|
||||
foreach(print_message ${ARGV})
|
||||
string(TIMESTAMP timestamp)
|
||||
message(STATUS "[hunter *** DEBUG *** ${timestamp}] ${print_message}")
|
||||
endforeach()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(hunter_gate_error_page error_page)
|
||||
message("------------------------------ ERROR ------------------------------")
|
||||
message(" ${HUNTER_ERROR_PAGE}/${error_page}.html")
|
||||
message("-------------------------------------------------------------------")
|
||||
message("")
|
||||
message(FATAL_ERROR "")
|
||||
endfunction()
|
||||
|
||||
function(hunter_gate_internal_error)
|
||||
message("")
|
||||
foreach(print_message ${ARGV})
|
||||
message("[hunter ** INTERNAL **] ${print_message}")
|
||||
endforeach()
|
||||
message("[hunter ** INTERNAL **] [Directory:${CMAKE_CURRENT_LIST_DIR}]")
|
||||
message("")
|
||||
hunter_gate_error_page("error.internal")
|
||||
endfunction()
|
||||
|
||||
function(hunter_gate_fatal_error)
|
||||
cmake_parse_arguments(hunter "" "ERROR_PAGE" "" "${ARGV}")
|
||||
if("${hunter_ERROR_PAGE}" STREQUAL "")
|
||||
hunter_gate_internal_error("Expected ERROR_PAGE")
|
||||
endif()
|
||||
message("")
|
||||
foreach(x ${hunter_UNPARSED_ARGUMENTS})
|
||||
message("[hunter ** FATAL ERROR **] ${x}")
|
||||
endforeach()
|
||||
message("[hunter ** FATAL ERROR **] [Directory:${CMAKE_CURRENT_LIST_DIR}]")
|
||||
message("")
|
||||
hunter_gate_error_page("${hunter_ERROR_PAGE}")
|
||||
endfunction()
|
||||
|
||||
function(hunter_gate_user_error)
|
||||
hunter_gate_fatal_error(${ARGV} ERROR_PAGE "error.incorrect.input.data")
|
||||
endfunction()
|
||||
|
||||
function(hunter_gate_self root version sha1 result)
|
||||
string(COMPARE EQUAL "${root}" "" is_bad)
|
||||
if(is_bad)
|
||||
hunter_gate_internal_error("root is empty")
|
||||
endif()
|
||||
|
||||
string(COMPARE EQUAL "${version}" "" is_bad)
|
||||
if(is_bad)
|
||||
hunter_gate_internal_error("version is empty")
|
||||
endif()
|
||||
|
||||
string(COMPARE EQUAL "${sha1}" "" is_bad)
|
||||
if(is_bad)
|
||||
hunter_gate_internal_error("sha1 is empty")
|
||||
endif()
|
||||
|
||||
string(SUBSTRING "${sha1}" 0 7 archive_id)
|
||||
|
||||
if(EXISTS "${root}/cmake/Hunter")
|
||||
set(hunter_self "${root}")
|
||||
else()
|
||||
set(
|
||||
hunter_self
|
||||
"${root}/_Base/Download/Hunter/${version}/${archive_id}/Unpacked"
|
||||
)
|
||||
endif()
|
||||
|
||||
set("${result}" "${hunter_self}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
# Set HUNTER_GATE_ROOT cmake variable to suitable value.
|
||||
function(hunter_gate_detect_root)
|
||||
# Check CMake variable
|
||||
if(HUNTER_ROOT)
|
||||
set(HUNTER_GATE_ROOT "${HUNTER_ROOT}" PARENT_SCOPE)
|
||||
hunter_gate_status_debug("HUNTER_ROOT detected by cmake variable")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Check environment variable
|
||||
if(DEFINED ENV{HUNTER_ROOT})
|
||||
set(HUNTER_GATE_ROOT "$ENV{HUNTER_ROOT}" PARENT_SCOPE)
|
||||
hunter_gate_status_debug("HUNTER_ROOT detected by environment variable")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Check HOME environment variable
|
||||
if(DEFINED ENV{HOME})
|
||||
set(HUNTER_GATE_ROOT "$ENV{HOME}/.hunter" PARENT_SCOPE)
|
||||
hunter_gate_status_debug("HUNTER_ROOT set using HOME environment variable")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Check SYSTEMDRIVE and USERPROFILE environment variable (windows only)
|
||||
if(WIN32)
|
||||
if(DEFINED ENV{SYSTEMDRIVE})
|
||||
set(HUNTER_GATE_ROOT "$ENV{SYSTEMDRIVE}/.hunter" PARENT_SCOPE)
|
||||
hunter_gate_status_debug(
|
||||
"HUNTER_ROOT set using SYSTEMDRIVE environment variable"
|
||||
)
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(DEFINED ENV{USERPROFILE})
|
||||
set(HUNTER_GATE_ROOT "$ENV{USERPROFILE}/.hunter" PARENT_SCOPE)
|
||||
hunter_gate_status_debug(
|
||||
"HUNTER_ROOT set using USERPROFILE environment variable"
|
||||
)
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
hunter_gate_fatal_error(
|
||||
"Can't detect HUNTER_ROOT"
|
||||
ERROR_PAGE "error.detect.hunter.root"
|
||||
)
|
||||
endfunction()
|
||||
|
||||
function(hunter_gate_download dir)
|
||||
string(
|
||||
COMPARE
|
||||
NOTEQUAL
|
||||
"$ENV{HUNTER_DISABLE_AUTOINSTALL}"
|
||||
""
|
||||
disable_autoinstall
|
||||
)
|
||||
if(disable_autoinstall AND NOT HUNTER_RUN_INSTALL)
|
||||
hunter_gate_fatal_error(
|
||||
"Hunter not found in '${dir}'"
|
||||
"Set HUNTER_RUN_INSTALL=ON to auto-install it from '${HUNTER_GATE_URL}'"
|
||||
"Settings:"
|
||||
" HUNTER_ROOT: ${HUNTER_GATE_ROOT}"
|
||||
" HUNTER_SHA1: ${HUNTER_GATE_SHA1}"
|
||||
ERROR_PAGE "error.run.install"
|
||||
)
|
||||
endif()
|
||||
string(COMPARE EQUAL "${dir}" "" is_bad)
|
||||
if(is_bad)
|
||||
hunter_gate_internal_error("Empty 'dir' argument")
|
||||
endif()
|
||||
|
||||
string(COMPARE EQUAL "${HUNTER_GATE_SHA1}" "" is_bad)
|
||||
if(is_bad)
|
||||
hunter_gate_internal_error("HUNTER_GATE_SHA1 empty")
|
||||
endif()
|
||||
|
||||
string(COMPARE EQUAL "${HUNTER_GATE_URL}" "" is_bad)
|
||||
if(is_bad)
|
||||
hunter_gate_internal_error("HUNTER_GATE_URL empty")
|
||||
endif()
|
||||
|
||||
set(done_location "${dir}/DONE")
|
||||
set(sha1_location "${dir}/SHA1")
|
||||
|
||||
set(build_dir "${dir}/Build")
|
||||
set(cmakelists "${dir}/CMakeLists.txt")
|
||||
|
||||
hunter_gate_status_debug("Locking directory: ${dir}")
|
||||
file(LOCK "${dir}" DIRECTORY GUARD FUNCTION)
|
||||
hunter_gate_status_debug("Lock done")
|
||||
|
||||
if(EXISTS "${done_location}")
|
||||
# while waiting for lock other instance can do all the job
|
||||
hunter_gate_status_debug("File '${done_location}' found, skip install")
|
||||
return()
|
||||
endif()
|
||||
|
||||
file(REMOVE_RECURSE "${build_dir}")
|
||||
file(REMOVE_RECURSE "${cmakelists}")
|
||||
|
||||
file(MAKE_DIRECTORY "${build_dir}") # check directory permissions
|
||||
|
||||
# Disabling languages speeds up a little bit, reduces noise in the output
|
||||
# and avoids path too long windows error
|
||||
file(
|
||||
WRITE
|
||||
"${cmakelists}"
|
||||
"cmake_minimum_required(VERSION 3.2)\n"
|
||||
"project(HunterDownload LANGUAGES NONE)\n"
|
||||
"include(ExternalProject)\n"
|
||||
"ExternalProject_Add(\n"
|
||||
" Hunter\n"
|
||||
" URL\n"
|
||||
" \"${HUNTER_GATE_URL}\"\n"
|
||||
" URL_HASH\n"
|
||||
" SHA1=${HUNTER_GATE_SHA1}\n"
|
||||
" DOWNLOAD_DIR\n"
|
||||
" \"${dir}\"\n"
|
||||
" TLS_VERIFY\n"
|
||||
" ${HUNTER_TLS_VERIFY}\n"
|
||||
" SOURCE_DIR\n"
|
||||
" \"${dir}/Unpacked\"\n"
|
||||
" CONFIGURE_COMMAND\n"
|
||||
" \"\"\n"
|
||||
" BUILD_COMMAND\n"
|
||||
" \"\"\n"
|
||||
" INSTALL_COMMAND\n"
|
||||
" \"\"\n"
|
||||
")\n"
|
||||
)
|
||||
|
||||
if(HUNTER_STATUS_DEBUG)
|
||||
set(logging_params "")
|
||||
else()
|
||||
set(logging_params OUTPUT_QUIET)
|
||||
endif()
|
||||
|
||||
hunter_gate_status_debug("Run generate")
|
||||
|
||||
# Need to add toolchain file too.
|
||||
# Otherwise on Visual Studio + MDD this will fail with error:
|
||||
# "Could not find an appropriate version of the Windows 10 SDK installed on this machine"
|
||||
if(EXISTS "${CMAKE_TOOLCHAIN_FILE}")
|
||||
get_filename_component(absolute_CMAKE_TOOLCHAIN_FILE "${CMAKE_TOOLCHAIN_FILE}" ABSOLUTE)
|
||||
set(toolchain_arg "-DCMAKE_TOOLCHAIN_FILE=${absolute_CMAKE_TOOLCHAIN_FILE}")
|
||||
else()
|
||||
# 'toolchain_arg' can't be empty
|
||||
set(toolchain_arg "-DCMAKE_TOOLCHAIN_FILE=")
|
||||
endif()
|
||||
|
||||
string(COMPARE EQUAL "${CMAKE_MAKE_PROGRAM}" "" no_make)
|
||||
if(no_make)
|
||||
set(make_arg "")
|
||||
else()
|
||||
# Test case: remove Ninja from PATH but set it via CMAKE_MAKE_PROGRAM
|
||||
set(make_arg "-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}")
|
||||
endif()
|
||||
|
||||
execute_process(
|
||||
COMMAND
|
||||
"${CMAKE_COMMAND}"
|
||||
"-H${dir}"
|
||||
"-B${build_dir}"
|
||||
"-G${CMAKE_GENERATOR}"
|
||||
"${toolchain_arg}"
|
||||
${make_arg}
|
||||
WORKING_DIRECTORY "${dir}"
|
||||
RESULT_VARIABLE download_result
|
||||
${logging_params}
|
||||
)
|
||||
|
||||
if(NOT download_result EQUAL 0)
|
||||
hunter_gate_internal_error(
|
||||
"Configure project failed."
|
||||
"To reproduce the error run: ${CMAKE_COMMAND} -H${dir} -B${build_dir} -G${CMAKE_GENERATOR} ${toolchain_arg} ${make_arg}"
|
||||
"In directory ${dir}"
|
||||
)
|
||||
endif()
|
||||
|
||||
hunter_gate_status_print(
|
||||
"Initializing Hunter workspace (${HUNTER_GATE_SHA1})"
|
||||
" ${HUNTER_GATE_URL}"
|
||||
" -> ${dir}"
|
||||
)
|
||||
execute_process(
|
||||
COMMAND "${CMAKE_COMMAND}" --build "${build_dir}"
|
||||
WORKING_DIRECTORY "${dir}"
|
||||
RESULT_VARIABLE download_result
|
||||
${logging_params}
|
||||
)
|
||||
|
||||
if(NOT download_result EQUAL 0)
|
||||
hunter_gate_internal_error("Build project failed")
|
||||
endif()
|
||||
|
||||
file(REMOVE_RECURSE "${build_dir}")
|
||||
file(REMOVE_RECURSE "${cmakelists}")
|
||||
|
||||
file(WRITE "${sha1_location}" "${HUNTER_GATE_SHA1}")
|
||||
file(WRITE "${done_location}" "DONE")
|
||||
|
||||
hunter_gate_status_debug("Finished")
|
||||
endfunction()
|
||||
|
||||
# Must be a macro so master file 'cmake/Hunter' can
|
||||
# apply all variables easily just by 'include' command
|
||||
# (otherwise PARENT_SCOPE magic needed)
|
||||
macro(HunterGate)
|
||||
if(HUNTER_GATE_DONE)
|
||||
# variable HUNTER_GATE_DONE set explicitly for external project
|
||||
# (see `hunter_download`)
|
||||
set_property(GLOBAL PROPERTY HUNTER_GATE_DONE YES)
|
||||
endif()
|
||||
|
||||
# First HunterGate command will init Hunter, others will be ignored
|
||||
get_property(_hunter_gate_done GLOBAL PROPERTY HUNTER_GATE_DONE SET)
|
||||
|
||||
if(NOT HUNTER_ENABLED)
|
||||
# Empty function to avoid error "unknown function"
|
||||
function(hunter_add_package)
|
||||
endfunction()
|
||||
|
||||
set(
|
||||
_hunter_gate_disabled_mode_dir
|
||||
"${CMAKE_CURRENT_LIST_DIR}/cmake/Hunter/disabled-mode"
|
||||
)
|
||||
if(EXISTS "${_hunter_gate_disabled_mode_dir}")
|
||||
hunter_gate_status_debug(
|
||||
"Adding \"disabled-mode\" modules: ${_hunter_gate_disabled_mode_dir}"
|
||||
)
|
||||
list(APPEND CMAKE_PREFIX_PATH "${_hunter_gate_disabled_mode_dir}")
|
||||
endif()
|
||||
elseif(_hunter_gate_done)
|
||||
hunter_gate_status_debug("Secondary HunterGate (use old settings)")
|
||||
hunter_gate_self(
|
||||
"${HUNTER_CACHED_ROOT}"
|
||||
"${HUNTER_VERSION}"
|
||||
"${HUNTER_SHA1}"
|
||||
_hunter_self
|
||||
)
|
||||
include("${_hunter_self}/cmake/Hunter")
|
||||
else()
|
||||
set(HUNTER_GATE_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
string(COMPARE NOTEQUAL "${PROJECT_NAME}" "" _have_project_name)
|
||||
if(_have_project_name)
|
||||
hunter_gate_fatal_error(
|
||||
"Please set HunterGate *before* 'project' command. "
|
||||
"Detected project: ${PROJECT_NAME}"
|
||||
ERROR_PAGE "error.huntergate.before.project"
|
||||
)
|
||||
endif()
|
||||
|
||||
cmake_parse_arguments(
|
||||
HUNTER_GATE "LOCAL" "URL;SHA1;GLOBAL;FILEPATH" "" ${ARGV}
|
||||
)
|
||||
|
||||
string(COMPARE EQUAL "${HUNTER_GATE_SHA1}" "" _empty_sha1)
|
||||
string(COMPARE EQUAL "${HUNTER_GATE_URL}" "" _empty_url)
|
||||
string(
|
||||
COMPARE
|
||||
NOTEQUAL
|
||||
"${HUNTER_GATE_UNPARSED_ARGUMENTS}"
|
||||
""
|
||||
_have_unparsed
|
||||
)
|
||||
string(COMPARE NOTEQUAL "${HUNTER_GATE_GLOBAL}" "" _have_global)
|
||||
string(COMPARE NOTEQUAL "${HUNTER_GATE_FILEPATH}" "" _have_filepath)
|
||||
|
||||
if(_have_unparsed)
|
||||
hunter_gate_user_error(
|
||||
"HunterGate unparsed arguments: ${HUNTER_GATE_UNPARSED_ARGUMENTS}"
|
||||
)
|
||||
endif()
|
||||
if(_empty_sha1)
|
||||
hunter_gate_user_error("SHA1 suboption of HunterGate is mandatory")
|
||||
endif()
|
||||
if(_empty_url)
|
||||
hunter_gate_user_error("URL suboption of HunterGate is mandatory")
|
||||
endif()
|
||||
if(_have_global)
|
||||
if(HUNTER_GATE_LOCAL)
|
||||
hunter_gate_user_error("Unexpected LOCAL (already has GLOBAL)")
|
||||
endif()
|
||||
if(_have_filepath)
|
||||
hunter_gate_user_error("Unexpected FILEPATH (already has GLOBAL)")
|
||||
endif()
|
||||
endif()
|
||||
if(HUNTER_GATE_LOCAL)
|
||||
if(_have_global)
|
||||
hunter_gate_user_error("Unexpected GLOBAL (already has LOCAL)")
|
||||
endif()
|
||||
if(_have_filepath)
|
||||
hunter_gate_user_error("Unexpected FILEPATH (already has LOCAL)")
|
||||
endif()
|
||||
endif()
|
||||
if(_have_filepath)
|
||||
if(_have_global)
|
||||
hunter_gate_user_error("Unexpected GLOBAL (already has FILEPATH)")
|
||||
endif()
|
||||
if(HUNTER_GATE_LOCAL)
|
||||
hunter_gate_user_error("Unexpected LOCAL (already has FILEPATH)")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
hunter_gate_detect_root() # set HUNTER_GATE_ROOT
|
||||
|
||||
# Beautify path, fix probable problems with windows path slashes
|
||||
get_filename_component(
|
||||
HUNTER_GATE_ROOT "${HUNTER_GATE_ROOT}" ABSOLUTE
|
||||
)
|
||||
hunter_gate_status_debug("HUNTER_ROOT: ${HUNTER_GATE_ROOT}")
|
||||
if(NOT HUNTER_ALLOW_SPACES_IN_PATH)
|
||||
string(FIND "${HUNTER_GATE_ROOT}" " " _contain_spaces)
|
||||
if(NOT _contain_spaces EQUAL -1)
|
||||
hunter_gate_fatal_error(
|
||||
"HUNTER_ROOT (${HUNTER_GATE_ROOT}) contains spaces."
|
||||
"Set HUNTER_ALLOW_SPACES_IN_PATH=ON to skip this error"
|
||||
"(Use at your own risk!)"
|
||||
ERROR_PAGE "error.spaces.in.hunter.root"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
string(
|
||||
REGEX
|
||||
MATCH
|
||||
"[0-9]+\\.[0-9]+\\.[0-9]+[-_a-z0-9]*"
|
||||
HUNTER_GATE_VERSION
|
||||
"${HUNTER_GATE_URL}"
|
||||
)
|
||||
string(COMPARE EQUAL "${HUNTER_GATE_VERSION}" "" _is_empty)
|
||||
if(_is_empty)
|
||||
set(HUNTER_GATE_VERSION "unknown")
|
||||
endif()
|
||||
|
||||
hunter_gate_self(
|
||||
"${HUNTER_GATE_ROOT}"
|
||||
"${HUNTER_GATE_VERSION}"
|
||||
"${HUNTER_GATE_SHA1}"
|
||||
_hunter_self
|
||||
)
|
||||
|
||||
set(_master_location "${_hunter_self}/cmake/Hunter")
|
||||
if(EXISTS "${HUNTER_GATE_ROOT}/cmake/Hunter")
|
||||
# Hunter downloaded manually (e.g. by 'git clone')
|
||||
set(_unused "xxxxxxxxxx")
|
||||
set(HUNTER_GATE_SHA1 "${_unused}")
|
||||
set(HUNTER_GATE_VERSION "${_unused}")
|
||||
else()
|
||||
get_filename_component(_archive_id_location "${_hunter_self}/.." ABSOLUTE)
|
||||
set(_done_location "${_archive_id_location}/DONE")
|
||||
set(_sha1_location "${_archive_id_location}/SHA1")
|
||||
|
||||
# Check Hunter already downloaded by HunterGate
|
||||
if(NOT EXISTS "${_done_location}")
|
||||
hunter_gate_download("${_archive_id_location}")
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS "${_done_location}")
|
||||
hunter_gate_internal_error("hunter_gate_download failed")
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS "${_sha1_location}")
|
||||
hunter_gate_internal_error("${_sha1_location} not found")
|
||||
endif()
|
||||
file(READ "${_sha1_location}" _sha1_value)
|
||||
string(TOLOWER "${_sha1_value}" _sha1_value_lower)
|
||||
string(TOLOWER "${HUNTER_GATE_SHA1}" _HUNTER_GATE_SHA1_lower)
|
||||
string(COMPARE EQUAL "${_sha1_value_lower}" "${_HUNTER_GATE_SHA1_lower}" _is_equal)
|
||||
if(NOT _is_equal)
|
||||
hunter_gate_internal_error(
|
||||
"Short SHA1 collision:"
|
||||
" ${_sha1_value} (from ${_sha1_location})"
|
||||
" ${HUNTER_GATE_SHA1} (HunterGate)"
|
||||
)
|
||||
endif()
|
||||
if(NOT EXISTS "${_master_location}")
|
||||
hunter_gate_user_error(
|
||||
"Master file not found:"
|
||||
" ${_master_location}"
|
||||
"try to update Hunter/HunterGate"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
include("${_master_location}")
|
||||
set_property(GLOBAL PROPERTY HUNTER_GATE_DONE YES)
|
||||
endif()
|
||||
endmacro()
|
@ -0,0 +1,661 @@
|
||||
GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
Version 3, 19 November 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU Affero General Public License is a free, copyleft license for
|
||||
software and other kinds of works, specifically designed to ensure
|
||||
cooperation with the community in the case of network server software.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
our General Public Licenses are intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
Developers that use our General Public Licenses protect your rights
|
||||
with two steps: (1) assert copyright on the software, and (2) offer
|
||||
you this License which gives you legal permission to copy, distribute
|
||||
and/or modify the software.
|
||||
|
||||
A secondary benefit of defending all users' freedom is that
|
||||
improvements made in alternate versions of the program, if they
|
||||
receive widespread use, become available for other developers to
|
||||
incorporate. Many developers of free software are heartened and
|
||||
encouraged by the resulting cooperation. However, in the case of
|
||||
software used on network servers, this result may fail to come about.
|
||||
The GNU General Public License permits making a modified version and
|
||||
letting the public access it on a server without ever releasing its
|
||||
source code to the public.
|
||||
|
||||
The GNU Affero General Public License is designed specifically to
|
||||
ensure that, in such cases, the modified source code becomes available
|
||||
to the community. It requires the operator of a network server to
|
||||
provide the source code of the modified version running there to the
|
||||
users of that server. Therefore, public use of a modified version, on
|
||||
a publicly accessible server, gives the public access to the source
|
||||
code of the modified version.
|
||||
|
||||
An older license, called the Affero General Public License and
|
||||
published by Affero, was designed to accomplish similar goals. This is
|
||||
a different license, not a version of the Affero GPL, but Affero has
|
||||
released a new version of the Affero GPL which permits relicensing under
|
||||
this license.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU Affero General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Remote Network Interaction; Use with the GNU General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, if you modify the
|
||||
Program, your modified version must prominently offer all users
|
||||
interacting with it remotely through a computer network (if your version
|
||||
supports such interaction) an opportunity to receive the Corresponding
|
||||
Source of your version by providing access to the Corresponding Source
|
||||
from a network server at no charge, through some standard or customary
|
||||
means of facilitating copying of software. This Corresponding Source
|
||||
shall include the Corresponding Source for any work covered by version 3
|
||||
of the GNU General Public License that is incorporated pursuant to the
|
||||
following paragraph.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the work with which it is combined will remain governed by version
|
||||
3 of the GNU General Public License.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU Affero General Public License from time to time. Such new versions
|
||||
will be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU Affero General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU Affero General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU Affero General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If your software can interact with users remotely through a computer
|
||||
network, you should also make sure that it provides a way for users to
|
||||
get its source. For example, if your program is a web application, its
|
||||
interface could display a "Source" link that leads users to an archive
|
||||
of the code. There are many ways you could offer source, and different
|
||||
solutions will be better for different programs; see section 13 for the
|
||||
specific requirements.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU AGPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
@ -1,42 +1,164 @@
|
||||
jobs:
|
||||
- job: ubuntu16
|
||||
- job: ubuntu18
|
||||
timeoutInMinutes: 120
|
||||
pool:
|
||||
vmImage: 'Ubuntu-16.04'
|
||||
vmImage: 'ubuntu-18.04'
|
||||
steps:
|
||||
- script: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y software-properties-common
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
|
||||
sudo apt-get update
|
||||
sudo apt-get install cmake build-essential -y
|
||||
sudo apt-get install gcc-8 g++-8 -y
|
||||
sudo apt update
|
||||
sudo apt install -y software-properties-common
|
||||
# sudo add-apt-repository ppa:ubuntu-toolchain-r/test
|
||||
sudo apt update
|
||||
sudo apt install cmake build-essential -y
|
||||
sudo apt install gcc-8 g++-8 -y
|
||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 60
|
||||
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 60
|
||||
sudo apt-get install bison autoconf automake -y
|
||||
sudo apt-get install libpng12-dev -y
|
||||
sudo apt-get install libjpeg-dev -y
|
||||
sudo apt-get install libgif-dev libfreetype6-dev -y
|
||||
sudo apt-get install freeglut3-dev -y
|
||||
sudo apt-get install liblua5.1-dev libluabind-dev libcpptest-dev -y
|
||||
sudo apt-get install libogg-dev libvorbis-dev libopenal-dev -y
|
||||
sudo apt-get install libavcodec-dev libavformat-dev libavdevice-dev libswscale-dev libpostproc-dev -y
|
||||
sudo apt-get install libmysqlclient-dev -y
|
||||
sudo apt-get install libxml2-dev -y
|
||||
sudo apt-get install libcurl4-openssl-dev libssl-dev -y
|
||||
sudo apt-get install libsquish-dev -y
|
||||
sudo apt-get install liblzma-dev -y
|
||||
sudo apt-get install libgsf-1-dev -y
|
||||
sudo apt-get install qtbase5-dev qttools5-dev qttools5-dev-tools
|
||||
sudo apt install bison autoconf automake -y
|
||||
sudo apt install libpng-dev -y
|
||||
sudo apt install libjpeg-dev -y
|
||||
sudo apt install libgif-dev libfreetype6-dev -y
|
||||
sudo apt install freeglut3-dev -y
|
||||
sudo apt install liblua5.2-dev libluabind-dev libcpptest-dev -y
|
||||
sudo apt install libogg-dev libvorbis-dev libopenal-dev -y
|
||||
sudo apt install libavcodec-dev libavformat-dev libavdevice-dev libswscale-dev libpostproc-dev -y
|
||||
sudo apt install libmysqlclient-dev -y
|
||||
sudo apt install libxml2-dev -y
|
||||
sudo apt install libcurl4-openssl-dev libssl-dev -y
|
||||
sudo apt install libsquish-dev -y
|
||||
sudo apt install liblzma-dev -y
|
||||
sudo apt install libgsf-1-dev -y
|
||||
sudo apt install qtbase5-dev qttools5-dev qttools5-dev-tools
|
||||
displayName: 'Dependencies'
|
||||
- script: |
|
||||
mkdir build
|
||||
cmake --version
|
||||
cd build
|
||||
cmake -DWITH_STATIC=ON -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=ON -DWITH_LUA51=OFF -DWITH_LUA52=ON -DWITH_RYZOM=ON -DWITH_RYZOM_SERVER=ON -DWITH_RYZOM_CLIENT=ON -DWITH_RYZOM_TOOLS=ON -DWITH_NEL_TOOLS=ON -DWITH_NELNS=ON -DWITH_NELNS_LOGIN_SYSTEM=ON -DWITH_NELNS_SERVER=ON -DWITH_QT5=ON -DWITH_LIBGSF=ON ..
|
||||
cat CMakeCache.txt
|
||||
displayName: 'CMake'
|
||||
- script: |
|
||||
cd build
|
||||
make -j`nproc`
|
||||
displayName: 'Make'
|
||||
- job: ubuntu20
|
||||
timeoutInMinutes: 120
|
||||
pool:
|
||||
vmImage: 'ubuntu-20.04'
|
||||
steps:
|
||||
- script: |
|
||||
sudo apt update
|
||||
sudo apt install -y software-properties-common
|
||||
sudo apt update
|
||||
sudo apt install cmake build-essential -y
|
||||
sudo apt install bison autoconf automake -y
|
||||
sudo apt install libpng-dev -y
|
||||
sudo apt install libjpeg-dev -y
|
||||
sudo apt install libgif-dev libfreetype6-dev -y
|
||||
sudo apt install freeglut3-dev -y
|
||||
sudo apt install liblua5.2-dev libluabind-dev libcpptest-dev -y
|
||||
sudo apt install libogg-dev libvorbis-dev libopenal-dev -y
|
||||
sudo apt install libavcodec-dev libavformat-dev libavdevice-dev libswscale-dev libpostproc-dev -y
|
||||
sudo apt install libmysqlclient-dev -y
|
||||
sudo apt install libxml2-dev -y
|
||||
sudo apt install libcurl4-openssl-dev libssl-dev -y
|
||||
sudo apt install libsquish-dev -y
|
||||
sudo apt install liblzma-dev -y
|
||||
sudo apt install libgsf-1-dev -y
|
||||
sudo apt install qtbase5-dev qttools5-dev qttools5-dev-tools
|
||||
displayName: 'Dependencies'
|
||||
- script: |
|
||||
mkdir build
|
||||
cmake --version
|
||||
cd build
|
||||
cmake -DWITH_STATIC=ON -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=ON -DWITH_LUA51=ON -DWITH_RYZOM=ON -DWITH_RYZOM_SERVER=ON -DWITH_RYZOM_CLIENT=ON -DWITH_RYZOM_TOOLS=ON -DWITH_NEL_TOOLS=ON -DWITH_NELNS=ON -DWITH_NELNS_LOGIN_SYSTEM=ON -DWITH_NELNS_SERVER=ON -DWITH_QT5=ON -DWITH_LIBGSF=ON ../code
|
||||
cmake -DWITH_STATIC=ON -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=ON -DWITH_LUA51=OFF -DWITH_LUA52=ON -DWITH_RYZOM=ON -DWITH_RYZOM_SERVER=ON -DWITH_RYZOM_CLIENT=ON -DWITH_RYZOM_TOOLS=ON -DWITH_NEL_TOOLS=ON -DWITH_NELNS=ON -DWITH_NELNS_LOGIN_SYSTEM=ON -DWITH_NELNS_SERVER=ON -DWITH_QT5=ON -DWITH_LIBGSF=ON ..
|
||||
cat CMakeCache.txt
|
||||
displayName: 'CMake'
|
||||
- script: |
|
||||
cd build
|
||||
make -j`nproc`
|
||||
displayName: 'Make'
|
||||
displayName: 'Make'
|
||||
- job: windows2019
|
||||
timeoutInMinutes: 120
|
||||
pool:
|
||||
vmImage: 'windows-2019'
|
||||
steps:
|
||||
- checkout: self
|
||||
fetchDepth: 1
|
||||
- task: Cache@2
|
||||
inputs:
|
||||
key: 'hunter-win2019-x64-rel'
|
||||
path: "c:/.hunter/_Base/Cache"
|
||||
- task: CmdLine@2
|
||||
inputs:
|
||||
script: |
|
||||
aria2c https://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe
|
||||
7z x DXSDK_Jun10.exe -oC:\ -r -y
|
||||
del DXSDK_Jun10.exe
|
||||
- task: CMake@1
|
||||
inputs:
|
||||
workingDirectory: build.release
|
||||
cmakeArgs: '-DCMAKE_CONFIGURATION_TYPES=Release -DHUNTER_ENABLED=ON -DHUNTER_CONFIGURATION_TYPES=Release -DFINAL_VERSION=OFF -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_NEL_TOOLS=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_DRIVER_DIRECT3D=ON -DWITH_DRIVER_XAUDIO2=ON -DDXSDK_DIR=C:/DXSDK ..'
|
||||
- task: MSBuild@1
|
||||
inputs:
|
||||
solution: build.release/ALL_BUILD.vcxproj
|
||||
maximumCpuCount: true
|
||||
configuration: release
|
||||
platform: 'x64'
|
||||
- job: ubuntu18hunter
|
||||
timeoutInMinutes: 120
|
||||
pool:
|
||||
vmImage: ubuntu-18.04
|
||||
steps:
|
||||
- checkout: self
|
||||
fetchDepth: 0
|
||||
- script: |
|
||||
sudo apt-get update
|
||||
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends libasound2-dev libgl1-mesa-dev libjack-dev libpulse-dev libxrandr-dev libxrender-dev libxxf86vm-dev
|
||||
displayName: 'Dependencies'
|
||||
- task: Cache@2
|
||||
inputs:
|
||||
key: 'hunter317-ubuntu18-rel"'
|
||||
path: "$(Pipeline.Workspace)/.hunter/_Base/Cache"
|
||||
- script: |
|
||||
mkdir build.release
|
||||
cmake --version
|
||||
cd build.release
|
||||
unset SYSTEM
|
||||
export MAKEFLAGS=-j`nproc`
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DHUNTER_ENABLED=ON -DHUNTER_CONFIGURATION_TYPES=Release -DHUNTER_ROOT="$(Pipeline.Workspace)/.hunter" -DFINAL_VERSION=OFF -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_NEL_TOOLS=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON ..
|
||||
displayName: 'CMake, release'
|
||||
- script: |
|
||||
cd build.release
|
||||
make -j`nproc`
|
||||
displayName: 'Make, release'
|
||||
#- task: PublishPipelineArtifact@1
|
||||
# inputs:
|
||||
# targetPath: build.release/bin
|
||||
# artifactName: RyzomUbuntu18Release
|
||||
- job: macOS11
|
||||
timeoutInMinutes: 120
|
||||
pool:
|
||||
vmImage: 'macOS-11'
|
||||
steps:
|
||||
- checkout: self
|
||||
fetchDepth: 0
|
||||
- task: Cache@2
|
||||
inputs:
|
||||
key: 'hunter317-macOS11-rel"'
|
||||
path: "$(Pipeline.Workspace)/.hunter/_Base/Cache"
|
||||
- task: CMake@1
|
||||
inputs:
|
||||
workingDirectory: build.release
|
||||
cmakeArgs: '-GXcode -DCMAKE_CONFIGURATION_TYPES=Release -DHUNTER_ENABLED=ON -DHUNTER_STATUS_DEBUG=ON -DHUNTER_CONFIGURATION_TYPES=Release -DHUNTER_ROOT="$(Pipeline.Workspace)/.hunter" -DWITH_LIBXML2_ICONV=OFF -DFINAL_VERSION=OFF -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_NEL_TOOLS=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_DRIVER_DIRECT3D=OFF -DWITH_DRIVER_XAUDIO2=OFF ..'
|
||||
- task: Xcode@5
|
||||
inputs:
|
||||
actions: 'build'
|
||||
configuration: Release
|
||||
sdk: macosx12.0
|
||||
xcWorkspacePath: 'build.release/RyzomCore.xcodeproj'
|
||||
scheme: 'ALL_BUILD'
|
||||
packageApp: false
|
||||
#- task: PublishPipelineArtifact@1
|
||||
# inputs:
|
||||
# targetPath: build.release/bin/
|
||||
# artifactName: RyzomClientMacOS11Release
|
||||
|
@ -1,23 +0,0 @@
|
||||
; Top-most EditorConfig file
|
||||
root = true
|
||||
|
||||
; 4-column tab indentation
|
||||
[*.cpp]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
|
||||
[*.c]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
|
||||
[*.h]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
|
||||
[*.py]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
|
||||
[*.config]
|
||||
indent_style = space
|
||||
indent_size = 2
|
@ -1,49 +0,0 @@
|
||||
/** \file geometry_program.h
|
||||
* Geometry program definition
|
||||
*/
|
||||
|
||||
/* Copyright, 2000, 2001 Nevrax Ltd.
|
||||
*
|
||||
* This file is part of NEVRAX NEL.
|
||||
* NEVRAX NEL is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
|
||||
* NEVRAX NEL is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with NEVRAX NEL; see the file COPYING. If not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
||||
* MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef NL_GEOMETRY_PROGRAM_H
|
||||
#define NL_GEOMETRY_PROGRAM_H
|
||||
|
||||
#include <nel/misc/types_nl.h>
|
||||
#include <nel/misc/smart_ptr.h>
|
||||
#include <nel/3d/program.h>
|
||||
|
||||
#include <list>
|
||||
|
||||
namespace NL3D {
|
||||
|
||||
class CGeometryProgram : public IProgram
|
||||
{
|
||||
public:
|
||||
/// Constructor
|
||||
CGeometryProgram();
|
||||
/// Destructor
|
||||
virtual ~CGeometryProgram ();
|
||||
};
|
||||
|
||||
} // NL3D
|
||||
|
||||
|
||||
#endif // NL_GEOMETRY_PROGRAM_H
|
||||
|
||||
/* End of vertex_program.h */
|
@ -1,49 +0,0 @@
|
||||
/** \file pixel_program.h
|
||||
* Pixel program definition
|
||||
*/
|
||||
|
||||
/* Copyright, 2000, 2001 Nevrax Ltd.
|
||||
*
|
||||
* This file is part of NEVRAX NEL.
|
||||
* NEVRAX NEL is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
|
||||
* NEVRAX NEL is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with NEVRAX NEL; see the file COPYING. If not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
||||
* MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef NL_PIXEL_PROGRAM_H
|
||||
#define NL_PIXEL_PROGRAM_H
|
||||
|
||||
#include <nel/misc/types_nl.h>
|
||||
#include <nel/misc/smart_ptr.h>
|
||||
#include <nel/3d/program.h>
|
||||
|
||||
#include <list>
|
||||
|
||||
namespace NL3D {
|
||||
|
||||
class CPixelProgram : public IProgram
|
||||
{
|
||||
public:
|
||||
/// Constructor
|
||||
CPixelProgram();
|
||||
/// Destructor
|
||||
virtual ~CPixelProgram ();
|
||||
};
|
||||
|
||||
} // NL3D
|
||||
|
||||
|
||||
#endif // NL_PIXEL_PROGRAM_H
|
||||
|
||||
/* End of vertex_program.h */
|
@ -1,94 +0,0 @@
|
||||
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
|
||||
// Copyright (C) 2010 Winch Gate Property Limited
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
|
||||
#ifndef NL_CSS_BORDER_RENDERER_H
|
||||
#define NL_CSS_BORDER_RENDERER_H
|
||||
|
||||
#include "nel/misc/types_nl.h"
|
||||
#include "nel/misc/rgba.h"
|
||||
#include "nel/misc/geom_ext.h"
|
||||
#include "nel/gui/css_types.h"
|
||||
|
||||
namespace NLGUI
|
||||
{
|
||||
/**
|
||||
* \brief Border renderer for GUI classes
|
||||
* \date 2019-09-03 10:50 GMT
|
||||
* \author Meelis Mägi (Nimetu)
|
||||
*/
|
||||
class CSSBorderRenderer
|
||||
{
|
||||
private:
|
||||
// parent element screen coordinates
|
||||
sint32 _XReal, _YReal;
|
||||
sint32 _WReal, _HReal;
|
||||
|
||||
NLMISC::CQuadUV _QuadT;
|
||||
NLMISC::CQuadUV _QuadR;
|
||||
NLMISC::CQuadUV _QuadB;
|
||||
NLMISC::CQuadUV _QuadL;
|
||||
|
||||
uint8 _RenderLayer;
|
||||
bool _ModulateGlobalColor;
|
||||
|
||||
// if true, then updateCoords() is called from draw()
|
||||
bool _Dirty;
|
||||
// if true, then at least one border is set
|
||||
bool _Border;
|
||||
bool _BorderTop, _BorderRight, _BorderBottom, _BorderLeft;
|
||||
|
||||
public:
|
||||
uint32 TopWidth, RightWidth, BottomWidth, LeftWidth;
|
||||
NLMISC::CRGBA TopColor, RightColor, BottomColor, LeftColor;
|
||||
CSSLineStyle TopStyle, RightStyle, BottomStyle, LeftStyle;
|
||||
|
||||
// alpha value from parent
|
||||
uint8 CurrentAlpha;
|
||||
|
||||
public:
|
||||
CSSBorderRenderer();
|
||||
|
||||
void setRenderLayer(sint layer);
|
||||
void setModulateGlobalColor(bool m);
|
||||
|
||||
void setRect(sint32 x, sint32 y, sint32 w, sint32 h);
|
||||
|
||||
void setWidth(uint32 top, uint32 right, uint32 bottom, uint32 left);
|
||||
void setStyle(CSSLineStyle top, CSSLineStyle right, CSSLineStyle bottom, CSSLineStyle left);
|
||||
void setColor(const NLMISC::CRGBA &top, const NLMISC::CRGBA &right, const NLMISC::CRGBA &bottom, const NLMISC::CRGBA &left);
|
||||
|
||||
void updateCoords();
|
||||
void invalidateCoords() { _Dirty = _Border = true; }
|
||||
void invalidateContent() { _Dirty = _Border = true; };
|
||||
|
||||
uint32 getTopWidth() const;
|
||||
uint32 getRightWidth() const;
|
||||
uint32 getBottomWidth() const;
|
||||
uint32 getLeftWidth() const;
|
||||
|
||||
uint32 getLeftRightWidth() const;
|
||||
uint32 getTopBottomWidth() const;
|
||||
|
||||
void draw();
|
||||
}; // CSSBorderRenderer
|
||||
|
||||
}//namespace
|
||||
|
||||
#endif // NL_CSS_BORDER_RENDERER_H
|
||||
|
||||
|
@ -1,39 +0,0 @@
|
||||
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
|
||||
// Copyright (C) 2010 Winch Gate Property Limited
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#ifndef CL_CSS_TYPES_H
|
||||
#define CL_CSS_TYPES_H
|
||||
|
||||
#include "nel/misc/types_nl.h"
|
||||
|
||||
namespace NLGUI
|
||||
{
|
||||
/**
|
||||
* \brief CSS types used in GUI classes
|
||||
* \date 2019-09-03 10:50 GMT
|
||||
* \author Meelis Mägi (Nimetu)
|
||||
*/
|
||||
|
||||
// ie. border-style
|
||||
enum CSSLineStyle { NONE = 0, HIDDEN, SOLID, INSET, OUTSET };
|
||||
// ie, border-width (px)
|
||||
enum CSSLineWidth { THIN = 1, MEDIUM = 3, THICK = 5 };
|
||||
|
||||
}//namespace
|
||||
|
||||
#endif // CL_CSS_TYPES_H
|
||||
|
||||
|
@ -1,29 +0,0 @@
|
||||
#ifndef STRING_CASE_H
|
||||
#define STRING_CASE_H
|
||||
|
||||
#include "nel/misc/types_nl.h"
|
||||
#include "nel/misc/ucstring.h"
|
||||
|
||||
namespace NLGUI
|
||||
{
|
||||
|
||||
enum TCaseMode
|
||||
{
|
||||
CaseNormal = 0, // Nothing done
|
||||
CaseLower, // All letters in lowercase
|
||||
CaseUpper, // All letters in uppercase
|
||||
CaseFirstStringLetterUp, // The first letter of the string is uppercase, the others are lowercase
|
||||
CaseFirstSentenceLetterUp, // The first letter of the string and each sentences are uppercase, the others are lowercase. Sentences are seprated with '.'.
|
||||
CaseFirstWordLetterUp, // The first letter of each word is uppercase, the others are lowercase
|
||||
CaseCount
|
||||
};
|
||||
|
||||
|
||||
void setCase( ucstring &str, TCaseMode mode );
|
||||
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -1,390 +0,0 @@
|
||||
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
// Copyright (C) 2010 Winch Gate Property Limited
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#ifndef NL_UCSTRING_H
|
||||
#define NL_UCSTRING_H
|
||||
|
||||
#include "types_nl.h"
|
||||
#include "debug.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
/**
|
||||
* \typedef ucstring
|
||||
* An unicode string class (16 bits per character).
|
||||
* Add features to convert and assign \c ucstring to \c string and \c string to \c ucstring.
|
||||
*/
|
||||
typedef std::basic_string<ucchar> ucstringbase;
|
||||
|
||||
class ucstring : public ucstringbase
|
||||
{
|
||||
public:
|
||||
|
||||
ucstring () {}
|
||||
|
||||
ucstring (const ucstringbase &str) : ucstringbase (str) {}
|
||||
|
||||
ucstring (const std::string &str) : ucstringbase ()
|
||||
{
|
||||
rawCopy(str);
|
||||
}
|
||||
|
||||
~ucstring () {}
|
||||
|
||||
ucstring &operator= (ucchar c)
|
||||
{
|
||||
resize (1);
|
||||
operator[](0) = c;
|
||||
return *this;
|
||||
}
|
||||
|
||||
ucstring &operator= (const char *str)
|
||||
{
|
||||
resize (strlen (str));
|
||||
for (uint i = 0; i < strlen (str); i++)
|
||||
{
|
||||
operator[](i) = uint8(str[i]);
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
ucstring &operator= (const std::string &str)
|
||||
{
|
||||
resize (str.size ());
|
||||
for (uint i = 0; i < str.size (); i++)
|
||||
{
|
||||
operator[](i) = uint8(str[i]);
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
ucstring &operator= (const ucstringbase &str)
|
||||
{
|
||||
ucstringbase::operator =(str);
|
||||
return *this;
|
||||
}
|
||||
|
||||
ucstring& operator= (const ucchar *str)
|
||||
{
|
||||
ucstringbase::operator =(str);
|
||||
return *this;
|
||||
}
|
||||
ucstring &operator+= (ucchar c)
|
||||
{
|
||||
resize (size() + 1);
|
||||
operator[](size()-1) = c;
|
||||
return *this;
|
||||
}
|
||||
|
||||
ucstring &operator+= (const char *str)
|
||||
{
|
||||
size_t s = size();
|
||||
resize (s + strlen(str));
|
||||
for (uint i = 0; i < strlen(str); i++)
|
||||
{
|
||||
operator[](s+i) = uint8(str[i]);
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
ucstring &operator+= (const std::string &str)
|
||||
{
|
||||
size_t s = size();
|
||||
resize (s + str.size());
|
||||
for (uint i = 0; i < str.size(); i++)
|
||||
{
|
||||
operator[](s+i) = uint8(str[i]);
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
ucstring &operator+= (const ucstringbase &str)
|
||||
{
|
||||
ucstringbase::operator +=(str);
|
||||
return *this;
|
||||
}
|
||||
|
||||
const ucchar *c_str() const
|
||||
{
|
||||
const ucchar *tmp = ucstringbase::c_str();
|
||||
const_cast<ucchar*>(tmp)[size()] = 0;
|
||||
return tmp;
|
||||
}
|
||||
|
||||
/// Converts the controlled ucstring to a string str
|
||||
void toString (std::string &str) const
|
||||
{
|
||||
str.resize (size ());
|
||||
for (uint i = 0; i < str.size (); i++)
|
||||
{
|
||||
if (operator[](i) > 255)
|
||||
str[i] = '?';
|
||||
else
|
||||
str[i] = (char) operator[](i);
|
||||
}
|
||||
}
|
||||
|
||||
/// Converts the controlled ucstring and returns the resulting string
|
||||
std::string toString () const
|
||||
{
|
||||
std::string str;
|
||||
toString(str);
|
||||
return str;
|
||||
}
|
||||
|
||||
/// Convert this ucstring (16bits char) into a utf8 string
|
||||
std::string toUtf8() const
|
||||
{
|
||||
std::string res;
|
||||
ucstring::const_iterator first(begin()), last(end());
|
||||
for (; first != last; ++first)
|
||||
{
|
||||
//ucchar c = *first;
|
||||
uint nbLoop = 0;
|
||||
if (*first < 0x80)
|
||||
res += char(*first);
|
||||
else if (*first < 0x800)
|
||||
{
|
||||
ucchar c = *first;
|
||||
c = c >> 6;
|
||||
c = c & 0x1F;
|
||||
res += char(c) | 0xC0;
|
||||
nbLoop = 1;
|
||||
}
|
||||
else /*if (*first < 0x10000)*/
|
||||
{
|
||||
ucchar c = *first;
|
||||
c = c >> 12;
|
||||
c = c & 0x0F;
|
||||
res += char(c) | 0xE0;
|
||||
nbLoop = 2;
|
||||
}
|
||||
|
||||
for (uint i=0; i<nbLoop; ++i)
|
||||
{
|
||||
ucchar c = *first;
|
||||
c = c >> ((nbLoop - i - 1) * 6);
|
||||
c = c & 0x3F;
|
||||
res += char(c) | 0x80;
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
ucstring substr(size_type pos = 0, size_type n = npos) const
|
||||
{
|
||||
return ucstringbase::substr(pos, n);
|
||||
}
|
||||
|
||||
// for luabind (can't bind to 'substr' else ...)
|
||||
ucstring luabind_substr(size_type pos = 0, size_type n = npos) const
|
||||
{
|
||||
return ucstringbase::substr(pos, n);
|
||||
}
|
||||
|
||||
/// Convert the utf8 string into this ucstring (16 bits char)
|
||||
void fromUtf8(const std::string &stringUtf8)
|
||||
{
|
||||
// clear the string
|
||||
erase();
|
||||
|
||||
uint8 c;
|
||||
ucchar code;
|
||||
sint iterations = 0;
|
||||
|
||||
std::string::const_iterator first(stringUtf8.begin()), last(stringUtf8.end());
|
||||
for (; first != last; )
|
||||
{
|
||||
c = *first++;
|
||||
code = c;
|
||||
|
||||
if ((code & 0xFE) == 0xFC)
|
||||
{
|
||||
code &= 0x01;
|
||||
iterations = 5;
|
||||
}
|
||||
else if ((code & 0xFC) == 0xF8)
|
||||
{
|
||||
code &= 0x03;
|
||||
iterations = 4;
|
||||
}
|
||||
else if ((code & 0xF8) == 0xF0)
|
||||
{
|
||||
code &= 0x07;
|
||||
iterations = 3;
|
||||
}
|
||||
else if ((code & 0xF0) == 0xE0)
|
||||
{
|
||||
code &= 0x0F;
|
||||
iterations = 2;
|
||||
}
|
||||
else if ((code & 0xE0) == 0xC0)
|
||||
{
|
||||
code &= 0x1F;
|
||||
iterations = 1;
|
||||
}
|
||||
else if ((code & 0x80) == 0x80)
|
||||
{
|
||||
// If it's not a valid UTF8 string, just copy the line without utf8 conversion
|
||||
rawCopy(stringUtf8);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
push_back(code);
|
||||
iterations = 0;
|
||||
}
|
||||
|
||||
if (iterations)
|
||||
{
|
||||
for (sint i = 0; i < iterations; i++)
|
||||
{
|
||||
if (first == last)
|
||||
{
|
||||
// If it's not a valid UTF8 string, just copy the line without utf8 conversion
|
||||
rawCopy(stringUtf8);
|
||||
return;
|
||||
}
|
||||
|
||||
uint8 ch;
|
||||
ch = *first ++;
|
||||
|
||||
if ((ch & 0xC0) != 0x80)
|
||||
{
|
||||
// If it's not a valid UTF8 string, just copy the line without utf8 conversion
|
||||
rawCopy(stringUtf8);
|
||||
return;
|
||||
}
|
||||
|
||||
code <<= 6;
|
||||
code |= (ucchar)(ch & 0x3F);
|
||||
}
|
||||
push_back(code);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static ucstring makeFromUtf8(const std::string &stringUtf8)
|
||||
{
|
||||
ucstring ret;
|
||||
ret.fromUtf8(stringUtf8);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
void rawCopy(const std::string &str)
|
||||
{
|
||||
// We need to convert the char into 8bits unsigned int before promotion to 16 bits
|
||||
// otherwise, as char are signed on some compiler (MSCV for ex), the sign bit is extended to 16 bits.
|
||||
resize(str.size());
|
||||
std::string::const_iterator first(str.begin()), last(str.end());
|
||||
iterator dest(begin());
|
||||
for (;first != last; ++first, ++dest)
|
||||
{
|
||||
*dest = uint8(*first);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
inline ucstring operator+(const ucstringbase &ucstr, ucchar c)
|
||||
{
|
||||
ucstring ret;
|
||||
ret= ucstr;
|
||||
ret+= c;
|
||||
return ret;
|
||||
}
|
||||
|
||||
inline ucstring operator+(const ucstringbase &ucstr, const char *c)
|
||||
{
|
||||
ucstring ret;
|
||||
ret= ucstr;
|
||||
ret+= c;
|
||||
return ret;
|
||||
}
|
||||
|
||||
inline ucstring operator+(const ucstringbase &ucstr, const std::string &c)
|
||||
{
|
||||
ucstring ret;
|
||||
ret= ucstr;
|
||||
ret+= c;
|
||||
return ret;
|
||||
}
|
||||
|
||||
inline ucstring operator+(ucchar c, const ucstringbase &ucstr)
|
||||
{
|
||||
ucstring ret;
|
||||
ret= c;
|
||||
ret += ucstr;
|
||||
return ret;
|
||||
}
|
||||
|
||||
inline ucstring operator+(const char *c, const ucstringbase &ucstr)
|
||||
{
|
||||
ucstring ret;
|
||||
ret= c;
|
||||
ret += ucstr;
|
||||
return ret;
|
||||
}
|
||||
|
||||
inline ucstring operator+(const std::string &c, const ucstringbase &ucstr)
|
||||
{
|
||||
ucstring ret;
|
||||
ret= c;
|
||||
ret += ucstr;
|
||||
return ret;
|
||||
}
|
||||
|
||||
namespace NLMISC
|
||||
{
|
||||
|
||||
// Traits for hash_map using CEntityId
|
||||
struct CUCStringHashMapTraits
|
||||
{
|
||||
enum { bucket_size = 4, min_buckets = 8 };
|
||||
CUCStringHashMapTraits() { }
|
||||
size_t operator() (const ucstring &id ) const
|
||||
{
|
||||
return id.size();
|
||||
}
|
||||
bool operator() (const ucstring &id1, const ucstring &id2) const
|
||||
{
|
||||
return id1 < id2;
|
||||
}
|
||||
};
|
||||
|
||||
/** Convert an unicode string in lower case.
|
||||
* Characters with accent are converted in a lowercase character with accent
|
||||
* \param a string or a char to transform to lower case
|
||||
*/
|
||||
|
||||
ucstring toLower (const ucstring &str);
|
||||
void toLower (ucchar *str);
|
||||
ucchar toLower (ucchar c);
|
||||
|
||||
/** Convert an unicode string in upper case.
|
||||
* Characters with accent are converted in a uppercase character without accent
|
||||
* \param a string or a char to transform to upper case
|
||||
*/
|
||||
|
||||
ucstring toUpper (const ucstring &str);
|
||||
void toUpper (ucchar *str);
|
||||
ucchar toUpper (ucchar c);
|
||||
|
||||
};
|
||||
|
||||
#endif // NL_UCSTRING_H
|
@ -1,53 +0,0 @@
|
||||
/** \file geometry_program.cpp
|
||||
* Geometry program definition
|
||||
*/
|
||||
|
||||
/* Copyright, 2000, 2001 Nevrax Ltd.
|
||||
*
|
||||
* This file is part of NEVRAX NEL.
|
||||
* NEVRAX NEL is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
|
||||
* NEVRAX NEL is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with NEVRAX NEL; see the file COPYING. If not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
||||
* MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include "std3d.h"
|
||||
|
||||
#include "nel/3d/geometry_program.h"
|
||||
|
||||
#include "nel/3d/driver.h"
|
||||
|
||||
#ifdef DEBUG_NEW
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
namespace NL3D
|
||||
{
|
||||
|
||||
// ***************************************************************************
|
||||
|
||||
CGeometryProgram::CGeometryProgram()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// ***************************************************************************
|
||||
|
||||
CGeometryProgram::~CGeometryProgram ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// ***************************************************************************
|
||||
|
||||
} // NL3D
|
@ -1,53 +0,0 @@
|
||||
/** \file pixel_program.cpp
|
||||
* Pixel program definition
|
||||
*/
|
||||
|
||||
/* Copyright, 2000, 2001 Nevrax Ltd.
|
||||
*
|
||||
* This file is part of NEVRAX NEL.
|
||||
* NEVRAX NEL is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
|
||||
* NEVRAX NEL is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with NEVRAX NEL; see the file COPYING. If not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
||||
* MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include "std3d.h"
|
||||
|
||||
#include "nel/3d/pixel_program.h"
|
||||
|
||||
#include "nel/3d/driver.h"
|
||||
|
||||
#ifdef DEBUG_NEW
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
namespace NL3D
|
||||
{
|
||||
|
||||
// ***************************************************************************
|
||||
|
||||
CPixelProgram::CPixelProgram()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// ***************************************************************************
|
||||
|
||||
CPixelProgram::~CPixelProgram ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// ***************************************************************************
|
||||
|
||||
} // NL3D
|
@ -1,59 +0,0 @@
|
||||
/**
|
||||
* \file stereo_hmd.cpp
|
||||
* \brief IStereoHMD
|
||||
* \date 2013-06-27 16:30GMT
|
||||
* \author Jan Boon (Kaetemi)
|
||||
* IStereoHMD
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2013 by authors
|
||||
*
|
||||
* This file is part of NL3D.
|
||||
* NL3D is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* NL3D is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
|
||||
* Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public
|
||||
* License along with NL3D. If not, see
|
||||
* <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "std3d.h"
|
||||
#include "nel/3d/stereo_hmd.h"
|
||||
|
||||
// STL includes
|
||||
|
||||
// NeL includes
|
||||
// #include <nel/misc/debug.h>
|
||||
|
||||
// Project includes
|
||||
|
||||
using namespace std;
|
||||
// using namespace NLMISC;
|
||||
|
||||
#ifdef DEBUG_NEW
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
namespace NL3D {
|
||||
|
||||
IStereoHMD::IStereoHMD()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
IStereoHMD::~IStereoHMD()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
} /* namespace NL3D */
|
||||
|
||||
/* end of file */
|
@ -1,320 +0,0 @@
|
||||
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
|
||||
// Copyright (C) 2010 Winch Gate Property Limited
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
#include "stdpch.h"
|
||||
#include "nel/gui/css_border_renderer.h"
|
||||
#include "nel/gui/view_renderer.h"
|
||||
#include "nel/gui/widget_manager.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace NLMISC;
|
||||
|
||||
#ifdef DEBUG_NEW
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
namespace NLGUI
|
||||
{
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
CSSBorderRenderer::CSSBorderRenderer()
|
||||
{
|
||||
TopWidth = RightWidth = BottomWidth = LeftWidth = 0;
|
||||
TopColor = RightColor = BottomColor = LeftColor = CRGBA(128, 128, 128, 255);
|
||||
TopStyle = RightStyle = BottomStyle = LeftStyle = CSSLineStyle::SOLID;
|
||||
CurrentAlpha = 255;
|
||||
|
||||
_RenderLayer = 0;
|
||||
_ModulateGlobalColor = false;
|
||||
|
||||
_Border = true;
|
||||
_Dirty = true;
|
||||
_BorderTop = _BorderRight = _BorderBottom = _BorderLeft = false;
|
||||
|
||||
//
|
||||
_QuadT.Uv0.set(0.f, 0.f);
|
||||
_QuadT.Uv1.set(0.f, 0.f);
|
||||
_QuadT.Uv2.set(1.f, 1.f);
|
||||
_QuadT.Uv3.set(0.f, 1.f);
|
||||
//
|
||||
_QuadR.Uv0.set(0.f, 0.f);
|
||||
_QuadR.Uv1.set(0.f, 0.f);
|
||||
_QuadR.Uv2.set(1.f, 1.f);
|
||||
_QuadR.Uv3.set(0.f, 1.f);
|
||||
//
|
||||
_QuadB.Uv0.set(0.f, 0.f);
|
||||
_QuadB.Uv1.set(0.f, 0.f);
|
||||
_QuadB.Uv2.set(1.f, 1.f);
|
||||
_QuadB.Uv3.set(0.f, 1.f);
|
||||
//
|
||||
_QuadL.Uv0.set(0.f, 0.f);
|
||||
_QuadL.Uv1.set(0.f, 0.f);
|
||||
_QuadL.Uv2.set(1.f, 1.f);
|
||||
_QuadL.Uv3.set(0.f, 1.f);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
void CSSBorderRenderer::setRenderLayer(sint layer)
|
||||
{
|
||||
_RenderLayer = layer;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
void CSSBorderRenderer::setModulateGlobalColor(bool s)
|
||||
{
|
||||
_ModulateGlobalColor = s;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
void CSSBorderRenderer::setRect(sint32 x, sint32 y, sint32 w, sint32 h)
|
||||
{
|
||||
_XReal = x;
|
||||
_YReal = y;
|
||||
_WReal = w;
|
||||
_HReal = h;
|
||||
|
||||
_Dirty = _Border = (w > 0 && h > 0);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
void CSSBorderRenderer::setWidth(uint32 top, uint32 right, uint32 bottom, uint32 left)
|
||||
{
|
||||
TopWidth = top;
|
||||
RightWidth = right;
|
||||
BottomWidth = bottom;
|
||||
LeftWidth = left;
|
||||
|
||||
_Dirty = _Border = (top > 0 || right > 0 || bottom > 0 || left > 0);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
void CSSBorderRenderer::setStyle(CSSLineStyle top, CSSLineStyle right, CSSLineStyle bottom, CSSLineStyle left)
|
||||
{
|
||||
TopStyle = top;
|
||||
RightStyle = right;
|
||||
BottomStyle = bottom;
|
||||
LeftStyle = left;
|
||||
|
||||
_Dirty = _Border = true;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
void CSSBorderRenderer::setColor(const NLMISC::CRGBA &top, const NLMISC::CRGBA &right, const NLMISC::CRGBA &bottom, const NLMISC::CRGBA &left)
|
||||
{
|
||||
TopColor = top;
|
||||
RightColor = right;
|
||||
BottomColor = bottom;
|
||||
LeftColor = left;
|
||||
|
||||
_Dirty = true;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
uint32 CSSBorderRenderer::getTopWidth() const
|
||||
{
|
||||
if (TopStyle == CSSLineStyle::NONE || TopStyle == CSSLineStyle::HIDDEN)
|
||||
return 0;
|
||||
|
||||
return TopWidth;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
uint32 CSSBorderRenderer::getRightWidth() const
|
||||
{
|
||||
if (RightStyle == CSSLineStyle::NONE || RightStyle == CSSLineStyle::HIDDEN)
|
||||
return 0;
|
||||
|
||||
return RightWidth;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
uint32 CSSBorderRenderer::getBottomWidth() const
|
||||
{
|
||||
if (BottomStyle == CSSLineStyle::NONE || BottomStyle == CSSLineStyle::HIDDEN)
|
||||
return 0;
|
||||
|
||||
return BottomWidth;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
uint32 CSSBorderRenderer::getLeftWidth() const
|
||||
{
|
||||
if (LeftStyle == CSSLineStyle::NONE || LeftStyle == CSSLineStyle::HIDDEN)
|
||||
return 0;
|
||||
|
||||
return LeftWidth;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
uint32 CSSBorderRenderer::getLeftRightWidth() const
|
||||
{
|
||||
return getLeftWidth() + getRightWidth();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
uint32 CSSBorderRenderer::getTopBottomWidth() const
|
||||
{
|
||||
return getTopWidth() + getBottomWidth();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
void CSSBorderRenderer::updateCoords()
|
||||
{
|
||||
_Dirty = false;
|
||||
if (!_Border) return;
|
||||
|
||||
sint dTop = getTopWidth(); _BorderTop = dTop > 0;
|
||||
sint dRight = getRightWidth(); _BorderRight = dRight > 0;
|
||||
sint dBottom = getBottomWidth(); _BorderBottom = dBottom > 0;
|
||||
sint dLeft = getLeftWidth(); _BorderLeft = dLeft > 0;
|
||||
|
||||
_Border = _BorderTop || _BorderRight || _BorderBottom || _BorderLeft;
|
||||
if (!_Border) return;
|
||||
|
||||
if (_BorderTop)
|
||||
{
|
||||
// top-left
|
||||
_QuadT.V3.x = _XReal;
|
||||
_QuadT.V3.y = _YReal + _HReal;
|
||||
// top-right
|
||||
_QuadT.V2.x = _XReal + _WReal;
|
||||
_QuadT.V2.y = _YReal + _HReal;
|
||||
// bottom-right
|
||||
_QuadT.V1.x = _XReal + _WReal - dRight;
|
||||
_QuadT.V1.y = _YReal + _HReal - dTop;
|
||||
// bottom-left
|
||||
_QuadT.V0.x = _XReal + dLeft;
|
||||
_QuadT.V0.y = _YReal + _HReal - dTop;
|
||||
}
|
||||
|
||||
if (_BorderRight)
|
||||
{
|
||||
// top-left
|
||||
_QuadR.V3.x = _XReal + _WReal - dRight;
|
||||
_QuadR.V3.y = _YReal + _HReal - dTop;
|
||||
// top-right
|
||||
_QuadR.V2.x = _XReal + _WReal;
|
||||
_QuadR.V2.y = _YReal + _HReal;
|
||||
// bottom-right
|
||||
_QuadR.V1.x = _XReal + _WReal;
|
||||
_QuadR.V1.y = _YReal;
|
||||
// bottom-left
|
||||
_QuadR.V0.x = _XReal + _WReal - dRight;
|
||||
_QuadR.V0.y = _YReal + dBottom;
|
||||
}
|
||||
|
||||
if (_BorderBottom)
|
||||
{
|
||||
// top-left
|
||||
_QuadB.V3.x = _XReal + dLeft;
|
||||
_QuadB.V3.y = _YReal + dBottom;
|
||||
// top-right
|
||||
_QuadB.V2.x = _XReal + _WReal - dRight;
|
||||
_QuadB.V2.y = _YReal + dBottom;
|
||||
// bottom-right
|
||||
_QuadB.V1.x = _XReal + _WReal;
|
||||
_QuadB.V1.y = _YReal;
|
||||
// bottom-left
|
||||
_QuadB.V0.x = _XReal;
|
||||
_QuadB.V0.y = _YReal;
|
||||
}
|
||||
|
||||
if (_BorderLeft)
|
||||
{
|
||||
// top-left
|
||||
_QuadL.V3.x = _XReal;
|
||||
_QuadL.V3.y = _YReal + _HReal;
|
||||
// top-right
|
||||
_QuadL.V2.x = _XReal + dLeft;
|
||||
_QuadL.V2.y = _YReal + _HReal - dTop;
|
||||
// bottom-right
|
||||
_QuadL.V1.x = _XReal + dLeft;
|
||||
_QuadL.V1.y = _YReal + dBottom;
|
||||
// bottom-left
|
||||
_QuadL.V0.x = _XReal;
|
||||
_QuadL.V0.y = _YReal;
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
void CSSBorderRenderer::draw() {
|
||||
if (_Dirty) updateCoords();
|
||||
if (!_Border) return;
|
||||
|
||||
CViewRenderer &rVR = *CViewRenderer::getInstance();
|
||||
|
||||
// TODO: no need for widget manager, if global color is set from parent
|
||||
CRGBA globalColor;
|
||||
if (_ModulateGlobalColor)
|
||||
globalColor = CWidgetManager::getInstance()->getGlobalColor();
|
||||
|
||||
// TODO: monitor ModulateGlobalColor and CurrentAlpha in table checkCoords and recalculate colors on change only
|
||||
// OUTSET - bottom/right darker than normal (default table style)
|
||||
// INSET - top/left darker than normal
|
||||
if (_BorderTop)
|
||||
{
|
||||
CRGBA borderColorT = TopColor;
|
||||
if (TopStyle == CSSLineStyle::INSET)
|
||||
borderColorT = blend(borderColorT, CRGBA::Black, 0.5f);
|
||||
|
||||
if (_ModulateGlobalColor)
|
||||
borderColorT.modulateFromColor (borderColorT, globalColor);
|
||||
|
||||
borderColorT.A = (uint8) (((uint16) CurrentAlpha * (uint16) borderColorT.A) >> 8);
|
||||
rVR.drawQuad(_RenderLayer, _QuadT, rVR.getBlankTextureId(), borderColorT, false);
|
||||
}
|
||||
if (_BorderRight)
|
||||
{
|
||||
CRGBA borderColorR = RightColor;
|
||||
if (RightStyle == CSSLineStyle::OUTSET)
|
||||
borderColorR = blend(borderColorR, CRGBA::Black, 0.5f);
|
||||
|
||||
if (_ModulateGlobalColor)
|
||||
borderColorR.modulateFromColor (borderColorR, globalColor);
|
||||
|
||||
borderColorR.A = (uint8) (((uint16) CurrentAlpha * (uint16) borderColorR.A) >> 8);
|
||||
rVR.drawQuad(_RenderLayer, _QuadR, rVR.getBlankTextureId(), borderColorR, false);
|
||||
}
|
||||
if (_BorderBottom)
|
||||
{
|
||||
CRGBA borderColorB = BottomColor;
|
||||
if (BottomStyle == CSSLineStyle::OUTSET)
|
||||
borderColorB = blend(borderColorB, CRGBA::Black, 0.5f);
|
||||
|
||||
if (_ModulateGlobalColor)
|
||||
borderColorB.modulateFromColor (borderColorB, globalColor);
|
||||
|
||||
borderColorB.A = (uint8) (((uint16) CurrentAlpha * (uint16) borderColorB.A) >> 8);
|
||||
rVR.drawQuad(_RenderLayer, _QuadB, rVR.getBlankTextureId(), borderColorB, false);
|
||||
}
|
||||
if (_BorderLeft)
|
||||
{
|
||||
CRGBA borderColorL = LeftColor;
|
||||
if (LeftStyle == CSSLineStyle::INSET)
|
||||
borderColorL = blend(borderColorL, CRGBA::Black, 0.5f);
|
||||
|
||||
if (_ModulateGlobalColor)
|
||||
borderColorL.modulateFromColor (borderColorL, globalColor);
|
||||
|
||||
borderColorL.A = (uint8) (((uint16) CurrentAlpha * (uint16) borderColorL.A) >> 8);
|
||||
rVR.drawQuad(_RenderLayer, _QuadL, rVR.getBlankTextureId(), borderColorL, false);
|
||||
}
|
||||
}
|
||||
|
||||
}//namespace
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,44 +0,0 @@
|
||||
/**
|
||||
* \file tool_logger.cpp
|
||||
* \brief CToolLogger
|
||||
* \date 2012-02-19 10:33GMT
|
||||
* \author Jan Boon (Kaetemi)
|
||||
* CToolLogger
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2012 by authors
|
||||
*
|
||||
* This file is part of RYZOM CORE PIPELINE.
|
||||
* RYZOM CORE PIPELINE is free software: you can redistribute it
|
||||
* and/or modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation, either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* RYZOM CORE PIPELINE is distributed in the hope that it will be
|
||||
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty
|
||||
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with RYZOM CORE PIPELINE; see the file COPYING. If not, see
|
||||
* <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "nel/pipeline/tool_logger.h"
|
||||
|
||||
// STL includes
|
||||
|
||||
// NeL includes
|
||||
// #include <nel/misc/debug.h>
|
||||
|
||||
// Project includes
|
||||
|
||||
namespace NLPIPELINE {
|
||||
|
||||
// Tool logger is fully implemented in header so small tools do not need to link to this library unnecessarily.
|
||||
void dummy_tool_logger_cpp() { }
|
||||
|
||||
} /* namespace NLPIPELINE */
|
||||
|
||||
/* end of file */
|
@ -1,7 +0,0 @@
|
||||
title Ryzom Core: 3_install.py (EXECUTABLES)
|
||||
3_install.py -ipj common/gamedev common/exedll common/cfg common/data_common
|
||||
title Ryzom Core: b1_client_dev.py
|
||||
b1_client_dev.py
|
||||
title Ryzom Core: b2_shard_data.py
|
||||
b2_shard_data.py
|
||||
title Ryzom Core: Ready
|
@ -1,68 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 0_setup.py
|
||||
# \brief Setup sound
|
||||
# \date 2009-06-03 10:47GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Setup sound
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("../../configuration")
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from process import *
|
||||
from tools import *
|
||||
from directories import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Setup sound")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
# Setup source directories
|
||||
printLog(log, ">>> Setup source directories <<<")
|
||||
mkPath(log, LeveldesignDirectory)
|
||||
mkPath(log, LeveldesignDfnDirectory)
|
||||
mkPath(log, DatabaseDirectory + "/" + SoundSamplebanksSourceDirectory)
|
||||
|
||||
# Setup export directories
|
||||
printLog(log, ">>> Setup export directories <<<")
|
||||
|
||||
# Setup build directories
|
||||
printLog(log, ">>> Setup build directories <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + SoundSheetsBuildDirectory)
|
||||
mkPath(log, ExportBuildDirectory + "/" + SoundSamplebanksBuildDirectory)
|
||||
|
||||
# Setup client directories
|
||||
printLog(log, ">>> Setup client directories <<<")
|
||||
mkPath(log, InstallDirectory + "/" + SoundSheetsInstallDirectory)
|
||||
mkPath(log, InstallDirectory + "/" + SoundSamplebanksInstallDirectory)
|
||||
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
@ -1,60 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# \file 3_install.py
|
||||
# \brief Install sound
|
||||
# \date 2009-06-03 10:47GMT
|
||||
# \author Jan Boon (Kaetemi)
|
||||
# Python port of game data build pipeline.
|
||||
# Install sound
|
||||
#
|
||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||
# Copyright (C) 2009-2014 by authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import time, sys, os, shutil, subprocess, distutils.dir_util
|
||||
sys.path.append("../../configuration")
|
||||
|
||||
if os.path.isfile("log.log"):
|
||||
os.remove("log.log")
|
||||
log = open("log.log", "w")
|
||||
from scripts import *
|
||||
from buildsite import *
|
||||
from process import *
|
||||
from tools import *
|
||||
from directories import *
|
||||
|
||||
printLog(log, "")
|
||||
printLog(log, "-------")
|
||||
printLog(log, "--- Install sound")
|
||||
printLog(log, "-------")
|
||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||
printLog(log, "")
|
||||
|
||||
printLog(log, ">>> Install sound packed_sheets <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + SoundSheetsBuildDirectory)
|
||||
mkPath(log, InstallDirectory + "/" + SoundSheetsInstallDirectory)
|
||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SoundSheetsBuildDirectory, InstallDirectory + "/" + SoundSheetsInstallDirectory, ".packed_sheets")
|
||||
|
||||
printLog(log, ">>> Install sound samplebanks <<<")
|
||||
mkPath(log, ExportBuildDirectory + "/" + SoundSamplebanksBuildDirectory)
|
||||
mkPath(log, InstallDirectory + "/" + SoundSamplebanksInstallDirectory)
|
||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SoundSamplebanksBuildDirectory, InstallDirectory + "/" + SoundSamplebanksInstallDirectory, ".sample_bank")
|
||||
|
||||
printLog(log, "")
|
||||
log.close()
|
||||
|
||||
|
||||
# end of file
|
@ -1,5 +0,0 @@
|
||||
MainDirectory = "w:\database";
|
||||
MirrorDirectory = "q:\database";
|
||||
LogDirectory = "";
|
||||
BinaryCompare = "false";
|
||||
IgnoreDirectory = "";
|
@ -1 +0,0 @@
|
||||
build_soundbank_r L:\leveldesign\ L:\leveldesign\dfn\ L:\build\sound_sheets\
|
@ -1,601 +0,0 @@
|
||||
//////////////////////////
|
||||
//////////////////////////
|
||||
/// CLIENT CONFIG FILE ///
|
||||
//////////////////////////
|
||||
//////////////////////////
|
||||
|
||||
|
||||
// If you set this variable to 1, your client.cfg will be overwritten when you quit the client.
|
||||
// You will loose all the comments and identation in this file.
|
||||
SaveConfig = 1;
|
||||
|
||||
///////////////////
|
||||
// WINDOW CONFIG //
|
||||
///////////////////
|
||||
|
||||
Driver3D="Auto"; // Valid values are "Auto" or "0", "OpengGL" or "1" & "Direct3D" or "2"
|
||||
// "Auto" will choose the best suited driver depending on hardware
|
||||
FullScreen = 0;
|
||||
Width = 0;
|
||||
Height = 0;
|
||||
PositionX = 0;
|
||||
PositionY = 0;
|
||||
Frequency = 0;
|
||||
Depth = 32;
|
||||
Sleep = -1;
|
||||
ProcessPriority = 0; // -2 = idle, -1 = below normal, 0 = normal, 1 = above normal, 2 = high, 3 = real time
|
||||
Contrast = 0.0; // -1.0 ~ 1.0
|
||||
Luminosity = 0.0; // -1.0 ~ 1.0
|
||||
Gamma = 0.0; // -1.0 ~ 1.0
|
||||
Contrast_min = -1.0;
|
||||
Luminosity_min = -1.0;
|
||||
Gamma_min = -1.0;
|
||||
Contrast_max = 1.0;
|
||||
Luminosity_max = 1.0;
|
||||
Gamma_max = 1.0;
|
||||
|
||||
|
||||
/////////////
|
||||
// NETWORK //
|
||||
/////////////
|
||||
|
||||
Application = { "ryzom_live", "./client_ryzom_r.exe", "./" };
|
||||
BackgroundDownloader = 0;
|
||||
StartupHost = "shard.ryzom.com:40916";
|
||||
StartupPage = "/login/r2_login.php";
|
||||
|
||||
ConditionsTermsURL = "http://app.ryzom.com/app_forum/index.php?page=topic/view/21885/1&post148782=en#1";
|
||||
LoginSupportURL = "http://app.ryzom.com/app_forum/index.php?page=topic/view/22047/1&post149889=en#1";
|
||||
NamingPolicyURL = "http://app.ryzom.com/app_forum/index.php?page=topic/view/21885/1&post148784=en#3";
|
||||
|
||||
// Full path and filename where cURL can find certificate bundle file
|
||||
// cacert.pem file can be downloaded from https://curl.haxx.se/docs/caextract.html
|
||||
// and added to client data path or system specific bundle can be used
|
||||
// Ubuntu has "/etc/ssl/certs/ca-certificates.crt"
|
||||
// % = defaultConfigFilePath
|
||||
CurlCABundle = "%cacert.pem";
|
||||
|
||||
////////////////
|
||||
// INTERFACES //
|
||||
////////////////
|
||||
|
||||
// the language to use as in ISO 639-2
|
||||
LanguageCode = "en"; // english
|
||||
|
||||
XMLInputFile = "input_config_v3.xml";
|
||||
|
||||
XMLLoginInterfaceFiles = {
|
||||
"login_config.xml",
|
||||
"login_widgets.xml",
|
||||
"login_main.xml",
|
||||
"login_keys.xml",
|
||||
};
|
||||
|
||||
XMLOutGameInterfaceFiles = {
|
||||
"out_v2_config.xml",
|
||||
"out_v2_widgets.xml",
|
||||
"out_v2_connect.xml",
|
||||
"out_v2_intro.xml",
|
||||
"out_v2_select.xml",
|
||||
"out_v2_appear.xml",
|
||||
"out_v2_location.xml",
|
||||
"out_v2_crash.xml",
|
||||
"out_v2_hierarchy.xml",
|
||||
"out_v2_keys.xml",
|
||||
};
|
||||
|
||||
// The ligo primitive class file
|
||||
LigoPrimitiveClass = "world_editor_classes.xml";
|
||||
|
||||
VerboseLog = 1;
|
||||
|
||||
///////////
|
||||
// MOUSE //
|
||||
///////////
|
||||
HardwareCursor = 1;
|
||||
|
||||
CursorSpeed = 1.0; // In pixels per mickey
|
||||
CursorSpeed_min = 0.5;
|
||||
CursorSpeed_max = 2.0;
|
||||
|
||||
CursorAcceleration = 40; // Threshold in mickey
|
||||
CursorAcceleration_min = 20;
|
||||
CursorAcceleration_max = 80;
|
||||
|
||||
FreeLookSpeed = 0.004; // In radian per mickey
|
||||
FreeLookSpeed_min = 0.0001;
|
||||
FreeLookSpeed_max = 0.01;
|
||||
|
||||
FreeLookAcceleration = 40; // Threshold in mickey
|
||||
FreeLookAcceleration_min = 20;
|
||||
FreeLookAcceleration_max = 80;
|
||||
|
||||
FreeLookInverted = 0;
|
||||
FreeLookTablet = 0;
|
||||
AutomaticCamera = 0;
|
||||
DblClickMode = 1;
|
||||
AutoEquipTool = 1;
|
||||
|
||||
///////////////////
|
||||
// RENDER CONFIG //
|
||||
///////////////////
|
||||
|
||||
// NB: thoses variables configure also the InGameConfigurator:
|
||||
// _min and _max define the bounds
|
||||
// _step defines the step (NB: take care of _min and _max!!)
|
||||
// _ps0 is the LOW preset, _ps1 is the MEDIUM preset, _ps2 is the NORMAL Preset, and _ps3 is the HIGH one
|
||||
|
||||
|
||||
// *** LANDSCAPE
|
||||
LandscapeTileNear = 50.000000;
|
||||
LandscapeTileNear_min = 20.000000;
|
||||
LandscapeTileNear_max = 100.000000;
|
||||
LandscapeTileNear_step = 10.0;
|
||||
LandscapeTileNear_ps0 = 20.0;
|
||||
LandscapeTileNear_ps1 = 40.0;
|
||||
LandscapeTileNear_ps2 = 50.0;
|
||||
LandscapeTileNear_ps3 = 80.0;
|
||||
|
||||
// NB: threshold is inverted ULandscape::setThreshold(), to be more intelligible
|
||||
LandscapeThreshold = 1000.0;
|
||||
LandscapeThreshold_min = 100.0; // Low quality => 0.01 threshold
|
||||
LandscapeThreshold_max = 2000.0; // High quality => 0.0005 threshold
|
||||
LandscapeThreshold_step = 100.0;
|
||||
LandscapeThreshold_ps0 = 100.0;
|
||||
LandscapeThreshold_ps1 = 500.0;
|
||||
LandscapeThreshold_ps2 = 1000.0;
|
||||
LandscapeThreshold_ps3 = 2000.0;
|
||||
|
||||
Vision = 500.000000;
|
||||
Vision_min = 200.000000;
|
||||
Vision_max = 800.000000;
|
||||
Vision_step = 100.000000;
|
||||
Vision_ps0 = 200.0;
|
||||
Vision_ps1 = 400.0;
|
||||
Vision_ps2 = 500.0;
|
||||
Vision_ps3 = 800.0;
|
||||
|
||||
MicroVeget = 1; // Enable/Disable MicroVeget.
|
||||
MicroVeget_ps0 = 0;
|
||||
MicroVeget_ps1 = 1;
|
||||
MicroVeget_ps2 = 1;
|
||||
MicroVeget_ps3 = 1;
|
||||
|
||||
MicroVegetDensity = 80.0;
|
||||
MicroVegetDensity_min = 10.0;
|
||||
MicroVegetDensity_max = 100.0;
|
||||
MicroVegetDensity_step = 10.0;
|
||||
MicroVegetDensity_ps0 = 10.0; // not used since disabled!
|
||||
MicroVegetDensity_ps1 = 30.0;
|
||||
MicroVegetDensity_ps2 = 80.0;
|
||||
MicroVegetDensity_ps3 = 100.0;
|
||||
|
||||
|
||||
// *** FX
|
||||
FxNbMaxPoly = 20000;
|
||||
FxNbMaxPoly_min = 2000;
|
||||
FxNbMaxPoly_max = 50000;
|
||||
FxNbMaxPoly_step= 2000;
|
||||
FxNbMaxPoly_ps0 = 2000;
|
||||
FxNbMaxPoly_ps1 = 10000;
|
||||
FxNbMaxPoly_ps2 = 20000;
|
||||
FxNbMaxPoly_ps3 = 50000;
|
||||
|
||||
Cloud = 1;
|
||||
Cloud_ps0 = 0 ;
|
||||
Cloud_ps1 = 1 ;
|
||||
Cloud_ps2 = 1 ;
|
||||
Cloud_ps3 = 1 ;
|
||||
|
||||
CloudQuality = 160.0;
|
||||
CloudQuality_min = 80.0;
|
||||
CloudQuality_max = 320.0;
|
||||
CloudQuality_step = 20.0;
|
||||
CloudQuality_ps0 = 80.0; // not used since disabled!
|
||||
CloudQuality_ps1 = 80.0;
|
||||
CloudQuality_ps2 = 160.0;
|
||||
CloudQuality_ps3 = 320.0;
|
||||
|
||||
CloudUpdate = 1;
|
||||
CloudUpdate_min = 1;
|
||||
CloudUpdate_max = 8;
|
||||
CloudUpdate_step= 1;
|
||||
CloudUpdate_ps0 = 1; // not used since disabled!
|
||||
CloudUpdate_ps1 = 1;
|
||||
CloudUpdate_ps2 = 1;
|
||||
CloudUpdate_ps3 = 3;
|
||||
|
||||
Shadows = 1;
|
||||
Shadows_ps0 = 0;
|
||||
Shadows_ps1 = 1;
|
||||
Shadows_ps2 = 1;
|
||||
Shadows_ps3 = 1;
|
||||
|
||||
FXAA = 1;
|
||||
FXAA_ps0 = 0;
|
||||
FXAA_ps1 = 1;
|
||||
FXAA_ps2 = 1;
|
||||
FXAA_ps3 = 1;
|
||||
|
||||
AnisotropicFilter = 0;
|
||||
|
||||
Bloom = 1;
|
||||
Bloom_ps0 = 0;
|
||||
Bloom_ps1 = 1;
|
||||
Bloom_ps2 = 1;
|
||||
Bloom_ps3 = 1;
|
||||
|
||||
SquareBloom = 1;
|
||||
SquareBloom_ps0 = 0;
|
||||
SquareBloom_ps1 = 1;
|
||||
SquareBloom_ps2 = 1;
|
||||
SquareBloom_ps3 = 1;
|
||||
|
||||
DensityBloom = 255.0;
|
||||
DensityBloom_min = 0.0;
|
||||
DensityBloom_max = 255.0;
|
||||
DensityBloom_step = 1.0;
|
||||
DensityBloom_ps0 = 255.0;
|
||||
DensityBloom_ps1 = 255.0;
|
||||
DensityBloom_ps2 = 255.0;
|
||||
DensityBloom_ps3 = 255.0;
|
||||
|
||||
|
||||
// *** CHARACTERS
|
||||
SkinNbMaxPoly = 100000;
|
||||
SkinNbMaxPoly_min = 5000;
|
||||
SkinNbMaxPoly_max = 250000;
|
||||
SkinNbMaxPoly_step = 5000;
|
||||
SkinNbMaxPoly_ps0 = 10000;
|
||||
SkinNbMaxPoly_ps1 = 70000;
|
||||
SkinNbMaxPoly_ps2 = 100000;
|
||||
SkinNbMaxPoly_ps3 = 200000;
|
||||
|
||||
NbMaxSkeletonNotCLod = 125;
|
||||
NbMaxSkeletonNotCLod_min = 5;
|
||||
NbMaxSkeletonNotCLod_max = 255;
|
||||
NbMaxSkeletonNotCLod_step = 5;
|
||||
NbMaxSkeletonNotCLod_ps0 = 10;
|
||||
NbMaxSkeletonNotCLod_ps1 = 50;
|
||||
NbMaxSkeletonNotCLod_ps2 = 125;
|
||||
NbMaxSkeletonNotCLod_ps3 = 255;
|
||||
|
||||
CharacterFarClip = 200.0;
|
||||
CharacterFarClip_min = 50.0;
|
||||
CharacterFarClip_max = 500.0;
|
||||
CharacterFarClip_step = 10.0;
|
||||
CharacterFarClip_ps0 = 50.0;
|
||||
CharacterFarClip_ps1 = 100.0;
|
||||
CharacterFarClip_ps2 = 200.0;
|
||||
CharacterFarClip_ps3 = 500.0;
|
||||
|
||||
EnableRacialAnimation = 1;
|
||||
|
||||
// *** MISC
|
||||
// This is the actual aspect ratio of your screen (no relation with the resolution!!). Set 1.7777 if you got a 16/9 screen for instance
|
||||
ScreenAspectRatio = 0.0;
|
||||
ForceDXTC = 1; // Enable/Disable DXTC.
|
||||
DivideTextureSizeBy2= 0; // Divide texture size
|
||||
DisableVtxProgram = 0; // Disable Hardware Vertex Program.
|
||||
DisableVtxAGP = 0; // Disable Hardware Vertex AGP.
|
||||
DisableTextureShdr = 0; // Disable Hardware Texture Shader.
|
||||
HDEntityTexture = 1;
|
||||
HDTextureInstalled = 1;
|
||||
WaitVBL = 0; // 0 or 1 to wait Vertical Sync.
|
||||
|
||||
//////////////////
|
||||
// GAME OPTIONS //
|
||||
//////////////////
|
||||
SelectWithRClick = 1;
|
||||
DisplayWeapons = 1;
|
||||
RotKeySpeedMax = 2.0;
|
||||
RotKeySpeedMax_min = 1.0;
|
||||
RotKeySpeedMax_max = 4.0;
|
||||
RotKeySpeedMin = 1.0;
|
||||
RotKeySpeedMin_min = 0.5;
|
||||
RotKeySpeedMin_max = 2.0;
|
||||
RotAccel = 3.0;
|
||||
FollowOnAtk = 0;
|
||||
AtkOnSelect = 0;
|
||||
ZCPacsPrim = "gen_bt_col_ext.pacs_prim";
|
||||
|
||||
/////////////////
|
||||
// PREFERENCES //
|
||||
/////////////////
|
||||
FPV = 0; // FPV(First Person View) : default is false (Third Person View).
|
||||
CameraHeight = 2.2; // Camera Height (in meter) from the ground (for the Third Person View).
|
||||
CameraDistance = 3.0; // Camera Distance(in meter) from the user (for the Third Person View).
|
||||
CameraDistStep = 1.0;
|
||||
CameraDistMin = 1.0;
|
||||
CameraDistMax = 25.0;
|
||||
CameraAccel = 5.0;
|
||||
CameraSpeedMin = 2.0;
|
||||
CameraSpeedMax = 100.0;
|
||||
CameraResetSpeed = 10.0; // Speed in radian/s
|
||||
|
||||
// Values for UI Scale
|
||||
InterfaceScale = 1.0;
|
||||
InterfaceScale_min = 0.8;
|
||||
InterfaceScale_max = 2.0;
|
||||
InterfaceScale_step = 0.05;
|
||||
|
||||
// Enable biliner filtering for UI textures
|
||||
// Texture atlas needs to be generated with border duplication
|
||||
// or there will be visible texture bleeding
|
||||
BilinearUI = 1;
|
||||
|
||||
// Default values for map
|
||||
MaxMapScale = 2.0;
|
||||
R2EDMaxMapScale = 8.0;
|
||||
|
||||
//////////////////
|
||||
// SOUND CONFIG //
|
||||
//////////////////
|
||||
SoundForceSoftwareBuffer= 1;
|
||||
SoundOn = 1;
|
||||
UseEax = 0;
|
||||
|
||||
MaxTrack = 32;
|
||||
MaxTrack_min = 4;
|
||||
MaxTrack_max = 32;
|
||||
MaxTrack_step = 4;
|
||||
|
||||
// This is the volume for "InGame" sound FXs
|
||||
SoundSFXVolume = 1.0;
|
||||
SoundSFXVolume_min = 0.0;
|
||||
SoundSFXVolume_max = 1.0;
|
||||
SoundSFXVolume_step = 0.001;
|
||||
|
||||
// This is volume for "InGame" music. Does not affect the MP3 player
|
||||
SoundGameMusicVolume = 0.5;
|
||||
SoundGameMusicVolume_min = 0.0;
|
||||
SoundGameMusicVolume_max = 1.0;
|
||||
SoundGameMusicVolume_step = 0.001;
|
||||
|
||||
// MP3 player
|
||||
MediaPlayerDirectory = "music";
|
||||
MediaPlayerAutoPlay = false;
|
||||
|
||||
// MISC
|
||||
PreDataPath = { "user", "patch", "data", "examples" };
|
||||
NeedComputeVS = 0;
|
||||
|
||||
NegFiltersDebug = {"Update DB", "Reading:", "Read Value :", "impulseCallBack", "CLIMPD:", "LNET" };
|
||||
NegFiltersInfo = { "CLIMPD:", "CPath::lookup" , "LNET" };
|
||||
NegFiltersWarning = { "'basics.Equipment Slot'.", "_usercolor.tga", "PACS" };
|
||||
|
||||
// Big screen shot
|
||||
ScreenShotWidth = 0;
|
||||
ScreenShotHeight = 0;
|
||||
ScreenShotFullDetail = 1; // 1 to switch full detail mode for characters (both standard & big screenshots)
|
||||
|
||||
// Read : "ID", "R G B A MODE [FX]"
|
||||
SystemInfoColors =
|
||||
{
|
||||
// OLD STUFF Here for compatibility
|
||||
"RG", "0 0 0 255 normal", // Black to see when there is an error
|
||||
"BC", "0 0 0 255 normal", // Black to see when there is an error
|
||||
"JA", "0 0 0 255 normal", // Black to see when there is an error
|
||||
"BL", "0 0 0 255 normal", // Black to see when there is an error
|
||||
"VE", "0 0 0 255 normal", // Black to see when there is an error
|
||||
"VI", "0 0 0 255 normal", // Black to see when there is an error
|
||||
|
||||
// NEW System Info Categories
|
||||
"SYS", "255 255 255 255 normal", // Default system messages
|
||||
"BC", "255 255 255 255 centeraround", // Broadcast messages
|
||||
"TAGBC", "255 255 255 255 centeraround", // Taged broadcast messages : color should remain white as some word are tagged
|
||||
"XP", "255 255 64 255 over", // XP Gain
|
||||
"SP", "255 255 64 255 over", // SP Gain
|
||||
"TTL", "255 255 64 255 over", // Title
|
||||
"TSK", "255 255 255 255 over", // Task
|
||||
"ZON", "255 255 255 255 center", // Zone
|
||||
"DG", "255 0 0 255 normal", // Damage to me
|
||||
"DMG", "255 0 0 255 normal", // Damage to me
|
||||
"DGP", "200 0 0 255 normal", // Damage to me from player
|
||||
"DGM", "255 128 64 255 normal", // Damage from me
|
||||
"MIS", "150 150 150 255 normal", // The opponent misses
|
||||
"MISM", "255 255 255 255 normal", // I miss
|
||||
"ITM", "0 200 0 255 over", // Item
|
||||
"ITMO", "170 170 255 255 overonly", // Item other in group
|
||||
"ITMF", "220 0 220 255 over", // Item failed
|
||||
"SPL", "50 50 250 255 normal", // Spell to me
|
||||
"SPLM", "50 150 250 255 normal", // Spell from me
|
||||
"EMT", "255 150 150 255 normal", // Emote
|
||||
"MTD", "255 255 0 255 over", // Message Of The Day
|
||||
"FORLD","64 255 64 255 overonly", // Forage Locate Deposit
|
||||
"CHK", "255 120 60 255 center", // Tous ce qui ne remplit pas une condition
|
||||
"CHKCB","255 255 0 255 center", // Tous ce qui ne remplit pas une condition en combat (trop loin, cible invalide, pas assez de mana, etc.)
|
||||
"PVPTM","255 120 60 255 overonly", // PVP timer
|
||||
"THM", "255 255 64 255 over misc_levelup.ps", // Thema finished
|
||||
"AMB", "255 255 64 255 center", // Ambiance
|
||||
"ISE", "192 208 255 255 normal", // Item special effect
|
||||
"ISE2", "192 208 255 255 center", // Item special effect with center text (for effects without flying text)
|
||||
"OSM", "128 160 255 255 center", // Outpost state message
|
||||
"AROUND","255 255 0 255 around", // Only in around channel
|
||||
"R2_INVITE","0 255 0 255 around", // Ring invitation
|
||||
};
|
||||
|
||||
loadingTexts = {
|
||||
"0", "132", "30 144 255 255", "18", "uiS2",
|
||||
"0", "105", "255 188 0 255", "14", "uiS2E0",
|
||||
"0", "65", "255 255 255 255", "12", "NEWS"
|
||||
};
|
||||
|
||||
DisplayMissingAnimFile = 0;
|
||||
|
||||
LoadingStringCount = 54;
|
||||
|
||||
|
||||
// Some R2 parameters ...
|
||||
|
||||
R2Mode = 1;
|
||||
R2EDEnabled = 1;
|
||||
R2EDExtendedDebug = 0;
|
||||
R2EDLightPalette = 0;
|
||||
R2ClientGw = "r2linux01";
|
||||
LoadLuaDebugger = 0;
|
||||
CheckR2ScenarioMD5 = 1;
|
||||
LevelDesignEnabled = 0;
|
||||
|
||||
DmCameraDistMax = 25;
|
||||
DmRun = 20;
|
||||
DmWalk = 6;
|
||||
|
||||
R2EDReloadFiles = {
|
||||
"r2ed.xml",
|
||||
"r2_basic_bricks.lua",
|
||||
"r2_components.lua",
|
||||
"r2_core.lua",
|
||||
"r2_features_default.lua",
|
||||
"r2_features_fauna.lua",
|
||||
"r2_features_npc_groups.lua",
|
||||
"r2_palette.lua",
|
||||
"r2_scenario.lua",
|
||||
"r2_ui.lua"
|
||||
};
|
||||
|
||||
XMLInterfaceFiles = {
|
||||
"config.xml",
|
||||
"widgets.xml",
|
||||
"webig_widgets.xml",
|
||||
"appzone.xml",
|
||||
"player.xml",
|
||||
"inventory.xml",
|
||||
"interaction.xml",
|
||||
"phrase.xml",
|
||||
"harvest.xml",
|
||||
"macros.xml",
|
||||
"info_player.xml",
|
||||
"outpost.xml",
|
||||
"guild.xml",
|
||||
"taskbar.xml",
|
||||
"game_config.xml",
|
||||
"game_context_menu.xml",
|
||||
"player_trade.xml",
|
||||
"bot_chat_v4.xml",
|
||||
"compass.xml",
|
||||
"map.xml",
|
||||
"hierarchy.xml",
|
||||
"reset.xml",
|
||||
"actions.xml",
|
||||
"help.xml",
|
||||
"encyclopedia.xml",
|
||||
"commands.xml",
|
||||
"commands2.xml",
|
||||
"ring_access_point_filter.xml",
|
||||
"ring_window.xml",
|
||||
"bg_downloader.xml",
|
||||
"ryzhome_toolbar.xml",
|
||||
"tp_interface.xml"
|
||||
};
|
||||
|
||||
XMLR2EDInterfaceFiles =
|
||||
{
|
||||
"r2ed.xml",
|
||||
"r2_triggers.xml",
|
||||
"r2_logic_entities.xml",
|
||||
"r2ed_acts.xml",
|
||||
"r2ed_scenario.xml",
|
||||
"r2ed_connect.xml"
|
||||
};
|
||||
|
||||
FogDistAndDepthLookupBias = 20; // bias for lookup of fog distance and depth
|
||||
|
||||
|
||||
// Hardware cursor textures
|
||||
// These will be extracted from the corresponding packed ui .tga files when they are loaded
|
||||
// *
|
||||
// * individual .tga files for hardware cursor bitmap not looked for, and not supported yet
|
||||
HardwareCursors =
|
||||
{
|
||||
"curs_can_pan.tga",
|
||||
"curs_can_pan_dup.tga",
|
||||
"curs_create.tga",
|
||||
"curs_create_multi.tga",
|
||||
"curs_create_vertex_invalid.tga",
|
||||
"curs_default.tga",
|
||||
"curs_dup.tga",
|
||||
"curs_L.tga",
|
||||
"curs_M.tga",
|
||||
"curs_pan.tga",
|
||||
"curs_pan_dup.tga",
|
||||
"curs_pick.tga",
|
||||
"curs_pick_dup.tga",
|
||||
"curs_R.tga",
|
||||
"curs_resize_BL_TR.tga",
|
||||
"curs_resize_BR_TL.tga",
|
||||
"curs_resize_LR.tga",
|
||||
"curs_resize_TB.tga",
|
||||
"curs_rotate.tga",
|
||||
"curs_scale.tga",
|
||||
"curs_stop.tga",
|
||||
"text_cursor.tga",
|
||||
"r2_hand_can_pan.tga",
|
||||
"r2_hand_pan.tga",
|
||||
"r2ed_tool_can_pick.tga",
|
||||
"r2ed_tool_can_rotate.tga",
|
||||
"r2ed_tool_pick.tga",
|
||||
"r2ed_tool_rotate.tga",
|
||||
"r2ed_tool_rotating.tga"
|
||||
};
|
||||
|
||||
Loading_BG = "new_loading_bg.tga"; // Default name for the loading background file.
|
||||
Launch_BG = "new_launcher_bg.tga"; // Default name for the launch background file.
|
||||
TeleportKami_BG = "new_teleport_kami_bg.tga";
|
||||
TeleportKaravan_BG = "new_teleport_caravan_bg.tga";
|
||||
Elevator_BG = "new_elevator_bg.tga"; // Default name for the loading background file.
|
||||
ResurectKami_BG = "new_resurect_kami_bg.tga";
|
||||
ResurectKaravan_BG = "new_resurect_caravane_bg.tga";
|
||||
End_BG = "end_bg.tga"; // Default name for the last background file.
|
||||
|
||||
ScenarioSavePath = "./my_scenarios/";
|
||||
|
||||
// list ofpredefined keyset
|
||||
// name will be looked up in the translation file by searching 'uiCP_KeysetName_" + id
|
||||
// tooltip will be looked up in the translation file by searching 'uiCP_KeysetTooltip_" + id
|
||||
// 'bi.' stands for built-in
|
||||
// note : we add a dot in the name to be sure that there cannot be a conflict with character keyset name
|
||||
BuiltInKeySets =
|
||||
{
|
||||
"", // default ryzom keyboard layout
|
||||
"bi.zqsd", // european keyboard fps displacement style (NB : don't change this layout name, ryzom will automatically select it if keyboard is french or belgian)
|
||||
"bi.wasd", // english keyboard fps displacement style (NB : don't change this layout name, ryzom will automatically select it if keyboard is not french nor belgian)
|
||||
"bi.wow_alike" // 'world of warcraft' like keyboard style. (NB : not available for ring)
|
||||
};
|
||||
|
||||
// "Newbie Training", "Story Telling", "Mistery", "Hack & Slash", "Guild Training", "Other"
|
||||
ScenarioTypes = {"so_newbie_training","so_story_telling","so_mistery","so_hack_slash","so_guild_training","so_other"};
|
||||
|
||||
ScenarioLanguages = {"fr","de","en","other_lang"};
|
||||
|
||||
// Map each language to a forum help page
|
||||
HelpPages =
|
||||
{
|
||||
"fr=https://app.ryzom.com/app_forum/index.php?page=topic/view/6629/1&lang=fr",
|
||||
"en=https://app.ryzom.com/app_forum/index.php?page=topic/view/6629/1&lang=en",
|
||||
"wk=https://app.ryzom.com/app_forum/index.php?page=topic/view/6629/1",
|
||||
"de=https://app.ryzom.com/app_forum/index.php?page=topic/view/6629/1&lang=de",
|
||||
"es=https://app.ryzom.com/app_forum/index.php?page=topic/view/6629/1&lang=es",
|
||||
"ru=https://app.ryzom.com/app_forum/index.php?page=topic/view/6629/1&lang=ru"
|
||||
};
|
||||
|
||||
// User created channel
|
||||
ChannelIgnoreFilter =
|
||||
{
|
||||
"Uni Français", "English Uni", "Español Uni",
|
||||
"русский Uni", "Deutsch Uni", "Karavan",
|
||||
"Kami", "Ranger", "Marauder", "Fyros",
|
||||
"Matis", "Tryker", "Zoraï"
|
||||
};
|
||||
|
||||
// interval in minutes for webig notify thread to run
|
||||
WebIgNotifInterval = 10;
|
||||
WebIgMainDomain = "app.ryzom.com";
|
||||
WebIgTrustedDomains = {
|
||||
"api.ryzom.com", "app.ryzom.com"
|
||||
};
|
||||
PatchletUrl = "http://app.ryzom.com/app_patchlet/index.php?patch=preload";
|
||||
|
||||
SelectedSlot = 0;
|
||||
|
||||
BuildName = "RELEASE_HEAD";
|
@ -1,118 +0,0 @@
|
||||
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
|
||||
// Copyright (C) 2010 Winch Gate Property Limited
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
|
||||
|
||||
#include "stdpch.h"
|
||||
#include "dbgroup_list_sheet_bonus_malus.h"
|
||||
#include "interface_manager.h"
|
||||
|
||||
|
||||
using namespace std;
|
||||
using namespace NLMISC;
|
||||
|
||||
// ***************************************************************************
|
||||
#define DISABLE_LEAF "DISABLED"
|
||||
|
||||
NLMISC_REGISTER_OBJECT(CViewBase, CDBGroupListSheetBonusMalus, std::string, "list_sheet_bonus_malus");
|
||||
|
||||
// ***************************************************************************
|
||||
CDBGroupListSheetBonusMalus::CDBGroupListSheetBonusMalus(const TCtorParam ¶m)
|
||||
: CDBGroupListSheet(param)
|
||||
{
|
||||
_TextId= -1;
|
||||
|
||||
// want leave space between controls in the list
|
||||
// Yoyo: I think it's better like this, + this is important for space consideration and because of XPCat/PVPOutpost
|
||||
//_ListLeaveSpace= false;
|
||||
}
|
||||
|
||||
|
||||
// ***************************************************************************
|
||||
bool CDBGroupListSheetBonusMalus::parse (xmlNodePtr cur, CInterfaceGroup *parentGroup)
|
||||
{
|
||||
CInterfaceManager *pIM= CInterfaceManager::getInstance();
|
||||
|
||||
if(!CDBGroupListSheet::parse(cur, parentGroup))
|
||||
return false;
|
||||
|
||||
// read the texture
|
||||
CXMLAutoPtr prop;
|
||||
prop = (char*) xmlGetProp( cur, (xmlChar*)"disable_texture" );
|
||||
if (prop)
|
||||
{
|
||||
CInterfaceManager *pIM = CInterfaceManager::getInstance();
|
||||
CViewRenderer &rVR = *CViewRenderer::getInstance();
|
||||
_TextId= rVR.getTextureIdFromName ((const char *)prop);
|
||||
}
|
||||
|
||||
// get the Node leaves to be tested each frame
|
||||
uint i= 0;
|
||||
for(;;)
|
||||
{
|
||||
string db= toString("%s:%d:" DISABLE_LEAF, _DbBranchName.c_str(), i);
|
||||
CCDBNodeLeaf *node= NLGUI::CDBManager::getInstance()->getDbProp(db, false);
|
||||
if(!node)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
_DisableStates.push_back(node);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// ***************************************************************************
|
||||
void CDBGroupListSheetBonusMalus::draw ()
|
||||
{
|
||||
CDBGroupListSheet::draw();
|
||||
|
||||
// CInterfaceManager *pIM= CInterfaceManager::getInstance();
|
||||
// CViewRenderer &rVR= *CViewRenderer::getInstance();
|
||||
|
||||
// sint32 drl= getRenderLayer()+1;
|
||||
|
||||
// May draw disable bitmaps on the ctrl sheets if disabled.
|
||||
uint numCtrls= (uint)min(_SheetChildren.size(), _DisableStates.size());
|
||||
for(uint i=0;i<numCtrls;i++)
|
||||
{
|
||||
CDBCtrlSheet *ctrl= _SheetChildren[i]->Ctrl;
|
||||
// if the ctrl is displayed, and if the state is disabled
|
||||
if(ctrl->getActive())
|
||||
{
|
||||
if(_DisableStates[i]->getValue32()!=0)
|
||||
{
|
||||
ctrl->setGrayed(true);
|
||||
/*
|
||||
// YOYO: for now, don't display the gray bitmap. cross not cool.
|
||||
CRGBA crossColor= ctrl->getSheetColor();
|
||||
crossColor.A>>= 2;
|
||||
// Draw the disable bitmap on this control. +1 for the slot (ugly)
|
||||
rVR.drawRotFlipBitmap(drl, ctrl->getXReal()+1, ctrl->getYReal()+1,
|
||||
CCtrlSheetInfo::BrickSheetWidth, CCtrlSheetInfo::BrickSheetHeight, 0, 0, _TextId, crossColor);
|
||||
*/
|
||||
}
|
||||
else
|
||||
ctrl->setGrayed(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,686 +0,0 @@
|
||||
/* 7zMain.c - Test application for 7z Decoder
|
||||
2019-02-02 : Igor Pavlov : Public domain */
|
||||
|
||||
#include "Precomp.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "CpuArch.h"
|
||||
|
||||
#include "7z.h"
|
||||
#include "7zAlloc.h"
|
||||
#include "7zBuf.h"
|
||||
#include "7zCrc.h"
|
||||
#include "7zFile.h"
|
||||
#include "7zVersion.h"
|
||||
|
||||
#ifndef USE_WINDOWS_FILE
|
||||
/* for mkdir */
|
||||
#ifdef _WIN32
|
||||
#include <direct.h>
|
||||
#else
|
||||
#include <sys/stat.h>
|
||||
#include <errno.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#define kInputBufSize ((size_t)1 << 18)
|
||||
|
||||
static const ISzAlloc g_Alloc = { SzAlloc, SzFree };
|
||||
|
||||
|
||||
static void Print(const char *s)
|
||||
{
|
||||
fputs(s, stdout);
|
||||
}
|
||||
|
||||
|
||||
static int Buf_EnsureSize(CBuf *dest, size_t size)
|
||||
{
|
||||
if (dest->size >= size)
|
||||
return 1;
|
||||
Buf_Free(dest, &g_Alloc);
|
||||
return Buf_Create(dest, size, &g_Alloc);
|
||||
}
|
||||
|
||||
#ifndef _WIN32
|
||||
#define _USE_UTF8
|
||||
#endif
|
||||
|
||||
/* #define _USE_UTF8 */
|
||||
|
||||
#ifdef _USE_UTF8
|
||||
|
||||
#define _UTF8_START(n) (0x100 - (1 << (7 - (n))))
|
||||
|
||||
#define _UTF8_RANGE(n) (((UInt32)1) << ((n) * 5 + 6))
|
||||
|
||||
#define _UTF8_HEAD(n, val) ((Byte)(_UTF8_START(n) + (val >> (6 * (n)))))
|
||||
#define _UTF8_CHAR(n, val) ((Byte)(0x80 + (((val) >> (6 * (n))) & 0x3F)))
|
||||
|
||||
static size_t Utf16_To_Utf8_Calc(const UInt16 *src, const UInt16 *srcLim)
|
||||
{
|
||||
size_t size = 0;
|
||||
for (;;)
|
||||
{
|
||||
UInt32 val;
|
||||
if (src == srcLim)
|
||||
return size;
|
||||
|
||||
size++;
|
||||
val = *src++;
|
||||
|
||||
if (val < 0x80)
|
||||
continue;
|
||||
|
||||
if (val < _UTF8_RANGE(1))
|
||||
{
|
||||
size++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (val >= 0xD800 && val < 0xDC00 && src != srcLim)
|
||||
{
|
||||
UInt32 c2 = *src;
|
||||
if (c2 >= 0xDC00 && c2 < 0xE000)
|
||||
{
|
||||
src++;
|
||||
size += 3;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
size += 2;
|
||||
}
|
||||
}
|
||||
|
||||
static Byte *Utf16_To_Utf8(Byte *dest, const UInt16 *src, const UInt16 *srcLim)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
UInt32 val;
|
||||
if (src == srcLim)
|
||||
return dest;
|
||||
|
||||
val = *src++;
|
||||
|
||||
if (val < 0x80)
|
||||
{
|
||||
*dest++ = (char)val;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (val < _UTF8_RANGE(1))
|
||||
{
|
||||
dest[0] = _UTF8_HEAD(1, val);
|
||||
dest[1] = _UTF8_CHAR(0, val);
|
||||
dest += 2;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (val >= 0xD800 && val < 0xDC00 && src != srcLim)
|
||||
{
|
||||
UInt32 c2 = *src;
|
||||
if (c2 >= 0xDC00 && c2 < 0xE000)
|
||||
{
|
||||
src++;
|
||||
val = (((val - 0xD800) << 10) | (c2 - 0xDC00)) + 0x10000;
|
||||
dest[0] = _UTF8_HEAD(3, val);
|
||||
dest[1] = _UTF8_CHAR(2, val);
|
||||
dest[2] = _UTF8_CHAR(1, val);
|
||||
dest[3] = _UTF8_CHAR(0, val);
|
||||
dest += 4;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
dest[0] = _UTF8_HEAD(2, val);
|
||||
dest[1] = _UTF8_CHAR(1, val);
|
||||
dest[2] = _UTF8_CHAR(0, val);
|
||||
dest += 3;
|
||||
}
|
||||
}
|
||||
|
||||
static SRes Utf16_To_Utf8Buf(CBuf *dest, const UInt16 *src, size_t srcLen)
|
||||
{
|
||||
size_t destLen = Utf16_To_Utf8_Calc(src, src + srcLen);
|
||||
destLen += 1;
|
||||
if (!Buf_EnsureSize(dest, destLen))
|
||||
return SZ_ERROR_MEM;
|
||||
*Utf16_To_Utf8(dest->data, src, src + srcLen) = 0;
|
||||
return SZ_OK;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
static SRes Utf16_To_Char(CBuf *buf, const UInt16 *s
|
||||
#ifndef _USE_UTF8
|
||||
, UINT codePage
|
||||
#endif
|
||||
)
|
||||
{
|
||||
unsigned len = 0;
|
||||
for (len = 0; s[len] != 0; len++);
|
||||
|
||||
#ifndef _USE_UTF8
|
||||
{
|
||||
unsigned size = len * 3 + 100;
|
||||
if (!Buf_EnsureSize(buf, size))
|
||||
return SZ_ERROR_MEM;
|
||||
{
|
||||
buf->data[0] = 0;
|
||||
if (len != 0)
|
||||
{
|
||||
char defaultChar = '_';
|
||||
BOOL defUsed;
|
||||
unsigned numChars = 0;
|
||||
numChars = WideCharToMultiByte(codePage, 0, (LPCWSTR)s, len, (char *)buf->data, size, &defaultChar, &defUsed);
|
||||
if (numChars == 0 || numChars >= size)
|
||||
return SZ_ERROR_FAIL;
|
||||
buf->data[numChars] = 0;
|
||||
}
|
||||
return SZ_OK;
|
||||
}
|
||||
}
|
||||
#else
|
||||
return Utf16_To_Utf8Buf(buf, s, len);
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
#ifndef USE_WINDOWS_FILE
|
||||
static UINT g_FileCodePage = CP_ACP;
|
||||
#endif
|
||||
#define MY_FILE_CODE_PAGE_PARAM ,g_FileCodePage
|
||||
#else
|
||||
#define MY_FILE_CODE_PAGE_PARAM
|
||||
#endif
|
||||
|
||||
static WRes MyCreateDir(const UInt16 *name)
|
||||
{
|
||||
#ifdef USE_WINDOWS_FILE
|
||||
|
||||
return CreateDirectoryW((LPCWSTR)name, NULL) ? 0 : GetLastError();
|
||||
|
||||
#else
|
||||
|
||||
CBuf buf;
|
||||
WRes res;
|
||||
Buf_Init(&buf);
|
||||
RINOK(Utf16_To_Char(&buf, name MY_FILE_CODE_PAGE_PARAM));
|
||||
|
||||
res =
|
||||
#ifdef _WIN32
|
||||
_mkdir((const char *)buf.data)
|
||||
#else
|
||||
mkdir((const char *)buf.data, 0777)
|
||||
#endif
|
||||
== 0 ? 0 : errno;
|
||||
Buf_Free(&buf, &g_Alloc);
|
||||
return res;
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
static WRes OutFile_OpenUtf16(CSzFile *p, const UInt16 *name)
|
||||
{
|
||||
#ifdef USE_WINDOWS_FILE
|
||||
return OutFile_OpenW(p, (LPCWSTR)name);
|
||||
#else
|
||||
CBuf buf;
|
||||
WRes res;
|
||||
Buf_Init(&buf);
|
||||
RINOK(Utf16_To_Char(&buf, name MY_FILE_CODE_PAGE_PARAM));
|
||||
res = OutFile_Open(p, (const char *)buf.data);
|
||||
Buf_Free(&buf, &g_Alloc);
|
||||
return res;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
static SRes PrintString(const UInt16 *s)
|
||||
{
|
||||
CBuf buf;
|
||||
SRes res;
|
||||
Buf_Init(&buf);
|
||||
res = Utf16_To_Char(&buf, s
|
||||
#ifndef _USE_UTF8
|
||||
, CP_OEMCP
|
||||
#endif
|
||||
);
|
||||
if (res == SZ_OK)
|
||||
Print((const char *)buf.data);
|
||||
Buf_Free(&buf, &g_Alloc);
|
||||
return res;
|
||||
}
|
||||
|
||||
static void UInt64ToStr(UInt64 value, char *s, int numDigits)
|
||||
{
|
||||
char temp[32];
|
||||
int pos = 0;
|
||||
do
|
||||
{
|
||||
temp[pos++] = (char)('0' + (unsigned)(value % 10));
|
||||
value /= 10;
|
||||
}
|
||||
while (value != 0);
|
||||
|
||||
for (numDigits -= pos; numDigits > 0; numDigits--)
|
||||
*s++ = ' ';
|
||||
|
||||
do
|
||||
*s++ = temp[--pos];
|
||||
while (pos);
|
||||
*s = '\0';
|
||||
}
|
||||
|
||||
static char *UIntToStr(char *s, unsigned value, int numDigits)
|
||||
{
|
||||
char temp[16];
|
||||
int pos = 0;
|
||||
do
|
||||
temp[pos++] = (char)('0' + (value % 10));
|
||||
while (value /= 10);
|
||||
|
||||
for (numDigits -= pos; numDigits > 0; numDigits--)
|
||||
*s++ = '0';
|
||||
|
||||
do
|
||||
*s++ = temp[--pos];
|
||||
while (pos);
|
||||
*s = '\0';
|
||||
return s;
|
||||
}
|
||||
|
||||
static void UIntToStr_2(char *s, unsigned value)
|
||||
{
|
||||
s[0] = (char)('0' + (value / 10));
|
||||
s[1] = (char)('0' + (value % 10));
|
||||
}
|
||||
|
||||
#define PERIOD_4 (4 * 365 + 1)
|
||||
#define PERIOD_100 (PERIOD_4 * 25 - 1)
|
||||
#define PERIOD_400 (PERIOD_100 * 4 + 1)
|
||||
|
||||
static void ConvertFileTimeToString(const CNtfsFileTime *nt, char *s)
|
||||
{
|
||||
unsigned year, mon, hour, min, sec;
|
||||
Byte ms[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
|
||||
unsigned t;
|
||||
UInt32 v;
|
||||
UInt64 v64 = nt->Low | ((UInt64)nt->High << 32);
|
||||
v64 /= 10000000;
|
||||
sec = (unsigned)(v64 % 60); v64 /= 60;
|
||||
min = (unsigned)(v64 % 60); v64 /= 60;
|
||||
hour = (unsigned)(v64 % 24); v64 /= 24;
|
||||
|
||||
v = (UInt32)v64;
|
||||
|
||||
year = (unsigned)(1601 + v / PERIOD_400 * 400);
|
||||
v %= PERIOD_400;
|
||||
|
||||
t = v / PERIOD_100; if (t == 4) t = 3; year += t * 100; v -= t * PERIOD_100;
|
||||
t = v / PERIOD_4; if (t == 25) t = 24; year += t * 4; v -= t * PERIOD_4;
|
||||
t = v / 365; if (t == 4) t = 3; year += t; v -= t * 365;
|
||||
|
||||
if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0))
|
||||
ms[1] = 29;
|
||||
for (mon = 0;; mon++)
|
||||
{
|
||||
unsigned d = ms[mon];
|
||||
if (v < d)
|
||||
break;
|
||||
v -= d;
|
||||
}
|
||||
s = UIntToStr(s, year, 4); *s++ = '-';
|
||||
UIntToStr_2(s, mon + 1); s[2] = '-'; s += 3;
|
||||
UIntToStr_2(s, (unsigned)v + 1); s[2] = ' '; s += 3;
|
||||
UIntToStr_2(s, hour); s[2] = ':'; s += 3;
|
||||
UIntToStr_2(s, min); s[2] = ':'; s += 3;
|
||||
UIntToStr_2(s, sec); s[2] = 0;
|
||||
}
|
||||
|
||||
static void PrintLF()
|
||||
{
|
||||
Print("\n");
|
||||
}
|
||||
|
||||
static void PrintError(char *s)
|
||||
{
|
||||
Print("\nERROR: ");
|
||||
Print(s);
|
||||
PrintLF();
|
||||
}
|
||||
|
||||
static void GetAttribString(UInt32 wa, BoolInt isDir, char *s)
|
||||
{
|
||||
#ifdef USE_WINDOWS_FILE
|
||||
s[0] = (char)(((wa & FILE_ATTRIBUTE_DIRECTORY) != 0 || isDir) ? 'D' : '.');
|
||||
s[1] = (char)(((wa & FILE_ATTRIBUTE_READONLY ) != 0) ? 'R': '.');
|
||||
s[2] = (char)(((wa & FILE_ATTRIBUTE_HIDDEN ) != 0) ? 'H': '.');
|
||||
s[3] = (char)(((wa & FILE_ATTRIBUTE_SYSTEM ) != 0) ? 'S': '.');
|
||||
s[4] = (char)(((wa & FILE_ATTRIBUTE_ARCHIVE ) != 0) ? 'A': '.');
|
||||
s[5] = 0;
|
||||
#else
|
||||
s[0] = (char)(((wa & (1 << 4)) != 0 || isDir) ? 'D' : '.');
|
||||
s[1] = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
// #define NUM_PARENTS_MAX 128
|
||||
|
||||
int MY_CDECL main(int numargs, char *args[])
|
||||
{
|
||||
ISzAlloc allocImp;
|
||||
ISzAlloc allocTempImp;
|
||||
|
||||
CFileInStream archiveStream;
|
||||
CLookToRead2 lookStream;
|
||||
CSzArEx db;
|
||||
SRes res;
|
||||
UInt16 *temp = NULL;
|
||||
size_t tempSize = 0;
|
||||
// UInt32 parents[NUM_PARENTS_MAX];
|
||||
|
||||
Print("\n7z Decoder " MY_VERSION_CPU " : " MY_COPYRIGHT_DATE "\n\n");
|
||||
|
||||
if (numargs == 1)
|
||||
{
|
||||
Print(
|
||||
"Usage: 7zDec <command> <archive_name>\n\n"
|
||||
"<Commands>\n"
|
||||
" e: Extract files from archive (without using directory names)\n"
|
||||
" l: List contents of archive\n"
|
||||
" t: Test integrity of archive\n"
|
||||
" x: eXtract files with full paths\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (numargs < 3)
|
||||
{
|
||||
PrintError("incorrect command");
|
||||
return 1;
|
||||
}
|
||||
|
||||
#if defined(_WIN32) && !defined(USE_WINDOWS_FILE) && !defined(UNDER_CE)
|
||||
g_FileCodePage = AreFileApisANSI() ? CP_ACP : CP_OEMCP;
|
||||
#endif
|
||||
|
||||
|
||||
allocImp = g_Alloc;
|
||||
allocTempImp = g_Alloc;
|
||||
|
||||
#ifdef UNDER_CE
|
||||
if (InFile_OpenW(&archiveStream.file, L"\test.7z"))
|
||||
#else
|
||||
if (InFile_Open(&archiveStream.file, args[2]))
|
||||
#endif
|
||||
{
|
||||
PrintError("can not open input file");
|
||||
return 1;
|
||||
}
|
||||
|
||||
FileInStream_CreateVTable(&archiveStream);
|
||||
LookToRead2_CreateVTable(&lookStream, False);
|
||||
lookStream.buf = NULL;
|
||||
|
||||
res = SZ_OK;
|
||||
|
||||
{
|
||||
lookStream.buf = (Byte *)ISzAlloc_Alloc(&allocImp, kInputBufSize);
|
||||
if (!lookStream.buf)
|
||||
res = SZ_ERROR_MEM;
|
||||
else
|
||||
{
|
||||
lookStream.bufSize = kInputBufSize;
|
||||
lookStream.realStream = &archiveStream.vt;
|
||||
LookToRead2_Init(&lookStream);
|
||||
}
|
||||
}
|
||||
|
||||
CrcGenerateTable();
|
||||
|
||||
SzArEx_Init(&db);
|
||||
|
||||
if (res == SZ_OK)
|
||||
{
|
||||
res = SzArEx_Open(&db, &lookStream.vt, &allocImp, &allocTempImp);
|
||||
}
|
||||
|
||||
if (res == SZ_OK)
|
||||
{
|
||||
char *command = args[1];
|
||||
int listCommand = 0, testCommand = 0, fullPaths = 0;
|
||||
|
||||
if (strcmp(command, "l") == 0) listCommand = 1;
|
||||
else if (strcmp(command, "t") == 0) testCommand = 1;
|
||||
else if (strcmp(command, "e") == 0) { }
|
||||
else if (strcmp(command, "x") == 0) { fullPaths = 1; }
|
||||
else
|
||||
{
|
||||
PrintError("incorrect command");
|
||||
res = SZ_ERROR_FAIL;
|
||||
}
|
||||
|
||||
if (res == SZ_OK)
|
||||
{
|
||||
UInt32 i;
|
||||
|
||||
/*
|
||||
if you need cache, use these 3 variables.
|
||||
if you use external function, you can make these variable as static.
|
||||
*/
|
||||
UInt32 blockIndex = 0xFFFFFFFF; /* it can have any value before first call (if outBuffer = 0) */
|
||||
Byte *outBuffer = 0; /* it must be 0 before first call for each new archive. */
|
||||
size_t outBufferSize = 0; /* it can have any value before first call (if outBuffer = 0) */
|
||||
|
||||
for (i = 0; i < db.NumFiles; i++)
|
||||
{
|
||||
size_t offset = 0;
|
||||
size_t outSizeProcessed = 0;
|
||||
// const CSzFileItem *f = db.Files + i;
|
||||
size_t len;
|
||||
unsigned isDir = SzArEx_IsDir(&db, i);
|
||||
if (listCommand == 0 && isDir && !fullPaths)
|
||||
continue;
|
||||
len = SzArEx_GetFileNameUtf16(&db, i, NULL);
|
||||
// len = SzArEx_GetFullNameLen(&db, i);
|
||||
|
||||
if (len > tempSize)
|
||||
{
|
||||
SzFree(NULL, temp);
|
||||
tempSize = len;
|
||||
temp = (UInt16 *)SzAlloc(NULL, tempSize * sizeof(temp[0]));
|
||||
if (!temp)
|
||||
{
|
||||
res = SZ_ERROR_MEM;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
SzArEx_GetFileNameUtf16(&db, i, temp);
|
||||
/*
|
||||
if (SzArEx_GetFullNameUtf16_Back(&db, i, temp + len) != temp)
|
||||
{
|
||||
res = SZ_ERROR_FAIL;
|
||||
break;
|
||||
}
|
||||
*/
|
||||
|
||||
if (listCommand)
|
||||
{
|
||||
char attr[8], s[32], t[32];
|
||||
UInt64 fileSize;
|
||||
|
||||
GetAttribString(SzBitWithVals_Check(&db.Attribs, i) ? db.Attribs.Vals[i] : 0, isDir, attr);
|
||||
|
||||
fileSize = SzArEx_GetFileSize(&db, i);
|
||||
UInt64ToStr(fileSize, s, 10);
|
||||
|
||||
if (SzBitWithVals_Check(&db.MTime, i))
|
||||
ConvertFileTimeToString(&db.MTime.Vals[i], t);
|
||||
else
|
||||
{
|
||||
size_t j;
|
||||
for (j = 0; j < 19; j++)
|
||||
t[j] = ' ';
|
||||
t[j] = '\0';
|
||||
}
|
||||
|
||||
Print(t);
|
||||
Print(" ");
|
||||
Print(attr);
|
||||
Print(" ");
|
||||
Print(s);
|
||||
Print(" ");
|
||||
res = PrintString(temp);
|
||||
if (res != SZ_OK)
|
||||
break;
|
||||
if (isDir)
|
||||
Print("/");
|
||||
PrintLF();
|
||||
continue;
|
||||
}
|
||||
|
||||
Print(testCommand ?
|
||||
"Testing ":
|
||||
"Extracting ");
|
||||
res = PrintString(temp);
|
||||
if (res != SZ_OK)
|
||||
break;
|
||||
|
||||
if (isDir)
|
||||
Print("/");
|
||||
else
|
||||
{
|
||||
res = SzArEx_Extract(&db, &lookStream.vt, i,
|
||||
&blockIndex, &outBuffer, &outBufferSize,
|
||||
&offset, &outSizeProcessed,
|
||||
&allocImp, &allocTempImp);
|
||||
if (res != SZ_OK)
|
||||
break;
|
||||
}
|
||||
|
||||
if (!testCommand)
|
||||
{
|
||||
CSzFile outFile;
|
||||
size_t processedSize;
|
||||
size_t j;
|
||||
UInt16 *name = (UInt16 *)temp;
|
||||
const UInt16 *destPath = (const UInt16 *)name;
|
||||
|
||||
for (j = 0; name[j] != 0; j++)
|
||||
if (name[j] == '/')
|
||||
{
|
||||
if (fullPaths)
|
||||
{
|
||||
name[j] = 0;
|
||||
MyCreateDir(name);
|
||||
name[j] = CHAR_PATH_SEPARATOR;
|
||||
}
|
||||
else
|
||||
destPath = name + j + 1;
|
||||
}
|
||||
|
||||
if (isDir)
|
||||
{
|
||||
MyCreateDir(destPath);
|
||||
PrintLF();
|
||||
continue;
|
||||
}
|
||||
else if (OutFile_OpenUtf16(&outFile, destPath))
|
||||
{
|
||||
PrintError("can not open output file");
|
||||
res = SZ_ERROR_FAIL;
|
||||
break;
|
||||
}
|
||||
|
||||
processedSize = outSizeProcessed;
|
||||
|
||||
if (File_Write(&outFile, outBuffer + offset, &processedSize) != 0 || processedSize != outSizeProcessed)
|
||||
{
|
||||
PrintError("can not write output file");
|
||||
res = SZ_ERROR_FAIL;
|
||||
break;
|
||||
}
|
||||
|
||||
#ifdef USE_WINDOWS_FILE
|
||||
{
|
||||
FILETIME mtime, ctime;
|
||||
FILETIME *mtimePtr = NULL;
|
||||
FILETIME *ctimePtr = NULL;
|
||||
|
||||
if (SzBitWithVals_Check(&db.MTime, i))
|
||||
{
|
||||
const CNtfsFileTime *t = &db.MTime.Vals[i];
|
||||
mtime.dwLowDateTime = (DWORD)(t->Low);
|
||||
mtime.dwHighDateTime = (DWORD)(t->High);
|
||||
mtimePtr = &mtime;
|
||||
}
|
||||
if (SzBitWithVals_Check(&db.CTime, i))
|
||||
{
|
||||
const CNtfsFileTime *t = &db.CTime.Vals[i];
|
||||
ctime.dwLowDateTime = (DWORD)(t->Low);
|
||||
ctime.dwHighDateTime = (DWORD)(t->High);
|
||||
ctimePtr = &ctime;
|
||||
}
|
||||
if (mtimePtr || ctimePtr)
|
||||
SetFileTime(outFile.handle, ctimePtr, NULL, mtimePtr);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (File_Close(&outFile))
|
||||
{
|
||||
PrintError("can not close output file");
|
||||
res = SZ_ERROR_FAIL;
|
||||
break;
|
||||
}
|
||||
|
||||
#ifdef USE_WINDOWS_FILE
|
||||
if (SzBitWithVals_Check(&db.Attribs, i))
|
||||
{
|
||||
UInt32 attrib = db.Attribs.Vals[i];
|
||||
/* p7zip stores posix attributes in high 16 bits and adds 0x8000 as marker.
|
||||
We remove posix bits, if we detect posix mode field */
|
||||
if ((attrib & 0xF0000000) != 0)
|
||||
attrib &= 0x7FFF;
|
||||
SetFileAttributesW((LPCWSTR)destPath, attrib);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
PrintLF();
|
||||
}
|
||||
ISzAlloc_Free(&allocImp, outBuffer);
|
||||
}
|
||||
}
|
||||
|
||||
SzFree(NULL, temp);
|
||||
SzArEx_Free(&db, &allocImp);
|
||||
ISzAlloc_Free(&allocImp, lookStream.buf);
|
||||
|
||||
File_Close(&archiveStream.file);
|
||||
|
||||
if (res == SZ_OK)
|
||||
{
|
||||
Print("\nEverything is Ok\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (res == SZ_ERROR_UNSUPPORTED)
|
||||
PrintError("decoder doesn't support this archive");
|
||||
else if (res == SZ_ERROR_MEM)
|
||||
PrintError("can not allocate memory");
|
||||
else if (res == SZ_ERROR_CRC)
|
||||
PrintError("CRC error");
|
||||
else
|
||||
{
|
||||
char s[32];
|
||||
UInt64ToStr(res, s, 0);
|
||||
PrintError(s);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
FILE(GLOB LIB_SRC *.cpp *.h)
|
||||
|
||||
LIST(REMOVE_ITEM LIB_SRC ${CMAKE_CURRENT_SOURCE_DIR}/7zMain.cpp)
|
||||
|
||||
NL_TARGET_LIB(ryzom_sevenzip ${LIB_SRC})
|
||||
TARGET_LINK_LIBRARIES(ryzom_sevenzip ${NELMISC_LIBRARIES})
|
||||
NL_DEFAULT_PROPS(ryzom_sevenzip "Ryzom, Library: Seven Zip")
|
||||
NL_ADD_RUNTIME_FLAGS(ryzom_sevenzip)
|
||||
NL_ADD_LIB_SUFFIX(ryzom_sevenzip)
|
||||
|
||||
ADD_DEFINITIONS(-DUNICODE -D_UNICODE -D_7ZIP_PPMD_SUPPPORT)
|
||||
|
||||
IF(WITH_PCH)
|
||||
ADD_NATIVE_PRECOMPILED_HEADER(ryzom_sevenzip ${CMAKE_CURRENT_SOURCE_DIR}/Precomp.h ${CMAKE_CURRENT_SOURCE_DIR}/Precomp.cpp)
|
||||
ENDIF()
|
||||
|
||||
IF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC)
|
||||
INSTALL(TARGETS ryzom_sevenzip LIBRARY DESTINATION ${RYZOM_LIB_PREFIX} ARCHIVE DESTINATION ${RYZOM_LIB_PREFIX} COMPONENT libraries)
|
||||
ENDIF()
|
||||
|
||||
IF(WITH_RYZOM_TOOLS)
|
||||
ADD_EXECUTABLE(7zDec ${CMAKE_CURRENT_SOURCE_DIR}/7zMain.cpp)
|
||||
|
||||
TARGET_LINK_LIBRARIES(7zDec ryzom_sevenzip)
|
||||
NL_DEFAULT_PROPS(7zDec "Ryzom, Tools, Misc: Seven Zip Decoder")
|
||||
NL_ADD_RUNTIME_FLAGS(7zDec)
|
||||
|
||||
INSTALL(TARGETS 7zDec RUNTIME DESTINATION ${RYZOM_BIN_PREFIX} COMPONENT tools)
|
||||
ENDIF()
|
@ -1,4 +0,0 @@
|
||||
/* Precomp.c -- StdAfx
|
||||
2013-01-21 : Igor Pavlov : Public domain */
|
||||
|
||||
#include "Precomp.h"
|
@ -1,19 +0,0 @@
|
||||
/* Precomp.h -- StdAfx
|
||||
2013-11-12 : Igor Pavlov : Public domain */
|
||||
|
||||
#ifndef __7Z_PRECOMP_H
|
||||
#define __7Z_PRECOMP_H
|
||||
|
||||
#if defined(_MSC_VER) && defined(_DEBUG)
|
||||
#define _CRTDBG_MAP_ALLOC
|
||||
#include <stdlib.h>
|
||||
#include <crtdbg.h>
|
||||
#define DEBUG_NEW new(_NORMAL_BLOCK, __FILE__, __LINE__)
|
||||
#endif
|
||||
|
||||
#define _7ZIP_ST
|
||||
|
||||
#include "Compiler.h"
|
||||
/* #include "7zTypes.h" */
|
||||
|
||||
#endif
|
@ -1,22 +0,0 @@
|
||||
|
||||
|
||||
This is an extract of some files from the 7zip SDK.
|
||||
|
||||
At time of writing (2007-01-12) there is no dll or library project in the 7zip
|
||||
distribution (lzma443), so I build a custum project and copied in the 7zip
|
||||
files needed to do 7zip/lzma extraction.
|
||||
|
||||
To update this library, download the latest 7zip SDK and copy all file from
|
||||
<lzma-sdk>/C/7zip/Archive/7z_C
|
||||
for the 7zip archive file format support
|
||||
|
||||
and the 3 files needed from
|
||||
<lzma-sdk>/C/7zip/Compress/LZMA_C
|
||||
(lzmaDecode.h lzmaDecode.cpp lzmaTypes.h)
|
||||
for the lzma decrompression lib.
|
||||
|
||||
|
||||
NB : If callback support must be enabled, add "#define _LZMA_IN_CB" in
|
||||
7zTypes.h
|
||||
|
||||
|
@ -1,43 +0,0 @@
|
||||
*HASH_VALUE bodypartID name pro daa ia da p pia pda description
|
||||
_ACB9BC721BA65099 HHead Kopf deinen den ein der Köpfe die
|
||||
_278A7C5D654814CD HChest Oberkörper deinen den ein der Oberkörper die
|
||||
_A2D940906B29B889 HArms Arme deine die die Arme die
|
||||
_B1CAFC85DB767C9C HHands Hände deine die die Hände die
|
||||
_20A8389BAC987C9F HLegs Beine deine die die Beine die
|
||||
_E18820962C586494 HFeet Füße deine die die Füße die
|
||||
_ACB9BC7B1B375099 QHead Kopf deinen den ein der Köpfe die
|
||||
_E80BB4A21A9838B5 QBody Körper deinen den ein der Körper die
|
||||
_C96F0919D2F8DC71 QFrontPaws Vorderbeine deinen die die Vorderbeine die
|
||||
_08A1A8FEABC3CD11 QFrontHooves Vorderbeine deine die die Vorderbeine die
|
||||
_23B95F02A87957B0 QRearPaws Hinterbeine deine die die Hinterbeine die
|
||||
_D880990C5BE9DCB7 QRearHooves Hinterbeine deine die die Hinterbeine die
|
||||
_2836645DDE8874AD LKHead Kopf deinen den ein der Köpfe die
|
||||
_ED86C05FE298A4B9 LKBody Körper deinen den ein der Körper die
|
||||
_39BFC0EBE486B512 LKFrontPaws1 Vorderbeine deine die die Vorderbeine die
|
||||
_79BFC0EBE486B512 LKFrontPaws2 Vorderbeine deine die die Vorderbeine die
|
||||
_D92BB508D8F884A6 LKRearPaws1 Hinterbeine deine die die Hinterbeine die
|
||||
_D93BB508D8F884A6 LKRearPaws2 Hinterbeine deine die die Hinterbeine die
|
||||
_283664575C8874AD FKHead Kopf deinen den ein der Köpfe die
|
||||
_ED86C0596098A4B9 FKBody Körper deinen den ein der Körper die
|
||||
_DBBA7473640310B0 FKPaws1 Beine deine die die Beine die
|
||||
_1BBA7473641310B0 FKPaws2 Beine deine die die Beine die
|
||||
_66B6A47A4A7ADCC2 FKWings1 Flügel deine die die Flügel die
|
||||
_66B6A47ACA7ADCC2 FKWings2 Flügel deine die die Flügel die
|
||||
_ACB9BC701B865099 FHead Kopf deinen den ein der Köpfe die
|
||||
_E80BB4971AE738B5 FBody Körper deinen den ein der Körper die
|
||||
_C40D15A82A36DF2C FFrontFins1 Vorderflossen deine die die Vorderflossen die
|
||||
_C41D15A82A36DF2C FFrontFins2 Vorderflossen deine die die Vorderflossen die
|
||||
_67B624EBAAF630A4 FRearFins1 Hinterflossen deine die die Hinterflossen die
|
||||
_67B628EBAAF630A4 FRearFins2 Hinterflossen deine die die Hinterflossen die
|
||||
_ACB9BC6C1B465099 BHead Kopf deinen den ein der Köpfe die
|
||||
_E80BB4931AA738B5 BBody Körper deinen den ein der Körper die
|
||||
_25897F8F25594780 BFeet1 Füße deine die die Füße die
|
||||
_2589838F25594B80 BFeet2 Füße deine die die Füße die
|
||||
_2C68746BA436D3C2 BWings1 Flügel deine die die Flügel die
|
||||
_2C68746BA446D7C2 BWings2 Flügel deine die die Flügel die
|
||||
_8061E6E18C3EA521 PUpperTrunk Stiel deinen den ein die Stiele die
|
||||
_ECEA3087A666CCC3 Ptrunk Rüssel deinen den ein die Rüssel die
|
||||
_E7469C4D9B5A0C9D PLeaves1 Blatt dein das ein die Blätter die
|
||||
_E7469C4DDB5A0C9D PLeaves2 Blatt dein das ein die Blätter die
|
||||
_C3EE9906771FB524 PLowerTrunk Stamm deinen den ein die Stämme die
|
||||
_DFA67A5CC7DECDE6 PVisibleRoots Wurzel deine die eine die Wurzeln die
|
@ -1,43 +0,0 @@
|
||||
*HASH_VALUE bodypartID name ia da p pia pda description
|
||||
_ACB9BC721BA65099 HHead head a the heads \d the
|
||||
_278A7C5D654814CD HChest chest a the chests \d the
|
||||
_A2D940906B29B889 HArms arms \d the arms \d the
|
||||
_B1CAFC85DB767C9C HHands hands \d the hands \d the
|
||||
_20A8389BAC987C9F HLegs legs \d the legs \d the
|
||||
_E18820962C586494 HFeet feet \d the feet \d the
|
||||
_ACB9BC7B1B375099 QHead head a the heads \d the
|
||||
_E80BB4A21A9838B5 QBody body a the bodies \d the
|
||||
_C96F0919D2F8DC71 QFrontPaws forelegs \d the forelegs \d the
|
||||
_08A1A8FEABC3CD11 QFrontHooves forelegs \d the forelegs \d the
|
||||
_23B95F02A87957B0 QRearPaws hind legs \d the hind legs \d the
|
||||
_D880990C5BE9DCB7 QRearHooves hind legs \d the hind legs \d the
|
||||
_2836645DDE8874AD LKHead head a the heads \d the
|
||||
_ED86C05FE298A4B9 LKBody body a the bodies \d the
|
||||
_39BFC0EBE486B512 LKFrontPaws1 forelegs \d the forelegs \d the
|
||||
_79BFC0EBE486B512 LKFrontPaws2 forelegs \d the forelegs \d the
|
||||
_D92BB508D8F884A6 LKRearPaws1 hind legs \d the hind legs \d the
|
||||
_D93BB508D8F884A6 LKRearPaws2 hind legs \d the hind legs \d the
|
||||
_283664575C8874AD FKHead head a the heads \d the
|
||||
_ED86C0596098A4B9 FKBody body a the bodies \d the
|
||||
_DBBA7473640310B0 FKPaws1 legs \d the legs \d the
|
||||
_1BBA7473641310B0 FKPaws2 legs \d the legs \d the
|
||||
_66B6A47A4A7ADCC2 FKWings1 wings \d the wings \d the
|
||||
_66B6A47ACA7ADCC2 FKWings2 wings \d the wings \d the
|
||||
_ACB9BC701B865099 FHead head a the heads \d the
|
||||
_E80BB4971AE738B5 FBody body a the bodies \d the
|
||||
_C40D15A82A36DF2C FFrontFins1 fore fins \d the fore fins \d the
|
||||
_C41D15A82A36DF2C FFrontFins2 fore fins \d the fore fins \d the
|
||||
_67B624EBAAF630A4 FRearFins1 hind fins \d the hind fins \d the
|
||||
_67B628EBAAF630A4 FRearFins2 hind fins \d the hind fins \d the
|
||||
_ACB9BC6C1B465099 BHead head a the heads \d the
|
||||
_E80BB4931AA738B5 BBody body a the bodies \d the
|
||||
_25897F8F25594780 BFeet1 feet \d the feet \d the
|
||||
_2589838F25594B80 BFeet2 feet \d the feet \d the
|
||||
_2C68746BA436D3C2 BWings1 wings \d the wings \d the
|
||||
_2C68746BA446D7C2 BWings2 wings \d the wings \d the
|
||||
_8061E6E18C3EA521 PUpperTrunk upper trunk an the upper trunks \d the
|
||||
_ECEA3087A666CCC3 Ptrunk trunk a the trunks \d the
|
||||
_E7469C4D9B5A0C9D PLeaves1 leaf a the leaves \d the
|
||||
_E7469C4DDB5A0C9D PLeaves2 leaf a the leaves \d the
|
||||
_C3EE9906771FB524 PLowerTrunk lower trunk a the lower trunks \d the
|
||||
_DFA67A5CC7DECDE6 PVisibleRoots visible root a the visible roots \d the
|
@ -1,43 +0,0 @@
|
||||
*HASH_VALUE bodypartID name ia da p pia pda description
|
||||
_ACB9BC721BA65099 HHead cabeza una la cabezas las
|
||||
_278A7C5D654814CD HChest torso un el torsos los
|
||||
_A2D940906B29B889 HArms brazo un el brazos los
|
||||
_B1CAFC85DB767C9C HHands mano una la manos las
|
||||
_20A8389BAC987C9F HLegs pierna una la piernas las
|
||||
_E18820962C586494 HFeet pie un el pies los
|
||||
_ACB9BC7B1B375099 QHead cabeza una la cabezas las
|
||||
_E80BB4A21A9838B5 QBody cuerpo un el cuerpos los
|
||||
_C96F0919D2F8DC71 QFrontPaws pata delantera una la patas delanteras las
|
||||
_08A1A8FEABC3CD11 QFrontHooves pezuña delantera una la pezuñas delanteras las
|
||||
_23B95F02A87957B0 QRearPaws pata trasera una la patas traseras las
|
||||
_D880990C5BE9DCB7 QRearHooves pezuña trasera una la pezuñas traseras las
|
||||
_2836645DDE8874AD LKHead cabeza una la cabezas las
|
||||
_ED86C05FE298A4B9 LKBody cuerpo un el cuerpos los
|
||||
_39BFC0EBE486B512 LKFrontPaws1 pata delantera una la patas delanteras las
|
||||
_79BFC0EBE486B512 LKFrontPaws2 pata delantera una la pata delanteras las
|
||||
_D92BB508D8F884A6 LKRearPaws1 pata trasera una la patas traseras las
|
||||
_D93BB508D8F884A6 LKRearPaws2 pata trasera una la patas traseras las
|
||||
_283664575C8874AD FKHead cabeza una la cabezas las
|
||||
_ED86C0596098A4B9 FKBody cuerpo un el cuerpos los
|
||||
_DBBA7473640310B0 FKPaws1 pierna una la piernas las
|
||||
_1BBA7473641310B0 FKPaws2 pierna una la piernas las
|
||||
_66B6A47A4A7ADCC2 FKWings1 ala un el alas las
|
||||
_66B6A47ACA7ADCC2 FKWings2 ala un el alas las
|
||||
_ACB9BC701B865099 FHead cabeza una la cabezas las
|
||||
_E80BB4971AE738B5 FBody cuerpo un el cuerpos los
|
||||
_C40D15A82A36DF2C FFrontFins1 aleta delantera una la aletas delanteras las
|
||||
_C41D15A82A36DF2C FFrontFins2 aleta delantera una la aletas delanteras las
|
||||
_67B624EBAAF630A4 FRearFins1 aleta trasera una la aletas traseras las
|
||||
_67B628EBAAF630A4 FRearFins2 aleta trasera una la aletas traseras las
|
||||
_ACB9BC6C1B465099 BHead cabeza una la cabezas las
|
||||
_E80BB4931AA738B5 BBody cuerpo un el cuerpos los
|
||||
_25897F8F25594780 BFeet1 pie un el pies los
|
||||
_2589838F25594B80 BFeet2 pie un el pies los
|
||||
_2C68746BA436D3C2 BWings1 ala un el alas las
|
||||
_2C68746BA446D7C2 BWings2 ala un el alas las
|
||||
_8061E6E18C3EA521 PUpperTrunk tronco superior un el troncos superiores los
|
||||
_ECEA3087A666CCC3 Ptrunk tronco un el troncos los
|
||||
_E7469C4D9B5A0C9D PLeaves1 hoja una la hojas las
|
||||
_E7469C4DDB5A0C9D PLeaves2 hoja una la hojas las
|
||||
_C3EE9906771FB524 PLowerTrunk tronco inferior un el troncos inferiores los
|
||||
_DFA67A5CC7DECDE6 PVisibleRoots raíz visible una la raíces visibles las
|
@ -1,43 +0,0 @@
|
||||
*HASH_VALUE bodypartID name ia da p pia pda description
|
||||
_ACB9BC721BA65099 HHead tête une la têtes des les
|
||||
_278A7C5D654814CD HChest poitrine une la poitrines des les
|
||||
_A2D940906B29B889 HArms bras un le bras des les
|
||||
_B1CAFC85DB767C9C HHands main une la mains des les
|
||||
_20A8389BAC987C9F HLegs jambe une la jambes des les
|
||||
_E18820962C586494 HFeet pied un le pieds des les
|
||||
_ACB9BC7B1B375099 QHead tête une la têtes des les
|
||||
_E80BB4A21A9838B5 QBody corps un le corps des les
|
||||
_C96F0919D2F8DC71 QFrontPaws patte avant une la pattes avant des les
|
||||
_08A1A8FEABC3CD11 QFrontHooves sabot avant un le sabots avant des les
|
||||
_23B95F02A87957B0 QRearPaws patte arrière une la pattes arrière des les
|
||||
_D880990C5BE9DCB7 QRearHooves sabot arrière un le sabots arrière des les
|
||||
_2836645DDE8874AD LKHead tête une la têtes des les
|
||||
_ED86C05FE298A4B9 LKBody corps un le corps des les
|
||||
_39BFC0EBE486B512 LKFrontPaws1 patte avant une la pattes avant des les
|
||||
_79BFC0EBE486B512 LKFrontPaws2 patte avant une la pattes avant des les
|
||||
_D92BB508D8F884A6 LKRearPaws1 patte arrière une la pattes arrière des les
|
||||
_D93BB508D8F884A6 LKRearPaws2 patte arrière une la pattes arrière des les
|
||||
_283664575C8874AD FKHead tête une la têtes des les
|
||||
_ED86C0596098A4B9 FKBody corps un le corps des les
|
||||
_DBBA7473640310B0 FKPaws1 patte une la pattes des les
|
||||
_1BBA7473641310B0 FKPaws2 patte une la pattes des les
|
||||
_66B6A47A4A7ADCC2 FKWings1 aile une l'\d ailes des les
|
||||
_66B6A47ACA7ADCC2 FKWings2 aile une l'\d ailes des les
|
||||
_ACB9BC701B865099 FHead tête une la têtes des les
|
||||
_E80BB4971AE738B5 FBody corps un le corps des les
|
||||
_C40D15A82A36DF2C FFrontFins1 nageoire avant une la nageoires avant des les
|
||||
_C41D15A82A36DF2C FFrontFins2 nageoire avant une la nageoires avant des les
|
||||
_67B624EBAAF630A4 FRearFins1 nageoire arrière une la nageoires arrière des les
|
||||
_67B628EBAAF630A4 FRearFins2 nageoire arrière une la nageoires arrière des les
|
||||
_ACB9BC6C1B465099 BHead tête une la têtes des les
|
||||
_E80BB4931AA738B5 BBody corps un le corps des les
|
||||
_25897F8F25594780 BFeet1 pied un le pieds des les
|
||||
_2589838F25594B80 BFeet2 pied un le pieds des les
|
||||
_2C68746BA436D3C2 BWings1 aile un l'\d ailes des les
|
||||
_2C68746BA446D7C2 BWings2 aile un l'\d ailes des les
|
||||
_8061E6E18C3EA521 PUpperTrunk tige supérieure une la tiges supérieures des les
|
||||
_ECEA3087A666CCC3 Ptrunk tige une la tiges des les
|
||||
_E7469C4D9B5A0C9D PLeaves1 feuille une la feuilles des les
|
||||
_E7469C4DDB5A0C9D PLeaves2 feuille une la feuilles des les
|
||||
_C3EE9906771FB524 PLowerTrunk tige inférieure une la tiges inférieures des les
|
||||
_DFA67A5CC7DECDE6 PVisibleRoots racine visible une la racines visibles des les
|
@ -1,43 +0,0 @@
|
||||
*HASH_VALUE bodypartID name p description prp
|
||||
_ACB9BC721BA65099 HHead голове головы по
|
||||
_278A7C5D654814CD HChest грудь груди в
|
||||
_A2D940906B29B889 HArms предплечью предплечья по
|
||||
_B1CAFC85DB767C9C HHands руке руки по
|
||||
_20A8389BAC987C9F HLegs ноге ноги по
|
||||
_E18820962C586494 HFeet ступне ступни по
|
||||
_ACB9BC7B1B375099 QHead голове головы по
|
||||
_E80BB4A21A9838B5 QBody туловище туловища в
|
||||
_C96F0919D2F8DC71 QFrontPaws передней лапе передние лапы по
|
||||
_08A1A8FEABC3CD11 QFrontHooves передней ноге передние ноги по
|
||||
_23B95F02A87957B0 QRearPaws задней лапе задние лапы по
|
||||
_D880990C5BE9DCB7 QRearHooves задней ноге задние ноги по
|
||||
_2836645DDE8874AD LKHead голове головы по
|
||||
_ED86C05FE298A4B9 LKBody туловище туловища по
|
||||
_39BFC0EBE486B512 LKFrontPaws1 передней лапе передние лапы по
|
||||
_79BFC0EBE486B512 LKFrontPaws2 передней лапе передние лапы по
|
||||
_D92BB508D8F884A6 LKRearPaws1 задней лапе задние лапы по
|
||||
_D93BB508D8F884A6 LKRearPaws2 задняя лапе задние лапы по
|
||||
_283664575C8874AD FKHead голове головы по
|
||||
_ED86C0596098A4B9 FKBody туловище туловища в
|
||||
_DBBA7473640310B0 FKPaws1 лапе лапы по
|
||||
_1BBA7473641310B0 FKPaws2 ноге ноги по
|
||||
_66B6A47A4A7ADCC2 FKWings1 крылу крылья по
|
||||
_66B6A47ACA7ADCC2 FKWings2 крылу крылья по
|
||||
_ACB9BC701B865099 FHead голове головы по
|
||||
_E80BB4971AE738B5 FBody туловище туловища в
|
||||
_C40D15A82A36DF2C FFrontFins1 переднему плавнику передние плавники по
|
||||
_C41D15A82A36DF2C FFrontFins2 переднему плавнику передние плавники по
|
||||
_67B624EBAAF630A4 FRearFins1 заднему плавнику задние плавники по
|
||||
_67B628EBAAF630A4 FRearFins2 заднему плавнику задние плавники по
|
||||
_ACB9BC6C1B465099 BHead голове головы по
|
||||
_E80BB4931AA738B5 BBody туловище туловища в
|
||||
_25897F8F25594780 BFeet1 ноге ноги по
|
||||
_2589838F25594B80 BFeet2 ноге ноги по
|
||||
_2C68746BA436D3C2 BWings1 крылу крылья по
|
||||
_2C68746BA446D7C2 BWings2 крылу крылья по
|
||||
_8061E6E18C3EA521 PUpperTrunk верху стебля верхние стебли по
|
||||
_ECEA3087A666CCC3 Ptrunk стеблю стебли по
|
||||
_E7469C4D9B5A0C9D PLeaves1 листу листья по
|
||||
_E7469C4DDB5A0C9D PLeaves2 листу листья по
|
||||
_C3EE9906771FB524 PLowerTrunk низу стебля нижние стебли по
|
||||
_DFA67A5CC7DECDE6 PVisibleRoots корень корни в
|
@ -1,43 +0,0 @@
|
||||
*HASH_VALUE bodypartID name ia da p pia pda description
|
||||
_ACB9BC721BA65099 HHead head an the heads the
|
||||
_278A7C5D654814CD HChest chest a the chests the
|
||||
_A2D940906B29B889 HArms arms the arms the
|
||||
_B1CAFC85DB767C9C HHands hands the hands the
|
||||
_20A8389BAC987C9F HLegs legs the legs the
|
||||
_E18820962C586494 HFeet feet the feet the
|
||||
_ACB9BC7B1B375099 QHead head an the heads the
|
||||
_E80BB4A21A9838B5 QBody body a the bodies the
|
||||
_C96F0919D2F8DC71 QFrontPaws front legs the front legs the
|
||||
_08A1A8FEABC3CD11 QFrontHooves front legs the front legs the
|
||||
_23B95F02A87957B0 QRearPaws rear legs the rear legs the
|
||||
_D880990C5BE9DCB7 QRearHooves rear legs the rear legs the
|
||||
_2836645DDE8874AD LKHead head an the heads the
|
||||
_ED86C05FE298A4B9 LKBody body a the bodies the
|
||||
_39BFC0EBE486B512 LKFrontPaws1 front legs the front legs the
|
||||
_79BFC0EBE486B512 LKFrontPaws2 front legs the front legs the
|
||||
_D92BB508D8F884A6 LKRearPaws1 rear legs the rear legs the
|
||||
_D93BB508D8F884A6 LKRearPaws2 rear legs the rear legs the
|
||||
_283664575C8874AD FKHead head an the heads the
|
||||
_ED86C0596098A4B9 FKBody body a the bodies the
|
||||
_DBBA7473640310B0 FKPaws1 legs the legs the
|
||||
_1BBA7473641310B0 FKPaws2 legs the legs the
|
||||
_66B6A47A4A7ADCC2 FKWings1 wings the wings the
|
||||
_66B6A47ACA7ADCC2 FKWings2 wings the wings the
|
||||
_ACB9BC701B865099 FHead head an the heads the
|
||||
_E80BB4971AE738B5 FBody body a the bodies the
|
||||
_C40D15A82A36DF2C FFrontFins1 front fins the front fins the
|
||||
_C41D15A82A36DF2C FFrontFins2 front fins the front fins the
|
||||
_67B624EBAAF630A4 FRearFins1 rear fins the rear fins the
|
||||
_67B628EBAAF630A4 FRearFins2 rear fins the rear fins the
|
||||
_ACB9BC6C1B465099 BHead head an the heads the
|
||||
_E80BB4931AA738B5 BBody body a the bodies the
|
||||
_25897F8F25594780 BFeet1 feet the feet the
|
||||
_2589838F25594B80 BFeet2 feet the feet the
|
||||
_2C68746BA436D3C2 BWings1 wings the wings the
|
||||
_2C68746BA446D7C2 BWings2 wings the wings the
|
||||
_CCD189BCC86AD11B PUpperTrunk Upper Trunk an the Upper Trunks the
|
||||
_F1EA0CAEA90BB4B5 Ptrunk Trunk a the Trunks the
|
||||
_60C70C89DC1C7CB6 PLeaves1 Leaf a the Leaves the
|
||||
_60C70C891C1C7CB6 PLeaves2 Leaf a the Leaves the
|
||||
_0CAF41BCC86AED1A PLowerTrunk Lower Trunk a the Lower Trunks the
|
||||
_DFA6C25CC7DECDE6 PVisibleRoots Visible Root a the Visible Roots the
|
@ -1,9 +0,0 @@
|
||||
*HASH_VALUE career ID name named * noms français ia da p pd pia pda
|
||||
_1700C956C37FB64F MeleeFighter Nahkämpfer Nahkämpfer Combattant Contact ein der Nahkämpfer die die
|
||||
_9720B95DC35FBA54 RangeFighter Fernkämpfer Fernkämpfer Combattant Distance ein der Fernkämpfer die die
|
||||
_D32171700AD23D57 AttackCaster Kampfmagier Kampfmagier Caster Attaque ein der Kampfmagier die die
|
||||
_9A511D668371AE04 BufferCaster Schutzmagier Schutzmagier Caster Buffer ein der Schutzmagier die die
|
||||
_1C01F56701816E0A HealerCaster Heiler Heiler Caster Healer ein der Heiler die die
|
||||
_A6473C7A6A380099 Ranger Ranger Ranger Ranger ein der Ranger die die
|
||||
_EA665D00EAE788B3 Shopkeeper Händler Händler Marchand ein der Händler die die
|
||||
_2D28B08D636AEC9E Artisan Handwerker Handwerker Crafter ein der Handwerker die die
|
@ -1,9 +0,0 @@
|
||||
*HASH_VALUE career ID name * noms français ia da p pia pda
|
||||
_1700C956C37FB64F MeleeFighter Melee Fighter Combattant Contact a the Melee Fighters the
|
||||
_9720B95DC35FBA54 RangeFighter Range Fighter Combattant Distance a the Range Fighters the
|
||||
_D32171700AD23D57 AttackCaster Attack Caster Caster Attaque an the Attack Casters the
|
||||
_9A511D668371AE04 BufferCaster Buffer Caster Caster Buffer a the Buffer Casters the
|
||||
_1C01F56701816E0A HealerCaster Healer Caster Caster Healer a the Healer Casters the
|
||||
_A6473C7A6A380099 Ranger Ranger Ranger a the Rangers the
|
||||
_EA665D00EAE788B3 Shopkeeper Merchant Marchand a the Merchants the
|
||||
_2D28B08D636AEC9E Artisan Crafter Crafter a the Crafters the
|
@ -1,9 +0,0 @@
|
||||
*HASH_VALUE career ID name * noms français ia da p pia pda
|
||||
_1700C956C37FB64F MeleeFighter Luchador Cuerpo a Cuerpo Combattant Contact un el Luchadores Cuerpo a Cuerpo unos los
|
||||
_9720B95DC35FBA54 RangeFighter Luchador a Distancia Combattant Distance un el Luchadores a Distancia unos los
|
||||
_D32171700AD23D57 AttackCaster Lanzador de Ataque Caster Attaque un el Lanzadores de Ataque unos los
|
||||
_9A511D668371AE04 BufferCaster Lanzador de Defensa Caster Buffer un el Lanzadores de Defensa unos los
|
||||
_1C01F56701816E0A HealerCaster Sanador Caster Healer un el Sanadores unos los
|
||||
_A6473C7A6A380099 Ranger Ranger un el Rangers unos los
|
||||
_EA665D00EAE788B3 Shopkeeper Tendero un el Tenderos unos los
|
||||
_2D28B08D636AEC9E Artisan Artesano un el Artesanos unos los
|
@ -1,9 +0,0 @@
|
||||
*HASH_VALUE career ID name * noms français ia da p pia pda
|
||||
_1700C956C37FB64F MeleeFighter Combattant de mêlée Combattant Contact un le Combattants de mêlée des les
|
||||
_9720B95DC35FBA54 RangeFighter Combattant à distance Combattant Distance un le Combattants à distance des les
|
||||
_D32171700AD23D57 AttackCaster Mage offensif Mage Attaque un le Mages offensifs des les
|
||||
_9A511D668371AE04 BufferCaster Mage protecteur Mage Protection un le Mages protecteurs des les
|
||||
_1C01F56701816E0A HealerCaster Guérisseur Guérisseur un le Guérisseurs des les
|
||||
_A6473C7A6A380099 Ranger Récolteur Ranger un le Récolteurs des les
|
||||
_EA665D00EAE788B3 Shopkeeper Marchand Marchand un le Marchands des les
|
||||
_2D28B08D636AEC9E Artisan Artisan Artisan un l'\d Artisans des les
|
@ -1,9 +0,0 @@
|
||||
*HASH_VALUE career ID name * noms français ia da p pia pda
|
||||
_1700C956C37FB64F MeleeFighter Melee Fighter Combattant Contact a the Melee Fighters the
|
||||
_9720B95DC35FBA54 RangeFighter Range Fighter Combattant Distance a the Range Fighters the
|
||||
_D32171700AD23D57 AttackCaster Attack Caster Caster Attaque an the Attack Casters the
|
||||
_9A511D668371AE04 BufferCaster Buffer Caster Caster Buffer a the Buffer Casters the
|
||||
_1C01F56701816E0A HealerCaster Healer Caster Caster Healer a the Healer Casters the
|
||||
_A6473C7A6A380099 Ranger Ranger Ranger a the Rangers the
|
||||
_EA665D00EAE788B3 Shopkeeper Merchant Marchand a the Merchants the
|
||||
_EC38FC89E25AE8AD Artisan Crafter Crafter a the Crafters the
|
@ -1,9 +0,0 @@
|
||||
*HASH_VALUE characteristic_ID name named
|
||||
_B009C46E316AACBF Constitution Konstitution Konstitution
|
||||
_661AAC8EE6098C96 Metabolism Metabolismus Metabolismus
|
||||
_E45ADC6364A9D4A6 Intelligence Intelligenz Intelligenz
|
||||
_E7DB9090281BA0A8 Wisdom Weisheit Weisheit
|
||||
_649C448C681C74B8 Strength Stärke Stärke
|
||||
_6A880849E7D8DC86 WellBalanced Gleichgewicht Gleichgewicht
|
||||
_ADB8DC9A6C5A10B6 Dexterity Geschicklichkeit Geschicklichkeit
|
||||
_6C18945C6C1894DC Will Wille Wille
|
@ -1,9 +0,0 @@
|
||||
*HASH_VALUE characteristic_ID name
|
||||
_B009C46E316AACBF Constitution constitution
|
||||
_661AAC8EE6098C96 Metabolism metabolism
|
||||
_E45ADC6364A9D4A6 Intelligence intelligence
|
||||
_E7DB9090281BA0A8 Wisdom wisdom
|
||||
_649C448C681C74B8 Strength strength
|
||||
_6A880849E7D8DC86 WellBalanced balance
|
||||
_ADB8DC9A6C5A10B6 Dexterity dexterity
|
||||
_6C18945C6C1894DC Will will
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue