Skip to content

Commit

Permalink
Access DexNav from Pokenav
Browse files Browse the repository at this point in the history
  • Loading branch information
Artrios committed Mar 20, 2022
1 parent 0c08b5d commit d25bfdc
Show file tree
Hide file tree
Showing 12 changed files with 162 additions and 26 deletions.
Binary file added graphics/pokenav/options/dexnav.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 17 additions & 1 deletion graphics/pokenav/options/options.pal
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
JASC-PAL
0100
80
96
0 0 0
255 255 255
82 82 74
Expand Down Expand Up @@ -81,3 +81,19 @@ JASC-PAL
0 0 0
0 0 0
0 0 0
0 0 0
255 255 255
82 82 74
172 172 172
246 197 49
255 238 98
230 148 0
0 0 0
0 162 232
148 255 98
0 130 185
0 0 0
0 0 0
0 0 0
0 0 0
255 255 255
1 change: 1 addition & 0 deletions graphics_file_rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -644,6 +644,7 @@ $(BATTRANSGFXDIR)/frontier_logo_center.4bpp: %.4bpp: %.png
### Pokenav ###

$(PKNAVOPTIONSGFXDIR)/options.4bpp: $(PKNAVOPTIONSGFXDIR)/hoenn_map.4bpp \
$(PKNAVOPTIONSGFXDIR)/dexnav.4bpp \
$(PKNAVOPTIONSGFXDIR)/condition.4bpp \
$(PKNAVOPTIONSGFXDIR)/match_call.4bpp \
$(PKNAVOPTIONSGFXDIR)/ribbons.4bpp \
Expand Down
2 changes: 2 additions & 0 deletions include/dexnav.h
Original file line number Diff line number Diff line change
Expand Up @@ -122,12 +122,14 @@
//funcs
void EndDexNavSearch(u8 taskId);
void Task_OpenDexNavFromStartMenu(u8 taskId);
void Task_OpenDexNavFromPokenav(u8 taskId);
bool8 TryStartDexnavSearch(void);
//void TryIncrementSpeciesSearchLevel(u16 dexNum);
void ResetDexNavSearch(void);
bool8 TryFindHiddenPokemon(void);
bool8 DexNavTryMakeShinyMon(void);
void IncrementDexNavChain(void);
u32 PokeNavMenuDexNavCallback(void);

//ewram
extern u8 gCurrentDexNavChain;
Expand Down
5 changes: 5 additions & 0 deletions include/pokenav.h
Original file line number Diff line number Diff line change
Expand Up @@ -118,11 +118,13 @@ enum
{
POKENAV_MAIN_MENU = POKENAV_MENU_IDS_START, // The main menu where the player selects Hoenn Map/Condition/Match Call/Ribbons
POKENAV_MAIN_MENU_CURSOR_ON_MAP,
POKENAV_MAIN_MENU_CURSOR_ON_DEXNAV,
POKENAV_CONDITION_MENU, // The first Condition screen where the player selects Party or Search
POKENAV_CONDITION_SEARCH_MENU, // The Condition search menu where the player selects a search parameter
POKENAV_MAIN_MENU_CURSOR_ON_MATCH_CALL,
POKENAV_MAIN_MENU_CURSOR_ON_RIBBONS,
POKENAV_REGION_MAP,
POKENAV_DEXNAV,
POKENAV_CONDITION_GRAPH_PARTY, // The Condition graph screen when Party has been selected
POKENAV_CONDITION_SEARCH_RESULTS, // The list of results from a Condition search
POKENAV_CONDITION_GRAPH_SEARCH, // The Condition graph screen when a search result has been selected
Expand All @@ -148,6 +150,7 @@ enum
enum
{
POKENAV_MENUITEM_MAP,
POKENAV_MENUITEM_DEXNAV,
POKENAV_MENUITEM_CONDITION,
POKENAV_MENUITEM_MATCH_CALL,
POKENAV_MENUITEM_RIBBONS,
Expand Down Expand Up @@ -246,6 +249,7 @@ enum RegionMapFuncIds
POKENAV_MENU_FUNC_NO_RIBBON_WINNERS,
POKENAV_MENU_FUNC_RESHOW_DESCRIPTION,
POKENAV_MENU_FUNC_OPEN_FEATURE,
POKENAV_MENU_FUNC_OPEN_DEXNAV,
};

enum
Expand Down Expand Up @@ -384,6 +388,7 @@ void ShutdownPokenav(void);

// pokenav_menu_handler.c
bool32 PokenavCallback_Init_MainMenuCursorOnMap(void);
bool32 PokenavCallback_Init_MainMenuCursorOnDexNav(void);
bool32 PokenavCallback_Init_MainMenuCursorOnMatchCall(void);
bool32 PokenavCallback_Init_MainMenuCursorOnRibbons(void);
bool32 PokenavCallback_Init_ConditionMenu(void);
Expand Down
1 change: 1 addition & 0 deletions include/strings.h
Original file line number Diff line number Diff line change
Expand Up @@ -3156,6 +3156,7 @@ extern const u8 gText_Cancel6[];

// Pokenav Menu Handler
extern const u8 gText_CheckMapOfHoenn[];
extern const u8 gText_DexNavDescription[];
extern const u8 gText_CheckPokemonInDetail[];
extern const u8 gText_CallRegisteredTrainer[];
extern const u8 gText_CheckObtainedRibbons[];
Expand Down
17 changes: 17 additions & 0 deletions src/dexnav.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
#include "pokemon.h"
#include "pokemon_icon.h"
#include "pokemon_summary_screen.h"
#include "pokenav.h"
#include "random.h"
#include "region_map.h"
#include "scanline_effect.h"
Expand Down Expand Up @@ -2494,6 +2495,22 @@ void Task_OpenDexNavFromStartMenu(u8 taskId)
}
}

