mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-11-27 14:37:16 +00:00
rogueviz:: snow:: new options snow_random_colors and snow_just_centered
This commit is contained in:
parent
c7663c83be
commit
608c283f2d
@ -43,12 +43,19 @@ bool snow_texture = true;
|
|||||||
/* draw single objects? */
|
/* draw single objects? */
|
||||||
bool single_objects = true;
|
bool single_objects = true;
|
||||||
|
|
||||||
|
/* use random colors? */
|
||||||
|
bool random_colors = false;
|
||||||
|
|
||||||
|
/* just one snowball per cell, in the center */
|
||||||
|
bool just_centered = false;
|
||||||
|
|
||||||
int snow_shape = 0;
|
int snow_shape = 0;
|
||||||
|
|
||||||
struct snowball {
|
struct snowball {
|
||||||
transmatrix T;
|
transmatrix T;
|
||||||
int model_id;
|
int model_id;
|
||||||
int object_id;
|
int object_id;
|
||||||
|
color_t color;
|
||||||
};
|
};
|
||||||
|
|
||||||
map<cell*, vector<snowball>> snowballs_at;
|
map<cell*, vector<snowball>> snowballs_at;
|
||||||
@ -137,9 +144,12 @@ bool draw_snow(cell *c, const shiftmatrix& V) {
|
|||||||
cnt = snow_lambda;
|
cnt = snow_lambda;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(just_centered) cnt = 1;
|
||||||
|
|
||||||
for(int t=0; t<cnt; t++) {
|
for(int t=0; t<cnt; t++) {
|
||||||
snowball b{random_snow_matrix(c), 0, -1};
|
snowball b{just_centered ? Id : random_snow_matrix(c), 0, -1, snow_color};
|
||||||
|
if(random_colors)
|
||||||
|
b.color = (hrand(0x1000000) << 8) | 0x808080FF;
|
||||||
if(isize(models)) {
|
if(isize(models)) {
|
||||||
b.model_id = hrand(isize(models));
|
b.model_id = hrand(isize(models));
|
||||||
if(single_objects)
|
if(single_objects)
|
||||||
@ -163,7 +173,7 @@ bool draw_snow(cell *c, const shiftmatrix& V) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
auto& p = queuepoly(V * T.T, shapeid(snow_shape), snow_color);
|
auto& p = queuepoly(V * T.T, shapeid(snow_shape), T.color);
|
||||||
if(!snow_texture) p.tinf = nullptr;
|
if(!snow_texture) p.tinf = nullptr;
|
||||||
if(snow_intense) p.flags |= POLY_INTENSE;
|
if(snow_intense) p.flags |= POLY_INTENSE;
|
||||||
}
|
}
|
||||||
@ -277,6 +287,11 @@ auto hchook = addHook(hooks_drawcell, 100, draw_snow)
|
|||||||
})
|
})
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
+ addHook(hooks_configfile, 100, [] {
|
||||||
|
param_b(random_colors, "snow_random_colors");
|
||||||
|
param_b(just_centered, "snow_just_centered");
|
||||||
|
})
|
||||||
|
|
||||||
+ addHook_rvslides(161, [] (string s, vector<tour::slide>& v) {
|
+ addHook_rvslides(161, [] (string s, vector<tour::slide>& v) {
|
||||||
if(s != "noniso") return;
|
if(s != "noniso") return;
|
||||||
v.push_back(tour::slide{
|
v.push_back(tour::slide{
|
||||||
|
Loading…
Reference in New Issue
Block a user