Skip to content

Commit 2175a40

Browse files
committed
string check log
1 parent ad3820d commit 2175a40

File tree

3 files changed

+181
-4
lines changed

3 files changed

+181
-4
lines changed

SerialPrograms/Source/PokemonLZA/Options/PokemonLZA_DonutBerriesOption.cpp

Lines changed: 161 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ const EnumDropdownDatabase<Flavor_Powers>& flavor_power_enum_database(){
2424
{Flavor_Powers::speed, "speed", "Speed"},
2525
{Flavor_Powers::bighaul, "bighaul", "Big Haul"},
2626
{Flavor_Powers::item, "item", "Item"},
27-
{Flavor_Powers::mega, "mega", "Mega"},
27+
{Flavor_Powers::megacharge, "megacharge", "Mega Charge"},
28+
{Flavor_Powers::megaconserve,"megaconserve","Mega Conserve"},
2829
{Flavor_Powers::def, "def", "Defense"},
2930
{Flavor_Powers::spdef, "spdef", "Sp. Def"},
3031
{Flavor_Powers::resistance, "resistance", "Resistance"},
@@ -77,6 +78,159 @@ const EnumDropdownDatabase<Power_Level>& power_level_enum_database(){
7778
return database;
7879
}
7980

81+
std::string FlavorPowerTableEntry::to_str() const{
82+
std::string selected_power;
83+
84+
switch (power){
85+
case Flavor_Powers::alpha:
86+
selected_power += "alpha-power-";
87+
break;
88+
case Flavor_Powers::humungo:
89+
selected_power += "humungo-power-";
90+
break;
91+
case Flavor_Powers::teensy:
92+
selected_power += "teensy-power-";
93+
break;
94+
case Flavor_Powers::sparkling:
95+
selected_power += "sparkling-power-";
96+
break;
97+
case Flavor_Powers::atk:
98+
selected_power += "attack-power-";
99+
break;
100+
case Flavor_Powers::spatk:
101+
selected_power += "sp-atk-power-";
102+
break;
103+
case Flavor_Powers::move:
104+
selected_power += "move-power-";
105+
break;
106+
case Flavor_Powers::speed:
107+
selected_power += "speed-power-";
108+
break;
109+
case Flavor_Powers::bighaul:
110+
selected_power += "big-haul-power-";
111+
break;
112+
case Flavor_Powers::item:
113+
selected_power += "item-power-";
114+
break;
115+
case Flavor_Powers::megacharge:
116+
selected_power += "mega-power-charging-";
117+
break;
118+
case Flavor_Powers::megaconserve:
119+
selected_power += "mega-power-conservation-";
120+
break;
121+
case Flavor_Powers::def:
122+
selected_power += "defense-power-";
123+
break;
124+
case Flavor_Powers::spdef:
125+
selected_power += "sp-def-power-";
126+
break;
127+
case Flavor_Powers::resistance:
128+
selected_power += "resistance-power-";
129+
break;
130+
case Flavor_Powers::encounter:
131+
selected_power += "encounter-power-";
132+
break;
133+
case Flavor_Powers::catching:
134+
selected_power += "catching-power-";
135+
break;
136+
}
137+
138+
if (power == Flavor_Powers::catching || power == Flavor_Powers::sparkling) {
139+
switch (pokemon_type) {
140+
case Power_Pokemon_Types::all:
141+
selected_power += "all-types-";
142+
break;
143+
case Power_Pokemon_Types::normal:
144+
selected_power += "normal-";
145+
break;
146+
case Power_Pokemon_Types::fire:
147+
selected_power += "fire-";
148+
break;
149+
case Power_Pokemon_Types::water:
150+
selected_power += "water-";
151+
break;
152+
case Power_Pokemon_Types::electric:
153+
selected_power += "electric-";
154+
break;
155+
case Power_Pokemon_Types::grass:
156+
selected_power += "grass-";
157+
break;
158+
case Power_Pokemon_Types::ice:
159+
selected_power += "ice-";
160+
break;
161+
case Power_Pokemon_Types::fighting:
162+
selected_power += "fighting-";
163+
break;
164+
case Power_Pokemon_Types::poison:
165+
selected_power += "poison-";
166+
break;
167+
case Power_Pokemon_Types::ground:
168+
selected_power += "ground-";
169+
break;
170+
case Power_Pokemon_Types::flying:
171+
selected_power += "flying-";
172+
break;
173+
case Power_Pokemon_Types::psychic:
174+
selected_power += "psychic-";
175+
break;
176+
case Power_Pokemon_Types::bug:
177+
selected_power += "bug-";
178+
break;
179+
case Power_Pokemon_Types::rock:
180+
selected_power += "rock-";
181+
break;
182+
case Power_Pokemon_Types::ghost:
183+
selected_power += "ghost-";
184+
break;
185+
case Power_Pokemon_Types::dragon:
186+
selected_power += "dragon-";
187+
break;
188+
case Power_Pokemon_Types::dark:
189+
selected_power += "dark-";
190+
break;
191+
case Power_Pokemon_Types::steel:
192+
selected_power += "steel-";
193+
break;
194+
case Power_Pokemon_Types::fairy:
195+
selected_power += "fairy-";
196+
break;
197+
}
198+
}
199+
else if (power == Flavor_Powers::move || power == Flavor_Powers::resistance) {
200+
switch (item_type) {
201+
case Power_Item_Types::berries:
202+
selected_power += "berries-";
203+
break;
204+
case Power_Item_Types::candies:
205+
selected_power += "candies-";
206+
break;
207+
case Power_Item_Types::treasure:
208+
selected_power += "treasure-";
209+
break;
210+
case Power_Item_Types::pokeballs:
211+
selected_power += "poke-balls-";
212+
break;
213+
case Power_Item_Types::special:
214+
selected_power += "special-";
215+
break;
216+
case Power_Item_Types::coins:
217+
selected_power += "coins-";
218+
break;
219+
}
220+
}
221+
222+
switch (level) {
223+
case Power_Level::one:
224+
selected_power += "1";
225+
case Power_Level::two:
226+
selected_power += "2";
227+
case Power_Level::three:
228+
selected_power += "3";
229+
}
230+
231+
return selected_power;
232+
}
233+
80234
StringSelectDatabase make_donut_berries_database(){
81235
StringSelectDatabase ret;
82236
for (const auto& slug : DONUT_BERRIES_SLUGS()){
@@ -169,6 +323,9 @@ std::unique_ptr<EditableTableRow> FlavorPowerTableRow::clone() const{
169323
ret->level.set(level);
170324
return ret;
171325
}
326+
FlavorPowerTableEntry FlavorPowerTableRow::snapshot() const{
327+
return FlavorPowerTableEntry{power, type_pokemon, type_item, level};
328+
}
172329
void FlavorPowerTableRow::on_config_value_changed(void* object){
173330
Flavor_Powers power = this->power;
174331

@@ -202,6 +359,9 @@ FlavorPowerTable::FlavorPowerTable()
202359
make_defaults()
203360
)
204361
{}
362+
std::vector<FlavorPowerTableEntry> FlavorPowerTable::snapshot(){
363+
return EditableTableOption_t<FlavorPowerTableRow>::snapshot<FlavorPowerTableEntry>();
364+
}
205365
std::vector<std::string> FlavorPowerTable::make_header() const{
206366
return {
207367
"Flavor Power ",

SerialPrograms/Source/PokemonLZA/Options/PokemonLZA_DonutBerriesOption.h

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ enum class Flavor_Powers {
2727
speed,
2828
bighaul,
2929
item,
30-
mega,
30+
megacharge,
31+
megaconserve,
3132
def,
3233
spdef,
3334
resistance,
@@ -72,6 +73,15 @@ enum class Power_Level{
7273
three,
7374
};
7475

76+
struct FlavorPowerTableEntry{
77+
Flavor_Powers power;
78+
Power_Pokemon_Types pokemon_type;
79+
Power_Item_Types item_type;
80+
Power_Level level;
81+
82+
std::string to_str() const;
83+
};
84+
7585

7686
//Berry + Hyperspace Berry selection
7787
class DonutBerriesTableCell : public StringSelectCell{
@@ -107,6 +117,8 @@ class FlavorPowerTableRow : public EditableTableRow, public ConfigOption::Listen
107117
FlavorPowerTableRow(EditableTableOption& parent_table);
108118
virtual std::unique_ptr<EditableTableRow> clone() const override;
109119

120+
FlavorPowerTableEntry snapshot() const;
121+
110122
private:
111123
virtual void on_config_value_changed(void* object) override;
112124

@@ -122,6 +134,8 @@ class FlavorPowerTable : public EditableTableOption_t<FlavorPowerTableRow>{
122134
public:
123135
FlavorPowerTable();
124136

137+
std::vector<FlavorPowerTableEntry> snapshot();
138+
125139
virtual std::vector<std::string> make_header() const;
126140

127141
std::vector<std::unique_ptr<EditableTableRow>> make_defaults();

SerialPrograms/Source/PokemonLZA/Programs/TestPrograms/PokemonLZA_DonutOptionsTest.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,12 @@ void DonutOptionsTest::program(SingleSwitchProgramEnvironment& env, ProControlle
9191
env.log("Number of berries validated.", COLOR_BLACK);
9292

9393

94-
//Todo: Convert to slug and also validate flavor power table (Move and resist powers cannot have All Types)
94+
//Print table to log to check
9595
std::vector<std::unique_ptr<FlavorPowerTableRow>> wanted_powers_table = FLAVOR_POWERS.copy_snapshot();
96-
96+
for (const std::unique_ptr<FlavorPowerTableRow>& row : wanted_powers_table){
97+
FlavorPowerTableEntry table_line = row->snapshot();
98+
env.log(table_line.to_str());
99+
}
97100

98101
GO_HOME_WHEN_DONE.run_end_of_program(context);
99102
send_program_finished_notification(env, NOTIFICATION_PROGRAM_FINISH);

0 commit comments

Comments
 (0)