diff options
author | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2018-02-17 22:03:02 -0500 |
---|---|---|
committer | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2018-02-17 22:03:02 -0500 |
commit | de302527c3eb7fae0c09236b6d405ea64f579845 (patch) | |
tree | b692c7e99ed61fd558f59feed5a77f768cb05744 /include | |
parent | 08a79136313ec5d82d1e62f3c9bcd2c9967a9e89 (diff) | |
parent | 28987bb1cd0e6864257ff0434508dddcddb22e98 (diff) |
Merge branch 'master' of https://github.com/pret/pokeruby into evobjmv
Diffstat (limited to 'include')
41 files changed, 527 insertions, 99 deletions
diff --git a/include/battle.h b/include/battle.h index d3cbd24f5..544e65b80 100644 --- a/include/battle.h +++ b/include/battle.h @@ -763,6 +763,8 @@ void sub_8012324(void); void SwapTurnOrder(u8, u8); u8 GetWhoStrikesFirst(u8, u8, u8); +void debug_sub_8010800(void); + // asm/battle_3.o u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check); u8 UpdateTurnCounters(void); diff --git a/include/battle_anim.h b/include/battle_anim.h index a94e6d13c..ce9bb13de 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -9,14 +9,6 @@ #define REG_BG2CNT_BITFIELD REG_BGnCNT_BITFIELD(2) #define REG_BG3CNT_BITFIELD REG_BGnCNT_BITFIELD(3) -enum -{ - ANIM_BANK_ATTACKER, - ANIM_BANK_TARGET, - ANIM_BANK_ATK_PARTNER, - ANIM_BANK_DEF_PARTNER, -}; - struct BattleAnimBackground { void *image; @@ -51,7 +43,7 @@ extern struct DisableStruct *gAnimDisableStructPtr; void DoMoveAnim(u16 move); void LaunchBattleAnimation(const u8 *const moveAnims[], u16 b, u8 c); bool8 IsAnimBankSpriteVisible(u8 a); -void sub_8076034(u8, u8); +void MoveBattlerSpriteToBG(u8, u8); bool8 IsContest(void); void ClearBattleAnimationVars(void); void DestroyAnimSprite(struct Sprite *sprite); @@ -63,5 +55,6 @@ void sub_80763FC(u16 a, u16 *b, u32 c, u8 d); s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan); s16 sub_8077104(s16 newPan, int oldPan); void DestroyAnimSoundTask(u8 taskId); +void sub_8076464(u8 a); #endif diff --git a/include/cable_club.h b/include/cable_club.h index a2fe46b30..2f509c9fc 100644 --- a/include/cable_club.h +++ b/include/cable_club.h @@ -20,5 +20,8 @@ void sub_8083B90(void); void sub_8083BDC(void); bool32 sub_8083BF4(u8 linkPlayerIndex); void sub_8083C50(u8 taskId); +#if DEBUG +void debug_sub_808B838(u8); +#endif #endif // GUARD_CABLE_CLUB_H diff --git a/include/clock.h b/include/clock.h index 4e6560c91..5772145d3 100644 --- a/include/clock.h +++ b/include/clock.h @@ -3,6 +3,7 @@ // TODO: time of day and seconds in a day defines +void InitTimeBasedEvents(void); void DoTimeBasedEvents(void); #endif diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h new file mode 100644 index 000000000..c173a8730 --- /dev/null +++ b/include/constants/battle_anim.h @@ -0,0 +1,9 @@ +#ifndef GUARD_BATTLEANIM_CONSTANTS_H +#define GUARD_BATTLEANIM_CONSTANTS_H + +#define ANIM_BANK_ATTACKER 0 +#define ANIM_BANK_TARGET 1 +#define ANIM_BANK_ATK_PARTNER 2 +#define ANIM_BANK_DEF_PARTNER 3 + +#endif diff --git a/include/constants/decorations.h b/include/constants/decorations.h index 2e3558721..c361ccdf1 100644 --- a/include/constants/decorations.h +++ b/include/constants/decorations.h @@ -123,4 +123,6 @@ #define DECOR_REGICE_DOLL 119 #define DECOR_REGISTEEL_DOLL 120 +#define DECOR_COUNT 121 + #endif // GUARD_CONSTANTS_DECORATIONS_H diff --git a/include/constants/items.h b/include/constants/items.h index 9b88db1da..6f54e6ee4 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -401,4 +401,6 @@ // Check if the item is one that can be used on a Pokemon. #define IS_POKEMON_ITEM(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2) +#define IS_ITEM_MAIL(item) ((item) >= ITEM_ORANGE_MAIL && (item) <= ITEM_RETRO_MAIL) + #endif // GUARD_CONSTANTS_ITEMS_H diff --git a/include/contest.h b/include/contest.h index b0bdd7f61..557b9e5c4 100644 --- a/include/contest.h +++ b/include/contest.h @@ -43,17 +43,13 @@ struct ContestPokemon /*0x02*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; /*0x0D*/ u8 trainerName[8]; /*0x15*/ u8 trainerGfxId; - /*0x16*/ u8 unk16; - /*0x17*/ u8 filler17; /*0x18*/ u32 flags; - /*0x1C*/ u8 unk1C_0:2; - u8 unk1C_2:1; - u8 unk1C_3:1; - u8 unk1C_4:1; - u8 unk1C_5:1; - u8 unk1C_6:1; - u8 unk1C_7:1; - u8 filler1D; + /*0x1C*/ u8 whichRank:2; + u8 aiPool_Cool:1; + u8 aiPool_Beauty:1; + u8 aiPool_Cute:1; + u8 aiPool_Smart:1; + u8 aiPool_Tough:1; /*0x1E*/ u16 moves[4]; // moves /*0x26*/ u8 cool; // cool /*0x27*/ u8 beauty; // beauty @@ -61,8 +57,7 @@ struct ContestPokemon /*0x29*/ u8 smart; // smart /*0x2A*/ u8 tough; // tough /*0x2B*/ u8 sheen; // sheen - /*0x2C*/ u8 unk2C; - /*0x2D*/ u8 unk2D[11]; + /*0x2C*/ u8 unk2C[12]; /*0x38*/ u32 personality; // personality /*0x3C*/ u32 otId; // otId }; // wow diff --git a/include/credits.h b/include/credits.h new file mode 100644 index 000000000..dabe24048 --- /dev/null +++ b/include/credits.h @@ -0,0 +1,11 @@ +#ifndef GUARD_credits_H +#define GUARD_credits_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +void sub_81439D0(void); + +#endif //GUARD_credits_H diff --git a/include/debug.h b/include/debug.h index f3ad8c401..2136dbfb8 100644 --- a/include/debug.h +++ b/include/debug.h @@ -1,7 +1,17 @@ #ifndef GUARD_DEBUG_H #define GUARD_DEBUG_H +// start_menu_debug +void DebugMenu_8077048(void); + // matsuda_debug_menu void sub_80AAF30(void); +void Crash(const u8 *text); + +// tomomichi_debug_menu +void debug_nullsub_66(void); + +// sound_check_menu +void CB2_StartSoundCheckMenu(void); #endif // GUARD_DEBUG_H diff --git a/include/decoration.h b/include/decoration.h index c38bd1bcb..d7f26bd05 100644 --- a/include/decoration.h +++ b/include/decoration.h @@ -127,17 +127,12 @@ extern u8 gUnknown_020388F5; extern u8 gUnknown_020388F6; extern u8 gUnknown_020388D6[16]; extern u8 gUnknown_020388E6[12]; -extern u16 gSpecialVar_0x8004; -extern u16 gSpecialVar_0x8005; -extern u16 gSpecialVar_0x8006; -extern u16 gSpecialVar_0x8007; extern u16 gUnknown_020391A4; extern u16 gUnknown_020391A6; extern u8 gUnknown_020391A8; extern u8 gUnknown_020391A9; extern u8 gUnknown_020391AA; extern u8 gUnknown_02039234; -extern void (*gFieldCallback)(void); extern const struct YesNoFuncTable gUnknown_083EC96C[]; extern struct UnkStruct_020391B4 gUnknown_020391B4[16]; @@ -160,7 +155,6 @@ extern const struct YesNoFuncTable gUnknown_083ECAA0; extern u8 sub_8134194(u8); // src/decoration_inventory extern bool8 sub_81341D4(void); // src/decoration_inventory extern void sub_8134104(u8); // src/decoration_inventory -extern bool8 IsWeatherNotFadingIn(void); extern void sub_8109DAC(u8); // src/trader extern void ReshowPlayerPC(u8); // src/player_pc void Task_SecretBasePC_Decoration(u8); diff --git a/include/easy_chat.h b/include/easy_chat.h index 58750fa92..b86b166aa 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -117,6 +117,7 @@ struct Shared1000 // const pointer to shared1000. easy_chat might be two separate files. extern struct Shared1000 *const gEasyChatStruct; +void sub_80E60D8(void); void sub_80E62A0(u8 arg0, u16 *arg1, void (*arg2)(void), u8 arg3); u16 sub_80EB72C(u16 group); void sub_80EB6FC(u16 *, u16); diff --git a/include/ewram.h b/include/ewram.h index 2f1c2d1ab..cafb418fb 100644 --- a/include/ewram.h +++ b/include/ewram.h @@ -28,6 +28,7 @@ extern u8 gSharedMem[]; #define ewram0_9(i) (u8 *)(ewram_addr + (i * 0x20)) #define ewram0_10 (*(struct UnknownPokenav0*)(gSharedMem + 0)) #define ewram0_11 (*(struct UnknownPokenav0_1*)(gSharedMem + 0)) +#define ePokemonStorageSystem (*(struct PokemonStorageSystemData *)(gSharedMem + 0)) #define ewram4 (*(struct UnknownStruct8 *)(gSharedMem + 0x4)) #define ewram520 ((struct UnknownStruct7 *)(gSharedMem + 0x00520)) #define ewram520_2 (u8 *)(ewram_addr + 0x520) @@ -38,10 +39,6 @@ extern u8 gSharedMem[]; #define ewram01000 (*(struct Unk2001000 *)(gSharedMem + 0x1000)) #define ewramBerryPicTemp (gSharedMem + 0x1000) #define EWRAM_1000 (*(struct Struct2001000 *)(gSharedMem + 0x1000)) -#define gUnk20011fa (u8 *)(&gSharedMem[0x11FA]) -#define gUnk2002694 (u8 *)(&gSharedMem[0x2694]) -#define gUnk20026A6 (u8 *)(&gSharedMem[0x26A6]) -#define gUnk20026e4 (u8 *)(&gSharedMem[0x26E4]) #define ewram4000 (gSharedMem + 0x4000) #define gUnknown_02007000 (*(ewramStruct_02007000 *)(gSharedMem + 0x7000)) #define ARRAY_2007800 ((struct EasyChatPair *)(gSharedMem + 0x7800)) @@ -251,6 +248,7 @@ extern u8 gSharedMem[]; #define ewram1C000 (*(struct Unk201C000 *)(gSharedMem + 0x1C000)) #define ewram1c000 (*(struct Unk201C000 *)(gSharedMem + 0x1C000)) // FIXME, names too similar #define eHallOfFameMons1 (struct HallofFameMons*)(&gSharedMem[0x1C000]) +#define eHOFPCScreenEffect (*(struct PCScreenEffectStruct *)(gSharedMem + 0x1c000)) #define EWRAM_1C800 (*(struct Unk201C800 *)(gSharedMem + 0x1C800)) #define ewram1D000 ((struct Pokemon *)(gSharedMem + 0x1D000)) #define ewram1D000_2 ((u16 *)(gSharedMem + 0x1D000)) diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h index 2d5693e40..49e9f23e3 100644 --- a/include/field_control_avatar.h +++ b/include/field_control_avatar.h @@ -36,5 +36,6 @@ bool8 sub_8068870(u16 a); bool8 sub_8068894(void); bool8 sub_8068A64(struct MapPosition *, u16); u8 sub_8068F18(void); +bool8 dive_warp(struct MapPosition *position, u16 b); #endif diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h index 4377367f7..cd0cb6eab 100644 --- a/include/field_fadetransition.h +++ b/include/field_fadetransition.h @@ -27,5 +27,6 @@ void sub_8080F48(void); void sub_8080F58(void); void sub_8080F68(void); void sub_8080F9C(void); +void debug_sub_80888D8(void); #endif // GUARD_FIELD_FADETRANSITION_H diff --git a/include/fldeff_poison.h b/include/fldeff_poison.h index fe3308ba9..abcacbd03 100644 --- a/include/fldeff_poison.h +++ b/include/fldeff_poison.h @@ -1,7 +1,7 @@ #ifndef GUARD_FLDEFF_POISON_H #define GUARD_FLDEFF_POISON_H -void DoFieldPoisonEffect(void); -bool32 FieldPoisonEffectIsRunning(void); +void FldeffPoison_Start(void); +bool32 FldeffPoison_IsActive(void); #endif // GUARD_FLDEFF_POISON_H diff --git a/include/gba/macro.h b/include/gba/macro.h index d39d10738..ab42c9da3 100644 --- a/include/gba/macro.h +++ b/include/gba/macro.h @@ -105,7 +105,7 @@ #define DmaClearLarge(dmaNum, dest, size, block, bit) \ { \ - const void *_dest = dest; \ + void *_dest = dest; \ u32 _size = size; \ while (1) \ { \ diff --git a/include/global.h b/include/global.h index d0af4a4d1..6dd772795 100644 --- a/include/global.h +++ b/include/global.h @@ -65,6 +65,15 @@ enum #define T2_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24)) #define T2_READ_PTR(ptr) (void*) T2_READ_32(ptr) +// Credits to Made (dolphin emoji) +#define S16TOPOSFLOAT(val) \ +({ \ + s16 v = (val); \ + float f = (float)v; \ + if(v < 0) f += 65536.0f; \ + f; \ +}) + enum { VERSION_SAPPHIRE = 1, diff --git a/include/graphics.h b/include/graphics.h index 76a45f6f6..889dc3916 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2739,7 +2739,15 @@ extern const u16 gCableCar_Pal[]; extern const u16 gCableCarBG_Pal[]; extern const u8 gCableCarBG_Gfx[]; -// data/graphics.s +extern const u8 gPSSMenuHeader_Gfx[]; +extern const u8 gPSSMenuHeader_Tilemap[]; +extern const u16 gPSSMenu1_Pal[]; +extern const u16 gPSSMenu2_Pal[]; +extern const u8 gPSSMenuMisc_Gfx[]; +extern const u8 gPSSMenuMisc_Tilemap[]; +extern const u16 gPSSMenu3_Pal[]; +extern const u16 gPSSMenu4_Pal[]; + extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_000; extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_001; extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_002; diff --git a/include/hof_pc.h b/include/hof_pc.h new file mode 100644 index 000000000..c6df4e9a1 --- /dev/null +++ b/include/hof_pc.h @@ -0,0 +1,12 @@ +#ifndef GUARD_hof_pc_H +#define GUARD_hof_pc_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations + +void ReturnFromHallOfFamePC(void); + +#endif //GUARD_hof_pc_H diff --git a/include/item.h b/include/item.h index 8f6cc883b..bafa8a3fd 100644 --- a/include/item.h +++ b/include/item.h @@ -30,8 +30,6 @@ struct BagPocket #define NUM_BAG_POCKETS 5 -extern const struct BagPocket gBagPockets[NUM_BAG_POCKETS]; - void CopyItemName(u16 itemId, u8 *string); bool8 IsBagPocketNonEmpty(u8 pocket); bool8 CheckBagHasItem(u16 itemId, u16 count); diff --git a/include/link.h b/include/link.h index 6581fdbba..6a7212645 100644 --- a/include/link.h +++ b/include/link.h @@ -194,5 +194,9 @@ u32 LinkMain1(u8 *, u16 *, u16[CMD_LENGTH][MAX_LINK_PLAYERS]); void LinkVSync(void); void Timer3Intr(void); void SerialCB(void); +void LinkTestScreen(void); +void debug_sub_8008218(u16 *buffer, void *arg1, u16 (*arg2)[], u32 arg3); +void debug_sub_8008264(u32 value, int left, int top, int r3, int sp0); +u32 sub_8007E40(void); #endif // GUARD_LINK_H diff --git a/include/macros/battle_anim.inc b/include/macros/battle_anim.inc index 4ff845032..bf409a848 100644 --- a/include/macros/battle_anim.inc +++ b/include/macros/battle_anim.inc @@ -1,14 +1,14 @@ - .macro loadsprite id + .macro loadspritegfx id .byte 0x00 .2byte \id .endm - .macro unloadsprite id + .macro unloadspritegfx id .byte 0x01 .2byte \id .endm - .macro sprite template, priority, argv:vararg + .macro createsprite template, priority, argv:vararg .byte 0x02 .4byte \template .byte \priority @@ -18,7 +18,7 @@ .Lsprite_\@_2: .endm - .macro createtask addr, priority, argv:vararg + .macro createvisualtask addr, priority, argv:vararg .byte 0x03 .4byte \addr .byte \priority @@ -28,12 +28,12 @@ .Lcreatetask_\@_2: .endm - .macro pause delay + .macro delay amount .byte 0x04 - .byte \delay + .byte \amount .endm - .macro wait + .macro waitforvisualfinish .byte 0x05 .endm @@ -78,29 +78,29 @@ .4byte \addr .endm - .macro ret + .macro return .byte 0x0F .endm - .macro setvar var_num, value + .macro setarg arg_num, value .byte 0x10 - .byte \var_num + .byte \arg_num .2byte \value .endm - .macro ifelse addr1, addr2 + .macro choosetwoturnanim addr1, addr2 .byte 0x11 .4byte \addr1 .4byte \addr2 .endm - .macro jumpif cond, addr + .macro jumpifmoveturn cond, addr .byte 0x12 .byte \cond .4byte \addr .endm - .macro jump addr + .macro goto addr .byte 0x13 .4byte \addr .endm @@ -127,7 +127,7 @@ .byte \id .endm - .macro panse_19 id, pan + .macro playsewithpan id, pan .byte 0x19 .2byte \id .byte \pan @@ -147,7 +147,7 @@ .byte \delay .endm - .macro panse_1C id, pan, delay, count + .macro loopsewithpan id, pan, delay, count .byte 0x1C .2byte \id .byte \pan @@ -155,7 +155,7 @@ .byte \count .endm - .macro panse_1D id, pan, count + .macro waitplaysewithpan id, pan, count .byte 0x1D .2byte \id .byte \pan @@ -167,7 +167,7 @@ .2byte \bldcnt .endm - .macro createtask_1F addr, argv:vararg + .macro createsoundtask addr, argv:vararg .byte 0x1F .4byte \addr .byte (.Lcreatetask_1F_\@_2 - .Lcreatetask_1F_\@_1) / 2 @@ -180,29 +180,29 @@ .byte 0x20 .endm - .macro jumpvareq var_num, value, addr + .macro jumpargeq arg_num, value, addr .byte 0x21 - .byte \var_num + .byte \arg_num .2byte \value .4byte \addr .endm - .macro monbg_22 unk + .macro monbg_22 bank .byte 0x22 - .byte \unk + .byte \bank .endm - .macro clearmonbg_23 unk + .macro clearmonbg_23 bank .byte 0x23 - .byte \unk + .byte \bank .endm - .macro jumpunkcond addr + .macro jumpifcontest addr .byte 0x24 .4byte \addr .endm - .macro fadetobg_25 a, b, c + .macro fadetobgfromset a, b, c .byte 0x25 .byte \a .byte \b @@ -227,38 +227,38 @@ .byte \delay .endm - .macro monbgprio_28 unk + .macro monbgprio_28 bank .byte 0x28 - .byte \unk + .byte \bank .endm .macro monbgprio_29 .byte 0x29 .endm - .macro monbgprio_2A unk + .macro monbgprio_2A bank .byte 0x2A - .byte \unk + .byte \bank .endm - .macro invisible side + .macro invisible bank .byte 0x2B - .byte \side + .byte \bank .endm - .macro visible side + .macro visible bank .byte 0x2C - .byte \side + .byte \bank .endm - .macro doublebattle_2D unk + .macro doublebattle_2D bank .byte 0x2D - .byte \unk + .byte \bank .endm - .macro doublebattle_2E unk + .macro doublebattle_2E bank .byte 0x2E - .byte \unk + .byte \bank .endm .macro stopsound diff --git a/include/main.h b/include/main.h index ff9bb89c7..78403225e 100644 --- a/include/main.h +++ b/include/main.h @@ -51,6 +51,8 @@ extern bool8 gLinkVSyncDisabled; extern const u8 gGameVersion; extern const u8 gGameLanguage; +extern u16 gKeyRepeatStartDelay; + void AgbMain(void); void SetMainCallback2(MainCallback callback); void InitKeys(void); diff --git a/include/mon_markings.h b/include/mon_markings.h new file mode 100644 index 000000000..d06264865 --- /dev/null +++ b/include/mon_markings.h @@ -0,0 +1,31 @@ +#ifndef POKERUBY_MON_MARKINGS_H +#define POKERUBY_MON_MARKINGS_H + +struct PokemonMarkMenu +{ + /*0x0000*/ u16 baseTileTag; + /*0x0002*/ u16 basePaletteTag; + /*0x0004*/ u8 markings; // bit flags + /*0x0005*/ s8 cursorPos; + /*0x0006*/ bool8 markingsArray[4]; + /*0x000A*/ u8 cursorBaseY; + /*0x000B*/ bool8 spriteSheetLoadRequired; + /*0x000C*/ struct Sprite *menuWindowSprites[2]; // upper and lower halves of menu window + /*0x0014*/ struct Sprite *menuMarkingSprites[4]; + /*0x0024*/ struct Sprite *menuTextSprite; + /*0x0028*/ const u8 *frameTiles; + /*0x002C*/ const u16 *framePalette; + /*0x0030*/ u8 menuWindowSpriteTiles[0x1000]; + /*0x1030*/ u8 filler1030[0x80]; + /*0x10B0*/ u8 tileLoadState; +}; // 10b4 + +void sub_80F727C(struct PokemonMarkMenu *ptr); +void sub_80F7404(void); +void sub_80F7418(u8 markings, s16 x, s16 y); +void sub_80F7470(void); +bool8 sub_80F7500(void); +struct Sprite *sub_80F7940(u16 tileTag, u16 paletteTag, const u16 *palette); +void sub_80F7A10(u8 markings, void *dest); + +#endif //POKERUBY_MON_MARKINGS_H diff --git a/include/mystery_event_menu.h b/include/mystery_event_menu.h index 8801789d9..c1f5fbb8f 100644 --- a/include/mystery_event_menu.h +++ b/include/mystery_event_menu.h @@ -2,5 +2,6 @@ #define GUARD_MYSTERY_EVENT_MENU_H void CB2_InitMysteryEventMenu(void); +void debug_sub_815D15C(void); #endif // GUARD_MYSTERY_EVENT_MENU_H diff --git a/include/overworld.h b/include/overworld.h index 0954f1b63..50089593f 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -235,4 +235,6 @@ void CreateLinkPlayerSprite(u8); void SpriteCB_LinkPlayer(struct Sprite *); void sub_805465C(void); +void CB2_InitTestMenu(void); + #endif // GUARD_ROM4_H diff --git a/include/pc_screen_effect.h b/include/pc_screen_effect.h new file mode 100644 index 000000000..d3f6d22de --- /dev/null +++ b/include/pc_screen_effect.h @@ -0,0 +1,21 @@ +#ifndef GUARD_PC_SCREEN_EFFECT_H +#define GUARD_PC_SCREEN_EFFECT_H + +struct PCScreenEffectStruct +{ + /*0x00*/ u16 tileTag; + /*0x02*/ u16 paletteTag; + /*0x04*/ u16 unk04; + /*0x06*/ u16 unk06; + /*0x08*/ u16 unk08; + /*0x0A*/ u16 unk0A; + /*0x0C*/ s16 unk0C; + /*0x10*/ u32 selectedPalettes; +}; + +void sub_80C5CD4(struct PCScreenEffectStruct *unkStruct); +bool8 sub_80C5DCC(void); +void sub_80C5E38(struct PCScreenEffectStruct *unkStruct); +bool8 sub_80C5F98(void); + +#endif //GUARD_PC_SCREEN_EFFECT_H diff --git a/include/pokeblock.h b/include/pokeblock.h index 6720653a0..cda598f6c 100644 --- a/include/pokeblock.h +++ b/include/pokeblock.h @@ -3,12 +3,20 @@ enum { - PBLOCK_CLR_BLACK, - PBLOCK_CLR_RED, + PBLOCK_CLR_RED = 1, PBLOCK_CLR_BLUE, PBLOCK_CLR_PINK, PBLOCK_CLR_GREEN, - PBLOCK_CLR_YELLOW + PBLOCK_CLR_YELLOW, + PBLOCK_CLR_PURPLE, + PBLOCK_CLR_INDIGO, + PBLOCK_CLR_BROWN, + PBLOCK_CLR_LITEBLUE, + PBLOCK_CLR_OLIVE, + PBLOCK_CLR_GRAY, + PBLOCK_CLR_BLACK, + PBLOCK_CLR_WHITE, + PBLOCK_CLR_GOLD, }; enum diff --git a/include/pokemon.h b/include/pokemon.h index 6e3e15404..169045c0c 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -428,10 +428,10 @@ struct BattleMove struct PokemonStorage { - /*0x00*/ u8 currentBox; - /*0x01*/ struct BoxPokemon boxes[14][30]; - u8 boxNames[14][9]; - u8 unkArray[14]; + /*0x0000*/ u8 currentBox; + /*0x0004*/ struct BoxPokemon boxes[14][30]; + /*0x8344*/ u8 boxNames[14][9]; + /*0x83c2*/ u8 wallpaper[14]; }; struct SpindaSpot @@ -522,7 +522,7 @@ void sub_803ADE8(struct Pokemon *mon, struct UnknownPokemonStruct *src); void sub_803AF78(struct Pokemon *mon, struct UnknownPokemonStruct *dest); u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon); void CalculateMonStats(struct Pokemon *mon); -void sub_803B4B4(const struct BoxPokemon *src, struct Pokemon *dest); +void ExpandBoxMon(const struct BoxPokemon *src, struct Pokemon *dest); u8 GetLevelFromMonExp(struct Pokemon *mon); u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon); u16 GiveMoveToMon(struct Pokemon *mon, u16 move); @@ -627,9 +627,8 @@ void RandomlyGivePartyPokerus(struct Pokemon *party); void PartySpreadPokerus(struct Pokemon *party); struct Sprite *sub_80F7920(u16, u16, const u16 *); +void BoxMonRestorePP(struct BoxPokemon *); bool8 HealStatusConditions(struct Pokemon *mon, u32 unused, u32 healMask, u8 battleId); - - #endif // GUARD_POKEMON_H diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index 7e26c1c9b..a1a965d81 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -1,6 +1,9 @@ #ifndef GUARD_POKEMON_ICON_H #define GUARD_POKEMON_ICON_H +extern const u8 * const gMonIconTable[]; +extern const u8 gMonIconPaletteIndices[]; + u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality); u8 UpdateMonIconFrame(struct Sprite *sprite); u8 sub_809D3A4(u16 arg0, void (*)(struct Sprite *), int, u8 arg3, u32 arg4); @@ -12,5 +15,6 @@ void sub_809D580(u16); void sub_809D608(u16); void sub_809D62C(struct Sprite *sprite); void sub_809D824(struct Sprite *sprite, u8 animNum); +u16 mon_icon_convert_unown_species_id(u16 species, u32 personality); #endif // GUARD_POKEMON_ICON_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 9fe3436ef..5319b7a2d 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -1,8 +1,302 @@ #ifndef GUARD_POKEMON_STORAGE_SYSTEM_H #define GUARD_POKEMON_STORAGE_SYSTEM_H +#include "pc_screen_effect.h" +#include "mon_markings.h" + +enum { + PC_TEXT_EXIT_BOX, + PC_TEXT_WHAT_YOU_DO, + PC_TEXT_PICK_A_THEME, + PC_TEXT_PICK_A_WALLPAPER, + PC_TEXT_IS_SELECTED, + PC_TEXT_JUMP_TO_WHICH_BOX, + PC_TEXT_DEPOSIT_IN_WHICH_BOX, + PC_TEXT_WAS_DEPOSITED, + PC_TEXT_BOX_IS_FULL, + PC_TEXT_RELEASE_POKE, + PC_TEXT_WAS_RELEASED, + PC_TEXT_BYE_BYE, + PC_TEXT_MARK_POKE, + PC_TEXT_LAST_POKE, + PC_TEXT_PARTY_FULL, + PC_TEXT_HOLDING_POKE, + PC_TEXT_WHICH_ONE_WILL_TAKE, + PC_TEXT_CANT_RELEASE_EGG, + PC_TEXT_CONTINUE_BOX, + PC_TEXT_CAME_BACK, + PC_TEXT_WORRIED, + PC_TEXT_SURPRISE, + PC_TEXT_PLEASE_REMOVE_MAIL +}; + +enum { + PC_TEXT_FMT_NORMAL, + PC_TEXT_FMT_MON_NAME, + PC_TEXT_FMT_UNK_02, + PC_TEXT_FMT_UNK_03, + PC_TEXT_FMT_MON_NAME_2, + PC_TEXT_FMT_UNK_05, + PC_TEXT_FMT_MON_NAME_AFTER_EXCL_MARK +}; + +struct StorageAction { + const u8 *text; + u8 format; +}; + +struct PSS_MenuStringPtrs { + const u8 *text; + const u8 *desc; +}; + +struct UnkStruct_2000028 { + void *unk_00; + void *unk_04; + u16 unk_08; + u16 unk_0a; + void (*unk_0c)(struct UnkStruct_2000028 *data); +}; + +struct UnkStruct_2000020 { + struct UnkStruct_2000028 *unk_00; + u8 unk_04; + u8 unk_05; +}; + +struct UnkPSSStruct_2002370 { + struct Sprite *unk_0000; + struct Sprite *unk_0004[4]; + u32 unk_0014[3]; + struct Sprite *unk_0020[2]; + u8 filler_0028[0x214]; + u8 curBox; + u8 unk_023d; + u8 unk_023e; + u16 unk_0240; + u16 unk_0242; +}; // 0244 + +struct PokemonStorageSystemData { + void (*unk_0000)(void); + u8 unk_0004; + u8 unk_0005; + u8 unk_0006; + u8 unk_0007; + u16 unk_0008; + u16 unk_000a; + struct PCScreenEffectStruct unk_000c; + struct UnkStruct_2000020 unk_0020; + struct UnkStruct_2000028 unk_0028[8]; + u16 unk_00a8[0x400]; + u16 unk_08a8; + u16 unk_08aa; + u8 unk_08ac; + u8 unk_08ad; + u8 unk_08ae; + u8 unk_08af; + u8 unk_08b0; + bool8 unk_08b1; + s16 unk_08b2; + u16 unk_08b4; + u16 unk_08b6; + u16 unk_08b8; + bool8 unk_08ba; + u8 unk_08bb; + u16 unk_08bc; + u16 unk_08be; + u16 unk_08c0; + u16 unk_08c2; + u16 unk_08c4; + u16 unk_08c6; + u16 unk_08c8; + u8 unk_08ca[0x400]; + u8 unk_0cca; + u16 unk_0ccc[0x10]; + u16 unk_0cec; + u16 unk_0cee; + struct Sprite *unk_0cf0[2]; + struct Sprite *unk_0cf8[2]; + struct Sprite *unk_0d00[2]; + u32 unk_0d08; + u8 filler_0d0c[0x50]; + u16 unk_0d5c; + s16 unk_0d5e; + s16 unk_0d60; + u16 unk_0d62[360]; + u8 unk_1032; + struct Sprite *unk_1034; + struct Sprite *unk_1038[6]; // party + struct Sprite *unk_1050[30]; // box + struct Sprite **unk_10c8; + struct Sprite **unk_10cc; + u16 unk_10d0[40]; + u16 unk_1120[40]; + u8 unk_1170; + u8 unk_1171; + u16 unk_1172; + s16 unk_1174; + s16 unk_1176; + u16 unk_1178; + u8 unk_117a; + s8 unk_117b; + u8 unk_117c; + u8 unk_117d; + u8 filler_117e[0x42]; + struct Sprite *unk_11c0; + struct Sprite *unk_11c4; + s32 unk_11c8; + s32 unk_11cc; + s32 unk_11d0; + s32 unk_11d4; + s16 unk_11d8; + s16 unk_11da; + u16 unk_11dc; + s8 unk_11de; + s8 unk_11df; + u8 unk_11e0; + u8 unk_11e1; + u8 unk_11e2; + u8 unk_11e3; + u8 filler_11e4[4]; + const u8 *unk_11e8; + u32 unk_11ec; + u16 unk_11f0; + u16 unk_11f2; + u8 filler_11f4[2]; + u8 unk_11f6; + u8 unk_11f7; + u8 unk_11f8; + u8 unk_11f9; + u8 unk_11fa[0x15]; + u8 unk_120f[0x25]; + u8 unk_1234[0x25]; + u8 unk_1259[0x21]; + u8 unk_127a[0x2a]; + bool8 (*unk_12a4)(void); + u8 unk_12a8; + u8 unk_12a9; + struct Sprite *unk_12ac; + struct Sprite *unk_12b0[2]; + u16 *unk_12b8; + struct PokemonMarkMenu unk_12bc; + struct UnkPSSStruct_2002370 unk_2370; + struct Pokemon unk_25b4; + struct Pokemon unk_2618; + u8 unk_267c; + u8 unk_267d; + u8 unk_267e; + u8 unk_267f; + s8 unk_2680; + s8 unk_2681; + s8 unk_2682; + s8 unk_2683; + u16 unk_2684; + u16 unk_2686[3]; + u8 unk_268c; + u8 unk_268d; + u8 unk_268e; + union { + struct Pokemon *pokemon; + struct BoxPokemon *box; + } unk_2690; + u8 unk_2694[18]; + u8 unk_26a6[62]; + u8 unk_26e4[0x16]; + u16 unk_26fa; + u16 *unk_26fc; + struct Sprite *unk_2700; + u16 unk_2704[0x10]; + u8 filler_2724[0x60]; + u8 unk_2784[0x800]; + u8 filler_2f84[0x1800]; + u8 unk_4784[0x800]; +}; + +extern u16 gUnknown_02039760[0x600]; +extern struct UnkPSSStruct_2002370 *gUnknown_02038478; +extern struct PokemonStorageSystemData *const gPokemonStorageSystemPtr; +extern u8 *const gUnknown_083B6DB8; + +u8 StorageSystemGetPartySize(void); +s16 GetIndexOfFirstEmptySpaceInBoxN(u8 boxId); +u8 CountAlivePartyMonsExceptOne(u8 toSkip); +u8 CountPokemonInBoxN(u8 boxId); +void sub_8096264(struct UnkPSSStruct_2002370 *a0, u16 tileTag, u16 palTag, u8 a3); +void sub_809634C(u8 curBox); +u8 sub_8096368(void); +void sub_809635C(void); +void sub_8096310(void); +void sub_80961A8(void); +void task_intro_29(u8 whichMenu); void ResetPokemonStorageSystem(void); -void BoxMonRestorePP(struct BoxPokemon *); -void party_compaction(void); +void ResetPSSMonIconSprites(void); +void SpawnBoxIconSprites(u8 boxId); +u8 get_preferred_box(void); +void sub_8098BF0(void); +void sub_8098D20(u8 monId); +bool8 sub_80990AC(void); +void sub_8099200(bool8 a0); +void sub_8099310(void); +bool8 sub_8099374(void); +void sub_8099480(void); +void sub_80994A8(s16 a0); +void sub_8099520(u8 a0); +void sub_809954C(void); +void sub_8099584(u8 a0, u8 a1); +void sub_809960C(u8 a0, u8 a1); +void sub_80996B0(u8 a0, u8 a1); +bool8 sub_809971C(void); +void sub_809981C(u8 mode, u8 idx); +bool8 sub_80998D8(void); +void sub_8099920(void); +void sub_8099958(void); +bool8 sub_8099990(void); +struct Sprite *sub_809A9A0(u16 x, u16 y, u8 animId, u8 priority, u8 subpriority); +void sub_8099BF8(u8 a0); +void sub_8099C70(u8 whichBox); +bool8 sub_8099D34(void); +void sub_8099DCC(u8 a0); +bool8 sub_8099E08(void); +void sub_809A860(bool8 a0); +void sub_809AA24(void); +void sub_809AA98(void); +bool8 sub_809AC00(void); +void sub_809B0C0(u8 a0); +void sub_809B0D4(void); +void sub_809B0E0(void); +u8 sub_809B0F4(void); +void sub_809B068(void); +void sub_809B100(u8 a0); +bool8 sub_809B130(void); +void sub_809B440(void); +bool8 sub_809B62C(u8); +void sub_809B6BC(void); +void sub_809B6DC(void); +bool8 sub_809B734(void); +void sub_809B760(void); +void sub_809B7AC(void); +void sub_809B7D4(void); +s8 sub_809B960(void); +void sub_809BB90(void); +void sub_809BBC0(void); +void sub_809BC18(void); +void sub_809BD14(void); +s16 party_compaction(void); +void sub_809BDD8(u8 markings); +bool8 sub_809BE80(void); +bool8 sub_809BEBC(void); +bool8 sub_809BF20(void); +bool8 sub_809BF48(void); +u8 sub_809CA40(void); +void sub_809CDCC(void); +void sub_809CDEC(u8 a0); +void sub_809CE84(void); +s16 sub_809CF30(void); +void sub_809CFDC(struct UnkStruct_2000020 *a0, struct UnkStruct_2000028 *a1, u8 a2); +void sub_809CFF0(void); +void sub_809D034(void *dest, u16 dLeft, u16 dTop, const void *src, u16 sLeft, u16 sTop, u16 width, u16 height); +void sub_809D104(void *dest, u16 dLeft, u16 dTop, const void *src, u16 sLeft, u16 sTop, u16 width, u16 height); +void sub_809D16C(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height); #endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/include/region_map.h b/include/region_map.h index 254307052..e7a357fe2 100644 --- a/include/region_map.h +++ b/include/region_map.h @@ -68,5 +68,6 @@ void CreateRegionMapPlayerIcon(u16, u16); const u8 *GetMapSectionName(u8 *dest, u16 mapSectionId, u16 length); const u8 *CopyMapName(u8 *dest, u16 b); const u8 *CopyLocationName(u8 *dest, u16 b); +void CB2_InitFlyRegionMap(void); #endif // GUARD_REGION_MAP_H diff --git a/include/reset_rtc_screen.h b/include/reset_rtc_screen.h index 5807dec99..2de95534a 100644 --- a/include/reset_rtc_screen.h +++ b/include/reset_rtc_screen.h @@ -2,5 +2,6 @@ #define GUARD_RESET_RTC_SCREEN_H void CB2_InitResetRtcScreen(void); +void debug_sub_806F8F8(void); #endif // GUARD_RESET_RTC_SCREEN_H diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h index 21ec88a90..ed42871a6 100644 --- a/include/rom_8077ABC.h +++ b/include/rom_8077ABC.h @@ -16,8 +16,8 @@ u8 GetAnimBankSpriteId(u8 side); void StoreSpriteCallbackInData(struct Sprite *sprite, void(*callback)(struct Sprite *)); void sub_8078314(struct Sprite *sprite); void sub_8078364(struct Sprite *sprite); -void sub_8078458(struct Sprite *sprite); -void sub_80784A8(struct Sprite *sprite); +void TranslateMonBGUntil(struct Sprite *sprite); +void TranslateMonBGSubPixelUntil(struct Sprite *sprite); u8 GetBankSide(u8); u8 GetBankSide(u8); u8 GetBankSide(u8 side); @@ -34,11 +34,10 @@ u8 IsDoubleBattle(void); bool8 IsDoubleBattle(void); void sub_8078914(); u8 sub_80789BC(); -void sub_8078A5C(struct Sprite *sprite); -void sub_8078A5C(struct Sprite *sprite); -void obj_translate_based_on_private_1_2_3_4(struct Sprite *sprite); -bool8 sub_8078B5C(struct Sprite *sprite); -void sub_8078BB8(struct Sprite *sprite); +void InitSpriteDataForLinearTranslation(struct Sprite *sprite); +void InitAnimSpriteTranslationDeltas(struct Sprite *sprite); +bool8 TranslateAnimSpriteByDeltas(struct Sprite *sprite); +void TranslateAnimSpriteByDeltasUntil(struct Sprite *sprite); void sub_8078D44(struct Sprite *sprite); void obj_id_set_rotscale(u8 sprite, s16, s16, u16); bool8 sub_8078E38(); @@ -65,9 +64,9 @@ void sub_807A850(struct Task *task, u8 taskId); void sub_807A8D4(struct Sprite *sprite); void sub_807A960(struct Sprite *sprite); void sub_8078A34(struct Sprite *sprite); -void sub_80787B0(struct Sprite *sprite, u8); +void InitAnimSpritePos(struct Sprite *sprite, u8); void sub_8078764(struct Sprite *sprite, u8); -void sub_8078B34(struct Sprite *sprite); +void StartTranslateAnimSpriteByDeltas(struct Sprite *sprite); void sub_8078D60(struct Sprite *sprite); void sub_80786EC(struct Sprite *sprite); void sub_80782D8(struct Sprite *sprite); @@ -83,9 +82,9 @@ void sub_8078C00(struct Sprite *sprite); void sub_8078114(struct Sprite *sprite); void sub_8078174(struct Sprite *sprite); void sub_80793C4(struct Sprite *sprite); -void sub_807A3FC(u8 slot, u8 a2, s16 *a3, s16 *a4); +void SetAverageBattlerPositions(u8 slot, u8 a2, s16 *a3, s16 *a4); u8 sub_8079ED4(u8 slot); -int sub_807A100(u8 slot, u8 a2); +s16 sub_807A100(u8 slot, u8 a2); u16 sub_80790F0(s16 a, s16 b); void sub_8078FDC(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 rotation); void sub_807867C(struct Sprite *sprite, s16 a2); @@ -99,9 +98,13 @@ void sub_80798F4(struct Task *task, u8 a2, const void *a3); bool8 sub_807992C(struct Task *task); u8 sub_8077FC0(u8 slot); void move_anim_8074EE0(struct Sprite *sprite); -bool8 sub_8078718(struct Sprite *sprite); +bool8 TranslateAnimSpriteLinearAndSine(struct Sprite *sprite); bool8 sub_8078CE8(struct Sprite *sprite); void oamt_add_pos2_onto_pos1(struct Sprite *sprite); void sub_8078BD4(struct Sprite *sprite); +void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite); +void sub_80789D4(bool8 a1); +void sub_8079AB8(u8 sprite, u8 sprite2); +u8 sub_807A4A0(int bank, u8 sprite, int species); #endif // GUARD_ROM_8077ABC_H diff --git a/include/slot_machine.h b/include/slot_machine.h index f886d9239..7759ca1b2 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -75,5 +75,6 @@ struct SlotMachineEwramStruct { void PlaySlotMachine(u8 arg0, MainCallback cb); void sub_8104DA4(void); u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); +void debug_sub_811609C(u8, void (*)(void)); #endif // GUARD_SLOT_MACHINE_H diff --git a/include/sprite.h b/include/sprite.h index b72c09989..3ad418356 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -235,6 +235,7 @@ extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[]; extern s16 gSpriteCoordOffsetX; extern s16 gSpriteCoordOffsetY; extern u8 gReservedSpritePaletteCount; +extern u16 gReservedSpriteTileCount; extern u8 gOamLimit; diff --git a/include/strings.h b/include/strings.h index fe9cfc6ba..91c5c5344 100644 --- a/include/strings.h +++ b/include/strings.h @@ -164,7 +164,7 @@ extern const u8 gOtherText_None[]; extern const u8 gOtherText_ThreeQuestions2[]; -extern const u8 gOtherText_FiveQuestionsAndSlash[]; +extern const u8 gOtherText_FiveQuestions[]; extern const u8 gOtherText_OneDash[]; extern const u8 gOtherText_TwoDashes[]; diff --git a/include/text.h b/include/text.h index f0d039d45..71afd1d00 100644 --- a/include/text.h +++ b/include/text.h @@ -253,4 +253,6 @@ void Text_StripExtCtrlCodes(u8 *str); s32 StringCompareWithoutExtCtrlCodes(const u8 *str1, const u8 *str2); u8 sub_8004FD0(struct Window *win, u8 *dest, const u8 *src, u16 tileDataStartOffset, u8 left, u16 top, u8 width, u32 a8); +extern const u16 gUnknownPalette_81E6692[]; + #endif // GUARD_TEXT_H diff --git a/include/trade.h b/include/trade.h index 46f58a802..d6dee0bd9 100644 --- a/include/trade.h +++ b/include/trade.h @@ -51,6 +51,7 @@ extern const u32 gUnknown_0820CA98[]; extern const u16 gUnknown_0820F798[]; void sub_8047CD8(void); +void sub_804B790(void); void sub_804E174(void); extern const u8 gOtherText_MaleSymbol3[2]; extern const u8 gOtherText_FemaleSymbol3[2]; diff --git a/include/trainer_card.h b/include/trainer_card.h index 7ea1d9fc0..28cabbd09 100644 --- a/include/trainer_card.h +++ b/include/trainer_card.h @@ -32,6 +32,8 @@ void TrainerCard_ShowPlayerCard(void (*)(void)); void TrainerCard_ShowLinkCard(u8, void (*)(void)); void TrainerCard_GenerateCardForPlayer(struct TrainerCard *); u8 sub_80934C4(u8 id); +void debug_sub_80A0710(void (*)(void)); +void debug_sub_80A073C(void (*)(void)); extern struct TrainerCard gTrainerCards[4]; |