From 446b23f83dc9d38fca567b2e10e06fa133bd0e26 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Fri, 26 Aug 2022 08:46:32 -0700 Subject: [PATCH 01/63] Show a tame bomberbird in the Orb of Friendship. --- graph.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/graph.cpp b/graph.cpp index 51d6ebf3..43f09001 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1046,8 +1046,10 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int if(xch == 'c') queuepolyat(Vit * spinptick(500, 0), cgi.shMoonDisk, darkena(0x801080, 0, hidden ? 0x20 : 0xC0), prio); - else - queuepolyat(Vit, cgi.shDisk, darkena(icol1, 0, inice ? 0x80 : hidden ? 0x20 : 0xC0), prio); + else { + auto shape = (it == itOrbFriend) ? cgi.shTinyBird : cgi.shDisk;; + queuepolyat(Vit, shape, darkena(icol1, 0, inice ? 0x80 : hidden ? 0x20 : 0xC0), prio); + } queue_ring(Vit * spinptick(1500, 0), orbshape(iinf[it].orbshape), col, prio); } From 18e1912884c74a380e032ed503e7a32fa05be4b7 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Fri, 26 Aug 2022 10:04:52 -0700 Subject: [PATCH 02/63] Show golem in Orb of Life. --- geometry.cpp | 2 +- graph.cpp | 13 ++++++++++--- polygons.cpp | 1 + 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/geometry.cpp b/geometry.cpp index a1b99d16..b686b4ba 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -276,7 +276,7 @@ hpcshape shWolf1, shWolf2, shWolf3, shRatEye1, shRatEye2, shRatEye3, shDogStripes, - shPBody, shPSword, shPKnife, + shPBody, shSmallPBody, shPSword, shPKnife, shFerocityM, shFerocityF, shHumanFoot, shHumanLeg, shHumanGroin, shHumanNeck, shSkeletalFoot, shYetiFoot, shMagicSword, shMagicShovel, shSeaTentacle, shKrakenHead, shKrakenEye, shKrakenEye2, diff --git a/graph.cpp b/graph.cpp index 43f09001..8cc2a98a 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1047,9 +1047,16 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int if(xch == 'c') queuepolyat(Vit * spinptick(500, 0), cgi.shMoonDisk, darkena(0x801080, 0, hidden ? 0x20 : 0xC0), prio); else { - auto shape = (it == itOrbFriend) ? cgi.shTinyBird : cgi.shDisk;; - queuepolyat(Vit, shape, darkena(icol1, 0, inice ? 0x80 : hidden ? 0x20 : 0xC0), prio); - } + auto dark = darkena(icol1, 0, inice ? 0x80 : hidden ? 0x20 : 0xC0); + if (it == itOrbLife) { + queuepolyat(Vit, cgi.shSmallPBody, dark, prio); + queuepolyat(Vit, cgi.shDiskM, dark, prio); + } + else { + auto shape = (it == itOrbFriend) ? cgi.shTinyBird : cgi.shDisk; + queuepolyat(Vit, shape, dark, prio); + } + } queue_ring(Vit * spinptick(1500, 0), orbshape(iinf[it].orbshape), col, prio); } diff --git a/polygons.cpp b/polygons.cpp index 677b5f3d..751f1a39 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1349,6 +1349,7 @@ void geometry_information::prepare_shapes() { bshape(shFrogJumpLeg, PPR::MONSTER_FOOT, scalefactor, 404); bshape(shPBody, PPR::MONSTER_BODY, scalefactor, 85); + bshape(shSmallPBody, PPR::MONSTER_BODY, scalefactor/2, 85); bshape(shYeti, PPR::MONSTER_BODY, scalefactor, 86); bshape(shPSword, PPR::MONSTER_WPN, scalefactor, 90); bshape(shFerocityM, PPR::MONSTER_WPN, scalefactor, 361); From d85ad065f60b300ea062d9205e0ecc2986621498 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Fri, 26 Aug 2022 12:34:04 -0700 Subject: [PATCH 03/63] Make Orb of Beauty use a small rose. --- geometry.cpp | 2 +- graph.cpp | 8 ++++++-- polygons.cpp | 5 +++++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/geometry.cpp b/geometry.cpp index b686b4ba..a494d424 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -308,7 +308,7 @@ hpcshape shPrincessDress, shPrinceDress, shWizardCape1, shWizardCape2, shBigCarpet1, shBigCarpet2, shBigCarpet3, - shGoatHead, shRose, shRoseItem, shThorns, + shGoatHead, shRose, shRoseItem, shSmallRose, shThorns, shRatHead, shRatTail, shRatEyes, shRatCape1, shRatCape2, shWizardHat1, shWizardHat2, shTortoise[13][6], diff --git a/graph.cpp b/graph.cpp index 8cc2a98a..d8caea87 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1047,13 +1047,17 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int if(xch == 'c') queuepolyat(Vit * spinptick(500, 0), cgi.shMoonDisk, darkena(0x801080, 0, hidden ? 0x20 : 0xC0), prio); else { - auto dark = darkena(icol1, 0, inice ? 0x80 : hidden ? 0x20 : 0xC0); + 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) + for(int u=0; u<3; u++) + queuepolyat(Vit * spin(2*M_PI / 3 / 3 * u), cgi.shSmallRose, dark, prio); else { - auto shape = (it == itOrbFriend) ? cgi.shTinyBird : cgi.shDisk; + auto shape = (it == itOrbFriend) ? cgi.shTinyBird : + cgi.shDisk; queuepolyat(Vit, shape, dark, prio); } } diff --git a/polygons.cpp b/polygons.cpp index 751f1a39..efd6c243 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -792,6 +792,11 @@ void geometry_information::procedural_shapes() { shRoseItem = shRose; + bshape(shSmallRose, PPR::ITEM); + PRING(t) + hpcpush(xspinpush0(M_PI * t / (S42+.0), scalefactor/2 * hcrossf7 * (0.2 + .15 * sin(M_PI * t / (S42+.0) * 3)))); + finishshape(); + bshape(shThorns, PPR::THORNS); for(int t=0; t<=60; t++) hpcpush(xspinpush0(M_PI * t / 30.0, scalefactor * hcrossf7 * ((t&1) ? 0.3 : 0.6))); From b71b34e73491b2d2de200f95142d816f36ea5bbe Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Fri, 26 Aug 2022 14:00:42 -0700 Subject: [PATCH 04/63] Use turtle shell in the Orb of the Shell. --- graph.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/graph.cpp b/graph.cpp index d8caea87..a0024e20 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1055,6 +1055,12 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int else 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 { auto shape = (it == itOrbFriend) ? cgi.shTinyBird : cgi.shDisk; From 1f842704ecf33e79d43ff9ae35f0dfbb34213d88 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Fri, 26 Aug 2022 15:21:00 -0700 Subject: [PATCH 05/63] Add orb bodies for Orb of Slashing & Orb of the Frog. --- geometry.cpp | 4 ++-- graph.cpp | 16 ++++++++++++++++ polygons.cpp | 7 +++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/geometry.cpp b/geometry.cpp index a494d424..f44781ce 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -276,7 +276,7 @@ hpcshape shWolf1, shWolf2, shWolf3, shRatEye1, shRatEye2, shRatEye3, shDogStripes, - shPBody, shSmallPBody, shPSword, shPKnife, + shPBody, shSmallPBody, shPSword, shSmallPSword, shPKnife, shFerocityM, shFerocityF, shHumanFoot, shHumanLeg, shHumanGroin, shHumanNeck, shSkeletalFoot, shYetiFoot, shMagicSword, shMagicShovel, shSeaTentacle, shKrakenHead, shKrakenEye, shKrakenEye2, @@ -339,7 +339,7 @@ hpcshape shDodeca; - hpcshape shFrogRearFoot, shFrogFrontFoot, shFrogRearLeg, shFrogFrontLeg, shFrogRearLeg2, shFrogBody, shFrogEye, shFrogStripe, shFrogJumpFoot, shFrogJumpLeg; + hpcshape shFrogRearFoot, shFrogFrontFoot, shFrogRearLeg, shFrogFrontLeg, shFrogRearLeg2, shFrogBody, shFrogEye, shFrogStripe, shFrogJumpFoot, shFrogJumpLeg, shSmallFrogRearFoot, shSmallFrogFrontFoot, shSmallFrogRearLeg, shSmallFrogFrontLeg, shSmallFrogRearLeg2, shSmallFrogBody; hpcshape_animated shAnimatedEagle, shAnimatedTinyEagle, shAnimatedGadfly, shAnimatedHawk, shAnimatedButterfly, diff --git a/graph.cpp b/graph.cpp index a0024e20..66a585dd 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1061,10 +1061,26 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int if (i>=5 && i<=7) queuepolyat(Vit*Mirror, cgi.shTortoise[i][2], dark, prio); } + else if (it == itOrbFrog) { + queuepolyat(Vit, cgi.shSmallFrogBody, dark, prio); + queuepolyat(Vit, cgi.shSmallFrogRearFoot, dark, prio); + queuepolyat(Vit, cgi.shSmallFrogRearLeg, dark, prio); + queuepolyat(Vit, cgi.shSmallFrogRearLeg2, dark, prio); + queuepolyat(Vit, cgi.shSmallFrogFrontFoot, dark, prio); + queuepolyat(Vit, cgi.shSmallFrogFrontLeg, dark, prio); + queuepolyat(Vit*Mirror, cgi.shSmallFrogRearFoot, dark, prio); + queuepolyat(Vit*Mirror, cgi.shSmallFrogRearLeg, dark, prio); + queuepolyat(Vit*Mirror, cgi.shSmallFrogRearLeg2, dark, prio); + queuepolyat(Vit*Mirror, cgi.shSmallFrogFrontFoot, dark, prio); + queuepolyat(Vit*Mirror, cgi.shSmallFrogFrontLeg, dark, prio); + } else { auto shape = (it == itOrbFriend) ? cgi.shTinyBird : + (it == itOrbSide1) ? cgi.shSmallPSword : cgi.shDisk; queuepolyat(Vit, shape, dark, prio); + if (it == itOrbSide1) + queuepolyat(Vit*Mirror, shape, dark, prio); } } diff --git a/polygons.cpp b/polygons.cpp index efd6c243..c28bc8b3 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1348,6 +1348,12 @@ void geometry_information::prepare_shapes() { bshape(shFrogFrontLeg, PPR::MONSTER_LEG, scalefactor, 396); bshape(shFrogRearLeg2, PPR::MONSTER_LEG, scalefactor, 397); bshape(shFrogBody, PPR::MONSTER_BODY, scalefactor, 398); + bshape(shSmallFrogRearFoot, PPR::MONSTER_FOOT, scalefactor/2, 393); + bshape(shSmallFrogFrontFoot, PPR::MONSTER_FOOT, scalefactor/2, 394); + bshape(shSmallFrogRearLeg, PPR::MONSTER_LEG, scalefactor/2, 395); + bshape(shSmallFrogFrontLeg, PPR::MONSTER_LEG, scalefactor/2, 396); + bshape(shSmallFrogRearLeg2, PPR::MONSTER_LEG, scalefactor/2, 397); + bshape(shSmallFrogBody, PPR::MONSTER_BODY, scalefactor/2, 398); bshape(shFrogEye, PPR::MONSTER_EYE0, scalefactor, 399); bshape(shFrogStripe, PPR::MONSTER_BODY, scalefactor, 400); bshape(shFrogJumpFoot, PPR::MONSTER_FOOT, scalefactor, 401); @@ -1357,6 +1363,7 @@ void geometry_information::prepare_shapes() { bshape(shSmallPBody, PPR::MONSTER_BODY, scalefactor/2, 85); bshape(shYeti, PPR::MONSTER_BODY, scalefactor, 86); bshape(shPSword, PPR::MONSTER_WPN, scalefactor, 90); + bshape(shSmallPSword, PPR::MONSTER_WPN, scalefactor/2, 90); bshape(shFerocityM, PPR::MONSTER_WPN, scalefactor, 361); bshape(shFerocityF, PPR::MONSTER_WPN, scalefactor, 362); bshape(shPKnife, PPR::MONSTER_WPN, scalefactor, 91); From 064468b4802f524d6ceadc0c974a1f53028658df Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Fri, 26 Aug 2022 18:48:21 -0700 Subject: [PATCH 06/63] Added bodies to the Orb of Slaying and Orb of Undeath. --- content.cpp | 6 +++--- geometry.cpp | 2 +- graph.cpp | 11 +++++++++++ polygons.cpp | 2 ++ 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/content.cpp b/content.cpp index 6017fb74..c8c41058 100644 --- a/content.cpp +++ b/content.cpp @@ -478,7 +478,7 @@ ITEM( 'o', 0x8080FF, "Orb of Winter", itOrbWinter, IC_ORB, ZERO | IF_FIREPROOF | "This orb can be used to invoke a wall of ice. It also protects you from fires.") ITEM( 'o', 0xFF6060, "Orb of Speed", itOrbSpeed, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osMovement, "This orb can be used to move faster for some time.") -ITEM( 'o', 0x90B090, "Orb of Life", itOrbLife, IC_ORB, ZERO | IF_SHMUPLIFE | IF_REVIVAL, RESERVED, osFriend, +ITEM( 'o', 0x306000, "Orb of Life", itOrbLife, IC_ORB, ZERO | IF_SHMUPLIFE | IF_REVIVAL, RESERVED, osFriend, "This orb can be used to summon friendly golems. It is used instantly when you pick it up.") ITEM( 'o', 0x60D760, "Orb of Shielding", itOrbShield, IC_ORB, ZERO | IF_PROTECTION | IF_EMPATHY, RESERVED, osProtective, "This orb can protect you from damage.") @@ -816,7 +816,7 @@ ITEM( '*', 0x40E0D0, "Turquoise", itHunting, IC_TREASURE, ZERO, RESERVED, osNone ITEM( '*', 0x009090, "Forgotten Relic", itBlizzard, IC_TREASURE, ZERO, RESERVED, osNone, blizzarddesc) ITEM( '(', 0xFFE080, "Ancient Weapon", itTerra, IC_TREASURE, ZERO, RESERVED, osNone, "This ancient weapon is beautifully encrusted with precious gems, but you prefer your own -- it is much lighter.") -ITEM( 'o', 0x307080, "Orb of Slashing", itOrbSide1, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osOffensive, +ITEM( 'o', 0x00FF00, "Orb of Slashing", itOrbSide1, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osOffensive, "Whenever you attack with this Orb, you also hit the monsters adjacent both to you and the monster you originally attacked.") ITEM( 'o', 0x30A080, "Orb of the Triangle", itOrbSide2, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osOffensive, "Whenever you attack with this Orb, you also hit the monsters adjacent to you which are neither adjacent nor opposite to the monster " @@ -840,7 +840,7 @@ ITEM( 'o', 0xFFFF80, "Orb of Phasing", itOrbPhasing, IC_ORB, ZERO, RESERVED, osF "This orb lets you pass through walls (one cell wide), and also through monsters, as long as they will not attack you in transit.") ITEM( 'o', 0xFFFF80, "Orb of Magnetism", itOrbMagnetism, IC_ORB, ZERO, RESERVED, osUtility, "This orb makes you immediately pickup all the items on adjacent cells.") -ITEM( 'o', 0x202020, "Orb of Slaying", itOrbSlaying, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osOffensive, +ITEM( 'o', 0x20FF20, "Orb of Slaying", itOrbSlaying, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osOffensive, "This Orb lets you defeat Raiders and other tough single-cell monsters in melee." ) ITEM( '*', 0xFFA860, "Tiger's Eye", itBrownian, IC_TREASURE, ZERO, RESERVED, osNone, diff --git a/geometry.cpp b/geometry.cpp index f44781ce..cb5612a8 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -295,7 +295,7 @@ hpcshape shFemaleBody, shFemaleHair, shFemaleDress, shWitchDress, shWitchHair, shBeautyHair, shFlowerHair, shFlowerHand, shSuspenders, shTrophy, shBugBody, shBugArmor, shBugLeg, shBugAntenna, - shPickAxe, shPike, shFlailBall, shFlailTrunk, shFlailChain, shHammerHead, + shPickAxe, shPike, shFlailBall, shFlailTrunk, shSmallFlailTrunk, shFlailChain, shHammerHead, shSmallHammerHead, shBook, shBookCover, shGrail, shBoatOuter, shBoatInner, shCompass1, shCompass2, shCompass3, shKnife, shTongue, shFlailMissile, shTrapArrow, diff --git a/graph.cpp b/graph.cpp index 66a585dd..b43969ee 100644 --- a/graph.cpp +++ b/graph.cpp @@ -804,7 +804,9 @@ EX color_t orb_auxiliary_color(eItem it) { if(it == itOrbAir) return 0xFFFFFF; if(it == itOrbUndeath) return minf[moFriendlyGhost].color; if(it == itOrbRecall) return 0x101010; + if(it == itOrbLife) return 0x90B090; if(it == itOrbSlaying) return 0xFF0000; + if(it == itOrbSide1) return 0x307080; return iinf[it].color; } @@ -1074,6 +1076,15 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int queuepolyat(Vit*Mirror, cgi.shSmallFrogFrontFoot, dark, prio); queuepolyat(Vit*Mirror, cgi.shSmallFrogFrontLeg, dark, prio); } + else if (it == itOrbUndeath) { + dark = darkena(minf[moFriendlyGhost].color, 0, inice ? 0x80 : hidden ? 0x20 : 0xC0); + queuepolyat(Vit, cgi.shMiniGhost, dark, prio); + queuepolyat(Vit, cgi.shMiniEyes, 0xFF, prio); + } + else if (it == itOrbSlaying) { + queuepolyat(Vit, cgi.shSmallFlailTrunk, dark, prio); + queuepolyat(Vit, cgi.shSmallHammerHead, dark*2, prio); + } else { auto shape = (it == itOrbFriend) ? cgi.shTinyBird : (it == itOrbSide1) ? cgi.shSmallPSword : diff --git a/polygons.cpp b/polygons.cpp index c28bc8b3..f469532a 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1463,8 +1463,10 @@ void geometry_information::prepare_shapes() { bshape(shPike, PPR::MONSTER_WPN, scalefactor, 150); bshape(shFlailBall, PPR::MONSTER_WPN, scalefactor, 151); bshape(shFlailTrunk, PPR::MONSTER_WPN, scalefactor, 152); + bshape(shSmallFlailTrunk, PPR::MONSTER_WPN, scalefactor/2, 152); bshape(shFlailChain, PPR::MONSTER_SUBWPN, scalefactor, 153); bshape(shHammerHead, PPR::MONSTER_WPN, scalefactor, 376); + bshape(shSmallHammerHead, PPR::MONSTER_WPN, scalefactor/2, 376); // bshape(shScratch, 17, scalefactor, 156); bshape(shSkeletonBody, PPR::MONSTER_BODY, scalefactor, 157); bshape(shSkull, PPR::MONSTER_HEAD, scalefactor, 158); From 3521ee917c051f69e710a682ef90ce399e5c9e42 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Fri, 26 Aug 2022 19:10:39 -0700 Subject: [PATCH 07/63] Use Pickaxe shape for Orb of Earth ("Digging"). --- content.cpp | 2 +- geometry.cpp | 2 +- graph.cpp | 2 ++ polygons.cpp | 1 + 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/content.cpp b/content.cpp index c8c41058..a442f75c 100644 --- a/content.cpp +++ b/content.cpp @@ -482,7 +482,7 @@ ITEM( 'o', 0x306000, "Orb of Life", itOrbLife, IC_ORB, ZERO | IF_SHMUPLIFE | IF_ "This orb can be used to summon friendly golems. It is used instantly when you pick it up.") ITEM( 'o', 0x60D760, "Orb of Shielding", itOrbShield, IC_ORB, ZERO | IF_PROTECTION | IF_EMPATHY, RESERVED, osProtective, "This orb can protect you from damage.") -ITEM( 'o', 0x606060, "Orb of Earth", itOrbDigging, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osTerraform, +ITEM( 'o', 0x00FF00, "Orb of Earth", itOrbDigging, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osTerraform, "This orb lets you go through living walls. It also has powers in some of the other lands.") ITEM( 'o', 0x20FFFF, "Orb of Teleport", itOrbTeleport, IC_ORB, ZERO | IF_RANGED, RESERVED, osRanged, "This orb lets you instantly move to another location on the map. Just click a location which " diff --git a/geometry.cpp b/geometry.cpp index cb5612a8..268e710d 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -295,7 +295,7 @@ hpcshape shFemaleBody, shFemaleHair, shFemaleDress, shWitchDress, shWitchHair, shBeautyHair, shFlowerHair, shFlowerHand, shSuspenders, shTrophy, shBugBody, shBugArmor, shBugLeg, shBugAntenna, - shPickAxe, shPike, shFlailBall, shFlailTrunk, shSmallFlailTrunk, shFlailChain, shHammerHead, shSmallHammerHead, + shPickAxe, shSmallPickAxe, shPike, shFlailBall, shFlailTrunk, shSmallFlailTrunk, shFlailChain, shHammerHead, shSmallHammerHead, shBook, shBookCover, shGrail, shBoatOuter, shBoatInner, shCompass1, shCompass2, shCompass3, shKnife, shTongue, shFlailMissile, shTrapArrow, diff --git a/graph.cpp b/graph.cpp index b43969ee..96e72f97 100644 --- a/graph.cpp +++ b/graph.cpp @@ -807,6 +807,7 @@ EX color_t orb_auxiliary_color(eItem it) { if(it == itOrbLife) return 0x90B090; if(it == itOrbSlaying) return 0xFF0000; if(it == itOrbSide1) return 0x307080; + if(it == itOrbDigging) return 0x606060; return iinf[it].color; } @@ -1088,6 +1089,7 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int else { auto shape = (it == itOrbFriend) ? cgi.shTinyBird : (it == itOrbSide1) ? cgi.shSmallPSword : + (it == itOrbDigging) ? cgi.shSmallPickAxe : cgi.shDisk; queuepolyat(Vit, shape, dark, prio); if (it == itOrbSide1) diff --git a/polygons.cpp b/polygons.cpp index f469532a..9ea7cd2e 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1460,6 +1460,7 @@ void geometry_information::prepare_shapes() { bshape(shWolfEyes, PPR::MONSTER_EYE0, WOLF, 147); bshape(shWitchDress, PPR::MONSTER_ARMOR0, scalefactor, 148); bshape(shPickAxe, PPR::MONSTER_WPN, scalefactor, 149); + bshape(shSmallPickAxe, PPR::MONSTER_WPN, scalefactor/2, 149); bshape(shPike, PPR::MONSTER_WPN, scalefactor, 150); bshape(shFlailBall, PPR::MONSTER_WPN, scalefactor, 151); bshape(shFlailTrunk, PPR::MONSTER_WPN, scalefactor, 152); From 1561d84f1bfbb01f1e45b1727e9949e5f7c442b2 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Fri, 26 Aug 2022 21:58:48 -0700 Subject: [PATCH 08/63] Sword shape for Orb of the Sword I & II. --- geometry.cpp | 2 +- graph.cpp | 4 ++-- polygons.cpp | 3 +++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/geometry.cpp b/geometry.cpp index 268e710d..d0af0fbb 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -279,7 +279,7 @@ hpcshape shPBody, shSmallPBody, shPSword, shSmallPSword, shPKnife, shFerocityM, shFerocityF, shHumanFoot, shHumanLeg, shHumanGroin, shHumanNeck, shSkeletalFoot, shYetiFoot, - shMagicSword, shMagicShovel, shSeaTentacle, shKrakenHead, shKrakenEye, shKrakenEye2, + shMagicSword, shSmallSword, shMagicShovel, shSeaTentacle, shKrakenHead, shKrakenEye, shKrakenEye2, shArrow, shPHead, shPFace, shGolemhead, shHood, shArmor, shAztecHead, shAztecCap, diff --git a/graph.cpp b/graph.cpp index 96e72f97..4930358e 100644 --- a/graph.cpp +++ b/graph.cpp @@ -764,11 +764,10 @@ EX hpcshape& orbshape(eOrbshape s) { switch(s) { case osLove: return cgi.shLoveRing; case osRanged: return cgi.shTargetRing; - case osOffensive: return cgi.shSawRing; + case osOffensive: case osDirectional: return cgi.shSawRing; case osFriend: return cgi.shPeaceRing; case osUtility: return cgi.shGearRing; case osPowerUtility: return cgi.shPowerGearRing; - case osDirectional: return cgi.shSpearRing; case osWarping: return cgi.shHeptaRing; case osFrog: return cgi.shFrogRing; case osProtective: return cgi.shProtectiveRing; @@ -1090,6 +1089,7 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int auto shape = (it == itOrbFriend) ? cgi.shTinyBird : (it == itOrbSide1) ? cgi.shSmallPSword : (it == itOrbDigging) ? cgi.shSmallPickAxe : + (it == itOrbSword || it == itOrbSword2) ? cgi.shSmallSword : cgi.shDisk; queuepolyat(Vit, shape, dark, prio); if (it == itOrbSide1) diff --git a/polygons.cpp b/polygons.cpp index 9ea7cd2e..d13ea68d 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1546,6 +1546,7 @@ void geometry_information::prepare_shapes() { if(scalefactor > 1.5) bshape(shMagicSword, PPR::MAGICSWORD, scalefactor / 1.7570466583108084, 243); else bshape(shMagicSword, PPR::MAGICSWORD, scalefactor, 244); + bshape(shSmallSword, PPR::MAGICSWORD, scalefactor/2, 405); sword_size = 0; for(int i=shMagicSword.s; i Date: Sat, 27 Aug 2022 05:43:24 -0700 Subject: [PATCH 09/63] Add hedgehog blade shape to Orb of Thorns. --- geometry.cpp | 2 +- graph.cpp | 1 + polygons.cpp | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/geometry.cpp b/geometry.cpp index d0af0fbb..400107d6 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -289,7 +289,7 @@ hpcshape shGhost, shEyes, shSlime, shJelly, shJoint, shWormHead, shTentHead, shShark, shWormSegment, shSmallWormSegment, shWormTail, shSmallWormTail, shSlimeEyes, shDragonEyes, shWormEyes, shGhostEyes, shMiniGhost, shMiniEyes, - shHedgehogBlade, shHedgehogBladePlayer, + shHedgehogBlade, shSmallHedgehogBlade, shHedgehogBladePlayer, shWolfBody, shWolfHead, shWolfLegs, shWolfEyes, shWolfFrontLeg, shWolfRearLeg, shWolfFrontPaw, shWolfRearPaw, shFemaleBody, shFemaleHair, shFemaleDress, shWitchDress, diff --git a/graph.cpp b/graph.cpp index 4930358e..ca2319c0 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1090,6 +1090,7 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (it == itOrbSide1) ? cgi.shSmallPSword : (it == itOrbDigging) ? cgi.shSmallPickAxe : (it == itOrbSword || it == itOrbSword2) ? cgi.shSmallSword : + (it == itOrbThorns) ? cgi.shSmallHedgehogBlade : cgi.shDisk; queuepolyat(Vit, shape, dark, prio); if (it == itOrbSide1) diff --git a/polygons.cpp b/polygons.cpp index d13ea68d..65a82581 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1370,6 +1370,7 @@ void geometry_information::prepare_shapes() { bshape(shPirateHook, PPR::MONSTER_WPN, scalefactor, 92); bshape(shSabre, PPR::MONSTER_WPN, scalefactor, 93); bshape(shHedgehogBlade, PPR::MONSTER_WPN, scalefactor, 94); + bshape(shSmallHedgehogBlade, PPR::MONSTER_WPN, scalefactor/2, 94); bshape(shHedgehogBladePlayer, PPR::MONSTER_WPN, scalefactor, 95); bshape(shFemaleBody, PPR::MONSTER_BODY, scalefactor, 96); bshape(shFemaleDress, PPR::MONSTER_ARMOR0, scalefactor, 97); From 5766299c0a24c2fec54f54217fec00e1d97687d3 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sat, 27 Aug 2022 07:14:56 -0700 Subject: [PATCH 10/63] Adjust PickAxe, HedgehogBlade, and PSword for orbs of Earth, Thorns, and Slashing. --- polygons.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/polygons.cpp b/polygons.cpp index 65a82581..a0ffb58d 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1363,14 +1363,14 @@ void geometry_information::prepare_shapes() { bshape(shSmallPBody, PPR::MONSTER_BODY, scalefactor/2, 85); bshape(shYeti, PPR::MONSTER_BODY, scalefactor, 86); bshape(shPSword, PPR::MONSTER_WPN, scalefactor, 90); - bshape(shSmallPSword, PPR::MONSTER_WPN, scalefactor/2, 90); + bshape(shSmallPSword, PPR::MONSTER_WPN, scalefactor/2, 407); bshape(shFerocityM, PPR::MONSTER_WPN, scalefactor, 361); bshape(shFerocityF, PPR::MONSTER_WPN, scalefactor, 362); bshape(shPKnife, PPR::MONSTER_WPN, scalefactor, 91); bshape(shPirateHook, PPR::MONSTER_WPN, scalefactor, 92); bshape(shSabre, PPR::MONSTER_WPN, scalefactor, 93); bshape(shHedgehogBlade, PPR::MONSTER_WPN, scalefactor, 94); - bshape(shSmallHedgehogBlade, PPR::MONSTER_WPN, scalefactor/2, 94); + bshape(shSmallHedgehogBlade, PPR::MONSTER_WPN, scalefactor/2, 406); bshape(shHedgehogBladePlayer, PPR::MONSTER_WPN, scalefactor, 95); bshape(shFemaleBody, PPR::MONSTER_BODY, scalefactor, 96); bshape(shFemaleDress, PPR::MONSTER_ARMOR0, scalefactor, 97); @@ -1461,7 +1461,7 @@ void geometry_information::prepare_shapes() { bshape(shWolfEyes, PPR::MONSTER_EYE0, WOLF, 147); bshape(shWitchDress, PPR::MONSTER_ARMOR0, scalefactor, 148); bshape(shPickAxe, PPR::MONSTER_WPN, scalefactor, 149); - bshape(shSmallPickAxe, PPR::MONSTER_WPN, scalefactor/2, 149); + bshape(shSmallPickAxe, PPR::MONSTER_WPN, scalefactor/1.5, 408); bshape(shPike, PPR::MONSTER_WPN, scalefactor, 150); bshape(shFlailBall, PPR::MONSTER_WPN, scalefactor, 151); bshape(shFlailTrunk, PPR::MONSTER_WPN, scalefactor, 152); @@ -1750,6 +1750,8 @@ NEWSHAPE, 88,1,2, -0.036955,0.001192, -0.036957,-0.007153, -0.048967,-0.028663, NEWSHAPE, 89,21,1, -0.064558,0.008369, -0.038156,0.011924, // shPSword (1x1) NEWSHAPE, 90,1,1, 0.093822,0.244697, 0.105758,0.251015, 0.110908,0.249862, 0.110690,0.245554, 0.113376,0.247134, 0.117228,0.245924, 0.127263,0.237981, 0.131886,0.226997, 0.116494,0.231721, 0.106117,0.231182, 0.105927,0.226986, 0.263283,-0.174653, 0.086104,0.209645, 0.079571,0.202657, 0.074206,0.190462, 0.068951,0.179766, 0.065727,0.200902, 0.068444,0.209067, 0.077641,0.221653, 0.086737,0.227526, 0.086260,0.248631, 0.086431,0.252937, +// shSmallPSwords +NEWSHAPE, 407,1,1, -0.056178,0.244697, -0.044242,0.251015, -0.039092,0.249862, -0.03931,0.245554, -0.036624,0.247134, -0.032772,0.245924, -0.022737,0.237981, -0.018114,0.226997, -0.033506,0.231721, -0.043883,0.231182, -0.044073,0.226986, 0.113283,-0.174653, -0.063896,0.209645, -0.070429,0.202657, -0.075794,0.190462, -0.081049,0.179766, -0.084273,0.200902, -0.081556,0.209067, -0.072359,0.221653, -0.063263,0.227526, -0.06374,0.248631, -0.063569,0.252937, // shPKnife (1x1) NEWSHAPE, 91,1,1, 0.070235,0.261061, 0.085110,0.243297, 0.100384,0.253764, 0.115592,0.241462, 0.106046,0.228043, 0.193021,0.140235, 0.223042,0.069158, 0.217457,0.064184, 0.149083,0.101106, 0.073293,0.198875, 0.059119,0.191168, 0.049288,0.208259, 0.061401,0.222183, 0.046445,0.239874, // shPirateHook (1x1) @@ -1758,6 +1760,8 @@ NEWSHAPE, 92,1,1, 0.025637,0.290334, 0.015893,0.212083, 0.070681,0.208634, 0.07 NEWSHAPE, 93,1,1, 0.052478,0.211644, 0.042242,0.185536, 0.057979,0.181601, 0.068086,0.204991, 0.085295,0.201073, 0.100829,0.193318, 0.113718,0.184489, 0.125735,0.178476, 0.134891,0.170005, 0.144264,0.162907, 0.152391,0.155912, 0.160192,0.146346, 0.166733,0.136894, 0.180659,0.123243, 0.189268,0.108634, 0.197644,0.091550, 0.204992,0.075866, 0.207394,0.063057, 0.213308,0.045015, 0.215741,0.031014, 0.216495,0.013402, 0.217512,-0.002957, 0.216708,-0.025412, 0.215602,-0.037833, 0.209033,-0.050943, 0.249210,-0.008237, 0.247115,0.012233, 0.246190,0.028812, 0.239192,0.052194, 0.237023,0.067663, 0.231339,0.087245, 0.221702,0.107109, 0.215996,0.124316, 0.206323,0.141806, 0.194941,0.164879, 0.173125,0.180454, 0.158905,0.191858, 0.143293,0.202073, 0.128179,0.215193, 0.111272,0.224403, 0.090433,0.232613, 0.079164,0.234740, 0.083027,0.256039, 0.071081,0.264147, 0.060044,0.234679, // shHedgehogBlade (1x2) NEWSHAPE, 94,1,2, 0.117178,0.032617, 0.102699,0.066452, 0.056807,0.109987, 0.052506,0.272774, 0.079931,0.279758, 0.082589,0.170109, 0.139258,0.126935, 0.240653,0.136967, 0.177567,0.067821, 0.273978,0.042249, 0.187242,-0.000000, +// shSmallHedgehogBlade (1x2) +NEWSHAPE, 406,1,2, 0.017178,0.032617, 0.002699,0.066452, -0.043193,0.109987, -0.047494,0.272774, -0.020069,0.279758, -0.017411,0.170109, 0.039258,0.126935, 0.140653,0.136967, 0.077567,0.067821, 0.173978,0.042249, 0.087242,-0.000000, // shHedgehogBladePlayer (1x2) NEWSHAPE, 95,1,2, 0.117178,0.032617, 0.102699,0.066452, 0.056807,0.109987, 0.052506,0.272774, 0.079931,0.279758, 0.082589,0.170109, 0.173109,0.220554, 0.139258,0.126935, 0.240653,0.136967, 0.177567,0.067821, 0.273978,0.042249, 0.187242,-0.000000, // shFemaleBody (1x2) @@ -1868,6 +1872,8 @@ NEWSHAPE, 147,1,2, 0.172835,0.002452, 0.156071,0.002439, 0.154815,0.012190, 0.13 NEWSHAPE, 148,1,2, 0.039326,-0.001751, 0.041168,0.053278, 0.035516,0.073044, 0.024685,0.088439, 0.009671,0.096889, -0.002313,0.097795, -0.008219,0.099482, -0.016102,0.107500, -0.016016,0.108729, -0.022078,0.163499, -0.052858,0.141939, -0.084069,0.161675, -0.098088,0.129874, -0.108494,0.122098, -0.117272,0.122997, -0.128424,0.129237, -0.140905,0.138269, -0.152175,0.151195, -0.161208,0.157511, -0.178346,0.167608, -0.195945,0.176675, -0.219689,0.185527, -0.234056,0.190460, -0.219683,0.178715, -0.211330,0.162725, -0.206261,0.134376, -0.201753,0.102919, -0.205795,0.072925, -0.213892,0.049798, -0.218429,0.022623, -0.219265,0.011429, // shPickAxe (1x1) NEWSHAPE, 149,1,1, 0.064364,0.237609, 0.183353,-0.046466, 0.171819,-0.050455, 0.142623,-0.056105, 0.122591,-0.057865, 0.106467,-0.058329, 0.118180,-0.067773, 0.135948,-0.071025, 0.161536,-0.071733, 0.188994,-0.071278, 0.212623,-0.063402, 0.239189,-0.047822, 0.248564,-0.040034, 0.265990,-0.019250, 0.272276,0.000110, 0.269338,0.000001, 0.247284,-0.019782, 0.224346,-0.034255, 0.208443,-0.042147, 0.086124,0.253692, +// shSmallPickAxe +NEWSHAPE, 408,1,1, -0.085636,0.187609, 0.033353,-0.096466, 0.021819,-0.100455, -0.007377,-0.106105, -0.027409,-0.107865, -0.043533,-0.108329, -0.03182,-0.117773, -0.014052,-0.121025, 0.011536,-0.121733, 0.038994,-0.121278, 0.062623,-0.113402, 0.089189,-0.097822, 0.098564,-0.090034, 0.115990,-0.069250, 0.122276,-0.04989, 0.119338,-0.05, 0.097284,-0.069782, 0.074346,-0.084255, 0.058443,-0.092147, -0.063876,0.203692, // shPike (1x1) NEWSHAPE, 150,1,1, 0.096293,0.278465, 0.083339,-0.050087, 0.079276,-0.383984, 0.095192,-0.378226, 0.073482,-0.534658, 0.070202,-0.534586, 0.045864,-0.377144, 0.061795,-0.383600, 0.062148,-0.049623, 0.069133,0.279061, // shFlailBall (1x1) From cc3065f20484b19d080b8566412146f9e28b1e6d Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sat, 27 Aug 2022 11:31:58 -0700 Subject: [PATCH 11/63] Bodies for Orbs of Triangle, Gravity, Warp, Matter, and Stone. --- graph.cpp | 5 +++++ polygons.cpp | 15 ++++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/graph.cpp b/graph.cpp index ca2319c0..81b4d3ab 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1091,6 +1091,11 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (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 == itOrbMorph) ? cgi.shDiskS : + //(it == itOrbDiscord) ? cgi.shDiskM : + (it == itOrbMatter || it == itOrbStone) ? cgi.shDiskSq : cgi.shDisk; queuepolyat(Vit, shape, dark, prio); if (it == itOrbSide1) diff --git a/polygons.cpp b/polygons.cpp index a0ffb58d..4a89918f 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1465,10 +1465,10 @@ void geometry_information::prepare_shapes() { bshape(shPike, PPR::MONSTER_WPN, scalefactor, 150); bshape(shFlailBall, PPR::MONSTER_WPN, scalefactor, 151); bshape(shFlailTrunk, PPR::MONSTER_WPN, scalefactor, 152); - bshape(shSmallFlailTrunk, PPR::MONSTER_WPN, scalefactor/2, 152); + bshape(shSmallFlailTrunk, PPR::MONSTER_WPN, scalefactor/2, 409); bshape(shFlailChain, PPR::MONSTER_SUBWPN, scalefactor, 153); bshape(shHammerHead, PPR::MONSTER_WPN, scalefactor, 376); - bshape(shSmallHammerHead, PPR::MONSTER_WPN, scalefactor/2, 376); + bshape(shSmallHammerHead, PPR::MONSTER_WPN, scalefactor/2, 410); // bshape(shScratch, 17, scalefactor, 156); bshape(shSkeletonBody, PPR::MONSTER_BODY, scalefactor, 157); bshape(shSkull, PPR::MONSTER_HEAD, scalefactor, 158); @@ -1750,7 +1750,7 @@ NEWSHAPE, 88,1,2, -0.036955,0.001192, -0.036957,-0.007153, -0.048967,-0.028663, NEWSHAPE, 89,21,1, -0.064558,0.008369, -0.038156,0.011924, // shPSword (1x1) NEWSHAPE, 90,1,1, 0.093822,0.244697, 0.105758,0.251015, 0.110908,0.249862, 0.110690,0.245554, 0.113376,0.247134, 0.117228,0.245924, 0.127263,0.237981, 0.131886,0.226997, 0.116494,0.231721, 0.106117,0.231182, 0.105927,0.226986, 0.263283,-0.174653, 0.086104,0.209645, 0.079571,0.202657, 0.074206,0.190462, 0.068951,0.179766, 0.065727,0.200902, 0.068444,0.209067, 0.077641,0.221653, 0.086737,0.227526, 0.086260,0.248631, 0.086431,0.252937, -// shSmallPSwords +// shSmallPSword NEWSHAPE, 407,1,1, -0.056178,0.244697, -0.044242,0.251015, -0.039092,0.249862, -0.03931,0.245554, -0.036624,0.247134, -0.032772,0.245924, -0.022737,0.237981, -0.018114,0.226997, -0.033506,0.231721, -0.043883,0.231182, -0.044073,0.226986, 0.113283,-0.174653, -0.063896,0.209645, -0.070429,0.202657, -0.075794,0.190462, -0.081049,0.179766, -0.084273,0.200902, -0.081556,0.209067, -0.072359,0.221653, -0.063263,0.227526, -0.06374,0.248631, -0.063569,0.252937, // shPKnife (1x1) NEWSHAPE, 91,1,1, 0.070235,0.261061, 0.085110,0.243297, 0.100384,0.253764, 0.115592,0.241462, 0.106046,0.228043, 0.193021,0.140235, 0.223042,0.069158, 0.217457,0.064184, 0.149083,0.101106, 0.073293,0.198875, 0.059119,0.191168, 0.049288,0.208259, 0.061401,0.222183, 0.046445,0.239874, @@ -2352,6 +2352,15 @@ NEWSHAPE, 403, 1, 1, 0.26453, 0.0305227, 0.274541, 0.0290331, 0.280348, 0.0265 NEWSHAPE, 404, 1, 1, -0.157104, 0.037552, -0.119742, 0.0232719, -0.0800179, 0.03, -0.0600636, 0.0582003, -0.0695215, 0.0851648, -0.0941826, 0.112117, -0.124214, 0.117626, -0.162927, 0.123278, -0.20065, 0.122779, -0.220489, 0.12271, -0.294104, 0.0895822, -0.341594, 0.0607798, -0.344169, 0.0476839, -0.336604, 0.0182726, -0.31669, 0.0111505, -0.296371, 0.0199419, -0.257868, 0.0376895, -0.219528, 0.0568778, -0.198186, 0.0609263, // shSmallSword (1x2) NEWSHAPE, 405,1,2, -0.226885,0.018516, -0.212399,0.032471, -0.193062,0.020928, -0.185621,0.046575, -0.192539,0.086182, -0.199612,0.102458, -0.167905,0.095887, -0.15358,0.056176, -0.148822,0.028094, 0.252221,0.023027, 0.294417,0.005175, +// shSmallFlailTrunk +#define x (-0.1) +#define y (-0.05) +NEWSHAPE, 409,1,1, 0.051293+x,0.275700+y, 0.057876+x,0.280376+y, 0.067059+x,0.283710+y, 0.073576+x,0.283978+y, 0.077320+x,0.279640+y, 0.147958+x,-0.151688+y, 0.141932+x,-0.161853+y, 0.138281+x,-0.166934+y, 0.129252+x,-0.166536+y, 0.118813+x,-0.160892+y, 0.112195+x,-0.152881+y, + +// shSmallHammerHead +NEWSHAPE, 410, 1, 1, 0.202167+x,-0.134605+y, 0.204591+x,-0.145446+y, 0.192856+x,-0.139999+y, 0.180908+x,-0.136821+y, 0.063679+x,-0.150430+y, 0.054862+x,-0.154571+y, 0.051985+x,-0.159521+y, 0.036546+x,-0.062257+y, 0.043529+x,-0.066187+y, 0.054300+x,-0.069873+y, 0.182749+x,-0.064458+y, 0.195918+x,-0.057169+y, 0.204973+x,-0.052339+y, 0.199643+x,-0.078121+y, 0.042703+x,-0.084239+y, 0.199470+x,-0.077992+y, 0.199531+x,-0.090084+y, 0.044591+x,-0.098658+y, 0.198774+x,-0.089982+y, 0.199787+x,-0.100708+y, 0.045748+x,-0.113148+y, 0.198272+x,-0.100502+y, 0.200147+x,-0.110605+y, 0.048127+x,-0.124053+y, 0.198630+x,-0.110398+y, 0.199672+x,-0.121163+y, 0.050049+x,-0.138713+y, 0.198913+x,-0.121059+y, +#undef x +#undef y NEWSHAPE, NEWSHAPE }; From 46872919baf1df301d38a75836f4c656c4d27c2c Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sat, 27 Aug 2022 12:43:22 -0700 Subject: [PATCH 12/63] Orb of Energy and Orb of Intensity. --- content.cpp | 2 +- geometry.cpp | 10 +++++----- graph.cpp | 9 ++++++++- polygons.cpp | 4 ++++ 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/content.cpp b/content.cpp index a442f75c..0d127144 100644 --- a/content.cpp +++ b/content.cpp @@ -706,7 +706,7 @@ ITEM( 'o', 0xFFFF80, "Orb of the Warp", itOrb37, IC_ORB, ZERO, RESERVED, osWarpi "This Orb creates a warped zone of radius 5 around you, " "and also allows you to move diagonally in warped zones." ) -ITEM( 'o', 0xFFFF80, "Orb of Energy", itOrbEnergy, IC_ORB, ZERO, RESERVED, osPowerUtility, +ITEM( 'o', 0x8B4513, "Orb of Energy", itOrbEnergy, IC_ORB, ZERO, RESERVED, osPowerUtility, "This Orb halves the power usage of orbs which cost some " "charges with each activation. It even affects the " "one-shot orbs such as Flash or Teleport. If such an activation " diff --git a/geometry.cpp b/geometry.cpp index 400107d6..d0779d9a 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -253,13 +253,13 @@ hpcshape shTriheptaSpecial[14], shCross, shGiantStar[2], shLake, shMirror, shHalfFloor[6], shHalfMirror[3], - shGem[2], shStar, shDisk, shDiskT, shDiskS, shDiskM, shDiskSq, shRing, + shGem[2], shStar, shDisk, shHalfDisk, shDiskT, shDiskS, shDiskM, shDiskSq, shTinyBird, shTinyShark, shEgg, - shSpikedRing, shTargetRing, shSawRing, shGearRing, shPeaceRing, shHeptaRing, - shSpearRing, shLoveRing, - shFrogRing, - shPowerGearRing, shProtectiveRing, shTerraRing, shMoveRing, shReserved4, shMoonDisk, + shRing, shSpikedRing, shTargetRing, shSawRing, shGearRing, shPeaceRing, + shHeptaRing, shSpearRing, shLoveRing, shFrogRing, + shPowerGearRing, shProtectiveRing, shTerraRing, shMoveRing, + shReserved4, shMoonDisk, shDaisy, shTriangle, shNecro, shStatue, shKey, shWindArrow, shGun, shFigurine, shTreat, diff --git a/graph.cpp b/graph.cpp index 81b4d3ab..66f4c5b1 100644 --- a/graph.cpp +++ b/graph.cpp @@ -807,6 +807,8 @@ EX color_t orb_auxiliary_color(eItem it) { if(it == itOrbSlaying) return 0xFF0000; if(it == itOrbSide1) return 0x307080; if(it == itOrbDigging) return 0x606060; + //if(it == itOrbEnergy) return 0x8B4513; + if(it == itOrbEnergy) return 0xFFFF80; return iinf[it].color; } @@ -1083,7 +1085,7 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int } else if (it == itOrbSlaying) { queuepolyat(Vit, cgi.shSmallFlailTrunk, dark, prio); - queuepolyat(Vit, cgi.shSmallHammerHead, dark*2, prio); + queuepolyat(Vit, cgi.shSmallHammerHead, col, prio); } else { auto shape = (it == itOrbFriend) ? cgi.shTinyBird : @@ -1096,10 +1098,15 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (it == itOrbMorph) ? cgi.shDiskS : //(it == itOrbDiscord) ? cgi.shDiskM : (it == itOrbMatter || it == itOrbStone) ? cgi.shDiskSq : + (it == itOrbEnergy) ? cgi.shHalfDisk : cgi.shDisk; queuepolyat(Vit, shape, dark, prio); if (it == itOrbSide1) queuepolyat(Vit*Mirror, shape, dark, prio); + if (it == itOrbEnergy) + queuepolyat(Vit*Mirror, shape, col, prio); + if (it == itOrbIntensity) + queuepolyat(Vit, cgi.shDiskM, 0x80, prio); } } diff --git a/polygons.cpp b/polygons.cpp index 4a89918f..1d0a1cdb 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -570,6 +570,10 @@ void geometry_information::procedural_shapes() { for(int i=0; i<=S84; i+=SD3) hpcpush(ddi(i, orbsize * .2) * C0); + bshape(shHalfDisk, PPR::ITEM); + for(int i=0; i<=S84/2; 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) From af4a0c1da9b9fbf576153147d818c70ba84c8974 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sat, 27 Aug 2022 15:51:31 -0700 Subject: [PATCH 13/63] Orb of Choice: Two small disks. --- geometry.cpp | 2 +- graph.cpp | 4 ++-- polygons.cpp | 10 ++++++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/geometry.cpp b/geometry.cpp index d0779d9a..3e3b33dc 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, shDisk, shHalfDisk, shDiskT, shDiskS, shDiskM, shDiskSq, + shGem[2], shStar, shDisk, shHalfDisk, shDiskT, shDiskS, shDiskM, shDiskSq, shEccentricDisk, shTinyBird, shTinyShark, shEgg, shRing, shSpikedRing, shTargetRing, shSawRing, shGearRing, shPeaceRing, diff --git a/graph.cpp b/graph.cpp index 66f4c5b1..52547f71 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1096,12 +1096,12 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (it == itOrbSide2 || it == itOrb37) ? cgi.shDiskT : (it == itOrbGravity) ? cgi.shTinyArrow : (it == itOrbMorph) ? cgi.shDiskS : - //(it == itOrbDiscord) ? cgi.shDiskM : (it == itOrbMatter || it == itOrbStone) ? cgi.shDiskSq : (it == itOrbEnergy) ? cgi.shHalfDisk : + (it == itOrbChoice) ? cgi.shEccentricDisk : cgi.shDisk; queuepolyat(Vit, shape, dark, prio); - if (it == itOrbSide1) + if (it == itOrbSide1 || it == itOrbChoice) queuepolyat(Vit*Mirror, shape, dark, prio); if (it == itOrbEnergy) queuepolyat(Vit*Mirror, shape, col, prio); diff --git a/polygons.cpp b/polygons.cpp index 1d0a1cdb..5d0e4c84 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -259,7 +259,8 @@ void geometry_information::bshape(hpcshape& sh, PPR prio) { if(last) finishshape(); hpc.push_back(hpxy(0,0)); last = &sh; - last->s = isize(hpc), last->prio = prio; + last->s = isize(hpc); + last->prio = prio; last->flags = 0; last->tinf = NULL; first = true; @@ -606,13 +607,18 @@ void geometry_information::procedural_shapes() { hpcpush(ddi(i, orbsize * .1) * C0); } + bshape(shEccentricDisk, PPR::ITEM); + for(int i=0; i<=S84; i+=SD3) { + hpcpush(hpxy(sin(i*2*M_PI/S84)*orbsize*.075, + cos(i*2*M_PI/S84)*orbsize*.075 + .07)); + } + bshape(shDiskSq, PPR::ITEM); for(int i=0; i<=S84; i+=S21) { hpcpush(ddi(i, orbsize * .15) * C0); } bshape(shEgg, PPR::ITEM); - RING(i) hpcpush(hpxy(sin(i*2*M_PI/S84)*0.242 * orbsize, cos(i*2*M_PI/S84)*0.177*orbsize)); From f5d4586d0f1e4eca3403411e7e81e9a19a426ccb Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sat, 27 Aug 2022 16:37:49 -0700 Subject: [PATCH 14/63] Orbs of Speed, Safety, and Freedom. --- graph.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/graph.cpp b/graph.cpp index 52547f71..e40ec102 100644 --- a/graph.cpp +++ b/graph.cpp @@ -192,7 +192,7 @@ EX void drawShield(const shiftmatrix& V, eItem it) { #endif } -void drawSpeed(const shiftmatrix& V) { +void drawSpeed(const shiftmatrix& V, ld scale=1) { #if CAP_CURVE ld ds = ptick(10); color_t col = darkena(iinf[itOrbSpeed].color, 0, 0xFF); @@ -202,7 +202,7 @@ void drawSpeed(const shiftmatrix& V) { #endif for(int b=0; b Date: Sat, 27 Aug 2022 18:21:53 -0700 Subject: [PATCH 15/63] Orb of Horns & Orb of the Bull. --- geometry.cpp | 2 ++ graph.cpp | 11 +++++++++++ polygons.cpp | 18 ++++++++++++++++-- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/geometry.cpp b/geometry.cpp index 3e3b33dc..967cc690 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -325,6 +325,8 @@ hpcshape shTrylobiteFrontLeg, shTrylobiteRearLeg, shTrylobiteFrontClaw, shTrylobiteRearClaw, shBullBody, shBullHead, shBullHorn, shBullRearHoof, shBullFrontHoof, + shSmallBullHead, shSmallBullHorn, + shTinyBullHead, shTinyBullHorn, shTinyBullBody, shButterflyBody, shButterflyWing, shGadflyBody, shGadflyWing, shGadflyEye, diff --git a/graph.cpp b/graph.cpp index e40ec102..abffbaac 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1065,6 +1065,17 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int 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 == itOrbBull) { + queuepolyat(Vit, cgi.shTinyBullBody, dark, prio); + queuepolyat(Vit, cgi.shTinyBullHead, dark, prio); + queuepolyat(Vit, cgi.shTinyBullHorn, dark, prio); + queuepolyat(Vit * Mirror, cgi.shTinyBullHorn, dark, prio); + } else if (it == itOrbFrog) { queuepolyat(Vit, cgi.shSmallFrogBody, dark, prio); queuepolyat(Vit, cgi.shSmallFrogRearFoot, dark, prio); diff --git a/polygons.cpp b/polygons.cpp index 5d0e4c84..59bc1a24 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1404,6 +1404,11 @@ 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(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); bshape(shButterflyBody, PPR::MONSTER_BODY, scalefactor, 320); bshape(shButterflyWing, PPR::MONSTER_BODY, scalefactor, 321); @@ -2363,14 +2368,23 @@ NEWSHAPE, 404, 1, 1, -0.157104, 0.037552, -0.119742, 0.0232719, -0.0800179, 0. // shSmallSword (1x2) NEWSHAPE, 405,1,2, -0.226885,0.018516, -0.212399,0.032471, -0.193062,0.020928, -0.185621,0.046575, -0.192539,0.086182, -0.199612,0.102458, -0.167905,0.095887, -0.15358,0.056176, -0.148822,0.028094, 0.252221,0.023027, 0.294417,0.005175, // shSmallFlailTrunk +NEWSHAPE, 409,1,1, -0.048707,0.225700, -0.042124,0.230376, -0.032941,0.233710, -0.026424,0.233978, -0.02268,0.229640, 0.047958,-0.201688, 0.041932,-0.211853, 0.038281,-0.216934, 0.029252,-0.216536, 0.018813,-0.210892, 0.012195,-0.202881, + #define x (-0.1) #define y (-0.05) -NEWSHAPE, 409,1,1, 0.051293+x,0.275700+y, 0.057876+x,0.280376+y, 0.067059+x,0.283710+y, 0.073576+x,0.283978+y, 0.077320+x,0.279640+y, 0.147958+x,-0.151688+y, 0.141932+x,-0.161853+y, 0.138281+x,-0.166934+y, 0.129252+x,-0.166536+y, 0.118813+x,-0.160892+y, 0.112195+x,-0.152881+y, - // shSmallHammerHead NEWSHAPE, 410, 1, 1, 0.202167+x,-0.134605+y, 0.204591+x,-0.145446+y, 0.192856+x,-0.139999+y, 0.180908+x,-0.136821+y, 0.063679+x,-0.150430+y, 0.054862+x,-0.154571+y, 0.051985+x,-0.159521+y, 0.036546+x,-0.062257+y, 0.043529+x,-0.066187+y, 0.054300+x,-0.069873+y, 0.182749+x,-0.064458+y, 0.195918+x,-0.057169+y, 0.204973+x,-0.052339+y, 0.199643+x,-0.078121+y, 0.042703+x,-0.084239+y, 0.199470+x,-0.077992+y, 0.199531+x,-0.090084+y, 0.044591+x,-0.098658+y, 0.198774+x,-0.089982+y, 0.199787+x,-0.100708+y, 0.045748+x,-0.113148+y, 0.198272+x,-0.100502+y, 0.200147+x,-0.110605+y, 0.048127+x,-0.124053+y, 0.198630+x,-0.110398+y, 0.199672+x,-0.121163+y, 0.050049+x,-0.138713+y, 0.198913+x,-0.121059+y, #undef x #undef y + +// shSmallBullHead +#define x (-0.33) +NEWSHAPE, 411, 1, 2, 0.334622+x,-0.050250, 0.307607+x,-0.096839, 0.281739+x,-0.111332, 0.258180+x,-0.106443, 0.236906+x,-0.077841, 0.214842+x,-0.061865, 0.184962+x,-0.040355, 0.198626+x,-0.028054, 0.195166+x,-0.013460, 0.181470+x,-0.002240, +// shSmallBullHorn +NEWSHAPE, 412, 1, 1, 0.321702+x,-0.078714, 0.329603+x,-0.122456, 0.342058+x,-0.140037, 0.360561+x,-0.149754, 0.379070+x,-0.152553, 0.395131+x,-0.150636, 0.423718+x,-0.142016, 0.448897+x,-0.133266, 0.441750+x,-0.150756, 0.426899+x,-0.163295, 0.403192+x,-0.169643, 0.371044+x,-0.173385, 0.345193+x,-0.167994, 0.313418+x,-0.152134, 0.303510+x,-0.135781, 0.297242+x,-0.118441, 0.292244+x,-0.102342, 0.308799+x,-0.096856, + +#undef x + NEWSHAPE, NEWSHAPE }; From 20a687676331ddec0ff02b95a12f7ea2bdf72c33 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sun, 28 Aug 2022 10:25:42 -0700 Subject: [PATCH 16/63] Orb of Winter and Orb of Luck. --- geometry.cpp | 4 ++-- graph.cpp | 12 ++++++++++-- mymake.cpp | 7 +++++-- polygons.cpp | 9 +++++++++ 4 files changed, 26 insertions(+), 6 deletions(-) diff --git a/geometry.cpp b/geometry.cpp index 967cc690..c75838a0 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -260,7 +260,7 @@ hpcshape shHeptaRing, shSpearRing, shLoveRing, shFrogRing, shPowerGearRing, shProtectiveRing, shTerraRing, shMoveRing, shReserved4, shMoonDisk, - shDaisy, shTriangle, shNecro, shStatue, shKey, shWindArrow, + shDaisy, shSnowflake, shTriangle, shNecro, shStatue, shKey, shWindArrow, shGun, shFigurine, shTreat, shElementalShard, @@ -339,7 +339,7 @@ hpcshape shPBodyOnly, shPBodyArm, shPBodyHand, shPHeadOnly, - shDodeca; + shDodeca, shSmallerDodeca; hpcshape shFrogRearFoot, shFrogFrontFoot, shFrogRearLeg, shFrogFrontLeg, shFrogRearLeg2, shFrogBody, shFrogEye, shFrogStripe, shFrogJumpFoot, shFrogJumpLeg, shSmallFrogRearFoot, shSmallFrogFrontFoot, shSmallFrogRearLeg, shSmallFrogFrontLeg, shSmallFrogRearLeg2, shSmallFrogBody; diff --git a/graph.cpp b/graph.cpp index abffbaac..577f5f80 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1098,6 +1098,12 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int queuepolyat(Vit, cgi.shSmallFlailTrunk, dark, prio); queuepolyat(Vit, cgi.shSmallHammerHead, col, 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); + }*/ else if (it == itOrbSpeed) drawSpeed(Vit, 0.4); else { @@ -1111,10 +1117,12 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (it == itOrbMorph) ? cgi.shDiskS : (it == itOrbMatter || it == itOrbStone) ? cgi.shDiskSq : (it == itOrbEnergy) ? cgi.shHalfDisk : - (it == itOrbChoice) ? cgi.shEccentricDisk : + (it == itOrbChoice || it == itOrbMirror || it == itOrbMagnetism) ? cgi.shEccentricDisk : + (it == itOrbWinter) ? cgi.shSnowflake : + (it == itOrbLuck) ? cgi.shSmallerDodeca : cgi.shDisk; queuepolyat(Vit, shape, dark, prio); - if (it == itOrbSide1 || it == itOrbChoice) + if (it == itOrbSide1 || it == itOrbChoice || it == itOrbMirror || it == itOrbMagnetism) queuepolyat(Vit*Mirror, shape, dark, prio); if (it == itOrbEnergy) queuepolyat(Vit*Mirror, shape, col, prio); diff --git a/mymake.cpp b/mymake.cpp index d5b25959..7b351c15 100644 --- a/mymake.cpp +++ b/mymake.cpp @@ -69,12 +69,14 @@ void set_linux() { linker = "g++ -rdynamic"; default_exec_name = "hyper"; if(sdlver == 2) { - opts = "-DFHS -DLINUX -I/usr/include/SDL2"; + opts = "-DFHS -DLINUX -I/usr/include/SDL2 -DCAP_GLEW=0"; libs = " -lSDL2 -lSDL2_ttf -lSDL2_mixer -lSDL2_gfx -lGLEW -lGL -lpng -rdynamic -lpthread -lz"; + libs = " -lSDL2 -lSDL2_ttf -lSDL2_mixer -lSDL2_gfx -lGL -lpng -rdynamic -lpthread -lz"; } else if(sdlver == 1) { - opts = "-DFHS -DLINUX -I/usr/include/SDL"; + opts = "-DFHS -DLINUX -I/usr/include/SDL -DCAP_GLEW=0"; libs = " -lSDL -lSDL_ttf -lSDL_mixer -lSDL_gfx -lGLEW -lGL -lpng -rdynamic -lpthread -lz"; + libs = " -lSDL -lSDL_ttf -lSDL_mixer -lSDL_gfx -lGL -lpng -rdynamic -lpthread -lz"; } else { opts = "-DFHS -DLINUX"; @@ -98,6 +100,7 @@ void set_mingw64() { linker = "g++"; default_exec_name = "hyper"; opts = "-DWINDOWS -DCAP_GLEW=1 -DCAP_PNG=1"; + opts = "-DWINDOWS -DCAP_GLEW=0 -DCAP_PNG=1"; libs = " hyper.res -lopengl32 -lSDL -lSDL_gfx -lSDL_mixer -lSDL_ttf -lpthread -lz -lglew32 -lpng"; setvbuf(stdout, NULL, _IONBF, 0); // MinGW is quirky with output buffering } diff --git a/polygons.cpp b/polygons.cpp index 59bc1a24..6acb9337 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -558,6 +558,14 @@ void geometry_information::procedural_shapes() { } hpcpush(ddi(0, zhexf*.6) * C0); + bshape(shSnowflake, PPR::ITEM); + for(int t=0; t<=SD6; t++) { + hpcpush(ddi(t*S14, zhexf*.7*.8*3/4) * C0); + if(t != SD6) hpcpush(ddi(t*S14+SD7, zhexf*.7*-.5*3/4) * C0); + } + hpcpush(ddi(0, zhexf*.7*.6) * C0); + //copyshape(shSnowflake, shDaisy, PPR::ITEM); + bshape(shTriangle, PPR::ITEM); for(int t=0; t<=SD3; t++) { hpcpush(ddi(t*S28, zhexf*.5) * C0); @@ -1341,6 +1349,7 @@ void geometry_information::prepare_shapes() { bshape(shReptileTail, PPR::MONSTER_BODY, scalefactor, 303); bshape(shReptileEye, PPR::MONSTER_EYE0, scalefactor, 304); bshape(shDodeca, PPR::ITEM, scalefactor, 305); + bshape(shSmallerDodeca, PPR::ITEM, scalefactor*.8, 305); bshape(shTerraArmor1, PPR::MONSTER_BODY, scalefactor, 349); bshape(shTerraArmor2, PPR::MONSTER_BODY, scalefactor, 350); From c4a77769773a8c70b42e0225c63d2b72bf574945 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sun, 28 Aug 2022 10:55:09 -0700 Subject: [PATCH 17/63] Flash shape for the Orb of Flash. --- geometry.cpp | 2 +- graph.cpp | 1 + polygons.cpp | 7 +++++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/geometry.cpp b/geometry.cpp index c75838a0..1070e80f 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, shDisk, shHalfDisk, shDiskT, shDiskS, shDiskM, shDiskSq, shEccentricDisk, + shGem[2], shStar, shFlash, shDisk, shHalfDisk, shDiskT, shDiskS, shDiskM, shDiskSq, shEccentricDisk, shTinyBird, shTinyShark, shEgg, shRing, shSpikedRing, shTargetRing, shSawRing, shGearRing, shPeaceRing, diff --git a/graph.cpp b/graph.cpp index 577f5f80..c589eb56 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1120,6 +1120,7 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (it == itOrbChoice || it == itOrbMirror || it == itOrbMagnetism) ? cgi.shEccentricDisk : (it == itOrbWinter) ? cgi.shSnowflake : (it == itOrbLuck) ? cgi.shSmallerDodeca : + (it == itOrbFlash) ? cgi.shFlash : cgi.shDisk; queuepolyat(Vit, shape, dark, prio); if (it == itOrbSide1 || it == itOrbChoice || it == itOrbMirror || it == itOrbMagnetism) diff --git a/polygons.cpp b/polygons.cpp index 6acb9337..cdd0af2a 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -551,6 +551,13 @@ void geometry_information::procedural_shapes() { if(t != S84) hpcpush(ddi(t+3, zhexf*.6) * C0); } + bshape(shFlash, PPR::ITEM); + for(int t=0; t Date: Sun, 28 Aug 2022 11:10:12 -0700 Subject: [PATCH 18/63] Orbs of Impact and Recall. --- content.cpp | 4 ++-- graph.cpp | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/content.cpp b/content.cpp index 0d127144..f66b9d02 100644 --- a/content.cpp +++ b/content.cpp @@ -783,7 +783,7 @@ ITEM( 'o', 0xC00040, "Orb of Recall", itOrbRecall, IC_ORB, ZERO, RESERVED, osUti ITEM( ']', 0x8080FF, "Dodecahedron", itDodeca, IC_TREASURE, ZERO, RESERVED, osNone, "These dodecahedra made of a mysterious material are the Reptiles' favorite toy." ) -ITEM( 'o', 0x8080FF, "Orb of Vaulting", itOrbDash, IC_ORB, ZERO | IF_RANGED, RESERVED, osFrog, +ITEM( 'o', 0xFF0000, "Orb of Vaulting", itOrbDash, IC_ORB, ZERO | IF_RANGED, RESERVED, osFrog, "This Orb allows you to jump over an adjacent monster, killing or stunning it. " "You can only vault in a roughly straight line. " "Target a cell on the other side to use it." @@ -836,7 +836,7 @@ ITEM( '!', 0x80FF80, "Sea Glass", itDock, IC_TREASURE, ZERO, RESERVED, osNone, N ITEM( '*', 0xBBCC99, "Chrysoberyl", itRuins, IC_TREASURE, ZERO, RESERVED, osNone, "Fragment of the past glory.") ITEM( '*', 0x80FF80, "Monopole", itMagnet, IC_TREASURE, ZERO, RESERVED, osNone, NODESCYET) ITEM( '!', 0xFF00FF, "Tasty Jelly", itSwitch, IC_TREASURE, ZERO, RESERVED, osNone, "A tasty byproduct of the Jelly Revolution.") -ITEM( 'o', 0xFFFF80, "Orb of Phasing", itOrbPhasing, IC_ORB, ZERO, RESERVED, osFrog, +ITEM( 'o', 0xFF0000, "Orb of Phasing", itOrbPhasing, IC_ORB, ZERO, RESERVED, osFrog, "This orb lets you pass through walls (one cell wide), and also through monsters, as long as they will not attack you in transit.") ITEM( 'o', 0xFFFF80, "Orb of Magnetism", itOrbMagnetism, IC_ORB, ZERO, RESERVED, osUtility, "This orb makes you immediately pickup all the items on adjacent cells.") diff --git a/graph.cpp b/graph.cpp index c589eb56..addb10f6 100644 --- a/graph.cpp +++ b/graph.cpp @@ -795,8 +795,8 @@ EX color_t orb_auxiliary_color(eItem it) { if(it == itOrbFriend || it == itOrbDiscord) return 0xC0C0C0; if(it == itOrbFrog) return 0xFF0000; if(it == itOrbImpact) return 0xFF0000; - if(it == itOrbPhasing) return 0xFF0000; - if(it == itOrbDash) return 0xFF0000; + if(it == itOrbPhasing) return 0xFFFF80; + if(it == itOrbDash) return 0x8080FF; if(it == itOrbFreedom) return 0xC0FF00; if(it == itOrbPlague) return 0x409040; if(it == itOrbChaos) return 0xFF00FF; @@ -1127,9 +1127,9 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int queuepolyat(Vit*Mirror, shape, dark, prio); if (it == itOrbEnergy) queuepolyat(Vit*Mirror, shape, col, prio); - if (it == itOrbIntensity) + if (it == itOrbIntensity || it == itOrbImpact) queuepolyat(Vit, cgi.shDiskM, 0x80, prio); - if (it == itOrbSafety || it == itOrbFreedom) + if (it == itOrbSafety || it == itOrbFreedom || it == itOrbRecall) queuepolyat(Vit, cgi.shDiskSq, 0x80, prio); } } From f1b75537f813ff5b6fc8e4b8ae078a164794491c Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sun, 28 Aug 2022 11:31:14 -0700 Subject: [PATCH 19/63] Clean up small bull head & horn shapes. --- polygons.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/polygons.cpp b/polygons.cpp index cdd0af2a..772851f2 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -2394,12 +2394,9 @@ NEWSHAPE, 410, 1, 1, 0.202167+x,-0.134605+y, 0.204591+x,-0.145446+y, 0.192856+x, #undef y // shSmallBullHead -#define x (-0.33) -NEWSHAPE, 411, 1, 2, 0.334622+x,-0.050250, 0.307607+x,-0.096839, 0.281739+x,-0.111332, 0.258180+x,-0.106443, 0.236906+x,-0.077841, 0.214842+x,-0.061865, 0.184962+x,-0.040355, 0.198626+x,-0.028054, 0.195166+x,-0.013460, 0.181470+x,-0.002240, +NEWSHAPE, 411, 1, 2, 0.004622,-0.050250, -0.022393,-0.096839, -0.048261,-0.111332, -0.07182,-0.106443, -0.093094,-0.077841, -0.115158,-0.061865, -0.145038,-0.040355, -0.131374,-0.028054, -0.134834,-0.013460, -0.14853,-0.002240, // shSmallBullHorn -NEWSHAPE, 412, 1, 1, 0.321702+x,-0.078714, 0.329603+x,-0.122456, 0.342058+x,-0.140037, 0.360561+x,-0.149754, 0.379070+x,-0.152553, 0.395131+x,-0.150636, 0.423718+x,-0.142016, 0.448897+x,-0.133266, 0.441750+x,-0.150756, 0.426899+x,-0.163295, 0.403192+x,-0.169643, 0.371044+x,-0.173385, 0.345193+x,-0.167994, 0.313418+x,-0.152134, 0.303510+x,-0.135781, 0.297242+x,-0.118441, 0.292244+x,-0.102342, 0.308799+x,-0.096856, - -#undef x +NEWSHAPE, 412, 1, 1, -0.008298,-0.078714, -0.000397,-0.122456, 0.012058,-0.140037, 0.030561,-0.149754, 0.049070,-0.152553, 0.065131,-0.150636, 0.093718,-0.142016, 0.118897,-0.133266, 0.111750,-0.150756, 0.096899,-0.163295, 0.073192,-0.169643, 0.041044,-0.173385, 0.015193,-0.167994, -0.016582,-0.152134, -0.02649,-0.135781, -0.032758,-0.118441, -0.037756,-0.102342, -0.021201,-0.096856, NEWSHAPE, NEWSHAPE }; From 5ec6783a2da37f75ec626618fbf1038e03c102b1 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sun, 28 Aug 2022 19:06:01 -0700 Subject: [PATCH 20/63] Orb of Purity and Orb of Water. --- content.cpp | 4 ++-- geometry.cpp | 2 +- graph.cpp | 5 ++++- polygons.cpp | 4 ++++ 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/content.cpp b/content.cpp index f66b9d02..d8eb8255 100644 --- a/content.cpp +++ b/content.cpp @@ -591,7 +591,7 @@ ITEM( '$', 0xFFFFFF, "Pearl", itWhirlpool, IC_TREASURE, ZERO, RESERVED, osNone, ITEM( 'o', 0x306000, "Orb of Friendship", itOrbFriend, IC_ORB, ZERO | IF_SHMUPLIFE | IF_REVIVAL, RESERVED, osFriend, "This Orb summons a friendly Bomberbird." ) -ITEM( 'o', 0x000060, "Orb of Water", itOrbWater, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osTerraform, +ITEM( 'o', 0x0070C0, "Orb of Water", itOrbWater, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osTerraform, "This Orb allows your boat to go against the current, " "and also to go into the land, creating water on the way." ) @@ -1646,7 +1646,7 @@ WALL( '$', 0x40FD40, "Crate on Target", waCrateOnTarget, WF_WALL | WF_PUSHABLE, "A crate already on a target." ) -ITEM( 'o', 0xF0F0FF, "Orb of Purity", itOrbPurity, IC_ORB, ZERO, RESERVED, osProtective, +ITEM( 'o', 0xFFD520, "Orb of Purity", itOrbPurity, IC_ORB, ZERO, RESERVED, osProtective, "Reverses all the curses. When found far away from the Cursed Canyon, you gain low amounts of various reversed curse powers." ) diff --git a/geometry.cpp b/geometry.cpp index 1070e80f..b4fdace6 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -255,7 +255,7 @@ hpcshape shHalfFloor[6], shHalfMirror[3], shGem[2], shStar, shFlash, shDisk, shHalfDisk, shDiskT, shDiskS, shDiskM, shDiskSq, shEccentricDisk, shTinyBird, shTinyShark, - shEgg, + shEgg, shSmallEgg, shRing, shSpikedRing, shTargetRing, shSawRing, shGearRing, shPeaceRing, shHeptaRing, shSpearRing, shLoveRing, shFrogRing, shPowerGearRing, shProtectiveRing, shTerraRing, shMoveRing, diff --git a/graph.cpp b/graph.cpp index addb10f6..b49b205f 100644 --- a/graph.cpp +++ b/graph.cpp @@ -792,6 +792,7 @@ void queue_ring(const shiftmatrix& V, hpcshape& sh, color_t col, PPR p) { EX color_t orb_auxiliary_color(eItem it) { if(it == itOrbFire) return firecolor(200); + if(it == itOrbWater) return 0x000060; if(it == itOrbFriend || it == itOrbDiscord) return 0xC0C0C0; if(it == itOrbFrog) return 0xFF0000; if(it == itOrbImpact) return 0xFF0000; @@ -807,8 +808,8 @@ EX color_t orb_auxiliary_color(eItem it) { if(it == itOrbSlaying) return 0xFF0000; if(it == itOrbSide1) return 0x307080; if(it == itOrbDigging) return 0x606060; - //if(it == itOrbEnergy) return 0x8B4513; if(it == itOrbEnergy) return 0xFFFF80; + if(it == itOrbPurity) return 0xF0F0FF; return iinf[it].color; } @@ -1098,6 +1099,8 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int queuepolyat(Vit, cgi.shSmallFlailTrunk, dark, prio); 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); diff --git a/polygons.cpp b/polygons.cpp index 772851f2..bc9d3db8 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -636,6 +636,10 @@ void geometry_information::procedural_shapes() { bshape(shEgg, PPR::ITEM); RING(i) hpcpush(hpxy(sin(i*2*M_PI/S84)*0.242 * orbsize, cos(i*2*M_PI/S84)*0.177*orbsize)); + + bshape(shSmallEgg, PPR::ITEM); + RING(i) + hpcpush(hpxy(sin(i*2*M_PI/S84)*0.242 * orbsize/2, cos(i*2*M_PI/S84)*0.177*orbsize/2)); auto make_ring = [this] (hpcshape& sh, reaction_t f) { bshape(sh, PPR::ITEM); From cc29338305f21307e7722432917bf74a3cf1bbc5 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sun, 28 Aug 2022 19:41:16 -0700 Subject: [PATCH 21/63] Use shSmallTreat for Orbs of Change, Choice, and Chaos. --- content.cpp | 2 +- geometry.cpp | 2 +- graph.cpp | 4 ++-- polygons.cpp | 1 + 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/content.cpp b/content.cpp index d8eb8255..9cb46b64 100644 --- a/content.cpp +++ b/content.cpp @@ -1646,7 +1646,7 @@ WALL( '$', 0x40FD40, "Crate on Target", waCrateOnTarget, WF_WALL | WF_PUSHABLE, "A crate already on a target." ) -ITEM( 'o', 0xFFD520, "Orb of Purity", itOrbPurity, IC_ORB, ZERO, RESERVED, osProtective, +ITEM( 'o', 0xF0F0FF, "Orb of Purity", itOrbPurity, IC_ORB, ZERO, RESERVED, osProtective, "Reverses all the curses. When found far away from the Cursed Canyon, you gain low amounts of various reversed curse powers." ) diff --git a/geometry.cpp b/geometry.cpp index b4fdace6..a7801ab7 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -262,7 +262,7 @@ hpcshape shReserved4, shMoonDisk, shDaisy, shSnowflake, shTriangle, shNecro, shStatue, shKey, shWindArrow, shGun, - shFigurine, shTreat, + shFigurine, shTreat, shSmallTreat, shElementalShard, // shBranch, shIBranch, shTentacle, shTentacleX, shILeaf[3], diff --git a/graph.cpp b/graph.cpp index b49b205f..1bb21304 100644 --- a/graph.cpp +++ b/graph.cpp @@ -809,7 +809,7 @@ EX color_t orb_auxiliary_color(eItem it) { if(it == itOrbSide1) return 0x307080; if(it == itOrbDigging) return 0x606060; if(it == itOrbEnergy) return 0xFFFF80; - if(it == itOrbPurity) return 0xF0F0FF; + if(it == itOrbPurity) return 0xFFD520; return iinf[it].color; } @@ -1117,13 +1117,13 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (it == itOrbThorns) ? cgi.shSmallHedgehogBlade : (it == itOrbSide2 || it == itOrb37) ? cgi.shDiskT : (it == itOrbGravity) ? cgi.shTinyArrow : - (it == itOrbMorph) ? cgi.shDiskS : (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 : cgi.shDisk; queuepolyat(Vit, shape, dark, prio); if (it == itOrbSide1 || it == itOrbChoice || it == itOrbMirror || it == itOrbMagnetism) diff --git a/polygons.cpp b/polygons.cpp index bc9d3db8..9afd686f 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1254,6 +1254,7 @@ void geometry_information::prepare_shapes() { bshape(shKey, PPR::ITEM, scalefactor, 68); bshape(shPirateX, PPR::ITEM, scalefactor, 124); bshape(shTreat, PPR::ITEM, scalefactor, 253); + bshape(shSmallTreat, PPR::ITEM, scalefactor/1.5, 253); wormscale = WDIM == 3 ? 3 : 1; From e1f3df2e65ebd0f163be349b9199c127e41f255c Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sun, 28 Aug 2022 20:05:03 -0700 Subject: [PATCH 22/63] Orbs of the Dragon, Domination, and the Mind. --- geometry.cpp | 8 ++++---- graph.cpp | 13 +++++++++++++ polygons.cpp | 5 +++++ 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/geometry.cpp b/geometry.cpp index a7801ab7..24e0ee28 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -286,9 +286,9 @@ hpcshape shSabre, shTurban1, shTurban2, shVikingHelmet, shRaiderHelmet, shRaiderArmor, shRaiderBody, shRaiderShirt, shWestHat1, shWestHat2, shGunInHand, shKnightArmor, shKnightCloak, shWightCloak, - shGhost, shEyes, shSlime, shJelly, shJoint, shWormHead, shTentHead, shShark, shWormSegment, shSmallWormSegment, shWormTail, shSmallWormTail, - shSlimeEyes, shDragonEyes, shWormEyes, shGhostEyes, - shMiniGhost, shMiniEyes, + shGhost, shEyes, shSlime, shJelly, shJoint, shWormHead, shSmallWormHead, shTentHead, shShark, shWormSegment, shSmallWormSegment, shWormTail, shSmallWormTail, + shSlimeEyes, shDragonEyes, shSmallDragonEyes, shWormEyes, shSmallWormEyes, shGhostEyes, + shMiniGhost, shSmallEyes, shMiniEyes, shHedgehogBlade, shSmallHedgehogBlade, shHedgehogBladePlayer, shWolfBody, shWolfHead, shWolfLegs, shWolfEyes, shWolfFrontLeg, shWolfRearLeg, shWolfFrontPaw, shWolfRearPaw, @@ -312,7 +312,7 @@ hpcshape shRatHead, shRatTail, shRatEyes, shRatCape1, shRatCape2, shWizardHat1, shWizardHat2, shTortoise[13][6], - shDragonLegs, shDragonTail, shDragonHead, shDragonSegment, shDragonNostril, + shDragonLegs, shDragonTail, shDragonHead, shSmallDragonHead, shDragonSegment, shDragonNostril, shSmallDragonNostril, shDragonWings, shSolidBranch, shWeakBranch, shBead0, shBead1, shBatWings, shBatBody, shBatMouth, shBatFang, shBatEye, diff --git a/graph.cpp b/graph.cpp index 1bb21304..89dc900c 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1109,6 +1109,18 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int }*/ else if (it == itOrbSpeed) drawSpeed(Vit, 0.4); + else if (it == itOrbDragon) { + queuepolyat(Vit, cgi.shSmallDragonHead, dark, prio); + queuepolyat(Vit, cgi.shSmallDragonNostril, 0xFF, prio); + queuepolyat(Vit*Mirror, cgi.shSmallDragonNostril, 0xFF, prio); + queuepolyat(Vit, cgi.shSmallDragonEyes, 0x60, prio); + queuepolyat(Vit*Mirror, cgi.shSmallDragonEyes, 0x60, prio); + } + else if (it == itOrbDomination) { + queuepolyat(Vit, cgi.shSmallWormHead, dark, prio); + queuepolyat(Vit, cgi.shSmallWormEyes, 0x60, prio); + queuepolyat(Vit*Mirror, cgi.shSmallWormEyes, 0x60, prio); + } else { auto shape = (it == itOrbFriend) ? cgi.shTinyBird : (it == itOrbSide1) ? cgi.shSmallPSword : @@ -1124,6 +1136,7 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (it == itOrbLuck) ? cgi.shSmallerDodeca : (it == itOrbFlash) ? cgi.shFlash : (it == itOrbMorph || it == itOrbChaos || it == itOrbPlague) ? cgi.shSmallTreat : + (it == itOrbPsi) ? cgi.shDiskS : cgi.shDisk; queuepolyat(Vit, shape, dark, prio); if (it == itOrbSide1 || it == itOrbChoice || it == itOrbMirror || it == itOrbMagnetism) diff --git a/polygons.cpp b/polygons.cpp index 9afd686f..78384a82 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1268,6 +1268,7 @@ void geometry_information::prepare_shapes() { copyshape(shJoint, shDisk, PPR::ONTENTACLE); bshape(shTentHead, PPR::ONTENTACLE, scalefactor * wormscale, 79); bshape(shWormHead, PPR::ONTENTACLE, scalefactor * wormscale, 80); + bshape(shSmallWormHead, PPR::ONTENTACLE, scalefactor * wormscale / 2, 80); bshape(shWormSegment, PPR::TENTACLE1); RING(i) @@ -1284,6 +1285,8 @@ void geometry_information::prepare_shapes() { bshape(shDragonTail, PPR::TENTACLE1, scalefactor * wormscale, 240); //239 alt bshape(shDragonNostril, PPR::ONTENTACLE_EYES, scalefactor * wormscale, 241); bshape(shDragonHead, PPR::ONTENTACLE, scalefactor * wormscale, 242); + bshape(shSmallDragonNostril, PPR::ONTENTACLE_EYES, scalefactor * wormscale / 2, 241); + bshape(shSmallDragonHead, PPR::ONTENTACLE, scalefactor * wormscale / 2, 242); ld krsc = 1; if(sphere) krsc *= 1.4; @@ -1478,9 +1481,11 @@ void geometry_information::prepare_shapes() { bshape(shFlowerHand, PPR::MONSTER_WPN, scalefactor, 133); bshape(shPFace, PPR::MONSTER_FACE, scalefactor, 134); bshape(shEyes, PPR::MONSTER_EYE0, scalefactor, 135); + bshape(shSmallEyes, PPR::MONSTER_EYE0, scalefactor/2, 135); bshape(shMiniEyes, PPR::MONSTER_EYE0, scalefactor/3, 135); bshape(shShark, PPR::MONSTER_BODY, scalefactor, 136); shSlimeEyes = shDragonEyes = shWormEyes = shGhostEyes = shEyes; + shSmallDragonEyes = shSmallWormEyes = shSmallEyes; bshape(shTinyShark, PPR::MONSTER_BODY, scalefactor / 2, 136); bshape(shBugBody, PPR::MONSTER_BODY, scalefactor, 137); bshape(shBugArmor, PPR::MONSTER_ARMOR0, scalefactor, 138); From 0f6754b43e577f5b3f68e111ad045c65cac87de7 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sun, 28 Aug 2022 20:07:35 -0700 Subject: [PATCH 23/63] Enlarge shSmallHammerHead. --- polygons.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/polygons.cpp b/polygons.cpp index 78384a82..eb11972d 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1509,7 +1509,7 @@ void geometry_information::prepare_shapes() { bshape(shSmallFlailTrunk, PPR::MONSTER_WPN, scalefactor/2, 409); bshape(shFlailChain, PPR::MONSTER_SUBWPN, scalefactor, 153); bshape(shHammerHead, PPR::MONSTER_WPN, scalefactor, 376); - bshape(shSmallHammerHead, PPR::MONSTER_WPN, scalefactor/2, 410); + bshape(shSmallHammerHead, PPR::MONSTER_WPN, scalefactor/1.5, 410); // bshape(shScratch, 17, scalefactor, 156); bshape(shSkeletonBody, PPR::MONSTER_BODY, scalefactor, 157); bshape(shSkull, PPR::MONSTER_HEAD, scalefactor, 158); From a6c889416660496a94b6fb4ee5585903f6d8596e Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sun, 28 Aug 2022 20:31:25 -0700 Subject: [PATCH 24/63] Orb of Ferocity. --- graph.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/graph.cpp b/graph.cpp index 89dc900c..3533e745 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1136,7 +1136,7 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (it == itOrbLuck) ? cgi.shSmallerDodeca : (it == itOrbFlash) ? cgi.shFlash : (it == itOrbMorph || it == itOrbChaos || it == itOrbPlague) ? cgi.shSmallTreat : - (it == itOrbPsi) ? cgi.shDiskS : + (it == itOrbPsi || it == itOrbSide3) ? cgi.shDiskS : cgi.shDisk; queuepolyat(Vit, shape, dark, prio); if (it == itOrbSide1 || it == itOrbChoice || it == itOrbMirror || it == itOrbMagnetism) From ae284d68e878c973c5809826fa6229a53cb0974b Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sun, 28 Aug 2022 21:09:24 -0700 Subject: [PATCH 25/63] Orb of Stunning. --- geometry.cpp | 2 +- graph.cpp | 6 ++++++ polygons.cpp | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/geometry.cpp b/geometry.cpp index 24e0ee28..eaeffa68 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -295,7 +295,7 @@ hpcshape shFemaleBody, shFemaleHair, shFemaleDress, shWitchDress, shWitchHair, shBeautyHair, shFlowerHair, shFlowerHand, shSuspenders, shTrophy, shBugBody, shBugArmor, shBugLeg, shBugAntenna, - shPickAxe, shSmallPickAxe, shPike, shFlailBall, shFlailTrunk, shSmallFlailTrunk, shFlailChain, shHammerHead, shSmallHammerHead, + shPickAxe, shSmallPickAxe, shPike, shFlailBall, shSmallFlailBall, shFlailTrunk, shSmallFlailTrunk, shFlailChain, shHammerHead, shSmallHammerHead, shBook, shBookCover, shGrail, shBoatOuter, shBoatInner, shCompass1, shCompass2, shCompass3, shKnife, shTongue, shFlailMissile, shTrapArrow, diff --git a/graph.cpp b/graph.cpp index 3533e745..7e804e19 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1109,6 +1109,12 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int }*/ else if (it == itOrbSpeed) drawSpeed(Vit, 0.4); + else if (it == itOrbStunning) { + for (int i=0; i<5; i++) { + shiftmatrix V2 = Vit * spin(2*M_PI * i / 5 + ptick(300)); + queuepolyat(V2, cgi.shSmallFlailBall, dark, prio); + } + } else if (it == itOrbDragon) { queuepolyat(Vit, cgi.shSmallDragonHead, dark, prio); queuepolyat(Vit, cgi.shSmallDragonNostril, 0xFF, prio); diff --git a/polygons.cpp b/polygons.cpp index eb11972d..7764863e 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1505,6 +1505,7 @@ void geometry_information::prepare_shapes() { bshape(shSmallPickAxe, PPR::MONSTER_WPN, scalefactor/1.5, 408); bshape(shPike, PPR::MONSTER_WPN, scalefactor, 150); bshape(shFlailBall, PPR::MONSTER_WPN, scalefactor, 151); + bshape(shSmallFlailBall, PPR::MONSTER_WPN, scalefactor/2, 151); bshape(shFlailTrunk, PPR::MONSTER_WPN, scalefactor, 152); bshape(shSmallFlailTrunk, PPR::MONSTER_WPN, scalefactor/2, 409); bshape(shFlailChain, PPR::MONSTER_SUBWPN, scalefactor, 153); From aefbd359e41cb7f97e6ccbdd4450aec00e615ee5 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Mon, 29 Aug 2022 09:44:36 -0700 Subject: [PATCH 26/63] 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); From c9f24344afa5669bf9d0718762af70c413883f72 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Mon, 29 Aug 2022 09:55:51 -0700 Subject: [PATCH 27/63] Put disks behind the Orbs of Slaying and Undeath too. --- graph.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/graph.cpp b/graph.cpp index 6281eb15..0c815f23 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1079,15 +1079,6 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int queuepolyat(Vit*Mirror, cgi.shSmallFrogFrontFoot, dark, prio); queuepolyat(Vit*Mirror, cgi.shSmallFrogFrontLeg, dark, prio); } - else if (it == itOrbUndeath) { - dark = darkena(minf[moFriendlyGhost].color, 0, inice ? 0x80 : hidden ? 0x20 : 0xC0); - queuepolyat(Vit, cgi.shMiniGhost, dark, prio); - queuepolyat(Vit, cgi.shMiniEyes, 0xFF, prio); - } - else if (it == itOrbSlaying) { - queuepolyat(Vit, cgi.shSmallFlailTrunk, dark, prio); - queuepolyat(Vit, cgi.shSmallHammerHead, col, prio); - } else if (it == itOrbPurity) queuepolyat(Vit, cgi.shSmallEgg, dark, prio); else if (it == itOrbSpeed) @@ -1148,6 +1139,15 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int queuepolyat(Vit, cgi.shSmallBullHorn, 0x80, prio); queuepolyat(Vit*Mirror, cgi.shSmallBullHorn, 0x80, prio); } + if (it == itOrbUndeath) { +dark = darkena(minf[moFriendlyGhost].color, 0, inice ? 0x80 : hidden ? 0x20 : 0xC0); + queuepolyat(Vit, cgi.shMiniGhost, dark, prio); + queuepolyat(Vit, cgi.shMiniEyes, 0xFF, prio); + } + if (it == itOrbSlaying) { + queuepolyat(Vit, cgi.shSmallFlailTrunk, 0x80, prio); + queuepolyat(Vit, cgi.shSmallHammerHead, 0x80, prio); + } if (it == itOrbShell) for(int i = 1; i<8; i++) { queuepolyat(Vit, cgi.shTortoise[i][2], 0x80, prio); From 067f959ab1e9316d34dcdc1959e1bbffd04db3c7 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Mon, 29 Aug 2022 10:05:40 -0700 Subject: [PATCH 28/63] Have Orb of Purity use a disk as well. --- graph.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/graph.cpp b/graph.cpp index 0c815f23..45a152ea 100644 --- a/graph.cpp +++ b/graph.cpp @@ -809,7 +809,7 @@ EX color_t orb_auxiliary_color(eItem it) { if(it == itOrbSide1) return 0x307080; if(it == itOrbDigging) return 0x606060; if(it == itOrbEnergy) return 0xFFFF80; - if(it == itOrbPurity) return 0xFFD520; + //if(it == itOrbPurity) return 0xFFD520; return iinf[it].color; } @@ -1079,8 +1079,6 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int queuepolyat(Vit*Mirror, cgi.shSmallFrogFrontFoot, dark, prio); queuepolyat(Vit*Mirror, cgi.shSmallFrogFrontLeg, dark, prio); } - else if (it == itOrbPurity) - queuepolyat(Vit, cgi.shSmallEgg, dark, prio); else if (it == itOrbSpeed) drawSpeed(Vit, 0.4); else if (it == itOrbStunning) { @@ -1122,6 +1120,7 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (it == itOrbEnergy) ? &cgi.shHalfDisk : (it == itOrbChoice || it == itOrbMirror || it == itOrbMagnetism) ? &cgi.shEccentricDisk : (it == itOrbPsi || it == itOrbSide3) ? &cgi.shDiskS : + (it == itOrbPurity) ? &cgi.shSmallEgg : &cgi.shDisk; queuepolyat(Vit, cgi.shDisk, dark, prio); if (shape != &cgi.shDisk) @@ -1140,7 +1139,7 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int queuepolyat(Vit*Mirror, cgi.shSmallBullHorn, 0x80, prio); } if (it == itOrbUndeath) { -dark = darkena(minf[moFriendlyGhost].color, 0, inice ? 0x80 : hidden ? 0x20 : 0xC0); + dark = darkena(minf[moFriendlyGhost].color, 0, inice ? 0x80 : hidden ? 0x20 : 0xC0); queuepolyat(Vit, cgi.shMiniGhost, dark, prio); queuepolyat(Vit, cgi.shMiniEyes, 0xFF, prio); } From 5239f6eadc95c6ffa0da5564c9921dc58e349aed Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Mon, 29 Aug 2022 10:30:37 -0700 Subject: [PATCH 29/63] Orbs of Lava, Matter, and Stone. --- graph.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/graph.cpp b/graph.cpp index 45a152ea..f9197b13 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1108,22 +1108,24 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int queuepolyat(Vit, cgi.shSmallerDodeca, dark, prio); else if (it == itOrbFlash) queuepolyat(Vit, cgi.shFlash, dark, prio); + else if (it == itOrbMatter || it == itOrbStone) + queuepolyat(Vit, cgi.shDiskSq, 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 == itOrbSide2 || it == itOrb37 || it == itOrbLava) ? &cgi.shDiskT : (it == itOrbGravity) ? &cgi.shTinyArrow : - (it == itOrbMatter || it == itOrbStone) ? &cgi.shDiskSq : + (it == itOrbSafety || it == itOrbFreedom || it == itOrbRecall) ? &cgi.shDiskSq : (it == itOrbEnergy) ? &cgi.shHalfDisk : (it == itOrbChoice || it == itOrbMirror || it == itOrbMagnetism) ? &cgi.shEccentricDisk : (it == itOrbPsi || it == itOrbSide3) ? &cgi.shDiskS : (it == itOrbPurity) ? &cgi.shSmallEgg : - &cgi.shDisk; + NULL; queuepolyat(Vit, cgi.shDisk, dark, prio); - if (shape != &cgi.shDisk) + if (shape) queuepolyat(Vit, *shape, 0x80, prio); if (it == itOrbSide1 || shape == &cgi.shEccentricDisk) queuepolyat(Vit*Mirror, *shape, 0x80, prio); @@ -1131,8 +1133,6 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int 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); From ef28ce708edc6f66f763a54a2cf4290f928f14d8 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Mon, 29 Aug 2022 16:14:59 -0700 Subject: [PATCH 30/63] Add lightning bolt to Orb of Storms. --- geometry.cpp | 4 +++- graph.cpp | 1 + polygons.cpp | 9 ++++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/geometry.cpp b/geometry.cpp index eaeffa68..25d50934 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -339,7 +339,9 @@ hpcshape shPBodyOnly, shPBodyArm, shPBodyHand, shPHeadOnly, - shDodeca, shSmallerDodeca; + shDodeca, shSmallerDodeca, + + shLightningBolt; hpcshape shFrogRearFoot, shFrogFrontFoot, shFrogRearLeg, shFrogFrontLeg, shFrogRearLeg2, shFrogBody, shFrogEye, shFrogStripe, shFrogJumpFoot, shFrogJumpLeg, shSmallFrogRearFoot, shSmallFrogFrontFoot, shSmallFrogRearLeg, shSmallFrogFrontLeg, shSmallFrogRearLeg2, shSmallFrogBody; diff --git a/graph.cpp b/graph.cpp index f9197b13..6e68ad9b 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1123,6 +1123,7 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (it == itOrbChoice || it == itOrbMirror || it == itOrbMagnetism) ? &cgi.shEccentricDisk : (it == itOrbPsi || it == itOrbSide3) ? &cgi.shDiskS : (it == itOrbPurity) ? &cgi.shSmallEgg : + (it == itOrbLightning) ? &cgi.shLightningBolt : NULL; queuepolyat(Vit, cgi.shDisk, dark, prio); if (shape) diff --git a/polygons.cpp b/polygons.cpp index f66a28ff..797c5a5c 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -571,7 +571,6 @@ void geometry_information::procedural_shapes() { if(t != SD6) hpcpush(ddi(t*S14+SD7, zhexf*.7*-.5*3/4) * C0); } hpcpush(ddi(0, zhexf*.7*.6) * C0); - //copyshape(shSnowflake, shDaisy, PPR::ITEM); bshape(shTriangle, PPR::ITEM); for(int t=0; t<=SD3; t++) { @@ -1255,6 +1254,7 @@ void geometry_information::prepare_shapes() { bshape(shPirateX, PPR::ITEM, scalefactor, 124); bshape(shTreat, PPR::ITEM, scalefactor, 253); bshape(shSmallTreat, PPR::ITEM, scalefactor/1.5, 253); + bshape(shLightningBolt, PPR::ITEM, scalefactor/1.5, 413); wormscale = WDIM == 3 ? 3 : 1; @@ -2409,6 +2409,13 @@ NEWSHAPE, 411, 1, 2, 0.004622,-0.050250, -0.022393,-0.096839, -0.048261,-0.11133 // shSmallBullHorn NEWSHAPE, 412, 1, 1, -0.008298,-0.078714, -0.000397,-0.122456, 0.012058,-0.140037, 0.030561,-0.149754, 0.049070,-0.152553, 0.065131,-0.150636, 0.093718,-0.142016, 0.118897,-0.133266, 0.111750,-0.150756, 0.096899,-0.163295, 0.073192,-0.169643, 0.041044,-0.173385, 0.015193,-0.167994, -0.016582,-0.152134, -0.02649,-0.135781, -0.032758,-0.118441, -0.037756,-0.102342, -0.021201,-0.096856, +// shLightningBolt +#define x (-.25) +#define y (-.25) +NEWSHAPE, 413, 1,1, .2824+x,.0656+y, .4176+x,.0656+y, .3184+x,.1720+y, .3792+x,.1720+y, .2960+x,.2656+y, .3568+x,.2656+y, .1184+x,.4112+y, .2096+x,.3032+y, .1488+x,.3032+y, .2222+x,.2048+y, .1680+x,.2048+y, +#undef x +#undef y + NEWSHAPE, NEWSHAPE }; From f8c9562a7412a59793046eae06d2d456e0937261 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Mon, 29 Aug 2022 18:50:50 -0700 Subject: [PATCH 31/63] Do Orb of Trickery. --- geometry.cpp | 2 +- graph.cpp | 5 +++++ polygons.cpp | 9 +++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/geometry.cpp b/geometry.cpp index 25d50934..df438bac 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -341,7 +341,7 @@ hpcshape shDodeca, shSmallerDodeca, - shLightningBolt; + shLightningBolt, shHumanoid; hpcshape shFrogRearFoot, shFrogFrontFoot, shFrogRearLeg, shFrogFrontLeg, shFrogRearLeg2, shFrogBody, shFrogEye, shFrogStripe, shFrogJumpFoot, shFrogJumpLeg, shSmallFrogRearFoot, shSmallFrogFrontFoot, shSmallFrogRearLeg, shSmallFrogFrontLeg, shSmallFrogRearLeg2, shSmallFrogBody; diff --git a/graph.cpp b/graph.cpp index 6e68ad9b..4a30bd6d 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1106,6 +1106,10 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int queuepolyat(Vit, cgi.shSnowflake, dark, prio); else if (it == itOrbLuck) queuepolyat(Vit, cgi.shSmallerDodeca, dark, prio); + /*else if (it == itOrbIllusion) { + queuepolyat(Vit, cgi.shHumanoid, dark, prio); + //queuepolyat(Vit*Mirror, cgi.shHalfHumanoid, dark, prio); + }*/ else if (it == itOrbFlash) queuepolyat(Vit, cgi.shFlash, dark, prio); else if (it == itOrbMatter || it == itOrbStone) @@ -1124,6 +1128,7 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (it == itOrbPsi || it == itOrbSide3) ? &cgi.shDiskS : (it == itOrbPurity) ? &cgi.shSmallEgg : (it == itOrbLightning) ? &cgi.shLightningBolt : + (it == itOrbIllusion) ? &cgi.shHumanoid : NULL; queuepolyat(Vit, cgi.shDisk, dark, prio); if (shape) diff --git a/polygons.cpp b/polygons.cpp index 797c5a5c..d51087b0 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1255,6 +1255,7 @@ void geometry_information::prepare_shapes() { bshape(shTreat, PPR::ITEM, scalefactor, 253); bshape(shSmallTreat, PPR::ITEM, scalefactor/1.5, 253); bshape(shLightningBolt, PPR::ITEM, scalefactor/1.5, 413); + bshape(shHumanoid, PPR::ITEM, scalefactor/5.5, 414); wormscale = WDIM == 3 ? 3 : 1; @@ -2416,6 +2417,14 @@ NEWSHAPE, 413, 1,1, .2824+x,.0656+y, .4176+x,.0656+y, .3184+x,.1720+y, .3792+x,. #undef x #undef y +// shHumanoid +#define x (-.636) +#define y (-.8) +NEWSHAPE, 414, 1, 2, .966+y,.636+x, 1.419+y,.822+x, 1.419+y,.984+x, .930+y,.807+x, .639+y,.765+x, .840+y,.890+x, .762+y,.975+x, .480+y,.822+x, .432+y,.714+x, .333+y,.774+x, .231+y,.777+x, .141+y,.717+x, .126+y,.723+x, .100+y,.636+x, + +#undef x +#undef y + NEWSHAPE, NEWSHAPE }; From 94b2a27b35c6a1e1e39536c6291bac97817899f5 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Mon, 29 Aug 2022 19:03:12 -0700 Subject: [PATCH 32/63] Do Orb of Aether. --- geometry.cpp | 2 +- graph.cpp | 10 ++++++---- polygons.cpp | 2 ++ 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/geometry.cpp b/geometry.cpp index df438bac..2f0a80a7 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -341,7 +341,7 @@ hpcshape shDodeca, shSmallerDodeca, - shLightningBolt, shHumanoid; + shLightningBolt, shHumanoid, shHalfHumanoid; hpcshape shFrogRearFoot, shFrogFrontFoot, shFrogRearLeg, shFrogFrontLeg, shFrogRearLeg2, shFrogBody, shFrogEye, shFrogStripe, shFrogJumpFoot, shFrogJumpLeg, shSmallFrogRearFoot, shSmallFrogFrontFoot, shSmallFrogRearLeg, shSmallFrogFrontLeg, shSmallFrogRearLeg2, shSmallFrogBody; diff --git a/graph.cpp b/graph.cpp index 4a30bd6d..dbcd42ef 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1106,10 +1106,12 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int queuepolyat(Vit, cgi.shSnowflake, dark, prio); else if (it == itOrbLuck) queuepolyat(Vit, cgi.shSmallerDodeca, dark, prio); - /*else if (it == itOrbIllusion) { - queuepolyat(Vit, cgi.shHumanoid, dark, prio); - //queuepolyat(Vit*Mirror, cgi.shHalfHumanoid, dark, prio); - }*/ + else if (it == itOrbAether) { + queuepolyat(Vit, cgi.shHalfDisk, dark, prio); + queuepolyat(Vit*Mirror, cgi.shHalfDisk, 0xFF, prio); + queuepolyat(Vit, cgi.shHalfHumanoid, dark, prio); + queuepolyat(Vit*Mirror, cgi.shHalfHumanoid, 0xFF, prio); + } else if (it == itOrbFlash) queuepolyat(Vit, cgi.shFlash, dark, prio); else if (it == itOrbMatter || it == itOrbStone) diff --git a/polygons.cpp b/polygons.cpp index d51087b0..b1c77231 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1256,6 +1256,7 @@ void geometry_information::prepare_shapes() { bshape(shSmallTreat, PPR::ITEM, scalefactor/1.5, 253); bshape(shLightningBolt, PPR::ITEM, scalefactor/1.5, 413); bshape(shHumanoid, PPR::ITEM, scalefactor/5.5, 414); + bshape(shHalfHumanoid, PPR::ITEM, scalefactor/5.5, 415); wormscale = WDIM == 3 ? 3 : 1; @@ -2421,6 +2422,7 @@ NEWSHAPE, 413, 1,1, .2824+x,.0656+y, .4176+x,.0656+y, .3184+x,.1720+y, .3792+x,. #define x (-.636) #define y (-.8) NEWSHAPE, 414, 1, 2, .966+y,.636+x, 1.419+y,.822+x, 1.419+y,.984+x, .930+y,.807+x, .639+y,.765+x, .840+y,.890+x, .762+y,.975+x, .480+y,.822+x, .432+y,.714+x, .333+y,.774+x, .231+y,.777+x, .141+y,.717+x, .126+y,.723+x, .100+y,.636+x, +NEWSHAPE, 415, 1, 1, .966+y,.636+x, 1.419+y,.822+x, 1.419+y,.984+x, .930+y,.807+x, .639+y,.765+x, .840+y,.890+x, .762+y,.975+x, .480+y,.822+x, .432+y,.714+x, .333+y,.774+x, .231+y,.777+x, .141+y,.717+x, .126+y,.723+x, .100+y,.636+x, #undef x #undef y From 3081817872b0e0316b69b711c38783fcf6144bdf Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Tue, 30 Aug 2022 14:49:37 -0700 Subject: [PATCH 33/63] Orb of Invisibility. --- graph.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/graph.cpp b/graph.cpp index dbcd42ef..739c267d 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1130,11 +1130,11 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (it == itOrbPsi || it == itOrbSide3) ? &cgi.shDiskS : (it == itOrbPurity) ? &cgi.shSmallEgg : (it == itOrbLightning) ? &cgi.shLightningBolt : - (it == itOrbIllusion) ? &cgi.shHumanoid : + (it == itOrbIllusion || it == itOrbInvis) ? &cgi.shHumanoid : NULL; queuepolyat(Vit, cgi.shDisk, dark, prio); if (shape) - queuepolyat(Vit, *shape, 0x80, prio); + queuepolyat(Vit, *shape, (it == itOrbInvis) ? 0x20 : 0x80, prio); if (it == itOrbSide1 || shape == &cgi.shEccentricDisk) queuepolyat(Vit*Mirror, *shape, 0x80, prio); if (it == itOrbEnergy) From 4c75779692d6cd46ed9eb6881a3548c47f227087 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Tue, 30 Aug 2022 15:00:31 -0700 Subject: [PATCH 34/63] Clean up the shLightningBolt points. --- polygons.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/polygons.cpp b/polygons.cpp index b1c77231..5f710f0b 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -2412,11 +2412,7 @@ NEWSHAPE, 411, 1, 2, 0.004622,-0.050250, -0.022393,-0.096839, -0.048261,-0.11133 NEWSHAPE, 412, 1, 1, -0.008298,-0.078714, -0.000397,-0.122456, 0.012058,-0.140037, 0.030561,-0.149754, 0.049070,-0.152553, 0.065131,-0.150636, 0.093718,-0.142016, 0.118897,-0.133266, 0.111750,-0.150756, 0.096899,-0.163295, 0.073192,-0.169643, 0.041044,-0.173385, 0.015193,-0.167994, -0.016582,-0.152134, -0.02649,-0.135781, -0.032758,-0.118441, -0.037756,-0.102342, -0.021201,-0.096856, // shLightningBolt -#define x (-.25) -#define y (-.25) -NEWSHAPE, 413, 1,1, .2824+x,.0656+y, .4176+x,.0656+y, .3184+x,.1720+y, .3792+x,.1720+y, .2960+x,.2656+y, .3568+x,.2656+y, .1184+x,.4112+y, .2096+x,.3032+y, .1488+x,.3032+y, .2222+x,.2048+y, .1680+x,.2048+y, -#undef x -#undef y +NEWSHAPE, 413, 1,1, 0.032400, -0.18440, 0.16760, -0.18440, 0.068400, -0.078000, 0.12920, -0.078000, 0.046000, 0.015600, 0.10680, 0.015600, -0.13160, 0.16120, -0.040400, 0.053200, -0.10120, 0.053200, -0.027800, -0.045200, -0.082000, -0.045200, // shHumanoid #define x (-.636) From 7441642b307d33b21eafc29a55e39370e50d3df5 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Tue, 30 Aug 2022 15:07:05 -0700 Subject: [PATCH 35/63] Clean up shHumanoid polygon. --- polygons.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/polygons.cpp b/polygons.cpp index 5f710f0b..5883c640 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -2415,13 +2415,8 @@ NEWSHAPE, 412, 1, 1, -0.008298,-0.078714, -0.000397,-0.122456, 0.012058,-0.14003 NEWSHAPE, 413, 1,1, 0.032400, -0.18440, 0.16760, -0.18440, 0.068400, -0.078000, 0.12920, -0.078000, 0.046000, 0.015600, 0.10680, 0.015600, -0.13160, 0.16120, -0.040400, 0.053200, -0.10120, 0.053200, -0.027800, -0.045200, -0.082000, -0.045200, // shHumanoid -#define x (-.636) -#define y (-.8) -NEWSHAPE, 414, 1, 2, .966+y,.636+x, 1.419+y,.822+x, 1.419+y,.984+x, .930+y,.807+x, .639+y,.765+x, .840+y,.890+x, .762+y,.975+x, .480+y,.822+x, .432+y,.714+x, .333+y,.774+x, .231+y,.777+x, .141+y,.717+x, .126+y,.723+x, .100+y,.636+x, -NEWSHAPE, 415, 1, 1, .966+y,.636+x, 1.419+y,.822+x, 1.419+y,.984+x, .930+y,.807+x, .639+y,.765+x, .840+y,.890+x, .762+y,.975+x, .480+y,.822+x, .432+y,.714+x, .333+y,.774+x, .231+y,.777+x, .141+y,.717+x, .126+y,.723+x, .100+y,.636+x, - -#undef x -#undef y +NEWSHAPE, 414, 1, 2, 0.16600, 0, 0.61900, 0.18600, 0.61900, 0.34800, 0.13000, 0.17100, -0.16100, 0.12900, 0.040000, 0.25400, -0.038000, 0.33900, -0.32000, 0.18600, -0.36800, 0.078000, -0.46700, 0.13800, -0.56900, 0.14100, -0.65900, 0.081000, -0.67400, 0.087000, -0.70000, 0, +NEWSHAPE, 415, 1, 1, 0.16600, 0, 0.61900, 0.18600, 0.61900, 0.34800, 0.13000, 0.17100, -0.16100, 0.12900, 0.040000, 0.25400, -0.038000, 0.33900, -0.32000, 0.18600, -0.36800, 0.078000, -0.46700, 0.13800, -0.56900, 0.14100, -0.65900, 0.081000, -0.67400, 0.087000, -0.70000, 0, NEWSHAPE, NEWSHAPE }; From a2482b033d9a02b79d735bd05ef3269884a12f6e Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Tue, 30 Aug 2022 19:14:37 -0700 Subject: [PATCH 36/63] Clean up shLightningBolt & shHumanoid shape data further. --- polygons.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/polygons.cpp b/polygons.cpp index 5883c640..5a14d838 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -2412,11 +2412,11 @@ NEWSHAPE, 411, 1, 2, 0.004622,-0.050250, -0.022393,-0.096839, -0.048261,-0.11133 NEWSHAPE, 412, 1, 1, -0.008298,-0.078714, -0.000397,-0.122456, 0.012058,-0.140037, 0.030561,-0.149754, 0.049070,-0.152553, 0.065131,-0.150636, 0.093718,-0.142016, 0.118897,-0.133266, 0.111750,-0.150756, 0.096899,-0.163295, 0.073192,-0.169643, 0.041044,-0.173385, 0.015193,-0.167994, -0.016582,-0.152134, -0.02649,-0.135781, -0.032758,-0.118441, -0.037756,-0.102342, -0.021201,-0.096856, // shLightningBolt -NEWSHAPE, 413, 1,1, 0.032400, -0.18440, 0.16760, -0.18440, 0.068400, -0.078000, 0.12920, -0.078000, 0.046000, 0.015600, 0.10680, 0.015600, -0.13160, 0.16120, -0.040400, 0.053200, -0.10120, 0.053200, -0.027800, -0.045200, -0.082000, -0.045200, +NEWSHAPE, 413, 1,1, 0.0324, -0.18440, 0.16760, -0.18440, 0.0684, -0.0780, 0.12920, -0.0780, 0.0460, 0.0156, 0.10680, 0.0156, -0.13160, 0.16120, -0.0404, 0.0532, -0.10120, 0.0532, -0.0278, -0.0452, -0.0820, -0.0452, // shHumanoid -NEWSHAPE, 414, 1, 2, 0.16600, 0, 0.61900, 0.18600, 0.61900, 0.34800, 0.13000, 0.17100, -0.16100, 0.12900, 0.040000, 0.25400, -0.038000, 0.33900, -0.32000, 0.18600, -0.36800, 0.078000, -0.46700, 0.13800, -0.56900, 0.14100, -0.65900, 0.081000, -0.67400, 0.087000, -0.70000, 0, -NEWSHAPE, 415, 1, 1, 0.16600, 0, 0.61900, 0.18600, 0.61900, 0.34800, 0.13000, 0.17100, -0.16100, 0.12900, 0.040000, 0.25400, -0.038000, 0.33900, -0.32000, 0.18600, -0.36800, 0.078000, -0.46700, 0.13800, -0.56900, 0.14100, -0.65900, 0.081000, -0.67400, 0.087000, -0.70000, 0, +NEWSHAPE, 414, 1, 2, 0.166, 0, 0.619, 0.186, 0.619, 0.348, 0.130, 0.171, -0.161, 0.129, 0.0400, 0.254, -0.0380, 0.339, -0.320, 0.186, -0.368, 0.0780, -0.467, 0.138, -0.569, 0.141, -0.659, 0.0810, -0.674, 0.0870, -0.700, 0, +NEWSHAPE, 415, 1, 1, 0.166, 0, 0.619, 0.186, 0.619, 0.348, 0.130, 0.171, -0.161, 0.129, 0.0400, 0.254, -0.0380, 0.339, -0.320, 0.186, -0.368, 0.0780, -0.467, 0.138, -0.569, 0.141, -0.659, 0.0810, -0.674, 0.0870, -0.700, 0, NEWSHAPE, NEWSHAPE }; From 2f51cfc49ea0efc9a2d2ddfa3867427724e58979 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Tue, 30 Aug 2022 19:48:50 -0700 Subject: [PATCH 37/63] More cleanup for shLightningBolt & shHumanoid polygons. --- polygons.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/polygons.cpp b/polygons.cpp index 5a14d838..64083c38 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -2412,11 +2412,11 @@ NEWSHAPE, 411, 1, 2, 0.004622,-0.050250, -0.022393,-0.096839, -0.048261,-0.11133 NEWSHAPE, 412, 1, 1, -0.008298,-0.078714, -0.000397,-0.122456, 0.012058,-0.140037, 0.030561,-0.149754, 0.049070,-0.152553, 0.065131,-0.150636, 0.093718,-0.142016, 0.118897,-0.133266, 0.111750,-0.150756, 0.096899,-0.163295, 0.073192,-0.169643, 0.041044,-0.173385, 0.015193,-0.167994, -0.016582,-0.152134, -0.02649,-0.135781, -0.032758,-0.118441, -0.037756,-0.102342, -0.021201,-0.096856, // shLightningBolt -NEWSHAPE, 413, 1,1, 0.0324, -0.18440, 0.16760, -0.18440, 0.0684, -0.0780, 0.12920, -0.0780, 0.0460, 0.0156, 0.10680, 0.0156, -0.13160, 0.16120, -0.0404, 0.0532, -0.10120, 0.0532, -0.0278, -0.0452, -0.0820, -0.0452, +NEWSHAPE, 413, 1,1, 0.0324, -0.1844, 0.1676, -0.1844, 0.0684, -0.078, 0.1292, -0.078, 0.046, 0.0156, 0.1068, 0.0156, -0.1316, 0.1612, -0.0404, 0.0532, -0.1012, 0.0532, -0.0278, -0.0452, -0.082, -0.0452, // shHumanoid -NEWSHAPE, 414, 1, 2, 0.166, 0, 0.619, 0.186, 0.619, 0.348, 0.130, 0.171, -0.161, 0.129, 0.0400, 0.254, -0.0380, 0.339, -0.320, 0.186, -0.368, 0.0780, -0.467, 0.138, -0.569, 0.141, -0.659, 0.0810, -0.674, 0.0870, -0.700, 0, -NEWSHAPE, 415, 1, 1, 0.166, 0, 0.619, 0.186, 0.619, 0.348, 0.130, 0.171, -0.161, 0.129, 0.0400, 0.254, -0.0380, 0.339, -0.320, 0.186, -0.368, 0.0780, -0.467, 0.138, -0.569, 0.141, -0.659, 0.0810, -0.674, 0.0870, -0.700, 0, +NEWSHAPE, 414, 1, 2, 0.166, 0, 0.619, 0.186, 0.619, 0.348, 0.13, 0.171, -0.161, 0.129, 0.04, 0.254, -0.038, 0.339, -0.32, 0.186, -0.368, 0.078, -0.467, 0.138, -0.569, 0.141, -0.659, 0.081, -0.674, 0.087, -0.7, 0, +NEWSHAPE, 415, 1, 1, 0.166, 0, 0.619, 0.186, 0.619, 0.348, 0.13, 0.171, -0.161, 0.129, 0.04, 0.254, -0.038, 0.339, -0.32, 0.186, -0.368, 0.078, -0.467, 0.138, -0.569, 0.141, -0.659, 0.081, -0.674, 0.087, -0.7, 0, NEWSHAPE, NEWSHAPE }; From 360aa921aa037c1c98a3b4b1c103e2475c499c5c Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Tue, 13 Sep 2022 10:49:10 -0700 Subject: [PATCH 38/63] Half an hourglass for the Orb of Time. --- geometry.cpp | 2 +- graph.cpp | 1 + polygons.cpp | 25 +++++++++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/geometry.cpp b/geometry.cpp index 2f0a80a7..08536cc7 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -341,7 +341,7 @@ hpcshape shDodeca, shSmallerDodeca, - shLightningBolt, shHumanoid, shHalfHumanoid; + shLightningBolt, shHumanoid, shHalfHumanoid, shHourglass; hpcshape shFrogRearFoot, shFrogFrontFoot, shFrogRearLeg, shFrogFrontLeg, shFrogRearLeg2, shFrogBody, shFrogEye, shFrogStripe, shFrogJumpFoot, shFrogJumpLeg, shSmallFrogRearFoot, shSmallFrogFrontFoot, shSmallFrogRearLeg, shSmallFrogFrontLeg, shSmallFrogRearLeg2, shSmallFrogBody; diff --git a/graph.cpp b/graph.cpp index 739c267d..0fc3185a 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1130,6 +1130,7 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (it == itOrbPsi || it == itOrbSide3) ? &cgi.shDiskS : (it == itOrbPurity) ? &cgi.shSmallEgg : (it == itOrbLightning) ? &cgi.shLightningBolt : + (it == itOrbTime) ? &cgi.shHourglass : (it == itOrbIllusion || it == itOrbInvis) ? &cgi.shHumanoid : NULL; queuepolyat(Vit, cgi.shDisk, dark, prio); diff --git a/polygons.cpp b/polygons.cpp index 64083c38..96b25bb9 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1257,6 +1257,7 @@ void geometry_information::prepare_shapes() { bshape(shLightningBolt, PPR::ITEM, scalefactor/1.5, 413); bshape(shHumanoid, PPR::ITEM, scalefactor/5.5, 414); bshape(shHalfHumanoid, PPR::ITEM, scalefactor/5.5, 415); + bshape(shHourglass, PPR::ITEM, scalefactor/3.0 /*1250*/, 416); wormscale = WDIM == 3 ? 3 : 1; @@ -2418,6 +2419,30 @@ NEWSHAPE, 413, 1,1, 0.0324, -0.1844, 0.1676, -0.1844, 0.0684, -0.078, 0.1292, -0 NEWSHAPE, 414, 1, 2, 0.166, 0, 0.619, 0.186, 0.619, 0.348, 0.13, 0.171, -0.161, 0.129, 0.04, 0.254, -0.038, 0.339, -0.32, 0.186, -0.368, 0.078, -0.467, 0.138, -0.569, 0.141, -0.659, 0.081, -0.674, 0.087, -0.7, 0, NEWSHAPE, 415, 1, 1, 0.166, 0, 0.619, 0.186, 0.619, 0.348, 0.13, 0.171, -0.161, 0.129, 0.04, 0.254, -0.038, 0.339, -0.32, 0.186, -0.368, 0.078, -0.467, 0.138, -0.569, 0.141, -0.659, 0.081, -0.674, 0.087, -0.7, 0, +// shHourglass +#define x (-0.2) +#define y (-0.2) +NEWSHAPE, 416, 1,2, +0.065+x, +0.244+y, +0.065+x, + 0.366+y, +0.095+x, + 0.366+y, +0.095+x, + 0.348+y, +0.132+x, + 0.349+y, +0.171+x, + 0.342+y, +0.198+x, + 0.327+y, +0.244+x, + 0.269+y, + +#undef x +#undef y + NEWSHAPE, NEWSHAPE }; From da822fc4e9e96257d7a73e5afa8c9271614b4e43 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Tue, 13 Sep 2022 10:58:18 -0700 Subject: [PATCH 39/63] Make into full hourglass. --- polygons.cpp | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/polygons.cpp b/polygons.cpp index 96b25bb9..3bf900f4 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1257,7 +1257,7 @@ void geometry_information::prepare_shapes() { bshape(shLightningBolt, PPR::ITEM, scalefactor/1.5, 413); bshape(shHumanoid, PPR::ITEM, scalefactor/5.5, 414); bshape(shHalfHumanoid, PPR::ITEM, scalefactor/5.5, 415); - bshape(shHourglass, PPR::ITEM, scalefactor/3.0 /*1250*/, 416); + bshape(shHourglass, PPR::ITEM, scalefactor/2.0, 416); wormscale = WDIM == 3 ? 3 : 1; @@ -2420,25 +2420,25 @@ NEWSHAPE, 414, 1, 2, 0.166, 0, 0.619, 0.186, 0.619, 0.348, 0.13, 0.171, -0.161, NEWSHAPE, 415, 1, 1, 0.166, 0, 0.619, 0.186, 0.619, 0.348, 0.13, 0.171, -0.161, 0.129, 0.04, 0.254, -0.038, 0.339, -0.32, 0.186, -0.368, 0.078, -0.467, 0.138, -0.569, 0.141, -0.659, 0.081, -0.674, 0.087, -0.7, 0, // shHourglass -#define x (-0.2) -#define y (-0.2) +#define x (-0.22) +#define y (-0.30) NEWSHAPE, 416, 1,2, -0.065+x, -0.244+y, -0.065+x, - 0.366+y, -0.095+x, - 0.366+y, -0.095+x, - 0.348+y, -0.132+x, - 0.349+y, -0.171+x, - 0.342+y, -0.198+x, - 0.327+y, -0.244+x, - 0.269+y, +0.065+x, 0.244+y, +0.065+x, 0.366+y, +0.095+x, 0.366+y, +0.095+x, 0.348+y, +0.132+x, 0.349+y, +0.171+x, 0.342+y, +0.198+x, 0.327+y, +0.244+x, 0.269+y, +-0.244-x, -0.269-y, +-0.198-x, -0.327-y, +-0.171-x, -0.342-y, +-0.132-x, -0.349-y, +-0.095-x, -0.348-y, +-0.095-x, -0.366-y, +-0.065-x, -0.366-y, +-0.065-x, -0.244-y, #undef x #undef y From 45207e3ba70a7adf5c83414c7ca2f936da452f5e Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Tue, 13 Sep 2022 11:02:57 -0700 Subject: [PATCH 40/63] Scale hourglass horizontally. --- polygons.cpp | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/polygons.cpp b/polygons.cpp index 3bf900f4..b56d00f2 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -2422,26 +2422,28 @@ NEWSHAPE, 415, 1, 1, 0.166, 0, 0.619, 0.186, 0.619, 0.348, 0.13, 0.171, -0.161, // shHourglass #define x (-0.22) #define y (-0.30) +#define ysc (1.3) NEWSHAPE, 416, 1,2, -0.065+x, 0.244+y, -0.065+x, 0.366+y, -0.095+x, 0.366+y, -0.095+x, 0.348+y, -0.132+x, 0.349+y, -0.171+x, 0.342+y, -0.198+x, 0.327+y, -0.244+x, 0.269+y, --0.244-x, -0.269-y, --0.198-x, -0.327-y, --0.171-x, -0.342-y, --0.132-x, -0.349-y, --0.095-x, -0.348-y, --0.095-x, -0.366-y, --0.065-x, -0.366-y, --0.065-x, -0.244-y, +0.065+x, ysc*(0.244+y), +0.065+x, ysc*(0.366+y), +0.095+x, ysc*(0.366+y), +0.095+x, ysc*(0.348+y), +0.132+x, ysc*(0.349+y), +0.171+x, ysc*(0.342+y), +0.198+x, ysc*(0.327+y), +0.244+x, ysc*(0.269+y), +-0.244-x, ysc*(-0.269-y), +-0.198-x, ysc*(-0.327-y), +-0.171-x, ysc*(-0.342-y), +-0.132-x, ysc*(-0.349-y), +-0.095-x, ysc*(-0.348-y), +-0.095-x, ysc*(-0.366-y), +-0.065-x, ysc*(-0.366-y), +-0.065-x, ysc*(-0.244-y), #undef x #undef y +#undef ysc NEWSHAPE, NEWSHAPE }; From 92fc237a3ef0b0e8d47eb453e2c4dcd9c44ee9d7 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Tue, 13 Sep 2022 11:18:59 -0700 Subject: [PATCH 41/63] Simplify arithmetic for points in the hourglass shape. --- polygons.cpp | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) diff --git a/polygons.cpp b/polygons.cpp index b56d00f2..ef28b751 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -2420,30 +2420,8 @@ NEWSHAPE, 414, 1, 2, 0.166, 0, 0.619, 0.186, 0.619, 0.348, 0.13, 0.171, -0.161, NEWSHAPE, 415, 1, 1, 0.166, 0, 0.619, 0.186, 0.619, 0.348, 0.13, 0.171, -0.161, 0.129, 0.04, 0.254, -0.038, 0.339, -0.32, 0.186, -0.368, 0.078, -0.467, 0.138, -0.569, 0.141, -0.659, 0.081, -0.674, 0.087, -0.7, 0, // shHourglass -#define x (-0.22) -#define y (-0.30) -#define ysc (1.3) -NEWSHAPE, 416, 1,2, -0.065+x, ysc*(0.244+y), -0.065+x, ysc*(0.366+y), -0.095+x, ysc*(0.366+y), -0.095+x, ysc*(0.348+y), -0.132+x, ysc*(0.349+y), -0.171+x, ysc*(0.342+y), -0.198+x, ysc*(0.327+y), -0.244+x, ysc*(0.269+y), --0.244-x, ysc*(-0.269-y), --0.198-x, ysc*(-0.327-y), --0.171-x, ysc*(-0.342-y), --0.132-x, ysc*(-0.349-y), --0.095-x, ysc*(-0.348-y), --0.095-x, ysc*(-0.366-y), --0.065-x, ysc*(-0.366-y), --0.065-x, ysc*(-0.244-y), - -#undef x -#undef y -#undef ysc +NEWSHAPE, 416, 1, 2, -0.155, -0.072, -0.155, 0.085, -0.125, 0.085, -0.125, 0.062, -0.088, 0.063, -0.049, 0.054, -0.022, 0.035, 0.024, -0.040, -0.024, 0.040, 0.022, -0.035, 0.049, -0.054, 0.088, -0.063, 0.125, -0.062, 0.125, -0.085, 0.155, -0.085, 0.155, 0.072, + NEWSHAPE, NEWSHAPE }; From 2933b256e07fc410075d7c09844fa6082370c79d Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Wed, 14 Sep 2022 18:11:52 -0700 Subject: [PATCH 42/63] Use disk segments for Orbs of Vaulting & Phasing. --- geometry.cpp | 2 +- graph.cpp | 7 +++++-- polygons.cpp | 4 ++++ 3 files changed, 10 insertions(+), 3 deletions(-) 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) From df6f9eb86a73ef48a8ce2555984cd4d5f23b9da3 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Wed, 14 Sep 2022 18:23:43 -0700 Subject: [PATCH 43/63] Single eccentric disk for the Orb of Discord. --- graph.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/graph.cpp b/graph.cpp index 75b1091a..bec96f92 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1126,7 +1126,7 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (it == itOrbGravity) ? &cgi.shTinyArrow : (it == itOrbSafety || it == itOrbFreedom || it == itOrbRecall) ? &cgi.shDiskSq : (it == itOrbEnergy) ? &cgi.shHalfDisk : - (it == itOrbChoice || it == itOrbMirror || it == itOrbMagnetism) ? &cgi.shEccentricDisk : + (it == itOrbChoice || it == itOrbMirror || it == itOrbMagnetism || it == itOrbDiscord) ? &cgi.shEccentricDisk : (it == itOrbPsi || it == itOrbSide3) ? &cgi.shDiskS : (it == itOrbPurity) ? &cgi.shSmallEgg : (it == itOrbLightning) ? &cgi.shLightningBolt : @@ -1137,11 +1137,9 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int queuepolyat(Vit, cgi.shDisk, dark, prio); if (shape) queuepolyat(Vit, *shape, (it == itOrbInvis || it == itOrbTeleport) ? 0x20 : 0x80, prio); - if (it == itOrbSide1 || shape == &cgi.shEccentricDisk) + if (it == itOrbSide1 || (shape == &cgi.shEccentricDisk && it != itOrbDiscord)) queuepolyat(Vit*Mirror, *shape, 0x80, prio); - if (it == itOrbEnergy) - queuepolyat(Vit*Mirror, *shape, col, prio); - if (it == itOrbPhasing || it == itOrbDash) + if (it == itOrbPhasing || it == itOrbDash || it == itOrbEnergy) queuepolyat(Vit*Mirror, *shape, col, prio); if (it == itOrbIntensity || it == itOrbImpact) queuepolyat(Vit, cgi.shDiskM, 0x80, prio); From d0273d3ed6fba2f8e0991212d721de0839c88e82 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Wed, 14 Sep 2022 21:32:36 -0700 Subject: [PATCH 44/63] Heptagon + heptagram for the Orb of Summoning. --- geometry.cpp | 1 + graph.cpp | 4 ++++ polygons.cpp | 7 +++++++ 3 files changed, 12 insertions(+) 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); From 048ad9a03099acb995c2d176b9ca0f5e049ed39e Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Thu, 15 Sep 2022 16:02:27 -0700 Subject: [PATCH 45/63] Use a pirate hook in the Orb of Space. --- geometry.cpp | 2 +- graph.cpp | 1 + polygons.cpp | 8 ++++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/geometry.cpp b/geometry.cpp index 412e9111..f23bfec0 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -300,7 +300,7 @@ hpcshape shBook, shBookCover, shGrail, shBoatOuter, shBoatInner, shCompass1, shCompass2, shCompass3, shKnife, shTongue, shFlailMissile, shTrapArrow, - shPirateHook, shPirateHood, shEyepatch, shPirateX, + shPirateHook, shSmallPirateHook, shPirateHood, shEyepatch, shPirateX, // shScratch, shHeptaMarker, shSnowball, shHugeDisk, shSun, shNightStar, shEuclideanSky, shSkeletonBody, shSkull, shSkullEyes, shFatBody, shWaterElemental, diff --git a/graph.cpp b/graph.cpp index 309547e2..bf6bac9a 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1130,6 +1130,7 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (it == itOrbGravity) ? &cgi.shTinyArrow : (it == itOrbSafety || it == itOrbFreedom || it == itOrbRecall) ? &cgi.shDiskSq : (it == itOrbEnergy) ? &cgi.shHalfDisk : + (it == itOrbSpace) ? &cgi.shSmallPirateHook : (it == itOrbChoice || it == itOrbMirror || it == itOrbMagnetism || it == itOrbDiscord) ? &cgi.shEccentricDisk : (it == itOrbPsi || it == itOrbSide3) ? &cgi.shDiskS : (it == itOrbPurity) ? &cgi.shSmallEgg : diff --git a/polygons.cpp b/polygons.cpp index e12a95d0..a68496be 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1416,6 +1416,7 @@ void geometry_information::prepare_shapes() { bshape(shFerocityF, PPR::MONSTER_WPN, scalefactor, 362); bshape(shPKnife, PPR::MONSTER_WPN, scalefactor, 91); bshape(shPirateHook, PPR::MONSTER_WPN, scalefactor, 92); + bshape(shSmallPirateHook, PPR::MONSTER_WPN, scalefactor/2, 417); bshape(shSabre, PPR::MONSTER_WPN, scalefactor, 93); bshape(shHedgehogBlade, PPR::MONSTER_WPN, scalefactor, 94); bshape(shSmallHedgehogBlade, PPR::MONSTER_WPN, scalefactor/2, 406); @@ -2433,6 +2434,13 @@ NEWSHAPE, 415, 1, 1, 0.166, 0, 0.619, 0.186, 0.619, 0.348, 0.13, 0.171, -0.161, // shHourglass NEWSHAPE, 416, 1, 2, -0.155, -0.072, -0.155, 0.085, -0.125, 0.085, -0.125, 0.062, -0.088, 0.063, -0.049, 0.054, -0.022, 0.035, 0.024, -0.040, -0.024, 0.040, 0.022, -0.035, 0.049, -0.054, 0.088, -0.063, 0.125, -0.062, 0.125, -0.085, 0.155, -0.085, 0.155, 0.072, +// shSmallPirateHook (1x1) +#define x (-0.1) +#define y (-0.15) +NEWSHAPE, 417, 1,1, 0.025637+x,0.290334+y, 0.015893+x,0.212083+y, 0.070681+x,0.208634+y, 0.078764+x,0.213716+y, 0.092820+x,0.214478+y, 0.128742+x,0.099394+y, 0.114620+x,0.096368+y, 0.104002+x,0.089501+y, 0.096284+x,0.072719+y, 0.093155+x,0.050966+y, 0.099066+x,0.033609+y, 0.110446+x,0.021946+y, 0.127291+x,0.014728+y, 0.145718+x,0.008586+y, 0.167517+x,0.008308+y, 0.156477+x,0.015183+y, 0.140613+x,0.023565+y, 0.132241+x,0.028989+y, 0.118961+x,0.034720+y, 0.108990+x,0.048739+y, 0.107378+x,0.058592+y, 0.115339+x,0.077749+y, 0.131027+x,0.084323+y, 0.151797+x,0.088283+y, 0.113111+x,0.234773+y, 0.104917+x,0.253698+y, 0.105424+x,0.258064+y, 0.096993+x,0.264198+y, 0.089213+x,0.264464+y, 0.087585+x,0.273426+y, 0.080433+x,0.279698+y, 0.072806+x,0.281526+y, +#undef x +#undef y + NEWSHAPE, NEWSHAPE }; From fabf0e3eb066b1a25a542bd2689824352e76c4e7 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Thu, 15 Sep 2022 16:24:05 -0700 Subject: [PATCH 46/63] Clean up the numbers for the small hook. --- polygons.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/polygons.cpp b/polygons.cpp index a68496be..fbe6c9bf 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1416,7 +1416,7 @@ void geometry_information::prepare_shapes() { bshape(shFerocityF, PPR::MONSTER_WPN, scalefactor, 362); bshape(shPKnife, PPR::MONSTER_WPN, scalefactor, 91); bshape(shPirateHook, PPR::MONSTER_WPN, scalefactor, 92); - bshape(shSmallPirateHook, PPR::MONSTER_WPN, scalefactor/2, 417); + bshape(shSmallPirateHook, PPR::MONSTER_WPN, scalefactor, 417); bshape(shSabre, PPR::MONSTER_WPN, scalefactor, 93); bshape(shHedgehogBlade, PPR::MONSTER_WPN, scalefactor, 94); bshape(shSmallHedgehogBlade, PPR::MONSTER_WPN, scalefactor/2, 406); @@ -2435,11 +2435,7 @@ NEWSHAPE, 415, 1, 1, 0.166, 0, 0.619, 0.186, 0.619, 0.348, 0.13, 0.171, -0.161, NEWSHAPE, 416, 1, 2, -0.155, -0.072, -0.155, 0.085, -0.125, 0.085, -0.125, 0.062, -0.088, 0.063, -0.049, 0.054, -0.022, 0.035, 0.024, -0.040, -0.024, 0.040, 0.022, -0.035, 0.049, -0.054, 0.088, -0.063, 0.125, -0.062, 0.125, -0.085, 0.155, -0.085, 0.155, 0.072, // shSmallPirateHook (1x1) -#define x (-0.1) -#define y (-0.15) -NEWSHAPE, 417, 1,1, 0.025637+x,0.290334+y, 0.015893+x,0.212083+y, 0.070681+x,0.208634+y, 0.078764+x,0.213716+y, 0.092820+x,0.214478+y, 0.128742+x,0.099394+y, 0.114620+x,0.096368+y, 0.104002+x,0.089501+y, 0.096284+x,0.072719+y, 0.093155+x,0.050966+y, 0.099066+x,0.033609+y, 0.110446+x,0.021946+y, 0.127291+x,0.014728+y, 0.145718+x,0.008586+y, 0.167517+x,0.008308+y, 0.156477+x,0.015183+y, 0.140613+x,0.023565+y, 0.132241+x,0.028989+y, 0.118961+x,0.034720+y, 0.108990+x,0.048739+y, 0.107378+x,0.058592+y, 0.115339+x,0.077749+y, 0.131027+x,0.084323+y, 0.151797+x,0.088283+y, 0.113111+x,0.234773+y, 0.104917+x,0.253698+y, 0.105424+x,0.258064+y, 0.096993+x,0.264198+y, 0.089213+x,0.264464+y, 0.087585+x,0.273426+y, 0.080433+x,0.279698+y, 0.072806+x,0.281526+y, -#undef x -#undef y +NEWSHAPE, 417, 1, 1, -0.037181, 0.070167, -0.042053, 0.031041, -0.014659, 0.029317, -0.010618, 0.031858, -0.003590, 0.032239, 0.014371, -0.025303, 0.007310, -0.026816, 0.002001, -0.030249, -0.001858, -0.038640, -0.003422, -0.049517, -0.000467, -0.058195, 0.005223, -0.064027, 0.013645, -0.067636, 0.022859, -0.070707, 0.033758, -0.070846, 0.028238, -0.067408, 0.020306, -0.063217, 0.016120, -0.060505, 0.009480, -0.057640, 0.004495, -0.050630, 0.003689, -0.045704, 0.007669, -0.036125, 0.015513, -0.032838, 0.025898, -0.030858, 0.006555, 0.042386, 0.002458, 0.051849, 0.002712, 0.054032, -0.001503, 0.057099, -0.005393, 0.057232, -0.006207, 0.061713, -0.009783, 0.064849, -0.013597, 0.065763, NEWSHAPE, NEWSHAPE From d2c4382e14825f8ccf636f7311ba2db78088ea48 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Fri, 16 Sep 2022 12:13:20 -0700 Subject: [PATCH 47/63] First draft of shield shape. --- geometry.cpp | 3 ++- graph.cpp | 1 + polygons.cpp | 9 +++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/geometry.cpp b/geometry.cpp index f23bfec0..efb01c52 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -342,7 +342,8 @@ hpcshape shDodeca, shSmallerDodeca, - shLightningBolt, shHumanoid, shHalfHumanoid, shHourglass; + shLightningBolt, shHumanoid, shHalfHumanoid, shHourglass, + shShield; hpcshape shFrogRearFoot, shFrogFrontFoot, shFrogRearLeg, shFrogFrontLeg, shFrogRearLeg2, shFrogBody, shFrogEye, shFrogStripe, shFrogJumpFoot, shFrogJumpLeg, shSmallFrogRearFoot, shSmallFrogFrontFoot, shSmallFrogRearLeg, shSmallFrogFrontLeg, shSmallFrogRearLeg2, shSmallFrogBody; diff --git a/graph.cpp b/graph.cpp index bf6bac9a..92c03c4b 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1135,6 +1135,7 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (it == itOrbPsi || it == itOrbSide3) ? &cgi.shDiskS : (it == itOrbPurity) ? &cgi.shSmallEgg : (it == itOrbLightning) ? &cgi.shLightningBolt : + (it == itOrbShield) ? &cgi.shShield : (it == itOrbTime) ? &cgi.shHourglass : (it == itOrbIllusion || it == itOrbInvis || it == itOrbTeleport) ? &cgi.shHumanoid : (it == itOrbPhasing || it == itOrbDash) ? &cgi.shDiskSegment : diff --git a/polygons.cpp b/polygons.cpp index fbe6c9bf..78f38333 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1269,6 +1269,7 @@ void geometry_information::prepare_shapes() { bshape(shHumanoid, PPR::ITEM, scalefactor/5.5, 414); bshape(shHalfHumanoid, PPR::ITEM, scalefactor/5.5, 415); bshape(shHourglass, PPR::ITEM, scalefactor/2.0, 416); + bshape(shShield, PPR::ITEM, scalefactor/600, 418); wormscale = WDIM == 3 ? 3 : 1; @@ -2437,6 +2438,14 @@ NEWSHAPE, 416, 1, 2, -0.155, -0.072, -0.155, 0.085, -0.125, 0.085, -0.125, 0.062 // shSmallPirateHook (1x1) NEWSHAPE, 417, 1, 1, -0.037181, 0.070167, -0.042053, 0.031041, -0.014659, 0.029317, -0.010618, 0.031858, -0.003590, 0.032239, 0.014371, -0.025303, 0.007310, -0.026816, 0.002001, -0.030249, -0.001858, -0.038640, -0.003422, -0.049517, -0.000467, -0.058195, 0.005223, -0.064027, 0.013645, -0.067636, 0.022859, -0.070707, 0.033758, -0.070846, 0.028238, -0.067408, 0.020306, -0.063217, 0.016120, -0.060505, 0.009480, -0.057640, 0.004495, -0.050630, 0.003689, -0.045704, 0.007669, -0.036125, 0.015513, -0.032838, 0.025898, -0.030858, 0.006555, 0.042386, 0.002458, 0.051849, 0.002712, 0.054032, -0.001503, 0.057099, -0.005393, 0.057232, -0.006207, 0.061713, -0.009783, 0.064849, -0.013597, 0.065763, +// shShield +#define x (-100) +#define y (-175) +NEWSHAPE, 418, 1, 1, +96.7+x,211+y, 108+x,204.7+y, 125+x,201+y, 140.3+x,204.7+y, 159.6+x,211.4+y, +158.5+x,190.3+y, 154.8+x,171.6+y, 145.7+x,147+y, 138.5+x,130+y, 116+x,116.3+y, 99.4+x,106+y, +#undef x +#undef y NEWSHAPE, NEWSHAPE }; From 9018d3217316e80310df4dcecfd27cac4fefe4eb Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Fri, 16 Sep 2022 12:19:49 -0700 Subject: [PATCH 48/63] Second draft of shShield. --- polygons.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/polygons.cpp b/polygons.cpp index 78f38333..34c1d8bc 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1269,7 +1269,7 @@ void geometry_information::prepare_shapes() { bshape(shHumanoid, PPR::ITEM, scalefactor/5.5, 414); bshape(shHalfHumanoid, PPR::ITEM, scalefactor/5.5, 415); bshape(shHourglass, PPR::ITEM, scalefactor/2.0, 416); - bshape(shShield, PPR::ITEM, scalefactor/600, 418); + bshape(shShield, PPR::ITEM, scalefactor/650, 418); wormscale = WDIM == 3 ? 3 : 1; @@ -2441,9 +2441,18 @@ NEWSHAPE, 417, 1, 1, -0.037181, 0.070167, -0.042053, 0.031041, -0.014659, 0.0293 // shShield #define x (-100) #define y (-175) -NEWSHAPE, 418, 1, 1, -96.7+x,211+y, 108+x,204.7+y, 125+x,201+y, 140.3+x,204.7+y, 159.6+x,211.4+y, -158.5+x,190.3+y, 154.8+x,171.6+y, 145.7+x,147+y, 138.5+x,130+y, 116+x,116.3+y, 99.4+x,106+y, +NEWSHAPE, 418, 1,2, +211+y, 96.7+x, +204.7+y, 108+x, +201+y, 125+x, +204.7+y, 140.3+x, +211.4+y, 159.6+x, +190.3+y, 158.5+x, +171.6+y, 154.8+x, +147+y, 145.7+x, +130+y, 138.5+x, +116.3+y, 116+x, +106+y, 99.4+x, #undef x #undef y From ae89d7359867bbd966ebcfef6b8d5cf9af18aa12 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Fri, 16 Sep 2022 12:32:26 -0700 Subject: [PATCH 49/63] shShield, mk IV. --- polygons.cpp | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/polygons.cpp b/polygons.cpp index 34c1d8bc..e9545bb5 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -2442,9 +2442,25 @@ NEWSHAPE, 417, 1, 1, -0.037181, 0.070167, -0.042053, 0.031041, -0.014659, 0.0293 #define x (-100) #define y (-175) NEWSHAPE, 418, 1,2, -211+y, 96.7+x, -204.7+y, 108+x, -201+y, 125+x, +211+y, 96.2+x, +203+y, 107+x, +197+y, 122+x, +198.8+y,134+x, +212+y, 160+x, + +194.6+y, 160.1+x, +178+y, 155+x, +163.6+y, 152+x, +143+y, 144.6+x, +131.8+y, 138+x, +//121+y, 135.8+x, +123.2+y, 127+x, +114.7+y, 110.4+x, +115+y, 96.5+x, + + + +/* 204.7+y, 140.3+x, 211.4+y, 159.6+x, 190.3+y, 158.5+x, @@ -2453,6 +2469,7 @@ NEWSHAPE, 418, 1,2, 130+y, 138.5+x, 116.3+y, 116+x, 106+y, 99.4+x, +*/ #undef x #undef y From 22e1799ab32f7f79b30de6b1df74d94ae6f6c531 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Fri, 16 Sep 2022 12:49:04 -0700 Subject: [PATCH 50/63] Clean up the shShield numerics. --- polygons.cpp | 36 ++---------------------------------- 1 file changed, 2 insertions(+), 34 deletions(-) diff --git a/polygons.cpp b/polygons.cpp index e9545bb5..6f724d16 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1269,7 +1269,7 @@ void geometry_information::prepare_shapes() { bshape(shHumanoid, PPR::ITEM, scalefactor/5.5, 414); bshape(shHalfHumanoid, PPR::ITEM, scalefactor/5.5, 415); bshape(shHourglass, PPR::ITEM, scalefactor/2.0, 416); - bshape(shShield, PPR::ITEM, scalefactor/650, 418); + bshape(shShield, PPR::ITEM, scalefactor, 418); wormscale = WDIM == 3 ? 3 : 1; @@ -2439,39 +2439,7 @@ NEWSHAPE, 416, 1, 2, -0.155, -0.072, -0.155, 0.085, -0.125, 0.085, -0.125, 0.062 NEWSHAPE, 417, 1, 1, -0.037181, 0.070167, -0.042053, 0.031041, -0.014659, 0.029317, -0.010618, 0.031858, -0.003590, 0.032239, 0.014371, -0.025303, 0.007310, -0.026816, 0.002001, -0.030249, -0.001858, -0.038640, -0.003422, -0.049517, -0.000467, -0.058195, 0.005223, -0.064027, 0.013645, -0.067636, 0.022859, -0.070707, 0.033758, -0.070846, 0.028238, -0.067408, 0.020306, -0.063217, 0.016120, -0.060505, 0.009480, -0.057640, 0.004495, -0.050630, 0.003689, -0.045704, 0.007669, -0.036125, 0.015513, -0.032838, 0.025898, -0.030858, 0.006555, 0.042386, 0.002458, 0.051849, 0.002712, 0.054032, -0.001503, 0.057099, -0.005393, 0.057232, -0.006207, 0.061713, -0.009783, 0.064849, -0.013597, 0.065763, // shShield -#define x (-100) -#define y (-175) -NEWSHAPE, 418, 1,2, -211+y, 96.2+x, -203+y, 107+x, -197+y, 122+x, -198.8+y,134+x, -212+y, 160+x, - -194.6+y, 160.1+x, -178+y, 155+x, -163.6+y, 152+x, -143+y, 144.6+x, -131.8+y, 138+x, -//121+y, 135.8+x, -123.2+y, 127+x, -114.7+y, 110.4+x, -115+y, 96.5+x, - - - -/* -204.7+y, 140.3+x, -211.4+y, 159.6+x, -190.3+y, 158.5+x, -171.6+y, 154.8+x, -147+y, 145.7+x, -130+y, 138.5+x, -116.3+y, 116+x, -106+y, 99.4+x, -*/ -#undef x -#undef y +NEWSHAPE, 418, 1, 2, 0.055384, -0.005846, 0.043076, 0.010769, 0.033846, 0.033846, 0.036615, 0.052307, 0.056923, 0.092307, 0.030153, 0.092461, 0.004615, 0.084615, -0.017538, 0.080000, -0.049230, 0.068615, -0.066461, 0.058461, -0.079692, 0.041538, -0.092769, 0.016000, -0.092307, -0.005384, NEWSHAPE, NEWSHAPE }; From 1ad6b7ebe96032140771965a71c12fa8327c4ee1 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Fri, 16 Sep 2022 19:24:01 -0700 Subject: [PATCH 51/63] Orbs of Air and Empathy. --- geometry.cpp | 2 +- graph.cpp | 5 ++++- polygons.cpp | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/geometry.cpp b/geometry.cpp index efb01c52..eec9aaa6 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -343,7 +343,7 @@ hpcshape shDodeca, shSmallerDodeca, shLightningBolt, shHumanoid, shHalfHumanoid, shHourglass, - shShield; + shShield, shSmallFan; hpcshape shFrogRearFoot, shFrogFrontFoot, shFrogRearLeg, shFrogFrontLeg, shFrogRearLeg2, shFrogBody, shFrogEye, shFrogStripe, shFrogJumpFoot, shFrogJumpLeg, shSmallFrogRearFoot, shSmallFrogFrontFoot, shSmallFrogRearLeg, shSmallFrogFrontLeg, shSmallFrogRearLeg2, shSmallFrogBody; diff --git a/graph.cpp b/graph.cpp index 92c03c4b..a9727e39 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1112,6 +1112,8 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int queuepolyat(Vit, cgi.shHalfHumanoid, dark, prio); queuepolyat(Vit*Mirror, cgi.shHalfHumanoid, 0xFF, prio); } + //else if (it == itOrbAir) + // queuepolyat(Vit, cgi.shSmallFan, dark, prio); else if (it == itOrbFlash) queuepolyat(Vit, cgi.shFlash, dark, prio); else if (it == itOrbMatter || it == itOrbStone) @@ -1131,12 +1133,13 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (it == itOrbSafety || it == itOrbFreedom || it == itOrbRecall) ? &cgi.shDiskSq : (it == itOrbEnergy) ? &cgi.shHalfDisk : (it == itOrbSpace) ? &cgi.shSmallPirateHook : - (it == itOrbChoice || it == itOrbMirror || it == itOrbMagnetism || it == itOrbDiscord) ? &cgi.shEccentricDisk : + (it == itOrbChoice || it == itOrbMirror || it == itOrbMagnetism || it == itOrbEmpathy || it == itOrbDiscord) ? &cgi.shEccentricDisk : (it == itOrbPsi || it == itOrbSide3) ? &cgi.shDiskS : (it == itOrbPurity) ? &cgi.shSmallEgg : (it == itOrbLightning) ? &cgi.shLightningBolt : (it == itOrbShield) ? &cgi.shShield : (it == itOrbTime) ? &cgi.shHourglass : + (it == itOrbAir) ? &cgi.shSmallFan : (it == itOrbIllusion || it == itOrbInvis || it == itOrbTeleport) ? &cgi.shHumanoid : (it == itOrbPhasing || it == itOrbDash) ? &cgi.shDiskSegment : NULL; diff --git a/polygons.cpp b/polygons.cpp index 6f724d16..0f46d193 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1266,6 +1266,7 @@ void geometry_information::prepare_shapes() { bshape(shTreat, PPR::ITEM, scalefactor, 253); bshape(shSmallTreat, PPR::ITEM, scalefactor/1.5, 253); bshape(shLightningBolt, PPR::ITEM, scalefactor/1.5, 413); + bshape(shSmallFan, PPR::ITEM, scalefactor/3, 59); bshape(shHumanoid, PPR::ITEM, scalefactor/5.5, 414); bshape(shHalfHumanoid, PPR::ITEM, scalefactor/5.5, 415); bshape(shHourglass, PPR::ITEM, scalefactor/2.0, 416); From 371a3240851c0529fcece9c43faeae2f42f99d2c Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Fri, 16 Sep 2022 21:59:23 -0700 Subject: [PATCH 52/63] Orb of the Woods and part of a tree icon. --- geometry.cpp | 2 +- graph.cpp | 3 +-- polygons.cpp | 7 +++++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/geometry.cpp b/geometry.cpp index eec9aaa6..36fdb842 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -343,7 +343,7 @@ hpcshape shDodeca, shSmallerDodeca, shLightningBolt, shHumanoid, shHalfHumanoid, shHourglass, - shShield, shSmallFan; + shShield, shSmallFan, shTreeIcon; hpcshape shFrogRearFoot, shFrogFrontFoot, shFrogRearLeg, shFrogFrontLeg, shFrogRearLeg2, shFrogBody, shFrogEye, shFrogStripe, shFrogJumpFoot, shFrogJumpLeg, shSmallFrogRearFoot, shSmallFrogFrontFoot, shSmallFrogRearLeg, shSmallFrogFrontLeg, shSmallFrogRearLeg2, shSmallFrogBody; diff --git a/graph.cpp b/graph.cpp index a9727e39..05e55ab9 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1112,8 +1112,6 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int queuepolyat(Vit, cgi.shHalfHumanoid, dark, prio); queuepolyat(Vit*Mirror, cgi.shHalfHumanoid, 0xFF, prio); } - //else if (it == itOrbAir) - // queuepolyat(Vit, cgi.shSmallFan, dark, prio); else if (it == itOrbFlash) queuepolyat(Vit, cgi.shFlash, dark, prio); else if (it == itOrbMatter || it == itOrbStone) @@ -1140,6 +1138,7 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (it == itOrbShield) ? &cgi.shShield : (it == itOrbTime) ? &cgi.shHourglass : (it == itOrbAir) ? &cgi.shSmallFan : + (it == itOrbWoods) ? &cgi.shTreeIcon : (it == itOrbIllusion || it == itOrbInvis || it == itOrbTeleport) ? &cgi.shHumanoid : (it == itOrbPhasing || it == itOrbDash) ? &cgi.shDiskSegment : NULL; diff --git a/polygons.cpp b/polygons.cpp index 0f46d193..39c94226 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1271,6 +1271,7 @@ void geometry_information::prepare_shapes() { bshape(shHalfHumanoid, PPR::ITEM, scalefactor/5.5, 415); bshape(shHourglass, PPR::ITEM, scalefactor/2.0, 416); bshape(shShield, PPR::ITEM, scalefactor, 418); + bshape(shTreeIcon, PPR::ITEM, scalefactor/1.7, 419); wormscale = WDIM == 3 ? 3 : 1; @@ -2442,6 +2443,12 @@ NEWSHAPE, 417, 1, 1, -0.037181, 0.070167, -0.042053, 0.031041, -0.014659, 0.0293 // shShield NEWSHAPE, 418, 1, 2, 0.055384, -0.005846, 0.043076, 0.010769, 0.033846, 0.033846, 0.036615, 0.052307, 0.056923, 0.092307, 0.030153, 0.092461, 0.004615, 0.084615, -0.017538, 0.080000, -0.049230, 0.068615, -0.066461, 0.058461, -0.079692, 0.041538, -0.092769, 0.016000, -0.092307, -0.005384, +// shTreeIcon +#define x (-.2) +#define y (-.220) +NEWSHAPE, 419, 1, 1, +0.210+x,0.045+y, 0.300+x,0.172+y, 0.270+x,0.176+y, 0.318+x,0.245+y, 0.274+x,0.250+y, 0.344+x,0.327+y, 0.230+x,0.330+y, 0.210+x,0.385+y, + NEWSHAPE, NEWSHAPE }; From 21a7c4f36514c44e4d2608b42c7609d3ef4cb11a Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Fri, 16 Sep 2022 22:12:27 -0700 Subject: [PATCH 53/63] Polish up the tree icon. --- polygons.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/polygons.cpp b/polygons.cpp index 39c94226..6366d4c5 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -2444,10 +2444,7 @@ NEWSHAPE, 417, 1, 1, -0.037181, 0.070167, -0.042053, 0.031041, -0.014659, 0.0293 NEWSHAPE, 418, 1, 2, 0.055384, -0.005846, 0.043076, 0.010769, 0.033846, 0.033846, 0.036615, 0.052307, 0.056923, 0.092307, 0.030153, 0.092461, 0.004615, 0.084615, -0.017538, 0.080000, -0.049230, 0.068615, -0.066461, 0.058461, -0.079692, 0.041538, -0.092769, 0.016000, -0.092307, -0.005384, // shTreeIcon -#define x (-.2) -#define y (-.220) -NEWSHAPE, 419, 1, 1, -0.210+x,0.045+y, 0.300+x,0.172+y, 0.270+x,0.176+y, 0.318+x,0.245+y, 0.274+x,0.250+y, 0.344+x,0.327+y, 0.230+x,0.330+y, 0.210+x,0.385+y, +NEWSHAPE, 419, 1, 2, -0.175, 0.010, -0.048, 0.100, -0.044, 0.070, 0.025, 0.118, 0.030, 0.074, 0.107, 0.144, 0.110, 0.030, 0.165, 0.010, NEWSHAPE, NEWSHAPE }; From f7e8818e01c5ff8f1e60704fe87bd2831b51427b Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sat, 17 Sep 2022 13:39:11 -0700 Subject: [PATCH 54/63] First draft of ivy leaf for Orb Of Nature. --- geometry.cpp | 2 +- graph.cpp | 1 + polygons.cpp | 17 +++++++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/geometry.cpp b/geometry.cpp index 36fdb842..0527f9d4 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -343,7 +343,7 @@ hpcshape shDodeca, shSmallerDodeca, shLightningBolt, shHumanoid, shHalfHumanoid, shHourglass, - shShield, shSmallFan, shTreeIcon; + shShield, shSmallFan, shTreeIcon, shLeafIcon; hpcshape shFrogRearFoot, shFrogFrontFoot, shFrogRearLeg, shFrogFrontLeg, shFrogRearLeg2, shFrogBody, shFrogEye, shFrogStripe, shFrogJumpFoot, shFrogJumpLeg, shSmallFrogRearFoot, shSmallFrogFrontFoot, shSmallFrogRearLeg, shSmallFrogFrontLeg, shSmallFrogRearLeg2, shSmallFrogBody; diff --git a/graph.cpp b/graph.cpp index 05e55ab9..e79c8f50 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1139,6 +1139,7 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int (it == itOrbTime) ? &cgi.shHourglass : (it == itOrbAir) ? &cgi.shSmallFan : (it == itOrbWoods) ? &cgi.shTreeIcon : + (it == itOrbNature) ? &cgi.shLeafIcon : (it == itOrbIllusion || it == itOrbInvis || it == itOrbTeleport) ? &cgi.shHumanoid : (it == itOrbPhasing || it == itOrbDash) ? &cgi.shDiskSegment : NULL; diff --git a/polygons.cpp b/polygons.cpp index 6366d4c5..a1712054 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1272,6 +1272,7 @@ void geometry_information::prepare_shapes() { bshape(shHourglass, PPR::ITEM, scalefactor/2.0, 416); bshape(shShield, PPR::ITEM, scalefactor, 418); bshape(shTreeIcon, PPR::ITEM, scalefactor/1.7, 419); + bshape(shLeafIcon, PPR::ITEM, scalefactor/10000, 420); wormscale = WDIM == 3 ? 3 : 1; @@ -2446,6 +2447,22 @@ NEWSHAPE, 418, 1, 2, 0.055384, -0.005846, 0.043076, 0.010769, 0.033846, 0.033846 // shTreeIcon NEWSHAPE, 419, 1, 2, -0.175, 0.010, -0.048, 0.100, -0.044, 0.070, 0.025, 0.118, 0.030, 0.074, 0.107, 0.144, 0.110, 0.030, 0.165, 0.010, +// shLeafIcon +#define x (-900) +#define y (-640) +NEWSHAPE, 420, 1, 1, +480+x,1600+y, +484+x,1623+y, 385+x,1400+y, 336+x,1023+y, + 470+x,750+y, + 567+x,660+y, +860+x,450+y, 1400+x,280+x, +1290+x,690+y, 1300+x,900+y, 1260+x,1315+y, 1130+x,1500+y, 725+x,1650+y, +539+x,1634+y, 594+x,1375+y, 897+x,1271+y, 644+x,1298+y, 781+x,1029+y, 1067+x,924+x, +979+x,710+y, 644+x,1095+y, 561+x,902+y, 605+x,1188+y, 490+x,1518+y, +480+x,1600+y, + + + NEWSHAPE, NEWSHAPE }; From 41e8466dada81cb49bb21fb9aed99bb5fa7925c5 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sat, 17 Sep 2022 13:45:41 -0700 Subject: [PATCH 55/63] Tweaking the ivy leaf. --- polygons.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/polygons.cpp b/polygons.cpp index a1712054..b4422ac9 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1272,7 +1272,7 @@ void geometry_information::prepare_shapes() { bshape(shHourglass, PPR::ITEM, scalefactor/2.0, 416); bshape(shShield, PPR::ITEM, scalefactor, 418); bshape(shTreeIcon, PPR::ITEM, scalefactor/1.7, 419); - bshape(shLeafIcon, PPR::ITEM, scalefactor/10000, 420); + bshape(shLeafIcon, PPR::ITEM, scalefactor/9000, 420); wormscale = WDIM == 3 ? 3 : 1; @@ -2448,8 +2448,8 @@ NEWSHAPE, 418, 1, 2, 0.055384, -0.005846, 0.043076, 0.010769, 0.033846, 0.033846 NEWSHAPE, 419, 1, 2, -0.175, 0.010, -0.048, 0.100, -0.044, 0.070, 0.025, 0.118, 0.030, 0.074, 0.107, 0.144, 0.110, 0.030, 0.165, 0.010, // shLeafIcon -#define x (-900) -#define y (-640) +#define x (-950) +#define y (-690) NEWSHAPE, 420, 1, 1, 480+x,1600+y, 484+x,1623+y, 385+x,1400+y, 336+x,1023+y, @@ -2457,7 +2457,7 @@ NEWSHAPE, 420, 1, 1, 567+x,660+y, 860+x,450+y, 1400+x,280+x, 1290+x,690+y, 1300+x,900+y, 1260+x,1315+y, 1130+x,1500+y, 725+x,1650+y, -539+x,1634+y, 594+x,1375+y, 897+x,1271+y, 644+x,1298+y, 781+x,1029+y, 1067+x,924+x, +539+x,1634+y, 594+x,1375+y, 1034+x,1294+y, /* 897+x,1271+y,*/ 644+x,1298+y, 781+x,1029+y, 1117+x,900+x, 979+x,710+y, 644+x,1095+y, 561+x,902+y, 605+x,1188+y, 490+x,1518+y, 480+x,1600+y, From 4d766655ba7c21bde421e6aad6ec47c67a7b529c Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sat, 17 Sep 2022 13:52:38 -0700 Subject: [PATCH 56/63] More ivy-leaf tweaking. --- polygons.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/polygons.cpp b/polygons.cpp index b4422ac9..37971ed9 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1272,7 +1272,7 @@ void geometry_information::prepare_shapes() { bshape(shHourglass, PPR::ITEM, scalefactor/2.0, 416); bshape(shShield, PPR::ITEM, scalefactor, 418); bshape(shTreeIcon, PPR::ITEM, scalefactor/1.7, 419); - bshape(shLeafIcon, PPR::ITEM, scalefactor/9000, 420); + bshape(shLeafIcon, PPR::ITEM, scalefactor/8000, 420); wormscale = WDIM == 3 ? 3 : 1; @@ -2449,15 +2449,15 @@ NEWSHAPE, 419, 1, 2, -0.175, 0.010, -0.048, 0.100, -0.044, 0.070, 0.025, 0.118, // shLeafIcon #define x (-950) -#define y (-690) +#define y (-810) NEWSHAPE, 420, 1, 1, 480+x,1600+y, 484+x,1623+y, 385+x,1400+y, 336+x,1023+y, 470+x,750+y, 567+x,660+y, -860+x,450+y, 1400+x,280+x, +860+x,450+y, 1400+x,280+y, 1290+x,690+y, 1300+x,900+y, 1260+x,1315+y, 1130+x,1500+y, 725+x,1650+y, -539+x,1634+y, 594+x,1375+y, 1034+x,1294+y, /* 897+x,1271+y,*/ 644+x,1298+y, 781+x,1029+y, 1117+x,900+x, +539+x,1634+y, 594+x,1375+y, 1034+x,1294+y, 644+x,1298+y, /* 781+x,1029+y, 1117+x,900+x, */ 979+x,710+y, 644+x,1095+y, 561+x,902+y, 605+x,1188+y, 490+x,1518+y, 480+x,1600+y, From f10751a7f0afec27c0e5766102b0219f1e02d536 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sat, 17 Sep 2022 14:06:30 -0700 Subject: [PATCH 57/63] Clean up shLeafIcon. --- polygons.cpp | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/polygons.cpp b/polygons.cpp index 37971ed9..b9a0164a 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -1272,7 +1272,7 @@ void geometry_information::prepare_shapes() { bshape(shHourglass, PPR::ITEM, scalefactor/2.0, 416); bshape(shShield, PPR::ITEM, scalefactor, 418); bshape(shTreeIcon, PPR::ITEM, scalefactor/1.7, 419); - bshape(shLeafIcon, PPR::ITEM, scalefactor/8000, 420); + bshape(shLeafIcon, PPR::ITEM, scalefactor, 420); wormscale = WDIM == 3 ? 3 : 1; @@ -2448,18 +2448,8 @@ NEWSHAPE, 418, 1, 2, 0.055384, -0.005846, 0.043076, 0.010769, 0.033846, 0.033846 NEWSHAPE, 419, 1, 2, -0.175, 0.010, -0.048, 0.100, -0.044, 0.070, 0.025, 0.118, 0.030, 0.074, 0.107, 0.144, 0.110, 0.030, 0.165, 0.010, // shLeafIcon -#define x (-950) -#define y (-810) NEWSHAPE, 420, 1, 1, -480+x,1600+y, -484+x,1623+y, 385+x,1400+y, 336+x,1023+y, - 470+x,750+y, - 567+x,660+y, -860+x,450+y, 1400+x,280+y, -1290+x,690+y, 1300+x,900+y, 1260+x,1315+y, 1130+x,1500+y, 725+x,1650+y, -539+x,1634+y, 594+x,1375+y, 1034+x,1294+y, 644+x,1298+y, /* 781+x,1029+y, 1117+x,900+x, */ -979+x,710+y, 644+x,1095+y, 561+x,902+y, 605+x,1188+y, 490+x,1518+y, -480+x,1600+y, +-0.05875, 0.09875, -0.05825, 0.101625, -0.070625, 0.07375, -0.07675, 0.026625, -0.06000, -0.00750, -0.047875, -0.01875, -0.01125, -0.04500, 0.05625, -0.06625, 0.04250, -0.01500, 0.04375, 0.01125, 0.03875, 0.063125, 0.02250, 0.08625, -0.028125, 0.10500, -0.051375, 0.10300, -0.04450, 0.070625, 0.01050, 0.06050, -0.03825, 0.06100, 0.003625, -0.01250, -0.03825, 0.035625, -0.048625, 0.01150, -0.043125, 0.04725, -0.05750, 0.08850, -0.05875, 0.09875, From c7f8cafc28c458de8f50da363761d74ff2427568 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sat, 17 Sep 2022 14:42:46 -0700 Subject: [PATCH 58/63] Use master's mymake.cpp --- mymake.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/mymake.cpp b/mymake.cpp index c7252f40..39cc4958 100644 --- a/mymake.cpp +++ b/mymake.cpp @@ -69,14 +69,12 @@ void set_linux() { linker = "g++ -rdynamic"; default_exec_name = "hyper"; if(sdlver == 2) { - opts = "-DFHS -DLINUX -I/usr/include/SDL2 -DCAP_GLEW=0"; + opts = "-DFHS -DLINUX -I/usr/include/SDL2"; libs = " -lSDL2 -lSDL2_ttf -lSDL2_mixer -lSDL2_gfx -lGLEW -lGL -lpng -rdynamic -lpthread -lz"; - libs = " -lSDL2 -lSDL2_ttf -lSDL2_mixer -lSDL2_gfx -lGL -lpng -rdynamic -lpthread -lz"; } else if(sdlver == 1) { - opts = "-DFHS -DLINUX -I/usr/include/SDL -DCAP_GLEW=0"; + opts = "-DFHS -DLINUX -I/usr/include/SDL"; libs = " -lSDL -lSDL_ttf -lSDL_mixer -lSDL_gfx -lGLEW -lGL -lpng -rdynamic -lpthread -lz"; - libs = " -lSDL -lSDL_ttf -lSDL_mixer -lSDL_gfx -lGL -lpng -rdynamic -lpthread -lz"; } else { opts = "-DFHS -DLINUX"; @@ -100,7 +98,6 @@ void set_mingw64() { linker = "g++"; default_exec_name = "hyper"; opts = "-DWINDOWS -DCAP_GLEW=1 -DCAP_PNG=1"; - opts = "-DWINDOWS -DCAP_GLEW=0 -DCAP_PNG=1"; libs = " hyper.res -lopengl32 -lSDL -lSDL_gfx -lSDL_mixer -lSDL_ttf -lpthread -lz -lglew32 -lpng"; setvbuf(stdout, NULL, _IONBF, 0); // MinGW is quirky with output buffering } From 2939191fa1573a0193460c627cdf4fdbbedd677d Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sat, 17 Sep 2022 14:44:50 -0700 Subject: [PATCH 59/63] =?UTF-8?q?Fix=20default=20lambda=20args=20&=C2=A0ex?= =?UTF-8?q?tra=20semicolon.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 3d-models.cpp | 2 +- reg3.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/3d-models.cpp b/3d-models.cpp index 1917f6eb..08e73380 100644 --- a/3d-models.cpp +++ b/3d-models.cpp @@ -1254,7 +1254,7 @@ hpcshape& geometry_information::generate_pipe(ld length, ld width, ePipeEnd endt const int MAX_X = 8; const int MAX_R = 20; - auto at = [&] (ld i, ld a, ld z = 1, ld s = 1) { + auto at = [&] (ld i, ld a, ld z, ld s) { a += 0.5; ld alpha = 360 * degree * a / MAX_R; hpcpush(xpush(i * length / MAX_X) * cspin(1, 2, alpha) * ypush0(width*z)); diff --git a/reg3.cpp b/reg3.cpp index 5bb5c008..b34e510f 100644 --- a/reg3.cpp +++ b/reg3.cpp @@ -1752,7 +1752,7 @@ EX namespace reg3 { auto m = dynamic_cast (currentmap); if(!m) throw hr_exception("get_size_of_fv incorrect"); return m->quotient_map->acells[aid]->type; - }; + } struct hrmap_sphere3 : hrmap_closed3 { From fb3c0e38b7be56c262f7d366face8c2aeeb2421b Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sat, 17 Sep 2022 14:49:10 -0700 Subject: [PATCH 60/63] Restore default args to "at" lambda. --- 3d-models.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3d-models.cpp b/3d-models.cpp index 08e73380..1917f6eb 100644 --- a/3d-models.cpp +++ b/3d-models.cpp @@ -1254,7 +1254,7 @@ hpcshape& geometry_information::generate_pipe(ld length, ld width, ePipeEnd endt const int MAX_X = 8; const int MAX_R = 20; - auto at = [&] (ld i, ld a, ld z, ld s) { + auto at = [&] (ld i, ld a, ld z = 1, ld s = 1) { a += 0.5; ld alpha = 360 * degree * a / MAX_R; hpcpush(xpush(i * length / MAX_X) * cspin(1, 2, alpha) * ypush0(width*z)); From d0564026d77713ac6b01a76ee0f44767e7e14e80 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sat, 17 Sep 2022 15:00:54 -0700 Subject: [PATCH 61/63] Small style cleanup. --- geometry.cpp | 2 +- graph.cpp | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/geometry.cpp b/geometry.cpp index 63716bf2..03cf0a24 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -259,7 +259,7 @@ hpcshape shTinyBird, shTinyShark, shEgg, shSmallEgg, shRing, shSpikedRing, shTargetRing, shSawRing, shGearRing, shPeaceRing, - shHeptaRing, shSpearRing, shLoveRing, shFrogRing, + shHeptaRing, shSpearRing, shLoveRing, shFrogRing, shPowerGearRing, shProtectiveRing, shTerraRing, shMoveRing, shReserved4, shMoonDisk, shDaisy, shSnowflake, shTriangle, shNecro, shStatue, shKey, shWindArrow, diff --git a/graph.cpp b/graph.cpp index 97a44b28..11176336 100644 --- a/graph.cpp +++ b/graph.cpp @@ -809,7 +809,6 @@ EX color_t orb_auxiliary_color(eItem it) { if(it == itOrbSide1) return 0x307080; if(it == itOrbDigging) return 0x606060; if(it == itOrbEnergy) return 0xFFFF80; - //if(it == itOrbPurity) return 0xFFD520; return iinf[it].color; } From d32772fd1e294861db38ade8b6233a7db7fc4cd5 Mon Sep 17 00:00:00 2001 From: Jacob Mandelson Date: Sat, 17 Sep 2022 15:08:09 -0700 Subject: [PATCH 62/63] Style fixes for polygons.cpp --- polygons.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/polygons.cpp b/polygons.cpp index b9a0164a..7f6aa737 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -548,13 +548,13 @@ void geometry_information::procedural_shapes() { bshape(shStar, PPR::ITEM); for(int t=0; t<=S84; t+=SD6) { hpcpush(ddi(t, zhexf*.2) * C0); - if(t != S84) hpcpush(ddi(t+3, zhexf*.6) * C0); + if(t != S84) hpcpush(ddi(t+3, zhexf*.6) * C0); } bshape(shFlash, PPR::ITEM); for(int t=0; t Date: Sat, 17 Sep 2022 15:21:18 -0700 Subject: [PATCH 63/63] Fix offsets for the shSmallHammerHead. --- polygons.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/polygons.cpp b/polygons.cpp index 7f6aa737..0133dc5b 100644 --- a/polygons.cpp +++ b/polygons.cpp @@ -2417,7 +2417,7 @@ NEWSHAPE, 405,1,2, -0.226885,0.018516, -0.212399,0.032471, -0.193062,0.020928, - NEWSHAPE, 409,1,1, -0.048707,0.225700, -0.042124,0.230376, -0.032941,0.233710, -0.026424,0.233978, -0.02268,0.229640, 0.047958,-0.201688, 0.041932,-0.211853, 0.038281,-0.216934, 0.029252,-0.216536, 0.018813,-0.210892, 0.012195,-0.202881, // shSmallHammerHead -NEWSHAPE, 410, 1, 1, 0.202167+x,-0.134605+y, 0.204591+x,-0.145446+y, 0.192856+x,-0.139999+y, 0.180908+x,-0.136821+y, 0.063679+x,-0.150430+y, 0.054862+x,-0.154571+y, 0.051985+x,-0.159521+y, 0.036546+x,-0.062257+y, 0.043529+x,-0.066187+y, 0.054300+x,-0.069873+y, 0.182749+x,-0.064458+y, 0.195918+x,-0.057169+y, 0.204973+x,-0.052339+y, 0.199643+x,-0.078121+y, 0.042703+x,-0.084239+y, 0.199470+x,-0.077992+y, 0.199531+x,-0.090084+y, 0.044591+x,-0.098658+y, 0.198774+x,-0.089982+y, 0.199787+x,-0.100708+y, 0.045748+x,-0.113148+y, 0.198272+x,-0.100502+y, 0.200147+x,-0.110605+y, 0.048127+x,-0.124053+y, 0.198630+x,-0.110398+y, 0.199672+x,-0.121163+y, 0.050049+x,-0.138713+y, 0.198913+x,-0.121059+y, +NEWSHAPE, 410, 1, 1, 0.102167, -0.184605, 0.104591, -0.195446, 0.092856, -0.189999, 0.080908, -0.186821, -0.036321, -0.200430, -0.045138, -0.204571, -0.048015, -0.209521, -0.063454, -0.112257, -0.056471, -0.116187, -0.045700, -0.119873, 0.082749, -0.114458, 0.095918, -0.107169, 0.104973, -0.102339, 0.099643, -0.128121, -0.057297, -0.134239, 0.099470, -0.127992, 0.099531, -0.140084, -0.055409, -0.148658, 0.098774, -0.139982, 0.099787, -0.150708, -0.054252, -0.163148, 0.098272, -0.150502, 0.100147, -0.160605, -0.051873, -0.174053, 0.098630, -0.160398, 0.099672, -0.171163, -0.049951, -0.188713, 0.098913, -0.171059, // shSmallBullHead NEWSHAPE, 411, 1, 2, 0.004622,-0.050250, -0.022393,-0.096839, -0.048261,-0.111332, -0.07182,-0.106443, -0.093094,-0.077841, -0.115158,-0.061865, -0.145038,-0.040355, -0.131374,-0.028054, -0.134834,-0.013460, -0.14853,-0.002240,