summaryrefslogtreecommitdiff
path: root/src/battle_main.c
diff options
context:
space:
mode:
authorDiegoisawesome <diego@domoreaweso.me>2018-12-25 15:03:13 -0600
committerDiegoisawesome <diego@domoreaweso.me>2018-12-25 15:03:13 -0600
commitd8948a5cda2e385c1d4b5c6190c4fe0fb53359fb (patch)
treefa882b0733f88cc17dcbaef8c25c30c7198bdca1 /src/battle_main.c
parentdea41e1a7e6e73789431153d6c28dac3a3a73ac6 (diff)
parenta54aa03d20dacc88879404b87a5f6a7eb7babc54 (diff)
Merge remote-tracking branch 'pret/master' into trade
Diffstat (limited to 'src/battle_main.c')
-rw-r--r--src/battle_main.c121
1 files changed, 78 insertions, 43 deletions
diff --git a/src/battle_main.c b/src/battle_main.c
index a71d8662d..9cd661d9e 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -4,6 +4,7 @@
#include "battle_arena.h"
#include "battle_controllers.h"
#include "battle_interface.h"
+#include "battle_main.h"
#include "battle_message.h"
#include "battle_pyramid.h"
#include "battle_scripts.h"
@@ -39,6 +40,7 @@
#include "sound.h"
#include "sprite.h"
#include "string_util.h"
+#include "strings.h"
#include "task.h"
#include "text.h"
#include "trig.h"
@@ -56,23 +58,8 @@
#include "constants/species.h"
#include "constants/trainers.h"
-struct UnknownPokemonStruct4
-{
- /*0x00*/ u16 species;
- /*0x02*/ u16 heldItem;
- /*0x04*/ u8 nickname[POKEMON_NAME_LENGTH + 1];
- /*0x0F*/ u8 level;
- /*0x10*/ u16 hp;
- /*0x12*/ u16 maxhp;
- /*0x14*/ u32 status;
- /*0x18*/ u32 personality;
- /*0x1C*/ u8 gender;
- /*0x1D*/ u8 language;
-};
-
extern struct MusicPlayerInfo gMPlayInfo_SE1;
extern struct MusicPlayerInfo gMPlayInfo_SE2;
-extern u8 gUnknown_0203CF00[];
extern const struct BgTemplate gBattleBgTemplates[];
extern const struct WindowTemplate *const gBattleWindowTemplates[];
@@ -81,25 +68,9 @@ extern const u8 *const gBattlescriptsForBallThrow[];
extern const u8 *const gBattlescriptsForRunningByItem[];
extern const u8 *const gBattlescriptsForUsingItem[];
extern const u8 *const gBattlescriptsForSafariActions[];
-extern const struct ScanlineEffectParams gBattleIntroSlideScanlineEffectParams;
-
-// strings
-extern const u8 gText_LinkStandby3[];
-extern const u8 gText_BattleRecordCouldntBeSaved[];
-extern const u8 gText_ShedinjaJapaneseName[];
-extern const u8 gText_Poison[];
-extern const u8 gText_Sleep[];
-extern const u8 gText_Paralysis[];
-extern const u8 gText_Burn[];
-extern const u8 gText_Ice[];
-extern const u8 gText_Confusion[];
-extern const u8 gText_Love[];
// functions
-extern void sub_81B9150(void);
extern void sub_80B3AF8(u8 taskId); // cable club
-extern void sub_81B8FB0(u8, u8); // party menu
-extern u8 pokemon_order_func(u8); // party menu
// this file's functions
static void CB2_InitBattleInternal(void);
@@ -117,9 +88,9 @@ static void sub_8038F34(void);
static void sub_80392A8(void);
static void sub_803937C(void);
static void sub_803939C(void);
-static void sub_803980C(struct Sprite *sprite);
-static void sub_8039838(struct Sprite *sprite);
-static void sub_8039894(struct Sprite *sprite);
+static void SpriteCb_MoveWildMonToRight(struct Sprite *sprite);
+static void SpriteCb_WildMonShowHealthbox(struct Sprite *sprite);
+static void SpriteCb_WildMonAnimate(struct Sprite *sprite);
static void sub_80398D0(struct Sprite *sprite);
static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite);
static void sub_8039AF4(struct Sprite *sprite);
@@ -296,6 +267,70 @@ u8 gNumberOfMovesToChoose;
u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT];
// rom const data
+static const struct ScanlineEffectParams sIntroScanlineParams16Bit =
+{
+ (void *)REG_ADDR_BG3HOFS, SCANLINE_EFFECT_DMACNT_16BIT, 1
+};
+
+// unused
+static const struct ScanlineEffectParams sIntroScanlineParams32Bit =
+{
+ (void *)REG_ADDR_BG3HOFS, SCANLINE_EFFECT_DMACNT_32BIT, 1
+};
+
+const struct SpriteTemplate gUnknown_0831AC88 =
+{
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &gDummyOamData,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8038528,
+};
+
+static const u8 sText_ShedinjaJpnName[] = _("ヌケニン"); // Nukenin
+
+const struct OamData gOamData_831ACA8 =
+{
+ .y = 0,
+ .affineMode = 1,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+const struct OamData gOamData_831ACB0 =
+{
+ .y = 0,
+ .affineMode = 1,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 2,
+ .affineParam = 0
+};
+
+// Unknown and unused data. Feel free to remove.
+static const u16 gUnknown_0831ACB8[] = {0, 5, 0xfffe, 0};
+static const u16 *const gUnknown_0831ACC0 = gUnknown_0831ACB8;
+static const u16 gUnknown_0831ACC4[] = {0xfff0, 0, 0x0400, 0, 0, 0, 0x3c00, 0, 0x7ffe, 1, 0, 0};
+static const u16 *const gUnknown_0831ACDC = gUnknown_0831ACC4;
+
static const s8 gUnknown_0831ACE0[] ={-32, -16, -16, -32, -32, 0, 0, 0};
// format: attacking type, defending type, damage multiplier
@@ -633,7 +668,7 @@ static void CB2_InitBattleInternal(void)
gScanlineEffectRegBuffers[1][i] = 0xFF10;
}
- ScanlineEffect_SetParams(gBattleIntroSlideScanlineEffectParams);
+ ScanlineEffect_SetParams(sIntroScanlineParams16Bit);
}
ResetPaletteFade();
@@ -2605,7 +2640,7 @@ static void TryCorrectShedinjaLanguage(struct Pokemon *mon)
&& GetMonData(mon, MON_DATA_LANGUAGE) != language)
{
GetMonData(mon, MON_DATA_NICKNAME, nickname);
- if (StringCompareWithoutExtCtrlCodes(nickname, gText_ShedinjaJapaneseName) == 0)
+ if (StringCompareWithoutExtCtrlCodes(nickname, sText_ShedinjaJpnName) == 0)
SetMonData(mon, MON_DATA_LANGUAGE, &language);
}
}
@@ -2618,38 +2653,38 @@ u32 sub_80397C4(u32 setId, u32 tableId)
#define sBattler data[0]
#define sSpeciesId data[2]
-void oac_poke_opponent(struct Sprite *sprite)
+void SpriteCb_WildMon(struct Sprite *sprite)
{
- sprite->callback = sub_803980C;
+ sprite->callback = SpriteCb_MoveWildMonToRight;
StartSpriteAnimIfDifferent(sprite, 0);
BeginNormalPaletteFade(0x20000, 0, 10, 10, RGB(8, 8, 8));
}
-static void sub_803980C(struct Sprite *sprite)
+static void SpriteCb_MoveWildMonToRight(struct Sprite *sprite)
{
if ((gIntroSlideFlags & 1) == 0)
{
sprite->pos2.x += 2;
if (sprite->pos2.x == 0)
{
- sprite->callback = sub_8039838;
+ sprite->callback = SpriteCb_WildMonShowHealthbox;
}
}
}
-static void sub_8039838(struct Sprite *sprite)
+static void SpriteCb_WildMonShowHealthbox(struct Sprite *sprite)
{
if (sprite->animEnded)
{
sub_8076918(sprite->sBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[sprite->sBattler]);
- sprite->callback = sub_8039894;
+ sprite->callback = SpriteCb_WildMonAnimate;
StartSpriteAnimIfDifferent(sprite, 0);
BeginNormalPaletteFade(0x20000, 0, 10, 0, RGB(8, 8, 8));
}
}
-static void sub_8039894(struct Sprite *sprite)
+static void SpriteCb_WildMonAnimate(struct Sprite *sprite)
{
if (!gPaletteFade.active)
{