jewalky

Untitled

Jan 9th, 2017
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.29 KB | None | 0 0
  1. // This file implements scrollbars that are used in info and shop pages.
  2. //  note: compile qestscrn.acs ONLY
  3.  
  4. bool QSB_Scrollbar = false;
  5.  
  6. // this function returns changed position of scrollbar (if it's changed)
  7. function int QS_Scrollbar(int scr_x, int scr_y, int scr_w, int scr_h, int min, int max, int pos)
  8. {
  9.     if (pos < min) pos = min;
  10.     if (pos > max) pos = max;
  11.  
  12.     // draw scrollbar buttons.
  13.     bool scrollup = QS_MouseInRect(scr_x+scr_w, scr_y, 16, 16);
  14.     bool scrolldown = QS_MouseInRect(scr_x+scr_w, scr_y+scr_h-16, 16, 16);
  15.     int scrollspacelocal = (scr_h-32-24);
  16.     if (scrollspacelocal < 1) scrollspacelocal = 1;
  17.     int scrollspaceglobal = (max-min);
  18.     if (scrollspaceglobal < 1) scrollspaceglobal = 1;
  19.     int scrollpos = scrollspacelocal * pos / scrollspaceglobal;
  20.    
  21.     //
  22.     if (scrollup && QS_Mouse1)
  23.         SetFont("graphics/QSScrollUpD.png");
  24.     else if (scrollup)
  25.         SetFont("graphics/QSScrollUpA.png");
  26.     else SetFont("graphics/QSScrollUp.png");
  27.     HudMessage(s:"A"; QS_HudMsgFlags, QS_HudMsgId--, CR_UNTRANSLATED, ((scr_x+scr_w)<<16)+0.1, (scr_y<<16)+0.1, 0.029, 1.0);
  28.    
  29.     //
  30.     if (scrolldown && QS_Mouse1)
  31.         SetFont("graphics/QSScrollDnD.png");
  32.     else if (scrolldown)
  33.         SetFont("graphics/QSScrollDnA.png");
  34.     else SetFont("graphics/QSScrollDn.png");
  35.     HudMessage(s:"A"; QS_HudMsgFlags, QS_HudMsgId--, CR_UNTRANSLATED, ((scr_x+scr_w)<<16)+0.1, ((scr_y+scr_h-16)<<16)+0.1, 0.029, 1.0);
  36.    
  37.     //
  38.     bool scrollbar = QS_MouseInRect(scr_x+scr_w, scr_y+16+scrollpos, 16, 24);
  39.     if ((scrollbar && QS_Mouse1) || QSB_Scrollbar)
  40.         SetFont("graphics/QSScrollBarD.png");
  41.     else if (scrollbar)
  42.         SetFont("graphics/QSScrollBarA.png");
  43.     else SetFont("graphics/QSScrollBar.png");
  44.     HudMessage(s:"A"; QS_HudMsgFlags, QS_HudMsgId--, CR_UNTRANSLATED, ((scr_x+scr_w)<<16)+0.1, ((scr_y+16+scrollpos)<<16)+0.1, 0.029, 1.0);
  45.    
  46.     // handle clicks.
  47.     if (QS_Mouse1Click)
  48.     {
  49.         if (scrollup)
  50.             pos -= 16;
  51.         if (scrolldown)
  52.             pos += 16;
  53.         if (pos < min) pos = min;
  54.         if (pos > max) pos = max;
  55.         if (scrollbar)
  56.             QSB_Scrollbar = true;
  57.     }
  58.    
  59.     if (!QS_Mouse1) QSB_Scrollbar = false;
  60.    
  61.     if (QSB_Scrollbar)
  62.     {
  63.         scrollpos = QS_MouseY-(scr_y+16+12);
  64.         if (scrollpos < 0) scrollpos = 0;
  65.         if (scrollpos > scrollspacelocal) scrollpos = scrollspacelocal;
  66.         pos = scrollspaceglobal * scrollpos / scrollspacelocal;
  67.     }
  68.    
  69.     return pos;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment