diff --git a/geometry.cpp b/geometry.cpp index 08536cc7..cb34697c 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -253,7 +253,7 @@ hpcshape shTriheptaSpecial[14], shCross, shGiantStar[2], shLake, shMirror, shHalfFloor[6], shHalfMirror[3], - shGem[2], shStar, shFlash, shDisk, shHalfDisk, shDiskT, shDiskS, shDiskM, shDiskSq, shEccentricDisk, + shGem[2], shStar, shFlash, shDisk, shHalfDisk, shDiskT, shDiskS, shDiskM, shDiskSq, shEccentricDisk, shDiskSegment, shTinyBird, shTinyShark, shEgg, shSmallEgg, shRing, shSpikedRing, shTargetRing, shSawRing, shGearRing, shPeaceRing, diff --git a/graph.cpp b/graph.cpp index 0fc3185a..75b1091a 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1131,15 +1131,18 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (it == itOrbPurity) ? &cgi.shSmallEgg : (it == itOrbLightning) ? &cgi.shLightningBolt : (it == itOrbTime) ? &cgi.shHourglass : - (it == itOrbIllusion || it == itOrbInvis) ? &cgi.shHumanoid : + (it == itOrbIllusion || it == itOrbInvis || it == itOrbTeleport) ? &cgi.shHumanoid : + (it == itOrbPhasing || it == itOrbDash) ? &cgi.shDiskSegment : NULL; queuepolyat(Vit, cgi.shDisk, dark, prio); if (shape) - queuepolyat(Vit, *shape, (it == itOrbInvis) ? 0x20 : 0x80, prio); + queuepolyat(Vit, *shape, (it == itOrbInvis || it == itOrbTeleport) ? 0x20 : 0x80, prio); if (it == itOrbSide1 || shape == &cgi.shEccentricDisk) queuepolyat(Vit*Mirror, *shape, 0x80, prio); if (it == itOrbEnergy) queuepolyat(Vit*Mirror, *shape, col, prio); + if (it == itOrbPhasing || it == itOrbDash) + queuepolyat(Vit*Mirror, *shape, col, prio); if (it == itOrbIntensity || it == itOrbImpact) queuepolyat(Vit, cgi.shDiskM, 0x80, prio); if (it == itOrbHorns) { diff --git a/polygons.cpp b/polygons.cpp index ef28b751..8dfefa43 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -589,6 +589,10 @@ void geometry_information::procedural_shapes() { for(int i=0; i<=S84/2; i+=SD3) hpcpush(ddi(i, orbsize * .2) * C0); + bshape(shDiskSegment, PPR::ITEM); + for(int i=0; i<=S84/2.5; i+=SD3) + hpcpush(ddi(i, orbsize * .2) * C0); + bshape(shMoonDisk, PPR::ITEM); for(int i=0; i<=S84; i+=SD3) if(i <= S84 * 2 / 3)