diff --git a/geometry.cpp b/geometry.cpp index dbe9ab75..e44b5c46 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -25,6 +25,8 @@ transmatrix invheptmove[MAX_EDGE], invhexmove[MAX_EDGE]; ld hexshift; +ld sword_size = 0; + // the results are: // hexf = 0.378077 hcrossf = 0.620672 tessf = 1.090550 // hexhexdist = 0.566256 diff --git a/hyper.h b/hyper.h index 4c61982a..3afdab91 100644 --- a/hyper.h +++ b/hyper.h @@ -3434,6 +3434,7 @@ void queuereset(eModel m, PPR prio); extern ld tessf, crossf, hexf, hcrossf, hexhexdist, hexvdist, hepvdist, rhexf; +extern ld sword_size; extern ld scalefactor, orbsize, floorrad0, floorrad1, zhexf; diff --git a/polygons.cpp b/polygons.cpp index 68e30b75..8386cd0a 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -2924,11 +2924,14 @@ void buildpolys() { for(int v=0; v<13; v++) for(int z=0; z<2; z++) copyshape(shTortoise[v][4+z], shTortoise[v][2+z], PPR(shTortoise[v][2+z].prio + (PPR::CARRIED-PPR::ITEM))); - if(!BITRUNCATED) bshape(shMagicSword, PPR::MAGICSWORD, scalefactor, 243); - else bshape(shMagicSword, PPR::MAGICSWORD, 1, 244); + if(scalefactor > 1.5) bshape(shMagicSword, PPR::MAGICSWORD, scalefactor / 1.7570466583108084, 243); + else bshape(shMagicSword, PPR::MAGICSWORD, scalefactor, 244); + + sword_size = 0; + for(int i=shMagicSword.s; ipat * xspinpush0(pc[id]->swordangle, (rev?-frac:frac) * getSwordSize());