parent
0f0c8325c5
commit
4f3326f3f4
@ -3,6 +3,7 @@
|
||||
|
||||
void ReshowBattleScreenDummy(void);
|
||||
void ReshowBattleScreenAfterMenu(void);
|
||||
void ReshowBlankBattleScreenAfterMenu(void);
|
||||
void CreateBattlerSprite(u32 battler);
|
||||
|
||||
#endif // GUARD_RESHOW_BATTLE_SCREEN_H
|
||||
|
||||
@ -16356,12 +16356,13 @@ static void Cmd_trygivecaughtmonnick(void)
|
||||
{
|
||||
GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick);
|
||||
FreeAllWindowBuffers();
|
||||
MainCallback callback = CalculatePlayerPartyCount() == PARTY_SIZE ? ReshowBlankBattleScreenAfterMenu : BattleMainCB2;
|
||||
|
||||
DoNamingScreen(NAMING_SCREEN_CAUGHT_MON, gBattleStruct->caughtMonNick,
|
||||
GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_SPECIES),
|
||||
GetMonGender(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]),
|
||||
GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_PERSONALITY, NULL),
|
||||
ReshowBattleScreenAfterMenu);
|
||||
callback);
|
||||
|
||||
gBattleCommunication[MULTIUSE_STATE]++;
|
||||
}
|
||||
|
||||
@ -7183,14 +7183,11 @@ static u8 GetPartyLayoutFromBattleType(void)
|
||||
|
||||
void OpenPartyMenuInBattle(u8 partyAction)
|
||||
{
|
||||
u8 partyMessage;
|
||||
|
||||
if (partyAction == PARTY_ACTION_SEND_MON_TO_BOX)
|
||||
partyMessage = PARTY_MSG_CHOOSE_MON_FOR_BOX;
|
||||
InitPartyMenu(PARTY_MENU_TYPE_IN_BATTLE, GetPartyLayoutFromBattleType(), partyAction, FALSE, PARTY_MSG_CHOOSE_MON_FOR_BOX, Task_HandleChooseMonInput, ReshowBlankBattleScreenAfterMenu);
|
||||
else
|
||||
partyMessage = PARTY_MSG_CHOOSE_MON;
|
||||
|
||||
InitPartyMenu(PARTY_MENU_TYPE_IN_BATTLE, GetPartyLayoutFromBattleType(), partyAction, FALSE, partyMessage, Task_HandleChooseMonInput, CB2_SetUpReshowBattleScreenAfterMenu);
|
||||
InitPartyMenu(PARTY_MENU_TYPE_IN_BATTLE, GetPartyLayoutFromBattleType(), partyAction, FALSE, PARTY_MSG_CHOOSE_MON, Task_HandleChooseMonInput, CB2_SetUpReshowBattleScreenAfterMenu);
|
||||
|
||||
ReshowBattleScreenDummy();
|
||||
UpdatePartyToBattleOrder();
|
||||
}
|
||||
|
||||
@ -18,9 +18,11 @@
|
||||
|
||||
// this file's functions
|
||||
static void CB2_ReshowBattleScreenAfterMenu(void);
|
||||
static void CB2_ReshowBlankBattleScreenAfterMenu(void);
|
||||
static bool8 LoadBattlerSpriteGfx(u32 battler);
|
||||
static void CreateHealthboxSprite(u32 battler);
|
||||
static void ClearBattleBgCntBaseBlocks(void);
|
||||
static void CreateCaughtMonSprite(void);
|
||||
|
||||
void ReshowBattleScreenDummy(void)
|
||||
{
|
||||
@ -168,6 +170,89 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
|
||||
gBattleScripting.reshowMainState++;
|
||||
}
|
||||
|
||||
void ReshowBlankBattleScreenAfterMenu(void)
|
||||
{
|
||||
gPaletteFade.bufferTransferDisabled = 1;
|
||||
SetHBlankCallback(NULL);
|
||||
SetVBlankCallback(NULL);
|
||||
SetGpuReg(REG_OFFSET_MOSAIC, 0);
|
||||
gBattleScripting.reshowMainState = 0;
|
||||
gBattleScripting.reshowHelperState = 0;
|
||||
SetMainCallback2(CB2_ReshowBlankBattleScreenAfterMenu);
|
||||
}
|
||||
|
||||
static void CB2_ReshowBlankBattleScreenAfterMenu(void)
|
||||
{
|
||||
switch (gBattleScripting.reshowMainState)
|
||||
{
|
||||
case 0:
|
||||
ScanlineEffect_Clear();
|
||||
BattleInitBgsAndWindows();
|
||||
SetBgAttribute(1, BG_ATTR_CHARBASEINDEX, 0);
|
||||
SetBgAttribute(2, BG_ATTR_CHARBASEINDEX, 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 = 255;
|
||||
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 = MAX_BATTLERS_COUNT;
|
||||
break;
|
||||
case 5:
|
||||
ClearSpritesHealthboxAnimData();
|
||||
break;
|
||||
case 6:
|
||||
if (!LoadBattlerSpriteGfx(0))
|
||||
gBattleScripting.reshowMainState--;
|
||||
break;
|
||||
case 7:
|
||||
if (!LoadBattlerSpriteGfx(1))
|
||||
gBattleScripting.reshowMainState--;
|
||||
break;
|
||||
case 8:
|
||||
if (!LoadBattlerSpriteGfx(2))
|
||||
gBattleScripting.reshowMainState--;
|
||||
break;
|
||||
case 9:
|
||||
if (!LoadBattlerSpriteGfx(3))
|
||||
gBattleScripting.reshowMainState--;
|
||||
break;
|
||||
case 10:
|
||||
if (gBattleScripting.monCaught)
|
||||
CreateCaughtMonSprite(); // displays the caught mon for the switch into party feature
|
||||
break;
|
||||
default:
|
||||
SetVBlankCallback(VBlankCB_Battle);
|
||||
ClearBattleBgCntBaseBlocks();
|
||||
BeginHardwarePaletteFade(0xFF, 0, 0x10, 0, 1);
|
||||
gPaletteFade.bufferTransferDisabled = 0;
|
||||
SetMainCallback2(BattleMainCB2);
|
||||
FillAroundBattleWindows();
|
||||
break;
|
||||
}
|
||||
|
||||
gBattleScripting.reshowMainState++;
|
||||
}
|
||||
|
||||
static void ClearBattleBgCntBaseBlocks(void)
|
||||
{
|
||||
vBgCnt *regBgcnt1, *regBgcnt2;
|
||||
@ -311,3 +396,17 @@ static void CreateHealthboxSprite(u32 battler)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void CreateCaughtMonSprite(void)
|
||||
{
|
||||
SetMultiuseSpriteTemplateToPokemon(GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_SPECIES), GetBattlerPosition(gBattlerTarget));
|
||||
gBattlerSpriteIds[gBattlerTarget] = CreateSprite(&gMultiuseSpriteTemplate, DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, GetBattlerSpriteSubpriority(gBattlerTarget));
|
||||
gSprites[gBattlerSpriteIds[gBattlerTarget]].oam.paletteNum = gBattlerTarget;
|
||||
gSprites[gBattlerSpriteIds[gBattlerTarget]].callback = SpriteCallbackDummy;
|
||||
gSprites[gBattlerSpriteIds[gBattlerTarget]].data[0] = gBattlerTarget;
|
||||
gSprites[gBattlerSpriteIds[gBattlerTarget]].data[2] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_SPECIES);
|
||||
|
||||
StartSpriteAnim(&gSprites[gBattlerSpriteIds[gBattlerTarget]], 0);
|
||||
|
||||
gSprites[gBattlerSpriteIds[gBattlerTarget]].invisible = FALSE;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user