move dexnav flags, vars to config, add DEXNAV_ENABLED config to add static asserts that flags, vars are setup and dexnav cannot be used/accessed otherwise
This commit is contained in:
parent
54484593b3
commit
cb9f1f27a7
4 changed files with 32 additions and 10 deletions
|
@ -1,9 +1,17 @@
|
|||
#ifndef GUARD_CONFIG_DEXNAV_H
|
||||
#define GUARD_CONFIG_DEXNAV_H
|
||||
|
||||
#define DEXNAV_ENABLED FALSE // Whether or not dexnav is enabled. If TRUE, flags/vars below must all be non-zero
|
||||
#define USE_DEXNAV_SEARCH_LEVELS FALSE /* WARNING: POSSIBLY EXCEEDS SAVEBLOCK SPACE! REQUIRES 1 BYTE PER SPECIES */
|
||||
|
||||
// search parameters
|
||||
// Flag/var defines
|
||||
#define FLAG_SYS_DEXNAV_SEARCH 0 // Searching for mon. MUST BE DEFINED FOR DEXNAV TO WORK
|
||||
#define FLAG_SYS_DEXNAV_GET 0 // Dexnav shows in start menu
|
||||
#define FLAG_SYS_DETECTOR_MODE 0 // Allow player to find hidden mons
|
||||
#define VAR_DEXNAV_SPECIES 0 // Registered dexnav species
|
||||
#define VAR_DEXNAV_STEP_COUNTER 0 // Steps for finding hidden pokemon
|
||||
|
||||
// Search parameters
|
||||
#define DEXNAV_TIMEOUT 15 // 15 seconds is the time out. Max of 1092 seconds allowed
|
||||
#define SNEAKING_PROXIMITY 4 // Tile amount
|
||||
#define CREEPING_PROXIMITY 2
|
||||
|
|
|
@ -1387,8 +1387,8 @@
|
|||
#define FLAG_IS_CHAMPION (SYSTEM_FLAGS + 0x1F) // Seems to be related to linking.
|
||||
#define FLAG_NURSE_UNION_ROOM_REMINDER (SYSTEM_FLAGS + 0x20)
|
||||
|
||||
#define FLAG_SYS_DEXNAV_SEARCH (SYSTEM_FLAGS + 0x21)
|
||||
#define FLAG_SHINY_CREATION (SYSTEM_FLAGS + 0x22) // force creation of a shiny mon
|
||||
#define FLAG_UNUSED_0x881 (SYSTEM_FLAGS + 0x21) // Unused Flag
|
||||
#define FLAG_UNUSED_0x882 (SYSTEM_FLAGS + 0x22) // Unused Flag
|
||||
#define FLAG_UNUSED_0x883 (SYSTEM_FLAGS + 0x23) // Unused Flag
|
||||
#define FLAG_UNUSED_0x884 (SYSTEM_FLAGS + 0x24) // Unused Flag
|
||||
#define FLAG_UNUSED_0x885 (SYSTEM_FLAGS + 0x25) // Unused Flag
|
||||
|
@ -1402,8 +1402,8 @@
|
|||
#define FLAG_SYS_SAFARI_MODE (SYSTEM_FLAGS + 0x2C)
|
||||
#define FLAG_SYS_CRUISE_MODE (SYSTEM_FLAGS + 0x2D)
|
||||
|
||||
#define FLAG_SYS_DETECTOR_MODE (SYSTEM_FLAGS + 0x2E) // allow player to find hidden mons
|
||||
#define FLAG_SYS_DEXNAV_GET (SYSTEM_FLAGS + 0x2F) // dexnav shows in start menu
|
||||
#define FLAG_UNUSED_0x88E (SYSTEM_FLAGS + 0x2E)
|
||||
#define FLAG_UNUSED_0x88F (SYSTEM_FLAGS + 0x2F)
|
||||
|
||||
#define FLAG_SYS_TV_HOME (SYSTEM_FLAGS + 0x30)
|
||||
#define FLAG_SYS_TV_WATCH (SYSTEM_FLAGS + 0x31)
|
||||
|
|
|
@ -264,8 +264,8 @@
|
|||
#define VAR_ROXANNE_CALL_STEP_COUNTER 0x40F4
|
||||
#define VAR_SCOTT_BF_CALL_STEP_COUNTER 0x40F5
|
||||
#define VAR_RIVAL_RAYQUAZA_CALL_STEP_COUNTER 0x40F6
|
||||
#define VAR_DEXNAV_SPECIES 0x40F7 // Registered dexnav species
|
||||
#define VAR_DEXNAV_STEP_COUNTER 0x40F8 // steps for finding hidden pokemon
|
||||
#define VAR_UNUSED_0x40F7 0x40F7 // Unused Var
|
||||
#define VAR_UNUSED_0x40F8 0x40F8 // Unused Var
|
||||
#define VAR_UNUSED_0x40F9 0x40F9 // Unused Var
|
||||
#define VAR_UNUSED_0x40FA 0x40FA // Unused Var
|
||||
#define VAR_UNUSED_0x40FB 0x40FB // Unused Var
|
||||
|
|
20
src/dexnav.c
20
src/dexnav.c
|
@ -59,6 +59,14 @@
|
|||
#include "constants/region_map_sections.h"
|
||||
#include "gba/m4a_internal.h"
|
||||
|
||||
#if DEXNAV_ENABLED
|
||||
STATIC_ASSERT(FLAG_SYS_DEXNAV_SEARCH != 0);
|
||||
STATIC_ASSERT(FLAG_SYS_DEXNAV_GET != 0);
|
||||
STATIC_ASSERT(FLAG_SYS_DETECTOR_MODE != 0);
|
||||
STATIC_ASSERT(VAR_DEXNAV_SPECIES != 0);
|
||||
STATIC_ASSERT(VAR_DEXNAV_STEP_COUNTER != 0);
|
||||
#endif
|
||||
|
||||
// Defines
|
||||
enum WindowIds
|
||||
{
|
||||
|
@ -1264,7 +1272,6 @@ static void CreateDexNavWildMon(u16 species, u8 potential, u8 level, u8 abilityN
|
|||
SetMonMoveSlot(mon, moves[i], i);
|
||||
|
||||
CalculateMonStats(mon);
|
||||
FlagClear(FLAG_SHINY_CREATION);
|
||||
}
|
||||
|
||||
// gets a random level of the species based on map data.
|
||||
|
@ -2360,7 +2367,11 @@ static void DexNavGuiInit(MainCallback callback)
|
|||
|
||||
void Task_OpenDexNavFromStartMenu(u8 taskId)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
if (DEXNAV_ENABLED == FALSE)
|
||||
{ // must have it enabled to enter
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
else if (!gPaletteFade.active)
|
||||
{
|
||||
CleanupOverworldWindowsAndTilemaps();
|
||||
DexNavGuiInit(CB2_ReturnToFieldWithOpenMenu);
|
||||
|
@ -2525,7 +2536,10 @@ bool8 TryFindHiddenPokemon(void)
|
|||
{
|
||||
u16 *stepPtr = GetVarPointer(VAR_DEXNAV_STEP_COUNTER);
|
||||
|
||||
if (!FlagGet(FLAG_SYS_DETECTOR_MODE) || FlagGet(FLAG_SYS_DEXNAV_SEARCH) || GetFlashLevel() > 0)
|
||||
if (DEXNAV_ENABLED == 0
|
||||
|| !FlagGet(FLAG_SYS_DETECTOR_MODE)
|
||||
|| FlagGet(FLAG_SYS_DEXNAV_SEARCH)
|
||||
|| GetFlashLevel() > 0)
|
||||
{
|
||||
(*stepPtr) = 0;
|
||||
return FALSE;
|
||||
|
|
Loading…
Reference in a new issue