]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
support up to 2 aim bones
authorRudolf Polzer <divverent@xonotic.org>
Tue, 12 Feb 2013 10:36:05 +0000 (11:36 +0100)
committerRudolf Polzer <divverent@xonotic.org>
Tue, 12 Feb 2013 10:36:05 +0000 (11:36 +0100)
17 files changed:
models/player/erebus.iqm_0.txt
models/player/gak.iqm_0.txt
models/player/gakarmored.iqm_0.txt
models/player/gakmasked.iqm_0.txt
models/player/ignis.iqm_0.txt
models/player/ignishalfmasked.iqm_0.txt
models/player/ignismasked.iqm_0.txt
models/player/megaerebus.iqm_0.txt
models/player/nyx.iqm_0.txt
models/player/pyria.iqm_0.txt
models/player/seraphina.iqm_0.txt
models/player/seraphinamasked.iqm_0.txt
models/player/umbra.iqm_0.txt
qcsrc/client/player_skeleton.qc
qcsrc/client/player_skeleton.qh
qcsrc/common/util.qc
qcsrc/common/util.qh

index 79fb0bc65581d766baa0c6a9f0c6f1b5a343fe01..359949d2e4a6d8642f8853b2f3271d49149a9a20 100644 (file)
@@ -4,7 +4,7 @@ sex Male
 weight 105
 age 26
 bone_upperbody spine2
-bone_aim spine2
+bone_aim1 1 spine2
 bone_weapon bip01 r hand
 fixbone 1
 
index 9a6f524017513ed63b921b32cbb1dedd3495e667..160f2ec4ea38e630d2e81fa10201a81881929e2d 100644 (file)
@@ -4,7 +4,7 @@ sex Male
 weight 85
 age 16
 bone_upperbody spine2
-bone_aim spine2
+bone_aim1 1 spine2
 bone_weapon bip01 r hand
 fixbone 1
 
index 3a7b199ac28484f2faf68f74080b2df2ca213e56..3378343fc69b246e192f682e4e13376011b4897d 100644 (file)
@@ -4,7 +4,7 @@ sex Male
 weight 90
 age 20
 bone_upperbody spine2
-bone_aim spine2
+bone_aim1 1 spine2
 bone_weapon bip01 r hand
 fixbone 1
 
index 72e6947718b4c86c4f61ecbf9e421ba5b401dfb9..84b27c74eb5110c48e4ae58f2d5a4e9e2f232c05 100644 (file)
@@ -4,7 +4,7 @@ sex Male
 weight 87
 age 18
 bone_upperbody spine2
-bone_aim spine2
+bone_aim1 1 spine2
 bone_weapon bip01 r hand
 fixbone 1
 
index ea1cb7a307d8f3d4c5974717d80bc2cd5deda664..f2b4e3ff3cb1dbbc0a3391edf88b07c907662476 100644 (file)
@@ -4,7 +4,7 @@ sex Male
 weight 88
 age 31
 bone_upperbody spine2
-bone_aim spine2
+bone_aim1 1 spine2
 bone_weapon bip01 r hand
 fixbone 1
 
index 8c3be337108b755382254c802fc3313f3ece93e9..7cd377b31da4524b12d9d90afb182301ee8340dd 100644 (file)
@@ -4,7 +4,7 @@ sex Male
 weight 90
 age 31
 bone_upperbody spine2
-bone_aim spine2
+bone_aim1 1 spine2
 bone_weapon bip01 r hand
 fixbone 1
 
index c5944ca4c6adacd18afda7bc29b80bd61606e990..a4b082c708ba009900f757e9d99bbc733363360a 100644 (file)
@@ -4,7 +4,7 @@ sex Male
 weight 92
 age 31
 bone_upperbody spine2
-bone_aim spine2
+bone_aim1 1 spine2
 bone_weapon bip01 r hand
 fixbone 1
 
index 2e7cfba0b9025719f14b423c6f7925854f3a6df7..e8bbbf10cb5254bdc9c7cd3a1b3a19ca72861337 100644 (file)
@@ -4,7 +4,7 @@ sex Male
 weight 210
 age 26
 bone_upperbody spine2
