Merge pull request #97 from PikalaxALT/secret_base

Secret base
This commit is contained in:
Diegoisawesome 2017-11-01 23:16:33 -05:00 committed by GitHub
commit b4ac67e0eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 2351 additions and 5921 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,26 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2, 0
gUnknown_0858CFCC:: @ 858CFCC
.incbin "baserom.gba", 0x58cfcc, 0x1c
gUnknown_0858CFE8:: @ 858CFE8
.incbin "baserom.gba", 0x58cfe8, 0x60
gUnknown_0858D048:: @ 858D048
.incbin "baserom.gba", 0x58d048, 0x10
gUnknown_0858D058:: @ 858D058
.incbin "baserom.gba", 0x58d058, 0x8
gUnknown_0858D060:: @ 858D060
.incbin "baserom.gba", 0x58d060, 0xc
gUnknown_0858D06C:: @ 858D06C
.incbin "baserom.gba", 0x58d06c, 0x10
gUnknown_0858D07C:: @ 858D07C
.incbin "baserom.gba", 0x58d07c, 0x18

View File

@ -1015,5 +1015,6 @@ extern u8 gBattleOutcome;
extern u16 gLastUsedItem;
extern u32 gBattleTypeFlags;
extern struct MonSpritesGfx* gMonSpritesGfxPtr;
extern u16 gTrainerBattleOpponent_A;
#endif // GUARD_BATTLE_H

View File

@ -191,5 +191,7 @@ extern EWRAM_DATA u8 *gCurDecorInventoryItems;
extern EWRAM_DATA u8 gCurDecorationIndex;
void sub_8126968(void);
void sub_8126AD8(u8 taskId);
void sub_8127D38(u16 mapX, u16 mapY, u16 decor);
#endif //GUARD_DECORATION_H

View File

@ -6,6 +6,8 @@
#define GUARD_EVENT_SCRIPTS_H
extern const u8 gUnknown_0823B4E8[];
extern const u8 gUnknown_0823B5E9[];
extern const u8 gUnknown_08275BB7[];
extern const u8 gUnknown_08275D0C[];
extern const u8 gUnknown_08275D1F[];
extern const u8 gUnknown_08275D2E[];
@ -360,5 +362,14 @@ extern const u8 gPokeNewsTextLilycove_Ending[];
extern const u8 gPokeNewsTextBlendMaster_Upcoming[];
extern const u8 gPokeNewsTextBlendMaster_Ongoing[];
extern const u8 gPokeNewsTextBlendMaster_Ending[];
extern const u8 gUnknown_08274966[];
extern const u8 gUnknown_08274D13[];
extern const u8 gUnknown_08274FFE[];
extern const u8 gUnknown_08275367[];
extern const u8 gUnknown_082756C7[];
extern const u8 gUnknown_08274B24[];
extern const u8 gUnknown_08274E75[];
extern const u8 gUnknown_082751E1[];
extern const u8 gUnknown_082754F6[];
extern const u8 gUnknown_082758CC[];
#endif //GUARD_EVENT_SCRIPTS_H

View File

@ -23,5 +23,6 @@ extern u16 gUnknown_03005DE8;
// Exported ROM declarations
void DrawWholeMapView(void);
void CurrentMapDrawMetatileAt(int x, int y);
#endif //GUARD_FIELD_CAMERA_H

View File

@ -36,6 +36,7 @@ void npc_load_two_palettes__and_record(u16, u8);
void sub_808EBA8(u8, u8, u8, s16, s16);
void pal_patch_for_npc(u16, u8);
void sub_808E16C(s16, s16);
void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat);
void sub_8092FF0(s16, s16, s16 *, s16 *);
u8 FieldObjectDirectionToImageAnimId(u8);
void sub_80930E0(s16 *, s16 *, s16, s16);

View File

@ -11,5 +11,6 @@ u8 player_get_direction_upper_nybble(void);
u8 player_get_x22(void);
void sub_808D074(u8);
void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr);
#endif //GUARD_FIELD_PLAYER_AVATAR_H

View File

@ -8,5 +8,6 @@
// Exported ROM declarations
void pal_fill_black(void);
bool8 sub_80ABDFC(void);
void sub_80AF168(void);
#endif //GUARD_FIELD_SCREEN_H

13
include/fldeff_80F9BCC.h Normal file
View File

