diff --git a/BAKKA Editor.sln b/BAKKA Editor.sln
new file mode 100644
index 0000000..e4b9658
--- /dev/null
+++ b/BAKKA Editor.sln
@@ -0,0 +1,31 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32126.315
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BAKKA Editor", "BAKKA Editor\BAKKA Editor.vcxproj", "{459EC852-D323-45B0-8A85-D6F4B030F5A4}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {459EC852-D323-45B0-8A85-D6F4B030F5A4}.Debug|x64.ActiveCfg = Debug|x64
+ {459EC852-D323-45B0-8A85-D6F4B030F5A4}.Debug|x64.Build.0 = Debug|x64
+ {459EC852-D323-45B0-8A85-D6F4B030F5A4}.Debug|x86.ActiveCfg = Debug|Win32
+ {459EC852-D323-45B0-8A85-D6F4B030F5A4}.Debug|x86.Build.0 = Debug|Win32
+ {459EC852-D323-45B0-8A85-D6F4B030F5A4}.Release|x64.ActiveCfg = Release|x64
+ {459EC852-D323-45B0-8A85-D6F4B030F5A4}.Release|x64.Build.0 = Release|x64
+ {459EC852-D323-45B0-8A85-D6F4B030F5A4}.Release|x86.ActiveCfg = Release|Win32
+ {459EC852-D323-45B0-8A85-D6F4B030F5A4}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {469EEAFF-2D80-4D14-A10D-95AE6CB493DA}
+ EndGlobalSection
+EndGlobal
diff --git a/BAKKA Editor/BAKKA Editor.vcxproj b/BAKKA Editor/BAKKA Editor.vcxproj
new file mode 100644
index 0000000..5ef0001
--- /dev/null
+++ b/BAKKA Editor/BAKKA Editor.vcxproj
@@ -0,0 +1,142 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ {459EC852-D323-45B0-8A85-D6F4B030F5A4}
+ v4.7.2
+ ManagedCProj
+ BAKKAEditor
+ 10.0
+
+
+
+ Application
+ true
+ v142
+ true
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+ Application
+ true
+ v142
+ true
+ Unicode
+
+
+ Application
+ false
+ v142
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Level3
+ WIN32;_DEBUG;%(PreprocessorDefinitions)
+
+
+
+ Windows
+ main
+
+
+
+
+ Level3
+ _DEBUG;%(PreprocessorDefinitions)
+
+
+
+
+
+
+
+ Level3
+ WIN32;NDEBUG;%(PreprocessorDefinitions)
+
+
+
+
+
+
+
+ Level3
+ NDEBUG;%(PreprocessorDefinitions)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CppForm
+
+
+
+
+ MyForm.h
+
+
+ MyForm.h
+
+
+
+
+
+
\ No newline at end of file
diff --git a/BAKKA Editor/BAKKA Editor.vcxproj.filters b/BAKKA Editor/BAKKA Editor.vcxproj.filters
new file mode 100644
index 0000000..f6f1b97
--- /dev/null
+++ b/BAKKA Editor/BAKKA Editor.vcxproj.filters
@@ -0,0 +1,30 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Source Files
+
+
+
+
+ Header Files
+
+
+ Header Files
+
+
+
\ No newline at end of file
diff --git a/BAKKA Editor/Chart.h b/BAKKA Editor/Chart.h
new file mode 100644
index 0000000..acd05d6
--- /dev/null
+++ b/BAKKA Editor/Chart.h
@@ -0,0 +1,33 @@
+#pragma once
+#include
+#include
+#include
+
+struct NotesNode {
+ int beat;
+ int subBeat;
+ int noteType;
+ int position;
+ int size;
+ int holdChange;
+ int BGType;
+ std::list::iterator nextNode;
+ std::list::iterator prevNode;
+};
+
+struct PreChartNode {
+ int beat;
+ int subBeat;
+ int type;
+ double BPM; //2
+ int beatDiv1; //3
+ int beatDiv2; //3
+ double hiSpeed; //5
+ //6-10 have no extra info
+};
+
+struct Chart {
+ std::list Notes;
+ std::list PreChart;
+ double offset;
+};
\ No newline at end of file
diff --git a/BAKKA Editor/MyForm.cpp b/BAKKA Editor/MyForm.cpp
new file mode 100644
index 0000000..2eb906c
--- /dev/null
+++ b/BAKKA Editor/MyForm.cpp
@@ -0,0 +1,13 @@
+#include "MyForm.h"
+
+using namespace System;
+using namespace System::Windows::Forms;
+[STAThread]
+
+void main(array^ args)
+{
+ Application::EnableVisualStyles();
+ Application::SetCompatibleTextRenderingDefault(false);
+ BAKKAEditor::MyForm form;
+ Application::Run(% form);
+}
diff --git a/BAKKA Editor/MyForm.en-US.resx b/BAKKA Editor/MyForm.en-US.resx
new file mode 100644
index 0000000..e44e8ac
--- /dev/null
+++ b/BAKKA Editor/MyForm.en-US.resx
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ 114, 22
+
+
+ 114, 22
+
+
+ 114, 22
+
+
+ 114, 22
+
+
+ 114, 22
+
+
+ 12, 48
+
+
+ 666, 74
+
+
\ No newline at end of file
diff --git a/BAKKA Editor/MyForm.h b/BAKKA Editor/MyForm.h
new file mode 100644
index 0000000..6b13fd6
--- /dev/null
+++ b/BAKKA Editor/MyForm.h
@@ -0,0 +1,465 @@
+#pragma once
+#include
+#include
+#include
+#include "Chart.h"
+
+Chart theChart;
+int findLine(std::list::iterator nextNode) {
+ int outputLine = 0;
+
+ for (std::list::iterator itr = theChart.Notes.begin(); itr != theChart.Notes.end(); itr++) {
+ if (itr == nextNode)
+ break;
+ outputLine++;
+ }
+
+ return outputLine;
+}
+
+bool sortNotesListByBeat(const NotesNode& lhs, const NotesNode& rhs) {
+ if (lhs.beat < rhs.beat)
+ return true;
+ else if ((lhs.beat == rhs.beat) && (lhs.subBeat < rhs.subBeat))
+ return true;
+ else
+ return false;
+}
+bool sortPreChartListByBeat(const PreChartNode& lhs, const PreChartNode& rhs) {
+ if (lhs.beat < rhs.beat)
+ return true;
+ else if ((lhs.beat == rhs.beat) && (lhs.subBeat < rhs.subBeat))
+ return true;
+ else
+ return false;
+}
+
+namespace BAKKAEditor {
+
+ using namespace System;
+ using namespace System::ComponentModel;
+ using namespace System::Collections;
+ using namespace System::Windows::Forms;
+ using namespace System::Data;
+ using namespace System::Drawing;
+
+ ///
+ /// Summary for MyForm
+ ///
+ public ref class MyForm : public System::Windows::Forms::Form
+ {
+ public:
+ MyForm(void)
+ {
+ InitializeComponent();
+ //
+ //TODO: Add the constructor code here
+ //
+ }
+
+ protected:
+ ///
+ /// Clean up any resources being used.
+ ///
+ ~MyForm()
+ {
+ if (components)
+ {
+ delete components;
+ }
+ }
+ private: System::Windows::Forms::MenuStrip^ menuStrip;
+ protected:
+
+ protected:
+ private: System::Windows::Forms::ToolStripMenuItem^ fileToolStripMenuItem;
+ private: System::Windows::Forms::ToolStripMenuItem^ newToolStripMenuItem;
+ private: System::Windows::Forms::ToolStripMenuItem^ openToolStripMenuItem;
+ private: System::Windows::Forms::ToolStripMenuItem^ saveToolStripMenuItem;
+ private: System::Windows::Forms::ToolStripMenuItem^ saveAsToolStripMenuItem;
+ private: System::Windows::Forms::ToolStripMenuItem^ exitToolStripMenuItem;
+ private: System::Windows::Forms::Button^ TapButton;
+ private: System::Windows::Forms::Button^ OrangeButton;
+ private: System::Windows::Forms::Button^ GreenButton;
+
+
+
+ private: System::Windows::Forms::CheckBox^ BonusBox;
+ private: System::Windows::Forms::Button^ RedButton;
+ private: System::Windows::Forms::Button^ BlueButton;
+ private: System::Windows::Forms::Button^ YellowButton;
+ private: System::Windows::Forms::Button^ HoldButton;
+ private: System::Windows::Forms::Button^ BGButton;
+ private: System::Windows::Forms::GroupBox^ NoteTypesButtons;
+
+
+
+ private: System::Windows::Forms::ToolTip^ ToolTip;
+ private: System::Windows::Forms::CheckBox^ BGBox;
+ private: System::Windows::Forms::CheckBox^ EndHoldBox;
+ private: System::Windows::Forms::Button^ InsertButton;
+ private: System::Windows::Forms::Label^ PosLabel;
+ private: System::Windows::Forms::Label^ posInfo;
+ private: System::Windows::Forms::NumericUpDown^ SizeNum;
+ private: System::Windows::Forms::Label^ SizeInfo;
+ private: System::Windows::Forms::Label^ SizeLabel;
+ private: System::Windows::Forms::NumericUpDown^ PosNum;
+ private: System::Windows::Forms::Panel^ panel1;
+
+
+
+
+ private: System::ComponentModel::IContainer^ components;
+
+
+
+
+
+
+
+
+
+
+ private:
+ ///
+ /// Required designer variable.
+ ///
+
+
+#pragma region Windows Form Designer generated code
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ void InitializeComponent(void)
+ {
+ this->components = (gcnew System::ComponentModel::Container());
+ System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(MyForm::typeid));
+ this->menuStrip = (gcnew System::Windows::Forms::MenuStrip());
+ this->fileToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
+ this->newToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
+ this->openToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
+ this->saveToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
+ this->saveAsToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
+ this->exitToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
+ this->TapButton = (gcnew System::Windows::Forms::Button());
+ this->OrangeButton = (gcnew System::Windows::Forms::Button());
+ this->GreenButton = (gcnew System::Windows::Forms::Button());
+ this->BonusBox = (gcnew System::Windows::Forms::CheckBox());
+ this->RedButton = (gcnew System::Windows::Forms::Button());
+ this->BlueButton = (gcnew System::Windows::Forms::Button());
+ this->YellowButton = (gcnew System::Windows::Forms::Button());
+ this->HoldButton = (gcnew System::Windows::Forms::Button());
+ this->BGButton = (gcnew System::Windows::Forms::Button());
+ this->NoteTypesButtons = (gcnew System::Windows::Forms::GroupBox());
+ this->BGBox = (gcnew System::Windows::Forms::CheckBox());
+ this->EndHoldBox = (gcnew System::Windows::Forms::CheckBox());
+ this->ToolTip = (gcnew System::Windows::Forms::ToolTip(this->components));
+ this->InsertButton = (gcnew System::Windows::Forms::Button());
+ this->PosLabel = (gcnew System::Windows::Forms::Label());
+ this->posInfo = (gcnew System::Windows::Forms::Label());
+ this->SizeNum = (gcnew System::Windows::Forms::NumericUpDown());
+ this->SizeInfo = (gcnew System::Windows::Forms::Label());
+ this->SizeLabel = (gcnew System::Windows::Forms::Label());
+ this->PosNum = (gcnew System::Windows::Forms::NumericUpDown());
+ this->panel1 = (gcnew System::Windows::Forms::Panel());
+ this->menuStrip->SuspendLayout();
+ this->NoteTypesButtons->SuspendLayout();
+ (cli::safe_cast(this->SizeNum))->BeginInit();
+ (cli::safe_cast(this->PosNum))->BeginInit();
+ this->panel1->SuspendLayout();
+ this->SuspendLayout();
+ //
+ // menuStrip
+ //
+ this->menuStrip->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(1) { this->fileToolStripMenuItem });
+ resources->ApplyResources(this->menuStrip, L"menuStrip");
+ this->menuStrip->Name = L"menuStrip";
+ //
+ // fileToolStripMenuItem
+ //
+ this->fileToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(5) {
+ this->newToolStripMenuItem,
+ this->openToolStripMenuItem, this->saveToolStripMenuItem, this->saveAsToolStripMenuItem, this->exitToolStripMenuItem
+ });
+ this->fileToolStripMenuItem->Name = L"fileToolStripMenuItem";
+ resources->ApplyResources(this->fileToolStripMenuItem, L"fileToolStripMenuItem");
+ //
+ // newToolStripMenuItem
+ //
+ this->newToolStripMenuItem->Name = L"newToolStripMenuItem";
+ resources->ApplyResources(this->newToolStripMenuItem, L"newToolStripMenuItem");
+ this->newToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::newToolStripMenuItem_Click);
+ //
+ // openToolStripMenuItem
+ //
+ this->openToolStripMenuItem->Name = L"openToolStripMenuItem";
+ resources->ApplyResources(this->openToolStripMenuItem, L"openToolStripMenuItem");
+ this->openToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::openToolStripMenuItem_Click);
+ //
+ // saveToolStripMenuItem
+ //
+ this->saveToolStripMenuItem->Name = L"saveToolStripMenuItem";
+ resources->ApplyResources(this->saveToolStripMenuItem, L"saveToolStripMenuItem");
+ this->saveToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::saveToolStripMenuItem_Click);
+ //
+ // saveAsToolStripMenuItem
+ //
+ this->saveAsToolStripMenuItem->Name = L"saveAsToolStripMenuItem";
+ resources->ApplyResources(this->saveAsToolStripMenuItem, L"saveAsToolStripMenuItem");
+ //
+ // exitToolStripMenuItem
+ //
+ this->exitToolStripMenuItem->Name = L"exitToolStripMenuItem";
+ resources->ApplyResources(this->exitToolStripMenuItem, L"exitToolStripMenuItem");
+ //
+ // TapButton
+ //
+ resources->ApplyResources(this->TapButton, L"TapButton");
+ this->TapButton->Name = L"TapButton";
+ this->TapButton->UseVisualStyleBackColor = true;
+ //
+ // OrangeButton
+ //
+ resources->ApplyResources(this->OrangeButton, L"OrangeButton");
+ this->OrangeButton->Name = L"OrangeButton";
+ this->OrangeButton->UseVisualStyleBackColor = true;
+ //
+ // GreenButton
+ //
+ resources->ApplyResources(this->GreenButton, L"GreenButton");
+ this->GreenButton->Name = L"GreenButton";
+ this->GreenButton->UseVisualStyleBackColor = true;
+ //
+ // BonusBox
+ //
+ resources->ApplyResources(this->BonusBox, L"BonusBox");
+ this->BonusBox->Name = L"BonusBox";
+ this->ToolTip->SetToolTip(this->BonusBox, resources->GetString(L"BonusBox.ToolTip"));
+ this->BonusBox->UseVisualStyleBackColor = true;
+ //
+ // RedButton
+ //
+ resources->ApplyResources(this->RedButton, L"RedButton");
+ this->RedButton->Name = L"RedButton";
+ this->RedButton->UseVisualStyleBackColor = true;
+ //
+ // BlueButton
+ //
+ resources->ApplyResources(this->BlueButton, L"BlueButton");
+ this->BlueButton->Name = L"BlueButton";
+ this->BlueButton->UseVisualStyleBackColor = true;
+ //
+ // YellowButton
+ //
+ resources->ApplyResources(this->YellowButton, L"YellowButton");
+ this->YellowButton->Name = L"YellowButton";
+ this->YellowButton->UseVisualStyleBackColor = true;
+ //
+ // HoldButton
+ //
+ resources->ApplyResources(this->HoldButton, L"HoldButton");
+ this->HoldButton->Name = L"HoldButton";
+ this->ToolTip->SetToolTip(this->HoldButton, resources->GetString(L"HoldButton.ToolTip"));
+ this->HoldButton->UseVisualStyleBackColor = true;
+ //
+ // BGButton
+ //
+ resources->ApplyResources(this->BGButton, L"BGButton");
+ this->BGButton->Name = L"BGButton";
+ this->BGButton->UseVisualStyleBackColor = true;
+ //
+ // NoteTypesButtons
+ //
+ this->NoteTypesButtons->Controls->Add(this->BGBox);
+ this->NoteTypesButtons->Controls->Add(this->EndHoldBox);
+ this->NoteTypesButtons->Controls->Add(this->BGButton);
+ this->NoteTypesButtons->Controls->Add(this->TapButton);
+ this->NoteTypesButtons->Controls->Add(this->BonusBox);
+ this->NoteTypesButtons->Controls->Add(this->HoldButton);
+ this->NoteTypesButtons->Controls->Add(this->OrangeButton);
+ this->NoteTypesButtons->Controls->Add(this->YellowButton);
+ this->NoteTypesButtons->Controls->Add(this->GreenButton);
+ this->NoteTypesButtons->Controls->Add(this->BlueButton);
+ this->NoteTypesButtons->Controls->Add(this->RedButton);
+ resources->ApplyResources(this->NoteTypesButtons, L"NoteTypesButtons");
+ this->NoteTypesButtons->Name = L"NoteTypesButtons";
+ this->NoteTypesButtons->TabStop = false;
+ //
+ // BGBox
+ //
+ resources->ApplyResources(this->BGBox, L"BGBox");
+ this->BGBox->Name = L"BGBox";
+ this->ToolTip->SetToolTip(this->BGBox, resources->GetString(L"BGBox.ToolTip"));
+ this->BGBox->UseVisualStyleBackColor = true;
+ //
+ // EndHoldBox
+ //
+ resources->ApplyResources(this->EndHoldBox, L"EndHoldBox");
+ this->EndHoldBox->Name = L"EndHoldBox";
+ this->ToolTip->SetToolTip(this->EndHoldBox, resources->GetString(L"EndHoldBox.ToolTip"));
+ this->EndHoldBox->UseVisualStyleBackColor = true;
+ //
+ // InsertButton
+ //
+ resources->ApplyResources(this->InsertButton, L"InsertButton");
+ this->InsertButton->Name = L"InsertButton";
+ this->InsertButton->UseVisualStyleBackColor = true;
+ //
+ // PosLabel
+ //
+ resources->ApplyResources(this->PosLabel, L"PosLabel");
+ this->PosLabel->Name = L"PosLabel";
+ //
+ // posInfo
+ //
+ resources->ApplyResources(this->posInfo, L"posInfo");
+ this->posInfo->Name = L"posInfo";
+ //
+ // SizeNum
+ //
+ resources->ApplyResources(this->SizeNum, L"SizeNum");
+ this->SizeNum->Maximum = System::Decimal(gcnew cli::array< System::Int32 >(4) { 60, 0, 0, 0 });
+ this->SizeNum->Minimum = System::Decimal(gcnew cli::array< System::Int32 >(4) { 1, 0, 0, 0 });
+ this->SizeNum->Name = L"SizeNum";
+ this->SizeNum->Value = System::Decimal(gcnew cli::array< System::Int32 >(4) { 1, 0, 0, 0 });
+ //
+ // SizeInfo
+ //
+ resources->ApplyResources(this->SizeInfo, L"SizeInfo");
+ this->SizeInfo->Name = L"SizeInfo";
+ //
+ // SizeLabel
+ //
+ resources->ApplyResources(this->SizeLabel, L"SizeLabel");
+ this->SizeLabel->Name = L"SizeLabel";
+ //
+ // PosNum
+ //
+ resources->ApplyResources(this->PosNum, L"PosNum");
+ this->PosNum->Maximum = System::Decimal(gcnew cli::array< System::Int32 >(4) { 59, 0, 0, 0 });
+ this->PosNum->Name = L"PosNum";
+ //
+ // panel1
+ //
+ this->panel1->Controls->Add(this->PosNum);
+ this->panel1->Controls->Add(this->SizeLabel);
+ this->panel1->Controls->Add(this->SizeInfo);
+ this->panel1->Controls->Add(this->PosLabel);
+ this->panel1->Controls->Add(this->posInfo);
+ this->panel1->Controls->Add(this->SizeNum);
+ resources->ApplyResources(this->panel1, L"panel1");
+ this->panel1->Name = L"panel1";
+ //
+ // MyForm
+ //
+ this->AllowDrop = true;
+ resources->ApplyResources(this, L"$this");
+ this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
+ this->Controls->Add(this->panel1);
+ this->Controls->Add(this->InsertButton);
+ this->Controls->Add(this->NoteTypesButtons);
+ this->Controls->Add(this->menuStrip);
+ this->MainMenuStrip = this->menuStrip;
+ this->Name = L"MyForm";
+ this->menuStrip->ResumeLayout(false);
+ this->menuStrip->PerformLayout();
+ this->NoteTypesButtons->ResumeLayout(false);
+ this->NoteTypesButtons->PerformLayout();
+ (cli::safe_cast(this->SizeNum))->EndInit();
+ (cli::safe_cast(this->PosNum))->EndInit();
+ this->panel1->ResumeLayout(false);
+ this->panel1->PerformLayout();
+ this->ResumeLayout(false);
+ this->PerformLayout();
+
+ }
+#pragma endregion
+ private: System::Void newToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
+
+ }
+ private: System::Void saveToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
+ theChart.PreChart.sort(sortPreChartListByBeat);
+ theChart.Notes.sort(sortNotesListByBeat);
+
+ std::ofstream chartFile;
+ chartFile.open("chart.mer");
+
+ chartFile
+ << "#MUSIC_SCORE_ID 0\n"
+ << "#MUSIC_SCORE_VERSION 0\n"
+ << "#GAME_VERSION \n"
+ << "#MUSIC_FILE_PATH MER_BGM_S00_004 [replace name with actual file name]\n"
+ << "#OFFSET " << theChart.offset << "\n"
+ << "#MOVIEOFFSET 0.000000\n"
+ << "#BODY\n";
+
+ chartFile << std::setw(5);
+ for (std::list::iterator itr = theChart.PreChart.begin(); itr != theChart.PreChart.end(); itr++) {
+ chartFile << (itr)->beat << " " << (itr)->subBeat << " " << (itr)->type << " ";
+ switch ((itr)->type) {
+ case 2:
+ chartFile << (itr)->BPM;
+ break;
+ case 3:
+ chartFile << (itr)->beatDiv1 << " " << (itr)->beatDiv2;
+ break;
+ case 5:
+ chartFile << (itr)->hiSpeed;
+ break;
+ default:
+ chartFile << "";
+ }
+ chartFile << "\n";
+ }
+
+ int line = 0;
+ for (std::list::iterator itr = theChart.Notes.begin(); itr != theChart.Notes.end(); itr++) {
+ chartFile
+ << (itr)->beat << " "
+ << (itr)->subBeat << " "
+ << "1" << " "
+ << (itr)->noteType << " "
+ << line << " "
+ << (itr)->position << " "
+ << (itr)->size << " ";
+ switch ((itr)->noteType) {
+ case 9:
+ chartFile << 1 << " " << findLine((itr)->nextNode);
+ break;
+ case 10:
+ if (((itr)->nextNode->position > (itr)->position && (itr)->prevNode->position > (itr)->position) ||
+ ((itr)->nextNode->position < (itr)->position && (itr)->prevNode->position < (itr)->position)) {
+ chartFile << 1 << " " << findLine((itr)->nextNode);
+ }
+ else {
+ chartFile << 0 << " " << findLine((itr)->nextNode);
+ }
+ break;
+ case 12:
+ chartFile << 1 << " " << (itr)->BGType;
+ break;
+ case 13:
+ chartFile << 1 << " " << (itr)->BGType;
+ break;
+ default:
+ chartFile << 1;
+ }
+ chartFile << "\n";
+ line++;
+ }
+
+ chartFile.close();
+ }
+ private: System::Void openToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
+ std::ifstream chartFile;
+ chartFile.open("chart.mer");
+
+ while (!chartFile.eof()) {
+
+ }
+
+ chartFile.close();
+ }
+};
+}
diff --git a/BAKKA Editor/MyForm.resx b/BAKKA Editor/MyForm.resx
new file mode 100644
index 0000000..82fdd2c
--- /dev/null
+++ b/BAKKA Editor/MyForm.resx
@@ -0,0 +1,805 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+ 180, 22
+
+
+ New
+
+
+ 180, 22
+
+
+ Open
+
+
+ 180, 22
+
+
+ Save
+
+
+ 180, 22
+
+
+ Save As
+
+
+ 180, 22
+
+
+ Exit
+
+
+ 37, 20
+
+
+ File
+
+
+ 0, 0
+
+
+ 972, 24
+
+
+
+ 0
+
+
+ Menu Strip
+
+
+ menuStrip
+
+
+ System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 3
+
+
+ True
+
+
+ 6, 19
+
+
+ 75, 23
+
+
+ 1
+
+
+ Tap
+
+
+
+ ImageBeforeText
+
+
+ TapButton
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ NoteTypesButtons
+
+
+ 3
+
+
+ True
+
+
+ 87, 19
+
+
+ 77, 23
+
+
+ 2
+
+
+ Orange Flick
+
+
+ OrangeButton
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ NoteTypesButtons
+
+
+ 6
+
+
+ True
+
+
+ 170, 19
+
+
+ 75, 23
+
+
+ 3
+
+
+ Green Flick
+
+
+ GreenButton
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ NoteTypesButtons
+
+
+ 8
+
+
+ True
+
+
+ 12, 48
+
+
+ 56, 17
+
+
+ 4
+
+
+ Bonus
+
+
+ 124, 17
+
+
+ Bonus Only Applies to:
+Tap, Orange Flicks, and Green Flicks
+
+
+ BonusBox
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ NoteTypesButtons
+
+
+ 4
+
+
+ True
+
+
+ 251, 19
+
+
+ 75, 23
+
+
+ 7
+
+
+ Red Flick
+
+
+ RedButton
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ NoteTypesButtons
+
+
+ 10
+
+
+ True
+
+
+ 332, 19
+
+
+ 75, 23
+
+
+ 8
+
+
+ Blue Flick
+
+
+ BlueButton
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ NoteTypesButtons
+
+
+ 9
+
+
+ True
+
+
+ 413, 19
+
+
+ 75, 23
+
+
+ 9
+
+
+ Yellow Tap
+
+
+ YellowButton
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ NoteTypesButtons
+
+
+ 7
+
+
+ True
+
+
+ 494, 19
+
+
+ 75, 23
+
+
+ 10
+
+
+ Hold
+
+
+ After first insert of a hold,
+you must continue adding to the hold until end.
+Check box to add end of hold
+
+
+ HoldButton
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ NoteTypesButtons
+
+
+ 5
+
+
+ True
+
+
+ 575, 19
+
+
+ 75, 23
+
+
+ 11
+
+
+ Background
+
+
+ BGButton
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ NoteTypesButtons
+
+
+ 2
+
+
+ True
+
+
+ 575, 49
+
+
+ 58, 17
+
+
+ 13
+
+
+ +/- BG
+
+
+ Checked: Add section background
+Unchecked: Remove section of background
+
+
+ BGBox
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ NoteTypesButtons
+
+
+ 0
+
+
+ True
+
+
+ 494, 49
+
+
+ 70, 17
+
+
+ 12
+
+
+ End Hold
+
+
+ Check box to make next insert the end of the hold
+
+
+ EndHoldBox
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ NoteTypesButtons
+
+
+ 1
+
+
+ 6, 27
+
+
+ 678, 77
+
+
+ 14
+
+
+ Object Types
+
+
+ NoteTypesButtons
+
+
+ System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 2
+
+
+ 6, 188
+
+
+ 203, 23
+
+
+ 21
+
+
+ Insert Object
+
+
+ InsertButton
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 1
+
+
+ True
+
+
+ Microsoft Sans Serif, 12pt, style=Bold
+
+
+ NoControl
+
+
+ 3, 7
+
+
+ 78, 20
+
+
+ 16
+
+
+ Position:
+
+
+ PosLabel
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panel1
+
+
+ 3
+
+
+ True
+
+
+ NoControl
+
+
+ 155, 9
+
+
+ 28, 13
+
+
+ 19
+
+
+ 0-59
+
+
+ posInfo
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panel1
+
+
+ 4
+
+
+ 80, 38
+
+
+ 69, 20
+
+
+ 18
+
+
+ SizeNum
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panel1
+
+
+ 5
+
+
+ True
+
+
+ NoControl
+
+
+ 155, 43
+
+
+ 28, 13
+
+
+ 20
+
+
+ 1-60
+
+
+ SizeInfo
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panel1
+
+
+ 2
+
+
+ True
+
+
+ Microsoft Sans Serif, 12pt, style=Bold
+
+
+ NoControl
+
+
+ 3, 38
+
+
+ 49, 20
+
+
+ 17
+
+
+ Size:
+
+
+ SizeLabel
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panel1
+
+
+ 1
+
+
+ 80, 7
+
+
+ 69, 20
+
+
+ 15
+
+
+ PosNum
+
+
+ System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ panel1
+
+
+ 0
+
+
+ 6, 110
+
+
+ 203, 72
+
+
+ 22
+
+
+ panel1
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 0
+
+
+ True
+
+
+ 6, 13
+
+
+ GrowAndShrink
+
+
+ 972, 510
+
+
+ BAKKA Editor
+
+
+ fileToolStripMenuItem
+
+
+ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ newToolStripMenuItem
+
+
+ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ openToolStripMenuItem
+
+
+ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ saveToolStripMenuItem
+
+
+ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ saveAsToolStripMenuItem
+
+
+ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ exitToolStripMenuItem
+
+
+ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ToolTip
+
+
+ System.Windows.Forms.ToolTip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ MyForm
+
+
+ System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/BAKKA Editor/chart.mer b/BAKKA Editor/chart.mer
new file mode 100644
index 0000000..17c686a
--- /dev/null
+++ b/BAKKA Editor/chart.mer
@@ -0,0 +1,7 @@
+#MUSIC_SCORE_ID 1
+#MUSIC_SCORE_VERSION 1
+#GAME_VERSION 1
+#MUSIC_FILE_PATH MER_BGM_S00_004 [replace name with actual file name]
+#OFFSET 0
+#MOVIEOFFSET 0.000000
+#BODY