summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDizzyEggg <jajkodizzy@wp.pl>2017-09-28 16:32:23 +0200
committerDizzyEggg <jajkodizzy@wp.pl>2017-09-28 16:32:23 +0200
commit14fcc9ec209a0a910dd0cf870dc835e7b7408e4c (patch)
tree9f36acaa5a718f110f200603038b2942caabf30c /src
parentbc3b4b4d9ae6ab59c9ce3892b7d287ebd0ee13fa (diff)
parent3c8091393ca12b8eeb26f236a997b70eea5688c6 (diff)
merge with master and move to C
Diffstat (limited to 'src')
-rw-r--r--src/battle_4.c183
-rw-r--r--src/berry.c49
-rw-r--r--src/berry_fix_program.c7
-rw-r--r--src/new_game.c6
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)
{