choice of orb display style

This commit is contained in:
Zeno Rogue 2022-10-06 13:10:57 +02:00
parent 8bf80dd96c
commit ddf8ea17e3
2 changed files with 16 additions and 2 deletions

View File

@ -724,6 +724,13 @@ EX void initConfig() {
{"by number", ""}
}, "inventory/kill sorting", 'k');
param_enum(vid.orbmode, "orb_mode", "orb display mode", 2)
->editable({
{"plain", ""},
{"types", ""},
{"icons", ""},
}, "orb display mode", 'o');
param_b(less_in_landscape, "less_in_landscape", false)
->editable("less items/kills in landscape", 'L')
-> set_sets([] { dialog::reaction_final = [] { println(hlog, "Reset"); vid.killreduction = 0; }; });
@ -1856,6 +1863,7 @@ EX void configureInterface() {
add_edit(less_in_portrait);
add_edit(display_yasc_codes);
add_edit(vid.orbmode);
dialog::addSelItem(XLAT("draw crosshair"), crosshair_size > 0 ? fts(crosshair_size) : ONOFF(false), 'x');
dialog::add_action([] () {

View File

@ -761,10 +761,12 @@ EX shiftmatrix face_the_player(const shiftmatrix V) {
}
EX hpcshape& orbshape(eOrbshape s) {
if(vid.orbmode == 0) return cgi.shRing;
switch(s) {
case osLove: return cgi.shLoveRing;
case osRanged: return cgi.shTargetRing;
case osOffensive: case osDirectional: return cgi.shSawRing;
case osOffensive: return cgi.shSawRing;
case osDirectional: return vid.orbmode == 2 ? cgi.shSawRing : cgi.shSpearRing;
case osFriend: return cgi.shPeaceRing;
case osUtility: return cgi.shGearRing;
case osPowerUtility: return cgi.shPowerGearRing;
@ -1056,11 +1058,15 @@ EX bool drawItemType(eItem it, cell *c, const shiftmatrix& V, color_t icol, int
icol = orb_auxiliary_color(it);
color_t col = darkena(icol, 0, int(0x80 + 0x70 * sinptick(300)));
if(it == itOrbFish)
if(it == itOrbFish && vid.orbmode == 2)
queuepolyat(Vit * spinptick(1500, 0), cgi.shFishTail, col, PPR::ITEM_BELOW);
if(xch == 'c')
queuepolyat(Vit * spinptick(500, 0), cgi.shMoonDisk, darkena(0x801080, 0, hidden ? 0x20 : 0xC0), prio);
else if(vid.orbmode < 2) {
icol1 = orb_inner_color(it);
queuepolyat(Vit, cgi.shDisk, darkena(icol1, 0, inice ? 0x80 : hidden ? 0x20 : 0xC0), prio);
}
else {
icol1 = orb_inner_color(it);
auto dark = darkena(icol1, 0, inice ? 0x80 : hidden ? 0x20 : (it == itOrbBeauty) ? 0xA0 : 0xC0);