]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
un-weirden the aspect of the player model previews
authorRudolf Polzer <divverent@alientrap.org>
Sun, 9 May 2010 13:28:25 +0000 (15:28 +0200)
committerRudolf Polzer <divverent@alientrap.org>
Sun, 9 May 2010 13:31:59 +0000 (15:31 +0200)
22 files changed:
models/player/carni.zym_0.tga
models/player/carni.zym_1.tga
models/player/crash.zym_0.tga
models/player/grunt.zym_0.tga
models/player/headhunter.zym_0.tga
models/player/insurrectionist.zym_0.tga
models/player/jeandarc.zym_1.tga
models/player/lurk.zym_0.tga
models/player/lurk.zym_1.tga
models/player/lycanthrope.zym_0.tga
models/player/marine.zym_0.tga
models/player/nexus.zym_0.tga
models/player/nexus.zym_1.tga
models/player/pyria.zym_0.tga
models/player/shock.zym_0.tga
models/player/skadi.zym_0.tga
models/player/specop.zym_0.tga
models/player/visitant.zym_1.tga
models/player/xolar.dpm_0.tga
qcsrc/menu/item/image.c
qcsrc/menu/xonotic/image.c
qcsrc/menu/xonotic/playermodel.c

index 8794d6678b51750a1d904d0be2525938cc8f6955..8e7931556afabeebbc089844256f4db811ac2e5a 100644 (file)
Binary files a/models/player/carni.zym_0.tga and b/models/player/carni.zym_0.tga differ
index 0d4d317e4e1815b4dd26f0457343a4459532842d..b5ed5130b9ba8bbbde16b9f732e39188016f29c0 100644 (file)
Binary files a/models/player/carni.zym_1.tga and b/models/player/carni.zym_1.tga differ
index 57c655b2d88c8f18c04ee634b8c2659c68225b44..8d543fcb15991f1249dc52bbc11a4e6c8c3f7981 100644 (file)
Binary files a/models/player/crash.zym_0.tga and b/models/player/crash.zym_0.tga differ
index 0a4d0206e1cd4fb7605e8e63d43ed15587381abe..96fa4b4fa5bed89a8936ce4c0e37de3f12cebc41 100644 (file)
Binary files a/models/player/grunt.zym_0.tga and b/models/player/grunt.zym_0.tga differ
index 1ae924909675d3669293c0fcf37efccb272c5a54..fa4ce0c60f6e499c77536ae2cb48e796a5663191 100644 (file)
Binary files a/models/player/headhunter.zym_0.tga and b/models/player/headhunter.zym_0.tga differ
index e6bc1e8d88f94326cd4cbf93b705dba6cecc13dd..fd09128efbcbc365421942644f8ca13ab013ed50 100644 (file)
Binary files a/models/player/insurrectionist.zym_0.tga and b/models/player/insurrectionist.zym_0.tga differ
index e2621fb96ef8fd451bd9bfad3257b705ba2aafd7..84e1903a577aa60363acfdf30aed75afe5c4b454 100644 (file)
Binary files a/models/player/jeandarc.zym_1.tga and b/models/player/jeandarc.zym_1.tga differ
index 1ac6fe1a52c074c0d78c34ab86bff789cca1883e..fd55f55bb8758e3395493be9770ee5906de64c00 100644 (file)
Binary files a/models/player/lurk.zym_0.tga and b/models/player/lurk.zym_0.tga differ
index 07689367e9ddeddf0e58866e3e5bd7a0bdd88974..18eb91814e9fd22870f60af814f34ce1e91a61a6 100644 (file)
Binary files a/models/player/lurk.zym_1.tga and b/models/player/lurk.zym_1.tga differ
index d212e4da019575bba9bfdf39e6754ceda208e41f..836eb8205236b392c14407aed83718255ed18238 100644 (file)
Binary files a/models/player/lycanthrope.zym_0.tga and b/models/player/lycanthrope.zym_0.tga differ
index e75e1c6a725faa176729c5fa02c1130b853dfbec..f7efd21e6736f0aab07c0f5133546b82bf60bba9 100644 (file)
Binary files a/models/player/marine.zym_0.tga and b/models/player/marine.zym_0.tga differ
index fb915b6a85685c8074fde821f0cb5b34c1be72ae..cab6e0ffffc33df822eae9bd6b3bea03a358e504 100644 (file)
Binary files a/models/player/nexus.zym_0.tga and b/models/player/nexus.zym_0.tga differ
index b0e81125d7c58b3ede7445b2007a8b91def852bb..c6579f98c9ad7cd1b692462199c15d1c936c4033 100644 (file)
Binary files a/models/player/nexus.zym_1.tga and b/models/player/nexus.zym_1.tga differ
index a0c9837661fa8144156b9001bbf606fc60dd61ce..6d86c4fc8d1a98058622265b26b7971893685b3b 100644 (file)
Binary files a/models/player/pyria.zym_0.tga and b/models/player/pyria.zym_0.tga differ
index e296c2a8c4734c07a7815501b6d48b19377dc195..a5fde6ccb62561095f2e996c2eeeb15f89668eba 100644 (file)
Binary files a/models/player/shock.zym_0.tga and b/models/player/shock.zym_0.tga differ
index 3d4bb91c21c2736582f768cd5494108eb4af7db7..9ed26e2f939b3d27215388cd40d7639599e5f26c 100644 (file)
Binary files a/models/player/skadi.zym_0.tga and b/models/player/skadi.zym_0.tga differ
index e19d0ab4a141fffc0cc88e153381db4b6e4edf82..1c0e06e9a31a8c84bcf7da7e5ccb7e8f9baf0123 100644 (file)
Binary files a/models/player/specop.zym_0.tga and b/models/player/specop.zym_0.tga differ
index 1dc5b02ba77a0eeda6b86a3ef8e98d681b5c025e..295e89a625f9b78d0349320ad02ab0a42d5febef 100644 (file)
Binary files a/models/player/visitant.zym_1.tga and b/models/player/visitant.zym_1.tga differ
index f5ab215fa45c4cb02417977fe77f43303e667b56..ed2106af82e586ee74a0a61f4a2881b1f3aebdea 100644 (file)
Binary files a/models/player/xolar.dpm_0.tga and b/models/player/xolar.dpm_0.tga differ
index 4e252d8d2226e14ee02eb470ea693715d5bdbe45..c60ec232f2c7b2f2e4e5539f02bb69a034711464 100644 (file)
@@ -4,6 +4,7 @@ CLASS(Image) EXTENDS(Item)
        METHOD(Image, draw, void(entity))
        METHOD(Image, toString, string(entity))
        METHOD(Image, resizeNotify, void(entity, vector, vector, vector, vector))
+       METHOD(Image, updateAspect, void(entity))
        ATTRIB(Image, src, string, string_null)
        ATTRIB(Image, color, vector, '1 1 1')
        ATTRIB(Image, forcedAspect, float, 0)
@@ -25,9 +26,11 @@ void drawImage(entity me)
 {
        draw_Picture(me.imgOrigin, me.src, me.imgSize, me.color, 1);
 }
-void resizeNotifyImage(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
+void updateAspectImage(entity me)
 {
-       resizeNotifyItem(me, relOrigin, relSize, absOrigin, absSize);
+       float asp;
+       if(me.size_x <= 0 || me.size_y <= 0)
+               return;
        if(me.forcedAspect == 0)
        {
                me.imgOrigin = '0 0 0';
@@ -35,17 +38,30 @@ void resizeNotifyImage(entity me, vector relOrigin, vector relSize, vector absOr
        }
        else
        {
-               if(absSize_x > me.forcedAspect * absSize_y)
+               if(me.forcedAspect < 0)
+               {
+                       vector sz;
+                       sz = draw_PictureSize(me.src);
+                       asp = sz_x / sz_y;
+               }
+               else
+                       asp = me.forcedAspect;
+               if(me.size_x > asp * me.size_y)
                {
                        // x too large, so center x-wise
-                       me.imgSize = eY + eX * (absSize_y * me.forcedAspect / absSize_x);
+                       me.imgSize = eY + eX * (me.size_y * asp / me.size_x);
                }
                else
                {
                        // y too large, so center y-wise
-                       me.imgSize = eX + eY * (absSize_x / (me.forcedAspect * absSize_y));
+                       me.imgSize = eX + eY * (me.size_x / (asp * me.size_y));
                }
                me.imgOrigin = '0.5 0.5 0' - 0.5 * me.imgSize;
        }
 }
+void resizeNotifyImage(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
+{
+       resizeNotifyItem(me, relOrigin, relSize, absOrigin, absSize);
+       me.updateAspect(me);
+}
 #endif
index 40709cd3514e2a610fb81ab8c54646c1004667dc..65f5ee9d817b84957f105519ae5789ad8b32e2ab 100644 (file)
@@ -16,13 +16,6 @@ entity makeXonoticImage(string theImage, float theAspect)
 void configureXonoticImageXonoticImage(entity me, string theImage, float theAspect)
 {
        me.configureImage(me, theImage);
-       if(theAspect < 0) // use image aspect
-       {
-               vector sz;
-               sz = draw_PictureSize(theImage);
-               me.forcedAspect = sz_x / sz_y;
-       }
-       else
-               me.forcedAspect = theAspect;
+       me.forcedAspect = theAspect;
 }
 #endif
index f98b23cf1bf6cf92e3b70452f61d3e4c9da9e8dc..27d5721afd3c6d432e50fc50e15049989c0a7548 100644 (file)
@@ -47,7 +47,7 @@ void configureXonoticPlayerModelSelectorXonoticPlayerModelSelector(entity me)
        float sortbuf, glob, i;
        string fn;
 
-       me.configureXonoticImage(me, string_null, 263.0/360.0);
+       me.configureXonoticImage(me, string_null, -1);
 
        sortbuf = buf_create();
        glob = search_begin(get_model_datafilename(string_null, -1, "txt"), TRUE, TRUE);
@@ -131,6 +131,10 @@ void goXonoticPlayerModelSelector(entity me, float d)
        me.currentSkin = stof(bufstr_get(me.bufModels, BUFMODELS_COUNT*me.idxModels+BUFMODELS_SKIN));
        me.currentModel = strzone(bufstr_get(me.bufModels, BUFMODELS_COUNT*me.idxModels+BUFMODELS_MODEL));
        me.currentModelDescription = strzone(bufstr_get(me.bufModels, BUFMODELS_COUNT*me.idxModels+BUFMODELS_DESC));
+
+       // fix the image
+       me.src = me.currentModelImage;
+       me.updateAspect(me);
 }
 
 void PlayerModelSelector_Next_Click(entity btn, entity me)
@@ -157,9 +161,7 @@ void drawXonoticPlayerModelSelector(entity me)
        float i, n;
        vector o;
 
-       me.src = me.currentModelImage;
        drawImage(me);
-       me.src = string_null;
 
        // draw text on the image, handle \n in the description
        draw_CenterText('0.5 0 0', me.currentModelTitle, me.realFontSize * (me.titleFontSize / me.fontSize), SKINCOLOR_MODELTITLE, SKINALPHA_MODELTITLE, FALSE);