MCPcopy Create free account
hub / github.com/BZFlag-Dev/bzflag / draw3rdPersonTarget

Function draw3rdPersonTarget

src/bzflag/SceneRenderer.cpp:969–1029  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

967
968
969void draw3rdPersonTarget(SceneRenderer* /*renderer*/) {
970 LocalPlayer* myTank = LocalPlayer::getMyTank();
971
972 if (!myTank || !thirdPersonVars.b3rdPerson) {
973 return;
974 }
975
976 const float* myTankPos = myTank->getPosition();
977 const float* myTankDir = myTank->getForward();
978 const float muzzleHeight = myTank->getMuzzleHeight();
979
980 const float radCon = 57.295779513082320876798154814105f;
981
982 glPushMatrix();
983 float distance = thirdPersonVars.nearTargetDistance;
984 glTranslatef(myTankPos[0] + (myTankDir[0] * distance),
985 myTankPos[1] + (myTankDir[1] * distance),
986 myTankPos[2] + muzzleHeight);
987 glRotatef(myTank->getAngle() * radCon, 0.0f, 0.0f, 1.0f);
988
989 float size = thirdPersonVars.nearTargetSize;
990 glDisable(GL_TEXTURE_2D);
991 glDisable(GL_LIGHTING);
992
993 glColor4f(1.0f, 1.0f, 1.0f, 0.5f);
994 glBegin(GL_LINES);
995 glVertex3f(0.0f, 0.0f, 1.00f * size);
996 glVertex3f(0.0f, 0.0f, 0.25f * size);
997 glVertex3f(0.0f, 0.0f, -1.00f * size);
998 glVertex3f(0.0f, 0.0f, -0.25f * size);
999 glVertex3f(0.0f, 1.00f * size, 0.0f);
1000 glVertex3f(0.0f, 0.25f * size, 0.0f);
1001 glVertex3f(0.0f, -1.00f * size, 0.0f);
1002 glVertex3f(0.0f, -0.25f * size, 0.0f);
1003
1004 glEnd();
1005 glPopMatrix();
1006
1007 glPushMatrix();
1008 distance = thirdPersonVars.farTargetDistance;
1009 glTranslatef(myTankPos[0] + (myTankDir[0] * distance),
1010 myTankPos[1] + (myTankDir[1] * distance),
1011 myTankPos[2] + muzzleHeight);
1012 glRotatef(myTank->getAngle() * radCon, 0.0f, 0.0f, 1.0f);
1013 size = thirdPersonVars.farTargetSize;
1014 glColor4f(0.5f, 0.5f, 0.5f, 0.25f);
1015 glBegin(GL_LINES);
1016 glVertex3f(0.0f, 0.0f, 1.00f * size);
1017 glVertex3f(0.0f, 0.0f, 0.25f * size);
1018 glVertex3f(0.0f, 0.0f, -1.00f * size);
1019 glVertex3f(0.0f, 0.0f, -0.25f * size);
1020 glVertex3f(0.0f, 1.00f * size, 0.0f);
1021 glVertex3f(0.0f, 0.25f * size, 0.0f);
1022 glVertex3f(0.0f, -1.00f * size, 0.0f);
1023 glVertex3f(0.0f, -0.25f * size, 0.0f);
1024 glEnd();
1025
1026 glEnable(GL_TEXTURE_2D);

Callers 1

doRenderMethod · 0.85

Calls 3

getMuzzleHeightMethod · 0.80
getAngleMethod · 0.80
getPositionMethod · 0.45

Tested by

no test coverage detected