22#include " RenameBackupLayer.h"
33#include < BackupCell.h>
44
5- RenameBackupLayer* RenameBackupLayer::create (BackupsLayer* _parentLayer, std::string cellBackupDir ) {
5+ RenameBackupLayer* RenameBackupLayer::create (BackupsLayer* _parentLayer, BackupCell* cell ) {
66 auto ret = new RenameBackupLayer ();
7- if (ret && ret->init (280 , 97 , _parentLayer, cellBackupDir , " GJ_square01.png" )) {
7+ if (ret && ret->init (280 , 97 , _parentLayer, cell , " GJ_square01.png" )) {
88 ret->autorelease ();
99 } else {
1010 delete ret;
@@ -13,13 +13,13 @@ RenameBackupLayer* RenameBackupLayer::create(BackupsLayer* _parentLayer, std::st
1313 return ret;
1414}
1515
16- bool RenameBackupLayer::init (float _w, float _h, BackupsLayer* _parentLayer, std::string _cellBackupDir , const char * _spr){
16+ bool RenameBackupLayer::init (float _w, float _h, BackupsLayer* _parentLayer, BackupCell* cell , const char * _spr){
1717 // create window
1818 auto winSize = CCDirector::sharedDirector ()->getWinSize ();
1919 CCSize size = {_w, _h};
2020
2121 parentLayer = _parentLayer;
22- cellBackupDir = _cellBackupDir ;
22+ backupCell = cell ;
2323
2424 if (!this ->initWithColor ({0 , 0 , 0 , 105 })) return false ;
2525 m_mainLayer = CCLayer::create ();
@@ -44,13 +44,22 @@ bool RenameBackupLayer::init(float _w, float _h, BackupsLayer* _parentLayer, std
4444 menu_selector (RenameBackupLayer::backButtonCallback)
4545 );
4646 CloseButton->setUserData (reinterpret_cast <void *>(this ));
47-
4847 m_buttonMenu->addChild (CloseButton);
49-
5048 CloseButton->setPosition (-_w / 2 .1f , _h / 2 .1f );
5149 CloseButton->setZOrder (1 );
5250
53- CCLabelBMFont* Label = CCLabelBMFont::create (" Rename Backup" , " bigFont.fnt" );
51+ // add export button
52+ auto exportBackupSprite = CCSprite::createWithSpriteFrameName (" accountBtn_myLevels_001.png" );
53+ auto exportBackupButton = CCMenuItemSpriteExtra::create (
54+ exportBackupSprite,
55+ nullptr ,
56+ this ,
57+ menu_selector (RenameBackupLayer::OnExport)
58+ );
59+ exportBackupButton->setPosition (_w / 2 .1f , -_h / 2 .1f );
60+ m_buttonMenu->addChild (exportBackupButton);
61+
62+ CCLabelBMFont* Label = CCLabelBMFont::create (" Backup Settings" , " bigFont.fnt" );
5463 Label->setPosition ({285 , 193 });
5564 Label->setScale (0 .75f );
5665 m_mainLayer->addChild (Label);
@@ -103,6 +112,17 @@ void RenameBackupLayer::show(CCNode* parent) {
103112 parent->addChild (this );
104113}
105114
115+ void RenameBackupLayer::OnExport (CCObject* object){
116+ exportAlert = FLAlertLayer::create (
117+ this ,
118+ " Export Backup" ,
119+ " Do you want to export\n \" " + backupCell->Name + " \" ?" ,
120+ " No" ,
121+ " Yes"
122+ );
123+ exportAlert->show ();
124+ }
125+
106126void RenameBackupLayer::keyBackClicked () {
107127 parentLayer->RefreshBackupsList ();
108128 this ->setKeyboardEnabled (false );
@@ -117,7 +137,7 @@ void RenameBackupLayer::DoneAndSave(CCObject* object){
117137 if (NameInput->getString () != " " ){
118138 std::fstream file;
119139
120- file.open (cellBackupDir + " \\ Backup.dat" );
140+ file.open (backupCell-> _folderPath + " / Backup.dat" );
121141
122142 if (!file.fail ()){
123143 std::vector<std::string> lines;
@@ -131,7 +151,7 @@ void RenameBackupLayer::DoneAndSave(CCObject* object){
131151 if (0 <= lines.size ()){
132152 std::ofstream fileW;
133153
134- fileW.open (cellBackupDir + " \\ Backup.dat" );
154+ fileW.open (backupCell-> _folderPath + " / Backup.dat" );
135155
136156 if (!fileW.fail ()){
137157 for (int i = 0 ; i < lines.size (); i++)
@@ -173,4 +193,31 @@ void RenameBackupLayer::DoneAndSave(CCObject* object){
173193 " Back"
174194 )->show ();
175195 }
196+ }
197+
198+ void RenameBackupLayer::FLAlert_Clicked (FLAlertLayer* p0, bool p1){
199+ if (exportAlert == p0 && p1){
200+ Result<std::vector<ghc::filesystem::path>> readBackups;
201+ readBackups = file::readDirectory (backupCell->_folderPath );
202+ std::string currFileData = " " ;
203+ for (int i = 0 ; i < readBackups.value ().size (); i++)
204+ {
205+ currFileData += file::readString (readBackups.value ()[i]).value ();
206+ currFileData += " \n <>;" ;
207+ }
208+
209+ std::ofstream exportFile (Mod::get ()->getSaveDir () / (" Backups/Exports/" + backupCell->Name + " .gdbackup" ));
210+
211+ exportFile << currFileData;
212+
213+ exportFile.close ();
214+
215+ FLAlertLayer::create (
216+ " Exported!" ,
217+ backupCell->Name + " was exported to\n " + Mod::get ()->getSaveDir ().string () + " /Backups/Exports" ,
218+ " OK"
219+ )->show ();
220+
221+ keyBackClicked ();
222+ }
176223}
0 commit comments