diff --git a/3d-models.cpp b/3d-models.cpp index b077a832..ba497aff 100644 --- a/3d-models.cpp +++ b/3d-models.cpp @@ -859,6 +859,19 @@ void make_3d_models() { disable(shTrylobiteRearLeg); disable(shPFace); disable(shJiangShi); + + make_revolution_cut(shDragonSegment, 60, g); + make_revolution_cut(shDragonHead, 60, g); + make_revolution_cut(shDragonTail, 60, g); + make_revolution_cut(shWormSegment, 60, g); + make_revolution_cut(shSmallWormSegment, 60, g); + make_revolution_cut(shWormHead, 60, g); + make_revolution_cut(shTentHead, 60, g); + make_revolution_cut(shKrakenHead, 60, -geom3::FLOOR); + make_revolution_cut(shSeaTentacle, 60, -geom3::FLOOR); + make_revolution_cut(shDragonLegs, 60, g); + make_revolution_cut(shDragonWings, 60, g); + disable(shDragonNostril); make_head_only(); diff --git a/graph.cpp b/graph.cpp index 52a070bc..01c08f65 100644 --- a/graph.cpp +++ b/graph.cpp @@ -2163,7 +2163,7 @@ bool drawMonster(const transmatrix& Vparam, int ct, cell *c, color_t col) { else if(isAnyIvy(c) || isWorm(c)) { - if(isWorm(c) && DIM == 3) return false; + if(isWorm(c) && WDIM == 3) return false; if((m == moHexSnake || m == moHexSnakeTail) && c->hitpoints == 2) { int d = c->mondir; @@ -2180,7 +2180,7 @@ bool drawMonster(const transmatrix& Vparam, int ct, cell *c, color_t col) { if(isDragon(c->monst) && c->stuntime == 0) col = 0xFF6000; transmatrix Vb0 = Vb; - if(c->mondir != NODIR && DIM == 3) { + if(c->mondir != NODIR && DIM == 3 && isAnyIvy(c)) { queueline(tC0(Vparam), Vparam * tC0(calc_relative_matrix(c->move(c->mondir), c, C0)), (col << 8) + 0xFF, 0); } else if(c->mondir != NODIR) {