Permalink
Browse files

Adding the framework of an Eclipse project and the data files for Wes…

…noth.
  • Loading branch information...
1 parent bb07eac commit 3de8e96b04dbba7a6f8fe6d3f22f8bf8af639bac @jnicholl jnicholl committed Oct 3, 2011
Showing with 19,796 additions and 0 deletions.
  1. +351 −0 .cproject
  2. +77 −0 .project
  3. +102 −0 blackberry-tablet.xml
  4. +344 −0 data/COPYING.txt
  5. +102 −0 data/_main.cfg
  6. +127 −0 data/advanced_preferences.cfg
  7. +21 −0 data/ai/ais/testing_ai_default.cfg
  8. +2 −0 data/ai/aliases/dev_singleplayer.cfg
  9. +2 −0 data/ai/aliases/idle.cfg
  10. +2 −0 data/ai/aliases/stable_singleplayer.cfg
  11. +21 −0 data/ai/dev/formula_ai.cfg
  12. +22 −0 data/ai/dev/formula_ai_poisoning.cfg
  13. +7 −0 data/ai/dev/idle_ai.cfg
  14. +26 −0 data/ai/dev/testing_recruiting.cfg
  15. +28 −0 data/ai/formula/level_up_attack_eval.fai
  16. +10 −0 data/ai/formula/level_up_attack_move.fai
  17. +107 −0 data/ai/formula/lib/map_evaluation.fai
  18. +32 −0 data/ai/formula/lib/recruitment.fai
  19. +52 −0 data/ai/formula/lib/util.fai
  20. +341 −0 data/ai/formula/new_recruitment.fai
  21. +114 −0 data/ai/formula/opening.fai
  22. +73 −0 data/ai/formula/patrol.fai
  23. +13 −0 data/ai/formula/poisoner_attack.fai
  24. +30 −0 data/ai/formula/poisoner_eval.fai
  25. +335 −0 data/ai/formula/recruitment.fai
  26. +15 −0 data/ai/formula/scouting_eval.fai
  27. +9 −0 data/ai/formula/scouting_move.fai
  28. +17 −0 data/ai/lua/stdlib.lua
  29. +29 −0 data/ai/maps/scenario-AI_Arena_small.map
  30. +38 −0 data/ai/maps/scenario-test_move_to_targets.map
  31. +83 −0 data/ai/scenarios/ai_arena_small/0001-healing.cfg
  32. +142 −0 data/ai/scenarios/ai_arena_small/0002-poisoning.cfg
  33. +37 −0 data/ai/scenarios/ai_arena_small/0003-simple_combat.cfg
  34. +81 −0 data/ai/scenarios/ai_arena_small/0004-filtered_combat.cfg
  35. +309 −0 data/ai/scenarios/scenario-AI_Arena_small.cfg
  36. +287 −0 data/ai/scenarios/scenario-lua-ai.cfg
  37. +96 −0 data/ai/scenarios/scenario-test_move_to_targets.cfg
  38. +85 −0 data/ai/utils/default_config.cfg
  39. +81 −0 data/campaigns/An_Orcish_Incursion/_main.cfg
  40. BIN data/campaigns/An_Orcish_Incursion/images/an-orcish-incursion-map.png
  41. BIN data/campaigns/An_Orcish_Incursion/images/campaign_image.png
  42. BIN data/campaigns/An_Orcish_Incursion/images/l10n/de/an-orcish-incursion-map--overlay.png
  43. BIN data/campaigns/An_Orcish_Incursion/images/l10n/es/an-orcish-incursion-map--overlay.png
  44. BIN data/campaigns/An_Orcish_Incursion/images/l10n/fr/an-orcish-incursion-map--overlay.png
  45. BIN data/campaigns/An_Orcish_Incursion/images/l10n/hu/an-orcish-incursion-map--overlay.png
  46. BIN data/campaigns/An_Orcish_Incursion/images/l10n/it/an-orcish-incursion-map--overlay.png
  47. BIN data/campaigns/An_Orcish_Incursion/images/l10n/lt/an-orcish-incursion-map--overlay.png
  48. BIN data/campaigns/An_Orcish_Incursion/images/l10n/ru/an-orcish-incursion-map--overlay.png
  49. BIN data/campaigns/An_Orcish_Incursion/images/l10n/sr/an-orcish-incursion-map--overlay.png
  50. BIN data/campaigns/An_Orcish_Incursion/images/l10n/sr@ijekavian/an-orcish-incursion-map--overlay.png
  51. BIN .../campaigns/An_Orcish_Incursion/images/l10n/sr@ijekavianlatin/an-orcish-incursion-map--overlay.png
  52. BIN data/campaigns/An_Orcish_Incursion/images/l10n/sr@latin/an-orcish-incursion-map--overlay.png
  53. BIN data/campaigns/An_Orcish_Incursion/images/l10n/zh_CN/an-orcish-incursion-map--overlay.png
  54. BIN data/campaigns/An_Orcish_Incursion/images/portraits/erlornas.png
  55. BIN data/campaigns/An_Orcish_Incursion/images/portraits/linaera.png
  56. BIN data/campaigns/An_Orcish_Incursion/images/portraits/lomarfel.png
  57. +25 −0 data/campaigns/An_Orcish_Incursion/maps/01_Defend_the_Forest.map
  58. +25 −0 data/campaigns/An_Orcish_Incursion/maps/02_Assassins.map
  59. +25 −0 data/campaigns/An_Orcish_Incursion/maps/03_Wasteland.map
  60. +25 −0 data/campaigns/An_Orcish_Incursion/maps/04_Valley_of_Trolls.map
  61. +25 −0 data/campaigns/An_Orcish_Incursion/maps/05_Linaera_the_Quick.map
  62. +25 −0 data/campaigns/An_Orcish_Incursion/maps/06_A_Detour_through_the_Swamp.map
  63. +25 −0 data/campaigns/An_Orcish_Incursion/maps/07_Showdown.map
  64. +252 −0 data/campaigns/An_Orcish_Incursion/scenarios/01_Defend_the_Forest.cfg
  65. +200 −0 data/campaigns/An_Orcish_Incursion/scenarios/02_Assassins.cfg
  66. +335 −0 data/campaigns/An_Orcish_Incursion/scenarios/03_Wasteland.cfg
  67. +345 −0 data/campaigns/An_Orcish_Incursion/scenarios/04_Valley_of_Trolls.cfg
  68. +322 −0 data/campaigns/An_Orcish_Incursion/scenarios/05_Linaera_the_Quick.cfg
  69. +178 −0 data/campaigns/An_Orcish_Incursion/scenarios/06_A_Detour_through_the_Swamp.cfg
  70. +280 −0 data/campaigns/An_Orcish_Incursion/scenarios/07_Showdown.cfg
  71. +303 −0 data/campaigns/An_Orcish_Incursion/utils/journey.cfg
  72. +208 −0 data/campaigns/Dead_Water/HISTORY
  73. +77 −0 data/campaigns/Dead_Water/_main.cfg
  74. BIN data/campaigns/Dead_Water/images/Background_Map.png
  75. BIN data/campaigns/Dead_Water/images/attacks/fist-merman.png
  76. BIN data/campaigns/Dead_Water/images/attacks/scepter.png
  77. BIN data/campaigns/Dead_Water/images/attacks/tail-merman.png
  78. BIN data/campaigns/Dead_Water/images/campaign_image.png
  79. BIN data/campaigns/Dead_Water/images/items/coal.png
  80. BIN data/campaigns/Dead_Water/images/items/large_cage.png
  81. BIN data/campaigns/Dead_Water/images/items/storm-trident-buried.png
  82. BIN data/campaigns/Dead_Water/images/items/underwater_rock1.png
  83. BIN data/campaigns/Dead_Water/images/overlays/arcane-icon.png
  84. BIN data/campaigns/Dead_Water/images/overlays/flame-sword-icon.png
  85. BIN data/campaigns/Dead_Water/images/overlays/loyal-icon.png
  86. BIN data/campaigns/Dead_Water/images/overlays/silver-ring-icon.png
  87. BIN data/campaigns/Dead_Water/images/overlays/storm-trident-icon.png
  88. BIN data/campaigns/Dead_Water/images/portraits/brawler.png
  89. BIN data/campaigns/Dead_Water/images/portraits/kai_krellis.png
  90. BIN data/campaigns/Dead_Water/images/portraits/kai_krellis2.png
  91. BIN data/campaigns/Dead_Water/images/portraits/transparent/brawler.png
  92. BIN data/campaigns/Dead_Water/images/portraits/transparent/caladon.png
  93. BIN data/campaigns/Dead_Water/images/portraits/transparent/cylanna.png
  94. BIN data/campaigns/Dead_Water/images/portraits/transparent/gwabbo.png
  95. BIN data/campaigns/Dead_Water/images/portraits/transparent/kai_krellis.png
  96. BIN data/campaigns/Dead_Water/images/portraits/transparent/kai_krellis2.png
  97. BIN data/campaigns/Dead_Water/images/units/merfolk/brawler-defend.png
  98. BIN data/campaigns/Dead_Water/images/units/merfolk/brawler-fist-1.png
  99. BIN data/campaigns/Dead_Water/images/units/merfolk/brawler-fist-2.png
  100. BIN data/campaigns/Dead_Water/images/units/merfolk/brawler-fist-3.png
  101. BIN data/campaigns/Dead_Water/images/units/merfolk/brawler-tail-land-1.png
  102. BIN data/campaigns/Dead_Water/images/units/merfolk/brawler-tail-land-2.png
  103. BIN data/campaigns/Dead_Water/images/units/merfolk/brawler-tail-land-3.png
  104. BIN data/campaigns/Dead_Water/images/units/merfolk/brawler-tail-land-4.png
  105. BIN data/campaigns/Dead_Water/images/units/merfolk/brawler-tail-land-5.png
  106. BIN data/campaigns/Dead_Water/images/units/merfolk/brawler.png
  107. BIN data/campaigns/Dead_Water/images/units/merfolk/child_king-attack-1.png
  108. BIN data/campaigns/Dead_Water/images/units/merfolk/child_king-attack-2.png
  109. BIN data/campaigns/Dead_Water/images/units/merfolk/child_king-attack-3.png
  110. BIN data/campaigns/Dead_Water/images/units/merfolk/child_king-attack-3n.png
  111. BIN data/campaigns/Dead_Water/images/units/merfolk/child_king-attack-4.png
  112. BIN data/campaigns/Dead_Water/images/units/merfolk/child_king-attack-5.png
  113. BIN data/campaigns/Dead_Water/images/units/merfolk/child_king-defend.png
  114. BIN data/campaigns/Dead_Water/images/units/merfolk/child_king.png
  115. BIN data/campaigns/Dead_Water/images/units/merfolk/citizen-defend.png
  116. BIN data/campaigns/Dead_Water/images/units/merfolk/citizen-fist-1.png
  117. BIN data/campaigns/Dead_Water/images/units/merfolk/citizen-fist-2.png
  118. BIN data/campaigns/Dead_Water/images/units/merfolk/citizen-fist-3.png
  119. BIN data/campaigns/Dead_Water/images/units/merfolk/citizen.png
  120. BIN data/campaigns/Dead_Water/images/units/merfolk/soldier_king-attack-1.png
  121. BIN data/campaigns/Dead_Water/images/units/merfolk/soldier_king-attack-2.png
  122. BIN data/campaigns/Dead_Water/images/units/merfolk/soldier_king-attack-3.png
  123. BIN data/campaigns/Dead_Water/images/units/merfolk/soldier_king-attack-4.png
  124. BIN data/campaigns/Dead_Water/images/units/merfolk/soldier_king-attack-4n.png
  125. BIN data/campaigns/Dead_Water/images/units/merfolk/soldier_king-attack-5.png
  126. BIN data/campaigns/Dead_Water/images/units/merfolk/soldier_king-attack-6.png
  127. BIN data/campaigns/Dead_Water/images/units/merfolk/soldier_king-attack-7.png
  128. BIN data/campaigns/Dead_Water/images/units/merfolk/soldier_king-attack-8.png
  129. BIN data/campaigns/Dead_Water/images/units/merfolk/soldier_king-defend.png
  130. BIN data/campaigns/Dead_Water/images/units/merfolk/soldier_king-leading.png
  131. BIN data/campaigns/Dead_Water/images/units/merfolk/soldier_king.png
  132. BIN data/campaigns/Dead_Water/images/units/merfolk/warrior_king-attack-1.png
  133. BIN data/campaigns/Dead_Water/images/units/merfolk/warrior_king-attack-2.png
  134. BIN data/campaigns/Dead_Water/images/units/merfolk/warrior_king-attack-3.png
  135. BIN data/campaigns/Dead_Water/images/units/merfolk/warrior_king-attack-4.png
  136. BIN data/campaigns/Dead_Water/images/units/merfolk/warrior_king-attack-4n.png
  137. BIN data/campaigns/Dead_Water/images/units/merfolk/warrior_king-attack-5.png
  138. BIN data/campaigns/Dead_Water/images/units/merfolk/warrior_king-attack-6.png
  139. BIN data/campaigns/Dead_Water/images/units/merfolk/warrior_king-attack-7.png
  140. BIN data/campaigns/Dead_Water/images/units/merfolk/warrior_king-attack-8.png
  141. BIN data/campaigns/Dead_Water/images/units/merfolk/warrior_king-attack-9.png
  142. BIN data/campaigns/Dead_Water/images/units/merfolk/warrior_king-defend.png
  143. BIN data/campaigns/Dead_Water/images/units/merfolk/warrior_king-leading.png
  144. BIN data/campaigns/Dead_Water/images/units/merfolk/warrior_king.png
  145. BIN data/campaigns/Dead_Water/images/units/merfolk/young_king-attack-1.png
  146. BIN data/campaigns/Dead_Water/images/units/merfolk/young_king-attack-2.png
  147. BIN data/campaigns/Dead_Water/images/units/merfolk/young_king-attack-3.png
  148. BIN data/campaigns/Dead_Water/images/units/merfolk/young_king-attack-4.png
  149. BIN data/campaigns/Dead_Water/images/units/merfolk/young_king-attack-4n.png
  150. BIN data/campaigns/Dead_Water/images/units/merfolk/young_king-attack-5.png
  151. BIN data/campaigns/Dead_Water/images/units/merfolk/young_king-attack-6.png
  152. BIN data/campaigns/Dead_Water/images/units/merfolk/young_king-attack-7.png
  153. BIN data/campaigns/Dead_Water/images/units/merfolk/young_king-attack-8.png
  154. BIN data/campaigns/Dead_Water/images/units/merfolk/young_king-attack-9.png
  155. BIN data/campaigns/Dead_Water/images/units/merfolk/young_king-defend.png
  156. BIN data/campaigns/Dead_Water/images/units/merfolk/young_king-leading.png
  157. BIN data/campaigns/Dead_Water/images/units/merfolk/young_king.png
  158. BIN data/campaigns/Dead_Water/images/units/monsters/kraken-defend.png
  159. BIN data/campaigns/Dead_Water/images/units/monsters/kraken-n-defend.png
  160. BIN data/campaigns/Dead_Water/images/units/monsters/kraken-n-tentacle-1.png
  161. BIN data/campaigns/Dead_Water/images/units/monsters/kraken-n-tentacle-2.png
  162. BIN data/campaigns/Dead_Water/images/units/monsters/kraken-n-tentacle-3.png
  163. BIN data/campaigns/Dead_Water/images/units/monsters/kraken-tentacle-1.png
  164. BIN data/campaigns/Dead_Water/images/units/monsters/kraken-tentacle-2.png
  165. BIN data/campaigns/Dead_Water/images/units/monsters/kraken-tentacle-3.png
  166. BIN data/campaigns/Dead_Water/images/units/monsters/kraken.png
  167. BIN data/campaigns/Dead_Water/images/units/undead/dark_shape.png
  168. +33 −0 data/campaigns/Dead_Water/maps/Bilheld.map
  169. +32 −0 data/campaigns/Dead_Water/maps/Home_1.map
  170. +33 −0 data/campaigns/Dead_Water/maps/Home_2.map
  171. +34 −0 data/campaigns/Dead_Water/maps/Slavers.map
  172. +17 −0 data/campaigns/Dead_Water/maps/Talking_To_Tyegea.map
  173. +35 −0 data/campaigns/Dead_Water/maps/The_Flaming_Sword.map
  174. +29 −0 data/campaigns/Dead_Water/maps/The_Mage.map
  175. +25 −0 data/campaigns/Dead_Water/maps/Tirigaz.map
  176. +20 −0 data/campaigns/Dead_Water/maps/Uncharted_Islands.map
  177. +31 −0 data/campaigns/Dead_Water/maps/Wolf_Coast.map
  178. +663 −0 data/campaigns/Dead_Water/scenarios/01_Invasion.cfg
  179. +687 −0 data/campaigns/Dead_Water/scenarios/02_Flight.cfg
  180. +397 −0 data/campaigns/Dead_Water/scenarios/03_Wolf_Coast.cfg
  181. +808 −0 data/campaigns/Dead_Water/scenarios/04_Slavers.cfg
  182. +881 −0 data/campaigns/Dead_Water/scenarios/05_Tirigaz.cfg
  183. +329 −0 data/campaigns/Dead_Water/scenarios/06_Uncharted_Islands.cfg
  184. +220 −0 data/campaigns/Dead_Water/scenarios/07_Bilheld.cfg
  185. +312 −0 data/campaigns/Dead_Water/scenarios/08_Talking_to_Tyegea.cfg
  186. +623 −0 data/campaigns/Dead_Water/scenarios/09_The_Mage.cfg
  187. +1,192 −0 data/campaigns/Dead_Water/scenarios/10_The_Flaming_Sword.cfg
  188. +293 −0 data/campaigns/Dead_Water/scenarios/11_Getting_Help.cfg
  189. +993 −0 data/campaigns/Dead_Water/scenarios/12_Revenge.cfg
  190. +160 −0 data/campaigns/Dead_Water/scenarios/13_Epilogue.cfg
  191. +273 −0 data/campaigns/Dead_Water/units/Brawler.cfg
  192. +146 −0 data/campaigns/Dead_Water/units/Child_King.cfg
  193. +90 −0 data/campaigns/Dead_Water/units/Citizen.cfg
  194. +20 −0 data/campaigns/Dead_Water/units/Dark_Shape.cfg
  195. +282 −0 data/campaigns/Dead_Water/units/Kraken.cfg
  196. +201 −0 data/campaigns/Dead_Water/units/Soldier_King.cfg
  197. +202 −0 data/campaigns/Dead_Water/units/Warrior_King.cfg
  198. +205 −0 data/campaigns/Dead_Water/units/Young_King.cfg
  199. +178 −0 data/campaigns/Dead_Water/utils/dw-utils.cfg
  200. +404 −0 data/campaigns/Dead_Water/utils/items.cfg
  201. +13 −0 data/campaigns/Dead_Water/utils/specials.cfg
  202. +2,668 −0 data/campaigns/Delfadors_Memoirs/HISTORY
  203. +22 −0 data/campaigns/Delfadors_Memoirs/TODO
  204. +278 −0 data/campaigns/Delfadors_Memoirs/WALKTHROUGH
  205. +107 −0 data/campaigns/Delfadors_Memoirs/_main.cfg
  206. BIN data/campaigns/Delfadors_Memoirs/images/LandOfTheDead.png
  207. BIN data/campaigns/Delfadors_Memoirs/images/LandOfTheDeadIllum.png
  208. BIN data/campaigns/Delfadors_Memoirs/images/campaign_image.png
  209. BIN data/campaigns/Delfadors_Memoirs/images/halo/wose-ranged-halo1.png
  210. BIN data/campaigns/Delfadors_Memoirs/images/halo/wose-ranged-halo2.png
  211. BIN data/campaigns/Delfadors_Memoirs/images/halo/wose-ranged-halo3.png
  212. BIN data/campaigns/Delfadors_Memoirs/images/halo/wose-ranged-halo4.png
  213. BIN data/campaigns/Delfadors_Memoirs/images/halo/wose-stationary-halo1.png
  214. BIN data/campaigns/Delfadors_Memoirs/images/halo/wose-stationary-halo2.png
  215. BIN data/campaigns/Delfadors_Memoirs/images/halo/wose-stationary-halo3.png
  216. BIN data/campaigns/Delfadors_Memoirs/images/halo/wose-stationary-halo4.png
  217. BIN data/campaigns/Delfadors_Memoirs/images/halo/wose-stationary-halo5.png
  218. BIN data/campaigns/Delfadors_Memoirs/images/halo/wose-stationary-halo6.png
  219. BIN data/campaigns/Delfadors_Memoirs/images/halo/wose-stationary-halo7.png
  220. BIN data/campaigns/Delfadors_Memoirs/images/halo/wose-stationary-halo8.png
  221. BIN data/campaigns/Delfadors_Memoirs/images/items/ward-circle.png
  222. +3 −0 data/campaigns/Delfadors_Memoirs/images/portraits/README
  223. BIN data/campaigns/Delfadors_Memoirs/images/portraits/chantal-druid.png
  224. BIN data/campaigns/Delfadors_Memoirs/images/portraits/chantal-shyde.png
  225. BIN data/campaigns/Delfadors_Memoirs/images/portraits/eldred.png
  226. BIN data/campaigns/Delfadors_Memoirs/images/portraits/garard.png
  227. BIN data/campaigns/Delfadors_Memoirs/images/portraits/kalenz.png
  228. BIN data/campaigns/Delfadors_Memoirs/images/portraits/leollyn.png
  229. BIN data/campaigns/Delfadors_Memoirs/images/portraits/lionel.png
  230. BIN data/campaigns/Delfadors_Memoirs/images/portraits/methor.png
  231. BIN data/campaigns/Delfadors_Memoirs/images/portraits/old_delfador.png
  232. BIN data/campaigns/Delfadors_Memoirs/images/portraits/oracle1.png
  233. BIN data/campaigns/Delfadors_Memoirs/images/portraits/oracle2.png
  234. BIN data/campaigns/Delfadors_Memoirs/images/portraits/oracle3.png
  235. BIN data/campaigns/Delfadors_Memoirs/images/portraits/oracle4.png
  236. BIN data/campaigns/Delfadors_Memoirs/images/portraits/tomb-guardian.png
  237. BIN data/campaigns/Delfadors_Memoirs/images/portraits/young_delfador.png
  238. BIN data/campaigns/Delfadors_Memoirs/images/portraits/younger_delfador.png
  239. BIN data/campaigns/Delfadors_Memoirs/images/portraits/zorlan.png
  240. BIN data/campaigns/Delfadors_Memoirs/images/story/httt_story3.jpg
  241. BIN data/campaigns/Delfadors_Memoirs/images/story/portraits/garard-large.png
  242. BIN data/campaigns/Delfadors_Memoirs/images/story/portraits/sagus.png
  243. BIN data/campaigns/Delfadors_Memoirs/images/story/portraits/young_delfador-large.png
  244. BIN data/campaigns/Delfadors_Memoirs/images/units/wose-shaman-attack-1.png
  245. BIN data/campaigns/Delfadors_Memoirs/images/units/wose-shaman-attack-2.png
  246. BIN data/campaigns/Delfadors_Memoirs/images/units/wose-shaman.png
  247. BIN data/campaigns/Delfadors_Memoirs/images/young_delfador.png
  248. +25 −0 data/campaigns/Delfadors_Memoirs/maps/01_Overture.map
  249. +31 −0 data/campaigns/Delfadors_Memoirs/maps/02_This_Valley_Belongs_to_Me.map
  250. +28 −0 data/campaigns/Delfadors_Memoirs/maps/03_The_Road_to_Weldyn.map
  251. +25 −0 data/campaigns/Delfadors_Memoirs/maps/04_Leollyn.map
  252. +52 −0 data/campaigns/Delfadors_Memoirs/maps/05_Council_in_Weldyn.map
  253. +30 −0 data/campaigns/Delfadors_Memoirs/maps/06_The_Swamps_of_Illuven.map
  254. +25 −0 data/campaigns/Delfadors_Memoirs/maps/07_Night_in_the_Swamp.map
  255. +28 −0 data/campaigns/Delfadors_Memoirs/maps/08_Ur-Thorodor.map
  256. +33 −0 data/campaigns/Delfadors_Memoirs/maps/09_Houses_of_the_Dead.map
  257. +31 −0 data/campaigns/Delfadors_Memoirs/maps/10_The_Gate_Between_Worlds.map
  258. +29 −0 data/campaigns/Delfadors_Memoirs/maps/11_Wasteland.map
  259. +55 −0 data/campaigns/Delfadors_Memoirs/maps/12_Terror_at_the_Ford_of_Parthyn.map
  260. +25 −0 data/campaigns/Delfadors_Memoirs/maps/13_The_Return_of_Trouble.map
  261. +26 −0 data/campaigns/Delfadors_Memoirs/maps/14_Shadows_in_the_Dark.map
  262. +33 −0 data/campaigns/Delfadors_Memoirs/maps/15_Save_the_King.map
  263. +27 −0 data/campaigns/Delfadors_Memoirs/maps/17_A_New_Ally.map
  264. +29 −0 data/campaigns/Delfadors_Memoirs/maps/18_The_Portal_of_Doom.map
Sorry, we could not display the entire diff because too many files (12,366) changed.
View
351 .cproject
@@ -0,0 +1,351 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?>
+
+<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+ <storageModule moduleId="org.eclipse.cdt.core.settings">
+ <cconfiguration id="com.qnx.qcc.configuration.exe.debug.261734325">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.configuration.exe.debug.261734325" moduleId="org.eclipse.cdt.core.settings" name="Simulator">
+ <externalSettings/>
+ <extensions>
+ <extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="com.qnx.tools.ide.qde.core.QDELinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" description="" errorParsers="com.qnx.tools.ide.qde.core.QDELinkerErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser" id="com.qnx.qcc.configuration.exe.debug.261734325" name="Simulator" parent="com.qnx.qcc.configuration.exe.debug" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="">
+ <folderInfo id="com.qnx.qcc.configuration.exe.debug.261734325." name="/" resourcePath="">
+ <toolChain errorParsers="" id="com.qnx.qcc.toolChain.exe.debug.1330272497" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
+ <option id="com.qnx.qcc.option.cpu.660971934" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.armle-v7" valueType="enumerated"/>
+ <targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.800949346" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
+ <builder buildPath="${workspace_loc:/Wesnoth/Simulator}" errorParsers="" id="com.qnx.nto.704172094" keepEnvironmentInBuildfile="false" name="CDT Internal Builder" superClass="com.qnx.nto"/>
+ <tool errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="com.qnx.qcc.tool.compiler.1468162575" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
+ <option id="com.qnx.qcc.option.compile.debug.1887078697" name="Debug (-g)" superClass="com.qnx.qcc.option.compile.debug" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.compiler.defines.788620519" name="Defines (-D)" superClass="com.qnx.qcc.option.compiler.defines" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="__QNXNTO__"/>
+ <listOptionValue builtIn="false" value="__PLAYBOOK__"/>
+ </option>
+ <option id="com.qnx.qcc.option.compiler.includePath.1904954278" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL12/include}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_ttf/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/ogg/include}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;C:\pbndk\boost_1_46_1&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_mixer/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_image/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_net/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/pango/inc}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/cairo/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/glib/inc}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/glib/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/glib}&quot;"/>
+ </option>
+ <inputType id="com.qnx.qcc.inputType.compiler.568573776" superClass="com.qnx.qcc.inputType.compiler"/>
+ </tool>
+ <tool errorParsers="" id="com.qnx.qcc.tool.assembler.113083440" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
+ <option id="com.qnx.qcc.option.assembler.debug.811596976" name="Debug (-g)" superClass="com.qnx.qcc.option.assembler.debug" value="true" valueType="boolean"/>
+ <inputType id="com.qnx.qcc.inputType.assembler.1123074884" superClass="com.qnx.qcc.inputType.assembler"/>
+ </tool>
+ <tool errorParsers="com.qnx.tools.ide.qde.core.QDELinkerErrorParser;org.eclipse.cdt.core.GLDErrorParser" id="com.qnx.qcc.tool.linker.1862206106" name="QCC Linker" superClass="com.qnx.qcc.tool.linker">
+ <option id="com.qnx.qcc.option.linker.debug.2045817063" name="Debug (-g)" superClass="com.qnx.qcc.option.linker.debug" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.langcpp.1996072132" name="C++ (-lang-c++)" superClass="com.qnx.qcc.option.linker.langcpp" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.libraryPaths.833952048" name="Library Paths (-L)" superClass="com.qnx.qcc.option.linker.libraryPaths" valueType="libPaths">
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL12/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/png/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/boost_iostreams/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/boost_regex/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_image/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_ttf/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/lua/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_net/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_mixer/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/pango/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/cairo/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/emulate/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/pixman/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/glib/Device-Debug}&quot;"/>
+ </option>
+ <option id="com.qnx.qcc.option.linker.libraries.23930238" name="Libraries (-l)" superClass="com.qnx.qcc.option.linker.libraries" valueType="libs">
+ <listOptionValue builtIn="false" value="SDL_mixer"/>
+ <listOptionValue builtIn="false" value="boost_iostreams"/>
+ <listOptionValue builtIn="false" value="boost_regex"/>
+ <listOptionValue builtIn="false" value="SDL_net"/>
+ <listOptionValue builtIn="false" value="SDL_ttf"/>
+ <listOptionValue builtIn="false" value="SDL_image"/>
+ <listOptionValue builtIn="false" value="SDL12"/>
+ <listOptionValue builtIn="false" value="emulate"/>
+ <listOptionValue builtIn="false" value="pango"/>
+ <listOptionValue builtIn="false" value="cairo"/>
+ <listOptionValue builtIn="false" value="pixman"/>
+ <listOptionValue builtIn="false" value="glib"/>
+ <listOptionValue builtIn="false" value="intl"/>
+ <listOptionValue builtIn="false" value="fontconfig"/>
+ <listOptionValue builtIn="false" value="freetype"/>
+ <listOptionValue builtIn="false" value="bps"/>
+ <listOptionValue builtIn="false" value="pps"/>
+ <listOptionValue builtIn="false" value="lua"/>
+ <listOptionValue builtIn="false" value="png"/>
+ <listOptionValue builtIn="false" value="xml2"/>
+ <listOptionValue builtIn="false" value="socket"/>
+ </option>
+ <inputType id="com.qnx.qcc.inputType.linker.665272966" superClass="com.qnx.qcc.inputType.linker">
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+ <additionalInput kind="additionaldependency" paths="$(LIB_DEPS)"/>
+ </inputType>
+ </tool>
+ <tool id="com.qnx.qcc.tool.archiver.1151639735" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
+ </toolChain>
+ </folderInfo>
+ <sourceEntries>
+ <entry excluding="lua/luac.cpp|lua/lua.cpp|network_manager_ana.cpp|campaign_server|server|loadscreen_empty.cpp|network_ana.cpp|tools|tests|ana" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ <storageModule moduleId="com.qnx.tools.ide.bbt.core.assets.storage">
+ <managedBuildEntryPointAsset targetPath=""/>
+ <asset localPath="${workspace_loc:Wesnoth\icon.png}" targetPath="" type="OTHER"/>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+ <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+ </cconfiguration>
+ <cconfiguration id="com.qnx.qcc.configuration.exe.debug.2075273161">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.configuration.exe.debug.2075273161" moduleId="org.eclipse.cdt.core.settings" name="Device-Debug">
+ <externalSettings/>
+ <extensions>
+ <extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="com.qnx.tools.ide.qde.core.QDELinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" description="" errorParsers="com.qnx.tools.ide.qde.core.QDELinkerErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser" id="com.qnx.qcc.configuration.exe.debug.2075273161" name="Device-Debug" parent="com.qnx.qcc.configuration.exe.debug" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="">
+ <folderInfo id="com.qnx.qcc.configuration.exe.debug.2075273161." name="/" resourcePath="">
+ <toolChain errorParsers="" id="com.qnx.qcc.toolChain.exe.debug.564640106" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
+ <option id="com.qnx.qcc.option.cpu.1291746422" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.armle-v7" valueType="enumerated"/>
+ <targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.601597487" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
+ <builder buildPath="${workspace_loc:/Wesnoth/Device-Debug}" errorParsers="" id="com.qnx.nto.1228282818" keepEnvironmentInBuildfile="false" name="CDT Internal Builder" parallelBuildOn="false" parallelizationNumber="3" superClass="com.qnx.nto"/>
+ <tool command="qcc" commandLinePattern="${COMMAND} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} ${FLAGS}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="com.qnx.qcc.tool.compiler.1825440237" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
+ <option id="com.qnx.qcc.option.compile.debug.428899481" name="Debug (-g)" superClass="com.qnx.qcc.option.compile.debug" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.compiler.defines.67658076" name="Defines (-D)" superClass="com.qnx.qcc.option.compiler.defines" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="__QNXNTO__"/>
+ <listOptionValue builtIn="false" value="__PLAYBOOK__"/>
+ </option>
+ <option id="com.qnx.qcc.option.compiler.includePath.1292204026" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL12/include}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_ttf/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/ogg/include}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;C:\pbndk\boost_1_46_1&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_mixer/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_image/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_net/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/pango/inc}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/cairo/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/glib/inc}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/glib/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/glib}&quot;"/>
+ </option>
+ <inputType id="com.qnx.qcc.inputType.compiler.333556390" superClass="com.qnx.qcc.inputType.compiler"/>
+ </tool>
+ <tool command="qcc" commandLinePattern="${COMMAND} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} ${FLAGS}" errorParsers="" id="com.qnx.qcc.tool.assembler.2123015522" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
+ <option id="com.qnx.qcc.option.assembler.debug.1103573580" name="Debug (-g)" superClass="com.qnx.qcc.option.assembler.debug" value="true" valueType="boolean"/>
+ <inputType id="com.qnx.qcc.inputType.assembler.1683416784" superClass="com.qnx.qcc.inputType.assembler"/>
+ </tool>
+ <tool command="qcc" commandLinePattern="${COMMAND} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} ${FLAGS}" errorParsers="com.qnx.tools.ide.qde.core.QDELinkerErrorParser;org.eclipse.cdt.core.GLDErrorParser" id="com.qnx.qcc.tool.linker.1796907605" name="QCC Linker" superClass="com.qnx.qcc.tool.linker">
+ <option id="com.qnx.qcc.option.linker.debug.358986680" name="Debug (-g)" superClass="com.qnx.qcc.option.linker.debug" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.langcpp.255023443" name="C++ (-lang-c++)" superClass="com.qnx.qcc.option.linker.langcpp" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.libraryPaths.176845142" name="Library Paths (-L)" superClass="com.qnx.qcc.option.linker.libraryPaths" valueType="libPaths">
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL12/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/png/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/boost_iostreams/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/boost_regex/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_image/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_ttf/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/lua/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_net/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_mixer/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/pango/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/cairo/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/emulate/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/pixman/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/glib/Device-Debug}&quot;"/>
+ </option>
+ <option id="com.qnx.qcc.option.linker.libraries.941296457" name="Libraries (-l)" superClass="com.qnx.qcc.option.linker.libraries" valueType="libs">
+ <listOptionValue builtIn="false" value="SDL_mixer"/>
+ <listOptionValue builtIn="false" value="boost_iostreams"/>
+ <listOptionValue builtIn="false" value="boost_regex"/>
+ <listOptionValue builtIn="false" value="SDL_net"/>
+ <listOptionValue builtIn="false" value="SDL_ttf"/>
+ <listOptionValue builtIn="false" value="SDL_image"/>
+ <listOptionValue builtIn="false" value="SDL12"/>
+ <listOptionValue builtIn="false" value="emulate"/>
+ <listOptionValue builtIn="false" value="pango"/>
+ <listOptionValue builtIn="false" value="cairo"/>
+ <listOptionValue builtIn="false" value="pixman"/>
+ <listOptionValue builtIn="false" value="glib"/>
+ <listOptionValue builtIn="false" value="intl"/>
+ <listOptionValue builtIn="false" value="fontconfig"/>
+ <listOptionValue builtIn="false" value="freetype"/>
+ <listOptionValue builtIn="false" value="bps"/>
+ <listOptionValue builtIn="false" value="pps"/>
+ <listOptionValue builtIn="false" value="lua"/>
+ <listOptionValue builtIn="false" value="png"/>
+ <listOptionValue builtIn="false" value="xml2"/>
+ <listOptionValue builtIn="false" value="socket"/>
+ </option>
+ <inputType id="com.qnx.qcc.inputType.linker.1735172064" superClass="com.qnx.qcc.inputType.linker">
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+ <additionalInput kind="additionaldependency" paths="$(LIB_DEPS)"/>
+ </inputType>
+ </tool>
+ <tool id="com.qnx.qcc.tool.archiver.1818170363" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
+ </toolChain>
+ </folderInfo>
+ <sourceEntries>
+ <entry excluding="lua/luac.cpp|lua/lua.cpp|network_manager_ana.cpp|campaign_server|server|loadscreen_empty.cpp|network_ana.cpp|tools|tests|ana" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ <storageModule moduleId="com.qnx.tools.ide.bbt.core.assets.storage">
+ <managedBuildEntryPointAsset targetPath=""/>
+ <asset localPath="${workspace_loc:Wesnoth\icon.png}" targetPath="" type="OTHER"/>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+ <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+ </cconfiguration>
+ <cconfiguration id="com.qnx.qcc.configuration.exe.release.1076827978">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.configuration.exe.release.1076827978" moduleId="org.eclipse.cdt.core.settings" name="Device-Release">
+ <externalSettings/>
+ <extensions>
+ <extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="com.qnx.tools.ide.qde.core.QDELinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" description="" errorParsers="com.qnx.tools.ide.qde.core.QDELinkerErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser" id="com.qnx.qcc.configuration.exe.release.1076827978" name="Device-Release" parent="com.qnx.qcc.configuration.exe.release" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="">
+ <folderInfo id="com.qnx.qcc.configuration.exe.release.1076827978." name="/" resourcePath="">
+ <toolChain errorParsers="" id="com.qnx.qcc.toolChain.exe.release.1481781297" name="QNX QCC" superClass="com.qnx.qcc.toolChain">
+ <option id="com.qnx.qcc.option.cpu.1596068625" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.armle-v7" valueType="enumerated"/>
+ <targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.1475633528" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
+ <builder buildPath="${workspace_loc:/Wesnoth/Device-Release}" errorParsers="" id="com.qnx.nto.2131615674" keepEnvironmentInBuildfile="false" name="CDT Internal Builder" superClass="com.qnx.nto"/>
+ <tool errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="com.qnx.qcc.tool.compiler.176883624" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
+ <option id="com.qnx.qcc.option.compiler.optlevel.838379121" name="Optimization Level" superClass="com.qnx.qcc.option.compiler.optlevel" value="com.qnx.qcc.option.compiler.optlevel.2" valueType="enumerated"/>
+ <option id="com.qnx.qcc.option.compiler.defines.1701971865" name="Defines (-D)" superClass="com.qnx.qcc.option.compiler.defines" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="__QNXNTO__"/>
+ <listOptionValue builtIn="false" value="__PLAYBOOK__"/>
+ </option>
+ <option id="com.qnx.qcc.option.compiler.includePath.1343535566" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL12/include}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_ttf/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/ogg/include}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;C:\pbndk\boost_1_46_1&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_mixer/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_image/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_net/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/pango/inc}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/cairo/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/glib/inc}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/glib/src}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/glib}&quot;"/>
+ </option>
+ <option id="com.qnx.qcc.option.compile.debug.1823909146" name="Debug (-g)" superClass="com.qnx.qcc.option.compile.debug" value="false" valueType="boolean"/>
+ <inputType id="com.qnx.qcc.inputType.compiler.1774393904" superClass="com.qnx.qcc.inputType.compiler"/>
+ </tool>
+ <tool errorParsers="" id="com.qnx.qcc.tool.assembler.987224169" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
+ <option id="com.qnx.qcc.option.assembler.debug.1988890799" name="Debug (-g)" superClass="com.qnx.qcc.option.assembler.debug" value="true" valueType="boolean"/>
+ <inputType id="com.qnx.qcc.inputType.assembler.331148657" superClass="com.qnx.qcc.inputType.assembler"/>
+ </tool>
+ <tool errorParsers="com.qnx.tools.ide.qde.core.QDELinkerErrorParser;org.eclipse.cdt.core.GLDErrorParser" id="com.qnx.qcc.tool.linker.515883843" name="QCC Linker" superClass="com.qnx.qcc.tool.linker">
+ <option id="com.qnx.qcc.option.linker.langcpp.2132527320" name="C++ (-lang-c++)" superClass="com.qnx.qcc.option.linker.langcpp" value="true" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.debug.1116181758" name="Debug (-g)" superClass="com.qnx.qcc.option.linker.debug" value="false" valueType="boolean"/>
+ <option id="com.qnx.qcc.option.linker.libraryPaths.556438778" name="Library Paths (-L)" superClass="com.qnx.qcc.option.linker.libraryPaths" valueType="libPaths">
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL12/Device-Debug}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/png/Device-Release}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/boost_iostreams/Device-Release}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/boost_regex/Device-Release}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_image/Device-Release}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_ttf/Device-Release}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/lua/Device-Release}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_net/Device-Release}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/SDL_mixer/Device-Release}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/pango/Device-Release}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/cairo/Device-Release}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/emulate/Device-Release}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/pixman/Device-Release}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/glib/Device-Release}&quot;"/>
+ </option>
+ <option id="com.qnx.qcc.option.linker.libraries.2121115382" name="Libraries (-l)" superClass="com.qnx.qcc.option.linker.libraries" valueType="libs">
+ <listOptionValue builtIn="false" value="SDL_mixer"/>
+ <listOptionValue builtIn="false" value="boost_iostreams"/>
+ <listOptionValue builtIn="false" value="boost_regex"/>
+ <listOptionValue builtIn="false" value="SDL_net"/>
+ <listOptionValue builtIn="false" value="SDL_ttf"/>
+ <listOptionValue builtIn="false" value="SDL_image"/>
+ <listOptionValue builtIn="false" value="SDL12"/>
+ <listOptionValue builtIn="false" value="emulate"/>
+ <listOptionValue builtIn="false" value="pango"/>
+ <listOptionValue builtIn="false" value="cairo"/>
+ <listOptionValue builtIn="false" value="pixman"/>
+ <listOptionValue builtIn="false" value="glib"/>
+ <listOptionValue builtIn="false" value="intl"/>
+ <listOptionValue builtIn="false" value="fontconfig"/>
+ <listOptionValue builtIn="false" value="freetype"/>
+ <listOptionValue builtIn="false" value="bps"/>
+ <listOptionValue builtIn="false" value="pps"/>
+ <listOptionValue builtIn="false" value="lua"/>
+ <listOptionValue builtIn="false" value="png"/>
+ <listOptionValue builtIn="false" value="xml2"/>
+ <listOptionValue builtIn="false" value="socket"/>
+ </option>
+ <inputType id="com.qnx.qcc.inputType.linker.497334080" superClass="com.qnx.qcc.inputType.linker">
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+ <additionalInput kind="additionaldependency" paths="$(LIB_DEPS)"/>
+ </inputType>
+ </tool>
+ <tool id="com.qnx.qcc.tool.archiver.1779519727" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
+ </toolChain>
+ </folderInfo>
+ <sourceEntries>
+ <entry excluding="lua/luac.cpp|lua/lua.cpp|network_manager_ana.cpp|campaign_server|server|loadscreen_empty.cpp|network_ana.cpp|tools|tests|ana" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ <storageModule moduleId="com.qnx.tools.ide.bbt.core.assets.storage">
+ <managedBuildEntryPointAsset targetPath=""/>
+ <asset localPath="${workspace_loc:Wesnoth\icon.png}" targetPath="" type="OTHER"/>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+ <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+ </cconfiguration>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <project id="Wesnoth.null.1479168524" name="Wesnoth"/>
+ </storageModule>
+ <storageModule moduleId="refreshScope" versionNumber="1">
+ <resource resourceType="PROJECT" workspacePath="/wesnoth"/>
+ </storageModule>
+ <storageModule moduleId="scannerConfiguration">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
+ <scannerConfigBuildInfo instanceId="com.qnx.qcc.configuration.exe.release.1076827978">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.qnx.qcc.configuration.exe.debug.2075273161">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.qnx.qcc.configuration.exe.debug.261734325">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
+ </scannerConfigBuildInfo>
+ </storageModule>
+ <storageModule moduleId="com.qnx.tools.ide.qde.core.QNXProjectProperties"/>
+</cproject>
View
77 .project
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>wesnoth</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+ <triggers>clean,full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>?name?</key>
+ <value></value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.append_environment</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildArguments</key>
+ <value></value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildCommand</key>
+ <value>make</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildLocation</key>
+ <value>${workspace_loc:/Wesnoth/Device-Release}</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.contents</key>
+ <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
+ <value>false</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableFullBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.stopOnError</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
+ <value>true</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.qnx.tools.bbt.xml.core.bbtXMLValidationBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.cdt.core.cnature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+ <nature>com.qnx.tools.ide.bbt.core.bbtnature</nature>
+ <nature>org.eclipse.cdt.core.ccnature</nature>
+ </natures>
+</projectDescription>
View
102 blackberry-tablet.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<qnx xmlns="http://www.qnx.com/schemas/application/1.0">
+
+<!-- BlackBerry Tablet OS application descriptor file.
+
+ Specifies parameters for identifying, installing, and launching native applications on BlackBerry Tablet OS.
+
+-->
+
+ <!-- A universally unique application identifier. Must be unique across all BlackBerry Tablet OS applications.
+ Using a reverse DNS-style name as the id is recommended. (Eg. com.example.ExampleApplication.) Required. -->
+ <id>com.sample.Wesnoth</id>
+
+ <!-- Used as the filename for the application. Required. -->
+ <filename>Wesnoth</filename>
+
+ <!-- The name that is displayed in the BlackBerry Tablet OS application installer.
+ May have multiple values for each language. See samples or xsd schema file. Optional. -->
+ <name>Wesnoth</name>
+
+ <!-- A string value of the format <0-999>.<0-999>.<0-999> that represents application version which can be used to check for application upgrade.
+ Values can also be 1-part or 2-part. It is not necessary to have a 3-part value.
+ An updated version of application must have a versionNumber value higher than the previous version. Required. -->
+ <versionNumber>1.0.0</versionNumber>
+
+ <!-- Fourth digit segment of the package version. First three segments are taken from the
+ <versionNumber> element. Must be an integer from 0 to 2^16-1 -->
+ <buildId>1</buildId>
+
+ <!-- A string value (such as "v1", "2.5", or "Alpha 1") that represents the version of the application, as it should be shown to users. Optional. -->
+ <!-- <versionLabel></versionLabel> -->
+
+ <!-- Description, displayed in the BlackBerry Tablet OS application installer.
+ May have multiple values for each language. See samples or xsd schema file. Optional. -->
+ <description>The Wesnoth application</description>
+
+ <!-- Copyright information. Optional. -->
+ <!-- <copyright></copyright> -->
+
+ <!-- Name of author which is used for signing. Must match the developer name of your development certificate. -->
+ <author>Sample Inc.</author>
+
+ <!-- Unique author ID assigned by signing authority. Required if using debug tokens. -->
+ <!-- <authorId>ABC1234YjsnUk235h</authorId> -->
+
+ <initialWindow>
+ <systemChrome>none</systemChrome>
+ <transparent>false</transparent>
+ </initialWindow>
+
+ <!-- The category where the application appears. Either core.games or core.media. -->
+ <category>core.games</category>
+ <asset path="icon.png">icon.png</asset>
+ <configuration id="com.qnx.qcc.configuration.exe.debug.261734325" name="Simulator">
+ <asset path="Simulator/wesnoth" entry="true" type="Qnx/Elf">wesnoth</asset>
+ </configuration>
+ <configuration id="com.qnx.qcc.configuration.exe.debug.2075273161" name="Device-Debug">
+ <asset path="Device-Debug/wesnoth" entry="true" type="Qnx/Elf">wesnoth</asset>
+ <asset path="${workspace_loc:/SDL_mixer/Device-Debug/libSDL_mixer.so}" type="Qnx/Elf">lib/libSDL_mixer.so</asset>
+ <asset path="${workspace_loc:/SDL_image/Device-Debug/libSDL_image.so}" type="Qnx/Elf">lib/libSDL_image.so</asset>
+ <asset path="${workspace_loc:/SDL_net/Device-Debug/libSDL_net.so}" type="Qnx/Elf">lib/libSDL_net.so</asset>
+ <asset path="${workspace_loc:/pango/Device-Debug/libpango.so}" type="Qnx/Elf">lib/libpango.so</asset>
+ <asset path="${workspace_loc:/emulate/Device-Debug/libemulate.so}" type="Qnx/Elf">lib/libemulate.so</asset>
+ <asset path="${workspace_loc:/SDL12/Device-Debug/libSDL12.so}" type="Qnx/Elf">lib/libSDL12.so</asset>
+ <asset path="${workspace_loc:/glib/Device-Debug/libglib.so}" type="Qnx/Elf">lib/libglib.so</asset>
+ <asset path="${workspace_loc:/pango-module-basic/Device-Debug/libpango-module-basic.so}" type="Qnx/Elf">lib/pango/1.6.0/modules/libpango-module-basic.so</asset>
+ </configuration>
+ <configuration id="com.qnx.qcc.configuration.exe.release.1076827978" name="Device-Release">
+ <asset path="Device-Release/wesnoth" entry="true" type="Qnx/Elf">wesnoth</asset>
+ <asset path="${workspace_loc:/SDL_mixer/Device-Release/libSDL_mixer.so}" type="Qnx/Elf">lib/libSDL_mixer.so</asset>
+ <asset path="${workspace_loc:/SDL_image/Device-Release/libSDL_image.so}" type="Qnx/Elf">lib/libSDL_image.so</asset>
+ <asset path="${workspace_loc:/SDL_net/Device-Release/libSDL_net.so}" type="Qnx/Elf">lib/libSDL_net.so</asset>
+ <asset path="${workspace_loc:/pango/Device-Release/libpango.so}" type="Qnx/Elf">lib/libpango.so</asset>
+ <asset path="${workspace_loc:/emulate/Device-Release/libemulate.so}" type="Qnx/Elf">lib/libemulate.so</asset>
+ <asset path="${workspace_loc:/SDL12/Device-Release/libSDL12.so}" type="Qnx/Elf">lib/libSDL12.so</asset>
+ <asset path="${workspace_loc:/glib/Device-Release/libglib.so}" type="Qnx/Elf">lib/libglib.so</asset>
+ <asset path="${workspace_loc:/pango-module-basic/Device-Release/libpango-module-basic.so}" type="Qnx/Elf">lib/pango/1.6.0/modules/libpango-module-basic.so</asset>
+ </configuration>
+
+ <!-- The icon for the application, which should be 86x86. -->
+ <icon>
+ <image>icon.png</image>
+ </icon>
+
+ <!-- The splash screen that will appear when your application is launching. Should be 1024x600. -->
+ <!-- <splashscreen></splashscreen> -->
+
+ <!-- Request permission to execute native code. Required for native applications. -->
+ <permission system="true">run_native</permission>
+
+ <!-- The permissions requested by your application. -->
+ <!-- <permission>access_shared</permission> -->
+ <!-- <permission>record_audio</permission> -->
+ <!-- <permission>read_geolocation</permission> -->
+ <!-- <permission>use_camera</permission> -->
+ <!-- <permission>access_internet</permission> -->
+ <!-- <permission>play_audio</permission> -->
+ <!-- <permission>post_notification</permission> -->
+ <!-- <permission>set_audio_volume</permission> -->
+ <!-- <permission>read_device_identifying_information</permission> -->
+
+</qnx>
View
344 data/COPYING.txt
@@ -0,0 +1,344 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ 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
+this service 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.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+---
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The `Program', below,
+refers to any such program or work, and a `work based on the Program'
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term `modification'.) Each licensee is addressed as `you'.
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+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
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the 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 a version number of this License which applies to it and `any
+later version', you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE 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.
+
+ 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
+convey 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 General Public License as published by
+ the Free Software Foundation; either version 2 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a `copyright disclaimer' for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ (signature of Ty Coon), 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
View
102 data/_main.cfg
@@ -0,0 +1,102 @@
+#textdomain wesnoth
+
+{english.cfg}
+
+{themes/}
+
+{core/}
+
+#ifdef MULTIPLAYER
+{multiplayer/}
+#endif
+
+{campaigns/}
+
+[ais]
+ [default_config]
+ {ai/utils/default_config.cfg}
+ [/default_config]
+ {ai/ais/}
+#ifdef DEBUG_MODE
+ {ai/dev/}
+#endif
+[/ais]
+
+#ifdef EDITOR
+[textdomain]
+ name="wesnoth-editor"
+[/textdomain]
+#endif
+
+#ifdef TEST
+{scenario-test.cfg}
+{scenario-formula.cfg}
+{scenario-formula-recruitment.cfg}
+{scenario-poisoning.cfg}
+{scenario-leaders.cfg}
+{ai/scenarios/scenario-AI_Arena_small.cfg}
+{ai/scenarios/scenario-test_move_to_targets.cfg}
+{ai/scenarios/scenario-lua-ai.cfg}
+#endif
+
+[textdomain]
+ name="wesnoth"
+[/textdomain]
+[textdomain]
+ name="wesnoth-help"
+[/textdomain]
+[textdomain]
+ name="wesnoth-units"
+[/textdomain]
+[textdomain]
+ name="wesnoth-multiplayer"
+[/textdomain]
+# required to wire it in rather early, won't work in the ifdef for the tutorial
+[textdomain]
+ name="wesnoth-tutorial"
+[/textdomain]
+# does not work when wired in only in the multiplayer file, do not ask me why...
+[textdomain]
+ name="wesnoth-anl"
+[/textdomain]
+
+# title screen and no_gui mode do not need terrain_graphics
+#ifdef TITLE_SCREEN
+#define NO_TERRAIN_GFX
+#enddef
+#endif
+
+#ifdef NO_GUI
+#define NO_TERRAIN_GFX
+#enddef
+#endif
+
+#ifndef NO_TERRAIN_GFX
+# Include the terrain-graphics definitions after the campaigns so campaign specific
+# terrains work properly.
+{core/terrain-graphics.cfg}
+#endif
+
+[binary_path]
+ path=data/core
+[/binary_path]
+
+{advanced_preferences.cfg}
+
+{game_config.cfg}
+
+[textdomain]
+ name="wesnoth-lib"
+[/textdomain]
+
+#ifdef TUTORIAL
+[binary_path]
+ path=data/campaigns/tutorial
+[/binary_path]
+
+[+units]
+ {campaigns/tutorial/units}
+[/units]
+
+{campaigns/tutorial/scenarios}
+#endif
View
127 data/advanced_preferences.cfg
@@ -0,0 +1,127 @@
+#textdomain wesnoth
+
+[advanced_preference]
+ field=compress_saves
+ name=_"Compressed Saves"
+ type=boolean
+ default=yes
+[/advanced_preference]
+
+[advanced_preference]
+ field=ask_delete
+ name=_"Confirm deleting saves"
+ type=boolean
+ default=yes
+[/advanced_preference]
+
+[advanced_preference]
+ field=mouse_scrolling
+ name=_"Mouse Scrolling"
+ type=boolean
+ default=yes
+[/advanced_preference]
+
+[advanced_preference]
+ field=middle_click_scrolls
+ name=_"Middle-click Scrolling"
+ type=boolean
+ default=yes
+[/advanced_preference]
+
+[advanced_preference]
+ field=scroll_when_mouse_outside
+ name=_"Keep scrolling when mouse leaves window"
+ type=boolean
+ default=yes
+[/advanced_preference]
+
+[advanced_preference]
+ field=animate_map
+ name=_"Animate Map"
+ type=boolean
+ default=yes
+[/advanced_preference]
+
+[advanced_preference]
+ field=local_tod_light
+ name=_"Local time of day light"
+ description=_"Local time of day light effect (use more memory)."
+ type=boolean
+ default=no
+[/advanced_preference]
+
+[advanced_preference]
+ field=startup_effect
+ name=_"Show Titlescreen Animation"
+ type=boolean
+ default=yes
+[/advanced_preference]
+
+[advanced_preference]
+ field=unit_standing_animations
+ name=_"Unit Standing Animations"
+ type=boolean
+ default=yes
+[/advanced_preference]
+
+[advanced_preference]
+ field=show_combat
+ name=_"Show Combat"
+ type=boolean
+ default=yes
+[/advanced_preference]
+
+[advanced_preference]
+ field=ping_timeout
+ name=_"Ping Timeout"
+ description=_"Number of seconds to wait for a ping reply before we time out. Disable with 0."
+ type=int
+ default=0
+ min=0
+ max=60
+ step=5
+[/advanced_preference]
+
+[advanced_preference]
+ field=lobby_whisper_friends_only
+ name=_"Accept whisper messages from friends only"
+ type=boolean
+ default=no
+[/advanced_preference]
+
+[advanced_preference]
+ field=lobby_auto_open_whisper_windows
+ name=_"Auto-open whisper windows in lobby"
+ type=boolean
+ default=yes
+[/advanced_preference]
+
+[advanced_preference]
+ field=lobby_playerlist_group_players
+ name=_"Group players in lobby"
+ type=boolean
+ default=yes
+[/advanced_preference]
+
+[advanced_preference]
+ field=lobby_sounds
+ name=_"Lobby sounds"
+ type=boolean
+ default=yes
+[/advanced_preference]
+
+[advanced_preference]
+ field=disable_notifications
+ name=_"Disable notifications"
+ type=boolean
+ default=no
+[/advanced_preference]
+
+#[advanced_preference]
+# field=dummy_slider
+# name="Dummy Slider"
+# type=int
+# default=42
+# min=0
+# max=50
+#[/advanced_preference]
View
21 data/ai/ais/testing_ai_default.cfg
@@ -0,0 +1,21 @@
+#textdomain wesnoth
+
+[ai]
+ id=testing_ai_default
+ description=_"Multiplayer_AI^RCA AI" # RCA := Register Candidate Action; more info at http://forums.wesnoth.org/viewtopic.php?p=419625#p419625
+ version=10710
+ [stage]
+ id=main_loop
+ name=testing_ai_default::candidate_action_evaluation_loop
+ {AI_CA_GOTO}
+ {AI_CA_RECRUITMENT}
+ {AI_CA_MOVE_LEADER_TO_GOALS}
+ {AI_CA_MOVE_LEADER_TO_KEEP}
+ {AI_CA_COMBAT}
+ {AI_CA_HEALING}
+ {AI_CA_VILLAGES}
+ {AI_CA_RETREAT}
+ {AI_CA_MOVE_TO_TARGETS}
+ {AI_CA_PASSIVE_LEADER_SHARES_KEEP}
+ [/stage]
+[/ai]
View
2 data/ai/aliases/dev_singleplayer.cfg
@@ -0,0 +1,2 @@
+#textdomain wesnoth
+{ai/ais/testing_ai_default.cfg}
View
2 data/ai/aliases/idle.cfg
@@ -0,0 +1,2 @@
+#textdomain wesnoth
+{ai/dev/idle_ai.cfg}
View
2 data/ai/aliases/stable_singleplayer.cfg
@@ -0,0 +1,2 @@
+#textdomain wesnoth
+{ai/ais/testing_ai_default.cfg}
View
21 data/ai/dev/formula_ai.cfg
@@ -0,0 +1,21 @@
+#textdomain wesnoth
+[ai]
+ id=formula_ai # id is needed to uniquely identify a MP AI, it is not needed in the scenario AI
+ description=Formula AI dev# this description is, again, needed for MP AI (it shows in AI list under this description
+ version=10710 # no spaces here, version should be parsed as int. This version marker is a sign that ALL snippets of AI are written using new syntax
+
+ {AI_SIMPLE_FORMULA_AI_EXPERIMENTAL_RECRUITMENT}
+ [stage]
+ id=main_loop
+ name=testing_ai_default::candidate_action_evaluation_loop
+ {AI_CA_GOTO}
+ {AI_CA_RECRUITMENT}
+ {AI_CA_MOVE_LEADER_TO_GOALS}
+ {AI_CA_MOVE_LEADER_TO_KEEP}
+ {AI_CA_COMBAT}
+ {AI_CA_HEALING}
+ {AI_CA_VILLAGES}
+ {AI_CA_RETREAT}
+ {AI_CA_MOVE_TO_TARGETS}
+ [/stage]
+[/ai]
View
22 data/ai/dev/formula_ai_poisoning.cfg
@@ -0,0 +1,22 @@
+#textdomain wesnoth
+
+[ai]
+ id=default_ai_poisoning
+ description= Default AI with poisoning formula
+ version=10703
+ [stage]
+ engine=cpp
+ name=testing_ai_default::candidate_action_evaluation_loop #this is candidate action evaluation loop stage
+ [candidate_action] #it consists of several candidate actions
+ engine=fai # fai engine is temporary disabled, it will be enabled real soon. Note that the rest of parameters are parsed by formula ai engine
+ name=poisoner #this paramerer (and the rest of them), are specific to fai engine
+ type=attack
+ [filter]
+ me="filter( input, 'me', filter(me.attacks,'att',filter(att.special,'spe',contains_string(spe,'poison'))))"
+ target="filter( input, 'target', target.undead = 0 and target.hitpoints > 5 and index_of('poisoned',keys(target.states)) = -1)"
+ [/filter]
+ evaluation="{ai/formula/poisoner_eval.fai}"
+ action="{ai/formula/poisoner_attack.fai}"
+ [/candidate_action]
+ [/stage]
+[/ai]
View
7 data/ai/dev/idle_ai.cfg
@@ -0,0 +1,7 @@
+#textdomain wesnoth
+[ai]
+ id=ai_idle
+ description=Idle AI
+ version=10703
+ #well, we can just fall back to idle ai. But we can just do nothing, and it will work (if no additional stages are brought in by other config sources - MP faction config, scenario config, era config, defaults, etc
+[/ai]
View
26 data/ai/dev/testing_recruiting.cfg
@@ -0,0 +1,26 @@
+#textdomain wesnoth
+
+[ai]
+ id=testing_ai_recruitment
+ description="Experimental Recruitment AI"
+ version=10800
+ [stage]
+ id=main_loop
+ name=testing_ai_default::candidate_action_evaluation_loop
+ {AI_CA_GOTO}
+ [candidate_action]
+ id=alternate_recruitment
+ engine=cpp
+ name=testing_ai_default::testing_recruitment_phase
+ max_score={AI_CA_RECRUITMENT_SCORE}
+ score={AI_CA_RECRUITMENT_SCORE}
+ [/candidate_action]
+ {AI_CA_MOVE_LEADER_TO_GOALS}
+ {AI_CA_MOVE_LEADER_TO_KEEP}
+ {AI_CA_COMBAT}
+ {AI_CA_HEALING}
+ {AI_CA_VILLAGES}
+ {AI_CA_RETREAT}
+ {AI_CA_MOVE_TO_TARGETS}
+ [/stage]
+[/ai]
View
28 data/ai/formula/level_up_attack_eval.fai
@@ -0,0 +1,28 @@
+fai 'level_up_attack_move.fai'
+
+# Score will be the probability * 100 of attacker unit (me) killing target unit #
+# (target) if attacker can level up and if the highest probable outcome #
+# is attacker killing target. #
+
+# function calc_exp returns exp gain for a kill of unit with level#
+def calc_exp(level)
+ if(level = 0, 4, level * 8);
+
+# function returns best defensive loc reachable by attacker to attack enemy #
+def get_best_defense_loc(moves, attacker, enemy)
+ choose(filter(map(filter(moves, src=attacker.loc), dst),
+ distance_between(self, enemy.loc) = 1),
+ defense_on(attacker.loc, self));
+
+if(calc_exp(target.level) > (me.max_experience - me.experience),
+ if(battle_outcome[1].hitpoints_left[0] = 0,
+ if(battle_outcome[0].hitpoints_left[0] > 0,
+ if(max(battle_outcome[1].probability) = battle_outcome[1].probability[0],
+ battle_outcome[1].probability[0] / 100,
+ -5),
+ -5),
+ -5),
+ -5)
+where battle_outcome = calculate_outcome(me.loc, get_best_defense_loc(my_moves.moves, me, target), target.loc)
+
+faiend
View
10 data/ai/formula/level_up_attack_move.fai
@@ -0,0 +1,10 @@
+fai 'level_up_attack_move.fat'
+
+# If move is chosen, attacker (me) will attack enemy unit (target) from the hex #
+# with highest defensive value. This move will only be chosen if the attacker #
+# can level up with a kill of target and has a high probability of killing in #
+# a single round #
+
+attack(me.loc, get_best_defense_loc(my_moves.moves, me, target), target.loc)
+
+faiend
View
107 data/ai/formula/lib/map_evaluation.fai
@@ -0,0 +1,107 @@
+fai 'ai/formula/lib/map_evaluation.fai' #===== Evaluation how good unit is on a map ===== #
+
+# filter out important locations #
+
+# creates a 'map' data type that assigns terrain to location #
+def location_to_terrain_map(ai*)
+ tomap( map(map.terrain, loc), map.terrain );
+
+# creates a 'map' data type that assigns location to terrain#
+def id_to_location_map(ai*)
+ map( tomap( map(map.terrain, id)), find(map.terrain, id=key).loc);
+
+#this function returns all input hexes and hexes within some radius of them#
+def get_locations_surroundings(ai*, input_locs, range)
+ sum(
+ map(input_locs,
+ locations_in_radius( self, range)
+ )
+ );
+
+#this function returns all keeps and hexes within some radius#
+def get_keeps_with_surroundings(ai*, range)
+ sum(map(keeps, locations_in_radius( self, range)));
+
+
+
+
+# evaluate average defense #
+
+#gives map where key is id of terrain, and value is number of hexes of that terrain on a gamemap#
+def locations_map(ai*)
+ tomap(
+ map(
+ map.terrain,
+ id
+ )
+ );
+
+
+#
+filters terrain map,
+min_percent it minimal % of map that terrain has to occupy to be considered in later evaluations
+#
+def filtered_locations_map(ai*, min_percent)
+ filter(
+ locations_map(ai) ,
+ value > (map.w * map.h) / ( 100 / min_percent )
+ );
+
+
+#returns average defense of the unit #
+def unit_average_defense(ai*, unit, terrain_min_percent )
+ sum(
+ values(
+ map(
+ filtered_locations_map(ai,terrain_min_percent),
+ defense_on(
+ unit,
+ find(map.terrain,id=key).loc
+ ) *
+ value
+ )
+ )
+ ) /
+ sum(
+ values(
+ filtered_locations_map(
+ ai,
+ terrain_min_percent
+ )
+ )
+ );
+
+#returns map of units from units_list and their average defense (more -> better) #
+
+def map_units_average_defense(ai*, units_list, terrain_min_percent)
+ tomap(
+ map(
+ units_list,
+ id
+ ),
+ map(
+ units_list, 'unit',
+ unit_average_defense(
+ ai,
+ unit,
+ terrain_min_percent
+ )
+ )
+ );
+
+def units_average_defense(ai*, units_list, terrain_min_percent)
+ sum(
+ map(
+ units_list, 'unit',
+ unit_average_defense(
+ ai,
+ unit,
+ terrain_min_percent
+ )
+ )
+ ) /
+ size(
+ units_list
+ );
+
+faiend
View
32 data/ai/formula/lib/recruitment.fai
@@ -0,0 +1,32 @@
+fai 'ai/formula/lib/recruitment.fai'
+
+def recruit_army(ai*,unit_map)
+ choose(
+ filter(
+ filter(
+ keys( unit_map ), 'unit',
+ get_unit_type( unit ).cost <= my_side.gold
+ ), 'unit_type',
+ (
+ unit_map[unit_type] -
+ (
+ (
+ 100 *
+ size(
+ filter(
+ my_units,
+ type = unit_type
+ )
+ )
+ ) /
+ size(my_units)
+ )
+ ) >= 0
+ ),
+ value
+ );
+
+
+
+
+faiend
View
52 data/ai/formula/lib/util.fai
@@ -0,0 +1,52 @@
+fai 'ai/formula/lib/util.fai'
+
+def sumarize_values( input_map )
+ sum(
+ values(input_map)
+ );
+
+def average( input_list )
+ sum( input_list ) / input_list.size;
+
+def lowest_value( input_map )
+ choose( input_map, -value ).value;
+
+def highest_value( input_map )
+ choose( input_map, value ).value;
+
+#
+this function takes map with numerical values, and converts it to %:
+[ 'a' -> 3, 'b' -> 12, 'c' -> 15 ] becomes [ 'a' -> 10, 'b' -> 40, 'c' -> 50 ]
+#
+def change_numbers_to_percents( input_map )
+ map( input_map,
+ (value*100) / sum
+ ) where sum = sumarize_values(input_map);
+
+def add_number_to_values( input_map, number )
+ map( input_map,
+ value + number
+ );
+
+def multiply_values( input_map, number )
+ map( input_map,
+ value * number
+ );
+
+#make sure we have only positive values in a map #
+def make_positive_only( input_map )
+ if( lowest < 0,
+ add_number_to_values(
+ input_map,
+ -lowest
+ ),
+ input_map
+ )
+ where lowest = lowest_value( input_map );
+
+def sumarize_maps_values( map_A, map_B )
+ map( map_A + map_B,
+ value + map_A[key]
+ );
+
+faiend
View
341 data/ai/formula/new_recruitment.fai
@@ -0,0 +1,341 @@
+fai 'new_recruitment.fai'
+
+{ai/formula/lib/map_evaluation.fai}
+{ai/formula/lib/util.fai}
+{ai/formula/lib/recruitment.fai}
+
+def get_terrain_types(ai*, locations)
+ map( locations, 'l', fast_map[l].id ) where fast_map = location_to_terrain_map(ai);
+
+
+def get_villages_on_terrain_map( ai*, locations_map )
+ filter( villages, locations_map[self] );
+
+#
+for now important locations are villages only
+#
+def mark_important_locations(ai*, location_map )
+ map( location_map,
+ if( tmp_villages[key],
+ 1000,
+ value
+ )
+ )
+ where tmp_villages = tomap( get_locations_surroundings( ai, get_villages_on_terrain_map( ai, location_map ), 1 ) );
+
+def get_important_locations(ai* )
+ keys(
+ map( ai.vars.side_terrain,
+ value >= 1000
+ )
+ );
+
+def enemy_leaders( ai* )
+ sum(
+ map( enemies, 'enemy',
+ filter( units_of_side[enemy], leader )
+ )
+ );
+
+def find_enemies_part( ai*, locations_map)
+ tomap(
+ enemy_leaders,
+ map( enemy_leaders, 'leader',
+ sum(
+ map( keys(locations_map), 'location',
+ distance_between( location, leader.loc )
+ )
+ )
+ )
+ )
+ where enemy_leaders = enemy_leaders( ai );
+
+def find_enemies( ai*, locations_map)
+ filter( keys(enemies_part), 'leader',
+ enemies_part[leader] <= average( values( enemies_part ) )
+ )
+ where enemies_part = find_enemies_part( ai, locations_map );
+
+
+def direct_enemies_units( ai* )
+ sum(
+ map( vars.direct_enemies, 'enemy',
+ units_of_side[enemy.side]
+ )
+ );
+
+def direct_enemies_recruits( ai* )
+ sum(
+ map( vars.direct_enemies, 'enemy',
+ recruits_of_side[enemy.side]
+ )
+ );
+
+#
+returns map of important locations and number of their occurences on a gamemap
+for example: [ 'forest' -> 10 ]
+#
+def important_locations_map(ai*)
+ tomap(get_terrain_types(ai, get_important_locations(ai)));
+
+
+def my_recruits_defense(ai*)
+ tomap( map(my_recruits, id),
+ map( my_recruits, 'recruit',
+ sum(values(map( important_locs,
+ defense_on(recruit, id_translator[key]) * value
+ )))
+ )
+ )
+ where important_locs = important_locations_map(ai),
+ id_translator = id_to_location_map(ai);
+
+def my_recruits_movement_cost(ai*)
+ tomap( map(my_recruits, id),
+ map( my_recruits, 'recruit',
+ sum(values(map( important_locs,
+ movement_cost(recruit, id_translator[key]) * value
+ )))
+ )
+ )
+ where important_locs = important_locations_map(ai),
+ id_translator = id_to_location_map(ai);
+
+def locally_normalize_to_highest( input_map )
+ map( input_map, if(max=0,100,(value * 100)/max) )
+ where max = highest_value(input_map);
+
+def locally_normalize_to_lowest( input_map )
+ map( input_map, if(min=0,100,(value * 100)/min) )
+ where min = lowest_value(input_map);
+
+
+
+# look for who we fight against #
+def enemy_leaders(ai*)
+ map( enemies, 'enemy_side', find(units_of_side[enemy_side], leader ) );
+
+
+def distance_to_enemies(ai*)
+ tomap( enemies, map( enemy_leaders(ai), distance_between( my_leader.loc, loc ) ));
+
+# not used anymore
+def find_important_opponents(ai*)
+ keys(filter( dist_en, value<avg ))
+ where avg = (average(values(distance_to_enemies(ai)))*11)/10,
+ dist_en = distance_to_enemies(ai);
+
+
+def current_enemies_units(ai*)
+ sum(map( find_important_opponents(ai), 'enemy_side',
+ units_of_side[ enemy_side ] ));
+
+def current_enemies_recruits(ai*)
+ sum(map( find_important_opponents(ai), 'enemy_side',
+ recruits_of_side[ enemy_side ] ));
+#
+
+def current_enemies(ai*)
+ if( en_units.size > 5, en_units, en_recruis )
+ where en_units = direct_enemies_units(ai),
+ en_recruis = direct_enemies_recruits(ai);
+
+
+def evaluate_attacker_against_opponents(ai*, unit, enemy_units)
+ sum(
+ map(
+ enemy_units, 'enemy_unit',
+ sum(
+ map(
+ [
+ max_possible_damage_with_retaliation( unit, enemy_unit )
+ ],
+ max(
+ [
+ self[0],
+ self[1]
+ ]
+ )*3
+ )
+ )
+ )
+ );
+
+def evaluate_defender_against_opponents(ai*, unit, enemy_units)
+ sum(
+ map(
+ enemy_units, 'enemy_unit',
+ sum(
+ map(
+ [
+ max_possible_damage_with_retaliation( enemy_unit, unit )
+ ],
+ max(
+ [
+ self[0] - self[2],
+ self[1] - self[3]
+ ]
+ )*5
+ )
+ )
+ )
+ );
+
+def evaluate_recruits_offensive_combat(ai*, recruits, enemy_units)
+ map( recruits, 'recruit',
+ evaluate_attacker_against_opponents( ai, recruit, enemy_units )
+ );
+
+def evaluate_recruits_defensive_combat(ai*, recruits, enemy_units)
+ map( recruits, 'recruit',
+ evaluate_defender_against_opponents( ai, recruit, enemy_units )
+ );
+
+def combine_maps_mul( map_A, map_B )
+ map( map_A, value * map_B[key] );
+
+def combine_maps_sub( map_A, map_B )
+ map( map_A, value - map_B[key] );
+
+def combine_maps_add( map_A, map_B )
+ map( map_A, value + map_B[key] );
+
+def combine_maps_div( map_A, map_B )
+ map( map_A, value / map_B[key] );
+
+#
+[ locally_normalize_to_highest(my_recruits_defense(self)),
+tomap(map(my_recruits, id),map(my_recruits, hitpoints) ),
+ locally_normalize_to_lowest(my_recruits_movement_cost(self)),
+tomap(map(my_recruits, id),map(my_recruits, total_movement))]
+#
+
+def consider_unit_cost(ai*)
+ make_positive_only(map( cost_map, (value - average(values(cost_map))) * 80))
+ where cost_map = tomap(map(my_recruits, id),map(my_recruits, cost ));
+
+