From aa8a115e6fafe5caddcc95246c64afea8a0f5735 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Fri, 13 Dec 2002 23:56:13 +0000 Subject: [PATCH] Move SM writing into a writer --- stepmania/src/NotesWriterSM.cpp | 99 +++++++++++++++++++++++++++++++++ stepmania/src/NotesWriterSM.h | 14 +++++ 2 files changed, 113 insertions(+) create mode 100644 stepmania/src/NotesWriterSM.cpp create mode 100644 stepmania/src/NotesWriterSM.h diff --git a/stepmania/src/NotesWriterSM.cpp b/stepmania/src/NotesWriterSM.cpp new file mode 100644 index 0000000000..061c221b68 --- /dev/null +++ b/stepmania/src/NotesWriterSM.cpp @@ -0,0 +1,99 @@ +#include "stdafx.h" +#include "NotesWriterSM.h" +#include "Notes.h" + +void NotesWriterSM::WriteGlobalTags(FILE *fp, const Song &out) +{ + fprintf( fp, "#TITLE:%s;\n", out.m_sMainTitle.GetString() ); + fprintf( fp, "#SUBTITLE:%s;\n", out.m_sSubTitle.GetString() ); + fprintf( fp, "#ARTIST:%s;\n", out.m_sArtist.GetString() ); + fprintf( fp, "#TITLETRANSLIT:%s;\n", out.m_sMainTitleTranslit.GetString() ); + fprintf( fp, "#SUBTITLETRANSLIT:%s;\n", out.m_sSubTitleTranslit.GetString() ); + fprintf( fp, "#ARTISTTRANSLIT:%s;\n", out.m_sArtistTranslit.GetString() ); + fprintf( fp, "#CREDIT:%s;\n", out.m_sCredit.GetString() ); + fprintf( fp, "#BANNER:%s;\n", out.m_sBannerFile.GetString() ); + fprintf( fp, "#BACKGROUND:%s;\n", out.m_sBackgroundFile.GetString() ); + fprintf( fp, "#CDTITLE:%s;\n", out.m_sCDTitleFile.GetString() ); + fprintf( fp, "#MUSIC:%s;\n", out.m_sMusicFile.GetString() ); + fprintf( fp, "#MUSICBYTES:%u;\n", out.m_iMusicBytes ); + fprintf( fp, "#MUSICLENGTH:%.3f;\n", out.m_fMusicLengthSeconds ); + fprintf( fp, "#OFFSET:%.3f;\n", out.m_fBeat0OffsetInSeconds ); + fprintf( fp, "#SAMPLESTART:%.3f;\n", out.m_fMusicSampleStartSeconds ); + fprintf( fp, "#SAMPLELENGTH:%.3f;\n", out.m_fMusicSampleLengthSeconds ); + fprintf( fp, "#SELECTABLE:" ); + + switch(out.m_SelectionDisplay) { + default: ASSERT(0); /* fallthrough */ + case Song::SHOW_ALWAYS: + fprintf( fp, "YES" ); break; + case Song::SHOW_NEVER: + fprintf( fp, "NO" ); break; + case Song::SHOW_ROULETTE: + fprintf( fp, "ROULETTE" ); break; + } + fprintf( fp, ";\n" ); + + fprintf( fp, "#BPMS:" ); + unsigned i; + for( i=0; im_bAutoGen ) // If notes aren't autogen + out.m_apNotes[i]->WriteSMNotesTag( fp ); + } + + fclose( fp ); + + return true; +} diff --git a/stepmania/src/NotesWriterSM.h b/stepmania/src/NotesWriterSM.h new file mode 100644 index 0000000000..3aee1bb1cf --- /dev/null +++ b/stepmania/src/NotesWriterSM.h @@ -0,0 +1,14 @@ +#ifndef NOTES_WRITER_SM_H +#define NOTES_WRITER_SM_H + +#include "Song.h" + +class NotesWriterSM +{ + void WriteGlobalTags(FILE *fp, const Song &out); + +public: + bool Write( CString sPath, const Song &out, bool bSavingCache ); +}; + +#endif