mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-08-27 20:05:12 -05:00
Document system_vars.c
This commit is contained in:
@@ -7,7 +7,72 @@
|
||||
|
||||
#define VARS_START 0x4000
|
||||
|
||||
#define SYSTEM_VARS_START (VARS_START + 0x0030)
|
||||
#define SYSTEM_VARS_START (VARS_START + 0x0030)
|
||||
#define SYSTEM_VARS_BLOCK_SIZE 64
|
||||
#define VAR_PLAYER_STARTER (SYSTEM_VARS_START + 0)
|
||||
#define VAR_UNUSED_0x4031 (SYSTEM_VARS_START + 1)
|
||||
#define VAR_UNK_0x4032 (SYSTEM_VARS_START + 2)
|
||||
#define VAR_VS_SEEKER_BATTERY_LEVEL (SYSTEM_VARS_START + 3)
|
||||
#define VAR_VS_SEEKER_STEP_COUNT (SYSTEM_VARS_START + 4)
|
||||
#define VAR_SIZE_CONTEST_RECORD (SYSTEM_VARS_START + 5)
|
||||
#define VAR_HIDDEN_LOCATION_FULL_MOON_ISLAND (SYSTEM_VARS_START + 6)
|
||||
#define VAR_HIDDEN_LOCATION_NEW_MOON_ISLAND (SYSTEM_VARS_START + 7)
|
||||
#define VAR_HIDDEN_LOCATION_SPRING_PATH (SYSTEM_VARS_START + 8)
|
||||
#define VAR_HIDDEN_LOCATION_SEABREAK_PATH (SYSTEM_VARS_START + 9)
|
||||
#define VAR_AMITY_SQUARE_STEP_COUNT (SYSTEM_VARS_START + 10)
|
||||
#define VAR_NEWS_PRESS_DEADLINE (SYSTEM_VARS_START + 11)
|
||||
#define VAR_LOTTERY_TRAINER_ID_LOW_HALF (SYSTEM_VARS_START + 12)
|
||||
#define VAR_LOTTERY_TRAINER_ID_HIGH_HALF (SYSTEM_VARS_START + 13)
|
||||
#define VAR_SPIRITOMB_COUNTER (SYSTEM_VARS_START + 14)
|
||||
#define VAR_PARTNER_TRAINER_ID (SYSTEM_VARS_START + 15)
|
||||
#define VAR_CONSECUTIVE_BONUS_ROUND_WINS (SYSTEM_VARS_START + 16)
|
||||
#define VAR_DAILY_RANDOM_LEVEL (SYSTEM_VARS_START + 17)
|
||||
#define VAR_DEPARTMENT_STORE_REGULAR_COUNTER (SYSTEM_VARS_START + 18)
|
||||
#define VAR_DISTRIBUTION_EVENT_DARKRAI (SYSTEM_VARS_START + 19)
|
||||
#define VAR_DISTRIBUTION_EVENT_SHAYMIN (SYSTEM_VARS_START + 20)
|
||||
#define VAR_DISTRIBUTION_EVENT_ARCEUS (SYSTEM_VARS_START + 21)
|
||||
#define VAR_DISTRIBUTION_EVENT_ROTOM (SYSTEM_VARS_START + 22)
|
||||
#define VAR_UNDERGROUND_FOSSILS_UNEARTHED (SYSTEM_VARS_START + 23)
|
||||
#define VAR_UNDERGROUND_TRAPS_SET (SYSTEM_VARS_START + 24)
|
||||
#define VAR_UNDERGROUND_TALK_COUNTER (SYSTEM_VARS_START + 25)
|
||||
#define VAR_FRIENDSHIP_INCREMENT_STEP_COUNTER (SYSTEM_VARS_START + 26)
|
||||
#define VAR_ETERNA_GYM_FLOWER_CLOCK_STATE (SYSTEM_VARS_START + 27)
|
||||
#define VAR_UNK_0x4049 (SYSTEM_VARS_START + 28)
|
||||
#define VAR_TOTAL_TURNS_LAST_BATTLE (SYSTEM_VARS_START + 29)
|
||||
#define VAR_RESORT_VILLA_VISITOR (SYSTEM_VARS_START + 30)
|
||||
#define VAR_BATTLE_TOWER_PRINT_STATE (SYSTEM_VARS_START + 31)
|
||||
#define VAR_BATTLE_FACTORY_PRINT_STATE (SYSTEM_VARS_START + 32)
|
||||
#define VAR_BATTLE_HALL_PRINT_STATE (SYSTEM_VARS_START + 33)
|
||||
#define VAR_BATTLE_CASTLE_PRINT_STATE (SYSTEM_VARS_START + 34)
|
||||
#define VAR_BATTLE_ARCADE_PRINT_STATE (SYSTEM_VARS_START + 35)
|
||||
#define VAR_UNDERGROUND_ITEMS_GIVEN_AWAY (SYSTEM_VARS_START + 36)
|
||||
#define VAR_DISTORTION_WORLD_PROGRESS (SYSTEM_VARS_START + 37)
|
||||
#define VAR_ARCEUS_EVENT_STATE (SYSTEM_VARS_START + 38)
|
||||
#define VAR_SHAYMIN_EVENT_STATE (SYSTEM_VARS_START + 39)
|
||||
#define VAR_ROAMING_CRESSELIA_STATE (SYSTEM_VARS_START + 40)
|
||||
#define VAR_ROAMING_MESPRIT_STATE (SYSTEM_VARS_START + 41)
|
||||
#define VAR_RESORT_VILLA_VISITOR_MESSAGE_NUM (SYSTEM_VARS_START + 42)
|
||||
#define VAR_DISTORTION_WORLD_CYRUS_APPEARANCE (SYSTEM_VARS_START + 43)
|
||||
#define VAR_UNK_0x405C (SYSTEM_VARS_START + 44)
|
||||
#define VAR_UNK_0x405D (SYSTEM_VARS_START + 45)
|
||||
#define VAR_ROAMING_MOLTRES_STATE (SYSTEM_VARS_START + 46)
|
||||
#define VAR_ROAMING_ZAPDOS_STATE (SYSTEM_VARS_START + 47)
|
||||
#define VAR_ROAMING_ARTICUNO_STATE (SYSTEM_VARS_START + 48)
|
||||
#define VAR_UNK_0x4061 (SYSTEM_VARS_START + 49)
|
||||
#define VAR_UNK_0x4062 (SYSTEM_VARS_START + 50)
|
||||
#define VAR_UNK_0x4063 (SYSTEM_VARS_START + 51)
|
||||
#define VAR_WIFI_FRONTIER_CLEARED (SYSTEM_VARS_START + 52)
|
||||
#define VAR_UNK_0x4065 (SYSTEM_VARS_START + 53)
|
||||
#define VAR_UNK_0x4066 (SYSTEM_VARS_START + 54)
|
||||
#define VAR_UNK_0x4067 (SYSTEM_VARS_START + 55)
|
||||
#define VAR_UNK_0x4068 (SYSTEM_VARS_START + 56)
|
||||
#define VAR_UNK_0x4069 (SYSTEM_VARS_START + 57)
|
||||
#define VAR_UNK_0x406A (SYSTEM_VARS_START + 58)
|
||||
#define VAR_UNK_0x406B (SYSTEM_VARS_START + 59)
|
||||
#define VAR_UNUSED_0x406C (SYSTEM_VARS_START + 60)
|
||||
#define VAR_UNUSED_0x406D (SYSTEM_VARS_START + 61)
|
||||
#define VAR_UNUSED_0x406E (SYSTEM_VARS_START + 62)
|
||||
#define VAR_UNUSED_0x406F (SYSTEM_VARS_START + 63)
|
||||
|
||||
#define SPECIAL_VARS_START 0x8000
|
||||
|
||||
|
||||
@@ -13,6 +13,9 @@
|
||||
|
||||
#define NELEMS(a) (sizeof(a) / sizeof(*(a)))
|
||||
#define XtOffset(pointer_type, field) ((unsigned int)&(((pointer_type)NULL)->field))
|
||||
#define HI_HALF(i) (((i) >> 16) & 0xFFFF)
|
||||
#define LO_HALF(i) ((i) & 0xFFFF)
|
||||
#define HI_AND_LO(h, l) (((h) << 16) | l)
|
||||
|
||||
#define ALIGN_4 __attribute__((aligned(4)))
|
||||
|
||||
|
||||
@@ -1,63 +1,73 @@
|
||||
#ifndef POKEPLATINUM_UNK_0206AFE0_H
|
||||
#define POKEPLATINUM_UNK_0206AFE0_H
|
||||
#ifndef POKEPLATINUM_SYSTEM_VARS_H
|
||||
#define POKEPLATINUM_SYSTEM_VARS_H
|
||||
|
||||
#include "savedata.h"
|
||||
#include "vars_flags.h"
|
||||
|
||||
enum HiddenLocations {
|
||||
HL_FULLMOONISLAND = 0,
|
||||
HL_NEWMOONISLAND = 1,
|
||||
HL_SPRINGPATH = 2,
|
||||
HL_SEABREAKPATH = 3,
|
||||
enum DistributionEvent {
|
||||
DISTEVENT_DARKRAI = 0,
|
||||
DISTEVENT_SHAYMIN,
|
||||
DISTEVENT_ARCEUS,
|
||||
DISTEVENT_ROTOM,
|
||||
|
||||
DISTEVENT_MAX,
|
||||
};
|
||||
|
||||
BOOL SystemVars_SetPartnerTrainerID(VarsFlags *varsFlags, u16 param1);
|
||||
enum HiddenLocation {
|
||||
HL_FULLMOONISLAND = 0,
|
||||
HL_NEWMOONISLAND,
|
||||
HL_SPRINGPATH,
|
||||
HL_SEABREAKPATH,
|
||||
|
||||
HL_MAX,
|
||||
};
|
||||
|
||||
BOOL SystemVars_SetPartnerTrainerID(VarsFlags *varsFlags, u16 trainerID);
|
||||
u16 SystemVars_GetPartnerTrainerID(VarsFlags *varsFlags);
|
||||
BOOL SystemVars_SetPlayerStarter(VarsFlags *varsFlags, u16 param1);
|
||||
BOOL SystemVars_SetPlayerStarter(VarsFlags *varsFlags, u16 species);
|
||||
u16 SystemVars_GetPlayerStarter(VarsFlags *varsFlags);
|
||||
u16 SystemVars_GetRivalStarter(VarsFlags *varsFlags);
|
||||
u16 SystemVars_GetPlayerCounterpartStarter(VarsFlags *varsFlags);
|
||||
u16 SystemVars_GetSizeContestRecord(VarsFlags *varsFlags);
|
||||
BOOL SystemVars_SetSizeContestRecord(VarsFlags *varsFlags, u16 param1);
|
||||
BOOL SystemVars_SetSizeContestRecord(VarsFlags *varsFlags, u16 size);
|
||||
void SystemVars_ResetVsSeeker(VarsFlags *varsFlags);
|
||||
u16 SystemVars_GetVsSeekerBattery(VarsFlags *varsFlags);
|
||||
BOOL SystemVars_SetVsSeekerBattery(VarsFlags *varsFlags, u16 param1);
|
||||
BOOL SystemVars_SetVsSeekerBattery(VarsFlags *varsFlags, u16 battery);
|
||||
u16 SystemVars_GetVsSeekerStepCount(VarsFlags *varsFlags);
|
||||
BOOL SystemVars_SetVsSeekerStepCount(VarsFlags *varsFlags, u16 param1);
|
||||
void SystemVars_SetDistributionEventMagic(VarsFlags *varsFlags, int param1);
|
||||
BOOL SystemVars_CheckDistributionEvent(VarsFlags *varsFlags, int param1);
|
||||
void SystemVars_SetHiddenLocationMagic(VarsFlags *varsFlags, int param1);
|
||||
void SystemVars_ClearHiddenLocation(VarsFlags *varsFlags, int param1);
|
||||
BOOL SystemVars_CheckHiddenLocation(VarsFlags *varsFlags, int hiddenLocation);
|
||||
BOOL SystemVars_SetVsSeekerStepCount(VarsFlags *varsFlags, u16 count);
|
||||
void SystemVars_SetDistributionEventMagic(VarsFlags *varsFlags, enum DistributionEvent eventID);
|
||||
BOOL SystemVars_CheckDistributionEvent(VarsFlags *varsFlags, enum DistributionEvent eventID);
|
||||
void SystemVars_SetHiddenLocationMagic(VarsFlags *varsFlags, enum HiddenLocation hiddenLocation);
|
||||
void SystemVars_ClearHiddenLocation(VarsFlags *varsFlags, enum HiddenLocation hiddenLocation);
|
||||
BOOL SystemVars_CheckHiddenLocation(VarsFlags *varsFlags, enum HiddenLocation hiddenLocation);
|
||||
BOOL SystemVars_ClearAmitySquareStepCount(VarsFlags *varsFlags);
|
||||
u16 SystemVars_GetAmitySquareStepCount(VarsFlags *varsFlags);
|
||||
BOOL SystemVars_IncrementAmitySquareStepCount(VarsFlags *varsFlags);
|
||||
u16 SystemVars_GetNewsPressDeadline(VarsFlags *varsFlags);
|
||||
BOOL SystemVars_SetNewsPressDeadline(VarsFlags *varsFlags, u16 param1);
|
||||
u32 sub_0206B2A4(VarsFlags *varsFlags);
|
||||
BOOL SystemVars_SetNewsPressDeadline(VarsFlags *varsFlags, u16 deadlineInDays);
|
||||
void SystemVars_RandomizeJubilifeLotteryTrainerID(VarsFlags *varsFlags);
|
||||
void SystemVars_SynchronizeJubilifeLotteryTrainerID(SaveData *param0, u16 param1);
|
||||
void SystemVars_SynchronizeJubilifeLotteryTrainerID(SaveData *saveData, u16 trainerID);
|
||||
u16 SystemVars_GetDailyRandomLevel(VarsFlags *varsFlags);
|
||||
void SystemVars_SetDailyRandomLevel(SaveData *varsFlags);
|
||||
void SystemVars_SetDailyRandomLevel(SaveData *saveData);
|
||||
u16 SystemVars_GetSpiritombCounter(VarsFlags *varsFlags);
|
||||
BOOL SystemVars_SetSpiritombCounter(VarsFlags *varsFlags, u16 param1);
|
||||
BOOL SystemVars_SetSpiritombCounter(VarsFlags *varsFlags, u16 value);
|
||||
u16 SystemVars_GetUndergroundTalkCounter(VarsFlags *varsFlags);
|
||||
BOOL SystemVars_SetUndergroundTalkCounter(VarsFlags *varsFlags, u16 param1);
|
||||
BOOL SystemVars_SetUndergroundTalkCounter(VarsFlags *varsFlags, u16 value);
|
||||
u16 SystemVars_GetConsecutiveBonusRoundWins(VarsFlags *varsFlags);
|
||||
BOOL SystemVars_SetConsecutiveBonusRoundWins(VarsFlags *varsFlags, u16 param1);
|
||||
BOOL SystemVars_SetConsecutiveBonusRoundWins(VarsFlags *varsFlags, u16 wins);
|
||||
BOOL SystemVars_IncrementDepartmentStoreRegularCount(VarsFlags *varsFlags);
|
||||
u16 SystemVars_GetDepartmentStoreRegularCount(VarsFlags *varsFlags);
|
||||
u16 SystemVars_GetUndergroundItemsGivenAway(VarsFlags *varsFlags);
|
||||
BOOL SystemVars_SetUndergroundItemsGivenAway(VarsFlags *varsFlags, u16 param1);
|
||||
BOOL SystemVars_SetUndergroundItemsGivenAway(VarsFlags *varsFlags, u16 value);
|
||||
u16 SystemVars_GetUndergroundFossilsUnearthed(VarsFlags *varsFlags);
|
||||
BOOL SystemVars_SetUndergroundFossilsUnearthed(VarsFlags *varsFlags, u16 param1);
|
||||
BOOL SystemVars_SetUndergroundFossilsUnearthed(VarsFlags *varsFlags, u16 value);
|
||||
u16 SystemVars_GetUndergroundTrapsSet(VarsFlags *varsFlags);
|
||||
BOOL SystemVars_SetUndergroundTrapsSet(VarsFlags *varsFlags, u16 param1);
|
||||
BOOL SystemVars_SetUndergroundTrapsSet(VarsFlags *varsFlags, u16 value);
|
||||
u16 SystemVars_GetFriendshipStepCount(VarsFlags *varsFlags);
|
||||
void SystemVars_SetFriendshipStepCount(VarsFlags *varsFlags, u16 param1);
|
||||
void SystemVars_SetEternaGymFlowerClock(VarsFlags *varsFlags, u16 param1);
|
||||
void SystemVars_SetFriendshipStepCount(VarsFlags *varsFlags, u16 value);
|
||||
void SystemVars_SetEternaGymFlowerClock(VarsFlags *varsFlags, u16 state);
|
||||
u16 SystemVars_GetEternaGymFlowerClock(VarsFlags *varsFlags);
|
||||
void SystemVars_SetTotalTurnsForLastBattle(VarsFlags *varsFlags, u16 param1);
|
||||
void SystemVars_SetTotalTurnsForLastBattle(VarsFlags *varsFlags, u16 turns);
|
||||
void SystemVars_UpdateVillaVisitor(SaveData *varsFlags);
|
||||
u16 SystemVars_GetBattleFactoryPrintState(VarsFlags *varsFlags);
|
||||
u16 SystemVars_GetBattleHallPrintState(VarsFlags *varsFlags);
|
||||
@@ -65,14 +75,14 @@ u16 SystemVars_GetBattleCastlePrintState(VarsFlags *varsFlags);
|
||||
u16 SystemVars_GetBattleArcadePrintState(VarsFlags *varsFlags);
|
||||
u16 SystemVars_GetBattleTowerPrintState(VarsFlags *varsFlags);
|
||||
u16 SystemVars_GetDistortionWorldProgress(VarsFlags *varsFlags);
|
||||
void SystemVars_SetDistortionWorldProgress(VarsFlags *varsFlags, u16 param1);
|
||||
void SystemVars_SetDistortionWorldProgress(VarsFlags *varsFlags, u16 state);
|
||||
u16 SystemVars_GetArceusEventState(VarsFlags *varsFlags);
|
||||
void SystemVars_SetArceusEventState(VarsFlags *varsFlags, u16 param1);
|
||||
void SystemVars_SetArceusEventState(VarsFlags *varsFlags, u16 state);
|
||||
u16 SystemVars_GetShayminEventState(VarsFlags *varsFlags);
|
||||
void SystemVars_SetShayminEventState(VarsFlags *varsFlags, u16 param1);
|
||||
void SystemVars_SetRoamingSpeciesState(VarsFlags *varsFlags, u16 param1, u16 param2);
|
||||
void SystemVars_SetShayminEventState(VarsFlags *varsFlags, u16 state);
|
||||
void SystemVars_SetRoamingSpeciesState(VarsFlags *varsFlags, u16 species, u16 state);
|
||||
u16 SystemVars_GetDistortionWorldCyrusApperanceState(VarsFlags *varsFlags);
|
||||
void SystemVars_SetDistortionWorldCyrusApperanceState(VarsFlags *varsFlags, u16 param1);
|
||||
void SystemVars_SetDistortionWorldCyrusApperanceState(VarsFlags *varsFlags, u16 state);
|
||||
u16 SystemVars_GetWiFiFrontierCleared(VarsFlags *varsFlags);
|
||||
|
||||
#endif // POKEPLATINUM_UNK_0206AFE0_H
|
||||
#endif // POKEPLATINUM_SYSTEM_VARS_H
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
#include "generated/map_headers.h"
|
||||
#include "generated/species.h"
|
||||
|
||||
#include "struct_decls/struct_0203A790_decl.h"
|
||||
|
||||
#include "field_overworld_state.h"
|
||||
#include "location.h"
|
||||
#include "math.h"
|
||||
@@ -16,17 +14,17 @@
|
||||
|
||||
static BOOL TrySetVarToValue(VarsFlags *varsFlags, u16 varID, u16 value);
|
||||
static u16 TryGetVarValue(VarsFlags *varsFlags, u16 varID);
|
||||
static int GetDistributionEventMagicNumber(int eventID);
|
||||
static int GetHiddenLocationMagicNumber(int eventID);
|
||||
static void SetJubilifeLotteryTrainerID(VarsFlags *param0, u32 param1);
|
||||
static BOOL SetDailyRandomLevel(VarsFlags *param0, u16 param1);
|
||||
static int GetDistributionEventMagicNumber(enum DistributionEvent eventID);
|
||||
static int GetHiddenLocationMagicNumber(enum HiddenLocation hiddenLocation);
|
||||
static void SetJubilifeLotteryTrainerID(VarsFlags *varsFlags, u32 trainerID);
|
||||
static BOOL SetDailyRandomLevel(VarsFlags *varsFlags, u16 level);
|
||||
static u8 CalcVillaVisitorIndex(VarsFlags *varsFlags);
|
||||
static void InitVillaVisitor(VarsFlags *param0, u16 param1);
|
||||
static void SetRoamingCresseliaState(VarsFlags *param0, u16 param1);
|
||||
static void SetRoamingMespritState(VarsFlags *param0, u16 param1);
|
||||
static void SetRoamingMoltresState(VarsFlags *param0, u16 param1);
|
||||
static void SetRoamingZapdosState(VarsFlags *param0, u16 param1);
|
||||
static void SetRoamingArticunoState(VarsFlags *param0, u16 param1);
|
||||
static void InitVillaVisitor(VarsFlags *varsFlags, u16 visitor);
|
||||
static void SetRoamingCresseliaState(VarsFlags *varsFlags, u16 state);
|
||||
static void SetRoamingMespritState(VarsFlags *varsFlags, u16 state);
|
||||
static void SetRoamingMoltresState(VarsFlags *varsFlags, u16 state);
|
||||
static void SetRoamingZapdosState(VarsFlags *varsFlags, u16 state);
|
||||
static void SetRoamingArticunoState(VarsFlags *varsFlags, u16 state);
|
||||
|
||||
static BOOL TrySetVarToValue(VarsFlags *varsFlags, u16 varID, u16 value)
|
||||
{
|
||||
@@ -54,30 +52,30 @@ static u16 TryGetVarValue(VarsFlags *varsFlags, u16 varID)
|
||||
return *varAddress;
|
||||
}
|
||||
|
||||
BOOL SystemVars_SetPartnerTrainerID(VarsFlags *param0, u16 param1)
|
||||
BOOL SystemVars_SetPartnerTrainerID(VarsFlags *varsFlags, u16 trainerID)
|
||||
{
|
||||
return TrySetVarToValue(param0, (15 + SYSTEM_VARS_START), param1);
|
||||
return TrySetVarToValue(varsFlags, VAR_PARTNER_TRAINER_ID, trainerID);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetPartnerTrainerID(VarsFlags *param0)
|
||||
u16 SystemVars_GetPartnerTrainerID(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (15 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_PARTNER_TRAINER_ID);
|
||||
}
|
||||
|
||||
BOOL SystemVars_SetPlayerStarter(VarsFlags *var, u16 species)
|
||||
BOOL SystemVars_SetPlayerStarter(VarsFlags *varsFlags, u16 species)
|
||||
{
|
||||
return TrySetVarToValue(var, (0 + SYSTEM_VARS_START), species);
|
||||
return TrySetVarToValue(varsFlags, VAR_PLAYER_STARTER, species);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetPlayerStarter(VarsFlags *param0)
|
||||
u16 SystemVars_GetPlayerStarter(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (0 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_PLAYER_STARTER);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetRivalStarter(VarsFlags *vars)
|
||||
u16 SystemVars_GetRivalStarter(VarsFlags *varsFlags)
|
||||
{
|
||||
u16 rivalStarter;
|
||||
u16 playerStarter = TryGetVarValue(vars, (0 + SYSTEM_VARS_START));
|
||||
u16 playerStarter = TryGetVarValue(varsFlags, VAR_PLAYER_STARTER);
|
||||
|
||||
if (playerStarter == SPECIES_TURTWIG) {
|
||||
rivalStarter = SPECIES_CHIMCHAR;
|
||||
@@ -90,292 +88,287 @@ u16 SystemVars_GetRivalStarter(VarsFlags *vars)
|
||||
return rivalStarter;
|
||||
}
|
||||
|
||||
u16 SystemVars_GetPlayerCounterpartStarter(VarsFlags *param0)
|
||||
u16 SystemVars_GetPlayerCounterpartStarter(VarsFlags *varsFlags)
|
||||
{
|
||||
u16 v0;
|
||||
u16 v1 = TryGetVarValue(param0, (0 + SYSTEM_VARS_START));
|
||||
u16 counterpartStarter;
|
||||
u16 playerStarter = TryGetVarValue(varsFlags, VAR_PLAYER_STARTER);
|
||||
|
||||
if (v1 == 387) {
|
||||
v0 = 393;
|
||||
} else if (v1 == 390) {
|
||||
v0 = 387;
|
||||
if (playerStarter == SPECIES_TURTWIG) {
|
||||
counterpartStarter = SPECIES_PIPLUP;
|
||||
} else if (playerStarter == SPECIES_CHIMCHAR) {
|
||||
counterpartStarter = SPECIES_TURTWIG;
|
||||
} else {
|
||||
v0 = 390;
|
||||
counterpartStarter = SPECIES_CHIMCHAR;
|
||||
}
|
||||
|
||||
return v0;
|
||||
return counterpartStarter;
|
||||
}
|
||||
|
||||
u16 SystemVars_GetSizeContestRecord(VarsFlags *param0)
|
||||
u16 SystemVars_GetSizeContestRecord(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (5 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_SIZE_CONTEST_RECORD);
|
||||
}
|
||||
|
||||
BOOL SystemVars_SetSizeContestRecord(VarsFlags *param0, u16 param1)
|
||||
BOOL SystemVars_SetSizeContestRecord(VarsFlags *varsFlags, u16 value)
|
||||
{
|
||||
return TrySetVarToValue(param0, (5 + SYSTEM_VARS_START), param1);
|
||||
return TrySetVarToValue(varsFlags, VAR_SIZE_CONTEST_RECORD, value);
|
||||
}
|
||||
|
||||
void SystemVars_ResetVsSeeker(VarsFlags *param0)
|
||||
void SystemVars_ResetVsSeeker(VarsFlags *varsFlags)
|
||||
{
|
||||
SystemFlag_ClearVsSeekerUsed(param0);
|
||||
SystemVars_SetVsSeekerStepCount(param0, 0);
|
||||
SystemFlag_ClearVsSeekerUsed(varsFlags);
|
||||
SystemVars_SetVsSeekerStepCount(varsFlags, 0);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetVsSeekerBattery(VarsFlags *param0)
|
||||
u16 SystemVars_GetVsSeekerBattery(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (3 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_VS_SEEKER_BATTERY_LEVEL);
|
||||
}
|
||||
|
||||
BOOL SystemVars_SetVsSeekerBattery(VarsFlags *param0, u16 param1)
|
||||
BOOL SystemVars_SetVsSeekerBattery(VarsFlags *varsFlags, u16 battery)
|
||||
{
|
||||
return TrySetVarToValue(param0, (3 + SYSTEM_VARS_START), param1);
|
||||
return TrySetVarToValue(varsFlags, VAR_VS_SEEKER_BATTERY_LEVEL, battery);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetVsSeekerStepCount(VarsFlags *param0)
|
||||
u16 SystemVars_GetVsSeekerStepCount(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (4 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_VS_SEEKER_STEP_COUNT);
|
||||
}
|
||||
|
||||
BOOL SystemVars_SetVsSeekerStepCount(VarsFlags *param0, u16 param1)
|
||||
BOOL SystemVars_SetVsSeekerStepCount(VarsFlags *varsFlags, u16 stepCount)
|
||||
{
|
||||
return TrySetVarToValue(param0, (4 + SYSTEM_VARS_START), param1);
|
||||
return TrySetVarToValue(varsFlags, VAR_VS_SEEKER_STEP_COUNT, stepCount);
|
||||
}
|
||||
|
||||
static const u16 sDistributionEventMagicNumbers[] = {
|
||||
0x1209,
|
||||
0x1112,
|
||||
0x1123,
|
||||
0x1103,
|
||||
[DISTEVENT_DARKRAI] = 0x1209,
|
||||
[DISTEVENT_SHAYMIN] = 0x1112,
|
||||
[DISTEVENT_ARCEUS] = 0x1123,
|
||||
[DISTEVENT_ROTOM] = 0x1103,
|
||||
};
|
||||
|
||||
static int GetDistributionEventMagicNumber(int eventID)
|
||||
static int GetDistributionEventMagicNumber(enum DistributionEvent eventID)
|
||||
{
|
||||
GF_ASSERT(0 <= eventID && eventID < NELEMS(sDistributionEventMagicNumbers));
|
||||
GF_ASSERT(0 <= eventID && eventID < NELEMS(sDistributionEventMagicNumbers)); // Does not match as enum-literal
|
||||
return sDistributionEventMagicNumbers[eventID];
|
||||
}
|
||||
|
||||
void SystemVars_SetDistributionEventMagic(VarsFlags *param0, int param1)
|
||||
void SystemVars_SetDistributionEventMagic(VarsFlags *varsFlags, enum DistributionEvent eventID)
|
||||
{
|
||||
TrySetVarToValue(param0, (19 + SYSTEM_VARS_START) + param1, GetDistributionEventMagicNumber(param1));
|
||||
TrySetVarToValue(varsFlags, VAR_DISTRIBUTION_EVENT_DARKRAI + eventID, GetDistributionEventMagicNumber(eventID));
|
||||
}
|
||||
|
||||
BOOL SystemVars_CheckDistributionEvent(VarsFlags *param0, int param1)
|
||||
BOOL SystemVars_CheckDistributionEvent(VarsFlags *varsFlags, enum DistributionEvent eventID)
|
||||
{
|
||||
return TryGetVarValue(param0, (19 + SYSTEM_VARS_START) + param1) == GetDistributionEventMagicNumber(param1);
|
||||
return TryGetVarValue(varsFlags, VAR_DISTRIBUTION_EVENT_DARKRAI + eventID) == GetDistributionEventMagicNumber(eventID);
|
||||
}
|
||||
|
||||
static const u16 sHiddenLocationMagicNumbers[] = {
|
||||
0x0208,
|
||||
0x0229,
|
||||
0x0312,
|
||||
0x1028,
|
||||
[HL_FULLMOONISLAND] = 0x0208,
|
||||
[HL_NEWMOONISLAND] = 0x0229,
|
||||
[HL_SPRINGPATH] = 0x0312,
|
||||
[HL_SEABREAKPATH] = 0x1028,
|
||||
};
|
||||
|
||||
static int GetHiddenLocationMagicNumber(int eventID)
|
||||
static int GetHiddenLocationMagicNumber(enum HiddenLocation hiddenLocation)
|
||||
{
|
||||
GF_ASSERT(0 <= eventID && eventID < 4);
|
||||
return sHiddenLocationMagicNumbers[eventID];
|
||||
GF_ASSERT(0 <= hiddenLocation && hiddenLocation < HL_MAX);
|
||||
return sHiddenLocationMagicNumbers[hiddenLocation];
|
||||
}
|
||||
|
||||
void SystemVars_SetHiddenLocationMagic(VarsFlags *param0, int param1)
|
||||
void SystemVars_SetHiddenLocationMagic(VarsFlags *varsFlags, enum HiddenLocation hiddenLocation)
|
||||
{
|
||||
TrySetVarToValue(param0, (6 + SYSTEM_VARS_START) + param1, GetHiddenLocationMagicNumber(param1));
|
||||
TrySetVarToValue(varsFlags, VAR_HIDDEN_LOCATION_FULL_MOON_ISLAND + hiddenLocation, GetHiddenLocationMagicNumber(hiddenLocation));
|
||||
}
|
||||
|
||||
void SystemVars_ClearHiddenLocation(VarsFlags *param0, int param1)
|
||||
void SystemVars_ClearHiddenLocation(VarsFlags *varsFlags, enum HiddenLocation hiddenLocation)
|
||||
{
|
||||
TrySetVarToValue(param0, (6 + SYSTEM_VARS_START) + param1, 0);
|
||||
TrySetVarToValue(varsFlags, VAR_HIDDEN_LOCATION_FULL_MOON_ISLAND + hiddenLocation, 0);
|
||||
}
|
||||
|
||||
BOOL SystemVars_CheckHiddenLocation(VarsFlags *varFlags, int hiddenLocation)
|
||||
BOOL SystemVars_CheckHiddenLocation(VarsFlags *varsFlags, enum HiddenLocation hiddenLocation)
|
||||
{
|
||||
return TryGetVarValue(varFlags, (6 + SYSTEM_VARS_START) + hiddenLocation) == GetHiddenLocationMagicNumber(hiddenLocation);
|
||||
return TryGetVarValue(varsFlags, VAR_HIDDEN_LOCATION_FULL_MOON_ISLAND + hiddenLocation) == GetHiddenLocationMagicNumber(hiddenLocation);
|
||||
}
|
||||
|
||||
BOOL SystemVars_ClearAmitySquareStepCount(VarsFlags *param0)
|
||||
BOOL SystemVars_ClearAmitySquareStepCount(VarsFlags *varsFlags)
|
||||
{
|
||||
return TrySetVarToValue(param0, (10 + SYSTEM_VARS_START), 0);
|
||||
return TrySetVarToValue(varsFlags, VAR_AMITY_SQUARE_STEP_COUNT, 0);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetAmitySquareStepCount(VarsFlags *param0)
|
||||
u16 SystemVars_GetAmitySquareStepCount(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (10 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_AMITY_SQUARE_STEP_COUNT);
|
||||
}
|
||||
|
||||
BOOL SystemVars_IncrementAmitySquareStepCount(VarsFlags *param0)
|
||||
BOOL SystemVars_IncrementAmitySquareStepCount(VarsFlags *varsFlags)
|
||||
{
|
||||
u16 v0 = TryGetVarValue(param0, (10 + SYSTEM_VARS_START));
|
||||
|
||||
if (v0 < 10000) {
|
||||
v0++;
|
||||
u16 stepCount = TryGetVarValue(varsFlags, VAR_AMITY_SQUARE_STEP_COUNT);
|
||||
if (stepCount < 10000) {
|
||||
stepCount++;
|
||||
} else {
|
||||
v0 = 10000;
|
||||
stepCount = 10000;
|
||||
}
|
||||
|
||||
return TrySetVarToValue(param0, (10 + SYSTEM_VARS_START), v0);
|
||||
return TrySetVarToValue(varsFlags, VAR_AMITY_SQUARE_STEP_COUNT, stepCount);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetNewsPressDeadline(VarsFlags *param0)
|
||||
u16 SystemVars_GetNewsPressDeadline(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (11 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_NEWS_PRESS_DEADLINE);
|
||||
}
|
||||
|
||||
BOOL SystemVars_SetNewsPressDeadline(VarsFlags *param0, u16 param1)
|
||||
BOOL SystemVars_SetNewsPressDeadline(VarsFlags *varsFlags, u16 deadlineInDays)
|
||||
{
|
||||
return TrySetVarToValue(param0, (11 + SYSTEM_VARS_START), param1);
|
||||
return TrySetVarToValue(varsFlags, VAR_NEWS_PRESS_DEADLINE, deadlineInDays);
|
||||
}
|
||||
|
||||
static void SetJubilifeLotteryTrainerID(VarsFlags *param0, u32 param1)
|
||||
static void SetJubilifeLotteryTrainerID(VarsFlags *varsFlags, u32 trainerID)
|
||||
{
|
||||
u16 v1 = (param1 >> 16) & 0xffff;
|
||||
u16 v0 = param1 & 0xffff;
|
||||
TrySetVarToValue(param0, (12 + SYSTEM_VARS_START), v0);
|
||||
TrySetVarToValue(param0, (12 + SYSTEM_VARS_START), v1);
|
||||
u16 hi = HI_HALF(trainerID);
|
||||
u16 lo = LO_HALF(trainerID);
|
||||
TrySetVarToValue(varsFlags, VAR_LOTTERY_TRAINER_ID_LOW_HALF, lo);
|
||||
TrySetVarToValue(varsFlags, VAR_LOTTERY_TRAINER_ID_LOW_HALF, hi);
|
||||
}
|
||||
|
||||
u32 SystemVars_GetJubilifeLotteryTrainerID(VarsFlags *param0)
|
||||
u32 SystemVars_GetJubilifeLotteryTrainerID(VarsFlags *varsFlags)
|
||||
{
|
||||
u16 v0 = TryGetVarValue(param0, (12 + SYSTEM_VARS_START));
|
||||
u16 v1 = TryGetVarValue(param0, (13 + SYSTEM_VARS_START));
|
||||
|
||||
return (v1 << 16) | v0;
|
||||
u16 lo = TryGetVarValue(varsFlags, VAR_LOTTERY_TRAINER_ID_LOW_HALF);
|
||||
u16 hi = TryGetVarValue(varsFlags, VAR_LOTTERY_TRAINER_ID_HIGH_HALF);
|
||||
return HI_AND_LO(hi, lo);
|
||||
}
|
||||
|
||||
void SystemVars_RandomizeJubilifeLotteryTrainerID(VarsFlags *param0)
|
||||
void SystemVars_RandomizeJubilifeLotteryTrainerID(VarsFlags *varsFlags)
|
||||
{
|
||||
u16 v0 = LCRNG_Next();
|
||||
u16 v1 = LCRNG_Next();
|
||||
|
||||
SetJubilifeLotteryTrainerID(param0, (v1 << 16) | v0);
|
||||
u16 loRand = LCRNG_Next();
|
||||
u16 hiRand = LCRNG_Next();
|
||||
SetJubilifeLotteryTrainerID(varsFlags, HI_AND_LO(hiRand, loRand));
|
||||
}
|
||||
|
||||
void SystemVars_SynchronizeJubilifeLotteryTrainerID(SaveData *param0, u16 param1)
|
||||
void SystemVars_SynchronizeJubilifeLotteryTrainerID(SaveData *saveData, u16 trainerID)
|
||||
{
|
||||
VarsFlags *v0 = SaveData_GetVarsFlags(param0);
|
||||
u32 v1 = RecordMixedRNG_GetRand(SaveData_GetRecordMixedRNG(param0)) * 1103515245L + 12345;
|
||||
|
||||
SetJubilifeLotteryTrainerID(v0, v1);
|
||||
VarsFlags *varsFlags = SaveData_GetVarsFlags(saveData);
|
||||
u32 recordMixedRand = RecordMixedRNG_GetRand(SaveData_GetRecordMixedRNG(saveData)) * 1103515245L + 12345;
|
||||
SetJubilifeLotteryTrainerID(varsFlags, recordMixedRand);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetDailyRandomLevel(VarsFlags *param0)
|
||||
u16 SystemVars_GetDailyRandomLevel(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (17 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_DAILY_RANDOM_LEVEL);
|
||||
}
|
||||
|
||||
static BOOL SetDailyRandomLevel(VarsFlags *param0, u16 param1)
|
||||
static BOOL SetDailyRandomLevel(VarsFlags *varsFlags, u16 level)
|
||||
{
|
||||
return TrySetVarToValue(param0, (17 + SYSTEM_VARS_START), param1);
|
||||
return TrySetVarToValue(varsFlags, VAR_DAILY_RANDOM_LEVEL, level);
|
||||
}
|
||||
|
||||
void SystemVars_SetDailyRandomLevel(SaveData *param0)
|
||||
void SystemVars_SetDailyRandomLevel(SaveData *saveData)
|
||||
{
|
||||
VarsFlags *v0 = SaveData_GetVarsFlags(param0);
|
||||
u32 v1 = (LCRNG_Next() % 98) + 2;
|
||||
SetDailyRandomLevel(v0, v1);
|
||||
VarsFlags *varsFlags = SaveData_GetVarsFlags(saveData);
|
||||
u32 level = (LCRNG_Next() % 98) + 2;
|
||||
SetDailyRandomLevel(varsFlags, level);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetSpiritombCounter(VarsFlags *param0)
|
||||
u16 SystemVars_GetSpiritombCounter(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (14 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_SPIRITOMB_COUNTER);
|
||||
}
|
||||
|
||||
BOOL SystemVars_SetSpiritombCounter(VarsFlags *param0, u16 param1)
|
||||
BOOL SystemVars_SetSpiritombCounter(VarsFlags *varsFlags, u16 value)
|
||||
{
|
||||
return TrySetVarToValue(param0, (14 + SYSTEM_VARS_START), param1);
|
||||
return TrySetVarToValue(varsFlags, VAR_SPIRITOMB_COUNTER, value);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetUndergroundTalkCounter(VarsFlags *param0)
|
||||
u16 SystemVars_GetUndergroundTalkCounter(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (25 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_UNDERGROUND_TALK_COUNTER);
|
||||
}
|
||||
|
||||
BOOL SystemVars_SetUndergroundTalkCounter(VarsFlags *param0, u16 param1)
|
||||
BOOL SystemVars_SetUndergroundTalkCounter(VarsFlags *varsFlags, u16 value)
|
||||
{
|
||||
return TrySetVarToValue(param0, (25 + SYSTEM_VARS_START), param1);
|
||||
return TrySetVarToValue(varsFlags, VAR_UNDERGROUND_TALK_COUNTER, value);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetConsecutiveBonusRoundWins(VarsFlags *param0)
|
||||
u16 SystemVars_GetConsecutiveBonusRoundWins(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (16 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_CONSECUTIVE_BONUS_ROUND_WINS);
|
||||
}
|
||||
|
||||
BOOL SystemVars_SetConsecutiveBonusRoundWins(VarsFlags *param0, u16 param1)
|
||||
BOOL SystemVars_SetConsecutiveBonusRoundWins(VarsFlags *varsFlags, u16 wins)
|
||||
{
|
||||
return TrySetVarToValue(param0, (16 + SYSTEM_VARS_START), param1);
|
||||
return TrySetVarToValue(varsFlags, VAR_CONSECUTIVE_BONUS_ROUND_WINS, wins);
|
||||
}
|
||||
|
||||
BOOL SystemVars_IncrementDepartmentStoreRegularCount(VarsFlags *param0)
|
||||
BOOL SystemVars_IncrementDepartmentStoreRegularCount(VarsFlags *varsFlags)
|
||||
{
|
||||
u16 v0 = TryGetVarValue(param0, (18 + SYSTEM_VARS_START));
|
||||
|
||||
if (v0 < 10000) {
|
||||
v0++;
|
||||
u16 counter = TryGetVarValue(varsFlags, VAR_DEPARTMENT_STORE_REGULAR_COUNTER);
|
||||
if (counter < 10000) {
|
||||
counter++;
|
||||
} else {
|
||||
v0 = 10000;
|
||||
counter = 10000;
|
||||
}
|
||||
|
||||
return TrySetVarToValue(param0, (18 + SYSTEM_VARS_START), v0);
|
||||
return TrySetVarToValue(varsFlags, VAR_DEPARTMENT_STORE_REGULAR_COUNTER, counter);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetDepartmentStoreRegularCount(VarsFlags *param0)
|
||||
u16 SystemVars_GetDepartmentStoreRegularCount(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (18 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_DEPARTMENT_STORE_REGULAR_COUNTER);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetUndergroundItemsGivenAway(VarsFlags *param0)
|
||||
u16 SystemVars_GetUndergroundItemsGivenAway(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (36 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_UNDERGROUND_ITEMS_GIVEN_AWAY);
|
||||
}
|
||||
|
||||
BOOL SystemVars_SetUndergroundItemsGivenAway(VarsFlags *param0, u16 param1)
|
||||
BOOL SystemVars_SetUndergroundItemsGivenAway(VarsFlags *varsFlags, u16 value)
|
||||
{
|
||||
return TrySetVarToValue(param0, (36 + SYSTEM_VARS_START), param1);
|
||||
return TrySetVarToValue(varsFlags, VAR_UNDERGROUND_ITEMS_GIVEN_AWAY, value);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetUndergroundFossilsUnearthed(VarsFlags *param0)
|
||||
u16 SystemVars_GetUndergroundFossilsUnearthed(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (23 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_UNDERGROUND_FOSSILS_UNEARTHED);
|
||||
}
|
||||
|
||||
BOOL SystemVars_SetUndergroundFossilsUnearthed(VarsFlags *param0, u16 param1)
|
||||
BOOL SystemVars_SetUndergroundFossilsUnearthed(VarsFlags *varsFlags, u16 value)
|
||||
{
|
||||
return TrySetVarToValue(param0, (23 + SYSTEM_VARS_START), param1);
|
||||
return TrySetVarToValue(varsFlags, VAR_UNDERGROUND_FOSSILS_UNEARTHED, value);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetUndergroundTrapsSet(VarsFlags *param0)
|
||||
u16 SystemVars_GetUndergroundTrapsSet(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (24 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_UNDERGROUND_TRAPS_SET);
|
||||
}
|
||||
|
||||
BOOL SystemVars_SetUndergroundTrapsSet(VarsFlags *param0, u16 param1)
|
||||
BOOL SystemVars_SetUndergroundTrapsSet(VarsFlags *varsFlags, u16 value)
|
||||
{
|
||||
return TrySetVarToValue(param0, (24 + SYSTEM_VARS_START), param1);
|
||||
return TrySetVarToValue(varsFlags, VAR_UNDERGROUND_TRAPS_SET, value);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetFriendshipStepCount(VarsFlags *param0)
|
||||
u16 SystemVars_GetFriendshipStepCount(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (26 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_FRIENDSHIP_INCREMENT_STEP_COUNTER);
|
||||
}
|
||||
|
||||
void SystemVars_SetFriendshipStepCount(VarsFlags *param0, u16 param1)
|
||||
void SystemVars_SetFriendshipStepCount(VarsFlags *varsFlags, u16 value)
|
||||
{
|
||||
TrySetVarToValue(param0, (26 + SYSTEM_VARS_START), param1);
|
||||
TrySetVarToValue(varsFlags, VAR_FRIENDSHIP_INCREMENT_STEP_COUNTER, value);
|
||||
}
|
||||
|
||||
void SystemVars_SetEternaGymFlowerClock(VarsFlags *param0, u16 param1)
|
||||
void SystemVars_SetEternaGymFlowerClock(VarsFlags *varsFlags, u16 state)
|
||||
{
|
||||
TrySetVarToValue(param0, (27 + SYSTEM_VARS_START), param1);
|
||||
TrySetVarToValue(varsFlags, VAR_ETERNA_GYM_FLOWER_CLOCK_STATE, state);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetEternaGymFlowerClock(VarsFlags *param0)
|
||||
u16 SystemVars_GetEternaGymFlowerClock(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (27 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_ETERNA_GYM_FLOWER_CLOCK_STATE);
|
||||
}
|
||||
|
||||
void SystemVars_SetTotalTurnsForLastBattle(VarsFlags *param0, u16 param1)
|
||||
void SystemVars_SetTotalTurnsForLastBattle(VarsFlags *varsFlags, u16 turns)
|
||||
{
|
||||
TrySetVarToValue(param0, (29 + SYSTEM_VARS_START), (param1 + 1));
|
||||
TrySetVarToValue(varsFlags, VAR_TOTAL_TURNS_LAST_BATTLE, turns + 1);
|
||||
}
|
||||
|
||||
static const u8 sVillaVisitorPercentChances[] = {
|
||||
@@ -419,141 +412,141 @@ static u8 CalcVillaVisitorIndex(VarsFlags *varsFlags)
|
||||
return rngPercent;
|
||||
}
|
||||
|
||||
void SystemVars_UpdateVillaVisitor(SaveData *param0)
|
||||
void SystemVars_UpdateVillaVisitor(SaveData *saveData)
|
||||
{
|
||||
VarsFlags *v1 = SaveData_GetVarsFlags(param0);
|
||||
FieldOverworldState *fieldState = SaveData_GetFieldOverworldState(param0);
|
||||
VarsFlags *varsFlags = SaveData_GetVarsFlags(saveData);
|
||||
FieldOverworldState *fieldState = SaveData_GetFieldOverworldState(saveData);
|
||||
Location *location = FieldOverworldState_GetPlayerLocation(fieldState);
|
||||
|
||||
if ((location->mapId != MAP_HEADER_RESORT_AREA) && (location->mapId != MAP_HEADER_VILLA)) {
|
||||
SystemFlag_ClearVillaVisitorInside(v1);
|
||||
SystemFlag_ClearVillaVisitorOutside(v1);
|
||||
InitVillaVisitor(v1, CalcVillaVisitorIndex(v1));
|
||||
if (location->mapId != MAP_HEADER_RESORT_AREA && location->mapId != MAP_HEADER_VILLA) {
|
||||
SystemFlag_ClearVillaVisitorInside(varsFlags);
|
||||
SystemFlag_ClearVillaVisitorOutside(varsFlags);
|
||||
InitVillaVisitor(varsFlags, CalcVillaVisitorIndex(varsFlags));
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
static void InitVillaVisitor(VarsFlags *param0, u16 param1)
|
||||
static void InitVillaVisitor(VarsFlags *varsFlags, u16 visitor)
|
||||
{
|
||||
TrySetVarToValue(param0, (30 + SYSTEM_VARS_START), param1);
|
||||
TrySetVarToValue(param0, (42 + SYSTEM_VARS_START), (LCRNG_Next() % 5));
|
||||
TrySetVarToValue(varsFlags, VAR_RESORT_VILLA_VISITOR, visitor);
|
||||
TrySetVarToValue(varsFlags, VAR_RESORT_VILLA_VISITOR_MESSAGE_NUM, LCRNG_Next() % 5);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetBattleFactoryPrintState(VarsFlags *param0)
|
||||
u16 SystemVars_GetBattleFactoryPrintState(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (32 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_BATTLE_FACTORY_PRINT_STATE);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetBattleHallPrintState(VarsFlags *param0)
|
||||
u16 SystemVars_GetBattleHallPrintState(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (33 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_BATTLE_HALL_PRINT_STATE);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetBattleCastlePrintState(VarsFlags *param0)
|
||||
u16 SystemVars_GetBattleCastlePrintState(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (34 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_BATTLE_CASTLE_PRINT_STATE);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetBattleArcadePrintState(VarsFlags *param0)
|
||||
u16 SystemVars_GetBattleArcadePrintState(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (35 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_BATTLE_ARCADE_PRINT_STATE);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetBattleTowerPrintState(VarsFlags *param0)
|
||||
u16 SystemVars_GetBattleTowerPrintState(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (31 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_BATTLE_TOWER_PRINT_STATE);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetDistortionWorldProgress(VarsFlags *param0)
|
||||
u16 SystemVars_GetDistortionWorldProgress(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (37 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_DISTORTION_WORLD_PROGRESS);
|
||||
}
|
||||
|
||||
void SystemVars_SetDistortionWorldProgress(VarsFlags *param0, u16 param1)
|
||||
void SystemVars_SetDistortionWorldProgress(VarsFlags *varsFlags, u16 state)
|
||||
{
|
||||
TrySetVarToValue(param0, (37 + SYSTEM_VARS_START), param1);
|
||||
TrySetVarToValue(varsFlags, VAR_DISTORTION_WORLD_PROGRESS, state);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetArceusEventState(VarsFlags *param0)
|
||||
u16 SystemVars_GetArceusEventState(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (38 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_ARCEUS_EVENT_STATE);
|
||||
}
|
||||
|
||||
void SystemVars_SetArceusEventState(VarsFlags *param0, u16 param1)
|
||||
void SystemVars_SetArceusEventState(VarsFlags *varsFlags, u16 state)
|
||||
{
|
||||
TrySetVarToValue(param0, (38 + SYSTEM_VARS_START), param1);
|
||||
TrySetVarToValue(varsFlags, VAR_ARCEUS_EVENT_STATE, state);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetShayminEventState(VarsFlags *param0)
|
||||
u16 SystemVars_GetShayminEventState(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (39 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_SHAYMIN_EVENT_STATE);
|
||||
}
|
||||
|
||||
void SystemVars_SetShayminEventState(VarsFlags *param0, u16 param1)
|
||||
void SystemVars_SetShayminEventState(VarsFlags *varsFlags, u16 state)
|
||||
{
|
||||
TrySetVarToValue(param0, (39 + SYSTEM_VARS_START), param1);
|
||||
TrySetVarToValue(varsFlags, VAR_SHAYMIN_EVENT_STATE, state);
|
||||
}
|
||||
|
||||
static void SetRoamingCresseliaState(VarsFlags *param0, u16 param1)
|
||||
static void SetRoamingCresseliaState(VarsFlags *varsFlags, u16 state)
|
||||
{
|
||||
TrySetVarToValue(param0, (40 + SYSTEM_VARS_START), param1);
|
||||
TrySetVarToValue(varsFlags, VAR_ROAMING_CRESSELIA_STATE, state);
|
||||
}
|
||||
|
||||
static void SetRoamingMespritState(VarsFlags *param0, u16 param1)
|
||||
static void SetRoamingMespritState(VarsFlags *varsFlags, u16 state)
|
||||
{
|
||||
TrySetVarToValue(param0, (41 + SYSTEM_VARS_START), param1);
|
||||
TrySetVarToValue(varsFlags, VAR_ROAMING_MESPRIT_STATE, state);
|
||||
}
|
||||
|
||||
static void SetRoamingMoltresState(VarsFlags *param0, u16 param1)
|
||||
static void SetRoamingMoltresState(VarsFlags *varsFlags, u16 state)
|
||||
{
|
||||
TrySetVarToValue(param0, (46 + SYSTEM_VARS_START), param1);
|
||||
TrySetVarToValue(varsFlags, VAR_ROAMING_MOLTRES_STATE, state);
|
||||
}
|
||||
|
||||
static void SetRoamingZapdosState(VarsFlags *param0, u16 param1)
|
||||
static void SetRoamingZapdosState(VarsFlags *varsFlags, u16 state)
|
||||
{
|
||||
TrySetVarToValue(param0, (47 + SYSTEM_VARS_START), param1);
|
||||
TrySetVarToValue(varsFlags, VAR_ROAMING_ZAPDOS_STATE, state);
|
||||
}
|
||||
|
||||
static void SetRoamingArticunoState(VarsFlags *param0, u16 param1)
|
||||
static void SetRoamingArticunoState(VarsFlags *varsFlags, u16 state)
|
||||
{
|
||||
TrySetVarToValue(param0, (48 + SYSTEM_VARS_START), param1);
|
||||
TrySetVarToValue(varsFlags, VAR_ROAMING_ARTICUNO_STATE, state);
|
||||
}
|
||||
|
||||
void SystemVars_SetRoamingSpeciesState(VarsFlags *param0, u16 param1, u16 param2)
|
||||
void SystemVars_SetRoamingSpeciesState(VarsFlags *varsFlags, u16 species, u16 state)
|
||||
{
|
||||
switch (param1) {
|
||||
case 481:
|
||||
SetRoamingMespritState(param0, param2);
|
||||
switch (species) {
|
||||
case SPECIES_MESPRIT:
|
||||
SetRoamingMespritState(varsFlags, state);
|
||||
break;
|
||||
case 488:
|
||||
SetRoamingCresseliaState(param0, param2);
|
||||
|
||||
case SPECIES_CRESSELIA:
|
||||
SetRoamingCresseliaState(varsFlags, state);
|
||||
break;
|
||||
case 146:
|
||||
SetRoamingMoltresState(param0, param2);
|
||||
|
||||
case SPECIES_MOLTRES:
|
||||
SetRoamingMoltresState(varsFlags, state);
|
||||
break;
|
||||
case 145:
|
||||
SetRoamingZapdosState(param0, param2);
|
||||
|
||||
case SPECIES_ZAPDOS:
|
||||
SetRoamingZapdosState(varsFlags, state);
|
||||
break;
|
||||
case 144:
|
||||
SetRoamingArticunoState(param0, param2);
|
||||
|
||||
case SPECIES_ARTICUNO:
|
||||
SetRoamingArticunoState(varsFlags, state);
|
||||
break;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
u16 SystemVars_GetDistortionWorldCyrusApperanceState(VarsFlags *param0)
|
||||
u16 SystemVars_GetDistortionWorldCyrusApperanceState(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (43 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_DISTORTION_WORLD_CYRUS_APPEARANCE);
|
||||
}
|
||||
|
||||
void SystemVars_SetDistortionWorldCyrusApperanceState(VarsFlags *param0, u16 param1)
|
||||
void SystemVars_SetDistortionWorldCyrusApperanceState(VarsFlags *varsFlags, u16 state)
|
||||
{
|
||||
TrySetVarToValue(param0, (43 + SYSTEM_VARS_START), param1);
|
||||
TrySetVarToValue(varsFlags, VAR_DISTORTION_WORLD_CYRUS_APPEARANCE, state);
|
||||
}
|
||||
|
||||
u16 SystemVars_GetWiFiFrontierCleared(VarsFlags *param0)
|
||||
u16 SystemVars_GetWiFiFrontierCleared(VarsFlags *varsFlags)
|
||||
{
|
||||
return TryGetVarValue(param0, (52 + SYSTEM_VARS_START));
|
||||
return TryGetVarValue(varsFlags, VAR_WIFI_FRONTIER_CLEARED);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user