1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-11-20 03:54:47 +00:00

3D:: Ratlings improved

This commit is contained in:
Zeno Rogue 2019-05-24 23:49:23 +02:00
parent 39a8e10df9
commit 4ac7f9043b
3 changed files with 22 additions and 5 deletions

View File

@ -804,10 +804,8 @@ void make_3d_models() {
make_head_3d(shPirateHood);
make_head_3d(shEyepatch);
make_head_3d(shSkull);
make_head_3d(shRatHead);
make_head_3d(shDemon);
make_head_3d(shGoatHead);
make_head_3d(shRatCape1);
make_head_3d(shJiangShiCap1);
make_head_3d(shJiangShiCap2);
make_head_3d(shTerraHead);
@ -862,6 +860,8 @@ void make_3d_models() {
make_revolution_cut(shWolfBody, 30, g, 0.01*S);
make_revolution_cut(shWolfHead, 180, geom3::AHEAD - geom3::ABODY +g);
make_revolution_cut(shRatHead, 180, geom3::AHEAD - geom3::ABODY +g, 0.04*scalefactor);
make_revolution_cut(shRatCape1, 180, geom3::AHEAD - geom3::ABODY +g);
make_revolution_cut(shFamiliarHead, 30, geom3::AHEAD - geom3::ABODY +g);
// make_abody_3d(shDogTorso, 0.01);
@ -1046,11 +1046,20 @@ void make_3d_models() {
adjust_eye(shKrakenEye, shKrakenHead, 0, 0, 1);
adjust_eye(shKrakenEye2, shKrakenEye, 0, 0, 1, 2);
shRatEye1 = shWolf1;
shRatEye2 = shWolf2;
shRatEye3 = shWolf3;
adjust_eye(shWolf1, shDogHead, geom3::AHEAD, geom3::AHEAD, 1);
adjust_eye(shWolf2, shDogHead, geom3::AHEAD, geom3::AHEAD, 1);
adjust_eye(shWolf3, shDogHead, geom3::AHEAD, geom3::AHEAD, 1);
adjust_eye(shFamiliarEye, shWolfHead, geom3::AHEAD, geom3::AHEAD, 1);
adjust_eye(shRatEye1, shRatHead, geom3::AHEAD, geom3::AHEAD, 1);
adjust_eye(shRatEye2, shRatHead, geom3::AHEAD, geom3::AHEAD, 1);
for(int i=shRatEye3.s; i<shRatEye3.e; i++) hpc[i] = xpush(-scalefactor * 0.02) * hpc[i];
adjust_eye(shRatEye3, shRatHead, geom3::AHEAD, geom3::AHEAD, 1);
adjust_eye(shWolfEyes, shWolfHead, geom3::AHEAD, geom3::AHEAD, 1);
adjust_eye(shReptileEye, shReptileHead, geom3::AHEAD, geom3::AHEAD, 1);

View File

@ -1864,18 +1864,25 @@ bool drawMonsterType(eMonster m, cell *where, const transmatrix& V1, color_t col
queuepoly(VHEAD, shWolf1, darkena(eyecol, 0, 0xFF));
queuepoly(VHEAD, shWolf2, darkena(eyecol, 0, 0xFF));
queuepoly(VHEAD, shWolf3, darkena(0x202020, 0, 0xFF));
if(m == moRatlingAvenger) queuepoly(VHEAD1, shRatCape1, 0x303030FF);
}
else {
transmatrix V1 = V * zpush(geom3::AHEAD - zc(0.4) - zc(0.925) + geom3::HEAD) * cpush(0, scalefactor * (-0.1));
queuepoly(V1, shWolfHead, darkena(col, 0, 0xFF));
transmatrix V1 = V * zpush(geom3::AHEAD - zc(0.4) - zc(0.98) + geom3::HEAD); // * cpush(0, scalefactor * (-0.1));
queuepoly(V1, shRatHead, darkena(col, 0, 0xFF));
/*
queuepoly(V1, shFamiliarEye, darkena(eyecol, 0, 0xFF));
queuepoly(V1 * Mirror, shFamiliarEye, darkena(eyecol, 0, 0xFF));
queuepoly(V1, shWolfEyes, darkena(col, 3, 0xFF));
*/
queuepoly(V1, shRatEye1, darkena(eyecol, 0, 0xFF));
queuepoly(V1, shRatEye2, darkena(eyecol, 0, 0xFF));
queuepoly(V1, shRatEye3, darkena(0x202020, 0, 0xFF));
if(m == moRatlingAvenger) queuepoly(V1, shRatCape1, 0x303030FF);
}
if(m == moRatlingAvenger) {
queuepoly(VBODY1 * VBS, shRatCape2, 0x484848FF);
queuepoly(VHEAD1, shRatCape1, 0x303030FF);
}
return false;
}

View File

@ -1691,6 +1691,7 @@ hpcshape
shHawk,
shCatBody, shCatLegs, shCatHead, shFamiliarHead, shFamiliarEye,
shWolf1, shWolf2, shWolf3,
shRatEye1, shRatEye2, shRatEye3,
shDogStripes,
shPBody, shPSword, shPKnife,
shFerocityM, shFerocityF,