diff --git a/geometry.cpp b/geometry.cpp index cb34697c..412e9111 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -254,6 +254,7 @@ hpcshape shCross, shGiantStar[2], shLake, shMirror, shHalfFloor[6], shHalfMirror[3], shGem[2], shStar, shFlash, shDisk, shHalfDisk, shDiskT, shDiskS, shDiskM, shDiskSq, shEccentricDisk, shDiskSegment, + shHeptagon, shHeptagram, shTinyBird, shTinyShark, shEgg, shSmallEgg, shRing, shSpikedRing, shTargetRing, shSawRing, shGearRing, shPeaceRing, diff --git a/graph.cpp b/graph.cpp index bec96f92..309547e2 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1116,6 +1116,10 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int queuepolyat(Vit, cgi.shFlash, dark, prio); else if (it == itOrbMatter || it == itOrbStone) queuepolyat(Vit, cgi.shDiskSq, dark, prio); + else if (it == itOrbSummon) { + queuepolyat(Vit, cgi.shHeptagon, dark, prio); + queuepolyat(Vit, cgi.shHeptagram, dark, prio); + } else { auto shape = (it == itOrbFriend) ? &cgi.shTinyBird : (it == itOrbSide1) ? &cgi.shSmallPSword : diff --git a/polygons.cpp b/polygons.cpp index 8dfefa43..e12a95d0 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -581,6 +581,13 @@ void geometry_information::procedural_shapes() { for(ld d: {0, 90, -90, 0}) hpcpush(xspinpush0(d*degree, zhexf*.2)); + bshape(shHeptagon, PPR::ITEM); + for(int i=0; i<=S84; i+=S12) + hpcpush(ddi(i, orbsize * .2) * C0); + bshape(shHeptagram, PPR::ITEM); + for(int i=0, skip=3; i<=S84*skip; i+=S12*skip) + hpcpush(ddi(i, orbsize * .2) * C0); + bshape(shDisk, PPR::ITEM); for(int i=0; i<=S84; i+=SD3) hpcpush(ddi(i, orbsize * .2) * C0);