Advertisement
Guest User

Untitled

a guest
Jan 18th, 2020
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.80 KB | None | 0 0
  1. void StudioSetRemapColors(int top, int bottom)
  2. {
  3. cl_entity_s* ent = g_Studio.GetCurrentEntity();
  4. if (ent && ent->player)
  5. {
  6. hud_player_info_t entinfo;
  7. g_Engine.pfnGetPlayerInfo(ent->index, &entinfo);
  8. char filename[1024];
  9. sprintf(filename, "models/player/%s/%s.mdl", entinfo.model, entinfo.model);
  10. model_t* pModel = g_Engine.CL_LoadModel(filename, NULL);
  11.  
  12. if (pModel)
  13. {
  14. studiohdr_t* pStudioHeader = (studiohdr_t*)g_Studio.Mod_Extradata(pModel);
  15. mstudiobbox_t* pHitbox = (mstudiobbox_t*)((byte*)pStudioHeader + pStudioHeader->hitboxindex);
  16. mstudiobone_t* pbones = (mstudiobone_t*)((byte*)pStudioHeader + pStudioHeader->boneindex);
  17. BoneMatrix_t* pBoneMatrix = (BoneMatrix_t*)g_Studio.StudioGetBoneTransform();
  18. float r, g, b;
  19. r = 1, g = 1, b = 1;
  20. if (cvar.BONES)
  21. {
  22. for (int i = 0; i < pStudioHeader->numbones - cvar.lowerbones; i++)
  23. {
  24. glDisable(GL_DEPTH_TEST);
  25. glDisable(GL_TEXTURE_2D);
  26. if (pbones[i].parent >= 0)
  27. {
  28. glLineWidth(1);
  29. glColor4f(r, g, b, 1.f);
  30. glBegin(GL_LINES);
  31. glVertex3f((*pBoneMatrix)[pbones[i].parent][0][3], (*pBoneMatrix)[pbones[i].parent][1][3], (*pBoneMatrix)[pbones[i].parent][2][3]);
  32. glVertex3f((*pBoneMatrix)[i][0][3], (*pBoneMatrix)[i][1][3], (*pBoneMatrix)[i][2][3]);
  33. glEnd();
  34. }
  35. glEnable(GL_DEPTH_TEST);
  36. glEnable(GL_TEXTURE_2D);
  37. }
  38. }
  39. if (cvar.HITBOX)
  40. {
  41. for (int i = 0; i < pStudioHeader->numhitboxes - cvar.lowerhitbox; i++)
  42. {
  43. Vector vCubePointsTrans[8], vCubePoints[8];
  44.  
  45. vCubePoints[0] = Vector(pHitbox[i].bbmin.x, pHitbox[i].bbmin.y, pHitbox[i].bbmin.z);
  46. vCubePoints[1] = Vector(pHitbox[i].bbmin.x, pHitbox[i].bbmax.y, pHitbox[i].bbmin.z);
  47. vCubePoints[2] = Vector(pHitbox[i].bbmax.x, pHitbox[i].bbmax.y, pHitbox[i].bbmin.z);
  48. vCubePoints[3] = Vector(pHitbox[i].bbmax.x, pHitbox[i].bbmin.y, pHitbox[i].bbmin.z);
  49. vCubePoints[4] = Vector(pHitbox[i].bbmax.x, pHitbox[i].bbmax.y, pHitbox[i].bbmax.z);
  50. vCubePoints[5] = Vector(pHitbox[i].bbmin.x, pHitbox[i].bbmax.y, pHitbox[i].bbmax.z);
  51. vCubePoints[6] = Vector(pHitbox[i].bbmin.x, pHitbox[i].bbmin.y, pHitbox[i].bbmax.z);
  52. vCubePoints[7] = Vector(pHitbox[i].bbmax.x, pHitbox[i].bbmin.y, pHitbox[i].bbmax.z);
  53.  
  54. for (unsigned int x = 0; x < 8; x++)
  55. VectorTransform(vCubePoints[x], (*pBoneMatrix)[pHitbox[i].bone], vCubePointsTrans[x]);
  56.  
  57. glDisable(GL_TEXTURE_2D);
  58. glLineWidth(1);
  59. glColor4f(r, g, b, 1.f);
  60. for (unsigned int x = 0; x < 12; x++)
  61. {
  62. glBegin(GL_LINES);
  63. glVertex3fv(vCubePointsTrans[SkeletonHitboxMatrix[x][0]]);
  64. glVertex3fv(vCubePointsTrans[SkeletonHitboxMatrix[x][1]]);
  65. glEnd();
  66. }
  67. glEnable(GL_TEXTURE_2D);
  68. }
  69. }
  70. }
  71. }
  72. g_Studio.StudioSetRemapColors(top, bottom);
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement