diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/battle_4.c | 183 | ||||
-rw-r--r-- | src/berry.c | 49 | ||||
-rw-r--r-- | src/berry_fix_program.c | 7 | ||||
-rw-r--r-- | src/new_game.c | 6 |
4 files changed, 222 insertions, 23 deletions
diff --git a/src/battle_4.c b/src/battle_4.c index 33ac48261..414025695 100644 --- a/src/battle_4.c +++ b/src/battle_4.c @@ -262,6 +262,8 @@ static bool8 sub_804F344(void); static void PutMonIconOnLvlUpBox(void); static void PutLevelAndGenderOnLvlUpBox(void); +static void SpriteCB_MonIconOnLvlUpBox(struct Sprite* sprite); + static void atk00_attackcanceler(void); static void atk01_accuracycheck(void); static void atk02_attackstring(void); @@ -900,25 +902,174 @@ const u8* const gMoveEffectBS_Ptrs[] = static const struct WindowTemplate sUnusedWinTemplate = {0, 1, 3, 7, 0xF, 0x1F, 0x3F}; -extern const struct SpriteTemplate SpriteTemplate_MonIconOnLvlUpBox; -extern const u16 sProtectSuccessRates[]; -extern const u16 sNaturePowerMoves[]; -extern const u16 sWeightToDamageTable[]; -extern const u8 sTerrainToType[]; -extern const u8 sBallCatchBonuses[]; -extern const u16 gUnknown_0831C2C8[]; -extern const u8 gUnknown_0831C2E8[]; -extern const u8 gUnknown_0831C4F8[]; -extern const u8 sFlailHpScaleToPowerTable[12]; -extern const u16 gRarePickupItems[]; -extern const u16 gPickupItems[]; -extern const u8 gPickupProbabilities[]; +const u16 gUnknown_0831C2C8[] = INCBIN_U16("graphics/battle_interface/unk_battlebox.gbapal"); +const u8 gUnknown_0831C2E8[] = INCBIN_U8("graphics/battle_interface/unk_battlebox.4bpp.lz"); + +// unused +static const u8 sRubyLevelUpStatBoxStats[] = +{ + MON_DATA_MAX_HP, MON_DATA_SPATK, MON_DATA_ATK, + MON_DATA_SPDEF, MON_DATA_DEF, MON_DATA_SPD +}; + +#define MON_ICON_LVLUP_BOX_TAG 0xD75A + +const struct OamData gUnknown_0831C3B8 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +const struct SpriteTemplate SpriteTemplate_MonIconOnLvlUpBox = +{ + .tileTag = MON_ICON_LVLUP_BOX_TAG, + .paletteTag = MON_ICON_LVLUP_BOX_TAG, + .oam = &gUnknown_0831C3B8, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_MonIconOnLvlUpBox +}; + +const u16 sProtectSuccessRates[] = {0xFFFF, 0x7FFF, 0x3FFF, 0x1FFF}; -extern const u16 gMovesForbiddenToCopy[]; #define MIMIC_FORBIDDEN_END 0xFFFE #define METRONOME_FORBIDDEN_END 0xFFFF #define ASSIST_FORBIDDEN_END 0xFFFF +static const u16 gMovesForbiddenToCopy[] = +{ + MOVE_METRONOME, + MOVE_STRUGGLE, + MOVE_SKETCH, + MOVE_MIMIC, + MIMIC_FORBIDDEN_END, + MOVE_COUNTER, + MOVE_MIRROR_COAT, + MOVE_PROTECT, + MOVE_DETECT, + MOVE_ENDURE, + MOVE_DESTINY_BOND, + MOVE_SLEEP_TALK, + MOVE_THIEF, + MOVE_FOLLOW_ME, + MOVE_SNATCH, + MOVE_HELPING_HAND, + MOVE_COVET, + MOVE_TRICK, + MOVE_FOCUS_PUNCH, + METRONOME_FORBIDDEN_END +}; + +static const u8 sFlailHpScaleToPowerTable[] = +{ + 1, 200, + 4, 150, + 9, 100, + 16, 80, + 32, 40, + 48, 20 +}; + +static const u16 sNaturePowerMoves[] = +{ + MOVE_STUN_SPORE, + MOVE_RAZOR_LEAF, + MOVE_EARTHQUAKE, + MOVE_HYDRO_PUMP, + MOVE_SURF, + MOVE_BUBBLE_BEAM, + MOVE_ROCK_SLIDE, + MOVE_SHADOW_BALL, + MOVE_SWIFT, + MOVE_SWIFT +}; + +// format: min. weight (hectograms), base power +static const u16 sWeightToDamageTable[] = +{ + 100, 20, + 250, 40, + 500, 60, + 1000, 80, + 2000, 100, + 0xFFFF, 0xFFFF +}; + +static const u16 gPickupItems[] = +{ + ITEM_POTION, + ITEM_ANTIDOTE, + ITEM_SUPER_POTION, + ITEM_GREAT_BALL, + ITEM_REPEL, + ITEM_ESCAPE_ROPE, + ITEM_X_ATTACK, + ITEM_FULL_HEAL, + ITEM_ULTRA_BALL, + ITEM_HYPER_POTION, + ITEM_RARE_CANDY, + ITEM_PROTEIN, + ITEM_REVIVE, + ITEM_HP_UP, + ITEM_FULL_RESTORE, + ITEM_MAX_REVIVE, + ITEM_PP_UP, + ITEM_MAX_ELIXIR, +}; + +static const u16 gRarePickupItems[] = +{ + ITEM_HYPER_POTION, + ITEM_NUGGET, + ITEM_KINGS_ROCK, + ITEM_FULL_RESTORE, + ITEM_ETHER, + ITEM_WHITE_HERB, + ITEM_TM44, + ITEM_ELIXIR, + ITEM_TM01, + ITEM_LEFTOVERS, + ITEM_TM26, +}; + +static const u8 gPickupProbabilities[] = +{ + 30, 40, 50, 60, 70, 80, 90, 94, 98 +}; + +static const u8 sTerrainToType[] = +{ + TYPE_GRASS, // tall grass + TYPE_GRASS, // long grass + TYPE_GROUND, // sand + TYPE_WATER, // underwater + TYPE_WATER, // water + TYPE_WATER, // pond water + TYPE_ROCK , // rock + TYPE_ROCK , // cave + TYPE_NORMAL, // building + TYPE_NORMAL, // plain +}; + +static const u8 sBallCatchBonuses[] = +{ + 20, 15, 10, 15 // Ultra, Great, Poke, Safari +}; + +extern const u8 gUnknown_0831C4F8[]; + static void atk00_attackcanceler(void) { s32 i; @@ -6684,8 +6835,6 @@ static bool8 sub_804F344(void) return (gBattle_BG2_X != 0x1A0); } -#define MON_ICON_LVLUP_BOX_TAG 0xD75A - #define sDestroy data0 #define sSavedLvlUpBoxXPosition data1 @@ -6716,7 +6865,7 @@ static void PutMonIconOnLvlUpBox(void) gSprites[spriteId].sSavedLvlUpBoxXPosition = gBattle_BG2_X; } -void SpriteCB_MonIconOnLvlUpBox(struct Sprite* sprite) +static void SpriteCB_MonIconOnLvlUpBox(struct Sprite* sprite) { sprite->pos2.x = sprite->sSavedLvlUpBoxXPosition - gBattle_BG2_X; diff --git a/src/berry.c b/src/berry.c index e9d6994f8..98cf7d932 100644 --- a/src/berry.c +++ b/src/berry.c @@ -17,7 +17,6 @@ extern bool8 sub_8092E9C(u8, u8, u8); extern u16 gScriptItemId; extern const u8 BerryTreeScript[]; -extern const struct BerryTree gBlankBerryTree; #define BERRY_NAME_LENGTH 6 @@ -804,6 +803,54 @@ const struct Berry gBerries[] = }, }; +const struct UnkStruct_0858AB24 gUnknown_0858AB24[] = { + { 50, 20}, + { 50, 20}, + { 50, 20}, + { 50, 20}, + { 50, 20}, + { 50, 30}, + { 50, 30}, + { 50, 30}, + { 50, 30}, + { 50, 30}, + { 60, 50}, + { 60, 50}, + { 60, 50}, + { 60, 50}, + { 60, 50}, + { 80, 70}, + { 80, 70}, + { 80, 70}, + { 80, 70}, + { 80, 70}, + {100, 100}, + {100, 100}, + {100, 100}, + {100, 100}, + {100, 100}, + {130, 150}, + {130, 150}, + {130, 150}, + {130, 150}, + {130, 150}, + {160, 250}, + {160, 250}, + {160, 250}, + {160, 250}, + {160, 250}, + {180, 500}, + {180, 500}, + {180, 500}, + {180, 500}, + {180, 500}, + {200, 750}, + {200, 750}, + {150, 200} +}; + +const struct BerryTree gBlankBerryTree = {}; + // unused void ClearEnigmaBerries(void) { diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c index f04308ae8..eca20af9d 100644 --- a/src/berry_fix_program.c +++ b/src/berry_fix_program.c @@ -129,8 +129,7 @@ static const u8 *const gUnknown_08618178[][3] = { }, }; -extern const u8 gUnknown_089A6550[0xC0]; -extern const u8 gMultiBootProgram_BerryGlitchFix_Start[0x3b34]; +extern const u8 gMultiBootProgram_BerryGlitchFix_Start[0x3BF4]; extern const u8 gMultiBootProgram_BerryGlitchFix_End[]; // .text @@ -174,7 +173,7 @@ static void berry_fix_main(void) case 3: if (berry_fix_text_update(1) == 1) { - berry_fix_mb_manager->mb.masterp = gUnknown_089A6550; + berry_fix_mb_manager->mb.masterp = gMultiBootProgram_BerryGlitchFix_Start; berry_fix_mb_manager->mb.server_type = 0; MultiBootInit(&berry_fix_mb_manager->mb); berry_fix_mb_manager->unk2 = 0; @@ -189,7 +188,7 @@ static void berry_fix_main(void) } else if (++ berry_fix_mb_manager->unk2 > 180) { - MultiBootStartMaster(&berry_fix_mb_manager->mb, gMultiBootProgram_BerryGlitchFix_Start, (u32)(gMultiBootProgram_BerryGlitchFix_End - gMultiBootProgram_BerryGlitchFix_Start), 4, 1); + MultiBootStartMaster(&berry_fix_mb_manager->mb, gMultiBootProgram_BerryGlitchFix_Start + ROM_HEADER_SIZE, (u32)(gMultiBootProgram_BerryGlitchFix_End - (gMultiBootProgram_BerryGlitchFix_Start + ROM_HEADER_SIZE)), 4, 1); berry_fix_mb_manager->state = 5; } break; diff --git a/src/new_game.c b/src/new_game.c index 2bf774c69..5a482c593 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -18,6 +18,7 @@ #include "event_data.h" #include "money.h" #include "coins.h" +#include "text.h" extern u8 gPlayerPartyCount; extern u8 gDifferentSaveFile; @@ -104,7 +105,10 @@ void ClearPokedexFlags(void) memset(&gSaveBlock2Ptr->pokedex.seen, 0, sizeof(gSaveBlock2Ptr->pokedex.seen)); } -extern const struct ContestWinner gContestWinnerPicDummy; +const struct ContestWinner gContestWinnerPicDummy = { + .monName = _(""), + .trainerName = _("") +}; void ClearAllContestWinnerPics(void) { |