From 35dd3886dd1444b9fe6e081ab8841f2de6cb5f2c Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Mon, 5 May 2003 04:43:11 +0000 Subject: [PATCH] add dancing character support, option to enable --- .../default/Graphics/LifeMeterBar frame.png | Bin 7472 -> 7991 bytes stepmania/Themes/default/metrics.ini | 11 +- stepmania/src/Background.cpp | 6 + stepmania/src/Background.h | 3 + stepmania/src/DancingCharacters.cpp | 106 ++++++++++++++++++ stepmania/src/DancingCharacters.h | 40 +++++++ stepmania/src/PrefsManager.cpp | 3 + stepmania/src/PrefsManager.h | 1 + stepmania/src/RageDisplay.h | 2 +- stepmania/src/Screen.cpp | 2 + stepmania/src/ScreenBackgroundOptions.cpp | 83 ++++++++++++++ stepmania/src/ScreenBackgroundOptions.h | 26 +++++ stepmania/src/ScreenGameplayOptions.cpp | 12 -- stepmania/src/ScreenOptionsMenu.cpp | 3 + stepmania/src/StepMania.dsp | 12 +- stepmania/src/StepMania.vcproj | 24 +++- 16 files changed, 310 insertions(+), 24 deletions(-) create mode 100644 stepmania/src/DancingCharacters.cpp create mode 100644 stepmania/src/DancingCharacters.h create mode 100644 stepmania/src/ScreenBackgroundOptions.cpp create mode 100644 stepmania/src/ScreenBackgroundOptions.h diff --git a/stepmania/Themes/default/Graphics/LifeMeterBar frame.png b/stepmania/Themes/default/Graphics/LifeMeterBar frame.png index 13e66069b48f7290b22a9e275a69849992fc43e7..b3fa5d065c35823842d612560ee75fd0edac466f 100644 GIT binary patch delta 7989 zcmV-5AIjjcI=4QMBoYa5NLh0L01FcU01FcV0GgZ_ks&94=>PzAFaQARU;qF*m;eA5 zZ<1fdMgRaFtw}^dRCwBqlQB-jFc3vkbDY>IXsBt?#?G=UQE>v0XrSf>TmWJ_O9?li zSc(+~K%ziMEXOe8nTg{hB%*k7G?_m$&irI@ZM|GI|DsrJe6gP3l#om3MP(U-r>tB; z)1e1o4DvO9=ydIcf>VW)YiO1F^e zC7ExN%}ggcIaxN?cU<{EYMLCn*C?1v$!x13Mp=p)n3swTABMK7j$ zfqpdX3pe&{kHmkmui^dCH;elo?aua|QJ?G)V>k!oRLsanP2vOgqH29?;~nDv@Rwdc za(|0E$8UiBlUYN2aqo}LHvahH$sgXl_!IN~d9~f2-|oH-E?+L?f+kIuvZy(vO z0F0D>J5Izf5QewoHk&vpC}j*^NNAt50sD7nCj zV+=DMlY}KK~jV~M0}S%%hv6!%%{NY;IzJ~rUT zC4zBdieKOy>XTWMLoXHQOL<#zYXzPsjOGw1JclxW;>&^=6FDPEHwS@MNYg=Cc8b&sCnH$H}#JCCz} zj`$r&s-JdsbM>QdtS85J^;5s$`cr@BTz}Q>qqg@l*o3NDx<)Us@9qBg_mIcjyLKN7 zJ0H+H*l_>I@|(drMnydiV&kY9I`m<(bh%UAa=yc|u=&v)3MdZ(d$E0X2Rk=UpcWr+ zI(>u5#RKf#zQ3G5t}d@$Kew)*SA!{k{%G#;NAo3s7z`{X|EC7lH-}(7vk6%6M7TUb z3{;EF41M!SM4B;)Lj9EcK@Y1RNC*Rp{eVM1(QcqnKc#VqQ~v;m9|>tlpDJl!;=tx5 zxc-SyJrJyC+V@|_xbwfRY43k+)2{y}0Zac|Rvr9rUwh!cQ`*}9RxKxv)I{8!hj0*e#p_=*2D4IBR}s3rmR`~H_v2>Y+9 zUHo6yq?>5ZYa6xwS5(jVFC`a$@Lx(k=)baN?tdMVPNMaL)GBM{{g;*x{x2!#4>n8N zxSeSIx~4t<)pSb#%P59}{UEQB@L$uQ9;r4VA`JDa!C@yM0n;fudR(FkV`J$qGXW8Ee_6%I|LVFG;98j2bf{(6{9i#W73_YHKUA~|!TusT42(PeD`{jy z(jgFo*dQ^|!mto*Hz*x|;uGX1klTn3L)~()-$D8jVc1VX7}kQ*Kg92l_}4P;`=@Qz z^G_S-K2XaBQrG~)%b@vxzmfCY|5go${yQYC`|mdY+KukhPi!`yy~6_#fblBnWhjiI z4{fQoI;Dd-QbUv&iXgE-3_DUQky=OyA+}BIL@e3ZThWcMV5z@>e_$tSiqaTcdVS~1 zeNst3u{cS4`_A|7J-z3=Jk2|?OTO^_54_=6eoV!vvZn8kp|*v8kjqqRttCygoCztLo4H3}H&+xs`!wYIvzMS$?5KvJ*q-~53^O(O$%;8u7(NzKgn9w zAOdh+8T{B!1f;3ht!tQMJ~YgtjsRB$KLQ3mu{nadUQXMb)!D+;I2A6Pka6LdERjR< zPwr8}0PeXZU$-z*Xk?cLcg|@ndP|M|}Of9Eus*1f4~J-a6M{-<|e&-4_j1LhV4Ey9fIE_b<+)Fl`J^}s8iC!Jsg+|fW%)5~m)&PkD!oNYAL0T`6CdnK1ya8A>rkUauUx=u`C)^i3S0% z2A-&YA-9A`vj{1Zi;hWT{3i&5UeTXtXa`H+mY2urDz!B_O^!w+CVwn-=h-VkqvUkP z%O98ERvU|T3ro+cHZI4F^j(9zzfLq|Z9bT1PF`O`A8`ZV7AYFMfH}}A@iia_w!kZ& z;f7!~3;q@jMB@35RnTSXqkw$(z&g7Sg!$jH_y-p=H-rkr#K63 zLx&rW(^X;&x>GPLxqC&6DR9CX(adR>=Apx3$?ZopyayA~e*u+O|Dmo0cK+~h>#-eS zwWQ?B|2d?%VO{ryF7>8`>#xa+w~8MD7%^j(27)LEhZrMppEzo1S`QmpjL^Milv=}R)Sz9b~a+8==#39*)s%h^2_GArBi8W~wHYS06=wQcxbEy zNSr+ayZfVtWf{=xP^q3=B`|6do2Ea;o=@TD)%cIuzJbV`{IElKN?{mEHL!+%hT)p^ zaxM464&lq_j|@`*{L)L&%i+^ue3Gj zA9~b+#HS=ojSDIKehq+!Sc^N!up@0Ly<*ZMJv<8?=Pt9+{sG>wX@=A4xWTm(H_<#u zejv|pUAcwzQ@48gwEQiA7#LE2SA$C>OuPk(A$&$4TT)v8KQxf8vas?2Ge{$>B?IzU z5UzkhbF3;Tk$}1pphN~u;2@6`g9;-e^b0|2C2*?%G!6jGAfOspfC&Ad0oMfg|?;zCsR7Kd6=PPFTzeTF~16hc-`tLx|L`2E^Av zH4>XlA5> zT7RIi3s4wB3)&~3%7{q)=Af1rpMVZnKeQzSYDpy$sUMV%uYd|GPm7QloT6&g~ z{@bRl|L-#QYA-+l0UM_q{xj6=_|H%a#dT0zyAz5b;!Hp`s6_*Rwa^e;bC?Cg0=JPE zk0CkO862s;rLY9LgGBwx-~iPFCN5P=kib1qDNlla0dV((OW;3)LlP{L%aWj<3EB<# z&k#@vOQ4Y?`k@#cc77GGOg@Q3{jT6vq+J{=4EGXKP$TKr0B3AquzMBMa_}L4KmY-qx$Qs0%zX$vYd-{o z*faLSG1JWbz=B5aKa!DYWJ2e}=7S7)^``h$Wab(no&;;U0hJH{Y z-APW149ScZXasE|Q-2K9{)c3Sp&_)}`jM2H6s<YdFsUuPnArSot3yfPnST z;r|R5&miyx?3n4w+5h5_n*Y%(1`S-clNmTH(3zzDWa?*v+W(N0<}R8UzR*mnL8g8+ zXe|;;rhakg$o@Ps^@9@mY9KyCP9}w#(GHz|z7-%-e+YB{*NRO2de9oVoJ{>Z&@fy^ zK|0z3oe1EfAfrDZwPlZ_-wPTC-el^RgzB%PATQp4rX@DK1CW%_mkXmYzs~4%%Wuj0&3x$bc!1Yrh z3`WCnGz?kD)cc>|2e6>|c$qN%dE>uI(dz#OX8r%ogBSk;2p|S{6X+Hc-^7j?ub%xc zstle!QzOHHR?zhsHe`BG9y%6~LS{c+06OT`O-`)=t+g9~crhunTWFCR1#O~#tC1N7 zcF-wl4>I*DLZ@SM$w_F?Fq{EhG)Hb2)__BSQwg85QaOU3)sj>N3zf`EFd!s zxuCO^6DUYWRnUnPc{0NQw2o^VIV~`7L30P#@VImuh=C21%V!`o7R-3((tow2rT_J9 zC;hhwTl^0ofPmTm_^?wyL-T$OG5?X@8W(MAoIYZS4)ejo9 z^e1z`5H`EgLdNWfA#C|KbhRcI8GYzGQ2p0&Eovl?K=(lPzbB`=2n1b7GYhd~=#PaC z82*J8Hf&^s;ak|?IT>Ln1PwdbG_oQY>1Z!f7?LxA&<6GYFX*f%6Bz}6VHUTcM+`b0I=b){U`+QI0mJm{OwTwu4DgMHy-`3=G6b+*muc) z+l1Bs0Ro7DVZnj_D0m?hqlq)l-~XRs_OAb21#SP8)WL;~F9|i_a|SglgwD+-%vSQyMD zrDX*zs6H~7!uRtXBQY=jXIOILKf|2;P`nRVChSMzL-C?R|7DX_{MRyU`EQ!B^}kd8 zj{g7w1gzh8{>P4Y{by+23CE00+ky0s{|s$g{)>j>|5w%qFZWI-aLx9A@nY|1&i0gy6;<5Ztr_Dh4bwT6g~!$lnOw zV5x1~@!zU{a`!*q&ZA!e0tnb+-|`=fbD$W`hi$Ti@ELP}ft$M-NQ3q@tpCpy)c#*p zRUKq|F%hdb|AF>#Xc{#Bmyq^^Wwb&P7KMEW9krlk)CxXw0h&mb5V>UmG&b=BwBr_X z{6jACa(NLV3%a8mTv9;&9skvIEB>>w3;l=gDApl=GLwQ=5o;PY{MRt3|1Th92&)mj zi3|hKD&jw&{Y09EO|YfnpfGG8VHNR5(EcuP7%IoX64`QM##><9MnF5aK}+40HS>`R zd`Tj^euqHYRzQ1_z#9iS#bFD~Oo{ZvY;Zc#E&s0tOh=%NtRG97`&8Q+6;euKhLK{W*yhHHsgWCxvLeFWM|1ghy(AX^qd_zDSIUqD^I zf1oWN8hSObUH-2~*tRhZR6v8aOlTO?{TC6ph3ySXB)Xs}-1{GEnUM!9EAqGg=S^An zU)ORfWDlK1&wtzO_5U2EUf2N;Kny4wr0`&W#`H}ne5S;uz`~~czba(RrUOqcatE}R z0<^mr6hWYkfWl%nu+lh&h-pV~a}|_8A^I!9XVgF=shNmcs1H`q>6&zb_clQj$$w}K zBS63m(5}^ApaKr8A6QTz6;?M1B@*c7wKt%n7j#X#!5b-6b&CIUa!JF+tgMJwXL1vN zl&G|g+rauknGIBMLYv?5L?m$VMpTgBb$|s0=&T!Q`5;(EnSihP4eh#ux}JYQ{s!$U z0_jHz!<~d$M$ip_-#~k^U||5=qXyfpuSLX`l~UE}?Nd=!WE1;9c{;Gyp1WK^sb;d(1u&TAdH= zcKv70*@m{M64EGP0yY;-I}PtHB?b63iPGQDMy zTc$OPjG#f5XoocRQUKRkr&Pdy541IM2|>w9P>NB#`X+WvSAt5bOLO^V`kJQ zus9L`koU-jPC?o;?N7BYupza3kQr41HXNob06^rVG_|GeVF&yl&g$5I@WRJz9HuyI z_?0uYIS2TLW5XtIbP9nZ9|HXwHX8&fGY3^|kDb*4$k+ViFr6E>EKgv^8^(W4+oKPt zQ*))wjHMVjGH&yjm_io9odejAo8Bk;IUUHvR_G%MNVJxzZEZ;XqJ+0;vu@BPJ~&4# z_Z>7Vnz>qt<~GtpGD=ypQMb$gdRyihBhy=$;Eok+Ky$6GfQ>JX0Ef< z>RspP{$>7G07lN=rC}h7WN@}qR>)vF>kEcl+oF!eUM?p5<-8%e?zBpz!X!R&ZAt2qME6;e#e3N_$#+Gh+QAIWq?cs zQP9s_(F4wg9k=i7^=U9eFv)HC20SRpP0{NSl?Z6+&|z6zU+3>GHj)BO4N=kD_4r@t z0Qbr8g0~r3h98!B)9I)p|%W$6#>P^YeiQNBxkl`yMbB*tCPHsydn|YX< zV$kWipe~eD)b~A0;tDrzTgfn<34o?N9l&8TDtB3i*j!(ugZTo844Fh2)@3L=WaoFE znZYIPu*%y~=vKkF{*+-lr)Bs;+pE%!u6Q0eK(GtLx*Qn*c9z-lGi>hIY+7MihC}N< zG7*o8HYPtt!;-X!QupK$NVL9L9xzicfA5$lvAO*yx z(lWVGm(k5ri8($YwbGF3?2*h+u5dB{V9n0&$=vp}WJ~tXvi-Evcz9m=6@ZbmM?n|} z!l(wc6vW!rMl^yZ!3)?~S$G$*wG@%W-UE0C!BRYbgGb4lHyJkZCs~Ui=*;4NyZgNKw-VgY1ni}mNJR7CjNj{>0U*s-ZkA6H#44Xg~O2+WKw(wmz1TK6g6^6q~wJH6{ zQ@Ra*I5#eQCK{oY0-tO?j33^2p&uE)TEn%XAM0_A%#->>7;IKl&Z1XcW7d{h>FjM8x*nF;5z^STed}ZJj-42DX>9wo|{EmdlRuK)0 zeYlrHjA5y1NBIfm&6CK_VTG)2!aAid=4hc-unZXo`AW7Na~%Jd-pkiumm$!36m zPn8FUVHbH}2nz#n91PJg1ZF637=kkvC1E(Q>5$wofP`V!AW4U)VW@4?jFImVg-kE_ z$`*@)9sex@=KnWL+VCf0%fqzxQ;$VfpSi~X5I|JBZUys1jXx&i5`3Vm|Sph_4_pg=!=mBWA>{S^BFUH>GK^-~-MNLQ~=te>JVm@uGW zfN>oWuvKGVGU>kou(xC6IQzd@`j-D@N$dXGhA#SV5VPi~-_n~?vW~nE0~R!lpn?V< zfT&u~jAHs@>a<8l@hB!98~H8*pEF|;z52g(<^KOxH3$A%hb{l_62IcVe)6V&Oa6W`Q7?1i4x>%Ll0$~r*+0g5M4d_=*uErH&g=@IPF?J?zhkP>-Yar)J@}u6MFWker zts1edtQGe#K9b&$E;BZ>-foFq&tc*%vWKP&xI*7q-wyE;6pfMg+j|hSP4u5?0ps!r ziuMAYDR1Gql{zABUc*RTumPZdxK6HA{&-YO@cBUU) zmi`&~NUsC+va&}!K)o?eUk087*vDp_I1jDC{bsIU?M#pF&E00000NkvXXu0mjfn8OU* delta 7468 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 ) + m_DancingCharacters.Update( fDeltaTime ); + m_quadBGBrightness.Update( fDeltaTime ); } @@ -437,6 +440,9 @@ void Background::DrawPrimitives() m_pFadingBGA->Draw(); } + if( PREFSMAN->m_bShowDancingCharacters ) + m_DancingCharacters.Draw(); + m_quadBGBrightness.Draw(); for( int i=0; i<4; i++ ) m_quadBorder[i].Draw(); diff --git a/stepmania/src/Background.h b/stepmania/src/Background.h index d0e00334da..2b576b4135 100644 --- a/stepmania/src/Background.h +++ b/stepmania/src/Background.h @@ -17,6 +17,7 @@ #include "ActorFrame.h" #include "BGAnimation.h" #include "song.h" +#include "DancingCharacters.h" class Background : public ActorFrame @@ -43,6 +44,8 @@ public: protected: bool IsDangerVisible(); + DancingCharacters m_DancingCharacters; + BGAnimation m_BGADanger; BGAnimation* CreateSongBGA(const Song *pSong, CString sBGName) const; diff --git a/stepmania/src/DancingCharacters.cpp b/stepmania/src/DancingCharacters.cpp new file mode 100644 index 0000000000..ec31cf94e6 --- /dev/null +++ b/stepmania/src/DancingCharacters.cpp @@ -0,0 +1,106 @@ +#include "global.h" +/* +----------------------------------------------------------------------------- + Class: DancingCharacters + + Desc: See header. + + Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved. + Chris Danford +----------------------------------------------------------------------------- +*/ + +#include "DancingCharacters.h" +#include "GameConstantsAndTypes.h" +#include "RageDisplay.h" +#include "RageUtil.h" +#include "RageMath.h" +#include "PrefsManager.h" + + +const float CAMERA_SWEEP_SECONDS = 2.f; +const float CAMERA_SWEEP_SECONDS_VARIANCE = 1.f; +const float CAMERA_DISTANCE = 16.f; +const float CAMERA_DISTANCE_VARIANCE = 3.f; +const float CAMERA_HEIGHT = -9.f; +const float CAMERA_HEIGHT_VARIANCE = 3.f; + +const float MODEL_X[NUM_PLAYERS] = { -8, 8 }; + + +DancingCharacters::DancingCharacters() +{ + if( PREFSMAN->m_bShowDancingCharacters ) + { + m_Character[PLAYER_1].SetX( MODEL_X[PLAYER_1] ); + m_Character[PLAYER_1].LoadMilkshapeAscii( "D:\\Dev\\ddrpc char hacking\\DDRPCRip\\models\\char0000\\model.txt" ); + m_Character[PLAYER_1].LoadMilkshapeAsciiBones( "D:\\Dev\\ddrpc char hacking\\DDRPCRip\\models\\dance0001.bones.txt" ); + m_Character[PLAYER_1].SetZoomY(-1); + this->AddChild( &m_Character[PLAYER_1] ); + + m_Character[PLAYER_2].SetX( MODEL_X[PLAYER_2] ); + m_Character[PLAYER_2].LoadMilkshapeAscii( "D:\\Dev\\ddrpc char hacking\\DDRPCRip\\models\\char0011\\model.txt" ); + m_Character[PLAYER_2].LoadMilkshapeAsciiBones( "D:\\Dev\\ddrpc char hacking\\DDRPCRip\\models\\dance0002.bones.txt" ); + m_Character[PLAYER_2].SetZoomY(-1); + this->AddChild( &m_Character[PLAYER_2] ); + + StartCameraSweep(); + } +} + +void DancingCharacters::Update( float fDelta ) +{ + ActorFrame::Update( fDelta ); + + // update camera sweep + m_fSecsIntoSweep += fDelta; + if( m_fSecsIntoSweep > m_fSweepSecs ) + StartCameraSweep(); + + float fPercentIntoSweep = m_fSecsIntoSweep / m_fSweepSecs; + m_CameraEyeCurrent = m_CameraEyeStart * (1-fPercentIntoSweep) + m_CameraEyeEnd * fPercentIntoSweep; +} + +void DancingCharacters::DrawPrimitives() +{ + DISPLAY->EnterPerspective( 90, false ); + DISPLAY->LookAt( + m_CameraEyeCurrent, + m_CameraAt, + RageVector3(0,1,0) ); + + DISPLAY->EnableLighting( true ); + DISPLAY->SetLightDirectional( + 0, + RageColor(0.4f,0.4f,0.4f,1), + RageColor(0.8f,0.8f,0.8f,0.8f), + RageColor(0.8f,0.8f,0.8f,0.8f), + RageVector3(+1, 0, +1) ); + + ActorFrame::DrawPrimitives(); + + DISPLAY->SetLightOff( 0 ); + DISPLAY->EnableLighting( false ); + + DISPLAY->ExitPerspective(); +} + +void DancingCharacters::StartCameraSweep() +{ + m_CameraEyeStart = RageVector3( randomf(), randomf(), randomf() ); + RageVec3Normalize( &m_CameraEyeStart, &m_CameraEyeStart ); + m_CameraEyeStart *= CAMERA_DISTANCE + randomf()*CAMERA_DISTANCE_VARIANCE; + m_CameraEyeStart.y += CAMERA_HEIGHT + randomf()*CAMERA_HEIGHT_VARIANCE; + + m_CameraEyeEnd = RageVector3( randomf(), randomf(), randomf() ); + m_CameraEyeEnd += m_CameraEyeStart/2; // bias the end toward the start to that we don't sweep through the chars' bodies + RageVec3Normalize( &m_CameraEyeEnd, &m_CameraEyeEnd ); + m_CameraEyeEnd *= CAMERA_DISTANCE + randomf()*CAMERA_DISTANCE_VARIANCE; + m_CameraEyeEnd.y += CAMERA_HEIGHT + randomf()*CAMERA_HEIGHT_VARIANCE; + + m_CameraAt = RageVector3(0,CAMERA_HEIGHT + randomf()*CAMERA_HEIGHT_VARIANCE,0); + + m_fSweepSecs = CAMERA_SWEEP_SECONDS + randomf()*CAMERA_SWEEP_SECONDS_VARIANCE; + + m_fSecsIntoSweep = 0; +} \ No newline at end of file diff --git a/stepmania/src/DancingCharacters.h b/stepmania/src/DancingCharacters.h new file mode 100644 index 0000000000..ee4b4b10ef --- /dev/null +++ b/stepmania/src/DancingCharacters.h @@ -0,0 +1,40 @@ +#ifndef DancingCharacters_H +#define DancingCharacters_H +/* +----------------------------------------------------------------------------- + Class: DancingCharacters + + Desc: A graphic displayed in the DancingCharacters during Dancing. + + Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved. + Chris Danford +----------------------------------------------------------------------------- +*/ + +#include "Model.h" +#include "ActorFrame.h" +#include "PlayerNumber.h" + + +class DancingCharacters : public ActorFrame +{ +public: + DancingCharacters(); + + virtual void Update( float fDelta ); + virtual void DrawPrimitives(); + +protected: + void StartCameraSweep(); + + Model m_Character[NUM_PLAYERS]; + + RageVector3 m_CameraEyeStart; + RageVector3 m_CameraEyeEnd; + RageVector3 m_CameraEyeCurrent; + RageVector3 m_CameraAt; + float m_fSweepSecs; + float m_fSecsIntoSweep; +}; + +#endif diff --git a/stepmania/src/PrefsManager.cpp b/stepmania/src/PrefsManager.cpp index 085a159f9f..391d931296 100644 --- a/stepmania/src/PrefsManager.cpp +++ b/stepmania/src/PrefsManager.cpp @@ -91,6 +91,7 @@ PrefsManager::PrefsManager() m_bAutogenMissingTypes = true; m_bAutogenGroupCourses = true; m_bBreakComboToGetItem = false; + m_bShowDancingCharacters = false; m_BannerCacheType = preload_none; /* DDR Extreme-style extra stage support. @@ -193,6 +194,7 @@ void PrefsManager::ReadGlobalPrefsFromDisk( bool bSwitchToLastPlayedGame ) ini.GetValueB( "Options", "Timestamping", m_bTimestamping ); ini.GetValue ( "Options", "DefaultModifiers", m_sDefaultModifiers ); ini.GetValueB( "Options", "BreakComboToGetItem", m_bBreakComboToGetItem ); + ini.GetValueB( "Options", "ShowDancingCharacters", m_bShowDancingCharacters ); ini.GetValueI( "Options", "BannerCacheType", (int&)m_BannerCacheType ); m_asAdditionalSongFolders.clear(); @@ -275,6 +277,7 @@ void PrefsManager::SaveGlobalPrefsToDisk() ini.SetValueB( "Options", "Timestamping", m_bTimestamping ); ini.SetValue ( "Options", "DefaultModifiers", m_sDefaultModifiers ); ini.SetValueB( "Options", "BreakComboToGetItem", m_bBreakComboToGetItem ); + ini.SetValueB( "Options", "ShowDancingCharacters", m_bShowDancingCharacters ); ini.SetValueI( "Options", "BannerCacheType", m_BannerCacheType ); diff --git a/stepmania/src/PrefsManager.h b/stepmania/src/PrefsManager.h index bc227b2de0..bbbad18f6c 100644 --- a/stepmania/src/PrefsManager.h +++ b/stepmania/src/PrefsManager.h @@ -75,6 +75,7 @@ public: bool m_bAutogenGroupCourses; CString m_sDefaultModifiers; bool m_bBreakComboToGetItem; + bool m_bShowDancingCharacters; /* 0 = no; 1 = yes; -1 = auto (do whatever is appropriate for the arch). */ int m_iBoostAppPriority; diff --git a/stepmania/src/RageDisplay.h b/stepmania/src/RageDisplay.h index 014550f148..19b1b24320 100644 --- a/stepmania/src/RageDisplay.h +++ b/stepmania/src/RageDisplay.h @@ -91,7 +91,7 @@ public: void DrawFan( const RageVertex v[], int iNumVerts ); void DrawStrip( const RageVertex v[], int iNumVerts ); void DrawTriangles( const RageVertex v[], int iNumVerts ); - void DrawIndexedTriangles( const RageVertex v[], const Uint16 pIndices[], int iNumIndices ); + void DrawIndexedTriangles( const RageVertex v[], const Uint16* pIndices, int iNumIndices ); void DrawLoop( const RageVertex v[], int iNumVerts, float LineWidth ); void DrawLoop_LinesAndPoints( const RageVertex v[], int iNumVerts, float LineWidth ); void DrawLoop_Polys( const RageVertex v[], int iNumVerts, float LineWidth ); diff --git a/stepmania/src/Screen.cpp b/stepmania/src/Screen.cpp index 542f1d9df6..3a78bff6e4 100644 --- a/stepmania/src/Screen.cpp +++ b/stepmania/src/Screen.cpp @@ -299,6 +299,7 @@ void Screen::ClearMessageQueue( const ScreenMessage SM ) #include "ScreenSelectCharacter.h" #include "ScreenRaveOptions.h" #include "ScreenSelectMode.h" +#include "ScreenBackgroundOptions.h" Screen* Screen::Create( CString sClassName ) { @@ -363,6 +364,7 @@ Screen* Screen::Create( CString sClassName ) IF_RETURN( ScreenCredits ); IF_RETURN( ScreenSelectCharacter ); IF_RETURN( ScreenRaveOptions ); + IF_RETURN( ScreenBackgroundOptions ); RageException::Throw( "Invalid Screen class name '%s'", sClassName.c_str() ); } diff --git a/stepmania/src/ScreenBackgroundOptions.cpp b/stepmania/src/ScreenBackgroundOptions.cpp new file mode 100644 index 0000000000..451da07932 --- /dev/null +++ b/stepmania/src/ScreenBackgroundOptions.cpp @@ -0,0 +1,83 @@ +#include "global.h" +/* +----------------------------------------------------------------------------- + Class: ScreenBackgroundOptions + + Desc: See header. + + Copyright (c) 2001-2003 by the person(s) listed below. All rights reserved. + Chris Danford + Chris Gomez +----------------------------------------------------------------------------- +*/ + +#include "ScreenBackgroundOptions.h" +#include "RageTextureManager.h" +#include "RageUtil.h" +#include "RageSoundManager.h" +#include "ScreenManager.h" +#include "PrefsManager.h" +#include "GameConstantsAndTypes.h" +#include "StepMania.h" +#include "PrefsManager.h" +#include "RageLog.h" +#include "ThemeManager.h" + + +enum { + BO_MODE, + BO_BRIGHTNESS, + BO_DANGER, + BO_DANCING_CHARACTERS, + NUM_BACKGROUND_OPTIONS_LINES +}; + +OptionRow g_BackgroundOptionsLines[NUM_BACKGROUND_OPTIONS_LINES] = { + OptionRow( "Mode", "OFF","ANIMATIONS","VISUALIZATIONS","RANDOM MOVIES" ), + OptionRow( "Brightness", "0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%" ), + OptionRow( "Danger", "HIDE","SHOW" ), + OptionRow( "Dancing\nCharacters", "HIDE","SHOW" ) +}; + +ScreenBackgroundOptions::ScreenBackgroundOptions() : + ScreenOptions("ScreenBackgroundOptions",false) +{ + LOG->Trace( "ScreenBackgroundOptions::ScreenBackgroundOptions()" ); + + Init( + INPUTMODE_BOTH, + g_BackgroundOptionsLines, + NUM_BACKGROUND_OPTIONS_LINES, + false, true ); + m_Menu.m_MenuTimer.Disable(); + + SOUNDMAN->PlayMusic( THEME->GetPathToS("ScreenMachineOptions music") ); +} + +void ScreenBackgroundOptions::ImportOptions() +{ + m_iSelectedOption[0][BO_MODE] = PREFSMAN->m_BackgroundMode; + m_iSelectedOption[0][BO_BRIGHTNESS] = (int)( PREFSMAN->m_fBGBrightness*10+0.5f ); + m_iSelectedOption[0][BO_DANGER] = PREFSMAN->m_bShowDanger ? 1:0; + m_iSelectedOption[0][BO_DANCING_CHARACTERS] = PREFSMAN->m_bShowDancingCharacters? 1:0; +} + +void ScreenBackgroundOptions::ExportOptions() +{ + (int&)PREFSMAN->m_BackgroundMode = m_iSelectedOption[0][BO_MODE]; + PREFSMAN->m_fBGBrightness = m_iSelectedOption[0][BO_BRIGHTNESS] / 10.0f; + PREFSMAN->m_bShowDanger = m_iSelectedOption[0][BO_DANGER] == 1; + PREFSMAN->m_bShowDancingCharacters = m_iSelectedOption[0][BO_DANCING_CHARACTERS] == 1; +} + +void ScreenBackgroundOptions::GoToPrevState() +{ + SCREENMAN->SetNewScreen( "ScreenOptionsMenu" ); +} + +void ScreenBackgroundOptions::GoToNextState() +{ + PREFSMAN->SaveGlobalPrefsToDisk(); + GoToPrevState(); +} + diff --git a/stepmania/src/ScreenBackgroundOptions.h b/stepmania/src/ScreenBackgroundOptions.h new file mode 100644 index 0000000000..5ce1494bf8 --- /dev/null +++ b/stepmania/src/ScreenBackgroundOptions.h @@ -0,0 +1,26 @@ +/* +----------------------------------------------------------------------------- + File: ScreenBackgroundOptions + + Desc: Select a song. + + Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved. + Chris Danford +----------------------------------------------------------------------------- +*/ + +#include "ScreenOptions.h" + +class ScreenBackgroundOptions : public ScreenOptions +{ +public: + ScreenBackgroundOptions(); + +private: + void ImportOptions(); + void ExportOptions(); + + void GoToNextState(); + void GoToPrevState(); +}; + diff --git a/stepmania/src/ScreenGameplayOptions.cpp b/stepmania/src/ScreenGameplayOptions.cpp index c0608919ce..1e67e003ea 100644 --- a/stepmania/src/ScreenGameplayOptions.cpp +++ b/stepmania/src/ScreenGameplayOptions.cpp @@ -25,10 +25,7 @@ enum { - GO_BGMODE, - GO_BGBRIGHTNESS, GO_BGIFNOBANNER, - GO_SHOW_DANGER, GO_SOLO_SINGLE, GO_HIDDEN_SONGS, GO_EASTER_EGGS, @@ -38,10 +35,7 @@ enum { }; OptionRow g_GameplayOptionsLines[NUM_GAMEPLAY_OPTIONS_LINES] = { - OptionRow( "Background\nMode", "OFF","ANIMATIONS","VISUALIZATIONS","RANDOM MOVIES" ), - OptionRow( "Background\nBrightness","0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%" ), OptionRow( "BG For\nBanner", "NO", "YES (slow)" ), - OptionRow( "Show\nDanger", "OFF","ON" ), OptionRow( "Solo\nSingles", "OFF","ON" ), OptionRow( "Hidden\nSongs", "OFF","ON" ), OptionRow( "Easter\nEggs", "OFF","ON" ), @@ -66,10 +60,7 @@ ScreenGameplayOptions::ScreenGameplayOptions() : void ScreenGameplayOptions::ImportOptions() { - m_iSelectedOption[0][GO_BGMODE] = PREFSMAN->m_BackgroundMode; - m_iSelectedOption[0][GO_BGBRIGHTNESS] = (int)( PREFSMAN->m_fBGBrightness*10+0.5f ); m_iSelectedOption[0][GO_BGIFNOBANNER] = PREFSMAN->m_bUseBGIfNoBanner ? 1:0; - m_iSelectedOption[0][GO_SHOW_DANGER] = PREFSMAN->m_bShowDanger ? 1:0; m_iSelectedOption[0][GO_SOLO_SINGLE] = PREFSMAN->m_bSoloSingle ? 1:0; m_iSelectedOption[0][GO_HIDDEN_SONGS] = PREFSMAN->m_bHiddenSongs ? 1:0; m_iSelectedOption[0][GO_EASTER_EGGS] = PREFSMAN->m_bEasterEggs ? 1:0; @@ -79,10 +70,7 @@ void ScreenGameplayOptions::ImportOptions() void ScreenGameplayOptions::ExportOptions() { - (int&)PREFSMAN->m_BackgroundMode = m_iSelectedOption[0][GO_BGMODE]; - PREFSMAN->m_fBGBrightness = m_iSelectedOption[0][GO_BGBRIGHTNESS] / 10.0f; PREFSMAN->m_bUseBGIfNoBanner = m_iSelectedOption[0][GO_BGIFNOBANNER] == 1; - PREFSMAN->m_bShowDanger = m_iSelectedOption[0][GO_SHOW_DANGER] == 1; PREFSMAN->m_bSoloSingle = m_iSelectedOption[0][GO_SOLO_SINGLE] == 1; PREFSMAN->m_bHiddenSongs = m_iSelectedOption[0][GO_HIDDEN_SONGS] == 1; PREFSMAN->m_bEasterEggs = m_iSelectedOption[0][GO_EASTER_EGGS] == 1; diff --git a/stepmania/src/ScreenOptionsMenu.cpp b/stepmania/src/ScreenOptionsMenu.cpp index 59bb08a08c..b16bd19412 100644 --- a/stepmania/src/ScreenOptionsMenu.cpp +++ b/stepmania/src/ScreenOptionsMenu.cpp @@ -29,6 +29,7 @@ enum { OM_APPEARANCE, OM_AUTOGEN, + OM_BACKGROUND, OM_CONFIG_KEY_JOY, OM_INPUT, OM_GAMEPLAY, @@ -41,6 +42,7 @@ enum { OptionRow g_OptionsMenuLines[NUM_OPTIONS_MENU_LINES] = { OptionRow( "", "Appearance Options" ), OptionRow( "", "Autogen Options" ), + OptionRow( "", "Background Options" ), OptionRow( "", "Config Key/Joy Mappings" ), OptionRow( "", "Input Options" ), OptionRow( "", "Gameplay Options" ), @@ -94,6 +96,7 @@ void ScreenOptionsMenu::GoToNextState() { case OM_APPEARANCE: SCREENMAN->SetNewScreen("ScreenAppearanceOptions"); break; case OM_AUTOGEN: SCREENMAN->SetNewScreen("ScreenAutogenOptions"); break; + case OM_BACKGROUND: SCREENMAN->SetNewScreen("ScreenBackgroundOptions"); break; case OM_CONFIG_KEY_JOY: SCREENMAN->SetNewScreen("ScreenMapControllers"); break; case OM_GAMEPLAY: SCREENMAN->SetNewScreen("ScreenGameplayOptions"); break; case OM_GRAPHIC: SCREENMAN->SetNewScreen("ScreenGraphicOptions"); break; diff --git a/stepmania/src/StepMania.dsp b/stepmania/src/StepMania.dsp index 1a59b34512..5e6840c04f 100644 --- a/stepmania/src/StepMania.dsp +++ b/stepmania/src/StepMania.dsp @@ -60,7 +60,7 @@ IntDir=.\../Release6 TargetDir=\stepmania\stepmania TargetName=StepMania SOURCE="$(InputPath)" -PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ +PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi # End Special Build Tool @@ -95,7 +95,7 @@ IntDir=.\../Debug6 TargetDir=\stepmania\stepmania TargetName=StepMania-debug SOURCE="$(InputPath)" -PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ +PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi # End Special Build Tool @@ -1128,6 +1128,14 @@ SOURCE=.\Combo.h # End Source File # Begin Source File +SOURCE=.\DancingCharacters.cpp +# End Source File +# Begin Source File + +SOURCE=.\DancingCharacters.h +# End Source File +# Begin Source File + SOURCE=.\GhostArrow.cpp # End Source File # Begin Source File diff --git a/stepmania/src/StepMania.vcproj b/stepmania/src/StepMania.vcproj index 0106ccfc63..77a0317349 100644 --- a/stepmania/src/StepMania.vcproj +++ b/stepmania/src/StepMania.vcproj @@ -194,6 +194,12 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ + + + + @@ -1042,6 +1048,12 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ + + + + @@ -1076,12 +1088,6 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ - - - - @@ -1272,6 +1278,12 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ + + + +