mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-11-13 20:27:10 +00:00
fixed player ratling 3D models
This commit is contained in:
@@ -184,6 +184,7 @@ EX void ShadowV(const shiftmatrix& V, const hpcshape& bp, PPR prio IS(PPR::MONST
|
|||||||
#define VLEG at_smart_lof(V, cgi.LEG)
|
#define VLEG at_smart_lof(V, cgi.LEG)
|
||||||
#define VGROIN at_smart_lof(V, cgi.GROIN)
|
#define VGROIN at_smart_lof(V, cgi.GROIN)
|
||||||
#define VBODY at_smart_lof(V, cgi.BODY)
|
#define VBODY at_smart_lof(V, cgi.BODY)
|
||||||
|
#define VRAT (GDIM == 2 ? VHEAD : V * lzpush(cgi.AHEAD - zc(0.4) - zc(0.98) + cgi.HEAD))
|
||||||
#define VBODY1 at_smart_lof(V, cgi.BODY1)
|
#define VBODY1 at_smart_lof(V, cgi.BODY1)
|
||||||
#define VBODY2 at_smart_lof(V, cgi.BODY2)
|
#define VBODY2 at_smart_lof(V, cgi.BODY2)
|
||||||
#define VBODY3 at_smart_lof(V, cgi.BODY3)
|
#define VBODY3 at_smart_lof(V, cgi.BODY3)
|
||||||
@@ -500,7 +501,7 @@ EX bool drawMonsterType(eMonster m, cell *where, const shiftmatrix& V1, color_t
|
|||||||
if(m == moRoseLady) {
|
if(m == moRoseLady) {
|
||||||
// queuepoly(V, girl ? cgi.shGoatHead : cgi.shDemon, 0x800000FF);
|
// queuepoly(V, girl ? cgi.shGoatHead : cgi.shDemon, 0x800000FF);
|
||||||
// make her hair a bit darker to stand out in 3D
|
// make her hair a bit darker to stand out in 3D
|
||||||
queuepoly(VHEAD1, hair, evil ? 0x500050FF : GDIM == 3 ? 0x666A64FF : 0x332A22FF);
|
queuepoly(&hair == &cgi.shRatHead ? VRAT : VHEAD1, hair, evil ? 0x500050FF : GDIM == 3 ? 0x666A64FF : 0x332A22FF);
|
||||||
}
|
}
|
||||||
else if(m == moRoseBeauty) {
|
else if(m == moRoseBeauty) {
|
||||||
if(girl) {
|
if(girl) {
|
||||||
@@ -514,19 +515,20 @@ EX bool drawMonsterType(eMonster m, cell *where, const shiftmatrix& V1, color_t
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
queuepoly(VHEAD1, hair, evil ? 0xC00000FF : 0x332A22FF);
|
queuepoly(&hair == &cgi.shRatHead ? VRAT : VHEAD1, hair, evil ? 0xC00000FF : 0x332A22FF);
|
||||||
}
|
}
|
||||||
if(&hair == &cgi.shRatHead) {
|
if(&hair == &cgi.shRatHead) {
|
||||||
queuepoly(VHEAD, cgi.shWolf1, 0x008000FF);
|
auto V1 = VRAT;
|
||||||
queuepoly(VHEAD, cgi.shWolf2, 0x008000FF);
|
queuepoly(V1, cgi.shWolf1, 0x008000FF);
|
||||||
queuepoly(VHEAD, cgi.shWolf3, darkena(0x202020, 0, 0xFF));
|
queuepoly(V1, cgi.shWolf2, 0x008000FF);
|
||||||
|
queuepoly(V1, cgi.shWolf3, darkena(0x202020, 0, 0xFF));
|
||||||
}
|
}
|
||||||
else if(&hair == &cgi.shSkull) {
|
else if(&hair == &cgi.shSkull) {
|
||||||
queuepoly(VHEAD, cgi.shSkullEyes, darkena(0x202020, 0, 0xFF));
|
queuepoly(VHEAD, cgi.shSkullEyes, darkena(0x202020, 0, 0xFF));
|
||||||
}
|
}
|
||||||
else queuepoly(VHEAD, cgi.shPFace, facecolor);
|
else queuepoly(VHEAD, cgi.shPFace, facecolor);
|
||||||
if(id == pshRatling) queuepoly(VLEG, cgi.shRatTail, darkena(col, 0, 0xFF));
|
if(id == pshRatling) queuepoly(VLEG, cgi.shRatTail, darkena(col, 0, 0xFF));
|
||||||
humanoid_eyes(V, evil ? 0x0000C0FF : 0x00C000FF, facecolor);
|
if(id != pshRatling) humanoid_eyes(V, evil ? 0x0000C0FF : 0x00C000FF, facecolor);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1079,7 +1081,7 @@ EX bool drawMonsterType(eMonster m, cell *where, const shiftmatrix& V1, color_t
|
|||||||
}
|
}
|
||||||
#if MAXMDIM >= 4
|
#if MAXMDIM >= 4
|
||||||
else {
|
else {
|
||||||
shiftmatrix V1 = V * lzpush(cgi.AHEAD - zc(0.4) - zc(0.98) + cgi.HEAD); // * cpush(0, cgi.scalefactor * (-0.1));
|
shiftmatrix V1 = VRAT;
|
||||||
queuepoly(V1, cgi.shRatHead, darkena(col, 0, 0xFF));
|
queuepoly(V1, cgi.shRatHead, darkena(col, 0, 0xFF));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -502,21 +502,22 @@ EX void drawPlayer_humanoid(eMonster m, cell *where, const shiftmatrix& V, color
|
|||||||
// queuepoly(V, shHood, darkena(0xFF00, 1, 0xFF));
|
// queuepoly(V, shHood, darkena(0xFF00, 1, 0xFF));
|
||||||
}
|
}
|
||||||
else if(id == pshRatling) {
|
else if(id == pshRatling) {
|
||||||
queuepoly(VHEAD, cgi.shRatHead, fc(500, cs.haircolor, 1));
|
shiftmatrix V1 = VRAT; // * cpush(0, cgi.scalefactor * (-0.1));
|
||||||
queuepoly(VHEAD, cgi.shWolf1, cs.eyecolor);
|
queuepoly(V1, cgi.shRatHead, fc(500, cs.haircolor, 1));
|
||||||
queuepoly(VHEAD, cgi.shWolf2, cs.eyecolor);
|
queuepoly(V1, cgi.shWolf1, cs.eyecolor);
|
||||||
queuepoly(VHEAD, cgi.shWolf3, darkena(0x202020, 0, 0xFF));
|
queuepoly(V1, cgi.shWolf2, cs.eyecolor);
|
||||||
|
queuepoly(V1, cgi.shWolf3, darkena(0x202020, 0, 0xFF));
|
||||||
}
|
}
|
||||||
else if(id == pshSkeleton) {
|
else if(id == pshSkeleton) {
|
||||||
if(GDIM == 2) queuepoly(VHEAD, cgi.shSkull, fc(500, cs.haircolor, 1));
|
if(GDIM == 2) queuepoly(VHEAD, cgi.shSkull, fc(500, cs.haircolor, 1));
|
||||||
if(GDIM == 2) queuepoly(VHEAD1, cgi.shSkullEyes, 0x000000FF);
|
if(GDIM == 2) queuepoly(VHEAD1, cgi.shSkullEyes, 0x000000FF);
|
||||||
|
humanoid_eyes(V, cs.eyecolor, cs.skincolor);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
queuepoly(VHEAD, cgi.shPFace, fc(500, cs.skincolor, 1));
|
queuepoly(VHEAD, cgi.shPFace, fc(500, cs.skincolor, 1));
|
||||||
queuepoly(VHEAD1, (cs.charid&1) ? cgi.shFemaleHair : cgi.shPHead, fc(150, cs.haircolor, 2));
|
queuepoly(VHEAD1, (cs.charid&1) ? cgi.shFemaleHair : cgi.shPHead, fc(150, cs.haircolor, 2));
|
||||||
}
|
|
||||||
|
|
||||||
humanoid_eyes(V, cs.eyecolor, cs.skincolor);
|
humanoid_eyes(V, cs.eyecolor, cs.skincolor);
|
||||||
|
}
|
||||||
|
|
||||||
#if CAP_COMPLEX2
|
#if CAP_COMPLEX2
|
||||||
if(camelot::knighted)
|
if(camelot::knighted)
|
||||||
@@ -676,10 +677,11 @@ EX void drawMimic(eMonster m, cell *where, const shiftmatrix& V, color_t col, do
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(&body == &cgi.shYeti) {
|
if(&body == &cgi.shYeti) {
|
||||||
queuepoly(VHEAD1, cgi.shRatHead, darkena(col, 1, 0xC0));
|
shiftmatrix V1 = VRAT;
|
||||||
queuepoly(VHEAD, cgi.shWolf1, darkena(col, 2, 0xC0));
|
queuepoly(V1, cgi.shRatHead, darkena(col, 1, 0xC0));
|
||||||
queuepoly(VHEAD, cgi.shWolf2, darkena(col, 2, 0xC0));
|
queuepoly(V1, cgi.shWolf1, darkena(col, 2, 0xC0));
|
||||||
queuepoly(VHEAD, cgi.shWolf3, darkena(col, 2, 0xC0));
|
queuepoly(V1, cgi.shWolf2, darkena(col, 2, 0xC0));
|
||||||
|
queuepoly(V1, cgi.shWolf3, darkena(col, 2, 0xC0));
|
||||||
}
|
}
|
||||||
else if(&body == &cgi.shSkeletonBody) {
|
else if(&body == &cgi.shSkeletonBody) {
|
||||||
queuepoly(VHEAD1, cgi.shSkull, darkena(col, 1, 0xC0));
|
queuepoly(VHEAD1, cgi.shSkull, darkena(col, 1, 0xC0));
|
||||||
@@ -697,7 +699,7 @@ EX void drawMimic(eMonster m, cell *where, const shiftmatrix& V, color_t col, do
|
|||||||
queuepoly(VBODY2 * VBS, cgi.shPrincessDress, darkena(col, 1, 0XC0));
|
queuepoly(VBODY2 * VBS, cgi.shPrincessDress, darkena(col, 1, 0XC0));
|
||||||
if(id == pshRatling) queuepoly(VLEG, cgi.shRatTail, darkena(col, 1, 0xC0));
|
if(id == pshRatling) queuepoly(VLEG, cgi.shRatTail, darkena(col, 1, 0xC0));
|
||||||
|
|
||||||
humanoid_eyes(V, 0xFF, darkena(col, 0, 0x40));
|
if(&body != &cgi.shYeti) humanoid_eyes(V, 0xFF, darkena(col, 0, 0x40));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user