mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-02-23 06:20:09 +00:00
Orb icon updates
This commit is contained in:
parent
a3e6d79607
commit
1aa4242ace
16
content.cpp
16
content.cpp
@ -478,11 +478,11 @@ 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.")
|
"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,
|
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.")
|
"This orb can be used to move faster for some time.")
|
||||||
ITEM( 'o', 0x306000, "Orb of Life", itOrbLife, IC_ORB, ZERO | IF_SHMUPLIFE | IF_REVIVAL, RESERVED, osFriend,
|
ITEM( 'o', 0x90B090, "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.")
|
"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,
|
ITEM( 'o', 0x60D760, "Orb of Shielding", itOrbShield, IC_ORB, ZERO | IF_PROTECTION | IF_EMPATHY, RESERVED, osProtective,
|
||||||
"This orb can protect you from damage.")
|
"This orb can protect you from damage.")
|
||||||
ITEM( 'o', 0x00FF00, "Orb of Earth", itOrbDigging, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osTerraform,
|
ITEM( 'o', 0x606060, "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.")
|
"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,
|
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 "
|
"This orb lets you instantly move to another location on the map. Just click a location which "
|
||||||
@ -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,
|
ITEM( 'o', 0x306000, "Orb of Friendship", itOrbFriend, IC_ORB, ZERO | IF_SHMUPLIFE | IF_REVIVAL, RESERVED, osFriend,
|
||||||
"This Orb summons a friendly Bomberbird."
|
"This Orb summons a friendly Bomberbird."
|
||||||
)
|
)
|
||||||
ITEM( 'o', 0x0070C0, "Orb of Water", itOrbWater, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osTerraform,
|
ITEM( 'o', 0x000060, "Orb of Water", itOrbWater, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osTerraform,
|
||||||
"This Orb allows your boat to go against the current, "
|
"This Orb allows your boat to go against the current, "
|
||||||
"and also to go into the land, creating water on the way."
|
"and also to go into the land, creating water on the way."
|
||||||
)
|
)
|
||||||
@ -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, "
|
"This Orb creates a warped zone of radius 5 around you, "
|
||||||
"and also allows you to move diagonally in warped zones."
|
"and also allows you to move diagonally in warped zones."
|
||||||
)
|
)
|
||||||
ITEM( 'o', 0x8B4513, "Orb of Energy", itOrbEnergy, IC_ORB, ZERO, RESERVED, osPowerUtility,
|
ITEM( 'o', 0xFFFF80, "Orb of Energy", itOrbEnergy, IC_ORB, ZERO, RESERVED, osPowerUtility,
|
||||||
"This Orb halves the power usage of orbs which cost some "
|
"This Orb halves the power usage of orbs which cost some "
|
||||||
"charges with each activation. It even affects the "
|
"charges with each activation. It even affects the "
|
||||||
"one-shot orbs such as Flash or Teleport. If such an activation "
|
"one-shot orbs such as Flash or Teleport. If such an activation "
|
||||||
@ -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,
|
ITEM( ']', 0x8080FF, "Dodecahedron", itDodeca, IC_TREASURE, ZERO, RESERVED, osNone,
|
||||||
"These dodecahedra made of a mysterious material are the Reptiles' favorite toy."
|
"These dodecahedra made of a mysterious material are the Reptiles' favorite toy."
|
||||||
)
|
)
|
||||||
ITEM( 'o', 0xFF0000, "Orb of Vaulting", itOrbDash, IC_ORB, ZERO | IF_RANGED, RESERVED, osFrog,
|
ITEM( 'o', 0x8080FF, "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. "
|
"This Orb allows you to jump over an adjacent monster, killing or stunning it. "
|
||||||
"You can only vault in a roughly straight line. "
|
"You can only vault in a roughly straight line. "
|
||||||
"Target a cell on the other side to use it."
|
"Target a cell on the other side to use it."
|
||||||
@ -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( '*', 0x009090, "Forgotten Relic", itBlizzard, IC_TREASURE, ZERO, RESERVED, osNone, blizzarddesc)
|
||||||
ITEM( '(', 0xFFE080, "Ancient Weapon", itTerra, IC_TREASURE, ZERO, RESERVED, osNone,
|
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.")
|
"This ancient weapon is beautifully encrusted with precious gems, but you prefer your own -- it is much lighter.")
|
||||||
ITEM( 'o', 0x00FF00, "Orb of Slashing", itOrbSide1, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osOffensive,
|
ITEM( 'o', 0x307080, "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.")
|
"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,
|
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 "
|
"Whenever you attack with this Orb, you also hit the monsters adjacent to you which are neither adjacent nor opposite to the monster "
|
||||||
@ -836,11 +836,11 @@ 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( '*', 0xBBCC99, "Chrysoberyl", itRuins, IC_TREASURE, ZERO, RESERVED, osNone, "Fragment of the past glory.")
|
||||||
ITEM( '*', 0x80FF80, "Monopole", itMagnet, IC_TREASURE, ZERO, RESERVED, osNone, NODESCYET)
|
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( '!', 0xFF00FF, "Tasty Jelly", itSwitch, IC_TREASURE, ZERO, RESERVED, osNone, "A tasty byproduct of the Jelly Revolution.")
|
||||||
ITEM( 'o', 0xFF0000, "Orb of Phasing", itOrbPhasing, IC_ORB, ZERO, RESERVED, osFrog,
|
ITEM( 'o', 0xFFFF80, "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.")
|
"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,
|
ITEM( 'o', 0xFFFF80, "Orb of Magnetism", itOrbMagnetism, IC_ORB, ZERO, RESERVED, osUtility,
|
||||||
"This orb makes you immediately pickup all the items on adjacent cells.")
|
"This orb makes you immediately pickup all the items on adjacent cells.")
|
||||||
ITEM( 'o', 0x20FF20, "Orb of Slaying", itOrbSlaying, IC_ORB, ZERO | IF_EMPATHY, RESERVED, osOffensive,
|
ITEM( 'o', 0x202020, "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."
|
"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,
|
ITEM( '*', 0xFFA860, "Tiger's Eye", itBrownian, IC_TREASURE, ZERO, RESERVED, osNone,
|
||||||
|
167
graph.cpp
167
graph.cpp
@ -796,8 +796,8 @@ EX color_t orb_auxiliary_color(eItem it) {
|
|||||||
if(it == itOrbFriend || it == itOrbDiscord) return 0xC0C0C0;
|
if(it == itOrbFriend || it == itOrbDiscord) return 0xC0C0C0;
|
||||||
if(it == itOrbFrog) return 0xFF0000;
|
if(it == itOrbFrog) return 0xFF0000;
|
||||||
if(it == itOrbImpact) return 0xFF0000;
|
if(it == itOrbImpact) return 0xFF0000;
|
||||||
if(it == itOrbPhasing) return 0xFFFF80;
|
if(it == itOrbPhasing) return 0xFF0000;
|
||||||
if(it == itOrbDash) return 0x8080FF;
|
if(it == itOrbDash) return 0xFF0000;
|
||||||
if(it == itOrbFreedom) return 0xC0FF00;
|
if(it == itOrbFreedom) return 0xC0FF00;
|
||||||
if(it == itOrbPlague) return 0x409040;
|
if(it == itOrbPlague) return 0x409040;
|
||||||
if(it == itOrbChaos) return 0xFF00FF;
|
if(it == itOrbChaos) return 0xFF00FF;
|
||||||
@ -812,6 +812,17 @@ EX color_t orb_auxiliary_color(eItem it) {
|
|||||||
return iinf[it].color;
|
return iinf[it].color;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EX color_t orb_inner_color(eItem it) {
|
||||||
|
if(it == itOrbWater) return 0x0070C0;
|
||||||
|
if(it == itOrbEnergy) return 0x8B4513;
|
||||||
|
// if(it == itOrbDash) return 0xFF0000;
|
||||||
|
if(it == itOrbSide1) return 0x00FF00;
|
||||||
|
// if(it == itOrbPhasing) return 0xFF0000;
|
||||||
|
if(it == itOrbDigging) return 0x00FF00;
|
||||||
|
if(it == itOrbLife) return 0x306000;
|
||||||
|
return iinf[it].color;
|
||||||
|
}
|
||||||
|
|
||||||
EX void draw_ascii(const shiftmatrix& V, char glyph, color_t col, ld size) {
|
EX void draw_ascii(const shiftmatrix& V, char glyph, color_t col, ld size) {
|
||||||
string s = s0 + glyph;
|
string s = s0 + glyph;
|
||||||
int id = isize(ptds);
|
int id = isize(ptds);
|
||||||
@ -1044,43 +1055,56 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int
|
|||||||
color_t icol1 = icol;
|
color_t icol1 = icol;
|
||||||
icol = orb_auxiliary_color(it);
|
icol = orb_auxiliary_color(it);
|
||||||
color_t col = darkena(icol, 0, int(0x80 + 0x70 * sinptick(300)));
|
color_t col = darkena(icol, 0, int(0x80 + 0x70 * sinptick(300)));
|
||||||
|
|
||||||
if(it == itOrbFish)
|
if(it == itOrbFish)
|
||||||
queuepolyat(Vit * spinptick(1500, 0), cgi.shFishTail, col, PPR::ITEM_BELOW);
|
queuepolyat(Vit * spinptick(1500, 0), cgi.shFishTail, col, PPR::ITEM_BELOW);
|
||||||
|
|
||||||
if(xch == 'c')
|
if(xch == 'c')
|
||||||
queuepolyat(Vit * spinptick(500, 0), cgi.shMoonDisk, darkena(0x801080, 0, hidden ? 0x20 : 0xC0), prio);
|
queuepolyat(Vit * spinptick(500, 0), cgi.shMoonDisk, darkena(0x801080, 0, hidden ? 0x20 : 0xC0), prio);
|
||||||
else {
|
else {
|
||||||
|
icol1 = orb_inner_color(it);
|
||||||
auto dark = darkena(icol1, 0, inice ? 0x80 : hidden ? 0x20 : (it == itOrbBeauty) ? 0xA0 : 0xC0);
|
auto dark = darkena(icol1, 0, inice ? 0x80 : hidden ? 0x20 : (it == itOrbBeauty) ? 0xA0 : 0xC0);
|
||||||
if (it == itOrbBeauty)
|
auto dark1 = darkena(icol1, 0, inice ? 0x40 : hidden ? 0x10 : (it == itOrbBeauty) ? 0x50 : 0x60);
|
||||||
|
if(c && GDIM == 2) Vit = rgpushxto0(tC0(Vit));
|
||||||
|
auto Vit1 = Vit * spin(90 * degree);
|
||||||
|
|
||||||
|
if (it == itOrbBeauty) {
|
||||||
|
queuepolyat(Vit, cgi.shDisk, dark1, prio);
|
||||||
for(int u=0; u<3; u++)
|
for(int u=0; u<3; u++)
|
||||||
queuepolyat(Vit * spin(2*M_PI / 3 / 3 * u), cgi.shSmallRose, dark, prio);
|
queuepolyat(Vit1 * spin(2*M_PI / 3 / 3 * u), cgi.shSmallRose, dark, prio);
|
||||||
|
}
|
||||||
else if (it == itOrbLife) {
|
else if (it == itOrbLife) {
|
||||||
queuepolyat(Vit, cgi.shSmallPBody, dark, prio);
|
queuepolyat(Vit, cgi.shDisk, dark1, prio);
|
||||||
queuepolyat(Vit, cgi.shDiskM, dark, prio);
|
queuepolyat(Vit1, cgi.shSmallPBody, dark, prio);
|
||||||
|
queuepolyat(Vit1, cgi.shDiskM, dark, prio);
|
||||||
}
|
}
|
||||||
else if (it == itOrbBull) {
|
else if (it == itOrbBull) {
|
||||||
queuepolyat(Vit, cgi.shTinyBullBody, dark, prio);
|
queuepolyat(Vit, cgi.shDisk, dark1, prio);
|
||||||
queuepolyat(Vit, cgi.shTinyBullHead, dark, prio);
|
queuepolyat(Vit1, cgi.shTinyBullBody, dark, prio);
|
||||||
queuepolyat(Vit, cgi.shTinyBullHorn, dark, prio);
|
queuepolyat(Vit1, cgi.shTinyBullHead, dark, prio);
|
||||||
queuepolyat(Vit * Mirror, cgi.shTinyBullHorn, dark, prio);
|
queuepolyat(Vit1, cgi.shTinyBullHorn, dark, prio);
|
||||||
|
queuepolyat(Vit1 * Mirror, cgi.shTinyBullHorn, dark, prio);
|
||||||
}
|
}
|
||||||
else if (it == itOrbFrog) {
|
else if (it == itOrbFrog && false) {
|
||||||
queuepolyat(Vit, cgi.shSmallFrogBody, dark, prio);
|
queuepolyat(Vit, cgi.shDisk, dark1, prio);
|
||||||
queuepolyat(Vit, cgi.shSmallFrogRearFoot, dark, prio);
|
queuepolyat(Vit1, cgi.shSmallFrogBody, dark, prio);
|
||||||
queuepolyat(Vit, cgi.shSmallFrogRearLeg, dark, prio);
|
queuepolyat(Vit1, cgi.shSmallFrogRearFoot, dark, prio);
|
||||||
queuepolyat(Vit, cgi.shSmallFrogRearLeg2, dark, prio);
|
queuepolyat(Vit1, cgi.shSmallFrogRearLeg, dark, prio);
|
||||||
queuepolyat(Vit, cgi.shSmallFrogFrontFoot, dark, prio);
|
queuepolyat(Vit1, cgi.shSmallFrogRearLeg2, dark, prio);
|
||||||
queuepolyat(Vit, cgi.shSmallFrogFrontLeg, dark, prio);
|
queuepolyat(Vit1, cgi.shSmallFrogFrontFoot, dark, prio);
|
||||||
queuepolyat(Vit*Mirror, cgi.shSmallFrogRearFoot, dark, prio);
|
queuepolyat(Vit1, cgi.shSmallFrogFrontLeg, dark, prio);
|
||||||
queuepolyat(Vit*Mirror, cgi.shSmallFrogRearLeg, dark, prio);
|
queuepolyat(Vit1*Mirror, cgi.shSmallFrogRearFoot, dark, prio);
|
||||||
queuepolyat(Vit*Mirror, cgi.shSmallFrogRearLeg2, dark, prio);
|
queuepolyat(Vit1*Mirror, cgi.shSmallFrogRearLeg, dark, prio);
|
||||||
queuepolyat(Vit*Mirror, cgi.shSmallFrogFrontFoot, dark, prio);
|
queuepolyat(Vit1*Mirror, cgi.shSmallFrogRearLeg2, dark, prio);
|
||||||
queuepolyat(Vit*Mirror, cgi.shSmallFrogFrontLeg, dark, prio);
|
queuepolyat(Vit1*Mirror, cgi.shSmallFrogFrontFoot, dark, prio);
|
||||||
|
queuepolyat(Vit1*Mirror, cgi.shSmallFrogFrontLeg, dark, prio);
|
||||||
|
}
|
||||||
|
else if (it == itOrbSpeed) {
|
||||||
|
queuepolyat(Vit, cgi.shDisk, dark1, prio);
|
||||||
|
drawSpeed(Vit, 0.3);
|
||||||
}
|
}
|
||||||
else if (it == itOrbSpeed)
|
|
||||||
drawSpeed(Vit, 0.4);
|
|
||||||
else if (it == itOrbStunning) {
|
else if (it == itOrbStunning) {
|
||||||
|
queuepolyat(Vit, cgi.shDisk, dark1, prio);
|
||||||
queuepolyat(Vit, cgi.shDiskM, dark, prio);
|
queuepolyat(Vit, cgi.shDiskM, dark, prio);
|
||||||
for (int i=0; i<5; i++) {
|
for (int i=0; i<5; i++) {
|
||||||
shiftmatrix V2 = Vit * spin(2*M_PI * i / 5 + ptick(300));
|
shiftmatrix V2 = Vit * spin(2*M_PI * i / 5 + ptick(300));
|
||||||
@ -1088,38 +1112,51 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (it == itOrbDragon) {
|
else if (it == itOrbDragon) {
|
||||||
queuepolyat(Vit, cgi.shSmallDragonHead, dark, prio);
|
queuepolyat(Vit, cgi.shDisk, dark1, prio);
|
||||||
queuepolyat(Vit, cgi.shSmallDragonNostril, 0xFF, prio);
|
queuepolyat(Vit1, cgi.shSmallDragonHead, dark, prio);
|
||||||
queuepolyat(Vit*Mirror, cgi.shSmallDragonNostril, 0xFF, prio);
|
queuepolyat(Vit1, cgi.shSmallDragonNostril, 0xFF, prio);
|
||||||
queuepolyat(Vit, cgi.shSmallDragonEyes, 0x60, prio);
|
queuepolyat(Vit1*Mirror, cgi.shSmallDragonNostril, 0xFF, prio);
|
||||||
queuepolyat(Vit*Mirror, cgi.shSmallDragonEyes, 0x60, prio);
|
queuepolyat(Vit1, cgi.shSmallDragonEyes, 0x60, prio);
|
||||||
|
queuepolyat(Vit1*Mirror, cgi.shSmallDragonEyes, 0x60, prio);
|
||||||
}
|
}
|
||||||
else if (it == itOrbDomination) {
|
else if (it == itOrbDomination) {
|
||||||
queuepolyat(Vit, cgi.shSmallWormHead, dark, prio);
|
queuepolyat(Vit1, cgi.shSmallWormHead, dark, prio);
|
||||||
queuepolyat(Vit, cgi.shSmallWormEyes, 0x60, prio);
|
queuepolyat(Vit1, cgi.shSmallWormEyes, 0x60, prio);
|
||||||
queuepolyat(Vit*Mirror, cgi.shSmallWormEyes, 0x60, prio);
|
queuepolyat(Vit1*Mirror, cgi.shSmallWormEyes, 0x60, prio);
|
||||||
|
}
|
||||||
|
else if (it == itOrbMorph || it == itOrbChaos || it == itOrbPlague) {
|
||||||
|
queuepolyat(Vit, cgi.shDisk, dark1, prio);
|
||||||
|
queuepolyat(Vit1, cgi.shSmallTreat, dark, prio);
|
||||||
|
}
|
||||||
|
else if (it == itOrbWinter) {
|
||||||
|
queuepolyat(Vit, cgi.shDisk, dark1, prio);
|
||||||
|
queuepolyat(Vit1, cgi.shSnowflake, dark, 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)
|
else if (it == itOrbLuck)
|
||||||
queuepolyat(Vit, cgi.shSmallerDodeca, dark, prio);
|
queuepolyat(Vit1, cgi.shSmallerDodeca, dark, prio);
|
||||||
else if (it == itOrbAether) {
|
else if (it == itOrbAether) {
|
||||||
queuepolyat(Vit, cgi.shHalfDisk, dark, prio);
|
queuepolyat(Vit1, cgi.shHalfDisk, dark, prio);
|
||||||
queuepolyat(Vit*Mirror, cgi.shHalfDisk, 0xFF, prio);
|
queuepolyat(Vit1*Mirror, cgi.shHalfDisk, 0xFF, prio);
|
||||||
queuepolyat(Vit, cgi.shHalfHumanoid, dark, prio);
|
queuepolyat(Vit1*MirrorX, cgi.shHalfHumanoid, dark, prio);
|
||||||
queuepolyat(Vit*Mirror, cgi.shHalfHumanoid, 0xFF, prio);
|
queuepolyat(Vit1*Mirror*MirrorX, cgi.shHalfHumanoid, 0xFF, prio);
|
||||||
}
|
}
|
||||||
else if (it == itOrbFlash)
|
else if (it == itOrbFlash)
|
||||||
queuepolyat(Vit, cgi.shFlash, dark, prio);
|
queuepolyat(Vit1, cgi.shFlash, dark, prio);
|
||||||
else if (it == itOrbMatter || it == itOrbStone)
|
else if (it == itOrbMatter || it == itOrbStone) {
|
||||||
queuepolyat(Vit, cgi.shDiskSq, dark, prio);
|
queuepolyat(Vit, cgi.shDisk, dark1, prio);
|
||||||
|
queuepolyat(Vit1, cgi.shDiskSq, dark, prio);
|
||||||
|
}
|
||||||
else if (it == itOrbSummon) {
|
else if (it == itOrbSummon) {
|
||||||
queuepolyat(Vit, cgi.shHeptagon, dark, prio);
|
queuepolyat(Vit1, cgi.shHeptagon, dark, prio);
|
||||||
queuepolyat(Vit, cgi.shHeptagram, dark, prio);
|
queuepolyat(Vit1, cgi.shHeptagram, dark, prio);
|
||||||
|
}
|
||||||
|
else if (it == itOrbSafety) {
|
||||||
|
queuepolyat(Vit, cgi.shDisk, dark, prio);
|
||||||
|
dynamicval<color_t> p(poly_outline, dark);
|
||||||
|
queuepolyat(Vit1, cgi.shHeptagram, 0, prio);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
bool jump = (it == itOrbPhasing || it == itOrbDash || it == itOrbFrog);
|
||||||
auto shape = (it == itOrbFriend) ? &cgi.shTinyBird :
|
auto shape = (it == itOrbFriend) ? &cgi.shTinyBird :
|
||||||
(it == itOrbSide1) ? &cgi.shSmallPSword :
|
(it == itOrbSide1) ? &cgi.shSmallPSword :
|
||||||
(it == itOrbDigging) ? &cgi.shSmallPickAxe :
|
(it == itOrbDigging) ? &cgi.shSmallPickAxe :
|
||||||
@ -1127,7 +1164,7 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int
|
|||||||
(it == itOrbThorns) ? &cgi.shSmallHedgehogBlade :
|
(it == itOrbThorns) ? &cgi.shSmallHedgehogBlade :
|
||||||
(it == itOrbSide2 || it == itOrb37 || it == itOrbLava) ? &cgi.shDiskT :
|
(it == itOrbSide2 || it == itOrb37 || it == itOrbLava) ? &cgi.shDiskT :
|
||||||
(it == itOrbGravity) ? &cgi.shTinyArrow :
|
(it == itOrbGravity) ? &cgi.shTinyArrow :
|
||||||
(it == itOrbSafety || it == itOrbFreedom || it == itOrbRecall) ? &cgi.shDiskSq :
|
(it == itOrbFreedom || it == itOrbRecall) ? &cgi.shDiskSq :
|
||||||
(it == itOrbEnergy) ? &cgi.shHalfDisk :
|
(it == itOrbEnergy) ? &cgi.shHalfDisk :
|
||||||
(it == itOrbSpace) ? &cgi.shSmallPirateHook :
|
(it == itOrbSpace) ? &cgi.shSmallPirateHook :
|
||||||
(it == itOrbChoice || it == itOrbMirror || it == itOrbMagnetism || it == itOrbEmpathy || it == itOrbDiscord) ? &cgi.shEccentricDisk :
|
(it == itOrbChoice || it == itOrbMirror || it == itOrbMagnetism || it == itOrbEmpathy || it == itOrbDiscord) ? &cgi.shEccentricDisk :
|
||||||
@ -1140,36 +1177,38 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int
|
|||||||
(it == itOrbWoods) ? &cgi.shTreeIcon :
|
(it == itOrbWoods) ? &cgi.shTreeIcon :
|
||||||
(it == itOrbNature) ? &cgi.shLeafIcon :
|
(it == itOrbNature) ? &cgi.shLeafIcon :
|
||||||
(it == itOrbIllusion || it == itOrbInvis || it == itOrbTeleport) ? &cgi.shHumanoid :
|
(it == itOrbIllusion || it == itOrbInvis || it == itOrbTeleport) ? &cgi.shHumanoid :
|
||||||
(it == itOrbPhasing || it == itOrbDash) ? &cgi.shDiskSegment :
|
jump ? &cgi.shDiskSegment :
|
||||||
NULL;
|
NULL;
|
||||||
queuepolyat(Vit, cgi.shDisk, dark, prio);
|
queuepolyat(Vit, cgi.shDisk, dark, prio);
|
||||||
|
bool reversed = (shape == &cgi.shTreeIcon || shape == &cgi.shHumanoid);
|
||||||
|
bool left90 = (shape == &cgi.shLeafIcon || shape == &cgi.shLightningBolt);
|
||||||
if (shape)
|
if (shape)
|
||||||
queuepolyat(Vit, *shape, (it == itOrbInvis || it == itOrbTeleport) ? 0x20 : 0x80, prio);
|
queuepolyat(reversed ? Vit1 * MirrorX : left90 ? Vit1 * spin(-90*degree) : Vit1, *shape, (it == itOrbInvis || it == itOrbTeleport) ? 0x20 : 0x80, prio);
|
||||||
if (it == itOrbSide1 || (shape == &cgi.shEccentricDisk && it != itOrbDiscord))
|
if (it == itOrbSide1 || (shape == &cgi.shEccentricDisk && it != itOrbDiscord))
|
||||||
queuepolyat(Vit*Mirror, *shape, 0x80, prio);
|
queuepolyat(Vit1*Mirror, *shape, 0x80, prio);
|
||||||
if (it == itOrbPhasing || it == itOrbDash || it == itOrbEnergy)
|
if (jump || it == itOrbEnergy)
|
||||||
queuepolyat(Vit*Mirror, *shape, col, prio);
|
queuepolyat(Vit1*Mirror, *shape, col, prio);
|
||||||
if (it == itOrbIntensity || it == itOrbImpact)
|
if (it == itOrbIntensity || it == itOrbImpact)
|
||||||
queuepolyat(Vit, cgi.shDiskM, 0x80, prio);
|
queuepolyat(Vit1, cgi.shDiskM, 0x80, prio);
|
||||||
if (it == itOrbHorns) {
|
if (it == itOrbHorns) {
|
||||||
queuepolyat(Vit, cgi.shSmallBullHead, 0x80, prio);
|
queuepolyat(Vit1, cgi.shSmallBullHead, 0x80, prio);
|
||||||
queuepolyat(Vit, cgi.shSmallBullHorn, 0x80, prio);
|
queuepolyat(Vit1, cgi.shSmallBullHorn, 0x80, prio);
|
||||||
queuepolyat(Vit*Mirror, cgi.shSmallBullHorn, 0x80, prio);
|
queuepolyat(Vit1*Mirror, cgi.shSmallBullHorn, 0x80, prio);
|
||||||
}
|
}
|
||||||
if (it == itOrbUndeath) {
|
if (it == itOrbUndeath) {
|
||||||
dark = darkena(minf[moFriendlyGhost].color, 0, inice ? 0x80 : hidden ? 0x20 : 0xC0);
|
dark = darkena(fghostcolor(c) /* minf[moFriendlyGhost].color */, 0, inice ? 0x80 : hidden ? 0x20 : 0xC0);
|
||||||
queuepolyat(Vit, cgi.shMiniGhost, dark, prio);
|
queuepolyat(Vit1, cgi.shMiniGhost, dark, prio);
|
||||||
queuepolyat(Vit, cgi.shMiniEyes, 0xFF, prio);
|
queuepolyat(Vit1, cgi.shMiniEyes, 0xFF, prio);
|
||||||
}
|
}
|
||||||
if (it == itOrbSlaying) {
|
if (it == itOrbSlaying) {
|
||||||
queuepolyat(Vit, cgi.shSmallFlailTrunk, 0x80, prio);
|
queuepolyat(Vit1, cgi.shSmallFlailTrunk, 0x80, prio);
|
||||||
queuepolyat(Vit, cgi.shSmallHammerHead, 0x80, prio);
|
queuepolyat(Vit1, cgi.shSmallHammerHead, 0x80, prio);
|
||||||
}
|
}
|
||||||
if (it == itOrbShell)
|
if (it == itOrbShell)
|
||||||
for(int i = 1; i<8; i++) {
|
for(int i = 1; i<8; i++) {
|
||||||
queuepolyat(Vit, cgi.shTortoise[i][2], 0x80, prio);
|
queuepolyat(Vit1, cgi.shTortoise[i][2], 0x80, prio);
|
||||||
if (i>=5 && i<=7)
|
if (i>=5 && i<=7)
|
||||||
queuepolyat(Vit*Mirror, cgi.shTortoise[i][2], 0x80, prio);
|
queuepolyat(Vit1*Mirror, cgi.shTortoise[i][2], 0x80, prio);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user