mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2026-05-05 23:01:23 +00:00
improved armor models; head lower; configurable human eye color
This commit is contained in:
28
graph.cpp
28
graph.cpp
@@ -949,6 +949,15 @@ void drawTerraWarrior(const transmatrix& V, int t, int hp, double footphase) {
|
||||
}
|
||||
#endif
|
||||
|
||||
color_t skincolor = 0xD0C080FF;
|
||||
|
||||
void humanoid_eyes(const transmatrix& V, color_t ecol, color_t hcol = skincolor) {
|
||||
if(DIM == 3) {
|
||||
queuepoly(VHEAD, shPHeadOnly, hcol);
|
||||
queuepoly(VHEAD, shSkullEyes, ecol);
|
||||
}
|
||||
}
|
||||
|
||||
void drawPlayer(eMonster m, cell *where, const transmatrix& V, color_t col, double footphase) {
|
||||
charstyle& cs = getcs();
|
||||
|
||||
@@ -965,7 +974,7 @@ void drawPlayer(eMonster m, cell *where, const transmatrix& V, color_t col, doub
|
||||
queuepoly(VABODY, shWolfBody, fc(0, cs.skincolor, 0));
|
||||
queuepoly(VAHEAD, shFamiliarHead, fc(500, cs.haircolor, 2));
|
||||
if(!shmup::on || shmup::curtime >= shmup::getPlayer()->nextshot) {
|
||||
color_t col = items[itOrbDiscord] ? watercolor(0) : fc(314, cs.swordcolor, 3);
|
||||
color_t col = items[itOrbDiscord] ? watercolor(0) : fc(314, cs.eyecolor, 3);
|
||||
queuepoly(VAHEAD, shFamiliarEye, col);
|
||||
queuepoly(VAHEAD * Mirror, shFamiliarEye, col);
|
||||
}
|
||||
@@ -988,7 +997,7 @@ void drawPlayer(eMonster m, cell *where, const transmatrix& V, color_t col, doub
|
||||
queuepoly(VAHEAD, shDogHead, fc(150, cs.haircolor, 2));
|
||||
|
||||
if(!shmup::on || shmup::curtime >= shmup::getPlayer()->nextshot) {
|
||||
color_t col = items[itOrbDiscord] ? watercolor(0) : fc(314, cs.swordcolor, 3);
|
||||
color_t col = items[itOrbDiscord] ? watercolor(0) : fc(314, cs.eyecolor, 3);
|
||||
queuepoly(VAHEAD, shWolf1, col);
|
||||
queuepoly(VAHEAD, shWolf2, col);
|
||||
}
|
||||
@@ -1013,7 +1022,7 @@ void drawPlayer(eMonster m, cell *where, const transmatrix& V, color_t col, doub
|
||||
queuepoly(VABODY, shCatBody, fc(0, cs.skincolor, 0));
|
||||
queuepoly(VAHEAD, shCatHead, fc(150, cs.haircolor, 2));
|
||||
if(!shmup::on || shmup::curtime >= shmup::getPlayer()->nextshot) {
|
||||
color_t col = items[itOrbDiscord] ? watercolor(0) : fc(314, cs.swordcolor, 3);
|
||||
color_t col = items[itOrbDiscord] ? watercolor(0) : fc(314, cs.eyecolor, 3);
|
||||
queuepoly(VAHEAD * xpush(.04), shWolf1, col);
|
||||
queuepoly(VAHEAD * xpush(.04), shWolf2, col);
|
||||
}
|
||||
@@ -1096,6 +1105,8 @@ void drawPlayer(eMonster m, cell *where, const transmatrix& V, color_t col, doub
|
||||
queuepoly(VHEAD, shPFace, fc(500, cs.skincolor, 1));
|
||||
queuepoly(VHEAD1, (cs.charid&1) ? shFemaleHair : shPHead, fc(150, cs.haircolor, 2));
|
||||
}
|
||||
|
||||
humanoid_eyes(V, cs.eyecolor, cs.skincolor);
|
||||
|
||||
if(knighted)
|
||||
queuepoly(VBODY * VBS, shKnightCloak, darkena(cloakcolor(knighted), 1, 0xFF));
|
||||
@@ -1180,15 +1191,6 @@ void drawMimic(eMonster m, cell *where, const transmatrix& V, color_t col, doubl
|
||||
}
|
||||
}
|
||||
|
||||
color_t skincolor = 0xD0C080FF;
|
||||
|
||||
void humanoid_eyes(const transmatrix& V, color_t ecol, color_t hcol = skincolor) {
|
||||
if(DIM == 3) {
|
||||
queuepoly(VHEAD, shPHeadOnly, hcol);
|
||||
queuepoly(VHEAD, shSkullEyes, ecol);
|
||||
}
|
||||
}
|
||||
|
||||
bool drawMonsterType(eMonster m, cell *where, const transmatrix& V1, color_t col, double footphase) {
|
||||
|
||||
#if MAXMDIM >= 4
|
||||
@@ -1307,7 +1309,7 @@ bool drawMonsterType(eMonster m, cell *where, const transmatrix& V1, color_t col
|
||||
if(m == moRoseLady) {
|
||||
// queuepoly(V, girl ? shGoatHead : shDemon, 0x800000FF);
|
||||
// make her hair a bit darker to stand out in 3D
|
||||
queuepoly(VHEAD1, girl ? shFemaleHair : shPHead, evil ? 0x500050FF : DIM == 3 ? 0x433A32FF : 0x332A22FF);
|
||||
queuepoly(VHEAD1, girl ? shFemaleHair : shPHead, evil ? 0x500050FF : DIM == 3 ? 0x666A64FF : 0x332A22FF);
|
||||
}
|
||||
else if(m == moRoseBeauty) {
|
||||
if(girl) {
|
||||
|
||||
Reference in New Issue
Block a user