@ -0,0 +1,13 @@
#ifndef GUARD_FLDEFF_80F9BCC_H
#define GUARD_FLDEFF_80F9BCC_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
void sub_80FA5E4(s16 id, s16 x, s16 y);
void sub_80FA794(s16 x, s16 y);
#endif //GUARD_FLDEFF_80F9BCC_H

View File

@ -238,12 +238,12 @@ extern struct SaveBlock2 *gSaveBlock2Ptr;
struct SecretBaseRecord
{
/*ID?*/ /*0x1A9C*/ u8 sbr_field_0;
/*0x1A9C*/ u8 secretBaseId;
/*0x1A9D*/ u8 sbr_field_1_0:4;
/*0x1A9D*/ u8 gender:1;
/*0x1A9D*/ u8 sbr_field_1_5:1;
/*0x1A9D*/ u8 sbr_field_1_6:2;
/*0x1A9E*/ u8 trainerName[7]; // 0xFF bytes?
/*0x1A9E*/ u8 trainerName[OT_NAME_LENGTH];
/*0x1AA5*/ u8 trainerId[4]; // byte 0 is used for determining trainer class
/*0x1AA9*/ u8 language;
/*0x1AAA*/ u16 sbr_field_e;
@ -251,10 +251,10 @@ struct SecretBaseRecord
/*0x1AAD*/ u8 sbr_field_11;
/*0x1AAE*/ u8 decorations[16];
/*0x1ABE*/ u8 decorationPos[16];
/*0x1ACE*/ u32 partyPersonality[6];
/*0x1AE6*/ u16 partyMoves[6 * 4];
/*0x1B16*/ u16 partySpecies[6];
/*0x1B22*/ u16 partyHeldItems[6];
/*0x1AD0*/ u32 partyPersonality[6];
/*0x1AE8*/ u16 partyMoves[6 * 4];
/*0x1B18*/ u16 partySpecies[6];
/*0x1B24*/ u16 partyHeldItems[6];
/*0x1B2E*/ u8 partyLevels[6];
/*0x1B34*/ u8 partyEVs[6];
};

11
include/map_name_popup.h Normal file
View File

@ -0,0 +1,11 @@
#ifndef GUARD_MAP_NAME_POPUP_H
#define GUARD_MAP_NAME_POPUP_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
void HideMapNamePopUpWindow(void);
#endif //GUARD_MAP_NAME_POPUP_H

View File

@ -21,6 +21,7 @@ void PrintMenuTable(u8 idx, u8 nstrs, const struct MenuAction *strs);
void InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 idx, u8 nstrs,u8);
u8 GetMenuCursorPos(void);
s8 ProcessMenuInput(void);
s8 ProcessMenuInputNoWrapAround(void);
void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y);
void reset_temp_tile_data_buffers(void);
int decompress_and_copy_tile_data_to_vram(u8 bg_id, const void *src, int size, u16 offset, u8 mode);

View File

@ -6,7 +6,7 @@
// Exported RAM declarations
// Exported ROM declarations
u8 AddScrollIndicatorArrowPairParametrized(u8, u8, u8, u8, s32, u8, u8, u16 *);
u8 AddScrollIndicatorArrowPairParametrized(u8, u8, u8, u8, s32, u16, u16, u16 *);
void RemoveScrollIndicatorArrowPair(u8);
#endif //GUARD_MENU_INDICATORS_H

View File

@ -11,6 +11,7 @@ void sub_81973FC(u8, u8);
u16 AddTextPrinterParametrized(u8 windowId, u8 fontId, const u8 *str, u8 speed, void ( *callback)(u16, struct TextPrinter *), u8 fgColor, u8 bgColor, u8 shadowColor);
void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback);
void sub_8197434(u8 a0, u8 a1);
void SetStandardWindowBorderStyle(u8 a0, u8 a1);
void sub_8197930(void);
#endif // GUARD_NEW_MENU_HELPERS_H

View File

@ -32,6 +32,7 @@ void Overworld_SetMapObjTemplateMovementType(u8, u8);
void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void saved_warp2_set(int unused, s8 mapGroup, s8 mapNum, s8 warpId);
void saved_warp2_set_2(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void Overworld_SetHealLocationWarp(u8);
void sub_8084DD4(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
@ -59,5 +60,9 @@ void c2_exit_to_overworld_2_switch(void);
bool32 sub_8087598(void);
void c2_exit_to_overworld_1_continue_scripts_restart_music(void);
void warp_in(void);
void warp1_set_2(s8 mapGroup, s8 mapNum, s8 warpNum);
void c2_load_new_map(void);
void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused);
void mapldr_default(void);
#endif //GUARD_ROM4_H

View File

@ -3,5 +3,6 @@
void sub_81357FC(u8, void(void));
u8 GetLeadMonIndex(void);
void sub_813BADC(bool8);
#endif //GUARD_ROM6_H

View File

@ -70,5 +70,10 @@ extern const u8 gText_Cushion[];
extern const u8 gText_Decorate[];
extern const u8 gText_PutAway[];
extern const u8 gText_Toss2[];
extern const u8 gText_ApostropheSBase[];
extern const u8 gText_NoRegistry[];
extern const u8 gText_OkayToDeleteFromRegistry[];
extern const u8 gText_RegisteredDataDeleted[];
extern const u8 gUnknown_085EA79D[];
#endif //GUARD_STRINGS_H

View File

@ -10,6 +10,7 @@ bool8 GetPriceReduction(u8 newsKind);
u8 GetRibbonCount(struct Pokemon *pokemon);
void TV_PutSecretBaseVisitOnTheAir(void);
void sub_80EE184(void);
void sub_80EEA70(void);
void sub_80F14F8(TVShow *shows);
size_t sub_80EF370(int value);

View File

@ -1,6 +1,8 @@
#ifndef GUARD_VARS_H
#define GUARD_VARS_H
#define VAR_0x3F20 0x3F20
#define VAR_0x4000 0x4000
#define VAR_0x4001 0x4001
#define VAR_0x4002 0x4002
@ -61,6 +63,11 @@
#define VAR_DAILY_PLANTED_BERRIES 0x40E9
#define VAR_DAILY_PICKED_BERRIES 0x40EA
#define VAR_DAILY_ROULETTE 0x40EB
#define VAR_0x40EC 0x40EC
#define VAR_0x40ED 0x40ED
#define VAR_0x40EE 0x40EE
#define VAR_0x40EF 0x40EF
#define VAR_0x40F0 0x40F0
#define VAR_DAILY_BP 0x40F1
#endif // GUARD_VARS_H

View File

@ -147,7 +147,7 @@ SECTIONS {
src/money.o(.text);
asm/contest_effect.o(.text);
asm/record_mixing.o(.text);
asm/secret_base.o(.text);
src/secret_base.o(.text);
src/tv.o(.text);
asm/contest_link_80F57C4.o(.text);
asm/script_pokemon_util_80F87D8.o(.text);
@ -394,7 +394,7 @@ SECTIONS {
src/money.o(.rodata);
data/contest_effect.o(.rodata);
data/record_mixing.o(.rodata);
data/secret_base.o(.rodata);
src/secret_base.o(.rodata);
src/tv.o(.rodata);
data/contest_link_80F57C4.o(.rodata);
data/script_pokemon_util_80F87D8.o(.rodata);

View File

@ -21,6 +21,7 @@
#include "field_effect_helpers.h"
#include "field_camera.h"
#include "trainer_see.h"
#include "decoration.h"
#include "field_map_obj.h"
#define NUM_FIELD_MAP_OBJECT_TEMPLATES 0x51
@ -1755,18 +1756,18 @@ void sub_808F254(u8 localId, u8 mapNum, u8 mapGroup)
}
}
void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 action)
void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat)
{
u8 mapObjectId;
if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId))
{
switch (action)
switch (decorCat)
{
case 6:
case DECORCAT_DOLL:
sub_808F228(&gMapObjects[mapObjectId], gUnknown_082766A2);
break;
case 7:
case DECORCAT_CUSHION:
sub_808F228(&gMapObjects[mapObjectId], gUnknown_082766A6);
break;
}

2272
src/secret_base.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1044,15 +1044,7 @@ gUnknown_0203A014: @ 203A014
gUnknown_0203A018: @ 203A018
.space 0x4
gUnknown_0203A01C: @ 203A01C
.space 0x1
gUnknown_0203A01D: @ 203A01D
.space 0x3
gUnknown_0203A020: @ 203A020
.space 0x4
.include "src/secret_base.o"
.include "src/tv.o"
gUnknown_0203A034: @ 203A034