-bone_aim spine2
+bone_aim1 1 spine2
 bone_weapon bip01 r hand
 fixbone 1
 
index 714f8212b11bcf7f2e85b7d713d9a33c59976eb0..6184efddbc4383754a05f36f527a2e21f4df09e3 100644 (file)
@@ -4,7 +4,7 @@ sex Female
 weight 100
 age 24
 bone_upperbody spine2
-bone_aim spine2
+bone_aim1 1 spine2
 bone_weapon bip01 r hand
 fixbone 1
 
index 47c8ef1ae22feddb84cbf88d43e02d31da493d16..d18f4b56f256cb0921e3805eed5214504daf967f 100644 (file)
@@ -4,7 +4,7 @@ sex Female
 weight 57
 age 53
 bone_upperbody spine2
-bone_aim spine2
+bone_aim1 1 spine2
 bone_weapon bip01 r hand
 fixbone 1
 
index a64d0c221536bdec949412db8c6803bb0b45496c..186c4a421b2d6f375b78008eeb3b578f27565e84 100644 (file)
@@ -4,7 +4,7 @@ sex Female
 weight 89
 age 31
 bone_upperbody spine2
-bone_aim spine2
+bone_aim1 1 spine2
 bone_weapon bip01 r hand
 fixbone 1
 
index d3e9cf1f216e4bd204a8e490f686a8e1e782e892..b20ef794ad765d9ecc4c944177054526ddbd3149 100644 (file)
@@ -4,7 +4,7 @@ sex Female
 weight 90
 age 31
 bone_upperbody spine2
-bone_aim spine2
+bone_aim1 1 spine2
 bone_weapon bip01 r hand
 fixbone 1
 
index a8fa9181428a23fa56262217e367b6ec11e45db7..0572cb2b346deaa85afbdfa35740731902171877 100644 (file)
@@ -4,7 +4,7 @@ sex Female
 weight 61
 age 25
 bone_upperbody spine2
-bone_aim spine2
+bone_aim1 1 spine2
 bone_weapon bip01 r hand
 fixbone 1
 
index d51ac0d9f72c6d48ab19d5a320aefbaef380b4b5..96879c561cd61528cff66843fdf956749b13053c 100644 (file)
@@ -16,18 +16,27 @@ void skeleton_loadinfo(entity e)
                e.bone_weapon = gettagindex(e, "tag_weapon");
        if(!e.bone_weapon)
                e.bone_weapon = gettagindex(e, "bip01 r hand");
-       e.bone_aim = 0;
+       e.bone_aim1 = 0;
+       e.bone_aim2 = 0;
+       e.bone_aim1weight = 0;
+       e.bone_aim2weight = 0;
        e.fixbone = 0;
        if(get_model_parameters(e.model, e.skin))
        {
                if(get_model_parameters_bone_upperbody)
                        e.bone_upperbody = gettagindex(e, get_model_parameters_bone_upperbody);
-               if(get_model_parameters_bone_weapon)
-                       e.bone_weapon = gettagindex(e, get_model_parameters_bone_weapon);
-               if(get_model_parameters_bone_aim)
-                       e.bone_aim = gettagindex(e, get_model_parameters_bone_aim);
                if(e.bone_upperbody)
                        e.fixbone = get_model_parameters_fixbone;
+               if(get_model_parameters_bone_weapon)
+                       e.bone_weapon = gettagindex(e, get_model_parameters_bone_weapon);
+               if(get_model_parameters_bone_aim1)
+                       e.bone_aim1 = gettagindex(e, get_model_parameters_bone_aim1);
+               if(e.bone_aim1)
+                       e.bone_aim1weight = get_model_parameters_bone_aim1weight;
+               if(get_model_parameters_bone_aim2)
+                       e.bone_aim2 = gettagindex(e, get_model_parameters_bone_aim2);
+               if(e.bone_aim2)
+                       e.bone_aim2weight = get_model_parameters_bone_aim2weight;
        }
        else
                dprint("No model parameters for ", e.model, "\n");
@@ -155,13 +164,23 @@ void skeleton_from_frames(entity e)
                skel_set_boneabs(s, e.bone_upperbody, org);
        }
 
