Merge branch 'master' into mail
This commit is contained in:
@@ -217,7 +217,7 @@ extern void sub_81B9150(void);
|
||||
extern void sub_800AC34(void);
|
||||
extern void sub_80B3AF8(u8 taskId); // cable club
|
||||
extern void sub_8076918(u8 bank);
|
||||
extern void sub_80729D0(u8 healthoxSpriteId);
|
||||
extern void SetHealthboxSpriteVisible(u8 healthoxSpriteId);
|
||||
extern void sub_81A56B4(void); // battle frontier 2
|
||||
extern u8 sub_81A9E28(void); // battle frontier 2
|
||||
extern void sub_81A56E8(u8 bank); // battle frontier 2
|
||||
@@ -2437,7 +2437,7 @@ static void sub_8039838(struct Sprite *sprite)
|
||||
if (sprite->animEnded)
|
||||
{
|
||||
sub_8076918(sprite->tBank);
|
||||
sub_80729D0(gHealthBoxesIds[sprite->tBank]);
|
||||
SetHealthboxSpriteVisible(gHealthBoxesIds[sprite->tBank]);
|
||||
sprite->callback = sub_8039894;
|
||||
StartSpriteAnimIfDifferent(sprite, 0);
|
||||
BeginNormalPaletteFade(0x20000, 0, 10, 0, 0x2108);
|
||||
|
||||
3274
src/battle_util.c
3274
src/battle_util.c
File diff suppressed because it is too large
Load Diff
@@ -220,7 +220,7 @@ bool8 ShouldDoBrailleStrengthEffect(void)
|
||||
|
||||
void sub_8179834(void)
|
||||
{
|
||||
gFieldEffectSpawnParams[0] = brm_get_pokemon_selection();
|
||||
gFieldEffectArguments[0] = brm_get_pokemon_selection();
|
||||
FieldEffectStart(FLDEFF_USE_FLY_ANCIENT_TOMB);
|
||||
}
|
||||
|
||||
@@ -256,7 +256,7 @@ bool8 ShouldDoBrailleFlyEffect(void)
|
||||
|
||||
void sub_8179918(void)
|
||||
{
|
||||
gFieldEffectSpawnParams[0] = brm_get_pokemon_selection();
|
||||
gFieldEffectArguments[0] = brm_get_pokemon_selection();
|
||||
FieldEffectStart(FLDEFF_USE_FLY_ANCIENT_TOMB);
|
||||
}
|
||||
|
||||
@@ -417,7 +417,7 @@ bool8 ShouldDoBrailleRegicePuzzle(void)
|
||||
}
|
||||
// TODO: Find what flags 2 and 3 are.
|
||||
FlagSet(3);
|
||||
FlagReset(2);
|
||||
FlagClear(2);
|
||||
return FALSE;
|
||||
}
|
||||
#else
|
||||
@@ -568,7 +568,7 @@ _08179B44:\n\
|
||||
movs r0, 0x3\n\
|
||||
bl FlagSet\n\
|
||||
movs r0, 0x2\n\
|
||||
bl FlagReset\n\
|
||||
bl FlagClear\n\
|
||||
_08179B5A:\n\
|
||||
movs r0, 0\n\
|
||||
_08179B5C:\n\
|
||||
|
||||
@@ -54,7 +54,7 @@ void SetCoins(u16 coinAmount)
|
||||
}
|
||||
|
||||
/* Can't match it lol
|
||||
bool8 AddCoins(u16 toAdd)
|
||||
bool8 GiveCoins(u16 toAdd)
|
||||
{
|
||||
u16 newAmount;
|
||||
u16 ownedCoins = GetCoins();
|
||||
|
||||
@@ -40,11 +40,11 @@ void ClearTempFieldEventData(void)
|
||||
{
|
||||
memset(gSaveBlock1Ptr->flags, 0, TEMP_FLAGS_SIZE);
|
||||
memset(gSaveBlock1Ptr->vars, 0, TEMP_VARS_SIZE);
|
||||
FlagReset(SYS_ENC_UP_ITEM);
|
||||
FlagReset(SYS_ENC_DOWN_ITEM);
|
||||
FlagReset(SYS_USE_STRENGTH);
|
||||
FlagReset(SYS_CTRL_OBJ_DELETE);
|
||||
FlagReset(SYS_UNKNOWN_880);
|
||||
FlagClear(SYS_ENC_UP_ITEM);
|
||||
FlagClear(SYS_ENC_DOWN_ITEM);
|
||||
FlagClear(SYS_USE_STRENGTH);
|
||||
FlagClear(SYS_CTRL_OBJ_DELETE);
|
||||
FlagClear(SYS_UNKNOWN_880);
|
||||
}
|
||||
|
||||
// probably had different flag splits at one point.
|
||||
@@ -58,7 +58,7 @@ void DisableNationalPokedex(void)
|
||||
u16 *nationalDexVar = GetVarPointer(VAR_NATIONAL_DEX);
|
||||
gSaveBlock2Ptr->pokedex.nationalMagic = 0;
|
||||
*nationalDexVar = 0;
|
||||
FlagReset(SYS_NATIONAL_DEX);
|
||||
FlagClear(SYS_NATIONAL_DEX);
|
||||
}
|
||||
|
||||
void EnableNationalPokedex(void)
|
||||
@@ -82,7 +82,7 @@ bool32 IsNationalPokedexEnabled(void)
|
||||
|
||||
void DisableMysteryEvent(void)
|
||||
{
|
||||
FlagReset(SYS_MYSTERY_EVENT_ENABLE);
|
||||
FlagClear(SYS_MYSTERY_EVENT_ENABLE);
|
||||
}
|
||||
|
||||
void EnableMysteryEvent(void)
|
||||
@@ -97,7 +97,7 @@ bool32 IsMysteryEventEnabled(void)
|
||||
|
||||
void DisableMysteryGift(void)
|
||||
{
|
||||
FlagReset(SYS_MYSTERY_GIFT_ENABLE);
|
||||
FlagClear(SYS_MYSTERY_GIFT_ENABLE);
|
||||
}
|
||||
|
||||
void EnableMysteryGift(void)
|
||||
@@ -112,22 +112,22 @@ bool32 IsMysteryGiftEnabled(void)
|
||||
|
||||
void sub_809D4D8(void)
|
||||
{
|
||||
FlagReset(0x1E4);
|
||||
FlagReset(0x1E5);
|
||||
FlagReset(0x1E6);
|
||||
FlagReset(0x1E7);
|
||||
FlagReset(0x1E8);
|
||||
FlagReset(0x1E9);
|
||||
FlagReset(0x1EA);
|
||||
FlagReset(0x1EB);
|
||||
FlagReset(0x1EC);
|
||||
FlagReset(0x1ED);
|
||||
FlagReset(0x1EE);
|
||||
FlagReset(0x1EF);
|
||||
FlagReset(0x1F0);
|
||||
FlagReset(0x1F1);
|
||||
FlagReset(0x1F2);
|
||||
FlagReset(0x1F3);
|
||||
FlagClear(0x1E4);
|
||||
FlagClear(0x1E5);
|
||||
FlagClear(0x1E6);
|
||||
FlagClear(0x1E7);
|
||||
FlagClear(0x1E8);
|
||||
FlagClear(0x1E9);
|
||||
FlagClear(0x1EA);
|
||||
FlagClear(0x1EB);
|
||||
FlagClear(0x1EC);
|
||||
FlagClear(0x1ED);
|
||||
FlagClear(0x1EE);
|
||||
FlagClear(0x1EF);
|
||||
FlagClear(0x1F0);
|
||||
FlagClear(0x1F1);
|
||||
FlagClear(0x1F2);
|
||||
FlagClear(0x1F3);
|
||||
}
|
||||
|
||||
void sub_809D570(void)
|
||||
@@ -145,7 +145,7 @@ void sub_809D570(void)
|
||||
void DisableResetRTC(void)
|
||||
{
|
||||
VarSet(VAR_RESET_RTC_ENABLE, 0);
|
||||
FlagReset(SYS_RESET_RTC_ENABLE);
|
||||
FlagClear(SYS_RESET_RTC_ENABLE);
|
||||
}
|
||||
|
||||
void EnableResetRTC(void)
|
||||
@@ -214,7 +214,7 @@ u8 FlagSet(u16 id)
|
||||
return 0;
|
||||
}
|
||||
|
||||
u8 FlagReset(u16 id)
|
||||
u8 FlagClear(u16 id)
|
||||
{
|
||||
u8 *ptr = GetFlagPointer(id);
|
||||
if (ptr)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "global.h"
|
||||
#include "malloc.h"
|
||||
#include "sprite.h"
|
||||
#include "rom4.h"
|
||||
#include "overworld.h"
|
||||
#include "rng.h"
|
||||
#include "event_scripts.h"
|
||||
#include "berry.h"
|
||||
@@ -2386,10 +2386,10 @@ bool8 do_berry_tree_growth_sparkle_1 (struct MapObject *mapObject, struct Sprite
|
||||
{
|
||||
if (!(sprite->data7 & 0x0004) && sprite->animNum == 4)
|
||||
{
|
||||
gFieldEffectSpawnParams[0] = mapObject->coords2.x;
|
||||
gFieldEffectSpawnParams[1] = mapObject->coords2.y;
|
||||
gFieldEffectSpawnParams[2] = sprite->subpriority - 1;
|
||||
gFieldEffectSpawnParams[3] = sprite->oam.priority;
|
||||
gFieldEffectArguments[0] = mapObject->coords2.x;
|
||||
gFieldEffectArguments[1] = mapObject->coords2.y;
|
||||
gFieldEffectArguments[2] = sprite->subpriority - 1;
|
||||
gFieldEffectArguments[3] = sprite->oam.priority;
|
||||
FieldEffectStart(FLDEFF_BERRY_TREE_GROWTH_SPARKLE);
|
||||
sprite->animNum = berryStage;
|
||||
}
|
||||
@@ -2425,10 +2425,10 @@ bool8 do_berry_tree_growth_sparkle_2 (struct MapObject *mapObject, struct Sprite
|
||||
sprite->data1 = 3;
|
||||
sprite->data2 = 0;
|
||||
sprite->data7 |= 0x0002;
|
||||
gFieldEffectSpawnParams[0] = mapObject->coords2.x;
|
||||
gFieldEffectSpawnParams[1] = mapObject->coords2.y;
|
||||
gFieldEffectSpawnParams[2] = sprite->subpriority - 1;
|
||||
gFieldEffectSpawnParams[3] = sprite->oam.priority;
|
||||
gFieldEffectArguments[0] = mapObject->coords2.x;
|
||||
gFieldEffectArguments[1] = mapObject->coords2.y;
|
||||
gFieldEffectArguments[2] = sprite->subpriority - 1;
|
||||
gFieldEffectArguments[3] = sprite->oam.priority;
|
||||
FieldEffectStart(FLDEFF_BERRY_TREE_GROWTH_SPARKLE);
|
||||
return TRUE;
|
||||
}
|
||||
@@ -3425,7 +3425,7 @@ void FieldObjectCB_TreeDisguise(struct Sprite *sprite)
|
||||
mapObject = &gMapObjects[sprite->data0];
|
||||
if (mapObject->mapobj_unk_21 == 0 || (mapObject->mapobj_unk_21 == 1 && !sprite->data7))
|
||||
{
|
||||
FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]);
|
||||
FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
|
||||
mapObject->mapobj_unk_1A = FieldEffectStart(FLDEFF_TREE_DISGUISE);
|
||||
mapObject->mapobj_unk_21 = 1;
|
||||
sprite->data7 ++;
|
||||
@@ -3446,7 +3446,7 @@ void FieldObjectCB_MountainDisguise(struct Sprite *sprite)
|
||||
mapObject = &gMapObjects[sprite->data0];
|
||||
if (mapObject->mapobj_unk_21 == 0 || (mapObject->mapobj_unk_21 == 1 && !sprite->data7))
|
||||
{
|
||||
FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]);
|
||||
FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
|
||||
mapObject->mapobj_unk_1A = FieldEffectStart(FLDEFF_MOUNTAIN_DISGUISE);
|
||||
mapObject->mapobj_unk_21 = 1;
|
||||
sprite->data7 ++;
|
||||
@@ -4693,7 +4693,7 @@ bool8 sub_80954CC(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
|
||||
bool8 do_exclamation_mark_bubble_1(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]);
|
||||
FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
|
||||
FieldEffectStart(FLDEFF_EXCLAMATION_MARK_ICON_1);
|
||||
sprite->data2 = 1;
|
||||
return TRUE;
|
||||
@@ -4701,7 +4701,7 @@ bool8 do_exclamation_mark_bubble_1(struct MapObject *mapObject, struct Sprite *s
|
||||
|
||||
bool8 do_exclamation_mark_bubble_2(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]);
|
||||
FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
|
||||
FieldEffectStart(FLDEFF_EXCLAMATION_MARK_ICON_2);
|
||||
sprite->data2 = 1;
|
||||
return TRUE;
|
||||
@@ -4709,7 +4709,7 @@ bool8 do_exclamation_mark_bubble_2(struct MapObject *mapObject, struct Sprite *s
|
||||
|
||||
bool8 do_heart_bubble(struct MapObject *mapObject, struct Sprite *sprite)
|
||||
{
|
||||
FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]);
|
||||
FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
|
||||
FieldEffectStart(FLDEFF_HEART_ICON);
|
||||
sprite->data2 = 1;
|
||||
return TRUE;
|
||||
|
||||
@@ -13,10 +13,10 @@
|
||||
#define SECONDS(value) ((signed) (60.0 * value + 0.5))
|
||||
|
||||
extern u8 GetSSTidalLocation(s8 *, s8 *, s16 *, s16 *); // should be in field_specials.h
|
||||
extern void warp1_set(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
|
||||
extern bool8 sub_80D3340(u8, u8, u8);
|
||||
extern void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
|
||||
extern bool8 ScriptMovement_IsObjectMovementFinished(u8, u8, u8);
|
||||
extern bool32 CountSSTidalStep(u16);
|
||||
extern bool8 exec_movement(u8, u8, u8, u8 *);
|
||||
extern bool8 ScriptMovement_StartObjectMovementScript(u8, u8, u8, u8 *);
|
||||
extern void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused);
|
||||
extern void sp13E_warp_to_last_warp(void);
|
||||
extern void saved_warp2_set(int unused, s8 mapGroup, s8 mapNum, s8 warpId);
|
||||
@@ -264,7 +264,7 @@ bool8 sub_80FB59C(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
warp1_set(mapGroup, mapNum, -1, x, y);
|
||||
Overworld_SetWarpDestination(mapGroup, mapNum, -1, x, y);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
@@ -287,7 +287,7 @@ void Task_HandlePorthole(u8 taskId)
|
||||
case IDLE_CHECK: // idle and move.
|
||||
if (gMain.newKeys & A_BUTTON)
|
||||
data[1] = 1;
|
||||
if (!sub_80D3340(0xFF, location->mapNum, location->mapGroup))
|
||||
if (!ScriptMovement_IsObjectMovementFinished(0xFF, location->mapNum, location->mapGroup))
|
||||
return;
|
||||
if (CountSSTidalStep(1) == TRUE)
|
||||
{
|
||||
@@ -308,18 +308,18 @@ void Task_HandlePorthole(u8 taskId)
|
||||
// run this once.
|
||||
if (*var == 2) // which direction?
|
||||
{
|
||||
exec_movement(0xFF, location->mapNum, location->mapGroup, gUnknown_0858E8AB);
|
||||
ScriptMovement_StartObjectMovementScript(0xFF, location->mapNum, location->mapGroup, gUnknown_0858E8AB);
|
||||
data[0] = IDLE_CHECK; // run case 1.
|
||||
}
|
||||
else
|
||||
{
|
||||
exec_movement(0xFF, location->mapNum, location->mapGroup, gUnknown_0858E8AD);
|
||||
ScriptMovement_StartObjectMovementScript(0xFF, location->mapNum, location->mapGroup, gUnknown_0858E8AD);
|
||||
data[0] = IDLE_CHECK; // run case 1.
|
||||
}
|
||||
break;
|
||||
case EXIT_PORTHOLE: // exit porthole.
|
||||
FlagReset(0x4001);
|
||||
FlagReset(0x4000);
|
||||
FlagClear(0x4001);
|
||||
FlagClear(0x4000);
|
||||
copy_saved_warp2_bank_and_enter_x_to_warp1(0);
|
||||
sp13E_warp_to_last_warp();
|
||||
DestroyTask(taskId);
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
#include "global.h"
|
||||
#include "main.h"
|
||||
#include "rom4.h"
|
||||
#include "overworld.h"
|
||||
#include "rom6.h"
|
||||
#include "event_data.h"
|
||||
#include "script.h"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// Includes
|
||||
#include "global.h"
|
||||
#include "main.h"
|
||||
#include "rom4.h"
|
||||
#include "overworld.h"
|
||||
#include "task.h"
|
||||
#include "unknown_task.h"
|
||||
#include "palette.h"
|
||||
|
||||
@@ -110,7 +110,7 @@ void AddMoney(u32* moneyPtr, u32 toAdd)
|
||||
SetMoney(moneyPtr, toSet);
|
||||
}
|
||||
|
||||
void SubtractMoney(u32* moneyPtr, u32 toSub)
|
||||
void RemoveMoney(u32* moneyPtr, u32 toSub)
|
||||
{
|
||||
u32 toSet = GetMoney(moneyPtr);
|
||||
|
||||
@@ -130,7 +130,7 @@ bool8 IsEnoughForCostInVar0x8005(void)
|
||||
|
||||
void SubtractMoneyFromVar0x8005(void)
|
||||
{
|
||||
SubtractMoney(&gSaveBlock1Ptr->money, gSpecialVar_0x8005);
|
||||
RemoveMoney(&gSaveBlock1Ptr->money, gSpecialVar_0x8005);
|
||||
}
|
||||
|
||||
void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed)
|
||||
|
||||
@@ -29,7 +29,7 @@ extern u8 gUnknown_030060B0;
|
||||
// TODO: replace those declarations with file headers
|
||||
extern u16 GetGeneratedTrainerIdLower(void);
|
||||
extern void ClearContestWinnerPicsInContestHall(void);
|
||||
extern void warp1_set(s8 mapBank, s8 mapNo, s8 warpNo, s8 xPos, s8 yPos);
|
||||
extern void Overworld_SetWarpDestination(s8 mapBank, s8 mapNo, s8 warpNo, s8 xPos, s8 yPos);
|
||||
extern void warp_in(void);
|
||||
extern void sub_80BB358(void);
|
||||
extern void ResetBagScrollPositions(void);
|
||||
@@ -131,7 +131,7 @@ void sub_8084400(void)
|
||||
|
||||
void WarpToTruck(void)
|
||||
{
|
||||
warp1_set(25, 40, -1, -1, -1); // inside of truck
|
||||
Overworld_SetWarpDestination(25, 40, -1, -1, -1); // inside of truck
|
||||
warp_in();
|
||||
}
|
||||
|
||||
|
||||
@@ -53,13 +53,13 @@ static void UpdateBlendRegisters(void);
|
||||
static bool8 IsSoftwarePaletteFadeFinishing(void);
|
||||
static void sub_80A2D54(u8 taskId);
|
||||
|
||||
EWRAM_DATA u16 gPlttBufferUnfaded[0x200] = {0};
|
||||
EWRAM_DATA u16 gPlttBufferFaded[0x200] = {0};
|
||||
EWRAM_DATA u16 gPlttBufferUnfaded[PLTT_BUFFER_SIZE] = {0};
|
||||
EWRAM_DATA u16 gPlttBufferFaded[PLTT_BUFFER_SIZE] = {0};
|
||||
EWRAM_DATA struct PaletteStruct sPaletteStructs[0x10] = {0};
|
||||
EWRAM_DATA struct PaletteFadeControl gPaletteFade = {0};
|
||||
static EWRAM_DATA u32 gFiller_2037FE0 = 0;
|
||||
static EWRAM_DATA u32 sPlttBufferTransferPending = 0;
|
||||
EWRAM_DATA u8 gPaletteDecompressionBuffer[0x400] = {0};
|
||||
EWRAM_DATA u8 gPaletteDecompressionBuffer[PLTT_DECOMP_BUFFER_SIZE] = {0};
|
||||
|
||||
static const struct PaletteStructTemplate gDummyPaletteStructTemplate = {
|
||||
.uid = 0xFFFF,
|
||||
|
||||
@@ -1089,7 +1089,7 @@ u8 SendMonToPC(struct Pokemon* mon)
|
||||
gSpecialVar_0x8012 = boxNo;
|
||||
gSpecialVar_0x8013 = boxPos;
|
||||
if (get_unknown_box_id() != boxNo)
|
||||
FlagReset(SYS_STORAGE_UNKNOWN_FLAG);
|
||||
FlagClear(SYS_STORAGE_UNKNOWN_FLAG);
|
||||
VarSet(VAR_STORAGE_UNKNOWN, boxNo);
|
||||
return MON_GIVEN_TO_PC;
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include "load_save.h"
|
||||
#include "save.h"
|
||||
#include "new_game.h"
|
||||
#include "rom4.h"
|
||||
#include "overworld.h"
|
||||
#include "malloc.h"
|
||||
|
||||
void sub_81700F8(void)
|
||||
|
||||
354
src/reshow_battle_screen.c
Normal file
354
src/reshow_battle_screen.c
Normal file
@@ -0,0 +1,354 @@
|
||||
#include "global.h"
|
||||
#include "reshow_battle_screen.h"
|
||||
#include "battle.h"
|
||||
#include "palette.h"
|
||||
#include "main.h"
|
||||
#include "unknown_task.h"
|
||||
#include "text.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "bg.h"
|
||||
#include "battle_controllers.h"
|
||||
#include "link.h"
|
||||
#include "sprite.h"
|
||||
#include "species.h"
|
||||
#include "battle_interface.h"
|
||||
|
||||
extern u16 gBattle_BG0_X;
|
||||
extern u16 gBattle_BG0_Y;
|
||||
extern u16 gBattle_BG1_X;
|
||||
extern u16 gBattle_BG1_Y;
|
||||
extern u16 gBattle_BG2_X;
|
||||
extern u16 gBattle_BG2_Y;
|
||||
extern u16 gBattle_BG3_X;
|
||||
extern u16 gBattle_BG3_Y;
|
||||
extern u8 gReservedSpritePaletteCount;
|
||||
extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
|
||||
extern u8 gBankInMenu;
|
||||
extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
|
||||
extern u8 gNoOfAllBanks;
|
||||
extern u32 gBattleTypeFlags;
|
||||
extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
|
||||
extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
|
||||
extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT];
|
||||
extern struct SpriteTemplate gUnknown_0202499C;
|
||||
|
||||
extern const union AnimCmd * const * const gMonAnimationsSpriteAnimsPtrTable[];
|
||||
|
||||
extern void dp12_8087EA4(void);
|
||||
extern void trs_config(void);
|
||||
extern bool8 IsDoubleBattle(void);
|
||||
extern u8 sub_80A614C(u8 bank);
|
||||
extern u8 sub_80A6138(u8 bank);
|
||||
extern u8 sub_80A82E4(u8 bank);
|
||||
extern void sub_806A068(u16 species, u8 bankIdentity);
|
||||
extern void sub_806A12C(u16 backPicId, u8 bankIdentity);
|
||||
extern u8 sub_80A5C6C(u8 bank, u8 caseId);
|
||||
|
||||
// this file's functions
|
||||
static void CB2_ReshowBattleScreenAfterMenu(void);
|
||||
static bool8 LoadBankSpriteGfx(u8 bank);
|
||||
static void CreateBankSprite(u8 bank);
|
||||
static void CreateHealthboxSprite(u8 bank);
|
||||
static void sub_80A95F4(void);
|
||||
|
||||
void nullsub_35(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ReshowBattleScreenAfterMenu(void)
|
||||
{
|
||||
gPaletteFade.bufferTransferDisabled = 1;
|
||||
SetHBlankCallback(NULL);
|
||||
SetVBlankCallback(NULL);
|
||||
SetGpuReg(REG_OFFSET_MOSAIC, 0);
|
||||
gBattleScripting.reshowMainState = 0;
|
||||
gBattleScripting.reshowHelperState = 0;
|
||||
SetMainCallback2(CB2_ReshowBattleScreenAfterMenu);
|
||||
}
|
||||
|
||||
static void CB2_ReshowBattleScreenAfterMenu(void)
|
||||
{
|
||||
switch (gBattleScripting.reshowMainState)
|
||||
{
|
||||
case 0:
|
||||
dp12_8087EA4();
|
||||
trs_config();
|
||||
SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0);
|
||||
SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0);
|
||||
ShowBg(0);
|
||||
ShowBg(1);
|
||||
ShowBg(2);
|
||||
ShowBg(3);
|
||||
ResetPaletteFade();
|
||||
gBattle_BG0_X = 0;
|
||||
gBattle_BG0_Y = 0;
|
||||
gBattle_BG1_X = 0;
|
||||
gBattle_BG1_Y = 0;
|
||||
gBattle_BG2_X = 0;
|
||||
gBattle_BG2_Y = 0;
|
||||
gBattle_BG3_X = 0;
|
||||
gBattle_BG3_Y = 0;
|
||||
break;
|
||||
case 1:
|
||||
CpuFastFill(0, (void*)(VRAM), VRAM_SIZE);
|
||||
break;
|
||||
case 2:
|
||||
LoadBattleTextboxAndBackground();
|
||||
break;
|
||||
case 3:
|
||||
ResetSpriteData();
|
||||
break;
|
||||
case 4:
|
||||
FreeAllSpritePalettes();
|
||||
gReservedSpritePaletteCount = 4;
|
||||
break;
|
||||
case 5:
|
||||
sub_805E350();
|
||||
break;
|
||||
case 6:
|
||||
if (BattleLoadAllHealthBoxesGfx(gBattleScripting.reshowHelperState))
|
||||
{
|
||||
gBattleScripting.reshowHelperState = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
gBattleScripting.reshowHelperState++;
|
||||
gBattleScripting.reshowMainState--;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
if (!LoadBankSpriteGfx(0))
|
||||
gBattleScripting.reshowMainState--;
|
||||
break;
|
||||
case 8:
|
||||
if (!LoadBankSpriteGfx(1))
|
||||
gBattleScripting.reshowMainState--;
|
||||
break;
|
||||
case 9:
|
||||
if (!LoadBankSpriteGfx(2))
|
||||
gBattleScripting.reshowMainState--;
|
||||
break;
|
||||
case 10:
|
||||
if (!LoadBankSpriteGfx(3))
|
||||
gBattleScripting.reshowMainState--;
|
||||
break;
|
||||
case 11:
|
||||
CreateBankSprite(0);
|
||||
break;
|
||||
case 12:
|
||||
CreateBankSprite(1);
|
||||
break;
|
||||
case 13:
|
||||
CreateBankSprite(2);
|
||||
break;
|
||||
case 14:
|
||||
CreateBankSprite(3);
|
||||
break;
|
||||
case 15:
|
||||
CreateHealthboxSprite(0);
|
||||
break;
|
||||
case 16:
|
||||
CreateHealthboxSprite(1);
|
||||
break;
|
||||
case 17:
|
||||
CreateHealthboxSprite(2);
|
||||
break;
|
||||
case 18:
|
||||
CreateHealthboxSprite(3);
|
||||
break;
|
||||
case 19:
|
||||
{
|
||||
u8 opponentBank;
|
||||
u16 species;
|
||||
|
||||
LoadAndCreateEnemyShadowSprites();
|
||||
|
||||
opponentBank = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
|
||||
species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES);
|
||||
SetBankEnemyShadowSpriteCallback(opponentBank, species);
|
||||
|
||||
if (IsDoubleBattle())
|
||||
{
|
||||
opponentBank = GetBankByIdentity(IDENTITY_OPPONENT_MON2);
|
||||
species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES);
|
||||
SetBankEnemyShadowSpriteCallback(opponentBank, species);
|
||||
}
|
||||
|
||||
ActionSelectionCreateCursorAt(gActionSelectionCursor[gBankInMenu], 0);
|
||||
|
||||
if (gLinkVSyncDisabled != 0 && gReceivedRemoteLinkPlayers != 0)
|
||||
{
|
||||
sub_800E0E8();
|
||||
sub_800DFB4(0, 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
SetVBlankCallback(VBlankCB_Battle);
|
||||
sub_80A95F4();
|
||||
BeginHardwarePaletteFade(0xFF, 0, 0x10, 0, 1);
|
||||
gPaletteFade.bufferTransferDisabled = 0;
|
||||
SetMainCallback2(BattleMainCB2);
|
||||
sub_805EF14();
|
||||
break;
|
||||
}
|
||||
|
||||
gBattleScripting.reshowMainState++;
|
||||
}
|
||||
|
||||
static void sub_80A95F4(void)
|
||||
{
|
||||
struct BGCntrlBitfield *regBgcnt1, *regBgcnt2;
|
||||
|
||||
regBgcnt1 = (struct BGCntrlBitfield *)(®_BG1CNT);
|
||||
regBgcnt1->charBaseBlock = 0;
|
||||
|
||||
regBgcnt2 = (struct BGCntrlBitfield *)(®_BG2CNT);
|
||||
regBgcnt2->charBaseBlock = 0;
|
||||
}
|
||||
|
||||
static bool8 LoadBankSpriteGfx(u8 bank)
|
||||
{
|
||||
if (bank < gNoOfAllBanks)
|
||||
{
|
||||
if (GetBankSide(bank) != SIDE_PLAYER)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->bankData[bank].behindSubstitute)
|
||||
BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank);
|
||||
else
|
||||
BattleLoadSubstituteSpriteGfx(bank, FALSE);
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0)
|
||||
LoadBackTrainerBankSpriteGfx(gSaveBlock2Ptr->playerGender, bank);
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0)
|
||||
LoadBackTrainerBankSpriteGfx(BACK_PIC_WALLY, bank);
|
||||
else if (!gBattleSpritesDataPtr->bankData[bank].behindSubstitute)
|
||||
BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[bank]], bank);
|
||||
else
|
||||
BattleLoadSubstituteSpriteGfx(bank, FALSE);
|
||||
|
||||
gBattleScripting.reshowHelperState = 0;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// todo: get rid of it once the struct is declared in a header
|
||||
struct MonCoords
|
||||
{
|
||||
// This would use a bitfield, but sub_8079F44
|
||||
// uses it as a u8 and casting won't match.
|
||||
u8 coords; // u8 x:4, y:4;
|
||||
u8 y_offset;
|
||||
};
|
||||
extern const struct MonCoords gTrainerBackPicCoords[];
|
||||
|
||||
static void CreateBankSprite(u8 bank)
|
||||
{
|
||||
if (bank < gNoOfAllBanks)
|
||||
{
|
||||
u8 posY;
|
||||
|
||||
if (gBattleSpritesDataPtr->bankData[bank].behindSubstitute)
|
||||
posY = sub_80A614C(bank);
|
||||
else
|
||||
posY = sub_80A6138(bank);
|
||||
|
||||
if (GetBankSide(bank) != SIDE_PLAYER)
|
||||
{
|
||||
if (GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_HP) == 0)
|
||||
return;
|
||||
|
||||
sub_806A068(GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankIdentity(bank));
|
||||
gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, sub_80A5C6C(bank, 2), posY, sub_80A82E4(bank));
|
||||
gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
|
||||
gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBankSpriteIds[bank]].data0 = bank;
|
||||
gSprites[gBankSpriteIds[bank]].data2 = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES);
|
||||
|
||||
StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]);
|
||||
if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_CASTFORM)
|
||||
gSprites[gBankSpriteIds[bank]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM];
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0)
|
||||
{
|
||||
sub_806A12C(gSaveBlock2Ptr->playerGender, GetBankIdentity(IDENTITY_PLAYER_MON1));
|
||||
gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, 0x50,
|
||||
(8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].coords) * 4 + 80,
|
||||
sub_80A82E4(0));
|
||||
gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
|
||||
gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBankSpriteIds[bank]].data0 = bank;
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0)
|
||||
{
|
||||
sub_806A12C(BACK_PIC_WALLY, GetBankIdentity(0));
|
||||
gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, 0x50,
|
||||
(8 - gTrainerBackPicCoords[BACK_PIC_WALLY].coords) * 4 + 80,
|
||||
sub_80A82E4(0));
|
||||
gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
|
||||
gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBankSpriteIds[bank]].data0 = bank;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_HP) == 0)
|
||||
return;
|
||||
|
||||
sub_806A068(GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankIdentity(bank));
|
||||
gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, sub_80A5C6C(bank, 2), posY, sub_80A82E4(bank));
|
||||
gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
|
||||
gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBankSpriteIds[bank]].data0 = bank;
|
||||
gSprites[gBankSpriteIds[bank]].data2 = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES);
|
||||
|
||||
StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]);
|
||||
if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_CASTFORM)
|
||||
gSprites[gBankSpriteIds[bank]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM];
|
||||
}
|
||||
|
||||
gSprites[gBankSpriteIds[bank]].invisible = gBattleSpritesDataPtr->bankData[bank].invisible;
|
||||
}
|
||||
}
|
||||
|
||||
static void CreateHealthboxSprite(u8 bank)
|
||||
{
|
||||
if (bank < gNoOfAllBanks)
|
||||
{
|
||||
u8 healthboxSpriteId;
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0)
|
||||
healthboxSpriteId = CreateSafariPlayerHealthboxSprites();
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0)
|
||||
return;
|
||||
else
|
||||
healthboxSpriteId = CreateBankHealthboxSprites(bank);
|
||||
|
||||
gHealthBoxesIds[bank] = healthboxSpriteId;
|
||||
SetBankHealthboxSpritePos(bank);
|
||||
SetHealthboxSpriteVisible(healthboxSpriteId);
|
||||
|
||||
if (GetBankSide(bank) != SIDE_PLAYER)
|
||||
UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gEnemyParty[gBattlePartyID[bank]], HEALTHBOX_ALL);
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
|
||||
UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[gBattlePartyID[bank]], HEALTHBOX_SAFARI_ALL_TEXT);
|
||||
else
|
||||
UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[gBattlePartyID[bank]], HEALTHBOX_ALL);
|
||||
|
||||
if (GetBankIdentity(bank) == IDENTITY_OPPONENT_MON2 || GetBankIdentity(bank) == IDENTITY_PLAYER_MON2)
|
||||
nullsub_30(gHealthBoxesIds[bank], TRUE);
|
||||
else
|
||||
nullsub_30(gHealthBoxesIds[bank], FALSE);
|
||||
|
||||
if (GetBankSide(bank) != SIDE_PLAYER)
|
||||
{
|
||||
if (GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_HP) == 0)
|
||||
SetHealthboxSpriteInvisible(healthboxSpriteId);
|
||||
}
|
||||
else if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI))
|
||||
{
|
||||
if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_HP) == 0)
|
||||
SetHealthboxSpriteInvisible(healthboxSpriteId);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -60,7 +60,7 @@ void SetSafariZoneFlag(void)
|
||||
|
||||
void ResetSafariZoneFlag(void)
|
||||
{
|
||||
FlagReset(SYS_SAFARI_MODE);
|
||||
FlagClear(SYS_SAFARI_MODE);
|
||||
}
|
||||
|
||||
void EnterSafariMode(void)
|
||||
|
||||
2451
src/scrcmd.c
2451
src/scrcmd.c
File diff suppressed because it is too large
Load Diff
@@ -134,12 +134,12 @@ const u8 *ScriptPop(struct ScriptContext *ctx)
|
||||
return ctx->stack[ctx->stackDepth];
|
||||
}
|
||||
|
||||
void ScriptJump(struct ScriptContext *ctx, u8 *ptr)
|
||||
void ScriptJump(struct ScriptContext *ctx, const u8 *ptr)
|
||||
{
|
||||
ctx->scriptPtr = ptr;
|
||||
}
|
||||
|
||||
void ScriptCall(struct ScriptContext *ctx, u8 *ptr)
|
||||
void ScriptCall(struct ScriptContext *ctx, const u8 *ptr)
|
||||
{
|
||||
ScriptPush(ctx, ctx->scriptPtr);
|
||||
ctx->scriptPtr = ptr;
|
||||
|
||||
@@ -145,7 +145,7 @@ void DeactivateAllTextPrinters (void)
|
||||
gTextPrinters[printer].sub_union.sub.active = 0;
|
||||
}
|
||||
|
||||
u16 PrintTextOnWindow(u8 windowId, u8 fontId, u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16))
|
||||
u16 PrintTextOnWindow(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16))
|
||||
{
|
||||
struct TextSubPrinter subPrinter;
|
||||
|
||||
|
||||
30
src/tv.c
30
src/tv.c
@@ -2,7 +2,7 @@
|
||||
// Includes
|
||||
#include "global.h"
|
||||
#include "rtc.h"
|
||||
#include "rom4.h"
|
||||
#include "overworld.h"
|
||||
#include "map_constants.h"
|
||||
#include "rng.h"
|
||||
#include "event_data.h"
|
||||
@@ -838,7 +838,7 @@ void UpdateTVScreensOnMap(int width, int height)
|
||||
}
|
||||
else if (FlagGet(SYS_TV_START) && (FindAnyTVShowOnTheAir() != 0xff || FindAnyTVNewsOnTheAir() != 0xff || IsTVShowInSearchOfTrainersAiring()))
|
||||
{
|
||||
FlagReset(SYS_TV_WATCH);
|
||||
FlagClear(SYS_TV_WATCH);
|
||||
SetTVMetatilesOnMap(width, height, 0x3);
|
||||
}
|
||||
break;
|
||||
@@ -1263,7 +1263,7 @@ void InterviewAfter_ContestLiveUpdates(void)
|
||||
show2->contestLiveUpdates.kind = TVSHOW_CONTEST_LIVE_UPDATES;
|
||||
show2->contestLiveUpdates.active = TRUE;
|
||||
StringCopy(show2->contestLiveUpdates.playerName, gSaveBlock2Ptr->playerName);
|
||||
show2->contestLiveUpdates.category = gUnknown_02039F2C;
|
||||
show2->contestLiveUpdates.category = gScriptContestCategory;
|
||||
show2->contestLiveUpdates.species = GetMonData(&gPlayerParty[gUnknown_02039F24], MON_DATA_SPECIES, NULL);
|
||||
show2->contestLiveUpdates.winningSpecies = show->contestLiveUpdates.winningSpecies;
|
||||
show2->contestLiveUpdates.appealFlags2 = show->contestLiveUpdates.appealFlags2;
|
||||
@@ -1527,7 +1527,7 @@ void BravoTrainerPokemonProfile_BeforeInterview2(u8 a0)
|
||||
if (sCurTVShowSlot != -1)
|
||||
{
|
||||
show->bravoTrainer.contestResult = a0;
|
||||
show->bravoTrainer.contestCategory = gUnknown_02039F2C;
|
||||
show->bravoTrainer.contestCategory = gScriptContestCategory;
|
||||
show->bravoTrainer.contestRank = gUnknown_02039F2E;
|
||||
show->bravoTrainer.species = GetMonData(&gPlayerParty[gUnknown_02039F24], MON_DATA_SPECIES, NULL);
|
||||
GetMonData(&gPlayerParty[gUnknown_02039F24], MON_DATA_NICKNAME, show->bravoTrainer.pokemonNickname);
|
||||
@@ -1675,7 +1675,7 @@ void InterviewAfter_FanClubLetter(void)
|
||||
show->fanclubLetter.kind = TVSHOW_FAN_CLUB_LETTER;
|
||||
show->fanclubLetter.active = TRUE;
|
||||
StringCopy(show->fanclubLetter.playerName, gSaveBlock2Ptr->playerName);
|
||||
show->fanclubLetter.species = GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_SPECIES, NULL);
|
||||
show->fanclubLetter.species = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL);
|
||||
tv_store_id_2x(show);
|
||||
show->fanclubLetter.language = gGameLanguage;
|
||||
}
|
||||
@@ -1700,21 +1700,21 @@ void InterviewAfter_PkmnFanClubOpinions(void)
|
||||
show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot];
|
||||
show->fanclubOpinions.kind = TVSHOW_PKMN_FAN_CLUB_OPINIONS;
|
||||
show->fanclubOpinions.active = TRUE;
|
||||
show->fanclubOpinions.friendshipHighNybble = GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_FRIENDSHIP, NULL) >> 4;
|
||||
show->fanclubOpinions.friendshipHighNybble = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_FRIENDSHIP, NULL) >> 4;
|
||||
show->fanclubOpinions.questionAsked = gSpecialVar_0x8007;
|
||||
StringCopy(show->fanclubOpinions.playerName, gSaveBlock2Ptr->playerName);
|
||||
GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_NICKNAME, show->fanclubOpinions.nickname);
|
||||
GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_NICKNAME, show->fanclubOpinions.nickname);
|
||||
StripExtCtrlCodes(show->fanclubOpinions.nickname);
|
||||
show->fanclubOpinions.species = GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_SPECIES, NULL);
|
||||
show->fanclubOpinions.species = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL);
|
||||
tv_store_id_2x(show);
|
||||
show->fanclubOpinions.language = gGameLanguage;
|
||||
if (gGameLanguage == LANGUAGE_JAPANESE || GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_LANGUAGE) == LANGUAGE_JAPANESE)
|
||||
if (gGameLanguage == LANGUAGE_JAPANESE || GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_LANGUAGE) == LANGUAGE_JAPANESE)
|
||||
{
|
||||
show->fanclubOpinions.pokemonNameLanguage = LANGUAGE_JAPANESE;
|
||||
}
|
||||
else
|
||||
{
|
||||
show->fanclubOpinions.pokemonNameLanguage = GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_LANGUAGE);
|
||||
show->fanclubOpinions.pokemonNameLanguage = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_LANGUAGE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3073,7 +3073,7 @@ void TV_PrintIntToStringVar(u8 varIdx, int value)
|
||||
ConvertIntToDecimalStringN(gTVStringVarPtrs[varIdx], value, STR_CONV_MODE_LEFT_ALIGN, nDigits);
|
||||
}
|
||||
|
||||
int sub_80EF370(int value)
|
||||
size_t sub_80EF370(int value)
|
||||
{
|
||||
if (value / 10 == 0)
|
||||
{
|
||||
@@ -3246,7 +3246,7 @@ void InterviewBefore_FanClubLetter(void)
|
||||
FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_FAN_CLUB_LETTER);
|
||||
if (!gScriptResult)
|
||||
{
|
||||
StringCopy(gStringVar1, gSpeciesNames[GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_SPECIES, NULL)]);
|
||||
StringCopy(gStringVar1, gSpeciesNames[GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL)]);
|
||||
InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].fanclubLetter.words, 6);
|
||||
}
|
||||
}
|
||||
@@ -3265,8 +3265,8 @@ void InterviewBefore_PkmnFanClubOpinions(void)
|
||||
FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_PKMN_FAN_CLUB_OPINIONS);
|
||||
if (!gScriptResult)
|
||||
{
|
||||
StringCopy(gStringVar1, gSpeciesNames[GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_SPECIES, NULL)]);
|
||||
GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_NICKNAME, gStringVar2);
|
||||
StringCopy(gStringVar1, gSpeciesNames[GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL)]);
|
||||
GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_NICKNAME, gStringVar2);
|
||||
StringGetEnd10(gStringVar2);
|
||||
InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].fanclubOpinions.words, 2);
|
||||
}
|
||||
@@ -3336,7 +3336,7 @@ bool8 sub_80EF88C(u8 monIdx)
|
||||
|
||||
bool8 sub_80EF8F8(void)
|
||||
{
|
||||
return sub_80EF88C(GetIdxOfFirstPartyMemberThatIsNotAnEgg());
|
||||
return sub_80EF88C(GetLeadMonIndex());
|
||||
}
|
||||
|
||||
void DeleteTVShowInArrayByIdx(TVShow *shows, u8 idx)
|
||||
|
||||
Reference in New Issue
Block a user