You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.2 KiB
C++

#include <QRegExp>
#include "qw_newgameevent.h"
#include "qw_globalmetadata.h"
QWNewGameEvent::QWNewGameEvent(const QString &savefile) :
str_savefile(savefile)
{
Q_ASSERT(!str_savefile.isEmpty());
}
void QWNewGameEvent::execute()
{
const QString profile_name = QWGlobalMetadata::valueBy("new_game_dialogue").toString();
str_savefile = composeFileName(profile_name);
Q_ASSERT(!profile_name.isEmpty());
Q_ASSERT(!str_savefile.isEmpty());
ptr_builder->initSaveProfile(str_savefile, profile_name);
ptr_builder->initLevel(QWLevelBuilder::strInitLevel());
}
////////////////////////
QString QWNewGameEvent::composeFileName(const QString &str)
{
//Turn the chosen by user savename into file name.
QString file_name = str;
const QRegExp regexp("[^0-9a-z]+");
file_name = file_name.toLower().remove(regexp);
return file_name;
}
////////////////////////
void QWNewGameEvent::writeToJson(QJsonObject &event_data)
{
event_data.insert("id", tag());
event_data.insert("type", EVENT_TYPE::NEW_GAME);
event_data.insert("save_file", str_savefile);
qDebug() << " The new_game event:\n" << " id " << tag()
<< "\n save_file " << str_savefile;
}