From dc30085b3fd8cd33e368d84fd47a0fe12187e061 Mon Sep 17 00:00:00 2001 From: FruitieX Date: Tue, 29 Jun 2010 13:21:28 +0300 Subject: [PATCH] (crappy, placeholder) move/resize cursors! Also force border size to be 10 for the resize checks so that it's never too small to make resizing hard --- gfx/menu/wickedx/cursor_move.tga | Bin 0 -> 10765 bytes gfx/menu/wickedx/cursor_resize.tga | Bin 0 -> 4736 bytes gfx/menu/wickedx/cursor_resize2.tga | Bin 0 -> 4736 bytes qcsrc/client/hud.qc | 64 ++++++++++++++++++++++++++-- 4 files changed, 61 insertions(+), 3 deletions(-) create mode 100644 gfx/menu/wickedx/cursor_move.tga create mode 100644 gfx/menu/wickedx/cursor_resize.tga create mode 100644 gfx/menu/wickedx/cursor_resize2.tga diff --git a/gfx/menu/wickedx/cursor_move.tga b/gfx/menu/wickedx/cursor_move.tga new file mode 100644 index 0000000000000000000000000000000000000000..02643169b2b03cc64033a82e41a1b623073600c5 GIT binary patch literal 10765 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 F@?TjDD`)@! literal 0 HcmV?d00001 diff --git a/gfx/menu/wickedx/cursor_resize.tga b/gfx/menu/wickedx/cursor_resize.tga new file mode 100644 index 0000000000000000000000000000000000000000..475e2244ff90e57d5268a54dab4677fee3af8a30 GIT binary patch literal 4736 zcmZvgSxi)C6vqc=7zP*?D+;X(*0vN0pj50|7n4R4ZPjQ&)HG?di?!~i4O&3BfLp0T z)e6)FTCJc}`^H;i;3?ru9{6YA?zMAIVt2>RJ#p@h4L+HsACL8~zo5;MrIZA+N0TEb<;F!v#s)iOe5lj= z?y_&^>e=rkZ)~u`{cG%8hxBtV56m!L5d!OR^gO$HssFzVJ$vQUH=juVksa>$;T_Vo zw?&TcYZ0gKV4FC-2ihdB|L}G>p;sJ!OamODGuV^pS*V!hdJgG%c>O}p^TDp&(sOXD z^c`xGp8c(I^vg|hZ1*N{j_=(fPS@94BYDQGZZnQXV=8= ziNCK5w9CM;U3T3$ur-4UD43ml-0vQR^x+X5Xw02~zU>R0R_ONY=ewU8^wFKty{}c; zKi_D=`mheT$!;}^5A4f}BQv1C2SJCh!pO-Z(tBuI2(WX{X6g89vlysZB958yTnOzB zX!xsQeCYU}BWI4PZ`$PGr|ad&&JU&iiw)v@``HGGWv~)h;Du0kfl94vd}Bj%ZS~XU zx@vi^xmG?{Q7>y(HOQKk4FVE^nLG*f#{XuvpoS(>YF2T6rJe_Rq)N}+vI3b`p3?7> z0U}!;7;zUQqL^zY4`iycIRE*A=_y(Ca$4ScB`x)p#Ri6SDB4HV#0g0vJ!BzsVo?St zo&Wsx8HEPYJiAoho?B|akq&jSoP%c_Vlhsj=ODTfmqAp~YAOn)d3K2`s!GceMFkmA z(HleJ6Ff}V5Rt@szvfYn=`2kug3$BJ3sk@oSzcXc(6GP)SVQj#zQXMU(SSxKF-JO) zvg1QtVOvvRFDT-QSk06>dnbIVNn70P6}9<+)wI0~Jkm2k4>RCj!oX@4q;Ax(B$xc0LJQ0lG|Tr;;^ZW#HSRC| zYn+d)I~8)FlGf>2HNRY8%M2RXVTC9BsQD4fu`s!+0_T;MFePR`V2}{N)#;MIMAHFTqQn=VyUIsMbgsRl{GeT?{^J{2P$?Mj7ooh8LtdwzSvId! z-d`|XR=@U=k)yd8GoblTP+ks_PlC?1CM^%-@XG3PgFzZp3Tl1{%AbSeQ;-vA2)#l{ zNg-g6CaU`|l%qN1aEH8kPKgN)4AP)fQ1=li?IUD5u5leQ%mxf_QQeKPiI64tvqyzR zXoLp_a?758=}c`iK!_X@VJa+->3~6+0QX5sjv3v|pC$J!kE0MA#{q-sqPm;Q&G{j6 z!hrRWhK^%`!-jO@_>xAJMg`IJ;jt6O4EJyT#xZo-Oi2%JE}ew1y>H%usm zQE)5#2A-rD&=hD6GzkTMsE4MJwl+FAx0Q-*d`~B5qd?NsSQQOqQYmv z;DjCwQVdiKRt#7SS`1vu!eAK0{Fx6n=o6hdY@{>z89uyepyMB7AmbooA>$!qBI6=s zBjY2H&o~JSG>Lk^22q2K`_K%l46Qc4+8|rRNXux;h>O5}o94HTd4YVgVL2C(!P-Xb zLWXUIZYFt#aI=7l8a1ko?_nU;Pey$k`csVm>=mp7?pjb_dShBVsHf5v2?I&^`e8ai zSR8B(NwJWyn6RJ#h;*onA@LOQ8H_$>N!;Jj(EpV$U@8U}H}= zaq2paLrLgL0Wy2~u}2_#4vNzSXfs|9a|O=6BvCr~*RrK`&DM1vuiLb-VcXhuAFXMO F{SSYo(*ghh literal 0 HcmV?d00001 diff --git a/gfx/menu/wickedx/cursor_resize2.tga b/gfx/menu/wickedx/cursor_resize2.tga new file mode 100644 index 0000000000000000000000000000000000000000..6c97fb8d14f86b720ff320ea9fe1e92258b0c373 GIT binary patch literal 4736 zcmZvgSx}W_7{?Eu!{Go&z&r|-idhjdfRebkIMe8imO2uPIn6ZMVr4ElHE4+P0V;+H zsR`tQr3sqaop+5hUOU};tyguYH(oTpJ-_EW@3+Ftdlt_3{GWY$6N!?9{ace*lbD~m z$5(xE^oM)b$7*`-UOrQM>d%prb;&y;gNtvCp4f16bfD?R*zxoP59yQBcA&xc z4?S|^<#9s3Js!M$`Sj!D%?pG7-WVHrDkKwfYJ9Q+$ROz-A39{5@zY(VfKTH?UBIakI+m+#N`48{>a>!ge=a|XSV@9wZhVfJkxbv9P|LsSn;OPEsh7V5fo(|*m?d>on zhrekx-Md=l-`mXb?>;vD@(Ax|dv=-Y=llN?%x7{OIRO>Zn80F#cw~30>D}9IoIP#E z>HfOKIEQz&nBs#wH=6@rY&Jc++f3iS4$~u#40Z1`SI_o57sLm0_Q|Q3^o%zXWXy%s z$ZJu1gag2bzG~5T@GZQvr(N|LJh;PL9PBg`BS-%c*d20GH#}$+8Ycj)W)NY4Jt8)6 zz%7P>1@8Q8ll;YXj0_`RQ#o8RqYk6>&q=7?v@Z@@4l^O z^w@rDfnm`8@X%6GG!HBRnDhOo8%?_N^NnWz_V>-+Pd13_I?U*a0}>90{}QO&ttp^H zTU?D^>Y5BPfwXp2gITw_!MwM!-n`RXYntn-O>=Galhuu{Z@ldR`5HtNsED{EF&w z`99suuP6$^`?)g9!fQZFu8>|f2S_oZ0%r>ReI&#PNDTB6fo>3!FBKz2&FvSZa?65x zg9c)$M$DojIKxxmHW6CDQEp=>4aHIuvr5v*yTJJ-67O$`_)*O-LHTox91-CL*_u~hFz+q^rp(ldUxJ!n zgz|itTr@{WxIwn6x1f9go2cGRT1eE~>jSRuMwv2nji4Zid6XEEdM9wi>{a zPhwfP!wuar9VWz-QNOFv)%=!R%NIhz4Kf^u0yr|NySiMRA0o%{aD&W-4Pg|GcnvrW zy;Lw{5fW}1u7w0H0jx16Q6W#N-8IxT=zZSuGa|wZGSY=?^O7|{u8DRf=5<7b8)PJ_ zo9k}*2o^m}b4_@kyVxBe;T9|vlnymqfV&o%Na4}RS<8|SDI_kWTR!T=FGK^aC29{X zg(-@n9LgC*a)P3%z*!*7BSV zU<_gmWDI5uXbftu2Hjx|bhw)tgeMe{m~oJ~4Sz5uGA=SUGCnd!GEOp9vJ0_o#U$5} zw8VoJ8)F0{1(KxVGs7)IF2k;ly*dCV8HJgxL*~}8x!6M#bD}fCfyBVg;LQNeAg&{M zlHoiCq=S4W55#D%+98TN`e$?%U?tGyAjz7*-WrldSBebIWaPy(=mB^32$m6+5|$HP zQ&OxME>I+jR2tGIM^xZCY>Yur11WS-a#tocu@q|*%Na{rNG8`p`2-mzz=#6e#YVx7 zf)vQ4`xjs;Tyjb@^j=G=C;$<8_0nP*QiIL)h*m1a&Io3W zoQITSDkhKFOA&iXqSq#JiPELN>XnLKt`rE~qcC1Fk0%56z*DNPUf1Zwjb7nQgM>?+ wI9ZxDLpPvc>*bJM6D7DXQi1)OB#I?}tu1Y9+t+`%e)Fb=t?Sl*u(mPrKYyju0ssI2 literal 0 HcmV?d00001 diff --git a/qcsrc/client/hud.qc b/qcsrc/client/hud.qc index 737f67fac..7071f83c2 100644 --- a/qcsrc/client/hud.qc +++ b/qcsrc/client/hud.qc @@ -1285,6 +1285,47 @@ float HUD_Panel_InputEvent(float bInputType, float nPrimary, float nSecondary) return true; // Suppress ALL other input } +float HUD_Panel_HighlightCheck() +{ + float i, border; + vector panelPos; + vector panelSize; + + for(i = 0; i < HUD_PANEL_NUM; ++i) + { + panelPos = HUD_Panel_GetPos(i); + panelSize = HUD_Panel_GetSize(i); + border = 10; // FORCED border so a small border size doesn't mean you can't resize + + // move + if(mousepos_x >= panelPos_x && mousepos_y >= panelPos_y && mousepos_x <= panelPos_x + panelSize_x && mousepos_y <= panelPos_y + panelSize_y) + { + return 1; + } + // resize from topleft border + else if(mousepos_x >= panelPos_x - border && mousepos_y >= panelPos_y - border && mousepos_x <= panelPos_x + 0.5 * panelSize_x && mousepos_y <= panelPos_y + 0.5 * panelSize_y) + { + return 2; + } + // resize from topright border + else if(mousepos_x >= panelPos_x + 0.5 * panelSize_x && mousepos_y >= panelPos_y - border && mousepos_x <= panelPos_x + panelSize_x + border && mousepos_y <= panelPos_y + 0.5 * panelSize_y) + { + return 3; + } + // resize from bottomleft border + else if(mousepos_x >= panelPos_x - border && mousepos_y >= panelPos_y + 0.5 * panelSize_y && mousepos_x <= panelPos_x + 0.5 * panelSize_x && mousepos_y <= panelPos_y + panelSize_y + border) + { + return 3; + } + // resize from bottomright border + else if(mousepos_x >= panelPos_x + 0.5 * panelSize_x && mousepos_y >= panelPos_y + 0.5 * panelSize_y && mousepos_x <= panelPos_x + panelSize_x + border && mousepos_y <= panelPos_y + panelSize_y + border) + { + return 2; + } + } + return 0; +} + void HUD_Panel_Highlight() { float i, border; @@ -1295,7 +1336,7 @@ void HUD_Panel_Highlight() { panelPos = HUD_Panel_GetPos(i); panelSize = HUD_Panel_GetSize(i); - border = HUD_Panel_GetBorder(i); + border = 10; // FORCED border so a small border size doesn't mean you can't resize // move if(mousepos_x >= panelPos_x && mousepos_y >= panelPos_y && mousepos_x <= panelPos_x + panelSize_x && mousepos_y <= panelPos_y + panelSize_y) @@ -1350,6 +1391,7 @@ void HUD_Panel_Highlight() } } +float highlightcheck; void HUD_Panel_Mouse() { // TODO: needs better check... is there any float that contains the current state of the menu? _menu_alpha isn't apparently updated the frame the menu gets enabled @@ -1375,8 +1417,6 @@ void HUD_Panel_Mouse() mousepos_x = bound(0, mousepos_x, vid_conwidth); mousepos_y = bound(0, mousepos_y, vid_conheight); - drawpic(mousepos, strcat("gfx/menu/", cvar_string("menu_skin"), "/cursor.tga"), '32 32 0', '1 1 1', 1, DRAWFLAG_NORMAL); - if(mouseClicked) { if(prevMouseClicked == 0) @@ -1421,6 +1461,24 @@ void HUD_Panel_Mouse() prevMouseClickedPos = mousepos; } } + else + { + highlightcheck = HUD_Panel_HighlightCheck(); + } + // draw cursor after performing move/resize to have the panel pos/size updated before highlightcheck + string cursor; + vector cursorsize; + cursorsize = '32 32 0'; + + if(highlightcheck == 0) + drawpic(mousepos, strcat("gfx/menu/", cvar_string("menu_skin"), "/cursor.tga"), '32 32 0', '1 1 1', 1, DRAWFLAG_NORMAL); + else if(highlightcheck == 1) + drawpic(mousepos - cursorsize * 0.5, strcat("gfx/menu/", cvar_string("menu_skin"), "/cursor_move.tga"), '32 32 0', '1 1 1', 1, DRAWFLAG_NORMAL); + else if(highlightcheck == 2) + drawpic(mousepos - cursorsize * 0.5, strcat("gfx/menu/", cvar_string("menu_skin"), "/cursor_resize.tga"), '32 32 0', '1 1 1', 1, DRAWFLAG_NORMAL); + else + drawpic(mousepos - cursorsize * 0.5, strcat("gfx/menu/", cvar_string("menu_skin"), "/cursor_resize2.tga"), '32 32 0', '1 1 1', 1, DRAWFLAG_NORMAL); + prevMouseClicked = mouseClicked; } -- 2.39.2