u32 PokeNavMenuDexNavCallback(void)
{
CreateTask(Task_OpenDexNavFromPokenav, 0);
return TRUE;
}

void Task_OpenDexNavFromPokenav(u8 taskId)
{
if (!gPaletteFade.active)
{
CleanupOverworldWindowsAndTilemaps();
DexNavGuiInit(CB2_InitPokeNav);
DestroyTask(taskId);
}
}

static void Task_DexNavWaitFadeIn(u8 taskId)
{
if (!gPaletteFade.active)
Expand Down
23 changes: 22 additions & 1 deletion src/pokenav.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include "task.h"
#include "main.h"
#include "overworld.h"
#include "dexnav.h"
#include "field_weather.h"
#include "palette.h"
#include "pokemon_storage_system.h"
Expand Down Expand Up @@ -49,7 +50,7 @@ static void Task_RunLoopedTask(u8 taskId);
static void Task_Pokenav(u8 taskId);
static void CB2_InitPokenavForTutorial(void);

const struct PokenavCallbacks PokenavMenuCallbacks[15] =
const struct PokenavCallbacks PokenavMenuCallbacks[17] =
{
[POKENAV_MAIN_MENU - POKENAV_MENU_IDS_START] =
{
Expand All @@ -71,6 +72,16 @@ const struct PokenavCallbacks PokenavMenuCallbacks[15] =
.free1 = FreeMenuHandlerSubstruct1,
.free2 = FreeMenuHandlerSubstruct2,
},
[POKENAV_MAIN_MENU_CURSOR_ON_DEXNAV - POKENAV_MENU_IDS_START] =
{
.init = PokenavCallback_Init_MainMenuCursorOnDexNav,
.callback = GetMenuHandlerCallback,
.open = OpenPokenavMenuNotInitial,
.createLoopTask = CreateMenuHandlerLoopedTask,
.isLoopTaskActive = IsMenuHandlerLoopedTaskActive,
.free1 = FreeMenuHandlerSubstruct1,
.free2 = FreeMenuHandlerSubstruct2,
},
[POKENAV_CONDITION_MENU - POKENAV_MENU_IDS_START] =
{
.init = PokenavCallback_Init_ConditionMenu,
Expand Down Expand Up @@ -121,6 +132,16 @@ const struct PokenavCallbacks PokenavMenuCallbacks[15] =
.free1 = FreeRegionMapSubstruct1,
.free2 = FreeRegionMapSubstruct2,
},
[POKENAV_DEXNAV - POKENAV_MENU_IDS_START] =
{
.init = PokeNavMenuDexNavCallback,
.callback = GetConditionGraphMenuCallback,
.open = OpenConditionGraphMenu,
.createLoopTask = CreateConditionGraphMenuLoopedTask,
.isLoopTaskActive = IsConditionGraphMenuLoopedTaskActive,
.free1 = FreeConditionGraphMenuSubstruct1,
.free2 = FreeConditionGraphMenuSubstruct2,
},
[POKENAV_CONDITION_GRAPH_PARTY - POKENAV_MENU_IDS_START] =
{
.init = PokenavCallback_Init_ConditionGraph_Party,
Expand Down
2 changes: 1 addition & 1 deletion src/pokenav_conditions_search_results.c
Original file line number Diff line number Diff line change
Expand Up @@ -462,7 +462,7 @@ static u32 LoopedTask_OpenConditionSearchResults(s32 state)
HideBg(3);
if (!gfx->fromGraph)
{
u8 searchGfxId = GetSelectedConditionSearch() + POKENAV_MENUITEM_CONDITION_SEARCH_COOL;
u8 searchGfxId = GetSelectedConditionSearch() + POKENAV_MENUITEM_CONDITION_SEARCH_COOL - 1;
LoadLeftHeaderGfxForIndex(searchGfxId);
ShowLeftHeaderGfx(searchGfxId, 1, 0);
ShowLeftHeaderGfx(POKENAV_GFX_CONDITION_MENU, 1, 0);
Expand Down
34 changes: 27 additions & 7 deletions src/pokenav_menu_handler.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ static void SetMenuInputHandler(struct Pokenav_Menu *);
// Number of entries - 1 for that menu type
static const u8 sLastCursorPositions[] =
{
[POKENAV_MENU_TYPE_DEFAULT] = 2,
[POKENAV_MENU_TYPE_UNLOCK_MC] = 3,
[POKENAV_MENU_TYPE_UNLOCK_MC_RIBBONS] = 4,
[POKENAV_MENU_TYPE_DEFAULT] = 3,
[POKENAV_MENU_TYPE_UNLOCK_MC] = 4,
[POKENAV_MENU_TYPE_UNLOCK_MC_RIBBONS] = 5,
[POKENAV_MENU_TYPE_CONDITION] = 2,
[POKENAV_MENU_TYPE_CONDITION_SEARCH] = 5
};
Expand All @@ -46,23 +46,26 @@ static const u8 sMenuItems[][MAX_POKENAV_MENUITEMS] =
[POKENAV_MENU_TYPE_DEFAULT] =
{
POKENAV_MENUITEM_MAP,
POKENAV_MENUITEM_DEXNAV,
POKENAV_MENUITEM_CONDITION,
[2 ... MAX_POKENAV_MENUITEMS - 1] = POKENAV_MENUITEM_SWITCH_OFF
[3 ... MAX_POKENAV_MENUITEMS - 1] = POKENAV_MENUITEM_SWITCH_OFF
},
[POKENAV_MENU_TYPE_UNLOCK_MC] =
{
POKENAV_MENUITEM_MAP,
POKENAV_MENUITEM_DEXNAV,
POKENAV_MENUITEM_CONDITION,
POKENAV_MENUITEM_MATCH_CALL,
[3 ... MAX_POKENAV_MENUITEMS - 1] = POKENAV_MENUITEM_SWITCH_OFF
[4 ... MAX_POKENAV_MENUITEMS - 1] = POKENAV_MENUITEM_SWITCH_OFF
},
[POKENAV_MENU_TYPE_UNLOCK_MC_RIBBONS] =
{
POKENAV_MENUITEM_MAP,
POKENAV_MENUITEM_DEXNAV,
POKENAV_MENUITEM_CONDITION,
POKENAV_MENUITEM_MATCH_CALL,
POKENAV_MENUITEM_RIBBONS,
[4 ... MAX_POKENAV_MENUITEMS - 1] = POKENAV_MENUITEM_SWITCH_OFF
[5 ... MAX_POKENAV_MENUITEMS - 1] = POKENAV_MENUITEM_SWITCH_OFF
},
[POKENAV_MENU_TYPE_CONDITION] =
{
Expand Down Expand Up @@ -111,6 +114,20 @@ bool32 PokenavCallback_Init_MainMenuCursorOnMap(void)
return TRUE;
}

bool32 PokenavCallback_Init_MainMenuCursorOnDexNav(void)
{
struct Pokenav_Menu *menu = AllocSubstruct(POKENAV_SUBSTRUCT_MAIN_MENU_HANDLER, sizeof(struct Pokenav_Menu));
if (!menu)
return FALSE;

menu->menuType = GetPokenavMainMenuType();
menu->cursorPos = POKENAV_MENUITEM_DEXNAV;
menu->currMenuItem = POKENAV_MENUITEM_DEXNAV;
menu->helpBarIndex = HELPBAR_NONE;
SetMenuInputHandler(menu);
return TRUE;
}

bool32 PokenavCallback_Init_MainMenuCursorOnMatchCall(void)
{
struct Pokenav_Menu *menu = AllocSubstruct(POKENAV_SUBSTRUCT_MAIN_MENU_HANDLER, sizeof(struct Pokenav_Menu));
Expand Down Expand Up @@ -224,6 +241,9 @@ static u32 HandleMainMenuInput(struct Pokenav_Menu *menu)
menu->helpBarIndex = gSaveBlock2Ptr->regionMapZoom ? HELPBAR_MAP_ZOOMED_IN : HELPBAR_MAP_ZOOMED_OUT;
SetMenuIdAndCB(menu, POKENAV_REGION_MAP);
return POKENAV_MENU_FUNC_OPEN_FEATURE;
case POKENAV_MENUITEM_DEXNAV:
SetMenuIdAndCB(menu, POKENAV_DEXNAV);
return POKENAV_MENU_FUNC_OPEN_DEXNAV;
case POKENAV_MENUITEM_CONDITION:
menu->menuType = POKENAV_MENU_TYPE_CONDITION;
menu->cursorPos = 0;
Expand Down Expand Up @@ -448,7 +468,7 @@ static u32 GetMenuId(struct Pokenav_Menu *menu)
static void ReturnToMainMenu(struct Pokenav_Menu *menu)
{
menu->menuType = GetPokenavMainMenuType();
menu->cursorPos = 1;
menu->cursorPos = 2;
menu->currMenuItem = sMenuItems[menu->menuType][menu->cursorPos];
menu->callback = HandleMainMenuInput;
}
Expand Down
Loading

0 comments on commit d25bfdc

Please sign in to comment.