From 7c2e9027c25561bc7c4d543b9921951211e5496b Mon Sep 17 00:00:00 2001 From: Ykkrosh Date: Sat, 9 Jan 2010 19:20:14 +0000 Subject: [PATCH] # Rewrite of the game's simulation system Giant merge from http://svn.wildfiregames.com/hg-source/file/5fb522019d5e Infrastructure is largely complete, gameplay is largely missing Disabled by default; use command-line flag "-sim2" (Second attempt at commit...) This was SVN commit r7259. --- .../components/addentity/test-addentity.js | 11 + .../_test.sim/simulation/components/error.js | 12 + .../simulation/components/test-entityid.js | 12 + .../simulation/components/test-helper.js | 7 + .../simulation/components/test-hotload1.js | 23 + .../simulation/components/test-hotload2.js | 11 + .../simulation/components/test-msg.js | 32 + .../simulation/components/test-param.js | 31 + .../simulation/components/test-query.js | 26 + .../simulation/components/test-serialize.js | 68 ++ .../_test.sim/simulation/components/test.js | 45 ++ .../simulation/helpers/test-helper.js | 5 + .../_test.sim/simulation/templates/basic.xml | 4 + .../simulation/templates/hotload.xml | 6 + .../simulation/templates/inherit-broken.xml | 2 + .../simulation/templates/inherit-loop-2.xml | 2 + .../simulation/templates/inherit-loop.xml | 2 + .../simulation/templates/inherit1.xml | 8 + .../simulation/templates/inherit2.xml | 7 + .../templates/template-serialize.xml | 4 + .../simulation/templates/test1-inherit.xml | 6 + .../_test.sim/simulation/templates/test1.xml | 9 + .../gui/common/functions_global_object.js | 2 +- .../gui/common/functions_page_pregame_load.js | 4 +- .../data/mods/public/gui/common/setup.xml | 46 +- .../data/mods/public/gui/loading/loading.js | 5 +- .../data/mods/public/gui/msgbox/msgbox.xml | 6 +- .../data/mods/public/gui/page_session_new.xml | 9 + .../data/mods/public/gui/session/session.js | 2 +- .../data/mods/public/gui/session_new/input.js | 72 ++ .../mods/public/gui/session_new/selection.js | 46 ++ .../mods/public/gui/session_new/session.js | 22 + .../mods/public/gui/session_new/session.xml | 74 ++ .../simulation/components/GuiInterface.js | 31 + .../simulation/components/MotionBall.js | 32 + .../simulation/components/tests/setup.js | 38 + .../components/tests/test_GuiInterface.js | 14 + .../public/simulation/helpers/Commands.js | 30 + .../simulation/templates/foundation_1x1.xml | 6 + .../simulation/templates/foundation_2x2.xml | 6 + .../simulation/templates/foundation_3x3.xml | 6 + .../simulation/templates/foundation_3x6.xml | 6 + .../simulation/templates/foundation_4x4.xml | 6 + .../simulation/templates/foundation_5x5.xml | 6 + .../simulation/templates/foundation_6x6.xml | 6 + .../simulation/templates/foundation_field.xml | 6 + .../templates/foundation_theatron.xml | 6 + .../simulation/templates/gaia/fauna_bear.xml | 6 + .../simulation/templates/gaia/fauna_boar.xml | 6 + .../templates/gaia/fauna_chicken.xml | 6 + .../simulation/templates/gaia/fauna_deer.xml | 6 + .../templates/gaia/fauna_elephant.xml | 6 + .../gaia/fauna_elephant_african_bush.xml | 6 + .../gaia/fauna_elephant_african_infant.xml | 6 + .../gaia/fauna_elephant_north_african.xml | 6 + .../templates/gaia/fauna_gazelle.xml | 6 + .../simulation/templates/gaia/fauna_goat.xml | 6 + .../simulation/templates/gaia/fauna_lion.xml | 6 + .../templates/gaia/fauna_muskox.xml | 6 + .../simulation/templates/gaia/fauna_pig.xml | 6 + .../templates/gaia/fauna_rabbit.xml | 6 + .../simulation/templates/gaia/fauna_sheep.xml | 6 + .../simulation/templates/gaia/fauna_tiger.xml | 6 + .../templates/gaia/fauna_walrus.xml | 6 + .../simulation/templates/gaia/fauna_wolf.xml | 6 + .../templates/gaia/fauna_wolf_snow.xml | 6 + .../simulation/templates/gaia/fauna_zebra.xml | 6 + .../templates/gaia/flora_bush_berry.xml | 6 + .../templates/gaia/flora_bush_temperate.xml | 6 + .../templates/gaia/flora_tree_aleppo_pine.xml | 6 + .../templates/gaia/flora_tree_baobab.xml | 6 + .../templates/gaia/flora_tree_carob.xml | 6 + .../templates/gaia/flora_tree_date_palm.xml | 6 + .../templates/gaia/flora_tree_euro_beech.xml | 6 + .../gaia/flora_tree_medit_fan_palm.xml | 6 + .../templates/gaia/flora_tree_oak.xml | 6 + .../templates/gaia/flora_tree_oak_large.xml | 6 + .../templates/gaia/flora_tree_pine.xml | 6 + .../templates/gaia/flora_tree_pine_w.xml | 6 + .../templates/gaia/flora_tree_poplar.xml | 6 + .../gaia/flora_tree_poplar_lombardy.xml | 6 + .../gaia/flora_tree_senegal_date_palm.xml | 6 + .../templates/gaia/geology_metal_alpine.xml | 6 + .../gaia/geology_metal_desert_small.xml | 6 + .../templates/gaia/geology_metal_greek.xml | 6 + .../gaia/geology_metal_mediterranean.xml | 6 + .../gaia/geology_metal_temperate.xml | 6 + .../templates/gaia/geology_metal_tropic.xml | 6 + .../templates/gaia/geology_stone_alpine_a.xml | 6 + .../gaia/geology_stone_desert_small.xml | 6 + .../templates/gaia/geology_stone_greek.xml | 6 + .../templates/gaia/geology_stone_light.xml | 6 + .../gaia/geology_stone_mediterranean.xml | 6 + .../gaia/geology_stone_savanna_small.xml | 6 + .../gaia/geology_stone_temperate.xml | 6 + .../templates/gaia/geology_stone_tropic_a.xml | 6 + .../templates/gaia/special_settlement.xml | 6 + .../templates/other/camp_mace_hypaspist.xml | 6 + .../templates/structures/celt_barracks.xml | 6 + .../structures/celt_civil_centre.xml | 6 + .../templates/structures/celt_corral.xml | 6 + .../templates/structures/celt_dock.xml | 6 + .../templates/structures/celt_farmstead.xml | 6 + .../templates/structures/celt_field.xml | 6 + .../templates/structures/celt_fortress_b.xml | 6 + .../templates/structures/celt_fortress_g.xml | 6 + .../templates/structures/celt_house.xml | 6 + .../templates/structures/celt_market.xml | 6 + .../templates/structures/celt_mill.xml | 6 + .../templates/structures/celt_sb1.xml | 6 + .../templates/structures/celt_scout_tower.xml | 6 + .../templates/structures/celt_temple.xml | 6 + .../templates/structures/celt_wall.xml | 6 + .../templates/structures/celt_wall_gate.xml | 6 + .../templates/structures/celt_wall_long.xml | 6 + .../templates/structures/celt_wall_tower.xml | 6 + .../templates/structures/hele_barracks.xml | 6 + .../structures/hele_civil_centre.xml | 6 + .../templates/structures/hele_corral.xml | 6 + .../templates/structures/hele_dock.xml | 6 + .../templates/structures/hele_farmstead.xml | 6 + .../templates/structures/hele_field.xml | 6 + .../templates/structures/hele_fortress.xml | 6 + .../templates/structures/hele_gymnasion.xml | 6 + .../templates/structures/hele_house.xml | 6 + .../templates/structures/hele_market.xml | 6 + .../templates/structures/hele_mill.xml | 6 + .../templates/structures/hele_scout_tower.xml | 6 + .../templates/structures/hele_temple.xml | 6 + .../templates/structures/hele_theatron.xml | 6 + .../templates/structures/hele_tholos.xml | 6 + .../templates/structures/hele_wall.xml | 6 + .../templates/structures/hele_wall_gate.xml | 6 + .../templates/structures/hele_wall_long.xml | 6 + .../templates/structures/hele_wall_tower.xml | 6 + .../simulation/templates/template_corpse.xml | 3 + .../templates/template_entity_full.xml | 9 + .../templates/template_entity_quasi.xml | 9 + .../templates/template_foundation.xml | 3 + .../simulation/templates/template_gaia.xml | 3 + .../templates/template_gaia_flora.xml | 3 + .../templates/template_gaia_flora_bush.xml | 3 + .../template_gaia_flora_bush_berry.xml | 3 + .../templates/template_gaia_flora_tree.xml | 3 + .../templates/template_gaia_geo.xml | 3 + .../templates/template_gaia_geo_mineral.xml | 3 + .../templates/template_gaia_geo_rock.xml | 3 + .../templates/template_structure.xml | 3 + .../templates/template_structure_civic.xml | 3 + .../template_structure_civic_civil_centre.xml | 3 + .../template_structure_civic_house.xml | 3 + .../template_structure_civic_temple.xml | 3 + ...template_structure_defense_scout_tower.xml | 3 + .../template_structure_defense_wall.xml | 3 + .../template_structure_defense_wall_gate.xml | 3 + .../template_structure_defense_wall_tower.xml | 3 + .../templates/template_structure_economic.xml | 3 + .../template_structure_economic_farmstead.xml | 3 + .../template_structure_economic_market.xml | 3 + .../template_structure_economic_mill.xml | 3 + .../template_structure_gaia_settlement.xml | 3 + .../templates/template_structure_military.xml | 3 + .../template_structure_military_barracks.xml | 3 + .../template_structure_military_dock.xml | 3 + .../template_structure_military_fortress.xml | 3 + .../templates/template_structure_resource.xml | 3 + .../template_structure_resource_corral.xml | 3 + .../template_structure_resource_field.xml | 3 + .../templates/template_structure_special.xml | 3 + .../simulation/templates/template_unit.xml | 4 + .../templates/template_unit_cavalry.xml | 3 + .../templates/template_unit_cavalry_melee.xml | 3 + .../template_unit_cavalry_melee_spearman.xml | 3 + .../template_unit_cavalry_melee_swordsman.xml | 3 + .../template_unit_cavalry_ranged.xml | 3 + .../template_unit_cavalry_ranged_archer.xml | 3 + ...emplate_unit_cavalry_ranged_javelinist.xml | 3 + .../templates/template_unit_fauna.xml | 3 + .../templates/template_unit_fauna_breed.xml | 3 + .../template_unit_fauna_breed_passive.xml | 3 + .../templates/template_unit_fauna_herd.xml | 3 + .../template_unit_fauna_herd_passive.xml | 3 + .../templates/template_unit_fauna_hunt.xml | 3 + .../template_unit_fauna_hunt_aggressive.xml | 3 + .../template_unit_fauna_hunt_defensive.xml | 3 + .../template_unit_fauna_hunt_passive.xml | 3 + .../template_unit_fauna_hunt_skittish.xml | 3 + .../template_unit_fauna_hunt_violent.xml | 3 + .../templates/template_unit_fauna_wild.xml | 3 + .../template_unit_fauna_wild_aggressive.xml | 3 + .../template_unit_fauna_wild_defensive.xml | 3 + .../template_unit_fauna_wild_passive.xml | 3 + .../template_unit_fauna_wild_violent.xml | 3 + .../templates/template_unit_hero.xml | 3 + .../templates/template_unit_hero_cavalry.xml | 3 + .../templates/template_unit_hero_infantry.xml | 3 + .../templates/template_unit_hero_ranged.xml | 3 + .../templates/template_unit_infantry.xml | 3 + .../template_unit_infantry_melee.xml | 3 + .../template_unit_infantry_melee_spearman.xml | 3 + ...template_unit_infantry_melee_swordsman.xml | 3 + .../template_unit_infantry_ranged.xml | 3 + .../template_unit_infantry_ranged_archer.xml | 3 + ...mplate_unit_infantry_ranged_javelinist.xml | 3 + .../template_unit_infantry_ranged_slinger.xml | 3 + .../templates/template_unit_mechanical.xml | 3 + .../template_unit_mechanical_ship.xml | 3 + .../template_unit_mechanical_ship_bireme.xml | 3 + ...template_unit_mechanical_ship_merchant.xml | 3 + ...plate_unit_mechanical_ship_quinquereme.xml | 3 + .../template_unit_mechanical_ship_trireme.xml | 3 + .../template_unit_mechanical_siege.xml | 3 + ...emplate_unit_mechanical_siege_ballista.xml | 3 + .../template_unit_mechanical_siege_onager.xml | 3 + .../template_unit_mechanical_siege_ram.xml | 3 + .../templates/template_unit_super.xml | 3 + .../templates/template_unit_super_cavalry.xml | 3 + .../template_unit_super_infantry.xml | 3 + .../templates/template_unit_super_ranged.xml | 3 + .../templates/template_unit_super_siege.xml | 3 + .../templates/template_unit_support.xml | 3 + .../template_unit_support_female_citizen.xml | 3 + .../template_unit_support_healer.xml | 3 + .../template_unit_support_trader.xml | 3 + .../units/celt_cavalry_javelinist_a.xml | 6 + .../units/celt_cavalry_javelinist_b.xml | 6 + .../units/celt_cavalry_javelinist_e.xml | 6 + .../units/celt_cavalry_spearman_a.xml | 6 + .../units/celt_cavalry_spearman_b.xml | 6 + .../units/celt_cavalry_spearman_e.xml | 6 + .../units/celt_cavalry_swordsman_a.xml | 6 + .../units/celt_cavalry_swordsman_b.xml | 6 + .../units/celt_cavalry_swordsman_e.xml | 6 + .../templates/units/celt_hero_boudicca.xml | 6 + .../templates/units/celt_hero_brennus.xml | 6 + .../templates/units/celt_hero_britomartus.xml | 6 + .../templates/units/celt_hero_caratacos.xml | 6 + .../templates/units/celt_hero_cynvelin.xml | 6 + .../units/celt_hero_vercingetorix.xml | 6 + .../units/celt_infantry_javelinist_a.xml | 6 + .../units/celt_infantry_javelinist_b.xml | 6 + .../units/celt_infantry_javelinist_e.xml | 6 + .../units/celt_infantry_spearman_a.xml | 6 + .../units/celt_infantry_spearman_b.xml | 6 + .../units/celt_infantry_spearman_e.xml | 6 + .../templates/units/celt_ship_merchant.xml | 6 + .../templates/units/celt_ship_trireme.xml | 6 + .../units/celt_super_cavalry_brit.xml | 6 + .../units/celt_super_cavalry_gaul.xml | 6 + .../units/celt_super_infantry_brit.xml | 6 + .../units/celt_super_infantry_gaul.xml | 6 + .../units/celt_support_female_citizen.xml | 6 + .../templates/units/celt_support_healer.xml | 6 + .../templates/units/celt_support_trader.xml | 6 + .../units/hele_cavalry_swordsman_a.xml | 6 + .../units/hele_cavalry_swordsman_b.xml | 6 + .../units/hele_cavalry_swordsman_e.xml | 6 + .../templates/units/hele_hero_alexander.xml | 6 + .../templates/units/hele_hero_demetrius.xml | 6 + .../templates/units/hele_hero_leonidas.xml | 6 + .../templates/units/hele_hero_philip.xml | 6 + .../units/hele_hero_themistocles.xml | 6 + .../templates/units/hele_hero_xenophon.xml | 6 + .../units/hele_infantry_archer_a.xml | 6 + .../units/hele_infantry_archer_b.xml | 6 + .../units/hele_infantry_archer_e.xml | 6 + .../units/hele_infantry_javelinist_a.xml | 6 + .../units/hele_infantry_javelinist_b.xml | 6 + .../units/hele_infantry_javelinist_e.xml | 6 + .../units/hele_infantry_spearman_a.xml | 6 + .../units/hele_infantry_spearman_b.xml | 6 + .../units/hele_infantry_spearman_e.xml | 6 + .../units/hele_mechanical_siege_helepolis.xml | 6 + .../hele_mechanical_siege_lithobolos.xml | 6 + .../units/hele_mechanical_siege_oxybeles.xml | 6 + .../templates/units/hele_ship_bireme.xml | 6 + .../templates/units/hele_ship_merchant.xml | 6 + .../templates/units/hele_ship_trireme.xml | 6 + .../units/hele_ship_trireme_corinthian.xml | 6 + .../units/hele_super_cavalry_mace.xml | 6 + .../units/hele_super_infantry_mace.xml | 6 + .../units/hele_super_infantry_polis.xml | 6 + .../units/hele_super_ranged_polis.xml | 6 + .../units/hele_support_female_citizen.xml | 6 + .../templates/units/hele_support_healer.xml | 6 + .../templates/units/hele_support_trader.xml | 6 + binaries/data/tests/test_setup.js | 39 + .../data/tools/atlas/scripts/section/map.js | 32 + build/docs/builddoc.bat | 2 +- build/docs/builddoc.sh | 2 +- build/errorlist/errorlist.exe | Bin 581694 -> 0 bytes build/errorlist/errorlist.pl | 32 +- build/premake/extern_libs.lua | 2 + build/premake/premake.lua | 31 +- docs/doxygen/config | 28 + source/graphics/GameView.cpp | 13 + source/graphics/MapIO.h | 10 +- source/graphics/MapReader.cpp | 255 +++++-- source/graphics/MapReader.h | 8 - source/graphics/MapWriter.cpp | 53 +- source/graphics/MeshManager.h | 3 +- source/graphics/Overlay.h | 35 + source/graphics/Terrain.cpp | 97 ++- source/graphics/Terrain.h | 19 +- source/graphics/UnitManager.cpp | 1 + source/graphics/tests/test_MeshManager.h | 12 - source/graphics/tests/test_Terrain.h | 98 +++ source/gui/CGUI.h | 3 +- source/gui/GUIManager.cpp | 71 +- source/gui/GUIManager.h | 45 +- source/gui/IGUIObject.cpp | 9 +- source/gui/scripting/GuiScriptConversions.cpp | 132 ++++ source/gui/scripting/ScriptFunctions.cpp | 221 ++++++ source/gui/scripting/ScriptFunctions.h | 25 + source/i18n/Interface.cpp | 2 +- source/lib/debug.h | 1 + source/lib/external_libraries/cryptopp.h | 41 + source/lib/external_libraries/dbghelp_funcs.h | 17 + source/lib/file/file_system.h | 2 + source/lib/file/vfs/vfs_path.h | 2 + source/lib/lib_errors.h | 2 + source/lib/path_util.h | 2 + source/lib/posix/posix_types.h | 5 + source/lib/precompiled.h | 32 +- source/lib/self_test.h | 54 +- source/lib/sysdep/os/win/wposix/waio.h | 1 + source/lib/sysdep/tests/test_sysdep.h | 1 + source/main.cpp | 6 + source/maths/Fixed.cpp | 55 ++ source/maths/Fixed.h | 156 ++++ source/maths/FixedVector3D.h | 162 ++++ source/maths/MathUtil.h | 19 +- source/maths/Sqrt.cpp | 48 ++ source/maths/Sqrt.h | 27 + source/maths/tests/test_Fixed.h | 162 ++++ source/maths/tests/test_FixedVector3D.h | 114 +++ source/maths/tests/test_Sqrt.h | 86 +++ source/mocks/dlfcn.h | 17 + source/mocks/mocks_real.cpp | 17 + source/mocks/mocks_test.cpp | 17 + source/mocks/unistd.h | 17 + source/network/SocketBase.cpp | 2 + source/pch/gui/precompiled.h | 2 - source/pch/i18n/precompiled.h | 5 +- source/pch/network/precompiled.h | 7 +- source/pch/scriptinterface/precompiled.cpp | 18 + source/pch/scriptinterface/precompiled.h | 19 + source/pch/simulation2/precompiled.cpp | 18 + source/pch/simulation2/precompiled.h | 24 + source/ps/ConfigDB.cpp | 1 + source/ps/Errors.cpp | 721 ++++++++++++------ source/ps/Errors.h | 62 +- source/ps/Filesystem.cpp | 5 +- source/ps/Game.cpp | 18 + source/ps/Game.h | 12 + source/ps/GameSetup/GameSetup.cpp | 17 +- source/ps/Hotkey.cpp | 10 +- source/ps/Hotkey.h | 13 +- source/ps/Util.cpp | 1 + source/ps/XML/XMLWriter.cpp | 6 + source/ps/XML/Xeromyces.cpp | 24 + source/ps/XML/Xeromyces.h | 3 + source/ps/XML/tests/test_Xeromyces.h | 34 +- source/ps/utf16string.h | 6 +- source/renderer/OverlayRenderer.cpp | 80 ++ source/renderer/OverlayRenderer.h | 61 ++ source/renderer/Renderer.cpp | 23 +- source/renderer/Renderer.h | 1 + source/renderer/Scene.h | 6 + source/renderer/VertexBuffer.cpp | 1 + source/scripting/ScriptGlue.cpp | 59 +- source/scripting/ScriptableComplex.h | 2 + source/scripting/ScriptableObject.h | 6 +- source/scripting/ScriptingHost.cpp | 109 +-- source/scripting/ScriptingHost.h | 48 +- source/scriptinterface/NativeWrapperDecls.h | 70 ++ source/scriptinterface/NativeWrapperDefns.h | 116 +++ source/scriptinterface/ScriptConversions.cpp | 219 ++++++ source/scriptinterface/ScriptInterface.cpp | 465 +++++++++++ source/scriptinterface/ScriptInterface.h | 306 ++++++++ source/scriptinterface/ScriptTypes.h | 39 + source/scriptinterface/ScriptVal.cpp | 50 ++ source/scriptinterface/ScriptVal.h | 54 ++ .../tests/test_ScriptConversions.h | 178 +++++ source/scriptinterface/tests/test_ScriptVal.h | 50 ++ source/simulation2/MessageTypes.h | 86 +++ source/simulation2/Simulation2.cpp | 322 ++++++++ source/simulation2/Simulation2.h | 97 +++ source/simulation2/TypeList.h | 66 ++ .../components/CCmpCommandQueue.cpp | 105 +++ .../simulation2/components/CCmpMotionBall.cpp | 111 +++ .../simulation2/components/CCmpPosition.cpp | 299 ++++++++ .../simulation2/components/CCmpSelectable.cpp | 151 ++++ .../components/CCmpTemplateManager.cpp | 272 +++++++ source/simulation2/components/CCmpTerrain.cpp | 70 ++ source/simulation2/components/CCmpTest.cpp | 217 ++++++ .../simulation2/components/CCmpUnitMotion.cpp | 136 ++++ .../components/CCmpVisualActor.cpp | 171 +++++ .../components/ICmpCommandQueue.cpp | 27 + .../simulation2/components/ICmpCommandQueue.h | 56 ++ .../components/ICmpGuiInterface.cpp | 50 ++ .../simulation2/components/ICmpGuiInterface.h | 35 + source/simulation2/components/ICmpMotion.cpp | 34 + source/simulation2/components/ICmpMotion.h | 34 + .../simulation2/components/ICmpPosition.cpp | 36 + source/simulation2/components/ICmpPosition.h | 143 ++++ .../simulation2/components/ICmpSelectable.cpp | 28 + .../simulation2/components/ICmpSelectable.h | 37 + .../components/ICmpTemplateManager.cpp | 25 + .../components/ICmpTemplateManager.h | 73 ++ source/simulation2/components/ICmpTerrain.cpp | 26 + source/simulation2/components/ICmpTerrain.h | 36 + source/simulation2/components/ICmpTest.cpp | 29 + source/simulation2/components/ICmpTest.h | 45 ++ .../simulation2/components/ICmpUnitMotion.cpp | 27 + .../simulation2/components/ICmpUnitMotion.h | 42 + source/simulation2/components/ICmpVisual.cpp | 25 + source/simulation2/components/ICmpVisual.h | 40 + .../components/tests/test_CommandQueue.h | 71 ++ .../components/tests/test_Position.h | 131 ++++ .../components/tests/test_scripts.h | 74 ++ source/simulation2/docs/CCmpExample.cpp | 56 ++ source/simulation2/docs/ICmpExample.cpp | 14 + source/simulation2/docs/ICmpExample.h | 42 + source/simulation2/docs/SimulationDocs.h | 514 +++++++++++++ source/simulation2/helpers/Selection.cpp | 71 ++ source/simulation2/helpers/Selection.h | 42 + .../scripting/EngineScriptConversions.cpp | 201 +++++ .../scripting/MessageTypeConversions.cpp | 122 +++ .../simulation2/scripting/ScriptComponent.cpp | 79 ++ .../simulation2/scripting/ScriptComponent.h | 78 ++ .../serialization/BinarySerializer.cpp | 357 +++++++++ .../serialization/BinarySerializer.h | 57 ++ .../serialization/DebugSerializer.cpp | 158 ++++ .../serialization/DebugSerializer.h | 62 ++ .../serialization/HashSerializer.cpp | 41 + .../serialization/HashSerializer.h | 44 ++ .../serialization/IDeserializer.cpp | 162 ++++ .../simulation2/serialization/IDeserializer.h | 78 ++ .../simulation2/serialization/ISerializer.cpp | 127 +++ .../simulation2/serialization/ISerializer.h | 216 ++++++ .../serialization/SerializedScriptTypes.h | 34 + .../serialization/StdDeserializer.cpp | 214 ++++++ .../serialization/StdDeserializer.h | 52 ++ .../serialization/StdSerializer.cpp | 32 + .../simulation2/serialization/StdSerializer.h | 35 + source/simulation2/system/CmpPtr.cpp | 34 + source/simulation2/system/CmpPtr.h | 76 ++ source/simulation2/system/Component.h | 101 +++ .../simulation2/system/ComponentManager.cpp | 454 +++++++++++ source/simulation2/system/ComponentManager.h | 169 ++++ .../system/ComponentManagerSerialization.cpp | 232 ++++++ source/simulation2/system/ComponentTest.h | 170 +++++ source/simulation2/system/Components.h | 63 ++ source/simulation2/system/Entity.h | 44 ++ source/simulation2/system/IComponent.cpp | 38 + source/simulation2/system/IComponent.h | 57 ++ source/simulation2/system/Interface.h | 28 + source/simulation2/system/InterfaceScripted.h | 76 ++ source/simulation2/system/Message.h | 38 + source/simulation2/system/ParamNode.cpp | 176 +++++ source/simulation2/system/ParamNode.h | 100 +++ source/simulation2/system/SimContext.cpp | 53 ++ source/simulation2/system/SimContext.h | 49 ++ .../tests/test_CmpTemplateManager.h | 141 ++++ .../simulation2/tests/test_ComponentManager.h | 574 ++++++++++++++ source/simulation2/tests/test_ParamNode.h | 101 +++ source/simulation2/tests/test_Serializer.h | 448 +++++++++++ source/simulation2/tests/test_Simulation2.h | 117 +++ source/test_setup.cpp | 49 +- .../atlas/AtlasScript/ScriptInterface.cpp | 2 +- source/tools/atlas/GameInterface/GameLoop.cpp | 3 +- .../GameInterface/Handlers/MiscHandlers.cpp | 6 + .../GameInterface/Handlers/ObjectHandlers.cpp | 245 ++++-- source/tools/atlas/GameInterface/Messages.h | 6 + source/tools/atlas/GameInterface/SimState.cpp | 19 + source/tools/atlas/GameInterface/SimState.h | 3 + source/tools/atlas/GameInterface/View.cpp | 38 + source/tools/atlas/GameInterface/View.h | 1 + source/tools/entconvert/entconvert.pl | 89 +++ 480 files changed, 16454 insertions(+), 775 deletions(-) create mode 100644 binaries/data/mods/_test.sim/simulation/components/addentity/test-addentity.js create mode 100644 binaries/data/mods/_test.sim/simulation/components/error.js create mode 100644 binaries/data/mods/_test.sim/simulation/components/test-entityid.js create mode 100644 binaries/data/mods/_test.sim/simulation/components/test-helper.js create mode 100644 binaries/data/mods/_test.sim/simulation/components/test-hotload1.js create mode 100644 binaries/data/mods/_test.sim/simulation/components/test-hotload2.js create mode 100644 binaries/data/mods/_test.sim/simulation/components/test-msg.js create mode 100644 binaries/data/mods/_test.sim/simulation/components/test-param.js create mode 100644 binaries/data/mods/_test.sim/simulation/components/test-query.js create mode 100644 binaries/data/mods/_test.sim/simulation/components/test-serialize.js create mode 100644 binaries/data/mods/_test.sim/simulation/components/test.js create mode 100644 binaries/data/mods/_test.sim/simulation/helpers/test-helper.js create mode 100644 binaries/data/mods/_test.sim/simulation/templates/basic.xml create mode 100644 binaries/data/mods/_test.sim/simulation/templates/hotload.xml create mode 100644 binaries/data/mods/_test.sim/simulation/templates/inherit-broken.xml create mode 100644 binaries/data/mods/_test.sim/simulation/templates/inherit-loop-2.xml create mode 100644 binaries/data/mods/_test.sim/simulation/templates/inherit-loop.xml create mode 100644 binaries/data/mods/_test.sim/simulation/templates/inherit1.xml create mode 100644 binaries/data/mods/_test.sim/simulation/templates/inherit2.xml create mode 100644 binaries/data/mods/_test.sim/simulation/templates/template-serialize.xml create mode 100644 binaries/data/mods/_test.sim/simulation/templates/test1-inherit.xml create mode 100644 binaries/data/mods/_test.sim/simulation/templates/test1.xml create mode 100644 binaries/data/mods/public/gui/page_session_new.xml create mode 100644 binaries/data/mods/public/gui/session_new/input.js create mode 100644 binaries/data/mods/public/gui/session_new/selection.js create mode 100644 binaries/data/mods/public/gui/session_new/session.js create mode 100644 binaries/data/mods/public/gui/session_new/session.xml create mode 100644 binaries/data/mods/public/simulation/components/GuiInterface.js create mode 100644 binaries/data/mods/public/simulation/components/MotionBall.js create mode 100644 binaries/data/mods/public/simulation/components/tests/setup.js create mode 100644 binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js create mode 100644 binaries/data/mods/public/simulation/helpers/Commands.js create mode 100644 binaries/data/mods/public/simulation/templates/foundation_1x1.xml create mode 100644 binaries/data/mods/public/simulation/templates/foundation_2x2.xml create mode 100644 binaries/data/mods/public/simulation/templates/foundation_3x3.xml create mode 100644 binaries/data/mods/public/simulation/templates/foundation_3x6.xml create mode 100644 binaries/data/mods/public/simulation/templates/foundation_4x4.xml create mode 100644 binaries/data/mods/public/simulation/templates/foundation_5x5.xml create mode 100644 binaries/data/mods/public/simulation/templates/foundation_6x6.xml create mode 100644 binaries/data/mods/public/simulation/templates/foundation_field.xml create mode 100644 binaries/data/mods/public/simulation/templates/foundation_theatron.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/fauna_bear.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/fauna_boar.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/fauna_chicken.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/fauna_deer.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/fauna_elephant.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/fauna_elephant_african_bush.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/fauna_elephant_african_infant.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/fauna_elephant_north_african.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/fauna_gazelle.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/fauna_goat.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/fauna_lion.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/fauna_muskox.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/fauna_pig.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/fauna_rabbit.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/fauna_sheep.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/fauna_tiger.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/fauna_walrus.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/fauna_wolf.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/fauna_wolf_snow.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/fauna_zebra.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/flora_bush_berry.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/flora_bush_temperate.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/flora_tree_aleppo_pine.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/flora_tree_baobab.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/flora_tree_carob.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/flora_tree_date_palm.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/flora_tree_euro_beech.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/flora_tree_medit_fan_palm.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/flora_tree_oak.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/flora_tree_oak_large.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/flora_tree_pine.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/flora_tree_pine_w.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/flora_tree_poplar.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/flora_tree_poplar_lombardy.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/flora_tree_senegal_date_palm.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/geology_metal_alpine.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/geology_metal_desert_small.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/geology_metal_greek.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/geology_metal_mediterranean.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/geology_metal_temperate.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/geology_metal_tropic.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/geology_stone_alpine_a.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/geology_stone_desert_small.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/geology_stone_greek.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/geology_stone_light.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/geology_stone_mediterranean.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/geology_stone_savanna_small.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/geology_stone_temperate.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/geology_stone_tropic_a.xml create mode 100644 binaries/data/mods/public/simulation/templates/gaia/special_settlement.xml create mode 100644 binaries/data/mods/public/simulation/templates/other/camp_mace_hypaspist.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/celt_barracks.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/celt_civil_centre.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/celt_corral.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/celt_dock.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/celt_farmstead.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/celt_field.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/celt_fortress_b.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/celt_fortress_g.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/celt_house.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/celt_market.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/celt_mill.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/celt_sb1.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/celt_scout_tower.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/celt_temple.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/celt_wall.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/celt_wall_gate.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/celt_wall_long.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/celt_wall_tower.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/hele_barracks.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/hele_civil_centre.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/hele_corral.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/hele_dock.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/hele_farmstead.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/hele_field.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/hele_fortress.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/hele_gymnasion.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/hele_house.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/hele_market.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/hele_mill.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/hele_scout_tower.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/hele_temple.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/hele_theatron.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/hele_tholos.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/hele_wall.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/hele_wall_gate.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/hele_wall_long.xml create mode 100644 binaries/data/mods/public/simulation/templates/structures/hele_wall_tower.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_corpse.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_entity_full.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_entity_quasi.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_foundation.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_gaia.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_gaia_flora.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_gaia_flora_bush.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_gaia_flora_bush_berry.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_gaia_flora_tree.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_gaia_geo.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_gaia_geo_mineral.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_gaia_geo_rock.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure_civic.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure_civic_house.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure_civic_temple.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure_defense_scout_tower.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure_defense_wall.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure_defense_wall_gate.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure_defense_wall_tower.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure_economic.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure_economic_farmstead.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure_economic_market.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure_economic_mill.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure_gaia_settlement.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure_military.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure_military_barracks.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure_military_dock.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure_resource.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure_resource_corral.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure_resource_field.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_structure_special.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_cavalry.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_cavalry_melee.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_cavalry_melee_spearman.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_cavalry_melee_swordsman.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_cavalry_ranged.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_cavalry_ranged_archer.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_cavalry_ranged_javelinist.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_fauna.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_fauna_breed.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_fauna_breed_passive.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_fauna_herd.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_fauna_herd_passive.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_fauna_hunt.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_fauna_hunt_aggressive.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_fauna_hunt_defensive.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_fauna_hunt_passive.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_fauna_hunt_skittish.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_fauna_hunt_violent.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_fauna_wild.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_fauna_wild_aggressive.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_fauna_wild_defensive.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_fauna_wild_passive.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_fauna_wild_violent.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_hero.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_hero_infantry.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_hero_ranged.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_infantry.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_infantry_melee.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_infantry_melee_spearman.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_infantry_melee_swordsman.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_archer.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_javelinist.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_infantry_ranged_slinger.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_mechanical.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_bireme.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_merchant.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_quinquereme.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_trireme.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_ballista.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_onager.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_ram.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_super.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_super_cavalry.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_super_infantry.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_super_ranged.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_super_siege.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_support.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_support_female_citizen.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_support_healer.xml create mode 100644 binaries/data/mods/public/simulation/templates/template_unit_support_trader.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_cavalry_javelinist_a.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_cavalry_javelinist_b.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_cavalry_javelinist_e.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_cavalry_spearman_a.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_cavalry_spearman_b.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_cavalry_spearman_e.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_cavalry_swordsman_a.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_cavalry_swordsman_b.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_cavalry_swordsman_e.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_hero_boudicca.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_hero_brennus.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_hero_britomartus.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_hero_caratacos.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_hero_cynvelin.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_hero_vercingetorix.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_infantry_javelinist_a.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_infantry_javelinist_b.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_infantry_javelinist_e.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_infantry_spearman_a.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_infantry_spearman_b.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_infantry_spearman_e.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_ship_merchant.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_ship_trireme.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_super_cavalry_brit.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_super_cavalry_gaul.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_super_infantry_brit.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_super_infantry_gaul.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_support_female_citizen.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_support_healer.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/celt_support_trader.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_cavalry_swordsman_a.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_cavalry_swordsman_b.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_cavalry_swordsman_e.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_hero_alexander.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_hero_demetrius.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_hero_leonidas.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_hero_philip.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_hero_themistocles.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_hero_xenophon.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_infantry_archer_a.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_infantry_archer_b.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_infantry_archer_e.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_infantry_javelinist_a.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_infantry_javelinist_b.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_infantry_javelinist_e.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_infantry_spearman_a.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_infantry_spearman_b.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_infantry_spearman_e.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_mechanical_siege_helepolis.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_mechanical_siege_lithobolos.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_mechanical_siege_oxybeles.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_ship_bireme.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_ship_merchant.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_ship_trireme.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_ship_trireme_corinthian.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_super_cavalry_mace.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_super_infantry_mace.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_super_infantry_polis.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_super_ranged_polis.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_support_female_citizen.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_support_healer.xml create mode 100644 binaries/data/mods/public/simulation/templates/units/hele_support_trader.xml create mode 100644 binaries/data/tests/test_setup.js delete mode 100755 build/errorlist/errorlist.exe create mode 100644 docs/doxygen/config create mode 100644 source/graphics/Overlay.h create mode 100644 source/graphics/tests/test_Terrain.h create mode 100644 source/gui/scripting/GuiScriptConversions.cpp create mode 100644 source/gui/scripting/ScriptFunctions.cpp create mode 100644 source/gui/scripting/ScriptFunctions.h create mode 100644 source/lib/external_libraries/cryptopp.h create mode 100644 source/maths/Fixed.cpp create mode 100644 source/maths/Fixed.h create mode 100644 source/maths/FixedVector3D.h create mode 100644 source/maths/Sqrt.cpp create mode 100644 source/maths/Sqrt.h create mode 100644 source/maths/tests/test_Fixed.h create mode 100644 source/maths/tests/test_FixedVector3D.h create mode 100644 source/maths/tests/test_Sqrt.h create mode 100644 source/pch/scriptinterface/precompiled.cpp create mode 100644 source/pch/scriptinterface/precompiled.h create mode 100644 source/pch/simulation2/precompiled.cpp create mode 100644 source/pch/simulation2/precompiled.h create mode 100644 source/renderer/OverlayRenderer.cpp create mode 100644 source/renderer/OverlayRenderer.h create mode 100644 source/scriptinterface/NativeWrapperDecls.h create mode 100644 source/scriptinterface/NativeWrapperDefns.h create mode 100644 source/scriptinterface/ScriptConversions.cpp create mode 100644 source/scriptinterface/ScriptInterface.cpp create mode 100644 source/scriptinterface/ScriptInterface.h create mode 100644 source/scriptinterface/ScriptTypes.h create mode 100644 source/scriptinterface/ScriptVal.cpp create mode 100644 source/scriptinterface/ScriptVal.h create mode 100644 source/scriptinterface/tests/test_ScriptConversions.h create mode 100644 source/scriptinterface/tests/test_ScriptVal.h create mode 100644 source/simulation2/MessageTypes.h create mode 100644 source/simulation2/Simulation2.cpp create mode 100644 source/simulation2/Simulation2.h create mode 100644 source/simulation2/TypeList.h create mode 100644 source/simulation2/components/CCmpCommandQueue.cpp create mode 100644 source/simulation2/components/CCmpMotionBall.cpp create mode 100644 source/simulation2/components/CCmpPosition.cpp create mode 100644 source/simulation2/components/CCmpSelectable.cpp create mode 100644 source/simulation2/components/CCmpTemplateManager.cpp create mode 100644 source/simulation2/components/CCmpTerrain.cpp create mode 100644 source/simulation2/components/CCmpTest.cpp create mode 100644 source/simulation2/components/CCmpUnitMotion.cpp create mode 100644 source/simulation2/components/CCmpVisualActor.cpp create mode 100644 source/simulation2/components/ICmpCommandQueue.cpp create mode 100644 source/simulation2/components/ICmpCommandQueue.h create mode 100644 source/simulation2/components/ICmpGuiInterface.cpp create mode 100644 source/simulation2/components/ICmpGuiInterface.h create mode 100644 source/simulation2/components/ICmpMotion.cpp create mode 100644 source/simulation2/components/ICmpMotion.h create mode 100644 source/simulation2/components/ICmpPosition.cpp create mode 100644 source/simulation2/components/ICmpPosition.h create mode 100644 source/simulation2/components/ICmpSelectable.cpp create mode 100644 source/simulation2/components/ICmpSelectable.h create mode 100644 source/simulation2/components/ICmpTemplateManager.cpp create mode 100644 source/simulation2/components/ICmpTemplateManager.h create mode 100644 source/simulation2/components/ICmpTerrain.cpp create mode 100644 source/simulation2/components/ICmpTerrain.h create mode 100644 source/simulation2/components/ICmpTest.cpp create mode 100644 source/simulation2/components/ICmpTest.h create mode 100644 source/simulation2/components/ICmpUnitMotion.cpp create mode 100644 source/simulation2/components/ICmpUnitMotion.h create mode 100644 source/simulation2/components/ICmpVisual.cpp create mode 100644 source/simulation2/components/ICmpVisual.h create mode 100644 source/simulation2/components/tests/test_CommandQueue.h create mode 100644 source/simulation2/components/tests/test_Position.h create mode 100644 source/simulation2/components/tests/test_scripts.h create mode 100644 source/simulation2/docs/CCmpExample.cpp create mode 100644 source/simulation2/docs/ICmpExample.cpp create mode 100644 source/simulation2/docs/ICmpExample.h create mode 100644 source/simulation2/docs/SimulationDocs.h create mode 100644 source/simulation2/helpers/Selection.cpp create mode 100644 source/simulation2/helpers/Selection.h create mode 100644 source/simulation2/scripting/EngineScriptConversions.cpp create mode 100644 source/simulation2/scripting/MessageTypeConversions.cpp create mode 100644 source/simulation2/scripting/ScriptComponent.cpp create mode 100644 source/simulation2/scripting/ScriptComponent.h create mode 100644 source/simulation2/serialization/BinarySerializer.cpp create mode 100644 source/simulation2/serialization/BinarySerializer.h create mode 100644 source/simulation2/serialization/DebugSerializer.cpp create mode 100644 source/simulation2/serialization/DebugSerializer.h create mode 100644 source/simulation2/serialization/HashSerializer.cpp create mode 100644 source/simulation2/serialization/HashSerializer.h create mode 100644 source/simulation2/serialization/IDeserializer.cpp create mode 100644 source/simulation2/serialization/IDeserializer.h create mode 100644 source/simulation2/serialization/ISerializer.cpp create mode 100644 source/simulation2/serialization/ISerializer.h create mode 100644 source/simulation2/serialization/SerializedScriptTypes.h create mode 100644 source/simulation2/serialization/StdDeserializer.cpp create mode 100644 source/simulation2/serialization/StdDeserializer.h create mode 100644 source/simulation2/serialization/StdSerializer.cpp create mode 100644 source/simulation2/serialization/StdSerializer.h create mode 100644 source/simulation2/system/CmpPtr.cpp create mode 100644 source/simulation2/system/CmpPtr.h create mode 100644 source/simulation2/system/Component.h create mode 100644 source/simulation2/system/ComponentManager.cpp create mode 100644 source/simulation2/system/ComponentManager.h create mode 100644 source/simulation2/system/ComponentManagerSerialization.cpp create mode 100644 source/simulation2/system/ComponentTest.h create mode 100644 source/simulation2/system/Components.h create mode 100644 source/simulation2/system/Entity.h create mode 100644 source/simulation2/system/IComponent.cpp create mode 100644 source/simulation2/system/IComponent.h create mode 100644 source/simulation2/system/Interface.h create mode 100644 source/simulation2/system/InterfaceScripted.h create mode 100644 source/simulation2/system/Message.h create mode 100644 source/simulation2/system/ParamNode.cpp create mode 100644 source/simulation2/system/ParamNode.h create mode 100644 source/simulation2/system/SimContext.cpp create mode 100644 source/simulation2/system/SimContext.h create mode 100644 source/simulation2/tests/test_CmpTemplateManager.h create mode 100644 source/simulation2/tests/test_ComponentManager.h create mode 100644 source/simulation2/tests/test_ParamNode.h create mode 100644 source/simulation2/tests/test_Serializer.h create mode 100644 source/simulation2/tests/test_Simulation2.h create mode 100644 source/tools/entconvert/entconvert.pl diff --git a/binaries/data/mods/_test.sim/simulation/components/addentity/test-addentity.js b/binaries/data/mods/_test.sim/simulation/components/addentity/test-addentity.js new file mode 100644 index 0000000000..2d17760034 --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/components/addentity/test-addentity.js @@ -0,0 +1,11 @@ +function TestScript2A() {} + +TestScript2A.prototype.Init = function() { + this.x = eval(this.template.y); +}; + +TestScript2A.prototype.GetX = function() { + return this.x; +}; + +Engine.RegisterComponentType(IID_Test2, "TestScript2A", TestScript2A); \ No newline at end of file diff --git a/binaries/data/mods/_test.sim/simulation/components/error.js b/binaries/data/mods/_test.sim/simulation/components/error.js new file mode 100644 index 0000000000..e79e828e40 --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/components/error.js @@ -0,0 +1,12 @@ +function TestScript1A() {} + +try { + Engine.RegisterComponentType(12345, "TestScript1A", TestScript1A); + Engine.TS_FAIL("Missed exception"); +} catch (e) { +// print("Caught exception: " + e + "\n"); +} + +var n = Engine.QueryInterface(12345, IID_Test1); +if (n !== null) + Engine.TS_FAIL("QueryInterface return "+n+", not null"); diff --git a/binaries/data/mods/_test.sim/simulation/components/test-entityid.js b/binaries/data/mods/_test.sim/simulation/components/test-entityid.js new file mode 100644 index 0000000000..e0541699d9 --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/components/test-entityid.js @@ -0,0 +1,12 @@ +function TestScript1A() {} + +TestScript1A.prototype.GetX = function() { + // Test that .entity is readonly + delete this.entity; + this.entity = -1; + + // and return the value + return this.entity; +}; + +Engine.RegisterComponentType(IID_Test1, "TestScript1A", TestScript1A); diff --git a/binaries/data/mods/_test.sim/simulation/components/test-helper.js b/binaries/data/mods/_test.sim/simulation/components/test-helper.js new file mode 100644 index 0000000000..ea491d4134 --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/components/test-helper.js @@ -0,0 +1,7 @@ +function TestScript1_Helper() {} + +TestScript1_Helper.prototype.GetX = function() { + return AdditionHelper(1, 2); +}; + +Engine.RegisterComponentType(IID_Test1, "TestScript1_Helper", TestScript1_Helper); diff --git a/binaries/data/mods/_test.sim/simulation/components/test-hotload1.js b/binaries/data/mods/_test.sim/simulation/components/test-hotload1.js new file mode 100644 index 0000000000..a94774fb7f --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/components/test-hotload1.js @@ -0,0 +1,23 @@ +function HotloadA() {} + +HotloadA.prototype.Init = function() { + this.x = +this.template.x; +}; + +HotloadA.prototype.GetX = function() { + return this.x; +}; + +Engine.RegisterComponentType(IID_Test1, "HotloadA", HotloadA); + +function HotloadB() {} + +HotloadB.prototype.Init = function() { + this.x = +this.template.x; +}; + +HotloadB.prototype.GetX = function() { + return this.x*2; +}; + +Engine.RegisterComponentType(IID_Test1, "HotloadB", HotloadB); \ No newline at end of file diff --git a/binaries/data/mods/_test.sim/simulation/components/test-hotload2.js b/binaries/data/mods/_test.sim/simulation/components/test-hotload2.js new file mode 100644 index 0000000000..8f4690093b --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/components/test-hotload2.js @@ -0,0 +1,11 @@ +function HotloadA() {} + +HotloadA.prototype.Init = function() { + this.x = +this.template.x; +}; + +HotloadA.prototype.GetX = function() { + return this.x*10; +}; + +Engine.RegisterComponentType(IID_Test1, "HotloadA", HotloadA); diff --git a/binaries/data/mods/_test.sim/simulation/components/test-msg.js b/binaries/data/mods/_test.sim/simulation/components/test-msg.js new file mode 100644 index 0000000000..f00949c864 --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/components/test-msg.js @@ -0,0 +1,32 @@ +function TestScript1A() {} + +TestScript1A.prototype.Init = function() { + this.x = 100; +}; + +TestScript1A.prototype.GetX = function() { + return this.x; +}; + +TestScript1A.prototype.OnUpdate = function(msg) { + this.x += msg.turnLength; +} + +Engine.RegisterComponentType(IID_Test1, "TestScript1A", TestScript1A); + +// -------- // + +function TestScript2A() {} + +TestScript2A.prototype.Init = function() { + this.x = 200; +}; + +TestScript2A.prototype.GetX = function() { + Engine.BroadcastMessage(MT_Update, { turnLength: 50 }); + Engine.PostMessage(1, MT_Update, { turnLength: 500 }); + Engine.PostMessage(2, MT_Update, { turnLength: 5000 }); + return this.x; +}; + +Engine.RegisterComponentType(IID_Test2, "TestScript2A", TestScript2A); diff --git a/binaries/data/mods/_test.sim/simulation/components/test-param.js b/binaries/data/mods/_test.sim/simulation/components/test-param.js new file mode 100644 index 0000000000..de3bb1e2ca --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/components/test-param.js @@ -0,0 +1,31 @@ +function TestScript1_Init() {} + +TestScript1_Init.prototype.Init = function() { + var param = this.template; +// print("# ",uneval(param),"\n"); + if (param) + this.x = (+param.x) + (+param.y._string) + (+param.y.z['@w']) + (+param.y.z.a); + else + this.x = 100; +}; + +TestScript1_Init.prototype.GetX = function() { + return this.x; +}; + +Engine.RegisterComponentType(IID_Test1, "TestScript1_Init", TestScript1_Init); + +// -------- // + +function TestScript1_readonly() {} + +TestScript1_readonly.prototype.GetX = function() { + this.template = null; + delete this.template; + try { this.template.x += 1000; } catch(e) { } + try { delete this.template.x; } catch(e) { } + try { this.template.y = 2000; } catch(e) { } + return +(this.template.x || 1) + +(this.template.y || 2); +}; + +Engine.RegisterComponentType(IID_Test1, "TestScript1_readonly", TestScript1_readonly); diff --git a/binaries/data/mods/_test.sim/simulation/components/test-query.js b/binaries/data/mods/_test.sim/simulation/components/test-query.js new file mode 100644 index 0000000000..c33be54e67 --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/components/test-query.js @@ -0,0 +1,26 @@ +function TestScript1A() {} + +TestScript1A.prototype.Init = function() { + this.x = 100; +}; + +TestScript1A.prototype.GetX = function() { + var test2 = Engine.QueryInterface(this.entity, IID_Test2); + return test2.GetX() + (test2.x || 0); +}; + +Engine.RegisterComponentType(IID_Test1, "TestScript1A", TestScript1A); + +// -------- // + +function TestScript2A() {} + +TestScript2A.prototype.Init = function() { + this.x = 200; +}; + +TestScript2A.prototype.GetX = function() { + return this.x; +}; + +Engine.RegisterComponentType(IID_Test2, "TestScript2A", TestScript2A); diff --git a/binaries/data/mods/_test.sim/simulation/components/test-serialize.js b/binaries/data/mods/_test.sim/simulation/components/test-serialize.js new file mode 100644 index 0000000000..64cbeb7ca6 --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/components/test-serialize.js @@ -0,0 +1,68 @@ +function TestScript1_values() {} + +TestScript1_values.prototype.Init = function() { + this.x = +this.template.x; + this.str = "this is a string"; + this.things = { a: 1, b: "2", c: [3, "4", [5, []]] }; +}; + +TestScript1_values.prototype.GetX = function() { +// print(uneval(this)); + return this.x; +}; + +Engine.RegisterComponentType(IID_Test1, "TestScript1_values", TestScript1_values); + +// -------- // + +function TestScript1_entity() {} + +TestScript1_entity.prototype.GetX = function() { + // Test that .entity is readonly + delete this.entity; + this.entity = -1; + + // and return the value + return this.entity; +}; + +Engine.RegisterComponentType(IID_Test1, "TestScript1_entity", TestScript1_entity); + +// -------- // + +function TestScript1_nontree() {} + +TestScript1_nontree.prototype.Init = function() { + var n = [1]; + this.x = [n, n, null, { y: n }]; + this.x[2] = this.x; +}; + +TestScript1_nontree.prototype.GetX = function() { +// print(uneval(this)+"\n"); + this.x[0][0] += 1; + return this.x[0][0] + this.x[1][0] + this.x[2][0][0] + this.x[3].y[0]; +} + +Engine.RegisterComponentType(IID_Test1, "TestScript1_nontree", TestScript1_nontree); + +// -------- // + +function TestScript1_getter() {} + +TestScript1_getter.prototype.Init = function() { + this.x = 100; + this.__defineGetter__('x', function () { return 200; }); +}; + +Engine.RegisterComponentType(IID_Test1, "TestScript1_getter", TestScript1_getter); + +// -------- // + +function TestScript1_consts() {} + +TestScript1_consts.prototype.GetX = function() { + return (+this.entity) + (+this.template.x); +}; + +Engine.RegisterComponentType(IID_Test1, "TestScript1_consts", TestScript1_consts); diff --git a/binaries/data/mods/_test.sim/simulation/components/test.js b/binaries/data/mods/_test.sim/simulation/components/test.js new file mode 100644 index 0000000000..479427a5ba --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/components/test.js @@ -0,0 +1,45 @@ +function TestScript1A() {} + +TestScript1A.prototype.Init = function() { + this.x = 101000; +}; + +TestScript1A.prototype.GetX = function() { + return this.x; +}; + +TestScript1A.prototype.OnTurnStart = function(msg) { + this.x += 1; +}; + +Engine.RegisterComponentType(IID_Test1, "TestScript1A", TestScript1A); + +// -------- // + +function TestScript1B() {} + +TestScript1B.prototype = new TestScript1A(); + +TestScript1B.prototype.Init = function() { + this.x = 102000; +}; + +Engine.RegisterComponentType(IID_Test1, "TestScript1B", TestScript1B); + +// -------- // + +function TestScript2A() {} + +TestScript2A.prototype.Init = function() { + this.x = 201000; +}; + +TestScript2A.prototype.GetX = function() { + return this.x; +}; + +TestScript2A.prototype.OnUpdate = function(msg) { + this.x += msg.turnLength; +}; + +Engine.RegisterComponentType(IID_Test2, "TestScript2A", TestScript2A); diff --git a/binaries/data/mods/_test.sim/simulation/helpers/test-helper.js b/binaries/data/mods/_test.sim/simulation/helpers/test-helper.js new file mode 100644 index 0000000000..2ce1940d13 --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/helpers/test-helper.js @@ -0,0 +1,5 @@ +function AdditionHelper(a, b) { + return a+b; +} + +Engine.RegisterGlobal("AdditionHelper", AdditionHelper); diff --git a/binaries/data/mods/_test.sim/simulation/templates/basic.xml b/binaries/data/mods/_test.sim/simulation/templates/basic.xml new file mode 100644 index 0000000000..b876138c01 --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/templates/basic.xml @@ -0,0 +1,4 @@ + + + 12345 + diff --git a/binaries/data/mods/_test.sim/simulation/templates/hotload.xml b/binaries/data/mods/_test.sim/simulation/templates/hotload.xml new file mode 100644 index 0000000000..3be131ca8b --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/templates/hotload.xml @@ -0,0 +1,6 @@ + + + + 100 + + diff --git a/binaries/data/mods/_test.sim/simulation/templates/inherit-broken.xml b/binaries/data/mods/_test.sim/simulation/templates/inherit-broken.xml new file mode 100644 index 0000000000..f3af209480 --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/templates/inherit-broken.xml @@ -0,0 +1,2 @@ + +broken diff --git a/binaries/data/mods/_test.sim/simulation/templates/inherit-loop-2.xml b/binaries/data/mods/_test.sim/simulation/templates/inherit-loop-2.xml new file mode 100644 index 0000000000..960984546a --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/templates/inherit-loop-2.xml @@ -0,0 +1,2 @@ + +loop-2 diff --git a/binaries/data/mods/_test.sim/simulation/templates/inherit-loop.xml b/binaries/data/mods/_test.sim/simulation/templates/inherit-loop.xml new file mode 100644 index 0000000000..85fc6ecc62 --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/templates/inherit-loop.xml @@ -0,0 +1,2 @@ + +loop diff --git a/binaries/data/mods/_test.sim/simulation/templates/inherit1.xml b/binaries/data/mods/_test.sim/simulation/templates/inherit1.xml new file mode 100644 index 0000000000..c25d0b9a6a --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/templates/inherit1.xml @@ -0,0 +1,8 @@ + + + + d1 + e1 + f1 + + diff --git a/binaries/data/mods/_test.sim/simulation/templates/inherit2.xml b/binaries/data/mods/_test.sim/simulation/templates/inherit2.xml new file mode 100644 index 0000000000..a9b1f8375e --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/templates/inherit2.xml @@ -0,0 +1,7 @@ + + + + d2 + g2 + + diff --git a/binaries/data/mods/_test.sim/simulation/templates/template-serialize.xml b/binaries/data/mods/_test.sim/simulation/templates/template-serialize.xml new file mode 100644 index 0000000000..d0861e0d6d --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/templates/template-serialize.xml @@ -0,0 +1,4 @@ + + + 12345 + diff --git a/binaries/data/mods/_test.sim/simulation/templates/test1-inherit.xml b/binaries/data/mods/_test.sim/simulation/templates/test1-inherit.xml new file mode 100644 index 0000000000..f2b142b171 --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/templates/test1-inherit.xml @@ -0,0 +1,6 @@ + + + + 1234 + + diff --git a/binaries/data/mods/_test.sim/simulation/templates/test1.xml b/binaries/data/mods/_test.sim/simulation/templates/test1.xml new file mode 100644 index 0000000000..43a8b846f1 --- /dev/null +++ b/binaries/data/mods/_test.sim/simulation/templates/test1.xml @@ -0,0 +1,9 @@ + + + + 999 + + + (600+17)*20+5 + + diff --git a/binaries/data/mods/public/gui/common/functions_global_object.js b/binaries/data/mods/public/gui/common/functions_global_object.js index 85dc99956c..e7a4194e44 100644 --- a/binaries/data/mods/public/gui/common/functions_global_object.js +++ b/binaries/data/mods/public/gui/common/functions_global_object.js @@ -14,7 +14,7 @@ function messageBox (mbWidth, mbHeight, mbMessage, mbTitle, mbMode, mbButtonCaptions, mbButtonsCode) { - pushGuiPage("page_msgbox.xml", { + Engine.PushGuiPage("page_msgbox.xml", { width: mbWidth, height: mbHeight, message: mbMessage, diff --git a/binaries/data/mods/public/gui/common/functions_page_pregame_load.js b/binaries/data/mods/public/gui/common/functions_page_pregame_load.js index f555ab93a7..0c069a5c86 100644 --- a/binaries/data/mods/public/gui/common/functions_page_pregame_load.js +++ b/binaries/data/mods/public/gui/common/functions_page_pregame_load.js @@ -39,7 +39,7 @@ function launchGame () closeMainMenuSubWindow ("pgSessionSetup"); // Display loading screen. - switchGuiPage("page_loading.xml"); + Engine.SwitchGuiPage("page_loading.xml"); console.write( "running startGame()" ); @@ -47,7 +47,7 @@ function launchGame () if (! startGame()) { // Failed to start the game; go back to the main menu. - switchGuiPage("page_pregame.xml"); + Engine.SwitchGuiPage("page_pregame.xml"); // Restore default cursor. setCursor ("arrow-default"); // Show an error message diff --git a/binaries/data/mods/public/gui/common/setup.xml b/binaries/data/mods/public/gui/common/setup.xml index 58b4af5b89..0371a13edb 100644 --- a/binaries/data/mods/public/gui/common/setup.xml +++ b/binaries/data/mods/public/gui/common/setup.xml @@ -146,43 +146,19 @@ ========================================== --> - 0 0 0 - + 0 0 0 + 255 255 255 + 255 0 0 + 0 0 255 + 255 255 0 - 237 227 167 - + 237 227 167 + 243 242 240 + 43 42 40 + 0 200 0 + 191 191 2 + 159 98 24 - 255 255 255 - - - 243 242 240 - - - 43 42 40 - - - 0 0 255 - - - 0 200 0 - - - 191 191 2 - - - 159 98 24 - - - +