Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void StudioSetRemapColors(int top, int bottom)
- {
- cl_entity_s* ent = g_Studio.GetCurrentEntity();
- if (ent && ent->player)
- {
- hud_player_info_t entinfo;
- g_Engine.pfnGetPlayerInfo(ent->index, &entinfo);
- char filename[1024];
- sprintf(filename, "models/player/%s/%s.mdl", entinfo.model, entinfo.model);
- model_t* pModel = g_Engine.CL_LoadModel(filename, NULL);
- if (pModel)
- {
- studiohdr_t* pStudioHeader = (studiohdr_t*)g_Studio.Mod_Extradata(pModel);
- mstudiobbox_t* pHitbox = (mstudiobbox_t*)((byte*)pStudioHeader + pStudioHeader->hitboxindex);
- mstudiobone_t* pbones = (mstudiobone_t*)((byte*)pStudioHeader + pStudioHeader->boneindex);
- BoneMatrix_t* pBoneMatrix = (BoneMatrix_t*)g_Studio.StudioGetBoneTransform();
- float r, g, b;
- r = 1, g = 1, b = 1;
- if (cvar.BONES)
- {
- for (int i = 0; i < pStudioHeader->numbones - cvar.lowerbones; i++)
- {
- glDisable(GL_DEPTH_TEST);
- glDisable(GL_TEXTURE_2D);
- if (pbones[i].parent >= 0)
- {
- glLineWidth(1);
- glColor4f(r, g, b, 1.f);
- glBegin(GL_LINES);
- glVertex3f((*pBoneMatrix)[pbones[i].parent][0][3], (*pBoneMatrix)[pbones[i].parent][1][3], (*pBoneMatrix)[pbones[i].parent][2][3]);
- glVertex3f((*pBoneMatrix)[i][0][3], (*pBoneMatrix)[i][1][3], (*pBoneMatrix)[i][2][3]);
- glEnd();
- }
- glEnable(GL_DEPTH_TEST);
- glEnable(GL_TEXTURE_2D);
- }
- }
- if (cvar.HITBOX)
- {
- for (int i = 0; i < pStudioHeader->numhitboxes - cvar.lowerhitbox; i++)
- {
- Vector vCubePointsTrans[8], vCubePoints[8];
- vCubePoints[0] = Vector(pHitbox[i].bbmin.x, pHitbox[i].bbmin.y, pHitbox[i].bbmin.z);
- vCubePoints[1] = Vector(pHitbox[i].bbmin.x, pHitbox[i].bbmax.y, pHitbox[i].bbmin.z);
- vCubePoints[2] = Vector(pHitbox[i].bbmax.x, pHitbox[i].bbmax.y, pHitbox[i].bbmin.z);
- vCubePoints[3] = Vector(pHitbox[i].bbmax.x, pHitbox[i].bbmin.y, pHitbox[i].bbmin.z);
- vCubePoints[4] = Vector(pHitbox[i].bbmax.x, pHitbox[i].bbmax.y, pHitbox[i].bbmax.z);
- vCubePoints[5] = Vector(pHitbox[i].bbmin.x, pHitbox[i].bbmax.y, pHitbox[i].bbmax.z);
- vCubePoints[6] = Vector(pHitbox[i].bbmin.x, pHitbox[i].bbmin.y, pHitbox[i].bbmax.z);
- vCubePoints[7] = Vector(pHitbox[i].bbmax.x, pHitbox[i].bbmin.y, pHitbox[i].bbmax.z);
- for (unsigned int x = 0; x < 8; x++)
- VectorTransform(vCubePoints[x], (*pBoneMatrix)[pHitbox[i].bone], vCubePointsTrans[x]);
- glDisable(GL_TEXTURE_2D);
- glLineWidth(1);
- glColor4f(r, g, b, 1.f);
- for (unsigned int x = 0; x < 12; x++)
- {
- glBegin(GL_LINES);
- glVertex3fv(vCubePointsTrans[SkeletonHitboxMatrix[x][0]]);
- glVertex3fv(vCubePointsTrans[SkeletonHitboxMatrix[x][1]]);
- glEnd();
- }
- glEnable(GL_TEXTURE_2D);
- }
- }
- }
- }
- g_Studio.StudioSetRemapColors(top, bottom);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement