From aefbd359e41cb7f97e6ccbdd4450aec00e615ee5 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Mon, 29 Aug 2022 09:44:36 -0700 Subject: [PATCH] For many orb icons, put them on the disk as shadowing, instead of replacing the disk. --- graph.cpp | 85 ++++++++++++++++++++++++++-------------------------- polygons.cpp | 4 +-- 2 files changed, 45 insertions(+), 44 deletions(-) diff --git a/graph.cpp b/graph.cpp index 7e804e19..6281eb15 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1053,23 +1053,12 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int queuepolyat(Vit * spinptick(500, 0), cgi.shMoonDisk, darkena(0x801080, 0, hidden ? 0x20 : 0xC0), prio); else { auto dark = darkena(icol1, 0, inice ? 0x80 : hidden ? 0x20 : (it == itOrbBeauty) ? 0xA0 : 0xC0); - if (it == itOrbLife) { - queuepolyat(Vit, cgi.shSmallPBody, dark, prio); - queuepolyat(Vit, cgi.shDiskM, dark, prio); - } - else if (it == itOrbBeauty) + if (it == itOrbBeauty) for(int u=0; u<3; u++) queuepolyat(Vit * spin(2*M_PI / 3 / 3 * u), cgi.shSmallRose, dark, prio); - else if (it == itOrbShell) - for(int i = 1; i<8; i++) { - queuepolyat(Vit, cgi.shTortoise[i][2], dark, prio); - if (i>=5 && i<=7) - queuepolyat(Vit*Mirror, cgi.shTortoise[i][2], dark, prio); - } - else if (it == itOrbHorns) { - queuepolyat(Vit, cgi.shSmallBullHead, dark, prio); - queuepolyat(Vit, cgi.shSmallBullHorn, dark, prio); - queuepolyat(Vit*Mirror, cgi.shSmallBullHorn, dark, prio); + else if (it == itOrbLife) { + queuepolyat(Vit, cgi.shSmallPBody, dark, prio); + queuepolyat(Vit, cgi.shDiskM, dark, prio); } else if (it == itOrbBull) { queuepolyat(Vit, cgi.shTinyBullBody, dark, prio); @@ -1100,16 +1089,11 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int queuepolyat(Vit, cgi.shSmallHammerHead, col, prio); } else if (it == itOrbPurity) - queuepolyat(Vit, cgi.shSmallEgg, dark, prio); - /*else if (it == itOrbNature) { - //queuepolyat(Vit, cgi.shILeaf[0], dark, prio); - //queuepolyat(Vit, cgi.shILeaf[0], dark, prio); - //queuepolyat(Vit, cgi.shILeaf[2], dark, prio); - queuepolyat(Vit, cgi.shIBranch, dark, prio); - }*/ + queuepolyat(Vit, cgi.shSmallEgg, dark, prio); else if (it == itOrbSpeed) drawSpeed(Vit, 0.4); else if (it == itOrbStunning) { + queuepolyat(Vit, cgi.shDiskM, dark, prio); for (int i=0; i<5; i++) { shiftmatrix V2 = Vit * spin(2*M_PI * i / 5 + ptick(300)); queuepolyat(V2, cgi.shSmallFlailBall, dark, prio); @@ -1127,32 +1111,49 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int queuepolyat(Vit, cgi.shSmallWormEyes, 0x60, prio); queuepolyat(Vit*Mirror, cgi.shSmallWormEyes, 0x60, prio); } + else if (it == itOrbMorph || it == itOrbChaos || it == itOrbPlague) + queuepolyat(Vit, cgi.shSmallTreat, dark, prio); + else if (it == itOrbWinter) + queuepolyat(Vit, cgi.shSnowflake, dark, prio); + else if (it == itOrbLuck) + queuepolyat(Vit, cgi.shSmallerDodeca, dark, prio); + else if (it == itOrbFlash) + queuepolyat(Vit, cgi.shFlash, dark, prio); else { - auto shape = (it == itOrbFriend) ? cgi.shTinyBird : - (it == itOrbSide1) ? cgi.shSmallPSword : - (it == itOrbDigging) ? cgi.shSmallPickAxe : - (it == itOrbSword || it == itOrbSword2) ? cgi.shSmallSword : - (it == itOrbThorns) ? cgi.shSmallHedgehogBlade : - (it == itOrbSide2 || it == itOrb37) ? cgi.shDiskT : - (it == itOrbGravity) ? cgi.shTinyArrow : - (it == itOrbMatter || it == itOrbStone) ? cgi.shDiskSq : - (it == itOrbEnergy) ? cgi.shHalfDisk : - (it == itOrbChoice || it == itOrbMirror || it == itOrbMagnetism) ? cgi.shEccentricDisk : - (it == itOrbWinter) ? cgi.shSnowflake : - (it == itOrbLuck) ? cgi.shSmallerDodeca : - (it == itOrbFlash) ? cgi.shFlash : - (it == itOrbMorph || it == itOrbChaos || it == itOrbPlague) ? cgi.shSmallTreat : - (it == itOrbPsi || it == itOrbSide3) ? cgi.shDiskS : - cgi.shDisk; - queuepolyat(Vit, shape, dark, prio); - if (it == itOrbSide1 || it == itOrbChoice || it == itOrbMirror || it == itOrbMagnetism) - queuepolyat(Vit*Mirror, shape, dark, prio); + auto shape = (it == itOrbFriend) ? &cgi.shTinyBird : + (it == itOrbSide1) ? &cgi.shSmallPSword : + (it == itOrbDigging) ? &cgi.shSmallPickAxe : + (it == itOrbSword || it == itOrbSword2) ? &cgi.shSmallSword : + (it == itOrbThorns) ? &cgi.shSmallHedgehogBlade : + (it == itOrbSide2 || it == itOrb37) ? &cgi.shDiskT : + (it == itOrbGravity) ? &cgi.shTinyArrow : + (it == itOrbMatter || it == itOrbStone) ? &cgi.shDiskSq : + (it == itOrbEnergy) ? &cgi.shHalfDisk : + (it == itOrbChoice || it == itOrbMirror || it == itOrbMagnetism) ? &cgi.shEccentricDisk : + (it == itOrbPsi || it == itOrbSide3) ? &cgi.shDiskS : + &cgi.shDisk; + queuepolyat(Vit, cgi.shDisk, dark, prio); + if (shape != &cgi.shDisk) + queuepolyat(Vit, *shape, 0x80, prio); + if (it == itOrbSide1 || shape == &cgi.shEccentricDisk) + queuepolyat(Vit*Mirror, *shape, 0x80, prio); if (it == itOrbEnergy) - queuepolyat(Vit*Mirror, shape, col, prio); + queuepolyat(Vit*Mirror, *shape, col, prio); if (it == itOrbIntensity || it == itOrbImpact) queuepolyat(Vit, cgi.shDiskM, 0x80, prio); if (it == itOrbSafety || it == itOrbFreedom || it == itOrbRecall) queuepolyat(Vit, cgi.shDiskSq, 0x80, prio); + if (it == itOrbHorns) { + queuepolyat(Vit, cgi.shSmallBullHead, 0x80, prio); + queuepolyat(Vit, cgi.shSmallBullHorn, 0x80, prio); + queuepolyat(Vit*Mirror, cgi.shSmallBullHorn, 0x80, prio); + } + if (it == itOrbShell) + for(int i = 1; i<8; i++) { + queuepolyat(Vit, cgi.shTortoise[i][2], 0x80, prio); + if (i>=5 && i<=7) + queuepolyat(Vit*Mirror, cgi.shTortoise[i][2], 0x80, prio); + } } } diff --git a/polygons.cpp b/polygons.cpp index 7764863e..f66a28ff 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1428,8 +1428,8 @@ void geometry_information::prepare_shapes() { bshape(shBullRearHoof, PPR::MONSTER_FOOT, scalefactor, 317); bshape(shBullFrontHoof, PPR::MONSTER_FOOT, scalefactor, 318); bshape(shBullHead, PPR::MONSTER_HEAD, scalefactor, 319); - bshape(shSmallBullHead, PPR::MONSTER_HEAD, scalefactor/1.5, 411); - bshape(shSmallBullHorn, PPR::MONSTER_HEAD, scalefactor/1.5, 412); + bshape(shSmallBullHead, PPR::MONSTER_HEAD, scalefactor/1.7, 411); + bshape(shSmallBullHorn, PPR::MONSTER_HEAD, scalefactor/1.7, 412); bshape(shTinyBullHead, PPR::MONSTER_HEAD, scalefactor/2.5, 319); bshape(shTinyBullHorn, PPR::MONSTER_HEAD, scalefactor/2.5, 316); bshape(shTinyBullBody, PPR::MONSTER_BODY, scalefactor/2.5, 315);