From aa481bb3f8aa1da7a4135bd4bf9a482e0402e604 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20K=C3=BCpper?= Date: Sat, 21 Dec 2013 23:38:06 +0100 Subject: [PATCH] PlayerNames: Change player/team-num on NamesScreen. TODO: Theme-stuff and remove options from config screen. --- .../Screens/PartyScreenChallengeNames.xml | 196 ++++++++++++++++++ .../PartyModes/Challenge/Textures/Minus.png | Bin 0 -> 3116 bytes Output/PartyModes/Challenge/Textures/Plus.png | Bin 0 -> 6333 bytes Output/PartyModes/Challenge/Textures/Skin.xml | 2 + .../Screens/PartyScreenTicTacToeNames.xml | 196 ++++++++++++++++++ .../PartyModes/TicTacToe/Textures/Minus.png | Bin 0 -> 3116 bytes Output/PartyModes/TicTacToe/Textures/Plus.png | Bin 0 -> 6333 bytes Output/PartyModes/TicTacToe/Textures/Skin.xml | 2 + .../PartyModeTicTacToe/CPartyModeTicTacToe.cs | 12 ++ VocaluxeLib/Menu/CMenuPartyNameSelection.cs | 121 ++++++++++- VocaluxeLib/PartyModes/CPartyMode.cs | 10 + VocaluxeLib/PartyModes/IPartyMode.cs | 2 + 12 files changed, 536 insertions(+), 5 deletions(-) create mode 100644 Output/PartyModes/Challenge/Textures/Minus.png create mode 100644 Output/PartyModes/Challenge/Textures/Plus.png create mode 100644 Output/PartyModes/TicTacToe/Textures/Minus.png create mode 100644 Output/PartyModes/TicTacToe/Textures/Plus.png diff --git a/Output/PartyModes/Challenge/Screens/PartyScreenChallengeNames.xml b/Output/PartyModes/Challenge/Screens/PartyScreenChallengeNames.xml index 0caf0686..c87205b7 100644 --- a/Output/PartyModes/Challenge/Screens/PartyScreenChallengeNames.xml +++ b/Output/PartyModes/Challenge/Screens/PartyScreenChallengeNames.xml @@ -172,6 +172,202 @@ 26 + + + Plus + + Plus + + 145 + 1200 + 0,00 + 40 + 40 + + + ButtonColor + + + ButtonSColor + + + 75 + 10 + + 27 + + 142 + + + ButtonTextColor + + + ButtonTextSColor + + Center + + Center + + + + Outline + + + + + + + + + + + + + Minus + + Minus + + 145 + 1200 + 0,00 + 40 + 40 + + + ButtonColor + + + ButtonSColor + + + 75 + 10 + + 27 + + 142 + + + ButtonTextColor + + + ButtonTextSColor + + Center + + Center + + + + Outline + + + + + + + + + + + + + Plus + + Plus + + 145 + 1200 + 0,00 + 40 + 40 + + + ButtonColor + + + ButtonSColor + + + 75 + 10 + + 27 + + 142 + + + ButtonTextColor + + + ButtonTextSColor + + Center + + Center + + + + Outline + + + + + + + + + + + + + Minus + + Minus + + 145 + 1200 + 0,00 + 40 + 40 + + + ButtonColor + + + ButtonSColor + + + 75 + 10 + + 27 + + 142 + + + ButtonTextColor + + + ButtonTextSColor + + Center + + Center + + + + Outline + + + + + + + + + + Invisible diff --git a/Output/PartyModes/Challenge/Textures/Minus.png b/Output/PartyModes/Challenge/Textures/Minus.png new file mode 100644 index 0000000000000000000000000000000000000000..9bdede57bfffd4f9a472430bd7976dd102b6f5cb GIT binary patch literal 3116 zcmeHJ={pn(A01?w8lgc(Xv}1qMAzPsjAbw*#x_*8?wBF6WEpEz$}+NN7nixrr0mPQ zRQ4r8Wtog*&vG%!z9f0w_b<2~-w*fqJm+_w^ZW37&T~GUSPQ(d;Bm?0002M`hs9VO zarfU4;5phk(N3iR0QZ4~DZ%haMm~zfU@#pW9p~iE6%`hdUC6Vuv!bG+Y3XSM0)fS1 zsi~>e*49!el+Dde5C{|>A8%@A+Sk{oprBA%TI%WH$>DIMq@;55avdBT#>U39wY3`> z8^XfEejfZh`v33zo525P0#5*P%@_lq@=9Zm1keY2(;om3 zBK{4oV)S$Oqa!~BXJ*Jh2I2>6Tww>lRRaJ7ig6e{Lh$H{yaM8&Qg z9%f!q#XnAwqDa57nTH6Jw8uV$@k1I}UO0DPj<)o$=$VijE5 z_FqXzeHB4^;*qp%fHac(7$H4Z9(YI;d%qrobuTx7rG`kZ`ar{5T;1U&X^D_CB$N9w zwcaKlg=MR=mI8E3blIA`CX{=igdcvp-tO5wDne8T*MTUe`LoL4jW6$(Y|V;_Kv68Y zU9rDVoVj1UQ7i_MKz}F+Ga@UqOB$TebK-(&%L{=Q>+GTZSTCuWVLddD+}tJ2Ry zq7#EOM@I(o0ql#7i)u}AQ`s+OdCirk@rdL<4)+vaEBPDBccVlLl5a$OMAMoSI>$mZ|vb`ErX z!#Qk7^j10ba~mj|Ceep*K9@wf`6fPQQBSAM()?FzJ#0Qf3sP_BSH{(jd@6Y+Zk45f zdbB+)E~P?5-#N33GXBc{$2-;WIlqV(z7O%vyh-6gsRFAk^7=_UIWF7d~2eTKV zD}Cc%PHWev{J0ZPW+ae{3uC|RXBL}n|B^lsHhddvIxp7(qJ_tW?!OBv0|WKMP@m_= zrqK^WOYfRf*)WtFF|NQr{PQ%#=<^LI-dephC+8Yjr4oDNrNj#`y*wj_?&_1=Ua%Q? zEaOTPvj_nWiLuA8*H!3?3w=`pwJlKSvx z^$yQKlVxR_i5>-vDFf4q$dMMM-|GYt?RuE3)r&U9f4Xn5fdkWG%2zIo)&(k$g=g#F$tnZpi{p|@@D*)~;rlbcHZYOgBKOS8KjLRLfk;9+$aKl+lwzCB+YfXKCq? zm4@rKP7oR3T(qxI2hxPE%2rACq+VQ0*Rl7U2^~|V{c;Qf+^)5kxhdd(ks`xdgnQNN z=Qil*D;Kt`mS5%FS5#Wa6oDlvUtfckce)8VW2sEHO~s#E*t4Z30|P34CtI3N7MNPGD+SxC)y^c9S`D9GPYi)a97|a(y2g zwwu>bU>T=;f*CMwwA?A0(we3ImE1R##m7!S+?34|j*7ljXGmC|?)4IR&?<#E^+;P^ zX5%<#`tl!ayQuCF#kr4j5#-HB_M8t;))<)ED1y zH9LJpdF-48Ob_A2p1g*kFRG)ONLR77BLd%LIyQ_K3iPMJyH{9aKAm#(cy zJ55=>alCEC7=cZ<-MJAniSp6>?o!VKi_^UOkx#nuHL}4}X>-e{_QUEvA5r&c0uzZ-(sm3Z`Nacpxrg| zbM>%^$rQ_<$t0SGS6xOjxhCw(x2-jrxa5aKv6amh=b+bOLB5o$3Q!fuWR-K{to?U4 z#Xp#3(0P<*xMSHlSx$u0x^C>7E(zi6zP*NVqfX3z?_&L^46J3C5uoauJ|*}d2++ME2trW;+`lXVat7``5n zcJ4MJJEzKOz({6;b;W8Kxjd!x#Fm>lFPcDi8fgyB_Dy<@-NRDT>i3ljNeR382#$GY-Bb>akukWP?8$>hXD-r$Y^1rvNQ(!BqXkGlD(>^>zSea8@l;nbkY zi^qJ^bDoTQRG)2gF&%^x(KVb}y=B@0ju48uCmo=bcgP0ZDrtl-c~Tw~LZ?d{GVr7Q;!*DgSpka-FYTFt=tQm|$3FFm zCN&^@3%9jNaltrvb)xHSZjGF_UifuXV*ofqJf>X#_ecK)h(CK% literal 0 HcmV?d00001 diff --git a/Output/PartyModes/Challenge/Textures/Plus.png b/Output/PartyModes/Challenge/Textures/Plus.png new file mode 100644 index 0000000000000000000000000000000000000000..5b813c530797fc8bb14b5224a76721f1d97e19b2 GIT binary patch literal 6333 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 literal 0 HcmV?d00001 diff --git a/Output/PartyModes/Challenge/Textures/Skin.xml b/Output/PartyModes/Challenge/Textures/Skin.xml index 229c0284..b2ea588c 100644 --- a/Output/PartyModes/Challenge/Textures/Skin.xml +++ b/Output/PartyModes/Challenge/Textures/Skin.xml @@ -149,6 +149,8 @@ ScrollDown.png Invisible.png PlayerSelector.png + Plus.png + Minus.png [Blue]BG_Video.mp4 diff --git a/Output/PartyModes/TicTacToe/Screens/PartyScreenTicTacToeNames.xml b/Output/PartyModes/TicTacToe/Screens/PartyScreenTicTacToeNames.xml index 7a9c3fe5..00a64260 100644 --- a/Output/PartyModes/TicTacToe/Screens/PartyScreenTicTacToeNames.xml +++ b/Output/PartyModes/TicTacToe/Screens/PartyScreenTicTacToeNames.xml @@ -172,6 +172,202 @@ 26 + + + Plus + + Plus + + 145 + 1200 + 0,00 + 40 + 40 + + + ButtonColor + + + ButtonSColor + + + 75 + 10 + + 27 + + 142 + + + ButtonTextColor + + + ButtonTextSColor + + Center + + Center + + + + Outline + + + + + + + + + + + + + Minus + + Minus + + 145 + 1200 + 0,00 + 40 + 40 + + + ButtonColor + + + ButtonSColor + + + 75 + 10 + + 27 + + 142 + + + ButtonTextColor + + + ButtonTextSColor + + Center + + Center + + + + Outline + + + + + + + + + + + + + Plus + + Plus + + 145 + 1200 + 0,00 + 40 + 40 + + + ButtonColor + + + ButtonSColor + + + 75 + 10 + + 27 + + 142 + + + ButtonTextColor + + + ButtonTextSColor + + Center + + Center + + + + Outline + + + + + + + + + + + + + Minus + + Minus + + 145 + 1200 + 0,00 + 40 + 40 + + + ButtonColor + + + ButtonSColor + + + 75 + 10 + + 27 + + 142 + + + ButtonTextColor + + + ButtonTextSColor + + Center + + Center + + + + Outline + + + + + + + + + + Invisible diff --git a/Output/PartyModes/TicTacToe/Textures/Minus.png b/Output/PartyModes/TicTacToe/Textures/Minus.png new file mode 100644 index 0000000000000000000000000000000000000000..9bdede57bfffd4f9a472430bd7976dd102b6f5cb GIT binary patch literal 3116 zcmeHJ={pn(A01?w8lgc(Xv}1qMAzPsjAbw*#x_*8?wBF6WEpEz$}+NN7nixrr0mPQ zRQ4r8Wtog*&vG%!z9f0w_b<2~-w*fqJm+_w^ZW37&T~GUSPQ(d;Bm?0002M`hs9VO zarfU4;5phk(N3iR0QZ4~DZ%haMm~zfU@#pW9p~iE6%`hdUC6Vuv!bG+Y3XSM0)fS1 zsi~>e*49!el+Dde5C{|>A8%@A+Sk{oprBA%TI%WH$>DIMq@;55avdBT#>U39wY3`> z8^XfEejfZh`v33zo525P0#5*P%@_lq@=9Zm1keY2(;om3 zBK{4oV)S$Oqa!~BXJ*Jh2I2>6Tww>lRRaJ7ig6e{Lh$H{yaM8&Qg z9%f!q#XnAwqDa57nTH6Jw8uV$@k1I}UO0DPj<)o$=$VijE5 z_FqXzeHB4^;*qp%fHac(7$H4Z9(YI;d%qrobuTx7rG`kZ`ar{5T;1U&X^D_CB$N9w zwcaKlg=MR=mI8E3blIA`CX{=igdcvp-tO5wDne8T*MTUe`LoL4jW6$(Y|V;_Kv68Y zU9rDVoVj1UQ7i_MKz}F+Ga@UqOB$TebK-(&%L{=Q>+GTZSTCuWVLddD+}tJ2Ry zq7#EOM@I(o0ql#7i)u}AQ`s+OdCirk@rdL<4)+vaEBPDBccVlLl5a$OMAMoSI>$mZ|vb`ErX z!#Qk7^j10ba~mj|Ceep*K9@wf`6fPQQBSAM()?FzJ#0Qf3sP_BSH{(jd@6Y+Zk45f zdbB+)E~P?5-#N33GXBc{$2-;WIlqV(z7O%vyh-6gsRFAk^7=_UIWF7d~2eTKV zD}Cc%PHWev{J0ZPW+ae{3uC|RXBL}n|B^lsHhddvIxp7(qJ_tW?!OBv0|WKMP@m_= zrqK^WOYfRf*)WtFF|NQr{PQ%#=<^LI-dephC+8Yjr4oDNrNj#`y*wj_?&_1=Ua%Q? zEaOTPvj_nWiLuA8*H!3?3w=`pwJlKSvx z^$yQKlVxR_i5>-vDFf4q$dMMM-|GYt?RuE3)r&U9f4Xn5fdkWG%2zIo)&(k$g=g#F$tnZpi{p|@@D*)~;rlbcHZYOgBKOS8KjLRLfk;9+$aKl+lwzCB+YfXKCq? zm4@rKP7oR3T(qxI2hxPE%2rACq+VQ0*Rl7U2^~|V{c;Qf+^)5kxhdd(ks`xdgnQNN z=Qil*D;Kt`mS5%FS5#Wa6oDlvUtfckce)8VW2sEHO~s#E*t4Z30|P34CtI3N7MNPGD+SxC)y^c9S`D9GPYi)a97|a(y2g zwwu>bU>T=;f*CMwwA?A0(we3ImE1R##m7!S+?34|j*7ljXGmC|?)4IR&?<#E^+;P^ zX5%<#`tl!ayQuCF#kr4j5#-HB_M8t;))<)ED1y zH9LJpdF-48Ob_A2p1g*kFRG)ONLR77BLd%LIyQ_K3iPMJyH{9aKAm#(cy zJ55=>alCEC7=cZ<-MJAniSp6>?o!VKi_^UOkx#nuHL}4}X>-e{_QUEvA5r&c0uzZ-(sm3Z`Nacpxrg| zbM>%^$rQ_<$t0SGS6xOjxhCw(x2-jrxa5aKv6amh=b+bOLB5o$3Q!fuWR-K{to?U4 z#Xp#3(0P<*xMSHlSx$u0x^C>7E(zi6zP*NVqfX3z?_&L^46J3C5uoauJ|*}d2++ME2trW;+`lXVat7``5n zcJ4MJJEzKOz({6;b;W8Kxjd!x#Fm>lFPcDi8fgyB_Dy<@-NRDT>i3ljNeR382#$GY-Bb>akukWP?8$>hXD-r$Y^1rvNQ(!BqXkGlD(>^>zSea8@l;nbkY zi^qJ^bDoTQRG)2gF&%^x(KVb}y=B@0ju48uCmo=bcgP0ZDrtl-c~Tw~LZ?d{GVr7Q;!*DgSpka-FYTFt=tQm|$3FFm zCN&^@3%9jNaltrvb)xHSZjGF_UifuXV*ofqJf>X#_ecK)h(CK% literal 0 HcmV?d00001 diff --git a/Output/PartyModes/TicTacToe/Textures/Plus.png b/Output/PartyModes/TicTacToe/Textures/Plus.png new file mode 100644 index 0000000000000000000000000000000000000000..5b813c530797fc8bb14b5224a76721f1d97e19b2 GIT binary patch literal 6333 zcmeHL=Q|q!_qF#HLD5Fh*sFHXSd|#DSFGAKYOkV7)g~misupQg5w&VJYSgTkP>L8e ztF@`7g#P;e7rzhheV%jgbMA-x+;cvjbaR9uE7LV53JMBVI85L2-yHrg7^wgC(iE3E z3JR)Aa}#TWfAr~-r~3N(0|Nu1Vxrh8tf!af#>NH!0LU-Mx3;#PnVC^iQfg^w2@elH zJw0V%VadwMGBGt7A0L;NmaeO-3-Axv-Q5)w6fApQ=H%o=BoZ|>HM@JdfNp*D{x5MiHq@s`qZNYvBaFc?hcF5XcDMh6^39!U z-+xQ`aJZ=fJ&}c;TUmmAcLPsB!J`h>*RhUX*mGviE7btlLiM3Ko>ezH|NeDdJ{iqh zU6=?D)R+bcn6&-ynNU|hSPHnxe!RXyx^Z`7iu3NTPWMVHjbTP03%4H4{UsI)@`vZhMzl72fz)DjGys8JX|+D^(o zpX7e-m-mVL+@HmZ^GWa-aE9|Rt|jE8-H3V9+j{)$QHDP6Qi_r?R(iG8Zt1?SVXP2mZ}i#6p5qYIp9Q6syADp`*t zsQ9ZFCeyiI?O;YKN^P*<^rHrVi{egKo^y0WnkSuh4Q7!`4N5V@auGsKY5aRtII^tH zywnCtJQ39zy=IteyLoxhT#>Nt2*M3~6;jG`r%6;Um}5^A9E*XD6kK~inVEIsRJ6F4 z3QgEf71jZX#-<_*mQtaSUJgFP`@U1QD3=uhLph+{`lZ) zi~xsWrMyt#n#3?Yq*$3~jZk`Y7KJY-hvvaO!>rI(abBD5kyxw{oE1iiRi@zS$>r6c z;}Tj)F?=myj5a()ao9!0+=hl2>e28-&tEHQX*z{5KNO{Qk!z4H&wmf~ldoE((vdHC zOwCb@>G8r-yl_BHbgA@9jp3|nciTGx?3d_(O zf2Jx52B-~hg~Btjz&Ch!hU9`W9AC@CC%0&b%H-NZ?QC*fRs^0&1rI|Ymeny$0!LENloCYXv2RjjSw-mq zm5z4<0WzOX&*CcqsyFH4jZxW2hu66!V`=k?uKTi1pp-~DXaf>6eGQ$7uHzQQwh-%9 zFtts*%`q7d1{fuqvr!7aup1T`;kOmZoGU6s4*%Q}cd-aZyd>M~Ck~&%{IJPubJUgj z6!Ux_2LNo%l3BtBjvTeKxS~56gF1Q3-8a-ddbT=(ioe^sgMhi~P<8($X&Nj?O5=H$+Fx~yAf!u@^i#iE*c zm(>XzInirTEQ3K97l4QTUY9@pvnNLD9GJqg-3^kF%Y^}`(*H~IJg4@#N2hJ&TAS!m zEDs2V>=_c_?3dKp@zBRz!*;kW_ z@K%=~X*`%>69a}oaK$Y+<|BdIbtza@skL7}Ey>sV-%cX}w$P_6QlTYW97MFDCPxrX zi|`R8&UhL?;KnPb@F;OuSe$b({AusnFMpf-roeF?4fT7d0?~onlP6LP3;!9k4Kx3- zW(TVkCX}-JKByy!nPzH6GiJK_7y{Skz9ZXjtT?}gtfjlsDH^o6Cj8!L4;r1IH+mks z*E)mb#0y4#*C(SGGh97{uYytcL1NT!e?v*B*0U7DHSk5A>9GD_16`#Ph|}5l1Xe9# z>wyMvz}YJE9_5&q-ojln<@9pkZIMV318gzvOj4w04*eRS*-+Y7qGdi$0~TW>_F_|z z5_CvnVenGE@?H3`L$He8zM}b-8zul}&UGrn+7#zG=K(_@8TEIp+b4%cLsX_5uN7d= zj8FeiLeFl-JIiIL&kNNUZ~|nV-e||_$ucy#?g()36g8Qf&zm&THphDi@{6fZ&9Xe1au zt{rTkrLuRMd#91Y{Fo^S=>R2mrv?=R@0ly0RQtALbQ;XG<;~IpH1v5u zKj_^ej4kZu**}7kW1$A~VA}Euk(nO4QFj8FHMN^r0=L_kphnjBiM@ShMZE zLMGFl_m&7*iNDR%GoYun!~O*ixTc$9Fg# zGn?knQ%iu04D0Y|(HjeUrLQeM>uFujnWnDJTUgg;ephvI37^7x9s}RqV)$MwMhosu zOn0+-h;Of|zysHhUec38KDnIriOF1O3wr9yY|S%v4W-mjk~(Y?5Yr*2)CT$=zdyB= z&G@w3AwEuyCP5DydMI?e{DO^g?57&|VTKi{6i*C}+&)s5j=otXLCue6xjBvBi6m4z z?2hVD(3+3q5=fij6pzSFJIR$;4-oqEcWs$@d1W03`+caw9A!e8tp4t|`)f&e9($av z9|gnw-GzGE+|eROLsE^gET6Z#K5`cNx}B~&zyfQmSOzq>y2N7H=_p6KJ?+;bt$(!% z8S>kyq>yWF@T$@V@)`HaQDS~(mNO(Pq;u9!wae$GsJ?29ZC*KP+x*&Cr}k3wqvuDh zlP=oOUw<~ZBRf_UbQUU>vumy>Kz%pm_|%;nn9bs%8m;uK`lBLaR@c3Pzp7S{K{J@K z=9oQ;y!j8fhP_|sooi2pyY_1PllNK|LnSy&&QTdpKD3eKX%k%D8-oN~-!Ug_e&?N& zZAHImVIEI6Wc~7|X;>F3Bu<*LBRy_g9*Bx&3oOuV#@aMLWrs7n77WfRSl<6xBQAOT zpRE!7i$u)SrrxXo{FxN^(wUsnNeg~zMckPCJYTA;pP1TuuEl!aU8|(FJ9D!p69#2( z=zx(`q4_$ps+5e8PoIMlXs$G!f3dLAbwkb8A#YoTx<;fY2aqaAwtHmhV1@`zt|m7+ zB~DVro46IC0wUgfUr-5=067tn?h|=~YdjC1iIB$1`#6nZMxHlArvrG0_e*NH`?ykf z8G$`*L^vg-*F=jw-v+9an{Od9^swD%_9WUUMj$(rLT8cn4&P#>i1VRDNM-VS<)5B~ zp{W^-pgi!_b8nR4*rI~d_I&ZggXm{Fv}D{ZT;OOJCmygGsCOM5%ylw6HM9QGVtxSy zN-pmM3QzQzA_MeUe`E+m5c>i})<>z#?BUd%f2>m=mWEg$de#^=w)#>7*ajKf+djf2 z8q3L68~iPD_e#7Ks*c{U1*Q?8ao00Any|zHf zOIj6NDYGVcI&q6)Th~{e^~o5WOHar2xXFdWy7M-Vojr2Ii(Rvzk8I^xJx$k}V<`(s zsCO8rN5}J5@0#(v!e|SnFPOr#6-ijVU>t~hFptaESr>-9YFeUhq*GYkXE2hvB?H7; z+7CoX*HDgx9eBD@j7W1}kPO&OkG;pKgiIduIm#T*iW$k9YrGF)31`aOu@=|kAEhR$ zK69lGpn~^w0f=We`RyahB`^(f-s}^c^XR--l&1q^w8q>97v5<0c9ci6;HvG$tJ#dY zx3jb9b7Jj2h{)qn;8ETZ4}KF0I~43NSeO5B*rxFE!}*3F`tNkt(A~{)le6TYr%82+ zt&^=l`n7joIa^Tex)E7Jj+M-vs*Bg=ek5HQUiK10vUkS~Xe3wBk-owR%ADZpn-bU9 z)@9yQ%K=1fM*{^r)9B@h6M?n{0v-#`Y}b%8X9HOwex5@8l9iV+Sc5O$OKhOqf1Xzw zwE;>b!u2J9T+`2&V2+Vr{5rybyD^!-C%Cl7^aJu;Z6X0V2{rj&P!D>i6P}M9I%H>m z6#Pkf^gd{p^Cs8ME|5>7KVwtx0QIq?iRGcFY+1!iNUTNqmn)6m-u~Ol z%$zFJGWw(%-#2>PVQyh;=Q2N#7n=Fil`LUzE<9j+ zTl;OCZnrbu5Ue5>c6Lhur*RP?vp)_zZ@uebHE`(_!kc&O;T^an=(VZu{F-W`Bk~H_uB}Q+sQqZXKk*r%nLXGyou(F9-G3GQbv+5!UmzPz+<7u|Ik|N3 z8-?rYSo}yW{?=DxPq98##oeCOmi&pn^rUF>{!L22&)dHQH+#1>1Gnj(s+pQ9YBV^3 z-mMYYdKUSJV^7AFjhOXP$9810)G{(7{2j$N->P11R(*BkhzwVdULkh%>Ra5zzFMIj zIADixEdka`qdrL-{^8D?jEXo_9iS%c;OA7aVSP-$Zg!NjakZr71l`-P=tG(Vvo+b{ zuAJ&J19LA!os`of4%#*s#Txn(Sy}H;=Rg`*r==c4Wc>l}DXPR%M-2 zI(Z*2;p;PHm%N;M?oz%lR$lVkIUQBCgxDiO9=;EoJ32pKm@R=ZN^oCr%P?u$}@j#QlyKq z6nhpV&6dqp-uHZh2B_{8AbOUqB`>+X01U5!0Xl)2)bj^7a*}>q zfc@wKZUxA{mcQd`d3w&RWkKf7|7Oz=#WFim2}tD^2UuARd1?Wfy_eGayIltUnBA(M z8XNEiVL;z@iusN!Hso%bMlt~tyn7EzR!)O~qI{`3&AFlEQ-JF*NjLfZ?8fRoY^$Ih zDEi3P@VYK?L%UzINe7>Qr(R|pkm9hny1V6l4u2X}Y@^o29q6tFLsU_FGWbU*bM%Wu zt63pDq#ov9wb)nFl7snvMo(`$2@2*jL8zkK-)?1JvZ;PxDpmW!eGo24H-gSBBRNs# zeKHPPu(tVznO%1~9ul_%ufH#!^$T@nX8hW1w)#2^bGjC#aco@PgeBT0N6Z7b;xX9P zV=i`MzHDXXV%j}XevwEj;{m1vI(C}6MSi#?ByG<#HyYt~S79e--T1ZwiZ?{kqxu^N*;PzbRR}*zlHf{b9vL*9!StFVswCbfosB zezvt>(y5dl+|Pl4i5Ic)m}L*Q)$%DPhn>Ufi&qNv-OaSQMBRFSd@Gh)%6O|{UoJ^HyDxn zK3=@F2M=Uk%&}N&=|QIu-GHO$_ObQYGL!$i3hX_LU_MzIh(4$<8Vj2-c-vlLg=(HLclE zJNV(Rb8zB!{J|1~P1F}wTLF+0u2;H5+IN=- z5G5$VJe<~c&?~kq)0K)dFUqAD*@|g{}7w3tTQuF_a0xN7(vLO zuK3_$J?74}C7nytBc9SSGnTf}x?yCBTxcjLC%qc~ZD()9y)j)ln&zr4p9jEm5{}Vt zpyc=e!W7&h2SLM1d6FM&5TWBEORdp`EqLQvI~e#HJaVz62-;@zPY9KyC7?kz^veDt z_wlm6^)`^=(S+MyyhLG09^RLrT%WqvaMjMyj)UvRuqURYuPA6u=BIc1F|752)pwCj z)3zR_lP6ja6pG_A@gSLwm8*fv*_}2;e7ra#hN+sUG;6}bz~AijrEuk2^YTt#Q{}MNIdHn)4Q(!zt)x_bD@yVC(mU$@uefk?1TEtk`|z8;w|V~F zyQBKHzi92o58X*i|6}Wr?}b-H-zOUSo-;Es6WH5SD?6|6+cc^1rPniJnm}!8Y1d-R zQ?ngyevPcj3!QeDY6EFP@}d^^A4!`WO_c wDjJVgs@eMzo6jKHD$nqYpYTUP0aw((cl!oM`O8`Va#aer0YV?Ad+*8r0WNL0r~m)} literal 0 HcmV?d00001 diff --git a/Output/PartyModes/TicTacToe/Textures/Skin.xml b/Output/PartyModes/TicTacToe/Textures/Skin.xml index 7cc7e4a2..9145b6bf 100644 --- a/Output/PartyModes/TicTacToe/Textures/Skin.xml +++ b/Output/PartyModes/TicTacToe/Textures/Skin.xml @@ -223,6 +223,8 @@ ScrollDown.png Invisible.png PlayerSelector.png + Plus.png + Minus.png [Blue]BG_Video.mp4 diff --git a/PartyModes/PartyModeTicTacToe/CPartyModeTicTacToe.cs b/PartyModes/PartyModeTicTacToe/CPartyModeTicTacToe.cs index d3628d3e..404ae1f5 100644 --- a/PartyModes/PartyModeTicTacToe/CPartyModeTicTacToe.cs +++ b/PartyModes/PartyModeTicTacToe/CPartyModeTicTacToe.cs @@ -135,6 +135,8 @@ namespace VocaluxeLib.PartyModes.TicTacToe private const int _MinPlayer = 2; private const int _MaxTeams = 2; private const int _MinTeams = 2; + private const int _MinPlayerPerTeam = 1; + private const int _MaxPlayerPerTeam = 10; private const int _NumFields = 9; private enum EStage @@ -480,6 +482,16 @@ namespace VocaluxeLib.PartyModes.TicTacToe return _MinTeams; } + public override int GetMinPlayerPerTeam() + { + return _MinPlayerPerTeam; + } + + public override int GetMaxPlayerPerTeam() + { + return _MaxPlayerPerTeam; + } + public override int GetMaxNumRounds() { return _NumFields; diff --git a/VocaluxeLib/Menu/CMenuPartyNameSelection.cs b/VocaluxeLib/Menu/CMenuPartyNameSelection.cs index a54bb5a9..42497756 100644 --- a/VocaluxeLib/Menu/CMenuPartyNameSelection.cs +++ b/VocaluxeLib/Menu/CMenuPartyNameSelection.cs @@ -31,6 +31,9 @@ namespace VocaluxeLib.Menu protected int _NumTeams = -1; protected int _NumPlayer = -1; protected int[] _NumPlayerTeams; + protected bool _AllowChangePlayerNum = true; + protected bool _AllowChangeTeamNum = true; + protected bool _ChangePlayerNumDynamic = true; private int _CurrentTeam = 0; private bool _AvatarsChanged; @@ -48,6 +51,10 @@ namespace VocaluxeLib.Menu private const string _ButtonNext = "ButtonNext"; private const string _ButtonBack = "ButtonBack"; + private const string _ButtonIncreaseTeams = "ButtonIncreaseTeams"; + private const string _ButtonDecreaseTeams = "ButtonDecreaseTeams"; + private const string _ButtonIncreasePlayer = "ButtonIncreasePlayer"; + private const string _ButtonDecreasePlayer = "ButtonDecreasePlayer"; private const string _SelectSlideTeams = "SelectSlideTeams"; private const string _SelectSlidePlayer = "SelectSlidePlayer"; private const string _NameSelection = "NameSelection"; @@ -59,7 +66,7 @@ namespace VocaluxeLib.Menu base.Init(); _Teams = _PartyMode.GetMinTeams() > 0; - _ThemeButtons = new string[] { _ButtonBack, _ButtonNext }; + _ThemeButtons = new string[] { _ButtonBack, _ButtonNext, _ButtonIncreaseTeams, _ButtonDecreaseTeams, _ButtonIncreasePlayer, _ButtonDecreasePlayer }; _ThemeSelectSlides = new string[] { _SelectSlideTeams, _SelectSlidePlayer }; _ThemeNameSelections = new string[] { _NameSelection }; @@ -120,8 +127,12 @@ namespace VocaluxeLib.Menu _AddPlayer(_CurrentTeam, _SelectedProfileID); } //Started selecting with 'P' - if (_SelectingFast &&_SelectSlides[_SelectSlidePlayer].NumValues == _NumPlayerTeams[_CurrentTeam]) + if (_SelectingFast) { + if (!_ChangePlayerNumDynamic && _TeamList[_CurrentTeam].Count == _NumPlayerTeams[_CurrentTeam]) resetSelection = true; + else if (_TeamList[_CurrentTeam].Count == _PartyMode.GetMaxPlayerPerTeam()) + resetSelection = true; + } else if(!_SelectingFast) resetSelection = true; break; @@ -166,6 +177,18 @@ namespace VocaluxeLib.Menu if (_Buttons[_ButtonNext].Selected) Next(); + if (_Buttons[_ButtonIncreaseTeams].Selected) + IncreaseTeamNum(); + + if (_Buttons[_ButtonDecreaseTeams].Selected) + DecreaseTeamNum(); + + if (_Buttons[_ButtonIncreasePlayer].Selected) + IncreasePlayerNum(_CurrentTeam); + + if (_Buttons[_ButtonDecreasePlayer].Selected) + DecreasePlayerNum(_CurrentTeam); + break; case Keys.Delete: @@ -272,7 +295,9 @@ namespace VocaluxeLib.Menu _AddPlayer(_CurrentTeam, _SelectedProfileID); - if (_SelectSlides[_SelectSlidePlayer].NumValues == _NumPlayerTeams[_CurrentTeam]) + if (!_ChangePlayerNumDynamic && _TeamList[_CurrentTeam].Count == _NumPlayerTeams[_CurrentTeam]) + stopSelectingFast = true; + else if (_TeamList[_CurrentTeam].Count == _PartyMode.GetMaxPlayerPerTeam()) stopSelectingFast = true; } else @@ -288,6 +313,18 @@ namespace VocaluxeLib.Menu if (_Buttons[_ButtonNext].Selected) Next(); + if (_Buttons[_ButtonIncreaseTeams].Selected) + IncreaseTeamNum(); + + if (_Buttons[_ButtonDecreaseTeams].Selected) + DecreaseTeamNum(); + + if (_Buttons[_ButtonIncreasePlayer].Selected) + IncreasePlayerNum(_CurrentTeam); + + if (_Buttons[_ButtonDecreasePlayer].Selected) + DecreasePlayerNum(_CurrentTeam); + if (_SelectSlides[_SelectSlideTeams].Selected) _OnChangeTeamSlide(); @@ -327,7 +364,9 @@ namespace VocaluxeLib.Menu if (mouseEvent.MB && _SelectingFast) { - if (_SelectSlides[_SelectSlidePlayer].NumValues == _NumPlayerTeams[_CurrentTeam]) + if (!_ChangePlayerNumDynamic && _TeamList[_CurrentTeam].Count == _NumPlayerTeams[_CurrentTeam]) + stopSelectingFast = true; + else if (_TeamList[_CurrentTeam].Count == _PartyMode.GetMaxPlayerPerTeam()) stopSelectingFast = true; } else if (mouseEvent.MB) @@ -364,6 +403,10 @@ namespace VocaluxeLib.Menu _SelectSlides[_SelectSlidePlayer].WithTextures = true; _SelectSlides[_SelectSlidePlayer].SelectionByHover = true; _SelectSlides[_SelectSlideTeams].Visible = _Teams; + _Buttons[_ButtonIncreaseTeams].Visible = _AllowChangePlayerNum && _Teams; + _Buttons[_ButtonDecreaseTeams].Visible = _AllowChangePlayerNum && _Teams; + _Buttons[_ButtonIncreasePlayer].Visible = _AllowChangePlayerNum; + _Buttons[_ButtonDecreasePlayer].Visible = _AllowChangePlayerNum; } public override bool UpdateGame() @@ -405,6 +448,72 @@ namespace VocaluxeLib.Menu { return _TeamList; } + + public void IncreaseTeamNum() + { + if (!_AllowChangeTeamNum) + return; + + if (_NumTeams + 1 <= _PartyMode.GetMaxTeams()) + { + _NumTeams++; + int[] numPlayerTeams = _NumPlayerTeams; + List[] teamList = _TeamList; + _NumPlayerTeams = new int[_NumTeams]; + _TeamList = new List[_NumTeams]; + for (int i = 0; i < _NumPlayerTeams.Length; i++) + { + if (i < numPlayerTeams.Length) + { + _NumPlayerTeams[i] = numPlayerTeams[i]; + _TeamList[i] = teamList[i]; + } + else + { + _NumPlayerTeams[i] = _NumPlayer; + _TeamList[i] = new List(); + } + } + } + } + + public void DecreaseTeamNum() + { + if (!_AllowChangeTeamNum) + return; + + if (_NumTeams - 1 >= _PartyMode.GetMinTeams()) + { + _NumTeams--; + } + } + + public void IncreasePlayerNum(int team) + { + if (!_AllowChangePlayerNum) + return; + if (_NumPlayerTeams.Length < team) + { + if (_NumPlayerTeams[team] + 1 <= _PartyMode.GetMaxPlayerPerTeam()) + _NumPlayerTeams[team]++; + _UpdatePlayerSlide(); + } + } + + public void DecreasePlayerNum(int team) + { + if (!_AllowChangePlayerNum) + return; + if (_NumPlayerTeams.Length < team) + { + if (_NumPlayerTeams[team] - 1 >= _PartyMode.GetMinPlayerPerTeam()) + _NumPlayerTeams[team]--; + if (_TeamList[team].Count > _NumPlayerTeams[team]) + _RemovePlayerByIndex(team, _NumPlayerTeams[team] - 1); + _UpdatePlayerSlide(); + } + } + #region private methods private void _OnProfileChanged(EProfileChangedFlags flags) @@ -471,7 +580,9 @@ namespace VocaluxeLib.Menu private void _AddPlayer(int team, int profileID) { - if (_NumPlayerTeams[team] == _TeamList[team].Count) + if (_NumPlayerTeams[team] == _TeamList[team].Count && !_ChangePlayerNumDynamic) + return; + else if (_NumPlayerTeams[team] == _PartyMode.GetMaxPlayerPerTeam()) return; _NameSelections[_NameSelection].UseProfile(profileID); diff --git a/VocaluxeLib/PartyModes/CPartyMode.cs b/VocaluxeLib/PartyModes/CPartyMode.cs index 370d125a..5ef78a60 100644 --- a/VocaluxeLib/PartyModes/CPartyMode.cs +++ b/VocaluxeLib/PartyModes/CPartyMode.cs @@ -95,6 +95,16 @@ namespace VocaluxeLib.PartyModes return 0; } + public virtual int GetMinPlayerPerTeam() + { + return GetMinPlayer(); + } + + public virtual int GetMaxPlayerPerTeam() + { + return GetMaxPlayer(); + } + public virtual int GetMaxNumRounds() { return 1; diff --git a/VocaluxeLib/PartyModes/IPartyMode.cs b/VocaluxeLib/PartyModes/IPartyMode.cs index e720d096..d71e8135 100644 --- a/VocaluxeLib/PartyModes/IPartyMode.cs +++ b/VocaluxeLib/PartyModes/IPartyMode.cs @@ -101,6 +101,8 @@ namespace VocaluxeLib.PartyModes int GetMinPlayer(); int GetMaxTeams(); int GetMinTeams(); + int GetMinPlayerPerTeam(); + int GetMaxPlayerPerTeam(); int GetMaxNumRounds(); string GetFolder(); void SetFolder(string folder);