diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index a9a1be3c3d..920201240c 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -3788,7 +3788,7 @@ PrevScreen=ScreenTitleMenu # when using entries that change the screen; otherwise, the only way to # exit the screen when in arcade mode is "exit". -LineNames=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 +LineNames=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 OptionMenuFlags=together;forceallplayers;smnavigation # This NextScreen is only used for the "exit" choice. Line1=list,Appearance Options @@ -3797,15 +3797,16 @@ Line3=list,Bookkeeping Line4=list,Center Image Line5=list,Coin Options Line6=list,Config Key/Joy Mappings -Line7=list,Input Options -Line8=list,Gameplay Options -Line9=list,Graphic Options -Line10=list,Machine Options -Line11=list,Sound Options -Line12=list,Profile Options -Line13=list,Other Options -Line14=list,Reload Songs/Courses -Line15=list,Test Input +Line7=list,Download Machine Stats +Line8=list,Input Options +Line9=list,Gameplay Options +Line10=list,Graphic Options +Line11=list,Machine Options +Line12=list,Sound Options +Line13=list,Profile Options +Line14=list,Other Options +Line15=list,Reload Songs/Courses +Line16=list,Test Input [TextBanner] TitleX=-90 @@ -4243,6 +4244,9 @@ Coin Options,1=screen,ScreenCoinOptions;name,CoinOptions Config Key/Joy Mappings=1,together Config Key/Joy MappingsDefault= Config Key/Joy Mappings,1=screen,ScreenMapControllers;name,KeyJoyMappings +Download Machine Stats=1,together +Download Machine StatsDefault= +Download Machine Stats,1=screen,ScreenDownloadMachineStats;name,DownloadMachineStats Input Options=1,together Input OptionsDefault= Input Options,1=screen,ScreenInputOptions;name,InputOptions @@ -4314,5 +4318,7 @@ Failed=E [HighScore] EmptyName=STEP +[ScreenDownloadMachineStats] +NextScreen=ScreenOptionsMenu diff --git a/stepmania/src/Makefile.am b/stepmania/src/Makefile.am index c87c464817..543627e327 100644 --- a/stepmania/src/Makefile.am +++ b/stepmania/src/Makefile.am @@ -37,7 +37,7 @@ $(srcdir)/libresample/libresample.a: Screens = \ Screen.cpp Screen.h ScreenAttract.cpp ScreenAttract.h ScreenAward.cpp ScreenAward.h ScreenBookkeeping.h ScreenBookkeeping.cpp \ ScreenBranch.cpp ScreenBranch.h ScreenCaution.cpp ScreenCaution.h ScreencenterImage.h ScreenCenterImage.cpp ScreenCredits.cpp ScreenCredits.h ScreenDemonstration.cpp ScreenDemonstration.h \ -ScreenDimensions.h ScreenEdit.cpp ScreenEdit.h ScreenEditCoursesMenu.cpp ScreenEditCoursesMenu.h \ +ScreenDimensions.h ScreenDownloadMachineStats.cpp ScreenDownloadMachineStats.h ScreenEdit.cpp ScreenEdit.h ScreenEditCoursesMenu.cpp ScreenEditCoursesMenu.h \ ScreenEditMenu.cpp ScreenEditMenu.h ScreenEnding.cpp ScreenEnding.h ScreenEndlessBreak.cpp ScreenEndlessBreak.h ScreenEvaluation.cpp ScreenEvaluation.h \ ScreenExit.cpp ScreenExit.h ScreenEz2SelectMusic.cpp ScreenEz2SelectMusic.h ScreenEz2SelectPlayer.cpp ScreenEz2SelectPlayer.h \ ScreenGameOver.cpp ScreenGameOver.h ScreenGameplay.cpp ScreenGameplay.h \ diff --git a/stepmania/src/Screen.cpp b/stepmania/src/Screen.cpp index f25d081cf3..d23e34d2e8 100644 --- a/stepmania/src/Screen.cpp +++ b/stepmania/src/Screen.cpp @@ -292,6 +292,7 @@ void Screen::ClearMessageQueue( const ScreenMessage SM ) #include "ScreenBranch.h" #include "ScreenEnding.h" #include "ScreenAward.h" +#include "ScreenDownloadMachineStats.h" Screen* Screen::Create( CString sClassName ) { @@ -355,6 +356,7 @@ Screen* Screen::Create( CString sClassName ) IF_RETURN( ScreenBranch ); IF_RETURN( ScreenEnding ); IF_RETURN( ScreenAward ); + IF_RETURN( ScreenDownloadMachineStats ); RageException::Throw( "Invalid Screen class name '%s'", sClassName.c_str() ); } diff --git a/stepmania/src/ScreenDownloadMachineStats.cpp b/stepmania/src/ScreenDownloadMachineStats.cpp new file mode 100644 index 0000000000..436cf6af16 --- /dev/null +++ b/stepmania/src/ScreenDownloadMachineStats.cpp @@ -0,0 +1,34 @@ +#include "global.h" + +#include "ScreenDownloadMachineStats.h" +#include "ProfileManager.h" +#include "ScreenManager.h" +#include "MemoryCardManager.h" +#include "ThemeManager.h" + +#define NEXT_SCREEN THEME->GetMetric(m_sName,"NextScreen") + +static void SaveMachineStatsToFirstMemCard() +{ + FOREACH_PlayerNumber( pn ) + { + if( MEMCARDMAN->GetCardState(pn) != MEMORY_CARD_STATE_READY ) + continue; // skip + + CString sDir = MEM_CARD_MOUNT_POINT[pn]; + sDir += "MachineProfile/"; + PROFILEMAN->GetMachineProfile()->SaveAllToDir( sDir ); + SCREENMAN->SystemMessage( ssprintf("Machine stats saved to P%d card.",pn+1) ); + return; + } + + SCREENMAN->SystemMessage( "Stats not saved - No memory cards ready." ); +} + +ScreenDownloadMachineStats::ScreenDownloadMachineStats( CString sName ): Screen( sName ) +{ + SaveMachineStatsToFirstMemCard(); + + SCREENMAN->SetNewScreen( NEXT_SCREEN ); +} + diff --git a/stepmania/src/ScreenDownloadMachineStats.h b/stepmania/src/ScreenDownloadMachineStats.h new file mode 100644 index 0000000000..6ef6998b3a --- /dev/null +++ b/stepmania/src/ScreenDownloadMachineStats.h @@ -0,0 +1,14 @@ +#ifndef ScreenDownloadMachineStats_H +#define ScreenDownloadMachineStats_H + +#include "Screen.h" +#include "RageTimer.h" + +class ScreenDownloadMachineStats: public Screen +{ +public: + ScreenDownloadMachineStats( CString sName ); +}; + + +#endif diff --git a/stepmania/src/StepMania.dsp b/stepmania/src/StepMania.dsp index 34ed38ff8d..4e1bccade9 100644 --- a/stepmania/src/StepMania.dsp +++ b/stepmania/src/StepMania.dsp @@ -1,5 +1,5 @@ # Microsoft Developer Studio Project File - Name="StepMania" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# Microsoft Developer Studio Generated Build File, Format Version 60000 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Application" 0x0101 @@ -62,10 +62,10 @@ LINK32=link.exe # SUBTRACT LINK32 /verbose /profile /pdb:none /incremental:no /nodefaultlib # Begin Special Build Tool IntDir=.\../Debug6 -TargetDir=\projects\stepmania\stepmania\Program +TargetDir=\stepmania\stepmania\Program 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 # End Special Build Tool @@ -82,23 +82,27 @@ PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania # PROP Intermediate_Dir "../Debug_Xbox" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -XBCP=xbecopy.exe -# ADD BASE XBCP /NOLOGO -# ADD XBCP /NOLOGO -XBE=imagebld.exe -# ADD BASE XBE /nologo /stack:0x10000 /debug -# ADD XBE /nologo /stack:0x10000 /debug /out:"../default.xbe" +CPP=cl.exe +# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_XBOX" /D "_DEBUG" /YX /FD /G6 /Ztmp /c +# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "." /I "SDL-1.2.5\include" /I "SDL_image-1.2" /I "plib-1.6.0" /I "SDL_sound-1.0.0" /I "vorbis" /D "WIN32" /D "_DEBUG" /D "_XBOX" /D "OGG_ONLY" /D "DEBUG" /FR /YX"global.h" /FD /G6 /Ztmp /c +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 xapilibd.lib d3d8d.lib d3dx8d.lib xgraphicsd.lib dsoundd.lib dmusicd.lib xnetd.lib xboxkrnl.lib /nologo /incremental:no /debug /machine:I386 /subsystem:xbox /fixed:no /TMP # ADD LINK32 $(intdir)\verstub.obj xapilibd.lib d3d8d.lib d3dx8d.lib xgraphicsd.lib dsoundd.lib dmusicd.lib xnetd.lib xboxkrnl.lib /nologo /map /debug /machine:I386 /nodefaultlib:"libcd" /nodefaultlib:"libcmt" /out:"../StepManiaXbox-debug.exe" /subsystem:xbox /fixed:no /TMP # SUBTRACT LINK32 /incremental:no -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -CPP=cl.exe -# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_XBOX" /D "_DEBUG" /YX /FD /G6 /Ztmp /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "." /I "SDL-1.2.5\include" /I "SDL_image-1.2" /I "plib-1.6.0" /I "SDL_sound-1.0.0" /I "vorbis" /D "WIN32" /D "_DEBUG" /D "_XBOX" /D "OGG_ONLY" /D "DEBUG" /FR /YX"global.h" /FD /G6 /Ztmp /c +XBE=imagebld.exe +# ADD BASE XBE /nologo /stack:0x10000 /debug +# ADD XBE /nologo /stack:0x10000 /debug /out:"../default.xbe" +XBCP=xbecopy.exe +# ADD BASE XBCP /NOLOGO +# ADD XBCP /NOLOGO # Begin Special Build Tool +IntDir=.\../Debug_Xbox +TargetDir=\stepmania\stepmania +TargetName=default +SOURCE="$(InputPath)" PreLink_Cmds=disasm\verinc cl /Zl /nologo /c PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi # End Special Build Tool @@ -135,10 +139,10 @@ LINK32=link.exe # SUBTRACT LINK32 /verbose /pdb:none /debug # Begin Special Build Tool IntDir=.\../Release6 -TargetDir=\projects\stepmania\stepmania\Program +TargetDir=\stepmania\stepmania\Program 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 # End Special Build Tool @@ -156,24 +160,28 @@ PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania # PROP Intermediate_Dir "../Release_Xbox" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -XBCP=xbecopy.exe -# ADD BASE XBCP /NOLOGO -# ADD XBCP /NOLOGO -XBE=imagebld.exe -# ADD BASE XBE /nologo /stack:0x10000 /debug -# ADD XBE /nologo /testid:"123456" /stack:0x10000 /debug /out:"../default.xbe" +CPP=cl.exe +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "." /I "SDL-1.2.5\include" /I "SDL_image-1.2" /I "plib-1.6.0" /D "WIN32" /D "_XBOX" /D "_DEBUG" /Fr /YX"global.h" /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "." /I "SDL-1.2.5\include" /I "SDL_image-1.2" /I "plib-1.6.0" /I "SDL_sound-1.0.0" /I "vorbis" /D "WIN32" /D "NDEBUG" /D "_XBOX" /FR /YX /FD /c +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 $(intdir)\verstub.obj xapilibd.lib d3d8d.lib d3dx8d.lib xgraphicsd.lib dsoundd.lib dmusicd.lib xnetd.lib xboxkrnl.lib /nologo /pdb:"../debug6/StepMania-debug.pdb" /map /debug /machine:IX86 /nodefaultlib:"libcmtd.lib" /out:"../StepMania-debug.exe" # SUBTRACT BASE LINK32 /verbose /profile /pdb:none /incremental:no /nodefaultlib # ADD LINK32 $(intdir)\verstub.obj xapilib.lib d3d8.lib d3dx8.lib xgraphics.lib dsound.lib dmusic.lib xnet.lib xboxkrnl.lib libcmt.lib /nologo /incremental:no /map /machine:I386 /nodefaultlib:"libc" /nodefaultlib:"libcmtd" /out:"../StepManiaXbox.exe" /subsystem:xbox /fixed:no /TMP /OPT:REF # SUBTRACT LINK32 /pdb:none /debug -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -CPP=cl.exe -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "." /I "SDL-1.2.5\include" /I "SDL_image-1.2" /I "plib-1.6.0" /D "WIN32" /D "_XBOX" /D "_DEBUG" /Fr /YX"global.h" /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "." /I "SDL-1.2.5\include" /I "SDL_image-1.2" /I "plib-1.6.0" /I "SDL_sound-1.0.0" /I "vorbis" /D "WIN32" /D "NDEBUG" /D "_XBOX" /FR /YX /FD /c +XBE=imagebld.exe +# ADD BASE XBE /nologo /stack:0x10000 /debug +# ADD XBE /nologo /testid:"123456" /stack:0x10000 /debug /out:"../default.xbe" +XBCP=xbecopy.exe +# ADD BASE XBCP /NOLOGO +# ADD XBCP /NOLOGO # Begin Special Build Tool +IntDir=.\../Release_Xbox +TargetDir=\stepmania\stepmania +TargetName=default +SOURCE="$(InputPath)" PreLink_Cmds=disasm\verinc cl /Zl /nologo /c PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi # End Special Build Tool @@ -4850,6 +4858,25 @@ SOURCE=.\ScreenDemonstration.h # End Source File # Begin Source File +SOURCE=.\ScreenDownloadMachineStats.cpp + +!IF "$(CFG)" == "StepMania - Win32 Debug" + +!ELSEIF "$(CFG)" == "StepMania - Xbox Debug" + +!ELSEIF "$(CFG)" == "StepMania - Win32 Release" + +!ELSEIF "$(CFG)" == "StepMania - Xbox Release" + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=.\ScreenDownloadMachineStats.h +# End Source File +# Begin Source File + SOURCE=.\ScreenEdit.cpp !IF "$(CFG)" == "StepMania - Win32 Debug" diff --git a/stepmania/src/StepMania.vcproj b/stepmania/src/StepMania.vcproj index 6f4199aa3b..1c711ad965 100644 --- a/stepmania/src/StepMania.vcproj +++ b/stepmania/src/StepMania.vcproj @@ -220,6 +220,12 @@ cl /Zl /nologo /c verstub.cpp /Fo"$(IntDir)"\ + + + +