diff --git a/stepmania/src/Makefile.am b/stepmania/src/Makefile.am
index 9b35eacba6..0ec7926017 100644
--- a/stepmania/src/Makefile.am
+++ b/stepmania/src/Makefile.am
@@ -23,6 +23,7 @@ Screen.cpp Screen.h ScreenAttract.cpp ScreenAttract.h ScreenAward.cpp ScreenAwar
ScreenBookkeeping.cpp ScreenBookkeeping.h ScreenBranch.cpp ScreenBranch.h ScreenCaution.cpp ScreenCaution.h \
ScreenCenterImage.cpp ScreenCenterImage.h ScreenCredits.cpp ScreenCredits.h \
ScreenDemonstration.cpp ScreenDemonstration.h ScreenDimensions.h \
+ScreenClearMachineStats.cpp ScreenClearMachineStats.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 \
diff --git a/stepmania/src/Screen.cpp b/stepmania/src/Screen.cpp
index 51e5009f2e..f2313d79e6 100644
--- a/stepmania/src/Screen.cpp
+++ b/stepmania/src/Screen.cpp
@@ -308,6 +308,7 @@ void Screen::ClearMessageQueue( const ScreenMessage SM )
#include "ScreenDownloadMachineStats.h"
#include "ScreenSetTime.h"
#include "ScreenTestLights.h"
+#include "ScreenClearMachineStats.h"
Screen* Screen::Create( CString sClassName )
{
@@ -373,6 +374,7 @@ Screen* Screen::Create( CString sClassName )
IF_RETURN( ScreenDownloadMachineStats );
IF_RETURN( ScreenSetTime );
IF_RETURN( ScreenTestLights );
+ IF_RETURN( ScreenClearMachineStats );
RageException::Throw( "Invalid Screen class name '%s'", sClassName.c_str() );
}
diff --git a/stepmania/src/ScreenClearMachineStats.cpp b/stepmania/src/ScreenClearMachineStats.cpp
new file mode 100644
index 0000000000..a247086093
--- /dev/null
+++ b/stepmania/src/ScreenClearMachineStats.cpp
@@ -0,0 +1,21 @@
+#include "global.h"
+
+#include "ScreenClearMachineStats.h"
+#include "ProfileManager.h"
+#include "ScreenManager.h"
+#include "MemoryCardManager.h"
+#include "ThemeManager.h"
+#include "PrefsManager.h"
+
+#define NEXT_SCREEN THEME->GetMetric(m_sName,"NextScreen")
+
+ScreenClearMachineStats::ScreenClearMachineStats( CString sName ): Screen( sName )
+{
+ PROFILEMAN->GetMachineProfile()->InitAll();
+ PROFILEMAN->SaveMachineProfile();
+
+ SCREENMAN->SystemMessage( "Machine stats cleared." );
+
+ SCREENMAN->SetNewScreen( NEXT_SCREEN );
+}
+
diff --git a/stepmania/src/ScreenClearMachineStats.h b/stepmania/src/ScreenClearMachineStats.h
new file mode 100644
index 0000000000..4cc59c953e
--- /dev/null
+++ b/stepmania/src/ScreenClearMachineStats.h
@@ -0,0 +1,14 @@
+#ifndef ScreenClearMachineStats_H
+#define ScreenClearMachineStats_H
+
+#include "Screen.h"
+#include "RageTimer.h"
+
+class ScreenClearMachineStats: public Screen
+{
+public:
+ ScreenClearMachineStats( CString sName );
+};
+
+
+#endif
diff --git a/stepmania/src/StepMania.vcproj b/stepmania/src/StepMania.vcproj
index b476b4599d..27cd9a8a30 100644
--- a/stepmania/src/StepMania.vcproj
+++ b/stepmania/src/StepMania.vcproj
@@ -205,6 +205,12 @@ cl /Zl /nologo /c verstub.cpp /Fo"$(IntDir)"\
+
+
+
+