Skip to content

Commit

Permalink
Add call/chatot to Gen 4 Events
Browse files Browse the repository at this point in the history
Fixes #400
  • Loading branch information
Admiral-Fish committed Jun 18, 2024
1 parent d142f17 commit 7c35c6a
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 6 deletions.
1 change: 1 addition & 0 deletions Source/Form/Gen4/Event4.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ void Event4::updateProfiles()
void Event4::generate()
{
generatorModel->clearModel();
generatorModel->setGame(currentProfile->getVersion());

u32 seed = ui->textBoxGeneratorSeed->getUInt();
u32 initialAdvances = ui->textBoxGeneratorInitialAdvances->getUInt();
Expand Down
42 changes: 37 additions & 5 deletions Source/Model/Gen4/EventModel4.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,37 +18,49 @@
*/

#include "EventModel4.hpp"
#include <Core/Enum/Game.hpp>
#include <Core/Util/Translator.hpp>

EventGeneratorModel4::EventGeneratorModel4(QObject *parent) : TableModel(parent), showStats(false)
EventGeneratorModel4::EventGeneratorModel4(QObject *parent) : TableModel(parent), version(Game::DPPt), showStats(false)
{
}

int EventGeneratorModel4::columnCount(const QModelIndex &parent) const
{
return 9;
if ((version & Game::DPPt) != Game::None)
{
return 10;
}
else
{
return 11;
}
}

QVariant EventGeneratorModel4::data(const QModelIndex &index, int role) const
{
if (role == Qt::DisplayRole)
{
const auto &state = model[index.row()];
int column = index.column();
int column = getColumn(index.column());
switch (column)
{
case 0:
return state.getAdvances();
case 1:
return state.getCall() == 0 ? "E" : state.getCall() == 1 ? "K" : "P";
case 2:
return state.getChatot();
case 3:
case 4:
case 5:
case 6:
return showStats ? state.getStat(column - 1) : state.getIV(column - 1);
case 7:
return QString::fromStdString(Translator::getHiddenPower(state.getHiddenPower()));
case 8:
return showStats ? state.getStat(column - 3) : state.getIV(column - 3);
case 9:
return QString::fromStdString(Translator::getHiddenPower(state.getHiddenPower()));
case 10:
return state.getHiddenPowerStrength();
}
}
Expand All @@ -60,17 +72,37 @@ QVariant EventGeneratorModel4::headerData(int section, Qt::Orientation orientati
{
if (role == Qt::DisplayRole && orientation == Qt::Horizontal)
{
section = getColumn(section);

return header[section];
}
return QVariant();
}

void EventGeneratorModel4::setGame(Game version)
{
this->version = version;
emit headerDataChanged(Qt::Horizontal, 0, columnCount());
}

void EventGeneratorModel4::setShowStats(bool flag)
{
showStats = flag;
emit dataChanged(index(0, 1), index(rowCount(), 6), { Qt::DisplayRole });
}

int EventGeneratorModel4::getColumn(int column) const
{
if ((version & Game::DPPt) != Game::None)
{
return column > 0 ? column + 1 : column;
}
else
{
return column;
}
}

EventSearcherModel4::EventSearcherModel4(QObject *parent) : TableModel(parent), showStats(false)
{
}
Expand Down
22 changes: 21 additions & 1 deletion Source/Model/Gen4/EventModel4.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
#include <Core/Parents/States/State.hpp>
#include <Model/TableModel.hpp>

enum class Game : u32;

/**
* @brief Provides a table model implementation to show event encounter information for Gen 4
*/
Expand Down Expand Up @@ -68,6 +70,13 @@ class EventGeneratorModel4 : public TableModel<GeneratorState4>
*/
QVariant headerData(int section, Qt::Orientation orientation, int role) const override;

/**
* @brief Sets current \p version of the model
*
* @param version Game version
*/
void setGame(Game version);

public slots:
/**
* @brief Sets flag that controls whether the model display stats or IVs
Expand All @@ -77,8 +86,19 @@ public slots:
void setShowStats(bool flag);

private:
QStringList header = { tr("Advances"), tr("HP"), tr("Atk"), tr("Def"), tr("SpA"), tr("SpD"), tr("Spe"), tr("Hidden"), tr("Power") };
QStringList header = { tr("Advances"), tr("Call"), tr("Chatot"), tr("HP"), tr("Atk"), tr("Def"),
tr("SpA"), tr("SpD"), tr("Spe"), tr("Hidden"), tr("Power") };
Game version;
bool showStats;

/**
* @brief Gets modified column index based on model method
*
* @param column Original column
*
* @return Modified column
*/
int getColumn(int column) const;
};

/**
Expand Down

0 comments on commit 7c35c6a

Please sign in to comment.