From c5968ab2611bcc86dcc69e8ce1b2c3d0fb8aed42 Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Tue, 6 Sep 2011 12:44:34 -0500 Subject: [PATCH 01/14] update installer stuff --- Utils/NSIS/GetVersion.zip | Bin 30581 -> 0 bytes Utils/NSIS/Nsisos.zip | Bin 0 -> 5004 bytes Utils/NSIS/readme.txt | 6 +++--- sm-ssc.nsi | 17 ++++++----------- 4 files changed, 9 insertions(+), 14 deletions(-) delete mode 100644 Utils/NSIS/GetVersion.zip create mode 100644 Utils/NSIS/Nsisos.zip diff --git a/Utils/NSIS/GetVersion.zip b/Utils/NSIS/GetVersion.zip deleted file mode 100644 index 0300f2f0e700d8aae526609780802c14410bfd22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30581 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
  • +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 diff --git a/Utils/NSIS/Nsisos.zip b/Utils/NSIS/Nsisos.zip new file mode 100644 index 0000000000000000000000000000000000000000..9f2fd741951621b7bfce70f7d120f9137c530c1c GIT binary patch literal 5004 zcmZ{o2Q*ym*2f3Y%g99Z&JewaAX<se>5-+In@*8cDP-&+TQcY_K501yFAQTcq-2IQw4cmMz$ zApmgm`mM7Y!p+4^NY55-gR~WV=JhPia8_$pfzm$#eD(fLg)$%h;41rVGs9|1p!XdW z&Qkv`m=qg0dUFTN7Wg%@F$I*PcbgcIIh*IUTGf&n$KC&xOUFhft7ISzao0#Noq65@ z9hxF5v@rZ>)TjBD-s|v(q%756^5k85#$Qy4|K#4u6D-BEUkwo8$IWGMG^*<+NeGik z-*LF%xRJr-Md^cgGHLRRA`ahFQr#+zYZ4KDluZV!Qe^17{X`q79&E`TrEoFTMFx+q zzylv)7iDHM zmZTOC6i?jdmzApih#GS8!UVc3VlkhN9hOE@zA9>o z*U9^`^_4*%Q-havIZd(^Ah~0-$;0f?9|l=ny(BfdmtM1~H8i)Tkag6)Fj&&41$UDO zxQsVeMY%r6X}~H7Y;mL!E75zA!@SiDcwuiCZub!}yiiwPU zxl?da>;6&L;i#6`!@O_hCdBT?7G;N9TXS~$zWlnfs^v0!t7|M&s9NY_Flk+2_F=VR*kpoI-ZL@3|LzX%@s>?mawcA zXc)$#Mz@bTjY-P{PS`TCM@298a88G&=Yn)0ZNw6Ie%g(#OCqt0t_}gKt8WMyoTqu~ zDL)F-ZW@SLDK@E*9|+4ca!I2Cze#u{dEw{W+z6ko6f->rq!+OZRKy$^@g zDub5d-gBCZgen)VMhxEOZ&Ww8v7;>qcT6SExp`X(=c25elT#04j{0+|*;T=GXk8RX z9ad!MSq0faV&vc>8xbV^D^9rdQelvA?|9KDd)p6Tc5do&I@IP=R_~n25KX4aXMT`? zgtgUX@BlT7sSQsEuL&>PWW4soxk8Rg`u7OoQ_jz-wO(mD z4{vghcjH;zwzct8>Qc4E%;Ntj2*@f-o&*_0Nh`ZM9NG8jwzP*5`l8g6i=OLdCeWIT zXp&2K+nTt?*s8q==bX$R73i_4cgXcDDWgc1_{lbc&oTC{I(YUfadJd#x!D`!40$5~ znY>*$+CW9u8eKBRqgUPf{1^LU`}{kBpCY5XAWmLYckNs*Dx4c-;ls*T8g|6z@!oM< z_1>dD3(jZ1M&`GcqNf{<)z1_s0(7vz?4$SNmko$OGwk!MqvG+)Dny_WHeYgk1ajs& z5nzth&N@mN-}y?V;qi_avnvr?VRcnNYydus)GVl&3B=y0D7q--(lOkYcf>WExjf*~ z`Mk{{8C-$7Dj_yV%g+V&6%UN^1zDLE9n!{~g9OsS(rA9g$kjm*BE82_22;rvLgmlKEC32+}Sq}4&QKr+c2~QPWUI@%ZPFI)VJ;N?|AZcb` z+K(9uqgbI_RV2{fsh?cFCI!=*t8H`4i%ZT58H_?R2=*Pj*F%FBTj*pa*cwD6eWv0a$xy9_g|^v}l$ zyntbMV-D0ZcpQRVckY}<_Q0MFl!2=CH0uxi zcU!lq*Pfqn6wM4;d|g8y{|eYepUpQNKbG8~4Pplr=(sb%h%|n5??PC<7iG_z-*}xK zXGk{VXMKC9OJ|NQUJclPe$zhEk_tT20zvgrjnRQ}e`aUr+~i?3uyi*>*uoQ3nLF*F z0PEM&lUhT*IMjyx4Kpz?9O=?>kD!QN2c~kZ&?RBvK4iGapERY~R-^ve?+raWXy=FpfOCKMBR zCFHuFF1Q}Dz?NfX>`;w!tjNcuf2%rE7Ld7maqB@tgWLA(=7qXqrz^~%Ru zN{%b+xg%wAp5#|v7wb(zmU8(u*&4a#`4%3Y!GMpZ5=oEqYy7jNUiF04XgIhm$j<)I zB9pG|v0*193714ed!w@hMT~iq@;gk(Tj+cT91I6a?<~LKr!(4GuFRfP)>@mQwUt9i zW@+x8T!^)4Hum4Al`TG;YKBP)qWHU zZGba{Qej!W)k=;df9O7$%kqQ}tR7RDN8%?GmlIGiqWXs}0ex+u3QoDtZG*mPs8 z;g|*y)@p-zySNaF%dwCxH|oQinOoZyJq7#}cNft8^d1bx1^v^RbPRS=S(#^~nb4s) zCb34l)nTPF{tubK*+ZQU5q_1aaYxkLf&9B*N3(Qk!y|Q(SM}vD4Af3BWn2z(Qmn?Q z>*&E0AMYYYPc2@_SWG#R)o~)`Iok_J2-N9YEe#_c9&F(zshn-sE_9EM^zuW9kjb73 z=@h?LcZiTFYAVEyI;RO%p4~MmE=PFP$|ztd>du=b!1rVF4WX4=slrXq*m35YM`6mk zT=|tgA70K%aQj-+*hKr-@0Ci+o)pT%qSIdY9yIq}RW5ZpO6fZ4`j-O>2sZ8ZMVI6z zL(3y|pBGaUCKTi;UflRu6n^D7(gZxoOPr%kk-j18wHq6Nzlono)Am3_Esm&YjAfpsmp}H&`#B>vYM>hXSAD|RE$9j=HVVoHu)VQMX*I6O#@>6R)W@7K_$Fc9LJ!#B zPEba~ll)8N5z){Cv*-UahR0%R>%pbooRL=ab;g~LU|(J3~VJ3#3E zTK&Uw_;Ogl`Jsm|Rcx{h&JMbHg83jaQ4q5n(hlh|xk_sO(k|W^4BTCAa$53te%m^~ zhUc|HCz~m=I_?h5N`lv=7hOH1TKy)^qg4s6^g?#EAhk~0&+~iWmm@nB_jD!}edgUi z{jA#*n6BN7+stvC`$^R{H`L$`vob^uqj$Tc2TjcB~p1I;V(mCB7rX6w5gtL&d ztg~q7LJPLO+bw&IV#I8OYlK4kCAaGEvP5`3&1kYEP6d%2Pr4o5RF|MF-wf}O$J>Z+ zm^O^r)ZkP-`PS5c0zX|0|cJjub>6?mU_9fGWH#>fr6kq48rqs zTB=xun1}BJTJ&R70Ip5H^l}cK96SXNjQm-=GVSvDl!e5Mr>|>Q4bFeH5SnmDTRVi4 zZJPE_Ot&zl9K#10vdPe!bwHhUczo5mS-8h8MC0MQG-q-{fs2b?2DZ}eG{CMSbD+*M zrk+gQzsn6mWWN?17mbDX(%FA^ylQzx>V0EoRt|OxY)A$_+g_AmtD_lCsC@hwGfF@s zH@ES;zJi~=gsL$5=}8kkeF@DVyyH=QNWEzok3Qf7Ks1YW%;S>conw(+laZmk`%C|6 zOGUHkSpt9IVe2iA6!O;}T=iuU?On3QJYa>a8xb_UJ*%H6pJYGS$`Pv2>)ih}`Jw#2 zChdI9t-I$Ze<|R~*9H9DySOxl>;K=lzCnMsQMO)iB+AKF@VbzPCyHpl7p4qfGusc8 zQlWzta55>9i4*IoOc)S{l!8Q8u(bC)Y}y(wjxod`1r$!6+F!r;dNw7N@09$id4oza z@8*xOy7QUg2`PAazmxxo`W@3Z)NCe(u_Q4hb;T-(=HwbHB)4!u31*g1kTEP&ytg=m z$MlhPCMC}_rJU_ApJlFi(Nw9@CzCkz7R7}A%ZpS3%iTe)_rb@$m7qeh4wR{k&tTYw zt7OpbRAh6J&A6{6-^SDVcw|{4?5!H1`=d(I8Q`!(2aQ z-<8n!8}-oA*&i!TnABnsr${&VFuzMPS*65!VCkawUI(45r0ClIYkFVz3p9pQ?088n z23H`@_QYFNjk=IyWe-wEb7{I5?>yKce% z*!$n|`78W)k@hE?N%g*jxvK|J#iM2(B;Wbx0Hc Ij%mO@04DqXWB>pF literal 0 HcmV?d00001 diff --git a/Utils/NSIS/readme.txt b/Utils/NSIS/readme.txt index 19a3023b90..c2ed71fd70 100644 --- a/Utils/NSIS/readme.txt +++ b/Utils/NSIS/readme.txt @@ -1,8 +1,8 @@ In this folder are local copies of things required to properly build the StepMania installer. -Right now, this is just the GetVersion plugin (so that we can write the files +Right now, this is just the NSIS-OS plugin (so that we can write the files to somewhere that isn't Program Files on Windows Vista/7). -The GetVersion plugin can alternatively be downloaded from here: -http://nsis.sourceforge.net/GetVersion_%28Windows%29_plug-in \ No newline at end of file +The NSIS-OS plugin can be alternatively downloaded from here: +http://nsis.sourceforge.net/NSIS-OS_plug-in \ No newline at end of file diff --git a/sm-ssc.nsi b/sm-ssc.nsi index 8b8e8f4ad0..22b2e9c652 100644 --- a/sm-ssc.nsi +++ b/sm-ssc.nsi @@ -54,14 +54,6 @@ ; I think it may need actual admin privs for writing to the registry... -aj ;RequestExecutionLevel user - ;GetVersion::WindowsServicePackMajor - ;Pop $R0 - ;${If} $R0 >= 6 - ; vista & 7 - ;${Else} - ; xp and below - ;${EndIf} - InstallDir "$PROGRAMFILES\${PRODUCT_ID}" InstallDirRegKey HKEY_LOCAL_MACHINE "SOFTWARE\${PRODUCT_ID}" "" @@ -97,9 +89,6 @@ !insertmacro MUI_PAGE_WELCOME - ; include various Windows-only notices - !insertmacro MUI_PAGE_LICENSE ".\Docs\WindowsNotes.txt" - ;!insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES @@ -681,6 +670,12 @@ FunctionEnd Function .onInit + nsisos::osversion + ${If} $R0 >= 6 + ;vista & win7 + StrCpy $INSTDIR "%HOMEPATH%\${PRODUCT_ID}" + ${EndIf} + ; Force show language selection for debugging ;!define MUI_LANGDLL_ALWAYSSHOW !insertmacro MUI_LANGDLL_DISPLAY From cc739b639454ba9ae708556f0660aa7b19521f5f Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Tue, 6 Sep 2011 16:46:17 -0500 Subject: [PATCH 02/14] new default theme splash --- Themes/default/Graphics/Common splash.png | Bin 0 -> 29444 bytes _assets/splash.psd | Bin 3904893 -> 3931133 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Themes/default/Graphics/Common splash.png diff --git a/Themes/default/Graphics/Common splash.png b/Themes/default/Graphics/Common splash.png new file mode 100644 index 0000000000000000000000000000000000000000..3b425e32497b173e52bd267405ddcac1721fcbcb GIT binary patch literal 29444 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 From 06ceba5158818b94542cc72e73aed6ebb6b301fd Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Tue, 6 Sep 2011 17:03:57 -0500 Subject: [PATCH 03/14] loading window changes on Windows --- src/archutils/Win32/WindowsResources.rc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/archutils/Win32/WindowsResources.rc b/src/archutils/Win32/WindowsResources.rc index 9f6be062d6..a214592b7c 100644 --- a/src/archutils/Win32/WindowsResources.rc +++ b/src/archutils/Win32/WindowsResources.rc @@ -43,16 +43,15 @@ BEGIN CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,0,34,332,1 END -IDD_LOADING_DIALOG DIALOGEX 0, 0, 317, 94 -STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +IDD_LOADING_DIALOG DIALOGEX 0, 0, 320, 94 +STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE EXSTYLE WS_EX_APPWINDOW -CAPTION "Stepmania" FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN CTEXT "line1",IDC_STATIC_MESSAGE1,7,43,303,10,SS_NOPREFIX | SS_CENTERIMAGE CTEXT "line2",IDC_STATIC_MESSAGE2,7,52,303,10,SS_NOPREFIX | SS_CENTERIMAGE CTEXT "line3",IDC_STATIC_MESSAGE3,7,61,303,10,SS_NOPREFIX | SS_CENTERIMAGE - CONTROL "",IDC_SPLASH,"Static",SS_BITMAP,0,0,310,25 + CONTROL "",IDC_SPLASH,"Static",SS_BITMAP,0,0,316,25 CONTROL "",IDC_PROGRESS,"msctls_progress32",0x0,7,73,303,14 END From 7c686aa1609e32d16e2be7a314fa4da222b86386 Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Wed, 7 Sep 2011 10:46:29 -0500 Subject: [PATCH 04/14] small freem cleanup --- .../LowLevelWindow/LowLevelWindow_X11.cpp | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/arch/LowLevelWindow/LowLevelWindow_X11.cpp b/src/arch/LowLevelWindow/LowLevelWindow_X11.cpp index b1b2f523a4..4986db4a4e 100644 --- a/src/arch/LowLevelWindow/LowLevelWindow_X11.cpp +++ b/src/arch/LowLevelWindow/LowLevelWindow_X11.cpp @@ -44,7 +44,6 @@ LowLevelWindow_X11::LowLevelWindow_X11() int iRevision = iXServerVersion / 1000; iXServerVersion %= 1000; int iPatch = iXServerVersion; - LOG->Info( "Display: %s (screen %i)", DisplayString(Dpy), iScreen ); LOG->Info( "X server vendor: %s [%i.%i.%i.%i]", XServerVendor( Dpy ), iMajor, iMinor, iRevision, iPatch ); LOG->Info( "Server GLX vendor: %s [%s]", glXQueryServerString( Dpy, iScreen, GLX_VENDOR ), glXQueryServerString( Dpy, iScreen, GLX_VERSION ) ); @@ -86,8 +85,8 @@ LowLevelWindow_X11::~LowLevelWindow_X11() void *LowLevelWindow_X11::GetProcAddress( RString s ) { // XXX: We should check whether glXGetProcAddress or - // glXGetProcAddressARB is available, and go by that, instead of - // assuming like this. + // glXGetProcAddressARB is available/not NULL, and go by that, + // instead of assuming like this. return (void*) glXGetProcAddressARB( (const GLubyte*) s.c_str() ); } @@ -95,11 +94,9 @@ RString LowLevelWindow_X11::TryVideoMode( const VideoModeParams &p, bool &bNewDe { #if defined(UNIX) /* nVidia cards: - * * This only works the first time we set up a window; after that, the * drivers appear to cache the value, so you have to actually restart - * the program to change it again. - */ + * the program to change it again. */ static char buf[128]; strcpy( buf, "__GL_SYNC_TO_VBLANK=" ); strcat( buf, p.vsync?"1":"0" ); @@ -173,7 +170,6 @@ RString LowLevelWindow_X11::TryVideoMode( const VideoModeParams &p, bool &bNewDe break; } XSelectInput( Dpy, Win, winAttrib.your_event_mask ); - } else { @@ -243,9 +239,11 @@ RString LowLevelWindow_X11::TryVideoMode( const VideoModeParams &p, bool &bNewDe XSetWMNormalHints( Dpy, Win, &hints ); } - // Workaround for metacity and compiz, if the window have the same resolution or higher than the screen - // it gets automaximized even when the window is set to don't let do it. - // This happens changing from fullscreen to window mode and our screen resolution is bigger. + /* Workaround for metacity and compiz: if the window have the same + * resolution or higher than the screen, it gets automaximized even + * when the window is set to not let it happen. This happens when + * changing from fullscreen to window mode and our screen resolution + * is bigger. */ { XEvent xev; Atom wm_state = XInternAtom(Dpy, "_NET_WM_STATE", False); @@ -392,8 +390,8 @@ RenderTarget_X11::~RenderTarget_X11() glDeleteTextures( 1, reinterpret_cast(&m_iTexHandle) ); } -/* Note that although the texture size may need to be a power of 2, the Pbuffer - * does not. */ +/* Note that although the texture size may need to be a power of 2, + * the Pbuffer does not. */ void RenderTarget_X11::Create( const RenderTargetParam ¶m, int &iTextureWidthOut, int &iTextureHeightOut ) { //ASSERT( param.iWidth == power_of_two(param.iWidth) && param.iHeight == power_of_two(param.iHeight) ); @@ -410,7 +408,7 @@ void RenderTarget_X11::Create( const RenderTargetParam ¶m, int &iTextureWidt GLX_GREEN_SIZE, 8, GLX_BLUE_SIZE, 8, GLX_ALPHA_SIZE, param.bWithAlpha? 8:GLX_DONT_CARE, - + GLX_DOUBLEBUFFER, False, GLX_DEPTH_SIZE, param.bWithDepthBuffer? 16:GLX_DONT_CARE, None @@ -515,9 +513,9 @@ RenderTarget *LowLevelWindow_X11::CreateRenderTarget() void LowLevelWindow_X11::BeginConcurrentRenderingMainThread() { - /* Move the main thread, which is going to be loading textures, etc. but - * not rendering, to an undisplayed window. This results in smoother - * rendering. */ + /* Move the main thread, which is going to be loading textures, etc. + * but not rendering, to an undisplayed window. This results in + * smoother rendering. */ bool b = glXMakeCurrent( Dpy, g_AltWindow, g_pContext ); ASSERT(b); } From 35631c73c16ff9b64e751269ff666a34aa2ac86d Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Wed, 7 Sep 2011 10:56:44 -0500 Subject: [PATCH 05/14] just some cleanup as usual --- src/arch/Threads/Threads.h | 28 ++++++------ src/arch/Threads/Threads_Pthreads.cpp | 61 +++++++++++++-------------- src/arch/Threads/Threads_Pthreads.h | 9 ++-- src/arch/Threads/Threads_Win32.cpp | 40 +++++++++--------- 4 files changed, 69 insertions(+), 69 deletions(-) diff --git a/src/arch/Threads/Threads.h b/src/arch/Threads/Threads.h index 9318c4479c..734940732f 100644 --- a/src/arch/Threads/Threads.h +++ b/src/arch/Threads/Threads.h @@ -12,9 +12,10 @@ public: virtual void Halt( bool Kill ) = 0; virtual void Resume() = 0; - /* Get the identifier for this thread. The actual meaning of this is implementation- - * defined, except that each thread has exactly one ID and each ID corresponds to - * one thread. (This means that Win32 thread handles are not acceptable as ThreadIds.) */ + /* Get the identifier for this thread. The actual meaning of this is + * implementation-defined, except that each thread has exactly one ID + * and each ID corresponds to one thread. (This means that Win32 + * thread handles are not acceptable as ThreadIds.) */ virtual uint64_t GetThreadId() const = 0; virtual int Wait() = 0; @@ -28,19 +29,20 @@ public: MutexImpl( RageMutex *pParent ): m_Parent(pParent) {} virtual ~MutexImpl() { } - /* Lock the mutex. If mutex timeouts are implemented, and the mutex times out, - * return false and do not lock the mutex. No other failure return is allowed; - * all other errors should fail with an assertion. */ + /* Lock the mutex. If mutex timeouts are implemented, and the mutex + * times out, return false and do not lock the mutex. No other failure + * return is allowed; all other errors should fail with an assertion. */ virtual bool Lock() = 0; - /* Non-blocking lock. If locking the mutex would block because the mutex is already - * locked by another thread, return false; otherwise return true and lock the mutex. */ + /* Non-blocking lock. If locking the mutex would block because the mutex + * is already locked by another thread, return false; otherwise + * return true and lock the mutex. */ virtual bool TryLock() = 0; - /* Unlock the mutex. This must only be called when the mutex is locked; implementations - * may fail with an assertion if the mutex is not locked. */ + /* Unlock the mutex. This must only be called when the mutex is locked; + * implementations may fail with an assertion if the mutex is not locked. */ virtual void Unlock() = 0; - + private: MutexImpl(const MutexImpl& rhs); MutexImpl& operator=(const MutexImpl& rhs); @@ -74,8 +76,8 @@ EventImpl *MakeEvent( MutexImpl *pMutex ); SemaImpl *MakeSemaphore( int iInitialValue ); uint64_t GetThisThreadId(); -/* Since ThreadId is implementation-defined, we can't define a universal invalid - * value. Return the invalid value for this implementation. */ +/* Since ThreadId is implementation-defined, we can't define a universal + * invalid value. Return the invalid value for this implementation. */ uint64_t GetInvalidThreadId(); #endif diff --git a/src/arch/Threads/Threads_Pthreads.cpp b/src/arch/Threads/Threads_Pthreads.cpp index a17004c922..44c076aa59 100644 --- a/src/arch/Threads/Threads_Pthreads.cpp +++ b/src/arch/Threads/Threads_Pthreads.cpp @@ -17,19 +17,17 @@ void ThreadImpl_Pthreads::Halt( bool Kill ) { /* Linux: - * Send a SIGSTOP to the thread. If we send a SIGKILL, pthreads will + * Send a SIGSTOP to the thread. If we send a SIGKILL, pthreads will * "helpfully" propagate it to the other threads, and we'll get killed, too. - * * This isn't ideal, since it can cause the process to background as far as * the shell is concerned, so the shell prompt can display before the crash - * handler actually displays a message. - */ + * handler actually displays a message. */ SuspendThread( threadHandle ); } void ThreadImpl_Pthreads::Resume() { - /* Linux: Send a SIGCONT to the thread. */ + // Linux: Send a SIGCONT to the thread. ResumeThread( threadHandle ); } @@ -65,12 +63,12 @@ static void *StartThread( void *pData ) pThis->threadHandle = GetCurrentThreadId(); *pThis->m_piThreadID = pThis->threadHandle; - - /* Tell MakeThread that we've set m_piThreadID, so it's safe to return. */ + + // Tell MakeThread that we've set m_piThreadID, so it's safe to return. pThis->m_StartFinishedSem->Post(); int iRet = pThis->m_pFunc( pThis->m_pData ); - + return new int(iRet); } @@ -86,10 +84,10 @@ ThreadImpl *MakeThread( int (*pFunc)(void *pData), void *pData, uint64_t *piThre int ret = pthread_create( &thread->thread, NULL, StartThread, thread ); ASSERT_M( ret == 0, ssprintf( "MakeThread: pthread_create: %s", strerror(errno)) ); - /* Don't return until StartThread sets m_piThreadID. */ + // Don't return until StartThread sets m_piThreadID. thread->m_StartFinishedSem->Wait(); delete thread->m_StartFinishedSem; - + return thread; } @@ -105,12 +103,11 @@ MutexImpl_Pthreads::~MutexImpl_Pthreads() ASSERT_M( ret == 0, ssprintf("Error deleting mutex: %s", strerror(errno)) ); } - #if defined(HAVE_PTHREAD_MUTEX_TIMEDLOCK) || defined(HAVE_PTHREAD_COND_TIMEDWAIT) static bool UseTimedlock() { #if defined(LINUX) - /* Valgrind crashes and burns on pthread_mutex_timedlock. */ + // Valgrind crashes and burns on pthread_mutex_timedlock. if( RunningUnderValgrind() ) return false; #endif @@ -124,12 +121,12 @@ bool MutexImpl_Pthreads::Lock() #if defined(HAVE_PTHREAD_MUTEX_TIMEDLOCK) if( UseTimedlock() ) { - int len = 10; /* seconds */ + int len = 10; // seconds int tries = 2; while( tries-- ) { - /* Wait for ten seconds. If it takes longer than that, we're + /* Wait for ten seconds. If it takes longer than that, we're * probably deadlocked. */ timeval tv; gettimeofday( &tv, NULL ); @@ -149,9 +146,9 @@ bool MutexImpl_Pthreads::Lock() continue; case ETIMEDOUT: - /* Timed out. Probably deadlocked. Try again one more time, with a smaller - * timeout, just in case we're debugging and happened to stop while waiting - * on the mutex. */ + /* Timed out. Probably deadlocked. Try again one more time, + * with a smaller timeout, just in case we're debugging + * and happened to stop while waiting on the mutex. */ len = 1; break; @@ -205,8 +202,8 @@ MutexImpl *MakeMutex( RageMutex *pParent ) return new MutexImpl_Pthreads( pParent ); } -/* Check if condattr_setclock is supported, and supports the clock that RageTimer - * selected. */ +/* Check if condattr_setclock is supported, and supports the clock that + * RageTimer selected. */ #if defined(UNIX) #include #include "arch/ArchHooks/ArchHooks_Unix.h" @@ -247,7 +244,7 @@ namespace break; } - /* Make sure that we can set up the clock attribute. */ + // Make sure that we can set up the clock attribute. pthread_condattr_t condattr; pthread_condattr_init( &condattr ); @@ -314,21 +311,21 @@ bool EventImpl_Pthreads::Wait( RageTimer *pTimeout ) return true; } - /* If the clock is not CLOCK_MONOTONIC, or we can't change the wait clock (no - * condattr_setclock), pthread_cond_timedwait has an inherent race condition: - * the system clock may change before we call it. */ + /* If the clock is not CLOCK_MONOTONIC, or we can't change the wait clock + * (no condattr_setclock), pthread_cond_timedwait has an inherent race + * condition: the system clock may change before we call it. */ timespec abstime; if( g_CondattrSetclock != NULL || GetClock() == CLOCK_REALTIME ) { - /* If we support condattr_setclock, we'll set the condition to use the same - * clock as RageTimer and can use it directly. If the clock is CLOCK_REALTIME, - * that's the default anyway. */ + /* If we support condattr_setclock, we'll set the condition to use + * the same clock as RageTimer and can use it directly. If the + * clock is CLOCK_REALTIME, that's the default anyway. */ abstime.tv_sec = pTimeout->m_secs; abstime.tv_nsec = pTimeout->m_us * 1000; } else { - /* The RageTimer clock is different than the wait clock; convert it. */ + // The RageTimer clock is different than the wait clock; convert it. timeval tv; gettimeofday( &tv, NULL ); @@ -427,7 +424,7 @@ bool SemaImpl_Pthreads::TryWait() return true; } #else -/* Use conditions, to work around OS X "forgetting" to implement semaphores. */ +// Use conditions, to work around OS X "forgetting" to implement semaphores. SemaImpl_Pthreads::SemaImpl_Pthreads( int iInitialValue ) { int ret = pthread_cond_init( &m_Cond, NULL ); @@ -480,9 +477,9 @@ bool SemaImpl_Pthreads::Wait() break; case ETIMEDOUT: - /* Timed out. Probably deadlocked. Try again one more time, with a smaller - * timeout, just in case we're debugging and happened to stop while waiting - * on the mutex. */ + /* Timed out. Probably deadlocked. Try again one more time, + * with a smaller timeout, just in case we're debugging and + * happened to stop while waiting on the mutex. */ ++ts.tv_sec; tries--; break; @@ -525,7 +522,7 @@ bool SemaImpl_Pthreads::TryWait() pthread_mutex_unlock( &m_Mutex); return false; } - + --m_iValue; pthread_mutex_unlock( &m_Mutex); diff --git a/src/arch/Threads/Threads_Pthreads.h b/src/arch/Threads/Threads_Pthreads.h index 38dcfe9714..5a3969399f 100644 --- a/src/arch/Threads/Threads_Pthreads.h +++ b/src/arch/Threads/Threads_Pthreads.h @@ -12,13 +12,12 @@ public: pthread_t thread; /* Linux: - * Keep a list of child PIDs, so we can send them SIGKILL. This has an - * added bonus: if this is corrupted, we'll just send signals and they'll - * fail; we won't blow up (unless we're root). - */ + * Keep a list of child PIDs, so we can send them SIGKILL. This has + * an added bonus: if this is corrupted, we'll just send signals and + * they'll fail; we won't blow up (unless we're root). */ uint64_t threadHandle; - /* These are only used during initialization. */ + // These are only used during initialization. int (*m_pFunc)( void *pData ); void *m_pData; uint64_t *m_piThreadID; diff --git a/src/arch/Threads/Threads_Win32.cpp b/src/arch/Threads/Threads_Win32.cpp index 3fd4a72795..acb13c1c8f 100644 --- a/src/arch/Threads/Threads_Win32.cpp +++ b/src/arch/Threads/Threads_Win32.cpp @@ -219,9 +219,9 @@ bool MutexImpl_Win32::Lock() if( SimpleWaitForSingleObject( mutex, len ) ) return true; - /* Timed out; probably deadlocked. Try a couple more times, with a smaller - * timeout, just in case we're debugging and happened to stop while waiting - * on the mutex. */ + /* Timed out; probably deadlocked. Try a couple more times, with + * a smaller timeout, just in case we're debugging and happened + * to stop while waiting on the mutex. */ len = 1000; } @@ -238,8 +238,8 @@ void MutexImpl_Win32::Unlock() { const bool ret = !!ReleaseMutex( mutex ); - /* We can't ASSERT here, since this is called from checkpoints, which is - * called from ASSERT. */ + /* We can't ASSERT here, since this is called from checkpoints, + * which is called from ASSERT. */ if( !ret ) sm_crash( werr_ssprintf( GetLastError(), "ReleaseMutex failed" ) ); } @@ -278,10 +278,11 @@ EventImpl_Win32::~EventImpl_Win32() CloseHandle( m_WaitersDone ); } -/* SignalObjectAndWait is atomic, which leads to more fair event handling. However, - * we don't guarantee or depend upon fair events, and SignalObjectAndWait is only - * available in NT. I also can't find a single function to signal an object like - * SignalObjectAndWait, so we need to know if the object is a mutex or an event. */ +/* SignalObjectAndWait is atomic, which leads to more fair event handling. + * However, we don't guarantee or depend upon fair events, and + * SignalObjectAndWait is only available in NT. I also can't find a single + * function to signal an object like SignalObjectAndWait, so we need to + * know if the object is a mutex or an event. */ static bool PortableSignalObjectAndWait( HANDLE hObjectToSignal, HANDLE hObjectToWaitOn, bool bFirstParamIsMutex, unsigned iMilliseconds = INFINITE ) { static bool bSignalObjectAndWaitUnavailable = false; @@ -364,8 +365,9 @@ bool EventImpl_Win32::Wait( RageTimer *pTimeout ) EnterCriticalSection( &m_iNumWaitingLock ); if( !bSuccess ) { - /* Avoid a race condition: someone may have signalled the object between PortableSignalObjectAndWait - * and EnterCriticalSection. While we hold m_iNumWaitingLock, poll (with a zero timeout) the + /* Avoid a race condition: someone may have signalled the object + * between PortableSignalObjectAndWait and EnterCriticalSection. + * While we hold m_iNumWaitingLock, poll (with a zero timeout) the * object one last time. */ if( WaitForSingleObject( m_WakeupSema, 0 ) == WAIT_OBJECT_0 ) bSuccess = true; @@ -374,8 +376,8 @@ bool EventImpl_Win32::Wait( RageTimer *pTimeout ) bool bLastWaiting = m_iNumWaiting == 0; LeaveCriticalSection( &m_iNumWaitingLock ); - /* If we're the last waiter to wake up, and we were actually woken by another - * thread (not by timeout), wake up the signaller. */ + /* If we're the last waiter to wake up, and we were actually woken by + * another thread (not by timeout), wake up the signaller. */ if( bLastWaiting && bSuccess ) PortableSignalObjectAndWait( m_WaitersDone, m_pParent->mutex, false ); else @@ -416,8 +418,8 @@ void EventImpl_Win32::Broadcast() LeaveCriticalSection( &m_iNumWaitingLock ); - /* The last waiter will touch m_WaitersDone, so we wait for all waiters to - * wake up and start waiting for the mutex before returning. */ + /* The last waiter will touch m_WaitersDone, so we wait for all waiters + * to wake up and start waiting for the mutex before returning. */ WaitForSingleObject( m_WaitersDone, INFINITE ); } @@ -452,7 +454,7 @@ bool SemaImpl_Win32::Wait() while( tries-- ) { - /* Wait for 15 seconds. If it takes longer than that, we're + /* Wait for 15 seconds. If it takes longer than that, we're * probably deadlocked. */ if( SimpleWaitForSingleObject( sem, len ) ) { @@ -460,9 +462,9 @@ bool SemaImpl_Win32::Wait() return true; } - /* Timed out; probably deadlocked. Try again a few more times, with a smaller - * timeout, just in case we're debugging and happened to stop while waiting - * on the mutex. */ + /* Timed out; probably deadlocked. Try again a few more times, + * with a smaller timeout, just in case we're debugging and + * happened to stop while waiting on the mutex. */ len = 1000; } From 5ae2f9f4ba445f697aca78da8eb796a3219be4a7 Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Wed, 7 Sep 2011 14:28:07 -0500 Subject: [PATCH 06/14] [Model] Added GetDefaultAnimation() Lua binding. --- Docs/Changelog_sm5.txt | 4 ++++ src/Model.cpp | 3 +++ src/Model.h | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Docs/Changelog_sm5.txt b/Docs/Changelog_sm5.txt index cede3f83a6..7ce975cf05 100644 --- a/Docs/Changelog_sm5.txt +++ b/Docs/Changelog_sm5.txt @@ -8,6 +8,10 @@ ________________________________________________________________________________ StepMania 5.0 $next | 2011???? -------------------------------------------------------------------------------- +2011/09/07 +---------- +* [Model] Added GetDefaultAnimation() Lua binding. [AJ] + 2011/09/02 ---------- * [MenuTimer] Added start(), disable() Lua bindings. Also renamed setseconds to diff --git a/src/Model.cpp b/src/Model.cpp index 070783de83..af1da0d951 100644 --- a/src/Model.cpp +++ b/src/Model.cpp @@ -778,6 +778,7 @@ public: static int position( T* p, lua_State *L ) { p->SetPosition( FArg(1) ); return 0; } static int playanimation( T* p, lua_State *L ) { p->PlayAnimation(SArg(1),FArg(2)); return 0; } static int SetDefaultAnimation( T* p, lua_State *L ) { p->SetDefaultAnimation(SArg(1),FArg(2)); return 0; } + static int GetDefaultAnimation( T* p, lua_State *L ) { lua_pushstring( L, p->GetDefaultAnimation() ); return 1; } static int loop( T* p, lua_State *L ) { p->SetLoop(BArg(1)); return 0; } static int rate( T* p, lua_State *L ) { p->SetRate(FArg(1)); return 0; } static int GetNumStates( T* p, lua_State *L ) { lua_pushnumber( L, p->GetNumStates() ); return 1; } @@ -788,11 +789,13 @@ public: ADD_METHOD( position ); ADD_METHOD( playanimation ); ADD_METHOD( SetDefaultAnimation ); + ADD_METHOD( GetDefaultAnimation ); ADD_METHOD( loop ); ADD_METHOD( rate ); // sm-ssc adds: ADD_METHOD( GetNumStates ); //ADD_METHOD( CelShading ); + // LoadMilkshapeAsciiBones? } }; diff --git a/src/Model.h b/src/Model.h index d9ce8e343b..afb70cc738 100644 --- a/src/Model.h +++ b/src/Model.h @@ -83,7 +83,7 @@ private: float m_fCurAnimationRate; bool m_bLoop; bool m_bDrawCelShaded; // for Lua models - + Model& operator=(const Model& rhs); }; From 52838f28c2b597013ef9df25380cd3521aaa66b8 Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Wed, 7 Sep 2011 17:42:29 -0500 Subject: [PATCH 07/14] various text file changes --- Announcers/instructions.txt | 2 +- Data/RandomAttacks.txt | 19 ------------------- Docs/WindowsNotes.txt | 3 --- 3 files changed, 1 insertion(+), 23 deletions(-) diff --git a/Announcers/instructions.txt b/Announcers/instructions.txt index a9a2af9a95..d580481e3f 100644 --- a/Announcers/instructions.txt +++ b/Announcers/instructions.txt @@ -1,7 +1,7 @@ Place announcer folders in this directory. [Announcer format] -sm-ssc's announcers look for certain names. These can either be a single sound, +StepMania's announcers look for certain names. These can either be a single sound, or a folder containing many sounds (of which one is picked at random). [Announcer calls] diff --git a/Data/RandomAttacks.txt b/Data/RandomAttacks.txt index a0af0a7832..6c54536b68 100644 --- a/Data/RandomAttacks.txt +++ b/Data/RandomAttacks.txt @@ -1,32 +1,23 @@ // File for specifying Random Attacks, used by the Random Attacks mod and Attack Mines mod. -// Only specify one modifier per attack. // // Sample lines: -// // #ATTACK:drunk; // #ATTACK:30% tornado; // #ATTACK:-20% beat; -// -// // Speed Mods -// #ATTACK:0.5x; #ATTACK:1x; #ATTACK:1.5x; #ATTACK:2x; -// // Accel Mods -// #ATTACK:boost; #ATTACK:brake; #ATTACK:wave; #ATTACK:expand; -// // Effect Mods -// #ATTACK:drunk; #ATTACK:dizzy; #ATTACK:confusion; @@ -38,34 +29,24 @@ #ATTACK:beat; #ATTACK:bumpy; -// // Appearance Mods -// #ATTACK:50% hidden; #ATTACK:50% sudden; #ATTACK:30% blink; -// // Hide Mods -// #ATTACK:dark; #ATTACK:blind; -// // Transform Mods -// #ATTACK:mines; -// // Scroll -// #ATTACK:30% reverse; #ATTACK:reverse; #ATTACK:centered; -// // Perspective Mods -// #ATTACK:hallway; #ATTACK:space; #ATTACK:incoming; diff --git a/Docs/WindowsNotes.txt b/Docs/WindowsNotes.txt index 81d6261bc2..b37f725aa1 100644 --- a/Docs/WindowsNotes.txt +++ b/Docs/WindowsNotes.txt @@ -1,6 +1,3 @@ -[IMPORTANT INSTALL NOTE] -If you are using Windows Vista or Windows 7, please do not install StepMania 5 into the Program Files directory. - [Using Google Chrome?] If you are using Google Chrome as your primary web browser, you will have to perform some extra steps to get stepmania:// URI handling to work: From a0455b4fd22e3fae948ad3cac9919618c876c36d Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Wed, 7 Sep 2011 17:44:37 -0500 Subject: [PATCH 08/14] Experiment over, dance is the default game again. --- src/GameManager.cpp | 2 +- src/SongManager.cpp | 31 +++++++++++++++++++++---------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/GameManager.cpp b/src/GameManager.cpp index bc0e138de1..7e1f8ec5a9 100644 --- a/src/GameManager.cpp +++ b/src/GameManager.cpp @@ -2791,8 +2791,8 @@ static const Game g_Game_Lights = static const Game *g_Games[] = { - &g_Game_Pump, &g_Game_Dance, + &g_Game_Pump, &g_Game_KB7, &g_Game_Ez2, &g_Game_Para, diff --git a/src/SongManager.cpp b/src/SongManager.cpp index a3795a8206..5c72e4454d 100644 --- a/src/SongManager.cpp +++ b/src/SongManager.cpp @@ -59,7 +59,6 @@ static Preference g_bHideIncompleteCourses( "HideIncompleteCourses", false RString SONG_GROUP_COLOR_NAME( size_t i ) { return ssprintf( "SongGroupColor%i", (int) i+1 ); } RString COURSE_GROUP_COLOR_NAME( size_t i ) { return ssprintf( "CourseGroupColor%i", (int) i+1 ); } - SongManager::SongManager() { // Register with Lua. @@ -246,10 +245,10 @@ void SongManager::LoadStepManiaSongDir( RString sDir, LoadingWindow *ld ) SortRStringArray( arrayGroupDirs ); StripCvsAndSvn( arrayGroupDirs ); StripMacResourceForks( arrayGroupDirs ); - + vector< vector > arrayGroupSongDirs; int groupIndex, songCount, songIndex; - + groupIndex = 0; songCount = 0; FOREACH_CONST( RString, arrayGroupDirs, s ) // foreach dir in /Songs/ @@ -263,19 +262,19 @@ void SongManager::LoadStepManiaSongDir( RString sDir, LoadingWindow *ld ) StripCvsAndSvn( arraySongDirs ); StripMacResourceForks( arraySongDirs ); SortRStringArray( arraySongDirs ); - + arrayGroupSongDirs.push_back(arraySongDirs); songCount += arraySongDirs.size(); } if( songCount==0 ) return; - + if( ld ) { ld->SetIndeterminate( false ); ld->SetTotalWork( songCount ); } - + groupIndex = 0; songIndex = 0; FOREACH_CONST( RString, arrayGroupDirs, s ) // foreach dir in /Songs/ @@ -573,7 +572,7 @@ RageColor SongManager::GetCourseGroupColor( const RString &sCourseGroup ) const return SONG_GROUP_COLOR.GetValue( iIndex%NUM_SONG_GROUP_COLORS ); iIndex++; } - + ASSERT_M( 0, ssprintf("requested color for course group '%s' that doesn't exist",sCourseGroup.c_str()) ); return RageColor(1,1,1,1); } @@ -585,7 +584,6 @@ RageColor SongManager::GetCourseColor( const Course* pCourse ) const if( pUE && USE_UNLOCK_COLOR.GetValue() ) return UNLOCK_COLOR.GetValue(); - if( USE_PREFERRED_SORT_COLOR ) { FOREACH_CONST( CoursePointerVector, m_vPreferredCourseSort, v ) @@ -627,7 +625,7 @@ void SongManager::ResetGroupColors() const vector &SongManager::GetSongs( const RString &sGroupName ) const { static const vector vEmpty; - + if( sGroupName == GROUP_ALL ) return m_pSongs; map::const_iterator iter = m_mapSongGroupIndex.find( sGroupName ); @@ -780,6 +778,7 @@ void SongManager::InitCoursesFromDisk( LoadingWindow *ld ) vsCourseGroupNames.push_back( SpecialFiles::COURSES_DIR ); SortRStringArray( vsCourseGroupNames ); + int courseIndex = 0; FOREACH_CONST( RString, vsCourseGroupNames, sCourseGroup ) // for each dir in /Courses/ { // Find all CRS files in this group directory @@ -787,10 +786,17 @@ void SongManager::InitCoursesFromDisk( LoadingWindow *ld ) GetDirListing( *sCourseGroup + "/*.crs", vsCoursePaths, false, true ); SortRStringArray( vsCoursePaths ); + if( ld ) + { + ld->SetIndeterminate( false ); + ld->SetTotalWork( vsCoursePaths.size() ); + } + FOREACH_CONST( RString, vsCoursePaths, sCoursePath ) { if( ld ) { + ld->SetProgress(courseIndex); ld->SetText( LOADING_COURSES.GetValue()+ssprintf("\n%s\n%s", Basename(*sCourseGroup).c_str(), Basename(*sCoursePath).c_str())); @@ -806,9 +812,14 @@ void SongManager::InitCoursesFromDisk( LoadingWindow *ld ) } m_pCourses.push_back( pCourse ); + courseIndex++; } } + if( ld ) { + ld->SetIndeterminate( true ); + } + RefreshCourseGroupInfo(); } @@ -880,7 +891,7 @@ void SongManager::InitAutogenCourses() } aSongs.clear(); - + if( i < apSongs.size() ) { sCurArtist = sArtist; From 5ed3a8a80ef9d70b64acb91c1abd58f4aa8f07ec Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Wed, 7 Sep 2011 21:00:49 -0500 Subject: [PATCH 09/14] still want to get this working one day... --- src/ScreenSelectMusic.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/ScreenSelectMusic.cpp b/src/ScreenSelectMusic.cpp index 404f06a882..2e3e3b03b4 100644 --- a/src/ScreenSelectMusic.cpp +++ b/src/ScreenSelectMusic.cpp @@ -501,6 +501,21 @@ void ScreenSelectMusic::Input( const InputEventPlus &input ) return; // ignore // todo: Allow mousewheel to scroll MusicWheel -aj + /* + if( input.DeviceI.device == DEVICE_MOUSE ) + { + if( input.DeviceI.button == MOUSE_WHEELUP ) + { + MESSAGEMAN->Broadcast( "PreviousSong" ); + m_MusicWheel.Move( -1 ); + } + else if( input.DeviceI.button == MOUSE_WHEELDOWN ) + { + MESSAGEMAN->Broadcast( "NextSong" ); + m_MusicWheel.Move( +1 ); + } + } + */ if( USE_PLAYER_SELECT_MENU ) { From 8a490a81b1cbe08edf0f5f33492e6b5fdd1cd6b6 Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Wed, 7 Sep 2011 22:04:17 -0500 Subject: [PATCH 10/14] update logo --- .../Graphics/ScreenTitleMenu logo/_arrow.png | Bin 0 -> 8563 bytes .../Graphics/ScreenTitleMenu logo/_logo.png | Bin 35137 -> 0 bytes .../Graphics/ScreenTitleMenu logo/_text.png | Bin 0 -> 10883 bytes .../Graphics/ScreenTitleMenu logo/default.lua | 17 ++++++++++++----- Themes/default/metrics.ini | 4 ++-- 5 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 Themes/default/Graphics/ScreenTitleMenu logo/_arrow.png delete mode 100644 Themes/default/Graphics/ScreenTitleMenu logo/_logo.png create mode 100644 Themes/default/Graphics/ScreenTitleMenu logo/_text.png diff --git a/Themes/default/Graphics/ScreenTitleMenu logo/_arrow.png b/Themes/default/Graphics/ScreenTitleMenu logo/_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..a4ed9a0577cbb6f0ebf43c9c9bef250e42755dd5 GIT binary patch literal 8563 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 UPCE6hDn(IIcq3maYaaH003v(CX8-^I literal 0 HcmV?d00001 diff --git a/Themes/default/Graphics/ScreenTitleMenu logo/default.lua b/Themes/default/Graphics/ScreenTitleMenu logo/default.lua index d15b1bc77c..4c80c37b0d 100644 --- a/Themes/default/Graphics/ScreenTitleMenu logo/default.lua +++ b/Themes/default/Graphics/ScreenTitleMenu logo/default.lua @@ -1,8 +1,15 @@ --- comments show how this compares to a StepMania 3.9 BGAnimation.ini. --- It should be noted that additional commands on the ActorFrame as a whole for --- this file are in metrics.ini ([ScreenTitleMenu] ShowLogo, etc.) -local t = Def.ActorFrame{ -- [BGAnimation] - LoadActor("_logo"); -- [Layer1] Type=0 File=_ball.png +local t = Def.ActorFrame{ + InitCommand=cmd(fov,70); + LoadActor("_arrow")..{ + InitCommand=cmd(x,225;); + OnCommand=cmd(wag;effectmagnitude,0,0,16;effectperiod,2.5;); + }; + LoadActor("_text"); + LoadActor("_text")..{ + Name="TextGlow"; + InitCommand=cmd(blend,Blend.Add;diffusealpha,0.05;); + OnCommand=cmd(glowshift;effectperiod,2.5;effectcolor1,color("1,1,1,0.25");effectcolor2,color("1,1,1,1");); + }; }; return t; diff --git a/Themes/default/metrics.ini b/Themes/default/metrics.ini index 76b1e6f468..4876a901d2 100644 --- a/Themes/default/metrics.ini +++ b/Themes/default/metrics.ini @@ -604,8 +604,8 @@ ScrollerOnCommand=zoom,0;bounceend,0.35;zoom,1 ShowLogo=true LogoX=SCREEN_CENTER_X LogoY=SCREEN_CENTER_Y-68 -LogoOnCommand=bob;effectperiod,4;effectmagnitude,0,5.25,0;zoom,0;bounceend,0.35;zoom,0.75 -LogoOffCommand=stopeffect;bouncebegin,0.35;zoom,0 +LogoOnCommand= +LogoOffCommand= # ShowCurrentGametype=true CurrentGametypeX=SCREEN_WIDTH*0.01 From 359e25d2aa0307407e8ecd7f9279460a21e15042 Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Wed, 7 Sep 2011 22:12:02 -0500 Subject: [PATCH 11/14] shut up an error I was getting in the audio sync gameplay --- .../ScreenGameplay decorations/default.lua | 226 +++++++++--------- 1 file changed, 114 insertions(+), 112 deletions(-) diff --git a/Themes/default/BGAnimations/ScreenGameplay decorations/default.lua b/Themes/default/BGAnimations/ScreenGameplay decorations/default.lua index a717ffbc2d..8d884f7e80 100644 --- a/Themes/default/BGAnimations/ScreenGameplay decorations/default.lua +++ b/Themes/default/BGAnimations/ScreenGameplay decorations/default.lua @@ -18,122 +18,124 @@ local function CreateSegments(Player) -- Straight rip off NCRX local song = GAMESTATE:GetCurrentSong(); local steps = GAMESTATE:GetCurrentSteps( Player ); - local timingData = steps:GetTimingData(); - -- if we're using SSC, might as well use the StepsSeconds, which will - -- almost always be more proper than a r21'd file. - if song then - local songLen = song:MusicLengthSeconds(); + if steps then + local timingData = steps:GetTimingData(); + -- if we're using SSC, might as well use the StepsSeconds, which will + -- almost always be more proper than a r21'd file. + if song then + local songLen = song:MusicLengthSeconds(); - local firstBeatSecs = song:GetFirstSecond(); - local lastBeatSecs = song:GetLastSecond(); + local firstBeatSecs = song:GetFirstSecond(); + local lastBeatSecs = song:GetLastSecond(); - local bpms = timingData:GetBPMsAndTimes(); - local stops = timingData:GetStops(); - local delays = timingData:GetDelays(); - local warps = timingData:GetWarps(); - local fakes = timingData:GetFakes(); - local scrolls = timingData:GetScrolls(); - local speeds = timingData:GetSpeeds(); - - local function CreateLine(beat, secs, firstShadow, firstDiffuse, secondShadow, firstEffect, secondEffect) - local beatTime = timingData:GetElapsedTimeFromBeat(beat); - if beatTime < 0 then beatTime = 0; end; - return Def.ActorFrame { - Def.Quad { - InitCommand=function(self) - self:shadowlength(0); - self:shadowcolor(color(firstShadow)); - -- set width - self:zoomto(math.max((secs/songLen)*fFrameWidth, 1), fFrameHeight); - -- find location - self:x((scale(beatTime,firstBeatSecs,lastBeatSecs,-fFrameWidth/2,fFrameWidth/2))); - end; - OnCommand=function(self) - self:diffuse(color(firstDiffuse)); - self:sleep(beatTime+1); - self:linear(2); - self:diffusealpha(0); - end; + local bpms = timingData:GetBPMsAndTimes(); + local stops = timingData:GetStops(); + local delays = timingData:GetDelays(); + local warps = timingData:GetWarps(); + local fakes = timingData:GetFakes(); + local scrolls = timingData:GetScrolls(); + local speeds = timingData:GetSpeeds(); + + local function CreateLine(beat, secs, firstShadow, firstDiffuse, secondShadow, firstEffect, secondEffect) + local beatTime = timingData:GetElapsedTimeFromBeat(beat); + if beatTime < 0 then beatTime = 0; end; + return Def.ActorFrame { + Def.Quad { + InitCommand=function(self) + self:shadowlength(0); + self:shadowcolor(color(firstShadow)); + -- set width + self:zoomto(math.max((secs/songLen)*fFrameWidth, 1), fFrameHeight); + -- find location + self:x((scale(beatTime,firstBeatSecs,lastBeatSecs,-fFrameWidth/2,fFrameWidth/2))); + end; + OnCommand=function(self) + self:diffuse(color(firstDiffuse)); + self:sleep(beatTime+1); + self:linear(2); + self:diffusealpha(0); + end; + }; + Def.Quad { + InitCommand=function(self) + --self:diffuse(HSVA(192,1,0.8,0.8)); + self:shadowlength(0); + self:shadowcolor(color(secondShadow)); + -- set width + self:zoomto(math.max((secs/songLen)*fFrameWidth, 1),fFrameHeight); + -- find location + self:x((scale(beatTime,firstBeatSecs,lastBeatSecs,-fFrameWidth/2,fFrameWidth/2))); + end; + OnCommand=function(self) + self:diffusealpha(1); + self:diffuseshift(); + self:effectcolor1(color(firstEffect)); + self:effectcolor2(color(secondEffect)); + self:effectclock('beat'); + self:effectperiod(1/8); + -- + self:diffusealpha(0); + self:sleep(beatTime+1); + self:diffusealpha(1); + self:linear(4); + self:diffusealpha(0); + end; + }; }; - Def.Quad { - InitCommand=function(self) - --self:diffuse(HSVA(192,1,0.8,0.8)); - self:shadowlength(0); - self:shadowcolor(color(secondShadow)); - -- set width - self:zoomto(math.max((secs/songLen)*fFrameWidth, 1),fFrameHeight); - -- find location - self:x((scale(beatTime,firstBeatSecs,lastBeatSecs,-fFrameWidth/2,fFrameWidth/2))); - end; - OnCommand=function(self) - self:diffusealpha(1); - self:diffuseshift(); - self:effectcolor1(color(firstEffect)); - self:effectcolor2(color(secondEffect)); - self:effectclock('beat'); - self:effectperiod(1/8); - -- - self:diffusealpha(0); - self:sleep(beatTime+1); - self:diffusealpha(1); - self:linear(4); - self:diffusealpha(0); - end; - }; - }; + end; + + for i=1,#bpms do + local data = split("=",bpms[i]); + bpmFrame[#bpmFrame+1] = CreateLine(data[1], 0, + "#00808077", "#00808077", "#00808077", "#FF634777", "#FF000077"); + end; + + for i=1,#delays do + local data = split("=",delays[i]); + delayFrame[#delayFrame+1] = CreateLine(data[1], data[2], + "#FFFF0077", "#FFFF0077", "#FFFF0077", "#00FF0077", "#FF000077"); + end; + + for i=1,#stops do + local data = split("=",stops[i]); + stopFrame[#stopFrame+1] = CreateLine(data[1], data[2], + "#FFFFFF77", "#FFFFFF77", "#FFFFFF77", "#FFA50077", "#FF000077"); + end; + + for i=1,#scrolls do + local data = split("=",scrolls[i]); + scrollFrame[#scrollFrame+1] = CreateLine(data[1], 0, + "#4169E177", "#4169E177", "#4169E177", "#0000FF77", "#FF000077"); + end; + + for i=1,#speeds do + local data = split("=",speeds[i]); + -- TODO: Turn beats into seconds for this calculation? + speedFrame[#speedFrame+1] = CreateLine(data[1], 0, + "#ADFF2F77", "#ADFF2F77", "#ADFF2F77", "#7CFC0077", "#FF000077"); + end; + + for i=1,#warps do + local data = split("=",warps[i]); + warpFrame[#warpFrame+1] = CreateLine(data[1], 0, + "#CC00CC77", "#CC00CC77", "#CC00CC77", "#FF33CC77", "#FF000077"); + end; + + for i=1,#fakes do + local data = split("=",fakes[i]); + fakeFrame[#fakeFrame+1] = CreateLine(data[1], 0, + "#BC8F8F77", "#BC8F8F77", "#BC8F8F77", "#F4A46077", "#FF000077"); + end; end; - - for i=1,#bpms do - local data = split("=",bpms[i]); - bpmFrame[#bpmFrame+1] = CreateLine(data[1], 0, - "#00808077", "#00808077", "#00808077", "#FF634777", "#FF000077"); - end; - - for i=1,#delays do - local data = split("=",delays[i]); - delayFrame[#delayFrame+1] = CreateLine(data[1], data[2], - "#FFFF0077", "#FFFF0077", "#FFFF0077", "#00FF0077", "#FF000077"); - end; - - for i=1,#stops do - local data = split("=",stops[i]); - stopFrame[#stopFrame+1] = CreateLine(data[1], data[2], - "#FFFFFF77", "#FFFFFF77", "#FFFFFF77", "#FFA50077", "#FF000077"); - end; - - for i=1,#scrolls do - local data = split("=",scrolls[i]); - scrollFrame[#scrollFrame+1] = CreateLine(data[1], 0, - "#4169E177", "#4169E177", "#4169E177", "#0000FF77", "#FF000077"); - end; - - for i=1,#speeds do - local data = split("=",speeds[i]); - -- TODO: Turn beats into seconds for this calculation? - speedFrame[#speedFrame+1] = CreateLine(data[1], 0, - "#ADFF2F77", "#ADFF2F77", "#ADFF2F77", "#7CFC0077", "#FF000077"); - end; - - for i=1,#warps do - local data = split("=",warps[i]); - warpFrame[#warpFrame+1] = CreateLine(data[1], 0, - "#CC00CC77", "#CC00CC77", "#CC00CC77", "#FF33CC77", "#FF000077"); - end; - - for i=1,#fakes do - local data = split("=",fakes[i]); - fakeFrame[#fakeFrame+1] = CreateLine(data[1], 0, - "#BC8F8F77", "#BC8F8F77", "#BC8F8F77", "#F4A46077", "#FF000077"); - end; - end; - bars[#bars+1] = bpmFrame; - bars[#bars+1] = scrollFrame; - bars[#bars+1] = speedFrame; - bars[#bars+1] = stopFrame; - bars[#bars+1] = delayFrame; - bars[#bars+1] = warpFrame; - bars[#bars+1] = fakeFrame; - t[#t+1] = bars; + bars[#bars+1] = bpmFrame; + bars[#bars+1] = scrollFrame; + bars[#bars+1] = speedFrame; + bars[#bars+1] = stopFrame; + bars[#bars+1] = delayFrame; + bars[#bars+1] = warpFrame; + bars[#bars+1] = fakeFrame; + t[#t+1] = bars; + end end return t end From e06c7d334f731b9800da5c7f881a15a9bfc6e71d Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Wed, 7 Sep 2011 22:17:20 -0500 Subject: [PATCH 12/14] back to 3 significant digits for .ssc files. --- Docs/Changelog_SSCformat.txt | 3 +++ Themes/_fallback/metrics.ini | 14 +++++++------- src/NotesWriterSSC.cpp | 32 ++++++++++++++++---------------- src/Song.h | 2 +- 4 files changed, 27 insertions(+), 24 deletions(-) diff --git a/Docs/Changelog_SSCformat.txt b/Docs/Changelog_SSCformat.txt index 4f752bf679..de70721e81 100644 --- a/Docs/Changelog_SSCformat.txt +++ b/Docs/Changelog_SSCformat.txt @@ -9,6 +9,9 @@ change to JSON, but it is unsure if this will be done. Implement .ssc at your own risk. _______________________________________________________________________________ +[v0.79] - freem +* Back to three significant decimal places. + [v0.78] - Wolfman2000 * Use the step timing/attack tags only when required. The presence of even ONE timing tag causes all to be used, so be careful with it. diff --git a/Themes/_fallback/metrics.ini b/Themes/_fallback/metrics.ini index 04c2dfd0a9..65fed6206f 100644 --- a/Themes/_fallback/metrics.ini +++ b/Themes/_fallback/metrics.ini @@ -3611,12 +3611,12 @@ PlayRecordHelpOnCommand=halign,0;valign,0;shadowlength,1 LoopOnChartEnd=true -CurrentBeatFormat="%s:\n %.6f\n" -CurrentSecondFormat="%s:\n %.6f\n" +CurrentBeatFormat="%s:\n %.3f\n" +CurrentSecondFormat="%s:\n %.3f\n" SnapToFormat="%s: %s\n" -SelectionBeatBeginFormat="%s:\n %.6f" +SelectionBeatBeginFormat="%s:\n %.3f" SelectionBeatUnfinishedFormat=" ...\n" -SelectionBeatEndFormat="-%.6f\n" +SelectionBeatEndFormat="-%.3f\n" DifficultyFormat="%s:\n %s\n" RoutinePlayerFormat="%s: %d\n" DescriptionFormat="%s:\n %s\n" @@ -3644,9 +3644,9 @@ NumRollsFormatTwoPlayer="%s: %d/%d\n" NumLiftsFormatTwoPlayer="%s: %d/%d\n" NumFakesFormatTwoPlayer="%s: %d/%d\n" TimingModeFormat="%s:\n %s\n" -Beat0OffsetFormat="%s:\n %.6f secs\n" -PreviewStartFormat="%s:\n %.6f secs\n" -PreviewLengthFormat="%s:\n %.6f secs\n" +Beat0OffsetFormat="%s:\n %.3f secs\n" +PreviewStartFormat="%s:\n %.3f secs\n" +PreviewLengthFormat="%s:\n %.3f secs\n" [ScreenPracticeMenu] Fallback="ScreenEditMenu" diff --git a/src/NotesWriterSSC.cpp b/src/NotesWriterSSC.cpp index 036c06781a..ff07a77cb3 100644 --- a/src/NotesWriterSSC.cpp +++ b/src/NotesWriterSSC.cpp @@ -44,16 +44,16 @@ struct TimingTagWriter { void Write( const int row, const char *value ) { - m_pvsLines->push_back( m_sNext + ssprintf( "%.6f=%s", NoteRowToBeat(row), value ) ); + m_pvsLines->push_back( m_sNext + ssprintf( "%.3f=%s", NoteRowToBeat(row), value ) ); m_sNext = ","; } - void Write( const int row, const float value ) { Write( row, ssprintf( "%.6f", value ) ); } + void Write( const int row, const float value ) { Write( row, ssprintf( "%.3f", value ) ); } void Write( const int row, const int value ) { Write( row, ssprintf( "%d", value ) ); } void Write( const int row, const int a, const int b ) { Write( row, ssprintf( "%d=%d", a, b ) ); } - void Write( const int row, const float a, const float b ) { Write( row, ssprintf( "%.6f=%.6f", a, b) ); } + void Write( const int row, const float a, const float b ) { Write( row, ssprintf( "%.3f=%.3f", a, b) ); } void Write( const int row, const float a, const float b, const unsigned short c ) - { Write( row, ssprintf( "%.6f=%.6f=%hd", a, b, c) ); } + { Write( row, ssprintf( "%.3f=%.3f=%hd", a, b, c) ); } void Init( const RString sTag ) { m_sNext = "#" + sTag + ":"; } void Finish( ) { m_pvsLines->push_back( ( m_sNext != "," ? m_sNext : "" ) + ";" ); } @@ -235,9 +235,9 @@ static void WriteGlobalTags( RageFile &f, const Song &out ) f.PutLine( "#INSTRUMENTTRACK:" + s + ";\n" ); } } - f.PutLine( ssprintf( "#OFFSET:%.6f;", out.m_SongTiming.m_fBeat0OffsetInSeconds ) ); - f.PutLine( ssprintf( "#SAMPLESTART:%.6f;", out.m_fMusicSampleStartSeconds ) ); - f.PutLine( ssprintf( "#SAMPLELENGTH:%.6f;", out.m_fMusicSampleLengthSeconds ) ); + f.PutLine( ssprintf( "#OFFSET:%.3f;", out.m_SongTiming.m_fBeat0OffsetInSeconds ) ); + f.PutLine( ssprintf( "#SAMPLESTART:%.3f;", out.m_fMusicSampleStartSeconds ) ); + f.PutLine( ssprintf( "#SAMPLELENGTH:%.3f;", out.m_fMusicSampleLengthSeconds ) ); f.Write( "#SELECTABLE:" ); switch(out.m_SelectionDisplay) @@ -256,9 +256,9 @@ static void WriteGlobalTags( RageFile &f, const Song &out ) break; case DISPLAY_BPM_SPECIFIED: if( out.m_fSpecifiedBPMMin == out.m_fSpecifiedBPMMax ) - f.PutLine( ssprintf( "#DISPLAYBPM:%.6f;", out.m_fSpecifiedBPMMin ) ); + f.PutLine( ssprintf( "#DISPLAYBPM:%.3f;", out.m_fSpecifiedBPMMin ) ); else - f.PutLine( ssprintf( "#DISPLAYBPM:%.6f:%.6f;", out.m_fSpecifiedBPMMin, out.m_fSpecifiedBPMMax ) ); + f.PutLine( ssprintf( "#DISPLAYBPM:%.3f:%.3f;", out.m_fSpecifiedBPMMin, out.m_fSpecifiedBPMMax ) ); break; case DISPLAY_BPM_RANDOM: f.PutLine( ssprintf( "#DISPLAYBPM:*;" ) ); @@ -268,7 +268,7 @@ static void WriteGlobalTags( RageFile &f, const Song &out ) WriteTimingTags( f, out.m_SongTiming, true ); if( out.GetSpecifiedLastSecond() > 0 ) - f.PutLine( ssprintf("#LASTSECONDHINT:%.6f;", out.GetSpecifiedLastSecond()) ); + f.PutLine( ssprintf("#LASTSECONDHINT:%.3f;", out.GetSpecifiedLastSecond()) ); FOREACH_BackgroundLayer( b ) { @@ -349,7 +349,7 @@ static RString GetSSCNoteData( const Song &song, const Steps &in, bool bSavingCa // XXX: Is there a better way to write this? if (const_cast(song.m_SongTiming) != in.m_Timing) { - lines.push_back( ssprintf( "#OFFSET:%.6f;", in.m_Timing.m_fBeat0OffsetInSeconds ) ); + lines.push_back( ssprintf( "#OFFSET:%.3f;", in.m_Timing.m_fBeat0OffsetInSeconds ) ); GetTimingTags( lines, in.m_Timing ); } if (song.GetAttackString() != in.GetAttackString()) @@ -365,9 +365,9 @@ static RString GetSSCNoteData( const Song &song, const Steps &in, bool bSavingCa float small = in.GetMinBPM(); float big = in.GetMaxBPM(); if (small == big) - lines.push_back( ssprintf( "#DISPLAYBPM:%.6f;", small ) ); + lines.push_back( ssprintf( "#DISPLAYBPM:%.3f;", small ) ); else - lines.push_back( ssprintf( "#DISPLAYBPM:%.6f:%.6f;", small, big ) ); + lines.push_back( ssprintf( "#DISPLAYBPM:%.3f:%.3f;", small, big ) ); break; } case DISPLAY_BPM_RANDOM: @@ -414,12 +414,12 @@ bool NotesWriterSSC::Write( RString sPath, const Song &out, const vector if( bSavingCache ) { f.PutLine( ssprintf( "// cache tags:" ) ); - f.PutLine( ssprintf( "#FIRSTSECOND:%.6f;", out.GetFirstSecond() ) ); - f.PutLine( ssprintf( "#LASTSECOND:%.6f;", out.GetLastSecond() ) ); + f.PutLine( ssprintf( "#FIRSTSECOND:%.3f;", out.GetFirstSecond() ) ); + f.PutLine( ssprintf( "#LASTSECOND:%.3f;", out.GetLastSecond() ) ); f.PutLine( ssprintf( "#SONGFILENAME:%s;", out.m_sSongFileName.c_str() ) ); f.PutLine( ssprintf( "#HASMUSIC:%i;", out.m_bHasMusic ) ); f.PutLine( ssprintf( "#HASBANNER:%i;", out.m_bHasBanner ) ); - f.PutLine( ssprintf( "#MUSICLENGTH:%.6f;", out.m_fMusicLengthSeconds ) ); + f.PutLine( ssprintf( "#MUSICLENGTH:%.3f;", out.m_fMusicLengthSeconds ) ); f.PutLine( ssprintf( "// end cache tags" ) ); } diff --git a/src/Song.h b/src/Song.h index 9916f6fe77..bf4c2f07e9 100644 --- a/src/Song.h +++ b/src/Song.h @@ -20,7 +20,7 @@ void FixupPath( RString &path, const RString &sSongPath ); RString GetSongAssetPath( RString sPath, const RString &sSongPath ); /** @brief The version of the .ssc file format. */ -const static float STEPFILE_VERSION_NUMBER = 0.78f; +const static float STEPFILE_VERSION_NUMBER = 0.79f; /** @brief How many edits for this song can each profile have? */ const int MAX_EDITS_PER_SONG_PER_PROFILE = 15; From fb2a63ca162b4e14d42de6bef89528e04f605dd4 Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Wed, 7 Sep 2011 23:48:04 -0500 Subject: [PATCH 13/14] [GameState] Added GetEarnedExtraStage() Lua binding. --- Docs/Changelog_sm5.txt | 1 + src/GameState.cpp | 2 ++ src/GameState.h | 3 ++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Docs/Changelog_sm5.txt b/Docs/Changelog_sm5.txt index 7ce975cf05..09b2e7353f 100644 --- a/Docs/Changelog_sm5.txt +++ b/Docs/Changelog_sm5.txt @@ -11,6 +11,7 @@ StepMania 5.0 $next | 2011???? 2011/09/07 ---------- * [Model] Added GetDefaultAnimation() Lua binding. [AJ] +* [GameState] Added GetEarnedExtraStage() Lua binding. [AJ] 2011/09/02 ---------- diff --git a/src/GameState.cpp b/src/GameState.cpp index 72f5fcebbb..d9caa4f9b6 100644 --- a/src/GameState.cpp +++ b/src/GameState.cpp @@ -2261,6 +2261,7 @@ public: DEFINE_METHOD( IsExtraStage2, IsExtraStage2() ) DEFINE_METHOD( GetCurrentStage, GetCurrentStage() ) DEFINE_METHOD( HasEarnedExtraStage, HasEarnedExtraStage() ) + DEFINE_METHOD( GetEarnedExtraStage, GetEarnedExtraStage() ) DEFINE_METHOD( GetEasiestStepsDifficulty, GetEasiestStepsDifficulty() ) DEFINE_METHOD( GetHardestStepsDifficulty, GetHardestStepsDifficulty() ) DEFINE_METHOD( IsEventMode, IsEventMode() ) @@ -2476,6 +2477,7 @@ public: ADD_METHOD( IsExtraStage2 ); ADD_METHOD( GetCurrentStage ); ADD_METHOD( HasEarnedExtraStage ); + ADD_METHOD( GetEarnedExtraStage ); ADD_METHOD( GetEasiestStepsDifficulty ); ADD_METHOD( GetHardestStepsDifficulty ); ADD_METHOD( IsEventMode ); diff --git a/src/GameState.h b/src/GameState.h index d0edf2ee18..c78f4ce7f2 100644 --- a/src/GameState.h +++ b/src/GameState.h @@ -310,6 +310,7 @@ public: Character* m_pCurCharacters[NUM_PLAYERS]; bool HasEarnedExtraStage() const { return m_bEarnedExtraStage; } + EarnedExtraStage GetEarnedExtraStage() const { return CalculateEarnedExtraStage(); } // Ranking Stuff struct RankingFeat @@ -390,7 +391,7 @@ private: EarnedExtraStage CalculateEarnedExtraStage() const; int m_iAwardedExtraStages[NUM_PLAYERS]; bool m_bEarnedExtraStage; - + GameState(const GameState& rhs); GameState& operator=(const GameState& rhs); From 84382a7c738bb282175d606e1bf907df12d5aeda Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Thu, 8 Sep 2011 11:56:46 -0500 Subject: [PATCH 14/14] update credits --- .../BGAnimations/ScreenCredits overlay.lua | 17 ++++++++++---- .../BGAnimations/ScreenCredits overlay.lua | 22 ++++++++++--------- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/Themes/_fallback/BGAnimations/ScreenCredits overlay.lua b/Themes/_fallback/BGAnimations/ScreenCredits overlay.lua index 36350d307c..9018cef21f 100644 --- a/Themes/_fallback/BGAnimations/ScreenCredits overlay.lua +++ b/Themes/_fallback/BGAnimations/ScreenCredits overlay.lua @@ -38,34 +38,41 @@ local stepmania = { -- and various other contributors } +local oitg = { + "infamouspat", + "Mark Cannon (vyhd)", +} + local contrib = { "Aldo Fregoso (Aldo_MX)", -- delays "cerbo", "cesarmades", -- pump/cmd* noteskins "Chris Eldridge (kurisu)", -- dance-threepanel - "Christophe Goulet-LeBlanc (Kommisar)", + "Christophe Goulet-LeBlanc (Kommisar)", -- songs "corec", -- various fixes "galopin", -- piu PlayStation2 usb mat support "gholms", -- automake 1.11 support "juanelote", -- SongManager:GetSongGroupByIndex, JumpToNext/PrevGroup logic mods "Kaox", -- pump/default noteskin + "Petriform", -- Music "NitroX72", -- pump/frame noteskin "sy567", -- beginner helper fix "v1toko", -- x-mode from StepNXA "waiei", -- custom scoring fixes + Hybrid scoring } +local translators = { + "John Reactor (Polish)", +} + local thanks = { "A Pseudonymous Coder", -- support "Bill Shillito (DM Ashura)", -- Music (not yet though) "cpubasic13", -- testing (a lot) "Dreamwoods", - "Infamouspat", -- oitg bro "Jason Bolt (LightningXCE)", "Jousway", -- Noteskins "Matt1360", -- Automake magic + oitg bro - "Mark Cannon (vyhd)", -- oitg bro + twirl/roll - "Petriform", -- Music "Renard", "Ryan McKanna (Plaguefox)", } @@ -92,6 +99,8 @@ local sections = { { "the spinal shark collective (project lead)", ssc }, { "sm-ssc Team", sm_ssc }, { "StepMania Team", stepmania }, + { "OpenITG Team", oitg }, + { "Translators", translators }, { "Other Contributors", contrib }, { "Special Thanks", thanks }, { "Shoutouts", shoutout }, diff --git a/Themes/default/BGAnimations/ScreenCredits overlay.lua b/Themes/default/BGAnimations/ScreenCredits overlay.lua index 3dc16427a0..86028fc183 100644 --- a/Themes/default/BGAnimations/ScreenCredits overlay.lua +++ b/Themes/default/BGAnimations/ScreenCredits overlay.lua @@ -38,18 +38,24 @@ local stepmania = { -- and various other contributors } +local oitg = { + "infamouspat", + "Mark Cannon (vyhd)", +} + local contrib = { "Aldo Fregoso (Aldo_MX)", -- delays "cerbo", "cesarmades", -- pump/cmd* noteskins "Chris Eldridge (kurisu)", -- dance-threepanel - "Christophe Goulet-LeBlanc (Kommisar)", + "Christophe Goulet-LeBlanc (Kommisar)", -- songs "corec", -- various fixes "galopin", -- piu PlayStation2 usb mat support "gholms", -- automake 1.11 support "juanelote", -- SongManager:GetSongGroupByIndex, JumpToNext/PrevGroup logic mods "Kaox", -- pump/default noteskin "NitroX72", -- pump/frame noteskin + "Petriform", -- Music "sy567", -- beginner helper fix "v1toko", -- x-mode from StepNXA "waiei", -- custom scoring fixes + Hybrid scoring @@ -57,19 +63,16 @@ local contrib = { local translators = { "John Reactor (Polish)", - } +} local thanks = { "A Pseudonymous Coder", -- support "Bill Shillito (DM Ashura)", -- Music (not yet though) "cpubasic13", -- testing (a lot) "Dreamwoods", - "Infamouspat", -- oitg bro "Jason Bolt (LightningXCE)", "Jousway", -- Noteskins "Matt1360", -- Automake magic + oitg bro - "Mark Cannon (vyhd)", -- oitg bro + twirl/roll - "Petriform", -- Music "Renard", "Ryan McKanna (Plaguefox)", } @@ -81,10 +84,10 @@ local shoutout = { "NAKET Coder", "Ciera Boyd", -- you bet your ass I'm putting my girlfriend in the credits --Image(), -- we should have some logos probably to look super pro - -- "Can't stop crying... buckets of tears!" "#KBO", - "AJ Kelly, without which this game would have never been.", + "Celestia Radio", -- LOVE AND TOLERANCE "You showed us... your ultimate dance", + -- "Can't stop crying... buckets of tears!" } local copyright = { @@ -97,15 +100,14 @@ local sections = { { "the spinal shark collective (project lead)", ssc }, { "sm-ssc Team", sm_ssc }, { "StepMania Team", stepmania }, - { "Other Contributors", contrib }, + { "OpenITG Team", oitg }, { "Translators", translators }, + { "Other Contributors", contrib }, { "Special Thanks", thanks }, { "Shoutouts", shoutout }, { "Copyright", copyright }, } - - -- To add people or sections modify the above. local lineOn = cmd(zoom,0.875;strokecolor,color("#444444");shadowcolor,color("#444444");shadowlength,3)