Tout se passe dans opengl.cpp excepté la cvar bien sur.
rajouter en haut du fichier avant toute fonction
Code:
bool bPolygon = false;
int polyCoords = 0;
float polyArray[32][3];
ensuite dans
Code:
void __stdcall glBegin_Hook(GLenum mode)
mettre
Code:
if( cvar.outlinewall )
{
bPolygon = (mode==GL_POLYGON);
}
polyCoords = 0;
juste avant la fin Code:
glBegin(mode);
}
dans
Code:
void __stdcall glVertex3fv_Hook(const GLfloat *v)
mettre
Code:
if(v && bPolygon)
{
polyArray[polyCoords][0] = v[0];
polyArray[polyCoords][1] = v[1];
polyArray[polyCoords++][2] = v[2];
}
avant
Code:
glVertex3fv(v);
ajoutez cette fonction ou vous voulez
Code:
void APIENTRY sys_glEnd()
{
glEnd();
if(cvar.outlinewall && bPolygon)
{
float curcolor[4];
glGetFloatv(GL_CURRENT_COLOR, curcolor);
glDisable(GL_TEXTURE_2D);
//glEnable(GL_LINE_SMOOTH);
glColor3f(0.0f,0.0f,0.0f);
glBegin(GL_LINE_LOOP);
for(int i = 0;i<polyCoords;i++)
glVertex3fv( polyArray );
glEnd();
glColor3f(curcolor[0],curcolor[1],curcolor[2]);
//glDisable(GL_LINE_SMOOTH);
glEnable(GL_TEXTURE_2D);
}
bPolygon = false;
polyCoords = 0;
}
et pour finir dans la fonction qui hook
Code:
void CheckForOpenGlHook(FARPROC* pProc,LPCTSTR lpProcName)
rajoutez
Code:
else if (!strcmp(lpProcName,"glEnd"))
*pProc = (FARPROC)&sys_glEnd;
Enjoy