|
@@ -7,8 +7,9 @@
|
|
|
#include <src/views/trade.h>
|
|
#include <src/views/trade.h>
|
|
|
#include <src/views/select_pokemon.h>
|
|
#include <src/views/select_pokemon.h>
|
|
|
|
|
|
|
|
|
|
+#include <src/scenes/pokemon_scene.h>
|
|
|
|
|
+
|
|
|
#include <src/scenes/pokemon_menu.h>
|
|
#include <src/scenes/pokemon_menu.h>
|
|
|
-#include <src/scenes/pokemon_stats.h>
|
|
|
|
|
#include <src/scenes/pokemon_shiny.h>
|
|
#include <src/scenes/pokemon_shiny.h>
|
|
|
#include <src/scenes/pokemon_gender.h>
|
|
#include <src/scenes/pokemon_gender.h>
|
|
|
#include <src/scenes/pokemon_pokerus.h>
|
|
#include <src/scenes/pokemon_pokerus.h>
|
|
@@ -19,16 +20,16 @@ static void scene_change_from_main_cb(void* context, uint32_t index) {
|
|
|
|
|
|
|
|
/* Reuse of scenes to allow for using the same functions to set names */
|
|
/* Reuse of scenes to allow for using the same functions to set names */
|
|
|
switch(index) {
|
|
switch(index) {
|
|
|
- case SelectNicknameScene:
|
|
|
|
|
- case SelectOTNameScene:
|
|
|
|
|
- case SelectUnownFormScene:
|
|
|
|
|
- scene_manager_set_scene_state(pokemon_fap->scene_manager, SelectNicknameScene, index);
|
|
|
|
|
|
|
+ case PokemonSceneNickname:
|
|
|
|
|
+ case PokemonSceneOTName:
|
|
|
|
|
+ case PokemonSceneUnownForm:
|
|
|
|
|
+ scene_manager_set_scene_state(pokemon_fap->scene_manager, PokemonSceneNickname, index);
|
|
|
break;
|
|
break;
|
|
|
- case SelectLevelScene:
|
|
|
|
|
- case SelectOTIDScene:
|
|
|
|
|
- scene_manager_set_scene_state(pokemon_fap->scene_manager, SelectLevelScene, index);
|
|
|
|
|
|
|
+ case PokemonSceneLevel:
|
|
|
|
|
+ case PokemonSceneOTID:
|
|
|
|
|
+ scene_manager_set_scene_state(pokemon_fap->scene_manager, PokemonSceneLevel, index);
|
|
|
break;
|
|
break;
|
|
|
- case SelectGenderScene:
|
|
|
|
|
|
|
+ case PokemonSceneGender:
|
|
|
if(select_gender_is_static(
|
|
if(select_gender_is_static(
|
|
|
pokemon_fap->pdata,
|
|
pokemon_fap->pdata,
|
|
|
table_stat_base_get(
|
|
table_stat_base_get(
|
|
@@ -50,7 +51,7 @@ static void scene_change_from_main_cb(void* context, uint32_t index) {
|
|
|
/* Set scene state to the current index so we can have that element highlighted when
|
|
/* Set scene state to the current index so we can have that element highlighted when
|
|
|
* we return.
|
|
* we return.
|
|
|
*/
|
|
*/
|
|
|
- scene_manager_set_scene_state(pokemon_fap->scene_manager, GenITradeScene, index);
|
|
|
|
|
|
|
+ scene_manager_set_scene_state(pokemon_fap->scene_manager, PokemonSceneGenITrade, index);
|
|
|
scene_manager_next_scene(pokemon_fap->scene_manager, index);
|
|
scene_manager_next_scene(pokemon_fap->scene_manager, index);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -58,11 +59,11 @@ bool gen_back_event_callback(void* context) {
|
|
|
furi_assert(context);
|
|
furi_assert(context);
|
|
|
PokemonFap* pokemon_fap = context;
|
|
PokemonFap* pokemon_fap = context;
|
|
|
|
|
|
|
|
- scene_manager_next_scene(pokemon_fap->scene_manager, ConfirmExitScene);
|
|
|
|
|
|
|
+ scene_manager_next_scene(pokemon_fap->scene_manager, PokemonSceneExitConfirm);
|
|
|
return true;
|
|
return true;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-void gen_scene_on_enter(void* context) {
|
|
|
|
|
|
|
+void pokemon_scene_gen_on_enter(void* context) {
|
|
|
char buf[32];
|
|
char buf[32];
|
|
|
char name_buf[11]; // All name buffers are 11 bytes at most, including term
|
|
char name_buf[11]; // All name buffers are 11 bytes at most, including term
|
|
|
PokemonFap* pokemon_fap = (PokemonFap*)context;
|
|
PokemonFap* pokemon_fap = (PokemonFap*)context;
|
|
@@ -71,12 +72,12 @@ void gen_scene_on_enter(void* context) {
|
|
|
|
|
|
|
|
// Set up trade party struct
|
|
// Set up trade party struct
|
|
|
if(!pokemon_fap->pdata) {
|
|
if(!pokemon_fap->pdata) {
|
|
|
- state = scene_manager_get_scene_state(pokemon_fap->scene_manager, GenITradeScene);
|
|
|
|
|
|
|
+ state = scene_manager_get_scene_state(pokemon_fap->scene_manager, PokemonSceneGenITrade);
|
|
|
switch(state) {
|
|
switch(state) {
|
|
|
- case GenITradeScene:
|
|
|
|
|
|
|
+ case PokemonSceneGenITrade:
|
|
|
state = GEN_I;
|
|
state = GEN_I;
|
|
|
break;
|
|
break;
|
|
|
- case GenIITradeScene:
|
|
|
|
|
|
|
+ case PokemonSceneGenIITrade:
|
|
|
state = GEN_II;
|
|
state = GEN_II;
|
|
|
break;
|
|
break;
|
|
|
default:
|
|
default:
|
|
@@ -88,7 +89,7 @@ void gen_scene_on_enter(void* context) {
|
|
|
/* Clear the scene state as this is the first entry in to this scene
|
|
/* Clear the scene state as this is the first entry in to this scene
|
|
|
* we definitely want to be completely reset.
|
|
* we definitely want to be completely reset.
|
|
|
*/
|
|
*/
|
|
|
- scene_manager_set_scene_state(pokemon_fap->scene_manager, GenITradeScene, 0);
|
|
|
|
|
|
|
+ scene_manager_set_scene_state(pokemon_fap->scene_manager, PokemonSceneGenITrade, 0);
|
|
|
|
|
|
|
|
/* Allocate select and trade views */
|
|
/* Allocate select and trade views */
|
|
|
/* Allocates its own view and adds it to the main view_dispatcher */
|
|
/* Allocates its own view and adds it to the main view_dispatcher */
|
|
@@ -112,8 +113,8 @@ void gen_scene_on_enter(void* context) {
|
|
|
* which is fine but would just waste a few more bytes compared to us handling
|
|
* which is fine but would just waste a few more bytes compared to us handling
|
|
|
* it here.
|
|
* it here.
|
|
|
*/
|
|
*/
|
|
|
- scene_manager_set_scene_state(pokemon_fap->scene_manager, SelectMoveScene, 0);
|
|
|
|
|
- scene_manager_set_scene_state(pokemon_fap->scene_manager, SelectItemSetScene, 0);
|
|
|
|
|
|
|
+ scene_manager_set_scene_state(pokemon_fap->scene_manager, PokemonSceneMove, 0);
|
|
|
|
|
+ scene_manager_set_scene_state(pokemon_fap->scene_manager, PokemonSceneItemSet, 0);
|
|
|
|
|
|
|
|
submenu_reset(pokemon_fap->submenu);
|
|
submenu_reset(pokemon_fap->submenu);
|
|
|
|
|
|
|
@@ -123,12 +124,12 @@ void gen_scene_on_enter(void* context) {
|
|
|
"Pokemon: %s",
|
|
"Pokemon: %s",
|
|
|
table_stat_name_get(pokemon_fap->pdata->pokemon_table, pkmn_num));
|
|
table_stat_name_get(pokemon_fap->pdata->pokemon_table, pkmn_num));
|
|
|
submenu_add_item(
|
|
submenu_add_item(
|
|
|
- pokemon_fap->submenu, buf, SelectPokemonScene, scene_change_from_main_cb, pokemon_fap);
|
|
|
|
|
|
|
+ pokemon_fap->submenu, buf, PokemonSceneSelect, scene_change_from_main_cb, pokemon_fap);
|
|
|
|
|
|
|
|
pokemon_name_get(pokemon_fap->pdata, STAT_NICKNAME, name_buf, sizeof(name_buf));
|
|
pokemon_name_get(pokemon_fap->pdata, STAT_NICKNAME, name_buf, sizeof(name_buf));
|
|
|
snprintf(buf, sizeof(buf), "Nickname: %s", name_buf);
|
|
snprintf(buf, sizeof(buf), "Nickname: %s", name_buf);
|
|
|
submenu_add_item(
|
|
submenu_add_item(
|
|
|
- pokemon_fap->submenu, buf, SelectNicknameScene, scene_change_from_main_cb, pokemon_fap);
|
|
|
|
|
|
|
+ pokemon_fap->submenu, buf, PokemonSceneNickname, scene_change_from_main_cb, pokemon_fap);
|
|
|
|
|
|
|
|
snprintf(
|
|
snprintf(
|
|
|
buf,
|
|
buf,
|
|
@@ -136,7 +137,7 @@ void gen_scene_on_enter(void* context) {
|
|
|
"Level: %d",
|
|
"Level: %d",
|
|
|
pokemon_stat_get(pokemon_fap->pdata, STAT_LEVEL, NONE));
|
|
pokemon_stat_get(pokemon_fap->pdata, STAT_LEVEL, NONE));
|
|
|
submenu_add_item(
|
|
submenu_add_item(
|
|
|
- pokemon_fap->submenu, buf, SelectLevelScene, scene_change_from_main_cb, pokemon_fap);
|
|
|
|
|
|
|
+ pokemon_fap->submenu, buf, PokemonSceneLevel, scene_change_from_main_cb, pokemon_fap);
|
|
|
|
|
|
|
|
if(pokemon_fap->pdata->gen == GEN_II) {
|
|
if(pokemon_fap->pdata->gen == GEN_II) {
|
|
|
snprintf(
|
|
snprintf(
|
|
@@ -147,13 +148,13 @@ void gen_scene_on_enter(void* context) {
|
|
|
pokemon_fap->pdata->item_list,
|
|
pokemon_fap->pdata->item_list,
|
|
|
pokemon_stat_get(pokemon_fap->pdata, STAT_HELD_ITEM, NONE)));
|
|
pokemon_stat_get(pokemon_fap->pdata, STAT_HELD_ITEM, NONE)));
|
|
|
submenu_add_item(
|
|
submenu_add_item(
|
|
|
- pokemon_fap->submenu, buf, SelectItemScene, scene_change_from_main_cb, pokemon_fap);
|
|
|
|
|
|
|
+ pokemon_fap->submenu, buf, PokemonSceneItem, scene_change_from_main_cb, pokemon_fap);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
submenu_add_item(
|
|
submenu_add_item(
|
|
|
pokemon_fap->submenu,
|
|
pokemon_fap->submenu,
|
|
|
"Select Moves",
|
|
"Select Moves",
|
|
|
- SelectMoveScene,
|
|
|
|
|
|
|
+ PokemonSceneMove,
|
|
|
scene_change_from_main_cb,
|
|
scene_change_from_main_cb,
|
|
|
pokemon_fap);
|
|
pokemon_fap);
|
|
|
|
|
|
|
@@ -161,7 +162,7 @@ void gen_scene_on_enter(void* context) {
|
|
|
submenu_add_item(
|
|
submenu_add_item(
|
|
|
pokemon_fap->submenu,
|
|
pokemon_fap->submenu,
|
|
|
"Select Types",
|
|
"Select Types",
|
|
|
- SelectTypeScene,
|
|
|
|
|
|
|
+ PokemonSceneType,
|
|
|
scene_change_from_main_cb,
|
|
scene_change_from_main_cb,
|
|
|
pokemon_fap);
|
|
pokemon_fap);
|
|
|
}
|
|
}
|
|
@@ -170,7 +171,7 @@ void gen_scene_on_enter(void* context) {
|
|
|
pokemon_fap->submenu,
|
|
pokemon_fap->submenu,
|
|
|
namedlist_name_get_index(
|
|
namedlist_name_get_index(
|
|
|
pokemon_fap->pdata->stat_list, pokemon_stat_get(pokemon_fap->pdata, STAT_SEL, NONE)),
|
|
pokemon_fap->pdata->stat_list, pokemon_stat_get(pokemon_fap->pdata, STAT_SEL, NONE)),
|
|
|
- SelectStatsScene,
|
|
|
|
|
|
|
+ PokemonSceneStats,
|
|
|
scene_change_from_main_cb,
|
|
scene_change_from_main_cb,
|
|
|
pokemon_fap);
|
|
pokemon_fap);
|
|
|
|
|
|
|
@@ -181,22 +182,22 @@ void gen_scene_on_enter(void* context) {
|
|
|
"Shiny: %s",
|
|
"Shiny: %s",
|
|
|
select_shiny_is_shiny(pokemon_fap->pdata) ? "Yes" : "No");
|
|
select_shiny_is_shiny(pokemon_fap->pdata) ? "Yes" : "No");
|
|
|
submenu_add_item(
|
|
submenu_add_item(
|
|
|
- pokemon_fap->submenu, buf, SelectShinyScene, scene_change_from_main_cb, pokemon_fap);
|
|
|
|
|
|
|
+ pokemon_fap->submenu, buf, PokemonSceneShiny, scene_change_from_main_cb, pokemon_fap);
|
|
|
|
|
|
|
|
snprintf(buf, sizeof(buf), "Gender: %s", select_gender_get(pokemon_fap->pdata));
|
|
snprintf(buf, sizeof(buf), "Gender: %s", select_gender_get(pokemon_fap->pdata));
|
|
|
submenu_add_item(
|
|
submenu_add_item(
|
|
|
- pokemon_fap->submenu, buf, SelectGenderScene, scene_change_from_main_cb, pokemon_fap);
|
|
|
|
|
|
|
+ pokemon_fap->submenu, buf, PokemonSceneGender, scene_change_from_main_cb, pokemon_fap);
|
|
|
|
|
|
|
|
snprintf(buf, sizeof(buf), "Pokerus: %s", select_pokerus_status(pokemon_fap));
|
|
snprintf(buf, sizeof(buf), "Pokerus: %s", select_pokerus_status(pokemon_fap));
|
|
|
submenu_add_item(
|
|
submenu_add_item(
|
|
|
- pokemon_fap->submenu, buf, SelectPokerusScene, scene_change_from_main_cb, pokemon_fap);
|
|
|
|
|
|
|
+ pokemon_fap->submenu, buf, PokemonScenePokerus, scene_change_from_main_cb, pokemon_fap);
|
|
|
|
|
|
|
|
if(pokemon_stat_get(pokemon_fap->pdata, STAT_NUM, NONE) == 0xC8) { // Unown
|
|
if(pokemon_stat_get(pokemon_fap->pdata, STAT_NUM, NONE) == 0xC8) { // Unown
|
|
|
snprintf(buf, sizeof(buf), "Unown Form: %c", unown_form_get(pokemon_fap->pdata));
|
|
snprintf(buf, sizeof(buf), "Unown Form: %c", unown_form_get(pokemon_fap->pdata));
|
|
|
submenu_add_item(
|
|
submenu_add_item(
|
|
|
pokemon_fap->submenu,
|
|
pokemon_fap->submenu,
|
|
|
buf,
|
|
buf,
|
|
|
- SelectUnownFormScene,
|
|
|
|
|
|
|
+ PokemonSceneUnownForm,
|
|
|
scene_change_from_main_cb,
|
|
scene_change_from_main_cb,
|
|
|
pokemon_fap);
|
|
pokemon_fap);
|
|
|
}
|
|
}
|
|
@@ -208,25 +209,35 @@ void gen_scene_on_enter(void* context) {
|
|
|
"OT ID#: %05d",
|
|
"OT ID#: %05d",
|
|
|
pokemon_stat_get(pokemon_fap->pdata, STAT_OT_ID, NONE));
|
|
pokemon_stat_get(pokemon_fap->pdata, STAT_OT_ID, NONE));
|
|
|
submenu_add_item(
|
|
submenu_add_item(
|
|
|
- pokemon_fap->submenu, buf, SelectOTIDScene, scene_change_from_main_cb, pokemon_fap);
|
|
|
|
|
|
|
+ pokemon_fap->submenu, buf, PokemonSceneOTID, scene_change_from_main_cb, pokemon_fap);
|
|
|
|
|
|
|
|
pokemon_name_get(pokemon_fap->pdata, STAT_OT_NAME, name_buf, sizeof(name_buf));
|
|
pokemon_name_get(pokemon_fap->pdata, STAT_OT_NAME, name_buf, sizeof(name_buf));
|
|
|
snprintf(buf, sizeof(buf), "OT Name: %s", name_buf);
|
|
snprintf(buf, sizeof(buf), "OT Name: %s", name_buf);
|
|
|
submenu_add_item(
|
|
submenu_add_item(
|
|
|
- pokemon_fap->submenu, buf, SelectOTNameScene, scene_change_from_main_cb, pokemon_fap);
|
|
|
|
|
|
|
+ pokemon_fap->submenu, buf, PokemonSceneOTName, scene_change_from_main_cb, pokemon_fap);
|
|
|
|
|
|
|
|
submenu_add_item(
|
|
submenu_add_item(
|
|
|
- pokemon_fap->submenu, "Trade PKMN", TradeScene, scene_change_from_main_cb, pokemon_fap);
|
|
|
|
|
|
|
+ pokemon_fap->submenu, "Trade PKMN", PokemonSceneTrade, scene_change_from_main_cb, pokemon_fap);
|
|
|
|
|
|
|
|
/* TODO: Add Save pokemon option here */
|
|
/* TODO: Add Save pokemon option here */
|
|
|
|
|
|
|
|
- /* HACK: No matter what gen were in, we just store the scene state in GenITradeScene */
|
|
|
|
|
|
|
+ /* HACK: No matter what gen were in, we just store the scene state in PokemonSceneGenITrade */
|
|
|
submenu_set_selected_item(
|
|
submenu_set_selected_item(
|
|
|
pokemon_fap->submenu,
|
|
pokemon_fap->submenu,
|
|
|
- scene_manager_get_scene_state(pokemon_fap->scene_manager, GenITradeScene));
|
|
|
|
|
|
|
+ scene_manager_get_scene_state(pokemon_fap->scene_manager, PokemonSceneGenITrade));
|
|
|
|
|
|
|
|
view_dispatcher_set_navigation_event_callback(
|
|
view_dispatcher_set_navigation_event_callback(
|
|
|
pokemon_fap->view_dispatcher, gen_back_event_callback);
|
|
pokemon_fap->view_dispatcher, gen_back_event_callback);
|
|
|
|
|
|
|
|
view_dispatcher_switch_to_view(pokemon_fap->view_dispatcher, AppViewMainMenu);
|
|
view_dispatcher_switch_to_view(pokemon_fap->view_dispatcher, AppViewMainMenu);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+bool pokemon_scene_gen_on_event(void* context, SceneManagerEvent event) {
|
|
|
|
|
+ UNUSED(context);
|
|
|
|
|
+ UNUSED(event);
|
|
|
|
|
+ return false;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+void pokemon_scene_gen_on_exit(void* context) {
|
|
|
|
|
+ UNUSED(context);
|
|
|
|
|
+}
|