Guest User

Untitled

a guest
Apr 20th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.03 KB | None | 0 0
  1. bvec chcolor(0, 255, 0);
  2.  
  3. HVARF(crosshaircolor, 0, 0x00FF00, 0xFFFFFF,
  4. {
  5.     if(crosshaircolor <= 255) crosshaircolor |= (crosshaircolor<<8) | (crosshaircolor<<16);
  6.     chcolor = bvec((crosshaircolor>>16)&0xFF, (crosshaircolor>>8)&0xFF, crosshaircolor&0xFF);
  7. });
  8.  
  9. void drawcrosshair(int w, int h)
  10. {
  11.     bool windowhit = g3d_windowhit(true, false);
  12.     if(!windowhit && (hidehud || mainmenu)) return;
  13.     float cx = 0.5f, cy = 0.5f, chsize;
  14.     float x,y;
  15.     if(windowhit)
  16.     {
  17.         static Texture *cursor;
  18.         if(!cursor) cursor = textureload("media/interface/guicursor.png", 3, true);
  19.         chsize = cursorsize*w/1300.0f;
  20.         g3d_cursorpos(cx, cy);
  21.         x = cx*w - (windowhit ? 0 : chsize/2.0f);
  22.         y = cy*h - (windowhit ? 0 : chsize/2.0f);
  23.         if(cursor->bpp==4) glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  24.             else glBlendFunc(GL_ONE, GL_ONE);
  25.         glColor3f(1, 1, 1);
  26.         glBindTexture(GL_TEXTURE_2D, cursor->id);
  27.         glBegin(GL_TRIANGLE_STRIP);
  28.         glTexCoord2f(0, 0); glVertex2f(x,          y);
  29.         glTexCoord2f(1, 0); glVertex2f(x + chsize, y);
  30.         glTexCoord2f(0, 1); glVertex2f(x,          y + chsize);
  31.         glTexCoord2f(1, 1); glVertex2f(x + chsize, y + chsize);
  32.         glEnd();
  33.     }else if(!game::showscoreboard){
  34.         x = cx*w;
  35.         y = cy*h;
  36.         int s1 = 15, s2 = 5;
  37.         glDisable(GL_BLEND);
  38.         glDisable(GL_TEXTURE_2D);
  39.         lineshader->set();
  40.         glColor3ub(chcolor.r, chcolor.g, chcolor.b);
  41.         if(crosshairtype <= 1){
  42.             glLineWidth(2);
  43.             glBegin(GL_LINES);
  44.             glVertex2i(x-s1, y); glVertex2i(x-s2, y);
  45.             glVertex2i(x, y-s1); glVertex2i(x, y-s2);
  46.             glVertex2i(x+s1, y); glVertex2i(x+s2, y);
  47.             glVertex2i(x, y+s1); glVertex2i(x, y+s2);
  48.             glEnd();
  49.         }
  50.  
  51.         if(crosshairtype == 1)
  52.             glPointSize(2.0f);
  53.         else if(crosshairtype == 2)
  54.             glPointSize(4.0f);
  55.  
  56.         if(crosshairtype >= 1){
  57.             glBegin(GL_POINTS);
  58.             glVertex2f(x,y);
  59.             glVertex2f(-x,-y);
  60.             glEnd();
  61.         }
  62.  
  63.         glLineWidth(1);
  64.     }
  65. }
Add Comment
Please, Sign In to add comment