initial secret base documentation (#868)

This commit is contained in:
scbroede 2026-01-02 13:20:27 -05:00 committed by GitHub
parent 8052d1c7cc
commit e7c9da4c9f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
67 changed files with 3465 additions and 3481 deletions

View File

@ -14,10 +14,10 @@ FADE_TYPE_UNK_12
FADE_TYPE_UNK_13
FADE_TYPE_UNK_14
FADE_TYPE_UNK_15
FADE_TYPE_UNK_16
FADE_TYPE_UNK_17
FADE_TYPE_UNK_18
FADE_TYPE_UNK_19
FADE_TYPE_CIRCLE_OUT
FADE_TYPE_CIRCLE_IN
FADE_TYPE_TOP_HALF_CIRCLE_OUT
FADE_TYPE_TOP_HALF_CIRCLE_IN
FADE_TYPE_UNK_20
FADE_TYPE_UNK_21
FADE_TYPE_UNK_22

View File

@ -124,10 +124,10 @@ int sub_02058D48(int netId);
int sub_02058D68(int netId);
int CommPlayer_GetXInFrontOfPlayer(int netId);
int CommPlayer_GetZInFrontOfPlayer(int netId);
int CommPlayer_GetXServerIfActive(int netId);
int CommPlayer_GetZServerIfActive(int netId);
int CommPlayer_GetXServer(int netId);
int CommPlayer_GetZServer(int netId);
int sub_02058EA0(int netId);
int sub_02058EC0(int netId);
int CommPlayer_GetXInFrontOfPlayerServer(int netId);
int CommPlayer_GetZInFrontOfPlayerServer(int netId);
int CommPlayer_Dir(int netId);
@ -153,7 +153,7 @@ void CommPlayer_SetDirClient(int netId, int dir);
int CommPlayer_DirClient(int netId);
void CommPlayerMan_PauseFieldSystemWithContextBit(int contextBit);
void CommPlayerMan_ResumeFieldSystemWithContextBit(int contextBit);
void sub_020594EC(void);
void CommPlayerMan_ClearPauseContextBits(void);
void CommPlayerMan_PauseFieldSystem(void);
void CommPlayerMan_ResumeFieldSystem(void);
void sub_02059524(void);

View File

@ -50,7 +50,7 @@ void sub_02036030(int unused0, int unused1, void *param2, void *unused3);
void sub_02036058(int unused0, int unused1, void *param2, void *unused3);
u16 CommSys_CurNetId(void);
BOOL CommSys_SendDataFixedSize(int cmd, const void *data);
BOOL Link_Message(int cmd);
BOOL CommSys_SendMessage(int cmd);
BOOL sub_020360E8(void);
BOOL CommSys_CheckError(void);
u16 sub_02036128(u16 param0);
@ -59,9 +59,9 @@ int CommType_MinPlayers(int param0);
void CommSys_SetAlone(BOOL param0);
BOOL CommSys_IsAlone(void);
void sub_0203619C(int param0, int param1, void *param2, void *param3);
void CommSys_Seed(MATHRandContext32 *param0);
BOOL sub_02036254(int param0);
BOOL sub_0203626C(int param0);
void CommSys_Seed(MATHRandContext32 *rand);
BOOL CommSys_IsCmdQueuedServer(int cmd);
BOOL CommSys_IsCmdQueued(int cmd);
BOOL sub_02036284(void);
BOOL sub_0203629C(void);
void CommSys_SetWifiConnected(BOOL param0);

View File

@ -64,12 +64,30 @@ enum MapPropModelID {
MAP_PROP_MODEL_BLUE_DOOR = 312,
// Model name: c3_door2
MAP_PROP_MODEL_IRON_DOOR_2 = 313,
// Model name: ug_table_l01
MAP_PROP_MODEL_SECRET_BASE_PC_NORMAL_FLAG = 316,
// Model name: ug_table_l02
MAP_PROP_MODEL_SECRET_BASE_PC_BRONZE_FLAG = 317,
// Model name: ug_table_l03
MAP_PROP_MODEL_SECRET_BASE_PC_SILVER_FLAG = 318,
// Model name: ug_table_l04
MAP_PROP_MODEL_SECRET_BASE_PC_GOLD_FLAG = 319,
// Model name: ug_table_l05
MAP_PROP_MODEL_SECRET_BASE_PC_PLATINUM_FLAG = 320,
// Model name: stair_pc_u02
MAP_PROP_MODEL_POKECENTER_STAIR_UP_RIGHT = 425,
// Model name: stair_pc_d02
MAP_PROP_MODEL_POKECENTER_STAIR_DOWN_RIGHT = 426,
// Model name: door_pc01
MAP_PROP_MODEL_POKECENTER_INSIDE_DOOR = 427,
// Model name: ug_hole_b
MAP_PROP_MODEL_SECRET_BASE_ENTRANCE_NORTH = 429,
// Model name: ug_hole_f
MAP_PROP_MODEL_SECRET_BASE_ENTRANCE_SOUTH = 430,
// Model name: ug_hole_l
MAP_PROP_MODEL_SECRET_BASE_ENTRANCE_WEST = 431,
// Model name: ug_hole_r
MAP_PROP_MODEL_SECRET_BASE_ENTRANCE_EAST = 432,
// Model name: t3_door1
MAP_PROP_MODEL_YELLOW_WOODEN_DOOR = 438,
// Model name: d3_door1

View File

@ -130,10 +130,10 @@
#define UG_GOOD_DRIFLOON_DOLL 126
#define UG_GOOD_HAPPINY_DOLL 127
#define UG_GOOD_PACHIRISU_DOLL 128
#define UG_GOOD_BASE_ENTRANCE_SOUTH 129
#define UG_GOOD_BASE_ENTRANCE_NORTH 130
#define UG_GOOD_BASE_ENTRANCE_EAST 131
#define UG_GOOD_BASE_ENTRANCE_WEST 132
#define UG_GOOD_BASE_ENTRANCE_NORTH 129
#define UG_GOOD_BASE_ENTRANCE_SOUTH 130
#define UG_GOOD_BASE_ENTRANCE_WEST 131
#define UG_GOOD_BASE_ENTRANCE_EAST 132
#define UG_GOOD_WIDE_SOFA 133
#define UG_GOOD_BONSAI 134
#define UG_GOOD_DAINTY_FLOWERS 135

View File

@ -1,8 +1,8 @@
#ifndef POKEPLATINUM_UNK_0205964C_H
#define POKEPLATINUM_UNK_0205964C_H
#include "struct_decls/struct_02029894_decl.h"
#include "struct_defs/struct_0205964C.h"
#include "struct_defs/underground.h"
#include "field/field_system_decl.h"
@ -40,7 +40,7 @@ void sub_02059D0C(int unused0, int unused1, void *param2, void *unused3);
BOOL sub_02059D2C(void);
void sub_02059EAC(int param0, int unused1, void *unused2, void *unused3);
u8 *sub_02059EBC(int param0, void *unused1, int unused2);
UnkStruct_02029894 *sub_0205A080(SaveData *saveData);
SecretBase *sub_0205A080(SaveData *saveData);
void sub_0205A0A0(void);
void sub_0205A0BC(void);

View File

@ -12,6 +12,8 @@
#define MAX_LOADED_MAP_PROPS 32
#define PROP_NONE 0xFF
typedef struct MapProp {
int modelID;
BOOL loaded;

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_OV23_02241F74_H
#define POKEPLATINUM_OV23_02241F74_H
#include "struct_decls/struct_02029894_decl.h"
#include "struct_defs/underground.h"
#include "field/field_system_decl.h"
#include "overlay023/underground_defs.h"
@ -51,8 +51,8 @@ UndergroundTextPrinter *CommManUnderground_GetMiscTextPrinter(void);
UndergroundTextPrinter *CommManUnderground_GetDecorateBaseTextPrinter(void);
UndergroundTextPrinter *CommManUnderground_GetItemNameTextPrinter(void);
void ov23_022421EC(void);
BOOL CommManUnderground_FormatStringWith2TrainerNames(TrainerInfo *trainerInfo1, TrainerInfo *trainerInfo2, int bankEntry, String *dest);
BOOL CommManUnderground_FormatStringWithTrainerName(TrainerInfo *trainerInfo, int index, int bankEntry, String *dest);
BOOL CommManUnderground_FormatCommonStringWith2TrainerNames(TrainerInfo *trainerInfo1, TrainerInfo *trainerInfo2, int bankEntry, String *dest);
BOOL CommManUnderground_FormatCommonStringWithTrainerName(TrainerInfo *trainerInfo, int index, int bankEntry, String *dest);
BOOL ov23_0224240C(int x, int z);
BOOL ov23_02242458(void);
void ov23_022425F8(int param0, int param1, void *param2, void *param3);
@ -73,7 +73,7 @@ void ov23_02242CB4(void);
void ov23_02242D08(void);
void ov23_02242D44(FieldSystem *fieldSystem);
BOOL ov23_02242D60(String *param0);
UnkStruct_02029894 *ov23_02242E10(SaveData *saveData);
SecretBase *ov23_02242E10(SaveData *saveData);
int ov23_02242E28(void);
int ov23_02242E40(void);
BOOL Underground_AreCoordinatesInSecretBase(int x, int z);

View File

@ -1,79 +0,0 @@
#ifndef POKEPLATINUM_OV23_0224B05C_H
#define POKEPLATINUM_OV23_0224B05C_H
#include "struct_decls/struct_02029894_decl.h"
#include "field/field_system_decl.h"
#include "overlay023/underground_defs.h"
#include "savedata.h"
#include "string_gf.h"
void ov23_0224B144(void *param0, FieldSystem *fieldSystem);
void ov23_0224B2C8(FieldSystem *fieldSystem);
void ov23_0224B430(void);
void ov23_0224B460(void);
void ov23_0224B4E4(void);
void ov23_0224B518(void);
void ov23_0224B598(void);
int ov23_0224B5C4(void);
void ov23_0224B5CC(int param0);
void ov23_0224B61C(int param0);
void ov23_0224B6AC(int param0, int param1, void *param2, void *param3);
void ov23_0224B700(int param0, int param1, void *param2, void *param3);
int ov23_0224B72C(void);
void ov23_0224B730(int param0, int param1, void *param2, void *param3);
int ov23_0224B798(void);
BOOL ov23_0224B8E0(int param0, int param1, int param2);
int ov23_0224C100(void);
void ov23_0224C104(int param0, int param1, void *param2, void *param3);
void ov23_0224C198(void);
void ov23_0224C1A4(int param0, int param1, void *param2, void *param3);
BOOL ov23_0224C1C8(int param0);
void ov23_0224C21C(void);
void ov23_0224C23C(int param0);
void ov23_0224C25C(int param0, int param1, void *param2, void *param3);
void ov23_0224C384(int param0, int param1, void *param2, void *param3);
int ov23_0224C41C(void);
BOOL ov23_0224C420(void);
void ov23_0224C434(void);
void ov23_0224C4CC(int param0, int param1, void *param2, void *param3);
int ov23_0224C584(void);
void ov23_0224CD68(void);
int ov23_0224CD7C(void);
void ov23_0224CD80(int param0, int param1, void *param2, void *param3);
void ov23_0224CF18(int param0, int param1, void *param2, void *param3);
BOOL ov23_0224D020(String *param0);
UnkStruct_02029894 *ov23_0224D130(SaveData *saveData);
int ov23_0224D150(void);
int ov23_0224D178(void);
BOOL ov23_0224D1A0(int param0, int param1);
int ov23_0224D39C(int param0);
void ov23_0224D3B0(void);
void ov23_0224D3BC(int param0);
void ov23_0224D3D0(int param0, int param1);
BOOL ov23_0224D454(int param0, Coordinates *param1);
void ov23_0224D4CC(int param0, int param1, void *param2, void *param3);
int ov23_0224D4FC(void);
void ov23_0224D500(int param0, int param1);
void ov23_0224D518(int param0, int param1);
void ov23_0224D530(int param0);
void ov23_0224D698(int param0, int param1, void *param2, void *param3);
void ov23_0224D6AC(int param0, int param1, void *param2, void *param3);
int ov23_0224D6F4(void);
BOOL ov23_0224D7C8(int param0);
BOOL ov23_0224D87C(int netID);
void Underground_SecretBaseRemovePlayer(int param0);
BOOL ov23_0224D9AC(int param0, BOOL param1);
void ov23_0224DA8C(void);
void ov23_0224DAB4(void);
void ov23_0224DAD0(int param0);
int ov23_0224DB48(void);
int ov23_0224DB64(void);
int ov23_0224DB84(void);
void ov23_0224DBA0(int param0, int param1);
void ov23_0224DBBC(int param0, int param1);
void ov23_0224DBD8(int param0, int param1);
void ov23_0224DBF4(BOOL param0);
#endif // POKEPLATINUM_OV23_0224B05C_H

View File

@ -0,0 +1,82 @@
#ifndef POKEPLATINUM_UNDERGROUND_SECRET_BASES_H
#define POKEPLATINUM_UNDERGROUND_SECRET_BASES_H
#include "struct_defs/underground.h"
#include "field/field_system_decl.h"
#include "overlay023/underground_defs.h"
#include "savedata.h"
#include "string_gf.h"
#define SECRET_BASE_WIDTH 32
#define SECRET_BASE_DEPTH 32
void SecretBasesEnv_Init(void *dest, FieldSystem *fieldSystem);
void SecretBases_LoadCurrentPlayerBase(FieldSystem *fieldSystem);
void SecretBases_DisableBaseEntranceGraphics(void);
void SecretBases_EnableBaseEntranceGraphics(void);
void SecretBasesEnv_Free(void);
void SecretBases_ResetAllBaseInfo(void);
void SecretBases_ClearAllBaseInfo(void);
int SecretBasesEnv_Size(void);
void SecretBases_ResetBaseEntranceData(int netID);
void SecretBases_RemoveEntrance(int netID);
void SecretBases_ProcessBaseTransitionPromptEvent(int unused0, int unused1, void *data, void *unused3);
void SecretBases_ProcessFailedBaseEnter(int unused0, int unused1, void *data, void *unused3);
int CommPacketSizeOf_BaseTransitionPromptEvent(void);
void SecretBases_ProcessBaseTransitionEvent(int netID, int unused1, void *data, void *unused3);
int CommPacketSizeOf_BaseTransitionEvent(void);
BOOL SecretBases_CheckForEnterExit(int netID, int x, int z);
int CommPacketSizeOf_BaseExitEvent(void);
void SecretBases_ProcessBaseExitEvent(int unused0, int unused1, void *data, void *unused3);
void SecretBases_RequestClearTransitioningStatus(void);
void SecretBases_ClearTransitioningStatus(int netID, int unused1, void *unused2, void *unused3);
BOOL SecretBases_IsPlayerMidBaseTransition(int netID);
void SecretBases_SendBaseInfo(void);
void SecretBases_SendEnteredBase(int baseOwnerNetID);
void SecretBases_ProcessBaseEnter(int unused0, int unused1, void *data, void *unused3);
void SecretBases_ProcessBaseInfo(int netID, int unused1, void *data, void *unused3);
int CommPacketSizeOf_SecretBaseInfo(void);
BOOL SecretBases_AreBaseEntranceLocationsReceived(void);
void SecretBases_ClearBaseEntranceLocationsReceived(void);
void SecretBases_ProcessBaseEntrancesBuffer(int unused0, int unused1, void *data, void *unused3);
int CommPacketSizeOf_BaseEntrancesBuffer(void);
void SecretBases_UseDiggerDrill(void);
int CommPacketSizeOf_SecretBaseCreateEvent(void);
void SecretBases_ProcessBaseCreateRequest(int netID, int unused1, void *data, void *unused3);
void SecretBases_ProcessBaseCreateEvent(int unused0, int unused1, void *data, void *unused3);
BOOL SecretBases_GetQueuedMessage(String *dest);
SecretBase *SecretBases_GetCurrentOccupiedBase(SaveData *saveData);
int SecretBases_GetBaseXCoordinate(void);
int SecretBases_GetBaseZCoordinate(void);
BOOL SecretBases_AreCoordinatesWalkable(int x, int z);
int SecretBases_PrintDecorateBaseMessage(int bankEntry);
void SecretBases_EraseDecorateBaseMessageBox(void);
void SecretBases_SetGoodNameForPrinter(int goodID);
void SecretBases_SetTwoDigitNumberWithIndexForPrinter(int num, int index);
BOOL SecretBases_CheckForInteractableGood(int netID, Coordinates *coordinates);
void SecretBases_ProcessGoodInteractionEvent(int unused0, int unused1, void *data, void *unused3);
int CommPacketSizeOf_GoodInteractionEvent(void);
void SecretBases_QueueObtainedFlagMessage(int netID, int flagOwnerNetID);
void SecretBases_QueueTookFlagMessage(int netID, int victimNetID);
void SecretBases_QueueTookBackFlagMessage(int netID);
void SecretBases_ProcessFlagRankUp(int netID, int unused1, void *data, void *unused3);
void SecretBases_ProcessFlagRankUpEvent(int unused0, int unused1, void *data, void *unused3);
int CommPacketSizeOf_FlagRankUpEvent(void);
BOOL SecretBases_CheckPlayerTriggeredTool(int netID);
BOOL SecretBases_ClearToolEffectFlag(int netID);
void SecretBases_HandleDisconnectedPlayers(int unused);
BOOL SecretBases_RemovePlayerFromBase(int netID, BOOL forceExit);
void SecretBases_AbortBaseEnterEarly(void);
void SecretBases_AbortBaseEnterLate(void);
void SecretBases_RemoveNewLinkFromBase(int netID);
int SecretBases_GetCurrentBaseReturnXCoord(void);
int SecretBases_GetCurrentBaseReturnZCoord(void);
int SecretBases_GetCurrentBaseReturnDir(void);
void SecretBases_SetBaseReturnXCoord(int netID, int x);
void SecretBases_SetBaseReturnZCoord(int netID, int z);
void SecretBases_SetBaseReturnDir(int netID, int dir);
void SecretBases_SetEntranceGraphicsEnabled(BOOL enabled);
#endif // POKEPLATINUM_UNDERGROUND_SECRET_BASES_H

View File

@ -7,13 +7,18 @@
#define MAX_GOODS_BAG_SLOTS 40
#define MAX_GOODS_PC_SLOTS 200
#define MAX_PLACED_GOODS 15
#define MAX_PLACED_GOODS 15
#define MAX_BASE_BOULDERS 16
#define MAX_BURIED_SPHERES 100
#define MAX_PLACED_TRAPS 16
#define MAX_SPAWNED_TRAPS 64
#define MAX_SPHERE_SIZE 99
#define PC_COORDINATE_X 15
#define PC_COORDINATE_Z 12
enum SphereTypes {
SPHERE_NONE = 0,
PRISM_SPHERE,

View File

@ -56,7 +56,7 @@ void UndergroundTextPrinter_SetTwoDigitNumberWithIndex(UndergroundTextPrinter *t
void UndergroundTextPrinter_SetNumber(UndergroundTextPrinter *textPrinter, int num);
void UndergroundTextPrinter_SetUndergroundItemName(UndergroundTextPrinter *textPrinter, int idx, int item);
void UndergroundTextPrinter_SetUndergroundTrapNameWithIndex(UndergroundTextPrinter *textPrinter, int idx, int trap);
void UndergroundTextPrinter_SetUndergroundGoodsNameWithIndex(UndergroundTextPrinter *textPrinter, int idx, int goods);
void UndergroundTextPrinter_SetGoodNameWithIndex(UndergroundTextPrinter *textPrinter, int idx, int goods);
void UndergroundTextPrinter_SetUndergroundItemNameWithArticleWithIndex(UndergroundTextPrinter *textPrinter, int idx, int item);
void UndergroundTextPrinter_SetUndergroundTrapNameWithArticle(UndergroundTextPrinter *textPrinter, int idx, int trap);
void UndergroundTextPrinter_CapitalizeArgAtIndex(UndergroundTextPrinter *textPrinter, int idx);

View File

@ -1,6 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_02029894_DECL_H
#define POKEPLATINUM_STRUCT_02029894_DECL_H
typedef struct UnkStruct_02029894_t UnkStruct_02029894;
#endif // POKEPLATINUM_STRUCT_02029894_DECL_H

View File

@ -1,18 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_02029894_H
#define POKEPLATINUM_STRUCT_02029894_H
#include "struct_defs/struct_02029894_sub1.h"
#include "struct_defs/struct_02029894_sub2.h"
#include "struct_defs/underground_record.h"
typedef struct UnkStruct_02029894_t {
UnkStruct_02029894_sub1 unk_00[15];
UnkStruct_02029894_sub2 unk_2D[16];
UndergroundRecord unk_50;
u16 unk_8C;
u16 unk_8E;
u8 unk_90;
u8 unk_91;
} UnkStruct_02029894;
#endif // POKEPLATINUM_STRUCT_02029894_H

View File

@ -1,10 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_02029894_SUB1_H
#define POKEPLATINUM_STRUCT_02029894_SUB1_H
typedef struct {
u8 unk_00;
u8 unk_01;
u8 unk_02;
} UnkStruct_02029894_sub1;
#endif // POKEPLATINUM_STRUCT_02029894_SUB1_H

View File

@ -1,9 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_02029894_SUB2_H
#define POKEPLATINUM_STRUCT_02029894_SUB2_H
typedef struct {
u8 unk_00;
u8 unk_01;
} UnkStruct_02029894_sub2;
#endif // POKEPLATINUM_STRUCT_02029894_SUB2_H

View File

@ -3,7 +3,7 @@
#include "constants/string.h"
#include "struct_defs/struct_02029894.h"
#include "struct_defs/underground_record.h"
#include "overlay023/underground_defs.h"
@ -11,8 +11,29 @@
#define MAX_CAPTURED_FLAG_RECORDS 5
typedef struct PlacedGood {
u8 x;
u8 z;
u8 goodID;
} PlacedGood;
typedef struct SecretBaseBoulder {
u8 x;
u8 z;
} SecretBaseBoulder;
typedef struct SecretBase {
PlacedGood placedGoods[MAX_PLACED_GOODS];
SecretBaseBoulder boulders[MAX_BASE_BOULDERS];
UndergroundRecord undergroundRecord;
u16 entranceX;
u16 entranceZ;
u8 entranceDir;
u8 active;
} SecretBase;
typedef struct Underground {
UnkStruct_02029894 unk_00;
SecretBase secretBase;
u32 randomSeed;
s32 unk_94;
u8 unk_98;

View File

@ -1,7 +1,6 @@
#ifndef POKEPLATINUM_UNK_0202854C_H
#define POKEPLATINUM_UNK_0202854C_H
#include "struct_decls/struct_02029894_decl.h"
#include "struct_defs/underground.h"
#include "struct_defs/underground_record.h"
@ -19,7 +18,7 @@ enum BaseFlagType {
};
int Underground_SaveSize(void);
int sub_02028554(void);
int SecretBase_Size(void);
int UndergroundRecord_Size(void);
UndergroundRecord *UndergroundRecord_Init(u32 heapID);
void Underground_Init(Underground *underground);
@ -43,7 +42,7 @@ void Underground_MoveGoodPC(Underground *underground, int origSlot, int slotToMo
int sub_02028ACC(Underground *underground, int param1, int param2);
BOOL Underground_IsGoodAtSlotPlacedInBase(Underground *underground, int slot);
void sub_02028B20(Underground *underground, int param1);
void sub_02028B34(Underground *underground);
void Underground_InitPlacedGoodSlots(Underground *underground);
int Underground_GetGoodsCountBag(Underground *underground);
int Underground_GetGoodAtSlotBag(Underground *underground, int slot);
int Underground_RemoveGoodAtSlotBag(Underground *underground, int slot);
@ -93,16 +92,16 @@ void Underground_SetPlateMined(Underground *underground, int miningItemID);
BOOL Underground_HasPlateNeverBeenMined(Underground *underground, int miningItemID);
void Underground_IncrementStepCount(Underground *underground);
int Underground_GetStepCount(Underground *underground);
void sub_020292C0(UnkStruct_02029894 *param0);
void sub_020292CC(UnkStruct_02029894 *param0);
void sub_02029300(UnkStruct_02029894 *param0);
void sub_02029308(UnkStruct_02029894 *param0, int param1, int param2, int param3, int param4);
void sub_02029364(UnkStruct_02029894 *param0, int param1, int param2, int param3);
int sub_020293B0(const UnkStruct_02029894 *param0, int param1);
int sub_020293FC(const UnkStruct_02029894 *param0, int param1);
int sub_0202942C(const UnkStruct_02029894 *param0, int param1);
int sub_GetMaxRemovableRocks(const UnkStruct_02029894 *param0);
int sub_GetMaxDisplayItemsCount(const UnkStruct_02029894 *param0);
void SecretBase_Init(SecretBase *secretBase);
void SecretBase_Clear(SecretBase *secretBase);
void SecretBase_SetInactive(SecretBase *secretBase);
void SecretBase_AddGoodAtIndex(SecretBase *secretBase, int index, int goodID, int x, int z);
void SecretBase_SetGoodCoordsAtIndex(SecretBase *secretBase, int index, int x, int z);
int SecretBase_GetGoodIDAtIndex(const SecretBase *secretBase, int index);
int SecretBase_GetGoodXCoordAtIndex(const SecretBase *secretBase, int index);
int SecretBase_GetGoodZCoordAtIndex(const SecretBase *secretBase, int index);
int SecretBase_GetUnremovableBoulderCount(const SecretBase *secretBase);
int SecretBase_GetPlacedGoodsLimit(const SecretBase *secretBase);
int UndergroundRecord_GetTrainerScore(const UndergroundRecord *undergroundRecord);
BOOL UndergroundRecord_HasPlatBaseFlag(const UndergroundRecord *undergroundRecord);
void UndergroundRecord_SetTrainerScore(UndergroundRecord *undergroundRecord, int param1);
@ -110,7 +109,7 @@ int UndergroundRecord_GetPeopleMet(const UndergroundRecord *undergroundRecord);
void UndergroundRecord_IncrementPeopleMet(UndergroundRecord *undergroundRecord, int unused);
int UndergroundRecord_GetNumGiftsGiven(const UndergroundRecord *undergroundRecord);
void UndergroundRecord_IncrementGiftsGiven(UndergroundRecord *undergroundRecord);
void UndergroundRecord_IncrementFlagsStolen(UndergroundRecord *param0);
void UndergroundRecord_IncrementFlagsStolen(UndergroundRecord *undergroundRecord);
enum BaseFlagType UndergroundRecord_GetFlagRank(const UndergroundRecord *undergroundRecord);
int UndergroundRecord_GetCapturedFlagCount(const UndergroundRecord *undergroundRecord);
void UndergroundRecord_IncrementCapturedFlagCount(UndergroundRecord *undergroundRecord);
@ -129,18 +128,18 @@ int UndergroundRecord_GetGiftsReceived(const UndergroundRecord *undergroundRecor
void UndergroundRecord_IncrementGiftsReceived(UndergroundRecord *undergroundRecord);
int UndergroundRecord_GetTimesFlagTaken(const UndergroundRecord *undergroundRecord);
void UndergroundRecord_IncrementTimesFlagTaken(UndergroundRecord *undergroundRecord);
int UndergroundRecord_GetFlagsRecovered(const UndergroundRecord *param0);
void UndergroundRecord_IncrementFlagsRecovered(UndergroundRecord *param0);
int sub_0202981C(const UndergroundRecord *param0);
void sub_02029824(UndergroundRecord *param0);
void sub_02029854(UnkStruct_02029894 *param0, int param1, int param2, int param3);
int sub_02029874(const UnkStruct_02029894 *param0);
int sub_0202987C(const UnkStruct_02029894 *param0);
int sub_02029884(const UnkStruct_02029894 *param0);
BOOL sub_0202988C(const UnkStruct_02029894 *param0);
UnkStruct_02029894 *sub_02029894(SaveData *saveData);
UndergroundRecord *SaveData_UndergroundRecord(SaveData *saveData);
UndergroundRecord *sub_020298AC(UnkStruct_02029894 *param0);
int UndergroundRecord_GetFlagsRecovered(const UndergroundRecord *undergroundRecord);
void UndergroundRecord_IncrementFlagsRecovered(UndergroundRecord *undergroundRecord);
int UndergroundRecord_GetTimesBaseMoved(const UndergroundRecord *undergroundRecord);
void UndergroundRecord_IncrementTimesBaseMoved(UndergroundRecord *undergroundRecord);
void SecretBase_SetEntrance(SecretBase *secretBase, int x, int z, int dir);
int SecretBase_GetEntranceXCoord(const SecretBase *secretBase);
int SecretBase_GetEntranceZCoord(const SecretBase *secretBase);
int SecretBase_GetEntranceDir(const SecretBase *secretBase);
BOOL SecretBase_IsActive(const SecretBase *secretBase);
SecretBase *SaveData_GetSecretBase(SaveData *saveData);
UndergroundRecord *SaveData_GetUndergroundRecord(SaveData *saveData);
UndergroundRecord *SecretBase_GetUndergroundRecord(SecretBase *secretBase);
Underground *SaveData_GetUnderground(SaveData *saveData);
#endif // POKEPLATINUM_UNK_0202854C_H

View File

@ -12,6 +12,6 @@ BOOL sub_02032574(CommQueueMan *param0, UnkStruct_0203233C *param1, BOOL param2)
void CommQueueMan_Init(CommQueueMan *param0, int param1, CommRing *param2);
void CommQueueMan_Reset(CommQueueMan *param0);
void CommQueueMan_Delete(CommQueueMan *param0);
BOOL CommQueue_CompareCmd(CommQueueMan *param0, int param1);
BOOL CommQueueMan_IsCmdInQueue(CommQueueMan *param0, int param1);
#endif // POKEPLATINUM_UNK_020322D8_H

View File

@ -1,6 +1,8 @@
#ifndef POKEPLATINUM_UNK_0205F180_H
#define POKEPLATINUM_UNK_0205F180_H
#include "generated/movement_actions.h"
#include "struct_decls/struct_0205E884_decl.h"
#include "struct_decls/struct_02061AB4_decl.h"
@ -23,7 +25,7 @@ int sub_0206140C(PlayerAvatar *playerAvatar);
int sub_02061434(PlayerAvatar *playerAvatar, int param1);
u32 sub_0206147C(PlayerAvatar *playerAvatar, u16 param1, u16 param2, int param3, int param4, int param5);
int sub_02061544(PlayerAvatar *playerAvatar);
void PlayerAvatar_SetAnimationCode(PlayerAvatar *playerAvatar, u32 param1, int param2);
void PlayerAvatar_SetAnimationCode(PlayerAvatar *playerAvatar, enum MovementAction movementAction, int param2);
u32 sub_0206156C(PlayerAvatar *playerAvatar, int param1);
void PlayerAvatar_MoveCoordsInDirection(PlayerAvatar *playerAvatar, int direction, int *x, int *z);
void PlayerAvatar_GetFacingTileCoords(PlayerAvatar *playerAvatar, int *x, int *z);

View File

@ -848,7 +848,7 @@ Overlay overlay23
Object main.nef.p/src_overlay023_underground_player_status.c.o
Object main.nef.p/src_overlay023_ov23_022499E4.c.o
Object main.nef.p/src_overlay023_underground_player.c.o
Object main.nef.p/src_overlay023_ov23_0224B05C.c.o
Object main.nef.p/src_overlay023_secret_bases.c.o
Object main.nef.p/src_overlay023_underground_player_talk.c.o
Object main.nef.p/src_overlay023_underground_menu.c.o
Object main.nef.p/src_overlay023_underground_pc.c.o

View File

@ -11,7 +11,7 @@
]
},
{
"id": "pl_msg_00000638_00001",
"id": "UndergroundCaptureFlag_Text_Dummy_00001",
"garbage": 32
},
{
@ -19,11 +19,11 @@
"en_US": "Discarded the Flag."
},
{
"id": "pl_msg_00000638_00003",
"id": "UndergroundCaptureFlag_Text_Dummy_00003",
"garbage": 18
},
{
"id": "pl_msg_00000638_00004",
"id": "UndergroundCaptureFlag_Text_Dummy_00004",
"garbage": 18
},
{
@ -75,7 +75,7 @@
"en_US": "Took back the Flag!"
},
{
"id": "pl_msg_00000638_00014",
"id": "UndergroundCaptureFlag_Text_FlagBecameBronze",
"en_US": [
"...\r",
"One Flag has been registered,\n",
@ -87,7 +87,7 @@
]
},
{
"id": "pl_msg_00000638_00015",
"id": "UndergroundCaptureFlag_Text_FlagBecameSilver",
"en_US": [
"...\r",
"Three Flags have been registered,\n",
@ -99,7 +99,7 @@
]
},
{
"id": "pl_msg_00000638_00016",
"id": "UndergroundCaptureFlag_Text_FlagBecameGold",
"en_US": [
"...\r",
"Ten Flags have been registered,\n",
@ -111,7 +111,7 @@
]
},
{
"id": "pl_msg_00000638_00017",
"id": "UndergroundCaptureFlag_Text_FlagBecamePlatinum",
"en_US": [
"...\r",
"Fifty Flags have been registered,\n",

View File

@ -212,37 +212,37 @@
"en_US": "OK, see you around!"
},
{
"id": "pl_msg_00000634_00033",
"id": "UndergroundCommon_Text_ItemWasUsed",
"en_US": "The {STRVAR_1 25, 3, 0} was used!"
},
{
"id": "pl_msg_00000634_00034",
"id": "UndergroundCommon_Text_DiscoveredCavern",
"en_US": "Discovered a small cavern!\r"
},
{
"id": "pl_msg_00000634_00035",
"id": "UndergroundCommon_Text_MakeBasePrompt",
"en_US": [
"Would you like to make your\n",
"Secret Base here?"
]
},
{
"id": "pl_msg_00000634_00036",
"id": "UndergroundCommon_Text_MoveBasePrompt",
"en_US": "Would you like to move here?"
},
{
"id": "pl_msg_00000634_00037",
"id": "UndergroundCommon_Text_LeaveEntranceOpenOrClose",
"en_US": [
"Leave the entrance open?\n",
"Or close it so you can decorate?"
]
},
{
"id": "pl_msg_00000634_00038",
"id": "UndergroundCommon_Text_LeaveDoorOpen",
"en_US": "Leave door open"
},
{
"id": "pl_msg_00000634_00039",
"id": "UndergroundCommon_Text_CloseAndDecorate",
"en_US": "Close and decorate"
},
{
@ -250,7 +250,7 @@
"garbage": 24
},
{
"id": "pl_msg_00000634_00041",
"id": "UndergroundCommon_Text_EnterOwnBasePrompt",
"en_US": [
"Its your own Secret Base.\n",
"Would you like to go in?"
@ -265,11 +265,11 @@
"garbage": 29
},
{
"id": "pl_msg_00000634_00044",
"id": "UndergroundCommon_Text_EnteredOwnBase",
"en_US": "You entered your own Secret Base."
},
{
"id": "pl_msg_00000634_00045",
"id": "UndergroundCommon_Text_DiscoveredCavernEnterPrompt",
"en_US": [
"Discovered a small cavern!\n",
"Would you like to go in?"
@ -280,14 +280,14 @@
"garbage": 13
},
{
"id": "pl_msg_00000634_00047",
"id": "UndergroundCommon_Text_OpenDoorAndExitBasePrompt",
"en_US": [
"Open the door and exit the\n",
"Secret Base?"
]
},
{
"id": "pl_msg_00000634_00048",
"id": "UndergroundCommon_Text_CommsWillBeLaunched",
"en_US": [
"DS Wireless Communications will be\n",
"launched."
@ -298,11 +298,11 @@
"garbage": 15
},
{
"id": "pl_msg_00000634_00050",
"id": "UndergroundCommon_Text_ExitBasePrompt",
"en_US": "Exit the Secret Base?"
},
{
"id": "pl_msg_00000634_00051",
"id": "UndergroundCommon_Text_EscapedToAvoidDanger",
"en_US": [
"Its an earthquake!\r",
"Escaped into the corridor\n",
@ -321,7 +321,7 @@
"garbage": 33
},
{
"id": "pl_msg_00000634_00054",
"id": "UndergroundCommon_Text_CantBeUsedHere",
"en_US": "That cant be used here!"
},
{
@ -329,11 +329,11 @@
"en_US": "That cant be placed there."
},
{
"id": "pl_msg_00000634_00056",
"id": "UndergroundCommon_Text_ClosedHole",
"en_US": "Closed up the hole."
},
{
"id": "pl_msg_00000634_00057",
"id": "UndergroundCommon_Text_CantMoveBaseSomeoneInside",
"en_US": [
"Someone is inside your Secret Base.\n",
"You may not move your base now."
@ -399,7 +399,7 @@
]
},
{
"id": "pl_msg_00000634_00068",
"id": "UndergroundCommon_Text_BlockedEntranceToDecorate",
"en_US": [
"Blocked the entrance to decorate\n",
"the Secret Base."
@ -437,7 +437,7 @@
]
},
{
"id": "pl_msg_00000634_00074",
"id": "UndergroundCommon_Text_CantDrillInBase",
"en_US": [
"You cant drill holes inside\n",
"a Secret Base!"
@ -536,7 +536,7 @@
]
},
{
"id": "pl_msg_00000634_00088",
"id": "UndergroundCommon_Text_WallCrumbledCantEnter",
"en_US": [
"...\r",
"The wall started to crumble.\n",
@ -610,7 +610,7 @@
"garbage": 12
},
{
"id": "pl_msg_00000634_00104",
"id": "UndergroundCommon_Text_PlayerEnteredPlayersSecretBase",
"en_US": [
"{STRVAR_1 3, 0, 0} entered\n",
"{STRVAR_1 3, 1, 0}s Secret Base."
@ -629,18 +629,18 @@
"garbage": 13
},
{
"id": "pl_msg_00000634_00108",
"id": "UndergroundCommon_Text_PlayerObtainedPlayersFlag",
"en_US": [
"{STRVAR_1 3, 0, 0} obtained\n",
"{STRVAR_1 3, 1, 0}s Flag!"
]
},
{
"id": "pl_msg_00000634_00109",
"id": "UndergroundCommon_Text_PlayerTookBackFlag",
"en_US": "{STRVAR_1 3, 0, 0} took back the Flag!"
},
{
"id": "pl_msg_00000634_00110",
"id": "UndergroundCommon_Text_PlayerTookPlayersFlag",
"en_US": [
"{STRVAR_1 3, 0, 0} took\n",
"{STRVAR_1 3, 1, 0}s Flag!"

View File

@ -55,70 +55,70 @@
"en_US": "{STRVAR_1 51, 0, 0}/{STRVAR_1 51, 1, 0}"
},
{
"id": "pl_msg_00000637_00011",
"id": "UndergroundDecorateBase_Text_GoodWasPlaced",
"en_US": "The {STRVAR_1 10, 0, 0} was placed."
},
{
"id": "pl_msg_00000637_00012",
"id": "UndergroundDecorateBase_Text_CantPlaceHere",
"en_US": "It cant be placed here."
},
{
"id": "pl_msg_00000637_00013",
"id": "UndergroundDecorateBase_Text_GoodReturnedToPC",
"en_US": [
"The {STRVAR_1 10, 0, 0} was\n",
"returned to the PC."
]
},
{
"id": "pl_msg_00000637_00014",
"id": "UndergroundDecorateBase_Text_BigBoulderRemoved",
"en_US": "The Big Boulder was removed."
},
{
"id": "pl_msg_00000637_00015",
"id": "UndergroundDecorateBase_Text_CantRemoveBigBoulder",
"en_US": "You cant remove a Big Boulder."
},
{
"id": "pl_msg_00000637_00016",
"id": "UndergroundDecorateBase_Text_CantMoveBigBoulder",
"en_US": "You cant move a Big Boulder."
},
{
"id": "pl_msg_00000637_00017",
"id": "UndergroundDecorateBase_Text_CanRemove1MoreBoulder",
"en_US": [
"You are able to remove {STRVAR_1 51, 0, 0} more\n",
"Big Boulder."
]
},
{
"id": "pl_msg_00000637_00018",
"id": "UndergroundDecorateBase_Text_CantRemoveMoreBoulders",
"en_US": "No more Big Boulders can be removed."
},
{
"id": "pl_msg_00000637_00019",
"id": "UndergroundDecorateBase_Text_NoGoodsInPC",
"en_US": [
"There are no decoration goods stored\n",
"on your PC."
]
},
{
"id": "pl_msg_00000637_00020",
"id": "UndergroundDecorateBase_Text_DisplayLimitReached",
"en_US": [
"No more decoration goods can be\n",
"displayed."
]
},
{
"id": "pl_msg_00000637_00021",
"id": "UndergroundDecorateBase_Text_GoodAlreadyDisplayed",
"en_US": [
"That decoration good is already out\n",
"on display."
]
},
{
"id": "pl_msg_00000637_00022",
"id": "UndergroundDecorateBase_Text_CantPutAwayPC",
"en_US": "The PC cannot be put away."
},
{
"id": "pl_msg_00000637_00023",
"id": "UndergroundDecorateBase_Text_CantMovePC",
"en_US": "The PC cannot be moved."
},
{
@ -126,7 +126,7 @@
"en_US": "Quit decorating."
},
{
"id": "pl_msg_00000637_00025",
"id": "UndergroundDecorateBase_Text_CanRemoveXMoreBoulders",
"en_US": [
"You are able to remove {STRVAR_1 51, 0, 0} more\n",
"Big Boulders."

View File

@ -160,7 +160,7 @@ BOOL TownMap_FadeInBothScreens(TownMapAppData *appData)
{
appData->dummy_14 = 0;
StartScreenFade(FADE_MAIN_THEN_SUB, FADE_TYPE_UNK_17, FADE_TYPE_UNK_37, COLOR_BLACK, 6, 1, appData->heapID);
StartScreenFade(FADE_MAIN_THEN_SUB, FADE_TYPE_CIRCLE_IN, FADE_TYPE_UNK_37, COLOR_BLACK, 6, 1, appData->heapID);
Sound_PlayEffect(SEQ_SE_DP_MEKURU);
ResetScreenMasterBrightness(DS_SCREEN_MAIN);
ResetScreenMasterBrightness(DS_SCREEN_SUB);
@ -173,7 +173,7 @@ BOOL TownMap_FadeOutBothScreens(TownMapAppData *appData)
{
appData->dummy_14 = 0;
StartScreenFade(FADE_SUB_THEN_MAIN, FADE_TYPE_UNK_16, FADE_TYPE_UNK_36, COLOR_BLACK, 6, 1, appData->heapID);
StartScreenFade(FADE_SUB_THEN_MAIN, FADE_TYPE_CIRCLE_OUT, FADE_TYPE_UNK_36, COLOR_BLACK, 6, 1, appData->heapID);
Sound_PlayEffect(SEQ_SE_DP_MEKURU2);
return FALSE;
}
@ -182,7 +182,7 @@ BOOL TownMap_FadeInTopScreen(TownMapAppData *appData)
{
appData->dummy_14 = 0;
StartScreenFade(FADE_MAIN_ONLY, FADE_TYPE_UNK_17, FADE_TYPE_UNK_17, COLOR_BLACK, 6, 1, appData->heapID);
StartScreenFade(FADE_MAIN_ONLY, FADE_TYPE_CIRCLE_IN, FADE_TYPE_CIRCLE_IN, COLOR_BLACK, 6, 1, appData->heapID);
Sound_PlayEffect(SEQ_SE_DP_MEKURU);
ResetScreenMasterBrightness(DS_SCREEN_MAIN);
@ -194,7 +194,7 @@ BOOL TownMap_FadeOutTopScreen(TownMapAppData *appData)
{
appData->dummy_14 = 0;
StartScreenFade(FADE_MAIN_ONLY, FADE_TYPE_UNK_16, FADE_TYPE_UNK_16, COLOR_BLACK, 6, 1, appData->heapID);
StartScreenFade(FADE_MAIN_ONLY, FADE_TYPE_CIRCLE_OUT, FADE_TYPE_CIRCLE_OUT, COLOR_BLACK, 6, 1, appData->heapID);
Sound_PlayEffect(SEQ_SE_DP_MEKURU2);
return FALSE;

View File

@ -4049,7 +4049,7 @@ static void BattleControllerPlayer_EndFight(BattleSystem *battleSys, BattleConte
}
if (battleType & BATTLE_TYPE_LINK) {
Link_Message(22);
CommSys_SendMessage(22);
}
battleCtx->command = BATTLE_CONTROL_END_WAIT;

View File

@ -22,7 +22,7 @@
#include "overlay023/ov23_0223E140.h"
#include "overlay023/ov23_02241F74.h"
#include "overlay023/ov23_022499E4.h"
#include "overlay023/ov23_0224B05C.h"
#include "overlay023/secret_bases.h"
#include "overlay023/underground_player.h"
#include "overlay023/underground_player_status.h"
#include "overlay023/underground_traps.h"
@ -499,7 +499,7 @@ static void Task_CommPlayerManagerRun(SysTask *task, void *data)
if (sCommPlayerManager->isUnderground) {
if (CommSys_CurNetId() == 0) {
if (NULL == CommInfo_TrainerInfo(netId)) {
ov23_0224B5CC(netId);
SecretBases_ResetBaseEntranceData(netId);
}
}
}
@ -512,7 +512,7 @@ static void sub_02057EF8(void *unused)
if (!CommSys_IsPlayerConnected(netId)) {
if (!(CommSys_IsAlone() && (netId == 0))) {
if ((CommSys_CurNetId() == 0) && (sCommPlayerManager->isUnderground)) {
Underground_SecretBaseRemovePlayer(netId);
SecretBases_HandleDisconnectedPlayers(netId);
}
}
}
@ -647,7 +647,7 @@ static BOOL CommPlayer_CheckCollision(int x, int z, int netIdTarget)
continue;
}
if (x == CommPlayer_GetXServer(netId) && z == CommPlayer_GetZServer(netId)) {
if (x == CommPlayer_GetXServerIfActive(netId) && z == CommPlayer_GetZServerIfActive(netId)) {
return TRUE;
}
}
@ -657,7 +657,7 @@ static BOOL CommPlayer_CheckCollision(int x, int z, int netIdTarget)
}
if (sCommPlayerManager->isUnderground) {
if (!ov23_0224D1A0(x, z)) {
if (!SecretBases_AreCoordinatesWalkable(x, z)) {
return TRUE;
}
}
@ -701,7 +701,7 @@ static void CommPlayer_Move(SysTask *unused0, void *unused1)
}
if (sCommPlayerManager->isUnderground) {
if (ov23_0224C1C8(netId)) {
if (SecretBases_IsPlayerMidBaseTransition(netId)) {
continue;
}
}
@ -717,7 +717,7 @@ static void CommPlayer_Move(SysTask *unused0, void *unused1)
}
if (!UndergroundPlayer_IsAffectedByTrap(netId)) {
if (ov23_0224D7C8(netId)) {
if (SecretBases_CheckPlayerTriggeredTool(netId)) {
continue;
}
}
@ -780,7 +780,7 @@ static void CommPlayer_Move(SysTask *unused0, void *unused1)
}
} else if (sCommPlayerManager->holeMovementsLeft[netId] != 0) {
continue;
} else if (sCommPlayerManager->isUnderground && (ov23_0224B8E0(netId, x, z) == 1)) {
} else if (sCommPlayerManager->isUnderground && (SecretBases_CheckForEnterExit(netId, x, z) == 1)) {
continue;
} else if (CommPlayer_CheckCollision(x, z, netId)) {
playerLocation->collisionFlag = 1;
@ -915,7 +915,7 @@ void CommPlayer_RecvLocationAndInit(int netId, int size, void *src, void *unused
static void sub_02058644(int netId)
{
Underground *underground = SaveData_GetUnderground(FieldSystem_GetSaveData(sCommPlayerManager->fieldSystem));
SaveData_UndergroundRecord(FieldSystem_GetSaveData(sCommPlayerManager->fieldSystem));
SaveData_GetUndergroundRecord(FieldSystem_GetSaveData(sCommPlayerManager->fieldSystem));
if (sCommPlayerManager->isUnderground) {
if (netId == CommSys_CurNetId()) {
@ -1122,8 +1122,8 @@ static BOOL CommPlayer_MoveSlide(int netId, int speed)
return TRUE;
}
int x = CommPlayer_GetXServer(netId);
int z = CommPlayer_GetZServer(netId);
int x = CommPlayer_GetXServerIfActive(netId);
int z = CommPlayer_GetZServerIfActive(netId);
x += MapObject_GetDxFromDir(sCommPlayerManager->slideDir[netId]);
z += MapObject_GetDzFromDir(sCommPlayerManager->slideDir[netId]);
@ -1313,7 +1313,7 @@ int CommPlayer_GetZInFrontOfPlayer(int netId)
return sCommPlayerManager->playerLocation[netId].z + MapObject_GetDzFromDir(sCommPlayerManager->playerLocation[netId].dir);
}
int CommPlayer_GetXServer(int netId)
int CommPlayer_GetXServerIfActive(int netId)
{
if (!sCommPlayerManager) {
return 0xffff;
@ -1326,7 +1326,7 @@ int CommPlayer_GetXServer(int netId)
return sCommPlayerManager->playerLocationServer[netId].x;
}
int CommPlayer_GetZServer(int netId)
int CommPlayer_GetZServerIfActive(int netId)
{
if (!sCommPlayerManager) {
return 0xffff;
@ -1339,7 +1339,7 @@ int CommPlayer_GetZServer(int netId)
return sCommPlayerManager->playerLocationServer[netId].z;
}
int sub_02058EA0(int netId)
int CommPlayer_GetXServer(int netId)
{
if (!sCommPlayerManager) {
return 0xffff;
@ -1348,7 +1348,7 @@ int sub_02058EA0(int netId)
return sCommPlayerManager->playerLocationServer[netId].x;
}
int sub_02058EC0(int netId)
int CommPlayer_GetZServer(int netId)
{
if (!sCommPlayerManager) {
return 0xffff;
@ -1359,7 +1359,7 @@ int sub_02058EC0(int netId)
int CommPlayer_GetXInFrontOfPlayerServer(int netId)
{
if (CommPlayer_GetXServer(netId) == 0xffff) {
if (CommPlayer_GetXServerIfActive(netId) == 0xffff) {
return 0xffff;
}
@ -1368,7 +1368,7 @@ int CommPlayer_GetXInFrontOfPlayerServer(int netId)
int CommPlayer_GetZInFrontOfPlayerServer(int netId)
{
if (CommPlayer_GetZServer(netId) == 0xffff) {
if (CommPlayer_GetZServerIfActive(netId) == 0xffff) {
return 0xffff;
}
@ -1540,7 +1540,7 @@ static void sub_020591A8(void)
}
for (netJd = 0; netJd < connectedPlayers; netJd++) {
if ((CommPlayer_GetXServer(netId) == v6[netJd].unk_00) && (CommPlayer_GetZServer(netId) == v6[netJd].unk_02)) {
if ((CommPlayer_GetXServerIfActive(netId) == v6[netJd].unk_00) && (CommPlayer_GetZServerIfActive(netId) == v6[netJd].unk_02)) {
sCommPlayerManager->unk_F2[netId] = 1;
CommSys_SendDataFixedSizeServer(95, &netId);
}
@ -1694,7 +1694,7 @@ void CommPlayerMan_ResumeFieldSystemWithContextBit(int contextBit)
}
}
void sub_020594EC(void)
void CommPlayerMan_ClearPauseContextBits(void)
{
sCommPlayerManager->pauseBits = 0;
}

View File

@ -225,7 +225,7 @@ BOOL CommInfo_ServerSendArray(void)
return FALSE;
}
if (!sub_02036254(5)) {
if (!CommSys_IsCmdQueuedServer(5)) {
for (netId = 0; netId < MAX_CONNECTED_PLAYERS; netId++) {
if (sCommInfo->infoState[netId] != INFO_STATE_EMPTY) {
sCommInfo->playerInfo[netId].netId = netId;

View File

@ -1752,7 +1752,7 @@ BOOL CommSys_SendDataFixedSize(int cmd, const void *data)
return CommSys_SendData(cmd, data, 0);
}
BOOL Link_Message(int cmd)
BOOL CommSys_SendMessage(int cmd)
{
return CommSys_SendData(cmd, NULL, 0);
}
@ -1837,14 +1837,14 @@ void CommSys_Seed(MATHRandContext32 *rand)
MATH_InitRand32(rand, seed);
}
BOOL sub_02036254(int param0)
BOOL CommSys_IsCmdQueuedServer(int cmd)
{
return CommQueue_CompareCmd(&sCommunicationSystem->commQueueManSendServer, param0);
return CommQueueMan_IsCmdInQueue(&sCommunicationSystem->commQueueManSendServer, cmd);
}
BOOL sub_0203626C(int param0)
BOOL CommSys_IsCmdQueued(int cmd)
{
return CommQueue_CompareCmd(&sCommunicationSystem->commQueueManSend, param0);
return CommQueueMan_IsCmdInQueue(&sCommunicationSystem->commQueueManSend, cmd);
}
BOOL sub_02036284(void)

View File

@ -6,8 +6,8 @@
#include "constants/graphics.h"
#include "constants/heap.h"
#include "struct_decls/struct_02029894_decl.h"
#include "struct_defs/struct_0205964C.h"
#include "struct_defs/underground.h"
#include "field/field_system.h"
#include "functypes/funcptr_020598EC.h"
@ -715,7 +715,7 @@ static void sub_0205A058(void)
FieldCommMan_SetTask(FieldCommMan_Delete, 0);
}
UnkStruct_02029894 *sub_0205A080(SaveData *saveData)
SecretBase *sub_0205A080(SaveData *saveData)
{
if (!sFieldCommMan || !sFieldCommMan->unk_41) {
return NULL;

View File

@ -20,7 +20,7 @@
#include "overlay006/ov6_02247100.h"
#include "overlay023/ov23_02248F1C.h"
#include "overlay023/ov23_022499E4.h"
#include "overlay023/ov23_0224B05C.h"
#include "overlay023/secret_bases.h"
#include "bg_window.h"
#include "brightness_controller.h"
@ -1244,7 +1244,7 @@ BOOL FieldTask_MapChangeToUnderground(FieldTask *task)
break;
case 12:
if (BrightnessController_IsTransitionComplete(BRIGHTNESS_SUB_SCREEN)) {
ov23_0224DBF4(1);
SecretBases_SetEntranceGraphicsEnabled(TRUE);
Heap_Free(mapChangeUndergroundData);
return 1;
}
@ -1262,7 +1262,7 @@ BOOL FieldTask_MapChangeFromUnderground(FieldTask *task)
switch (mapChangeUndergroundData->state) {
case 0:
ov23_0224DBF4(0);
SecretBases_SetEntranceGraphicsEnabled(FALSE);
ov23_02249A5C();
ov23_0224942C(fieldSystem->unk_6C);
BrightnessController_StartTransition(30, -16, 0, GX_BLEND_PLANEMASK_BG0, BRIGHTNESS_SUB_SCREEN);

View File

@ -2350,24 +2350,6 @@ static const Good sGoods[] = {
.natDexRequired = FALSE,
.ungiftable = TRUE,
},
[UG_GOOD_BASE_ENTRANCE_SOUTH] = {
.width = 1,
.depth = 1,
.collision = {
1, 0, 0,
0, 0, 0,
0, 0, 0,
},
.spherePrice = {
.sphereType = SPHERE_NONE,
.minSize = 0,
.maxSize = 0,
},
.moneyPrice = 0,
.interactMessageID = 0,
.natDexRequired = FALSE,
.ungiftable = FALSE,
},
[UG_GOOD_BASE_ENTRANCE_NORTH] = {
.width = 1,
.depth = 1,
@ -2386,7 +2368,7 @@ static const Good sGoods[] = {
.natDexRequired = FALSE,
.ungiftable = FALSE,
},
[UG_GOOD_BASE_ENTRANCE_EAST] = {
[UG_GOOD_BASE_ENTRANCE_SOUTH] = {
.width = 1,
.depth = 1,
.collision = {
@ -2422,6 +2404,24 @@ static const Good sGoods[] = {
.natDexRequired = FALSE,
.ungiftable = FALSE,
},
[UG_GOOD_BASE_ENTRANCE_EAST] = {
.width = 1,
.depth = 1,
.collision = {
1, 0, 0,
0, 0, 0,
0, 0, 0,
},
.spherePrice = {
.sphereType = SPHERE_NONE,
.minSize = 0,
.maxSize = 0,
},
.moneyPrice = 0,
.interactMessageID = 0,
.natDexRequired = FALSE,
.ungiftable = FALSE,
},
[UG_GOOD_WIDE_SOFA] = {
.width = 2,
.depth = 1,

View File

@ -648,7 +648,7 @@ pokeplatinum_c = files(
'overlay023/underground_player_status.c',
'overlay023/ov23_022499E4.c',
'overlay023/underground_player.c',
'overlay023/ov23_0224B05C.c',
'overlay023/secret_bases.c',
'overlay023/underground_player_talk.c',
'overlay023/underground_menu.c',
'overlay023/underground_pc.c',

View File

@ -483,7 +483,7 @@ void EncounterEffect_Cave_LowerLevel(SysTask *task, void *param)
break;
case 3:
HBlankSystem_Stop(encEffect->fieldSystem->unk_04->hBlankSystem);
StartScreenFade(FADE_MAIN_ONLY, FADE_TYPE_UNK_16, FADE_TYPE_UNK_16, COLOR_BLACK, 12, 1, HEAP_ID_FIELD1);
StartScreenFade(FADE_MAIN_ONLY, FADE_TYPE_CIRCLE_OUT, FADE_TYPE_CIRCLE_OUT, COLOR_BLACK, 12, 1, HEAP_ID_FIELD1);
caveEffect->camera = encEffect->fieldSystem->camera;
distance = Camera_GetDistance(caveEffect->camera);
@ -541,7 +541,7 @@ void EncounterEffect_Cave_HigherLevel(SysTask *task, void *param)
break;
case 3:
HBlankSystem_Stop(encEffect->fieldSystem->unk_04->hBlankSystem);
StartScreenFade(FADE_MAIN_ONLY, FADE_TYPE_UNK_16, FADE_TYPE_UNK_16, COLOR_BLACK, 12, 1, HEAP_ID_FIELD1);
StartScreenFade(FADE_MAIN_ONLY, FADE_TYPE_CIRCLE_OUT, FADE_TYPE_CIRCLE_OUT, COLOR_BLACK, 12, 1, HEAP_ID_FIELD1);
caveEffect->camera = encEffect->fieldSystem->camera;
distance = Camera_GetDistance(caveEffect->camera);
@ -1439,7 +1439,7 @@ void EncounterEffect_Trainer_Cave_LowerLevel(SysTask *param0, void *param1)
v3 = Camera_GetDistance(v1->camera);
QuadraticInterpolationTaskFX32_Init(&v1->unk_238, v3, v3 + (-FX32_CONST(1000)), FX32_CONST(10), 8);
StartScreenFade(FADE_MAIN_ONLY, FADE_TYPE_UNK_18, FADE_TYPE_BRIGHTNESS_OUT, COLOR_BLACK, 8, 1, HEAP_ID_FIELD1);
StartScreenFade(FADE_MAIN_ONLY, FADE_TYPE_TOP_HALF_CIRCLE_OUT, FADE_TYPE_BRIGHTNESS_OUT, COLOR_BLACK, 8, 1, HEAP_ID_FIELD1);
v0->state++;
break;
@ -1777,7 +1777,7 @@ void EncounterEffect_Frontier(SysTask *param0, void *param1)
}
HBlankSystem_Stop(v0->fieldSystem->unk_04->hBlankSystem);
StartScreenFade(FADE_MAIN_ONLY, FADE_TYPE_UNK_16, FADE_TYPE_BRIGHTNESS_OUT, COLOR_BLACK, 6, 1, HEAP_ID_FIELD1);
StartScreenFade(FADE_MAIN_ONLY, FADE_TYPE_CIRCLE_OUT, FADE_TYPE_BRIGHTNESS_OUT, COLOR_BLACK, 6, 1, HEAP_ID_FIELD1);
v0->state++;
break;

View File

@ -3,7 +3,7 @@
#include <nitro.h>
#include <string.h>
#include "struct_decls/struct_02029894_decl.h"
#include "struct_defs/underground.h"
#include "field/field_system.h"
#include "overlay005/area_data.h"
@ -18,7 +18,7 @@ void ov5_021F0824(FieldSystem *fieldSystem)
{
int v0;
int v1;
UnkStruct_02029894 *v2;
SecretBase *v2;
int v3, v4;
int v5, v6;
int v7, v8;
@ -35,13 +35,13 @@ void ov5_021F0824(FieldSystem *fieldSystem)
v4 = ov23_02242E40();
for (v0 = 0; v0 < 32; v0++) {
v1 = sub_020293B0(v2, v0);
v1 = SecretBase_GetGoodIDAtIndex(v2, v0);
v7 = Good_GetWidth(v1);
v8 = Good_GetDepth(v1);
if (v1 != 0) {
v5 = sub_020293FC(v2, v0);
v6 = sub_0202942C(v2, v0);
v5 = SecretBase_GetGoodXCoordAtIndex(v2, v0);
v6 = SecretBase_GetGoodZCoordAtIndex(v2, v0);
v9.x = v5 * (FX32_ONE * 16);
v9.z = v6 * (FX32_ONE * 16);

View File

@ -255,7 +255,7 @@ int ov17_0223CDDC(ApplicationManager *appMan, int *param1)
} else if ((v1 == 3) && (v0->unk_F14 == 1)) {
*param1 = 2;
MI_CpuClear8(&v0->unk_F0C, sizeof(UnkStruct_ov17_0223D60C));
StartScreenFade(FADE_SUB_THEN_MAIN, FADE_TYPE_UNK_16, FADE_TYPE_UNK_36, COLOR_BLACK, 6, 1, HEAP_ID_22);
StartScreenFade(FADE_SUB_THEN_MAIN, FADE_TYPE_CIRCLE_OUT, FADE_TYPE_UNK_36, COLOR_BLACK, 6, 1, HEAP_ID_22);
break;
}
}
@ -266,7 +266,7 @@ int ov17_0223CDDC(ApplicationManager *appMan, int *param1)
if ((v0->unk_F14 == 1) && (ov17_0224F3D0(&v0->unk_4F8) == 0) && (sub_02094EDC(v0->unk_00) == 0)) {
*param1 = 2;
MI_CpuClear8(&v0->unk_F0C, sizeof(UnkStruct_ov17_0223D60C));
StartScreenFade(FADE_SUB_THEN_MAIN, FADE_TYPE_UNK_16, FADE_TYPE_UNK_36, COLOR_BLACK, 6, 1, HEAP_ID_22);
StartScreenFade(FADE_SUB_THEN_MAIN, FADE_TYPE_CIRCLE_OUT, FADE_TYPE_UNK_36, COLOR_BLACK, 6, 1, HEAP_ID_22);
}
break;
case 2:

View File

@ -311,7 +311,7 @@ int ov17_0223DAD0(ApplicationManager *appMan, int *param1)
ov17_0224B59C(v0);
sub_02039734();
StartScreenFade(FADE_MAIN_THEN_SUB, FADE_TYPE_UNK_17, FADE_TYPE_UNK_37, COLOR_BLACK, 6, 1, HEAP_ID_23);
StartScreenFade(FADE_MAIN_THEN_SUB, FADE_TYPE_CIRCLE_IN, FADE_TYPE_UNK_37, COLOR_BLACK, 6, 1, HEAP_ID_23);
v0->unk_04 = SysTask_Start(ov17_0223E1FC, v0, 80000);
v0->unk_1098 = 1;

View File

@ -549,7 +549,7 @@ int ov22_022562EC(ApplicationManager *appMan, int *param1)
(*param1)++;
break;
case 11:
StartScreenFade(FADE_MAIN_THEN_SUB, FADE_TYPE_UNK_17, FADE_TYPE_UNK_19, COLOR_BLACK, 6, 1, HEAP_ID_13);
StartScreenFade(FADE_MAIN_THEN_SUB, FADE_TYPE_CIRCLE_IN, FADE_TYPE_TOP_HALF_CIRCLE_IN, COLOR_BLACK, 6, 1, HEAP_ID_13);
(*param1)++;
break;
case 12:

View File

@ -15,7 +15,7 @@
#include "overlay005/hblank_system.h"
#include "overlay023/ov23_02241F74.h"
#include "overlay023/ov23_02248F1C.h"
#include "overlay023/ov23_0224B05C.h"
#include "overlay023/secret_bases.h"
#include "overlay023/underground_menu.h"
#include "overlay023/underground_player.h"
#include "overlay023/underground_spheres.h"
@ -1382,15 +1382,15 @@ static void ov23_0223F118(SysTask *param0, void *param1)
switch (v0->state) {
case 0:
ov23_0224DBF4(0);
SecretBases_SetEntranceGraphicsEnabled(0);
UndergroundSpheres_DisableBuriedSphereSparkles();
CommPlayerMan_Reset();
ov23_0224B430();
SecretBases_DisableBaseEntranceGraphics();
(v0->state)++;
break;
case 1:
ov23_0224942C(fieldSystem->unk_6C);
StartScreenFade(FADE_SUB_THEN_MAIN, FADE_TYPE_UNK_16, FADE_TYPE_UNK_18, COLOR_BLACK, 6, 1, HEAP_ID_FIELD1);
StartScreenFade(FADE_SUB_THEN_MAIN, FADE_TYPE_CIRCLE_OUT, FADE_TYPE_TOP_HALF_CIRCLE_OUT, COLOR_BLACK, 6, 1, HEAP_ID_FIELD1);
(v0->state)++;
break;
case 2:
@ -1417,7 +1417,7 @@ static void ov23_0223F118(SysTask *param0, void *param1)
break;
case 6:
sub_02039734();
StartScreenFade(FADE_MAIN_ONLY, FADE_TYPE_UNK_17, FADE_TYPE_UNK_17, COLOR_BLACK, 6, 1, HEAP_ID_MINING);
StartScreenFade(FADE_MAIN_ONLY, FADE_TYPE_CIRCLE_IN, FADE_TYPE_CIRCLE_IN, COLOR_BLACK, 6, 1, HEAP_ID_MINING);
GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG0, 1);
GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG1, 1);
GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 1);
@ -1532,7 +1532,7 @@ static void ov23_0223F118(SysTask *param0, void *param1)
case 18:
SpriteList_Update(Unk_ov23_02257740->spriteList);
UndergroundTextPrinter_EraseMessageBoxWindow(CommManUnderground_GetCommonTextPrinter());
StartScreenFade(FADE_MAIN_ONLY, FADE_TYPE_UNK_16, FADE_TYPE_UNK_16, COLOR_BLACK, 6, 1, HEAP_ID_MINING);
StartScreenFade(FADE_MAIN_ONLY, FADE_TYPE_CIRCLE_OUT, FADE_TYPE_CIRCLE_OUT, COLOR_BLACK, 6, 1, HEAP_ID_MINING);
(v0->state)++;
break;
case 19:
@ -1551,7 +1551,7 @@ static void ov23_0223F118(SysTask *param0, void *param1)
sub_02039734();
CommPlayerMan_PauseFieldSystem();
HBlankSystem_Stop(v0->fieldSystem->unk_04->hBlankSystem);
StartScreenFade(FADE_MAIN_THEN_SUB, FADE_TYPE_UNK_17, FADE_TYPE_UNK_19, COLOR_BLACK, 6, 1, HEAP_ID_FIELD1);
StartScreenFade(FADE_MAIN_THEN_SUB, FADE_TYPE_CIRCLE_IN, FADE_TYPE_TOP_HALF_CIRCLE_IN, COLOR_BLACK, 6, 1, HEAP_ID_FIELD1);
(v0->state)++;
break;
}
@ -1567,7 +1567,7 @@ static void ov23_0223F118(SysTask *param0, void *param1)
LoadStandardWindowGraphics(v0->fieldSystem->bgConfig, 3, 1024 - (18 + 12) - 9, 11, 2, HEAP_ID_FIELD1);
CommPlayerMan_Restart();
ov23_0224B460();
SecretBases_EnableBaseEntranceGraphics();
UndergroundSpheres_EnableBuriedSphereSparkles();
CommSys_SendDataFixedSize(67, &v0->unk_50);
@ -1578,7 +1578,7 @@ static void ov23_0223F118(SysTask *param0, void *param1)
Heap_Free(v0);
SysTask_Done(param0);
ov23_0224DBF4(1);
SecretBases_SetEntranceGraphicsEnabled(1);
}
break;
case 22:
@ -2470,7 +2470,7 @@ static int Mining_GenerateSizeOfMinedSphere(int itemID)
static void Mining_AddItem(int itemID, int sphereSize)
{
int id = itemID;
UndergroundRecord *unused = SaveData_UndergroundRecord(FieldSystem_GetSaveData(Unk_ov23_02257740->fieldSystem));
UndergroundRecord *unused = SaveData_GetUndergroundRecord(FieldSystem_GetSaveData(Unk_ov23_02257740->fieldSystem));
Underground *underground = SaveData_GetUnderground(FieldSystem_GetSaveData(Unk_ov23_02257740->fieldSystem));
if (UndergroundSpheres_IsMiningItemSphere(id)) {
@ -2563,7 +2563,7 @@ static BOOL Mining_PrintNextDugUpItem(UnkStruct_ov23_0223EE80 *param0)
static BOOL Mining_ProcessNextDugUpItem(UnkStruct_ov23_0223EE80 *param0)
{
int i, itemID;
UndergroundRecord *undergroundRecord = SaveData_UndergroundRecord(Unk_ov23_02257740->fieldSystem->saveData);
UndergroundRecord *undergroundRecord = SaveData_GetUndergroundRecord(Unk_ov23_02257740->fieldSystem->saveData);
Underground *unused = SaveData_GetUnderground(Unk_ov23_02257740->fieldSystem->saveData);
for (i = 0; i < param0->itemCount; i++) {
@ -2913,7 +2913,7 @@ void ov23_022412F0(void)
v0 = Heap_AllocAtEnd(HEAP_ID_FIELD2, sizeof(UnkStruct_ov23_022412CC));
MI_CpuFill8(v0, 0, sizeof(UnkStruct_ov23_022412CC));
Link_Message(71);
CommSys_SendMessage(71);
v0->unk_4E4 = 250 / 3 - 10;
@ -3032,7 +3032,7 @@ static void ov23_022414D4(void)
continue;
}
v2 = ov23_0223E8CC(CommPlayer_GetXServer(v1), CommPlayer_GetZServer(v1));
v2 = ov23_0223E8CC(CommPlayer_GetXServerIfActive(v1), CommPlayer_GetZServerIfActive(v1));
if (v2 != -1) {
v0 = &Unk_ov23_02257740->unk_26C[v2];
@ -3073,7 +3073,7 @@ BOOL ov23_022415B8(String *param0)
v1 = CommInfo_TrainerInfo(v0);
Unk_ov23_02257740->unk_908[v0] = 0;
if (CommManUnderground_FormatStringWithTrainerName(v1, 0, 105, param0)) {
if (CommManUnderground_FormatCommonStringWithTrainerName(v1, 0, 105, param0)) {
return 1;
}
}

View File

@ -5,7 +5,6 @@
#include "constants/map_object.h"
#include "struct_decls/struct_02029894_decl.h"
#include "struct_decls/struct_02061AB4_decl.h"
#include "struct_defs/underground.h"
@ -13,9 +12,9 @@
#include "overlay005/land_data.h"
#include "overlay005/ov5_021EAFA4.h"
#include "overlay023/ov23_0223E140.h"
#include "overlay023/ov23_0224B05C.h"
#include "overlay023/ov23_022521F0.h"
#include "overlay023/ov23_02253598.h"
#include "overlay023/secret_bases.h"
#include "overlay023/struct_ov23_02241A80.h"
#include "overlay023/struct_ov23_02241A88.h"
#include "overlay023/struct_ov23_02253598_decl.h"
@ -210,7 +209,7 @@ void ov23_022421EC(void)
UndergroundTextPrinter_RemovePrinter(sCommManUnderground->itemNameTextPrinter);
}
BOOL CommManUnderground_FormatStringWith2TrainerNames(TrainerInfo *trainerInfo1, TrainerInfo *trainerInfo2, int bankEntry, String *dest)
BOOL CommManUnderground_FormatCommonStringWith2TrainerNames(TrainerInfo *trainerInfo1, TrainerInfo *trainerInfo2, int bankEntry, String *dest)
{
if (trainerInfo1 && trainerInfo2) {
StringTemplate *template = StringTemplate_Default(HEAP_ID_FIELD1);
@ -229,7 +228,7 @@ BOOL CommManUnderground_FormatStringWith2TrainerNames(TrainerInfo *trainerInfo1,
return FALSE;
}
BOOL CommManUnderground_FormatStringWithTrainerName(TrainerInfo *trainerInfo, int index, int bankEntry, String *dest)
BOOL CommManUnderground_FormatCommonStringWithTrainerName(TrainerInfo *trainerInfo, int index, int bankEntry, String *dest)
{
if (trainerInfo) {
StringTemplate *template = StringTemplate_Default(HEAP_ID_FIELD1);
@ -264,7 +263,7 @@ static BOOL ov23_02242308(String *param0)
v3 = CommInfo_TrainerInfo(i);
CommInfo_SetReceiveEnd(i);
if (CommManUnderground_FormatStringWithTrainerName(v3, 1, 91, param0)) {
if (CommManUnderground_FormatCommonStringWithTrainerName(v3, 1, 91, param0)) {
return 1;
}
}
@ -275,7 +274,7 @@ static BOOL ov23_02242308(String *param0)
sCommManUnderground->unk_C2[i] = 0xff;
if (CommManUnderground_FormatStringWith2TrainerNames(v3, v4, 111, param0)) {
if (CommManUnderground_FormatCommonStringWith2TrainerNames(v3, v4, 111, param0)) {
return 1;
}
}
@ -284,7 +283,7 @@ static BOOL ov23_02242308(String *param0)
v3 = CommInfo_TrainerInfo(i);
sCommManUnderground->unk_D2[i] = 0xff;
if (CommManUnderground_FormatStringWithTrainerName(v3, 0, 112, param0)) {
if (CommManUnderground_FormatCommonStringWithTrainerName(v3, 0, 112, param0)) {
return 1;
}
}
@ -542,7 +541,7 @@ void Underground_InitCoordinatesOrderingState(int orderedArrayLength, Coordinate
void ov23_022427F8(void)
{
if (0 == CommPlayer_GetMovementTimer(CommSys_CurNetId())) {
Link_Message(27);
CommSys_SendMessage(27);
sub_0203572C();
}
}
@ -604,7 +603,7 @@ void ov23_022428D8(int param0, int param1, void *param2, void *param3)
v2.x = CommPlayer_GetXInFrontOfPlayerServer(param0);
v2.z = CommPlayer_GetZInFrontOfPlayerServer(param0);
if ((CommPlayer_GetXServer(param0) == 0xffff) && (CommPlayer_GetZServer(param0) == 0xffff)) {
if ((CommPlayer_GetXServerIfActive(param0) == 0xffff) && (CommPlayer_GetZServerIfActive(param0) == 0xffff)) {
return;
}
@ -619,7 +618,7 @@ void ov23_022428D8(int param0, int param1, void *param2, void *param3)
v3 = CommPlayerMan_GetLinkNetIDAtLocation(v2.x, v2.z);
if (v3 != NETID_NONE) {
if (ov23_0224C1C8(v3)) {
if (SecretBases_IsPlayerMidBaseTransition(v3)) {
return;
} else if (Mining_IsPlayerMining(v3)) {
v0.result = TALK_RESULT_MINING;
@ -682,7 +681,7 @@ void ov23_022428D8(int param0, int param1, void *param2, void *param3)
return;
}
if (ov23_0224D454(param0, &v2)) {
if (SecretBases_CheckForInteractableGood(param0, &v2)) {
CommPlayerMan_SetMovementEnabled(param0, 0);
return;
}
@ -717,7 +716,7 @@ void ov23_02242B14(void)
if (CommSys_CurNetId() == 0) {
for (i = 0; i < (7 + 1); i++) {
if ((NULL != CommInfo_TrainerInfo(i)) && !sCommManUnderground->unk_135[i]) {
ov23_0224B5CC(i);
SecretBases_ResetBaseEntranceData(i);
}
if (CommInfo_TrainerInfo(i)) {
@ -761,8 +760,8 @@ void ov23_02242BC0(FieldSystem *fieldSystem)
v0 = Heap_Alloc(HEAP_ID_COMMUNICATION, TrapsEnv_Size());
TrapsEnv_Init(v0, fieldSystem);
v0 = Heap_Alloc(HEAP_ID_COMMUNICATION, ov23_0224B5C4());
ov23_0224B144(v0, fieldSystem);
v0 = Heap_Alloc(HEAP_ID_COMMUNICATION, SecretBasesEnv_Size());
SecretBasesEnv_Init(v0, fieldSystem);
v0 = Heap_Alloc(HEAP_ID_COMMUNICATION, BuriedSpheresEnv_Size());
BuriedSpheresEnv_Init(v0, fieldSystem);
@ -771,7 +770,7 @@ void ov23_02242BC0(FieldSystem *fieldSystem)
ov23_0223E1E4(v0, fieldSystem);
v0 = Heap_Alloc(HEAP_ID_COMMUNICATION, ov23_02253608());
ov23_02253598(v0, SaveData_UndergroundRecord(FieldSystem_GetSaveData(fieldSystem)), FieldSystem_GetSaveData(fieldSystem));
ov23_02253598(v0, SaveData_GetUndergroundRecord(FieldSystem_GetSaveData(fieldSystem)), FieldSystem_GetSaveData(fieldSystem));
UndergroundMenuContext_Init(SaveData_GetUnderground(FieldSystem_GetSaveData(fieldSystem)));
}
}
@ -781,7 +780,7 @@ void ov23_02242C78(void)
if (sCommManUnderground) {
ov23_022535EC();
UndergroundSpheres_DisableBuriedSphereSparkles();
ov23_0224B430();
SecretBases_DisableBaseEntranceGraphics();
UndergroundTraps_DisableTrapGraphics();
CommPlayerMan_Reset();
ov23_0223E2F0();
@ -797,7 +796,7 @@ void ov23_02242CB4(void)
CommPlayerMan_Restart();
ov23_02253604();
UndergroundSpheres_EnableBuriedSphereSparkles();
ov23_0224B460();
SecretBases_EnableBaseEntranceGraphics();
UndergroundTraps_EnableTrapGraphics();
ov23_0223E2F4();
sCommManUnderground->unk_14B = 0;
@ -809,7 +808,7 @@ void ov23_02242D08(void)
{
if (sCommManUnderground != NULL) {
sub_020287F8(sCommManUnderground->fieldSystem->saveData);
ov23_0224B4E4();
SecretBasesEnv_Free();
TrapsEnv_Free();
CommPlayerMan_Delete(1);
BuriedSpheresEnv_Free();
@ -827,7 +826,7 @@ void ov23_02242D44(FieldSystem *fieldSystem)
if (sCommManUnderground != NULL) {
UndergroundTraps_Reinit(fieldSystem);
CommPlayerMan_Reinit();
ov23_0224B518();
SecretBases_ResetAllBaseInfo();
}
}
@ -847,7 +846,7 @@ BOOL ov23_02242D60(String *param0)
} else if (UndergroundTraps_GetQueuedMessage2(param0)) {
sCommManUnderground->unk_14C = 1;
return 1;
} else if (ov23_0224D020(param0)) {
} else if (SecretBases_GetQueuedMessage(param0)) {
sCommManUnderground->unk_14C = 1;
return 1;
} else if (ov23_022415B8(param0)) {
@ -861,13 +860,13 @@ BOOL ov23_02242D60(String *param0)
return 0;
}
UnkStruct_02029894 *ov23_02242E10(SaveData *saveData)
SecretBase *ov23_02242E10(SaveData *saveData)
{
if (!sCommManUnderground) {
return NULL;
}
return ov23_0224D130(saveData);
return SecretBases_GetCurrentOccupiedBase(saveData);
}
int ov23_02242E28(void)
@ -876,7 +875,7 @@ int ov23_02242E28(void)
return 0;
}
return ov23_0224D150();
return SecretBases_GetBaseXCoordinate();
}
int ov23_02242E40(void)
@ -885,7 +884,7 @@ int ov23_02242E40(void)
return 0;
}
return ov23_0224D178();
return SecretBases_GetBaseZCoordinate();
}
BOOL Underground_AreCoordinatesInSecretBase(int x, int z)
@ -920,8 +919,8 @@ int ov23_02242E78(int param0)
return ov23_0224125C(v1);
}
} else {
UnkStruct_02029894 *v2 = sub_02029894(sCommManUnderground->fieldSystem->saveData);
return sub_02029874(v2);
SecretBase *v2 = SaveData_GetSecretBase(sCommManUnderground->fieldSystem->saveData);
return SecretBase_GetEntranceXCoord(v2);
}
}
@ -951,9 +950,9 @@ int ov23_02242EE0(int param0)
return ov23_02241294(v1);
}
} else {
UnkStruct_02029894 *v3 = sub_02029894(sCommManUnderground->fieldSystem->saveData);
SecretBase *v3 = SaveData_GetSecretBase(sCommManUnderground->fieldSystem->saveData);
return sub_0202987C(v3);
return SecretBase_GetEntranceZCoord(v3);
}
}
@ -977,9 +976,9 @@ int ov23_02242F48(int param0)
return 12;
}
} else {
UnkStruct_02029894 *v0 = sub_02029894(sCommManUnderground->fieldSystem->saveData);
SecretBase *v0 = SaveData_GetSecretBase(sCommManUnderground->fieldSystem->saveData);
if (sub_0202988C(v0)) {
if (SecretBase_IsActive(v0)) {
return 3;
}
}
@ -1122,7 +1121,7 @@ void ov23_022431C4(int param0, int param1, void *param2, void *param3)
if (v1 == CommSys_CurNetId()) {
ov23_022534A0(sCommManUnderground->fieldSystem);
Link_Message(25);
CommSys_SendMessage(25);
CommPlayerMan_PauseFieldSystem();
}
}
@ -1209,9 +1208,9 @@ void ov23_02243360(void)
{
UnkStruct_ov23_02243360 v0;
v0.unk_00 = ov23_0224DB48();
v0.unk_02 = ov23_0224DB64();
v0.unk_04 = ov23_0224DB84();
v0.unk_00 = SecretBases_GetCurrentBaseReturnXCoord();
v0.unk_02 = SecretBases_GetCurrentBaseReturnZCoord();
v0.unk_04 = SecretBases_GetCurrentBaseReturnDir();
v0.unk_05 = ov23_02241670();
CommSys_SendDataFixedSize(70, &v0);
@ -1221,9 +1220,9 @@ void ov23_02243390(int param0, int param1, void *param2, void *param3)
{
UnkStruct_ov23_02243360 *v0 = param2;
ov23_0224DBA0(param0, v0->unk_00);
ov23_0224DBBC(param0, v0->unk_02);
ov23_0224DBD8(param0, v0->unk_04);
SecretBases_SetBaseReturnXCoord(param0, v0->unk_00);
SecretBases_SetBaseReturnZCoord(param0, v0->unk_02);
SecretBases_SetBaseReturnDir(param0, v0->unk_04);
ov23_02241690(param0, v0->unk_05);
}
@ -1253,5 +1252,5 @@ int ov23_022433D0(void)
static void ov23_022433F4(int param0)
{
sCommManUnderground->unk_CA[param0] = 0;
ov23_0224B5CC(param0);
SecretBases_ResetBaseEntranceData(param0);
}

View File

@ -11,7 +11,7 @@
#include "functypes/funcptr_020598EC.h"
#include "overlay023/ov23_0223E140.h"
#include "overlay023/ov23_02241F74.h"
#include "overlay023/ov23_0224B05C.h"
#include "overlay023/secret_bases.h"
#include "overlay023/underground_player.h"
#include "overlay023/underground_traps.h"
@ -117,7 +117,7 @@ void ov23_02249A74(void)
static void ov23_02249A88(void)
{
if (!CommServerClient_IsInClosedSecretBase()) {
ov23_0224C198();
SecretBases_RequestClearTransitioningStatus();
ov23_02249C24(ov23_02249C34, 0);
}
}
@ -271,7 +271,7 @@ static void ov23_02249C34(void)
CommPlayer_SendPos(0);
UndergroundTraps_SendPlacedTraps();
ov23_0224C21C();
SecretBases_SendBaseInfo();
if (!SystemFlag_CheckUndergroundFirstEntered(SaveData_GetVarsFlags(v0->fieldSystem->saveData))) {
ov23_02249C24(ov23_02249C98, 0);
@ -314,7 +314,7 @@ static void ov23_02249CE4(void)
if (sub_02036834()) {
if (CommSys_CurNetId() == 0) {
ov23_0224B598();
SecretBases_ClearAllBaseInfo();
ov23_02249C24(ov23_02249DBC, 60);
} else {
ov23_02249C24(ov23_02249D20, 120);
@ -377,7 +377,7 @@ static void ov23_02249DBC(void)
CommPlayer_SendPos(0);
UndergroundPlayer_SendHeldFlagOwnerInfo();
ov23_0224C21C();
SecretBases_SendBaseInfo();
ov23_02243360();
ov23_02249C24(ov23_02249E18, 0);
@ -396,11 +396,11 @@ static void ov23_02249E18(void)
}
if (CommSys_CheckError() || !CommServerClient_IsClientConnecting() || (!CommSys_IsPlayerConnected(CommSys_CurNetId()) && !CommSys_IsAlone())) {
ov23_0224B5CC(0);
SecretBases_ResetBaseEntranceData(0);
UndergroundPlayer_ClearHeldFlagInfo();
ov23_0224DA8C();
SecretBases_AbortBaseEnterEarly();
Link_Message(43);
CommSys_SendMessage(43);
UndergroundTraps_ForceEndCurrentTrapEffectClient(CommSys_CurNetId(), 1);
ov23_0224321C();
@ -425,7 +425,7 @@ static void ov23_02249EA0(void)
{
FieldCommunicationManager *v0 = FieldCommMan_Get();
ov23_0224C198();
SecretBases_RequestClearTransitioningStatus();
CommPlayerMan_Restart();
ov23_02249C24(ov23_02249E18, 0);
}
@ -481,7 +481,7 @@ static void ov23_02249F4C(void)
if (UndergroundTraps_GetLinkReceivedPlacedTraps()) {
ov23_022499E4("\u0090\u0065\u008B\u0040\u00E3\u00A9\u0083\u0066\u0081\u005B\u0083\u005E\u0093\u00CD\u0082\u00A2\u0082\u00BD\u0082\u00E7\u0082\u00B5\u0082\u00A2");
UndergroundTraps_SetLinkReceivedPlacedTrapsToFalse();
ov23_0224C21C();
SecretBases_SendBaseInfo();
ov23_02249C24(ov23_02249F7C, 0);
return;
}
@ -491,11 +491,11 @@ static void ov23_02249F4C(void)
static void ov23_02249F7C(void)
{
if (ov23_0224C420()) {
if (SecretBases_AreBaseEntranceLocationsReceived()) {
ov23_022499E4("\u0094\u00E9\u0096\u00A7\u008A\u00EE\u0092\u006E\u0082\u00CC\u0088\u00CA\u0092\u0075\u0082\u00AA\u0082\u00AB\u0082\u00BD");
ov23_0224C434();
SecretBases_ClearBaseEntranceLocationsReceived();
CommPlayer_SendPos(1);
Link_Message(31);
CommSys_SendMessage(31);
ov23_02249C24(ov23_0224A09C, 0);
return;
}
@ -555,7 +555,7 @@ static void ov23_0224A02C(void)
CommInfo_SendBattleRegulation();
CommPlayer_SendPos(0);
UndergroundTraps_SendPlacedTraps();
ov23_0224C21C();
SecretBases_SendBaseInfo();
ov23_02249C24(ov23_0224A024, 0);
}
}
@ -563,7 +563,7 @@ static void ov23_0224A02C(void)
static void ov23_0224A064(void)
{
UndergroundTraps_ForceEndCurrentTrapEffectClient(CommSys_CurNetId(), 1);
ov23_0224D9AC(CommSys_CurNetId(), 1);
SecretBases_RemovePlayerFromBase(CommSys_CurNetId(), 1);
ov23_0224160C();
CommPlayerMan_Stop();
ov23_0224321C();
@ -596,18 +596,18 @@ static void ov23_0224A0CC(void)
static void ov23_0224A0E0(void)
{
ov23_0224DAB4();
SecretBases_AbortBaseEnterLate();
}
static void ov23_0224A0E8(void)
{
FieldCommunicationManager *v0 = FieldCommMan_Get();
ov23_0224C198();
SecretBases_RequestClearTransitioningStatus();
CommPlayerMan_Restart();
if (sub_02033E68() || CommSys_CheckError()) {
ov23_0224B518();
SecretBases_ResetAllBaseInfo();
CommPlayerMan_Stop();
ov23_0224321C();
sub_020367F0();
@ -633,7 +633,7 @@ static void ov23_0224A150(void)
{
FieldCommunicationManager *v0 = FieldCommMan_Get();
ov23_0224C198();
SecretBases_RequestClearTransitioningStatus();
CommPlayerMan_Restart();
ov23_02249C24(ov23_02249CE4, 0);
}
@ -653,7 +653,7 @@ static void ov23_0224A184(void)
{
FieldCommunicationManager *v0 = FieldCommMan_Get();
ov23_0224C198();
SecretBases_RequestClearTransitioningStatus();
CommPlayerMan_Restart();
ov23_02249C24(ov23_0224A024, 0);
}

File diff suppressed because it is too large Load Diff

View File

@ -541,7 +541,7 @@ void ov23_02252CF4(int param0, int param1)
void ov23_02252D08(int param0, int param1)
{
UndergroundTextPrinter_SetUndergroundGoodsNameWithIndex(CommManUnderground_GetMiscTextPrinter(), param0, param1);
UndergroundTextPrinter_SetGoodNameWithIndex(CommManUnderground_GetMiscTextPrinter(), param0, param1);
}
static void ov23_02252D1C(UndergroundMenu *param0)

View File

@ -109,7 +109,7 @@ static UnkFuncPtr_ov23_022576EC Unk_ov23_022576EC[] = {
UndergroundRecord_GetGiftsReceived,
UndergroundRecord_GetTimesFlagTaken,
UndergroundRecord_GetFlagsRecovered,
sub_0202981C,
UndergroundRecord_GetTimesBaseMoved,
UndergroundRecord_GetCapturedFlagCount
};

View File

@ -3,7 +3,6 @@
#include <nitro.h>
#include <string.h>
#include "struct_decls/struct_02029894_decl.h"
#include "struct_defs/underground.h"
#include "field/field_system.h"
@ -15,8 +14,8 @@
#include "overlay005/struct_ov5_021D1BEC_decl.h"
#include "overlay005/struct_ov5_021EB0E0_decl.h"
#include "overlay006/struct_ov6_0223E6EC.h"
#include "overlay023/ov23_0224B05C.h"
#include "overlay023/ov23_022542CC.h"
#include "overlay023/secret_bases.h"
#include "overlay023/struct_ov23_022542D8_decl.h"
#include "overlay023/struct_ov23_02254594_decl.h"
@ -30,6 +29,8 @@
#include "text.h"
#include "unk_0202854C.h"
#include "res/text/bank/underground_decorate_base.h"
typedef struct {
int unk_00;
u8 unk_04;
@ -106,7 +107,7 @@ typedef struct {
u8 unk_51E;
u8 unk_51F;
u8 unk_520;
u8 secretBaseMaxRemovableRocks;
u8 secretBaseUnremovableRocks;
u8 secretBaseMaxDisplayItems;
} UnkStruct_ov23_02256098;
@ -116,39 +117,39 @@ static BOOL ov23_02254DF8(FieldTask *param0);
static BOOL ov23_02255100(FieldTask *param0);
static BOOL ov23_02255580(FieldTask *param0);
static BOOL ov23_02255850(FieldTask *param0);
static void ov23_02254A14(FieldSystem *fieldSystem, const int param1, UnkStruct_ov23_02256098 *param2);
static void ov23_02254A94(FieldSystem *fieldSystem, const int param1);
static void ov23_02254AA4(const int param0, UnkStruct_ov23_02256098 *param1);
static void ov23_02254A14(FieldSystem *fieldSystem, int param1, UnkStruct_ov23_02256098 *param2);
static void ov23_02254A94(FieldSystem *fieldSystem, int param1);
static void ov23_02254AA4(int param0, UnkStruct_ov23_02256098 *param1);
static BOOL ov23_02255A98(const UnkStruct_ov23_02255A98 *param0, const UnkStruct_ov23_02255BF4 *param1);
static BOOL ov23_02255B14(const int param0, const int param1, const UnkStruct_ov23_02255BF4 *param2, int *param3);
static BOOL ov23_02255B14(int param0, int param1, const UnkStruct_ov23_02255BF4 *param2, int *param3);
static int ov23_02255B78(const UnkStruct_ov23_02255A98 *param0, UnkStruct_ov23_02255BF4 *param1);
static void ov23_02255BB8(const UnkStruct_ov23_02255A98 *param0, const int param1, UnkStruct_ov23_02255BF4 *param2);
static void ov23_02255BF4(const int param0, UnkStruct_ov23_02255BF4 *param1);
static void ov23_02255BB8(const UnkStruct_ov23_02255A98 *param0, int param1, UnkStruct_ov23_02255BF4 *param2);
static void ov23_02255BF4(int param0, UnkStruct_ov23_02255BF4 *param1);
static BOOL ov23_02255C30(const UnkStruct_ov23_02255C30 *param0, const UnkStruct_ov23_02255C30 *param1);
static BOOL ov23_02255C58(const UnkStruct_ov23_02255C30 *param0, const int param1, const int param2);
static BOOL ov23_02255C58(const UnkStruct_ov23_02255C30 *param0, int param1, int param2);
static BOOL ov23_02255B58(const UnkStruct_ov23_02255C30 *param0);
static void ov23_02255C78(FieldSystem *fieldSystem, UnkStruct_ov23_02256098 *param1, UnkStruct_ov23_02255BF4 *param2);
static void ov23_02255D1C(const int param0, const int param1, const int param2, const int param3, UnkStruct_ov23_02255BF4 *param4);
static void ov23_02255D1C(int param0, int param1, int param2, int param3, UnkStruct_ov23_02255BF4 *param4);
static void ov23_02255D78(FieldSystem *fieldSystem, UnkStruct_ov23_02255BF4 *param1);
static void ov23_02255DDC(FieldSystem *fieldSystem, const UnkStruct_ov23_02255BF4 *param1);
static const int ov23_02255E14(FieldSystem *fieldSystem, const int param1);
static void ov23_02255E2C(const int param0, UnkStruct_ov23_02256098 *param1);
static int ov23_02255E14(FieldSystem *fieldSystem, int param1);
static void ov23_02255E2C(int param0, UnkStruct_ov23_02256098 *param1);
static void ov23_02255E8C(UnkStruct_ov23_02256098 *param0);
static void ov23_02255EBC(const int param0, UnkStruct_ov23_02256098 *param1);
static void ov23_02255EBC(int param0, UnkStruct_ov23_02256098 *param1);
static void ov23_02255EC4(UnkStruct_ov23_02255EC4 *param0);
static void ov23_02255EF0(UnkStruct_ov23_02255EC4 *param0);
static void ov23_02255EFC(UnkStruct_ov23_02255EC4 *param0);
static void ov23_02255F04(const int param0, const int param1, UnkStruct_ov23_02255EC4 *param2);
static void ov23_02255F04(int param0, int param1, UnkStruct_ov23_02255EC4 *param2);
static void ov23_02255F20(UnkStruct_ov23_02255EC4 *param0);
static BOOL ov23_02256098(UnkStruct_ov23_02256098 *param0, FieldSystem *fieldSystem, BOOL *param2);
static BOOL ov23_02256104(UnkStruct_ov23_02256098 *param0, FieldSystem *fieldSystem, BOOL *param2);
static BOOL ov23_02256174(UnkStruct_ov23_02256098 *param0, FieldSystem *fieldSystem, BOOL *param2);
static BOOL ov23_022561BC(UnkStruct_ov23_02256098 *param0, FieldSystem *fieldSystem, BOOL *param2);
static void ov23_02256228(UnkStruct_ov23_02256228 *param0);
static void ov23_0225623C(const int param0, const int param1, UnkStruct_ov23_02256228 *param2);
static void ov23_0225623C(int param0, int param1, UnkStruct_ov23_02256228 *param2);
static void ov23_0225624C(FieldSystem *fieldSystem, UnkStruct_ov23_02256228 *param1);
static void ov23_0225628C(FieldSystem *fieldSystem, UnkStruct_ov23_02256228 *param1);
static const int ov23_022562A8(UnkStruct_ov23_02256228 *param0);
static int ov23_022562A8(UnkStruct_ov23_02256228 *param0);
static void ov23_022562AC(UnkStruct_ov5_021D1BEC *param0, FieldSystem *fieldSystem, void *param2);
static void ov23_022562B8(UnkStruct_ov5_021D1BEC *param0, FieldSystem *fieldSystem, void *param2);
static void ov23_022562BC(UnkStruct_ov5_021D1BEC *param0, FieldSystem *fieldSystem, void *param2);
@ -163,14 +164,13 @@ static const UnkStruct_ov6_0223E6EC Unk_ov23_02256B88 = {
ov23_022562C8
};
static void ov23_02254A14(FieldSystem *fieldSystem, const int param1, UnkStruct_ov23_02256098 *param2)
static void ov23_02254A14(FieldSystem *fieldSystem, int param1, UnkStruct_ov23_02256098 *param2)
{
UnkStruct_ov23_02255A98 *v0;
VecFx32 v1;
GF_ASSERT(param1 != 0);
v0 = &param2->unk_3C;
UnkStruct_ov23_02255A98 *v0 = &param2->unk_3C;
v0->unk_18 = Good_GetWidth(param1);
v0->unk_1C = Good_GetDepth(param1);
@ -187,18 +187,16 @@ static void ov23_02254A14(FieldSystem *fieldSystem, const int param1, UnkStruct_
v0->unk_14 = param1;
}
static void ov23_02254A94(FieldSystem *fieldSystem, const int param1)
static void ov23_02254A94(FieldSystem *fieldSystem, int param1)
{
MapPropManager_InitOne(param1, fieldSystem->mapPropManager);
}
static void ov23_02254AA4(const int param0, UnkStruct_ov23_02256098 *param1)
static void ov23_02254AA4(int param0, UnkStruct_ov23_02256098 *param1)
{
UnkStruct_ov23_02255A98 *v0;
GF_ASSERT(param1->unk_5C[param0].unk_00);
v0 = &(param1->unk_5C[param0].unk_04);
UnkStruct_ov23_02255A98 *v0 = &(param1->unk_5C[param0].unk_04);
param1->unk_3C = (*v0);
}
@ -247,7 +245,7 @@ static BOOL ov23_02254AD4(FieldTask *param0)
case 8:
if (Text_IsPrinterActive(v1->unk_08) == 0) {
if ((v1->unk_51E++) >= 30) {
ov23_0224D3B0();
SecretBases_EraseDecorateBaseMessageBox();
ov23_02255EBC(3, v1);
}
}
@ -273,11 +271,10 @@ static BOOL ov23_02254AD4(FieldTask *param0)
static BOOL ov23_02254C84(FieldTask *param0)
{
BOOL v0;
FieldSystem *fieldSystem = FieldTask_GetFieldSystem(param0);
UnkStruct_ov23_02256098 *v2 = FieldTask_GetEnv(param0);
v0 = ov23_02254318(v2->unk_504);
BOOL v0 = ov23_02254318(v2->unk_504);
if (v0) {
switch (ov23_02254314(v2->unk_504)) {
@ -289,21 +286,21 @@ static BOOL ov23_02254C84(FieldTask *param0)
v4 = Underground_GetGoodsCountPC(v3);
if (v4 == 0) {
v2->unk_08 = ov23_0224D39C(19);
v2->unk_08 = SecretBases_PrintDecorateBaseMessage(UndergroundDecorateBase_Text_NoGoodsInPC);
v2->unk_51E = 0;
ov23_02255EBC(8, v2);
return 1;
}
if (v2->unk_51F > 15) {
v2->unk_08 = ov23_0224D39C(20);
v2->unk_08 = SecretBases_PrintDecorateBaseMessage(UndergroundDecorateBase_Text_DisplayLimitReached);
v2->unk_51E = 0;
ov23_02255EBC(8, v2);
return 1;
}
if (v2->unk_51F + 1 > v2->secretBaseMaxDisplayItems) {
v2->unk_08 = ov23_0224D39C(20);
v2->unk_08 = SecretBases_PrintDecorateBaseMessage(UndergroundDecorateBase_Text_DisplayLimitReached);
v2->unk_51E = 0;
ov23_02255EBC(8, v2);
return 1;
@ -385,7 +382,7 @@ static BOOL ov23_02254DF8(FieldTask *param0)
ov23_02254A14(fieldSystem, v9, v6);
v6->unk_04 = 1;
} else {
v6->unk_08 = ov23_0224D39C(21);
v6->unk_08 = SecretBases_PrintDecorateBaseMessage(UndergroundDecorateBase_Text_GoodAlreadyDisplayed);
v6->unk_51E = 0;
v6->unk_04 = 5;
}
@ -476,8 +473,8 @@ static BOOL ov23_02254DF8(FieldTask *param0)
sub_02028ACC(v18, v16, v17);
Sound_PlayEffect(SEQ_SE_DP_BOWA);
ov23_0224D3BC(v6->unk_3C.unk_14);
v6->unk_08 = ov23_0224D39C(11);
SecretBases_SetGoodNameForPrinter(v6->unk_3C.unk_14);
v6->unk_08 = SecretBases_PrintDecorateBaseMessage(UndergroundDecorateBase_Text_GoodWasPlaced);
ov23_0225628C(fieldSystem, &v6->unk_4DC);
v6->unk_51F++;
@ -487,7 +484,7 @@ static BOOL ov23_02254DF8(FieldTask *param0)
} else {
Sound_PlayEffect(SEQ_SE_DP_WALL_HIT2);
v6->unk_08 = ov23_0224D39C(12);
v6->unk_08 = SecretBases_PrintDecorateBaseMessage(UndergroundDecorateBase_Text_CantPlaceHere);
v6->unk_51E = 0;
v6->unk_04 = 3;
}
@ -496,7 +493,7 @@ static BOOL ov23_02254DF8(FieldTask *param0)
case 3:
if (Text_IsPrinterActive(v6->unk_08) == 0) {
if ((v6->unk_51E++) >= 30) {
ov23_0224D3B0();
SecretBases_EraseDecorateBaseMessageBox();
v6->unk_04 = 2;
}
}
@ -504,7 +501,7 @@ static BOOL ov23_02254DF8(FieldTask *param0)
case 4:
if (Text_IsPrinterActive(v6->unk_08) == 0) {
if ((v6->unk_51E++) >= 30) {
ov23_0224D3B0();
SecretBases_EraseDecorateBaseMessageBox();
ov23_02255EBC(3, v6);
return 1;
}
@ -513,7 +510,7 @@ static BOOL ov23_02254DF8(FieldTask *param0)
case 5:
if (Text_IsPrinterActive(v6->unk_08) == 0) {
if ((v6->unk_51E++) >= 30) {
ov23_0224D3B0();
SecretBases_EraseDecorateBaseMessageBox();
v6->unk_04 = 0;
}
}
@ -642,23 +639,23 @@ static BOOL ov23_02255100(FieldTask *param0)
if (v13) {
if (v16 != 0) {
ov23_0224D3BC(v7->unk_5C[v16].unk_04.unk_14);
SecretBases_SetGoodNameForPrinter(v7->unk_5C[v16].unk_04.unk_14);
if (v7->unk_5C[v16].unk_04.unk_14 == 6) {
if (v7->secretBaseMaxRemovableRocks == 16) {
v7->unk_08 = ov23_0224D39C(15);
if (v7->secretBaseUnremovableRocks == 16) {
v7->unk_08 = SecretBases_PrintDecorateBaseMessage(UndergroundDecorateBase_Text_CantRemoveBigBoulder);
v7->unk_51E = 0;
v7->unk_04 = 4;
break;
} else if (v7->unk_520 - 1 < v7->secretBaseMaxRemovableRocks) {
v7->unk_08 = ov23_0224D39C(18);
} else if (v7->unk_520 - 1 < v7->secretBaseUnremovableRocks) {
v7->unk_08 = SecretBases_PrintDecorateBaseMessage(UndergroundDecorateBase_Text_CantRemoveMoreBoulders);
v7->unk_51E = 0;
v7->unk_04 = 4;
break;
} else {
Sound_PlayEffect(SEQ_SE_DP_F017);
v7->unk_08 = ov23_0224D39C(14);
v7->unk_08 = SecretBases_PrintDecorateBaseMessage(UndergroundDecorateBase_Text_BigBoulderRemoved);
GF_ASSERT(v7->unk_520 > 0);
v7->unk_520--;
v7->unk_51E = 0;
@ -672,7 +669,7 @@ static BOOL ov23_02255100(FieldTask *param0)
Sound_PlayEffect(SEQ_SE_DP_BOX02);
sub_02028B20(v17, v16);
v7->unk_08 = ov23_0224D39C(13);
v7->unk_08 = SecretBases_PrintDecorateBaseMessage(UndergroundDecorateBase_Text_GoodReturnedToPC);
GF_ASSERT(v7->unk_51F > 0);
v7->unk_51F--;
v7->unk_51E = 0;
@ -684,7 +681,7 @@ static BOOL ov23_02255100(FieldTask *param0)
ov23_02255F20(v7->unk_4FC);
v7->unk_51E = 0;
} else {
v7->unk_08 = ov23_0224D39C(22);
v7->unk_08 = SecretBases_PrintDecorateBaseMessage(UndergroundDecorateBase_Text_CantPutAwayPC);
v7->unk_51E = 0;
v7->unk_04 = 4;
}
@ -698,8 +695,8 @@ static BOOL ov23_02255100(FieldTask *param0)
if ((v7->unk_51E++) >= 30) {
int v18;
ov23_0224D3B0();
v18 = v7->unk_520 - v7->secretBaseMaxRemovableRocks;
SecretBases_EraseDecorateBaseMessageBox();
v18 = v7->unk_520 - v7->secretBaseUnremovableRocks;
GF_ASSERT(v18 >= 0);
if (v18 == 0) {
@ -715,7 +712,7 @@ static BOOL ov23_02255100(FieldTask *param0)
case 3:
if (Text_IsPrinterActive(v7->unk_08) == 0) {
if ((v7->unk_51E++) >= 30) {
ov23_0224D3B0();
SecretBases_EraseDecorateBaseMessageBox();
v7->unk_04 = 0;
return 1;
}
@ -724,7 +721,7 @@ static BOOL ov23_02255100(FieldTask *param0)
case 4:
if (Text_IsPrinterActive(v7->unk_08) == 0) {
if ((v7->unk_51E++) >= 30) {
ov23_0224D3B0();
SecretBases_EraseDecorateBaseMessageBox();
v7->unk_04 = 1;
}
}
@ -733,13 +730,13 @@ static BOOL ov23_02255100(FieldTask *param0)
if ((v7->unk_51E++) >= 10) {
int v19;
v19 = v7->unk_520 - v7->secretBaseMaxRemovableRocks;
ov23_0224D3D0(v19, 0);
v19 = v7->unk_520 - v7->secretBaseUnremovableRocks;
SecretBases_SetTwoDigitNumberWithIndexForPrinter(v19, 0);
if (v19 == 1) {
v7->unk_08 = ov23_0224D39C(17);
v7->unk_08 = SecretBases_PrintDecorateBaseMessage(UndergroundDecorateBase_Text_CanRemove1MoreBoulder);
} else {
v7->unk_08 = ov23_0224D39C(25);
v7->unk_08 = SecretBases_PrintDecorateBaseMessage(UndergroundDecorateBase_Text_CanRemoveXMoreBoulders);
}
v7->unk_51E = 0;
@ -749,7 +746,7 @@ static BOOL ov23_02255100(FieldTask *param0)
case 6:
if (Text_IsPrinterActive(v7->unk_08) == 0) {
if ((v7->unk_51E++) >= 30) {
ov23_0224D3B0();
SecretBases_EraseDecorateBaseMessageBox();
ov23_02255EBC(3, v7);
return 1;
}
@ -878,7 +875,7 @@ static BOOL ov23_02255580(FieldTask *param0)
if (v13) {
if (v16 != 0) {
if (v7->unk_5C[v16].unk_04.unk_14 == 6) {
v7->unk_08 = ov23_0224D39C(16);
v7->unk_08 = SecretBases_PrintDecorateBaseMessage(UndergroundDecorateBase_Text_CantMoveBigBoulder);
v7->unk_51E = 0;
v7->unk_04 = 2;
} else {
@ -891,19 +888,17 @@ static BOOL ov23_02255580(FieldTask *param0)
return 1;
}
} else {
v7->unk_08 = ov23_0224D39C(23);
v7->unk_08 = SecretBases_PrintDecorateBaseMessage(UndergroundDecorateBase_Text_CantMovePC);
v7->unk_51E = 0;
v7->unk_04 = 2;
}
} else {
(void)0;
}
}
break;
case 2:
if (Text_IsPrinterActive(v7->unk_08) == 0) {
if ((v7->unk_51E++) >= 30) {
ov23_0224D3B0();
SecretBases_EraseDecorateBaseMessageBox();
v7->unk_04 = 1;
}
}
@ -1005,7 +1000,7 @@ static BOOL ov23_02255850(FieldTask *param0)
} else {
Sound_PlayEffect(SEQ_SE_DP_WALL_HIT2);
v6->unk_08 = ov23_0224D39C(12);
v6->unk_08 = SecretBases_PrintDecorateBaseMessage(UndergroundDecorateBase_Text_CantPlaceHere);
v6->unk_51E = 0;
v6->unk_04 = 2;
}
@ -1014,7 +1009,7 @@ static BOOL ov23_02255850(FieldTask *param0)
case 2:
if (Text_IsPrinterActive(v6->unk_08) == 0) {
if ((v6->unk_51E++) >= 30) {
ov23_0224D3B0();
SecretBases_EraseDecorateBaseMessageBox();
v6->unk_04 = 1;
}
}
@ -1022,7 +1017,7 @@ static BOOL ov23_02255850(FieldTask *param0)
case 3:
if (Text_IsPrinterActive(v6->unk_08) == 0) {
if ((v6->unk_51E++) >= 30) {
ov23_0224D3B0();
SecretBases_EraseDecorateBaseMessageBox();
ov23_02255EBC(6, v6);
return 1;
}
@ -1064,11 +1059,9 @@ static BOOL ov23_02255A98(const UnkStruct_ov23_02255A98 *param0, const UnkStruct
return 1;
}
static BOOL ov23_02255B14(const int param0, const int param1, const UnkStruct_ov23_02255BF4 *param2, int *param3)
static BOOL ov23_02255B14(int param0, int param1, const UnkStruct_ov23_02255BF4 *param2, int *param3)
{
int v0;
for (v0 = 0; v0 < 32; v0++) {
for (int v0 = 0; v0 < 32; v0++) {
if (param2[v0].unk_00 == 1) {
if (ov23_02255C58(&(param2[v0].unk_04.unk_00), param0, param1)) {
(*param3) = v0;
@ -1077,7 +1070,7 @@ static BOOL ov23_02255B14(const int param0, const int param1, const UnkStruct_ov
}
}
(*param3) = 32;
*param3 = 32;
return 0;
}
@ -1107,7 +1100,7 @@ static int ov23_02255B78(const UnkStruct_ov23_02255A98 *param0, UnkStruct_ov23_0
return 0;
}
static void ov23_02255BB8(const UnkStruct_ov23_02255A98 *param0, const int param1, UnkStruct_ov23_02255BF4 *param2)
static void ov23_02255BB8(const UnkStruct_ov23_02255A98 *param0, int param1, UnkStruct_ov23_02255BF4 *param2)
{
GF_ASSERT(param1 < 32);
GF_ASSERT(!param2[param1].unk_00);
@ -1116,7 +1109,7 @@ static void ov23_02255BB8(const UnkStruct_ov23_02255A98 *param0, const int param
param2[param1].unk_04 = (*param0);
}
static void ov23_02255BF4(const int param0, UnkStruct_ov23_02255BF4 *param1)
static void ov23_02255BF4(int param0, UnkStruct_ov23_02255BF4 *param1)
{
GF_ASSERT(param0 < 32);
GF_ASSERT(param0 != 0);
@ -1142,7 +1135,7 @@ static BOOL ov23_02255C30(const UnkStruct_ov23_02255C30 *param0, const UnkStruct
}
}
static BOOL ov23_02255C58(const UnkStruct_ov23_02255C30 *param0, const int param1, const int param2)
static BOOL ov23_02255C58(const UnkStruct_ov23_02255C30 *param0, int param1, int param2)
{
if ((param0->unk_00 <= param1) && (param1 <= param0->unk_08) && (param0->unk_04 <= param2) && (param2 <= param0->unk_0C)) {
return 1;
@ -1156,15 +1149,15 @@ static void ov23_02255C78(FieldSystem *fieldSystem, UnkStruct_ov23_02256098 *par
int v0;
int v1;
int v2, v3;
UnkStruct_02029894 *v4 = sub_02029894(fieldSystem->saveData);
SecretBase *v4 = SaveData_GetSecretBase(fieldSystem->saveData);
param1->unk_51F = 0;
param1->unk_520 = 0;
param1->secretBaseMaxRemovableRocks = sub_GetMaxRemovableRocks(v4);
param1->secretBaseMaxDisplayItems = sub_GetMaxDisplayItemsCount(v4);
param1->secretBaseUnremovableRocks = SecretBase_GetUnremovableBoulderCount(v4);
param1->secretBaseMaxDisplayItems = SecretBase_GetPlacedGoodsLimit(v4);
for (v0 = 0; v0 < 32; v0++) {
v1 = sub_020293B0(v4, v0);
v1 = SecretBase_GetGoodIDAtIndex(v4, v0);
if (v1 != 0) {
if (v1 == 6) {
@ -1173,18 +1166,17 @@ static void ov23_02255C78(FieldSystem *fieldSystem, UnkStruct_ov23_02256098 *par
param1->unk_51F++;
}
v2 = sub_020293FC(v4, v0);
v3 = sub_0202942C(v4, v0);
v2 = SecretBase_GetGoodXCoordAtIndex(v4, v0);
v3 = SecretBase_GetGoodZCoordAtIndex(v4, v0);
ov23_02255D1C(v0, v1, v2, v3, param2);
}
}
}
static void ov23_02255D1C(const int param0, const int param1, const int param2, const int param3, UnkStruct_ov23_02255BF4 *param4)
static void ov23_02255D1C(int param0, int param1, int param2, int param3, UnkStruct_ov23_02255BF4 *param4)
{
UnkStruct_ov23_02255A98 v0;
int v1, v2;
v0.unk_10 = 0;
v0.unk_14 = param1;
@ -1235,7 +1227,7 @@ static void ov23_02255DDC(FieldSystem *fieldSystem, const UnkStruct_ov23_02255BF
int v0;
int v1;
int v2, v3;
UnkStruct_02029894 *v4 = sub_02029894(fieldSystem->saveData);
SecretBase *v4 = SaveData_GetSecretBase(fieldSystem->saveData);
for (v0 = 0; v0 < 32; v0++) {
if (param1[v0].unk_00 == 1) {
@ -1248,29 +1240,22 @@ static void ov23_02255DDC(FieldSystem *fieldSystem, const UnkStruct_ov23_02255BF
v3 = 0;
}
sub_02029308(v4, v0, v1, v2, v3);
SecretBase_AddGoodAtIndex(v4, v0, v1, v2, v3);
}
}
static const int ov23_02255E14(FieldSystem *fieldSystem, const int param1)
static int ov23_02255E14(FieldSystem *fieldSystem, int param1)
{
int v0;
GF_ASSERT(param1 != 0);
v0 = AreaDataManager_GetMapPropModelID(fieldSystem->areaDataManager, param1);
return v0;
return AreaDataManager_GetMapPropModelID(fieldSystem->areaDataManager, param1);
}
static void ov23_02255E2C(const int param0, UnkStruct_ov23_02256098 *param1)
static void ov23_02255E2C(int param0, UnkStruct_ov23_02256098 *param1)
{
MapProp *v0;
UnkStruct_ov23_02255A98 *v1;
GF_ASSERT(param1->unk_5C[param0].unk_00);
v1 = &(param1->unk_5C[param0].unk_04);
v0 = MapPropManager_GetLoadedPropSafely(param1->fieldSystem->mapPropManager, v1->unk_10);
UnkStruct_ov23_02255A98 *v1 = &(param1->unk_5C[param0].unk_04);
MapProp *v0 = MapPropManager_GetLoadedPropSafely(param1->fieldSystem->mapPropManager, v1->unk_10);
param1->unk_0C.unk_04 = MapProp_GetPosition(v0);
param1->unk_0C.unk_00 = param0;
@ -1279,18 +1264,16 @@ static void ov23_02255E2C(const int param0, UnkStruct_ov23_02256098 *param1)
static void ov23_02255E8C(UnkStruct_ov23_02256098 *param0)
{
MapProp *v0;
UnkStruct_ov23_02255A98 *v1;
int v2 = param0->unk_0C.unk_00;
GF_ASSERT(param0->unk_5C[v2].unk_00);
v1 = &(param0->unk_0C.unk_10);
v0 = MapPropManager_GetLoadedPropSafely(param0->fieldSystem->mapPropManager, v1->unk_10);
UnkStruct_ov23_02255A98 *v1 = &(param0->unk_0C.unk_10);
MapProp *v0 = MapPropManager_GetLoadedPropSafely(param0->fieldSystem->mapPropManager, v1->unk_10);
MapProp_SetPosition(v0, &param0->unk_0C.unk_04);
}
static void ov23_02255EBC(const int param0, UnkStruct_ov23_02256098 *param1)
static void ov23_02255EBC(int param0, UnkStruct_ov23_02256098 *param1)
{
param1->unk_00 = param0;
param1->unk_04 = 0;
@ -1299,8 +1282,7 @@ static void ov23_02255EBC(const int param0, UnkStruct_ov23_02256098 *param1)
static void ov23_02255EC4(UnkStruct_ov23_02255EC4 *param0)
{
NNSG3dResMdl *v0;
Easy3D_InitRenderObjFromPath(4, "data/ug_base_cur.nsbmd", &param0->unk_00, &v0, &param0->unk_54);
Easy3D_InitRenderObjFromPath(HEAP_ID_FIELD1, "data/ug_base_cur.nsbmd", &param0->unk_00, &v0, &param0->unk_54);
param0->unk_58.x = 0;
param0->unk_58.y = 0;
@ -1320,13 +1302,13 @@ static void ov23_02255EFC(UnkStruct_ov23_02255EC4 *param0)
param0->unk_6C = 1;
}
static void ov23_02255F04(const int param0, const int param1, UnkStruct_ov23_02255EC4 *param2)
static void ov23_02255F04(int param0, int param1, UnkStruct_ov23_02255EC4 *param2)
{
param2->unk_64 = param0;
param2->unk_68 = param1;
param2->unk_58.x = (FX32_ONE * 16) * ((0 * 32) + param0) + (FX32_ONE * 8);
param2->unk_58.x = (FX32_ONE * 16) * param0 + (FX32_ONE * 8);
param2->unk_58.y = FX32_ONE;
param2->unk_58.z = (FX32_ONE * 16) * ((0 * 32) + param1) + (FX32_ONE * 8);
param2->unk_58.z = (FX32_ONE * 16) * param1 + (FX32_ONE * 8);
}
static void ov23_02255F20(UnkStruct_ov23_02255EC4 *param0)
@ -1334,14 +1316,14 @@ static void ov23_02255F20(UnkStruct_ov23_02255EC4 *param0)
param0->unk_6C = 0;
}
static void ov23_02255F28(const int param0, const int param1, UnkStruct_ov23_02256000 *param2)
static void ov23_02255F28(int touchX, int touchY, UnkStruct_ov23_02256000 *param2)
{
if (param0 != 0xffff) {
param2->unk_00 = param0;
if (touchX != (u16)TOUCHSCREEN_INPUT_NONE) {
param2->unk_00 = touchX;
}
if (param1 != 0xffff) {
param2->unk_04 = param1;
if (touchY != (u16)TOUCHSCREEN_INPUT_NONE) {
param2->unk_04 = touchY;
}
}
@ -1349,18 +1331,16 @@ static void ov23_02255F40(FieldSystem *fieldSystem, UnkStruct_ov23_02255A98 *par
{
UnkStruct_ov23_02255C30 v0;
VecFx32 v1;
int v2, v3;
int v4, v5;
UnkStruct_ov5_021EB0E0 *v6 = fieldSystem->unk_8C;
ov23_02255F28(gSystem.touchX, gSystem.touchY, param2);
v1 = ov5_021EAFA4(param2->unk_00, param2->unk_04, v6);
v2 = v1.x / (FX32_ONE * 16);
v3 = v1.z / (FX32_ONE * 16);
int v2 = v1.x / (FX32_ONE * 16);
int v3 = v1.z / (FX32_ONE * 16);
v4 = param1->unk_18;
v5 = param1->unk_1C;
int v4 = param1->unk_18;
int v5 = param1->unk_1C;
v0.unk_00 = v2 % 32;
v0.unk_04 = v3 % 32;
@ -1377,12 +1357,8 @@ static void ov23_02255F40(FieldSystem *fieldSystem, UnkStruct_ov23_02255A98 *par
v1.z += (FX32_ONE * 8) * v5;
v1.y = FX32_ONE;
{
MapProp *v7;
v7 = MapPropManager_GetLoadedPropSafely(fieldSystem->mapPropManager, param1->unk_10);
MapProp_SetPosition(v7, &v1);
}
MapProp *v7 = MapPropManager_GetLoadedPropSafely(fieldSystem->mapPropManager, param1->unk_10);
MapProp_SetPosition(v7, &v1);
}
}
@ -1390,14 +1366,13 @@ static void ov23_02256000(FieldSystem *fieldSystem, UnkStruct_ov23_02256000 *par
{
UnkStruct_ov23_02255C30 v0;
VecFx32 v1;
int v2, v3;
UnkStruct_ov5_021EB0E0 *v4 = fieldSystem->unk_8C;
ov23_02255F28(gSystem.touchX, gSystem.touchY, param1);
v1 = ov5_021EAFA4(param1->unk_00, param1->unk_04, v4);
v2 = v1.x / (FX32_ONE * 16);
v3 = v1.z / (FX32_ONE * 16);
int v2 = v1.x / (FX32_ONE * 16);
int v3 = v1.z / (FX32_ONE * 16);
v0.unk_00 = v2 % 32;
v0.unk_04 = v3 % 32;
@ -1417,7 +1392,6 @@ static void ov23_02256000(FieldSystem *fieldSystem, UnkStruct_ov23_02256000 *par
static BOOL ov23_02256098(UnkStruct_ov23_02256098 *param0, FieldSystem *fieldSystem, BOOL *param2)
{
VecFx32 v0;
BOOL v1 = 0;
*param2 = 0;
@ -1446,7 +1420,6 @@ static BOOL ov23_02256098(UnkStruct_ov23_02256098 *param0, FieldSystem *fieldSys
static BOOL ov23_02256104(UnkStruct_ov23_02256098 *param0, FieldSystem *fieldSystem, BOOL *param2)
{
VecFx32 v0;
BOOL v1 = 0;
*param2 = 0;
@ -1475,7 +1448,6 @@ static BOOL ov23_02256104(UnkStruct_ov23_02256098 *param0, FieldSystem *fieldSys
static BOOL ov23_02256174(UnkStruct_ov23_02256098 *param0, FieldSystem *fieldSystem, BOOL *param2)
{
VecFx32 v0;
BOOL v1 = 0;
*param2 = 0;
@ -1496,7 +1468,6 @@ static BOOL ov23_02256174(UnkStruct_ov23_02256098 *param0, FieldSystem *fieldSys
static BOOL ov23_022561BC(UnkStruct_ov23_02256098 *param0, FieldSystem *fieldSystem, BOOL *param2)
{
VecFx32 v0;
BOOL v1 = 0;
*param2 = 0;
@ -1532,7 +1503,7 @@ static void ov23_02256228(UnkStruct_ov23_02256228 *param0)
param0->unk_10 = 0;
}
static void ov23_0225623C(const int param0, const int param1, UnkStruct_ov23_02256228 *param2)
static void ov23_0225623C(int param0, int param1, UnkStruct_ov23_02256228 *param2)
{
param2->unk_04 = 0;
param2->unk_08 = param1;
@ -1543,8 +1514,6 @@ static void ov23_0225623C(const int param0, const int param1, UnkStruct_ov23_022
static void ov23_0225624C(FieldSystem *fieldSystem, UnkStruct_ov23_02256228 *param1)
{
MapProp *v0;
if (!param1->unk_10) {
return;
}
@ -1554,24 +1523,22 @@ static void ov23_0225624C(FieldSystem *fieldSystem, UnkStruct_ov23_02256228 *par
if (param1->unk_04 >= param1->unk_08) {
param1->unk_04 = 0;
param1->unk_0C = (param1->unk_0C + 1) % 2;
v0 = MapPropManager_GetLoadedPropSafely(fieldSystem->mapPropManager, param1->unk_00);
MapProp *v0 = MapPropManager_GetLoadedPropSafely(fieldSystem->mapPropManager, param1->unk_00);
MapProp_SetHidden(v0, param1->unk_0C);
}
}
static void ov23_0225628C(FieldSystem *fieldSystem, UnkStruct_ov23_02256228 *param1)
{
MapProp *v0;
if (!param1->unk_10) {
return;
}
v0 = MapPropManager_GetLoadedPropSafely(fieldSystem->mapPropManager, param1->unk_00);
MapProp *v0 = MapPropManager_GetLoadedPropSafely(fieldSystem->mapPropManager, param1->unk_00);
MapProp_SetHidden(v0, 0);
}
static const int ov23_022562A8(UnkStruct_ov23_02256228 *param0)
static int ov23_022562A8(UnkStruct_ov23_02256228 *param0)
{
return param0->unk_00;
}
@ -1601,10 +1568,14 @@ static void ov23_022562C8(UnkStruct_ov5_021D1BEC *param0, FieldSystem *fieldSyst
return;
}
{
MtxFx33 v1 = { FX32_ONE, 0, 0, 0, FX32_ONE, 0, 0, 0, FX32_ONE };
VecFx32 v2 = { FX32_ONE, FX32_ONE, FX32_ONE };
// clang-format off
MtxFx33 v1 = {
FX32_ONE, 0, 0,
0, FX32_ONE, 0,
0, 0, FX32_ONE
};
// clang-format on
VecFx32 v2 = { FX32_ONE, FX32_ONE, FX32_ONE };
Easy3D_DrawRenderObj(&v0->unk_00, &v0->unk_58, &v1, &v2);
}
Easy3D_DrawRenderObj(&v0->unk_00, &v0->unk_58, &v1, &v2);
}

File diff suppressed because it is too large Load Diff

View File

@ -12,9 +12,9 @@
#include "overlay005/sprite_resource_manager.h"
#include "overlay023/ov23_0223E140.h"
#include "overlay023/ov23_02241F74.h"
#include "overlay023/ov23_0224B05C.h"
#include "overlay023/ov23_022521F0.h"
#include "overlay023/ov23_02253598.h"
#include "overlay023/secret_bases.h"
#include "overlay023/underground_item_list_menu.h"
#include "overlay023/underground_player.h"
#include "overlay023/underground_spheres.h"
@ -923,7 +923,7 @@ static BOOL UndergroundMenu_HandleTrapsMenu(SysTask *sysTask, void *data)
ctx->selectedID = UndergroundMenu_GetTrapAtSlot(input, menu);
if (ctx->selectedID == TRAP_DIGGER_DRILL) {
ov23_0224CD68();
SecretBases_UseDiggerDrill();
menu->state = UNDERGROUND_MENU_STATE_CLOSE_LEAVE_PAUSED;
} else {
UndergroundMenu_EraseCurrentMenu(menu);
@ -1660,7 +1660,7 @@ static BOOL UndergroundMenu_HandleGoodsMenu(SysTask *sysTask, void *data)
ctx->selectedID = UndergroundMenu_GetGoodAtSlotBag(input, menu);
UndergroundMenu_InitItemSelectedMenu(menu, UNDERGROUND_MENU_SELECTED_GOOD);
UndergroundTextPrinter_SetUndergroundGoodsNameWithIndex(CommManUnderground_GetCommonTextPrinter(), 2, ctx->selectedID);
UndergroundTextPrinter_SetGoodNameWithIndex(CommManUnderground_GetCommonTextPrinter(), 2, ctx->selectedID);
UndergroundTextPrinter_PrintTextInstant(CommManUnderground_GetCommonTextPrinter(), UndergroundCommon_Text_WhatWouldYouLikeToDo, FALSE, NULL);
menu->state = UNDERGROUND_MENU_STATE_GOOD_SELECTED;
@ -1701,7 +1701,7 @@ static BOOL UndergroundMenu_HandleGoodSelectedMenu(SysTask *sysTask, void *data)
if (input == UNDERGROUND_MENU_OPTION_TRASH) {
Sound_PlayEffect(SEQ_SE_CONFIRM);
Underground_RemoveGoodAtSlotBag(ctx->underground, ctx->selectedSlot);
UndergroundTextPrinter_SetUndergroundGoodsNameWithIndex(CommManUnderground_GetCommonTextPrinter(), 2, ctx->selectedID);
UndergroundTextPrinter_SetGoodNameWithIndex(CommManUnderground_GetCommonTextPrinter(), 2, ctx->selectedID);
UndergroundTextPrinter_PrintText(CommManUnderground_GetCommonTextPrinter(), UndergroundCommon_Text_ThrewAwayTheItem, FALSE, NULL);
}

View File

@ -11,10 +11,10 @@
#include "field/field_system.h"
#include "overlay023/ov23_0223E140.h"
#include "overlay023/ov23_02241F74.h"
#include "overlay023/ov23_0224B05C.h"
#include "overlay023/ov23_022521F0.h"
#include "overlay023/ov23_02253598.h"
#include "overlay023/ov23_02254A14.h"
#include "overlay023/secret_bases.h"
#include "overlay023/underground_item_list_menu.h"
#include "overlay023/underground_menu.h"
#include "overlay023/underground_player.h"
@ -56,12 +56,6 @@
#include "res/text/bank/underground_common.h"
#include "res/text/bank/underground_pc.h"
#define SECRET_BASE_WIDTH 32
#define SECRET_BASE_HEIGHT 32
#define PC_COORDINATE_X 15
#define PC_COORDINATE_Z 12
enum UndergroundPCMenuState {
UG_PC_MENU_STATE_INIT = 0,
UG_PC_MENU_STATE_MAIN,
@ -163,7 +157,7 @@ int UndergroundPC_GetPCAtCoordinates(Coordinates *coordinates, int dir)
if (z == PC_COORDINATE_Z) {
modifier = 0;
} else if (z == PC_COORDINATE_Z + SECRET_BASE_HEIGHT) {
} else if (z == PC_COORDINATE_Z + SECRET_BASE_DEPTH) {
modifier = MAX_CONNECTED_PLAYERS; // bug: would lead to out of bounds array access
} else {
return PC_NONE;
@ -370,7 +364,7 @@ static void UndergroundPC_InitMenu(UndergroundMenu *menu, int startBankEntry, in
int trueOptionCount = optionCount + 1;
BOOL radarEnabled = TRUE;
if (UndergroundRecord_GetFlagRank(SaveData_UndergroundRecord(menu->fieldSystem->saveData)) < BASE_FLAG_GOLD) {
if (UndergroundRecord_GetFlagRank(SaveData_GetUndergroundRecord(menu->fieldSystem->saveData)) < BASE_FLAG_GOLD) {
radarEnabled = FALSE;
trueOptionCount -= 1;
}
@ -651,7 +645,7 @@ static BOOL UndergroundPC_DecorateTask(FieldTask *task)
break;
case DECORATE_STATE_END:
if (IsScreenFadeDone()) {
ov23_0224B2C8(fieldSystem);
SecretBases_LoadCurrentPlayerBase(fieldSystem);
SystemFlag_SetDecoratedSecretBase(SaveData_GetVarsFlags(fieldSystem->saveData));
UndergroundPC_OpenPCMenu(fieldSystem);
Heap_Free(ctx);
@ -952,7 +946,7 @@ void UndergroundPC_ProcessTakenFlag(int unused0, int unused1, void *data, void *
}
UndergroundPlayer_TryTakeFlagFromBase(pcInteraction->playerNetID, pcInteraction->pcNetID);
ov23_0224D500(pcInteraction->playerNetID, pcInteraction->pcNetID);
SecretBases_QueueObtainedFlagMessage(pcInteraction->playerNetID, pcInteraction->pcNetID);
}
static void UndergroundPC_UpdateCursorPos(UndergroundMenu *menu)

View File

@ -14,7 +14,7 @@
#include "overlay005/ov5_021F5428.h"
#include "overlay005/ov5_021F55CC.h"
#include "overlay023/ov23_02241F74.h"
#include "overlay023/ov23_0224B05C.h"
#include "overlay023/secret_bases.h"
#include "overlay023/underground_menu.h"
#include "overlay023/underground_player_status.h"
#include "overlay023/underground_player_talk.h"
@ -233,7 +233,7 @@ void UndergroundPlayer_ProcessTalkEvent(int unused0, int unused1, void *data, vo
commPlayerMan->dummy.field3 = 0;
if (commPlayerMan->talkCount[event->talkTargetNetID] == 0) {
UndergroundRecord_IncrementPeopleMet(SaveData_UndergroundRecord(FieldSystem_GetSaveData(commPlayerMan->fieldSystem)), event->talkTargetNetID);
UndergroundRecord_IncrementPeopleMet(SaveData_GetUndergroundRecord(FieldSystem_GetSaveData(commPlayerMan->fieldSystem)), event->talkTargetNetID);
SystemVars_SetSpiritombCounter(varsFlags, SystemVars_GetSpiritombCounter(varsFlags) + 1);
SystemVars_SetUndergroundTalkCounter(varsFlags, SystemVars_GetUndergroundTalkCounter(varsFlags) + 1);
@ -399,7 +399,7 @@ void UndergroundPlayer_ProcessFlagEvent(int unused0, int unused1, void *data, vo
{
CommPlayerManager *commPlayerMan = CommPlayerMan_Get();
FlagEvent *event = data;
UndergroundRecord *undergroundRecord = SaveData_UndergroundRecord(FieldSystem_GetSaveData(commPlayerMan->fieldSystem));
UndergroundRecord *undergroundRecord = SaveData_GetUndergroundRecord(FieldSystem_GetSaveData(commPlayerMan->fieldSystem));
switch (event->type) {
case FLAG_EVENT_DISCARD:
@ -440,7 +440,7 @@ void UndergroundPlayer_ProcessFlagEvent(int unused0, int unused1, void *data, vo
UndergroundPlayer_HandleCurrentPlayerLosingFlag(event, FALSE, undergroundRecord);
}
ov23_0224D530(event->netID);
SecretBases_QueueTookBackFlagMessage(event->netID);
} else if (UndergroundPlayer_TryTransferFlag(event->netID, event->targetNetID)) {
if (event->netID == CommSys_CurNetId()) {
UndergroundRecord_IncrementFlagsStolen(undergroundRecord);
@ -453,7 +453,7 @@ void UndergroundPlayer_ProcessFlagEvent(int unused0, int unused1, void *data, vo
UndergroundPlayer_HandleCurrentPlayerLosingFlag(event, TRUE, undergroundRecord);
}
ov23_0224D518(event->netID, event->targetNetID);
SecretBases_QueueTookFlagMessage(event->netID, event->targetNetID);
}
break;
case FLAG_EVENT_TALK:
@ -473,8 +473,8 @@ void UndergroundPlayer_ProcessFlagEvent(int unused0, int unused1, void *data, vo
UndergroundPlayer_RemoveEmote(event->netID);
if (event->netID == CommSys_CurNetId()) {
UndergroundRecord *undergroundRecord = SaveData_UndergroundRecord(FieldSystem_GetSaveData(commPlayerMan->fieldSystem));
u8 flagRank = UndergroundRecord_GetFlagRank(undergroundRecord);
UndergroundRecord *undergroundRecord = SaveData_GetUndergroundRecord(FieldSystem_GetSaveData(commPlayerMan->fieldSystem));
u8 prevFlagRank = UndergroundRecord_GetFlagRank(undergroundRecord);
UndergroundRecord_IncrementCapturedFlagCount(undergroundRecord);
SystemFlag_SetDeliveredStolenFlag(SaveData_GetVarsFlags(commPlayerMan->fieldSystem->saveData));
@ -490,10 +490,10 @@ void UndergroundPlayer_ProcessFlagEvent(int unused0, int unused1, void *data, vo
CommPlayerMan_PauseFieldSystem();
Sound_PlayEffect(SEQ_SE_DP_UG_027);
if (flagRank == UndergroundRecord_GetFlagRank(undergroundRecord)) {
if (prevFlagRank == UndergroundRecord_GetFlagRank(undergroundRecord)) {
UndergroundTextPrinter_PrintText(CommManUnderground_GetCaptureFlagTextPrinter(), UndergroundCaptureFlag_Text_ObtainedFlagWasRegistered, TRUE, UndergroundPlayer_ResumeFieldSystemCallback);
} else {
CommSys_SendDataFixedSize(96, &flagRank);
CommSys_SendDataFixedSize(96, &prevFlagRank);
}
Sound_FadeOutAndPlayBGM(4, SEQ_TANKOU, 60, 0, 0xFF, NULL);
@ -799,7 +799,7 @@ BOOL UndergroundPlayer_TryTakeFlagFromBase(int flagTakerNetID, int flagOwnerNetI
TrainerInfo_Copy(trainerInfo, (TrainerInfo *)&commPlayerMan->heldFlagInfo[flagTakerNetID].ownerInfo);
if (flagOwnerNetID == CommSys_CurNetId()) {
UndergroundRecord *undergroundRecord = SaveData_UndergroundRecord(commPlayerMan->fieldSystem->saveData);
UndergroundRecord *undergroundRecord = SaveData_GetUndergroundRecord(commPlayerMan->fieldSystem->saveData);
UndergroundRecord_IncrementTimesFlagTaken(undergroundRecord);
}

View File

@ -530,7 +530,7 @@ static void UndergroundTalk_RemoveGiftedGood(TalkMenu *menu)
UndergroundTextPrinter_SetUndergroundGoodsName(CommManUnderground_GetCommonTextPrinter(), menu->sentGift.goodID);
UndergroundTextPrinter_PrintText(CommManUnderground_GetCommonTextPrinter(), UndergroundCommon_Text_GiftWasGiven, FALSE, NULL);
UndergroundRecord_IncrementGiftsGiven(SaveData_UndergroundRecord(FieldSystem_GetSaveData(menu->fieldSystem)));
UndergroundRecord_IncrementGiftsGiven(SaveData_GetUndergroundRecord(FieldSystem_GetSaveData(menu->fieldSystem)));
UndergroundMenu_RemoveSelectedGoodBag(menu->sentGift.goodID);
Sound_PlayEffect(SEQ_SE_DP_PIRORIRO2);
}
@ -959,7 +959,7 @@ static void UndergroundTalkResponse_HandleAcceptGiftMenu(SysTask *unused, Respon
if (input == 0) {
if (UndergroundInventory_TryAddGoodBag(menu->receivedGift.goodID)) {
UndergroundRecord_IncrementGiftsReceived(SaveData_UndergroundRecord(FieldSystem_GetSaveData(menu->fieldSystem)));
UndergroundRecord_IncrementGiftsReceived(SaveData_GetUndergroundRecord(FieldSystem_GetSaveData(menu->fieldSystem)));
Sound_PlayEffect(SEQ_SE_DP_PIRORIRO2);
UndergroundTalkResponse_RequestLinkTalkStateUpdate(menu, TALK_MENU_STATE_GIFT_ACCEPTED);

View File

@ -324,9 +324,9 @@ void UndergroundTextPrinter_SetUndergroundTrapNameWithIndex(UndergroundTextPrint
textPrinter->formattingNeeded = TRUE;
}
void UndergroundTextPrinter_SetUndergroundGoodsNameWithIndex(UndergroundTextPrinter *textPrinter, int idx, int goods)
void UndergroundTextPrinter_SetGoodNameWithIndex(UndergroundTextPrinter *textPrinter, int idx, int goodID)
{
StringTemplate_SetUndergroundGoodsName(textPrinter->template, idx, goods);
StringTemplate_SetUndergroundGoodsName(textPrinter->template, idx, goodID);
textPrinter->formattingNeeded = TRUE;
}

View File

@ -16,7 +16,7 @@
#include "overlay005/ov5_021F55CC.h"
#include "overlay023/ov23_0223E140.h"
#include "overlay023/ov23_02241F74.h"
#include "overlay023/ov23_0224B05C.h"
#include "overlay023/secret_bases.h"
#include "overlay023/underground_menu.h"
#include "overlay023/underground_player.h"
#include "overlay023/underground_player_status.h"
@ -1165,7 +1165,7 @@ void UndergroundTraps_TryPlaceTrap(int netID, int unused1, void *data, void *unu
int x = CommPlayer_GetXInFrontOfPlayerServer(netID);
int z = CommPlayer_GetZInFrontOfPlayerServer(netID);
if (CommPlayer_GetXServer(netID) == 0xFFFF && CommPlayer_GetZServer(netID) == 0xFFFF) {
if (CommPlayer_GetXServerIfActive(netID) == 0xFFFF && CommPlayer_GetZServerIfActive(netID) == 0xFFFF) {
placeResult.result = PLACE_TRAP_FAIL;
CommSys_SendDataServer(34, &placeResult, sizeof(PlaceTrapResult));
return;
@ -1605,7 +1605,7 @@ static BOOL CheckPlayerSteppedOnTrap(int netID)
return FALSE;
}
BuriedTrap *trap = UndergroundTraps_GetTrapAtCoordinates(CommPlayer_GetXServer(netID), CommPlayer_GetZServer(netID));
BuriedTrap *trap = UndergroundTraps_GetTrapAtCoordinates(CommPlayer_GetXServerIfActive(netID), CommPlayer_GetZServerIfActive(netID));
if (!trap) {
return FALSE;
@ -1681,7 +1681,7 @@ void UndergroundTraps_HandleTriggeredTrap(int unused0, int unused1, void *data,
return;
}
UndergroundRecord *undergroundRecord = SaveData_UndergroundRecord(FieldSystem_GetSaveData(trapsEnv->fieldSystem));
UndergroundRecord *undergroundRecord = SaveData_GetUndergroundRecord(FieldSystem_GetSaveData(trapsEnv->fieldSystem));
Sound_PlayEffect(SEQ_SE_DP_UG_007);
MI_CpuCopy8(trap, &trapsEnv->triggeredTraps[trap->victimNetID], sizeof(TriggeredTrap));
@ -1796,14 +1796,14 @@ BOOL UndergroundTraps_GetQueuedMessage(String *dest)
if (trapsEnv->triggeredTraps[netID].setterNetID >= MAX_CONNECTED_PLAYERS) {
TrainerInfo *trapVictimInfo = CommInfo_TrainerInfo(netID);
if (CommManUnderground_FormatStringWithTrainerName(trapVictimInfo, 0, UndergroundCommon_Text_PlayerTriggeredTrap, dest)) {
if (CommManUnderground_FormatCommonStringWithTrainerName(trapVictimInfo, 0, UndergroundCommon_Text_PlayerTriggeredTrap, dest)) {
return TRUE;
}
} else {
TrainerInfo *trapSetterInfo = CommInfo_TrainerInfo(trapsEnv->triggeredTraps[netID].setterNetID);
TrainerInfo *trapVictimInfo = CommInfo_TrainerInfo(netID);
if (CommManUnderground_FormatStringWith2TrainerNames(trapVictimInfo, trapSetterInfo, UndergroundCommon_Text_PlayerTriggeredOtherPlayersTrap, dest)) {
if (CommManUnderground_FormatCommonStringWith2TrainerNames(trapVictimInfo, trapSetterInfo, UndergroundCommon_Text_PlayerTriggeredOtherPlayersTrap, dest)) {
return TRUE;
}
}
@ -1815,7 +1815,7 @@ BOOL UndergroundTraps_GetQueuedMessage(String *dest)
trapsEnv->helpedNetIDs[netID] = 0xFF;
if (CommManUnderground_FormatStringWith2TrainerNames(helperInfo, trapVictimInfo, UndergroundCommon_Text_PlayerHelpedOtherPlayer, dest)) {
if (CommManUnderground_FormatCommonStringWith2TrainerNames(helperInfo, trapVictimInfo, UndergroundCommon_Text_PlayerHelpedOtherPlayer, dest)) {
return TRUE;
}
}
@ -1838,7 +1838,7 @@ BOOL UndergroundTraps_GetQueuedMessage2(String *dest)
trapsEnv->queuedAlertMessages[netID] = 0;
trainerInfo = CommInfo_TrainerInfo(netID);
if (CommManUnderground_FormatStringWithTrainerName(trainerInfo, 0, bankEntry, dest)) {
if (CommManUnderground_FormatCommonStringWithTrainerName(trainerInfo, 0, bankEntry, dest)) {
return TRUE;
}
}
@ -1847,7 +1847,7 @@ BOOL UndergroundTraps_GetQueuedMessage2(String *dest)
trapsEnv->queuedDisengageMessages[netID] = FALSE;
trainerInfo = CommInfo_TrainerInfo(netID);
if (CommManUnderground_FormatStringWithTrainerName(trainerInfo, 0, UndergroundCommon_Text_PlayerDisengagedTrap, dest)) {
if (CommManUnderground_FormatCommonStringWithTrainerName(trainerInfo, 0, UndergroundCommon_Text_PlayerDisengagedTrap, dest)) {
return TRUE;
}
}
@ -1856,7 +1856,7 @@ BOOL UndergroundTraps_GetQueuedMessage2(String *dest)
trainerInfo = CommInfo_TrainerInfo(netID);
trapsEnv->queuedEscapeMessages[netID] = FALSE;
if (CommManUnderground_FormatStringWithTrainerName(trainerInfo, 0, UndergroundCommon_Text_PlayerEscapedFromTrap, dest)) {
if (CommManUnderground_FormatCommonStringWithTrainerName(trainerInfo, 0, UndergroundCommon_Text_PlayerEscapedFromTrap, dest)) {
return TRUE;
}
}
@ -2497,7 +2497,7 @@ static void UndergroundTraps_SmokeTrapClientTask(SysTask *sysTask, void *data)
if (ctx->isTool) {
ctx->state = SMOKE_TRAP_STATE_TOOL_STEP_BACK;
} else {
Link_Message(41);
CommSys_SendMessage(41);
ctx->state = SMOKE_TRAP_STATE_WAIT_FOR_END;
}
}
@ -2530,7 +2530,7 @@ static void UndergroundTraps_SmokeTrapClientTask(SysTask *sysTask, void *data)
ctx->timer++;
if (ctx->timer > 8) {
Link_Message(41);
CommSys_SendMessage(41);
ctx->state = SMOKE_TRAP_STATE_WAIT_FOR_END;
}
break;
@ -2549,7 +2549,7 @@ void UndergroundTraps_EscapeTrapServer(int netID, int unused1, void *unused2, vo
UndergroundTraps_EndTrapEffectServer(netID, trapsEnv->triggeredTrapIDs[netID]);
EscapedTrap trap;
trap.allowToolStepBack = ov23_0224D87C(netID);
trap.allowToolStepBack = SecretBases_ClearToolEffectFlag(netID);
trap.trapID = trapsEnv->triggeredTrapIDs[netID];
trap.netID = netID;
trap.showOKEmote = TRUE;
@ -2571,7 +2571,7 @@ void UndergroundTraps_EndCurrentTrapEffectServer(int netID, int unused1, void *u
trapsEnv->triggeredTrapIDs[netID] = TRAP_NONE;
trapsEnv->triggeredTraps[netID].isTool = FALSE;
ov23_0224D87C(netID);
SecretBases_ClearToolEffectFlag(netID);
}
void UndergroundTraps_ProcessEscapedTrap(int unused0, int unused1, void *data, void *unused3)
@ -2642,7 +2642,7 @@ void UndergroundTraps_HelpLink(int netID, int linkNetID)
void UndergroundTraps_ProcessTrapHelp(int unused0, int unused1, void *data, void *unused3)
{
TrapHelpData *helpdata = data;
UndergroundRecord *undergroundRecord = SaveData_UndergroundRecord(FieldSystem_GetSaveData(trapsEnv->fieldSystem));
UndergroundRecord *undergroundRecord = SaveData_GetUndergroundRecord(FieldSystem_GetSaveData(trapsEnv->fieldSystem));
UndergroundPlayer_AddOKEmote(helpdata->helpeeNetID);
@ -2732,7 +2732,7 @@ void TrapRadar_Start(void)
TrapRadarContext *ctx = Heap_AllocAtEnd(HEAP_ID_FIELD1, sizeof(TrapRadarContext));
MI_CpuFill8(ctx, 0, sizeof(TrapRadarContext));
Link_Message(46);
CommSys_SendMessage(46);
trapsEnv->trapRadarContext = ctx;
trapsEnv->baseRadarTask = SysTask_Start(TrapRadar_TimerTask, ctx, 100);
@ -3068,7 +3068,7 @@ static void UndergroundTraps_HoleTrapClientTask(SysTask *sysTask, void *data)
ctx->timer++;
if (UndergroundTraps_CheckPlayerPosRelativeToTrap(ctx->toolInitialDir, PLAYER_TILE_BACK_FROM_TRAP) || ctx->timer > 60) {
Link_Message(41);
CommSys_SendMessage(41);
ctx->state = HOLE_TRAP_STATE_WAIT_FOR_FORCE_END;
}
break;
@ -3086,7 +3086,7 @@ static void UndergroundTraps_HoleTrapClientTask(SysTask *sysTask, void *data)
if (ctx->isTool) {
ctx->state = HOLE_TRAP_STATE_TOOL_STEP_BACK;
} else {
Link_Message(41);
CommSys_SendMessage(41);
ctx->state = HOLE_TRAP_STATE_END;
}
}
@ -3242,7 +3242,7 @@ static void UndergroundTraps_LeafTrapClientTask(SysTask *sysTask, void *data)
if (ctx->isTool) {
ctx->state = LEAF_TRAP_STATE_TOOL_STEP_BACK;
} else {
Link_Message(41);
CommSys_SendMessage(41);
ctx->state = LEAF_TRAP_STATE_WAIT_FOR_END;
}
}
@ -3273,7 +3273,7 @@ static void UndergroundTraps_LeafTrapClientTask(SysTask *sysTask, void *data)
ctx->timer++;
if (ctx->timer > 8) {
Link_Message(41);
CommSys_SendMessage(41);
ctx->state = LEAF_TRAP_STATE_WAIT_FOR_END;
}
break;
@ -3651,7 +3651,7 @@ static void UndergroundTraps_BubbleTrapClientTask(SysTask *sysTask, void *data)
if (ctx->isTool) {
ctx->state = BUBBLE_TRAP_STATE_TOOL_STEP_BACK;
} else {
Link_Message(41);
CommSys_SendMessage(41);
ctx->state = BUBBLE_TRAP_STATE_WAIT_FOR_END;
}
}
@ -3685,7 +3685,7 @@ static void UndergroundTraps_BubbleTrapClientTask(SysTask *sysTask, void *data)
ctx->timer++;
if (ctx->timer > 8) {
Link_Message(41);
CommSys_SendMessage(41);
ctx->state = BUBBLE_TRAP_STATE_WAIT_FOR_END;
}
break;
@ -4235,7 +4235,7 @@ static void UndergroundTraps_RockTrapClientTask(SysTask *sysTask, void *data)
if (ctx->isTool) {
ctx->state = ROCK_TRAP_STATE_TOOL_STEP_BACK;
} else {
Link_Message(41);
CommSys_SendMessage(41);
ctx->state = ROCK_TRAP_STATE_WAIT_FOR_END;
}
}
@ -4265,7 +4265,7 @@ static void UndergroundTraps_RockTrapClientTask(SysTask *sysTask, void *data)
ctx->timer++;
if (ctx->timer > 8) {
Link_Message(41);
CommSys_SendMessage(41);
ctx->state = ROCK_TRAP_STATE_WAIT_FOR_END;
}
break;
@ -4523,7 +4523,7 @@ static void UndergroundTraps_FireTrapClientTask(SysTask *sysTask, void *data)
if (ctx->isTool) {
ctx->state = FIRE_TRAP_STATE_TOOL_STEP_BACK;
} else {
Link_Message(41);
CommSys_SendMessage(41);
ctx->state = FIRE_TRAP_STATE_WAIT_FOR_END;
}
}
@ -4553,7 +4553,7 @@ static void UndergroundTraps_FireTrapClientTask(SysTask *sysTask, void *data)
ctx->timer++;
if (ctx->timer > 8) {
Link_Message(41);
CommSys_SendMessage(41);
ctx->state = FIRE_TRAP_STATE_WAIT_FOR_END;
}
break;
@ -4649,7 +4649,7 @@ static void UndergroundTraps_AlertTrapClientTask(SysTask *sysTask, void *data)
if (ctx->isTool) {
ctx->state = ALERT_TRAP_STATE_TOOL_STEP_BACK;
} else {
Link_Message(41);
CommSys_SendMessage(41);
ctx->state = ALERT_TRAP_STATE_WAIT_FOR_END;
}
break;
@ -4671,7 +4671,7 @@ static void UndergroundTraps_AlertTrapClientTask(SysTask *sysTask, void *data)
ctx->timer++;
if (ctx->timer > 8) {
Link_Message(41);
CommSys_SendMessage(41);
ctx->state = ALERT_TRAP_STATE_WAIT_FOR_END;
}
break;

View File

@ -181,7 +181,7 @@ int ov58_021D0D80(ApplicationManager *appMan, int *param1)
SetScreenColorBrightness(DS_SCREEN_MAIN, COLOR_BLACK);
SetScreenColorBrightness(DS_SCREEN_SUB, COLOR_BLACK);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_UNK_17, FADE_TYPE_UNK_17, COLOR_BLACK, 16, 1, HEAP_ID_39);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_CIRCLE_IN, FADE_TYPE_CIRCLE_IN, COLOR_BLACK, 16, 1, HEAP_ID_39);
{
UnkStruct_0203DDFC *v2 = (UnkStruct_0203DDFC *)ApplicationManager_Args(appMan);
@ -1145,7 +1145,7 @@ static int ov58_021D20C8(UnkStruct_02095EAC *param0, int param1)
static int ov58_021D20F4(UnkStruct_02095EAC *param0, int param1)
{
if (++param0->unk_374 > 60) {
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_UNK_16, FADE_TYPE_UNK_16, COLOR_BLACK, 16, 1, HEAP_ID_39);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_CIRCLE_OUT, FADE_TYPE_CIRCLE_OUT, COLOR_BLACK, 16, 1, HEAP_ID_39);
param1 = 3;
}
@ -1235,7 +1235,7 @@ static int ov58_021D2270(UnkStruct_02095EAC *param0, int param1)
static int ov58_021D2298(UnkStruct_02095EAC *param0, int param1)
{
if (CommTiming_IsSyncState(200) || (CommSys_ConnectedCount() == 1)) {
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_UNK_16, FADE_TYPE_UNK_16, COLOR_BLACK, 16, 1, HEAP_ID_39);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_CIRCLE_OUT, FADE_TYPE_CIRCLE_OUT, COLOR_BLACK, 16, 1, HEAP_ID_39);
param1 = 3;
}

View File

@ -193,7 +193,7 @@ int ov59_021D0D80(ApplicationManager *appMan, int *param1)
ResetScreenMasterBrightness(DS_SCREEN_MAIN);
ResetScreenMasterBrightness(DS_SCREEN_SUB);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_UNK_17, FADE_TYPE_UNK_17, COLOR_BLACK, 16, 1, HEAP_ID_51);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_CIRCLE_IN, FADE_TYPE_CIRCLE_IN, COLOR_BLACK, 16, 1, HEAP_ID_51);
ov59_021D1388(v0, v1);
SetVBlankCallback(ov59_021D1100, v0);
@ -1130,7 +1130,7 @@ static int ov59_021D1E98(UnkStruct_020961E8 *param0, int param1)
static int ov59_021D1EB8(UnkStruct_020961E8 *param0, int param1)
{
if (++param0->unk_3B4 > 60) {
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_UNK_16, FADE_TYPE_UNK_16, COLOR_BLACK, 16, 1, HEAP_ID_51);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_CIRCLE_OUT, FADE_TYPE_CIRCLE_OUT, COLOR_BLACK, 16, 1, HEAP_ID_51);
param1 = 3;
}
@ -1226,7 +1226,7 @@ static int ov59_021D2064(UnkStruct_020961E8 *param0, int param1)
{
if (CommTiming_IsSyncState(201)) {
CommMan_SetErrorHandling(0, 0);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_UNK_16, FADE_TYPE_UNK_16, COLOR_BLACK, 16, 1, HEAP_ID_51);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_CIRCLE_OUT, FADE_TYPE_CIRCLE_OUT, COLOR_BLACK, 16, 1, HEAP_ID_51);
param1 = 3;
}

View File

@ -1228,7 +1228,7 @@ static int ov64_0222EA70(UnkStruct_ov64_0222F038 *param0, UnkStruct_ov64_0222E06
switch (param1->unk_04) {
case 0:
ov64_0222EE20(param0, param1, param2);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_UNK_17, FADE_TYPE_UNK_17, COLOR_BLACK, 6, 1, heapID);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_CIRCLE_IN, FADE_TYPE_CIRCLE_IN, COLOR_BLACK, 6, 1, heapID);
param1->unk_04 = 1;
break;
case 1:
@ -1262,7 +1262,7 @@ static int ov64_0222EA70(UnkStruct_ov64_0222F038 *param0, UnkStruct_ov64_0222E06
}
break;
case 4:
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_UNK_16, FADE_TYPE_UNK_16, COLOR_BLACK, 6, 1, heapID);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_CIRCLE_OUT, FADE_TYPE_CIRCLE_OUT, COLOR_BLACK, 6, 1, heapID);
param1->unk_04++;
break;
case 5:
@ -1272,7 +1272,7 @@ static int ov64_0222EA70(UnkStruct_ov64_0222F038 *param0, UnkStruct_ov64_0222E06
break;
case 6:
ov64_0222EE20(param0, param1, param2);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_UNK_17, FADE_TYPE_UNK_17, COLOR_BLACK, 6, 1, heapID);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_CIRCLE_IN, FADE_TYPE_CIRCLE_IN, COLOR_BLACK, 6, 1, heapID);
param1->unk_04 = 7;
break;
case 7:
@ -1652,7 +1652,7 @@ static int ov64_0222F0C4(UnkStruct_ov64_0222F0C4 *param0, UnkStruct_ov64_0222E06
param1->unk_04 = 1;
break;
case 10:
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_UNK_16, FADE_TYPE_UNK_16, COLOR_BLACK, 6, 1, heapID);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_CIRCLE_OUT, FADE_TYPE_CIRCLE_OUT, COLOR_BLACK, 6, 1, heapID);
v2 = ov64_0222FF38(param0);
v1 = SaveData_GetWiFiList(param1->saveData);
@ -1673,7 +1673,7 @@ static int ov64_0222F0C4(UnkStruct_ov64_0222F0C4 *param0, UnkStruct_ov64_0222E06
sub_0202AF0C(v1, param1->unk_08.unk_04[v2], param1->unk_2C.unk_00);
case 13:
ov64_0222F668(param0, param1, param2, heapID);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_UNK_17, FADE_TYPE_UNK_17, COLOR_BLACK, 6, 1, heapID);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_CIRCLE_IN, FADE_TYPE_CIRCLE_IN, COLOR_BLACK, 6, 1, heapID);
param1->unk_04 = 14;
break;
case 14:

View File

@ -1551,7 +1551,7 @@ static void ov65_02237970(UnkStruct_ov65_022367A8 *param0)
v1 = CommInfo_CountReceived();
if (CommInfo_IsReceivingData()) {
if (!sub_02036254(5)) {
if (!CommSys_IsCmdQueuedServer(5)) {
v2 = 1;
}
}

View File

@ -60,7 +60,7 @@ BOOL ov83_0223D508(int param0, const void *param1, int param2, UnkStruct_ov83_02
if (sub_0203895C() == 29) {
BOOL v0 = 1;
if (sub_0203626C(param0)) {
if (CommSys_IsCmdQueued(param0)) {
v0 = 0;
}

View File

@ -196,7 +196,7 @@ int ov109_021D3D50(ApplicationManager *appMan, int *param1)
SetAutorepeat(4, 8);
ov109_021D40D0();
ov109_021D40F0(v0->unk_14);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_UNK_17, FADE_TYPE_UNK_17, COLOR_BLACK, 16, 1, HEAP_ID_95);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_CIRCLE_IN, FADE_TYPE_CIRCLE_IN, COLOR_BLACK, 16, 1, HEAP_ID_95);
ov109_021D4300(v0, v1);
SetVBlankCallback(ov109_021D40A8, v0);
ov109_021D41F8(v0, v1);
@ -1104,7 +1104,7 @@ static int ov109_021D4D9C(UnkStruct_ov109_021D5140 *param0, int param1)
static int ov109_021D4DBC(UnkStruct_ov109_021D5140 *param0, int param1)
{
if (++param0->unk_3C4 > 60) {
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_UNK_16, FADE_TYPE_UNK_16, COLOR_BLACK, 16, 1, HEAP_ID_95);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_CIRCLE_OUT, FADE_TYPE_CIRCLE_OUT, COLOR_BLACK, 16, 1, HEAP_ID_95);
param1 = 3;
}
@ -1198,7 +1198,7 @@ static int ov109_021D4F6C(UnkStruct_ov109_021D5140 *param0, int param1)
{
if (CommTiming_IsSyncState(202)) {
CommMan_SetErrorHandling(0, 0);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_UNK_16, FADE_TYPE_UNK_16, COLOR_BLACK, 16, 1, HEAP_ID_95);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_CIRCLE_OUT, FADE_TYPE_CIRCLE_OUT, COLOR_BLACK, 16, 1, HEAP_ID_95);
param1 = 3;
}
@ -1289,7 +1289,7 @@ static int ov109_021D5098(UnkStruct_ov109_021D5140 *param0, int param1)
static int ov109_021D510C(UnkStruct_ov109_021D5140 *param0, int param1)
{
sub_0205BEA8(12);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_UNK_16, FADE_TYPE_UNK_16, COLOR_BLACK, 16, 1, HEAP_ID_95);
StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_CIRCLE_OUT, FADE_TYPE_CIRCLE_OUT, COLOR_BLACK, 16, 1, HEAP_ID_95);
param0->unk_08 = 1;
param1 = 3;

View File

@ -6456,7 +6456,7 @@ static BOOL ScrCmd_GetCapturedFlagCount(ScriptContext *ctx)
UndergroundRecord *undergroundRecord;
u16 *destFlagCount = ScriptContext_GetVarPointer(ctx);
undergroundRecord = SaveData_UndergroundRecord(saveData);
undergroundRecord = SaveData_GetUndergroundRecord(saveData);
*destFlagCount = UndergroundRecord_GetCapturedFlagCount(undergroundRecord);
return FALSE;

View File

@ -94,10 +94,10 @@ static const ScreenFadeFunc sScreenFadeFuncs[FADE_TYPE_MAX] = {
[FADE_TYPE_UNK_13] = sub_0200FAEC,
[FADE_TYPE_UNK_14] = sub_0200FB18,
[FADE_TYPE_UNK_15] = sub_0200FB4C,
[FADE_TYPE_UNK_16] = sub_0200FB7C,
[FADE_TYPE_UNK_17] = sub_0200FBA8,
[FADE_TYPE_UNK_18] = sub_0200FBD4,
[FADE_TYPE_UNK_19] = sub_0200FC00,
[FADE_TYPE_CIRCLE_OUT] = sub_0200FB7C,
[FADE_TYPE_CIRCLE_IN] = sub_0200FBA8,
[FADE_TYPE_TOP_HALF_CIRCLE_OUT] = sub_0200FBD4,
[FADE_TYPE_TOP_HALF_CIRCLE_IN] = sub_0200FC00,
[FADE_TYPE_UNK_20] = sub_0200FC2C,
[FADE_TYPE_UNK_21] = sub_0200FC58,
[FADE_TYPE_UNK_22] = sub_0200FC84,

View File

@ -109,7 +109,7 @@ u8 TrainerCard_CalculateLevel(FieldSystem *fieldSystem)
SaveData *saveData = FieldSystem_GetSaveData(fieldSystem);
GameRecords *gameRecords = SaveData_GetGameRecords(saveData);
VarsFlags *varsFlags = SaveData_GetVarsFlags(saveData);
UndergroundRecord *undergroundRecord = SaveData_UndergroundRecord(saveData);
UndergroundRecord *undergroundRecord = SaveData_GetUndergroundRecord(saveData);
BattleFrontier *frontier = SaveData_GetBattleFrontier(saveData);
trainerCardLevel = 0;

View File

@ -4,12 +4,11 @@
#include <string.h>
#include "constants/charcode.h"
#include "constants/goods.h"
#include "constants/items.h"
#include "constants/map_object.h"
#include "constants/traps.h"
#include "struct_defs/struct_02029894.h"
#include "struct_defs/struct_02029894_sub1.h"
#include "struct_defs/struct_02029894_sub2.h"
#include "struct_defs/underground.h"
#include "struct_defs/underground_record.h"
@ -87,9 +86,9 @@ int Underground_SaveSize(void)
return sizeof(Underground);
}
int sub_02028554(void)
int SecretBase_Size(void)
{
return sizeof(UnkStruct_02029894);
return sizeof(SecretBase);
}
int UndergroundRecord_Size(void)
@ -471,7 +470,7 @@ void sub_02028B20(Underground *underground, int param1)
underground->placedGoodSlots[param1 - 1] = 0;
}
void sub_02028B34(Underground *underground)
void Underground_InitPlacedGoodSlots(Underground *underground)
{
MI_CpuFill8(underground->placedGoodSlots, 0, MAX_PLACED_GOODS);
}
@ -977,135 +976,134 @@ int Underground_GetStepCount(Underground *underground)
return underground->stepCount;
}
void sub_020292C0(UnkStruct_02029894 *param0)
void SecretBase_Init(SecretBase *secretBase)
{
MI_CpuFill8(param0, 0, sizeof(UnkStruct_02029894));
MI_CpuFill8(secretBase, 0, sizeof(SecretBase));
}
void sub_020292CC(UnkStruct_02029894 *param0)
void SecretBase_Clear(SecretBase *secretBase)
{
MI_CpuClear8(param0->unk_00, 15 * sizeof(UnkStruct_02029894_sub1));
MI_CpuClear8(param0->unk_2D, 16 * sizeof(UnkStruct_02029894_sub2));
MI_CpuClear8(secretBase->placedGoods, MAX_PLACED_GOODS * sizeof(PlacedGood));
MI_CpuClear8(secretBase->boulders, MAX_BASE_BOULDERS * sizeof(SecretBaseBoulder));
param0->unk_8C = 0;
param0->unk_8E = 0;
param0->unk_90 = 0;
param0->unk_91 = 0;
secretBase->entranceX = 0;
secretBase->entranceZ = 0;
secretBase->entranceDir = DIR_NORTH;
secretBase->active = FALSE;
}
void sub_02029300(UnkStruct_02029894 *param0)
void SecretBase_SetInactive(SecretBase *secretBase)
{
param0->unk_91 = 0;
secretBase->active = FALSE;
}
void sub_02029308(UnkStruct_02029894 *param0, int param1, int param2, int param3, int param4)
void SecretBase_AddGoodAtIndex(SecretBase *secretBase, int index, int goodID, int x, int z)
{
GF_ASSERT(param1 < (15 + 16 + 1));
GF_ASSERT(param3 < 32);
GF_ASSERT(param4 < 32);
GF_ASSERT(param0);
GF_ASSERT(index < MAX_PLACED_GOODS + MAX_BASE_BOULDERS + 1);
GF_ASSERT(x < 32);
GF_ASSERT(z < 32);
GF_ASSERT(secretBase);
if (0 == param1) {
if (index == 0) {
return;
} else if (param1 < (15 + 1)) {
param0->unk_00[param1 - 1].unk_00 = param3;
param0->unk_00[param1 - 1].unk_01 = param4;
param0->unk_00[param1 - 1].unk_02 = param2;
} else if (index < (MAX_PLACED_GOODS + 1)) {
secretBase->placedGoods[index - 1].x = x;
secretBase->placedGoods[index - 1].z = z;
secretBase->placedGoods[index - 1].goodID = goodID;
} else {
param0->unk_2D[param1 - 1 - 15].unk_00 = param3;
param0->unk_2D[param1 - 1 - 15].unk_01 = param4;
secretBase->boulders[index - 1 - MAX_PLACED_GOODS].x = x;
secretBase->boulders[index - 1 - MAX_PLACED_GOODS].z = z;
}
}
void sub_02029364(UnkStruct_02029894 *param0, int param1, int param2, int param3)
void SecretBase_SetGoodCoordsAtIndex(SecretBase *secretBase, int index, int x, int z)
{
int v0 = sub_020293B0(param0, param1);
sub_02029308(param0, param1, v0, param2, param3);
int goodID = SecretBase_GetGoodIDAtIndex(secretBase, index);
SecretBase_AddGoodAtIndex(secretBase, index, goodID, x, z);
}
// this is off-by-one compared to the actual flag type
static int sub_02029384(const UnkStruct_02029894 *param0)
static int SecretBase_GetPCGoodID(const SecretBase *secretBase)
{
int numFlags = param0->unk_50.capturedFlagCount;
int numFlags = secretBase->undergroundRecord.capturedFlagCount;
if (FLAG_CAPTURED_COUNT_PLATINUM <= numFlags) {
return 5;
} else if (FLAG_CAPTURED_COUNT_GOLD <= numFlags) {
return 4;
} else if (FLAG_CAPTURED_COUNT_SILVER <= numFlags) {
return 3;
} else if (FLAG_CAPTURED_COUNT_BRONZE <= numFlags) {
return 2;
if (numFlags >= FLAG_CAPTURED_COUNT_PLATINUM) {
return UG_GOOD_PC_PLATINUM_FLAG;
} else if (numFlags >= FLAG_CAPTURED_COUNT_GOLD) {
return UG_GOOD_PC_GOLD_FLAG;
} else if (numFlags >= FLAG_CAPTURED_COUNT_SILVER) {
return UG_GOOD_PC_SILVER_FLAG;
} else if (numFlags >= FLAG_CAPTURED_COUNT_BRONZE) {
return UG_GOOD_PC_BRONZE_FLAG;
}
return 1;
return UG_GOOD_PC_NORMAL_FLAG;
}
int sub_020293B0(const UnkStruct_02029894 *param0, int param1)
int SecretBase_GetGoodIDAtIndex(const SecretBase *secretBase, int index)
{
GF_ASSERT(param1 < (15 + 16 + 1));
GF_ASSERT(index < MAX_PLACED_GOODS + MAX_BASE_BOULDERS + 1);
if (0 == param1) {
return sub_02029384(param0);
} else if (param1 < (15 + 1)) {
return param0->unk_00[param1 - 1].unk_02;
} else if ((param0->unk_2D[param1 - 1 - 15].unk_00 != 0) && (param0->unk_2D[param1 - 1 - 15].unk_01 != 0)) {
return 6;
if (index == 0) {
return SecretBase_GetPCGoodID(secretBase);
} else if (index < (MAX_PLACED_GOODS + 1)) {
return secretBase->placedGoods[index - 1].goodID;
} else if (secretBase->boulders[index - 1 - MAX_PLACED_GOODS].x != 0 && secretBase->boulders[index - 1 - MAX_PLACED_GOODS].z != 0) {
return UG_GOOD_BIG_BOULDER;
}
return 0;
return UG_GOOD_NONE;
}
int sub_020293FC(const UnkStruct_02029894 *param0, int param1)
int SecretBase_GetGoodXCoordAtIndex(const SecretBase *secretBase, int index)
{
GF_ASSERT(param1 < (15 + 16 + 1));
GF_ASSERT(index < MAX_PLACED_GOODS + MAX_BASE_BOULDERS + 1);
if (0 == param1) {
return 15;
} else if (param1 < (15 + 1)) {
return param0->unk_00[param1 - 1].unk_00;
if (index == 0) {
return PC_COORDINATE_X;
} else if (index < (MAX_PLACED_GOODS + 1)) {
return secretBase->placedGoods[index - 1].x;
}
return param0->unk_2D[param1 - 1 - 15].unk_00;
return secretBase->boulders[index - 1 - MAX_PLACED_GOODS].x;
}
int sub_0202942C(const UnkStruct_02029894 *param0, int param1)
int SecretBase_GetGoodZCoordAtIndex(const SecretBase *secretBase, int index)
{
GF_ASSERT(param1 < (15 + 16 + 1));
GF_ASSERT(index < MAX_PLACED_GOODS + MAX_BASE_BOULDERS + 1);
if (0 == param1) {
return 12;
} else if (param1 < (15 + 1)) {
return param0->unk_00[param1 - 1].unk_01;
if (index == 0) {
return PC_COORDINATE_Z;
} else if (index < (MAX_PLACED_GOODS + 1)) {
return secretBase->placedGoods[index - 1].z;
}
return param0->unk_2D[param1 - 1 - 15].unk_01;
return secretBase->boulders[index - 1 - MAX_PLACED_GOODS].z;
}
int sub_GetMaxRemovableRocks(const UnkStruct_02029894 *param0)
int SecretBase_GetUnremovableBoulderCount(const SecretBase *secretBase)
{
if (param0->unk_50.capturedFlagCount >= FLAG_CAPTURED_COUNT_PLATINUM) {
if (secretBase->undergroundRecord.capturedFlagCount >= FLAG_CAPTURED_COUNT_PLATINUM) {
return 0;
} else if (param0->unk_50.capturedFlagCount >= FLAG_CAPTURED_COUNT_GOLD) {
} else if (secretBase->undergroundRecord.capturedFlagCount >= FLAG_CAPTURED_COUNT_GOLD) {
return 6;
} else if (param0->unk_50.capturedFlagCount >= FLAG_CAPTURED_COUNT_SILVER) {
} else if (secretBase->undergroundRecord.capturedFlagCount >= FLAG_CAPTURED_COUNT_SILVER) {
return 11;
} else if (param0->unk_50.capturedFlagCount >= FLAG_CAPTURED_COUNT_BRONZE) {
} else if (secretBase->undergroundRecord.capturedFlagCount >= FLAG_CAPTURED_COUNT_BRONZE) {
return 15;
}
return 16;
return MAX_BASE_BOULDERS;
}
int sub_GetMaxDisplayItemsCount(const UnkStruct_02029894 *param0)
int SecretBase_GetPlacedGoodsLimit(const SecretBase *secretBase)
{
if (param0->unk_50.capturedFlagCount >= FLAG_CAPTURED_COUNT_PLATINUM) {
return 15;
} else if (param0->unk_50.capturedFlagCount >= FLAG_CAPTURED_COUNT_GOLD) {
return 15;
} else if (param0->unk_50.capturedFlagCount >= FLAG_CAPTURED_COUNT_SILVER) {
return 15;
} else if (param0->unk_50.capturedFlagCount >= FLAG_CAPTURED_COUNT_BRONZE) {
if (secretBase->undergroundRecord.capturedFlagCount >= FLAG_CAPTURED_COUNT_PLATINUM) {
return MAX_PLACED_GOODS;
} else if (secretBase->undergroundRecord.capturedFlagCount >= FLAG_CAPTURED_COUNT_GOLD) {
return MAX_PLACED_GOODS;
} else if (secretBase->undergroundRecord.capturedFlagCount >= FLAG_CAPTURED_COUNT_SILVER) {
return MAX_PLACED_GOODS;
} else if (secretBase->undergroundRecord.capturedFlagCount >= FLAG_CAPTURED_COUNT_BRONZE) {
return 12;
}
@ -1284,73 +1282,73 @@ void UndergroundRecord_IncrementTimesFlagTaken(UndergroundRecord *undergroundRec
}
}
int UndergroundRecord_GetFlagsRecovered(const UndergroundRecord *param0)
int UndergroundRecord_GetFlagsRecovered(const UndergroundRecord *undergroundRecord)
{
return param0->flagsRecovered;
return undergroundRecord->flagsRecovered;
}
void UndergroundRecord_IncrementFlagsRecovered(UndergroundRecord *param0)
void UndergroundRecord_IncrementFlagsRecovered(UndergroundRecord *undergroundRecord)
{
if (param0->flagsRecovered < 999999) {
param0->flagsRecovered++;
if (undergroundRecord->flagsRecovered < 999999) {
undergroundRecord->flagsRecovered++;
}
}
int sub_0202981C(const UndergroundRecord *param0)
int UndergroundRecord_GetTimesBaseMoved(const UndergroundRecord *undergroundRecord)
{
return param0->unk_34_0;
return undergroundRecord->unk_34_0;
}
void sub_02029824(UndergroundRecord *param0)
void UndergroundRecord_IncrementTimesBaseMoved(UndergroundRecord *undergroundRecord)
{
if (param0->unk_34_0 < 999999) {
param0->unk_34_0++;
if (undergroundRecord->unk_34_0 < 999999) {
undergroundRecord->unk_34_0++;
}
}
void sub_02029854(UnkStruct_02029894 *param0, int param1, int param2, int param3)
void SecretBase_SetEntrance(SecretBase *secretBase, int x, int z, int dir)
{
param0->unk_8C = param1;
param0->unk_8E = param2;
param0->unk_90 = param3;
param0->unk_91 = 1;
secretBase->entranceX = x;
secretBase->entranceZ = z;
secretBase->entranceDir = dir;
secretBase->active = TRUE;
}
int sub_02029874(const UnkStruct_02029894 *param0)
int SecretBase_GetEntranceXCoord(const SecretBase *secretBase)
{
return param0->unk_8C;
return secretBase->entranceX;
}
int sub_0202987C(const UnkStruct_02029894 *param0)
int SecretBase_GetEntranceZCoord(const SecretBase *secretBase)
{
return param0->unk_8E;
return secretBase->entranceZ;
}
int sub_02029884(const UnkStruct_02029894 *param0)
int SecretBase_GetEntranceDir(const SecretBase *secretBase)
{
return param0->unk_90;
return secretBase->entranceDir;
}
BOOL sub_0202988C(const UnkStruct_02029894 *param0)
BOOL SecretBase_IsActive(const SecretBase *secretBase)
{
return param0->unk_91;
return secretBase->active;
}
UnkStruct_02029894 *sub_02029894(SaveData *saveData)
SecretBase *SaveData_GetSecretBase(SaveData *saveData)
{
Underground *v0 = SaveData_SaveTable(saveData, SAVE_TABLE_ENTRY_UNDERGROUND);
return &v0->unk_00;
Underground *underground = SaveData_SaveTable(saveData, SAVE_TABLE_ENTRY_UNDERGROUND);
return &underground->secretBase;
}
UndergroundRecord *SaveData_UndergroundRecord(SaveData *saveData)
UndergroundRecord *SaveData_GetUndergroundRecord(SaveData *saveData)
{
Underground *v0 = SaveData_SaveTable(saveData, SAVE_TABLE_ENTRY_UNDERGROUND);
return &v0->unk_00.unk_50;
Underground *underground = SaveData_SaveTable(saveData, SAVE_TABLE_ENTRY_UNDERGROUND);
return &underground->secretBase.undergroundRecord;
}
UndergroundRecord *sub_020298AC(UnkStruct_02029894 *param0)
UndergroundRecord *SecretBase_GetUndergroundRecord(SecretBase *secretBase)
{
return &param0->unk_50;
return &secretBase->undergroundRecord;
}
Underground *SaveData_GetUnderground(SaveData *saveData)

View File

@ -305,7 +305,7 @@ void CommQueueMan_Delete(CommQueueMan *param0)
Heap_Free(param0->unk_18);
}
BOOL CommQueue_CompareCmd(CommQueueMan *param0, int param1)
BOOL CommQueueMan_IsCmdInQueue(CommQueueMan *param0, int param1)
{
int v0;
UnkStruct_020322D8 *v1 = param0->unk_18;

View File

@ -781,10 +781,10 @@ static int sub_02033DDC(void)
BOOL CommServerClient_IsInClosedSecretBase(void)
{
if (sCommServerClient && (sCommServerClient->unk_1516 == 3)) {
return 1;
return TRUE;
}
return 0;
return FALSE;
}
BOOL CommServerClient_IsInitialized(void)

View File

@ -107,7 +107,7 @@ static BOOL IsMovementWalkOnSpotSlow(enum MovementAction pamovementActionram0);
static void sub_020615C8(PlayerAvatar *playerAvatar);
static int sub_020615E0(PlayerAvatar *playerAvatar, MapObject *mapObj, int param2);
static int PlayerAvatar_IsUnderCyclingRoad(PlayerAvatar *playerAvatar, u32 param1, int param2);
static void sub_02060B64(PlayerAvatar *playerAvatar, MapObject *mapObj, u32 param2, int param3);
static void sub_02060B64(PlayerAvatar *playerAvatar, MapObject *mapObj, enum MovementAction movementAction, int param3);
static const UnkStruct_020EDB04 Unk_020EDB04[4] = {
{ 0x0, 0x0, -1 },
@ -1666,10 +1666,10 @@ static void sub_02060AA0(PlayerAvatar *playerAvatar, MapObject *mapObj, int para
sub_02060B64(playerAvatar, mapObj, v2, v1);
}
static void sub_02060B64(PlayerAvatar *playerAvatar, MapObject *mapObj, u32 param2, int param3)
static void sub_02060B64(PlayerAvatar *playerAvatar, MapObject *mapObj, enum MovementAction movementAction, int param3)
{
sub_0205EC20(playerAvatar, param2, param3);
LocalMapObj_SetAnimationCode(mapObj, param2);
sub_0205EC20(playerAvatar, movementAction, param3);
LocalMapObj_SetAnimationCode(mapObj, movementAction);
}
u32 sub_02060B7C(PlayerAvatar *playerAvatar, MapObject *mapObj, int param2)
@ -2316,10 +2316,10 @@ int sub_02061544(PlayerAvatar *playerAvatar)
return LocalMapObj_IsAnimationSet(v0);
}
void PlayerAvatar_SetAnimationCode(PlayerAvatar *playerAvatar, u32 param1, int param2)
void PlayerAvatar_SetAnimationCode(PlayerAvatar *playerAvatar, enum MovementAction movementAction, int param2)
{
MapObject *v0 = Player_MapObject(playerAvatar);
sub_02060B64(playerAvatar, v0, param1, param2);
sub_02060B64(playerAvatar, v0, movementAction, param2);
}
u32 sub_0206156C(PlayerAvatar *playerAvatar, int param1)

View File

@ -130,7 +130,7 @@ u8 sub_02071F28(FieldSystem *fieldSystem)
saveData = FieldSystem_GetSaveData(fieldSystem);
gameRecords = SaveData_GetGameRecords(saveData);
varsFlags = SaveData_GetVarsFlags(saveData);
undergroundRecord = SaveData_UndergroundRecord(saveData);
undergroundRecord = SaveData_GetUndergroundRecord(saveData);
frontier = SaveData_GetBattleFrontier(saveData);
trainerCardLevel = 0;

View File

@ -7,8 +7,8 @@
#include "overlay023/ov23_0223E140.h"
#include "overlay023/ov23_02241F74.h"
#include "overlay023/ov23_0224B05C.h"
#include "overlay023/ov23_02253598.h"
#include "overlay023/secret_bases.h"
#include "overlay023/underground_pc.h"
#include "overlay023/underground_player.h"
#include "overlay023/underground_player_talk.h"
@ -77,15 +77,15 @@ static const CommCmdTable Unk_020F68A4[] = {
{ ov23_02242654, CommPacketSizeOf_Variable, NULL }, // 50
{ UndergroundTraps_ProcessDisengagedTrap, CommPacketSizeOf_TriggeredTrap, NULL },
{ CommPlayer_RecvDelete, CommPacketSizeOf_NetId, NULL },
{ ov23_0224C384, ov23_0224C41C, NULL },
{ ov23_0224C25C, ov23_0224C41C, NULL },
{ ov23_0224C4CC, ov23_0224C584, NULL },
{ ov23_0224C1A4, CommPacketSizeOf_Nothing, NULL },
{ ov23_0224C104, ov23_0224C100, NULL },
{ ov23_0224B6AC, ov23_0224B72C, NULL },
{ ov23_0224B730, ov23_0224B798, NULL },
{ ov23_0224D4CC, ov23_0224D4FC, NULL },
{ ov23_0224B700, CommPacketSizeOf_NetId, NULL },
{ SecretBases_ProcessBaseInfo, CommPacketSizeOf_SecretBaseInfo, NULL },
{ SecretBases_ProcessBaseEnter, CommPacketSizeOf_SecretBaseInfo, NULL },
{ SecretBases_ProcessBaseEntrancesBuffer, CommPacketSizeOf_BaseEntrancesBuffer, NULL }, // 55
{ SecretBases_ClearTransitioningStatus, CommPacketSizeOf_Nothing, NULL },
{ SecretBases_ProcessBaseExitEvent, CommPacketSizeOf_BaseExitEvent, NULL },
{ SecretBases_ProcessBaseTransitionPromptEvent, CommPacketSizeOf_BaseTransitionPromptEvent, NULL },
{ SecretBases_ProcessBaseTransitionEvent, CommPacketSizeOf_BaseTransitionEvent, NULL },
{ SecretBases_ProcessGoodInteractionEvent, CommPacketSizeOf_GoodInteractionEvent, NULL }, // 60
{ SecretBases_ProcessFailedBaseEnter, CommPacketSizeOf_NetId, NULL },
{ sub_02058018, CommPacketSizeOf_NetId, NULL },
{ UndergroundSpheres_RetrieveBuriedSphere, CommPacketSizeOf_NetId, NULL },
{ ov23_0223E9D4, CommPacketSizeOf_NetId, NULL },
@ -110,18 +110,18 @@ static const CommCmdTable Unk_020F68A4[] = {
{ UndergroundPC_ProcessPCInteraction, CommPacketSizeOf_PCInteraction, NULL }, // 83
{ UndergroundPlayer_ProcessFlagEventType, CommPacketSizeOf_NetId, NULL },
{ UndergroundPlayer_ProcessFlagEvent, CommPacketSizeOf_FlagEvent, NULL },
{ ov23_0224CD80, CommPacketSizeOf_NetId, NULL },
{ ov23_0224CF18, ov23_0224CD7C, NULL },
{ SecretBases_ProcessBaseCreateRequest, CommPacketSizeOf_NetId, NULL },
{ SecretBases_ProcessBaseCreateEvent, CommPacketSizeOf_SecretBaseCreateEvent, NULL },
{ sub_02059EAC, CommPacketSizeOf_TrainerCard, sub_02059EBC },
{ UndergroundPC_ProcessTakeFlagAttempt, CommPacketSizeOf_PCInteraction, NULL },
{ UndergroundPC_ProcessTakenFlag, CommPacketSizeOf_PCInteraction, NULL },
{ UndergroundPC_ProcessTakenFlag, CommPacketSizeOf_PCInteraction, NULL }, // 90
{ UndergroundPlayer_ProcessHeldFlagOwnerInfo, CommPacketSizeOf_TrainerInfo, NULL },
{ UndergroundPlayer_ProcessHeldFlagOwnerInfoServer, CommPacketSizeOf_HeldFlagInfo, ov23_0224AAA0 },
{ UndergroundPlayer_ProcessHeldFlagOwnerInfoAck, CommPacketSizeOf_NetId, NULL },
{ sub_02059180, CommPacketSizeOf_NetId, NULL },
{ sub_02059D0C, CommPacketSizeOf_NetId, NULL },
{ ov23_0224D698, CommPacketSizeOf_NetId, NULL },
{ ov23_0224D6AC, ov23_0224D6F4, NULL },
{ sub_02059D0C, CommPacketSizeOf_NetId, NULL }, // 95
{ SecretBases_ProcessFlagRankUp, CommPacketSizeOf_NetId, NULL },
{ SecretBases_ProcessFlagRankUpEvent, CommPacketSizeOf_FlagRankUpEvent, NULL },
{ sub_0205B988, TrainerInfo_Size, NULL },
{ sub_0205B9AC, CommPacketSizeOf_NetId, NULL },
{ sub_0205B98C, CommPacketSizeOf_NetId, NULL },