mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-01-27 09:24:53 +00:00
draw:: z-level can now be set for each layer
This commit is contained in:
parent
d46a909612
commit
f879a2c21c
@ -201,7 +201,9 @@ namespace mapstream {
|
|||||||
|
|
||||||
for(int l=0; l<USERLAYERS; l++) if(isize(us->d[l].list)) {
|
for(int l=0; l<USERLAYERS; l++) if(isize(us->d[l].list)) {
|
||||||
usershapelayer& ds(us->d[l]);
|
usershapelayer& ds(us->d[l]);
|
||||||
f.write(i); f.write(usp.first); f.write(l); f.write(ds.sym); f.write(ds.rots); f.write(ds.color);
|
f.write(i); f.write(usp.first); f.write(l);
|
||||||
|
f.write(ds.zlevel);
|
||||||
|
f.write(ds.sym); f.write(ds.rots); f.write(ds.color);
|
||||||
n = isize(ds.list); f.write(n);
|
n = isize(ds.list); f.write(n);
|
||||||
f.write(ds.shift);
|
f.write(ds.shift);
|
||||||
f.write(ds.spin);
|
f.write(ds.spin);
|
||||||
@ -436,6 +438,8 @@ namespace mapstream {
|
|||||||
initShape(i, j);
|
initShape(i, j);
|
||||||
usershapelayer& ds(usershapes[i][j]->d[l]);
|
usershapelayer& ds(usershapes[i][j]->d[l]);
|
||||||
|
|
||||||
|
if(vernum >= 11008) f.read(ds.zlevel);
|
||||||
|
|
||||||
f.read(ds.sym); f.read(ds.rots); f.read(ds.color);
|
f.read(ds.sym); f.read(ds.rots); f.read(ds.color);
|
||||||
ds.list.clear();
|
ds.list.clear();
|
||||||
int siz = f.get<int>();
|
int siz = f.get<int>();
|
||||||
@ -1217,6 +1221,7 @@ namespace mapeditor {
|
|||||||
displayButton(8, 8+fs*16, XLAT("p = grid color"), 'p', 0);
|
displayButton(8, 8+fs*16, XLAT("p = grid color"), 'p', 0);
|
||||||
else
|
else
|
||||||
displayButton(8, 8+fs*16, XLAT("p = paint"), 'p', 0);
|
displayButton(8, 8+fs*16, XLAT("p = paint"), 'p', 0);
|
||||||
|
displayfr(8, 8+fs*17, 2, vid.fsize, XLAT("z = z-level"), 0xC0C0C0, 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
#if CAP_TEXTURE
|
#if CAP_TEXTURE
|
||||||
@ -1324,6 +1329,7 @@ namespace mapeditor {
|
|||||||
dsCur->color = ptd.color;
|
dsCur->color = ptd.color;
|
||||||
dsCur->sym = false;
|
dsCur->sym = false;
|
||||||
dsCur->rots = 1;
|
dsCur->rots = 1;
|
||||||
|
dsCur->zlevel = 0;
|
||||||
|
|
||||||
for(auto& v: symmetriesAt)
|
for(auto& v: symmetriesAt)
|
||||||
if(v[0] == ptd.offset) {
|
if(v[0] == ptd.offset) {
|
||||||
@ -1371,6 +1377,10 @@ namespace mapeditor {
|
|||||||
if(uni == 'u')
|
if(uni == 'u')
|
||||||
loadShapes(sg, id);
|
loadShapes(sg, id);
|
||||||
|
|
||||||
|
if(uni == 'z' && haveshape)
|
||||||
|
dialog::editNumber(dsCur->zlevel, -10, +10, 0.1, 0, XLAT("z-level"),
|
||||||
|
XLAT("Changing the z-level will make this layer affected by the parallax effect."));
|
||||||
|
|
||||||
if(uni == 'a' && haveshape) {
|
if(uni == 'a' && haveshape) {
|
||||||
mh = spin(2*M_PI*-ew.rotid/dsCur->rots) * mh;
|
mh = spin(2*M_PI*-ew.rotid/dsCur->rots) * mh;
|
||||||
if(ew.symid) mh = Mirror * mh;
|
if(ew.symid) mh = Mirror * mh;
|
||||||
@ -1526,6 +1536,7 @@ namespace mapeditor {
|
|||||||
|
|
||||||
initShape(i, j);
|
initShape(i, j);
|
||||||
usershapelayer& ds(usershapes[i][j]->d[l]);
|
usershapelayer& ds(usershapes[i][j]->d[l]);
|
||||||
|
if(VERNUM_HEX >= 0xA608) { double z; err = fscanf(f, "%lf", &z); ds.zlevel = z; }
|
||||||
ds.shift = readHyperpoint(f);
|
ds.shift = readHyperpoint(f);
|
||||||
ds.spin = readHyperpoint(f);
|
ds.spin = readHyperpoint(f);
|
||||||
ds.list.clear();
|
ds.list.clear();
|
||||||
@ -1562,6 +1573,7 @@ namespace mapeditor {
|
|||||||
usershapelayer& ds(us->d[l]);
|
usershapelayer& ds(us->d[l]);
|
||||||
fprintf(f, "\n%d %d %d %d %d %6x %d\n",
|
fprintf(f, "\n%d %d %d %d %d %6x %d\n",
|
||||||
i, usp.first, l, ds.sym, ds.rots, ds.color, int(isize(ds.list)));
|
i, usp.first, l, ds.sym, ds.rots, ds.color, int(isize(ds.list)));
|
||||||
|
fprintf(f, "\n%lf", double(ds.zlevel));
|
||||||
writeHyperpoint(f, ds.shift);
|
writeHyperpoint(f, ds.shift);
|
||||||
writeHyperpoint(f, ds.spin);
|
writeHyperpoint(f, ds.spin);
|
||||||
fprintf(f,"\n");
|
fprintf(f,"\n");
|
||||||
@ -1881,7 +1893,7 @@ namespace mapeditor {
|
|||||||
hpcshape& sh(ds.sh);
|
hpcshape& sh(ds.sh);
|
||||||
|
|
||||||
if(sh.s != sh.e)
|
if(sh.s != sh.e)
|
||||||
queuepolyat(V, sh, ds.color ? ds.color : color, prio);
|
queuepolyat(mmscale(V, geom3::lev_to_factor(ds.zlevel)), sh, ds.color ? ds.color : color, prio);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1692,6 +1692,7 @@ struct usershapelayer {
|
|||||||
int rots;
|
int rots;
|
||||||
color_t color;
|
color_t color;
|
||||||
hyperpoint shift, spin;
|
hyperpoint shift, spin;
|
||||||
|
ld zlevel;
|
||||||
hpcshape sh;
|
hpcshape sh;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -2884,6 +2885,7 @@ void initShape(int sg, int id) {
|
|||||||
us->d[i].shift = C0;
|
us->d[i].shift = C0;
|
||||||
us->d[i].spin = Cx1;
|
us->d[i].spin = Cx1;
|
||||||
us->d[i].color = 0;
|
us->d[i].color = 0;
|
||||||
|
us->d[i].zlevel = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user