-       if(e.bone_aim)
+       if(e.bone_aim1)
+       {
+               vector aim = '1 0 0' * bound(-90, self.v_angle_x, 90) * e.bone_aim1weight;
+               vector org = skel_get_boneabs(s, e.bone_aim1);
+               vector ang_cur = fixedvectoangles2(v_forward, v_up);
+               vector ang = AnglesTransform_Multiply(aim, ang_cur);
+               fixedmakevectors(ang);
+               skel_set_boneabs(s, e.bone_aim1, org);
+       }
+
+       if(e.bone_aim2)
        {
-               vector aim = '1 0 0' * bound(-90, self.v_angle_x, 90);
-               vector org = skel_get_boneabs(s, e.bone_aim);
+               vector aim = '1 0 0' * bound(-90, self.v_angle_x, 90) * e.bone_aim2weight;
+               vector org = skel_get_boneabs(s, e.bone_aim2);
                vector ang_cur = fixedvectoangles2(v_forward, v_up);
                vector ang = AnglesTransform_Multiply(aim, ang_cur);
                fixedmakevectors(ang);
-               skel_set_boneabs(s, e.bone_aim, org);
+               skel_set_boneabs(s, e.bone_aim2, org);
        }
 }
index ad63a7332241b055be120fc9ec2d5cecf2201907..45023a7b10b241e8ae4c63e8eb994532a04bc10e 100644 (file)
@@ -4,5 +4,8 @@ void skeleton_loadinfo(entity e);
 
 .float bone_upperbody;
 .float bone_weapon;
-.float bone_aim;
+.float bone_aim1;
+.float bone_aim1weight;
+.float bone_aim2;
+.float bone_aim2weight;
 .float fixbone;
index ffcc2e1c3d7581a62630958e1b058988a7786760..f6f318c48e46290e14b951a80c2a3cc2d161d554 100644 (file)
@@ -2013,7 +2013,10 @@ float get_model_parameters(string m, float sk)
        get_model_parameters_desc = string_null;
        get_model_parameters_bone_upperbody = string_null;
        get_model_parameters_bone_weapon = string_null;
-       get_model_parameters_bone_aim = string_null;
+       get_model_parameters_bone_aim1 = string_null;
+       get_model_parameters_bone_aim2 = string_null;
+       get_model_parameters_bone_aim1weight = 0;
+       get_model_parameters_bone_aim2weight = 0;
        get_model_parameters_fixbone = 0;
 
        if not(m)
@@ -2074,8 +2077,16 @@ float get_model_parameters(string m, float sk)
                        get_model_parameters_bone_upperbody = s;
                if(c == "bone_weapon")
                        get_model_parameters_bone_weapon = s;
-               if(c == "bone_aim")
-                       get_model_parameters_bone_aim = s;
+               if(c == "bone_aim1")
+               {
+                       get_model_parameters_bone_aim1weight = stof(car(s));
+                       get_model_parameters_bone_aim1 = cdr(s);
+               }
+               if(c == "bone_aim2")
+               {
+                       get_model_parameters_bone_aim2weight = stof(car(s));
+                       get_model_parameters_bone_aim2 = cdr(s);
+               }
                if(c == "fixbone")
                        get_model_parameters_fixbone = stof(s);
        }
index 187622be0e211d830d6170cf204b50ff64eea5cb..a406e12426b3f73b0a71e53409ab2323be8f91c0 100644 (file)
@@ -252,7 +252,10 @@ float get_model_parameters_weight;
 float get_model_parameters_age;
 string get_model_parameters_bone_upperbody;
 string get_model_parameters_bone_weapon;
-string get_model_parameters_bone_aim;
+string get_model_parameters_bone_aim1;
+float get_model_parameters_bone_aim1weight;
+string get_model_parameters_bone_aim2;
+float get_model_parameters_bone_aim2weight;
 float get_model_parameters_fixbone;
 string get_model_parameters_desc;
 float get_model_parameters(string mod, float skn); // call with string_null to clear; skin -1 means mod is the filename of the txt file and is to be split