From 7a62e8d8b523963149719bd1e0a56b84d3a4f128 Mon Sep 17 00:00:00 2001 From: Richard Allen Date: Wed, 24 Jul 2002 15:30:51 +0000 Subject: [PATCH] Added the UI files to cvs --- reaction/uifiles/assets/black.jpg | Bin 0 -> 643 bytes reaction/uifiles/assets/fake_gradient.tga | Bin 0 -> 24059 bytes reaction/uifiles/assets/fake_gradient_75.tga | Bin 0 -> 18075 bytes reaction/uifiles/assets/gradientbar2.tga | Bin 0 -> 12203 bytes reaction/uifiles/assets/halfgradleft.tga | Bin 0 -> 16923 bytes reaction/uifiles/assets/halfgradright.tga | Bin 0 -> 12155 bytes reaction/uifiles/assets/idlogo.tga | Bin 0 -> 3864 bytes reaction/uifiles/assets/mapshot01.jpg | Bin 0 -> 105171 bytes reaction/uifiles/assets/mapshot02.jpg | Bin 0 -> 90781 bytes reaction/uifiles/assets/mapshot03.jpg | Bin 0 -> 115605 bytes .../uifiles/assets/rq3-ingame-background.tga | Bin 0 -> 667 bytes .../uifiles/assets/rq3-ingame-loadout.tga | Bin 0 -> 5432 bytes .../assets/rq3-ingame-shadow-bottom.tga | Bin 0 -> 667 bytes .../uifiles/assets/rq3-ingame-shadow-c1.tga | Bin 0 -> 3001 bytes .../uifiles/assets/rq3-ingame-shadow-c2.tga | Bin 0 -> 3001 bytes .../uifiles/assets/rq3-ingame-shadow-c3.tga | Bin 0 -> 3001 bytes .../uifiles/assets/rq3-ingame-shadow-c4.tga | Bin 0 -> 3001 bytes .../assets/rq3-ingame-shadow-right.tga | Bin 0 -> 6043 bytes reaction/uifiles/assets/rq3-ingame-title.tga | Bin 0 -> 3995 bytes reaction/uifiles/assets/rq3-main-box-1.tga | Bin 0 -> 667 bytes reaction/uifiles/assets/rq3-main-box-2.tga | Bin 0 -> 1636 bytes reaction/uifiles/assets/rq3-main-box-3.tga | Bin 0 -> 1636 bytes reaction/uifiles/assets/rq3-main-shadow-1.tga | Bin 0 -> 603 bytes reaction/uifiles/assets/rq3-main-shadow-2.tga | Bin 0 -> 603 bytes .../uifiles/assets/rq3-ssg-background.jpg | Bin 0 -> 6520 bytes reaction/uifiles/assets/scrollbar.tga | Bin 0 -> 619 bytes .../uifiles/assets/scrollbar_arrow_dwn_a.tga | Bin 0 -> 897 bytes .../uifiles/assets/scrollbar_arrow_left.tga | Bin 0 -> 1077 bytes .../uifiles/assets/scrollbar_arrow_right.tga | Bin 0 -> 1077 bytes .../uifiles/assets/scrollbar_arrow_up_a.tga | Bin 0 -> 897 bytes reaction/uifiles/assets/scrollbar_thumb.tga | Bin 0 -> 1563 bytes reaction/uifiles/assets/slider2.tga | Bin 0 -> 8731 bytes reaction/uifiles/assets/sliderbutt_1.tga | Bin 0 -> 2587 bytes reaction/uifiles/assets/static_1.tga | Bin 0 -> 99087 bytes reaction/uifiles/assets/static_2.tga | Bin 0 -> 99087 bytes reaction/uifiles/assets/static_3.tga | Bin 0 -> 99091 bytes reaction/uifiles/assets/white.tga | Bin 0 -> 667 bytes reaction/uifiles/cdkey.menu | 344 ++++ reaction/uifiles/connect.menu | 84 + reaction/uifiles/controls.menu | 1542 +++++++++++++++++ reaction/uifiles/createfavorite.menu | 122 ++ reaction/uifiles/createserver.menu | 1159 +++++++++++++ reaction/uifiles/credit.menu | 1446 ++++++++++++++++ reaction/uifiles/demo.menu | 264 +++ reaction/uifiles/error.menu | 106 ++ reaction/uifiles/fight.menu | 770 ++++++++ reaction/uifiles/findplayer.menu | 184 ++ reaction/uifiles/hud.menu | 803 +++++++++ reaction/uifiles/hud.txt | 7 + reaction/uifiles/hud2.txt | 7 + reaction/uifiles/ingame.menu | 446 +++++ reaction/uifiles/ingame.txt | 23 + reaction/uifiles/ingame_about.menu | 318 ++++ reaction/uifiles/ingame_addbot.menu | 128 ++ reaction/uifiles/ingame_callvote.menu | 334 ++++ reaction/uifiles/ingame_controls.menu | 1019 +++++++++++ reaction/uifiles/ingame_devmode.menu | 293 ++++ reaction/uifiles/ingame_ignore.menu | 136 ++ reaction/uifiles/ingame_item.menu | 249 +++ reaction/uifiles/ingame_join.menu | 184 ++ reaction/uifiles/ingame_join_dm.menu | 122 ++ reaction/uifiles/ingame_leave.menu | 343 ++++ reaction/uifiles/ingame_matchmode.menu | 245 +++ reaction/uifiles/ingame_options.menu | 572 ++++++ reaction/uifiles/ingame_orders.menu | 481 +++++ reaction/uifiles/ingame_player.menu | 230 +++ reaction/uifiles/ingame_scoreffa.menu | 452 +++++ reaction/uifiles/ingame_serverinfo.menu | 63 + reaction/uifiles/ingame_system.menu | 611 +++++++ reaction/uifiles/ingame_tkok.menu | 124 ++ reaction/uifiles/ingame_vote.menu | 161 ++ reaction/uifiles/ingame_vote2.menu | 71 + reaction/uifiles/ingame_weapon.menu | 329 ++++ reaction/uifiles/joinserver.menu | 1026 +++++++++++ reaction/uifiles/main.menu | 408 +++++ reaction/uifiles/main2.menu | 362 ++++ reaction/uifiles/menudef.h | 347 ++++ reaction/uifiles/menus.txt | 32 + reaction/uifiles/min_hud.menu | 674 +++++++ reaction/uifiles/mod.menu | 264 +++ reaction/uifiles/options.menu | 944 ++++++++++ reaction/uifiles/password.menu | 89 + reaction/uifiles/player.menu | 285 +++ reaction/uifiles/quit.menu | 94 + reaction/uifiles/serverinfo.menu | 107 ++ reaction/uifiles/setup.menu | 494 ++++++ reaction/uifiles/specify.menu | 121 ++ reaction/uifiles/system.menu | 1182 +++++++++++++ reaction/uifiles/vid_restart.menu | 194 +++ 89 files changed, 20395 insertions(+) create mode 100644 reaction/uifiles/assets/black.jpg create mode 100644 reaction/uifiles/assets/fake_gradient.tga create mode 100644 reaction/uifiles/assets/fake_gradient_75.tga create mode 100644 reaction/uifiles/assets/gradientbar2.tga create mode 100644 reaction/uifiles/assets/halfgradleft.tga create mode 100644 reaction/uifiles/assets/halfgradright.tga create mode 100644 reaction/uifiles/assets/idlogo.tga create mode 100644 reaction/uifiles/assets/mapshot01.jpg create mode 100644 reaction/uifiles/assets/mapshot02.jpg create mode 100644 reaction/uifiles/assets/mapshot03.jpg create mode 100644 reaction/uifiles/assets/rq3-ingame-background.tga create mode 100644 reaction/uifiles/assets/rq3-ingame-loadout.tga create mode 100644 reaction/uifiles/assets/rq3-ingame-shadow-bottom.tga create mode 100644 reaction/uifiles/assets/rq3-ingame-shadow-c1.tga create mode 100644 reaction/uifiles/assets/rq3-ingame-shadow-c2.tga create mode 100644 reaction/uifiles/assets/rq3-ingame-shadow-c3.tga create mode 100644 reaction/uifiles/assets/rq3-ingame-shadow-c4.tga create mode 100644 reaction/uifiles/assets/rq3-ingame-shadow-right.tga create mode 100644 reaction/uifiles/assets/rq3-ingame-title.tga create mode 100644 reaction/uifiles/assets/rq3-main-box-1.tga create mode 100644 reaction/uifiles/assets/rq3-main-box-2.tga create mode 100644 reaction/uifiles/assets/rq3-main-box-3.tga create mode 100644 reaction/uifiles/assets/rq3-main-shadow-1.tga create mode 100644 reaction/uifiles/assets/rq3-main-shadow-2.tga create mode 100644 reaction/uifiles/assets/rq3-ssg-background.jpg create mode 100644 reaction/uifiles/assets/scrollbar.tga create mode 100644 reaction/uifiles/assets/scrollbar_arrow_dwn_a.tga create mode 100644 reaction/uifiles/assets/scrollbar_arrow_left.tga create mode 100644 reaction/uifiles/assets/scrollbar_arrow_right.tga create mode 100644 reaction/uifiles/assets/scrollbar_arrow_up_a.tga create mode 100644 reaction/uifiles/assets/scrollbar_thumb.tga create mode 100644 reaction/uifiles/assets/slider2.tga create mode 100644 reaction/uifiles/assets/sliderbutt_1.tga create mode 100644 reaction/uifiles/assets/static_1.tga create mode 100644 reaction/uifiles/assets/static_2.tga create mode 100644 reaction/uifiles/assets/static_3.tga create mode 100644 reaction/uifiles/assets/white.tga create mode 100644 reaction/uifiles/cdkey.menu create mode 100644 reaction/uifiles/connect.menu create mode 100644 reaction/uifiles/controls.menu create mode 100644 reaction/uifiles/createfavorite.menu create mode 100644 reaction/uifiles/createserver.menu create mode 100644 reaction/uifiles/credit.menu create mode 100644 reaction/uifiles/demo.menu create mode 100644 reaction/uifiles/error.menu create mode 100644 reaction/uifiles/fight.menu create mode 100644 reaction/uifiles/findplayer.menu create mode 100644 reaction/uifiles/hud.menu create mode 100644 reaction/uifiles/hud.txt create mode 100644 reaction/uifiles/hud2.txt create mode 100644 reaction/uifiles/ingame.menu create mode 100644 reaction/uifiles/ingame.txt create mode 100644 reaction/uifiles/ingame_about.menu create mode 100644 reaction/uifiles/ingame_addbot.menu create mode 100644 reaction/uifiles/ingame_callvote.menu create mode 100644 reaction/uifiles/ingame_controls.menu create mode 100644 reaction/uifiles/ingame_devmode.menu create mode 100644 reaction/uifiles/ingame_ignore.menu create mode 100644 reaction/uifiles/ingame_item.menu create mode 100644 reaction/uifiles/ingame_join.menu create mode 100644 reaction/uifiles/ingame_join_dm.menu create mode 100644 reaction/uifiles/ingame_leave.menu create mode 100644 reaction/uifiles/ingame_matchmode.menu create mode 100644 reaction/uifiles/ingame_options.menu create mode 100644 reaction/uifiles/ingame_orders.menu create mode 100644 reaction/uifiles/ingame_player.menu create mode 100644 reaction/uifiles/ingame_scoreffa.menu create mode 100644 reaction/uifiles/ingame_serverinfo.menu create mode 100644 reaction/uifiles/ingame_system.menu create mode 100644 reaction/uifiles/ingame_tkok.menu create mode 100644 reaction/uifiles/ingame_vote.menu create mode 100644 reaction/uifiles/ingame_vote2.menu create mode 100644 reaction/uifiles/ingame_weapon.menu create mode 100644 reaction/uifiles/joinserver.menu create mode 100644 reaction/uifiles/main.menu create mode 100644 reaction/uifiles/main2.menu create mode 100644 reaction/uifiles/menudef.h create mode 100644 reaction/uifiles/menus.txt create mode 100644 reaction/uifiles/min_hud.menu create mode 100644 reaction/uifiles/mod.menu create mode 100644 reaction/uifiles/options.menu create mode 100644 reaction/uifiles/password.menu create mode 100644 reaction/uifiles/player.menu create mode 100644 reaction/uifiles/quit.menu create mode 100644 reaction/uifiles/serverinfo.menu create mode 100644 reaction/uifiles/setup.menu create mode 100644 reaction/uifiles/specify.menu create mode 100644 reaction/uifiles/system.menu create mode 100644 reaction/uifiles/vid_restart.menu diff --git a/reaction/uifiles/assets/black.jpg b/reaction/uifiles/assets/black.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ad99e5dfe320f0ce9a3d7d4f20fc8d3bca315e34 GIT binary patch literal 643 zcmex=9X@jO*zpr5PhGlvPb?HxGHT=yahkYr<3UbkKb$@|Xn~>=}NX>e5)igoOG3-vj_3Udyfk literal 0 HcmV?d00001 diff --git a/reaction/uifiles/assets/fake_gradient.tga b/reaction/uifiles/assets/fake_gradient.tga new file mode 100644 index 0000000000000000000000000000000000000000..69cc7e4444ed414577857da57870cfc4bdfa458c GIT binary patch literal 24059 zcmeI4X((-b7{=E&J8~uSyp2h&%=4^$wR5o9=J`r;P1`(6l6gpyS(0RyBpH(=8IvR# zk|fD+B}pRZt#dk`&bj$;KR)ZruHApN)_UJxtN(i6_jwrR3-j|}u^DA1@8jd+?d|RL z_4VcD<@x#f>FMe5@$uo|;qLD4=H}-5`ughX>hkjP;^N}`{QT_f?BwL+=;-M1@bKW^ zV1IvqZ*OmRcXxYxdvkMheSLjxZEbaRb!BB`d3kwhX=!0$VQy}2W@cu3dU|SVYI1UN zVq#)!Y;0s?WN2t;U|^uXzrU}queZ0ir>Cc@tE;1Ej2YYIXO8oF)<+_ zAwE7nE-o%MHa0psIx;dcJUl!!G&DFkI504f&*%I3`T6?#dV70&d3kZUTu)C=4u|9J z?(XX9>g??7=;&x~Z*OaBYi(_9X=!P0ZfD=Q--BP}g0B_$;xAt5FvCL$stBqUTvq0eWrSi-`> zqN1YW;^LB$lC*>t(sDXUUS3{NQBhf0Syfe4U0q#MQ*(m{>FF657|>%>hQdQZqEJ!5l9G~AQc?s0L3(<6W@ct~c6M%VZhn4#VPRo$ zaWRFQ0#D(usHmu_s;a4}sjI7NXlS4mQKBeat*x!??d_eNo!#BtluSw~C6>}VI5;>w zJUlu&IzB#5$tMH|1j1o^j{HRSd0|2 zCoav{F@JnIo<9uPd4Kpc1gW`0ANT822{ElVUMGOaKXiLQi1NOU2bh>#*8BqEFu ziHIU1BGQVGh^|CL7rPT(>>|xK%+Sj)L(ju^o<#OJd#!J6&e?md?^{B=7cWgw|H^6c#F?(gsK?d|RE?(XdDY;A3A zY;3Hpt*x%EuB@!Y0;qb`FNGKE<8X6iL92^)J2nK`w{r!D?eZ9TC-QC@RK%lFutFyDSqoc#`_qVsV zx3;!6H#avmHTitL#>U2mh6bnI-RAZr4EOq zxVX5esHm{8&}y|76cku2mi+vDlgVT>8ufa;R;$%$G-|b4rBW%C%B-v`xm=!^nVFH1 z5ll}{H%X;ZnM|foD6+G&b8>Pp3S)7HPNy>%47s_vd3kwevl&mtvoQnavDs{PyS=2O zq^ztAR=^fm1iN5eRaI3@O-)^09ju1!@Bn_m8~D`H($dz}1~1_&Jci%!9vJlW^Z*Z_ z0&IW~Z~|JuYEG#T7Eg>?952A!vt*@_d zZfJ!z`w{M0xo73MhUXfdeR=j}euViE=Fpf!V-AgZR_0lmi)SvL^%~Y| zSkq%ok9A+xeaQ_VH-P*R@<+%qBFBgvBl6J5LnBv_Tt)I($!8_!nVe_x;>nArc7oao z>T9U4p$3Z@ENZZ*)1yw0T25*?srRMcmzr>D!r3=~eFNBA;{WX}agio@Gu%>41gFZ=bEUTcsWl{)1& N^%s*usgi#cKL8U1(!T%z literal 0 HcmV?d00001 diff --git a/reaction/uifiles/assets/gradientbar2.tga b/reaction/uifiles/assets/gradientbar2.tga new file mode 100644 index 0000000000000000000000000000000000000000..27727129cd8c3eefb497409054962048e11846cb GIT binary patch literal 12203 zcmeI&e`w5c9LMp`IgI(Sg^19}v^CxGGekr?bC=n*+paBZwNh-E)1p?ZB_bkXqKRk{ z5s}5THBHmBh$f3fL_}CbWO1Hvv_BNxzv}g^$G7Xc`hM^8>-~9uJ|E|jUEk$Nb-qD$ z@p#-7ar0sz24g5vFao162IDXRK1{|GWMC??Fdefn2lKE1i?9R%EJFyn2qS_hicx}6 zlwlQCqXLzPp$Z#OjT+Qq6SiO*c3>CwU?2A5AP(UOj^Q{?;1tf_94?>{mvIFxxQc7I zjvMI2E!@FfbmIXY;xV4$IbPy5-l7K|@Cjegi|_XExRvxbe8p#c#CyEM8@$2`Ji`+_ zf<5Uz?x72}aTE4t9cV`zTG5OqT*5`1$61`lN!Uv?;3y8G9tU70wimmx6Wg&Bn_(qw zC0>JSSWQ@sSk0_OIjqL4=Bx%wu@d%Q3z3gJn?HXR`Y8nHEEYs97_SU?IRf+&hn0t;Xk z$Sj~)V5>kSEZ|w-vjAv;&;nvDG!^Nj6gtq3HngG{P0&jVb*xI1c290(e35eZL@~Grd$s-*> z$)mQ^wLzn^A`At7WFj4D&{+{3g3`{T4ngU3Up=Ftl1C+vGy^4%|HrY_9*-}<%O&_b z{p{~0;5=@K>q;8#QrwJ$%k%dE`fyqKx(&X_n%H_@xGMIKXSe}7xpB@6W{wT zL=lQniZYbL1ve^Ci7HgXgId&~9$xt1MA;t0n$!70vgjtgAk3fH*7E$(oS2Rz~l z&v-!suXw{dKJW>VK;Ls{X6`zv};5|Izx7*8jBrr}ba0|7!hT>;KAsDF5N5M&N@V z%Ks?;qx=^qg3Zm&?9cbUl>brwNBJM+f0X}G{zv&A<$sj_QT|8yALW0P|55%&`5)zf zl>gEFf69O9{!cfxLgoLI|5N_&AM<~SJS)d$a_pyW**}5Qe=qzzX785y%-@T`10!Q` tD>57#x5AUL%r5C$#yB(HCVeBnq~Uin+R+*43Pyr$p_-niU~9l*z5t(H6fXb( literal 0 HcmV?d00001 diff --git a/reaction/uifiles/assets/halfgradright.tga b/reaction/uifiles/assets/halfgradright.tga new file mode 100644 index 0000000000000000000000000000000000000000..9a4f8e8c2a6df522cdef307fe2c086d35ee93b00 GIT binary patch literal 12155 zcmeI&Z$v{;7{~Eb8B;_=M7km(8xawSxalfuwe?3NMJ%z^jEGc3L_{PaA|fIY5fKrI zh=_U*oPy%>Afo8RSQuASNL@$5e5p64;9(4>wzV;Rf4`o+7XtBqlNb72?s|f==!suy{Fi=`l zT2xw8TGV!vcJ}xeXcJYNsDy#`t5q6M6-HGU6}(hiRBcgZTvg0j6sb8u%?X5o`aslj zLl`J6DlIB4DlMvKPwkQX3)G3KPE^9+f17@jc~*{x$#I;9WuJjmZ~M<{_FdM;4ibq literal 0 HcmV?d00001 diff --git a/reaction/uifiles/assets/idlogo.tga b/reaction/uifiles/assets/idlogo.tga new file mode 100644 index 0000000000000000000000000000000000000000..6abebc36fb023cb8c4eb8a65c2f7ffef04d57b45 GIT binary patch literal 3864 zcmeHKTTkO@880v#3d3+Jr$Xt0p6P*}X@M3Br3at~pd4DdEif<~W?-hwjIORGJEPIv z3qOMU1@uCV7v2~zoCM>|#%PS*=tdLQWaGxfO=fqZkI(b8@1G^BWOw4d-OOc-pSirHK}aqv-O?Dk1I#nSGlc)4_0!KD~m(@(-C#wPuv0H zmDVu$Yp2KXgFD^wu)L#r!emqZd^tONwX_ntT3wsF%5E-P#aBaDi^;&%T+H)AG0>Iz z)(w>I-p;^wIRWLvG~B-|!r}c5*e=Imr;>n!(=~YV)?Ik`r7|2}Y`@w&Ui(MBnD~A9 zC$l>lq!qB_PC=UOuCT#_czf9|%d3%Uau7l!oart50%MxNs=T8G+)C;MiCaFTh2{G7(HNft3hMvXD?j?(!+ztyS&*KvPj@M;~=v)vpEOxbO7e!F1GlrTBwn(gWxH@6PYQP^ywISY+Ql4 zyCOlS*P}lch+X1FXBfSp%%n`E1Rz_yXuGi6KW*iAk(e8dHYH4;)5-4Vw2@({WEA$2 z5R6!nFAC;Lac@8OpJO>|YNyD`Go7CYSf9}4Iuanse^;Xi*|`a5TnIupii zQVs4YJ*09oSfzYmunsdfsi>IkD$Z%LkroyQbo($XN`>b?MfBm*@@Flrw^ZcUe&Jk; zO;;7=lhTLy>3Ij|G)0XRAW{))XBV7YCY9ko(6n%o-DkX6xpmLPs zh%)23_q7UgOoeS61IivE23@a>G@8{F0=X@a^rq3O)-Z&nH_pQWp*XNBj-aoo2~oj` zEe9Cw8-&qDOro31H}|<^QQ-B+I(xk!zsu@jqxfM|^5$k9tfs$pVgLEBi!mej9i8)S>>0K&5;RP>)5o4TQ z9hVdeMI`2esj!vDD6)rEac>!LUWC$qhR2W0W&}fM$8%bk#d*MNuXjCU*md|Ubvq?! ztoa2Zt0=rAI)EdC3Xjp!==+fo<{RHBITsQE?vbUtX}F6`8b??pdy?~wN-?Q1iR_{Y zqDESiRm)aO#n*wwiK-WWzIE}m%yUU9JB=ga4g>O+CW zclySf$cP5ttcf*^u}+fM#Omz#Ysw3e{M1BGB!IxK1<_qiknr4)to}o`?)!qaXIO1Z z{*dkMVA%1!o$~TWIKBT3r-SUH*y(yN1{xYv=zdI$K(s75xL_b#>MrHrDd7&E$GAleTX!C0Ak& G*}nlAMJ{Oo literal 0 HcmV?d00001 diff --git a/reaction/uifiles/assets/mapshot01.jpg b/reaction/uifiles/assets/mapshot01.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e0c08dd5fd1e2b9ec1b71a031c6ae6d062ceb4a3 GIT binary patch literal 105171 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�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�#qFj6A}y3W$*o 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 K@ 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 bawXb@nD3TFgW_%MiRkM+B^{?qe+Cx5FH literal 0 HcmV?d00001 diff --git a/reaction/uifiles/assets/mapshot02.jpg b/reaction/uifiles/assets/mapshot02.jpg new file mode 100644 index 0000000000000000000000000000000000000000..10aead9d01c919a988f8bb51cd0565f04e70a8d5 GIT binary patch literal 90781 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 K)NEx%e&#P?TJ$Uc literal 0 HcmV?d00001 diff --git a/reaction/uifiles/assets/white.tga b/reaction/uifiles/assets/white.tga new file mode 100644 index 0000000000000000000000000000000000000000..6c654661ea41cd294590e5934db6098ad1d17870 GIT binary patch literal 667 zcmZQz;9`IQ1qKBM35NOq|NkFI{GL&PNWeg(x>04gLjV@{U>dhFR2itIfW*wa5{2N5 q`~ro5qI^^($UFuHRupScIFq2fkf2c4FwbC5e?Q#_H%}i|Jq7?1p|tz} literal 0 HcmV?d00001 diff --git a/reaction/uifiles/cdkey.menu b/reaction/uifiles/cdkey.menu new file mode 100644 index 00000000..4c818fb8 --- /dev/null +++ b/reaction/uifiles/cdkey.menu @@ -0,0 +1,344 @@ +#include "ui/menudef.h" + +{ + + menuDef { + name "cdkey_menu" + background "rq3-ta-menuback" // Makro: replace "rq3-ta-menuback" with "rq3-menuback" + // to use the old background + fullScreen MENU_TRUE + visible MENU_FALSE // Visible on open + focusColor RQ3_MAIN_FOCUSCOLOR // Menu focus color for text and items + + onClose { uiScript verifyCDKey } + + onOpen { play "sound/misc/menu1.wav" ; hide verify_text ; uiScript getCDKey } + + onEsc { close cdkey_menu ; open setup_menu ; } + + +//=================== +// RQ3 stuff +//=================== + + + itemDef { + name top_bar //rq3: Top bar + rect 0 0 640 56 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name top_bar //rq3: Top bar + rect 0 58 640 12 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-main-shadow-1" + decoration + visible 1 + } + + itemDef { + name top_bar2 //rq3: Top bar - border + rect 0 56 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar //rq3: bottom bar + rect 0 420 640 60 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar2 //rq3: bottom bar - border + rect 0 418 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemdef { + name "cdkey_icon" + style WINDOW_STYLE_SHADER + rect 8 8 48 48 + background "menu/art/rq3-setup-cdkey.tga" + decoration + visible 1 + } + + itemdef { + name "cdkey_title" + style WINDOW_STYLE_SHADER + rect 64 12 256 32 + background "menu/art/rq3-title-setup.tga" + decoration + visible 1 + } + + itemdef { + name overlay + style 1 + forecolor 0 0 0 1 + backcolor RQ3_MENU_OVERLAY_COLOR + rect 0 58 640 360 + visible 1 + decoration + } + +//================= +// Buttons, lists +//================= + + +//Background window + + itemdef { + rect 188 140 264 160 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + shadowStyle 1 + bordercolor Ig_Window_BorderColor + decoration + } + +//CD Key Check + + itemdef { + name "enterkey_text" + rect 160 168 320 20 + style WINDOW_STYLE_EMPTY + text "Enter your CD key in the field below" + textstyle 3 + textscale .25 + textalign ITEM_ALIGN_CENTER + textalignx 160 + textaligny 14 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemdef { + name "key1" + rect 208 200 40 20 + type ITEM_TYPE_EDITFIELD + style WINDOW_STYLE_FILLED + maxchars 4 + cvar "cdkey1" + text "" + forecolor 1 1 1 1 + border 1 + bordersize 1 + bordercolor .5 .5 .5 .75 + backcolor 1 1 1 .1 + textscale .25 + textalign ITEM_ALIGN_LEFT + textalignx 4 + textaligny 14 + onfocus { setcolor backcolor 1 1 1 .2 ; } + leavefocus { setcolor backcolor 1 1 1 .1 ; } + visible 1 + } + + itemdef { + name "key2" + rect 256 200 40 20 + type ITEM_TYPE_EDITFIELD + style WINDOW_STYLE_FILLED + maxchars 4 + cvar "cdkey2" + text "" + forecolor 1 1 1 1 + border 1 + bordersize 1 + bordercolor .5 .5 .5 .75 + backcolor 1 1 1 .1 + textscale .25 + textalign ITEM_ALIGN_LEFT + textalignx 4 + textaligny 14 + onfocus { setcolor backcolor 1 1 1 .2 ; } + leavefocus { setcolor backcolor 1 1 1 .1 ; } + visible 1 + } + + itemdef { + name "key3" + rect 304 200 40 20 + type ITEM_TYPE_EDITFIELD + style WINDOW_STYLE_FILLED + maxchars 4 + cvar "cdkey3" + text "" + forecolor 1 1 1 1 + border 1 + bordersize 1 + bordercolor .5 .5 .5 .75 + backcolor 1 1 1 .1 + textscale .25 + textalign ITEM_ALIGN_LEFT + textalignx 4 + textaligny 14 + onfocus { setcolor backcolor 1 1 1 .2 ; } + leavefocus { setcolor backcolor 1 1 1 .1 ; } + visible 1 + } + + itemdef { + name "key4" + rect 352 200 40 20 + type ITEM_TYPE_EDITFIELD + style WINDOW_STYLE_FILLED + maxchars 4 + cvar "cdkey4" + text "" + forecolor 1 1 1 1 + border 1 + bordersize 1 + bordercolor .5 .5 .5 .75 + backcolor 1 1 1 .1 + textscale .25 + textalign ITEM_ALIGN_LEFT + textalignx 4 + textaligny 14 + onfocus { setcolor backcolor 1 1 1 .2 ; } + leavefocus { setcolor backcolor 1 1 1 .1 ; } + visible 1 + } + + itemdef { + name "separator" + rect 392 200 20 20 + style WINDOW_STYLE_EMPTY + forecolor 1 1 1 1 + text "-" + textscale .25 + textalign ITEM_ALIGN_CENTER + textalignx 10 + textaligny 14 + visible 1 + decoration + } + + itemdef { + name "key_checksum" + rect 412 200 24 20 + type ITEM_TYPE_EDITFIELD + style WINDOW_STYLE_FILLED + maxchars 2 + cvar "cdkeychecksum" + text "" + forecolor 1 1 1 1 + border 1 + bordersize 1 + bordercolor .5 .5 .5 .75 + backcolor 1 1 1 .1 + textscale .25 + textalign ITEM_ALIGN_LEFT + textalignx 4 + textaligny 14 + onfocus { setcolor backcolor 1 1 1 .2 ; } + leavefocus { setcolor backcolor 1 1 1 .1 ; } + visible 1 + } + +//Verify + + itemdef { + name "btn_verify" + rect 352 264 80 20 + type ITEM_TYPE_BUTTON + style WINDOW_STYLE_FILLED + text "Verify" + textstyle 0 + textscale .25 + textalign ITEM_ALIGN_CENTER + textalignx 40 + textaligny 14 + //border 1 + //bordersize 1 + //bordercolor .5 .5 .5 .75 + forecolor 1 1 1 1 + backcolor Ig_Sub_Color1 + visible 1 + action { play "sound/misc/menu1.wav" ; uiScript verifyCDKey ; show verify_text ; } + onFocus { setcolor backcolor Ig_Sub_Color2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 } + } + + itemdef { + name "verify_text" + rect 160 236 320 20 + type ITEM_TYPE_EDITFIELD + cvar ui_cdkeyvalid + style WINDOW_STYLE_EMPTY + text "" + textstyle 3 + textscale .25 + textalign ITEM_ALIGN_CENTER + textalignx 160 + textaligny 12 + forecolor 1 1 0 .75 + visible 0 + decoration + } + +//Back + + itemdef { + name "btn_back" + style WINDOW_STYLE_SHADER + rect 12 432 32 32 + type 1 + background "menu/art/rq3-menu-back.tga" + action { close cdkey_menu ; open setup_menu ; } + onFocus { setbackground "menu/art/rq3-menu-back-focus-anim" ; + show back_hint ; timeFade back_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { setbackground "menu/art/rq3-menu-back.tga" ; + timeFade back_hint forecolor .9 .9 .9 0 0 250 } + visible 1 + } + + + itemdef { + name back_hint + text "Go back to setup menu" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +} +} \ No newline at end of file diff --git a/reaction/uifiles/connect.menu b/reaction/uifiles/connect.menu new file mode 100644 index 00000000..c3787644 --- /dev/null +++ b/reaction/uifiles/connect.menu @@ -0,0 +1,84 @@ +#include "ui/menudef.h" + + + menuDef { + name "connect" + background "rq3-ta-menuback" // Makro: replace "rq3-ta-menuback" with "rq3-menuback" + // to use the current background + fullScreen MENU_TRUE + visible MENU_TRUE // Visible on open + focusColor RQ3_MAIN_FOCUSCOLOR // Menu focus color for text and items + + + onOpen { + transition demolist 80 108 480 0 80 108 480 280 10 10 ; + uiScript LoadDemos ; + play "sound/misc/menu1.wav" ; + } + + onEsc { close demo ; open main } + + +//=================== +// RQ3 stuff +//=================== + + + itemDef { + name top_bar //rq3: Top bar + rect 0 0 640 56 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name top_bar //rq3: Top bar + rect 0 58 640 12 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-main-shadow-1" + decoration + visible 1 + } + + itemDef { + name top_bar2 //rq3: Top bar - border + rect 0 56 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar //rq3: bottom bar + rect 0 420 640 60 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar2 //rq3: bottom bar - border + rect 0 418 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + +} \ No newline at end of file diff --git a/reaction/uifiles/controls.menu b/reaction/uifiles/controls.menu new file mode 100644 index 00000000..a055fc9d --- /dev/null +++ b/reaction/uifiles/controls.menu @@ -0,0 +1,1542 @@ +#include "ui/menudef.h" +#define RQ3_Controls_Option_Color .75 .75 .75 1 + +{ + + menuDef { + name "control_menu" + background "rq3-ta-menuback" // Makro: replace "rq3-ta-menuback" with "rq3-menuback" + // to use the old background + fullScreen MENU_TRUE + visible MENU_FALSE // Visible on open + focusColor RQ3_MAIN_FOCUSCOLOR // Menu focus color for text and items + + onOpen { play "sound/misc/menu1.wav" ; uiScript loadControls ; + hide move ; hide weapon ; hide misc ; hide reaction ; + show look ; setfocus btn_look } + + onClose { uiScript saveControls } + onEsc { uiScript saveControls ; close control_menu ; open setup_menu } + + +//=================== +// RQ3 stuff +//=================== + + + itemDef { + name top_bar //rq3: Top bar + rect 0 0 640 56 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name top_bar //rq3: Top bar + rect 0 58 640 12 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-main-shadow-1" + decoration + visible 1 + } + + itemDef { + name top_bar2 //rq3: Top bar - border + rect 0 56 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar //rq3: bottom bar + rect 0 420 640 60 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar2 //rq3: bottom bar - border + rect 0 418 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemdef { + name "control_icon" + style WINDOW_STYLE_SHADER + rect 8 8 48 48 + background "menu/art/rq3-setup-controls.tga" + decoration + visible 1 + } + + itemdef { + name "control_title" + style WINDOW_STYLE_SHADER + rect 64 12 256 32 + background "menu/art/rq3-title-setup.tga" + decoration + visible 1 + } + + itemdef { + name overlay + style 1 + forecolor 0 0 0 1 + backcolor RQ3_MENU_OVERLAY_COLOR + rect 0 58 640 360 + visible 1 + decoration + } + +//================= +// Objects +//================= + + +//Top Menu +//Look + + itemdef { + name btn_look + group "topmenu" + type 1 + background "menu/art/rq3-controls-looking" + rect 336 12 32 32 + style WINDOW_STYLE_SHADER + visible 1 + mouseenter { setfocus btn_look ; } + onFocus { show look_focus ; timefade look_focus forecolor 1 1 1 1 0 250 ; + show look_hint ; timeFade look_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timefade look_focus forecolor 1 1 1 0 0 250 ; timeFade look_hint forecolor .9 .9 .9 0 0 250 } + action { play "sound/misc/menu1.wav" ; hide move ; hide weapon ; hide misc ; hide reaction ; show look ; } + } + + itemdef { + name look_focus + background "menu/art/rq3-menu-focus" + forecolor 1 1 1 0 + rect 336 12 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemdef { + name look_act + group look + background "menu/art/rq3-menu-focus-anim" + rect 336 12 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemdef { + name look_hint + text "Change view keys" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + style 0 + visible 0 + decoration + } + +//Move + + itemdef { + name btn_move + group "topmenu" + type 1 + background "menu/art/rq3-controls-movement" + rect 384 12 32 32 + style WINDOW_STYLE_SHADER + visible 1 + mouseenter { setfocus btn_move ; } + onFocus { show move_focus ; timefade move_focus forecolor 1 1 1 1 0 250 ; + show move_hint ; timeFade move_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timefade move_focus forecolor 1 1 1 0 0 250 ; timeFade move_hint forecolor .9 .9 .9 0 0 250 } + action { play "sound/misc/menu1.wav" ; hide look ; hide weapon ; hide misc ; hide reaction ; show move ; } + } + + itemdef { + name move_focus + background "menu/art/rq3-menu-focus" + forecolor 1 1 1 0 + rect 384 12 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemdef { + name move_act + group move + background "menu/art/rq3-menu-focus-anim" + rect 384 12 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemdef { + name move_hint + text "Change movement keys" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + style 0 + visible 0 + decoration + } + +//Weapons + + itemdef { + name btn_weapon + group "topmenu" + type 1 + background "menu/art/rq3-controls-weapons" + rect 432 12 32 32 + style WINDOW_STYLE_SHADER + visible 1 + mouseenter { setfocus btn_weapon ; } + onFocus { show weapon_focus ; timefade weapon_focus forecolor 1 1 1 1 0 250 ; + show weapon_hint ; timeFade weapon_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timefade weapon_focus forecolor 1 1 1 0 0 250 ; timeFade weapon_hint forecolor .9 .9 .9 0 0 250 } + action { play "sound/misc/menu1.wav" ; hide look ; hide move ; hide misc ; hide reaction ; show weapon ; } + } + + itemdef { + name weapon_focus + background "menu/art/rq3-menu-focus" + forecolor 1 1 1 0 + rect 432 12 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemdef { + name weapon_act + group weapon + background "menu/art/rq3-menu-focus-anim" + rect 432 12 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemdef { + name weapon_hint + text "Change weapon keys" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + style 0 + visible 0 + decoration + } + +//Misc + + itemdef { + name btn_misc + group "topmenu" + type 1 + background "menu/art/rq3-controls-misc" + rect 480 12 32 32 + style WINDOW_STYLE_SHADER + visible 1 + mouseenter { setfocus btn_misc ; } + onFocus { show misc_focus ; timefade misc_focus forecolor 1 1 1 1 0 250 ; + show misc_hint ; timeFade misc_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timefade misc_focus forecolor 1 1 1 0 0 250 ; timeFade misc_hint forecolor .9 .9 .9 0 0 250 } + action { play "sound/misc/menu1.wav" ; hide look ; hide move ; hide weapon ; hide reaction ; show misc ; } + } + + itemdef { + name misc_focus + background "menu/art/rq3-menu-focus" + forecolor 1 1 1 0 + rect 480 12 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemdef { + name misc_act + group misc + background "menu/art/rq3-menu-focus-anim" + rect 480 12 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemdef { + name misc_hint + text "Change miscellaneous keys" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + style 0 + visible 0 + decoration + } + +//Reaction + + itemdef { + name btn_reaction + group "topmenu" + type 1 + background "menu/art/rq3-controls-reaction" + rect 528 12 32 32 + style WINDOW_STYLE_SHADER + visible 1 + mouseenter { setfocus btn_reaction ; } + onFocus { show reaction_focus ; timefade reaction_focus forecolor 1 1 1 1 0 250 ; + show reaction_hint ; timeFade reaction_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timefade reaction_focus forecolor 1 1 1 0 0 250 ; timeFade reaction_hint forecolor .9 .9 .9 0 0 250 } + action { play "sound/misc/menu1.wav" ; hide look ; hide move ; hide weapon ; hide misc ; show reaction ; } + } + + itemdef { + name reaction_focus + background "menu/art/rq3-menu-focus" + forecolor 1 1 1 0 + rect 528 12 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemdef { + name reaction_act + group reaction + background "menu/art/rq3-menu-focus-anim" + rect 528 12 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemdef { + name reaction_hint + text "Change Reaction-specific keys" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + style 0 + visible 0 + decoration + } + +//Background window +//Captions + + itemdef { + name look_caption + group look + rect 264 68 360 20 + style WINDOW_STYLE_GRADIENT + border WINDOW_BORDER_KCGRADIENT + bordersize 1 + backcolor 0 0 .2 .75 + bordercolor .75 .75 .75 1 + text "View keys" + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .25 + textalign 0 + textalignx 88 + textaligny 14 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemdef { + name move_caption + group move + rect 264 68 360 20 + style WINDOW_STYLE_GRADIENT + border WINDOW_BORDER_KCGRADIENT + bordersize 1 + backcolor 0 0 .2 .75 + bordercolor .75 .75 .75 1 + text "Movement keys" + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .25 + textalign 0 + textalignx 88 + textaligny 14 + forecolor 1 1 1 1 + visible 0 + decoration + } + + itemdef { + name weapon_caption + group weapon + rect 264 68 360 20 + style WINDOW_STYLE_GRADIENT + border WINDOW_BORDER_KCGRADIENT + bordersize 1 + backcolor 0 0 .2 .75 + bordercolor .75 .75 .75 1 + text "Weapon keys" + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .25 + textalign 0 + textalignx 88 + textaligny 14 + forecolor 1 1 1 1 + visible 0 + decoration + } + + itemdef { + name misc_caption + group misc + rect 264 68 360 20 + style WINDOW_STYLE_GRADIENT + border WINDOW_BORDER_KCGRADIENT + bordersize 1 + backcolor 0 0 .2 .75 + bordercolor .75 .75 .75 1 + text "Miscellaneous keys" + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .25 + textalign 0 + textalignx 88 + textaligny 14 + forecolor 1 1 1 1 + visible 0 + decoration + } + + itemdef { + name reaction_caption + group reaction + rect 264 68 360 20 + style WINDOW_STYLE_GRADIENT + border WINDOW_BORDER_KCGRADIENT + bordersize 1 + backcolor 0 0 .2 .75 + bordercolor .75 .75 .75 1 + text "Reaction-specific keys" + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .25 + textalign 0 + textalignx 88 + textaligny 14 + forecolor 1 1 1 1 + visible 0 + decoration + } + +//Icons + + itemdef { + name look_icon + group look + style WINDOW_STYLE_SHADER + rect 320 66 24 24 + background "menu/art/rq3-controls-looking.tga" + decoration + visible 1 + } + + itemdef { + name move_icon + group move + style WINDOW_STYLE_SHADER + rect 320 66 24 24 + background "menu/art/rq3-controls-movement.tga" + decoration + visible 0 + } + + itemdef { + name weapon_icon + group weapon + style WINDOW_STYLE_SHADER + rect 320 66 24 24 + background "menu/art/rq3-controls-weapons.tga" + decoration + visible 0 + } + + itemdef { + name misc_icon + group misc + style WINDOW_STYLE_SHADER + rect 320 66 24 24 + background "menu/art/rq3-controls-misc.tga" + decoration + visible 0 + } + + itemdef { + name reaction_icon + group reaction + style WINDOW_STYLE_SHADER + rect 320 66 24 24 + background "menu/art/rq3-controls-reaction.tga" + decoration + visible 0 + } + +//Window + + itemdef { + name window + rect 264 84 360 284 + style WINDOW_STYLE_SHADER + background "ui/assets/fake_gradient_75" + border WINDOW_BORDER_KCGRADIENT + bordersize 2 + backcolor 0 0 0 .75 + bordercolor .75 .75 .75 1 + visible 1 + decoration + } + +//Player model display + + itemdef { + name "model_preview" + ownerdraw UI_PLAYERMODEL + style 1 + rect 0 80 240 320 + visible 0 + decoration + } + +//Keys +//Looking keys + + itemdef { + name opt_mspeed + group look + type ITEM_TYPE_SLIDER + text "Mouse Speed:" + cvarfloat "sensitivity" 5 1 30 + rect 448 100 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 16 + textscale .25 + forecolor RQ3_Controls_Option_Color + visible 0 + //onfocus { show SliderMessage } + //leavefocus { hide SliderMessage } + onFocus { show SliderMessage ; timeFade SliderMessage forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade SliderMessage forecolor 1 1 1 0 0 250 } + } + + itemdef { + name opt_smoothm + group look + type ITEM_TYPE_YESNO + text "Smooth Mouse:" + cvar "m_filter" + rect 448 120 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 16 + textscale .25 + forecolor RQ3_Controls_Option_Color + visible 0 + onFocus { show YesNoMessage ; timeFade YesNoMessage forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade YesNoMessage forecolor 1 1 1 0 0 250 } + } + + itemdef { + name opt_smoothm + group look + type ITEM_TYPE_YESNO + text "Invert Mouse:" + cvar "ui_mousePitch" + rect 448 140 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 16 + textscale .25 + forecolor RQ3_Controls_Option_Color + visible 0 + action { uiScript update ui_mousePitch ; } + onFocus { show YesNoMessage ; timeFade YesNoMessage forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade YesNoMessage forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_lookup" + cvar "+lookup" + group look + type ITEM_TYPE_BIND + text "Look Up:" + rect 288 160 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + //onfocus { show keyBindStatus } + //leavefocus { hide keyBindStatus } + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_lookdown" + cvar "+lookdown" + group look + type ITEM_TYPE_BIND + text "Look Down:" + rect 288 180 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_mlook" + cvar "+mlook" + group look + type ITEM_TYPE_BIND + text "Mouse Look:" + rect 288 200 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name opt_freelook + group look + type ITEM_TYPE_YESNO + text "Free Look:" + cvar "cl_freelook" + rect 448 220 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 16 + textscale .25 + forecolor RQ3_Controls_Option_Color + visible 0 + onFocus { show YesNoMessage ; timeFade YesNoMessage forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade YesNoMessage forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_centerview" + cvar "centerview" + group look + type ITEM_TYPE_BIND + text "Center View:" + rect 288 240 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name opt_joystick + group look + type ITEM_TYPE_YESNO + text "Use Joystick:" + cvar "in_joystick" + rect 448 260 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 16 + textscale .25 + forecolor RQ3_Controls_Option_Color + visible 0 + onFocus { show YesNoMessage ; timeFade YesNoMessage forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade YesNoMessage forecolor 1 1 1 0 0 250 } + } + + itemdef { + name opt_joythreshold + group look + type ITEM_TYPE_SLIDER + text "Joystick Threshold:" + cvarfloat "joy_threshold" 0.15 0.05 0.75 + rect 448 280 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 16 + textscale .25 + forecolor RQ3_Controls_Option_Color + visible 0 + onFocus { show SliderMessage ; timeFade SliderMessage forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade SliderMessage forecolor 1 1 1 0 0 250 } + } + +//Movement keys + + + itemdef { + name opt_alwaysrun + group move + type ITEM_TYPE_YESNO + text "Always Run:" + cvar "cl_run" + rect 448 100 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 16 + textscale .25 + forecolor RQ3_Controls_Option_Color + visible 0 + //onfocus { show YesNoMessage ; exec "set ui_RQ3_model_command 3" } + //leavefocus { hide YesNoMessage ; exec "set ui_RQ3_model_command 1" } + onFocus { show YesNoMessage ; timeFade YesNoMessage forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade YesNoMessage forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_togglerun" + cvar "+speed" + group move + type ITEM_TYPE_BIND + text "Run / Walk:" + rect 288 120 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + //onFocus { show keyBindStatus ; exec "set ui_RQ3_model_command 4" } + //leaveFocus { hide keyBindStatus ; exec "set ui_RQ3_model_command 1" } + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_forward" + cvar "+forward" + group move + type ITEM_TYPE_BIND + text "Walk Forward:" + rect 288 140 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + //onFocus { show keyBindStatus ; exec "set ui_RQ3_model_command 3" } + //leaveFocus { hide keyBindStatus ; exec "set ui_RQ3_model_command 1" } + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_back" + cvar "+back" + group move + type ITEM_TYPE_BIND + text "Backpedal:" + rect 288 160 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + //onFocus { show keyBindStatus ; exec "set ui_RQ3_model_command 2" } + //leaveFocus { hide keyBindStatus ; exec "set ui_RQ3_model_command 3" } + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_stepleft" + cvar "+moveleft" + group move + type ITEM_TYPE_BIND + text "Step Left:" + rect 288 180 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_stepright" + cvar "+moveright" + group move + type ITEM_TYPE_BIND + text "Step Right:" + rect 288 200 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_jump" + cvar "+moveup" + group move + type ITEM_TYPE_BIND + text "Up / Jump:" + rect 288 220 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + //onFocus { show keyBindStatus ; exec "set ui_RQ3_model_command 5" } + //leaveFocus { hide keyBindStatus ; exec "set ui_RQ3_model_command 1" } + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_crouch" + cvar "+movedown" + group move + type ITEM_TYPE_BIND + text "Down / Crouch:" + rect 288 240 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + //onFocus { show keyBindStatus ; exec "set ui_RQ3_model_command 6" } + //leaveFocus { hide keyBindStatus ; exec "set ui_RQ3_model_command 1" } + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_left" + cvar "+left" + group move + type ITEM_TYPE_BIND + text "Turn Left:" + rect 288 260 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_right" + cvar "+right" + group move + type ITEM_TYPE_BIND + text "Turn Right:" + rect 288 280 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_strafe" + cvar "+strafe" + group move + type ITEM_TYPE_BIND + text "Sidestep / Turn:" + rect 288 300 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + +//Weapon keys + + itemdef { + name "bind_attack" + cvar "+attack" + group weapon + type ITEM_TYPE_BIND + text "Attack:" + rect 288 100 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_weapnext" + cvar "weapnext" + group weapon + type ITEM_TYPE_BIND + text "Next Weapon:" + rect 288 120 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_weapprev" + cvar "weapprev" + group weapon + type ITEM_TYPE_BIND + text "Previous Weapon:" + rect 288 140 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name opt_autoswitch + group weapon + type ITEM_TYPE_YESNO + text "Autoswitch Weapons:" + cvar "cg_autoswitch" + rect 448 160 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 16 + textscale .25 + forecolor RQ3_Controls_Option_Color + visible 0 + onFocus { show YesNoMessage ; timeFade YesNoMessage forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade YesNoMessage forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_weap1" + cvar "weapon 1" + group weapon + type ITEM_TYPE_BIND + text "MK23 Pistol:" + rect 288 180 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_weap2" + cvar "weapon 2" + group weapon + type ITEM_TYPE_BIND + text "M3 Assault Shotgun:" + rect 288 200 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_weap3" + cvar "weapon 3" + group weapon + type ITEM_TYPE_BIND + text "MP5/10 Submachinegun:" + rect 288 220 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_weap4" + cvar "weapon 4" + group weapon + type ITEM_TYPE_BIND + text "Handcannon:" + rect 288 240 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_weap5" + cvar "weapon 5" + group weapon + type ITEM_TYPE_BIND + text "SSG Sniper Rifle:" + rect 288 260 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_weap6" + cvar "weapon 6" + group weapon + type ITEM_TYPE_BIND + text "M4 Assault Rifle:" + rect 288 280 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_weap7" + cvar "weapon 7" + group weapon + type ITEM_TYPE_BIND + text "Dual MK23 Pistols:" + rect 288 300 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_weap8" + cvar "weapon 8" + group weapon + type ITEM_TYPE_BIND + text "Combat Knife:" + rect 288 320 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_weap9" + cvar "weapon 9" + group weapon + type ITEM_TYPE_BIND + text "M26 Frag Grenade:" + rect 288 340 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + +//Misc keys + + itemdef { + name "bind_scores" + cvar "scores" + group misc + type ITEM_TYPE_BIND + text "Show Scores:" + rect 288 100 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_gesture" + cvar "+button3" + group misc + type ITEM_TYPE_BIND + text "Gesture:" + rect 288 120 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_chat" + cvar "messagemode" + group misc + type ITEM_TYPE_BIND + text "Chat:" + rect 288 140 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_chatteam" + cvar "messagemode2" + group misc + type ITEM_TYPE_BIND + text "Chat - Team:" + rect 288 160 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_chattarget" + cvar "messagemode3" + group misc + type ITEM_TYPE_BIND + text "Chat - Target:" + rect 288 180 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_chatteam" + cvar "messagemode4" + group misc + type ITEM_TYPE_BIND + text "Chat - Attacker:" + rect 288 200 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_sshot" + cvar "screenshot" + group misc + type ITEM_TYPE_BIND + text "Screenshot:" + rect 288 220 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_sshotJPEG" + cvar "screenshotJPEG" + group misc + type ITEM_TYPE_BIND + text "Screenshot - JPEG:" + rect 288 240 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + +//Reaction keys + + itemdef { + name "bind_bandage" + cvar "bandage" + group reaction + type ITEM_TYPE_BIND + text "Bandage:" + rect 288 100 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_reload" + cvar "+button5" + group reaction + type ITEM_TYPE_BIND + text "Reload:" + rect 288 120 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_weaponmode" + cvar "weapon" + group reaction + type ITEM_TYPE_BIND + text "Weapon Mode:" + rect 288 140 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_opendoor" + cvar "opendoor" + group reaction + type ITEM_TYPE_BIND + text "Open Door:" + rect 288 160 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_dropweapon" + cvar "dropweapon" + group reaction + type ITEM_TYPE_BIND + text "Drop Weapon:" + rect 288 180 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_dropitem" + cvar "dropitem" + group reaction + type ITEM_TYPE_BIND + text "Drop Item:" + rect 288 200 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_irvision" + cvar "irvision" + group reaction + type ITEM_TYPE_BIND + text "IR Vision:" + rect 288 220 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_special" + cvar "specialweapon" + group reaction + type ITEM_TYPE_BIND + text "Special Weapon Cycle:" + rect 288 240 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_loadout" + cvar "ui_RQ3_loadout" + group reaction + type ITEM_TYPE_BIND + text "TP Weapon/Item:" + rect 288 260 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + + itemdef { + name "bind_joinTeam" + cvar "ui_RQ3_joinTeam" + group reaction + type ITEM_TYPE_BIND + text "Join Team:" + rect 288 280 320 20 + forecolor RQ3_Controls_Option_Color + textalign ITEM_ALIGN_RIGHT + textalignx 160 + textaligny 16 + textscale .25 + visible 0 + onFocus { show keyBindStatus ; timeFade keyBindStatus forecolor 1 1 1 1 0 250 } + leaveFocus { timeFade keyBindStatus forecolor 1 1 1 0 0 250 } + } + +//Messages + + itemdef { + name keyBindStatus + rect 256 384 360 40 + ownerdraw UI_KEYBINDSTATUS + text " " + forecolor 1 1 1 1 + textscale .25 + textstyle 3 + textalignx 8 + textaligny 12 + visible 0 + decoration + } + + itemdef { + name SliderMessage + rect 264 384 360 40 + text "Drag the slider to increase/decrease" + forecolor 1 1 1 0 + textscale .25 + textstyle 3 + textalign ITEM_ALIGN_CENTER + textalignx 180 + textaligny 12 + visible 0 + decoration + } + + itemdef { + name YesNoMessage + rect 264 384 360 40 + text "Click to toggle yes/no" + forecolor 1 1 1 0 + textscale .25 + textstyle 3 + textalign ITEM_ALIGN_CENTER + textalignx 180 + textaligny 12 + visible 0 + decoration + } + +//Back + + itemdef { + name "btn_back" + rect 12 432 32 32 + style WINDOW_STYLE_SHADER + background "menu/art/rq3-menu-back.tga" + type 1 + visible 1 + action { close control_menu; open setup_menu ; } + onFocus { setbackground "menu/art/rq3-menu-back-focus-anim" ; + show back_hint ; timeFade back_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { setbackground "menu/art/rq3-menu-back.tga" ; + timeFade back_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name back_hint + text "Go back to setup menu" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +} diff --git a/reaction/uifiles/createfavorite.menu b/reaction/uifiles/createfavorite.menu new file mode 100644 index 00000000..2828bd94 --- /dev/null +++ b/reaction/uifiles/createfavorite.menu @@ -0,0 +1,122 @@ +#include "ui/menudef.h" +{ + // CREATE FAVORITE POPUP MENU // + + menuDef { + name "createfavorite_popmenu" + visible 0 + fullscreen 0 + rect 170 200 300 80 + focusColor RQ3_MAIN_FOCUSCOLOR // Menu focus color for text and items + style WINDOW_STYLE_EMPTY + border 1 + popup + onOpen { play "sound/misc/menu1.wav" ; setfocus nameEntry } + onESC { close "createfavorite_popmenu" ; open joinserver } + + itemDef { + name window + rect 0 0 300 68 + style WINDOW_STYLE_FILLED + border 1 + borderSize 1 + bordercolor Ig_Window_BorderColor + backcolor Ig_Window_Color + shadowStyle 1 + visible 1 + decoration + } + + // NAME // + + itemDef { + text "Name:" + style 0 + textscale .25 + rect 0 8 80 20 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 16 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemDef { + name nameEntry + style WINDOW_STYLE_FILLED + text "" + textalign ITEM_ALIGN_LEFT + textalignx 4 + textaligny 14 + maxPaintChars 17 + textscale .225 + type ITEM_TYPE_EDITFIELD + cvar "ui_favoriteName" + rect 80 8 160 20 + border 1 + bordersize 1 + bordercolor .25 .25 .25 1 + forecolor 1 1 1 1 + backcolor 1 1 1 .1 + visible 1 + onfocus { setcolor backcolor 1 1 1 .2 ; } + leavefocus { setcolor backcolor 1 1 1 .1 ; } + } + + // ADDRESS // + + itemDef { + text "Address:" + style 0 + textscale .25 + rect 0 36 80 20 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 16 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemDef { + name addressEntry + style WINDOW_STYLE_FILLED + text "" + textalign ITEM_ALIGN_LEFT + textalignx 4 + textaligny 14 + maxPaintChars 17 + textscale .225 + type ITEM_TYPE_EDITFIELD + cvar "ui_favoriteAddress" + rect 80 36 160 20 + border 1 + bordersize 1 + bordercolor .25 .25 .25 1 + forecolor 1 1 1 1 + backcolor 1 1 1 .1 + visible 1 + onfocus { setcolor backcolor 1 1 1 .2 ; } + leavefocus { setcolor backcolor 1 1 1 .1 ; } + } + + // Add // + + itemDef { + shortcutKey "A" + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + rect 256 12 32 16 + textscale .25 + textalign ITEM_ALIGN_CENTER + textalignx 16 + textaligny 10 + forecolor 1 1 1 1 + text "Add" + visible 1 + action { uiScript "CreateFavorite" ; close "createfavorite_popmenu" ; open joinserver } + } + + } +} diff --git a/reaction/uifiles/createserver.menu b/reaction/uifiles/createserver.menu new file mode 100644 index 00000000..99be56cf --- /dev/null +++ b/reaction/uifiles/createserver.menu @@ -0,0 +1,1159 @@ +#include "ui/menudef.h" + +{ + + menuDef { + name "createserver" + background "rq3-ta-menuback" // Makro: replace "rq3-ta-menuback" with "rq3-menuback" + // to use the old background + fullScreen MENU_TRUE + visible MENU_FALSE // Visible on open + focusColor RQ3_MAIN_FOCUSCOLOR // Menu focus color for text and items + + onOpen { + play "sound/misc/menu1.wav" ; + uiScript loadArenas ; + //exec "set ui_actualNetGameType 0" ; + //exec "set ui_netGameType 0" ; + //show "opt_gametype" ; + } + + onEsc { close createserver ; open main } + + +//=================== +// RQ3 stuff +//=================== + + + itemdef { + name top_bar //rq3: Top bar + rect 0 0 640 56 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemdef { + name top_bar //rq3: Top bar + rect 0 58 640 12 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-main-shadow-1" + decoration + visible 1 + } + + itemdef { + name top_bar2 //rq3: Top bar - border + rect 0 56 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemdef { + name bottom_bar //rq3: bottom bar + rect 0 420 640 60 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemdef { + name bottom_bar2 //rq3: bottom bar - border + rect 0 418 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemdef { + name "join_icon" + style WINDOW_STYLE_SHADER + rect 8 8 48 48 + background "menu/art/rq3-menu-start.tga" + decoration + visible 1 + } + + itemdef { + name "join_title" + style WINDOW_STYLE_SHADER + rect 64 12 256 32 + background "menu/art/rq3-title-start.tga" + decoration + visible 1 + } + + itemdef { + name overlay + style 1 + forecolor 0 0 0 1 + backcolor RQ3_MENU_OVERLAY_COLOR + rect 0 58 640 360 + visible 1 + decoration + } + +//Shadow + + itemdef { + style WINDOW_STYLE_EMPTY + rect 12 72 608 332 + shadowstyle 1 + decoration + visible 1 + } + +//Map preview + + itemdef { + rect 12 72 168 124 + style WINDOW_STYLE_EMPTY + //backcolor 0 0 0 .65 + border 1 + bordercolor .5 .5 .5 1 + visible 1 + decoration + } + + itemdef { + name map_preview + rect 14 74 166 124 + ownerdraw UI_STARTMAPCINEMATIC + style WINDOW_STYLE_EMPTY + decoration + visible 1 + } + +//Map list + + itemdef { + name maplist + rect 12 196 168 208 + type ITEM_TYPE_LISTBOX + style WINDOW_STYLE_FILLED + elementwidth 120 + elementheight 20 + textscale .225 + elementtype LISTBOX_TEXT + feeder FEEDER_ALLMAPS + textstyle ITEM_TEXTSTYLE_NORMAL + textalign 3 + textaligny 14 + border 1 + bordercolor .5 .5 .5 1 + forecolor 1 1 1 1 + backcolor 0 0 0 .65 + outlinecolor .75 .75 1 .25 + visible 1 + columns 1 2 140 22 + } + + itemdef { + rect 162 196 18 208 + style WINDOW_STYLE_EMPTY + border 1 + bordercolor .5 .5 .5 1 + visible 1 + decoration + } + +//Options + + //Window + + itemdef { + rect 180 72 232 332 + style WINDOW_STYLE_FILLED + backcolor 0 0 0 .65 + border 1 + bordercolor .5 .5 .5 1 + visible 1 + decoration + } + + itemdef { + rect 180 72 232 20 + style WINDOW_STYLE_FILLED + backcolor .5 .5 .5 .25 + border 1 + bordersize 1 + bordercolor .5 .5 .5 1 + forecolor 1 1 1 1 + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .225 + textalign ITEM_ALIGN_CENTER + textalignx 104 + textaligny 14 + text "Server Options" + visible 1 + decoration + } + + //Host name + + itemdef { + name global + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_EDITFIELD + text "Host Name:" + cvar "sv_hostname" + maxChars 32 + maxPaintChars 8 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 212 108 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 100 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + } + + //Pure server + + itemdef { + name global + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_YESNO + text "Pure Server:" + cvar "sv_pure" + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 212 128 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 100 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + } + + //Allow download + + itemdef { + name global + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_YESNO + text "Auto Download:" + cvar "sv_allowdownload" + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 212 148 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 100 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + } + + //Enable voting + + itemdef { + name global + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_YESNO + text "Enable Voting:" + cvar "g_allowvote" + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 212 168 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 100 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + } + + //Max players + + itemdef { + name global + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_NUMERICFIELD + text "Maximum Players:" + cvar "sv_maxclients" + maxchars 4 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 212 188 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 100 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + } + + //Max ping + + itemdef { + name global + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_NUMERICFIELD + text "Maximum Ping:" + cvar "sv_maxping" + maxchars 4 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 212 208 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 100 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + } + + //Min ping + + itemdef { + name global + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_NUMERICFIELD + text "Minimum Ping:" + cvar "sv_minping" + maxchars 4 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 212 228 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 100 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + } + + //Max rate + + itemdef { + name global + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_NUMERICFIELD + text "Max Rate:" + cvar "sv_maxrate" + maxchars 5 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 212 248 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 100 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + } + + //Reconnect limit + + itemdef { + name global + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_NUMERICFIELD + text "Reconnect Limit:" + cvar "sv_reconnectlimit" + maxchars 4 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 212 268 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 100 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + } + + //Synchronous clients + + itemdef { + name global + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_YESNO + text "Synchronous Client:" + cvar "g_synchronousclients" + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 212 288 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 100 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + } + + //Require password + + itemdef { + name global + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_YESNO + text "Require Password:" + cvar "g_needpassword" + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 212 308 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 100 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + } + + //Password + + itemdef { + name global + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_EDITFIELD + text "Password:" + cvar "g_password" + maxChars 32 + maxPaintChars 8 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 212 328 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 100 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + } + + // Dedicated + + itemdef { + name global + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_MULTI + text "Dedicated:" + cvar "ui_dedicated" + cvarFloatList { "No" 0 "LAN" 1 "Internet" 2 } + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 212 348 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 100 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + } + + // Gametype + + itemdef { + name global + rect 212 368 168 20 + style WINDOW_STYLE_EMPTY + ownerdraw UI_NETGAMETYPE + text "Game Type:" + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_RIGHT + textalignx 100 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + + //Window + + itemdef { + rect 412 72 208 192 + style WINDOW_STYLE_FILLED + backcolor 0 0 0 .65 + border 1 + bordercolor .5 .5 .5 1 + visible 1 + decoration + } + + itemdef { + rect 412 72 208 20 + style WINDOW_STYLE_FILLED + backcolor .5 .5 .5 .25 + border 1 + bordersize 1 + bordercolor .5 .5 .5 1 + forecolor 1 1 1 1 + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .225 + textalign ITEM_ALIGN_CENTER + textalignx 104 + textaligny 14 + text "Gameplay Options" + visible 1 + decoration + } + + //Time limit + + itemdef { + name global + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_NUMERICFIELD + text "Time Limit:" + cvar "timelimit" + maxchars 4 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 440 108 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 84 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + } + + // Gametype-specific options // + + // Free For All // + // Frag limit + + itemdef { + name ffa + group "opt_gametype" + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_NUMERICFIELD + text "Frag Limit:" + cvar "fraglimit" + maxchars 4 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 440 148 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 84 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + cvarTest "ui_actualNetGameType" + showCvar { "0" } + } + + // Capture The Flag + // Capture limit + + itemdef { + name ctf + group "opt_gametype" + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_NUMERICFIELD + text "Capture Limit:" + cvar "capturelimit" + maxchars 4 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 440 148 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 84 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + cvarTest "ui_actualNetGameType" + showCvar { "5" } + } + + //Force join + + itemdef { + name ctf + group "opt_gametype" + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_YESNO + text "Force Join:" + cvar "g_teamautojoin" + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 440 168 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 84 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + cvarTest "ui_actualNetGameType" + showCvar { "5" } + } + + //Even teams + + itemdef { + name ctf + group "opt_gametype" + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_YESNO + text "Even Teams:" + cvar "g_teamforcebalance" + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 440 188 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 84 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + cvarTest "ui_actualNetGameType" + showCvar { "5" } + } + + //Friendly fire + + itemdef { + name ctf + group "opt_gametype" + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_MULTI + text "Friendly Fire:" + cvar "g_friendlyfire" + cvarFloatList { "On" 1 "Off/knockback" 2 "Off" 0 } + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 440 208 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 84 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + cvarTest "ui_actualNetGameType" + showCvar { "5" } + } + + // Team Deathmatch // + // Capture limit + + itemdef { + name tdm + group "opt_gametype" + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_NUMERICFIELD + text "Frag Limit:" + cvar "fraglimit" + maxchars 4 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 440 148 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 84 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + cvarTest "ui_actualNetGameType" + showCvar { "3" } + } + + //Force join + + itemdef { + name tdm + group "opt_gametype" + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_YESNO + text "Force Join:" + cvar "g_teamautojoin" + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 440 168 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 84 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + cvarTest "ui_actualNetGameType" + showCvar { "3" } + } + + //Even teams + + itemdef { + name tdm + group "opt_gametype" + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_YESNO + text "Even Teams:" + cvar "g_teamforcebalance" + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 440 188 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 84 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + cvarTest "ui_actualNetGameType" + showCvar { "3" } + } + + //Friendly fire + + itemdef { + name tdm + group "opt_gametype" + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_MULTI + text "Friendly Fire:" + cvar "g_friendlyfire" + cvarFloatList { "On" 1 "Off/knockback" 2 "Off" 0 } + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 440 208 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 84 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + cvarTest "ui_actualNetGameType" + showCvar { "3" } + } + + // RQ3 Teamplay // + // Round limit + + itemdef { + name tp + group "opt_gametype" + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_NUMERICFIELD + text "Round Limit:" + cvar "g_RQ3_roundlimit" + maxchars 4 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 440 128 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 84 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + cvarTest "ui_actualNetGameType" + showCvar { "4" } + } + + //Round time limit + + itemdef { + name tp + group "opt_gametype" + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_NUMERICFIELD + text "Round Time Limit:" + cvar "g_RQ3_roundTimeLimit" + maxchars 4 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 440 148 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 84 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + cvarTest "ui_actualNetGameType" + showCvar { "4" } + } + + //Force join + + itemdef { + name tp + group "opt_gametype" + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_YESNO + text "Force Join:" + cvar "g_teamautojoin" + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 440 168 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 84 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + cvarTest "ui_actualNetGameType" + showCvar { "4" } + } + + //Even teams + + itemdef { + name tp + group "opt_gametype" + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_YESNO + text "Even Teams:" + cvar "g_teamforcebalance" + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 440 188 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 84 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + cvarTest "ui_actualNetGameType" + showCvar { "4" } + } + + //Friendly fire + + itemdef { + name tp + group "opt_gametype" + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_MULTI + text "Friendly Fire:" + cvar "g_friendlyfire" + cvarFloatList { "On" 1 "Off/knockback" 2 "Off" 0 } + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 440 208 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 84 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + cvarTest "ui_actualNetGameType" + showCvar { "4" } + } + + // Tgren + + itemdef { + name tp + group "opt_gametype" + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_MULTI + text "Bandolier Grens:" + cvar "g_RQ3_tgren" + cvarFloatList { "None" 0 "1" 1 "2" 2 } + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 440 228 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 84 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + cvarTest "ui_actualNetGameType" + showCvar { "4" } + } + +//Slots + + itemdef { + rect 412 263 208 141 + style WINDOW_STYLE_FILLED + backcolor 0 0 0 .65 + border 1 + bordercolor .5 .5 .5 1 + visible 1 + decoration + } + + itemdef { + rect 412 263 208 20 + style WINDOW_STYLE_FILLED + backcolor .5 .5 .5 .25 + border 1 + bordersize 1 + bordercolor .5 .5 .5 1 + forecolor 1 1 1 1 + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 12 + textaligny 14 + text "Player Slots" + visible 1 + decoration + } + + + //Bot skill + + itemdef { + name slot_skill + style WINDOW_STYLE_EMPTY + ownerdraw UI_SKILL + text "Skill:" + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 492 263 128 20 + textalign ITEM_ALIGN_LEFT + textalignx 12 + textaligny 16 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + + // Actual slots // + + itemdef { + name slot_team + style WINDOW_STYLE_EMPTY + ownerdraw UI_REDTEAM1 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 424 296 80 20 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + + itemdef { + name slot_team + style WINDOW_STYLE_EMPTY + ownerdraw UI_REDTEAM2 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 424 316 80 20 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + + itemdef { + name slot_team + style WINDOW_STYLE_EMPTY + ownerdraw UI_REDTEAM3 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 424 336 80 20 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + + itemdef { + name slot_team + style WINDOW_STYLE_EMPTY + ownerdraw UI_REDTEAM4 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 424 356 80 20 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + + itemdef { + name slot_team + style WINDOW_STYLE_EMPTY + ownerdraw UI_REDTEAM5 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 424 376 80 20 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + + + // Part 2 // + + itemdef { + name slot_team + style WINDOW_STYLE_EMPTY + ownerdraw UI_BLUETEAM1 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 520 296 80 20 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + + itemdef { + name slot_team + style WINDOW_STYLE_EMPTY + ownerdraw UI_BLUETEAM2 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 520 316 80 20 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + + itemdef { + name slot_team + style WINDOW_STYLE_EMPTY + ownerdraw UI_BLUETEAM3 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 520 336 80 20 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + + itemdef { + name slot_team + style WINDOW_STYLE_EMPTY + ownerdraw UI_BLUETEAM4 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 520 356 80 20 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + + itemdef { + name slot_team + style WINDOW_STYLE_EMPTY + ownerdraw UI_BLUETEAM5 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 520 376 80 20 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + +//GO button + + itemdef { + name "btn_start" + style WINDOW_STYLE_SHADER + rect 560 432 64 32 + type 1 + background "menu/art/rq3-menu-go.tga" + action { uiScript StartServer ; } + onFocus { setbackground "menu/art/rq3-menu-go-focus-anim" ; + show start_hint ; timeFade start_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { setbackground "menu/art/rq3-menu-go.tga" ; + timeFade start_hint forecolor .9 .9 .9 0 0 250 } + visible 1 + } + + itemdef { + name start_hint + text "Start server" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Join + + itemdef { + name "btn_join" + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + rect 540 20 80 20 + //border 1 + //bordersize 1 + //bordercolor .5 .5 .5 1 + backcolor Ig_Sub_Color1 + forecolor 1 1 1 1 + textscale .25 + textalign ITEM_ALIGN_CENTER + textalignx 40 + textaligny 14 + text "Connect >" + visible 1 + action { close createserver ; open joinserver } + //onFocus { setcolor backcolor Ig_Sub_Color2 ; show join_hint } + //leaveFocus { setcolor backcolor Ig_Sub_Color1 ; hide join_hint } + onFocus { setcolor backcolor Ig_Sub_Color2 ; + show join_hint ; timeFade join_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; + timeFade join_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name join_hint + text "Connect to a Reaction server" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Back + + itemdef { + name "btn_back" + style WINDOW_STYLE_SHADER + rect 12 432 32 32 + type 1 + background "menu/art/rq3-menu-back.tga" + action { close createserver ; open main ; } + onFocus { setbackground "menu/art/rq3-menu-back-focus-anim" ; + show back_hint ; timeFade back_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { setbackground "menu/art/rq3-menu-back.tga" ; + timeFade back_hint forecolor .9 .9 .9 0 0 250 } + visible 1 + } + + itemdef { + name back_hint + text "Go back to main menu" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +} diff --git a/reaction/uifiles/credit.menu b/reaction/uifiles/credit.menu new file mode 100644 index 00000000..38590645 --- /dev/null +++ b/reaction/uifiles/credit.menu @@ -0,0 +1,1446 @@ +#include "ui/menudef.h" + +{ + + menuDef { + name "credit" + background "rq3-ta-menuback" // Makro: replace "rq3-ta-menuback" with "rq3-menuback" + // to use the current background + fullScreen 1 + visible 0 // Visible on open + focusColor RQ3_MAIN_FOCUSCOLOR // Menu focus color for text and items + timedItems 39 + timerInterval 5500 + + fadeCycle 500 // how often fade happens in milliseconds + fadeAmount 0.01 // amount to adjust alpha per cycle + fadeClamp 1.0 // sets the fadeup alpha + + onOpen { + uiScript "backupMusicVolume" ; + play "sound/misc/menu1.wav" ; + //exec "s_musicvolume 1" ; + playlooped "music/sonic1" ; + transition hint 0 480 640 40 0 420 640 40 20 10 ; + startTimer + } + + onFinishTimer { uiScript "restoreMusicVolume" ; close credit ; uiScript "quit" } + //onFinishTimer { restartTimer } + + onShow { + setitemcolor overlay backcolor 0 0 0 .5 ; + timeFade overlay backcolor 0 0 0 1 0 20000 ; + } + + //onClose { uiScript "restoreMusicVolume" } + onEsc { uiScript "restoreMusicVolume" ; stopTimer ; close credit ; uiScript "quit" } + //onEsc { uiScript "restoreMusicVolume" ; stopTimer ; close credit ; open main } + + +//=================== +// RQ3 stuff +//=================== + + //Faded in at startup + + itemDef { + name overlay + style WINDOW_STYLE_FILLED + background "ui/assets/alpha" + forecolor RQ3_MENU_OVERLAY_COLOR + backcolor RQ3_MENU_OVERLAY_COLOR + rect 0 0 640 480 + visible 1 + decoration + } + + itemDef { + name top_bar //rq3: Top bar + rect 0 0 640 56 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name top_bar //rq3: Top bar + rect 0 58 640 12 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-main-shadow-1" + decoration + visible 1 + } + + itemDef { + name bottom_bar //rq3: bottom bar + rect 0 420 640 60 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name top_bar2 //rq3: Top bar - border + rect 0 56 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar2 //rq3: bottom bar - border + rect 0 418 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + +//============= +// Buttons +//============= + + +//Timed items + + // REACTION QUAKE 3 BETA 2 // + + itemDef { + name "timer1" + group timer + rect 100 100 440 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .45 + textalignx 220 + textaligny 100 + text "REACTION QUAKE 3 BETA 2.1" + autowrapped + visible 1 + decoration + } + + itemDef { + name "timer1" + group timer + rect 100 100 440 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .3 + textalignx 220 + textaligny 120 + text "(c) 2000 - 2002 REACTION QUAKE 3 TEAM\n\n\n" + "www.reactionquake3.com" + autowrapped + visible 1 + decoration + } + + // PROGRAMMING // + + itemDef { + name "timer2" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 40 + text "PROGRAMMING" + visible 1 + decoration + } + + itemDef { + name "timer2" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_LEFT + textscale .35 + textalignx 120 + textaligny 80 + text "Richard Allen\n" + "Malcolm Bechard\n" + "Scott Brooks\n" + "Victor Chow\n" + "Bruno Covacha\n" + "Bryce Hutchings\n" + "Daniel Simoes" + autowrapped + textheight 24 + visible 1 + decoration + } + + itemDef { + name "timer2" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_RIGHT + textscale .35 + textalignx 100 + textaligny 80 + text "JBravo\n" + "Tsunami\n" + "Blaze\n" + "Elder_MMHS\n" + "aasimon\n" + "NiceAss\n" + "sLiCeR" + autowrapped + textheight 24 + visible 1 + decoration + } + + // ADDITIONAL PROGRAMMING // + + itemDef { + name "timer3" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 60 + text "ADDITIONAL PROGRAMMING" + visible 1 + decoration + } + + itemDef { + name "timer3" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_LEFT + textscale .35 + textalignx 120 + textaligny 100 + text "Michael Bruce\n" + "Dan Chin\n" + "Andrei Drexler\n" + "Tomas Edwardsson\n" + autowrapped + textheight 24 + visible 1 + decoration + } + + itemDef { + name "timer3" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_RIGHT + textscale .35 + textalignx 100 + textaligny 100 + text "AgtOrange\n" + "Lt. Hawkins\n" + "Makro\n" + "Freud\n" + autowrapped + textheight 24 + visible 1 + decoration + } + + // ARTWORK // + + itemDef { + name "timer4" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 60 + text "ARTWORK" + visible 1 + decoration + } + + itemDef { + name "timer4" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_LEFT + textscale .35 + textalignx 120 + textaligny 100 + text "Ian McEachern\n" + "Brian Mills\n" + "Linh Nguyen\n" + "Mark Potnick\n" + "Ryan Vance\n" + autowrapped + textheight 24 + visible 1 + decoration + } + + itemDef { + name "timer4" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_RIGHT + textscale .35 + textalignx 100 + textaligny 100 + text "Frost\n" + "Birdman\n" + "Sonique128\n" + "Cloud\n" + "BraGoblin\n" + autowrapped + textheight 24 + visible 1 + decoration + } + + // ADDITIONAL ARTWORK // + + itemDef { + name "timer5" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 50 + text "ADDITIONAL ARTWORK" + visible 1 + decoration + } + + itemDef { + name "timer5" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_LEFT + textscale .35 + textalignx 120 + textaligny 90 + text "Victor Chow\n" + "Tomi Isoaho\n" + "Shay McCarty\n" + "Malcolm Ramsay\n" + "Jesse Smith\n" + "Kyle VanMeurs" + autowrapped + textheight 24 + visible 1 + decoration + } + + itemDef { + name "timer5" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_RIGHT + textscale .35 + textalignx 100 + textaligny 90 + text "Elder_MMHS\n" + "T.T.I.\n" + "Shaymon\n" + "shenka\n" + "Spyder\n" + "R0oK" + autowrapped + textheight 24 + visible 1 + decoration + } + + // LEVEL DESIGN // + + itemDef { + name "timer6" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 40 + text "LEVEL DESIGN" + visible 1 + decoration + } + + itemDef { + name "timer6" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_LEFT + textscale .35 + textalignx 112 + textaligny 80 + text "David Costello\n" + "Andrei Drexler\n" + "Tomi Isoaho\n" + "Shay McCarty\n" + "David Pike\n" + "Kelly Rush\n" + "Jesse Smith\n" + "Walter Somol\n" + autowrapped + textheight 24 + visible 1 + decoration + } + + itemDef { + name "timer6" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_RIGHT + textscale .35 + textalignx 92 + textaligny 80 + text "Sze\n" + "Makro\n" + "T.T.I.\n" + "Shaymon\n" + "Centurion\n" + "Hexydes\n" + "Spyder\n" + "Johnny Rocket\n" + autowrapped + textheight 24 + visible 1 + decoration + } + + // ADDITIONAL LEVEL DESIGN // + + itemDef { + name "timer7" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 80 + text "ADDITIONAL LEVEL DESIGN" + visible 1 + decoration + } + + itemDef { + name "timer7" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_LEFT + textscale .35 + textalignx 120 + textaligny 120 + text "Jason Irby\n" + "Gregory Simmons\n" + autowrapped + textheight 24 + visible 1 + decoration + } + + itemDef { + name "timer7" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_RIGHT + textscale .35 + textalignx 100 + textaligny 120 + text "Irby\n" + "Smoke\n" + autowrapped + textheight 24 + visible 1 + decoration + } + + // SOUND DESIGN // + + itemDef { + name "timer8" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 100 + text "SOUND DESIGN" + visible 1 + decoration + } + + itemDef { + name "timer8" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_LEFT + textscale .35 + textalignx 120 + textaligny 140 + text "Erwin Peil" + autowrapped + textheight 24 + visible 1 + decoration + } + + itemDef { + name "timer8" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_RIGHT + textscale .35 + textalignx 100 + textaligny 140 + text "SpecOps" + autowrapped + textheight 24 + visible 1 + decoration + } + + // ADDITIONAL SOUND DESIGN // + + itemDef { + name "timer9" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 100 + text "ADDITIONAL SOUND DESIGN" + visible 1 + decoration + } + + itemDef { + name "timer9" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_LEFT + textscale .35 + textalignx 120 + textaligny 140 + text "Jesse Smith" + autowrapped + textheight 24 + visible 1 + decoration + } + + itemDef { + name "timer9" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_RIGHT + textscale .35 + textalignx 100 + textaligny 140 + text "Spyder" + autowrapped + textheight 24 + visible 1 + decoration + } + + // ORGANIZATION // + + itemDef { + name "timer10" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 100 + text "ORGANIZATION" + visible 1 + decoration + } + + itemDef { + name "timer10" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_LEFT + textscale .35 + textalignx 120 + textaligny 140 + text "Andrew Prosnik" + autowrapped + textheight 24 + visible 1 + decoration + } + + itemDef { + name "timer10" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_RIGHT + textscale .35 + textalignx 100 + textaligny 140 + text "Black Monk" + autowrapped + textheight 24 + visible 1 + decoration + } + + // WEBSITE DESIGN // + + itemDef { + name "timer11" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 80 + text "WEBSITE DESIGN" + visible 1 + decoration + } + + itemDef { + name "timer11" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_LEFT + textscale .35 + textalignx 120 + textaligny 120 + text "Victor Chow\n" + "Malcolm Ramsay\n" + "Richard Watt" + autowrapped + textheight 24 + visible 1 + decoration + } + + itemDef { + name "timer11" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_RIGHT + textscale .35 + textalignx 100 + textaligny 120 + text "Elder_MMHS\n" + "shenka\n" + "C00T" + autowrapped + textheight 24 + visible 1 + decoration + } + + // TESTERS AND ADVISORS // + + itemDef { + name "timer12" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 60 + text "TESTERS AND ADVISORS" + visible 1 + decoration + } + + itemDef { + name "timer12" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_LEFT + textscale .35 + textalignx 120 + textaligny 100 + text "Non Fiction\n" + "Seth Chabot\n" + "Steve Ewald\n" + "Luke Paul\n" + "Andrew Prosnik" + autowrapped + textheight 24 + visible 1 + decoration + } + + itemDef { + name "timer12" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_RIGHT + textscale .35 + textalignx 100 + textaligny 100 + text "Fiction\n" + "Wook!eBoy\n" + "Psychotakes\n" + "Alice\n" + "Black Monk" + autowrapped + textheight 24 + visible 1 + decoration + } + + // BETA TESTERS // + + itemDef { + name "timer13" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 40 + text "BETA TESTERS" + visible 1 + decoration + } + + itemDef { + name "timer13" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_LEFT + textscale .35 + textalignx 120 + textaligny 80 + text "Scott DeLeury\n" + "Mark Somol\n" + "Christopher Jayawardena\n" + "Justin Pickles\n" + "Michael Morris\n" + "Fredrik Nilsskog Ravlo\n" + "Geraldo Espinal" + autowrapped + textheight 24 + visible 1 + decoration + } + + itemDef { + name "timer13" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_RIGHT + textscale .35 + textalignx 100 + textaligny 80 + text "CannonFodder\n" + "ColdMiser\n" + "EvilFutsin\n" + "GoKu^^7L\n" + "JesterRace\n" + "^^7Proto\n" + "WarMachine\n" + autowrapped + textheight 24 + visible 1 + decoration + } + + // BETA TESTERS // + + itemDef { + name "timer14" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 40 + text "BETA TESTERS" + visible 1 + decoration + } + + itemDef { + name "timer14" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_LEFT + textscale .35 + textalignx 120 + textaligny 80 + text "Andrew Weidlich\n" + "Stephen Looi\n" + "Tomas Edwardsson\n" + "Jordan Zylstra\n" + "Mitch Glover\n" + "Winston Chow" + autowrapped + textheight 24 + visible 1 + decoration + } + + itemDef { + name "timer14" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_RIGHT + textscale .35 + textalignx 100 + textaligny 80 + text "Commodore\n" + "DuD\n" + "Freud\n" + "Guy Incognito\n" + "Mud\n" + "ShishKabob" + autowrapped + textheight 24 + visible 1 + decoration + } + + // REACTION QUAKE 3 CONTRIBUTIONS // + + itemDef { + name "timer15" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 120 + text "REACTION QUAKE 3 CONTRIBUTIONS" + visible 1 + decoration + } + + // ADDITIONAL ARTWORK // + + itemDef { + name "timer16" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 80 + text "ADDITIONAL ARTWORK" + visible 1 + decoration + } + + itemDef { + name "timer16" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_LEFT + textscale .35 + textalignx 120 + textaligny 120 + text "Dwayne Douglass" + autowrapped + textheight 24 + visible 1 + decoration + } + + itemDef { + name "timer16" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_RIGHT + textscale .35 + textalignx 100 + textaligny 120 + text "Oddjob" + autowrapped + textheight 24 + visible 1 + decoration + } + + // REACTION QUAKE 3 TITLE SCORE // + + itemDef { + name "timer17" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 80 + text "REACTION QUAKE 3 TITLE SCORE\n\nJesper Kyd" + autowrapped + visible 1 + decoration + } + + // THE REACTION QUAKE 3 TEAM THANKS // + + itemDef { + name "timer18" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 100 + text "THE REACTION QUAKE 3 TEAM THANKS" + autowrapped + visible 1 + decoration + } + + // A-TEAM REPRESENTATIVE // + + itemDef { + name "timer19" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 80 + text "A-TEAM REPRESENTATIVE\n\n" + "Dwayne Douglass" + autowrapped + visible 1 + decoration + } + + // CODING RESOURCES // + + itemDef { + name "timer20" + group timer + rect 100 100 440 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 220 + textaligny 40 + text "CODING RESOURCES\n\n" + "Code3Arena\n" + "Iain McGinnis\n" + "Inolen\n" + "Juz's Slipgate\n" + "Quake3World Forums\n" + "Wang (ATF)\n" + "Johann Thorirsson (Vondikall)\n" + "Tomas Edwardsson (Freud)" + autowrapped + visible 1 + decoration + } + + // ART RESOURCES // + + itemDef { + name "timer21" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 60 + text "ART RESOURCES\n\n" + "Mastaba Solutions\n" + "PolyCount\n" + "QWorkShop3\n" + "ShaderLab" + autowrapped + visible 1 + decoration + } + + // MAPPING RESOURCES // + + itemDef { + name "timer22" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 80 + text "MAPPING RESOURCES\n\n" + "Gamedesign.net\n" + "QERadiant.com\n" + "Quake3World Forums" + autowrapped + visible 1 + decoration + } + + // PRE-RELEASE MESSAGEBOARD GOD // + + itemDef { + name "timer23" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 80 + text "PRE-RELEASE\nMESSAGEBOARD GOD\n\nThe great Fex" + autowrapped + visible 1 + decoration + } + + // GROUPS // + + itemDef { + name "timer24" + group timer + rect 100 100 440 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 220 + textaligny 20 + text "GROUPS\n\n" + "Above Intelligence\n" + "All the little people\n" + "Family and friends\n" + "Fear.net frequenters\n" + "HoneyStudios.Com\n" + "id Software\n" + "Opin Kerfi HF\n" + "Simnet (Landssíminn)\n" + "The A-Team (AQ2 developers)\n" + "The Grammar Rangers\n" + "#Modeling @ GamesNet" + autowrapped + visible 1 + decoration + } + + // COMMODITIES // + + itemDef { + name "timer25" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 20 + text "COMMODITIES\n\n" + "Caffeine\n" + "Chex Mix\n" + "Dr. Pepper\n" + "Home-cooked meals (MMM!)\n" + "Hot Pockets\n" + "Mountain Dew\n" + "Pepsi\n" + "Pho\n" + "Various pizza places\n" + "Wacom Tablets" + autowrapped + visible 1 + decoration + } + + // WEB HOSTS // + + itemDef { + name "timer26" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 80 + text "WEB HOSTS\n\n" + "All mirrors (too many to list)\n" + "Simnet (Landssíminn)\n" + "Telefragged and affiliates\n" + "2MHost" + autowrapped + visible 1 + decoration + } + + // id SOFTWARE // + + itemDef { + name "timer28" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 100 + text " SOFTWARE" + autowrapped + visible 1 + decoration + } + + itemDef { + name "timer28" + group timer + rect 248 172 32 40 + style WINDOW_STYLE_SHADER + background "ui/assets/idlogo.tga" + visible 1 + decoration + } + + // PROGRAMMING // + + itemDef { + name "timer29" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 80 + text "PROGRAMMING\n\n" + "John Carmack\n" + "Robert A. Duffy\n" + "Jim Dose'" + autowrapped + visible 1 + decoration + } + + // ART // + + itemDef { + name "timer30" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 80 + text "ART\n\n" + "Adrian Carmack\n" + "Kevin Cloud\n" + "Kenneth Scott\n" + "Seneca Menard\n" + "Fred Nilsson" + autowrapped + visible 1 + decoration + } + + // GAME DESIGNER // + + itemDef { + name "timer31" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 80 + text "GAME DESIGNER\n\n" + "Graeme Devine" + autowrapped + visible 1 + decoration + } + + // LEVEL DESIGN // + + itemDef { + name "timer32" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 80 + text "LEVEL DESIGN\n\n" + "Tim Willits\n" + "Christian Antkow\n" + "Paul Jaquays" + autowrapped + visible 1 + decoration + } + + // CEO // + + itemDef { + name "timer33" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 80 + text "CEO\n\n" + "Todd Hollenshead" + autowrapped + visible 1 + decoration + } + + // DIRECTOR OF BUSINESS DEVELOPMENT // + + itemDef { + name "timer34" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 80 + text "DIRECTOR OF BUSINESS DEVELOPMENT\n\n" + "Marty Stratton" + autowrapped + visible 1 + decoration + } + + // BIZ ASSIST AND ID MOM // + + itemDef { + name "timer35" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 80 + text "BIZ ASSIST AND ID MOM\n\n" + "Donna Jackson" + autowrapped + visible 1 + decoration + } + + // DEVELOPMENT ASSISTANCE // + + itemDef { + name "timer36" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .35 + textalignx 120 + textaligny 80 + text "DEVELOPMENT ASSISTANCE\n\n" + "Eric Webb" + autowrapped + visible 1 + decoration + } + + + // THE END // + + itemDef { + name "timer38" + group timer + rect 100 100 440 280 + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_CENTER + textscale .3 + textalignx 220 + textaligny 80 + text "THIS HAS BEEN A REACTION QUAKE 3\nTEAM PRODUCTION\n\n" + "Copyright 2000 - 2002" + autowrapped + visible 1 + decoration + onTimer { timeFade hint forecolor 1 1 1 0 500 1500 } + } + + itemDef { + name "timer39" + group timer + rect 200 100 240 280 + style WINDOW_STYLE_EMPTY + visible 1 + decoration + onTimer { show static ; stopMusic ; play "sound/ui/tvnoise.wav" } + } + + //Hint + + itemDef { + name "hint" + text "ESC to exit" + rect 0 420 640 40 + forecolor 1 1 1 1 + textalign ITEM_ALIGN_RIGHT + textalignx 628 + textaligny 20 + textscale .225 + type ITEM_TYPE_TEXT + style WINDOW_STYLE_EMPTY + visible 1 + decoration + } + + //Screen static + + itemDef { + name static + style WINDOW_STYLE_SHADER + background "ui/assets/screen_static" + forecolor 1 1 1 1 + rect 0 0 640 480 + visible 0 + decoration + } + + +} +} diff --git a/reaction/uifiles/demo.menu b/reaction/uifiles/demo.menu new file mode 100644 index 00000000..272155b1 --- /dev/null +++ b/reaction/uifiles/demo.menu @@ -0,0 +1,264 @@ +#include "ui/menudef.h" + +{ + + menuDef { + name "demo" + background "rq3-ta-menuback" // Makro: replace "rq3-ta-menuback" with "rq3-menuback" + // to use the current background + fullScreen MENU_TRUE + visible MENU_TRUE // Visible on open + focusColor RQ3_MAIN_FOCUSCOLOR // Menu focus color for text and items + + + onOpen { + uiScript LoadDemos ; + play "sound/misc/menu1.wav" ; + } + + onEsc { close demo ; open main } + + +//=================== +// RQ3 stuff +//=================== + + + itemdef { + name overlay + style 1 + forecolor 0 0 0 1 + backcolor RQ3_MENU_OVERLAY_COLOR + rect 0 58 640 360 + visible 1 + decoration + } + + itemDef { + name top_bar //rq3: Top bar + rect 0 0 640 56 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name top_bar //rq3: Top bar + rect 0 58 640 12 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-main-shadow-1" + decoration + visible 1 + } + + itemDef { + name top_bar2 //rq3: Top bar - border + rect 0 56 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar //rq3: bottom bar + rect 0 420 640 60 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar2 //rq3: bottom bar - border + rect 0 418 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemdef { + name "demos_icon" + style WINDOW_STYLE_SHADER + rect 8 8 48 48 + background "menu/art/rq3-menu-demos.tga" + decoration + visible 1 + } + + itemdef { + name "demos_title" + style WINDOW_STYLE_SHADER + rect 64 12 256 32 + background "menu/art/rq3-title-demos.tga" + decoration + visible 1 + } + +//================= +// Buttons, lists +//================= + + +//Window + + itemdef { + rect 170 100 300 240 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + shadowStyle 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemdef { + text "Available demos:" + textscale .25 + type 0 + style WINDOW_STYLE_EMPTY + rect 182 108 276 24 + forecolor 1 1 1 1 + textstyle 0 + textalign 0 + textalignx 8 + textaligny 16 + decoration + visible 1 + } + +//Demo list + + itemdef { + name "demolist" + type ITEM_TYPE_LISTBOX + rect 182 132 276 188 + style WINDOW_STYLE_FILLED + backcolor 0 0 0 .65 + border 1 + bordersize 1 + bordercolor .25 .25 .25 1 + elementtype LISTBOX_TEXT + elementwidth 160 + elementheight 20 + textscale .25 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + outlinecolor .75 .75 1 .25 + feeder FEEDER_DEMOS + columns 1 4 40 40 + visible 1 + onFocus { show list_hint ; timeFade list_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade list_hint forecolor .9 .9 .9 0 0 250 } + doubleclick { close demo; uiScript RunDemo ; } + } + + //Scrollbar separator + itemdef { + rect 440 132 18 188 + style WINDOW_STYLE_EMPTY + border 1 + bordersize 1 + bordercolor .25 .25 .25 1 + decoration + visible 1 + } + + itemdef { + name list_hint + text "Select a demo from the list" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Play + + itemdef { + name "btn_play" + style WINDOW_STYLE_SHADER + rect 592 432 32 32 + type 1 + background "menu/art/rq3-menu-play.tga" + action { close demo; uiScript RunDemo ; } + onFocus { setbackground "menu/art/rq3-menu-play-focus-anim" ; show play_hint ; + timeFade play_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { setbackground "menu/art/rq3-menu-play.tga" ; + timeFade play_hint forecolor .9 .9 .9 0 0 250 } + visible 1 + } + + + itemdef { + name play_hint + text "Play the selected demo" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Back + + itemdef { + name "btn_back" + style WINDOW_STYLE_SHADER + rect 12 432 32 32 + type 1 + background "menu/art/rq3-menu-back.tga" + action { close demo; open main ; } + onFocus { setbackground "menu/art/rq3-menu-back-focus-anim" ; + show back_hint ; timeFade back_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { setbackground "menu/art/rq3-menu-back.tga" ; + timeFade back_hint forecolor .9 .9 .9 0 0 250 } + visible 1 + } + + itemdef { + name back_hint + text "Go back to main menu" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + + +} +} \ No newline at end of file diff --git a/reaction/uifiles/error.menu b/reaction/uifiles/error.menu new file mode 100644 index 00000000..005dea7e --- /dev/null +++ b/reaction/uifiles/error.menu @@ -0,0 +1,106 @@ +#include "ui/menudef.h" + +{ + + menuDef { + name "error_popmenu" + visible 0 + fullscreen 0 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle + rect 210 100 220 240 + focusColor RQ3_MAIN_FOCUSCOLOR // Menu focus color for text and items + style WINDOW_STYLE_EMPTY + shadowStyle 1 + border 0 + onOpen { play "sound/misc/menu1.wav" } + onClose { uiScript clearError } + onESC { close error_popmenu ; open main } + popup + + //Window + + itemdef { + rect 0 0 220 240 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + //Title + + itemdef { + rect 101 1 120 24 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ingame-title" + visible 1 + decoration + } + + itemdef { + rect 101 1 120 24 + style WINDOW_STYLE_EMPTY + forecolor Ig_Window_TitleColor + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 24 + textaligny 16 + text "Error" + visible 1 + decoration + } + +//Error info + + itemdef { + name errorinfo + rect 12 40 196 168 + style WINDOW_STYLE_FILLED + backcolor 0 0 0 .65 + border 1 + bordersize 1 + bordercolor .5 .5 .5 1 + visible 1 + decoration + } + + itemdef { + name errorinfo + rect 20 44 180 160 + type ITEM_TYPE_TEXT + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_SHADOWED + autowrapped + cvar "com_errorMessage" + textalign ITEM_ALIGN_CENTER + textalignx 90 + textaligny 16 + textscale .225 + forecolor 1 1 1 1 + visible 1 + decoration + } + +//Close + + itemdef { + name close + rect 80 216 60 16 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_CENTER + textalignx 30 + textaligny 12 + text "Close" + shortcutKey "C" + visible 1 + action { close error_popmenu ; open main } + } +} +} diff --git a/reaction/uifiles/fight.menu b/reaction/uifiles/fight.menu new file mode 100644 index 00000000..1ebcace1 --- /dev/null +++ b/reaction/uifiles/fight.menu @@ -0,0 +1,770 @@ +#include "ui/menudef.h" + +{ + \\ Fight \\ + + menuDef { + name "fight" + visible 0 + fullscreen 1 + rect 0 0 640 480 + background uibackground4 + focusColor 1 .67 0 1 + style 1 + border 1 + + itemDef { + name fight + style WINDOW_STYLE_SHADER + rect 0 45 512 128 + visible 1 + background "fight" + decoration + } + + + itemDef { + name leftgrad + style WINDOW_STYLE_SHADER + background "ui/assets/halfgradleft.tga" + rect 64 249 256 102 + forecolor .75 0 0 0.5 + visible 1 + decoration + } + + itemDef { + name rightgrad + style WINDOW_STYLE_SHADER + background "ui/assets/halfgradright.tga" + rect 320 249 256 102 + forecolor 0 0 .75 0.5 + visible 1 + decoration + } + + + itemDef { + name leftvertgrad + style WINDOW_STYLE_SHADER + background "ui/assets/verticalgradient.tga" + rect 16 249 128 102 + forecolor .75 0 0 0.5 + visible 1 + decoration + } + + itemDef { + name rightvertgrad + style WINDOW_STYLE_SHADER + background "ui/assets/verticalgradient.tga" + rect 496 249 128 102 + forecolor 0 0 .75 0.5 + textscale 0.4 + visible 1 + decoration + } + + + + + + + + + // LEVEL SELECTION BAR // + + + // GAMETYPE BAR // + + + itemDef { + name gametypebar + style 2 + rect 0 5 640 40 + textscale 0.4 + textalign 0 // center + textalignx 60 // x alignment point for text + // use it to offset left/right text from the edge + // or to center the text on a different point + textaligny 21 + style 2 + border 4 + bordercolor 0.5 0.5 0.5 0.5 + bordersize 2 + backcolor 0 0 .75 0.5 + visible 1 + mouseEnter { setcolor backcolor .75 0 0 .5 } + mouseExit { setcolor backcolor 0 0 .75 .5 } + decoration + } + + + itemDef { + name gametypefield + style 0 + name tier + ownerdraw UI_TIER + rect 0 10 320 31 + textalign ITEM_ALIGN_LEFT + textalignx 20 + textaligny 26 + textscale .4 + forecolor 1 1 1 1 + border 0 + bordercolor 0 0 0 0 + visible 1 + mouseEnter { fadein message_tier } + mouseExit { fadeout message_tier } + } + + itemDef { + name gametypefield + style 0 + ownerdraw UI_SKILL + text "Skill:" + rect 320 10 320 31 + textalign ITEM_ALIGN_LEFT + textalignx 90 + textaligny 26 + textscale .4 + forecolor 1 1 1 1 + border 0 + bordercolor 0 0 0 0 + visible 1 + mouseEnter { fadein message_skill } + mouseExit { fadeout message_skill } + } + + + // TEAM LOGO // + + + itemDef { + name playerlogo + ownerdraw UI_PLAYERLOGO_METAL + rect 28 250 100 100 + visible 1 + forecolor 1 .7 .7 1 + decoration + } + + itemDef { + name opposinglogo + ownerdraw UI_OPPONENTLOGO_METAL + rect 488 250 100 100 + visible 1 + forecolor .7 .7 1 1 + decoration + } + + // MAP INFO // + + itemDef { + name window + rect 14 247 612 105 + style WINDOW_STYLE_FILLED + border 1 + bordercolor .5 .5 .5 .5 + forecolor 1 1 1 1 + backcolor 0 0 0 .25 + visible 1 + decoration + } + + itemDef { + name location + text "VS" + textscale 1 + rect 192 325 256 30 + textalign 1 // center + textalignx 128 // x alignment point for text + // use it to offset left/right text from the edge + // or to center the text on a different point + textaligny 21 + backcolor 0 0 0 0 + forecolor 1 1 1 .5 + decoration + visible 1 + } + + + itemDef { + name level_info + group grplevelinfo2 + ownerdraw UI_TIER_MAPNAME + textscale .35 + rect 14 220 222 20 + textalign 0 + textalignx 3 // x alignment point for text + // use it to offset left/right text from the edge + // or to center the text on a different point + textaligny 18 + backcolor 0 0 0 0 + forecolor 1 1 1 1 + decoration + visible 1 + } + + itemDef { + name level_info + group grplevelinfo2 + ownerdraw UI_TIER_GAMETYPE + textscale .35 + rect 236 220 122 20 + textalign 0 + textalignx 3 // x alignment point for text + // use it to offset left/right text from the edge + // or to center the text on a different point + textaligny 18 + backcolor 0 0 0 0 + forecolor 1 1 1 1 + decoration + visible 1 + } + + itemDef { + name level_info + group grplevelinfo2 + type ITEM_TYPE_NUMERICFIELD + text "Captures " + cvar "capturelimit" + rect 358 220 122 20 + textalign 0 + textalignx 3 + textaligny 18 + textscale .35 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemDef { + name level_info + group grplevelinfo2 + type ITEM_TYPE_NUMERICFIELD + text "Time " + cvar "timelimit" + rect 480 220 72 20 + textalign 0 + textalignx 3 + textaligny 18 + textscale .35 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemDef { + name level_info + group grplevelinfo2 + type ITEM_TYPE_NUMERICFIELD + text "Frags " + cvar "fraglimit" + rect 552 220 72 20 + textalign 0 + textalignx 3 + textaligny 18 + textscale .35 + forecolor 1 1 1 1 + visible 1 + decoration + } + + + // TEAM NAME // + + itemDef { + name playerteamname + ownerdraw UI_PLAYERLOGO_NAME + rect 128 295 128 64 + decoration + visible 1 + } + + itemDef { + name opposingteamname + ownerdraw UI_OPPONENTLOGO_NAME + rect 388 295 128 64 + backcolor 0 0 0 0 + forecolor 1 1 1 1 + decoration + visible 1 + } + + + + + + + + // PLAYER STATS // + + itemDef { + name window + rect 14 354 612 34 + style WINDOW_STYLE_FILLED + border 1 + bordercolor .5 .5 .5 .5 + forecolor 1 1 1 1 + backcolor 0 0 0 .25 + visible 1 + decoration + } + + itemDef { + name name + type ITEM_TYPE_EDITFIELD + style 0 + text "Name:" + cvar "name" + textscale .35 + style 0 + rect 0 363 128 30 + textalign 1 // center + textalignx 64 // x alignment point for text + // use it to offset left/right text from the edge + // or to center the text on a different point + textaligny 17 + backcolor 0 0 0 0 + forecolor 1 1 1 1 + decoration + visible 1 + } + + + + + itemDef { + name score + text "Score:" + textscale .35 + style 0 + rect 246 363 128 30 + textalign 3 // center + textalignx 16 // x alignment point for text + // use it to offset left/right text from the edge + // or to center the text on a different point + textaligny 17 + backcolor 0 0 0 0 + forecolor 1 1 1 1 + decoration + visible 1 + } + + + itemDef { + name wins + text "Wins:" + textscale .35 + style 0 + rect 404 363 128 30 + textalign 1 // center + textalignx 64 // x alignment point for text + // use it to offset left/right text from the edge + // or to center the text on a different point + textaligny 17 + backcolor 0 0 0 0 + forecolor 1 1 1 1 + decoration + visible 1 + } + + + // AWARDS // + + + itemDef { + name window + rect 14 390 612 38 + style WINDOW_STYLE_FILLED + border 1 + bordercolor .5 .5 .5 .5 + forecolor 1 1 1 1 + backcolor 0 0 0 .25 + visible 1 + decoration + } + + itemdef { + name medal_accuracy + style WINDOW_STYLE_SHADER + rect 48 394 32 32 + background "ui/assets/medal_accuracy.tga" + forecolor 1 1 1 .25 + visible 1 + decoration + } + + itemdef { + name medal_assist + style WINDOW_STYLE_SHADER + rect 112 394 32 32 + background "ui/assets/medal_assist.tga" + forecolor 1 1 1 .25 + visible 1 + decoration + + } + + itemdef { + name medal_accuracy + style WINDOW_STYLE_SHADER + rect 176 394 32 32 + background "ui/assets/medal_accuracy.tga" + forecolor 1 1 1 .25 + visible 1 + decoration + + } + + itemdef { + name medal_defend + style WINDOW_STYLE_SHADER + rect 240 394 32 32 + background "ui/assets/medal_defend.tga" + forecolor 1 1 1 .25 + visible 1 + decoration + + } + + itemdef { + name medal_excellent + style WINDOW_STYLE_SHADER + rect 304 394 32 32 + background "ui/assets/medal_excellent.tga" + forecolor 1 1 1 .25 + visible 1 + decoration + + } + + itemdef { + name medal_frags + style WINDOW_STYLE_SHADER + rect 368 394 32 32 + background "ui/assets/medal_frags.tga" + forecolor 1 1 1 .25 + visible 1 + decoration + + } + + itemdef { + name medal_gauntlet + style WINDOW_STYLE_SHADER + rect 432 394 32 32 + background "ui/assets/medal_gauntlet.tga" + forecolor 1 1 1 .25 + visible 1 + decoration + + } + + itemdef { + name medal_impressive + style WINDOW_STYLE_SHADER + rect 496 394 32 32 + background "ui/assets/medal_impressive.tga" + forecolor 1 1 1 .25 + visible 1 + decoration + + } + + itemdef { + name medal_victory + style WINDOW_STYLE_SHADER + rect 560 394 32 32 + background "ui/assets/medal_victory.tga" + forecolor 1 1 1 .25 + visible 1 + decoration + } + + + + + // SCREEN SHOT // + + itemDef { + name mapwindow + rect 14 52 612 158 + style WINDOW_STYLE_FILLED + border 1 + bordercolor .5 .5 .5 .5 + forecolor 1 1 1 1 + backcolor 0 0 0 .25 + visible 1 + decoration + mouseenter { setitemcolor mapwindow bordercolor .7 0 0 1 ; fadein message_arena } + mouseexit { setitemcolor mapwindow bordercolor .5 .5 .5 .5 ; fadeout message_arena } + } + + itemdef { + name screen1 + rect 19 57 198 148 + ownerdraw UI_TIERMAP1 + visible 1 + mouseenter { setitemcolor borderscreen1 backcolor .25 .25 .25 .25 } + mouseexit { setitemcolor borderscreen1 backcolor 0 0 0 0 } + action { setcvar ui_currentMap 0 ; setitemcolor grpborderscreen bordercolor .5 .5 .5 1 ; setitemcolor borderscreen1 bordercolor 1 0 0 1 } + } + + + itemdef { + name screen2 + rect 221 57 198 148 + ownerdraw UI_TIERMAP2 + visible 1 + mouseenter { setitemcolor borderscreen2 backcolor .25 .25 .25 .25 } + mouseexit { setitemcolor borderscreen2 backcolor 0 0 0 0 } + action { setcvar ui_currentMap 1 ; setitemcolor grpborderscreen bordercolor .5 .5 .5 1 ; setitemcolor borderscreen2 bordercolor 1 0 0 1 } + } + + + itemdef { + name screen3 + ownerdraw UI_TIERMAP3 + rect 423 57 198 148 + visible 1 + mouseenter { setitemcolor borderscreen3 backcolor .25 .25 .25 .25 } + mouseexit { setitemcolor borderscreen3 backcolor 0 0 0 0 } + action { setcvar ui_currentMap 2 ; setitemcolor grpborderscreen bordercolor .5 .5 .5 1 ; setitemcolor borderscreen3 bordercolor 1 0 0 1 } + } + + itemdef { + name borderscreen1 + group grpborderscreen + rect 18 56 200 150 + style WINDOW_STYLE_FILLED + border 1 + backcolor 0 0 0 0 + bordercolor .5 .5 .5 1 + decoration + visible 1 + } + + itemdef { + name borderscreen2 + group grpborderscreen + rect 220 56 200 150 + style WINDOW_STYLE_FILLED + decoration + border 1 + backcolor 0 0 0 0 + bordercolor .5 .5 .5 1 + visible 1 + + } + + + itemdef { + name borderscreen3 + group grpborderscreen + style WINDOW_STYLE_FILLED + border 1 + bordercolor .5 .5 .5 1 + backcolor 0 0 0 0 + decoration + rect 422 56 200 150 + visible 1 + } + + + + + + + + + + + + + + // BACK BAR // + + + itemDef { + name gotobar + style 2 + rect 0 430 640 30 + textscale 0.4 + textalign 0 // center + textalignx 60 // x alignment point for text + // use it to offset left/right text from the edge + // or to center the text on a different point + textaligny 21 + style 2 + border 4 + bordercolor 0.5 0.5 0.5 0.5 + bordersize 2 + backcolor 0 0 .75 0.5 + visible 1 + mouseEnter { setcolor backcolor .75 0 0 .5 } + mouseExit { setcolor backcolor 0 0 .75 .5 } + decoration + } + + itemDef { + name back + style 3 + background "ui/assets/backarrow.tga" + rect 16 424 50 50 + visible 1 + action { close fight ; open main } + mouseEnter { hide back ; show back_alt ; fadein message_back } + } + + itemDef { + name back_alt + style WINDOW_STYLE_SHADER + background "ui/assets/backarrow_alt.tga" + rect 16 424 50 50 + backcolor 0 0 0 0 + forecolor 1 1 1 1 + visible 0 + type ITEM_TYPE_BUTTON + mouseExit { hide back_alt ; show back ; fadeout message_back } + action { close fight ; open main } + } + + + + + itemDef { + name accept + style 3 + rect 574 424 50 50 + background "ui/assets/forwardarrow.tga" + backcolor 0 0 0 0 + forecolor 1 1 1 1 + visible 1 + mouseEnter { show lightning ; hide accept ; show accept_alt ; fadein message_accept } + action { close fight ; uiScript SinglePlayerStart } + } + + itemDef { + name accept_alt + style 3 + rect 574 424 50 50 + background "ui/assets/forwardarrow_alt.tga" + backcolor 0 0 0 0 + forecolor 1 1 1 1 + visible 0 + type ITEM_TYPE_BUTTON + action { close fight ; uiScript SinglePlayerStart } + mouseExit { hide lightning ; hide accept_alt ; show accept ; fadeout message_accept } + } + + itemDef { + name lightning + style 3 + background lightningkc + rect 46 385 246 128 + visible 0 + decoration + } + itemDef { + name lightning + style 3 + background lightningkc + rect 345 385 246 128 + visible 0 + decoration + } + + // MESSAGES // + + itemDef { + name message_back + style 0 + rect 320 430 128 30 + textstyle 1 + textalign 1 + textalignx 0 + textaligny 25 + textscale .4 + text "Exit to Main Menu" + forecolor 1 1 1 1 + decoration + visible 0 + } + + itemDef { + name message_accept + style 0 + rect 320 430 128 30 + textalign 1 + textstyle 1 + textalignx 0 + textaligny 25 + textscale .4 + text "Enter Arena" + forecolor 1 1 1 1 + decoration + visible 0 + } + + itemDef { + name message_tier + style 0 + rect 320 430 128 30 + textalign 1 + textstyle 1 + textalignx 0 + textaligny 25 + textscale .4 + text "Choose Tier" + forecolor 1 1 1 1 + decoration + visible 0 + } + + itemDef { + name message_skill + style 0 + rect 320 430 128 30 + textstyle 1 + textalign 1 + textalignx 0 + textaligny 25 + textscale .4 + text "Set Skill Level" + forecolor 1 1 1 1 + decoration + visible 0 + } + + itemDef { + name message_arena + style 0 + rect 320 430 128 30 + textstyle 1 + textalign 1 + textalignx 0 + textaligny 25 + textscale .4 + text "Choose Your Arena" + forecolor 1 1 1 1 + decoration + visible 0 + } + + + + } + + + + + + + + +} + +} +} diff --git a/reaction/uifiles/findplayer.menu b/reaction/uifiles/findplayer.menu new file mode 100644 index 00000000..a445a344 --- /dev/null +++ b/reaction/uifiles/findplayer.menu @@ -0,0 +1,184 @@ +#include "ui/menudef.h" + +{ + // Find Player Popup Menu // + + menuDef { + name "findplayer_popmenu" + visible 0 + fullscreen 0 + rect 170 104 300 280 + focusColor RQ3_MAIN_FOCUSCOLOR + style 1 + border 1 + popup + onOpen { play "sound/misc/menu1.wav" ; uiScript FindPlayer ; setfocus namefield } + onESC { close findplayer_popmenu ; open joinserver } + +//Window + + itemdef { + rect 0 0 300 280 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + shadowStyle 1 + bordercolor Ig_Window_BorderColor + decoration + } + +// Player Name + + itemDef { + text "Find Player:" + style 0 + decoration + textscale .25 + rect 0 14 80 20 + textalign ITEM_ALIGN_LEFT + textalignx 20 + textaligny 16 + forecolor 1 1 1 1 + visible 1 + } + + itemDef { + name nameEntry + style WINDOW_STYLE_FILLED + text "" + textalign ITEM_ALIGN_LEFT + textalignx 4 + textaligny 14 + maxchars 20 + maxPaintChars 10 + textscale .225 + type ITEM_TYPE_EDITFIELD + cvar "ui_findPlayer" + rect 100 14 188 20 + border 1 + bordersize 1 + bordercolor .25 .25 .25 1 + forecolor 1 1 1 1 + backcolor 1 1 1 .1 + visible 1 + onfocus { setcolor backcolor 1 1 1 .2 ; } + leavefocus { setcolor backcolor 1 1 1 .1 ; } + } + +//Server list + + itemdef { + type ITEM_TYPE_LISTBOX + rect 12 40 276 72 + style WINDOW_STYLE_FILLED + backcolor 0 0 0 .65 + border 1 + bordersize 1 + bordercolor .25 .25 .25 1 + elementtype LISTBOX_TEXT + elementwidth 160 + elementheight 20 + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + outlinecolor .75 .75 1 .25 + feeder FEEDER_FINDPLAYER + visible 1 + } + + // Scrollbar separator // + + itemdef { + rect 270 40 18 72 + style WINDOW_STYLE_EMPTY + border 1 + borderSize 1 + bordercolor .25 .25 .25 1 + visible 1 + decoration + } + +//Server info list + + itemdef { + type ITEM_TYPE_LISTBOX + rect 12 120 276 120 + style WINDOW_STYLE_FILLED + backcolor 0 0 0 .65 + border 1 + bordersize 1 + bordercolor .25 .25 .25 1 + elementtype LISTBOX_TEXT + elementwidth 160 + elementheight 20 + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + outlinecolor .75 .75 1 .25 + feeder FEEDER_SERVERSTATUS + columns 4 4 40 20 + 40 40 10 + 80 40 10 + 120 20 20 + visible 1 + } + + // Scrollbar separator // + + itemdef { + rect 270 120 18 120 + style WINDOW_STYLE_EMPTY + border 1 + borderSize 1 + bordercolor .25 .25 .25 1 + visible 1 + decoration + } + + // BUTTONS // + // SEARCH // + + itemdef { + text "Search" + shortcutKey "S" + textscale .25 + type 0 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + rect 128 252 60 20 + forecolor 1 1 1 1 + textstyle 0 + textalign ITEM_ALIGN_CENTER + textalignx 30 + textaligny 14 + visible 1 + action { play "sound/misc/menu1.wav" ; ui_script FindPlayer } + } + + // JOIN // + + itemdef { + text "Join" + shortcutKey "J" + textscale .25 + type 0 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + rect 228 252 60 20 + forecolor 1 1 1 1 + textstyle 0 + textalign ITEM_ALIGN_CENTER + textalignx 30 + textaligny 14 + visible 1 + action { ui_script FoundPlayerJoinServer } + } + + } +} + + diff --git a/reaction/uifiles/hud.menu b/reaction/uifiles/hud.menu new file mode 100644 index 00000000..3f00f8a4 --- /dev/null +++ b/reaction/uifiles/hud.menu @@ -0,0 +1,803 @@ +#include "ui/menudef.h" + +// team menu +// +// defines from ui_shared.h + +{ + assetGlobalDef { + cursor "gfx/rq3_ta_hud/3_cursor2" // cursor + gradientBar "ui/assets/gradientbar2.tga" // gradient bar + fadeClamp 1.0 // sets the fadeup alpha + fadeCycle 1 // how often fade happens in milliseconds + fadeAmount 0.1 // amount to adjust alpha per cycle + + shadowX 5 // x amount for shadow offset + shadowY 5 // y amount for shadow offset + shadowColor 0.1 0.1 0.1 0.25 // shadow color + + font "fonts/font" 16 // font + smallFont "fonts/smallfont" 12 // font + bigFont "fonts/bigfont" 20 // font + + + } + + + // POWERUP AREA // + + menuDef { + name "powerup area" + fullScreen MENU_FALSE + visible MENU_TRUE + rect 570 220 50 100 + + itemDef { + name "powerupArea" + rect 0 0 40 40 + visible 1 + decoration + ownerdraw CG_AREA_POWERUP + special 4 // spacing + align HUD_VERTICAL + } + + + } + + + + // SELECTED PLAYER // + + menuDef { + name "SelectedPlayer" + fullScreen MENU_FALSE + visible 1 + rect 2 363 180 64 + ownerdrawflag CG_SHOW_ANYTEAMGAME + + + itemDef { + name "b" + rect 2 4 170 57 + style 4 + visible 1 + } + + itemDef { + name "b" + rect 2 4 172 60 + visible 1 + textscale .17 + textaligny 10 + textalignx 0 + forecolor 1 1 1 1 + ownerdrawflag CG_SHOW_TEAMINFO + ownerdraw CG_TEAMINFO + } + + itemDef { + name "b" + rect 4 3 32 32 + visible 1 + ownerdrawflag CG_SHOW_NOTEAMINFO + ownerdraw CG_SELECTEDPLAYER_HEAD + } + + + itemDef { + name "b" + rect 75 35 22 11 + visible 1 + style 1 + textscale .25 + decoration + addColorRange -999 25 1 0 0 1 + addColorRange 26 100 1 .75 0 1 + addColorRange 101 999 1 1 1 1 + ownerdrawflag CG_SHOW_NOTEAMINFO + ownerdraw CG_SELECTEDPLAYER_HEALTH + } + + itemDef { + name "b" + rect 50 48 22 11 + visible 1 + style 3 + decoration + background "ui/assets/statusbar/selectedarmor.tga" + addColorRange -999 25 1 0 0 1 + addColorRange 26 100 1 .75 0 1 + addColorRange 101 999 1 1 1 1 + ownerdrawflag CG_SHOW_NOTEAMINFO + ownerdraw CG_SELECTEDPLAYER_ARMOR + } + + itemDef { + name "b" + rect 75 48 22 11 + visible 1 + textstyle 3 + style 1 + textscale .25 + decoration + addColorRange -999 25 1 0 0 1 + addColorRange 26 100 1 .75 0 1 + addColorRange 101 999 1 1 1 1 + ownerdrawflag CG_SHOW_NOTEAMINFO + ownerdraw CG_SELECTEDPLAYER_ARMOR + } + + + itemDef { + name "b" + rect 35 3 35 15 + textscale 0.25 + textstyle 3 + forecolor 1 1 1 1 + visible 1 + decoration + ownerdrawflag CG_SHOW_NOTEAMINFO + ownerdraw CG_SELECTEDPLAYER_NAME + } + + + + itemDef { + name "b" + rect 35 15 45 15 + textstyle 3 + textscale 0.25 + forecolor 1 1 1 1 + visible 1 + decoration + ownerdrawflag CG_SHOW_NOTEAMINFO + ownerdraw CG_SELECTEDPLAYER_LOCATION + } + + itemDef { + name "b" + rect 7 40 16 16 + visible 1 + decoration + ownerdrawflag CG_SHOW_NOTEAMINFO + ownerdraw CG_SELECTEDPLAYER_STATUS + } + + itemDef { + name "b" + rect 30 40 16 16 + visible 1 + decoration + ownerdrawflag CG_SHOW_NOTEAMINFO + ownerdraw CG_SELECTEDPLAYER_POWERUP + } + + itemDef { + name "b" + rect 100 33 24 24 + visible 1 + decoration + ownerdrawflag CG_SHOW_NOTEAMINFO + ownerdraw CG_SELECTEDPLAYER_WEAPON + } + + itemDef { + name "statusscreen" + visible 1 + style 3 + background "menuscreen2" + rect 2 4 170 57 + } + + itemDef { + name "sback" + rect 0 0 256 64 + visible 1 + style 3 + decoration + background "ui/assets/selectedstatus.tga" + } + + } + + + + // PLAYER STATUS // + + menuDef { + name "playerStatus" + fullScreen MENU_FALSE + visible MENU_TRUE + rect 0 416 128 64 + + itemDef { + name "playerStatusRect" + style 4 + rect 12 13 116 48 + visible 1 + } + itemDef { + name "playerRect" + rect 12 13 116 48 + style 3 + background hudalert_good + visible 1 + ownerdrawflag CG_SHOW_IF_PLAYER_HAS_FLAG + } + + itemDef { + name "playeritem" + rect 27 25 22 22 + visible 1 + decoration + ownerdraw CG_PLAYER_ITEM + } + + itemDef { + name "CTFPOWERUP" + rect 54 25 22 22 + visible 1 + decoration + ownerdraw CG_CTF_POWERUP + } + + itemDef { + name "flag" + rect 85 15 40 40 + visible 1 + decoration + ownerdraw CG_PLAYER_HASFLAG + } + + itemDef { + name "skulls" + rect 72 10 48 34 + visible 1 + decoration + textaligny 12 + textalignx 0 + textscale 0.333 + textstyle 3 + ownerdraw CG_HARVESTER_SKULLS + } + + itemDef { + name "statusscreen" + visible 1 + style 3 + background "menuscreen2" + rect 12 13 116 48 + } + } + + + // AMMO // + + menuDef { + name "Ammo" + fullScreen MENU_FALSE + visible MENU_TRUE + rect 128 416 128 64 + + + itemDef { + name "ammoRect" + visible 1 + style 4 + rect 3 13 122 48 + } + + itemDef { + name "a" + rect 85 25 30 30 + visible 1 + decoration + ownerdraw CG_PLAYER_AMMO_ICON2D + } + + + itemDef { + name "a" + rect 10 43 63 12 + visible 1 + textstyle 3 + decoration + textscale .75 + forecolor 1 1 1 1 + ownerdraw CG_PLAYER_AMMO_VALUE + addColorRange -999 5 1 0 0 1 + addColorRange 6 999 1 .75 0 1 + } + + itemDef { + name "statusscreen" + visible 1 + style 3 + background "menuscreen2" + rect 3 13 122 48 + } + } + + + + + + + // PLAYER // + + menuDef { + name "Player" + fullScreen MENU_FALSE + visible MENU_TRUE + rect 256 416 128 64 + + + itemDef { + name "playerRect" + rect 0 2 128 60 + style 4 + visible 1 + } + + itemDef { + name "playerRect" + rect 0 2 128 60 + style 3 + background hudalert + visible 1 + ownerdrawflag CG_SHOW_HEALTHCRITICAL + } + + + itemDef { + name "healthok" + rect 12 42 63 12 + visible 1 + decoration + textstyle 3 + forecolor 1 1 1 1 + textscale .75 + ownerdraw CG_PLAYER_HEALTH + addColorRange -999 25 1 0 0 1 + addColorRange 26 100 1 .75 0 1 + addColorRange 101 999 1 1 1 1 + } + + itemDef { + name "statusscreen" + visible 1 + style 3 + background "menuscreen2" + rect 0 2 128 60 + } + + itemDef { + name "b" + rect 70 10 45 45 + visible 1 + decoration + ownerdraw CG_PLAYER_HEAD + } + } + + + + + + + + // ARMOR // + + menuDef { + name "Armor" + fullScreen MENU_FALSE + visible MENU_TRUE + rect 384 416 128 64 + + + itemDef { + name "armorRect" + rect 0 13 125 48 + visible 1 + style 4 + } + + itemDef { + name "armor" + rect 10 7 30 30 + visible 1 + decoration + ownerdraw CG_PLAYER_ARMOR_ICON2D + } + + + itemDef { + name "armor2" + rect 55 43 63 12 + visible 1 + decoration + textstyle 3 + textscale .75 + ownerdraw CG_PLAYER_ARMOR_VALUE + addColorRange -999 25 .67 0 0 1 + addColorRange 26 100 1 .75 0 1 + addColorRange 101 999 .75 .75 .75 1 + } + + itemDef { + name "statusscreen" + visible 1 + style 3 + background "menuscreen2" + rect 0 13 125 48 + } + } + + + // PLAYERSCORE // + + menuDef { + name "PlayerScore" + fullScreen MENU_FALSE + visible MENU_TRUE + rect 512 416 128 64 + ownerdrawflag CG_SHOW_ANYTEAMGAME + + + itemDef { + name "playerScoreRect" + visible 1 + rect 0 13 126 48 + style 4 + } + + itemDef { + name "playerRect" + rect 0 13 63 48 + style 3 + background hudalert_blue + visible 1 + ownerdrawflag CG_SHOW_BLUE_TEAM_HAS_REDFLAG + } + + itemDef { + name "playerRect" + rect 63 13 63 48 + style 3 + background hudalert_red + visible 1 + ownerdrawflag CG_SHOW_RED_TEAM_HAS_BLUEFLAG + } + + + itemDef { + name "f" + rect 30 22 16 16 + visible 1 + bordercolor 1 1 1 .75 + decoration + style 3 + background "ui/assets/bluechip.tga" + } + itemDef { + name "f" + rect 30 22 16 16 + visible 1 + bordercolor 1 1 1 .75 + decoration + style 3 + ownerdrawflag CG_SHOW_HARVESTER + background "icons/skull_blue.tga" + } + + itemDef { + name "blueflag" + rect 30 22 16 16 + visible 1 + decoration + ownerdrawflag CG_SHOW_CTF + ownerdraw CG_BLUE_FLAGSTATUS + } + + + itemDef { + name "oneflagstatus" + rect 30 40 16 16 + visible 1 + decoration + ownerdraw CG_ONEFLAG_STATUS + } + + + itemDef { + name "r" + rect 35 21 30 15 + textstyle 3 + visible 1 + decoration + forecolor .25 .25 1 1 + textscale 0.25 + ownerdraw CG_BLUE_SCORE + } + + itemDef { + name "f" + rect 77 22 16 16 + visible 1 + bordercolor 1 1 1 1 + decoration + style 3 + background "ui/assets/redchip.tga" + } + + itemDef { + name "f" + rect 77 22 16 16 + visible 1 + bordercolor 1 1 1 1 + decoration + style 3 + ownerdrawflag CG_SHOW_HARVESTER + background "icons/skull_red.tga" + } + + itemDef { + name "f" + rect 77 22 16 16 + visible 1 + decoration + ownerdrawflag CG_SHOW_CTF + ownerdraw CG_RED_FLAGSTATUS + } + + itemDef { + name "r" + rect 87 21 30 15 + textstyle 3 + visible 1 + decoration + forecolor 1 0 0 1 + textscale 0.25 + ownerdraw CG_RED_SCORE + } + + itemDef { + name "statusscreen" + visible 1 + style 3 + background "menuscreen2" + rect 0 13 126 48 + } + + itemDef { + name "playerScore" + type 4 + rect 8 36 40 12 + visible 1 + textstyle 3 + decoration + forecolor 1 1 1 1 + textscale .25 + ownerdraw CG_CAPFRAGLIMIT + } + + + + itemDef { + name "playerScore" + style 0 + rect 60 43 65 12 + visible 1 + textstyle 3 + decoration + forecolor 1 1 1 1 + textscale .25 + ownerdraw CG_PLAYER_SCORE + } + } + + + // PLAYERSCORE // + + menuDef { + name "PlayerScore" + fullScreen MENU_FALSE + visible MENU_TRUE + rect 512 416 128 64 + ownerdrawflag CG_SHOW_ANYNONTEAMGAME + + itemDef { + name "playerScoreRect" + visible 1 + rect 0 13 126 48 + style 4 + } + + itemDef { + name "statusscreen" + visible 1 + style 3 + background "menuscreen2" + rect 0 13 126 48 + } + + itemDef { + name "playerScore" + rect 8 32 40 12 + visible 1 + textstyle 3 + decoration + forecolor 1 1 1 1 + textscale .25 + text "FragLimit:" + ownerdraw CG_CAPFRAGLIMIT + } + itemDef { + name "playerScore" + style 0 + rect 10 45 65 12 + visible 1 + textstyle 3 + text "1st:" + ownerdraw CG_1STPLACE + decoration + forecolor .25 .25 1 1 + textscale .25 + } + itemDef { + name "playerScore" + style 0 + rect 70 45 65 12 + visible 1 + textstyle 3 + text "2nd:" + ownerdraw CG_2NDPLACE + decoration + forecolor 1 0 0 1 + textscale .25 + } + + + itemDef { + name "playerScore" + style 0 + rect 10 58 40 0 + visible 1 + textstyle 3 + text "Score:" + decoration + forecolor 1 1 1 1 + textscale .25 + ownerdraw CG_PLAYER_SCORE + } + } + + + // LOCATION // + + menuDef { + name "location" + fullScreen MENU_FALSE + visible MENU_TRUE + rect 463 395 256 32 + ownerdrawflag CG_SHOW_ANYTEAMGAME + + + itemDef { + name "locationRect" + visible MENU_TRUE + rect 2 6 170 26 + style 4 + } + itemDef { + name "playerStatus" + rect 16 10 16 16 + visible 1 + decoration + ownerdraw CG_PLAYER_STATUS + } + + itemDef { + name "playerlocation" + rect 37 7 16 16 + visible 1 + textstyle 3 + decoration + textscale .25 + ownerdraw CG_PLAYER_LOCATION + } + itemDef { + name "lback" + rect 0 0 256 32 + visible 1 + style 3 + decoration + background "ui/assets/locationstatus.tga" + } + } + + + + // STATUSBAR // + + menuDef { + name "statusbar" + fullScreen 0 + visible 1 + rect 0 416 640 64 + + + itemDef { + name "statusbar" + rect 0 0 640 64 + style 3 + background "ui/assets/statusbar_full.tga" + visible 1 + decoration + forecolor 1 1 1 1 + backcolor 1 1 1 1 + } + } + + + + + + + menuDef { + name "voiceMenu" + fullScreen MENU_FALSE + visible MENU_FALSE + rect 5 5 100 100 + + + itemDef { + name "voiceMenuRect" + style 4 + rect 2 2 50 50 + visible 1 + } + + itemDef { + name "b" + rect 2 2 50 50 + visible 1 + decoration + ownerdraw CG_VOICE_HEAD + } + + itemDef { + name "b" + rect 2 2 50 50 + style WINDOW_STYLE_SHADER + background "menuscreen2" + visible 1 + decoration + } + + itemDef { + name "voiceWindow" + visible 1 + style 3 + background "ui/assets/voice_window.tga" + rect 0 0 54 54 + } + + + itemDef { + name "b" + rect 2 55 50 12 + visible 1 + decoration + textscale .25 + textalign 0 + textalignx 0 + textaligny 12 + ownerdraw CG_VOICE_NAME + } + + + } + + diff --git a/reaction/uifiles/hud.txt b/reaction/uifiles/hud.txt new file mode 100644 index 00000000..ab99a101 --- /dev/null +++ b/reaction/uifiles/hud.txt @@ -0,0 +1,7 @@ +// hud menu defs +// +{ + loadMenu { "ui/hud.menu" } + loadMenu { "ui/score.menu" } + loadMenu { "ui/teamscore.menu" } +} diff --git a/reaction/uifiles/hud2.txt b/reaction/uifiles/hud2.txt new file mode 100644 index 00000000..c0a2da4b --- /dev/null +++ b/reaction/uifiles/hud2.txt @@ -0,0 +1,7 @@ +// hud menu defs +// +{ + loadMenu { "ui/min_hud.menu" } + loadMenu { "ui/score.menu" } + loadMenu { "ui/teamscore.menu" } +} diff --git a/reaction/uifiles/ingame.menu b/reaction/uifiles/ingame.menu new file mode 100644 index 00000000..5df8a333 --- /dev/null +++ b/reaction/uifiles/ingame.menu @@ -0,0 +1,446 @@ +#include "ui/menudef.h" + +{ + + assetGlobalDef { + font "fonts/font" 16 // font + smallFont "fonts/smallfont" 12 // font + bigFont "fonts/bigfont" 20 // font + cursor "gfx/rq3_ta_hud/3_cursor2" // cursor + gradientBar "ui/assets/gradientbar2.tga" // gradient bar + itemFocusSound "sound/misc/menu2.wav" // sound for item getting focus (via keyboard or mouse ) + + fadeClamp 1.0 // sets the fadeup alpha + fadeCycle 1 // how often fade happens in milliseconds + fadeAmount 0.1 // amount to adjust alpha per cycle + + shadowColor 0.1 0.1 0.1 0.25 // shadow color + } + + + menuDef { + name "ingame" + visible 0 + fullScreen 0 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle + rect 0 0 640 36 + focusColor 1 .75 0 1 + disableColor .5 .5 .5 1 + onOpen { play "sound/misc/menu2.wav" ; setfocus "ig-player" ; } + + itemdef { + name "ig-bground" + rect 0 0 640 36 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ingame-background" + //backcolor 0 0 0 .5 + visible 1 + decoration + } + + itemdef { + name "ig-bground-bar" + rect 0 36 640 2 + style WINDOW_STYLE_FILLED + //backcolor 1 0 0 1 + backcolor .5 .5 .5 1 + visible 1 + decoration + } + + itemdef { + name "ig-logo" + rect 4 0 96 32 + style WINDOW_STYLE_SHADER + background "menu/art/rq3-title-logo" + visible 1 + decoration + } + +//Box for hints + + itemDef { + style WINDOW_STYLE_SHADER + rect 384 26 40 20 + background "ui/assets/rq3-main-box-3.tga" + visible 1 + decoration + } + + itemDef { + style WINDOW_STYLE_SHADER + rect 424 26 216 20 + background "ui/assets/rq3-main-box-1.tga" + visible 1 + decoration + } + +//Buttons + + itemdef { + name "ig-player" + rect 116 8 52 16 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_CENTER + textalignx 26 + textaligny 12 + text "Player" + shortcutKey "P" + border 1 + bordersize 1 + backcolor Ingame_Color1 + forecolor Ingame_TextColor + bordercolor Ingame_BorderColor1 + visible 1 + action { open ingame_player } + onFocus { setcolor backcolor Ingame_Color2 ; setcolor bordercolor Ingame_BorderColor2 ; + show "ig-player-hint" ; timeFade "ig-player-hint" forecolor .9 .9 .9 1 0 250 } + leaveFocus { setcolor backcolor Ingame_Color1 ; setcolor bordercolor Ingame_BorderColor1 ; + timeFade "ig-player-hint" forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name "ig-options" + rect 180 8 52 16 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_CENTER + textalignx 26 + textaligny 12 + text "Options" + shortcutKey "O" + border 1 + bordersize 1 + backcolor Ingame_Color1 + forecolor Ingame_TextColor + bordercolor Ingame_BorderColor1 + visible 1 + action { open ingame_system } + //action { exec "screenshotJPEG" ; } + onFocus { setcolor backcolor Ingame_Color2 ; setcolor bordercolor Ingame_BorderColor2 ; + show "ig-options-hint" ; timeFade "ig-options-hint" forecolor .9 .9 .9 1 0 250 } + leaveFocus { setcolor backcolor Ingame_Color1 ; setcolor bordercolor Ingame_BorderColor1 ; + timeFade "ig-options-hint" forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name "ig-about" + rect 244 8 52 16 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_CENTER + textalignx 26 + textaligny 12 + text "About" + shortcutKey "A" + border 1 + bordersize 1 + backcolor Ingame_Color1 + forecolor Ingame_TextColor + bordercolor Ingame_BorderColor1 + visible 1 + action { open ingame_about } + onFocus { setcolor backcolor Ingame_Color2 ; setcolor bordercolor Ingame_BorderColor2 ; + show "ig-about-hint" ; timeFade "ig-about-hint" forecolor .9 .9 .9 1 0 250 } + leaveFocus { setcolor backcolor Ingame_Color1 ; setcolor bordercolor Ingame_BorderColor1 ; + timeFade "ig-about-hint" forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name "ig-matchmode" + rect 308 8 68 16 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_CENTER + textalignx 34 + textaligny 12 + text "Matchmode" + shortcutKey "M" + border 1 + bordersize 1 + backcolor Ingame_Color1 + forecolor Ingame_TextColor + bordercolor Ingame_BorderColor1 + visible 1 + cvarTest "g_RQ3_matchMode" + enableCvar { "1" } + action { open ingame_matchmode } + onFocus { setcolor backcolor Ingame_Color2 ; setcolor bordercolor Ingame_BorderColor2 ; + show "ig-matchmode-hint" ; timeFade "ig-matchmode-hint" forecolor .9 .9 .9 1 0 250 } + leaveFocus { setcolor backcolor Ingame_Color1 ; setcolor bordercolor Ingame_BorderColor1 ; + timeFade "ig-matchmode-hint" forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name "ig-vote" + rect 400 4 52 16 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_CENTER + textalignx 26 + textaligny 12 + text "Vote" + shortcutKey "V" + border 1 + bordersize 1 + backcolor Ingame_Color1 + forecolor Ingame_TextColor + bordercolor Ingame_BorderColor1 + visible 1 + cvartest "g_allowVote" + disableCvar { "0" } + action { open ingame_vote } + onFocus { setcolor backcolor Ingame_Color2 ; setcolor bordercolor Ingame_BorderColor2 ; + show "ig-vote-hint" ; timeFade "ig-vote-hint" forecolor .9 .9 .9 1 0 250 } + leaveFocus { setcolor backcolor Ingame_Color1 ; setcolor bordercolor Ingame_BorderColor1 ; + timeFade "ig-vote-hint" forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name "ig-addbot" + rect 460 4 52 16 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_CENTER + textalignx 26 + textaligny 12 + text "Add bot" + shortcutKey "B" + border 1 + bordersize 1 + backcolor Ingame_Color1 + forecolor Ingame_TextColor + bordercolor Ingame_BorderColor1 + visible 1 + cvartest "ui_singlePlayerActive" + disableCvar { "1" } + action { open ingame_addbot } + onFocus { setcolor backcolor Ingame_Color2 ; setcolor bordercolor Ingame_BorderColor2 ; + show "ig-addbot-hint" ; timeFade "ig-addbot-hint" forecolor .9 .9 .9 1 0 250 } + leaveFocus { setcolor backcolor Ingame_Color1 ; setcolor bordercolor Ingame_BorderColor1 ; + timeFade "ig-addbot-hint" forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name "ig-devmode" + rect 520 4 52 16 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_CENTER + textalignx 26 + textaligny 12 + text "Devmode" + shortcutKey "D" + border 1 + bordersize 1 + backcolor Ingame_Color1 + forecolor Ingame_TextColor + bordercolor Ingame_BorderColor1 + visible 1 + cvartest "sv_cheats" + enableCvar { "1" } + disableCvar { "0" } + action { open ingame_devmode } + onFocus { setcolor backcolor Ingame_Color2 ; setcolor bordercolor Ingame_BorderColor2 ; + show "ig-devmode-hint" ; timeFade "ig-devmode-hint" forecolor .9 .9 .9 1 0 250 } + leaveFocus { setcolor backcolor Ingame_Color1 ; setcolor bordercolor Ingame_BorderColor1 ; + timeFade "ig-devmode-hint" forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name "ig-quit" + rect 580 4 52 16 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_CENTER + textalignx 26 + textaligny 12 + text "Quit" + shortcutKey "Q" + border 1 + bordersize 1 + backcolor Ingame_Color1 + forecolor Ingame_TextColor + bordercolor Ingame_BorderColor1 + visible 1 + action { open ingame_leave } + onFocus { setcolor backcolor Ingame_Color2 ; setcolor bordercolor Ingame_BorderColor2 ; + show "ig-quit-hint" ; timeFade "ig-quit-hint" forecolor .9 .9 .9 1 0 250 } + leaveFocus { setcolor backcolor Ingame_Color1 ; setcolor bordercolor Ingame_BorderColor1 ; + timeFade "ig-quit-hint" forecolor .9 .9 .9 0 0 250 } + } + +//Hints + + //Hint for player in teamplay mode + + itemdef { + name "ig-player-hint" + group "hints" + style WINDOW_STYLE_EMPTY + rect 400 28 240 16 + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .2 + textalign ITEM_ALIGN_RIGHT + textalignx 236 + textaligny 12 + text "Player options, team, weapon & item" + forecolor Ingame_HintColor + cvarTest "g_gameType" + showCvar { "4" } + visible 0 + decoration + } + + //Hint for player in a non-teamplay mode + + itemdef { + name "ig-player-hint" + group "hints" + style WINDOW_STYLE_EMPTY + rect 400 28 240 16 + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .2 + textalign ITEM_ALIGN_RIGHT + textalignx 236 + textaligny 12 + text "Change player options" + forecolor Ingame_HintColor + cvarTest "g_gameType" + hideCvar { "4" } + visible 0 + decoration + } + + itemdef { + name "ig-options-hint" + group "hints" + style WINDOW_STYLE_EMPTY + rect 400 28 240 16 + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .2 + textalign ITEM_ALIGN_RIGHT + textalignx 236 + textaligny 12 + text "Controls, game & system options" + forecolor Ingame_HintColor + visible 0 + decoration + } + + itemdef { + name "ig-about-hint" + group "hints" + style WINDOW_STYLE_EMPTY + rect 400 28 240 16 + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .2 + textalign ITEM_ALIGN_RIGHT + textalignx 236 + textaligny 12 + text "View server info" + forecolor Ingame_HintColor + visible 0 + decoration + } + + itemdef { + name "ig-devmode-hint" + group "hints" + style WINDOW_STYLE_EMPTY + rect 400 28 240 16 + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .2 + textalign ITEM_ALIGN_RIGHT + textalignx 236 + textaligny 12 + text "Developer mode commands" + forecolor Ingame_HintColor + visible 0 + decoration + } + + itemdef { + name "ig-addbot-hint" + group "hints" + style WINDOW_STYLE_EMPTY + rect 400 28 240 16 + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .2 + textalign ITEM_ALIGN_RIGHT + textalignx 236 + textaligny 12 + text "Play against computer-controlled opponnents" + forecolor Ingame_HintColor + visible 0 + decoration + } + + itemdef { + name "ig-vote-hint" + group "hints" + style WINDOW_STYLE_EMPTY + rect 400 28 240 16 + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .2 + textalign ITEM_ALIGN_RIGHT + textalignx 236 + textaligny 12 + text "Vote yes/no or call a vote" + forecolor Ingame_HintColor + visible 0 + decoration + } + + itemdef { + name "ig-matchmode-hint" + group "hints" + style WINDOW_STYLE_EMPTY + rect 400 28 240 16 + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .2 + textalign ITEM_ALIGN_RIGHT + textalignx 236 + textaligny 12 + text "View/change match mode settings" + forecolor Ingame_HintColor + visible 0 + decoration + } + + itemdef { + name "ig-quit-hint" + group "hints" + style WINDOW_STYLE_EMPTY + rect 400 28 240 16 + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .2 + textalign ITEM_ALIGN_RIGHT + textalignx 236 + textaligny 12 + text "Exit Reaction Quake 3" + forecolor Ingame_HintColor + visible 0 + decoration + } + + } + +} diff --git a/reaction/uifiles/ingame.txt b/reaction/uifiles/ingame.txt new file mode 100644 index 00000000..252794e8 --- /dev/null +++ b/reaction/uifiles/ingame.txt @@ -0,0 +1,23 @@ +{ + // MENU DEFS // + + loadMenu { "ui/ingame.menu" } + loadMenu { "ui/ingame_devmode.menu" } + loadMenu { "ui/ingame_vote.menu" } + loadMenu { "ui/ingame_tkok.menu" } + loadMenu { "ui/ingame_about.menu" } + loadMenu { "ui/ingame_join.menu" } + loadMenu { "ui/ingame_join_dm.menu" } + loadMenu { "ui/ingame_system.menu" } + loadMenu { "ui/ingame_controls.menu" } + loadMenu { "ui/ingame_options.menu" } + loadMenu { "ui/ingame_player.menu" } + loadMenu { "ui/ingame_weapon.menu" } + loadMenu { "ui/ingame_item.menu" } + loadMenu { "ui/ingame_ignore.menu" } + loadMenu { "ui/ingame_addbot.menu" } + loadMenu { "ui/ingame_callvote.menu" } + loadMenu { "ui/ingame_leave.menu" } + loadMenu { "ui/ingame_matchmode.menu" } + +} diff --git a/reaction/uifiles/ingame_about.menu b/reaction/uifiles/ingame_about.menu new file mode 100644 index 00000000..d6f0d7b9 --- /dev/null +++ b/reaction/uifiles/ingame_about.menu @@ -0,0 +1,318 @@ +#include "ui/menudef.h" + +{ + + menuDef { + name "ingame_about" + visible 0 + fullscreen 0 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle +// rect 256 64 256 296 + rect 256 64 256 320 + disableColor .5 .5 .5 1 + focusColor 1 .75 0 1 // Menu focus color for text and items + style 1 + shadowStyle 1 + onOpen { play "sound/misc/menu1.wav" } + +//Window + + itemDef { +// rect 0 0 256 296 + rect 0 0 256 320 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemDef { + rect 137 1 120 24 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ingame-title" + visible 1 + decoration + } + + itemDef { + rect 137 1 120 24 + style WINDOW_STYLE_EMPTY + forecolor Ig_Window_TitleColor + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 24 + textaligny 16 + text "Server info" + visible 1 + decoration + } + +//Objects + + itemDef { + name about + rect 0 40 256 20 + style 0 + //type 4 + textalign ITEM_ALIGN_RIGHT + text "GameType:" + type ITEM_TYPE_MULTI + cvar "g_gameType" + cvarFloatList { "RQ3 Deathmatch" 0 "Tournament" 1 "RQ3 Deathmatch" 2 "Team Deathmatch" 3 "RQ3 Teamplay" 4 "RQ3 CTB" 5 "One Flag CTF" 6 "Overload" 7 "Harvester" 8 "Team Tournament" 9 } + textalignx 128 + textaligny 12 + textscale .25 + backcolor 0 0 .75 .25 + visible 1 + decoration + } + + itemDef { + name about + rect 0 70 256 20 + type 4 + style 0 + text "Capture Limit:" + cvarTest "g_gameType" + hideCvar { "0" ; "1" ; "2" ; "3" ; "4" } + maxPaintChars 12 + cvar capturelimit + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 12 + textscale .25 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemDef { + name about + rect 0 70 256 20 + type 4 + style 0 + text "Frag Limit:" + cvarTest "g_gametype" + showCvar { "0" ; "1" ; "2" ; "3" } + maxPaintChars 12 + cvar fraglimit + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 12 + textscale .25 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemDef { + name about + rect 0 85 256 20 + type 4 + style 0 + text "Time Limit:" + maxPaintChars 12 + cvar timelimit + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 12 + textscale .25 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemDef { + name about + rect 20 100 256 20 + type 4 + style 0 + text "Team 1:" + maxPaintChars 12 + cvar g_RQ3_team1name + cvarTest g_gametype + hideCvar { "0" ; "1" ; "2" } + textalign ITEM_ALIGN_RIGHT + textalignx 108 + textaligny 12 + textscale .25 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemDef { + name about + rect 20 115 256 20 + type 4 + style 0 + text "Team 2:" + maxPaintChars 12 + cvar g_RQ3_team2name + cvarTest g_gametype + hideCvar { "0" ; "1" ; "2" } + textalign ITEM_ALIGN_RIGHT + textalignx 108 + textaligny 12 + textscale .25 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemDef { + name about + rect 0 140 256 20 + type 4 + style 0 + text "Protocol:" + cvar protocol + maxPaintChars 12 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 12 + textscale .25 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemDef { + name about + rect 0 155 256 20 + type 4 + style 0 + text "Max Clients:" + cvar sv_maxclients + maxPaintChars 12 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 12 + textscale .25 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemDef { + name about + rect 0 170 256 20 + type 4 + style 0 + text "Host Name:" + cvar sv_hostname + maxPaintChars 12 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 12 + textscale .25 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemDef { + name about + rect 0 205 256 20 + type 11 + style 0 + text "Password Required:" + cvar g_needpass + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 12 + textscale .25 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemDef { + name about + rect 0 220 256 20 + type 4 + style 0 + text "DM Flags:" + cvar dmflags + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 12 + textscale .25 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemDef { + name about + rect 0 235 256 20 + type 11 + style 0 + text "Bot/Min Players:" + cvar bot_minplayers + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 12 + textscale .25 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemDef { + name about + rect 0 250 256 20 + type 4 + style 0 + text "RQ3 Version:" + cvar g_RQ3_version + maxPaintChars 32 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 12 + textscale .25 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemDef { + name about + rect 0 265 256 20 + type 11 + style 0 + text "Show Own Kills:" + cvar g_RQ3_showOwnKills + maxPaintChars 32 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 12 + textscale .25 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemDef { + name about + rect 0 295 256 20 + type 4 + style 0 + text "Version:" + cvar version + maxPaintChars 32 + textalign ITEM_ALIGN_LEFT + textalignx 128 + textaligny 12 + textalign 1 + textscale .25 + forecolor 1 1 1 1 + visible 1 + decoration + } +} +} diff --git a/reaction/uifiles/ingame_addbot.menu b/reaction/uifiles/ingame_addbot.menu new file mode 100644 index 00000000..6297ff07 --- /dev/null +++ b/reaction/uifiles/ingame_addbot.menu @@ -0,0 +1,128 @@ +#include "ui/menudef.h" + +{ + + menuDef { + name "ingame_addbot" + visible 0 + fullscreen 0 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle + rect 384 64 152 128 + disableColor .5 .5 .5 1 + focusColor 1 .75 0 1 // Menu focus color for text and items + style 1 + shadowStyle 1 + onOpen { play "sound/misc/menu1.wav" ; setfocus "ig-bot-name" } + +//Window + + itemdef { + rect 0 0 152 128 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemdef { + rect 33 1 120 24 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ingame-title" + visible 1 + decoration + } + + itemdef { + rect 33 1 120 24 + style WINDOW_STYLE_EMPTY + forecolor Ig_Window_TitleColor + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 24 + textaligny 16 + text "Add bot" + visible 1 + decoration + } + +//Objects + + itemdef { + name "ig-bot-name" + style WINDOW_STYLE_EMPTY + text "Name:" + ownerdraw UI_BOTNAME + rect 0 32 128 20 + textalign ITEM_ALIGN_RIGHT + textalignx 48 + textaligny 18 + textscale .225 + forecolor 1 1 1 1 + border 0 + bordercolor 0 0 0 0 + visible 1 + } + + itemdef { + name "ig-bot-team" + style WINDOW_STYLE_EMPTY + text "Team:" + ownerdraw UI_REDBLUE + rect 0 52 128 20 + textalign ITEM_ALIGN_RIGHT + textalignx 48 + textaligny 18 + textscale .225 + cvarTest "g_gametype" + disableCvar { "0" ; "1" } + forecolor 1 1 1 1 + border 0 + bordercolor 0 0 0 0 + visible 1 + } + + itemdef { + name "ig-bot-skill" + style WINDOW_STYLE_EMPTY + text "Skill:" + ownerdraw UI_BOTSKILL + rect 0 72 128 20 + textalign ITEM_ALIGN_RIGHT + textalignx 48 + textaligny 18 + textscale .225 + forecolor 1 1 1 1 + border 0 + bordercolor 0 0 0 0 + visible 1 + } + + itemdef { + name ok + rect 80 100 64 20 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_CENTER + textalignx 32 + textaligny 14 + text "Ok" + shortcutKey "O" + border 1 + bordersize 1 + backcolor Ig_Sub_Color1 + forecolor Ig_Sub_TextColor + bordercolor Ig_Sub_BorderColor1 + visible 1 + action { play "sound/misc/menu1.wav" ; uiScript addBot ; uiScript closeingame } + //action { exec "screenshotJPEG" } + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + } +} +} \ No newline at end of file diff --git a/reaction/uifiles/ingame_callvote.menu b/reaction/uifiles/ingame_callvote.menu new file mode 100644 index 00000000..d2a475c1 --- /dev/null +++ b/reaction/uifiles/ingame_callvote.menu @@ -0,0 +1,334 @@ +#include "ui/menudef.h" + +{ + //----------------// + // CALL VOTE MENU // + //----------------// + + menuDef { + name "ingame_callvote" + visible 0 + fullscreen 0 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle + rect 320 64 288 212 + focusColor 1 .75 0 1 // Menu focus color for text and items + style WINDOW_STYLE_EMPTY + shadowStyle 1 + border 0 + onOpen { uiScript loadArenas ; hide grpcallVote ; show map } + +//Window + + itemDef { + rect 0 0 72 212 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemDef { + rect 71 0 215 212 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemDef { + rect 169 1 120 24 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ingame-title" + visible 1 + decoration + } + + itemDef { + rect 169 1 120 24 + style WINDOW_STYLE_EMPTY + forecolor Ig_Window_TitleColor + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 24 + textaligny 16 + text "Call vote" + visible 1 + decoration + } + +//Sub-sections + + itemDef { + name sectionMap + group grpSections + text "Map" + shortcutKey "M" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 0 44 72 16 + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + forecolor Ig_Sub_TextColor + visible 1 + action { play "sound/misc/menu1.wav" ; hide grpCallVote ; show map } + } + + itemDef { + name sectionKick + group grpSections + text "Kick" + shortcutKey "K" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 0 68 72 16 + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + forecolor Ig_Sub_TextColor + visible 1 + action { play "sound/misc/menu1.wav" ; hide grpCallVote ; show kick } + } + + itemDef { + name sectionType + group grpSections + text "Type" + shortcutKey "T" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 0 92 72 16 + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + forecolor Ig_Sub_TextColor + visible 1 + action { play "sound/misc/menu1.wav" ; hide grpCallVote ; show type } + } + +//======================= + + // NEW MAP // + + itemDef { + name map + group grpCallVote + text "New Map:" + ownerdraw UI_ALLMAPS_SELECTION + textscale .225 + rect 84 32 80 20 + textalign ITEM_ALIGN_LEFT + textalignx 4 + textaligny 14 + forecolor 1 1 1 1 + decoration + visible 0 + } + + itemDef { + name map + group grpCallVote + rect 84 52 188 124 + type ITEM_TYPE_LISTBOX + style WINDOW_STYLE_FILLED + elementwidth 120 + elementheight 15 + textscale .225 + elementtype LISTBOX_TEXT + feeder FEEDER_ALLMAPS + border 1 + bordercolor .25 .25 .25 1 + forecolor 1 1 1 1 + backcolor 0 0 0 .25 + outlinecolor .75 .75 1 .25 + visible 0 + } + + // Scrollbar separator // + + itemDef { + name map + group grpCallVote + rect 254 52 18 124 + style WINDOW_STYLE_EMPTY + border 1 + borderSize 1 + bordercolor .25 .25 .25 1 + visible 0 + decoration + } + + itemDef { + name map + group grpCallVote + text "Next Map" + shortcutKey "N" + textscale .225 + rect 84 180 80 20 + type 1 + textalign ITEM_ALIGN_LEFT + textalignx 4 + textaligny 14 + forecolor 1 1 1 1 + visible 0 + action { play "sound/misc/menu1.wav" ; exec "cmd callvote cyclemap" ; uiScript closeingame } + } + + itemDef { + name map + text "OK" + shortcutKey "O" + type 1 + textscale .225 + group grpCallVote + style WINDOW_STYLE_FILLED + rect 224 180 48 20 + textalign 1 + textalignx 24 + textaligny 14 + border 1 + bordersize 1 + backcolor Ig_Sub_Color1 + forecolor Ig_Sub_TextColor + bordercolor Ig_Sub_BorderColor1 + visible 0 + action { play "sound/misc/menu1.wav" ; uiScript voteMap ; uiScript closeingame } + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + } + // KICK PLAYER // + + itemDef { + name kick + group grpCallVote + text "Kick Player:" + textscale .225 + rect 84 32 80 20 + textalign ITEM_ALIGN_LEFT + textalignx 4 + textaligny 14 + forecolor 1 1 1 1 + visible 0 + decoration + } + + itemDef { + name kick + group grpCallVote + rect 84 52 188 124 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_LISTBOX + elementwidth 120 + elementheight 15 + textscale .225 + elementtype LISTBOX_TEXT + feeder FEEDER_PLAYER_LIST + border 1 + bordercolor .25 .25 .25 1 + forecolor 1 1 1 1 + backcolor 0 0 0 .25 + outlinecolor .75 .75 1 .25 + visible 0 + } + + // Scrollbar separator // + + itemDef { + name kick + group grpCallVote + rect 254 52 18 124 + style WINDOW_STYLE_EMPTY + border 1 + borderSize 1 + bordercolor .25 .25 .25 1 + visible 0 + decoration + } + + itemDef { + name kick + text "OK" + shortcutKey "O" + type 1 + textscale .225 + group grpCallVote + style WINDOW_STYLE_FILLED + rect 224 180 48 20 + textalign 1 + textalignx 24 + textaligny 14 + border 1 + bordersize 1 + backcolor Ig_Sub_Color1 + forecolor Ig_Sub_TextColor + bordercolor Ig_Sub_BorderColor1 + visible 0 + action { play "sound/misc/menu1.wav" ; uiScript voteKick ; uiScript closeingame } + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + } + + // Game Type // + + itemDef { + name type + group grpCallVote + text "Gametype:" + style 0 + textscale .225 + ownerdraw UI_NETGAMETYPE + rect 84 76 188 20 + textalign ITEM_ALIGN_RIGHT + textalignx 80 + textaligny 12 + forecolor 1 1 1 1 + visible 0 + } + + itemDef { + name type + text "OK" + shortcutKey "O" + type 1 + textscale .225 + group grpCallVote + style WINDOW_STYLE_FILLED + rect 224 180 48 20 + textalign 1 + textalignx 24 + textaligny 14 + border 1 + bordersize 1 + backcolor Ig_Sub_Color1 + forecolor Ig_Sub_TextColor + bordercolor Ig_Sub_BorderColor1 + visible 0 + action { play "sound/misc/menu1.wav" ; uiScript voteGame ; uiScript closeingame } + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + } + +} +} diff --git a/reaction/uifiles/ingame_controls.menu b/reaction/uifiles/ingame_controls.menu new file mode 100644 index 00000000..7a2bd2d2 --- /dev/null +++ b/reaction/uifiles/ingame_controls.menu @@ -0,0 +1,1019 @@ +#include "ui/menudef.h" + +{ + //----------// + // CONTROLS // + //----------// + + + menuDef { + name "ingame_controls" + visible 0 + fullscreen 0 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle + rect 176 64 372 340 + focusColor 1 .75 0 1 // Menu focus color for text and items + style WINDOW_STYLE_EMPTY + shadowStyle 1 + border 0 + onOpen { play "sound/misc/menu1.wav" ; hide grpControls ; show look ; setfocus sectionLook } + +//Window + + itemdef { + name "ig-controls-window" + rect 0 0 372 340 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemdef { + name "ig-controls-window" + rect 95 55 277 285 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemdef { + rect 253 1 120 24 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ingame-title" + visible 1 + decoration + } + + itemdef { + rect 253 1 120 24 + style WINDOW_STYLE_EMPTY + forecolor Ig_Window_TitleColor + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 24 + textaligny 16 + text "Controls" + visible 1 + decoration + } + +//Tabs + + itemdef { + name tabSystem + group grpTabs + text "System" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 96 40 64 16 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + forecolor Ig_Setup_TabColor + visible 1 + action { close "ingame_controls" ; open "ingame_system" } + } + + itemdef { + name tabControls + group grpTabs + text "Controls" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 160 40 64 16 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + forecolor Ig_Sub_TextColor + visible 1 + decoration + } + + itemdef { + name tabGame + group grpTabs + text "Game" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 224 40 64 16 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + forecolor Ig_Setup_TabColor + visible 1 + action { close "ingame_controls" ; open "ingame_options" } + } + +//Sub-sections + + itemdef { + name sectionLook + group grpSections + text "Look" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 0 72 96 16 + textalign ITEM_ALIGN_RIGHT + textalignx 88 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + forecolor Ig_Sub_TextColor + visible 1 + action { play "sound/misc/menu1.wav" ; hide grpControls ; show look } + } + + itemdef { + name sectionMove + group grpSections + text "Move" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 0 96 96 16 + textalign ITEM_ALIGN_RIGHT + textalignx 88 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + forecolor Ig_Sub_TextColor + visible 1 + action { play "sound/misc/menu1.wav" ; hide grpControls ; show move } + } + + itemdef { + name sectionWeapon + group grpSections + text "Weapons" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 0 120 96 16 + textalign ITEM_ALIGN_RIGHT + textalignx 88 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + forecolor Ig_Sub_TextColor + visible 1 + action { play "sound/misc/menu1.wav" ; hide grpControls ; show weapon } + } + + itemdef { + name sectionMisc + group grpSections + text "Misc" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 0 144 96 16 + textalign ITEM_ALIGN_RIGHT + textalignx 88 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + forecolor Ig_Sub_TextColor + visible 1 + action { play "sound/misc/menu1.wav" ; hide grpControls ; show misc } + } + + itemdef { + name sectionReaction + group grpSections + text "Reaction" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 0 168 96 16 + textalign ITEM_ALIGN_RIGHT + textalignx 88 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + forecolor Ig_Sub_TextColor + visible 1 + action { play "sound/misc/menu1.wav" ; hide grpControls ; show reaction } + } + +//Keys +//Looking keys + + itemdef { + name look + group grpcontrols + type ITEM_TYPE_SLIDER + text "Mouse Speed:" + cvarfloat "sensitivity" 5 1 30 + rect 224 92 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 16 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + } + + itemdef { + name look + group grpcontrols + type ITEM_TYPE_YESNO + text "Smooth Mouse:" + cvar "m_filter" + rect 224 112 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 16 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + } + + itemdef { + name look + group grpcontrols + type ITEM_TYPE_YESNO + text "Invert Mouse:" + cvar "ui_mousePitch" + rect 224 132 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 16 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + action { uiScript update ui_mousePitch ; } + } + + itemdef { + name look + group grpcontrols + cvar "+lookup" + group grpcontrols + type ITEM_TYPE_BIND + text "Look Up:" + rect 160 152 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name look + group grpcontrols + cvar "+lookdown" + type ITEM_TYPE_BIND + text "Look Down:" + rect 160 172 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name look + group grpcontrols + cvar "+mlook" + group grpcontrols + type ITEM_TYPE_BIND + text "Mouse Look:" + rect 160 192 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name look + group grpcontrols + type ITEM_TYPE_YESNO + text "Free Look:" + cvar "cl_freelook" + rect 224 212 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 16 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + } + + itemdef { + name look + group grpcontrols + cvar "centerview" + type ITEM_TYPE_BIND + text "Center View:" + rect 160 232 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name look + group grpcontrols + type ITEM_TYPE_YESNO + text "Use Joystick:" + cvar "in_joystick" + rect 224 252 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 16 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + } + + itemdef { + name look + group grpcontrols + type ITEM_TYPE_SLIDER + text "Joystick Threshold:" + cvarfloat "joy_threshold" 0.15 0.05 0.75 + rect 224 272 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 16 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + } + +//Movement keys + + + itemdef { + name move + group grpControls + type ITEM_TYPE_YESNO + text "Always Run:" + cvar "cl_run" + rect 224 84 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 16 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + } + + itemdef { + name move + group grpControls + cvar "+speed" + type ITEM_TYPE_BIND + text "Run / Walk:" + rect 160 104 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name move + group grpControls + cvar "+forward" + type ITEM_TYPE_BIND + text "Walk Forward:" + rect 160 124 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name move + group grpControls + cvar "+back" + type ITEM_TYPE_BIND + text "Backpedal:" + rect 160 144 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name move + group grpControls + cvar "+moveleft" + type ITEM_TYPE_BIND + text "Step Left:" + rect 160 164 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name move + group grpControls + cvar "+moveright" + type ITEM_TYPE_BIND + text "Step Right:" + rect 160 184 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name move + group grpControls + cvar "+moveup" + type ITEM_TYPE_BIND + text "Up / Jump:" + rect 160 204 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name move + group grpControls + cvar "+movedown" + type ITEM_TYPE_BIND + text "Down / Crouch:" + rect 160 224 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name move + group grpControls + cvar "+left" + type ITEM_TYPE_BIND + text "Turn Left:" + rect 160 244 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name move + group grpControls + cvar "+right" + type ITEM_TYPE_BIND + text "Turn Right:" + rect 160 264 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name move + group grpControls + cvar "+strafe" + type ITEM_TYPE_BIND + text "Sidestep / Turn:" + rect 160 284 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + +//Weapon keys + + itemdef { + name weapon + group grpControls + cvar "+attack" + type ITEM_TYPE_BIND + text "Attack:" + rect 176 68 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name weapon + group grpControls + cvar "weapnext" + type ITEM_TYPE_BIND + text "Next Weapon:" + rect 176 88 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name weapon + group grpControls + cvar "weapprev" + type ITEM_TYPE_BIND + text "Previous Weapon:" + rect 176 108 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name weapon + group grpControls + type ITEM_TYPE_YESNO + text "Autoswitch Weapons:" + cvar "cg_autoswitch" + rect 240 128 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 16 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + } + + itemdef { + name weapon + group grpControls + cvar "weapon 1" + type ITEM_TYPE_BIND + text "MK23 Pistol:" + rect 176 148 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name weapon + group grpControls + cvar "weapon 2" + type ITEM_TYPE_BIND + text "M3 Assault Shotgun:" + rect 176 168 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name weapon + group grpControls + cvar "weapon 3" + type ITEM_TYPE_BIND + text "MP5/10 Submachinegun:" + rect 176 188 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name weapon + group grpControls + cvar "weapon 4" + type ITEM_TYPE_BIND + text "Handcannon:" + rect 176 208 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name weapon + group grpControls + cvar "weapon 5" + type ITEM_TYPE_BIND + text "SSG Sniper Rifle:" + rect 176 228 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name weapon + group grpControls + cvar "weapon 6" + type ITEM_TYPE_BIND + text "M4 Assault Rifle:" + rect 176 248 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name weapon + group grpControls + cvar "weapon 7" + type ITEM_TYPE_BIND + text "Dual MK23 Pistols:" + rect 176 268 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name weapon + group grpControls + cvar "weapon 8" + type ITEM_TYPE_BIND + text "Combat Knife:" + rect 176 288 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name weapon + group grpControls + cvar "weapon 9" + type ITEM_TYPE_BIND + text "M26 Frag Grenade:" + rect 176 308 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + +//Misc keys + + itemdef { + name misc + group grpControls + cvar "scores" + type ITEM_TYPE_BIND + text "Show Scores:" + rect 168 100 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name misc + group grpControls + cvar "+button3" + type ITEM_TYPE_BIND + text "Gesture:" + rect 168 120 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name misc + group grpControls + cvar "messagemode" + type ITEM_TYPE_BIND + text "Chat:" + rect 168 140 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name misc + group grpControls + cvar "messagemode2" + type ITEM_TYPE_BIND + text "Chat - Team:" + rect 168 160 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name misc + group grpControls + cvar "messagemode3" + type ITEM_TYPE_BIND + text "Chat - Target:" + rect 168 180 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name misc + group grpControls + cvar "messagemode4" + type ITEM_TYPE_BIND + text "Chat - Attacker:" + rect 168 200 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name misc + group grpControls + cvar "screenshot" + type ITEM_TYPE_BIND + text "Screenshot:" + rect 168 220 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name misc + group grpControls + cvar "screenshotJPEG" + type ITEM_TYPE_BIND + text "Screenshot - JPEG:" + rect 168 240 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + +//Reaction keys + + itemdef { + name reaction + group grpControls + cvar "bandage" + type ITEM_TYPE_BIND + text "Bandage:" + rect 176 80 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name reaction + group grpControls + cvar "+button5" + type ITEM_TYPE_BIND + text "Reload:" + rect 176 100 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name reaction + group grpControls + cvar "weapon" + type ITEM_TYPE_BIND + text "Weapon Mode:" + rect 176 120 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name reaction + group grpControls + cvar "opendoor" + type ITEM_TYPE_BIND + text "Open Door:" + rect 176 140 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name reaction + group grpControls + cvar "dropweapon" + type ITEM_TYPE_BIND + text "Drop Weapon:" + rect 176 160 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name reaction + group grpControls + cvar "dropitem" + type ITEM_TYPE_BIND + text "Drop Item:" + rect 176 180 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name reaction + group grpControls + cvar "irvision" + type ITEM_TYPE_BIND + text "IR Vision:" + rect 176 200 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name reaction + group grpControls + cvar "specialweapon" + type ITEM_TYPE_BIND + text "Special Weapon Cycle:" + rect 176 220 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name reaction + group grpControls + cvar "ui_RQ3_loadout" + type ITEM_TYPE_BIND + text "TP Weapon/Item:" + rect 176 240 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } + + itemdef { + name reaction + group grpControls + cvar "ui_RQ3_joinTeam" + type ITEM_TYPE_BIND + text "Join Team:" + rect 176 260 128 20 + forecolor Ig_Sub_TextColor + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 16 + textscale .225 + visible 0 + } +} +} diff --git a/reaction/uifiles/ingame_devmode.menu b/reaction/uifiles/ingame_devmode.menu new file mode 100644 index 00000000..c3fedd5e --- /dev/null +++ b/reaction/uifiles/ingame_devmode.menu @@ -0,0 +1,293 @@ +#include "ui/menudef.h" + +{ + + menuDef { + name "ingame_devmode" + visible 0 + fullscreen 0 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle + rect 368 64 256 192 + focusColor 1 .75 0 1 // Menu focus color for text and items + style WINDOW_STYLE_EMPTY + shadowStyle 1 + border 0 + onOpen { play "sound/misc/menu1.wav" } + +//Window + + itemDef { + rect 0 0 256 120 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemDef { + rect 0 119 256 73 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + // + + itemDef { + rect 137 1 120 24 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ingame-title" + visible 1 + decoration + } + + itemDef { + rect 137 1 120 24 + style WINDOW_STYLE_EMPTY + forecolor Ig_Window_TitleColor + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 24 + textaligny 16 + text "Developer mode" + visible 1 + decoration + } + +//Options + +//3rd Person + + itemDef { + type ITEM_TYPE_YESNO + text "3rd Person:" + cvar "cg_thirdPerson" + rect 32 36 144 20 + textalign ITEM_ALIGN_RIGHT + textalignx 96 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 1 + } + +//3rd Person Angle + + itemDef { + type ITEM_TYPE_SLIDER + text "Angle:" + cvarfloat "cg_thirdPersonAngle" 180 0 360 + rect 32 60 144 20 + textalign ITEM_ALIGN_RIGHT + textalignx 24 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 1 + } + +//3rd Person Range + + itemDef { + type ITEM_TYPE_SLIDER + text "Range:" + cvarfloat "cg_thirdPersonRange" 200 40 840 + rect 32 84 144 20 + textalign ITEM_ALIGN_RIGHT + textalignx 24 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 1 + } + +//God mode + + itemDef { + rect 176 40 60 16 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_CENTER + textalignx 30 + textaligny 12 + text "God" + shortcutKey "G" + border 1 + bordersize 1 + backcolor Ig_Sub_Color1 + forecolor Ig_Sub_TextColor + bordercolor Ig_Sub_BorderColor1 + visible 1 + action { play "sound/misc/menu1.wav" ; exec "god" ; uiScript closeingame } + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + } + +//Give all + + itemDef { + rect 176 64 60 16 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_CENTER + textalignx 30 + textaligny 12 + text "Give All" + shortcutKey "A" + border 1 + bordersize 1 + backcolor Ig_Sub_Color1 + forecolor Ig_Sub_TextColor + bordercolor Ig_Sub_BorderColor1 + visible 1 + action { play "sound/misc/menu1.wav" ; exec "give all" ; uiScript closeingame } + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + } + +//Noclip mode + + itemDef { + rect 176 88 60 16 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_CENTER + textalignx 30 + textaligny 12 + text "Noclip" + shortcutKey "N" + border 1 + bordersize 1 + backcolor Ig_Sub_Color1 + forecolor Ig_Sub_TextColor + bordercolor Ig_Sub_BorderColor1 + visible 1 + action { play "sound/misc/menu1.wav" ; exec "noclip" ; uiScript closeingame } + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + } + + // DEMO RECORDING OPTIONS // + + // Demo name // + + itemDef { + name demo + text "Demo:" + style 0 + textscale .225 + rect 32 132 144 20 + textalign ITEM_ALIGN_RIGHT + textalignx 24 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + decoration + visible 1 + } + + itemDef { + name demoEntry + style WINDOW_STYLE_FILLED + rect 20 152 148 16 + text "" + textalign ITEM_ALIGN_LEFT + textalignx 4 + textaligny 12 + maxchars 20 + maxPaintChars 8 + textscale .225 + type ITEM_TYPE_EDITFIELD + cvar "ui_RQ3_demoName" + border 1 + bordersize 1 + bordercolor .25 .25 .25 1 + forecolor 1 1 1 1 + backcolor 1 1 1 .1 + visible 1 + onfocus { setcolor backcolor 1 1 1 .2 ; } + leavefocus { setcolor backcolor 1 1 1 .1 ; } + } + +/* + // Game speed + + itemDef { + type ITEM_TYPE_MULTI + text "Speed:" + cvar "timescale" + cvarFloatList { "25%" 0.25 "50%" 0.5 "75%" 0.75 "100%" 1 "125%" 1.25 "150%" 1.5 "200%" 2 "250%" 2.5 "300%" 3 "400%" 4 "500%" 5 } + rect 80 132 88 20 + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 1 + } +*/ + + // Stop recording // + + itemDef { + rect 176 132 60 16 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_CENTER + textalignx 30 + textaligny 12 + text "Stop" + shortcutKey "S" + border 1 + bordersize 1 + backcolor Ig_Sub_Color1 + forecolor Ig_Sub_TextColor + bordercolor Ig_Sub_BorderColor1 + visible 1 + action { play "sound/misc/menu1.wav" ; uiScript closeingame ; exec "stoprecord"} + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + } + + // Record // + + itemDef { + rect 176 152 60 16 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_CENTER + textalignx 30 + textaligny 12 + text "Record" + shortcutKey "R" + border 1 + bordersize 1 + backcolor Ig_Sub_Color1 + forecolor Ig_Sub_TextColor + bordercolor Ig_Sub_BorderColor1 + visible 1 + action { play "sound/misc/menu1.wav" ; uiScript closeingame ; uiScript recordDemo } + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + } + +} +} \ No newline at end of file diff --git a/reaction/uifiles/ingame_ignore.menu b/reaction/uifiles/ingame_ignore.menu new file mode 100644 index 00000000..9a5fff9a --- /dev/null +++ b/reaction/uifiles/ingame_ignore.menu @@ -0,0 +1,136 @@ +#include "ui/menudef.h" + + +{ + menudef { + name "ingame_ignore" + visible 0 + fullscreen 0 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle + rect 184 64 256 168 + disableColor .5 .5 .5 1 + focusColor 1 .75 0 1 // Menu focus color for text and items + style 1 + shadowStyle 1 + onOpen { play "sound/misc/menu1.wav" } + +//Window + + itemdef { + rect 0 0 256 168 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemdef { + rect 137 1 120 24 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ingame-title" + visible 1 + decoration + } + + itemdef { + rect 137 1 120 24 + style WINDOW_STYLE_EMPTY + forecolor Ig_Window_TitleColor + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 24 + textaligny 16 + text "Ignore players" + visible 1 + decoration + } + + // Player list // + + itemdef { + rect 20 40 216 92 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_LISTBOX + elementwidth 120 + elementheight 15 + textscale .225 + elementtype LISTBOX_TEXT + feeder FEEDER_PLAYER_LIST + border 1 + bordercolor .25 .25 .25 1 + forecolor 1 1 1 1 + backcolor 0 0 0 .25 + outlinecolor .75 .75 1 .25 + visible 1 + //mouseEnter { setcolor bordercolor .7 0 0 1 } + //mouseExit { setcolor bordercolor .5 .5 .5 1 } + } + + //Scrollbar separator + itemdef { + rect 218 40 18 92 + style WINDOW_STYLE_EMPTY + border 1 + bordersize 1 + bordercolor .25 .25 .25 1 + decoration + visible 1 + } + + // Unignore // + + itemdef { + text "Unignore" + shortcutKey "U" + type ITEM_TYPE_BUTTON + style WINDOW_STYLE_EMPTY + textscale .225 + rect 20 140 72 16 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 12 + forecolor Ig_Sub_TextColor + visible 1 + action { play "sound/misc/menu1.wav" ; uiScript unIgnore ; close ingame_ignore } + } + + // Unignore All // + + itemdef { + text "Unignore All" + shortcutKey "A" + type ITEM_TYPE_BUTTON + style WINDOW_STYLE_EMPTY + textscale .225 + rect 92 140 72 16 + textalign ITEM_ALIGN_CENTER + textalignx 36 + textaligny 12 + forecolor Ig_Sub_TextColor + visible 1 + action { play "sound/misc/menu1.wav" ; exec "clearignorelist" ; close ingame_ignore } + } + + // Ignore // + + itemdef { + text "Ignore" + shortcutKey "I" + type ITEM_TYPE_BUTTON + style WINDOW_STYLE_EMPTY + textscale .225 + rect 164 140 72 16 + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 12 + forecolor Ig_Sub_TextColor + visible 1 + action { play "sound/misc/menu1.wav" ; uiScript ignore ; close ingame_ignore } + } + + } +} diff --git a/reaction/uifiles/ingame_item.menu b/reaction/uifiles/ingame_item.menu new file mode 100644 index 00000000..debfd037 --- /dev/null +++ b/reaction/uifiles/ingame_item.menu @@ -0,0 +1,249 @@ +#include "ui/menudef.h" + +{ + + menuDef { + name "ingame_item" + visible 0 + fullscreen 0 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle + rect 80 64 264 176 + focusColor 1 .75 0 1 // Menu focus color for text and items + style WINDOW_STYLE_EMPTY + shadowStyle 1 + border 0 + onOpen { play "sound/misc/menu1.wav" ; setFocus kevlar } + onEsc { play "sound/misc/menu2.wav" ; close ingame_item } + +//Window + + itemdef { + rect 0 0 264 176 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemdef { + rect 145 1 120 24 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ingame-title" + visible 1 + decoration + } + + itemdef { + rect 145 1 120 24 + style WINDOW_STYLE_EMPTY + forecolor Ig_Window_TitleColor + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 24 + textaligny 16 + text "Choose item" + visible 1 + decoration + } + +//Items + + itemdef { + shortcutKey "1" + name "kevlar" + rect 120 48 128 16 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 12 + text "1. Kevlar Vest" + forecolor 1 1 1 1 + visible 1 + onFocus { hide items ; show "it_kevlar" } + action { play "sound/misc/menu1.wav" ; exec "choose kevlar" ; close ingame_item } + } + + itemdef { + shortcutKey "2" + name "laser" + rect 120 68 128 16 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 12 + text "2. Lasersight" + forecolor 1 1 1 1 + visible 1 + onFocus { hide items ; show "it_laser" } + action { play "sound/misc/menu1.wav" ; exec "choose laser" ; close ingame_item } + } + + itemdef { + name "slippers" + shortcutKey "3" + rect 120 88 128 16 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 12 + text "3. Stealth Slippers" + forecolor 1 1 1 1 + visible 1 + onFocus { hide items ; show "it_slippers" } + action { play "sound/misc/menu1.wav" ; exec "choose slippers" ; close ingame_item } + } + + itemdef { + shortcutKey "4" + name "silencer" + rect 120 108 128 16 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 12 + text "4. Silencer" + forecolor 1 1 1 1 + visible 1 + onFocus { hide items ; show "it_silencer" } + action { play "sound/misc/menu1.wav" ; exec "choose silencer" ; close ingame_item } + } + + itemdef { + name "bandolier" + shortcutKey "5" + rect 120 128 128 16 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 12 + text "5. Bandolier" + forecolor 1 1 1 1 + visible 1 + onFocus { hide items ; show "it_bandolier" } + action { play "sound/misc/menu1.wav" ; exec "choose bandolier" ; close ingame_item } + } + +//Item preview +//Background + + itemdef { + name it_background + rect 16 48 96 96 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ingame-loadout" + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + //backcolor .75 .75 .75 1 + decoration + visible 1 + } + +//Items + + itemdef { + name it_kevlar + group items + rect 16 48 96 96 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_MODEL + asset_model "models/items/kevlar.md3" + model_origin 28 0 0 + model_fovx 60 + model_fovy 60 + //textscale .75 + model_rotation 10 + model_angles 270 0 90 + decoration + visible 0 + } + + itemdef { + name it_laser + group items + rect 16 48 96 96 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_MODEL + asset_model "models/items/laser.md3" + model_origin 24 0 0 + model_fovx 60 + model_fovy 60 + //textscale .75 + model_rotation 10 + model_angles 270 75 90 + decoration + visible 0 + } + + itemdef { + name it_silencer + group items + rect 16 48 96 96 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_MODEL + asset_model "models/items/silencer.md3" + model_origin 20 0 0 + model_fovx 60 + model_fovy 60 + //textscale .75 + model_rotation 10 + model_angles 270 105 90 + decoration + visible 0 + } + + itemdef { + name it_slippers + group items + rect 16 48 96 96 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_MODEL + asset_model "models/items/slippers.md3" + model_origin 20 0 0 + model_fovx 60 + model_fovy 60 + //textscale .75 + model_rotation 10 + model_angles 270 0 90 + decoration + visible 0 + } + + itemdef { + name it_bandolier + group items + rect 16 48 96 96 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_MODEL + asset_model "models/items/bandolier.md3" + model_origin 20 0 0 + model_fovx 60 + model_fovy 60 + //textscale .75 + model_rotation 10 + model_angles 270 0 90 + decoration + visible 0 + } + +} +} diff --git a/reaction/uifiles/ingame_join.menu b/reaction/uifiles/ingame_join.menu new file mode 100644 index 00000000..6084d0e2 --- /dev/null +++ b/reaction/uifiles/ingame_join.menu @@ -0,0 +1,184 @@ +#include "ui/menudef.h" + + +{ + menudef { + name "ingame_join" + visible 0 + fullscreen 0 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle + rect 184 64 140 140 + disableColor .5 .5 .5 1 + focusColor 1 .75 0 1 // Menu focus color for text and items + style 1 + shadowStyle 1 + onOpen { play "sound/misc/menu1.wav" } + +//Window + + itemdef { + rect 0 0 140 140 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemdef { + rect 21 1 120 24 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ingame-title" + visible 1 + decoration + } + + itemdef { + rect 21 1 120 24 + style WINDOW_STYLE_EMPTY + forecolor Ig_Window_TitleColor + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 24 + textaligny 16 + text "Join team" + visible 1 + decoration + } + +//Buttons + + // Team 1 // + + itemdef { + name team + text "1. Team 1:" + shortcutKey "1" + type ITEM_TYPE_BUTTON + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_NORMAL + rect 8 36 128 20 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 18 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" ; exec "cmd team red" ; uiScript "weapAfterJoin" ; close "ingame_join" } + } + + itemdef { + name team1 + text "" + cvar "ui_RQ3_teamCount1" + type ITEM_TYPE_NUMERICFIELD + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_NORMAL + rect 100 36 32 20 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 18 + textscale .225 + forecolor 1 1 1 1 + visible 1 + decoration + } + + // Team 2 // + + itemdef { + name team + text "2. Team 2:" + shortcutKey "2" + type ITEM_TYPE_BUTTON + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_NORMAL + rect 8 56 128 20 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 18 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" ; exec "cmd team blue" ; uiScript "weapAfterJoin" ; close "ingame_join" } + } + + itemdef { + name team2 + text "" + cvar "ui_RQ3_teamCount2" + type ITEM_TYPE_NUMERICFIELD + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_NORMAL + rect 100 56 32 20 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 18 + textscale .225 + forecolor 1 1 1 1 + visible 1 + decoration + } + + // Auto Team // + + itemdef { + name team + text "A. Auto Team" + shortcutKey "A" + type ITEM_TYPE_BUTTON + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_NORMAL + rect 8 76 128 20 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 18 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" ; exec "cmd team auto" ; uiScript "weapAfterJoin" ; close "ingame_join" } + } + + // Spectate // + + itemdef { + name team + text "S. Spectators:" + shortcutKey "S" + type ITEM_TYPE_BUTTON + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_NORMAL + rect 8 96 128 20 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 18 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" ; exec "cmd team s" ; uiScript closeingame } + } + + itemdef { + name team3 + text "" + cvar "ui_RQ3_numSpectators" + type ITEM_TYPE_NUMERICFIELD + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_NORMAL + rect 100 96 32 20 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 18 + textscale .225 + forecolor 1 1 1 1 + visible 1 + decoration + } + + + } + +} diff --git a/reaction/uifiles/ingame_join_dm.menu b/reaction/uifiles/ingame_join_dm.menu new file mode 100644 index 00000000..8919ea19 --- /dev/null +++ b/reaction/uifiles/ingame_join_dm.menu @@ -0,0 +1,122 @@ +#include "ui/menudef.h" + + +{ + menudef { + name "ingame_join_dm" + visible 0 + fullscreen 0 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle + rect 184 64 140 100 + disableColor .5 .5 .5 1 + focusColor 1 .75 0 1 // Menu focus color for text and items + style 1 + shadowStyle 1 + onOpen { play "sound/misc/menu1.wav" } + +//Window + + itemdef { + rect 0 0 140 100 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemdef { + rect 21 1 120 24 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ingame-title" + visible 1 + decoration + } + + itemdef { + rect 21 1 120 24 + style WINDOW_STYLE_EMPTY + forecolor Ig_Window_TitleColor + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 24 + textaligny 16 + text "Join game" + visible 1 + decoration + } + +//Buttons + + // Players // + + itemdef { + text "1. Players:" + shortcutKey "1" + type ITEM_TYPE_BUTTON + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_NORMAL + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 18 + textscale .225 + forecolor 1 1 1 1 + rect 8 36 128 20 + visible 1 + action { play "sound/misc/menu1.wav" ; exec "cmd team red" ; uiScript closeingame } + } + + itemdef { + text "" + cvar "ui_RQ3_teamCount1" + type ITEM_TYPE_NUMERICFIELD + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_NORMAL + rect 100 36 32 20 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 18 + textscale .225 + forecolor 1 1 1 1 + visible 1 + decoration + } + + // Spectators // + + itemdef { + text "S. Spectators:" + shortcutKey "S" + type ITEM_TYPE_BUTTON + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_NORMAL + rect 8 60 128 20 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 18 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" ; exec "cmd team s" ; uiScript closeingame } + } + + itemdef { + text "" + cvar "ui_RQ3_numSpectators" + type ITEM_TYPE_NUMERICFIELD + style WINDOW_STYLE_EMPTY + textstyle ITEM_TEXTSTYLE_NORMAL + rect 100 60 32 20 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 18 + textscale .225 + forecolor 1 1 1 1 + visible 1 + decoration + } + } +} diff --git a/reaction/uifiles/ingame_leave.menu b/reaction/uifiles/ingame_leave.menu new file mode 100644 index 00000000..d0011625 --- /dev/null +++ b/reaction/uifiles/ingame_leave.menu @@ -0,0 +1,343 @@ +#include "ui/menudef.h" + +{ + + menuDef { + name "ingame_leave" + visible 0 + fullscreen 0 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle + rect 496 64 128 112 + disableColor .5 .5 .5 1 + focusColor 1 .75 0 1 // Menu focus color for text and items + style 1 + shadowStyle 1 + onOpen { play "sound/misc/menu1.wav" ; show grpMenu ; hide grpConfirm } + +//Window + + itemdef { + rect 0 0 128 112 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemdef { + rect 9 1 120 24 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ingame-title" + visible 1 + decoration + } + + itemdef { + rect 9 1 120 24 + style WINDOW_STYLE_EMPTY + forecolor Ig_Window_TitleColor + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 24 + textaligny 16 + text "Exit Reaction" + visible 1 + decoration + } + + +//Options + + itemdef { + name leave + text "Main Menu" + shortcutKey "M" + group grpMenu + style WINDOW_STYLE_EMPTY + rect 0 34 128 20 + type ITEM_TYPE_BUTTON + textalign 1 + textalignx 64 + textaligny 18 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" ; hide grpMenu ; show leaveConfirm } + } + + itemdef { + name leave + group grpMenu + text "Restart" + shortcutKey "R" + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + rect 0 54 128 20 + textalign 1 + textalignx 64 + textaligny 18 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" ; hide grpMenu ; show restartConfirm } + } + + itemdef { + name leave + group grpMenu + type ITEM_TYPE_BUTTON + text "Quit" + shortcutKey "Q" + style WINDOW_STYLE_EMPTY + rect 0 74 128 20 + textalign 1 + textalignx 64 + textaligny 18 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" ; hide grpMenu ; show quitConfirm } + } + + // CONFIRMS // + + itemdef { + name leaveConfirm + text "Exit to" + group grpConfirm + style WINDOW_STYLE_EMPTY + rect 0 33 128 20 + textalign 1 + textalignx 64 + textaligny 18 + textscale .225 + decoration + forecolor 1 1 1 1 + visible 1 + } + + itemdef { + name leaveConfirm + text "Main Menu?" + group grpConfirm + style WINDOW_STYLE_EMPTY + rect 0 50 128 20 + textalign 1 + textalignx 64 + textaligny 18 + textscale .225 + decoration + forecolor 1 1 1 1 + visible 1 + } + + itemdef { + name leaveConfirm + text "Yes" + shortcutKey "Y" + group grpConfirm + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_FILLED + rect 18 80 40 16 + textalign 1 + textalignx 20 + textaligny 12 + forecolor 1 1 1 1 + border 1 + bordersize 1 + backcolor Ig_Sub_Color1 + forecolor Ig_Sub_TextColor + bordercolor Ig_Sub_BorderColor1 + visible 1 + action { uiScript leave } + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + } + + itemdef { + name leaveConfirm + text "No" + shortcutKey "N" + group grpConfirm + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_FILLED + rect 70 80 40 16 + textalign 1 + textalignx 20 + textaligny 12 + forecolor 1 1 1 1 + border 1 + bordersize 1 + backcolor Ig_Sub_Color1 + forecolor Ig_Sub_TextColor + bordercolor Ig_Sub_BorderColor1 + visible 1 + action { play "sound/misc/menu1.wav" ; hide grpConfirm ; show grpMenu } + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + } + + itemdef { + name restartConfirm + text "Want to" + group grpConfirm + style WINDOW_STYLE_EMPTY + rect 0 33 128 20 + textalign 1 + textalignx 64 + textaligny 18 + textscale .225 + decoration + forecolor 1 1 1 1 + visible 1 + } + + itemdef { + name restartConfirm + text "Restart Map?" + group grpConfirm + style WINDOW_STYLE_EMPTY + rect 0 50 128 20 + textalign 1 + textalignx 64 + textaligny 18 + textscale .225 + decoration + forecolor 1 1 1 1 + visible 1 + } + + itemdef { + name restartConfirm + text "Yes" + shortcutKey "Y" + group grpConfirm + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_FILLED + rect 18 80 40 16 + textalign 1 + textalignx 20 + textaligny 12 + forecolor 1 1 1 1 + border 1 + bordersize 1 + backcolor Ig_Sub_Color1 + forecolor Ig_Sub_TextColor + bordercolor Ig_Sub_BorderColor1 + visible 1 + action { play "sound/misc/menu1.wav" ; exec "map_restart" ; close ingame_leave ; close ingame } + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + } + + itemdef { + name restartConfirm + text "No" + shortcutKey "N" + group grpConfirm + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_FILLED + rect 70 80 40 16 + textalign 1 + textalignx 20 + textaligny 12 + forecolor 1 1 1 1 + border 1 + bordersize 1 + backcolor Ig_Sub_Color1 + forecolor Ig_Sub_TextColor + bordercolor Ig_Sub_BorderColor1 + visible 1 + action { play "sound/misc/menu1.wav" ; hide grpConfirm ; show grpMenu } + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + } + + itemdef { + name quitConfirm + text "Want to" + group grpConfirm + style WINDOW_STYLE_EMPTY + rect 0 33 128 20 + textalign 1 + textalignx 64 + textaligny 18 + textscale .225 + forecolor 1 1 1 1 + decoration + visible 1 + } + + itemdef { + name quitConfirm + text "Quit Game?" + group grpConfirm + style WINDOW_STYLE_EMPTY + rect 0 50 128 20 + textalign 1 + textalignx 64 + textaligny 18 + textscale .225 + forecolor 1 1 1 1 + decoration + visible 1 + } + + itemdef { + name quitConfirm + text "Yes" + shortcutKey "Y" + group grpConfirm + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_FILLED + rect 18 80 40 16 + textalign 1 + textalignx 20 + textaligny 12 + forecolor 1 1 1 1 + border 1 + bordersize 1 + backcolor Ig_Sub_Color1 + forecolor Ig_Sub_TextColor + bordercolor Ig_Sub_BorderColor1 + visible 1 + action { uiScript quit } + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + } + + itemdef { + name quitConfirm + text "No" + shortcutKey "N" + group grpConfirm + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_FILLED + rect 70 80 40 16 + textalign 1 + textalignx 20 + textaligny 12 + forecolor 1 1 1 1 + border 1 + bordersize 1 + backcolor Ig_Sub_Color1 + forecolor Ig_Sub_TextColor + bordercolor Ig_Sub_BorderColor1 + visible 1 + action { play "sound/misc/menu1.wav" ; hide grpConfirm ; show grpMenu } + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + } + +} +} diff --git a/reaction/uifiles/ingame_matchmode.menu b/reaction/uifiles/ingame_matchmode.menu new file mode 100644 index 00000000..67faf834 --- /dev/null +++ b/reaction/uifiles/ingame_matchmode.menu @@ -0,0 +1,245 @@ +#include "ui/menudef.h" + +{ + + menuDef { + name "ingame_matchmode" + visible 0 + fullscreen 0 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle + rect 296 64 216 264 + disableColor .5 .5 .5 1 + focusColor 1 .75 0 1 // Menu focus color for text and items + style 1 + shadowStyle 1 + onOpen { play "sound/misc/menu1.wav" ; uiScript "readMMsettings" } + +//Window + + itemdef { + rect 0 0 216 264 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemdef { + rect 97 1 120 24 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ingame-title" + visible 1 + decoration + } + + itemdef { + rect 97 1 120 24 + style WINDOW_STYLE_EMPTY + forecolor Ig_Window_TitleColor + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 24 + textaligny 16 + text "MM settings" + visible 1 + decoration + } + +//Objects + + // SETTINGS // + + // Time limit + itemdef { + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_NUMERICFIELD + text "Time Limit:" + cvar "ui_RQ3_timelimit" + maxchars 4 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 20 48 192 20 + textalign ITEM_ALIGN_RIGHT + textalignx 112 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + + // Round limit + itemdef { + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_NUMERICFIELD + text "Round Limit:" + cvar "ui_RQ3_roundlimit" + maxchars 4 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 20 68 192 20 + textalign ITEM_ALIGN_RIGHT + textalignx 112 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + + // Round time limit + itemdef { + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_NUMERICFIELD + text "Round Time Limit:" + cvar "ui_RQ3_roundtimelimit" + maxchars 4 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 20 88 192 20 + textalign ITEM_ALIGN_RIGHT + textalignx 112 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + + // Frag limit + itemdef { + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_NUMERICFIELD + text "Frag Limit:" + cvar "ui_RQ3_fraglimit" + maxchars 4 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 20 108 192 20 + textalign ITEM_ALIGN_RIGHT + textalignx 112 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + + // Max players + itemdef { + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_NUMERICFIELD + text "Max Players:" + cvar "ui_RQ3_maxplayers" + maxchars 4 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 20 128 192 20 + textalign ITEM_ALIGN_RIGHT + textalignx 112 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + + // Force team talk + itemdef { + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_MULTI + text "Force Team Talk:" + cvar "ui_RQ3_forceteamtalk" + cvarFloatList { "Off" 0 "Match only" 1 "Always" 2 } + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 20 148 192 20 + textalign ITEM_ALIGN_RIGHT + textalignx 112 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + + // Limit chase cam + itemdef { + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_MULTI + text "Limit Chase Cam:" + cvar "ui_RQ3_limchasecam" + cvarFloatList { "No" 0 "Team only" 1 "Eyes only" 2 } + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 20 168 192 20 + textalign ITEM_ALIGN_RIGHT + textalignx 112 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + + // Tgren + itemdef { + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_NUMERICFIELD + text "Bandolier Grenades:" + cvar "ui_RQ3_tgren" + maxchars 4 + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 20 188 192 20 + textalign ITEM_ALIGN_RIGHT + textalignx 112 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + + // Friendly fire + itemdef { + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_MULTI + text "Friendly Fire:" + cvar "ui_RQ3_friendlyFire" + cvarFloatList { "On" 1 "Knockback" 2 "Off" 0 } + textstyle ITEM_TEXTSTYLE_SHADOWED + rect 20 208 192 20 + textalign ITEM_ALIGN_RIGHT + textalignx 112 + textaligny 14 + textscale .225 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + + + // OK // + + itemdef { + name ok + rect 136 232 64 20 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_CENTER + textalignx 32 + textaligny 14 + text "Ok" + shortcutKey "O" + border 1 + bordersize 1 + backcolor Ig_Sub_Color1 + forecolor Ig_Sub_TextColor + bordercolor Ig_Sub_BorderColor1 + visible 1 + action { play "sound/misc/menu1.wav" ; uiScript "sendMMsettings" ; uiScript closeingame } + //action { exec "screenshotJPEG" } + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + } +} +} \ No newline at end of file diff --git a/reaction/uifiles/ingame_options.menu b/reaction/uifiles/ingame_options.menu new file mode 100644 index 00000000..3eb89186 --- /dev/null +++ b/reaction/uifiles/ingame_options.menu @@ -0,0 +1,572 @@ +#include "ui/menudef.h" + +{ + //--------------// + // GAME OPTIONS // + //--------------// + + + menuDef { + name "ingame_options" + visible 0 + fullscreen 0 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle + rect 176 64 372 340 + focusColor 1 .75 0 1 // Menu focus color for text and items + style WINDOW_STYLE_EMPTY + shadowStyle 1 + border 0 + onOpen { play "sound/misc/menu1.wav" ; hide grpGame ; show page1 ; setfocus sectionPage1 } + +//Window + + itemDef { + rect 0 0 372 340 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemDef { + rect 95 55 277 285 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemDef { + rect 253 1 120 24 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ingame-title" + visible 1 + decoration + } + + itemDef { + rect 253 1 120 24 + style WINDOW_STYLE_EMPTY + forecolor Ig_Window_TitleColor + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 24 + textaligny 16 + text "Game options" + visible 1 + decoration + } + +//Tabs + + itemDef { + name tabSystem + group grpTabs + text "System" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 96 40 64 16 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + forecolor Ig_Setup_TabColor + visible 1 + action { close "ingame_options" ; open "ingame_system" } + } + + itemDef { + name tabControls + group grpTabs + text "Controls" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 160 40 64 16 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + forecolor Ig_Setup_TabColor + visible 1 + action { close "ingame_options" ; open "ingame_controls" } + } + + itemDef { + name tabGame + group grpTabs + text "Game" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 224 40 64 16 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + forecolor Ig_Sub_TextColor + visible 1 + decoration + } + +//Sub-sections + + itemDef { + name sectionPage1 + group grpSections + text "Settings" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 0 72 96 16 + textalign ITEM_ALIGN_RIGHT + textalignx 88 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + forecolor Ig_Sub_TextColor + visible 1 + action { play "sound/misc/menu1.wav" ; hide grpGame ; show page1 } + } + + itemDef { + name sectionPage2 + group grpSections + text "Crosshair" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 0 96 96 16 + textalign ITEM_ALIGN_RIGHT + textalignx 88 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + forecolor Ig_Sub_TextColor + visible 1 + action { play "sound/misc/menu1.wav" ; hide grpGame ; show page2 } + } + +//Options +//V-SYNC + + itemDef { + name page1 + group grpGame + type ITEM_TYPE_YESNO + text "Sync Every Frame:" + cvar "r_finish" + rect 112 60 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 20 + textscale .225 + forecolor Ig_Sub_TextColor + visible 1 + } + +//Simple items + + itemDef { + name page1 + group grpGame + type ITEM_TYPE_YESNO + text "Simple Items:" + cvar "cg_simpleItems" + rect 112 80 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 20 + textscale .225 + forecolor Ig_Sub_TextColor + visible 1 + } + +//Low quality sky + + itemDef { + name page1 + group grpGame + type ITEM_TYPE_YESNO + text "Low quality sky:" + cvar "r_fastsky" + rect 112 100 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 20 + textscale .225 + forecolor Ig_Sub_TextColor + visible 1 + } + +//Ejecting brass + + itemDef { + name page1 + group grpGame + type ITEM_TYPE_MULTI + text "Ejecting Brass:" + cvar "cg_brassTime" + cvarFloatList { "High" 2500 "Med" 1250 "Off" 0 } + rect 112 120 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 20 + textscale .225 + forecolor Ig_Sub_TextColor + visible 1 + } + +//Wall marks + + itemDef { + name page1 + group grpGame + type ITEM_TYPE_YESNO + text "Wall marks:" + cvar "cg_marks" + rect 112 140 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 20 + textscale .225 + forecolor Ig_Sub_TextColor + visible 1 + } + +//Dynamic lights + + itemDef { + name page1 + group grpGame + type ITEM_TYPE_YESNO + text "Dynamic lights:" + cvar "r_dynamiclight" + rect 112 160 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 20 + textscale .225 + forecolor Ig_Sub_TextColor + visible 1 + } + +//Force player models + + itemDef { + name page1 + group grpGame + type ITEM_TYPE_YESNO + text "Force Player Models:" + cvar "cg_forceModel" + rect 112 180 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 20 + textscale .225 + forecolor Ig_Sub_TextColor + visible 1 + } + +//Allow download from server + + itemDef { + name page1 + group grpGame + type ITEM_TYPE_YESNO + text "Allow Download:" + cvar "cl_allowDownload" + rect 112 200 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 20 + textscale .225 + forecolor Ig_Sub_TextColor + visible 1 + } + +//Draw team overlay + + itemDef { + name page1 + group grpGame + type ITEM_TYPE_YESNO + text "Draw Team Overlay:" + cvar "cg_drawTeamOverlay" + rect 112 220 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 20 + textscale .225 + forecolor Ig_Sub_TextColor + visible 1 + } + +//Muzzle flash + + itemDef { + name page1 + group grpGame + type ITEM_TYPE_YESNO + text "Muzzle Flash:" + cvar "cg_RQ3_flash" + rect 112 240 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 20 + textscale .225 + forecolor Ig_Sub_TextColor + visible 1 + } + +//Pain blends + + itemDef { + name page1 + group grpGame + type ITEM_TYPE_YESNO + text "Pain Blends:" + cvar "cg_RQ3_painBlend" + rect 112 260 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 20 + textscale .225 + forecolor Ig_Sub_TextColor + visible 1 + } + +//Announcer + + itemDef { + name page1 + group grpGame + type ITEM_TYPE_YESNO + text "Announcer:" + cvar "cg_RQ3_announcer" + rect 112 280 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 20 + textscale .225 + forecolor Ig_Sub_TextColor + visible 1 + } + +//Impact effects + + itemDef { + name page1 + group grpGame + type ITEM_TYPE_YESNO + text "Impact Effects:" + cvar "cg_RQ3_impactEffects" + rect 112 300 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 20 + textscale .225 + forecolor Ig_Sub_TextColor + visible 1 + } + +// Page2 // + +//Crosshair + + itemDef { + name page2 + group grpGame + text "Regular Crosshair:" + ownerdraw UI_CROSSHAIR + rect 240 80 24 24 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .225 + forecolor Ig_Sub_TextColor + visible 1 + } + +//Identify target + + itemDef { + name page2 + group grpGame + type ITEM_TYPE_MULTI + text "Crosshair Size:" + cvar "cg_crosshairSize" + cvarFloatList { "Small" 16 "Med" 24 "Big" 32 } + rect 112 100 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 20 + textscale .225 + forecolor Ig_Sub_TextColor + visible 1 + } + +//Identify target + + itemDef { + name page2 + group grpGame + type ITEM_TYPE_YESNO + text "Identify Target:" + cvar "cg_drawCrosshairNames" + rect 112 120 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 20 + textscale .225 + forecolor Ig_Sub_TextColor + visible 1 + } + +//SSG Crosshair + + itemDef { + name page2 + group grpGame + style 1 + text "SSG Crosshair" + rect 88 160 128 20 + textalign ITEM_ALIGN_CENTER + textalignx 128 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + decoration + } + + itemDef { + name page2 + group grpGame + type ITEM_TYPE_SLIDER + text "Red:" + cvarfloat "cg_RQ3_ssgColorR" 1 0 1 + rect 96 180 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + } + + itemDef { + name page2 + group grpGame + type ITEM_TYPE_SLIDER + text "Green:" + cvarfloat "cg_RQ3_ssgColorG" 1 0 1 + rect 96 200 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + } + + itemDef { + name page2 + group grpGame + type ITEM_TYPE_SLIDER + text "Blue:" + cvarfloat "cg_RQ3_ssgColorB" 0 0 1 + rect 96 220 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + } + + itemDef { + name page2 + group grpGame + type ITEM_TYPE_SLIDER + text "Alpha:" + cvarfloat "cg_RQ3_ssgColorA" .75 0 1 + rect 96 240 168 20 + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + } + +//SSG Crosshair Preview + + itemDef { + name page2 + group grpGame + rect 280 188 72 72 + ownerdraw UI_SSG_CROSSHAIR + style WINDOW_STYLE_EMPTY + //decoration + visible 0 + } + + //Apply button + + itemDef { + name page2 + group grpGame + text "Apply" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_FILLED + rect 284 160 64 16 + textalign ITEM_ALIGN_CENTER + textalignx 32 + textaligny 12 + border 1 + bordersize 1 + backcolor Ig_Sub_Color1 + forecolor Ig_Sub_TextColor + bordercolor Ig_Sub_BorderColor1 + visible 0 + action { exec "vid_restart" } + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + } + + //Note + + itemDef { + name page2 + group grpGame + style 1 + text "Note: pressing the apply button will restart " + "Reaction Quake 3 in order to load the new " + "SSG crosshair" + autowrapped + rect 112 280 232 20 + textalign ITEM_ALIGN_LEFT + textalignx 0 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + decoration + } + +} +} \ No newline at end of file diff --git a/reaction/uifiles/ingame_orders.menu b/reaction/uifiles/ingame_orders.menu new file mode 100644 index 00000000..aff69d9b --- /dev/null +++ b/reaction/uifiles/ingame_orders.menu @@ -0,0 +1,481 @@ +#include "ui/menudef.h" + +{ + \\ SETUP MENU \\ + + menuDef { + name "ingame_orders" + visible 0 + fullscreen 0 + rect 45 30 200 240 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle + focusColor 1 .75 0 1 + style 1 + border 1 + disableColor .5 .5 .5 1 + onopen { hide grpicon ; show attack } + + itemDef { + name window + rect 10 15 180 225 + style 1 + backcolor 0 .1 0 1 + visible 1 + decoration + } + + + // FRAME // + + + itemDef { + name window + rect 0 10 64 64 + style 3 + background "ui/assets/ingameleftcorner.tga" + visible 1 + decoration + } + itemDef { + name window + rect 136 10 64 64 + style 3 + background "ui/assets/ingamerightcorner.tga" + visible 1 + decoration + } + itemDef { + name window + rect 64 0 72 16 + style 3 + background "ui/assets/ingameconnection.tga" + visible 1 + decoration + } + itemDef { + name window + rect 0 177 64 64 + style 3 + background "ui/assets/ingameleftcornerb.tga" + visible 1 + decoration + } + itemDef { + name window + rect 136 177 64 64 + style 3 + background "ui/assets/ingamerightcornerb.tga" + visible 1 + decoration + } + itemDef { + name window + rect 0 64 16 64 + style 3 + background "ui/assets/ingameleft.tga" + visible 1 + decoration + } + itemDef { + name window + rect 0 128 16 64 + style 3 + background "ui/assets/ingameleft.tga" + visible 1 + decoration + } + + itemDef { + name window + rect 184 64 16 64 + style 3 + background "ui/assets/ingameright.tga" + visible 1 + decoration + } + itemDef { + name window + rect 184 128 16 64 + style 3 + background "ui/assets/ingameright.tga" + visible 1 + decoration + } + itemDef { + name window + rect 64 233 96 8 + style 3 + background "ui/assets/ingamebottom.tga" + visible 1 + decoration + } + + + + itemDef { + name orders + group grporders + text "Name:" + style 0 + ownerdraw UI_SELECTEDPLAYER + // As cycle through playerlist selected player in HUD cycles // + rect 10 20 200 20 + textalign 0 + textalignx 10 + textaligny 17 + textscale .25 + forecolor 1 1 1 1 + visible 1 + } + + // COMMAND ICONS // + + itemDef { + name attack + group grpicon + style 3 + rect 84 45 32 32 + background "ui/assets/statusbar/assault.tga" + visible 0 + } + itemDef { + name defend + group grpicon + style 3 + rect 84 45 32 32 + background "ui/assets/statusbar/defend.tga" + visible 0 + } + itemDef { + name patrol + group grpicon + style 3 + rect 84 45 32 32 + background "ui/assets/statusbar/patrol.tga" + visible 0 + } + itemDef { + name follow + group grpicon + style 3 + rect 84 45 32 32 + background "ui/assets/statusbar/follow.tga" + visible 0 + } + itemDef { + name camp + group grpicon + style 3 + rect 84 45 32 32 + background "ui/assets/statusbar/camp.tga" + visible 0 + } + itemDef { + name leader + group grpicon + style 3 + rect 84 45 32 32 + background "ui/assets/statusbar/team_leader.tga" + visible 0 + } + itemDef { + name retrieve + group grpicon + style 3 + rect 84 45 32 32 + background "ui/assets/statusbar/retrieve.tga" + visible 0 + } + itemDef { + name escort + group grpicon + style 3 + rect 84 45 32 32 + background "ui/assets/statusbar/escort.tga" + visible 0 + } + + + + + + // GIVE ORDERS TO OTHERS // + + + + itemDef { + name orders + group grporders + text "Attack Enemy Base" + rect 0 80 200 20 + type 1 + textalign 1 + textalignx 100 + textaligny 17 + textscale .25 + forecolor 1 1 1 1 + visible 1 + mouseenter { hide grpicon ; show attack } + action { + uiScript voiceOrders "cmd vtell %d offense; +button7; wait; -button7" + uiScript voiceOrdersTeam "cmd vsay_team offense; +button7; wait; -button7" + } + ownerdrawflag UI_SHOW_LEADER + } + + itemDef { + name orders + group grporders + type 1 + text "Defend Our Base" + rect 0 100 200 20 + textalign 1 + textalignx 100 + textaligny 17 + textscale .25 + forecolor 1 1 1 1 + visible 1 + mouseenter { hide grpicon ; show defend } + action { + uiScript voiceOrders "cmd vtell %d defend; +button8; wait; -button8" + uiScript voiceOrdersTeam "cmd vsay_team defend; +button8; wait; -button8" + } + ownerdrawflag UI_SHOW_LEADER + } + + itemDef { + name orders + group grporders + type 1 + text "Patrol" + rect 0 120 200 20 + textalign 1 + textalignx 100 + textaligny 17 + textscale .25 + forecolor 1 1 1 1 + visible 1 + mouseenter { hide grpicon ; show patrol } + action { + uiScript voiceOrders "cmd vtell %d patrol; +button9; wait; -button9" + uiScript voiceOrdersTeam "cmd vsay_team patrol; +button9; wait; -button9" + } + ownerdrawflag UI_SHOW_LEADER + } + + itemDef { + name orders + group grporders + type 1 + text "Follow Me" + rect 0 140 200 20 + textalign 1 + textalignx 100 + textaligny 17 + textscale .25 + forecolor 1 1 1 1 + visible 1 + mouseenter { hide grpicon ; show follow } + action { + uiScript voiceOrders "cmd vtell %d followme; +button10; wait; -button10" + uiScript voiceOrdersTeam "cmd vsay_team followme; +button10; wait; -button10" + } + ownerdrawflag UI_SHOW_LEADER + } + itemDef { + name orders + group grporders + text "Camp Here" + type 1 + rect 0 160 200 20 + textalign 1 + textalignx 100 + textaligny 17 + textscale .25 + forecolor 1 1 1 1 + visible 1 + mouseenter { hide grpicon ; show camp } + action { + uiScript voiceOrders "cmd vtell %d camp" + uiScript voiceOrdersTeam "cmd vsay_team camp" + } + ownerdrawflag UI_SHOW_LEADER + } + itemDef { + name orders + group grporders + type 1 + text "Escort the Carrier" + rect 0 180 200 20 + textalign 1 + textalignx 100 + textaligny 17 + textscale .25 + forecolor 1 1 1 1 + visible 1 + cvarTest "g_gametype" + hideCvar { "6" ; "7" } + mouseenter { hide grpicon ; show escort } + action { + uiScript voiceOrders "cmd vtell %d followflagcarrier" + uiScript voiceOrdersTeam "cmd vsay_team followflagcarrier" + } + ownerdrawflag UI_SHOW_LEADER + } + itemDef { + name orders + group grporders + type 1 + text "Retrieve Our Flag" + rect 0 200 200 20 + textalign 1 + textalignx 100 + textaligny 17 + textscale .25 + forecolor 1 1 1 1 + visible 1 + cvarTest "g_gametype" + hideCvar { "5" ; "6" ; "7" } + mouseenter { hide grpicon ; show retrieve } + action { + uiScript voiceOrders "cmd vtell %d returnflag" + uiScript voiceOrdersTeam "cmd vsay_team returnflag" + } + ownerdrawflag UI_SHOW_LEADER + } + + + // CHANGE YOUR STATUS // + + + + itemDef { + name orders + group grporders + text "I'M ATTACKING" + rect 0 80 200 20 + textalign 1 + textalignx 100 + type 1 + textaligny 17 + textscale .25 + forecolor 1 1 1 1 + visible 1 + mouseenter { hide grpicon ; show attack } + action { exec "teamtask 1 ; cmd vsay_team onoffense" ; uiScript closeingame } + ownerdrawflag UI_SHOW_NOTLEADER + } + + itemDef { + name orders + group grporders + text "I'M DEFENDING" + type 1 + rect 0 100 200 20 + textalign 1 + textalignx 100 + textaligny 17 + textscale .25 + forecolor 1 1 1 1 + visible 1 + mouseenter { hide grpicon ; show defend } + action { exec "teamtask 2 ; cmd vsay_team ondefense" ; uiScript closeingame } + ownerdrawflag UI_SHOW_NOTLEADER + } + + itemDef { + name orders + group grporders + type 1 + text "I'M PATROLLING" + rect 0 120 200 20 + textalign 1 + textalignx 100 + textaligny 17 + textscale .25 + forecolor 1 1 1 1 + visible 1 + mouseenter { hide grpicon ; show patrol } + action { exec "teamtask 3 ; cmd vsay_team onpatrol" ; uiScript closeingame } + ownerdrawflag UI_SHOW_NOTLEADER + } + + itemDef { + name orders + group grporders + text "I'M FOLLOWING" + type 1 + rect 0 140 200 20 + textalign 1 + textalignx 100 + textaligny 17 + textscale .25 + forecolor 1 1 1 1 + visible 1 + mouseenter { hide grpicon ; show follow } + action { exec "teamtask 4 ; cmd vsay_team onfollow" ; uiScript closeingame } + ownerdrawflag UI_SHOW_NOTLEADER + } + itemDef { + name orders + group grporders + text "I'M CAMPING" + rect 0 160 200 20 + type 1 + textalign 1 + textalignx 100 + textaligny 17 + textscale .25 + forecolor 1 1 1 1 + visible 1 + mouseenter { hide grpicon ; show camp } + action { exec "teamtask 7 ; cmd vsay_team oncamp" ; uiScript closeingame } + ownerdrawflag UI_SHOW_NOTLEADER + } + itemDef { + name orders + group grporders + text "I'M ESCORTING" + type 1 + rect 0 180 200 20 + textalign 1 + textalignx 100 + textaligny 17 + textscale .25 + forecolor 1 1 1 1 + cvarTest "g_gametype" + hideCvar { "6" ; "7" } + visible 1 + mouseenter { hide grpicon ; show retrieve } + action { exec "teamtask 6 ; cmd vsay_team onfollowcarrier" ; uiScript closeingame } + ownerdrawflag UI_SHOW_NOTLEADER + } + itemDef { + name orders + group grporders + text "I'M RETRIEVING" + type 1 + rect 0 200 200 20 + textalign 1 + textalignx 100 + textaligny 17 + textscale .25 + forecolor 1 1 1 1 + visible 1 + cvarTest "g_gametype" + hideCvar { "5" ; "6" ; "7" } + mouseenter { hide grpicon ; show escort } + action { exec "teamtask 5 ; cmd vsay_team onreturnflag" ; uiScript closeingame } + ownerdrawflag UI_SHOW_NOTLEADER + } + + + + + + + + } + + +} diff --git a/reaction/uifiles/ingame_player.menu b/reaction/uifiles/ingame_player.menu new file mode 100644 index 00000000..96ace00b --- /dev/null +++ b/reaction/uifiles/ingame_player.menu @@ -0,0 +1,230 @@ +#include "ui/menudef.h" + +{ + menuDef { + name "ingame_player" + visible 0 + fullscreen 0 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle + rect 112 64 320 264 + focusColor 1 .75 0 1 // Menu focus color for text and items + style WINDOW_STYLE_EMPTY + shadowStyle 1 + border 0 + onOpen { play "sound/misc/menu1.wav" ; uiScript update "ui_GetName"} + onClose { uiScript update "ui_SetName" } + +//Window + + itemdef { + rect 0 0 320 264 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemdef { + rect 201 1 120 24 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ingame-title" + visible 1 + decoration + } + + itemdef { + rect 201 1 120 24 + style WINDOW_STYLE_EMPTY + forecolor Ig_Window_TitleColor + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 24 + textaligny 16 + text "Player settings" + visible 1 + decoration + } + +//Player model display + + itemdef { + name "model_preview" + ownerdraw UI_PLAYERMODEL + style 1 + rect -32 -32 192 256 + visible 1 + decoration + } + +//Player name + + itemdef { + name "namefield" + text "Name:" + rect 138 28 160 20 + textalign ITEM_ALIGN_LEFT + textalignx 6 + textaligny 16 + textscale .225 + visible 1 + decoration + } + + itemdef { + name "namefield" + group "playersettinggroup" + type ITEM_TYPE_EDITFIELD + style WINDOW_STYLE_FILLED + text "" + cvar "ui_Name" + maxchars 16 + rect 138 48 160 16 + textalign ITEM_ALIGN_LEFT + textalignx 4 + textaligny 12 + textscale .225 + outlinecolor 1 .5 .5 .5 + backcolor 1 1 1 .2 + forecolor 1 1 1 1 + border 1 + bordercolor .25 .25 .25 1 + visible 1 + onfocus { setcolor backcolor 1 1 1 .2 ; } + leavefocus { setcolor backcolor 1 1 1 .1 ; } + } + +//Weapon button +//Teamplay-only + + itemdef { + name "weapon" + rect 138 74 160 16 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 6 + textaligny 12 + text "W. Weapon/item" + shortcutKey "W" + border 1 + bordersize 1 + backcolor Ig_Sub_Color1 + forecolor Ig_Sub_TextColor + bordercolor Ig_Sub_BorderColor1 + cvarTest "g_gameType" + showCvar { "4" ; "5" } + visible 1 + action { play "sound/misc/menu1.wav" ; close "ingame_player" ; open "ingame_weapon" } + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + } + +//Join team + + itemdef { + name "team" + rect 138 90 160 16 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 6 + textaligny 12 + text "J. Join team" + shortcutKey "J" + border 1 + bordersize 1 + backcolor Ig_Sub_Color1 + forecolor Ig_Sub_TextColor + bordercolor Ig_Sub_BorderColor1 + visible 1 + action { play "sound/misc/menu1.wav" ; exec "ui_RQ3_joinTeam" ; close "ingame_player" } + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + } + +//Ignore player + + itemdef { + rect 138 106 160 16 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 6 + textaligny 12 + text "I. Ignore players" + shortcutKey "I" + border 1 + bordersize 1 + backcolor Ig_Sub_Color1 + forecolor Ig_Sub_TextColor + bordercolor Ig_Sub_BorderColor1 + visible 1 + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + action { play "sound/misc/menu1.wav" ; close "ingame_player" ; open "ingame_ignore" } + } + +// Radio stuff + itemdef { + rect 138 122 160 16 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_MULTI + text "M. Male Radioset:" + shortcutKey "M" + border 1 + bordersize 1 + cvar "cg_RQ3_radiovoice_male" + cvarFloatList { "New" 1 "Pikey" 2 "Pirate" 3 "Original" 0 } + textstyle ITEM_TEXTSTYLE_SHADOWED + textalign ITEM_ALIGN_LEFT + textalignx 6 + textaligny 12 + textscale .225 + visible 1 + cvarTest "g_gameType" + showCvar { "4" ; "5" } + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + } + +//Icon list + + itemdef { + name headlist_window + rect 20 180 278 68 + style WINDOW_STYLE_EMPTY + border 1 + bordersize 1 + bordercolor .25 .25 .25 1 + decoration + visible 1 + } + + itemdef { + name headlist + rect 24 184 270 60 + type ITEM_TYPE_LISTBOX + style WINDOW_STYLE_EMPTY + elementwidth 38 + elementheight 38 + elementtype LISTBOX_IMAGE + feeder FEEDER_Q3HEADS + horizontalscroll + backcolor 0 0 0 1 + border 0 + bordercolor Ig_Window_BorderColor + forecolor 1 1 1 1 + visible 1 + } +} +} diff --git a/reaction/uifiles/ingame_scoreffa.menu b/reaction/uifiles/ingame_scoreffa.menu new file mode 100644 index 00000000..3b77d15d --- /dev/null +++ b/reaction/uifiles/ingame_scoreffa.menu @@ -0,0 +1,452 @@ +#include "ui/menudef.h" + +{ + \\ score_menu \\ + + menuDef { + name "teamscore_menu" + visible 0 + fullscreen 1 + rect 0 0 640 480 + background uibackground4 + focusColor 1 .75 0 1 + style 1 + border 1 + + itemDef { + name leftteambar + rect 14 102 306 35 + style WINDOW_STYLE_FILLED + border 1 + bordercolor .5 .5 .5 1 + forecolor 1 1 1 1 + backcolor 1 0 0 1 + visible 1 + decoration + } + + itemDef { + name rightteambar + rect 320 102 306 35 + style WINDOW_STYLE_FILLED + border 1 + bordercolor .5 .5 .5 1 + forecolor 1 1 1 1 + backcolor 0 0 1 1 + visible 1 + decoration + } + + itemDef { + name leftteamheadings + text "Status Name Score Time Ping" + textscale .25 + style 0 + rect 25 102 128 30 + textalign 0 + textalignx 0 // x alignment point for text + // use it to offset left/right text from the edge + // or to center the text on a different point + textaligny 23 + backcolor 0 0 0 0 + forecolor 1 .75 0 1 + decoration + visible 1 + } + + + itemDef { + name leftgrad + style WINDOW_STYLE_SHADER + background "ui/assets/halfgradleft.tga" + rect 14 140 306 222 + forecolor .75 0 0 0.5 + visible 1 + decoration + } + + itemDef { + name leftgrad + rect 16 142 302 218 + orecolor .75 .75 .75 .75 + visible 1 + type ITEM_TYPE_LISTBOX + elementwidth 135 + elementheight 20 + textscale .25 + elementtype LISTBOX_TEXT + feeder FEEDER_REDTEAM_LIST + columns 5 2 20 20 60 75 75 165 20 20 205 20 20 235 20 20 + } + + + + itemDef { + name rightgrad + style WINDOW_STYLE_SHADER + background "ui/assets/halfgradright.tga" + rect 320 140 296 222 + forecolor 0 0 .75 0.5 + visible 1 + type ITEM_TYPE_LISTBOX + elementwidth 135 + elementheight 20 + textscale .28 + elementtype LISTBOX_TEXT + feeder FEEDER_BLUETEAM_LIST + columns 5 2 20 20 60 75 75 165 20 20 205 20 20 235 20 20 + } + + itemDef { + name rightteamheadings + text "Status Name Score Time Ping" + textscale .25 + style 0 + rect 336 102 128 30 + textalign 0 + textalignx 0 // x alignment point for text + // use it to offset left/right text from the edge + // or to center the text on a different point + textaligny 23 + backcolor 0 0 0 0 + forecolor 1 .75 0 1 + decoration + visible 1 + } + + + + + + + + itemDef { + name window + rect 14 141 612 221 + style WINDOW_STYLE_EMPTY + border 1 + bordercolor .5 .5 .5 .75 + forecolor 1 1 1 1 + backcolor 0 0 0 .25 + visible 1 + decoration + } + + + + + + + // GAMETYPE BAR // + + + itemDef { + name gametypebar + style 2 + rect 0 16 640 35 + textscale 0.4 + textalign 0 // center + textalignx 60 // x alignment point for text + // use it to offset left/right text from the edge + // or to center the text on a different point + textaligny 21 + style 2 + border 4 + bordercolor 1 1 1 1 + bordersize 1 + backcolor 0 0 .75 0.5 + visible 1 + decoration + } + + + itemDef { + name score + text " " + ownerdraw CG_GAME_STATUS + textscale .5 + style 0 + rect 320 16 210 25 + textalignx 0 + textaligny 21 + textalign 1 + backcolor 0 0 0 0 + forecolor 1 1 1 1 + visible 1 + decoration + } + + + itemDef { + name score + text "" + ownerdraw CG_KILLER + textscale .4 + style 0 + rect 320 40 210 40 + textalignx 0 + textaligny 24 + textalign 1 + backcolor 0 0 0 0 + forecolor 1 1 1 1 + visible 1 + decoration + } + + + + + // PLAYER STATS // + + itemDef { + name window + rect 14 364 612 24 + style WINDOW_STYLE_FILLED + border 1 + bordercolor .5 .5 .5 .5 + forecolor 0 0 0 0 + backcolor 0 0 0 .25 + //outlinecolor 1 1 1 .5 + visible 1 + decoration + } + + itemDef { + name name + text "Name:" + textscale .35 + style 0 + rect 0 363 128 30 + textalign 1 // center + textalignx 64 // x alignment point for text + // use it to offset left/right text from the edge + // or to center the text on a different point + textaligny 21 + backcolor 0 0 0 0 + forecolor 1 .75 0 1 + decoration + visible 1 + } + + + itemDef { + name score + text "Score:" + textscale .35 + style 0 + rect 246 363 128 30 + textalign 3 // center + textalignx 16 // x alignment point for text + // use it to offset left/right text from the edge + // or to center the text on a different point + textaligny 21 + backcolor 0 0 0 0 + forecolor 1 .75 0 1 + decoration + visible 1 + } + + + itemDef { + name wins + text "Wins:" + textscale .35 + style 0 + rect 404 363 128 30 + textalign 1 // center + textalignx 64 // x alignment point for text + // use it to offset left/right text from the edge + // or to center the text on a different point + textaligny 21 + backcolor 0 0 0 0 + forecolor 1 .75 0 1 + decoration + visible 1 + } + + + + // AWARDS // + + + itemDef { + name window + rect 14 390 612 38 + style WINDOW_STYLE_FILLED + border 1 + bordercolor .5 .5 .5 .5 + forecolor 1 1 1 1 + backcolor 0 0 0 .25 + visible 1 + decoration + } + + itemdef { + name medal_accuracy + style WINDOW_STYLE_SHADER + rect 48 394 32 32 + background "ui/assets/medal_accuracy.tga" + forecolor 1 1 1 .25 + visible 1 + decoration + } + + itemdef { + name medal_assist + style WINDOW_STYLE_SHADER + rect 112 394 32 32 + background "ui/assets/medal_assist.tga" + forecolor 1 1 1 .25 + visible 1 + decoration + + } + + itemdef { + name medal_accuracy + style WINDOW_STYLE_SHADER + rect 176 394 32 32 + background "ui/assets/medal_accuracy.tga" + forecolor 1 1 1 .25 + visible 1 + decoration + + } + + itemdef { + name medal_defend + style WINDOW_STYLE_SHADER + rect 240 394 32 32 + background "ui/assets/medal_defend.tga" + forecolor 1 1 1 .25 + visible 1 + decoration + + } + + itemdef { + name medal_excellent + style WINDOW_STYLE_SHADER + rect 304 394 32 32 + background "ui/assets/medal_excellent.tga" + forecolor 1 1 1 .25 + visible 1 + decoration + + } + + itemdef { + name medal_frags + style WINDOW_STYLE_SHADER + rect 368 394 32 32 + background "ui/assets/medal_frags.tga" + forecolor 1 1 1 .25 + visible 1 + decoration + + } + + itemdef { + name medal_gauntlet + style WINDOW_STYLE_SHADER + rect 432 394 32 32 + background "ui/assets/medal_gauntlet.tga" + forecolor 1 1 1 .25 + visible 1 + decoration + + } + + itemdef { + name medal_impressive + style WINDOW_STYLE_SHADER + rect 496 394 32 32 + background "ui/assets/medal_impressive.tga" + forecolor 1 1 1 .25 + visible 1 + decoration + + } + + itemdef { + name medal_victory + style WINDOW_STYLE_SHADER + rect 560 394 32 32 + background "ui/assets/medal_victory.tga" + forecolor 1 1 1 .25 + visible 1 + decoration + } + + + + // TEAM LOGO // + + + itemDef { + name playerlogo + ownerdraw UI_PLAYERLOGO + rect 71 157 180 180 + visible 1 + forecolor .5 0 0 .5 + decoration + } + + itemDef { + ownerdraw UI_OPPONENTLOGO + name opposinglogo + rect 397 157 180 180 + visible 1 + forecolor 0 0 .5 .5 + decoration + } + + itemDef { + name playerlogo + ownerdraw UI_PLAYERLOGO_METAL + rect 14 6 96 96 + visible 1 + forecolor 1 .7 .7 1 + decoration + } + + itemDef { + name opposinglogo + ownerdraw UI_OPPONENTLOGO_METAL + rect 530 6 96 96 + visible 1 + forecolor .7 .7 1 1 + decoration + } + + + + + // TEAM NAME // + + itemDef { + name playerteamname + ownerdraw UI_PLAYERLOGO_NAME + rect 120 54 120 60 + decoration + visible 1 + } + + itemDef { + name opposingteamname + ownerdraw UI_OPPONENTLOGO_NAME + rect 392 54 120 60 + backcolor 0 0 0 0 + forecolor 1 1 1 1 + decoration + visible 1 + } + + + + + + } + + +} diff --git a/reaction/uifiles/ingame_serverinfo.menu b/reaction/uifiles/ingame_serverinfo.menu new file mode 100644 index 00000000..a6b723ad --- /dev/null +++ b/reaction/uifiles/ingame_serverinfo.menu @@ -0,0 +1,63 @@ +#include "ui/menudef.h" + +{ + \\ SERVER INFO MENU \\ + + menuDef { + name "ingame_serverinfo" + visible 0 + fullscreen 0 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle + rect 352 30 256 300 + focusColor 1 .75 0 1 + style 1 + border 1 + + itemDef { + name window + rect 0 0 256 300 + style 1 + border 1 + bordercolor .5 .5 .5 1 + backcolor 0 0 .75 .25 + visible 1 + decoration + } + + + itemDef { + name serverinfo + group serverinfo + rect 0 100 256 256 + text "Server Information" + textalign 1 + textscale .25 + textalignx 128 + textaligny 17 + forecolor 1 1 1 1 + visible 1 + decoration + } + itemDef { + name ok + text "OK" + textscale .25 + group grpControlbutton + style WINDOW_STYLE_SHADER + background "ui/assets/button_red.tga" + rect 103 275 50 20 + textalign 1 + textalignx 25 + textaligny 15 + forecolor 1 1 1 1 + visible 1 + action { close ingame_serverinfo ; close ingame ; open ingame } + } + + + + + } + + +} diff --git a/reaction/uifiles/ingame_system.menu b/reaction/uifiles/ingame_system.menu new file mode 100644 index 00000000..5038f594 --- /dev/null +++ b/reaction/uifiles/ingame_system.menu @@ -0,0 +1,611 @@ +#include "ui/menudef.h" + +{ + //----------------// + // SYSTEM OPTIONS // + //----------------// + + + menuDef { + name "ingame_system" + visible 0 + fullscreen 0 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle + rect 176 64 372 340 + focusColor 1 .75 0 1 // Menu focus color for text and items + style WINDOW_STYLE_EMPTY + border 0 + shadowStyle 1 + onOpen { play "sound/misc/menu1.wav" ; hide grpSystem ; + //setitemcolor grpSections backcolor 0 0 0 0 ; + //setitemcolor sectionGraphics backcolor Ig_Window_Color ; + show graphics ; setfocus sectionGraphics } + +//Window + + itemDef { + rect 0 0 372 340 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemDef { + rect 95 55 277 285 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemDef { + rect 253 1 120 24 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ingame-title" + visible 1 + decoration + } + + itemDef { + rect 253 1 120 24 + style WINDOW_STYLE_EMPTY + forecolor Ig_Window_TitleColor + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 24 + textaligny 16 + text "System options" + visible 1 + decoration + } + + +//Tabs + + itemDef { + name tabSystem + group grpTabs + text "System" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 96 40 64 16 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + forecolor Ig_Sub_TextColor + visible 1 + decoration + } + + itemDef { + name tabControls + group grpTabs + text "Controls" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 160 40 64 16 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + forecolor Ig_Setup_TabColor + visible 1 + action { close "ingame_system" ; open "ingame_controls" } + } + + itemDef { + name tabGame + group grpTabs + text "Game" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 224 40 64 16 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + forecolor Ig_Setup_TabColor + visible 1 + action { close "ingame_system" ; open "ingame_options" } + } + +//Sub-sections + + itemDef { + name sectionGraphics + group grpSections + text "Graphics" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 0 72 96 16 + textalign ITEM_ALIGN_RIGHT + textalignx 88 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + forecolor Ig_Sub_TextColor + //backcolor 0 0 0 0 + visible 1 + action { play "sound/misc/menu1.wav" ; hide grpSystem ; + //setitemcolor grpSections backcolor 0 0 0 0 ; + //setitemcolor sectionGraphics backcolor Ig_Window_Color ; + show graphics } + } + + itemDef { + name sectionDriver + group grpSections + text "Driver info" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 0 96 96 16 + textalign ITEM_ALIGN_RIGHT + textalignx 88 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + forecolor Ig_Sub_TextColor + //backcolor 0 0 0 0 + visible 1 + action { play "sound/misc/menu1.wav" ; hide grpSystem ; + //setitemcolor grpSections backcolor 0 0 0 0 ; + //setitemcolor sectionDriver backcolor Ig_Window_Color ; + show driver } + } + + itemDef { + name sectionOther + group grpSections + text "Other" + type ITEM_TYPE_BUTTON + textscale .225 + style WINDOW_STYLE_EMPTY + rect 0 120 96 16 + textalign ITEM_ALIGN_RIGHT + textalignx 88 + textaligny 12 + textstyle ITEM_TEXTSTYLE_SHADOWED + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + forecolor Ig_Sub_TextColor + //backcolor 0 0 0 0 + visible 1 + action { play "sound/misc/menu1.wav" ; hide grpSystem ; + //setitemcolor grpSections backcolor 0 0 0 0 ; + //setitemcolor sectionOther backcolor Ig_Window_Color ; + show Other } + } + +//Options + +// Graphics + + itemDef { + name graphics + group grpSystem + type ITEM_TYPE_MULTI + text "Quality:" + cvar "ui_glCustom" + cvarFloatList { "High Quality" 0 "Normal" 1 "Fast" 2 "Fastest" 3 "Custom" 4 } + rect 96 72 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 133 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + action { uiScript update "ui_glCustom" } + } + + itemDef { + name graphics + group grpSystem + type ITEM_TYPE_EDITFIELD + text "GL Driver:" + cvar "r_gldriver" + //cvarFloatList { } + rect 96 92 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 133 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + decoration + } + + itemDef { + name graphics + group grpSystem + type ITEM_TYPE_YESNO + text "GL Extensions:" + cvar "r_allowExtensions" + rect 96 112 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 133 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + action { uiScript glCustom } + } + + itemDef { + name graphics + group grpSystem + type ITEM_TYPE_MULTI + text "Video Mode:" + cvar "r_mode" + cvarFloatList { "320x240" 0 "400x300" 1 "512x384" 2 "640x480" 3 "800x600" 4 "960x720" 5 "1024x768" 6 "1152x864" 7 "1280x1024" 8 "1600x1200" 9 "2048x1536" 10 "856x480 wide screen" 11 } + rect 96 132 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 133 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + action { uiScript glCustom } + } + + itemDef { + name graphics + group grpSystem + type ITEM_TYPE_MULTI + text "Color Depth:" + cvar "r_colorbits" + cvarFloatList { "Default" 0 "16 bit" 16 "32 bit" 32 } + rect 96 152 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 133 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + action { uiScript glCustom ; uiScript update "r_colorbits" } + } + + itemDef { + name graphics + group grpSystem + type ITEM_TYPE_YESNO + text "Fullscreen:" + cvar "r_fullscreen" + rect 96 172 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 133 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + action { uiScript glCustom } + } + + itemDef { + name graphics + group grpSystem + type ITEM_TYPE_MULTI + text "Lighting:" + cvar "r_vertexlight" + cvarFloatList { "Light Map (high)" 0 "Vertex (low)" 1 } + rect 96 192 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 133 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + action { uiScript glCustom } + } + + itemDef { + name graphics + group grpSystem + type ITEM_TYPE_MULTI + text "Geometric Detail:" + cvar "r_lodbias" + cvarFloatList { "High" 0 "Medium" 1 "Low" 2 } + rect 96 212 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 133 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + action { uiScript glCustom ; uiScript update "r_lodbias" } + } + + itemDef { + name graphics + group grpSystem + type ITEM_TYPE_MULTI + text "Texture Detail:" + cvar "r_picmip" + cvarFloatList { "Very Low" 3 "Low" 2 "Normal" 1 "High" 0 } + rect 96 232 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 133 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + action { uiScript glCustom } + } + + itemDef { + name graphics + group grpSystem + type ITEM_TYPE_MULTI + text "Texture Quality:" + cvar "r_texturebits" + cvarFloatList { "Default" 0 "16 bit" 16 "32 bit" 32 } + rect 96 252 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 133 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + } + + itemDef { + name graphics + group grpSystem + type ITEM_TYPE_MULTI + text "Texture Filter:" + cvar "r_texturemode" + cvarStrList { "Bilinear", "GL_LINEAR_MIPMAP_NEAREST", "Trilinear", "GL_LINEAR_MIPMAP_LINEAR" } + rect 96 272 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 133 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + action { uiScript glCustom } + } + + itemDef { + name graphics + group grpSystem + type ITEM_TYPE_YESNO + text "Compress Textures:" + cvar "r_ext_compressed_textures" + rect 96 292 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 133 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + action { uiScript glCustom } + } + + //Apply button + + itemDef { + name graphics + text "Apply" + type ITEM_TYPE_BUTTON + textscale .225 + group grpsystem + style WINDOW_STYLE_FILLED + rect 200 312 64 16 + textalign ITEM_ALIGN_CENTER + textalignx 32 + textaligny 12 + border 1 + bordersize 1 + backcolor Ig_Sub_Color1 + forecolor Ig_Sub_TextColor + bordercolor Ig_Sub_BorderColor1 + visible 0 + action { exec "vid_restart" } + onFocus { setcolor backcolor Ig_Sub_Color2 ; setcolor bordercolor Ig_Sub_BorderColor2 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; setcolor bordercolor Ig_Sub_BorderColor1 } + } + +// Driver info + + itemDef { + name driver + group grpSystem + rect 112 80 232 232 + ownerdraw UI_GLINFO + textalign 1 + textscale .2 + textalignx 0 + textaligny 14 + forecolor Ig_Sub_TextColor + visible 0 + decoration + } + +// Others + + itemDef { + name other + group grpSystem + style 1 + text "Display" + rect 96 68 128 20 + textalign ITEM_ALIGN_CENTER + textalignx 128 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + decoration + } + + itemDef { + name other + group grpSystem + type ITEM_TYPE_SLIDER + text "Brightness:" + cvarfloat "r_gamma" 1 .5 1.7 + rect 96 88 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + } + + itemDef { + name other + group grpSystem + type ITEM_TYPE_SLIDER + text "Screen Size:" + cvarfloat "cg_viewsize" 100 30 100 + rect 96 108 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + } + + itemDef { + name other + group grpSystem + type ITEM_TYPE_YESNO + text "Overbright Bits:" + cvar "r_overbrightbits" + rect 96 128 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + } + + itemDef { + name other + group grpSystem + style 1 + text "Sound" + rect 96 168 128 20 + textalign ITEM_ALIGN_CENTER + textalignx 128 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + decoration + } + + itemDef { + name other + group grpSystem + type ITEM_TYPE_SLIDER + text "Effects Volume:" + cvarfloat "s_volume" 0.7 0 1 + rect 96 188 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + } + + itemDef { + name other + group grpSystem + type ITEM_TYPE_SLIDER + text "Music Volume:" + cvarfloat "s_musicvolume" 0.25 0 1 + rect 96 208 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + } + + itemDef { + name other + group grpSystem + type ITEM_TYPE_MULTI + text "Sound Quality:" + cvar "s_khz" + cvarFloatList { "22 khz (high)" 22 "11 khz (low)" 11 } + rect 96 228 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + } + + itemDef { + name other + group grpSystem + type ITEM_TYPE_YESNO + text "Doppler Sound:" + cvar "s_doppler" + rect 96 248 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + } + + itemDef { + name other + group grpSystem + style 1 + text "Network" + rect 96 288 128 20 + textalign ITEM_ALIGN_CENTER + textalignx 128 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + decoration + } + + itemDef { + name other + group grpSystem + type ITEM_TYPE_MULTI + text "Net Data Rate:" + cvar "rate" + cvarFloatList { "<=28.8k" 2500 "33.6k" 3000 "56k" 4000 "ISDN" 5000 "LAN/CABLE/xDSl" 25000 } + rect 96 308 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 128 + textaligny 14 + textscale .225 + forecolor Ig_Sub_TextColor + visible 0 + } +} +} diff --git a/reaction/uifiles/ingame_tkok.menu b/reaction/uifiles/ingame_tkok.menu new file mode 100644 index 00000000..dfe18de9 --- /dev/null +++ b/reaction/uifiles/ingame_tkok.menu @@ -0,0 +1,124 @@ +#include "ui/menudef.h" + +{ + + menudef { + name "ingame_tkok" + visible 0 + fullscreen 0 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle + rect 200 64 180 120 + disableColor .5 .5 .5 1 + focusColor 1 .75 0 1 // Menu focus color for text and items + style 1 + shadowStyle 1 + onOpen { play "sound/misc/menu1.wav" ; show grpMenu ; hide grpConfirm } + +//Window + + itemdef { + rect 0 0 180 120 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemdef { + rect 61 1 120 24 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ingame-title" + visible 1 + decoration + } + + itemdef { + rect 61 1 120 24 + style WINDOW_STYLE_EMPTY + forecolor Ig_Window_TitleColor + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 24 + textaligny 16 + text "Team kill OK ?" + visible 1 + decoration + } + + // Text // + + itemdef { + text "Forgive the last\n" + "teammate who killed you ?" + style WINDOW_STYLE_EMPTY + textscale .25 + rect 8 40 164 32 + textalign ITEM_ALIGN_CENTER + textalignx 82 + textaligny 12 + autowrapped + forecolor Ig_Sub_TextColor + visible 1 + decoration + } + +//Buttons + + // YES // + + itemdef { + name yes + text "Yes" + shortcutKey "Y" + type ITEM_TYPE_BUTTON + style WINDOW_STYLE_EMPTY + textscale .25 + rect 48 88 40 16 + textalign 1 + textalignx 20 + textaligny 12 + forecolor Ig_Sub_TextColor + visible 1 + action { play "sound/misc/menu1.wav" ; exec "tkok" ; uiScript closeingame } + } + + // NO // + + itemdef { + name no + text "No" + shortcutKey "N" + type ITEM_TYPE_BUTTON + style WINDOW_STYLE_EMPTY + textscale .25 + rect 92 88 40 16 + textalign ITEM_ALIGN_CENTER + textalignx 20 + textaligny 12 + forecolor Ig_Sub_TextColor + visible 1 + action { play "sound/misc/menu1.wav" ; uiScript closeingame } + } + + // SEPARATOR // + + itemdef { + text "/" + type ITEM_TYPE_BUTTON + style WINDOW_STYLE_EMPTY + textscale .25 + rect 74 88 32 16 + textalign ITEM_ALIGN_CENTER + textalignx 16 + textaligny 12 + forecolor Ig_Sub_TextColor + visible 1 + decoration + } + +} +} diff --git a/reaction/uifiles/ingame_vote.menu b/reaction/uifiles/ingame_vote.menu new file mode 100644 index 00000000..b3a11026 --- /dev/null +++ b/reaction/uifiles/ingame_vote.menu @@ -0,0 +1,161 @@ +#include "ui/menudef.h" + +{ + + menudef { + name "ingame_vote" + visible 0 + fullscreen 0 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle + rect 352 64 128 112 + disableColor .5 .5 .5 1 + focusColor 1 .75 0 1 // Menu focus color for text and items + style 1 + shadowStyle 1 + onOpen { play "sound/misc/menu1.wav" ; show grpMenu ; hide grpConfirm } + +//Window + + itemdef { + rect 0 0 128 112 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemdef { + rect 9 1 120 24 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ingame-title" + visible 1 + decoration + } + + itemdef { + rect 9 1 120 24 + style WINDOW_STYLE_EMPTY + forecolor Ig_Window_TitleColor + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 24 + textaligny 16 + text "Vote/Call vote" + visible 1 + decoration + } + +//Buttons + + // YES // + + itemdef { + name yes + text "Yes" + shortcutKey "Y" + type ITEM_TYPE_BUTTON + style WINDOW_STYLE_EMPTY + textscale .25 + rect 16 48 40 16 + textalign 1 + textalignx 20 + textaligny 12 + forecolor Ig_Sub_TextColor + visible 1 + action { play "sound/misc/menu1.wav" ; exec "vote yes" ; uiScript closeingame } + } + + // NO // + + itemdef { + name no + text "No" + shortcutKey "N" + type ITEM_TYPE_BUTTON + style WINDOW_STYLE_EMPTY + textscale .25 + rect 72 48 40 16 + textalign ITEM_ALIGN_CENTER + textalignx 20 + textaligny 12 + forecolor Ig_Sub_TextColor + visible 1 + action { play "sound/misc/menu1.wav" ; exec "vote no" ; uiScript closeingame } + } + + // CALL VOTE // + + itemdef { + name call + text "Call vote" + shortcutKey "C" + type ITEM_TYPE_BUTTON + style WINDOW_STYLE_EMPTY + textscale .25 + rect 16 72 96 16 + textalign ITEM_ALIGN_CENTER + textalignx 48 + textaligny 12 + forecolor Ig_Sub_TextColor + visible 1 + action { play "sound/misc/menu1.wav" ; close ingame_vote ; open ingame_callvote } + } + + // SEPARATOR // + + itemdef { + text "/" + type ITEM_TYPE_BUTTON + style WINDOW_STYLE_EMPTY + textscale .25 + rect 48 48 32 16 + textalign ITEM_ALIGN_CENTER + textalignx 16 + textaligny 12 + forecolor Ig_Sub_TextColor + visible 1 + decoration + } + + // TEAM YES // + + itemdef { + name yes + text "TeamYes" + shortcutKey "Y" + type 1 + //ownerdrawflag UI_SHOW_ANYTEAMGAME + textscale .25 + rect 0 70 128 20 + textalign 1 + textalignx 64 + textaligny 10 + forecolor 1 1 1 1 + visible 0 + action { play "sound/misc/menu1.wav" ; exec "teamvote yes" ; uiScript closeingame } + } + + // TEAM NO // + + itemdef { + name no + text "TeamNo" + shortcutKey "N" + type 1 + //ownerdrawflag UI_SHOW_ANYTEAMGAME + textscale .25 + rect 0 90 128 20 + textalign 1 + textalignx 64 + textaligny 10 + forecolor 1 1 1 1 + visible 0 + action { play "sound/misc/menu1.wav" ; exec "teamvote no" ; uiScript closeingame } + } + +} +} diff --git a/reaction/uifiles/ingame_vote2.menu b/reaction/uifiles/ingame_vote2.menu new file mode 100644 index 00000000..95e280e3 --- /dev/null +++ b/reaction/uifiles/ingame_vote2.menu @@ -0,0 +1,71 @@ +#include "ui/menudef.h" + +{ + \\ SERVER INFO MENU \\ + + menuDef { + name "ingame_vote" + visible 0 + fullscreen 0 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle + rect 387 30 210 64 + focusColor 1 .75 0 1 + style 1 + border 1 + + itemDef { + name window + rect 0 0 210 64 + style 1 + border 1 + bordercolor .5 .5 .5 1 + backcolor 0 0 .75 .25 + visible 1 + decoration + } + + + itemDef { + name yes + text "Vote Yes" + type 1 + textscale .25 + group grpControlbutton + style WINDOW_STYLE_SHADER + background "ui/assets/button_red.tga" + rect 20 20 75 20 + textalign 1 + textalignx 37 + textaligny 16 + forecolor 1 1 1 1 + visible 1 + action { exec "cmd vote yes" ; close ingame_vote } + } + + + itemDef { + name no + text "Vote No" + type 1 + textscale .25 + group grpControlbutton + style WINDOW_STYLE_SHADER + background "ui/assets/button_red.tga" + rect 115 20 75 20 + textalign 1 + textalignx 37 + textaligny 16 + forecolor 1 1 1 1 + visible 1 + action { exec "cmd vote no" ; close ingame_vote } + } + } + + + + + +} + + +} diff --git a/reaction/uifiles/ingame_weapon.menu b/reaction/uifiles/ingame_weapon.menu new file mode 100644 index 00000000..9e17e6b0 --- /dev/null +++ b/reaction/uifiles/ingame_weapon.menu @@ -0,0 +1,329 @@ +#include "ui/menudef.h" + +{ + + menuDef { + name "ingame_weapon" + visible 0 + fullscreen 0 + outOfBoundsClick // this closes the window if it gets a click out of the rectangle + rect 80 64 344 208 + focusColor 1 .75 0 1 // Menu focus color for text and items + style WINDOW_STYLE_EMPTY + shadowStyle 1 + border 0 + onOpen { play "sound/misc/menu1.wav" ; setFocus mp5 } + onEsc { play "sound/misc/menu2.wav" ; close ingame_weapon } + +//Window + + itemdef { + rect 0 0 344 208 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemdef { + rect 225 1 120 24 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ingame-title" + visible 1 + decoration + } + + itemdef { + rect 225 1 120 24 + style WINDOW_STYLE_EMPTY + forecolor Ig_Window_TitleColor + textstyle ITEM_TEXTSTYLE_NORMAL + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 24 + textaligny 16 + text "Choose weapon" + visible 1 + decoration + } + +//Weapons + + itemdef { + shortcutKey "1" + name "mp5" + rect 152 48 160 16 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 12 + text "1. MP5/10 Submachinegun" + forecolor 1 1 1 1 + visible 1 + onFocus { hide weapons ; show "wp_mp5" } + action { exec "choose mp5" ; close ingame_weapon ; open ingame_item } + } + + itemdef { + shortcutKey "2" + name "m3" + rect 152 68 160 16 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 12 + text "2. M3 Super 90 Assault Shotgun" + forecolor 1 1 1 1 + visible 1 + onFocus { hide weapons ; show "wp_m3" } + action { exec "choose m3" ; close ingame_weapon ; open ingame_item } + } + + itemdef { + name "hc" + shortcutKey "3" + rect 152 88 160 16 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 12 + text "3. Handcannon" + forecolor 1 1 1 1 + visible 1 + onFocus { hide weapons ; show "wp_hc" } + action { exec "choose hc" ; close ingame_weapon ; open ingame_item } + } + + itemdef { + name "sniper" + shortcutKey "4" + rect 152 108 160 16 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 12 + text "4. Sniper Rifle" + forecolor 1 1 1 1 + visible 1 + onFocus { hide weapons ; show "wp_sniper" } + action { exec "choose sniper" ; close ingame_weapon ; open ingame_item } + } + + itemdef { + name "m4" + shortcutKey "5" + rect 152 128 160 16 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 12 + text "5. M4 Assault Rifle" + forecolor 1 1 1 1 + visible 1 + onFocus { hide weapons ; show "wp_m4" } + action { exec "choose m4" ; close ingame_weapon ; open ingame_item } + } + + itemdef { + name "knives" + shortcutKey "6" + rect 152 148 160 16 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 12 + text "6. Combat Knives" + forecolor 1 1 1 1 + visible 1 + onFocus { hide weapons ; show "wp_knives" } + action { exec "choose knives" ; close ingame_weapon ; open ingame_item } + } + + itemdef { + name "akimbo" + shortcutKey "7" + rect 152 168 160 16 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 12 + text "7. Dual Mk23 Pistols" + forecolor 1 1 1 1 + visible 1 + onFocus { hide weapons ; show "wp_akimbo" } + action { exec "choose akimbo" ; close ingame_weapon ; open ingame_item } + } + +//Weapon preview +//Background + + itemdef { + name wp_background + rect 16 48 128 136 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ingame-loadout" + model_angle 90 + border 1 + bordersize 1 + bordercolor Ig_Window_BorderColor + //backcolor .5 .5 .5 .4 + decoration + visible 1 + } + +//Weapons + + itemdef { + name wp_mp5 + group weapons + rect 16 48 128 136 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_MODEL + asset_model "models/weapons2/mp5/mp5.md3" + model_origin 8 0 0 + model_fovx 60 + model_fovy 60 + model_rotation 10 + model_angles 90 0 0 + decoration + visible 0 + } + + itemdef { + name wp_m3 + group weapons + rect 16 48 128 136 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_MODEL + asset_model "models/weapons2/m3/m3.md3" + model_origin 28 6 0 + model_fovx 60 + model_fovy 60 + model_rotation 10 + model_angles 270 0 0 + decoration + visible 0 + } + + itemdef { + name wp_hc + group weapons + rect 16 48 128 136 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_MODEL + asset_model "models/weapons2/handcannon/handcannon.md3" + model_origin 16 -4 0 + model_fovx 60 + model_fovy 60 + model_rotation 10 + model_angles 90 0 0 + decoration + visible 0 + } + + itemdef { + name wp_sniper + group weapons + rect 16 48 128 136 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_MODEL + asset_model "models/weapons2/ssg3000/ssg3000.md3" + model_origin 28 6 0 + model_fovx 60 + model_fovy 60 + model_rotation 10 + model_angle 270 + decoration + visible 1 + } + + itemdef { + name wp_m4 + group weapons + rect 16 48 128 136 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_MODEL + asset_model "models/weapons2/m4/m4.md3" + model_origin 18 -2 0 + model_fovx 60 + model_fovy 60 + model_rotation 10 + model_angle 90 + decoration + visible 0 + } + + itemdef { + name wp_knives + group weapons + rect 16 48 128 136 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_MODEL + asset_model "models/weapons2/knife/knife.md3" + model_origin -4 0 0 + model_fovx 60 + model_fovy 60 + model_rotation 10 + model_angles 180 0 15 + decoration + visible 1 + } + + itemdef { + name wp_akimbo + group weapons + rect 24 48 128 136 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_MODEL + asset_model "models/weapons2/mk23/mk23.md3" + model_origin 0 0 1 + model_fovx 90 + model_fovy 90 + model_rotation 10 + model_angle 90 + decoration + visible 1 + } + + itemdef { + name wp_akimbo + group weapons + rect 24 48 128 136 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_MODEL + asset_model "models/weapons2/mk23/mk23.md3" + model_origin 0 2 -3 + model_fovx 90 + model_fovy 90 + model_rotation 10 + model_angles 90 180 0 + decoration + visible 1 + } + +} +} diff --git a/reaction/uifiles/joinserver.menu b/reaction/uifiles/joinserver.menu new file mode 100644 index 00000000..6f0904ba --- /dev/null +++ b/reaction/uifiles/joinserver.menu @@ -0,0 +1,1026 @@ +#include "ui/menudef.h" + +#define HeaderColor 0 0 0 .75 +#define HeaderColor2 .25 .25 .25 .75 +#define ColumnColor .5 .5 .5 0 +#define ColumnColor2 1 1 1 .075 + +{ + + menuDef { + name "joinserver" + background "rq3-ta-menuback" // Makro: replace "rq3-ta-menuback" with "rq3-menuback" + // to use the old background + fullScreen MENU_TRUE + visible MENU_FALSE // Visible on open + focusColor RQ3_MAIN_FOCUSCOLOR // Menu focus color for text and items + + onOpen { + uiScript "UpdateFilter" ; + play "sound/misc/menu1.wav" ; + } + + onEsc { uiScript closeJoin } + + +//=================== +// RQ3 stuff +//=================== + + + itemDef { + name top_bar //rq3: Top bar + rect 0 0 640 56 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name top_bar //rq3: Top bar + rect 0 58 640 12 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-main-shadow-1" + decoration + visible 1 + } + + itemDef { + name top_bar2 //rq3: Top bar - border + rect 0 56 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar //rq3: bottom bar + rect 0 420 640 60 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar2 //rq3: bottom bar - border + rect 0 418 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemdef { + name "join_icon" + style WINDOW_STYLE_SHADER + rect 8 8 48 48 + background "menu/art/rq3-menu-start.tga" + decoration + visible 1 + } + + itemdef { + name "join_title" + style WINDOW_STYLE_SHADER + rect 64 12 256 32 + background "menu/art/rq3-title-start.tga" + decoration + visible 1 + } + + itemdef { + name overlay + style 1 + forecolor 0 0 0 1 + backcolor RQ3_MENU_OVERLAY_COLOR + rect 0 58 640 360 + visible 1 + decoration + } + +//=================== +// Buttons, lists +//=================== + +//Shadow + + itemdef { + style WINDOW_STYLE_EMPTY + rect 20 76 600 328 + shadowstyle 1 + decoration + visible 1 + } + +//Server list + + itemdef { + name serverlist_window + group serverlist + rect 20 96 600 212 + type ITEM_TYPE_LISTBOX + style WINDOW_STYLE_FILLED + elementwidth 120 + elementheight 20 + textscale .225 + elementtype LISTBOX_TEXT + feeder FEEDER_SERVERS + border 1 + bordercolor .5 .5 .5 1 + forecolor 1 1 1 1 + backcolor HeaderColor + outlinecolor 1 1 1 .2 + visible 1 + columns 5 2 72 72 280 40 12 404 5 10 464 5 5 524 6 6 + //mouseenter { setitemcolor serverlist bordercolor .7 0 0 1 } + //mouseexit { setitemcolor serverlist bordercolor .5 .5 .5 1 } + onFocus { show serverlist_hint ; timeFade serverlist_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade serverlist_hint forecolor .9 .9 .9 0 0 250 } + doubleClick { uiScript JoinServer } + } + + itemdef { + name serverlist_hint + text "Select a server from the list" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Headers + + itemdef { + name s_servername_header + group headers + rect 20 76 281 21 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + border 1 + bordercolor .5 .5 .5 1 + backcolor HeaderColor + forecolor 1 1 1 1 + textscale .225 + outlinecolor 1 1 1 .2 + textstyle 5 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + text "Server name" + visible 1 + action { + play "sound/misc/menu1.wav" ; + uiScript ServerSort 0 ; + setitemcolor headers backcolor HeaderColor ; + setitemcolor s_servername_header backcolor HeaderColor2 ; + setitemcolor columns backcolor ColumnColor ; + setitemcolor s_servername_column backcolor ColumnColor2 } + onFocus { show sortserver_hint ; timeFade sortserver_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade sortserver_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name s_mapname_header + group headers + rect 300 76 121 21 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + border 1 + bordercolor .5 .5 .5 1 + backcolor HeaderColor + forecolor 1 1 1 1 + textscale .225 + outlinecolor 1 1 1 .2 + textstyle 5 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + text "Map name" + visible 1 + action { + play "sound/misc/menu1.wav" ; + uiScript ServerSort 1 ; + setitemcolor headers backcolor HeaderColor ; + setitemcolor s_mapname_header backcolor HeaderColor2 ; + setitemcolor columns backcolor ColumnColor ; + setitemcolor s_mapname_column backcolor ColumnColor2 } + onFocus { show sortmap_hint ; timeFade sortmap_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade sortmap_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name s_players_header + group headers + rect 420 76 61 21 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + border 1 + bordercolor .5 .5 .5 1 + backcolor HeaderColor + forecolor 1 1 1 1 + textscale .225 + outlinecolor 1 1 1 .2 + textstyle 5 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + text "#Plyrs" + visible 1 + action { + play "sound/misc/menu1.wav" ; + uiScript ServerSort 2 ; + setitemcolor headers backcolor HeaderColor ; + setitemcolor s_players_header backcolor HeaderColor2 ; + setitemcolor columns backcolor ColumnColor ; + setitemcolor s_players_column backcolor ColumnColor2 } + onFocus { show sortplayers_hint ; timeFade sortplayers_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade sortplayers_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name s_gametype_header + group headers + rect 480 76 61 21 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + border 1 + bordercolor .5 .5 .5 1 + backcolor HeaderColor + forecolor 1 1 1 1 + textscale .225 + outlinecolor 1 1 1 .2 + textstyle 5 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + text "Type" + visible 1 + action { + play "sound/misc/menu1.wav" ; + uiScript ServerSort 3 ; + setitemcolor headers backcolor HeaderColor ; + setitemcolor s_gametype_header backcolor HeaderColor2 ; + setitemcolor columns backcolor ColumnColor ; + setitemcolor s_gametype_column backcolor ColumnColor2 } + onFocus { show sorttype_hint ; timeFade sorttype_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade sorttype_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name s_ping_header + group headers + rect 540 76 80 21 + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + border 1 + bordercolor .5 .5 .5 1 + backcolor HeaderColor + forecolor 1 1 1 1 + textscale .225 + outlinecolor 1 1 1 .2 + textstyle 5 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + text "Ping" + visible 1 + action { + play "sound/misc/menu1.wav" ; + uiScript ServerSort 4 ; + setitemcolor headers backcolor HeaderColor ; + setitemcolor s_ping_header backcolor HeaderColor2 ; + setitemcolor columns backcolor ColumnColor ; + setitemcolor s_ping_column backcolor ColumnColor2 } + onFocus { show sortping_hint ; timeFade sortping_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade sortping_hint forecolor .9 .9 .9 0 0 250 } + } + +//Columns + + itemdef { + name s_servername_column + group columns + rect 20 96 281 212 + style WINDOW_STYLE_FILLED + border 1 + bordercolor .5 .5 .5 1 + backcolor ColumnColor + visible 1 + decoration + } + + itemdef { + name s_mapname_column + group columns + rect 300 96 121 212 + style WINDOW_STYLE_FILLED + border 1 + bordercolor .5 .5 .5 1 + backcolor ColumnColor + visible 1 + decoration + } + + itemdef { + name s_players_column + group columns + rect 420 96 61 212 + style WINDOW_STYLE_FILLED + border 1 + bordercolor .5 .5 .5 1 + backcolor ColumnColor + visible 1 + decoration + } + + itemdef { + name s_gametype_column + group columns + rect 480 96 61 212 + style WINDOW_STYLE_FILLED + border 1 + bordercolor .5 .5 .5 1 + backcolor ColumnColor + visible 1 + decoration + } + + itemdef { + name s_ping_column + group columns + rect 540 96 63 212 + style WINDOW_STYLE_FILLED + border 1 + bordercolor .5 .5 .5 1 + backcolor ColumnColor + visible 1 + decoration + } + +//Sort message + + itemdef { + name sortserver_hint + text "Click to sort server list by server name" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + + itemdef { + name sortmap_hint + text "Click to sort server list by map name" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + + itemdef { + name sortplayers_hint + text "Click to sort server list by number of players" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + + itemdef { + name sorttype_hint + text "Click to sort server list by game type" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + + itemdef { + name sortping_hint + text "Click to sort server list by ping time" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Options + + //Window + + itemdef { + rect 20 307 600 65 + style WINDOW_STYLE_FILLED + backcolor 0 0 0 .65 + border 1 + bordercolor .5 .5 .5 1 + visible 1 + decoration + } + + //Window + + itemdef { + rect 20 370 600 32 + style WINDOW_STYLE_FILLED + backcolor 0 0 0 .65 + border 1 + bordercolor .5 .5 .5 1 + visible 1 + decoration + } + + //Map preview + +/* + itemdef { + rect 12 72 168 124 + style WINDOW_STYLE_EMPTY + //backcolor 0 0 0 .65 + border 1 + bordercolor .5 .5 .5 1 + visible 1 + decoration + } +*/ + + itemdef { + name map_preview + rect 544 314 72 54 + ownerdraw UI_NETMAPCINEMATIC + style WINDOW_STYLE_EMPTY + decoration + visible 1 + } + + // 1st row // + // Server Info // + + itemdef { + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + rect 28 316 100 20 + text "Server Info" + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + forecolor 1 1 1 1 + visible 1 + action { open "serverinfo_popmenu" } + onFocus { show serverinfo_hint ; timeFade serverinfo_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade serverinfo_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name serverinfo_hint + text "Click to display information about the selected server" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + + // Password // + + itemdef { + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + rect 148 316 100 20 + text "Password" + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + forecolor 1 1 1 1 + visible 1 + action { open "password_popmenu" } + onFocus { show password_hint ; timeFade password_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade password_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name password_hint + text "Click to enter a password to join a private server" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + + // Specify // + + itemdef { + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + rect 300 316 100 20 + text "Specify" + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + forecolor 1 1 1 1 + visible 1 + action { open "specify_popmenu" } + onFocus { show specify_hint ; timeFade specify_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade specify_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name specify_hint + text "Click to specify a custom server address" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + + // Find Player // + + itemdef { + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + rect 420 316 100 20 + text "Find Player" + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + forecolor 1 1 1 1 + visible 1 + action { open "findplayer_popmenu" } + onFocus { show findplayer_hint ; timeFade findplayer_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade findplayer_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name findplayer_hint + text "Click to search the server list for players" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + + // 2nd row // + // Add Favorite // + + itemdef { + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + rect 28 344 100 20 + text "Add Favorite" + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" ; uiScript addFavorite } + onFocus { show addfav_hint ; timeFade addfav_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade addfav_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name addfav_hint + text "Click to add the selected server to the favorites list" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + + // Del Favorite // + + itemdef { + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + rect 148 344 100 20 + text "Del. Favorite" + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" ; uiScript DeleteFavorite ; uiScript UpdateFilter } + onFocus { show delfav_hint ; timeFade delfav_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade delfav_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name delfav_hint + text "Click to remove the selected server from the favorites list" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + + // New Favorite // + + itemdef { + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + rect 300 344 100 20 + text "New Favorite" + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + forecolor 1 1 1 1 + visible 1 + action { open "createfavorite_popmenu" } + onFocus { show newfav_hint ; timeFade newfav_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade newfav_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name newfav_hint + text "Click to enter the name and address of a new favorite server" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + + // Source // + + itemdef { + style WINDOW_STYLE_EMPTY + ownerdraw UI_NETSOURCE + rect 420 344 80 20 + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } + + // 3rd row // + // Get New List // + + itemdef { + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + rect 28 376 100 20 + text "Get New List" + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" ; uiScript RefreshServers } + onFocus { show getlist_hint ; timeFade getlist_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade getlist_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name getlist_hint + text "Click to get an updated server list" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + + // Refresh List // + + itemdef { + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + rect 148 376 100 20 + text "Refresh List" + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" ; uiScript RefreshFilter } + onFocus { show refresh_hint ; timeFade refresh_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade refresh_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name refresh_hint + text "Click to refresh the server list" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + + // View empty // + + itemdef { + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_YESNO + rect 300 376 80 20 + text "View Empty:" + cvar "ui_browserShowEmpty" + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" ; uiScript RefreshFilter } + onFocus { show empty_hint ; timeFade empty_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade empty_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name empty_hint + text "Show empty servers in the list" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + + // View full // + + itemdef { + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_YESNO + rect 420 376 80 20 + text "View Full:" + cvar "ui_browserShowFull" + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" ; uiScript RefreshFilter } + onFocus { show full_hint ; timeFade full_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade full_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name full_hint + text "Show full servers in the list" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +/* + // Game // + + itemdef { + style WINDOW_STYLE_EMPTY + ownerdraw UI_NETFILTER + rect 528 376 80 20 + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" } + } +*/ + +//GO button + + itemdef { + name "btn_join" + style WINDOW_STYLE_SHADER + rect 560 432 64 32 + type 1 + background "menu/art/rq3-menu-go.tga" + action { uiScript JoinServer } + onFocus { setbackground "menu/art/rq3-menu-go-focus-anim" ; show join_hint ; + timeFade join_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { setbackground "menu/art/rq3-menu-go.tga" ; + timeFade join_hint forecolor .9 .9 .9 0 0 250 } + visible 1 + } + + itemdef { + name join_hint + text "Connect to the selected server" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + + // Server Refresh Date // + + itemdef { + ownerdraw UI_SERVERREFRESHDATE + style WINDOW_STYLE_EMPTY + rect 300 20 200 20 + textscale .2 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 16 + forecolor 1 1 1 1 + decoration + visible 1 + } + +//Create + + itemdef { + name "btn_create" + style WINDOW_STYLE_FILLED + type ITEM_TYPE_BUTTON + rect 540 20 80 20 + //border 1 + //bordersize 1 + //bordercolor .5 .5 .5 1 + backcolor Ig_Sub_Color1 + forecolor 1 1 1 1 + textscale .25 + textalign ITEM_ALIGN_CENTER + textalignx 40 + textaligny 14 + text "Create >" + visible 1 + action { close joinserver ; open createserver } + //onFocus { setcolor backcolor Ig_Sub_Color2 ; show create_hint } + //leaveFocus { setcolor backcolor Ig_Sub_Color1 ; hide create_hint } + onFocus { setcolor backcolor Ig_Sub_Color2 ; + show create_hint ; timeFade create_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { setcolor backcolor Ig_Sub_Color1 ; + timeFade create_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name create_hint + text "Create your own Reaction server" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Back + + itemdef { + name "btn_back" + style WINDOW_STYLE_SHADER + rect 12 432 32 32 + type 1 + background "menu/art/rq3-menu-back.tga" + action { close joinserver ; open main ; } + onFocus { setbackground "menu/art/rq3-menu-back-focus-anim" ; + show back_hint ; timeFade back_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { setbackground "menu/art/rq3-menu-back.tga" ; + timeFade back_hint forecolor .9 .9 .9 0 0 250 } + visible 1 + } + + itemdef { + name back_hint + text "Go back to main menu" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } +} +} \ No newline at end of file diff --git a/reaction/uifiles/main.menu b/reaction/uifiles/main.menu new file mode 100644 index 00000000..b47c3be1 --- /dev/null +++ b/reaction/uifiles/main.menu @@ -0,0 +1,408 @@ +#include "ui/menudef.h" + +{ + assetGlobalDef { + font "fonts/font" 16 // font + smallFont "fonts/smallfont" 12 // font + bigFont "fonts/bigfont" 20 // font + cursor "gfx/rq3_ta_hud/3_cursor2.tga" // cursor + gradientBar "ui/assets/gradientbar2.tga" // gradient bar + itemFocusSound "sound/misc/menu2.wav" // sound for item getting focus (via keyboard or mouse ) + + fadeCycle 2 // how often fade happens in milliseconds + fadeAmount 0.05 // amount to adjust alpha per cycle + fadeClamp 1.0 // sets the fadeup alpha + + shadowColor 0.1 0.1 0.1 0.25 // shadow color + } + + + menuDef { + name "main" // Makro: rename it to "main-rq3" + background "rq3-ta-menuback" // Makro: replace "rq3-ta-menuback" with "rq3-menuback" + fullScreen MENU_TRUE + + //rect 0 0 640 480 // Size and position of the menu + visible 0 // Visible on open + focusColor RQ3_MAIN_FOCUSCOLOR // Menu focus color for text and items + soundLoop "music/rq3_title_loop" + soundIntro "music/rq3_title_intro" + + + onOpen { + //setitemcolor fadebox backcolor 0 0 0 1 ; + //fadeout fadebox ; + play "sound/misc/menu1.wav" ; + uiScript stopRefresh ; + } + + onFirstShow { + hide overlay ; show fadebox ; + setitemcolor fadebox backcolor 0 0 0 1 ; + timeFade fadebox backcolor 0 0 0 0 0 1000 ; + setfocus rq3_start ; + } + + onShow { + hide fadebox ; show overlay ; + setitemcolor overlay backcolor RQ3_MENU_OVERLAY_COLOR ; + timeFade overlay backcolor 0 0 0 0 0 500 ; + } + + onESC { show overlay ; hide fadebox ; + setitemcolor overlay backcolor RQ3_MENU_OVERLAY_COLOR ; + open quit_popmenu } + + + +//=================== +// RQ3 stuff +//=================== + + + itemDef { + name top_bar //rq3: Top bar + rect 0 0 640 56 + style WINDOW_STYLE_FILLED + //background "ui/assets/top" + backcolor RQ3_MAIN_BAR_COLOR + decoration + visible 1 + } + + itemDef { + name top_bar //rq3: Top bar + rect 0 58 640 12 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-main-shadow-1" + decoration + visible 1 + } + + itemDef { + name top_bar2 //rq3: Top bar - border + rect 0 56 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar //rq3: bottom bar + rect 0 420 640 60 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar2 //rq3: bottom bar - border + rect 0 418 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemdef { + name overlay + style 1 + forecolor 0 0 0 1 + backcolor 0 0 0 0 + rect 0 58 640 360 + visible 0 + decoration + } + +//Box for hints + + itemDef { + style WINDOW_STYLE_SHADER + rect 0 408 180 24 + background "ui/assets/rq3-main-box-1.tga" + visible 1 + decoration + } + + itemDef { + style WINDOW_STYLE_SHADER + rect 180 408 56 24 + background "ui/assets/rq3-main-box-2.tga" + visible 1 + decoration + } + +//Copyright + + itemDef { + name copyright + autowrapped + text "Reaction Quake 3 Beta 2.1\n" + "Copyright (c) 2000 - 2002 Reaction Quake 3 Team\n" + "Quake III Arena (c) 1999 - 2000 id Software Inc." + style 0 + textscale .15 + rect 0 420 640 28 + textalign 0 + textaligny 24 + textalignx 8 + forecolor .5 .5 .5 1 + visible 1 + decoration + } + +//================ +// Buttons +//================ + + +//Start game + + itemDef { + name RQ3_start + group "topmenu" + type 1 + background "menu/art/rq3-menu-start" + rect 8 16 32 32 + style WINDOW_STYLE_SHADER + visible 1 + mouseenter { setfocus rq3_start ; } + action { close main ; open joinserver ; } + onFocus { show rq3_start_focus ; timefade rq3_start_focus forecolor 1 1 1 1 0 250 ; + show rq3_start_hint ; timeFade rq3_start_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timefade rq3_start_focus forecolor 1 1 1 0 0 250 ; timeFade rq3_start_hint forecolor .9 .9 .9 0 0 250 } + } + + itemDef { + name RQ3_start_focus + background "menu/art/rq3-menu-focus" + forecolor 1 1 1 0 + rect 8 16 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + + itemDef { + name RQ3_start_hint + group hints + text "Play Reaction Quake 3" + forecolor RQ3_MAIN_HINT_COLOR + textalign 0 + textalignx 8 + textaligny 16 + textscale RQ3_MAIN_TEXTSIZE + rect 0 410 260 24 + style 0 + visible 0 + decoration + } + +//Setup + + itemDef { + name RQ3_Setup + group "topmenu" + type 1 + background "menu/art/rq3-menu-setup" + rect 56 16 32 32 + style WINDOW_STYLE_SHADER + visible 1 + action { close main ; open setup_menu ; } + onFocus { show rq3_setup_focus ; timefade rq3_setup_focus forecolor 1 1 1 1 0 250 ; + show rq3_setup_hint ; timeFade rq3_setup_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timefade rq3_setup_focus forecolor 1 1 1 0 0 250 ; timeFade rq3_setup_hint forecolor .9 .9 .9 0 0 250 } + } + + itemDef { + name RQ3_Setup_focus + background "menu/art/rq3-menu-focus" + forecolor 1 1 1 0 + rect 56 16 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemDef { + name RQ3_setup_hint + group hints + text "Configure Reaction Quake 3" + forecolor RQ3_MAIN_HINT_COLOR + textalign 0 + textalignx 8 + textaligny 16 + textscale RQ3_MAIN_TEXTSIZE + rect 0 410 260 24 + style 0 + visible 0 + decoration + } + +//Demos + + itemDef { + name RQ3_demos + group "topmenu" + type 1 + background "menu/art/rq3-menu-demos" + rect 104 16 32 32 + style WINDOW_STYLE_SHADER + visible 1 + action { close main ; open demo ; } + mouseenter { setfocus rq3_demos ; } + onFocus { show rq3_demos_focus ; timefade rq3_demos_focus forecolor 1 1 1 1 0 250 ; + show rq3_demos_hint ; timeFade rq3_demos_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timefade rq3_demos_focus forecolor 1 1 1 0 0 250 ; timeFade rq3_demos_hint forecolor .9 .9 .9 0 0 250 } + } + + itemDef { + name RQ3_demos_focus + background "menu/art/rq3-menu-focus" + forecolor 1 1 1 0 + rect 104 16 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemDef { + name RQ3_demos_hint + group hints + text "Playback in-game demos" + forecolor RQ3_MAIN_HINT_COLOR + textalign 0 + textalignx 8 + textaligny 16 + textscale RQ3_MAIN_TEXTSIZE + rect 0 410 260 24 + style 0 + visible 0 + decoration + } + +//Mods + + itemDef { + name RQ3_mods + group "topmenu" + type 1 + background "menu/art/rq3-menu-mods" + rect 544 16 32 32 + style WINDOW_STYLE_SHADER + visible 1 + mouseenter { setfocus rq3_mods ; } + action { close main ; open mod ; } + onFocus { show rq3_mods_focus ; timefade rq3_mods_focus forecolor 1 1 1 1 0 250 ; + show rq3_mods_hint ; timeFade rq3_mods_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timefade rq3_mods_focus forecolor 1 1 1 0 0 250 ; timeFade rq3_mods_hint forecolor .9 .9 .9 0 0 250 } + } + + itemDef { + name RQ3_mods_focus + background "menu/art/rq3-menu-focus" + forecolor 1 1 1 0 + rect 544 16 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemDef { + name RQ3_mods_hint + group hints + text "Change game modification" + forecolor RQ3_MAIN_HINT_COLOR + textalign 0 + textalignx 8 + textaligny 16 + textscale RQ3_MAIN_TEXTSIZE + rect 0 410 260 24 + style 0 + visible 0 + decoration + } + +//Quit + + itemDef { + name RQ3_quit + group "topmenu" + type 1 + background "menu/art/rq3-menu-exit" + rect 600 16 32 32 + style WINDOW_STYLE_SHADER + visible 1 + action { show overlay ; hide fadebox ; + setitemcolor overlay backcolor RQ3_MENU_OVERLAY_COLOR ; + open quit_popmenu } + onFocus { show rq3_quit_focus ; timefade rq3_quit_focus forecolor 1 1 1 1 0 250 ; + show rq3_quit_hint ; timeFade rq3_quit_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timefade rq3_quit_focus forecolor 1 1 1 0 0 250 ; timeFade rq3_quit_hint forecolor .9 .9 .9 0 0 250 } +// onFocus { fadein rq3_quit_focus ; fadein rq3_quit_hint ; } +// leaveFocus { hide rq3_quit_focus ; hide rq3_quit_hint ; } + } + + itemDef { + name RQ3_quit_focus + background "menu/art/rq3-menu-focus" + forecolor 1 1 1 0 + rect 600 16 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemDef { + name RQ3_quit_hint + group hints + text "Exit Reaction Quake 3" + forecolor RQ3_MAIN_HINT_COLOR + textalign 0 + textalignx 8 + textaligny 16 + textscale RQ3_MAIN_TEXTSIZE + rect 0 410 260 24 + style 0 + visible 0 + decoration + } + +//Logo+credits + + itemDef { + name rq3_logo + type 1 + background "menu/art/rq3-title-logo.tga" + rect 448 408 192 64 + style WINDOW_STYLE_SHADER + visible 1 + decoration + } + +//Box for fading in menus + + itemDef { + name fadebox + style WINDOW_STYLE_FILLED + //background "ui/assets/alpha" + //forecolor 0 0 0 1 + backcolor 0 0 0 1 + rect 0 0 640 480 + visible 0 + decoration + } + +} diff --git a/reaction/uifiles/main2.menu b/reaction/uifiles/main2.menu new file mode 100644 index 00000000..59185de2 --- /dev/null +++ b/reaction/uifiles/main2.menu @@ -0,0 +1,362 @@ +#include "ui/menudef.h" + +{ + assetGlobalDef { + font "fonts/font" 16 // font + smallFont "fonts/smallfont" 12 // font + bigFont "fonts/bigfont" 20 // font + cursor "gfx/rq3_ta_hud/3_cursor2.tga" // cursor + gradientBar "ui/assets/gradientbar2.tga" // gradient bar + itemFocusSound "sound/misc/menu2.wav" // sound for item getting focus (via keyboard or mouse ) + + fadeCycle 2 // how often fade happens in milliseconds + fadeAmount 0.05 // amount to adjust alpha per cycle + fadeClamp 1.0 // sets the fadeup alpha + + shadowColor 0.1 0.1 0.1 0.25 // shadow color + } + + + menuDef { + name "main2" // Makro: rename it to "main-rq3" + background "rq3-ta-menuback" // Makro: replace "rq3-ta-menuback" with "rq3-menuback" + fullScreen MENU_TRUE + + //rect 0 0 640 480 // Size and position of the menu + visible MENU_TRUE // Visible on open + focusColor 1 .75 0 1 // Menu focus color for text and items + + + onOpen { + //setitemcolor fadebox backcolor 0 0 0 1 ; + //fadeout fadebox ; + play "sound/misc/menu1.wav" ; + //exec "music music/rq3_title_intro.wav music/rq3_title_loop.wav" ; + setfocus rq3_start ; + uiScript stopRefresh ; + } + + onESC { open quit_popmenu } + + +//******************* +// RQ3 stuff +//******************* + + + itemDef { + name top_bar //rq3: Top bar + rect 0 0 640 56 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name top_bar2 //rq3: Top bar - border + rect 0 56 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar //rq3: bottom bar + rect 0 420 640 60 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar2 //rq3: bottom bar - border + rect 0 418 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name copyright + text "Reaction Quake3 TA UI Test" + style 0 + textscale RQ3_MAIN_TEXTSIZE + rect 0 440 640 40 + textalign 0 + textaligny 32 + textalignx 8 + forecolor 1 .25 0 .5 + visible 1 + decoration + } + +//**************** +// Buttons +//**************** + + +//Start game + + itemdef { + name RQ3_start + group "topmenu" + type 1 + background "menu/art/rq3-menu-start" + rect 8 16 32 32 + style WINDOW_STYLE_SHADER + visible 1 + mouseenter { setfocus rq3_start ; } + onFocus { fadein rq3_start_focus ; fadein rq3_start_hint ; } + leaveFocus {hide rq3_start_focus ; hide rq3_start_hint ; } + action { close main ; open joinserver ; } + } + + itemdef { + name RQ3_start_focus + background "menu/art/rq3-menu-focus" + rect 8 16 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + + itemdef { + name RQ3_start_hint + text "Play Reaction Quake3" + forecolor RQ3_MAIN_HINT_COLOR + textalign 0 + textalignx 8 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 0 420 640 40 + style 0 + visible 0 + decoration + } + +//Setup + + itemdef { + name RQ3_Setup + group "topmenu" + type 1 + background "menu/art/rq3-menu-setup" + rect 56 16 32 32 + style WINDOW_STYLE_SHADER + visible 1 + action { close main ; open setup_menu ; } + mouseenter { setfocus rq3_setup ; } + onFocus { fadein rq3_setup_focus ; fadein rq3_setup_hint ; } + leaveFocus {hide rq3_setup_focus ; hide rq3_setup_hint ; } + } + + itemdef { + name RQ3_Setup_focus + background "menu/art/rq3-menu-focus" + rect 56 16 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemdef { + name RQ3_setup_hint + text "Configure Reaction Quake3" + forecolor RQ3_MAIN_HINT_COLOR + textalign 0 + textalignx 8 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 0 420 640 40 + style 0 + visible 0 + decoration + } + +//Demos + + itemdef { + name RQ3_demos + group "topmenu" + type 1 + background "menu/art/rq3-menu-demos" + rect 104 16 32 32 + style WINDOW_STYLE_SHADER + visible 1 + action { close main ; open demo ; } + mouseenter { setfocus rq3_demos ; } + onFocus { fadein rq3_demos_focus ; fadein rq3_demos_hint ; } + leaveFocus {hide rq3_demos_focus ; hide rq3_demos_hint ; } + } + + itemdef { + name RQ3_demos_focus + background "menu/art/rq3-menu-focus" + rect 104 16 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemdef { + name RQ3_demos_hint + text "Playback in-game demos" + forecolor RQ3_MAIN_HINT_COLOR + textalign 0 + textalignx 8 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 0 420 640 40 + style 0 + visible 0 + decoration + } + +//Mods + + itemdef { + name RQ3_mods + group "topmenu" + type 1 + background "menu/art/rq3-menu-mods" + rect 544 16 32 32 + style WINDOW_STYLE_SHADER + visible 1 + mouseenter { setfocus rq3_mods ; } + action { close main ; open mod ; } + onFocus { fadein rq3_mods_focus ; fadein rq3_mods_hint ; } + leaveFocus {hide rq3_mods_focus ; hide rq3_mods_hint ; } + } + + itemdef { + name RQ3_mods_focus + background "menu/art/rq3-menu-focus" + rect 544 16 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemdef { + name RQ3_mods_hint + text "Change game modification" + forecolor RQ3_MAIN_HINT_COLOR + textalign 0 + textalignx 8 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 0 420 640 40 + style 0 + visible 0 + decoration + } + +//Quit + + itemdef { + name RQ3_quit + group "topmenu" + type 1 + background "menu/art/rq3-menu-exit" + rect 600 16 32 32 + style WINDOW_STYLE_SHADER + visible 1 + action { play "sound/misc/menu1.wav" ; open quit_popmenu ; } + mouseenter { setfocus rq3_quit ; } + onFocus { fadein rq3_quit_focus ; fadein rq3_quit_hint ; } + leaveFocus {hide rq3_quit_focus ; hide rq3_quit_hint ; } + } + + itemdef { + name RQ3_quit_focus + background "menu/art/rq3-menu-focus" + rect 600 16 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemdef { + name RQ3_quit_hint + text "Exit Reaction Quake3" + forecolor RQ3_MAIN_HINT_COLOR + textalign 0 + textalignx 8 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 0 420 640 40 + style 0 + visible 0 + decoration + } + +//Logo+credits + + itemdef { + name rq3_logo + type 1 + background "menu/art/rq3-title-logo.tga" + rect 384 412 256 64 + style WINDOW_STYLE_SHADER + visible 1 + action { close main ; open credit ; } + mouseenter { setfocus rq3_logo ; } + onFocus { + fadein rq3_logo_hint ; + //setbackground "menu/art/rq3-title-logo-focus-anim.tga" ; + //transition rq3_logo 384 424 256 64 380 420 264 72 30 10 ; + } + leaveFocus { + hide rq3_logo_hint ; + //setbackground "menu/art/rq3-title-logo.tga" ; + //transition rq3_logo 380 420 264 72 384 424 256 64 30 10 ; + } + } + + itemdef { + name RQ3_logo_hint + text "About Reaction Quake3" + forecolor RQ3_MAIN_HINT_COLOR + textalign 0 + textalignx 8 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 0 420 640 40 + type 0 + style 0 + visible 0 + decoration + } + + +//Box for fading in menus + + itemDef { + name fadebox + style WINDOW_STYLE_FILLED + background "ui/assets/alpha" + forecolor 0 0 0 1 + backcolor 0 0 0 1 + rect 0 0 640 480 + visible 0 + decoration + } + +} \ No newline at end of file diff --git a/reaction/uifiles/menudef.h b/reaction/uifiles/menudef.h new file mode 100644 index 00000000..98a955de --- /dev/null +++ b/reaction/uifiles/menudef.h @@ -0,0 +1,347 @@ + +#define ITEM_TYPE_TEXT 0 // simple text +#define ITEM_TYPE_BUTTON 1 // button, basically text with a border +#define ITEM_TYPE_RADIOBUTTON 2 // toggle button, may be grouped +#define ITEM_TYPE_CHECKBOX 3 // check box +#define ITEM_TYPE_EDITFIELD 4 // editable text, associated with a cvar +#define ITEM_TYPE_COMBO 5 // drop down list +#define ITEM_TYPE_LISTBOX 6 // scrollable list +#define ITEM_TYPE_MODEL 7 // model +#define ITEM_TYPE_OWNERDRAW 8 // owner draw, name specs what it is +#define ITEM_TYPE_NUMERICFIELD 9 // editable text, associated with a cvar +#define ITEM_TYPE_SLIDER 10 // mouse speed, volume, etc. +#define ITEM_TYPE_YESNO 11 // yes no cvar setting +#define ITEM_TYPE_MULTI 12 // multiple list setting, enumerated +#define ITEM_TYPE_BIND 13 // multiple list setting, enumerated + +#define ITEM_ALIGN_LEFT 0 // left alignment +#define ITEM_ALIGN_CENTER 1 // center alignment +#define ITEM_ALIGN_RIGHT 2 // right alignment + +#define ITEM_TEXTSTYLE_NORMAL 0 // normal text +#define ITEM_TEXTSTYLE_BLINK 1 // fast blinking +#define ITEM_TEXTSTYLE_PULSE 2 // slow pulsing +#define ITEM_TEXTSTYLE_SHADOWED 3 // drop shadow ( need a color for this ) +#define ITEM_TEXTSTYLE_OUTLINED 4 // drop shadow ( need a color for this ) +#define ITEM_TEXTSTYLE_OUTLINESHADOWED 5 // drop shadow ( need a color for this ) +#define ITEM_TEXTSTYLE_SHADOWEDMORE 6 // drop shadow ( need a color for this ) + +#define WINDOW_BORDER_NONE 0 // no border +#define WINDOW_BORDER_FULL 1 // full border based on border color ( single pixel ) +#define WINDOW_BORDER_HORZ 2 // horizontal borders only +#define WINDOW_BORDER_VERT 3 // vertical borders only +#define WINDOW_BORDER_KCGRADIENT 4 // horizontal border using the gradient bars + +#define WINDOW_STYLE_EMPTY 0 // no background +#define WINDOW_STYLE_FILLED 1 // filled with background color +#define WINDOW_STYLE_GRADIENT 2 // gradient bar based on background color +#define WINDOW_STYLE_SHADER 3 // gradient bar based on background color +#define WINDOW_STYLE_TEAMCOLOR 4 // team color +#define WINDOW_STYLE_CINEMATIC 5 // cinematic + +#define MENU_TRUE 1 // uh.. true +#define MENU_FALSE 0 // and false + +#define HUD_VERTICAL 0x00 +#define HUD_HORIZONTAL 0x01 + +// list box element types +#define LISTBOX_TEXT 0x00 +#define LISTBOX_IMAGE 0x01 + +// list feeders +#define FEEDER_HEADS 0x00 // model heads +#define FEEDER_MAPS 0x01 // text maps based on game type +#define FEEDER_SERVERS 0x02 // servers +#define FEEDER_CLANS 0x03 // clan names +#define FEEDER_ALLMAPS 0x04 // all maps available, in graphic format +#define FEEDER_REDTEAM_LIST 0x05 // red team members +#define FEEDER_BLUETEAM_LIST 0x06 // blue team members +#define FEEDER_PLAYER_LIST 0x07 // players +#define FEEDER_TEAM_LIST 0x08 // team members for team voting +#define FEEDER_MODS 0x09 // team members for team voting +#define FEEDER_DEMOS 0x0a // team members for team voting +#define FEEDER_SCOREBOARD 0x0b // team members for team voting +#define FEEDER_Q3HEADS 0x0c // model heads +#define FEEDER_SERVERSTATUS 0x0d // server status +#define FEEDER_FINDPLAYER 0x0e // find player +#define FEEDER_CINEMATICS 0x0f // cinematics +//Makro - improved in-game server info screen +#define FEEDER_INGAME_SERVERINFO 0x10 + +// display flags +#define CG_SHOW_BLUE_TEAM_HAS_REDFLAG 0x00000001 +#define CG_SHOW_RED_TEAM_HAS_BLUEFLAG 0x00000002 +#define CG_SHOW_ANYTEAMGAME 0x00000004 +#define CG_SHOW_HARVESTER 0x00000008 +#define CG_SHOW_ONEFLAG 0x00000010 +#define CG_SHOW_CTF 0x00000020 +#define CG_SHOW_OBELISK 0x00000040 +#define CG_SHOW_HEALTHCRITICAL 0x00000080 +#define CG_SHOW_SINGLEPLAYER 0x00000100 +#define CG_SHOW_TOURNAMENT 0x00000200 +#define CG_SHOW_DURINGINCOMINGVOICE 0x00000400 +#define CG_SHOW_IF_PLAYER_HAS_FLAG 0x00000800 +#define CG_SHOW_LANPLAYONLY 0x00001000 +#define CG_SHOW_MINED 0x00002000 +#define CG_SHOW_HEALTHOK 0x00004000 +#define CG_SHOW_TEAMINFO 0x00008000 +#define CG_SHOW_NOTEAMINFO 0x00010000 +#define CG_SHOW_OTHERTEAMHASFLAG 0x00020000 +#define CG_SHOW_YOURTEAMHASENEMYFLAG 0x00040000 +#define CG_SHOW_ANYNONTEAMGAME 0x00080000 +#define CG_SHOW_2DONLY 0x10000000 + + +#define UI_SHOW_LEADER 0x00000001 +#define UI_SHOW_NOTLEADER 0x00000002 +#define UI_SHOW_FAVORITESERVERS 0x00000004 +#define UI_SHOW_ANYNONTEAMGAME 0x00000008 +#define UI_SHOW_ANYTEAMGAME 0x00000010 +#define UI_SHOW_NEWHIGHSCORE 0x00000020 +#define UI_SHOW_DEMOAVAILABLE 0x00000040 +#define UI_SHOW_NEWBESTTIME 0x00000080 +#define UI_SHOW_FFA 0x00000100 +#define UI_SHOW_NOTFFA 0x00000200 +#define UI_SHOW_NETANYNONTEAMGAME 0x00000400 +#define UI_SHOW_NETANYTEAMGAME 0x00000800 +#define UI_SHOW_NOTFAVORITESERVERS 0x00001000 + + + + +// owner draw types +// ideally these should be done outside of this file but +// this makes it much easier for the macro expansion to +// convert them for the designers ( from the .menu files ) +#define CG_OWNERDRAW_BASE 1 +#define CG_PLAYER_ARMOR_ICON 1 +#define CG_PLAYER_ARMOR_VALUE 2 +#define CG_PLAYER_HEAD 3 +#define CG_PLAYER_HEALTH 4 +#define CG_PLAYER_AMMO_ICON 5 +#define CG_PLAYER_AMMO_VALUE 6 +#define CG_SELECTEDPLAYER_HEAD 7 +#define CG_SELECTEDPLAYER_NAME 8 +#define CG_SELECTEDPLAYER_LOCATION 9 +#define CG_SELECTEDPLAYER_STATUS 10 +#define CG_SELECTEDPLAYER_WEAPON 11 +#define CG_SELECTEDPLAYER_POWERUP 12 + +#define CG_FLAGCARRIER_HEAD 13 +#define CG_FLAGCARRIER_NAME 14 +#define CG_FLAGCARRIER_LOCATION 15 +#define CG_FLAGCARRIER_STATUS 16 +#define CG_FLAGCARRIER_WEAPON 17 +#define CG_FLAGCARRIER_POWERUP 18 + +#define CG_PLAYER_ITEM 19 +#define CG_PLAYER_SCORE 20 + +#define CG_BLUE_FLAGHEAD 21 +#define CG_BLUE_FLAGSTATUS 22 +#define CG_BLUE_FLAGNAME 23 +#define CG_RED_FLAGHEAD 24 +#define CG_RED_FLAGSTATUS 25 +#define CG_RED_FLAGNAME 26 + +#define CG_BLUE_SCORE 27 +#define CG_RED_SCORE 28 +#define CG_RED_NAME 29 +#define CG_BLUE_NAME 30 +#define CG_HARVESTER_SKULLS 31 // only shows in harvester +#define CG_ONEFLAG_STATUS 32 // only shows in one flag +#define CG_PLAYER_LOCATION 33 +#define CG_TEAM_COLOR 34 +#define CG_CTF_POWERUP 35 + +#define CG_AREA_POWERUP 36 +#define CG_AREA_LAGOMETER 37 // painted with old system +#define CG_PLAYER_HASFLAG 38 +#define CG_GAME_TYPE 39 // not done + +#define CG_SELECTEDPLAYER_ARMOR 40 +#define CG_SELECTEDPLAYER_HEALTH 41 +#define CG_PLAYER_STATUS 42 +#define CG_FRAGGED_MSG 43 // painted with old system +#define CG_PROXMINED_MSG 44 // painted with old system +#define CG_AREA_FPSINFO 45 // painted with old system +#define CG_AREA_SYSTEMCHAT 46 // painted with old system +#define CG_AREA_TEAMCHAT 47 // painted with old system +#define CG_AREA_CHAT 48 // painted with old system +#define CG_GAME_STATUS 49 +#define CG_KILLER 50 +#define CG_PLAYER_ARMOR_ICON2D 51 +#define CG_PLAYER_AMMO_ICON2D 52 +#define CG_ACCURACY 53 +#define CG_ASSISTS 54 +#define CG_DEFEND 55 +#define CG_EXCELLENT 56 +#define CG_IMPRESSIVE 57 +#define CG_PERFECT 58 +#define CG_GAUNTLET 59 +#define CG_SPECTATORS 60 +#define CG_TEAMINFO 61 +#define CG_VOICE_HEAD 62 +#define CG_VOICE_NAME 63 +#define CG_PLAYER_HASFLAG2D 64 +#define CG_HARVESTER_SKULLS2D 65 // only shows in harvester +#define CG_CAPFRAGLIMIT 66 +#define CG_1STPLACE 67 +#define CG_2NDPLACE 68 +#define CG_CAPTURES 69 + + +//Makro - for SSG crosshair selection +#define UI_SSG_CROSSHAIR 150 + +#define UI_OWNERDRAW_BASE 200 +#define UI_HANDICAP 200 +#define UI_EFFECTS 201 +#define UI_PLAYERMODEL 202 +#define UI_CLANNAME 203 +#define UI_CLANLOGO 204 +#define UI_GAMETYPE 205 +#define UI_MAPPREVIEW 206 +#define UI_SKILL 207 +#define UI_BLUETEAMNAME 208 +#define UI_REDTEAMNAME 209 +#define UI_BLUETEAM1 210 +#define UI_BLUETEAM2 211 +#define UI_BLUETEAM3 212 +#define UI_BLUETEAM4 213 +#define UI_BLUETEAM5 214 +#define UI_REDTEAM1 215 +#define UI_REDTEAM2 216 +#define UI_REDTEAM3 217 +#define UI_REDTEAM4 218 +#define UI_REDTEAM5 219 +#define UI_NETSOURCE 220 +#define UI_NETMAPPREVIEW 221 +#define UI_NETFILTER 222 +#define UI_TIER 223 +#define UI_OPPONENTMODEL 224 +#define UI_TIERMAP1 225 +#define UI_TIERMAP2 226 +#define UI_TIERMAP3 227 +#define UI_PLAYERLOGO 228 +#define UI_OPPONENTLOGO 229 +#define UI_PLAYERLOGO_METAL 230 +#define UI_OPPONENTLOGO_METAL 231 +#define UI_PLAYERLOGO_NAME 232 +#define UI_OPPONENTLOGO_NAME 233 +#define UI_TIER_MAPNAME 234 +#define UI_TIER_GAMETYPE 235 +#define UI_ALLMAPS_SELECTION 236 +#define UI_OPPONENT_NAME 237 +#define UI_VOTE_KICK 238 +#define UI_BOTNAME 239 +#define UI_BOTSKILL 240 +#define UI_REDBLUE 241 +#define UI_CROSSHAIR 242 +#define UI_SELECTEDPLAYER 243 +#define UI_MAPCINEMATIC 244 +#define UI_NETGAMETYPE 245 +#define UI_NETMAPCINEMATIC 246 +#define UI_SERVERREFRESHDATE 247 +#define UI_SERVERMOTD 248 +#define UI_GLINFO 249 +#define UI_KEYBINDSTATUS 250 +#define UI_CLANCINEMATIC 251 +#define UI_MAP_TIMETOBEAT 252 +#define UI_JOINGAMETYPE 253 +#define UI_PREVIEWCINEMATIC 254 +#define UI_STARTMAPCINEMATIC 255 +#define UI_MAPS_SELECTION 256 + +#define VOICECHAT_GETFLAG "getflag" // command someone to get the flag +#define VOICECHAT_OFFENSE "offense" // command someone to go on offense +#define VOICECHAT_DEFEND "defend" // command someone to go on defense +#define VOICECHAT_DEFENDFLAG "defendflag" // command someone to defend the flag +#define VOICECHAT_PATROL "patrol" // command someone to go on patrol (roam) +#define VOICECHAT_CAMP "camp" // command someone to camp (we don't have sounds for this one) +#define VOICECHAT_FOLLOWME "followme" // command someone to follow you +#define VOICECHAT_RETURNFLAG "returnflag" // command someone to return our flag +#define VOICECHAT_FOLLOWFLAGCARRIER "followflagcarrier" // command someone to follow the flag carrier +#define VOICECHAT_YES "yes" // yes, affirmative, etc. +#define VOICECHAT_NO "no" // no, negative, etc. +#define VOICECHAT_ONGETFLAG "ongetflag" // I'm getting the flag +#define VOICECHAT_ONOFFENSE "onoffense" // I'm on offense +#define VOICECHAT_ONDEFENSE "ondefense" // I'm on defense +#define VOICECHAT_ONPATROL "onpatrol" // I'm on patrol (roaming) +#define VOICECHAT_ONCAMPING "oncamp" // I'm camping somewhere +#define VOICECHAT_ONFOLLOW "onfollow" // I'm following +#define VOICECHAT_ONFOLLOWCARRIER "onfollowcarrier" // I'm following the flag carrier +#define VOICECHAT_ONRETURNFLAG "onreturnflag" // I'm returning our flag +#define VOICECHAT_INPOSITION "inposition" // I'm in position +#define VOICECHAT_IHAVEFLAG "ihaveflag" // I have the flag +#define VOICECHAT_BASEATTACK "baseattack" // the base is under attack +#define VOICECHAT_ENEMYHASFLAG "enemyhasflag" // the enemy has our flag (CTF) +#define VOICECHAT_STARTLEADER "startleader" // I'm the leader +#define VOICECHAT_STOPLEADER "stopleader" // I resign leadership +#define VOICECHAT_TRASH "trash" // lots of trash talk +#define VOICECHAT_WHOISLEADER "whoisleader" // who is the team leader +#define VOICECHAT_WANTONDEFENSE "wantondefense" // I want to be on defense +#define VOICECHAT_WANTONOFFENSE "wantonoffense" // I want to be on offense +#define VOICECHAT_KILLINSULT "kill_insult" // I just killed you +#define VOICECHAT_TAUNT "taunt" // I want to taunt you +#define VOICECHAT_DEATHINSULT "death_insult" // you just killed me +#define VOICECHAT_KILLGAUNTLET "kill_gauntlet" // I just killed you with the gauntlet +#define VOICECHAT_PRAISE "praise" // you did something good + + + +// RQ3 Stuff // + +/* +#define RQ3_MAIN_BAR_COLOR 0 0 .1 .95 +#define RQ3_MAIN_BAR_COLOR2 1 1 1 1 +#define RQ3_MAIN_HINT_COLOR .75 .75 1 .75 +*/ + +#define RQ3_MAIN_BAR_COLOR 0 0 0 1 +#define RQ3_MAIN_BAR_COLOR2 .5 .5 .5 1 +//#define RQ3_MAIN_HINT_COLOR .75 .75 .75 1 +#define RQ3_MAIN_HINT_COLOR .9 .9 .9 0 + +/* old colors, if you like them more +#define RQ3_MAIN_BAR_COLOR 0 0 0 1 +#define RQ3_MAIN_BAR_COLOR2 1 0 0 1 +#define RQ3_MAIN_HINT_COLOR 1 .5 0 .75 +*/ + +#define RQ3_MAIN_TEXTSIZE .28 +#define RQ3_MENU_OVERLAY_COLOR 0 0 0 .5 +#define RQ3_MAIN_FOCUSCOLOR 1 .75 0 1 + +//Ingame stuff + +#define Ingame_Color1 1 .75 0 0 +//#define Ingame_Color2 1 .75 0 .25 +#define Ingame_Color2 1 .75 0 0 + +#define Ingame_TextColor 1 1 1 1 +#define Ingame_BorderColor1 0 0 0 0 +//#define Ingame_BorderColor2 .35 .35 .35 1 +#define Ingame_BorderColor2 .35 .35 .35 0 +//#define Ingame_HintColor .75 .75 1 1 +//#define Ingame_HintColor .75 .75 .75 1 +#define Ingame_HintColor .9 .9 .9 0 + + +#define Ig_Window_Color 0 0 0 .8 +#define Ig_Window_Color2 .5 .5 .5 .25 +#define Ig_Window_BorderColor .5 .5 .5 1 +#define Ig_Window_TitleColor .2 .2 .2 1 + +#define Ig_Sub_Color1 1 1 1 0 +//#define Ig_Sub_Color2 1 .75 0 .2 +#define Ig_Sub_Color2 .75 .75 1 .25 +#define Ig_Sub_TextColor 1 1 1 1 +#define Ig_Sub_BorderColor1 .5 .5 .5 0 +#define Ig_Sub_BorderColor2 .35 .35 .35 0 +#define Ig_Sub_HintColor .75 .75 1 1 + +#define Ig_Setup_TabColor .75 .75 .75 1 + +#define Ig_ShadowSize 12 \ No newline at end of file diff --git a/reaction/uifiles/menus.txt b/reaction/uifiles/menus.txt new file mode 100644 index 00000000..15b56eaf --- /dev/null +++ b/reaction/uifiles/menus.txt @@ -0,0 +1,32 @@ +{ + // MENU DEFS // + + loadMenu { "ui/main.menu" } + + loadMenu { "ui/joinserver.menu" } + loadMenu { "ui/specify.menu" } + loadMenu { "ui/serverinfo.menu" } + loadMenu { "ui/findplayer.menu" } + loadMenu { "ui/createfavorite.menu" } + + loadMenu { "ui/createserver.menu" } + + loadMenu { "ui/options.menu" } + loadMenu { "ui/player.menu" } + loadMenu { "ui/setup.menu" } + loadMenu { "ui/controls.menu" } + loadMenu { "ui/cdkey.menu" } + loadMenu { "ui/system.menu" } + loadMenu { "ui/credit.menu" } + loadMenu { "ui/connect.menu" } + loadMenu { "ui/password.menu" } + + loadMenu { "ui/mod.menu" } + + loadMenu { "ui/demo.menu" } + + loadMenu { "ui/error.menu" } + + loadMenu { "ui/quit.menu" } + +} diff --git a/reaction/uifiles/min_hud.menu b/reaction/uifiles/min_hud.menu new file mode 100644 index 00000000..08b45b15 --- /dev/null +++ b/reaction/uifiles/min_hud.menu @@ -0,0 +1,674 @@ +#include "ui/menudef.h" + +// team menu +// +// defines from ui_shared.h + +{ + assetGlobalDef { + cursor "ui/assets/3_cursor2" // cursor + gradientBar "ui/assets/gradientbar2.tga" // gradient bar + fadeClamp 1.0 // sets the fadeup alpha + fadeCycle 1 // how often fade happens in milliseconds + fadeAmount 0.1 // amount to adjust alpha per cycle + + shadowX 5 // x amount for shadow offset + shadowY 5 // y amount for shadow offset + shadowColor 0.1 0.1 0.1 0.25 // shadow color + + font "fonts/impact.ttf" 16 // font + smallFont "fonts/impact.ttf" 12 // font + bigFont "fonts/impact.ttf" 20 // font + + + } + + + + + + + // SELECTED PLAYER // + + menuDef { + name "SelectedPlayer" + fullScreen MENU_FALSE + visible 1 + rect 0 390 222 64 + ownerdrawflag CG_SHOW_ANYTEAMGAME + + + itemDef { + name "b" + rect 0 0 222 64 + style 4 + border 1 + bordersize 1 + bordercolor .5 .5 .5 1 + visible 1 + ownerdrawflag CG_SHOW_TEAMINFO + } + itemDef { + name "b" + rect 0 40 222 24 + style 4 + border 1 + bordersize 1 + bordercolor .5 .5 .5 1 + visible 1 + ownerdrawflag CG_SHOW_NOTEAMINFO + } + + + itemDef { + name "b" + rect 0 4 221 64 + visible 1 + textscale .2 + textaligny 10 + textalignx 0 + forecolor 1 1 1 1 + ownerdrawflag CG_SHOW_TEAMINFO + ownerdraw CG_TEAMINFO + } + + + itemDef { + name "b" + rect 2 41 20 20 + visible 1 + ownerdrawflag CG_SHOW_NOTEAMINFO + ownerdraw CG_SELECTEDPLAYER_HEAD + } + itemDef { + name "b" + rect 21 44 16 16 + visible 1 + decoration + ownerdrawflag CG_SHOW_NOTEAMINFO + ownerdraw CG_SELECTEDPLAYER_STATUS + } + + + itemDef { + name "b" + rect 41 43 35 15 + textscale 0.2125 + textstyle 3 + forecolor 1 1 1 1 + visible 1 + decoration + ownerdrawflag CG_SHOW_NOTEAMINFO + ownerdraw CG_SELECTEDPLAYER_NAME + } + + /* + itemDef { + name "b" + rect 90 43 45 15 + textscale 0.2125 + textstyle 3 + forecolor 1 1 1 1 + visible 1 + decoration + ownerdrawflag CG_SHOW_NOTEAMINFO + ownerdraw CG_SELECTEDPLAYER_LOCATION + } + + */ + + + } + + + // PLAYER STATUS // + + menuDef { + name "playerStatus" + fullScreen MENU_FALSE + visible MENU_TRUE + rect 142 455 80 24 + + itemDef { + name "playerRect" + rect 1 1 78 22 + style 3 + background hudalert_good + visible 1 + ownerdrawflag CG_SHOW_IF_PLAYER_HAS_FLAG + } + + itemDef { + name "playerStatusRect" + style 4 + rect 0 0 80 24 + border 1 + bordersize 1 + bordercolor .5 .5 .5 1 + visible 1 + } + + + itemDef { + name "playeritem" + rect 5 4 16 16 + visible 1 + decoration + ownerdraw CG_PLAYER_ITEM + } + + itemDef { + name "CTFPOWERUP" + rect 25 4 16 16 + visible 1 + decoration + ownerdraw CG_CTF_POWERUP + } + + itemDef { + name "flag" + rect 45 4 16 16 + visible 1 + decoration + ownerdraw CG_PLAYER_HASFLAG2D + ownerdrawflag CG_SHOW_IF_PLAYER_HAS_FLAG + + } + + itemDef { + name "skulls" + rect 39 -14 40 32 + textaligny 4 + textalignx 0 + visible 1 + textscale .25 + decoration + textstyle 3 + ownerdraw CG_HARVESTER_SKULLS2D + } + + } + + // POWERUP AREA // + + menuDef { + name "powerup area" + fullScreen MENU_FALSE + visible MENU_TRUE + rect 0 455 141 24 + + + itemDef { + name "powerRect" + visible 1 + style 4 + rect 0 0 35 24 + } + itemDef { + name "powerRect" + visible 1 + style 4 + rect 70 0 35 24 + } + + itemDef { + name "powerRect" + visible 1 + style 4 + border 1 + bordersize 1 + bordercolor .5 .5 .5 1 + rect 0 0 141 24 + } + + + + itemDef { + name "powerupArea" + rect 2 3 18 18 + textscale .25 + visible 1 + decoration + ownerdraw CG_AREA_POWERUP + special 18 // spacing + align HUD_HORIZONTAL + } + + + } + + + + // AMMO // + + menuDef { + name "Ammo" + fullScreen MENU_FALSE + visible MENU_TRUE + rect 223 455 64 24 + + + itemDef { + name "ammoRect" + visible 1 + style 4 + border 1 + bordersize 1 + bordercolor .5 .5 .5 1 + rect 0 0 64 24 + } + + + itemDef { + name "a" + rect 30 1 24 19 + visible 1 + textstyle 3 + decoration + textscale .333 + forecolor 1 1 1 1 + ownerdraw CG_PLAYER_AMMO_VALUE + addColorRange -999 5 1 0 0 1 + addColorRange 6 999 1 .75 0 1 + } + + itemDef { + name "a" + rect 5 2 20 20 + visible 1 + decoration + ownerdraw CG_PLAYER_AMMO_ICON2D + } + + } + + + + + + + // PLAYER // + + menuDef { + name "Player" + fullScreen MENU_FALSE + visible MENU_TRUE + rect 288 455 64 24 + + itemDef { + name "playerRect" + rect 1 1 62 23 + style 3 + background hudalert + visible 1 + ownerdrawflag CG_SHOW_HEALTHCRITICAL + } + + itemDef { + name "playerRect" + rect 0 0 64 24 + style 4 + visible 1 + border 1 + bordersize 1 + bordercolor .5 .5 .5 1 + } + + + itemDef { + name "healthok" + rect 30 1 24 19 + visible 1 + textstyle 3 + decoration + forecolor 1 1 1 1 + textscale .333 + ownerdraw CG_PLAYER_HEALTH + addColorRange -999 25 1 0 0 1 + addColorRange 26 100 1 .75 0 1 + addColorRange 101 999 1 1 1 1 + } + + itemDef { + name "b" + rect 2 1 22 22 + visible 1 + decoration + ownerdraw CG_PLAYER_HEAD + } + } + + + + + + + + // ARMOR // + + menuDef { + name "Armor" + fullScreen MENU_FALSE + visible MENU_TRUE + rect 353 455 64 24 + + + itemDef { + name "armorRect" + rect 0 0 64 24 + visible 1 + style 4 + border 1 + bordersize 1 + bordercolor .5 .5 .5 1 + } + + itemDef { + name "armor" + rect 5 -8 20 20 + visible 1 + decoration + ownerdraw CG_PLAYER_ARMOR_ICON2D + } + + itemDef { + name "armor2" + textstyle 3 + rect 30 1 24 19 + visible 1 + decoration + textscale .333 + ownerdraw CG_PLAYER_ARMOR_VALUE + addColorRange -999 25 .67 0 0 1 + addColorRange 26 100 1 .75 0 1 + addColorRange 101 999 .75 .75 .75 1 + } + } + + + + + + + // TEAMSCORE // + + menuDef { + name "teamScore" + fullScreen MENU_FALSE + visible MENU_TRUE + rect 418 455 150 24 + ownerdrawflag CG_SHOW_ANYTEAMGAME + + itemDef { + name "teamRect" + rect 53 1 47 22 + style 3 + background hudalert_blue + visible 1 + ownerdrawflag CG_SHOW_BLUE_TEAM_HAS_REDFLAG + } + + itemDef { + name "teamRect" + rect 100 1 50 22 + style 3 + background hudalert_red + visible 1 + ownerdrawflag CG_SHOW_RED_TEAM_HAS_BLUEFLAG + } + + itemDef { + name "teamScoreRect" + visible 1 + rect 0 0 150 24 + border 1 + bordersize 1 + bordercolor .5 .5 .5 1 + style 4 + } + + itemDef { + name "f" + rect 55 5 16 16 + visible 1 + bordercolor 1 1 1 .75 + decoration + style 3 + background "ui/assets/bluechip.tga" + } + itemDef { + name "f" + rect 55 5 16 16 + visible 1 + bordercolor 1 1 1 .75 + decoration + style 3 + ownerdrawflag CG_SHOW_HARVESTER + background "icons/skull_blue.tga" + } + + itemDef { + name "blueflag" + rect 55 5 16 16 + visible 1 + decoration + ownerdrawflag CG_SHOW_CTF + ownerdraw CG_BLUE_FLAGSTATUS + } + itemDef { + name "playerScore" + rect 5 18 40 12 + visible 1 + textstyle 3 + decoration + forecolor 1 1 1 1 + textscale .25 + text "" + ownerdraw CG_CAPFRAGLIMIT + } + + itemDef { + name "oneflagstatus" + rect 34 5 16 16 + visible 1 + decoration + ownerdraw CG_ONEFLAG_STATUS + } + + itemDef { + name "r" + rect 71 6 18 12 + textstyle 3 + visible 1 + decoration + forecolor .25 .25 1 1 + textscale 0.25 + ownerdraw CG_BLUE_SCORE + } + + itemDef { + name "f" + rect 110 5 16 16 + visible 1 + bordercolor 1 1 1 1 + decoration + style 3 + background "ui/assets/redchip.tga" + } + + itemDef { + name "f" + rect 110 5 16 16 + visible 1 + bordercolor 1 1 1 1 + decoration + style 3 + ownerdrawflag CG_SHOW_HARVESTER + background "icons/skull_red.tga" + } + + itemDef { + name "f" + rect 110 5 16 16 + visible 1 + decoration + ownerdrawflag CG_SHOW_CTF + ownerdraw CG_RED_FLAGSTATUS + } + + + itemDef { + name "r" + rect 126 6 18 12 + textstyle 3 + visible 1 + decoration + forecolor 1 0 0 1 + textscale 0.25 + ownerdraw CG_RED_SCORE + } + } + + // TEAMSCORE // + + menuDef { + name "teamScore" + fullScreen MENU_FALSE + visible MENU_TRUE + rect 418 455 150 24 + ownerdrawflag CG_SHOW_ANYNONTEAMGAME + + + itemDef { + name "teamScoreRect" + visible 1 + rect 0 0 150 24 + border 1 + bordersize 1 + bordercolor .5 .5 .5 1 + style 4 + } + + + itemDef { + name "playerScore" + rect 8 18 40 0 + visible 1 + textstyle 3 + decoration + forecolor 1 1 1 1 + textscale .25 + text "" + ownerdraw CG_CAPFRAGLIMIT + } + + + + + itemDef { + name "r" + rect 40 18 18 12 + textstyle 3 + text "1st:" + visible 1 + decoration + forecolor .25 .25 1 1 + textscale 0.25 + ownerdraw CG_1STPLACE + } + + + itemDef { + name "r" + rect 105 18 18 12 + textstyle 3 + text "2nd:" + visible 1 + decoration + forecolor 1 0 0 1 + textscale 0.25 + ownerdraw CG_2NDPLACE + } + } + + // PLAYERSCORE // + + menuDef { + name "playerScore" + fullScreen MENU_FALSE + visible MENU_TRUE + rect 569 455 70 24 + + itemDef { + name "playerScoreRect" + visible 1 + rect 0 0 70 24 + border 1 + bordersize 1 + bordercolor .5 .5 .5 1 + style 4 + } + + + itemDef { + name "playerScore" + rect 4 6 75 12 + textstyle 3 + visible 1 + decoration + forecolor 1 1 1 1 + textscale .25 + ownerdraw CG_PLAYER_SCORE + } + + } + + + + + + + + + menuDef { + name "voiceMenu" + fullScreen MENU_FALSE + visible MENU_FALSE + rect 5 5 100 100 + + + itemDef { + name "voiceMenuRect" + style 4 + rect 2 2 50 50 + border 1 + bordersize 1 + bordercolor .5 .5 .5 1 + visible 1 + } + + itemDef { + name "b" + rect 2 2 50 50 + visible 1 + decoration + ownerdraw CG_VOICE_HEAD + } + + + itemDef { + name "b" + rect 2 55 50 12 + visible 1 + decoration + textscale .25 + textalign 0 + textalignx 0 + textaligny 12 + ownerdraw CG_VOICE_NAME + } + + + } + + diff --git a/reaction/uifiles/mod.menu b/reaction/uifiles/mod.menu new file mode 100644 index 00000000..2e6c36d4 --- /dev/null +++ b/reaction/uifiles/mod.menu @@ -0,0 +1,264 @@ +#include "ui/menudef.h" + +{ + + menuDef { + name "mod" + background "rq3-ta-menuback" // Makro: replace "rq3-ta-menuback" with "rq3-menuback" + // to use the current background + fullScreen MENU_TRUE + visible MENU_TRUE // Visible on open + focusColor RQ3_MAIN_FOCUSCOLOR // Menu focus color for text and items + + + onOpen { + uiScript LoadMods ; + play "sound/misc/menu1.wav" ; + } + + onEsc { close mod ; open main } + + +//================= +// RQ3 stuff +//================= + + + itemdef { + name overlay + style 1 + forecolor 0 0 0 1 + backcolor RQ3_MENU_OVERLAY_COLOR + rect 0 58 640 360 + visible 1 + decoration + } + + itemDef { + name top_bar //rq3: Top bar + rect 0 0 640 56 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name top_bar //rq3: Top bar + rect 0 58 640 12 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-main-shadow-1" + decoration + visible 1 + } + + itemDef { + name top_bar2 //rq3: Top bar - border + rect 0 56 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar //rq3: bottom bar + rect 0 420 640 60 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar2 //rq3: bottom bar - border + rect 0 418 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemdef { + name "mods_icon" + style WINDOW_STYLE_SHADER + rect 8 8 48 48 + background "menu/art/rq3-menu-mods.tga" + decoration + visible 1 + } + + itemdef { + name "mods_title" + style WINDOW_STYLE_SHADER + rect 64 12 256 32 + background "menu/art/rq3-title-mods.tga" + decoration + visible 1 + } + +//================= +// Buttons, lists +//================= + + +//Window + + itemdef { + rect 170 100 300 240 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + shadowStyle 1 + bordercolor Ig_Window_BorderColor + decoration + } + + itemdef { + text "Available mods:" + textscale .25 + type 0 + style WINDOW_STYLE_EMPTY + rect 182 108 276 24 + forecolor 1 1 1 1 + textstyle 0 + textalign 0 + textalignx 8 + textaligny 16 + decoration + visible 1 + } + +//Mod list + + itemdef { + name "modlist" + type ITEM_TYPE_LISTBOX + rect 182 132 276 188 + style WINDOW_STYLE_FILLED + backcolor 0 0 0 .65 + border 1 + bordersize 1 + bordercolor .25 .25 .25 1 + elementtype LISTBOX_TEXT + elementwidth 160 + elementheight 20 + textscale .25 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + outlinecolor .75 .75 1 .25 + feeder FEEDER_MODS + columns 1 4 40 40 + visible 1 + onFocus { show list_hint ; timeFade list_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade list_hint forecolor .9 .9 .9 0 0 250 } + doubleclick { close mod; uiScript RunMod } + } + + //Scrollbar separator + itemdef { + rect 440 132 18 188 + style WINDOW_STYLE_EMPTY + border 1 + bordersize 1 + bordercolor .25 .25 .25 1 + decoration + visible 1 + } + + itemdef { + name list_hint + text "Select a mod from the list" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Load mod + + itemdef { + name "btn_load" + style WINDOW_STYLE_SHADER + rect 560 432 64 32 + type 1 + background "menu/art/rq3-menu-go.tga" + action { close mod; uiScript Runmod ; } + onFocus { setbackground "menu/art/rq3-menu-go-focus-anim" ; show load_hint ; + timeFade load_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { setbackground "menu/art/rq3-menu-go.tga" ; + timeFade load_hint forecolor .9 .9 .9 0 0 250 } + visible 1 + } + + + itemdef { + name load_hint + text "Load the selected mod" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Back + + itemdef { + name "btn_back" + style WINDOW_STYLE_SHADER + rect 12 432 32 32 + type 1 + background "menu/art/rq3-menu-back.tga" + action { close mod; open main ; } + onFocus { setbackground "menu/art/rq3-menu-back-focus-anim" ; + show back_hint ; timeFade back_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { setbackground "menu/art/rq3-menu-back.tga" ; + timeFade back_hint forecolor .9 .9 .9 0 0 250 } + visible 1 + } + + itemdef { + name back_hint + text "Go back to main menu" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + + +} +} \ No newline at end of file diff --git a/reaction/uifiles/options.menu b/reaction/uifiles/options.menu new file mode 100644 index 00000000..a87fa0db --- /dev/null +++ b/reaction/uifiles/options.menu @@ -0,0 +1,944 @@ +#include "ui/menudef.h" +#define RQ3_Option_Color .75 .75 .75 1 + +{ + + menuDef { + name "options_menu" + background "rq3-ta-menuback" // Makro: replace "rq3-ta-menuback" with "rq3-menuback" + // to use the old background + fullScreen MENU_TRUE + visible MENU_TRUE // Visible on open + focusColor RQ3_MAIN_FOCUSCOLOR // Menu focus color for text and items + + onOpen { play "sound/misc/menu1.wav" } + onEsc { close options_menu ; open setup_menu } + + +//================= +// RQ3 stuff +//================= + + + itemDef { + name top_bar //rq3: Top bar + rect 0 0 640 56 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name top_bar //rq3: Top bar + rect 0 58 640 12 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-main-shadow-1" + decoration + visible 1 + } + + itemDef { + name top_bar2 //rq3: Top bar - border + rect 0 56 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar //rq3: bottom bar + rect 0 420 640 60 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar2 //rq3: bottom bar - border + rect 0 418 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemdef { + name "options_icon" + style WINDOW_STYLE_SHADER + rect 8 8 48 48 + background "menu/art/rq3-setup-options.tga" + decoration + visible 1 + } + + itemdef { + name "options_title" + style WINDOW_STYLE_SHADER + rect 64 12 256 32 + background "menu/art/rq3-title-setup.tga" + decoration + visible 1 + } + + itemdef { + name overlay + style 1 + forecolor 0 0 0 1 + backcolor RQ3_MENU_OVERLAY_COLOR + rect 0 58 640 360 + visible 1 + decoration + } + + +//================= +// Buttons, lists +//================= + + +//Background window + + //Options window + + itemdef { + rect 48 72 256 20 + style WINDOW_STYLE_GRADIENT + border WINDOW_BORDER_KCGRADIENT + bordersize 1 + backcolor 0 0 .2 .75 + bordercolor .75 .75 .75 1 + text "Game options" + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .25 + textalign 0 + textalignx 76 + textaligny 14 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemdef { + rect 48 90 256 304 + style WINDOW_STYLE_SHADER + background "ui/assets/fake_gradient_75" + border WINDOW_BORDER_KCGRADIENT + bordersize 2 + backcolor 0 0 0 .75 + bordercolor .75 .75 .75 1 + visible 1 + decoration + } + + itemdef { + style WINDOW_STYLE_SHADER + rect 96 68 24 24 + background "menu/art/rq3-setup-options.tga" + decoration + visible 1 + } + + //Crosshairs window + + itemdef { + rect 340 72 256 20 + style WINDOW_STYLE_GRADIENT + border WINDOW_BORDER_KCGRADIENT + bordersize 1 + backcolor 0 0 .2 .75 + bordercolor .75 .75 .75 1 + text "Crosshair options" + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .25 + textalign 0 + textalignx 76 + textaligny 14 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemdef { + rect 340 90 256 160 + style WINDOW_STYLE_SHADER + background "ui/assets/fake_gradient_75" + border WINDOW_BORDER_KCGRADIENT + bordersize 2 + backcolor 0 0 0 .75 + bordercolor .75 .75 .75 1 + visible 1 + decoration + } + + itemdef { + style WINDOW_STYLE_SHADER + rect 388 68 24 24 + background "menu/art/rq3-menu-focus" + forecolor 1 1 1 0 + decoration + visible 1 + } + + +// Page 1 // + +//Simple items + + itemdef { + name opt_simpleitems + type ITEM_TYPE_YESNO + text "Simple Items:" + cvar "cg_simpleItems" + rect 56 100 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 144 + textaligny 20 + textscale .25 + forecolor RQ3_Option_Color + visible 1 + onFocus { show hint_simpleitems ; timeFade hint_simpleitems forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade hint_simpleitems forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name hint_simpleitems + text "Display weapons, items and ammo as 2D sprites" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Low quality sky + + itemdef { + name opt_fastsky + type ITEM_TYPE_YESNO + text "Low quality sky:" + cvar "r_fastsky" + rect 56 120 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 144 + textaligny 20 + textscale .25 + forecolor RQ3_Option_Color + visible 1 + onFocus { show hint_fastsky ; timeFade hint_fastsky forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade hint_fastsky forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name hint_fastsky + text "Use a solid color sky (better performance, lower quality)" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Ejecting brass + + itemdef { + name opt_brass + type ITEM_TYPE_MULTI + text "Ejecting Brass:" + cvar "cg_brassTime" + cvarFloatList { "High" 2500 "Med" 1250 "Off" 0 } + rect 56 140 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 144 + textaligny 20 + textscale .25 + forecolor RQ3_Option_Color + visible 1 + onFocus { show hint_brass ; timeFade hint_brass forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade hint_brass forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name hint_brass + text "Change the amount of ejecting brass" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Wall marks + + itemdef { + name opt_wmarks + type ITEM_TYPE_YESNO + text "Wall marks:" + cvar "cg_marks" + rect 56 160 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 144 + textaligny 20 + textscale .25 + forecolor RQ3_Option_Color + visible 1 + onFocus { show hint_wmarks ; timeFade hint_wmarks forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade hint_wmarks forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name hint_wmarks + text "Enable wall marks" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Dynamic lights + + itemdef { + name opt_dlight + type ITEM_TYPE_YESNO + text "Dynamic lights:" + cvar "r_dynamiclight" + rect 56 180 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 144 + textaligny 20 + textscale .25 + forecolor RQ3_Option_Color + visible 1 + onFocus { show hint_dlight ; timeFade hint_dlight forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade hint_dlight forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name hint_dlight + text "Enable dynamic lighting" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Identify target + + itemdef { + name opt_idtarget + type ITEM_TYPE_YESNO + text "Identify Target:" + cvar "cg_drawCrosshairNames" + rect 56 200 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 144 + textaligny 20 + textscale .25 + forecolor RQ3_Option_Color + visible 1 + onFocus { show hint_idtarget ; timeFade hint_idtarget forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade hint_idtarget forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name hint_idtarget + text "Enable crosshair target identification" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//V-SYNC + + itemdef { + name opt_vsync + type ITEM_TYPE_YESNO + text "Sync Every Frame:" + cvar "r_finish" + rect 56 220 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 144 + textaligny 20 + textscale .25 + forecolor RQ3_Option_Color + visible 1 + onFocus { show hint_vsync ; timeFade hint_vsync forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade hint_vsync forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name hint_vsync + text "Enable V-SYNC (recommended off)" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Force player models + + itemdef { + name opt_fmodel + type ITEM_TYPE_YESNO + text "Force Player Models:" + cvar "cg_forceModel" + rect 56 240 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 144 + textaligny 20 + textscale .25 + forecolor RQ3_Option_Color + visible 1 + onFocus { show hint_fmodel ; timeFade hint_fmodel forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade hint_fmodel forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name hint_fmodel + text "Force player models to your own" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Draw team overlay + + itemdef { + name opt_toverlay + type ITEM_TYPE_YESNO + text "Draw Team Overlay:" + cvar "cg_drawTeamOverlay" + rect 56 260 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 144 + textaligny 20 + textscale .25 + forecolor RQ3_Option_Color + visible 1 + onFocus { show hint_toverlay ; timeFade hint_toverlay forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade hint_toverlay forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name hint_toverlay + text "Choose team overlay position" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Allow download from server + + itemdef { + name opt_allowdl + type ITEM_TYPE_YESNO + text "Allow Download:" + cvar "cl_allowDownload" + rect 56 280 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 144 + textaligny 20 + textscale .25 + forecolor RQ3_Option_Color + visible 1 + onFocus { show hint_allowdl ; timeFade hint_allowdl forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade hint_allowdl forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name hint_allowdl + text "Allow automatic downloads from server" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Muzzle flash + + itemdef { + name opt_muzzle + type ITEM_TYPE_YESNO + text "Muzzle Flash:" + cvar "cg_RQ3_flash" + rect 56 300 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 144 + textaligny 20 + textscale .25 + forecolor RQ3_Option_Color + visible 1 + onFocus { show hint_muzzle ; timeFade hint_muzzle forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade hint_muzzle forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name hint_muzzle + text "Enable weapon muzzle flashes" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Pain blends + + itemdef { + name opt_painblend + type ITEM_TYPE_YESNO + text "Pain Blends:" + cvar "cg_RQ3_painBlend" + rect 56 320 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 144 + textaligny 20 + textscale .25 + forecolor RQ3_Option_Color + visible 1 + onFocus { show hint_painblend ; timeFade hint_painblend forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade hint_painblend forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name hint_painblend + text "Enable screen pain blends" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Announcer + + itemdef { + name opt_announcer + type ITEM_TYPE_YESNO + text "Announcer:" + cvar "cg_RQ3_announcer" + rect 56 340 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 144 + textaligny 20 + textscale .25 + forecolor RQ3_Option_Color + visible 1 + onFocus { show hint_announcer ; timeFade hint_announcer forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade hint_announcer forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name hint_announcer + text "Enable Quake 3 announcer" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Impact effects + + itemdef { + name opt_impactfx + type ITEM_TYPE_YESNO + text "Impact Effects:" + cvar "cg_RQ3_impactEffects" + rect 56 360 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 144 + textaligny 20 + textscale .25 + forecolor RQ3_Option_Color + visible 1 + onFocus { show hint_impactfx ; timeFade hint_impactfx forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade hint_impactfx forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name hint_impactfx + text "Enable visual projectile impact effects" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Page 2 + +//Crosshair + + itemdef { + name opt_xhair + text "Crosshair:" + ownerdraw UI_CROSSHAIR + rect 496 100 24 24 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .25 + forecolor RQ3_Option_Color + visible 1 + onFocus { show hint_xhair ; timeFade hint_xhair forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade hint_xhair forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name hint_xhair + text "Change regular crosshair style" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Crosshair size + + itemdef { + name opt_xhairsize + type ITEM_TYPE_MULTI + text "Crosshair Size:" + cvar "cg_crosshairSize" + cvarFloatList { "Small" 16 "Med" 24 "Big" 32 } + rect 352 120 256 20 + textalign ITEM_ALIGN_RIGHT + textalignx 144 + textaligny 20 + textscale .25 + forecolor RQ3_Option_Color + visible 1 + onFocus { show hint_xhairsize ; timeFade hint_xhairsize forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade hint_xhairsize forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name hint_xhairsize + text "Change the size of the regular crosshair" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//SSG Crosshair + + itemDef { + type ITEM_TYPE_SLIDER + text "Red:" + cvarfloat "cg_RQ3_ssgColorR" 1 0 1 + rect 368 160 192 20 + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 14 + textscale .225 + forecolor RQ3_Option_Color + visible 1 + onFocus { show hint_ssgcolor ; timeFade hint_ssgcolor forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade hint_ssgcolor forecolor .9 .9 .9 0 0 250 } + } + + itemDef { + type ITEM_TYPE_SLIDER + text "Green:" + cvarfloat "cg_RQ3_ssgColorG" 1 0 1 + rect 368 180 192 20 + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 14 + textscale .225 + forecolor RQ3_Option_Color + visible 1 + onFocus { show hint_ssgcolor ; timeFade hint_ssgcolor forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade hint_ssgcolor forecolor .9 .9 .9 0 0 250 } + } + + itemDef { + type ITEM_TYPE_SLIDER + text "Blue:" + cvarfloat "cg_RQ3_ssgColorB" 0 0 1 + rect 368 200 192 20 + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 14 + textscale .225 + forecolor RQ3_Option_Color + visible 1 + onFocus { show hint_ssgcolor ; timeFade hint_ssgcolor forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade hint_ssgcolor forecolor .9 .9 .9 0 0 250 } + } + + itemDef { + type ITEM_TYPE_SLIDER + text "Alpha:" + cvarfloat "cg_RQ3_ssgColorA" .75 0 1 + rect 368 220 192 20 + textalign ITEM_ALIGN_RIGHT + textalignx 64 + textaligny 14 + textscale .225 + forecolor RQ3_Option_Color + visible 1 + onFocus { show hint_ssgcolor ; timeFade hint_ssgcolor forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade hint_ssgcolor forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name hint_ssgcolor + text "Change the color of the SSG crosshair" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//SSG Crosshair Preview + + itemDef { + rect 400 268 144 108 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-ssg-background" + shadowStyle 1 + border 1 + bordersize 1 + bordercolor .5 .5 .5 1 + forecolor 1 1 1 1 + decoration + visible 1 + } + + itemDef { + rect 436 286 72 72 + ownerdraw UI_SSG_CROSSHAIR + style WINDOW_STYLE_EMPTY + decoration + visible 1 + //onFocus { show hint_ssgpic ; timeFade hint_ssgpic forecolor .9 .9 .9 1 0 250 } + //leaveFocus { timeFade hint_ssgpic forecolor .9 .9 .9 0 0 250 } + //action { play "sound/misc/menu1.wav" } + } + +/* + itemdef { + name hint_ssgpic + text "Click or use the arrows to change the SSG crosshair" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } +*/ + +//Prev crosshair + + itemDef { + rect 408 314 16 16 + style WINDOW_STYLE_SHADER + background "ui/assets/scrollbar_arrow_left" + type ITEM_TYPE_BUTTON + visible 1 + forecolor 1 1 1 .5 + onFocus { timefadeSelf forecolor 1 1 1 1 0 250 ; + show hint_ssgprev ; timeFade hint_ssgprev forecolor .9 .9 .9 1 0 250 } + leaveFocus { timefadeSelf forecolor 1 1 1 .5 0 250 ; + timeFade hint_ssgprev forecolor .9 .9 .9 0 0 250 } + action { play "sound/misc/menu1.wav" ; uiScript nextSSGCrosshair "-1" instant } + } + + itemdef { + name hint_ssgprev + text "Select the previous SSG crosshair" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Next crosshair + + itemDef { + rect 520 314 16 16 + style WINDOW_STYLE_SHADER + background "ui/assets/scrollbar_arrow_right" + type ITEM_TYPE_BUTTON + visible 1 + forecolor 1 1 1 .5 + onFocus { timefadeSelf forecolor 1 1 1 1 0 250 ; + show hint_ssgnext ; timeFade hint_ssgnext forecolor .9 .9 .9 1 0 250 } + leaveFocus { timefadeSelf forecolor 1 1 1 .5 0 250 ; + timeFade hint_ssgnext forecolor .9 .9 .9 0 0 250 } + action { play "sound/misc/menu1.wav" ; uiScript nextSSGCrosshair 1 instant } + } + + itemdef { + name hint_ssgnext + text "Select the next SSG crosshair" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Back + + itemdef { + name "btn_back" + style WINDOW_STYLE_SHADER + rect 12 432 32 32 + type ITEM_TYPE_BUTTON + background "menu/art/rq3-menu-back.tga" + action { close options_menu; open setup_menu ; } + onFocus { setbackground "menu/art/rq3-menu-back-focus-anim" ; + show hint_back ; timeFade hint_back forecolor .9 .9 .9 1 0 250 } + leaveFocus { setbackground "menu/art/rq3-menu-back.tga" ; + timeFade hint_back forecolor .9 .9 .9 0 0 250 } + visible 1 + } + + itemdef { + name hint_back + text "Go back to setup menu" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +} \ No newline at end of file diff --git a/reaction/uifiles/password.menu b/reaction/uifiles/password.menu new file mode 100644 index 00000000..95dd3a44 --- /dev/null +++ b/reaction/uifiles/password.menu @@ -0,0 +1,89 @@ +#include "ui/menudef.h" + +{ + // PASSWORD POPUP MENU // + + menuDef { + name "password_popmenu" + visible 0 + fullscreen 0 + rect 180 200 280 60 + focusColor RQ3_MAIN_FOCUSCOLOR // Menu focus color for text and items + style WINDOW_STYLE_EMPTY + border 1 + popup + onOpen { play "sound/misc/menu1.wav" ; setfocus passwordEntry } + onESC { close password_popmenu ; open joinserver } + + itemDef { + name window + rect 0 0 280 48 + style WINDOW_STYLE_FILLED + border 1 + borderSize 1 + bordercolor Ig_Window_BorderColor + backcolor Ig_Window_Color + shadowStyle 1 + visible 1 + decoration + } + + // PASSWORD // + + itemDef { + name password + text "Password:" + style 0 + decoration + textscale .25 + rect 0 14 80 20 + textalign ITEM_ALIGN_LEFT + textalignx 20 + textaligny 16 + forecolor 1 1 1 1 + visible 1 + } + + itemDef { + name passwordEntry + style WINDOW_STYLE_FILLED + text "" + textalign ITEM_ALIGN_LEFT + textalignx 4 + textaligny 14 + maxchars 20 + maxPaintChars 10 + textscale .25 + type ITEM_TYPE_EDITFIELD + cvar "password" + rect 100 14 120 20 + border 1 + bordersize 1 + bordercolor .25 .25 .25 1 + forecolor 1 1 1 1 + backcolor 1 1 1 .1 + visible 1 + onfocus { setcolor backcolor 1 1 1 .2 ; } + leavefocus { setcolor backcolor 1 1 1 .1 ; } + } + + // OK // + + itemDef { + text "Ok" + shortcutKey "O" + type ITEM_TYPE_BUTTON + textscale .25 + style WINDOW_STYLE_EMPTY + rect 240 14 60 20 + textalign 1 + textalignx 8 + textaligny 16 + forecolor 1 1 1 1 + visible 1 + action { play "sound/misc/menu1.wav" ; close password_popmenu ; open joinserver } + } + + + } +} diff --git a/reaction/uifiles/player.menu b/reaction/uifiles/player.menu new file mode 100644 index 00000000..e60d1b49 --- /dev/null +++ b/reaction/uifiles/player.menu @@ -0,0 +1,285 @@ +#include "ui/menudef.h" + +{ + + menuDef { + name "player_menu" + background "rq3-ta-menuback" // Makro: replace "rq3-ta-menuback" with "rq3-menuback" + // to use the current background + fullScreen MENU_TRUE + visible 0 // Visible on open + focusColor RQ3_MAIN_FOCUSCOLOR // Menu focus color for text and items + + + onOpen { uiScript update "ui_GetName" ; play "sound/misc/menu1.wav" } + onClose { uiScript update "ui_SetName" } + onEsc { close player_menu ; open setup_menu } + + +//================= +// RQ3 stuff +//================= + + + itemDef { + name top_bar //rq3: Top bar + rect 0 0 640 56 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name top_bar //rq3: Top bar + rect 0 58 640 12 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-main-shadow-1" + decoration + visible 1 + } + + itemDef { + name top_bar2 //rq3: Top bar - border + rect 0 56 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar //rq3: bottom bar + rect 0 420 640 60 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar2 //rq3: bottom bar - border + rect 0 418 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemdef { + name "player_icon" + style WINDOW_STYLE_SHADER + rect 8 8 48 48 + background "menu/art/rq3-setup-player.tga" + decoration + visible 1 + } + + itemdef { + name "player_title" + style WINDOW_STYLE_SHADER + rect 64 12 256 32 + background "menu/art/rq3-title-setup.tga" + decoration + visible 1 + } + + itemdef { + name overlay + style 1 + forecolor 0 0 0 1 + backcolor RQ3_MENU_OVERLAY_COLOR + rect 0 58 640 360 + visible 1 + decoration + } + +//================= +// Buttons, lists +//================= + + +//Player model display + + itemdef { + name "model_preview" + ownerdraw UI_PLAYERMODEL + style 1 + rect 0 80 240 320 + visible 1 + decoration + } + + +//Name edit field + + itemdef { + name "name_caption" + style 0 + text "Player name:" + rect 220 120 120 20 + textstyle 3 + textscale .28 + textalign 0 + textalignx 4 + textaligny 16 + forecolor 1 1 .75 1 + visible 1 + decoration + } + + itemdef { + name "namefield" + rect 220 140 232 20 + type ITEM_TYPE_EDITFIELD + style 1 + text "" + cvar "ui_Name" + backcolor 0 0 0 .1 + forecolor 1 1 1 1 + outlinecolor 1 1 1 .15 + border 1 + bordersize 1 + bordercolor .5 .5 .5 .75 + textstyle 0 + maxchars 20 + textscale .25 + textalign 0 + textalignx 4 + textaligny 16 + visible 1 + onFocus { setitemcolor namefield backcolor 0 0 0 .25 ; show name_hint ; + timeFade name_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { setitemcolor namefield backcolor 0 0 0 .1 ; + timeFade name_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name name_hint + text "Enter player name" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Player model selection + + itemdef { + name "headlist_caption" + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_EDITFIELD + text "Player model:" + cvar "model" + rect 220 210 120 20 + textstyle 3 + textscale .28 + textalign 0 + textalignx 4 + textaligny 16 + forecolor 1 1 .75 1 + visible 1 + decoration + } + + itemdef { + name "headlist_window" + rect 220 230 392 108 + style WINDOW_STYLE_FILLED + border 1 + bordersize 1 + bordercolor .5 .5 .5 .75 + backcolor 0 0 0 .1 + visible 1 + decoration + } + + itemdef { + name "headlist" + rect 230 240 372 88 + style 0 + type ITEM_TYPE_LISTBOX + forecolor 1 1 1 1 + outlinecolor 1 1 .1 1 + border 0 + bordersize 2 + bordercolor 1 1 .5 .5 + elementwidth 61 + elementheight 61 + elementtype LISTBOX_IMAGE + feeder FEEDER_Q3HEADS + horizontalscroll + visible 1 + //onfocus { setitemcolor headlist bordercolor 1 0 0 1 ; } + //leavefocus { setitemcolor headlist bordercolor 1 0 0 0 ; } + onFocus { setitemcolor headlist_window backcolor 0 0 0 .25 ; show headlist_hint ; + timeFade headlist_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { setitemcolor headlist_window backcolor 0 0 0 .1 ; + timeFade headlist_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name headlist_hint + text "Click to change player model" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Back + + itemdef { + name "btn_back" + style WINDOW_STYLE_SHADER + rect 12 432 32 32 + type 1 + visible 1 + background "menu/art/rq3-menu-back.tga" + action { close player_menu; open setup_menu ; } + onFocus { setbackground "menu/art/rq3-menu-back-focus-anim" ; + show back_hint ; timeFade back_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { setbackground "menu/art/rq3-menu-back.tga" ; + timeFade back_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name back_hint + text "Go back to setup menu" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +} \ No newline at end of file diff --git a/reaction/uifiles/quit.menu b/reaction/uifiles/quit.menu new file mode 100644 index 00000000..f8fb49b5 --- /dev/null +++ b/reaction/uifiles/quit.menu @@ -0,0 +1,94 @@ +#include "ui/menudef.h" + +{ + \\ QUIT POPUP MENU \\ + + menuDef { + name "quit_popmenu" + visible 0 + rect 170 180 300 100 + focusColor RQ3_MAIN_FOCUSCOLOR + popup + outOfBoundsClick + //onOpen { transition window 0 50 300 0 0 0 300 100 10 4 } + //onClose { transition window 0 0 300 100 0 50 300 0 10 4 } + onOpen { play "sound/misc/menu1.wav" } + onESC { close quit_popmenu ; open main } + + + itemDef { + name window + style WINDOW_STYLE_SHADER + background "ui/assets/fake_gradient_75" + rect 0 0 300 100 + border 4 + bordersize 2 + bordercolor 1 0 0 1 + //backcolor 0 0 0 .65 + visible 1 + decoration + } + + + + // QUIT // + + itemDef { + name confirm + text "Exit Reaction Quake 3 ?" + style 0 + textscale .32 + textstyle 3 + rect 0 16 300 32 + textalign 1 + textalignx 150 + textaligny 16 + decoration + forecolor 1 1 1 1 + visible 1 + } + + // YES // + + itemDef { + name yes + text "YES" + shortcutKey "Y" + type 1 + style 0 + textscale .32 + textstyle 3 + rect 100 64 50 32 + textalign 1 + textalignx 25 + textaligny 16 + forecolor 1 1 1 1 + visible 1 + action { close main ; close quit_popmenu ; open credit } + mouseEnter { setitemcolor yes backcolor .1 .37 .1 1 } + mouseExit { setitemcolor yes backcolor .37 .1 .1 1 } + } + + // NO // + + itemDef { + name no + text "NO" + shortcutKey "N" + type 1 + style 0 + textscale .3 + textstyle 3 + rect 150 64 50 32 + textalign 1 + textalignx 25 + textaligny 16 + forecolor 1 1 1 1 + visible 1 + action { close quit_popmenu ; open main } + mouseEnter { setitemcolor no backcolor .1 .37 .1 1 } + mouseExit { setitemcolor no backcolor .37 .1 .1 1 } + } + +} +} \ No newline at end of file diff --git a/reaction/uifiles/serverinfo.menu b/reaction/uifiles/serverinfo.menu new file mode 100644 index 00000000..2a1fda46 --- /dev/null +++ b/reaction/uifiles/serverinfo.menu @@ -0,0 +1,107 @@ +#include "ui/menudef.h" +{ + + // Server Information Popup Menu // + + menuDef { + name "serverinfo_popmenu" + visible 0 + fullscreen 0 + rect 170 108 300 240 + focusColor RQ3_MAIN_FOCUSCOLOR + style 1 + border 1 + popup + onOpen { play "sound/misc/menu1.wav" ; uiScript ServerStatus } + onESC { close serverinfo_popmenu ; open joinserver } + +//Window + + itemdef { + rect 0 0 300 240 + style WINDOW_STYLE_FILLED + backcolor Ig_Window_Color + visible 1 + border 1 + bordersize 1 + shadowStyle 1 + bordercolor Ig_Window_BorderColor + decoration + } + +//Label + + itemdef { + text "Server info:" + textscale .25 + type 0 + style WINDOW_STYLE_EMPTY + rect 12 8 80 24 + forecolor 1 1 1 1 + textstyle 0 + textalign 0 + textalignx 8 + textaligny 16 + decoration + visible 1 + } + +//Server info list + + itemdef { + type ITEM_TYPE_LISTBOX + rect 12 32 276 188 + style WINDOW_STYLE_FILLED + backcolor 0 0 0 .65 + border 1 + bordersize 1 + bordercolor .25 .25 .25 1 + elementtype LISTBOX_TEXT + elementwidth 160 + elementheight 20 + textscale .225 + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 14 + outlinecolor .75 .75 1 .25 + feeder FEEDER_SERVERSTATUS + columns 4 4 40 20 + 40 40 10 + 80 40 10 + 120 20 20 + visible 1 + } + + // Scrollbar separator // + + itemdef { + rect 270 32 18 188 + style WINDOW_STYLE_EMPTY + border 1 + borderSize 1 + bordercolor .25 .25 .25 1 + visible 1 + decoration + } + +//Refresh button + + itemdef { + text "Refresh" + textscale .25 + style WINDOW_STYLE_EMPTY + type ITEM_TYPE_BUTTON + rect 208 8 80 24 + forecolor 1 1 1 1 + textstyle 0 + textalign ITEM_ALIGN_RIGHT + textalignx 80 + textaligny 16 + visible 1 + action { play "sound/misc/menu1.wav" ; uiScript "ServerStatus" } + } + + } +} + + diff --git a/reaction/uifiles/setup.menu b/reaction/uifiles/setup.menu new file mode 100644 index 00000000..fb5336d2 --- /dev/null +++ b/reaction/uifiles/setup.menu @@ -0,0 +1,494 @@ +#include "ui/menudef.h" + +{ + + menuDef { + name "setup_menu" + background "rq3-ta-menuback" // Makro: replace "rq3-ta-menuback" with "rq3-menuback" + // to use the old background + fullScreen MENU_TRUE + visible MENU_TRUE // Visible on open + focusColor RQ3_MAIN_FOCUSCOLOR // Menu focus color for text and items + + + onOpen { + play "sound/misc/menu1.wav" ; + } + + onEsc { close setup_menu ; open main } + + +//=================== +// RQ3 stuff +//=================== + + + itemDef { + name top_bar //rq3: Top bar + rect 0 0 640 56 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name top_bar //rq3: Top bar + rect 0 58 640 12 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-main-shadow-1" + decoration + visible 1 + } + + itemDef { + name top_bar2 //rq3: Top bar - border + rect 0 56 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar //rq3: bottom bar + rect 0 420 640 60 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar2 //rq3: bottom bar - border + rect 0 418 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemdef { + name "setup_icon" + style WINDOW_STYLE_SHADER + rect 8 8 48 48 + background "menu/art/rq3-menu-setup.tga" + decoration + visible 1 + } + + itemdef { + name "setup_title" + style WINDOW_STYLE_SHADER + rect 64 12 256 32 + background "menu/art/rq3-title-setup.tga" + decoration + visible 1 + } + + itemdef { + name overlay + style 1 + forecolor 0 0 0 1 + backcolor RQ3_MENU_OVERLAY_COLOR + rect 0 58 640 360 + visible 1 + decoration + } + +//=================== +// Buttons, lists +//=================== + +//Player + + itemdef { + name btn_player + group "topmenu" + type 1 + background "menu/art/rq3-setup-player" + rect 336 12 32 32 + style WINDOW_STYLE_SHADER + visible 1 + onFocus { show player_focus ; timefade player_focus forecolor 1 1 1 1 0 250 ; + show player_hint ; timeFade player_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timefade player_focus forecolor 1 1 1 0 0 250 ; timeFade player_hint forecolor .9 .9 .9 0 0 250 } + action { close setup_menu ; open player_menu ; } + } + + itemdef { + name player_focus + background "menu/art/rq3-menu-focus" + forecolor 1 1 1 0 + rect 336 12 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemdef { + name player_hint + text "Change player settings" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Control + + itemdef { + name btn_control + group "topmenu" + type 1 + background "menu/art/rq3-setup-controls" + rect 384 12 32 32 + style WINDOW_STYLE_SHADER + visible 1 + onFocus { show control_focus ; timefade control_focus forecolor 1 1 1 1 0 250 ; + show control_hint ; timeFade control_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timefade control_focus forecolor 1 1 1 0 0 250 ; timeFade control_hint forecolor .9 .9 .9 0 0 250 } + action { close setup_menu ; open control_menu ; } + } + + itemdef { + name control_focus + background "menu/art/rq3-menu-focus" + forecolor 1 1 1 0 + rect 384 12 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemdef { + name control_hint + text "Change Reaction controls" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//System + + itemdef { + name btn_system + group "topmenu" + type 1 + background "menu/art/rq3-setup-system" + rect 432 12 32 32 + style WINDOW_STYLE_SHADER + visible 1 + onFocus { show system_focus ; timefade system_focus forecolor 1 1 1 1 0 250 ; + show system_hint ; timeFade system_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timefade system_focus forecolor 1 1 1 0 0 250 ; timeFade system_hint forecolor .9 .9 .9 0 0 250 } + action { close setup_menu ; open system_menu ; } + } + + itemdef { + name system_focus + background "menu/art/rq3-menu-focus" + forecolor 1 1 1 0 + rect 432 12 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemdef { + name system_hint + text "Change system settings" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Game options + + itemdef { + name btn_options + group "topmenu" + type 1 + background "menu/art/rq3-setup-options" + rect 480 12 32 32 + style WINDOW_STYLE_SHADER + visible 1 + onFocus { show options_focus ; timefade options_focus forecolor 1 1 1 1 0 250 ; + show options_hint ; timeFade options_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timefade options_focus forecolor 1 1 1 0 0 250 ; timeFade options_hint forecolor .9 .9 .9 0 0 250 } + action { close setup_menu ; open options_menu ; } + } + + itemdef { + name options_focus + background "menu/art/rq3-menu-focus" + forecolor 1 1 1 0 + rect 480 12 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemdef { + name options_hint + text "Change game options" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//CD Key + + itemdef { + name btn_cdkey + group "topmenu" + type 1 + background "menu/art/rq3-setup-cdkey" + rect 528 12 32 32 + style WINDOW_STYLE_SHADER + visible 1 + onFocus { show cdkey_focus ; timefade cdkey_focus forecolor 1 1 1 1 0 250 ; + show cdkey_hint ; timeFade cdkey_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timefade cdkey_focus forecolor 1 1 1 0 0 250 ; timeFade cdkey_hint forecolor .9 .9 .9 0 0 250 } + action { close setup_menu ; open cdkey_menu } + } + + itemdef { + name cdkey_focus + background "menu/art/rq3-menu-focus" + forecolor 1 1 1 0 + rect 528 12 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemdef { + name cdkey_hint + text "Set the Quake 3 CD-key" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Reset to defaults + + itemdef { + name btn_default + group "topmenu" + type 1 + background "menu/art/rq3-setup-defaults" + rect 576 12 32 32 + style WINDOW_STYLE_SHADER + visible 1 + onFocus { show default_focus ; timefade default_focus forecolor 1 1 1 1 0 250 ; + show default_hint ; timeFade default_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timefade default_focus forecolor 1 1 1 0 0 250 ; timeFade default_hint forecolor .9 .9 .9 0 0 250 } + action { open reset_popmenu ; } + } + + itemdef { + name default_focus + background "menu/art/rq3-menu-focus" + forecolor 1 1 1 0 + rect 576 12 32 32 + style WINDOW_STYLE_SHADER + visible 0 + decoration + } + + itemdef { + name default_hint + text "Reset all settings (video, controls, game etc.) back to their default values" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Back + + itemdef { + name "btn_back" + style WINDOW_STYLE_SHADER + rect 12 432 32 32 + type 1 + background "menu/art/rq3-menu-back.tga" + action { close setup_menu; open main ; } + onFocus { setbackground "menu/art/rq3-menu-back-focus-anim" ; + show back_hint ; timeFade back_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { setbackground "menu/art/rq3-menu-back.tga" ; + timeFade back_hint forecolor .9 .9 .9 0 0 250 } + visible 1 + } + + + itemdef { + name back_hint + text "Go back to main menu" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +} + + +//=================== +// Reset popup menu +//=================== + + + menuDef { + name "reset_popmenu" + visible 0 + rect 170 180 300 100 + focusColor RQ3_MAIN_FOCUSCOLOR + outOfBoundsClick + popup + //onOpen { transition window 0 50 300 0 0 0 300 100 10 4 } + //onClose { transition window 0 0 300 100 0 50 300 0 10 4 } + onopen { setfocus no ; } + onESC { close reset_popmenu ; open setup_menu ; } + + + itemDef { + name window + style WINDOW_STYLE_SHADER + background "ui/assets/fake_gradient_75" + rect 0 0 300 100 + border 4 + bordersize 2 + bordercolor 1 0 0 1 + //backcolor 0 0 0 .65 + visible 1 + decoration + } + + + + // RESET // + + itemDef { + name confirm + autowrapped + text "Reset all settings ?" + style 0 + textscale .32 + textstyle 3 + rect 50 16 200 48 + textalign 1 + textalignx 100 + textaligny 16 + decoration + forecolor 1 1 1 1 + visible 1 + } + + // YES // + + itemDef { + name yes + text "YES" + shortcutKey "Y" + type 1 + style 0 + textscale .32 + textstyle 3 + rect 100 64 50 32 + textalign 1 + textalignx 25 + textaligny 16 + forecolor 1 1 1 1 + visible 1 + action { close reset_popmenu ; close setup_menu ; open main ; uiScript resetDefaults ; } + mouseEnter { setitemcolor yes backcolor .1 .37 .1 1 } + mouseExit { setitemcolor yes backcolor .37 .1 .1 1 } + } + + // NO // + + itemDef { + name no + text "NO" + shortcutKey "N" + type 1 + style 0 + textscale .3 + textstyle 3 + rect 150 64 50 32 + textalign 1 + textalignx 25 + textaligny 16 + forecolor 1 1 1 1 + visible 1 + action { close reset_popmenu ; open setup_menu } + mouseEnter { setitemcolor no backcolor .1 .37 .1 1 } + mouseExit { setitemcolor no backcolor .37 .1 .1 1 } + } + + + + } + + +} \ No newline at end of file diff --git a/reaction/uifiles/specify.menu b/reaction/uifiles/specify.menu new file mode 100644 index 00000000..548fdf70 --- /dev/null +++ b/reaction/uifiles/specify.menu @@ -0,0 +1,121 @@ +#include "ui/menudef.h" + +{ + // SPECIFY ADDRESS POPUP MENU // + + menuDef { + name "specify_popmenu" + visible 0 + fullscreen 0 + rect 170 200 300 80 + focusColor RQ3_MAIN_FOCUSCOLOR // Menu focus color for text and items + style WINDOW_STYLE_EMPTY + border 1 + popup + onOpen { play "sound/misc/menu1.wav" ; setfocus addressEntry } + onESC { close specify_popmenu ; open joinserver } + + itemDef { + name window + rect 0 0 300 60 + style WINDOW_STYLE_FILLED + border 1 + borderSize 1 + bordercolor Ig_Window_BorderColor + backcolor Ig_Window_Color + shadowStyle 1 + visible 1 + decoration + } + + // ADDRESS // + + itemDef { + text "Address:" + style 0 + textscale .25 + rect 0 8 80 20 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 16 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemDef { + name addressEntry + style WINDOW_STYLE_FILLED + text "" + textalign ITEM_ALIGN_LEFT + textalignx 4 + textaligny 14 + maxPaintChars 18 + textscale .225 + type ITEM_TYPE_EDITFIELD + cvar "ui_RQ3_joinAddress" + rect 12 28 180 20 + border 1 + bordersize 1 + bordercolor .25 .25 .25 1 + forecolor 1 1 1 1 + backcolor 1 1 1 .1 + visible 1 + onfocus { setcolor backcolor 1 1 1 .2 ; } + leavefocus { setcolor backcolor 1 1 1 .1 ; } + } + + // PORT // + + itemDef { + text "Port:" + style 0 + textscale .25 + rect 188 8 40 20 + textalign ITEM_ALIGN_LEFT + textalignx 16 + textaligny 16 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemDef { + name portEntry + style WINDOW_STYLE_FILLED + text "" + textalign ITEM_ALIGN_LEFT + textalignx 4 + textaligny 14 + maxPaintChars 7 + maxChars 7 + textscale .225 + type ITEM_TYPE_NUMERICFIELD + cvar "ui_RQ3_joinPort" + rect 200 28 48 20 + border 1 + bordersize 1 + bordercolor .25 .25 .25 1 + forecolor 1 1 1 1 + backcolor 1 1 1 .1 + visible 1 + onfocus { setcolor backcolor 1 1 1 .2 ; } + leavefocus { setcolor backcolor 1 1 1 .1 ; } + } + + // GO // + + itemDef { + shortcutKey "G" + style WINDOW_STYLE_SHADER + background "menu/art/rq3-menu-go.tga" + type ITEM_TYPE_BUTTON + rect 260 30 32 16 + visible 1 + onfocus { setbackground "menu/art/rq3-menu-go-focus-anim" } + leavefocus { setbackground "menu/art/rq3-menu-go.tga" } + action { play "sound/misc/menu1.wav" ; uiScript joinSpecifiedServer } + } + + } +} diff --git a/reaction/uifiles/system.menu b/reaction/uifiles/system.menu new file mode 100644 index 00000000..d494cc73 --- /dev/null +++ b/reaction/uifiles/system.menu @@ -0,0 +1,1182 @@ +#include "ui/menudef.h" +#define RQ3_System_Option_Color .75 .75 .75 1 + +{ + + menuDef { + name "system_menu" + background "rq3-ta-menuback" // Makro: replace "rq3-ta-menuback" with "rq3-menuback" + // to use the old background + fullScreen MENU_TRUE + visible MENU_FALSE // Visible on open + focusColor RQ3_MAIN_FOCUSCOLOR // Menu focus color for text and items + + + onOpen { play "sound/misc/menu1.wav" ; show graphics ; hide driver } + onEsc { close system_menu ; open setup_menu } + + +//=================== +// RQ3 stuff +//=================== + + + itemDef { + name top_bar //rq3: Top bar + rect 0 0 640 56 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name top_bar //rq3: Top bar + rect 0 58 640 12 + style WINDOW_STYLE_SHADER + background "ui/assets/rq3-main-shadow-1" + decoration + visible 1 + } + + itemDef { + name top_bar2 //rq3: Top bar - border + rect 0 56 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar //rq3: bottom bar + rect 0 420 640 60 + style 1 + backcolor RQ3_MAIN_BAR_COLOR + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemDef { + name bottom_bar2 //rq3: bottom bar - border + rect 0 418 640 2 + style 1 + backcolor RQ3_MAIN_BAR_COLOR2 + //border 2 + //bordersize 1 + //bordercolor 1 0 0 1 + decoration + visible 1 + } + + itemdef { + name "system_icon" + style WINDOW_STYLE_SHADER + rect 8 8 48 48 + background "menu/art/rq3-setup-system.tga" + decoration + visible 1 + } + + itemdef { + name "system_title" + style WINDOW_STYLE_SHADER + rect 64 12 256 32 + background "menu/art/rq3-title-setup.tga" + decoration + visible 1 + } + + itemdef { + name overlay + style 1 + forecolor 0 0 0 1 + backcolor RQ3_MENU_OVERLAY_COLOR + rect 0 58 640 360 + visible 1 + decoration + } + +//=================== +// Buttons, lists +//=================== + + +//Graphics +//Background window + + itemdef { + name grph_caption + group graphics + rect 32 72 252 20 + style WINDOW_STYLE_GRADIENT + border WINDOW_BORDER_KCGRADIENT + bordersize 1 + backcolor 0 0 .2 .75 + bordercolor .75 .75 .75 1 + text "Graphics" + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .25 + textalign 0 + textalignx 72 + textaligny 14 + forecolor 1 1 1 1 + visible 1 + decoration + } + + itemdef { + name drv_caption + group driver + rect 32 72 252 20 + style WINDOW_STYLE_GRADIENT + border WINDOW_BORDER_KCGRADIENT + bordersize 1 + backcolor 0 0 .2 .75 + bordercolor .75 .75 .75 1 + text "Driver Info" + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .25 + textalign 0 + textalignx 72 + textaligny 14 + forecolor 1 1 1 1 + visible 0 + decoration + } + + + itemdef { + name grph_icon + group graphics + style WINDOW_STYLE_SHADER + rect 64 68 24 24 + background "menu/art/rq3-system-graphics.tga" + decoration + visible 1 + } + + itemdef { + name drv_icon + group driver + style WINDOW_STYLE_SHADER + rect 64 68 24 24 + background "menu/art/rq3-system-driverinfo.tga" + decoration + visible 0 + } + + itemdef { + name grph_window + rect 32 88 252 264 + style WINDOW_STYLE_SHADER + background "ui/assets/fake_gradient_75" + border WINDOW_BORDER_KCGRADIENT + bordersize 2 + backcolor 0 0 0 .75 + bordercolor .75 .75 .75 1 + visible 1 + decoration + } + + +//Pre-defined settings + + itemdef { + name opt_predef + group graphics + type ITEM_TYPE_MULTI + text "Quality:" + cvar "ui_glCustom" + rect 152 100 112 20 + cvarFloatList { "High Quality" 0 "Normal" 1 "Fast" 2 "Fastest" 3 "Custom" 4 } + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .25 + forecolor RQ3_System_Option_Color + visible 1 + action { uiScript update "ui_glCustom" ; } + onFocus { show predef_hint ; timeFade predef_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade predef_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name predef_hint + text "Choose pre-defined graphics settings" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Driver + + itemdef { + name opt_gldriver + group graphics + type ITEM_TYPE_EDITFIELD + text "GL Driver:" + cvar "r_glDriver" + rect 152 120 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .25 + forecolor RQ3_System_Option_Color + visible 1 + onFocus { show gldriver_hint ; timeFade gldriver_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade gldriver_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name gldriver_hint + text "Choose OpenGL driver" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//GL Extensions + + itemdef { + name opt_glext + group graphics + type ITEM_TYPE_YESNO + text "GL Extensions:" + cvar "r_allowExtensions" + rect 152 140 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .25 + forecolor RQ3_System_Option_Color + visible 1 + action { uiScript glCustom ; } + onFocus { show glext_hint ; timeFade glext_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade glext_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name glext_hint + text "Enable OpenGL extensions" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Resolution + + itemdef { + name opt_res + group graphics + type ITEM_TYPE_MULTI + text "Video Mode:" + cvar "r_mode" + cvarFloatList { "320x240" 0 "400x300" 1 "512x384" 2 "640x480" 3 "800x600" 4 "960x720" 5 "1024x768" 6 "1152x864" 7 "1280x1024" 8 "1600x1200" 9 "2048x1536" 10 "856x480 Wide Screen" 11 } + rect 152 160 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .25 + forecolor RQ3_System_Option_Color + visible 1 + action { uiScript glCustom ; } + onFocus { show res_hint ; timeFade res_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade res_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name res_hint + text "Choose rendering resolution" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Color depth + + itemdef { + name opt_cldepth + group graphics + type ITEM_TYPE_MULTI + text "Color depth:" + cvar "r_colorbits" + cvarFloatList { "Desktop Default" 0 "16-bit" 16 "32-bit" 32 } + rect 152 180 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .25 + forecolor RQ3_System_Option_Color + visible 1 + action { uiScript glCustom ; uiScript update "r_colorbits" ; } + onFocus { show cldepth_hint ; timeFade cldepth_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade cldepth_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name cldepth_hint + text "Choose rendering color depth" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Fullscreen + + itemdef { + name opt_fscreen + group graphics + type ITEM_TYPE_YESNO + text "Fullscreen:" + cvar "r_fullscreen" + rect 152 200 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .25 + forecolor RQ3_System_Option_Color + visible 1 + action { uiScript glCustom ; } + onFocus { show fscreen_hint ; timeFade fscreen_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade fscreen_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name fscreen_hint + text "Render in full screen" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Lightmap/vertex + + itemdef { + name opt_light + group graphics + type ITEM_TYPE_MULTI + text "Lighting:" + cvar "r_vertexlight" + cvarFloatList { "Light Map (high)" 0 "Vertex (low)" 1 } + rect 152 220 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .25 + forecolor RQ3_System_Option_Color + visible 1 + action { uiScript glCustom ; } + onFocus { show light_hint ; timeFade light_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade light_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name light_hint + text "Choose map light rendering mode" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Geometric detail + + itemdef { + name opt_geodetail + group graphics + type ITEM_TYPE_MULTI + text "Geometric Detail:" + cvar "r_lodbias" + cvarFloatList { "High" 0 "Medium" 1 "Low" 2 } + rect 152 240 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .25 + forecolor RQ3_System_Option_Color + visible 1 + action { uiScript glCustom ; uiScript update "r_lodbias" ; } + onFocus { show geodetail_hint ; timeFade geodetail_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade geodetail_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name geodetail_hint + text "Choose geometric detail level" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Texture detail + + itemdef { + name opt_texdetail + group graphics + type ITEM_TYPE_MULTI + text "Texture Detail:" + cvar "r_picmip" + cvarFloatList { "Very Low" 3 "Low" 2 "Normal" 1 "High" 0 } + rect 152 260 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .25 + forecolor RQ3_System_Option_Color + visible 1 + action { uiScript glCustom ; } + onFocus { show texdetail_hint ; timeFade texdetail_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade texdetail_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name texdetail_hint + text "Choose texture detail level" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Texture quality + + itemdef { + name opt_texquality + group graphics + type ITEM_TYPE_MULTI + text "Texture Quality:" + cvar "r_texturebits" + cvarFloatList { "Default" 0 "16 bit" 16 "32 bit" 32 } + rect 152 280 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .25 + forecolor RQ3_System_Option_Color + visible 1 + action { uiScript glCustom ; } + onFocus { show texquality_hint ; timeFade texquality_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade texquality_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name texquality_hint + text "Choose texture quality" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Texture filtering mode + + itemdef { + name opt_texfilter + group graphics + type ITEM_TYPE_MULTI + text "Texture Filter:" + cvar "r_texturemode" + cvarStrList { "Bilinear", "GL_LINEAR_MIPMAP_NEAREST", "Trilinear", "GL_LINEAR_MIPMAP_LINEAR" } + rect 152 300 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .25 + forecolor RQ3_System_Option_Color + visible 1 + action { uiScript glCustom ; } + onFocus { show texfilter_hint ; timeFade texfilter_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade texfilter_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name texfilter_hint + text "Choose texture filtering mode" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Compressed textures + + itemdef { + name opt_comptex + group graphics + type ITEM_TYPE_YESNO + text "Compress Textures:" + cvar "r_ext_compressed_textures" + rect 152 320 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .25 + forecolor RQ3_System_Option_Color + visible 1 + action { uiScript glCustom ; } + onFocus { show comptex_hint ; timeFade comptex_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade comptex_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name comptex_hint + text "Enable texture compression" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Driver info window + + itemdef { + name driver_info + group driver + ownerdraw UI_GLINFO + rect 40 100 244 248 + style WINDOW_STYLE_EMPTY + textalign ITEM_ALIGN_LEFT + textalignx 8 + textaligny 12 + textscale .2 + forecolor RQ3_System_Option_Color + visible 0 + decoration + } + +//Toggle: driver info + + itemdef { + name "btn_drinfo" + group graphics + style WINDOW_STYLE_SHADER + type ITEM_TYPE_BUTTON + rect 56 360 24 24 + background "menu/art/rq3-system-driverinfo" + visible 1 + action { hide graphics ; show driver ; setfocus btn_graphics ; } + onFocus { setbackground "menu/art/rq3-system-driverinfo-anim" ; + show toggle_drinfo_hint ; timeFade toggle_drinfo_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { setbackground "menu/art/rq3-system-driverinfo" ; + timeFade toggle_drinfo_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name "btn_graphics" + group driver + style WINDOW_STYLE_SHADER + type ITEM_TYPE_BUTTON + rect 56 360 24 24 + background "menu/art/rq3-system-graphics" + visible 0 + action { hide driver ; show graphics ; setfocus btn_drinfo ; } + onFocus { setbackground "menu/art/rq3-system-driverinfo-anim" ; + show toggle_graphics_hint ; timeFade toggle_graphics_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { setbackground "menu/art/rq3-system-driverinfo" ; + timeFade toggle_graphics_hint forecolor .9 .9 .9 0 0 250 } + } + +//Toggle: graphics + + itemdef { + name toggle_drinfo_hint + text "View OpenGL driver information" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + + itemdef { + name toggle_graphics_hint + text "Show graphics settings" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + + +//Apply + + itemdef { + name "btn_apply" + group graphics + style WINDOW_STYLE_FILLED + rect 184 360 80 20 + type ITEM_TYPE_BUTTON + text "apply" + textscale .25 + textstyle ITEM_TEXTSTYLE_NORMAL + textalign ITEM_ALIGN_RIGHT + textalignx 72 + textaligny 14 + backcolor 0 0 0 .2 + forecolor 1 1 1 .9 + border 1 + bordersize 1 + bordercolor .75 .75 .75 .75 + action { exec "vid_restart" ; } + onFocus { setitemcolor btn_apply backcolor 0 0 0 .5 ; show apply_hint ; + timeFade apply_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { setitemcolor btn_apply backcolor 0 0 0 .2 ; + timeFade apply_hint forecolor .9 .9 .9 0 0 250 } + + visible 1 + } + + itemdef { + name apply_hint + text "Apply graphics changes and return to main menu" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Display +//Background window + + itemdef { + name display_caption + rect 368 72 220 20 + style WINDOW_STYLE_GRADIENT + border WINDOW_BORDER_KCGRADIENT + bordersize 1 + backcolor 0 0 .2 .75 + bordercolor .75 .75 .75 1 + text "Display" + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .25 + textalign 0 + textalignx 72 + textaligny 14 + forecolor 1 1 1 1 + visible 1 + decoration + } + + + itemdef { + name display_icon + style WINDOW_STYLE_SHADER + rect 400 68 24 24 + background "menu/art/rq3-system-display.tga" + decoration + visible 1 + } + + itemdef { + name display_window + rect 368 88 220 80 + style WINDOW_STYLE_SHADER + background "ui/assets/fake_gradient_75" + border WINDOW_BORDER_KCGRADIENT + bordersize 2 + backcolor 0 0 0 .75 + bordercolor .75 .75 .75 1 + visible 1 + decoration + } + + +//Brightness + + itemdef { + name opt_gamma + type ITEM_TYPE_SLIDER + text "Brightness:" + cvarfloat r_gamma 1 .5 1.7 + rect 472 100 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .25 + forecolor RQ3_System_Option_Color + visible 1 + onFocus { show gamma_hint ; timeFade gamma_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade gamma_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name gamma_hint + text "Change image brightness" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Screen size + + itemdef { + name opt_screensize + type ITEM_TYPE_SLIDER + text "Screen Size:" + cvarfloat cg_viewsize 100 30 100 + rect 472 120 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .25 + forecolor RQ3_System_Option_Color + visible 1 + onFocus { show screensize_hint ; timeFade screensize_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade screensize_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name screensize_hint + text "Change rendering window size" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Overbrightbits + + itemdef { + name opt_overbits + type ITEM_TYPE_YESNO + text "Overbright Bits:" + cvar "r_overbrightbits" + rect 512 140 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .25 + forecolor RQ3_System_Option_Color + visible 1 + onFocus { show overbits_hint ; timeFade overbits_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade overbits_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name overbits_hint + text "Enable overbright bits (brighter image, lower quality)" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Sound +//Background window + + itemdef { + name sound_caption + rect 368 192 220 20 + style WINDOW_STYLE_GRADIENT + border WINDOW_BORDER_KCGRADIENT + bordersize 1 + backcolor 0 0 .2 .75 + bordercolor .75 .75 .75 1 + text "Sound" + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .25 + textalign 0 + textalignx 72 + textaligny 14 + forecolor 1 1 1 1 + visible 1 + decoration + } + + + itemdef { + name sound_icon + style WINDOW_STYLE_SHADER + rect 400 188 24 24 + background "menu/art/rq3-system-sound.tga" + decoration + visible 1 + } + + itemdef { + name sound_window + rect 368 208 220 100 + style WINDOW_STYLE_SHADER + background "ui/assets/fake_gradient_75" + border WINDOW_BORDER_KCGRADIENT + bordersize 2 + backcolor 0 0 0 .75 + bordercolor .75 .75 .75 1 + visible 1 + decoration + } + + +//Sound volume + + itemdef { + name opt_svol + type ITEM_TYPE_SLIDER + text "Sound Volume:" + cvarfloat "s_volume" 0.7 0 1 + rect 472 220 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .25 + forecolor RQ3_System_Option_Color + visible 1 + onFocus { show svol_hint ; timeFade svol_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade svol_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name svol_hint + text "Change sound effects volume" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Music volume + + itemdef { + name opt_mvol + type ITEM_TYPE_SLIDER + text "Music volume:" + cvarfloat "s_musicvolume" 0.25 0 1 + rect 472 240 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .25 + forecolor RQ3_System_Option_Color + visible 1 + onFocus { show mvol_hint ; timeFade mvol_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade mvol_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name mvol_hint + text "Change music volume" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Sound quality + + itemdef { + name opt_squality + type ITEM_TYPE_MULTI + text "Sound Quality:" + cvar "s_khz" + cvarFloatList { "22 khz (high)" 22 "11 khz (low)" 11 } + rect 496 260 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .25 + forecolor RQ3_System_Option_Color + visible 1 + onFocus { show squality_hint ; timeFade squality_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade squality_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name squality_hint + text "Change sound quality" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Doppler effect + + itemdef { + name opt_doppler + type ITEM_TYPE_YESNO + text "Doppler Sound:" + cvar "s_doppler" + rect 496 280 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .25 + forecolor RQ3_System_Option_Color + visible 1 + onFocus { show doppler_hint ; timeFade doppler_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade doppler_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name doppler_hint + text "Enable doppler effect" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Network +//Background window + + itemdef { + name net_caption + rect 368 332 220 20 + style WINDOW_STYLE_GRADIENT + border WINDOW_BORDER_KCGRADIENT + bordersize 1 + backcolor 0 0 .2 .75 + bordercolor .75 .75 .75 1 + text "Network" + textstyle ITEM_TEXTSTYLE_SHADOWED + textscale .25 + textalign 0 + textalignx 72 + textaligny 14 + forecolor 1 1 1 1 + visible 1 + decoration + } + + + itemdef { + name net_icon + style WINDOW_STYLE_SHADER + rect 400 328 24 24 + background "menu/art/rq3-system-network.tga" + decoration + visible 1 + } + + itemdef { + name net_window + rect 368 348 220 40 + style WINDOW_STYLE_SHADER + background "ui/assets/fake_gradient_75" + border WINDOW_BORDER_KCGRADIENT + bordersize 2 + backcolor 0 0 0 .75 + bordercolor .75 .75 .75 1 + visible 1 + decoration + } + + +//Net rate + + itemdef { + name opt_netrate + type ITEM_TYPE_MULTI + text "Net Data Rate:" + cvar "rate" + cvarFloatList { "<=28.8k" 2500 "33.6k" 3000 "56k" 4000 "ISDN" 5000 "LAN/CABLE/xDSl" 25000 } + rect 512 360 112 20 + textalign ITEM_ALIGN_RIGHT + textalignx 0 + textaligny 20 + textscale .25 + forecolor RQ3_System_Option_Color + visible 1 + action { uiScript update ui_setRate ; } + onFocus { show netrate_hint ; timeFade netrate_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { timeFade netrate_hint forecolor .9 .9 .9 0 0 250 } + } + + itemdef { + name netrate_hint + text "Choose network speed" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + +//Back + + itemdef { + name "btn_back" + style WINDOW_STYLE_SHADER + rect 12 432 32 32 + type 1 + background "menu/art/rq3-menu-back.tga" + action { close system_menu; open setup_menu ; } + onFocus { setbackground "menu/art/rq3-menu-back-focus-anim" ; + show back_hint ; timeFade back_hint forecolor .9 .9 .9 1 0 250 } + leaveFocus { setbackground "menu/art/rq3-menu-back.tga" ; + timeFade back_hint forecolor .9 .9 .9 0 0 250 } + visible 1 + } + + itemdef { + name back_hint + text "Go back to setup menu" + forecolor RQ3_MAIN_HINT_COLOR + textalign 1 + textalignx 240 + textaligny 20 + textscale RQ3_MAIN_TEXTSIZE + rect 80 420 480 40 + type 0 + style 0 + visible 0 + decoration + } + + + +} diff --git a/reaction/uifiles/vid_restart.menu b/reaction/uifiles/vid_restart.menu new file mode 100644 index 00000000..f82957cd --- /dev/null +++ b/reaction/uifiles/vid_restart.menu @@ -0,0 +1,194 @@ +#include "ui/menudef.h" + +{ + \\ VID_RESTART POPUP MENU \\ + + menuDef { + name "vid_restart_popmenu" + visible 0 + fullscreen 0 + //rect 217 200 210 85 + rect 204 122 235 235 + //outOfBoundsClick // this closes the window if it gets a click out of the rectangle + focusColor 1 .75 0 1 + style 1 + border 1 + popup + onESC { close vid_restart_popmenu ; + open setup_menu ; + open system_menu } + + + + itemDef { + name window + rect 0 0 235 235 + style 3 + background "ui/assets/mainpop.tga" + visible 1 + decoration + } + itemDef { + name window + rect 47 47 144 144 + style 3 + background "centerconsole2" + visible 1 + decoration + } + + + + + + // VID_RESTART // + + itemDef { + name confirm + text "This will apply video" + style 0 + textscale .25 + textstyle 3 + rect 0 85 110 20 + textalign 1 + textalignx 117 + textaligny 15 + decoration + forecolor 1 1 1 1 + visible 1 + } + itemDef { + name confirm + text "settings and return" + style 0 + textscale .25 + textstyle 3 + rect 0 100 110 20 + textalign 1 + textalignx 117 + textaligny 15 + decoration + forecolor 1 1 1 1 + visible 1 + } + itemDef { + name confirm + text "to the Main Menu." + style 0 + textscale .25 + textstyle 3 + rect 0 115 110 20 + textalign 1 + textalignx 117 + textaligny 15 + decoration + forecolor 1 1 1 1 + visible 1 + } + + itemDef { + name yes + text "YES" + type 1 + textscale .25 + style WINDOW_STYLE_FILLED + background "ui/assets/button_back.tga" + rect 75 140 30 26 + textalign 1 + textalignx 15 + textaligny 20 + forecolor 1 1 1 1 + backcolor .37 .1 .1 1 + visible 1 + action { play "sound/misc/nomenu.wav" ; + close vid_restart_popmenu ; + exec "vid_restart" } + mouseEnter { setitemcolor yes backcolor .1 .37 .1 1 } + mouseExit { setitemcolor yes backcolor .37 .1 .1 1 } + } + + itemDef { + name yes + style WINDOW_STYLE_SHADER + background "ui/assets/framebutton.tga" + rect 75 140 30 26 + visible 1 + decoration + } + + itemDef { + name yes + style WINDOW_STYLE_SHADER + background "ui/assets/leftbutton.tga" + rect 69 140 7 26 + visible 1 + decoration + } + + itemDef { + name yes + style WINDOW_STYLE_SHADER + background "ui/assets/rightbutton.tga" + rect 104 140 7 26 + visible 1 + decoration + } + + + + + + itemDef { + name no + text "NO" + type 1 + textscale .25 + style WINDOW_STYLE_FILLED + background "ui/assets/button_back.tga" + rect 128 140 30 26 + textalign 1 + textalignx 15 + textaligny 20 + forecolor 1 1 1 1 + backcolor .37 .1 .1 1 + visible 1 + action { play "sound/misc/nomenu.wav" ; + close vid_restart_popmenu ; + open setup_menu ; + open system_menu } + mouseEnter { setitemcolor no backcolor .1 .37 .1 1 } + mouseExit { setitemcolor no backcolor .37 .1 .1 1 } + } + itemDef { + name no + style WINDOW_STYLE_SHADER + background "ui/assets/framebutton.tga" + rect 128 140 30 26 + visible 1 + decoration + } + + itemDef { + name no + style WINDOW_STYLE_SHADER + background "ui/assets/leftbutton.tga" + rect 122 140 7 26 + visible 1 + decoration + } + + itemDef { + name no + style WINDOW_STYLE_SHADER + background "ui/assets/rightbutton.tga" + rect 157 140 7 26 + visible 1 + decoration + } + + } + + +} + +

sbtGGET*^~Qd0ujO9d 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ΞqLw>M97Pk_(9Kjk#zU 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 iOQ;;Q_Kg1k=+^+8g>}w7c^JhC&D= literal 0 HcmV?d00001 diff --git a/reaction/uifiles/assets/rq3-ingame-background.tga b/reaction/uifiles/assets/rq3-ingame-background.tga new file mode 100644 index 0000000000000000000000000000000000000000..a7689122a620fd9df50489891ccf05446631ccaa GIT binary patch literal 667 zcmeH_v1)@*7=?cWwGeQrL+Vhxi<6|_>l#&6p)5-jMS(oe zk!2auG)0mmh~pSh6d?>l1VI4b_aTG;=NzuIIszOl| z$g&JclKvz%5t`V$*RC%>GkT!Y(W%8cmVb1_XS^1*n6$5aG~QQ{oIk$gF0snUDMQ=~I4M*5#;x zhy-c3w&#gTJ~|JX%Jc^SR5xmxe9Xs>A15+f&@snHVYXEyT2^XXiVSlH&gFyt8THkB zoFfX*z*e61yN$H_;lqa!obCY=!Z4yyT;przaC%L&Fxx5;ZCb7({pJLbIIgRIM3vYE z4)7fppyy+Vl)3ls-#g7vxrM0RwMvVW;*e)Bu!Q+{^h&l>8;IPyckf~ar(12=ZdxrC zDWXIjoxFYf*1!Pgq!NelO;B}xJzZ5#O-_E`57onUGd$R@(&;!trh1 zym|8(I%pM7P5G`>8h-@pM^)A5QLVm?YHI}-U;_eVCMPGGOyWz}M+TVqMvMVCg8YuG z%TdLis$d1_{`G77bCf4AII$-RwW>(lB$$$q{;-Km58bO*ud4g5RqAH8eME>7C2uF9 zJb}Rln4|b|YD>}v79fu^H3nuIn`u=o^5f&<@%2p2`B&OqtJIB+jai8N|FX4RS;LKc z`SN93cM$!I?ZEcv=xC1obZcmPBKsmLrpY?p%t*E1Nc$j4ee$-9@?-`VGE0~%9TsT| zhejDpyWLhMwxEacK2vk`bdE|`wpuNncxYj^@iihpGBRRd$kc3^QC0OsuGwrlZNceQ zi)t;*R*Oa4YsPHEg%IKkuzKO!kU8^)c(2aUp{bly=QECh>WX8?um7*d= zIAoqaeHsYFvc`fLrB(Cf$&=%+|x6wut4u z^oF^6_pWw4%mog`!({af>ig1R3X?Z??%Yx3po11>+Y`kfNNsw+{uCA0aMdNYio`i- z3y0Cmwbk3VZ�Wt?ycg)xMY))fz>&Zr!qYRI`418t;iJ8n(@i8#mm|n>P*lsK`7f z4i67c;KecV`t|DpFP1%Yny+2ER?>+f)A!6y^VO?YJv$c8w6nB|90&f&l`GLhr^`Hx z`7u|k{N>A+4Rghi=Q2~XyL9Q2g~($K46qM^ix)5QjdEPoqZH=Cg$t9={w=D_=x`3! zq9V0~$PEn*X~)9p*6WfeUsj8vQFZ?O`9dc{LpbDdHd*a>?2KMVM&-G4=ZtP(zL8Z_ zW>&K~bLLEW_Uu_PWctjuc>45dPiJAaCbJgRtXijozeYKYIPu$2tu-f4o*X@O>Qs(O ztl^EOc;du~KrNO%bjH7_fNcy0(_e8rqPlxwC!y_Rh9#+uW8dTgJ9--6}R9!Ua%3 z6r-*74^i53I59^)M|nN%DJ+u3q4CX|HyeTp*x9scQ{(qh8#iwJh%p;BY?#7}Eph$& z^#N}o8td8?)~{Q)P8(w0Xki_Z>qY_V*REY_V8|S=&7C!C)|geRR+Xz)uNFh*n7DG~ zN>64XYIp4zwnJop7v)y0SmAJDj(pcD^|XBurIX~{^5x5`18k8x9MXwRR&RT3^>bK5 zC*%44HnGxj|2iY{I8SixzbjE?n4IuwcQ+{Q2_@dC&bBr%s*PfB5j>{kwMU+P``8=KZTzuin38$&&r^=FQtbW5$gAlP6E!-{0TA zzq`A8e@92h{>8Py(`WD?^omCYXT4%)AnX;EenNg@B@bR3*qf1_oAG62qh?L4`tsLS4f=gFXHI MbR*n6eO&bz00&5%J^%m! literal 0 HcmV?d00001 diff --git a/reaction/uifiles/assets/rq3-ingame-shadow-c1.tga b/reaction/uifiles/assets/rq3-ingame-shadow-c1.tga new file mode 100644 index 0000000000000000000000000000000000000000..d9960db94089d9eab9398d99ee90e42d42f146c7 GIT binary patch literal 3001 zcmeH}M{gTf6op3!3?m8P7zPqMUU413S>_+ufPf$|tR%=byLe+8Mt*=q4oOiG)qC%~ z_uhN&z4zXG0rJt89@8z>E*syC0P)TD&O7(qH=`(DDX&YX=#+cP{j;;PlarI9qoe)( z{q61T_4W0orKOpfnX$34{{H^<_V$K`hVt_Af`WpKjEuy@#OUbg(9qC;fB+vKA5TwD zcXxM_$)u{P!C=tq^=@u%s;jH(XX^jxKt)9b-O9|&OiD_MiHQjd3kwVk^!4@i^767+ zEM~LWXf$dKQ|Z_zw03lKkO8QLg@qb5JUl!oC4+ zD=RBGIXN~qHXxKNv#nyRX*ii?YLa&pqr(&FRe zqoSf11gsUg0!A@bz*d33OWoMmfI2rfH!(3WI5^nV)z#eGTvJn1T3VWymzSQN&Un!< zti=Q-40rJXFjgQMwhH_W_2A$Dtx#81R-jH!P7VzX_4M?#wzk&R)|Qo(Ner+S6Oc<1 z=$U}Ag3eLkRrogQ>FMe5@iElh-QCU2O{nwp^HWn(!^6Y9y}fO1ZT0o_!~ko>1mx1Q z$jC^*D8>pr#tn2+DqDPjy1Kf$u&^*aJv}-)$^}EXXjpZ1H74Ze=aaA0)YOE81i&c9 z3Ot65Zt#?f{QKwU=c4uS@NjQ$Z)F!+9_f_IE_N!HAyn-$l!jrgn81CATzbZph!23tE_o0(sQ{03cA!-5N*mSjilt## ztC=9FMJ_#K$nb%-0mceEMl`9w5b$)7d8Skj@fKAYrkOx$kvlRn(%09=I0zWUSb@jF zCT`#v5Y)2?rEriOaungIlyF%5W{BdxFy(uGGhBZ4XI^-Zi%lF1EHc76PRAIi@^kq z1jAZ-T!hN;0V9`khpz{7M-wH!i7v5DqzQ^nL&HWi0;DWR{r2kW z>XjOsSMQVf9+5*L3K+Vu4j!ka5J*`dD`0G5ZaY%McR8AXP(=fTB{+y4Af0&Lj`&(b zNMPku8bv^QNS>hdA9+Z&c6=0DtUPPr0RuvvWEVYqII)=0v)alws(pol6$XCx=C>Uu z-8Dh4PKkfAf~|gYwh0{j`5hKmP0Kvww6he?Nbrd;IeGf9#>$c>MwX f{@>g$<$u3D`TgM^&MwZs{_^0@N6tS#{89NA{07UQ literal 0 HcmV?d00001 diff --git a/reaction/uifiles/assets/rq3-ingame-shadow-c2.tga b/reaction/uifiles/assets/rq3-ingame-shadow-c2.tga new file mode 100644 index 0000000000000000000000000000000000000000..bef7dbe7263d8bf661690d62746a92286e10a6dd GIT binary patch literal 3001 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 f3L9d_q$i0p5XUBf(sJ^lT3BiuZFT=f_LoCs9V literal 0 HcmV?d00001 diff --git a/reaction/uifiles/assets/rq3-ingame-title.tga b/reaction/uifiles/assets/rq3-ingame-title.tga new file mode 100644 index 0000000000000000000000000000000000000000..8f60698206dfc0560ad1ea5b8d58bdf72e5f1784 GIT binary patch literal 3995 zcmeH~*H0W*6vijA<8ergB^Q|oWLAsh4$IOZ zOADcdVw$k=AesP)H=cOmZ^(ZzU*@~`UKB zrt`m7R8&Z3HDiAAWYgOFXGarOHi*|xq>d5bC)k)#*G^{;N#Ll&P((*Zc=qfW)aTEiqm$;`ix)4%t@!wO`1||g z?%lgcOG^V`qXd0HP-$tYqTNAdWhI)Ln$X+Zi?OjWOifK;W@ZMnv$IfnVWE-d=H{@p zw1m~wRq?m4uTMA$3kyR*L4j?AU>AZlpwiILfVQ?abai!MXlMx2)6-a9UdGzm8Wcsr z`uaLlURY@4jg1ZL@9*RA@DN8wM>se*03AGd@Bqol$rwI~TDwrHtE*94TZ_iVMs##^ zU~q5{6B83)h>MGhP*+w~V5O1Yym^D|?QH=*K0X$3<B66$uFm7$R6i{p!^#MLSVk zT#S;E63|I=b2Bb)2B~iBmBH(%!HSf zm5E=nv$L5nX!lW9SBLugdZ?UAH;vrd+A5ZUlOdRCVZ>TBATlx%zY!{b2+hsSMP_Cu z2(>)DPWX3Fe@tyg@uLCDn&pUv4HcUn?|Mw zhRu91;ap9Yiw++k{FBiV&NL8SbwcfNirR0G+Ut`@;!#sBuL zKOIu_4pa9Ll`4b#gVp@$ZaCwRs_%l@6ROs{6~?J)L?QS%B0oR>Up;o#AywZ6HKYph zqA4OJDJcn>bVXufB2rRPgw~)^VrEoohSxMQ`#ALs71_eV0^YuTi^<7J5Xx3ieFD{l zit_mJW6^kZDNFH6oyv5n%*+Cf%rzm{VzFR+d>r%h^FnWMC?EZWP$6Knj4IT^ynFlh zZQQzb3x0ln!bwa_j8J@3eJYjlYZ{pf^X1EzLg%!!vd+6ci)`C)b);VFmm8`r=ES zt*K>&>Fep~5vikOqXdqKh!79+wZ~H>X^BP-2?;?|R1~=K%swTgmI6@$_wV0_C=GJC z-d3ws=u4_^uJ_2uh!C+=-QC?#>2--lrl!|F2PhZ$NiZ-lAapTT!bSTKQQF(vg}341 zVIf#qL>&C?-8=E!z;6eNSaoxA6U#L6*47qwc6PA4yNkWOJ@9{OT10|4>E BT$%s? literal 0 HcmV?d00001 diff --git a/reaction/uifiles/assets/rq3-main-box-2.tga b/reaction/uifiles/assets/rq3-main-box-2.tga new file mode 100644 index 0000000000000000000000000000000000000000..7195fe95ce5def6a4434b769617d803133b5bbd5 GIT binary patch literal 1636 zcmeHHO>0v@6rGosCN?BBA&ZceStKTrq>xQ?QLu|tctK1trctsvg&! zm2-1*pD>vQ%zH4R&q_B2MWa!w)oO%Qg&hRFj(6W(maekY<@fukP$LqQ}Tg0JU`ovOkSM*%N}CLcKD4oD^7d$%<0m^lvT6}r_yInSSKe&#V>s%GM4}V literal 0 HcmV?d00001 diff --git a/reaction/uifiles/assets/rq3-main-box-3.tga b/reaction/uifiles/assets/rq3-main-box-3.tga new file mode 100644 index 0000000000000000000000000000000000000000..b16353fdb00c4a84a45b74a622cec1e4b2a17f1c GIT binary patch literal 1636 zcmeHHO=}ZT6n&FP8yhmEA&ZceStK@jq5{>Xg<ZT84&( zWX+NFfl2}2D8X(ekx1xHk0`l?tfJ%)ut^EKOifLR%jJ^Cl-%q{yx7+>N{D+dQ^h-@lOzfd}m`8yv(uG1nZ>#%2IU+Ae z*XwnO#bWk}X+v3^1GHPL_W69aTaMp@px?5ZNTpI@nx^fyo*H(T1iq54R;w~TKE8+M z+6HhA(2GoI;X%_f!1wqWt9p$7FD-=7QfWy#S13m&j z+6c0Wpl>kWn0h>NDUH||9 literal 0 HcmV?d00001 diff --git a/reaction/uifiles/assets/rq3-main-shadow-1.tga b/reaction/uifiles/assets/rq3-main-shadow-1.tga new file mode 100644 index 0000000000000000000000000000000000000000..5fcb85c49738951957e11414779292c93beb589e GIT binary patch literal 603 zcmZQz;9`IQ1qJ~I35NMUfBu~R_3PL9@7}$e|Mcn8`8RLgoPYA<$@$y2Z=b(-@#6V? zeSPz*s;cH^WMs^bjEtP`442sX z859^qhz?I^ga;&M=9MS}XXF1 F0|1{vXyE_= literal 0 HcmV?d00001 diff --git a/reaction/uifiles/assets/rq3-main-shadow-2.tga b/reaction/uifiles/assets/rq3-main-shadow-2.tga new file mode 100644 index 0000000000000000000000000000000000000000..4a89cfe1e934f599b91f31ba640da53fb1776ad3 GIT binary patch literal 603 zcmZQz;9`IQ1qJ~I35NL=78dhuY;5K`J3G(!@$s1-85uc0BO_yeRaMpezP`Tsix)4R zzkU1m`6o}FoPYD?&G}ECKAr#W-Mjf;zkZ$n^XJd^j0!{o1|rpsD#IND3``6>442sX z8Pplri4IR_ga;&M=9MS}XXF1 F0|3BXXxjh) literal 0 HcmV?d00001 diff --git a/reaction/uifiles/assets/rq3-ssg-background.jpg b/reaction/uifiles/assets/rq3-ssg-background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..85f23df60f7930c421e4c04abf2217eccccdffc2 GIT binary patch literal 6520 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 q<+g{r+{#d8pqc^_GxJImf-~|9 p6atF!QI#O`7#LVltU=~5Cqa23L7}c;p242}e!3BEo<6R63;6^fRr5`;1C0gyygOq?}n?Xw0QIz~=_^$-QNJ_z~nm|gKkd-!r)G;9| z1gl{IDFg!~n_EF@S&-Gj6oI?~^c2F8?I5Mh=t_Y$GYG)^(TQp^P%|SFC#!|hCHr69 z%8!lyGb&%R`NPc5=?)4jHbxd^wQfds7DGlxR%Q*L2sK3~U?|va%+S8b%cB znm}fuC~C%3!~#+T1Y$ba15K>L`Y1>d7E7VdM^c2v z`Ou(1QUr1p2&4EC8mMT>P?SKU1xX2tG&DkC(wFRiF|shLf!zp80t^C7oU9hWU}6Ic zzh_h+5-<>{Zd4iW5P&65FpXOosti<9Kw@TIi9&Ejet|+jQ9h~?WF9DA;sVS%Oc1G% VpitK^&tOk~Kivp7Paju31_1k1!Gr(+ literal 0 HcmV?d00001 diff --git a/reaction/uifiles/assets/scrollbar_arrow_right.tga b/reaction/uifiles/assets/scrollbar_arrow_right.tga new file mode 100644 index 0000000000000000000000000000000000000000..f80292a62332272c056b8e6b0ba07522610e2c1e GIT binary patch literal 1077 zcmZQz;9`IQ0R{mE1&(GAmkEg3m^fK27#JA@IzS>|VP-}aW;LZt_P@j`tdBAX9lSO0aU}F>VEM27s)r;1C++04r(b-okXkMc?Kp% zX)KmPosXmlY#Erq3<@M=h@e0XR3s&cKt)6gk~AV(m>F4_HI%Q}{DCNbk literal 0 HcmV?d00001 diff --git a/reaction/uifiles/assets/scrollbar_arrow_up_a.tga b/reaction/uifiles/assets/scrollbar_arrow_up_a.tga new file mode 100644 index 0000000000000000000000000000000000000000..8c2ffca2edff95017708cd870aa539eee914fdf4 GIT binary patch literal 897 zcmZQz;9`IQ0R{mE1&)3Y7mZ*93b8Y?GHY}*va=X6GO{qM0Y%stnfW>0m9N?S=~jMh z^q*1blKn3xPF4#h21Z6viB`MwN^6e#3C9%csf5W)JMQGrOnK%}}+ zWw=8C6cccOTN$bhR6{^wW?qRxa7KQCLO@YIsuE-#D5c;6%oU(?00bdHp{`+`!Jhtp Mx)E-kKCXHU0A5z2qK9ff(RmrCI^RUS0adDBA6hW86t=%c4a1+WM-LV zW|<{sm|-T`g;{2XS!RY=W`yZNvq{@WF)mwQPf38b0sE*`q)^m#>LSP zAJ4Uf1R4_)xt^3nQ*tslQd4P8OXFsGIxQI)v}R_~mX*b=>}>S8x!l(2XwS>zPJTWe z1qIwKEaYBM5%-IW=_)DVL1`)7Wo0}pFQ=!Xf=88=^j1~zxVoArH8nh~t);)Nj%W4t z3^X+Gys?qNrY2rAH#5}I!ppWcUg`C`Zf|F#qk}h{os4#M@wU60v7R2@_4YE}*T?(* zem)Eg@NsaE$)O>phKHFR8R66DC^KVYd>$WXc4C4rlaqX%p61)k42IcRzR%6^!(ia& z{Jc?iL_kx9tdtRBP2+!!}24QENiHlwU~&iLC$t literal 0 HcmV?d00001 diff --git a/reaction/uifiles/assets/sliderbutt_1.tga b/reaction/uifiles/assets/sliderbutt_1.tga new file mode 100644 index 0000000000000000000000000000000000000000..70d23c84386da1e5493caea4bfbe012a504fc448 GIT binary patch literal 2587 zcmeH|Ur1A77{O>+)I~^) z3Nr)of7Z$iS0h?cXfk4`ZEnYTQjSNlTI|o$-cydV?HrG{fggOF?>o=?d*1iF=i?m4 z4zitbgmH{B0AOk}1C)G{q^Chq>`~M8?rj05Ux*@xg25Dd>BSf7-+)`*?QM)jqad$B zU2p$JlD<6h`7k&)htI34clF|xdI~uFTo97oHXH5@4q|kEKBCn1)*?_p5s#y#wief{ zRt$$iY4X(LcJ#05^nI%PTzR?dF}%14^4!t&uCD|kddK6z8OCIfCxHMy2*Q9KM>^Fx z!SkuEwlv0W2t`fdhGY({rdXkZhQhbmVNeghsl)3lgI7eUQC3;(r$bV z=o|@$VXUky;ya8+xd)U(%j4a~hTk(ijk?m(BAz_y98eA|ev;>Z+;lpNSgM~q$(wSh z@jrp%<2;{fud7q#$%DKphZ-LTtS>h=VYgWF-W_o?8_LSi<8on26f?g7uF!+}@>-Il zvFzD-;Ps-jwH21?YWe)%a5(UAW(JdjfRD*!K#pKVcH#F%Ap;W zul!@0+U<^RuG!Xgm20}*l^>$qF?L9qC2w6)VfeehXt~tT(%9U1!F2M<*~aq?r`R8^ C{qWEL literal 0 HcmV?d00001 diff --git a/reaction/uifiles/assets/static_1.tga b/reaction/uifiles/assets/static_1.tga new file mode 100644 index 0000000000000000000000000000000000000000..49a7733a31a240a883c1d3f7da5a1d5d67a7d6cc GIT binary patch literal 99087 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�G)EnxmK<>=GI+_`V> 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≧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 E0nMOzrT_o{ literal 0 HcmV?d00001 diff --git a/reaction/uifiles/assets/static_2.tga b/reaction/uifiles/assets/static_2.tga new file mode 100644 index 0000000000000000000000000000000000000000..771d8ca0db7433f65cfdb0e35161fe9dc1889f8a GIT binary patch literal 99087 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
fk{6(i5*#Dy62puLM*H}c(=b1FGN<;TY$p$} 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 Ic zo3>lM+_rS%Mkg^}x_T8&v7FoSgCI#+yb5Wc2#DsU$Pgv~G0G#_h3SW6f(N#~=g^26 zoOKXt5g^y#1Ux|gf*3s$jq}ui?&Obj3v_rD=b&o);8+(2$ZK(Fc%7|rkVwnXco6rb z4nM}z@jwACPqP2-fdZ-&&a}P`W2=g|B#xKgDya2I_95|ks_