diff --git a/3d-models.cpp b/3d-models.cpp index 5d42aef4..c1c8cfd5 100644 --- a/3d-models.cpp +++ b/3d-models.cpp @@ -320,8 +320,16 @@ void geometry_information::addtri(array hs, int kind) { } } +void disable(hpcshape& sh) { + sh.s = sh.e = 0; + } + void geometry_information::make_armor_3d(hpcshape& sh, int kind) { + if(BADMODEL) { + disable(sh); + return; + } auto body = get_shape(sh); vector >> pts(2); @@ -374,8 +382,8 @@ void geometry_information::make_head_only() { bshape(shPHeadOnly, shPHeadOnly.prio); last->flags |= POLY_TRIANGLES; - for(int d=0; d<360; d+=30) - for(int u=-90; u<=90; u+=30) { + for(int d=0; d<360; d+=(BADMODEL ? 60 : 30)) + for(int u=-90; u<=90; u+=(BADMODEL ? 90 : 30)) { addpt(d, u); addpt(d+30, u); addpt(d, u+30); @@ -480,7 +488,7 @@ void geometry_information::make_skeletal(hpcshape& sh, ld push) { void geometry_information::make_revolution(hpcshape& sh, int mx, ld push) { auto body = get_shape(sh); bshape(sh, PPR::MONSTER_BODY); - int step = (mx == 360 ? 24 : 10); + int step = (BADMODEL ? 60 : (mx == 360 ? 24 : 10)); for(int i=0; i hpcshape_animated;