From d6c4bf3302df78a756a9b84b5291fca6fc0edcb9 Mon Sep 17 00:00:00 2001 From: MarkT Date: Fri, 27 May 2005 00:38:30 +0000 Subject: [PATCH] Changes to actor speed specifications. This was SVN commit r2350. --- .../official/art/actors/units/celt_cjv_a.xml | 2 +- .../art/actors/units/celt_cjv_a_r.xml | 2 +- .../official/art/actors/units/celt_cjv_b.xml | 2 +- .../art/actors/units/celt_cjv_b_r.xml | 2 +- .../official/art/actors/units/celt_cjv_e.xml | 2 +- .../art/actors/units/celt_cjv_e_r.xml | 2 +- .../official/art/actors/units/celt_csp_a.xml | 2 +- .../official/art/actors/units/celt_csp_b.xml | 2 +- .../official/art/actors/units/celt_csp_e.xml | 2 +- .../official/art/actors/units/celt_csw_a.xml | 2 +- .../art/actors/units/celt_csw_a_r.xml | 2 +- .../official/art/actors/units/celt_csw_b.xml | 2 +- .../art/actors/units/celt_csw_b_r.xml | 2 +- .../official/art/actors/units/celt_csw_e.xml | 2 +- .../art/actors/units/celt_csw_e_r.xml | 2 +- .../official/art/actors/units/celt_fem.xml | 2 +- .../official/art/actors/units/celt_ijv_a.xml | 2 +- .../official/art/actors/units/celt_ijv_b.xml | 2 +- .../official/art/actors/units/celt_ijv_e.xml | 2 +- .../official/art/actors/units/celt_isp_a.xml | 2 +- .../official/art/actors/units/celt_isp_b.xml | 2 +- .../official/art/actors/units/celt_isp_e.xml | 2 +- .../official/art/actors/units/celt_isw_a.xml | 2 +- .../official/art/actors/units/celt_isw_b.xml | 2 +- .../official/art/actors/units/celt_isw_e.xml | 2 +- .../official/art/actors/units/celt_su_1.xml | 2 +- .../official/art/actors/units/celt_su_2.xml | 2 +- .../official/art/actors/units/celt_trd.xml | 2 +- .../mods/official/art/actors/units/dude.xml | 2 +- .../mods/official/art/actors/units/dude1.xml | 2 +- .../mods/official/art/actors/units/dude2.xml | 2 +- .../mods/official/art/actors/units/dude3.xml | 2 +- .../mods/official/art/actors/units/dude4.xml | 2 +- .../art/actors/units/dude_propped.xml | 2 +- .../official/art/actors/units/dudette.xml | 2 +- .../official/art/actors/units/hele_csw_a.xml | 2 +- .../official/art/actors/units/hele_csw_b.xml | 2 +- .../official/art/actors/units/hele_csw_e.xml | 2 +- .../official/art/actors/units/hele_fem.xml | 2 +- .../official/art/actors/units/hele_iar_a.xml | 2 +- .../official/art/actors/units/hele_iar_b.xml | 2 +- .../official/art/actors/units/hele_iar_e.xml | 2 +- .../official/art/actors/units/hele_ijv_a.xml | 2 +- .../official/art/actors/units/hele_ijv_b.xml | 2 +- .../official/art/actors/units/hele_ijv_e.xml | 2 +- .../official/art/actors/units/hele_isp_a.xml | 2 +- .../official/art/actors/units/hele_isp_b.xml | 2 +- .../official/art/actors/units/hele_isp_e.xml | 2 +- .../art/actors/units/hele_spar_u1.xml | 2 +- .../official/art/actors/units/hele_su_1.xml | 2 +- .../official/art/actors/units/hele_su_2.xml | 2 +- .../official/art/actors/units/hele_trd.xml | 2 +- .../official/art/actors/units/iber_cjv_a.xml | 2 +- .../official/art/actors/units/iber_cjv_b.xml | 2 +- .../official/art/actors/units/iber_cjv_e.xml | 2 +- .../official/art/actors/units/iber_csw_a.xml | 2 +- .../official/art/actors/units/iber_csw_b.xml | 2 +- .../official/art/actors/units/iber_csw_e.xml | 2 +- .../official/art/actors/units/iber_fem.xml | 2 +- .../official/art/actors/units/iber_ijv_a.xml | 2 +- .../official/art/actors/units/iber_ijv_b.xml | 2 +- .../official/art/actors/units/iber_ijv_e.xml | 2 +- .../official/art/actors/units/iber_isl_a.xml | 2 +- .../official/art/actors/units/iber_isl_b.xml | 2 +- .../official/art/actors/units/iber_isl_e.xml | 2 +- .../official/art/actors/units/iber_isp_a.xml | 2 +- .../official/art/actors/units/iber_isp_b.xml | 2 +- .../official/art/actors/units/iber_isp_e.xml | 2 +- .../official/art/actors/units/iber_isw_a.xml | 2 +- .../official/art/actors/units/iber_isw_b.xml | 2 +- .../official/art/actors/units/iber_isw_e.xml | 2 +- .../official/art/actors/units/iber_su_1.xml | 2 +- .../official/art/actors/units/iber_su_2.xml | 2 +- .../official/art/actors/units/iber_trd.xml | 2 +- .../official/art/actors/units/kart_cjv_a.xml | 2 +- .../official/art/actors/units/kart_cjv_b.xml | 2 +- .../official/art/actors/units/kart_cjv_e.xml | 2 +- .../official/art/actors/units/kart_csp_a.xml | 2 +- .../official/art/actors/units/kart_csp_b.xml | 2 +- .../official/art/actors/units/kart_csp_e.xml | 2 +- .../official/art/actors/units/kart_csw_a.xml | 2 +- .../official/art/actors/units/kart_csw_b.xml | 2 +- .../official/art/actors/units/kart_csw_e.xml | 2 +- .../official/art/actors/units/kart_fem.xml | 2 +- .../official/art/actors/units/kart_iar_a.xml | 2 +- .../official/art/actors/units/kart_iar_b.xml | 2 +- .../official/art/actors/units/kart_iar_e.xml | 2 +- .../official/art/actors/units/kart_ijv_a.xml | 2 +- .../official/art/actors/units/kart_ijv_b.xml | 2 +- .../official/art/actors/units/kart_ijv_e.xml | 2 +- .../official/art/actors/units/kart_isl_a.xml | 2 +- .../official/art/actors/units/kart_isl_b.xml | 2 +- .../official/art/actors/units/kart_isl_e.xml | 2 +- .../official/art/actors/units/kart_isp_a.xml | 2 +- .../official/art/actors/units/kart_isp_b.xml | 2 +- .../official/art/actors/units/kart_isp_e.xml | 2 +- .../official/art/actors/units/kart_isw_a.xml | 2 +- .../official/art/actors/units/kart_isw_b.xml | 2 +- .../official/art/actors/units/kart_isw_e.xml | 2 +- .../official/art/actors/units/kart_su_1.xml | 2 +- .../official/art/actors/units/kart_su_2.xml | 2 +- .../official/art/actors/units/kart_trd.xml | 2 +- .../official/art/actors/units/pers_car_a.xml | 2 +- .../official/art/actors/units/pers_car_b.xml | 2 +- .../official/art/actors/units/pers_car_e.xml | 2 +- .../official/art/actors/units/pers_cjv_a.xml | 2 +- .../official/art/actors/units/pers_cjv_b.xml | 2 +- .../official/art/actors/units/pers_cjv_e.xml | 2 +- .../official/art/actors/units/pers_csp_a.xml | 2 +- .../official/art/actors/units/pers_csp_b.xml | 2 +- .../official/art/actors/units/pers_csp_e.xml | 2 +- .../official/art/actors/units/pers_csw_a.xml | 2 +- .../official/art/actors/units/pers_csw_b.xml | 2 +- .../official/art/actors/units/pers_csw_e.xml | 2 +- .../official/art/actors/units/pers_fem.xml | 2 +- .../official/art/actors/units/pers_iar_a.xml | 2 +- .../official/art/actors/units/pers_iar_b.xml | 2 +- .../official/art/actors/units/pers_iar_e.xml | 2 +- .../official/art/actors/units/pers_ijv_a.xml | 2 +- .../official/art/actors/units/pers_ijv_b.xml | 2 +- .../official/art/actors/units/pers_ijv_e.xml | 2 +- .../official/art/actors/units/pers_isp_a.xml | 2 +- .../official/art/actors/units/pers_isp_b.xml | 2 +- .../official/art/actors/units/pers_isp_e.xml | 2 +- .../official/art/actors/units/pers_su_1.xml | 2 +- .../official/art/actors/units/pers_su_2.xml | 2 +- .../official/art/actors/units/pers_trd.xml | 2 +- .../official/art/actors/units/rome_csp_a.xml | 2 +- .../official/art/actors/units/rome_csp_b.xml | 2 +- .../official/art/actors/units/rome_csp_e.xml | 2 +- .../official/art/actors/units/rome_fem.xml | 2 +- .../official/art/actors/units/rome_ijv_a.xml | 2 +- .../official/art/actors/units/rome_ijv_b.xml | 2 +- .../official/art/actors/units/rome_ijv_e.xml | 2 +- .../official/art/actors/units/rome_isl_a.xml | 2 +- .../official/art/actors/units/rome_isl_b.xml | 2 +- .../official/art/actors/units/rome_isl_e.xml | 2 +- .../official/art/actors/units/rome_isp_a.xml | 2 +- .../official/art/actors/units/rome_isp_b.xml | 2 +- .../official/art/actors/units/rome_isp_e.xml | 2 +- .../official/art/actors/units/rome_isw_a.xml | 2 +- .../official/art/actors/units/rome_isw_b.xml | 2 +- .../official/art/actors/units/rome_isw_e.xml | 2 +- .../official/art/actors/units/rome_su_1.xml | 2 +- .../official/art/actors/units/rome_su_2.xml | 2 +- .../official/art/actors/units/rome_trd.xml | 2 +- source/graphics/Model.cpp | 39 ++++-- source/graphics/Model.h | 7 +- source/graphics/ObjectBase.h | 3 +- source/graphics/SkeletonAnim.h | 6 +- source/simulation/Entity.cpp | 117 ++++++++++++++++++ source/simulation/Entity.h | 3 + source/simulation/EntityStateProcessing.cpp | 27 ++-- source/simulation/EntitySupport.h | 47 ++++++- source/simulation/ScriptObject.h | 3 - 155 files changed, 365 insertions(+), 179 deletions(-) diff --git a/binaries/data/mods/official/art/actors/units/celt_cjv_a.xml b/binaries/data/mods/official/art/actors/units/celt_cjv_a.xml index b7e19eef71..f59de9d6c7 100644 --- a/binaries/data/mods/official/art/actors/units/celt_cjv_a.xml +++ b/binaries/data/mods/official/art/actors/units/celt_cjv_a.xml @@ -7,7 +7,7 @@ - + skeletal/horse.pmd diff --git a/binaries/data/mods/official/art/actors/units/celt_cjv_a_r.xml b/binaries/data/mods/official/art/actors/units/celt_cjv_a_r.xml index d4f34cc528..a6febae7db 100644 --- a/binaries/data/mods/official/art/actors/units/celt_cjv_a_r.xml +++ b/binaries/data/mods/official/art/actors/units/celt_cjv_a_r.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/celt_cjv_b.xml b/binaries/data/mods/official/art/actors/units/celt_cjv_b.xml index 245dfa90e9..b7a654b85b 100644 --- a/binaries/data/mods/official/art/actors/units/celt_cjv_b.xml +++ b/binaries/data/mods/official/art/actors/units/celt_cjv_b.xml @@ -7,7 +7,7 @@ - + skeletal/horse.pmd diff --git a/binaries/data/mods/official/art/actors/units/celt_cjv_b_r.xml b/binaries/data/mods/official/art/actors/units/celt_cjv_b_r.xml index 3dadb846c9..d068949827 100644 --- a/binaries/data/mods/official/art/actors/units/celt_cjv_b_r.xml +++ b/binaries/data/mods/official/art/actors/units/celt_cjv_b_r.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/celt_cjv_e.xml b/binaries/data/mods/official/art/actors/units/celt_cjv_e.xml index 85b2095b6f..3d9c7a09bd 100644 --- a/binaries/data/mods/official/art/actors/units/celt_cjv_e.xml +++ b/binaries/data/mods/official/art/actors/units/celt_cjv_e.xml @@ -7,7 +7,7 @@ - + skeletal/horse.pmd diff --git a/binaries/data/mods/official/art/actors/units/celt_cjv_e_r.xml b/binaries/data/mods/official/art/actors/units/celt_cjv_e_r.xml index f1ee72dbf8..62faa434a6 100644 --- a/binaries/data/mods/official/art/actors/units/celt_cjv_e_r.xml +++ b/binaries/data/mods/official/art/actors/units/celt_cjv_e_r.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/celt_csp_a.xml b/binaries/data/mods/official/art/actors/units/celt_csp_a.xml index 5374a34950..553aa933d0 100644 --- a/binaries/data/mods/official/art/actors/units/celt_csp_a.xml +++ b/binaries/data/mods/official/art/actors/units/celt_csp_a.xml @@ -7,7 +7,7 @@ - + skeletal/mastiff.pmd diff --git a/binaries/data/mods/official/art/actors/units/celt_csp_b.xml b/binaries/data/mods/official/art/actors/units/celt_csp_b.xml index 01331abc36..74ab605518 100644 --- a/binaries/data/mods/official/art/actors/units/celt_csp_b.xml +++ b/binaries/data/mods/official/art/actors/units/celt_csp_b.xml @@ -7,7 +7,7 @@ - + skeletal/mastiff.pmd diff --git a/binaries/data/mods/official/art/actors/units/celt_csp_e.xml b/binaries/data/mods/official/art/actors/units/celt_csp_e.xml index 66174efe6b..b549ea3f73 100644 --- a/binaries/data/mods/official/art/actors/units/celt_csp_e.xml +++ b/binaries/data/mods/official/art/actors/units/celt_csp_e.xml @@ -7,7 +7,7 @@ - + skeletal/mastiff.pmd diff --git a/binaries/data/mods/official/art/actors/units/celt_csw_a.xml b/binaries/data/mods/official/art/actors/units/celt_csw_a.xml index e207c50b5f..1aaf1c8ce9 100644 --- a/binaries/data/mods/official/art/actors/units/celt_csw_a.xml +++ b/binaries/data/mods/official/art/actors/units/celt_csw_a.xml @@ -7,7 +7,7 @@ - + skeletal/horse.pmd diff --git a/binaries/data/mods/official/art/actors/units/celt_csw_a_r.xml b/binaries/data/mods/official/art/actors/units/celt_csw_a_r.xml index bbc12b43c5..6f110f5072 100644 --- a/binaries/data/mods/official/art/actors/units/celt_csw_a_r.xml +++ b/binaries/data/mods/official/art/actors/units/celt_csw_a_r.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/celt_csw_b.xml b/binaries/data/mods/official/art/actors/units/celt_csw_b.xml index 2ebd05e232..13b7dbdbff 100644 --- a/binaries/data/mods/official/art/actors/units/celt_csw_b.xml +++ b/binaries/data/mods/official/art/actors/units/celt_csw_b.xml @@ -7,7 +7,7 @@ - + skeletal/horse.pmd diff --git a/binaries/data/mods/official/art/actors/units/celt_csw_b_r.xml b/binaries/data/mods/official/art/actors/units/celt_csw_b_r.xml index 1b9448889a..aa771127c3 100644 --- a/binaries/data/mods/official/art/actors/units/celt_csw_b_r.xml +++ b/binaries/data/mods/official/art/actors/units/celt_csw_b_r.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/celt_csw_e.xml b/binaries/data/mods/official/art/actors/units/celt_csw_e.xml index 7f1c8e1451..ca1ce05a7b 100644 --- a/binaries/data/mods/official/art/actors/units/celt_csw_e.xml +++ b/binaries/data/mods/official/art/actors/units/celt_csw_e.xml @@ -7,7 +7,7 @@ - + skeletal/horse.pmd diff --git a/binaries/data/mods/official/art/actors/units/celt_csw_e_r.xml b/binaries/data/mods/official/art/actors/units/celt_csw_e_r.xml index 3410874ca8..3108c713c2 100644 --- a/binaries/data/mods/official/art/actors/units/celt_csw_e_r.xml +++ b/binaries/data/mods/official/art/actors/units/celt_csw_e_r.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/celt_fem.xml b/binaries/data/mods/official/art/actors/units/celt_fem.xml index b49c655d73..9a1321cbac 100644 --- a/binaries/data/mods/official/art/actors/units/celt_fem.xml +++ b/binaries/data/mods/official/art/actors/units/celt_fem.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/celt_ijv_a.xml b/binaries/data/mods/official/art/actors/units/celt_ijv_a.xml index 1c18388c05..ed7dadb10b 100644 --- a/binaries/data/mods/official/art/actors/units/celt_ijv_a.xml +++ b/binaries/data/mods/official/art/actors/units/celt_ijv_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/celt_ijv_b.xml b/binaries/data/mods/official/art/actors/units/celt_ijv_b.xml index 3a329e2b17..24bb3ffadb 100644 --- a/binaries/data/mods/official/art/actors/units/celt_ijv_b.xml +++ b/binaries/data/mods/official/art/actors/units/celt_ijv_b.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/celt_ijv_e.xml b/binaries/data/mods/official/art/actors/units/celt_ijv_e.xml index 8161cbfdf3..976bffda44 100644 --- a/binaries/data/mods/official/art/actors/units/celt_ijv_e.xml +++ b/binaries/data/mods/official/art/actors/units/celt_ijv_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/celt_isp_a.xml b/binaries/data/mods/official/art/actors/units/celt_isp_a.xml index 4f9c7ebf5e..e979840741 100644 --- a/binaries/data/mods/official/art/actors/units/celt_isp_a.xml +++ b/binaries/data/mods/official/art/actors/units/celt_isp_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/celt_isp_b.xml b/binaries/data/mods/official/art/actors/units/celt_isp_b.xml index f2fb34b8db..4695340db8 100644 --- a/binaries/data/mods/official/art/actors/units/celt_isp_b.xml +++ b/binaries/data/mods/official/art/actors/units/celt_isp_b.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/celt_isp_e.xml b/binaries/data/mods/official/art/actors/units/celt_isp_e.xml index 480aa0d2bc..029117f6cb 100644 --- a/binaries/data/mods/official/art/actors/units/celt_isp_e.xml +++ b/binaries/data/mods/official/art/actors/units/celt_isp_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/celt_isw_a.xml b/binaries/data/mods/official/art/actors/units/celt_isw_a.xml index 4ec6f46d06..82a5e002ec 100644 --- a/binaries/data/mods/official/art/actors/units/celt_isw_a.xml +++ b/binaries/data/mods/official/art/actors/units/celt_isw_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/celt_isw_b.xml b/binaries/data/mods/official/art/actors/units/celt_isw_b.xml index 3d02c59511..5eed45006a 100644 --- a/binaries/data/mods/official/art/actors/units/celt_isw_b.xml +++ b/binaries/data/mods/official/art/actors/units/celt_isw_b.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/celt_isw_e.xml b/binaries/data/mods/official/art/actors/units/celt_isw_e.xml index 3068359c9a..30e8cb5089 100644 --- a/binaries/data/mods/official/art/actors/units/celt_isw_e.xml +++ b/binaries/data/mods/official/art/actors/units/celt_isw_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/celt_su_1.xml b/binaries/data/mods/official/art/actors/units/celt_su_1.xml index 22f8828f82..041679483d 100644 --- a/binaries/data/mods/official/art/actors/units/celt_su_1.xml +++ b/binaries/data/mods/official/art/actors/units/celt_su_1.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/celt_su_2.xml b/binaries/data/mods/official/art/actors/units/celt_su_2.xml index 43f7bebfe7..04f60b5cbe 100644 --- a/binaries/data/mods/official/art/actors/units/celt_su_2.xml +++ b/binaries/data/mods/official/art/actors/units/celt_su_2.xml @@ -7,7 +7,7 @@ - + skeletal/horse.pmd diff --git a/binaries/data/mods/official/art/actors/units/celt_trd.xml b/binaries/data/mods/official/art/actors/units/celt_trd.xml index 108c016c0f..8228bed8ac 100644 --- a/binaries/data/mods/official/art/actors/units/celt_trd.xml +++ b/binaries/data/mods/official/art/actors/units/celt_trd.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/dude.xml b/binaries/data/mods/official/art/actors/units/dude.xml index 3495fef27d..c460e5317b 100644 --- a/binaries/data/mods/official/art/actors/units/dude.xml +++ b/binaries/data/mods/official/art/actors/units/dude.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/dude1.xml b/binaries/data/mods/official/art/actors/units/dude1.xml index f1204987f7..bbbe6af705 100644 --- a/binaries/data/mods/official/art/actors/units/dude1.xml +++ b/binaries/data/mods/official/art/actors/units/dude1.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/dude2.xml b/binaries/data/mods/official/art/actors/units/dude2.xml index bd99be0020..d44ac8f63e 100644 --- a/binaries/data/mods/official/art/actors/units/dude2.xml +++ b/binaries/data/mods/official/art/actors/units/dude2.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/dude3.xml b/binaries/data/mods/official/art/actors/units/dude3.xml index 45ea9b73da..06532c9628 100644 --- a/binaries/data/mods/official/art/actors/units/dude3.xml +++ b/binaries/data/mods/official/art/actors/units/dude3.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/dude4.xml b/binaries/data/mods/official/art/actors/units/dude4.xml index 604baca297..75e1d107e9 100644 --- a/binaries/data/mods/official/art/actors/units/dude4.xml +++ b/binaries/data/mods/official/art/actors/units/dude4.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/dude_propped.xml b/binaries/data/mods/official/art/actors/units/dude_propped.xml index 19c6f5b0c0..8450b76e24 100644 --- a/binaries/data/mods/official/art/actors/units/dude_propped.xml +++ b/binaries/data/mods/official/art/actors/units/dude_propped.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/dudette.xml b/binaries/data/mods/official/art/actors/units/dudette.xml index fbc9e9abe7..5d9e8fe04a 100644 --- a/binaries/data/mods/official/art/actors/units/dudette.xml +++ b/binaries/data/mods/official/art/actors/units/dudette.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/hele_csw_a.xml b/binaries/data/mods/official/art/actors/units/hele_csw_a.xml index 138cf46bbf..97315aa1fc 100644 --- a/binaries/data/mods/official/art/actors/units/hele_csw_a.xml +++ b/binaries/data/mods/official/art/actors/units/hele_csw_a.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/hele_csw_b.xml b/binaries/data/mods/official/art/actors/units/hele_csw_b.xml index 4bc5e99c1e..f737787f67 100644 --- a/binaries/data/mods/official/art/actors/units/hele_csw_b.xml +++ b/binaries/data/mods/official/art/actors/units/hele_csw_b.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/hele_csw_e.xml b/binaries/data/mods/official/art/actors/units/hele_csw_e.xml index d19d070c3f..d019322444 100644 --- a/binaries/data/mods/official/art/actors/units/hele_csw_e.xml +++ b/binaries/data/mods/official/art/actors/units/hele_csw_e.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/hele_fem.xml b/binaries/data/mods/official/art/actors/units/hele_fem.xml index c8b6419b16..30548c9422 100644 --- a/binaries/data/mods/official/art/actors/units/hele_fem.xml +++ b/binaries/data/mods/official/art/actors/units/hele_fem.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/hele_iar_a.xml b/binaries/data/mods/official/art/actors/units/hele_iar_a.xml index aaa01b560e..d9b11ba3e8 100644 --- a/binaries/data/mods/official/art/actors/units/hele_iar_a.xml +++ b/binaries/data/mods/official/art/actors/units/hele_iar_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/hele_iar_b.xml b/binaries/data/mods/official/art/actors/units/hele_iar_b.xml index 0bdf352dff..15a2ed1fa6 100644 --- a/binaries/data/mods/official/art/actors/units/hele_iar_b.xml +++ b/binaries/data/mods/official/art/actors/units/hele_iar_b.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/hele_iar_e.xml b/binaries/data/mods/official/art/actors/units/hele_iar_e.xml index 09ad870d9f..6f9a85675e 100644 --- a/binaries/data/mods/official/art/actors/units/hele_iar_e.xml +++ b/binaries/data/mods/official/art/actors/units/hele_iar_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/hele_ijv_a.xml b/binaries/data/mods/official/art/actors/units/hele_ijv_a.xml index bcffce64b5..b89e88ec73 100644 --- a/binaries/data/mods/official/art/actors/units/hele_ijv_a.xml +++ b/binaries/data/mods/official/art/actors/units/hele_ijv_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/hele_ijv_b.xml b/binaries/data/mods/official/art/actors/units/hele_ijv_b.xml index ad8c534323..2a2280bf04 100644 --- a/binaries/data/mods/official/art/actors/units/hele_ijv_b.xml +++ b/binaries/data/mods/official/art/actors/units/hele_ijv_b.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/hele_ijv_e.xml b/binaries/data/mods/official/art/actors/units/hele_ijv_e.xml index 19096c084e..46fc79d694 100644 --- a/binaries/data/mods/official/art/actors/units/hele_ijv_e.xml +++ b/binaries/data/mods/official/art/actors/units/hele_ijv_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/hele_isp_a.xml b/binaries/data/mods/official/art/actors/units/hele_isp_a.xml index d3a71d04d9..56736355f1 100644 --- a/binaries/data/mods/official/art/actors/units/hele_isp_a.xml +++ b/binaries/data/mods/official/art/actors/units/hele_isp_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/hele_isp_b.xml b/binaries/data/mods/official/art/actors/units/hele_isp_b.xml index def2a79617..659bb01787 100644 --- a/binaries/data/mods/official/art/actors/units/hele_isp_b.xml +++ b/binaries/data/mods/official/art/actors/units/hele_isp_b.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/hele_isp_e.xml b/binaries/data/mods/official/art/actors/units/hele_isp_e.xml index 374e0a033d..ed6d77fcdf 100644 --- a/binaries/data/mods/official/art/actors/units/hele_isp_e.xml +++ b/binaries/data/mods/official/art/actors/units/hele_isp_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/hele_spar_u1.xml b/binaries/data/mods/official/art/actors/units/hele_spar_u1.xml index 8d05b5d078..03d42bdd8e 100644 --- a/binaries/data/mods/official/art/actors/units/hele_spar_u1.xml +++ b/binaries/data/mods/official/art/actors/units/hele_spar_u1.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/hele_su_1.xml b/binaries/data/mods/official/art/actors/units/hele_su_1.xml index 602e487d3e..9ebd1c7c32 100644 --- a/binaries/data/mods/official/art/actors/units/hele_su_1.xml +++ b/binaries/data/mods/official/art/actors/units/hele_su_1.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/hele_su_2.xml b/binaries/data/mods/official/art/actors/units/hele_su_2.xml index bd15178006..0f89c0d9e6 100644 --- a/binaries/data/mods/official/art/actors/units/hele_su_2.xml +++ b/binaries/data/mods/official/art/actors/units/hele_su_2.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/hele_trd.xml b/binaries/data/mods/official/art/actors/units/hele_trd.xml index 2cd2ae95ad..b1af7a0760 100644 --- a/binaries/data/mods/official/art/actors/units/hele_trd.xml +++ b/binaries/data/mods/official/art/actors/units/hele_trd.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/iber_cjv_a.xml b/binaries/data/mods/official/art/actors/units/iber_cjv_a.xml index 467846cb17..8bb3f46e07 100644 --- a/binaries/data/mods/official/art/actors/units/iber_cjv_a.xml +++ b/binaries/data/mods/official/art/actors/units/iber_cjv_a.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/iber_cjv_b.xml b/binaries/data/mods/official/art/actors/units/iber_cjv_b.xml index 9e5f272a50..3e6506f05e 100644 --- a/binaries/data/mods/official/art/actors/units/iber_cjv_b.xml +++ b/binaries/data/mods/official/art/actors/units/iber_cjv_b.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/iber_cjv_e.xml b/binaries/data/mods/official/art/actors/units/iber_cjv_e.xml index b7cfb4ca02..49c1b29074 100644 --- a/binaries/data/mods/official/art/actors/units/iber_cjv_e.xml +++ b/binaries/data/mods/official/art/actors/units/iber_cjv_e.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/iber_csw_a.xml b/binaries/data/mods/official/art/actors/units/iber_csw_a.xml index c52b9f0e3b..cd83c9e4ce 100644 --- a/binaries/data/mods/official/art/actors/units/iber_csw_a.xml +++ b/binaries/data/mods/official/art/actors/units/iber_csw_a.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/iber_csw_b.xml b/binaries/data/mods/official/art/actors/units/iber_csw_b.xml index 27bc17f295..56cb11e53a 100644 --- a/binaries/data/mods/official/art/actors/units/iber_csw_b.xml +++ b/binaries/data/mods/official/art/actors/units/iber_csw_b.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/iber_csw_e.xml b/binaries/data/mods/official/art/actors/units/iber_csw_e.xml index 9ddc30914a..90e3fb396f 100644 --- a/binaries/data/mods/official/art/actors/units/iber_csw_e.xml +++ b/binaries/data/mods/official/art/actors/units/iber_csw_e.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/iber_fem.xml b/binaries/data/mods/official/art/actors/units/iber_fem.xml index 5785491e26..3cc9be1167 100644 --- a/binaries/data/mods/official/art/actors/units/iber_fem.xml +++ b/binaries/data/mods/official/art/actors/units/iber_fem.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/iber_ijv_a.xml b/binaries/data/mods/official/art/actors/units/iber_ijv_a.xml index 9c2a3c6c0a..ccc135a4e8 100644 --- a/binaries/data/mods/official/art/actors/units/iber_ijv_a.xml +++ b/binaries/data/mods/official/art/actors/units/iber_ijv_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/iber_ijv_b.xml b/binaries/data/mods/official/art/actors/units/iber_ijv_b.xml index eb9565b4fc..b15ab5622d 100644 --- a/binaries/data/mods/official/art/actors/units/iber_ijv_b.xml +++ b/binaries/data/mods/official/art/actors/units/iber_ijv_b.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/iber_ijv_e.xml b/binaries/data/mods/official/art/actors/units/iber_ijv_e.xml index 35ac899a48..25d506535d 100644 --- a/binaries/data/mods/official/art/actors/units/iber_ijv_e.xml +++ b/binaries/data/mods/official/art/actors/units/iber_ijv_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/iber_isl_a.xml b/binaries/data/mods/official/art/actors/units/iber_isl_a.xml index 0d412f7793..9f793127c3 100644 --- a/binaries/data/mods/official/art/actors/units/iber_isl_a.xml +++ b/binaries/data/mods/official/art/actors/units/iber_isl_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/iber_isl_b.xml b/binaries/data/mods/official/art/actors/units/iber_isl_b.xml index e45426eebb..65787c35b6 100644 --- a/binaries/data/mods/official/art/actors/units/iber_isl_b.xml +++ b/binaries/data/mods/official/art/actors/units/iber_isl_b.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/iber_isl_e.xml b/binaries/data/mods/official/art/actors/units/iber_isl_e.xml index d57a88884b..8d7db46833 100644 --- a/binaries/data/mods/official/art/actors/units/iber_isl_e.xml +++ b/binaries/data/mods/official/art/actors/units/iber_isl_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/iber_isp_a.xml b/binaries/data/mods/official/art/actors/units/iber_isp_a.xml index ac7bbd5328..71aecb6934 100644 --- a/binaries/data/mods/official/art/actors/units/iber_isp_a.xml +++ b/binaries/data/mods/official/art/actors/units/iber_isp_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/iber_isp_b.xml b/binaries/data/mods/official/art/actors/units/iber_isp_b.xml index 31769c53f9..4603a7b1bb 100644 --- a/binaries/data/mods/official/art/actors/units/iber_isp_b.xml +++ b/binaries/data/mods/official/art/actors/units/iber_isp_b.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/iber_isp_e.xml b/binaries/data/mods/official/art/actors/units/iber_isp_e.xml index b9ef7d8b16..92f762e5d1 100644 --- a/binaries/data/mods/official/art/actors/units/iber_isp_e.xml +++ b/binaries/data/mods/official/art/actors/units/iber_isp_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/iber_isw_a.xml b/binaries/data/mods/official/art/actors/units/iber_isw_a.xml index 59f267a017..b2a91f5edc 100644 --- a/binaries/data/mods/official/art/actors/units/iber_isw_a.xml +++ b/binaries/data/mods/official/art/actors/units/iber_isw_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/iber_isw_b.xml b/binaries/data/mods/official/art/actors/units/iber_isw_b.xml index 7910cde56a..14021d050a 100644 --- a/binaries/data/mods/official/art/actors/units/iber_isw_b.xml +++ b/binaries/data/mods/official/art/actors/units/iber_isw_b.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/iber_isw_e.xml b/binaries/data/mods/official/art/actors/units/iber_isw_e.xml index 9e7ec3316c..3b54c7bbf7 100644 --- a/binaries/data/mods/official/art/actors/units/iber_isw_e.xml +++ b/binaries/data/mods/official/art/actors/units/iber_isw_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/iber_su_1.xml b/binaries/data/mods/official/art/actors/units/iber_su_1.xml index d2d3503108..7ed35e257e 100644 --- a/binaries/data/mods/official/art/actors/units/iber_su_1.xml +++ b/binaries/data/mods/official/art/actors/units/iber_su_1.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/iber_su_2.xml b/binaries/data/mods/official/art/actors/units/iber_su_2.xml index 28889d366c..14184c9ae1 100644 --- a/binaries/data/mods/official/art/actors/units/iber_su_2.xml +++ b/binaries/data/mods/official/art/actors/units/iber_su_2.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/iber_trd.xml b/binaries/data/mods/official/art/actors/units/iber_trd.xml index b2fa7025ac..08af1a081d 100644 --- a/binaries/data/mods/official/art/actors/units/iber_trd.xml +++ b/binaries/data/mods/official/art/actors/units/iber_trd.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/kart_cjv_a.xml b/binaries/data/mods/official/art/actors/units/kart_cjv_a.xml index ec285c019a..e020b519f1 100644 --- a/binaries/data/mods/official/art/actors/units/kart_cjv_a.xml +++ b/binaries/data/mods/official/art/actors/units/kart_cjv_a.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/kart_cjv_b.xml b/binaries/data/mods/official/art/actors/units/kart_cjv_b.xml index e9160402fc..8d4a5ad540 100644 --- a/binaries/data/mods/official/art/actors/units/kart_cjv_b.xml +++ b/binaries/data/mods/official/art/actors/units/kart_cjv_b.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/kart_cjv_e.xml b/binaries/data/mods/official/art/actors/units/kart_cjv_e.xml index 73654ca1d9..082ee0dd2a 100644 --- a/binaries/data/mods/official/art/actors/units/kart_cjv_e.xml +++ b/binaries/data/mods/official/art/actors/units/kart_cjv_e.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/kart_csp_a.xml b/binaries/data/mods/official/art/actors/units/kart_csp_a.xml index 81a2bb3457..ae3032a8d6 100644 --- a/binaries/data/mods/official/art/actors/units/kart_csp_a.xml +++ b/binaries/data/mods/official/art/actors/units/kart_csp_a.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/kart_csp_b.xml b/binaries/data/mods/official/art/actors/units/kart_csp_b.xml index fd42b2607e..487ab0206a 100644 --- a/binaries/data/mods/official/art/actors/units/kart_csp_b.xml +++ b/binaries/data/mods/official/art/actors/units/kart_csp_b.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/kart_csp_e.xml b/binaries/data/mods/official/art/actors/units/kart_csp_e.xml index da16cc2326..49cf12d6db 100644 --- a/binaries/data/mods/official/art/actors/units/kart_csp_e.xml +++ b/binaries/data/mods/official/art/actors/units/kart_csp_e.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/kart_csw_a.xml b/binaries/data/mods/official/art/actors/units/kart_csw_a.xml index 6210d5b763..b4b8cfb873 100644 --- a/binaries/data/mods/official/art/actors/units/kart_csw_a.xml +++ b/binaries/data/mods/official/art/actors/units/kart_csw_a.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/kart_csw_b.xml b/binaries/data/mods/official/art/actors/units/kart_csw_b.xml index 7541403ee2..db0318e813 100644 --- a/binaries/data/mods/official/art/actors/units/kart_csw_b.xml +++ b/binaries/data/mods/official/art/actors/units/kart_csw_b.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/kart_csw_e.xml b/binaries/data/mods/official/art/actors/units/kart_csw_e.xml index 23daba8857..708d08bd55 100644 --- a/binaries/data/mods/official/art/actors/units/kart_csw_e.xml +++ b/binaries/data/mods/official/art/actors/units/kart_csw_e.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/kart_fem.xml b/binaries/data/mods/official/art/actors/units/kart_fem.xml index 3e6e314ee9..e94fbf530b 100644 --- a/binaries/data/mods/official/art/actors/units/kart_fem.xml +++ b/binaries/data/mods/official/art/actors/units/kart_fem.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/kart_iar_a.xml b/binaries/data/mods/official/art/actors/units/kart_iar_a.xml index 3ea8a3d0ed..31106d6a0c 100644 --- a/binaries/data/mods/official/art/actors/units/kart_iar_a.xml +++ b/binaries/data/mods/official/art/actors/units/kart_iar_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/kart_iar_b.xml b/binaries/data/mods/official/art/actors/units/kart_iar_b.xml index 94bc41eff3..20e462de0a 100644 --- a/binaries/data/mods/official/art/actors/units/kart_iar_b.xml +++ b/binaries/data/mods/official/art/actors/units/kart_iar_b.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/kart_iar_e.xml b/binaries/data/mods/official/art/actors/units/kart_iar_e.xml index faf49611b4..8239b17335 100644 --- a/binaries/data/mods/official/art/actors/units/kart_iar_e.xml +++ b/binaries/data/mods/official/art/actors/units/kart_iar_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/kart_ijv_a.xml b/binaries/data/mods/official/art/actors/units/kart_ijv_a.xml index 5dbb641646..1b95950cd5 100644 --- a/binaries/data/mods/official/art/actors/units/kart_ijv_a.xml +++ b/binaries/data/mods/official/art/actors/units/kart_ijv_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/kart_ijv_b.xml b/binaries/data/mods/official/art/actors/units/kart_ijv_b.xml index 2b01566812..ba9cb101b8 100644 --- a/binaries/data/mods/official/art/actors/units/kart_ijv_b.xml +++ b/binaries/data/mods/official/art/actors/units/kart_ijv_b.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/kart_ijv_e.xml b/binaries/data/mods/official/art/actors/units/kart_ijv_e.xml index 6d81a9bfcd..05d0e063c1 100644 --- a/binaries/data/mods/official/art/actors/units/kart_ijv_e.xml +++ b/binaries/data/mods/official/art/actors/units/kart_ijv_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/kart_isl_a.xml b/binaries/data/mods/official/art/actors/units/kart_isl_a.xml index 22761fd860..9536a9c679 100644 --- a/binaries/data/mods/official/art/actors/units/kart_isl_a.xml +++ b/binaries/data/mods/official/art/actors/units/kart_isl_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/kart_isl_b.xml b/binaries/data/mods/official/art/actors/units/kart_isl_b.xml index 274e51dbbc..d879e60f8b 100644 --- a/binaries/data/mods/official/art/actors/units/kart_isl_b.xml +++ b/binaries/data/mods/official/art/actors/units/kart_isl_b.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/kart_isl_e.xml b/binaries/data/mods/official/art/actors/units/kart_isl_e.xml index 23b4fac156..9fc95052cc 100644 --- a/binaries/data/mods/official/art/actors/units/kart_isl_e.xml +++ b/binaries/data/mods/official/art/actors/units/kart_isl_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/kart_isp_a.xml b/binaries/data/mods/official/art/actors/units/kart_isp_a.xml index 33e0cea8f3..513e401e44 100644 --- a/binaries/data/mods/official/art/actors/units/kart_isp_a.xml +++ b/binaries/data/mods/official/art/actors/units/kart_isp_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/kart_isp_b.xml b/binaries/data/mods/official/art/actors/units/kart_isp_b.xml index 34f9a79b0c..078af69b73 100644 --- a/binaries/data/mods/official/art/actors/units/kart_isp_b.xml +++ b/binaries/data/mods/official/art/actors/units/kart_isp_b.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/kart_isp_e.xml b/binaries/data/mods/official/art/actors/units/kart_isp_e.xml index 8cfddaed37..cc0fb52339 100644 --- a/binaries/data/mods/official/art/actors/units/kart_isp_e.xml +++ b/binaries/data/mods/official/art/actors/units/kart_isp_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/kart_isw_a.xml b/binaries/data/mods/official/art/actors/units/kart_isw_a.xml index ac1a3b12f2..561a466ef0 100644 --- a/binaries/data/mods/official/art/actors/units/kart_isw_a.xml +++ b/binaries/data/mods/official/art/actors/units/kart_isw_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/kart_isw_b.xml b/binaries/data/mods/official/art/actors/units/kart_isw_b.xml index 8567bd7c42..3c30ffb9a0 100644 --- a/binaries/data/mods/official/art/actors/units/kart_isw_b.xml +++ b/binaries/data/mods/official/art/actors/units/kart_isw_b.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/kart_isw_e.xml b/binaries/data/mods/official/art/actors/units/kart_isw_e.xml index d9e1831af8..816b0dbfc8 100644 --- a/binaries/data/mods/official/art/actors/units/kart_isw_e.xml +++ b/binaries/data/mods/official/art/actors/units/kart_isw_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/kart_su_1.xml b/binaries/data/mods/official/art/actors/units/kart_su_1.xml index 8d84a7e992..2f61ef2193 100644 --- a/binaries/data/mods/official/art/actors/units/kart_su_1.xml +++ b/binaries/data/mods/official/art/actors/units/kart_su_1.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/kart_su_2.xml b/binaries/data/mods/official/art/actors/units/kart_su_2.xml index 7ad61e2cb3..aafb3bece0 100644 --- a/binaries/data/mods/official/art/actors/units/kart_su_2.xml +++ b/binaries/data/mods/official/art/actors/units/kart_su_2.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/kart_trd.xml b/binaries/data/mods/official/art/actors/units/kart_trd.xml index 77f938fdb0..646b572857 100644 --- a/binaries/data/mods/official/art/actors/units/kart_trd.xml +++ b/binaries/data/mods/official/art/actors/units/kart_trd.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/pers_car_a.xml b/binaries/data/mods/official/art/actors/units/pers_car_a.xml index 2d8b7e2e40..b13b8ac82d 100644 --- a/binaries/data/mods/official/art/actors/units/pers_car_a.xml +++ b/binaries/data/mods/official/art/actors/units/pers_car_a.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/pers_car_b.xml b/binaries/data/mods/official/art/actors/units/pers_car_b.xml index 6c884469d2..de1d652707 100644 --- a/binaries/data/mods/official/art/actors/units/pers_car_b.xml +++ b/binaries/data/mods/official/art/actors/units/pers_car_b.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/pers_car_e.xml b/binaries/data/mods/official/art/actors/units/pers_car_e.xml index 9e1b65aae3..45f19a910f 100644 --- a/binaries/data/mods/official/art/actors/units/pers_car_e.xml +++ b/binaries/data/mods/official/art/actors/units/pers_car_e.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/pers_cjv_a.xml b/binaries/data/mods/official/art/actors/units/pers_cjv_a.xml index ab65634bae..e7a807df32 100644 --- a/binaries/data/mods/official/art/actors/units/pers_cjv_a.xml +++ b/binaries/data/mods/official/art/actors/units/pers_cjv_a.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/pers_cjv_b.xml b/binaries/data/mods/official/art/actors/units/pers_cjv_b.xml index 58db9b1a4d..0cc29328e8 100644 --- a/binaries/data/mods/official/art/actors/units/pers_cjv_b.xml +++ b/binaries/data/mods/official/art/actors/units/pers_cjv_b.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/pers_cjv_e.xml b/binaries/data/mods/official/art/actors/units/pers_cjv_e.xml index b7c7b6049e..3004103b69 100644 --- a/binaries/data/mods/official/art/actors/units/pers_cjv_e.xml +++ b/binaries/data/mods/official/art/actors/units/pers_cjv_e.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/pers_csp_a.xml b/binaries/data/mods/official/art/actors/units/pers_csp_a.xml index 66d4a69920..21ae1fa9de 100644 --- a/binaries/data/mods/official/art/actors/units/pers_csp_a.xml +++ b/binaries/data/mods/official/art/actors/units/pers_csp_a.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/pers_csp_b.xml b/binaries/data/mods/official/art/actors/units/pers_csp_b.xml index c54b32e63b..b07d4b50be 100644 --- a/binaries/data/mods/official/art/actors/units/pers_csp_b.xml +++ b/binaries/data/mods/official/art/actors/units/pers_csp_b.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/pers_csp_e.xml b/binaries/data/mods/official/art/actors/units/pers_csp_e.xml index 057b30ab17..647661ca59 100644 --- a/binaries/data/mods/official/art/actors/units/pers_csp_e.xml +++ b/binaries/data/mods/official/art/actors/units/pers_csp_e.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/pers_csw_a.xml b/binaries/data/mods/official/art/actors/units/pers_csw_a.xml index 685b735d4b..06e9b8e571 100644 --- a/binaries/data/mods/official/art/actors/units/pers_csw_a.xml +++ b/binaries/data/mods/official/art/actors/units/pers_csw_a.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/pers_csw_b.xml b/binaries/data/mods/official/art/actors/units/pers_csw_b.xml index 52ebf0d645..6c4fedc33f 100644 --- a/binaries/data/mods/official/art/actors/units/pers_csw_b.xml +++ b/binaries/data/mods/official/art/actors/units/pers_csw_b.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/pers_csw_e.xml b/binaries/data/mods/official/art/actors/units/pers_csw_e.xml index a2e93e3247..d858b2d7f0 100644 --- a/binaries/data/mods/official/art/actors/units/pers_csw_e.xml +++ b/binaries/data/mods/official/art/actors/units/pers_csw_e.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/pers_fem.xml b/binaries/data/mods/official/art/actors/units/pers_fem.xml index 6e4490b07a..5c008ed57f 100644 --- a/binaries/data/mods/official/art/actors/units/pers_fem.xml +++ b/binaries/data/mods/official/art/actors/units/pers_fem.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/pers_iar_a.xml b/binaries/data/mods/official/art/actors/units/pers_iar_a.xml index 1988718f44..fa45aa5d43 100644 --- a/binaries/data/mods/official/art/actors/units/pers_iar_a.xml +++ b/binaries/data/mods/official/art/actors/units/pers_iar_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/pers_iar_b.xml b/binaries/data/mods/official/art/actors/units/pers_iar_b.xml index c5e737f33d..82ba43b8a4 100644 --- a/binaries/data/mods/official/art/actors/units/pers_iar_b.xml +++ b/binaries/data/mods/official/art/actors/units/pers_iar_b.xml @@ -8,7 +8,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/pers_iar_e.xml b/binaries/data/mods/official/art/actors/units/pers_iar_e.xml index 0d2a25bb78..2fd65dfa0c 100644 --- a/binaries/data/mods/official/art/actors/units/pers_iar_e.xml +++ b/binaries/data/mods/official/art/actors/units/pers_iar_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/pers_ijv_a.xml b/binaries/data/mods/official/art/actors/units/pers_ijv_a.xml index 5cf882eaa6..46d340eec7 100644 --- a/binaries/data/mods/official/art/actors/units/pers_ijv_a.xml +++ b/binaries/data/mods/official/art/actors/units/pers_ijv_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/pers_ijv_b.xml b/binaries/data/mods/official/art/actors/units/pers_ijv_b.xml index 81d6e15b37..526a00188d 100644 --- a/binaries/data/mods/official/art/actors/units/pers_ijv_b.xml +++ b/binaries/data/mods/official/art/actors/units/pers_ijv_b.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/pers_ijv_e.xml b/binaries/data/mods/official/art/actors/units/pers_ijv_e.xml index 220e32a757..5a872d0b8f 100644 --- a/binaries/data/mods/official/art/actors/units/pers_ijv_e.xml +++ b/binaries/data/mods/official/art/actors/units/pers_ijv_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/pers_isp_a.xml b/binaries/data/mods/official/art/actors/units/pers_isp_a.xml index 7f9f3cb8b9..bf6e60d4a9 100644 --- a/binaries/data/mods/official/art/actors/units/pers_isp_a.xml +++ b/binaries/data/mods/official/art/actors/units/pers_isp_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/pers_isp_b.xml b/binaries/data/mods/official/art/actors/units/pers_isp_b.xml index f9d83acbf3..e27260bd13 100644 --- a/binaries/data/mods/official/art/actors/units/pers_isp_b.xml +++ b/binaries/data/mods/official/art/actors/units/pers_isp_b.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/pers_isp_e.xml b/binaries/data/mods/official/art/actors/units/pers_isp_e.xml index 9601b7d987..a142909c65 100644 --- a/binaries/data/mods/official/art/actors/units/pers_isp_e.xml +++ b/binaries/data/mods/official/art/actors/units/pers_isp_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/pers_su_1.xml b/binaries/data/mods/official/art/actors/units/pers_su_1.xml index cdb8fed803..9b16f33338 100644 --- a/binaries/data/mods/official/art/actors/units/pers_su_1.xml +++ b/binaries/data/mods/official/art/actors/units/pers_su_1.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/pers_su_2.xml b/binaries/data/mods/official/art/actors/units/pers_su_2.xml index 6b01c3fcf4..8503d2b37e 100644 --- a/binaries/data/mods/official/art/actors/units/pers_su_2.xml +++ b/binaries/data/mods/official/art/actors/units/pers_su_2.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/pers_trd.xml b/binaries/data/mods/official/art/actors/units/pers_trd.xml index f8da902890..3c6ce37338 100644 --- a/binaries/data/mods/official/art/actors/units/pers_trd.xml +++ b/binaries/data/mods/official/art/actors/units/pers_trd.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/rome_csp_a.xml b/binaries/data/mods/official/art/actors/units/rome_csp_a.xml index 6114732cc1..e4c3609679 100644 --- a/binaries/data/mods/official/art/actors/units/rome_csp_a.xml +++ b/binaries/data/mods/official/art/actors/units/rome_csp_a.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/rome_csp_b.xml b/binaries/data/mods/official/art/actors/units/rome_csp_b.xml index 68957fa765..1abe3029a1 100644 --- a/binaries/data/mods/official/art/actors/units/rome_csp_b.xml +++ b/binaries/data/mods/official/art/actors/units/rome_csp_b.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/rome_csp_e.xml b/binaries/data/mods/official/art/actors/units/rome_csp_e.xml index b2da292640..68c70df923 100644 --- a/binaries/data/mods/official/art/actors/units/rome_csp_e.xml +++ b/binaries/data/mods/official/art/actors/units/rome_csp_e.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/rome_fem.xml b/binaries/data/mods/official/art/actors/units/rome_fem.xml index d3c396bace..a3a36b4e76 100644 --- a/binaries/data/mods/official/art/actors/units/rome_fem.xml +++ b/binaries/data/mods/official/art/actors/units/rome_fem.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/rome_ijv_a.xml b/binaries/data/mods/official/art/actors/units/rome_ijv_a.xml index db65aad8ea..cc16c3dfe5 100644 --- a/binaries/data/mods/official/art/actors/units/rome_ijv_a.xml +++ b/binaries/data/mods/official/art/actors/units/rome_ijv_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/rome_ijv_b.xml b/binaries/data/mods/official/art/actors/units/rome_ijv_b.xml index 462404bd3f..61ec5ff4ee 100644 --- a/binaries/data/mods/official/art/actors/units/rome_ijv_b.xml +++ b/binaries/data/mods/official/art/actors/units/rome_ijv_b.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/rome_ijv_e.xml b/binaries/data/mods/official/art/actors/units/rome_ijv_e.xml index 2ee41595e4..8fa65e2079 100644 --- a/binaries/data/mods/official/art/actors/units/rome_ijv_e.xml +++ b/binaries/data/mods/official/art/actors/units/rome_ijv_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/rome_isl_a.xml b/binaries/data/mods/official/art/actors/units/rome_isl_a.xml index 3b4248033a..46f87b33d5 100644 --- a/binaries/data/mods/official/art/actors/units/rome_isl_a.xml +++ b/binaries/data/mods/official/art/actors/units/rome_isl_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/rome_isl_b.xml b/binaries/data/mods/official/art/actors/units/rome_isl_b.xml index 8e56b76720..5ddef76110 100644 --- a/binaries/data/mods/official/art/actors/units/rome_isl_b.xml +++ b/binaries/data/mods/official/art/actors/units/rome_isl_b.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/rome_isl_e.xml b/binaries/data/mods/official/art/actors/units/rome_isl_e.xml index d716475353..54dad36f73 100644 --- a/binaries/data/mods/official/art/actors/units/rome_isl_e.xml +++ b/binaries/data/mods/official/art/actors/units/rome_isl_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/rome_isp_a.xml b/binaries/data/mods/official/art/actors/units/rome_isp_a.xml index c056521d8b..a81b3a30c4 100644 --- a/binaries/data/mods/official/art/actors/units/rome_isp_a.xml +++ b/binaries/data/mods/official/art/actors/units/rome_isp_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/rome_isp_b.xml b/binaries/data/mods/official/art/actors/units/rome_isp_b.xml index 55ac78fde1..0b0ff9770d 100644 --- a/binaries/data/mods/official/art/actors/units/rome_isp_b.xml +++ b/binaries/data/mods/official/art/actors/units/rome_isp_b.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/rome_isp_e.xml b/binaries/data/mods/official/art/actors/units/rome_isp_e.xml index 9dcaf82bee..c4f4a0278b 100644 --- a/binaries/data/mods/official/art/actors/units/rome_isp_e.xml +++ b/binaries/data/mods/official/art/actors/units/rome_isp_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/rome_isw_a.xml b/binaries/data/mods/official/art/actors/units/rome_isw_a.xml index a96441a922..c44734602d 100644 --- a/binaries/data/mods/official/art/actors/units/rome_isw_a.xml +++ b/binaries/data/mods/official/art/actors/units/rome_isw_a.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/rome_isw_b.xml b/binaries/data/mods/official/art/actors/units/rome_isw_b.xml index eae58f3381..77e8708978 100644 --- a/binaries/data/mods/official/art/actors/units/rome_isw_b.xml +++ b/binaries/data/mods/official/art/actors/units/rome_isw_b.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/rome_isw_e.xml b/binaries/data/mods/official/art/actors/units/rome_isw_e.xml index cd0d19fba9..71a7f4c606 100644 --- a/binaries/data/mods/official/art/actors/units/rome_isw_e.xml +++ b/binaries/data/mods/official/art/actors/units/rome_isw_e.xml @@ -7,7 +7,7 @@ - + diff --git a/binaries/data/mods/official/art/actors/units/rome_su_1.xml b/binaries/data/mods/official/art/actors/units/rome_su_1.xml index 7421d76e00..201720d937 100644 --- a/binaries/data/mods/official/art/actors/units/rome_su_1.xml +++ b/binaries/data/mods/official/art/actors/units/rome_su_1.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/rome_su_2.xml b/binaries/data/mods/official/art/actors/units/rome_su_2.xml index 0207664a49..e5c575255f 100644 --- a/binaries/data/mods/official/art/actors/units/rome_su_2.xml +++ b/binaries/data/mods/official/art/actors/units/rome_su_2.xml @@ -13,7 +13,7 @@ > - + diff --git a/binaries/data/mods/official/art/actors/units/rome_trd.xml b/binaries/data/mods/official/art/actors/units/rome_trd.xml index aa6d8d9e39..75a2ae4bf9 100644 --- a/binaries/data/mods/official/art/actors/units/rome_trd.xml +++ b/binaries/data/mods/official/art/actors/units/rome_trd.xml @@ -13,7 +13,7 @@ > - + diff --git a/source/graphics/Model.cpp b/source/graphics/Model.cpp index db24e440f1..b640cd4f20 100755 --- a/source/graphics/Model.cpp +++ b/source/graphics/Model.cpp @@ -211,12 +211,14 @@ CSkeletonAnim* CModel::BuildAnimation(const char* filename, const char* name, fl CSkeletonAnimDef* def=g_SkelAnimMan.GetAnimation(filename); if (!def) return NULL; - CSkeletonAnim* anim = new CSkeletonAnim; + + CSkeletonAnim* anim=new CSkeletonAnim; anim->m_Name = name; - anim->m_AnimDef = def; - anim->m_Speed = speed; - anim->m_ActionPos = (size_t)(actionpos * anim->m_AnimDef->GetDuration() / speed); - anim->m_ActionPos2 = (size_t)(actionpos2 * anim->m_AnimDef->GetDuration() / speed); + anim->m_AnimDef=def; + anim->m_Speed=speed; + anim->m_ActionPos=(float)( actionpos /* * anim->m_AnimDef->GetDuration() */ / speed ); + anim->m_ActionPos2=(float)( actionpos2 /* * anim->m_AnimDef->GetDuration() */ / speed ); + anim->m_ObjectBounds.SetEmpty(); InvalidateBounds(); @@ -228,8 +230,8 @@ CSkeletonAnim* CModel::BuildAnimation(const char* filename, const char* name, fl void CModel::Update(float time) { if (m_Anim && m_BoneMatrices) { - // convert to ms and adjust for animation speed - float animtime = time*1000*m_Anim->m_Speed; + // adjust for animation speed + float animtime=time*m_AnimSpeed; // update animation time, but don't calculate bone matrices - do that (lazily) when // something requests them; that saves some calculation work for offscreen models, @@ -237,11 +239,16 @@ void CModel::Update(float time) // skinning) are up to date with respect to m_Transform m_AnimTime += animtime; - float duration = m_Anim->m_AnimDef->GetDuration(); + + float duration=m_Anim->m_AnimDef->GetDuration(); if (m_AnimTime > duration) { - if (m_Flags & MODELFLAG_NOLOOPANIMATION) - SetAnimation(NULL); - m_AnimTime = fmod(m_AnimTime, duration); + if( m_Flags & MODELFLAG_NOLOOPANIMATION ) + { + SetAnimation( m_NextAnim ); + } + else + m_AnimTime=(float) fmod(m_AnimTime,duration); + } // mark vertices as dirty @@ -298,14 +305,17 @@ void CModel::GenerateBoneMatrices() ///////////////////////////////////////////////////////////////////////////////////////////////////////////// // SetAnimation: set the given animation as the current animation on this model; // return false on error, else true -bool CModel::SetAnimation(CSkeletonAnim* anim, bool once) +bool CModel::SetAnimation(CSkeletonAnim* anim, bool once, float speed, CSkeletonAnim* next) { m_Anim=NULL; // in case something fails if (anim) { m_Flags &= ~MODELFLAG_NOLOOPANIMATION; if (once) + { m_Flags |= MODELFLAG_NOLOOPANIMATION; + m_NextAnim = next; + } if (!m_BoneMatrices) { // not boned, can't animate @@ -324,7 +334,10 @@ bool CModel::SetAnimation(CSkeletonAnim* anim, bool once) InvalidateBounds(); // start anim from beginning - m_AnimTime=0; + m_AnimTime=0; + + // Adjust speed by animation base rate. + m_AnimSpeed = speed * anim->m_Speed; } m_Anim=anim; diff --git a/source/graphics/Model.h b/source/graphics/Model.h index 8459856748..33e5e95ece 100755 --- a/source/graphics/Model.h +++ b/source/graphics/Model.h @@ -64,7 +64,8 @@ public: CMaterial &GetMaterial() { return m_Material; } // set the given animation as the current animation on this model - bool SetAnimation(CSkeletonAnim* anim, bool once = false); + bool SetAnimation(CSkeletonAnim* anim, bool once = false, float speed = 1000.0f, CSkeletonAnim* next = NULL ); + // get the currently playing animation, if any CSkeletonAnim* GetAnimation() { return m_Anim; } @@ -135,6 +136,10 @@ private: CBound m_ObjectBounds; // animation currently playing on this model, if any CSkeletonAnim* m_Anim; + // animation to switch back to when the current one finishes + CSkeletonAnim* m_NextAnim; + // rate at which the animation should play + float m_AnimSpeed; // time (in MS) into the current animation float m_AnimTime; // flag stating whether bone matrices are currently valid diff --git a/source/graphics/ObjectBase.h b/source/graphics/ObjectBase.h index 2707fe050f..7ba5e88d38 100644 --- a/source/graphics/ObjectBase.h +++ b/source/graphics/ObjectBase.h @@ -23,8 +23,7 @@ public: // animation speed, as specified in XML actor file float m_Speed; // fraction of the way through the animation that the interesting bit(s) - // happens (this is converted to an absolute time when the animation - // data is loaded) + // happens double m_ActionPos; double m_ActionPos2; }; diff --git a/source/graphics/SkeletonAnim.h b/source/graphics/SkeletonAnim.h index d61e3a47de..cbaa14ac52 100755 --- a/source/graphics/SkeletonAnim.h +++ b/source/graphics/SkeletonAnim.h @@ -25,9 +25,9 @@ public: CSkeletonAnimDef* m_AnimDef; // speed at which this animation runs float m_Speed; - // time(s) during the animation at which the interesting bit(s) happens (msec) - size_t m_ActionPos; - size_t m_ActionPos2; + // time(s) during the animation at which the interesting bit(s) happens (fractional) + float m_ActionPos; + float m_ActionPos2; // object space bounds of the model when this animation is applied to it CBound m_ObjectBounds; }; diff --git a/source/simulation/Entity.cpp b/source/simulation/Entity.cpp index 886d11501b..7f732aa3da 100755 --- a/source/simulation/Entity.cpp +++ b/source/simulation/Entity.cpp @@ -350,6 +350,123 @@ void CEntity::update( size_t timestep ) } } +#if AURA_TEST +void CEntity::UpdateAuras( size_t timestep_millis ) +{ + std::vector::iterator it_a; + for( it_a = m_Auras.begin(); it_a != m_Auras.end(); it_a++ ) + { + SAuraData& d = it_a->m_Data; + std::set& inRange = GetEntitiesWithinRange( m_position, d.m_Radius ); + + std::vector::iterator it1 = inRange.begin(); + std::vector::iterator it2 = it_a->m_Influenced.begin(); + + while( WORLD_IS_ROUND ) + { + if( it1 == inRange.end() ) + { + // No more in range => anything else in the influenced set must have gone + // out of range. + for( ; it2 != it_a->m_Influenced.end(); it2++ ) + UpdateAuras_LeaveRange( *it_a, it2->GetEntity() ); + + break; + } + if( it2 == it_a->m_Influenced.end() ) + { + // Everything else in the in-range set has only just come into range + for( ; it1 != inRange.end(); it1++ ) + UpdateAuras_EnterRange( *it_a, *it ); + break; + } + CEntity* e1 = *it1, e2 = it2->GetEntity(); + if( e1 < e2 ) + { + // A new entity e1 has just come into range. + // Check to see if it can be affected by the aura. + UpdateAuras_EnterRange( *it_a, e1 ); + ++it1; + } + else if( e1 == e2 ) + { + // The entity e1/e2 was previously in range, and still is. + UpdateAuras_Normal( *it_a, e1 ); + ++it1; ++it2; + } + else + { + // The entity e2 was previously in range, but is no longer. + UpdateAuras_LeaveRange( *it_a, e2 ); + ++it2; + } + } + } +} + +void UpdateAuras_EnterRange( SAura& aura, CEntity* e ) +{ + if( aura.m_Recharge ) + return( false ); + // Check to see if the entity is eligable + if( !UpdateAuras_IsEligable( aura.m_Data, e ) ) + return; // Do nothing. + + SAuraInstance ai; + ai.m_Influenced = e; + ai.m_EnteredRange = ai.m_LastInRange = 0; + ai.m_Applied = -1; + + // If there's no timer, apply the effect now. + if( aura.m_Data.m_Time == 0 ) + { + e->ApplyAuraEffect( aura.m_Data ); + ai.m_Applied = 0; + aura.m_Recharge = aura.m_Data.m_Cooldown; + } + + aura.m_Influenced.push_back( ai ); +} + +void UpdateAuras_Normal( SAura& aura, CEntity* e ) +{ + // Is the entity no longer eligable? + if( !UpdateAuras_IsEligable( aura.m_Data, e ) ) + { + // + } +} + +bool UpdateAuras_IsEligable( SAuraData& aura, CEntity* e ) +{ + if( e == this ) + { + if( !( aura.m_Allegiance & SAuraData::SELF ) ) + return( false ); + } + else if( e->m_player == GetGaiaPlayer() ) + { + if( !( aura.m_Allegiance & SAuraData::GAIA ) ) + return( false ); + } + else if( e->m_player == m_player ) + { + if( !( aura.m_Allegiance & SAuraData::PLAYER ) ) + return( false ); + } + // TODO: Allied players + else + { + if( !( aura.m_Allegiance & SAuraData::ENEMY ) ) + return( false ); + } + if( e->m_hp > e->m_hp_max * aura.m_Hitpoints ) + return( false ); + return( true ); +} + +#endif + void CEntity::Initialize() { CEventInitialize evt; diff --git a/source/simulation/Entity.h b/source/simulation/Entity.h index f04d5113e5..b7c9024416 100755 --- a/source/simulation/Entity.h +++ b/source/simulation/Entity.h @@ -142,6 +142,9 @@ public: // Updates graphical information for a point between the last and current simulation frame; 0 < relativeoffset < 1. void interpolate( float relativeoffset ); + // Updates auras + void UpdateAuras( size_t timestep_millis ); + // Removes entity from the gameworld and deallocates it, but not necessarily immediately. void kill(); diff --git a/source/simulation/EntityStateProcessing.cpp b/source/simulation/EntityStateProcessing.cpp index 71dc0c222f..01bf27193d 100755 --- a/source/simulation/EntityStateProcessing.cpp +++ b/source/simulation/EntityStateProcessing.cpp @@ -6,6 +6,7 @@ #include "BaseEntity.h" #include "Model.h" #include "ObjectEntry.h" +#include "SkeletonAnimDef.h" // Animation duration #include "Unit.h" #include "Collision.h" @@ -287,7 +288,8 @@ bool CEntity::processContactAction( CEntityOrder* current, size_t timestep_milli if( m_transition && m_actor ) { - m_actor->SetRandomAnimation( "walk" ); + CSkeletonAnim* walk = m_actor->GetRandomAnimation( "walk" ); + m_actor->GetModel()->SetAnimation( walk, false, m_speed * walk->m_AnimDef->GetDuration() ); // Animation desync m_actor->GetModel()->Update( ( rand() * 1000.0f ) / 1000.0f ); } @@ -311,7 +313,7 @@ bool CEntity::processContactActionNoPathing( CEntityOrder* current, size_t times // few hundred ms, at the 'action point' of the animation we're // now setting. - m_actor->GetModel()->SetAnimation( m_fsm_animation, true ); + m_actor->GetModel()->SetAnimation( m_fsm_animation, true, 1000.0f * m_fsm_animation->m_AnimDef->GetDuration() / (float)action->m_Speed, m_actor->GetRandomAnimation( "idle" ) ); } if( ( m_fsm_cyclepos <= m_fsm_anipos2 ) && ( nextpos > m_fsm_anipos2 ) ) @@ -375,7 +377,8 @@ bool CEntity::processContactActionNoPathing( CEntityOrder* current, size_t times // Play walk for a bit. if( m_actor && ! m_actor->IsPlayingAnimation( "walk" ) ) { - m_actor->SetRandomAnimation( "walk" ); + CSkeletonAnim* walk = m_actor->GetRandomAnimation( "walk" ); + m_actor->GetModel()->SetAnimation( walk, false, m_speed * walk->m_AnimDef->GetDuration() ); // Animation desync m_actor->GetModel()->Update( ( rand() * 1000.0f ) / 1000.0f ); } @@ -446,15 +449,16 @@ bool CEntity::processContactActionNoPathing( CEntityOrder* current, size_t times // when the timer reaches action->m_Speed. The timer increments by 2 every millisecond. // animation->m_actionpos is the time offset into that animation that event // should happen. So... - m_fsm_anipos = action->m_Speed - ( m_fsm_animation->m_ActionPos * 2 ); + m_fsm_anipos = (size_t)( action->m_Speed * ( 1.0f - 2 * m_fsm_animation->m_ActionPos ) ); // But... - if( action->m_Speed < ( m_fsm_animation->m_ActionPos * 2 ) ) + if( m_fsm_anipos < 0 ) { // We ought to have started it in the past. Oh well. // Here's what we'll do: play it now, and advance it to // the point it should be by now. - m_actor->GetModel()->SetAnimation( m_fsm_animation, true ); - m_actor->GetModel()->Update( m_fsm_animation->m_ActionPos / 1000.0f - action->m_Speed / 2000.0f ); + + m_actor->GetModel()->SetAnimation( m_fsm_animation, true, 1000.0f * m_fsm_animation->m_AnimDef->GetDuration() / (float)action->m_Speed, m_actor->GetRandomAnimation( "idle" ) ); + m_actor->GetModel()->Update( action->m_Speed * ( m_fsm_animation->m_ActionPos / 1000.0f - 0.0005f ) ); } else { @@ -466,8 +470,8 @@ bool CEntity::processContactActionNoPathing( CEntityOrder* current, size_t times // Load time needs to be animation->m_ActionPos2 ms after the start of the animation. - m_fsm_anipos2 = m_fsm_anipos + ( m_fsm_animation->m_ActionPos2 * 2 ); - if( action->m_Speed < ( ( m_fsm_animation->m_ActionPos + m_fsm_animation->m_ActionPos2 ) * 2 ) ) + m_fsm_anipos2 = m_fsm_anipos + ( action->m_Speed * m_fsm_animation->m_ActionPos2 * 2 ); + if( m_fsm_anipos2 < 0 ) { // Load now. m_actor->ShowAmmunition(); @@ -488,6 +492,7 @@ bool CEntity::processAttackMeleeNoPathing( CEntityOrder* current, size_t timeste if( !m_actor ) return( false ); return( processContactActionNoPathing( current, timestep_milli, "melee", &evt, &m_melee ) ); } + bool CEntity::processGather( CEntityOrder* current, size_t timestep_millis ) { return( processContactAction( current, timestep_millis, CEntityOrder::ORDER_GATHER_NOPATHING, &m_gather ) ); @@ -514,7 +519,9 @@ bool CEntity::processGoto( CEntityOrder* current, size_t timestep_millis ) if( m_transition && m_actor ) { - m_actor->SetRandomAnimation( "walk" ); + + CSkeletonAnim* walk = m_actor->GetRandomAnimation( "walk" ); + m_actor->GetModel()->SetAnimation( walk, false, m_speed * walk->m_AnimDef->GetDuration() ); // Animation desync m_actor->GetModel()->Update( ( rand() * 1000.0f ) / 1000.0f ); } diff --git a/source/simulation/EntitySupport.h b/source/simulation/EntitySupport.h index a25c44b10a..481ed30844 100755 --- a/source/simulation/EntitySupport.h +++ b/source/simulation/EntitySupport.h @@ -3,6 +3,9 @@ #ifndef ENTITY_SUPPORT_INCLUDED #define ENTITY_SUPPORT_INCLUDED +#include "EntityHandles.h" +#include "ScriptObject.h" + class CEntityManager; class CDamageType : public CJSObject @@ -84,7 +87,9 @@ struct SClassSet { SClassSet* m_Parent; - STL_HASH_SET m_Set; + typedef STL_HASH_SET ClassSet; + + ClassSet m_Set; std::vector m_Added; std::vector m_Removed; @@ -111,4 +116,44 @@ struct SClassSet } }; +struct SAuraData +{ + enum Allegiance + { + SELF = 1, + PLAYER = 2, + GAIA = 4, + ALLY = 8, + ENEMY = 16, + }; + static const size_t DURATION_RADIUS = -1; + static const size_t DURATION_PERMANENT = -2; + SClassSet::ClassSet m_Affects; + Allegiance m_Allegiance; + float m_Radius; + size_t m_Time; + size_t m_Cooldown; + float m_Hitpoints; + size_t m_Duration; + bool m_Cumulative; + CScriptObject m_BeginEffect; + CScriptObject m_EndEffect; +}; + +struct SAuraInstance +{ + HEntity m_Influenced; + size_t m_EnteredRange; + size_t m_LastInRange; + size_t m_Applied; + inline CEntity* GetEntity() const { return( m_Influenced ); } +}; + +struct SAura +{ + std::vector m_Influenced; + SAuraData m_Data; + size_t m_Recharge; +}; + #endif diff --git a/source/simulation/ScriptObject.h b/source/simulation/ScriptObject.h index b63bc0402a..8e6ca77ff1 100755 --- a/source/simulation/ScriptObject.h +++ b/source/simulation/ScriptObject.h @@ -19,9 +19,6 @@ class CScriptObject void Root(); void Uproot(); - // TODO: Remove, debugging - static int count; - public: CScriptObject();