mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-25 01:20:37 +00:00
irr:: Orb of the Sword and Kraken.
This commit is contained in:
parent
58d8742cf9
commit
4d61f2169e
@ -2481,7 +2481,8 @@ namespace sword {
|
|||||||
s += S42/t;
|
s += S42/t;
|
||||||
s %= S84;
|
s %= S84;
|
||||||
if(s<0) s += S84;
|
if(s<0) s += S84;
|
||||||
s /= (S84/t);
|
s *= t;
|
||||||
|
s /= S84;
|
||||||
return c->mov[s];
|
return c->mov[s];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -293,13 +293,13 @@ void drawPlayerEffects(const transmatrix& V, cell *c, bool onplayer) {
|
|||||||
int& ang = angle[multi::cpid];
|
int& ang = angle[multi::cpid];
|
||||||
ang %= S42;
|
ang %= S42;
|
||||||
|
|
||||||
transmatrix Vnow = gmatrix[c] * rgpushxto0(inverse(gmatrix[c]) * tC0(V)) * spin(-hexshiftat(c));
|
transmatrix Vnow = gmatrix[c] * rgpushxto0(inverse(gmatrix[c]) * tC0(V)) * (irr::on ? ddspin(c,0,S42) : spin(-hexshiftat(c)));
|
||||||
|
|
||||||
#if CAP_QUEUE
|
#if CAP_QUEUE
|
||||||
if(!euclid) for(int a=0; a<S42; a++) {
|
if(!euclid) for(int a=0; a<S42; a++) {
|
||||||
int dda = S42 + (-1-2*a);
|
int dda = S42 + (-1-2*a);
|
||||||
if(a == ang && items[itOrbSword]) continue;
|
if(a == ang && items[itOrbSword]) continue;
|
||||||
if(nonbitrunc && !gp::on && a%3 != ang%3) continue;
|
if(nonbitrunc && !gp::on && !irr::on && a%3 != ang%3) continue;
|
||||||
if((a+S21)%S42 == ang && items[itOrbSword2]) continue;
|
if((a+S21)%S42 == ang && items[itOrbSword2]) continue;
|
||||||
bool longer = sword::pos(cwt.c, a-1) != sword::pos(cwt.c, a+1);
|
bool longer = sword::pos(cwt.c, a-1) != sword::pos(cwt.c, a+1);
|
||||||
int col = darkena(0xC0C0C0, 0, 0xFF);
|
int col = darkena(0xC0C0C0, 0, 0xFF);
|
||||||
|
1
hyper.h
1
hyper.h
@ -2551,6 +2551,7 @@ struct hrmap_hyperbolic : hrmap {
|
|||||||
|
|
||||||
namespace irr {
|
namespace irr {
|
||||||
extern bool on;
|
extern bool on;
|
||||||
|
extern ld scale;
|
||||||
void link_to_base(heptagon *h, heptspin base);
|
void link_to_base(heptagon *h, heptspin base);
|
||||||
void link_start(heptagon *h);
|
void link_start(heptagon *h);
|
||||||
void link_next(heptagon *h, int d);
|
void link_next(heptagon *h, int d);
|
||||||
|
@ -326,13 +326,16 @@ bool step(int delta) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ld scale;
|
||||||
|
|
||||||
void compute_geometry() {
|
void compute_geometry() {
|
||||||
if(irr::on) {
|
if(irr::on) {
|
||||||
ld scal = sqrt(isize(cells_of_heptagon) * 1. / sc);
|
scale = sqrt(isize(cells_of_heptagon) * 1. / sc);
|
||||||
crossf *= scal;
|
crossf *= scale;
|
||||||
hepvdist *= scal;
|
hepvdist *= scale;
|
||||||
rhexf *= scal;
|
rhexf *= scale;
|
||||||
}
|
}
|
||||||
|
else scale = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool draw_cell_schematics(cell *c, transmatrix V) {
|
bool draw_cell_schematics(cell *c, transmatrix V) {
|
||||||
|
@ -1165,7 +1165,7 @@ land_validity_t& land_validity(eLand l) {
|
|||||||
if(irr::on && among(l, laStorms, laPrairie, laBlizzard, laVolcano))
|
if(irr::on && among(l, laStorms, laPrairie, laBlizzard, laVolcano))
|
||||||
return dont_work;
|
return dont_work;
|
||||||
|
|
||||||
if(irr::on && among(l, laWhirlpool, laCamelot, laCaribbean, laClearing, laTemple, laHive, laMirror, laMirrorOld, laReptile, laKraken, laBurial))
|
if(irr::on && among(l, laWhirlpool, laCamelot, laCaribbean, laClearing, laTemple, laHive, laMirror, laMirrorOld, laReptile))
|
||||||
return dont_work;
|
return dont_work;
|
||||||
|
|
||||||
// equidistant-based lands
|
// equidistant-based lands
|
||||||
|
@ -1151,6 +1151,8 @@ bool pseudohept(cell *c) {
|
|||||||
bool kraken_pseudohept(cell *c) {
|
bool kraken_pseudohept(cell *c) {
|
||||||
if(!euclid && S3 == 4 && gp::on && (gp::param.first % 2 || gp::param.second % 2 || S7 % 2))
|
if(!euclid && S3 == 4 && gp::on && (gp::param.first % 2 || gp::param.second % 2 || S7 % 2))
|
||||||
return ishept(c);
|
return ishept(c);
|
||||||
|
else if(irr::on)
|
||||||
|
return c->type != 6;
|
||||||
else if(!euclid && S3 == 3 && !(S7&1) && gp_threecolor() == 1)
|
else if(!euclid && S3 == 3 && !(S7&1) && gp_threecolor() == 1)
|
||||||
return ishept(c);
|
return ishept(c);
|
||||||
else
|
else
|
||||||
|
18
polygons.cpp
18
polygons.cpp
@ -1956,19 +1956,19 @@ void buildpolys() {
|
|||||||
if(sphere) krsc *= 1.4;
|
if(sphere) krsc *= 1.4;
|
||||||
if(S7 ==8) krsc *= 1.3;
|
if(S7 ==8) krsc *= 1.3;
|
||||||
|
|
||||||
if(nonbitrunc && !gp::on && !euclid4) {
|
if(nonbitrunc && !gp::on && !irr::on && !euclid4) {
|
||||||
tentacle_length = 1.52;
|
tentacle_length = 1.52;
|
||||||
bshape(shSeaTentacle, PPR_TENTACLE1, 1, 245);
|
bshape(shSeaTentacle, PPR_TENTACLE1, 1, 245);
|
||||||
}
|
}
|
||||||
else if(gp::on) {
|
else if(gp::on || irr::on) {
|
||||||
tentacle_length = 0.566256 * 1.6 * gp::scale * krsc;
|
tentacle_length = 0.566256 * 1.6 * gp::scale * irr::scale * krsc;
|
||||||
bshape(shSeaTentacle, PPR_TENTACLE1, 1.6 * gp::scale * krsc, 246);
|
bshape(shSeaTentacle, PPR_TENTACLE1, 1.6 * gp::scale * irr::scale * krsc, 246);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
tentacle_length = 0.566256 * gp::scale;
|
tentacle_length = 0.566256 * gp::scale * irr::scale;
|
||||||
bshape(shSeaTentacle, PPR_TENTACLE1, gp::scale, 246);
|
bshape(shSeaTentacle, PPR_TENTACLE1, gp::scale * irr::scale, 246);
|
||||||
}
|
}
|
||||||
ld ksc = (nonbitrunc ? 1.8 : 1.5) * gp::scale * krsc;
|
ld ksc = (nonbitrunc ? 1.8 : 1.5) * gp::scale * irr::scale * krsc;
|
||||||
if(euclid4 && nonbitrunc) ksc *= .5;
|
if(euclid4 && nonbitrunc) ksc *= .5;
|
||||||
bshape(shKrakenHead, PPR_ONTENTACLE, ksc, 247);
|
bshape(shKrakenHead, PPR_ONTENTACLE, ksc, 247);
|
||||||
bshape(shKrakenEye, PPR_ONTENTACLE_EYES, ksc, 248);
|
bshape(shKrakenEye, PPR_ONTENTACLE_EYES, ksc, 248);
|
||||||
@ -2200,10 +2200,10 @@ void buildpolys() {
|
|||||||
for(int v=0; v<13; v++) for(int z=0; z<2; z++)
|
for(int v=0; v<13; v++) for(int z=0; z<2; z++)
|
||||||
copyshape(shTortoise[v][4+z], shTortoise[v][2+z], shTortoise[v][2+z].prio + (PPR_CARRIED-PPR_ITEM));
|
copyshape(shTortoise[v][4+z], shTortoise[v][2+z], shTortoise[v][2+z].prio + (PPR_CARRIED-PPR_ITEM));
|
||||||
|
|
||||||
if(nonbitrunc) bshape(shMagicSword, PPR_MAGICSWORD, euclid4 ? gp::scale / 2 : gp::scale, 243);
|
if(nonbitrunc) bshape(shMagicSword, PPR_MAGICSWORD, euclid4 ? gp::scale * irr::scale / 2 : gp::scale * irr::scale, 243);
|
||||||
else bshape(shMagicSword, PPR_MAGICSWORD, 1, 244);
|
else bshape(shMagicSword, PPR_MAGICSWORD, 1, 244);
|
||||||
|
|
||||||
if(nonbitrunc) bshape(shMagicShovel, PPR_MAGICSWORD, euclid4 ? gp::scale / 2 : gp::scale, 333);
|
if(nonbitrunc) bshape(shMagicShovel, PPR_MAGICSWORD, euclid4 ? gp::scale * irr::scale / 2 : gp::scale * irr::scale, 333);
|
||||||
else bshape(shMagicShovel, PPR_MAGICSWORD, 1, 333);
|
else bshape(shMagicShovel, PPR_MAGICSWORD, 1, 333);
|
||||||
|
|
||||||
bshape(shBead0, 20, 1, 250);
|
bshape(shBead0, 20, 1, 250);
|
||||||
|
Loading…
Reference in New Issue
Block a user