1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-11-24 05:17:17 +00:00

left-handed player characters

This commit is contained in:
Zeno Rogue 2018-11-10 18:32:55 +01:00
parent 18272634cd
commit 1d0b5878fc
3 changed files with 16 additions and 8 deletions

View File

@ -82,6 +82,7 @@ void addsaver(charstyle& cs, string s) {
addsaver(cs.swordcolor, s + ".swordcolor");
addsaver(cs.dresscolor2, s + ".dresscolor2");
addsaver(cs.uicolor, s + ".uicolor");
addsaver(cs.lefthanded, s + ".lefthanded");
}
// R:239, G:208, B:207
@ -102,6 +103,7 @@ void initcs(charstyle &cs) {
cs.swordcolor = 0xD0D0D0FF;
cs.dresscolor2= 0x8080FFC0;
cs.uicolor = 0xFF0000FF;
cs.lefthanded = false;
}
#if CAP_CONFIG
@ -1408,6 +1410,8 @@ void showCustomizeChar() {
if(!shmup::on && multi::players == 1) dialog::addSelItem(XLAT("save whom"), XLAT1(minf[moPrincess].name), 'p');
if(numplayers() > 1) dialog::addSelItem(XLAT("player"), its(shmup::cpid+1), 'a');
dialog::addBoolItem(XLAT("left-handed"), cs.lefthanded, 'l');
dialog::addBreak(50);
dialog::addBack();
@ -1442,6 +1446,7 @@ void showCustomizeChar() {
else if(uni == 'd') switchcolor(cs.dresscolor, cat ? haircolors : dresscolors);
else if(uni == 'f') switchcolor(cs.dresscolor2, dresscolors2);
else if(uni == 'u') switchcolor(cs.uicolor, eyecolors);
else if(uni == 'l') cs.lefthanded = !cs.lefthanded;
else if(doexiton(sym, uni)) popScreen();
};
}

View File

@ -894,27 +894,29 @@ bool drawMonsterType(eMonster m, cell *where, const transmatrix& V, color_t col,
if(items[itOrbSide1] && !shmup::on)
queuepoly(VBODY * spin(-M_PI/24), cs.charid >= 2 ? shSabre : shPSword, fc(314, cs.swordcolor, 3)); // 3 not colored
transmatrix VWPN = cs.lefthanded ? VBODY * Mirror : VBODY;
if(peace::on) ;
else if(items[itOrbThorns])
queuepoly(VBODY, shHedgehogBladePlayer, items[itOrbDiscord] ? watercolor(0) : 0x00FF00FF);
queuepoly(VWPN, shHedgehogBladePlayer, items[itOrbDiscord] ? watercolor(0) : 0x00FF00FF);
else if(!shmup::on && items[itOrbDiscord])
queuepoly(VBODY, cs.charid >= 2 ? shSabre : shPSword, watercolor(0));
queuepoly(VWPN, cs.charid >= 2 ? shSabre : shPSword, watercolor(0));
else if(items[itRevolver])
queuepoly(VBODY, shGunInHand, fc(314, cs.swordcolor, 3)); // 3 not colored
queuepoly(VWPN, shGunInHand, fc(314, cs.swordcolor, 3)); // 3 not colored
else if(items[itOrbSlaying]) {
queuepoly(VBODY, shFlailTrunk, fc(314, cs.swordcolor, 3));
queuepoly(VBODY, shHammerHead, fc(314, cs.swordcolor, 3));
queuepoly(VWPN, shFlailTrunk, fc(314, cs.swordcolor, 3));
queuepoly(VWPN, shHammerHead, fc(314, cs.swordcolor, 3));
}
else if(!shmup::on)
queuepoly(VBODY, cs.charid >= 2 ? shSabre : shPSword, fc(314, cs.swordcolor, 3)); // 3 not colored
queuepoly(VWPN, cs.charid >= 2 ? shSabre : shPSword, fc(314, cs.swordcolor, 3)); // 3 not colored
else if(shmup::curtime >= shmup::getPlayer()->nextshot)
queuepoly(VBODY, shPKnife, fc(314, cs.swordcolor, 3)); // 3 not colored
queuepoly(VWPN, shPKnife, fc(314, cs.swordcolor, 3)); // 3 not colored
if(items[itOrbBeauty]) {
if(cs.charid&1)
queuepoly(VHEAD, shFlowerHair, darkena(iinf[itOrbBeauty].color, 0, 0xFF));
else
queuepoly(VBODY, shFlowerHand, darkena(iinf[itOrbBeauty].color, 0, 0xFF));
queuepoly(VWPN, shFlowerHand, darkena(iinf[itOrbBeauty].color, 0, 0xFF));
}
if(where && where->land == laWildWest) {

View File

@ -749,6 +749,7 @@ void activateActiv(cell *c, bool msg);
struct charstyle {
int charid;
color_t skincolor, haircolor, dresscolor, swordcolor, dresscolor2, uicolor;
bool lefthanded;
};
string csname(charstyle& cs);