Merge branch 'master' into doc-matchcall

This commit is contained in:
GriffinR
2019-12-10 20:43:27 -05:00
committed by GitHub
299 changed files with 7336 additions and 5366 deletions
+2 -2
View File
@@ -4947,8 +4947,8 @@ void AnimMoon(struct Sprite* sprite)
sprite->pos1.y = gBattleAnimArgs[1];
}
sprite->oam.shape = 0;
sprite->oam.size = 3;
sprite->oam.shape = SPRITE_SHAPE(64x64);
sprite->oam.size = SPRITE_SIZE(64x64);
sprite->data[0] = 0;
sprite->callback = AnimMoonStep;
}
+1 -1
View File
@@ -2124,7 +2124,7 @@ static void CreateMinimizeSprite(struct Task* task, u8 taskId)
gSprites[spriteId].data[2] = 6;
gSprites[spriteId].callback = ClonedMinizeSprite_Step;
SetSpriteRotScale(spriteId, task->data[4], task->data[4], 0);
gSprites[spriteId].oam.affineMode = 1;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
CalcCenterToCornerVec(&gSprites[spriteId], gSprites[spriteId].oam.shape, gSprites[spriteId].oam.size, gSprites[spriteId].oam.affineMode);
}
}
+1 -1
View File
@@ -4709,7 +4709,7 @@ void AnimTask_MonToSubstitute(u8 taskId)
if (gTasks[taskId].data[0] == 0)
{
PrepareBattlerSpriteForRotScale(spriteId, FALSE);
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
gTasks[taskId].data[1] = 0x100;
gTasks[taskId].data[2] = 0x100;
gTasks[taskId].data[0]++;
+2 -2
View File
@@ -1253,7 +1253,7 @@ void ResetSpriteRotScale(u8 spriteId)
{
SetSpriteRotScale(spriteId, 0x100, 0x100, 0);
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.objMode = 0;
gSprites[spriteId].oam.objMode = ST_OAM_OBJ_NORMAL;
gSprites[spriteId].affineAnimPaused = FALSE;
CalcCenterToCornerVec(&gSprites[spriteId], gSprites[spriteId].oam.shape, gSprites[spriteId].oam.size, gSprites[spriteId].oam.affineMode);
}
@@ -2267,7 +2267,7 @@ u8 sub_80A89C8(int battlerId, u8 spriteId, int species)
gSprites[newSpriteId] = gSprites[spriteId];
gSprites[newSpriteId].usingSheet = TRUE;
gSprites[newSpriteId].oam.priority = 0;
gSprites[newSpriteId].oam.objMode = 2;
gSprites[newSpriteId].oam.objMode = ST_OAM_OBJ_WINDOW;
gSprites[newSpriteId].oam.tileNum = gSprites[spriteId].oam.tileNum;
gSprites[newSpriteId].callback = SpriteCallbackDummy;
return newSpriteId;
+32 -4
View File
@@ -206,10 +206,38 @@ const struct SpriteTemplate gUnknown_0853EF18 =
static const struct Subsprite gUnknown_0853EF30[] =
{
{.x = -16, .y = -16, .shape = ST_OAM_SQUARE, .size = 3, .tileOffset = 0, .priority = 2},
{.x = -16, .y = 48, .shape = ST_OAM_H_RECTANGLE, .size = 3, .tileOffset = 64, .priority = 2},
{.x = 48, .y = -16, .shape = ST_OAM_V_RECTANGLE, .size = 3, .tileOffset = 96, .priority = 2},
{.x = 48, .y = 48, .shape = ST_OAM_SQUARE, .size = 2, .tileOffset = 128, .priority = 2},
{
.x = -16,
.y = -16,
.shape = SPRITE_SHAPE(64x64),
.size = SPRITE_SIZE(64x64),
.tileOffset = 0,
.priority = 2
},
{
.x = -16,
.y = 48,
.shape = SPRITE_SHAPE(64x32),
.size = SPRITE_SIZE(64x32),
.tileOffset = 64,
.priority = 2
},
{
.x = 48,
.y = -16,
.shape = SPRITE_SHAPE(32x64),
.size = SPRITE_SIZE(32x64),
.tileOffset = 96,
.priority = 2
},
{
.x = 48,
.y = 48,
.shape = SPRITE_SHAPE(32x32),
.size = SPRITE_SIZE(32x32),
.tileOffset = 128,
.priority = 2
},
};
static const struct SubspriteTable gUnknown_0853EF40[] =
+20 -20
View File
@@ -33,8 +33,8 @@ static void InitArenaChallenge(void);
static void GetArenaData(void);
static void SetArenaData(void);
static void SaveArenaChallenge(void);
static void SetArenaRewardItem(void);
static void GiveArenaRewardItem(void);
static void SetArenaPrize(void);
static void GiveArenaPrize(void);
static void BufferArenaOpponentName(void);
static void SpriteCb_JudgmentIcon(struct Sprite *sprite);
static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler);
@@ -404,10 +404,10 @@ static const s8 sMindRatings[] =
static const struct OamData sJudgementIconOamData =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x16),
.x = 0,
.matrixNum = 0,
@@ -473,12 +473,12 @@ static void (* const sArenaFunctions[])(void) =
[BATTLE_ARENA_FUNC_GET_DATA] = GetArenaData,
[BATTLE_ARENA_FUNC_SET_DATA] = SetArenaData,
[BATTLE_ARENA_FUNC_SAVE] = SaveArenaChallenge,
[BATTLE_ARENA_FUNC_SET_REWARD] = SetArenaRewardItem,
[BATTLE_ARENA_FUNC_GIVE_REWARD] = GiveArenaRewardItem,
[BATTLE_ARENA_FUNC_SET_PRIZE] = SetArenaPrize,
[BATTLE_ARENA_FUNC_GIVE_PRIZE] = GiveArenaPrize,
[BATTLE_ARENA_FUNC_GET_TRAINER_NAME] = BufferArenaOpponentName,
};
static const u16 sShortStreakRewardItems[] =
static const u16 sShortStreakPrizeItems[] =
{
ITEM_HP_UP,
ITEM_PROTEIN,
@@ -488,7 +488,7 @@ static const u16 sShortStreakRewardItems[] =
ITEM_ZINC,
};
static const u16 sLongStreakRewardItems[] =
static const u16 sLongStreakPrizeItems[] =
{
ITEM_BRIGHT_POWDER,
ITEM_WHITE_HERB,
@@ -810,8 +810,8 @@ static void GetArenaData(void)
switch (gSpecialVar_0x8005)
{
case ARENA_DATA_REWARD:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.arenaRewardItem;
case ARENA_DATA_PRIZE:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.arenaPrize;
break;
case ARENA_DATA_WIN_STREAK:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode];
@@ -831,8 +831,8 @@ static void SetArenaData(void)
switch (gSpecialVar_0x8005)
{
case ARENA_DATA_REWARD:
gSaveBlock2Ptr->frontier.arenaRewardItem = gSpecialVar_0x8006;
case ARENA_DATA_PRIZE:
gSaveBlock2Ptr->frontier.arenaPrize = gSpecialVar_0x8006;
break;
case ARENA_DATA_WIN_STREAK:
gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] = gSpecialVar_0x8006;
@@ -864,22 +864,22 @@ static void SaveArenaChallenge(void)
SaveGameFrontier();
}
static void SetArenaRewardItem(void)
static void SetArenaPrize(void)
{
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
if (gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] > 41)
gSaveBlock2Ptr->frontier.arenaRewardItem = sLongStreakRewardItems[Random() % ARRAY_COUNT(sLongStreakRewardItems)];
gSaveBlock2Ptr->frontier.arenaPrize = sLongStreakPrizeItems[Random() % ARRAY_COUNT(sLongStreakPrizeItems)];
else
gSaveBlock2Ptr->frontier.arenaRewardItem = sShortStreakRewardItems[Random() % ARRAY_COUNT(sShortStreakRewardItems)];
gSaveBlock2Ptr->frontier.arenaPrize = sShortStreakPrizeItems[Random() % ARRAY_COUNT(sShortStreakPrizeItems)];
}
static void GiveArenaRewardItem(void)
static void GiveArenaPrize(void)
{
if (AddBagItem(gSaveBlock2Ptr->frontier.arenaRewardItem, 1) == TRUE)
if (AddBagItem(gSaveBlock2Ptr->frontier.arenaPrize, 1) == TRUE)
{
CopyItemName(gSaveBlock2Ptr->frontier.arenaRewardItem, gStringVar1);
gSaveBlock2Ptr->frontier.arenaRewardItem = ITEM_NONE;
CopyItemName(gSaveBlock2Ptr->frontier.arenaPrize, gStringVar1);
gSaveBlock2Ptr->frontier.arenaPrize = ITEM_NONE;
gSpecialVar_Result = TRUE;
}
else
+6 -6
View File
@@ -39,10 +39,10 @@ static const u16 sUnrefArray[] = {0x0300, 0x0000}; //OamData?
static const struct OamData sVsLetter_V_OamData =
{
.y = 0,
.affineMode = 3,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
@@ -56,10 +56,10 @@ static const struct OamData sVsLetter_V_OamData =
static const struct OamData sVsLetter_S_OamData =
{
.y = 0,
.affineMode = 3,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
+2 -2
View File
@@ -1429,7 +1429,7 @@ static void LinkOpponentDoMoveAnimation(void)
case 1:
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
sub_805EB9C(0);
sub_805EB9C(ST_OAM_AFFINE_OFF);
DoMoveAnim(move);
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2;
}
@@ -1438,7 +1438,7 @@ static void LinkOpponentDoMoveAnimation(void)
gAnimScriptCallback();
if (!gAnimScriptActive)
{
sub_805EB9C(1);
sub_805EB9C(ST_OAM_AFFINE_NORMAL);
if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2)
{
InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
+2 -2
View File
@@ -1253,7 +1253,7 @@ static void LinkPartnerDoMoveAnimation(void)
case 1:
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
sub_805EB9C(0);
sub_805EB9C(ST_OAM_AFFINE_OFF);
DoMoveAnim(move);
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2;
}
@@ -1262,7 +1262,7 @@ static void LinkPartnerDoMoveAnimation(void)
gAnimScriptCallback();
if (!gAnimScriptActive)
{
sub_805EB9C(1);
sub_805EB9C(ST_OAM_AFFINE_NORMAL);
if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2)
{
InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
+2 -2
View File
@@ -1465,7 +1465,7 @@ static void OpponentDoMoveAnimation(void)
case 1:
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
sub_805EB9C(0);
sub_805EB9C(ST_OAM_AFFINE_OFF);
DoMoveAnim(move);
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2;
}
@@ -1474,7 +1474,7 @@ static void OpponentDoMoveAnimation(void)
gAnimScriptCallback();
if (!gAnimScriptActive)
{
sub_805EB9C(1);
sub_805EB9C(ST_OAM_AFFINE_NORMAL);
if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2)
{
InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
+3 -3
View File
@@ -2313,7 +2313,7 @@ static void PlayerHandleDrawTrainerPic(void)
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y = 48;
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2;
gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC;
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineMode = 0;
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineMode = ST_OAM_AFFINE_OFF;
gSprites[gBattlerSpriteIds[gActiveBattler]].hFlip = 1;
}
// Use the back pic in any other scenario.
@@ -2485,7 +2485,7 @@ static void PlayerDoMoveAnimation(void)
case 1:
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
sub_805EB9C(0);
sub_805EB9C(ST_OAM_AFFINE_OFF);
DoMoveAnim(move);
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2;
}
@@ -2494,7 +2494,7 @@ static void PlayerDoMoveAnimation(void)
gAnimScriptCallback();
if (!gAnimScriptActive)
{
sub_805EB9C(1);
sub_805EB9C(ST_OAM_AFFINE_NORMAL);
if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2)
{
InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
+3 -3
View File
@@ -1334,7 +1334,7 @@ static void PlayerPartnerHandleDrawTrainerPic(void)
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y = 48;
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2;
gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC;
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineMode = 0;
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineMode = ST_OAM_AFFINE_OFF;
gSprites[gBattlerSpriteIds[gActiveBattler]].hFlip = 1;
}
@@ -1444,7 +1444,7 @@ static void PlayerPartnerDoMoveAnimation(void)
case 1:
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
sub_805EB9C(0);
sub_805EB9C(ST_OAM_AFFINE_OFF);
DoMoveAnim(move);
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2;
}
@@ -1453,7 +1453,7 @@ static void PlayerPartnerDoMoveAnimation(void)
gAnimScriptCallback();
if (!gAnimScriptActive)
{
sub_805EB9C(1);
sub_805EB9C(ST_OAM_AFFINE_NORMAL);
if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2)
{
InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
+2 -2
View File
@@ -1355,7 +1355,7 @@ static void RecordedOpponentDoMoveAnimation(void)
case 1:
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
sub_805EB9C(0);
sub_805EB9C(ST_OAM_AFFINE_OFF);
DoMoveAnim(move);
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2;
}
@@ -1364,7 +1364,7 @@ static void RecordedOpponentDoMoveAnimation(void)
gAnimScriptCallback();
if (!gAnimScriptActive)
{
sub_805EB9C(1);
sub_805EB9C(ST_OAM_AFFINE_NORMAL);
if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2)
{
InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
+3 -3
View File
@@ -1238,7 +1238,7 @@ static void RecordedPlayerHandleDrawTrainerPic(void)
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y = 48;
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2;
gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC;
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineMode = 0;
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineMode = ST_OAM_AFFINE_OFF;
gSprites[gBattlerSpriteIds[gActiveBattler]].hFlip = 1;
}
else
@@ -1359,7 +1359,7 @@ static void RecordedPlayerDoMoveAnimation(void)
case 1:
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
sub_805EB9C(0);
sub_805EB9C(ST_OAM_AFFINE_OFF);
DoMoveAnim(move);
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2;
}
@@ -1368,7 +1368,7 @@ static void RecordedPlayerDoMoveAnimation(void)
gAnimScriptCallback();
if (!gAnimScriptActive)
{
sub_805EB9C(1);
sub_805EB9C(ST_OAM_AFFINE_NORMAL);
if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2)
{
InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
+2 -2
View File
@@ -1134,7 +1134,7 @@ static void WallyDoMoveAnimation(void)
case 1:
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
sub_805EB9C(0);
sub_805EB9C(ST_OAM_AFFINE_OFF);
DoMoveAnim(move);
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2;
}
@@ -1143,7 +1143,7 @@ static void WallyDoMoveAnimation(void)
gAnimScriptCallback();
if (!gAnimScriptActive)
{
sub_805EB9C(1);
sub_805EB9C(ST_OAM_AFFINE_NORMAL);
if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
{
InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
+75 -81
View File
@@ -30,6 +30,7 @@
#include "scanline_effect.h"
#include "script_pokemon_util_80F87D8.h"
#include "graphics.h"
#include "constants/battle_dome.h"
#include "constants/frontier_util.h"
#include "constants/species.h"
#include "constants/moves.h"
@@ -39,13 +40,6 @@
#include "constants/battle_frontier.h"
#include "constants/rgb.h"
#define DOME_ROUND1 0
#define DOME_ROUND2 1
#define DOME_QUARTERFINAL 1 // Different name for the same round.
#define DOME_SEMIFINAL 2
#define DOME_FINAL 3
#define DOME_ROUNDS_COUNT 4
struct BattleDomeStruct
{
u8 arr[DOME_TOURNAMENT_TRAINERS_COUNT];
@@ -107,9 +101,9 @@ static void SetDomeOpponentId(void);
static void SetDomeOpponentGraphicsId(void);
static void ShowNonInteractiveDomeTourneyTree(void);
static void ResolveDomeRoundWinners(void);
static void sub_81902F8(void);
static void UpdateDomeStreaks(void);
static void RestoreDomePlayerParty(void);
static void SaveDomeChallenge(void);
static void IncrementDomeStreaks(void);
static void ResetSketchedMoves(void);
static void RestoreDomePlayerPartyHeldItems(void);
static void ReduceDomePlayerPartyTo3Mons(void);
static void GetPlayerSeededBeforeOpponent(void);
@@ -866,10 +860,10 @@ static const struct CompressedSpritePalette gUnknown_0860CF60[] =
static const struct OamData gUnknown_0860CF70 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x16),
.x = 0,
.matrixNum = 0,
@@ -883,10 +877,10 @@ static const struct OamData gUnknown_0860CF70 =
static const struct OamData gUnknown_0860CF78 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x16),
.x = 0,
.matrixNum = 0,
@@ -900,10 +894,10 @@ static const struct OamData gUnknown_0860CF78 =
static const struct OamData gUnknown_0860CF80 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x8),
.x = 0,
.matrixNum = 0,
@@ -917,10 +911,10 @@ static const struct OamData gUnknown_0860CF80 =
static const struct OamData gUnknown_0860CF88 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(8x16),
.x = 0,
.matrixNum = 0,
@@ -1079,29 +1073,29 @@ static const u8 sTourneyTreeTrainerIds[] = {0, 8, 12, 4, 7, 15, 11, 3, 2, 10, 14
static void (* const sBattleDomeFunctions[])(void) =
{
InitDomeChallenge,
GetDomeData,
SetDomeData,
BufferDomeRoundText,
BufferDomeOpponentName,
InitDomeOpponentParty,
ShowDomeOpponentInfo,
ShowDomeTourneyTree,
ShowPreviousDomeResultsTourneyTree,
SetDomeOpponentId,
SetDomeOpponentGraphicsId,
ShowNonInteractiveDomeTourneyTree,
ResolveDomeRoundWinners,
sub_81902F8,
UpdateDomeStreaks,
InitDomeFacilityTrainersAndMons,
RestoreDomePlayerParty,
RestoreDomePlayerPartyHeldItems,
ReduceDomePlayerPartyTo3Mons,
GetPlayerSeededBeforeOpponent,
BufferLastDomeWinnerName,
sub_8194F58,
InitDomeTrainers,
[BATTLE_DOME_FUNC_INIT] = InitDomeChallenge,
[BATTLE_DOME_FUNC_GET_DATA] = GetDomeData,
[BATTLE_DOME_FUNC_SET_DATA] = SetDomeData,
[BATTLE_DOME_FUNC_GET_ROUND_TEXT] = BufferDomeRoundText,
[BATTLE_DOME_FUNC_GET_OPPONENT_NAME] = BufferDomeOpponentName,
[BATTLE_DOME_FUNC_INIT_OPPONENT_PARTY] = InitDomeOpponentParty,
[BATTLE_DOME_FUNC_SHOW_OPPONENT_INFO] = ShowDomeOpponentInfo,
[BATTLE_DOME_FUNC_SHOW_TOURNEY_TREE] = ShowDomeTourneyTree,
[BATTLE_DOME_FUNC_SHOW_PREV_RESULTS_TREE] = ShowPreviousDomeResultsTourneyTree,
[BATTLE_DOME_FUNC_SET_OPPONENT_ID] = SetDomeOpponentId,
[BATTLE_DOME_FUNC_SET_OPPONENT_GFX] = SetDomeOpponentGraphicsId,
[BATTLE_DOME_FUNC_SHOW_STATIC_TOURNEY_TREE] = ShowNonInteractiveDomeTourneyTree,
[BATTLE_DOME_FUNC_RESOLVE_WINNERS] = ResolveDomeRoundWinners,
[BATTLE_DOME_FUNC_SAVE] = SaveDomeChallenge,
[BATTLE_DOME_FUNC_INCREMENT_STREAK] = IncrementDomeStreaks,
[BATTLE_DOME_FUNC_SET_TRAINERS] = InitDomeFacilityTrainersAndMons,
[BATTLE_DOME_FUNC_RESET_SKETCH] = ResetSketchedMoves,
[BATTLE_DOME_FUNC_RESTORE_HELD_ITEMS] = RestoreDomePlayerPartyHeldItems,
[BATTLE_DOME_FUNC_REDUCE_PARTY] = ReduceDomePlayerPartyTo3Mons,
[BATTLE_DOME_FUNC_COMPARE_SEEDS] = GetPlayerSeededBeforeOpponent,
[BATTLE_DOME_FUNC_GET_WINNER_NAME] = BufferLastDomeWinnerName,
[BATTLE_DOME_FUNC_21] = sub_8194F58,
[BATTLE_DOME_FUNC_INIT_TRAINERS] = InitDomeTrainers,
};
static const u32 sWinStreakFlags[][2] =
@@ -2280,25 +2274,25 @@ static void GetDomeData(void)
switch (gSpecialVar_0x8005)
{
case 0:
case DOME_DATA_WIN_STREAK:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode];
break;
case 1:
case DOME_DATA_WIN_STREAK_ACTIVE:
gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]) != 0);
break;
case 2:
case DOME_DATA_2:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_0;
break;
case 3:
case DOME_DATA_3:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_1;
break;
case 4:
case DOME_DATA_4:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_2;
break;
case 5:
case DOME_DATA_5:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_3;
break;
case 6:
case DOME_DATA_6:
if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES)
{
if (lvlMode)
@@ -2314,7 +2308,7 @@ static void GetDomeData(void)
gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_0;
}
break;
case 7:
case DOME_DATA_7:
if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES)
{
if (lvlMode)
@@ -2330,12 +2324,12 @@ static void GetDomeData(void)
gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_2;
}
break;
case 8:
case DOME_DATA_8:
ClearSelectedPartyOrder();
gSelectedOrderFromParty[0] = gSaveBlock2Ptr->frontier.selectedPartyMons[3];
gSelectedOrderFromParty[1] = gSaveBlock2Ptr->frontier.selectedPartyMons[3] >> 8;
break;
case 9:
case DOME_DATA_9:
gSpecialVar_Result = (gSaveBlock2Ptr->frontier.field_D0A * 2) - 3 + gSaveBlock2Ptr->frontier.field_D0B;
break;
}
@@ -2348,28 +2342,28 @@ static void SetDomeData(void)
switch (gSpecialVar_0x8005)
{
case 0:
case DOME_DATA_WIN_STREAK:
gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode] = gSpecialVar_0x8006;
break;
case 1:
case DOME_DATA_WIN_STREAK_ACTIVE:
if (gSpecialVar_0x8006)
gSaveBlock2Ptr->frontier.winStreakActiveFlags |= sWinStreakFlags[battleMode][lvlMode];
else
gSaveBlock2Ptr->frontier.winStreakActiveFlags &= sWinStreakMasks[battleMode][lvlMode];
break;
case 2:
case DOME_DATA_2:
gSaveBlock2Ptr->frontier.field_D08_0 = gSpecialVar_0x8006;
break;
case 3:
case DOME_DATA_3:
gSaveBlock2Ptr->frontier.field_D08_1 = gSpecialVar_0x8006;
break;
case 4:
case DOME_DATA_4:
gSaveBlock2Ptr->frontier.field_D08_2 = gSpecialVar_0x8006;
break;
case 5:
case DOME_DATA_5:
gSaveBlock2Ptr->frontier.field_D08_3 = gSpecialVar_0x8006;
break;
case 6:
case DOME_DATA_6:
if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES)
{
if (lvlMode)
@@ -2385,7 +2379,7 @@ static void SetDomeData(void)
gSaveBlock2Ptr->frontier.field_D08_0 = gSpecialVar_0x8006;
}
break;
case 7:
case DOME_DATA_7:
if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES)
{
if (lvlMode)
@@ -2401,7 +2395,7 @@ static void SetDomeData(void)
gSaveBlock2Ptr->frontier.field_D08_2 = gSpecialVar_0x8006;
}
break;
case 8:
case DOME_DATA_8:
gSaveBlock2Ptr->frontier.selectedPartyMons[3] = T1_READ_16(gSelectedOrderFromParty);
break;
}
@@ -2411,7 +2405,7 @@ static void InitDomeTrainers(void)
{
int i, j, k;
int monLevel;
int species[3];
int species[FRONTIER_PARTY_SIZE];
int monTypesBits, monTypesCount;
int trainerId;
int monSetId;
@@ -2472,7 +2466,7 @@ static void InitDomeTrainers(void)
gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId = trainerId;
}
for (j = 0; j < 3; j++)
for (j = 0; j < FRONTIER_PARTY_SIZE; j++)
{
// Make sure the mon is valid.
do
@@ -2528,7 +2522,7 @@ static void InitDomeTrainers(void)
monTypesBits = 0;
statSums[i] = 0;
ivs = GetDomeTrainerMonIvs(gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId);
for (j = 0; j < 3; j++)
for (j = 0; j < FRONTIER_PARTY_SIZE; j++)
{
CalcDomeMonStats(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species,
monLevel, ivs,
@@ -2595,7 +2589,7 @@ static void InitDomeTrainers(void)
gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId = TRAINER_FRONTIER_BRAIN;
}
for (i = 0; i < 3; i++)
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
gSaveBlock2Ptr->frontier.domeMonIds[j][i] = GetFrontierBrainMonSpecies(i);
}
@@ -2765,14 +2759,14 @@ int GetDomeTrainerMonCountInBits(u16 tournamentTrainerId)
static int sub_818FCBC(u16 tournamentTrainerId, bool8 arg1)
{
int i, moveId, playerMonId;
int array[3];
int array[FRONTIER_PARTY_SIZE];
for (i = 0; i < 3; i++)
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
array[i] = 0;
for (moveId = 0; moveId < MAX_MON_MOVES; moveId++)
{
for (playerMonId = 0; playerMonId < 3; playerMonId++)
for (playerMonId = 0; playerMonId < FRONTIER_PARTY_SIZE; playerMonId++)
{
if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN)
{
@@ -2793,14 +2787,14 @@ static int sub_818FCBC(u16 tournamentTrainerId, bool8 arg1)
static int sub_818FDB8(u16 tournamentTrainerId, bool8 arg1)
{
int i, moveId, playerMonId;
int array[3];
int array[FRONTIER_PARTY_SIZE];
for (i = 0; i < 3; i++)
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
array[i] = 0;
for (moveId = 0; moveId < MAX_MON_MOVES; moveId++)
{
for (playerMonId = 0; playerMonId < 3; playerMonId++)
for (playerMonId = 0; playerMonId < FRONTIER_PARTY_SIZE; playerMonId++)
{
if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN)
{
@@ -3327,7 +3321,7 @@ static void SetDomeOpponentGraphicsId(void)
SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0);
}
static void sub_81902F8(void)
static void SaveDomeChallenge(void)
{
gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005;
VarSet(VAR_TEMP_0, 0);
@@ -3335,7 +3329,7 @@ static void sub_81902F8(void)
SaveGameFrontier();
}
static void UpdateDomeStreaks(void)
static void IncrementDomeStreaks(void)
{
u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
@@ -5937,7 +5931,7 @@ static void InitDomeFacilityTrainersAndMons(void)
gFacilityTrainers = gBattleFrontierTrainers;
}
static void RestoreDomePlayerParty(void)
static void ResetSketchedMoves(void)
{
int i, moveSlot;
@@ -6005,7 +5999,7 @@ static void sub_8194F58(void)
{
int i, j, k;
int monLevel;
int species[3];
int species[FRONTIER_PARTY_SIZE];
int monTypesBits;
int trainerId;
int monSetId;
@@ -6021,7 +6015,7 @@ static void sub_8194F58(void)
return;
statSums = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT);
statValues = AllocZeroed(sizeof(int) * 6);
statValues = AllocZeroed(sizeof(int) * NUM_STATS);
lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
gSaveBlock2Ptr->frontier.lvlMode = 0;
// This one, I'd like to call a 'C fakematching'.
@@ -6050,7 +6044,7 @@ static void sub_8194F58(void)
} while (j != i);
gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId = trainerId;
for (j = 0; j < 3; j++)
for (j = 0; j < FRONTIER_PARTY_SIZE; j++)
{
// Make sure the mon is valid.
do
@@ -6081,7 +6075,7 @@ static void sub_8194F58(void)
monTypesBits = 0;
statSums[i] = 0;
ivs = GetDomeTrainerMonIvs(gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId);
for (j = 0; j < 3; j++)
for (j = 0; j < FRONTIER_PARTY_SIZE; j++)
{
CalcDomeMonStats(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species,
monLevel, ivs,
+62 -59
View File
@@ -10,6 +10,7 @@
#include "random.h"
#include "constants/species.h"
#include "constants/battle_ai.h"
#include "constants/battle_factory.h"
#include "constants/battle_frontier.h"
#include "constants/frontier_util.h"
#include "constants/layouts.h"
@@ -23,7 +24,7 @@ static bool8 sPerformedRentalSwap;
static void InitFactoryChallenge(void);
static void GetBattleFactoryData(void);
static void SetBattleFactoryData(void);
static void sub_81A613C(void);
static void SaveFactoryChallenge(void);
static void nullsub_75(void);
static void nullsub_123(void);
static void SelectInitialRentalMons(void);
@@ -49,14 +50,14 @@ static const u16 sMoves_TotalPreparation[] =
MOVE_MINIMIZE, MOVE_WITHDRAW, MOVE_DEFENSE_CURL, MOVE_BARRIER, MOVE_FOCUS_ENERGY, MOVE_AMNESIA,
MOVE_ACID_ARMOR, MOVE_SHARPEN, MOVE_CONVERSION, MOVE_CONVERSION_2, MOVE_BELLY_DRUM, MOVE_PSYCH_UP,
MOVE_CHARGE, MOVE_SNATCH, MOVE_TAIL_GLOW, MOVE_COSMIC_POWER, MOVE_IRON_DEFENSE, MOVE_HOWL, MOVE_BULK_UP, MOVE_CALM_MIND, MOVE_DRAGON_DANCE,
0
MOVE_NONE
};
static const u16 sMoves_ImpossibleToPredict[] =
{
MOVE_MIMIC, MOVE_METRONOME, MOVE_MIRROR_MOVE, MOVE_TRANSFORM, MOVE_SUBSTITUTE, MOVE_SKETCH, MOVE_CURSE,
MOVE_PRESENT, MOVE_FOLLOW_ME, MOVE_TRICK, MOVE_ROLE_PLAY, MOVE_ASSIST, MOVE_SKILL_SWAP, MOVE_CAMOUFLAGE,
0
MOVE_NONE
};
static const u16 sMoves_WeakeningTheFoe[] =
@@ -64,7 +65,7 @@ static const u16 sMoves_WeakeningTheFoe[] =
MOVE_SAND_ATTACK, MOVE_TAIL_WHIP, MOVE_LEER, MOVE_GROWL, MOVE_STRING_SHOT, MOVE_SCREECH, MOVE_SMOKESCREEN, MOVE_KINESIS,
MOVE_FLASH, MOVE_COTTON_SPORE, MOVE_SPITE, MOVE_SCARY_FACE, MOVE_CHARM, MOVE_KNOCK_OFF, MOVE_SWEET_SCENT, MOVE_FEATHER_DANCE,
MOVE_FAKE_TEARS, MOVE_METAL_SOUND, MOVE_TICKLE,
0
MOVE_NONE
};
static const u16 sMoves_HighRiskHighReturn[] =
@@ -73,7 +74,7 @@ static const u16 sMoves_HighRiskHighReturn[] =
MOVE_BIDE, MOVE_SELF_DESTRUCT, MOVE_SKY_ATTACK, MOVE_EXPLOSION, MOVE_FLAIL, MOVE_REVERSAL, MOVE_DESTINY_BOND,
MOVE_PERISH_SONG, MOVE_PAIN_SPLIT, MOVE_MIRROR_COAT, MOVE_MEMENTO, MOVE_GRUDGE, MOVE_FACADE, MOVE_FOCUS_PUNCH,
MOVE_BLAST_BURN, MOVE_HYDRO_CANNON, MOVE_OVERHEAT, MOVE_FRENZY_PLANT, MOVE_PSYCHO_BOOST, MOVE_VOLT_TACKLE,
0
MOVE_NONE
};
static const u16 sMoves_Endurance[] =
@@ -82,7 +83,7 @@ static const u16 sMoves_Endurance[] =
MOVE_DETECT, MOVE_ENDURE, MOVE_MILK_DRINK, MOVE_HEAL_BELL, MOVE_SAFEGUARD, MOVE_BATON_PASS, MOVE_MORNING_SUN,
MOVE_SYNTHESIS, MOVE_MOONLIGHT, MOVE_SWALLOW, MOVE_WISH, MOVE_INGRAIN, MOVE_MAGIC_COAT, MOVE_RECYCLE, MOVE_REFRESH,
MOVE_MUD_SPORT, MOVE_SLACK_OFF, MOVE_AROMATHERAPY, MOVE_WATER_SPORT,
0
MOVE_NONE
};
static const u16 sMoves_SlowAndSteady[] =
@@ -91,45 +92,46 @@ static const u16 sMoves_SlowAndSteady[] =
MOVE_THUNDER_WAVE, MOVE_TOXIC, MOVE_HYPNOSIS, MOVE_CONFUSE_RAY, MOVE_GLARE, MOVE_POISON_GAS, MOVE_LOVELY_KISS, MOVE_SPORE,
MOVE_SPIDER_WEB, MOVE_SWEET_KISS, MOVE_SPIKES, MOVE_SWAGGER, MOVE_MEAN_LOOK, MOVE_ATTRACT, MOVE_ENCORE, MOVE_TORMENT,
MOVE_FLATTER, MOVE_WILL_O_WISP, MOVE_TAUNT, MOVE_YAWN, MOVE_IMPRISON, MOVE_SNATCH, MOVE_TEETER_DANCE, MOVE_GRASS_WHISTLE, MOVE_BLOCK,
0
MOVE_NONE
};
static const u16 sMoves_DependsOnTheBattlesFlow[] =
{
MOVE_SANDSTORM, MOVE_RAIN_DANCE, MOVE_SUNNY_DAY, MOVE_HAIL, MOVE_WEATHER_BALL,
0
MOVE_NONE
};
static const u16 *const sMoveStyles[] =
// Excludes FACTORY_STYLE_NONE
static const u16 *const sMoveStyles[FACTORY_NUM_STYLES - 1] =
{
sMoves_TotalPreparation,
sMoves_SlowAndSteady,
sMoves_Endurance,
sMoves_HighRiskHighReturn,
sMoves_WeakeningTheFoe,
sMoves_ImpossibleToPredict,
sMoves_DependsOnTheBattlesFlow,
[FACTORY_STYLE_PREPARATION - 1] = sMoves_TotalPreparation,
[FACTORY_STYLE_SLOW_STEADY - 1] = sMoves_SlowAndSteady,
[FACTORY_STYLE_ENDURANCE - 1] = sMoves_Endurance,
[FACTORY_STYLE_HIGH_RISK - 1] = sMoves_HighRiskHighReturn,
[FACTORY_STYLE_WEAKENING - 1] = sMoves_WeakeningTheFoe,
[FACTORY_STYLE_UNPREDICTABLE - 1] = sMoves_ImpossibleToPredict,
[FACTORY_STYLE_WEATHER - 1] = sMoves_DependsOnTheBattlesFlow,
};
static void (* const sBattleFactoryFunctions[])(void) =
{
InitFactoryChallenge,
GetBattleFactoryData,
SetBattleFactoryData,
sub_81A613C,
nullsub_75,
nullsub_123,
SelectInitialRentalMons,
SwapRentalMons,
SetPerformedRentalSwap,
SetRentalsToOpponentParty,
SetPlayerAndOpponentParties,
SetOpponentGfxVar,
GenerateOpponentMons,
GenerateInitialRentalMons,
GetOpponentMostCommonMonType,
GetOpponentBattleStyle,
RestorePlayerPartyHeldItems,
[BATTLE_FACTORY_FUNC_INIT] = InitFactoryChallenge,
[BATTLE_FACTORY_FUNC_GET_DATA] = GetBattleFactoryData,
[BATTLE_FACTORY_FUNC_SET_DATA] = SetBattleFactoryData,
[BATTLE_FACTORY_FUNC_SAVE] = SaveFactoryChallenge,
[BATTLE_FACTORY_FUNC_NULL] = nullsub_75,
[BATTLE_FACTORY_FUNC_NULL2] = nullsub_123,
[BATTLE_FACTORY_FUNC_SELECT_RENT_MONS] = SelectInitialRentalMons,
[BATTLE_FACTORY_FUNC_SWAP_RENT_MONS] = SwapRentalMons,
[BATTLE_FACTORY_FUNC_SET_SWAPPED] = SetPerformedRentalSwap,
[BATTLE_FACTORY_FUNC_SET_OPPONENT_MONS] = SetRentalsToOpponentParty,
[BATTLE_FACTORY_FUNC_SET_PARTIES] = SetPlayerAndOpponentParties,
[BATTLE_FACTORY_FUNC_SET_OPPONENT_GFX] = SetOpponentGfxVar,
[BATTLE_FACTORY_FUNC_GENERATE_OPPONENT_MONS] = GenerateOpponentMons,
[BATTLE_FACTORY_FUNC_GENERATE_RENTAL_MONS] = GenerateInitialRentalMons,
[BATTLE_FACTORY_FUNC_GET_OPPONENT_MON_TYPE] = GetOpponentMostCommonMonType,
[BATTLE_FACTORY_FUNC_GET_OPPONENT_STYLE] = GetOpponentBattleStyle,
[BATTLE_FACTORY_FUNC_RESET_HELD_ITEMS] = RestorePlayerPartyHeldItems,
};
static const u32 sWinStreakFlags[][2] =
@@ -201,7 +203,7 @@ static void InitFactoryChallenge(void)
sPerformedRentalSwap = FALSE;
for (i = 0; i < 6; i++)
gSaveBlock2Ptr->frontier.rentalMons[i].monId = 0xFFFF;
for (i = 0; i < 3; i++)
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
gUnknown_03006298[i] = 0xFFFF;
SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1);
@@ -215,13 +217,13 @@ static void GetBattleFactoryData(void)
switch (gSpecialVar_0x8005)
{
case 1:
case FACTORY_DATA_WIN_STREAK:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode];
break;
case 2:
case FACTORY_DATA_WIN_STREAK_ACTIVE:
gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]) != 0);
break;
case 3:
case FACTORY_DATA_WIN_STREAK_SWAPS:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.factoryRentsCount[battleMode][lvlMode];
break;
}
@@ -234,16 +236,16 @@ static void SetBattleFactoryData(void)
switch (gSpecialVar_0x8005)
{
case 1:
case FACTORY_DATA_WIN_STREAK:
gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] = gSpecialVar_0x8006;
break;
case 2:
case FACTORY_DATA_WIN_STREAK_ACTIVE:
if (gSpecialVar_0x8006)
gSaveBlock2Ptr->frontier.winStreakActiveFlags |= sWinStreakFlags[battleMode][lvlMode];
else
gSaveBlock2Ptr->frontier.winStreakActiveFlags &= sWinStreakMasks[battleMode][lvlMode];
break;
case 3:
case FACTORY_DATA_WIN_STREAK_SWAPS:
if (sPerformedRentalSwap == TRUE)
{
gSaveBlock2Ptr->frontier.factoryRentsCount[battleMode][lvlMode] = gSpecialVar_0x8006;
@@ -253,7 +255,7 @@ static void SetBattleFactoryData(void)
}
}
static void sub_81A613C(void)
static void SaveFactoryChallenge(void)
{
gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005;
VarSet(VAR_TEMP_0, 0);
@@ -290,8 +292,8 @@ static void SetPerformedRentalSwap(void)
static void GenerateOpponentMons(void)
{
int i, j, k;
u16 species[3];
u16 heldItems[3];
u16 species[FRONTIER_PARTY_SIZE];
u16 heldItems[FRONTIER_PARTY_SIZE];
int firstMonId = 0;
u16 trainerId = 0;
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
@@ -315,7 +317,7 @@ static void GenerateOpponentMons(void)
gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = trainerId;
i = 0;
while (i != 3)
while (i != FRONTIER_PARTY_SIZE)
{
u16 monSetId = GetMonSetId(lvlMode, challengeNum, FALSE);
if (gFacilityTrainerMons[monSetId].species == SPECIES_UNOWN)
@@ -369,7 +371,7 @@ static void SetRentalsToOpponentParty(void)
else
gFacilityTrainerMons = gSlateportBattleTentMons;
for (i = 0; i < 3; i++)
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
gSaveBlock2Ptr->frontier.rentalMons[i + 3].monId = gUnknown_03006298[i];
gSaveBlock2Ptr->frontier.rentalMons[i + 3].ivs = GetBoxMonData(&gEnemyParty[i].box, MON_DATA_ATK_IV, NULL);
@@ -407,7 +409,7 @@ static void SetPlayerAndOpponentParties(void)
if (gSpecialVar_0x8005 < 2)
{
ZeroPlayerPartyMons();
for (i = 0; i < 3; i++)
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
monSetId = gSaveBlock2Ptr->frontier.rentalMons[i].monId;
ivs = gSaveBlock2Ptr->frontier.rentalMons[i].ivs;
@@ -448,7 +450,7 @@ static void SetPlayerAndOpponentParties(void)
{
case 0:
case 2:
for (i = 0; i < 3; i++)
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
monSetId = gSaveBlock2Ptr->frontier.rentalMons[i + 3].monId;
ivs = gSaveBlock2Ptr->frontier.rentalMons[i + 3].ivs;
@@ -588,7 +590,7 @@ static void GetOpponentMostCommonMonType(void)
gFacilityTrainerMons = gBattleFrontierMons;
for (i = 0; i < NUMBER_OF_MON_TYPES; i++)
typesCount[i] = 0;
for (i = 0; i < 3; i++)
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
u32 species = gFacilityTrainerMons[gUnknown_03006298[i]].species;
@@ -617,14 +619,14 @@ static void GetOpponentMostCommonMonType(void)
static void GetOpponentBattleStyle(void)
{
u8 i, j, count;
u8 stylePoints[8];
u8 stylePoints[FACTORY_NUM_STYLES];
count = 0;
gFacilityTrainerMons = gBattleFrontierMons;
for (i = 0; i < 8; i++)
for (i = 0; i < FACTORY_NUM_STYLES; i++)
stylePoints[i] = 0;
for (i = 0; i < 3; i++)
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
u16 monSetId = gUnknown_03006298[i];
for (j = 0; j < MAX_MON_MOVES; j++)
@@ -635,7 +637,7 @@ static void GetOpponentBattleStyle(void)
}
gSpecialVar_Result = 0;
for (i = 1; i < 8; i++)
for (i = 1; i < FACTORY_NUM_STYLES; i++)
{
if (stylePoints[i] >= sRequiredMoveCounts[i - 1])
{
@@ -644,8 +646,9 @@ static void GetOpponentBattleStyle(void)
}
}
// Has no singular style
if (count > 2)
gSpecialVar_Result = 8;
gSpecialVar_Result = FACTORY_NUM_STYLES;
}
static u8 GetMoveBattleStyle(u16 move)
@@ -655,13 +658,13 @@ static u8 GetMoveBattleStyle(u16 move)
for (i = 0; i < ARRAY_COUNT(sMoveStyles); i++)
{
for (j = 0, moves = sMoveStyles[i]; moves[j] != 0; j++)
for (j = 0, moves = sMoveStyles[i]; moves[j] != MOVE_NONE; j++)
{
if (moves[j] == move)
return i + 1;
}
}
return 0;
return FACTORY_STYLE_NONE;
}
bool8 InBattleFactory(void)
@@ -679,7 +682,7 @@ static void RestorePlayerPartyHeldItems(void)
else
gFacilityTrainerMons = gSlateportBattleTentMons;
for (i = 0; i < 3; i++)
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
SetMonData(&gPlayerParty[i],
MON_DATA_HELD_ITEM,
@@ -703,8 +706,8 @@ u8 GetFactoryMonFixedIV(u8 arg0, u8 arg1)
void FillFactoryBrainParty(void)
{
int i, j, k;
u16 species[3];
u16 heldItems[3];
u16 species[FRONTIER_PARTY_SIZE];
u16 heldItems[FRONTIER_PARTY_SIZE];
u8 friendship;
int monLevel;
u8 fixedIV;
@@ -718,7 +721,7 @@ void FillFactoryBrainParty(void)
i = 0;
otId = T1_READ_32(gSaveBlock2Ptr->playerTrainerId);
while (i != 3)
while (i != FRONTIER_PARTY_SIZE)
{
u16 monSetId = GetMonSetId(lvlMode, challengeNum, FALSE);
+52 -52
View File
@@ -375,16 +375,16 @@ static const struct WindowTemplate sSelect_WindowTemplates[] =
static const u16 gUnknown_0861046C[] = INCBIN_U16("graphics/unknown/unknown_61046C.gbapal");
static const u8 gUnknown_08610476[] = {0x00, 0x02, 0x00};
static const u8 gUnknown_08610479[] = {0x00, 0x04, 0x00};
static const u8 sMenuOptionTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_TRANSPARENT};
static const u8 sSpeciesNameTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_RED, TEXT_COLOR_TRANSPARENT};
static const struct OamData gUnknown_0861047C =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x32),
.x = 0,
.matrixNum = 0,
@@ -398,10 +398,10 @@ static const struct OamData gUnknown_0861047C =
static const struct OamData gUnknown_08610484 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x16),
.x = 0,
.matrixNum = 0,
@@ -415,10 +415,10 @@ static const struct OamData gUnknown_08610484 =
static const struct OamData gUnknown_0861048C =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x16),
.x = 0,
.matrixNum = 0,
@@ -432,10 +432,10 @@ static const struct OamData gUnknown_0861048C =
static const struct OamData gUnknown_08610494 =
{
.y = 0,
.affineMode = 3,
.objMode = 1,
.affineMode = ST_OAM_AFFINE_DOUBLE,
.objMode = ST_OAM_OBJ_BLEND,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
@@ -632,14 +632,14 @@ static const struct SpritePalette gUnknown_086106B0[] =
static const struct OamData gUnknown_086106D8 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.shape = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x32),
.x = 0,
.matrixNum = 0,
.size = 2,
.size = SPRITE_SIZE(32x32),
.tileNum = 0,
.priority = 3,
.paletteNum = 0,
@@ -649,14 +649,14 @@ static const struct OamData gUnknown_086106D8 =
static const struct OamData gUnknown_086106E0 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.shape = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x16),
.x = 0,
.matrixNum = 0,
.size = 1,
.size = SPRITE_SIZE(16x16),
.tileNum = 0,
.priority = 3,
.paletteNum = 0,
@@ -666,14 +666,14 @@ static const struct OamData gUnknown_086106E0 =
static const struct OamData gUnknown_086106E8 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.shape = 1,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x16),
.x = 0,
.matrixNum = 0,
.size = 2,
.size = SPRITE_SIZE(32x16),
.tileNum = 0,
.priority = 2,
.paletteNum = 0,
@@ -683,14 +683,14 @@ static const struct OamData gUnknown_086106E8 =
static const struct OamData gUnknown_086106F0 =
{
.y = 0,
.affineMode = 3,
.objMode = 1,
.affineMode = ST_OAM_AFFINE_DOUBLE,
.objMode = ST_OAM_OBJ_BLEND,
.mosaic = 0,
.bpp = 0,
.shape = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
.size = 3,
.size = SPRITE_SIZE(64x64),
.tileNum = 0,
.priority = 0,
.paletteNum = 0,
@@ -985,8 +985,8 @@ static const struct WindowTemplate sSwap_WindowTemplates[] =
};
static const u16 gUnknown_08610918[] = {RGB_BLACK, RGB_BLACK, RGB_WHITE, RGB_BLACK, RGB_RED}; // Palette.
static const u8 gUnknown_08610922[] = {0x0, 0x02, 0x0};
static const u8 gUnknown_08610925[] = {0x0, 0x04, 0x0};
static const u8 sSwapMenuOptionsTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_TRANSPARENT};
static const u8 sSwapSpeciesNameTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_RED, TEXT_COLOR_TRANSPARENT};
static const struct SwapActionIdAndFunc sSwap_PlayerScreenActions[] =
{
@@ -1808,7 +1808,7 @@ static void Select_PrintMonSpecies(void)
species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES, NULL);
StringCopy(gStringVar4, gSpeciesNames[species]);
x = GetStringRightAlignXOffset(1, gStringVar4, 86);
AddTextPrinterParameterized3(1, 1, x, 1, gUnknown_08610479, 0, gStringVar4);
AddTextPrinterParameterized3(1, 1, x, 1, sSpeciesNameTextColors, 0, gStringVar4);
CopyWindowToVram(1, 2);
}
@@ -1843,13 +1843,13 @@ static void Select_PrintMenuOptions(void)
PutWindowTilemap(3);
FillWindowPixelBuffer(3, PIXEL_FILL(0));
AddTextPrinterParameterized3(3, 1, 7, 1, gUnknown_08610476, 0, gText_Summary);
AddTextPrinterParameterized3(3, 1, 7, 1, sMenuOptionTextColors, 0, gText_Summary);
if (selectedId != 0)
AddTextPrinterParameterized3(3, 1, 7, 17, gUnknown_08610476, 0, gText_Deselect);
AddTextPrinterParameterized3(3, 1, 7, 17, sMenuOptionTextColors, 0, gText_Deselect);
else
AddTextPrinterParameterized3(3, 1, 7, 17, gUnknown_08610476, 0, gText_Rent);
AddTextPrinterParameterized3(3, 1, 7, 17, sMenuOptionTextColors, 0, gText_Rent);
AddTextPrinterParameterized3(3, 1, 7, 33, gUnknown_08610476, 0, gText_Others2);
AddTextPrinterParameterized3(3, 1, 7, 33, sMenuOptionTextColors, 0, gText_Others2);
CopyWindowToVram(3, 3);
}
@@ -1857,8 +1857,8 @@ static void Select_PrintYesNoOptions(void)
{
PutWindowTilemap(4);
FillWindowPixelBuffer(4, PIXEL_FILL(0));
AddTextPrinterParameterized3(4, 1, 7, 1, gUnknown_08610476, 0, gText_Yes2);
AddTextPrinterParameterized3(4, 1, 7, 17, gUnknown_08610476, 0, gText_No2);
AddTextPrinterParameterized3(4, 1, 7, 1, sMenuOptionTextColors, 0, gText_Yes2);
AddTextPrinterParameterized3(4, 1, 7, 17, sMenuOptionTextColors, 0, gText_No2);
CopyWindowToVram(4, 3);
}
@@ -3599,7 +3599,7 @@ static void Swap_PrintMonSpecies(void)
species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL);
StringCopy(gStringVar4, gSpeciesNames[species]);
x = GetStringRightAlignXOffset(1, gStringVar4, 86);
AddTextPrinterParameterized3(1, 1, x, 1, gUnknown_08610925, 0, gStringVar4);
AddTextPrinterParameterized3(1, 1, x, 1, sSwapSpeciesNameTextColors, 0, gStringVar4);
CopyWindowToVram(1, 3);
}
}
@@ -3615,9 +3615,9 @@ static void Swap_PrintMenuOptions(void)
{
PutWindowTilemap(3);
FillWindowPixelBuffer(3, PIXEL_FILL(0));
AddTextPrinterParameterized3(3, 1, 15, 1, gUnknown_08610922, 0, gText_Summary2);
AddTextPrinterParameterized3(3, 1, 15, 17, gUnknown_08610922, 0, gText_Swap);
AddTextPrinterParameterized3(3, 1, 15, 33, gUnknown_08610922, 0, gText_Rechoose);
AddTextPrinterParameterized3(3, 1, 15, 1, sSwapMenuOptionsTextColors, 0, gText_Summary2);
AddTextPrinterParameterized3(3, 1, 15, 17, sSwapMenuOptionsTextColors, 0, gText_Swap);
AddTextPrinterParameterized3(3, 1, 15, 33, sSwapMenuOptionsTextColors, 0, gText_Rechoose);
CopyWindowToVram(3, 3);
}
@@ -3625,15 +3625,15 @@ static void Swap_PrintYesNoOptions(void)
{
PutWindowTilemap(4);
FillWindowPixelBuffer(4, PIXEL_FILL(0));
AddTextPrinterParameterized3(4, 1, 7, 1, gUnknown_08610922, 0, gText_Yes3);
AddTextPrinterParameterized3(4, 1, 7, 17, gUnknown_08610922, 0, gText_No3);
AddTextPrinterParameterized3(4, 1, 7, 1, sSwapMenuOptionsTextColors, 0, gText_Yes3);
AddTextPrinterParameterized3(4, 1, 7, 17, sSwapMenuOptionsTextColors, 0, gText_No3);
CopyWindowToVram(4, 3);
}
static void Swap_PrintActionString(const u8 *str, u32 y, u32 windowId)
{
s32 x = GetStringRightAlignXOffset(0, str, 0x46);
AddTextPrinterParameterized3(windowId, 0, x, y, gUnknown_08610922, 0, str);
AddTextPrinterParameterized3(windowId, 0, x, y, sSwapMenuOptionsTextColors, 0, str);
}
static void Swap_PrintActionStrings(void)
@@ -3707,7 +3707,7 @@ static void Swap_PrintMonSpecies2(void)
species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL);
StringCopy(gStringVar4, gSpeciesNames[species]);
x = GetStringRightAlignXOffset(1, gStringVar4, 86);
AddTextPrinterParameterized3(7, 1, x, 1, gUnknown_08610925, 0, gStringVar4);
AddTextPrinterParameterized3(7, 1, x, 1, sSwapSpeciesNameTextColors, 0, gStringVar4);
CopyWindowToVram(7, 3);
}
}
@@ -3733,7 +3733,7 @@ static void Swap_PrintMonSpecies3(void)
species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL);
StringCopy(gStringVar4, gSpeciesNames[species]);
x = GetStringRightAlignXOffset(1, gStringVar4, 86);
AddTextPrinterParameterized3(1, 1, x, 1, gUnknown_08610925, 0, gStringVar4);
AddTextPrinterParameterized3(1, 1, x, 1, sSwapSpeciesNameTextColors, 0, gStringVar4);
CopyWindowToVram(1, 3);
}
}
+251 -48
View File
@@ -202,10 +202,10 @@ static void sub_8074F88(struct TestingBar *barInfo, s32 *arg1, u16 *arg2);
static const struct OamData sUnknown_0832C138 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x32),
.x = 0,
.matrixNum = 0,
@@ -274,10 +274,10 @@ static const struct SpriteTemplate sHealthboxSafariSpriteTemplate =
static const struct OamData sOamData_Healthbar =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x8),
.x = 0,
.matrixNum = 0,
@@ -330,45 +330,178 @@ static const struct SpriteTemplate sHealthbarSpriteTemplates[MAX_BATTLERS_COUNT]
static const struct Subsprite sUnknown_0832C220[] =
{
{240, 0, 1, 3, 0, 1},
{48, 0, 0, 2, 32, 1},
{240, 32, 1, 1, 48, 1},
{16, 32, 1, 1, 52, 1},
{48, 32, 1, 1, 56, 1}
{
.x = 240,
.y = 0,
.shape = SPRITE_SHAPE(64x32),
.size = SPRITE_SIZE(64x32),
.tileOffset = 0,
.priority = 1
},
{
.x = 48,
.y = 0,
.shape = SPRITE_SHAPE(32x32),
.size = SPRITE_SIZE(32x32),
.tileOffset = 32,
.priority = 1
},
{
.x = 240,
.y = 32,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 48,
.priority = 1
},
{
.x = 16,
.y = 32,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 52,
.priority = 1
},
{
.x = 48,
.y = 32,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 56,
.priority = 1
}
};
static const struct Subsprite sUnknown_0832C234[] =
{
{240, 0, 1, 3, 64, 1},
{48, 0, 0, 2, 96, 1},
{240, 32, 1, 1, 112, 1},
{16, 32, 1, 1, 116, 1},
{48, 32, 1, 1, 120, 1}
{
.x = 240,
.y = 0,
.shape = SPRITE_SHAPE(64x32),
.size = SPRITE_SIZE(64x32),
.tileOffset = 64,
.priority = 1
},
{
.x = 48,
.y = 0,
.shape = SPRITE_SHAPE(32x32),
.size = SPRITE_SIZE(32x32),
.tileOffset = 96,
.priority = 1
},
{
.x = 240,
.y = 32,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 112,
.priority = 1
},
{
.x = 16,
.y = 32,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 116,
.priority = 1
},
{
.x = 48,
.y = 32,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 120,
.priority = 1
}
};
static const struct Subsprite sUnknown_0832C248[] =
{
{240, 0, 1, 3, 0, 1},
{48, 0, 0, 2, 32, 1}
{
.x = 240,
.y = 0,
.shape = SPRITE_SHAPE(64x32),
.size = SPRITE_SIZE(64x32),
.tileOffset = 0,
.priority = 1
},
{
.x = 48,
.y = 0,
.shape = SPRITE_SHAPE(32x32),
.size = SPRITE_SIZE(32x32),
.tileOffset = 32,
.priority = 1
}
};
static const struct Subsprite sUnknown_0832C250[] =
{
{240, 0, 1, 3, 0, 1},
{48, 0, 0, 2, 32, 1}
{
.x = 240,
.y = 0,
.shape = SPRITE_SHAPE(64x32),
.size = SPRITE_SIZE(64x32),
.tileOffset = 0,
.priority = 1
},
{
.x = 48,
.y = 0,
.shape = SPRITE_SHAPE(32x32),
.size = SPRITE_SIZE(32x32),
.tileOffset = 32,
.priority = 1
}
};
static const struct Subsprite sUnknown_0832C258[] =
{
{240, 0, 1, 1, 0, 1},
{16, 0, 1, 1, 4, 1}
{
.x = 240,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 0,
.priority = 1
},
{
.x = 16,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 4,
.priority = 1
}
};
static const struct Subsprite sUnknown_0832C260[] =
{
{240, 0, 1, 1, 0, 1},
{16, 0, 1, 1, 4, 1},
{224, 0, 0, 0, 8, 1}
{
.x = 240,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 0,
.priority = 1
},
{
.x = 16,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 4,
.priority = 1
},
{
.x = 224,
.y = 0,
.shape = SPRITE_SHAPE(8x8),
.size = SPRITE_SIZE(8x8),
.tileOffset = 8,
.priority = 1
}
};
// unused subsprite table
@@ -388,20 +521,90 @@ static const struct SubspriteTable sUnknown_0832C28C[] =
static const struct Subsprite sStatusSummaryBar_Subsprites_0[] =
{
{160, 0, 1, 1, 0, 1},
{192, 0, 1, 1, 4, 1},
{224, 0, 1, 1, 8, 1},
{0, 0, 1, 1, 12, 1}
{
.x = 160,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 0,
.priority = 1
},
{
.x = 192,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 4,
.priority = 1
},
{
.x = 224,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 8,
.priority = 1
},
{
.x = 0,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 12,
.priority = 1
}
};
static const struct Subsprite sUnknown_0832C2AC[] =
{
{160, 0, 1, 1, 0, 1},
{192, 0, 1, 1, 4, 1},
{224, 0, 1, 1, 8, 1},
{0, 0, 1, 1, 8, 1},
{32, 0, 1, 1, 8, 1},
{64, 0, 1, 1, 12, 1}
{
.x = 160,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 0,
.priority = 1
},
{
.x = 192,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 4,
.priority = 1
},
{
.x = 224,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 8,
.priority = 1
},
{
.x = 0,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 8,
.priority = 1
},
{
.x = 32,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 8,
.priority = 1
},
{
.x = 64,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 12,
.priority = 1
}
};
static const struct SubspriteTable sStatusSummaryBar_SubspriteTable[] =
@@ -441,10 +644,10 @@ static const struct SpriteSheet sStatusSummaryBallsSpriteSheet =
static const struct OamData sUnknown_0832C354 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x32),
.x = 0,
.matrixNum = 0,
@@ -458,10 +661,10 @@ static const struct OamData sUnknown_0832C354 =
static const struct OamData sOamData_StatusSummaryBalls =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(8x8),
.x = 0,
.matrixNum = 0,
@@ -910,9 +1113,9 @@ u8 CreateBattlerHealthboxSprites(u8 battlerId)
healthboxLeftSpriteId = CreateSprite(&sHealthboxPlayerSpriteTemplates[0], 240, 160, 1);
healthboxRightSpriteId = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[0], 240, 160, 1);
gSprites[healthboxLeftSpriteId].oam.shape = 0;
gSprites[healthboxLeftSpriteId].oam.shape = ST_OAM_SQUARE;
gSprites[healthboxRightSpriteId].oam.shape = 0;
gSprites[healthboxRightSpriteId].oam.shape = ST_OAM_SQUARE;
gSprites[healthboxRightSpriteId].oam.tileNum += 64;
}
else
@@ -962,7 +1165,7 @@ u8 CreateBattlerHealthboxSprites(u8 battlerId)
healthbarSpriteId = CreateSpriteAtEnd(&sHealthbarSpriteTemplates[gBattlerPositions[battlerId]], 140, 60, 0);
healthBarSpritePtr = &gSprites[healthbarSpriteId];
SetSubspriteTables(healthBarSpritePtr, &sUnknown_0832C28C[GetBattlerSide(battlerId)]);
healthBarSpritePtr->subspriteMode = 2;
healthBarSpritePtr->subspriteMode = SUBSPRITES_IGNORE_PRIORITY;
healthBarSpritePtr->oam.priority = 1;
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_1), (void*)(OBJ_VRAM0 + healthBarSpritePtr->oam.tileNum * TILE_SIZE_4BPP), 64);
@@ -987,8 +1190,8 @@ u8 CreateSafariPlayerHealthboxSprites(void)
healthboxLeftSpriteId = CreateSprite(&sHealthboxSafariSpriteTemplate, 240, 160, 1);
healthboxRightSpriteId = CreateSpriteAtEnd(&sHealthboxSafariSpriteTemplate, 240, 160, 1);
gSprites[healthboxLeftSpriteId].oam.shape = 0;
gSprites[healthboxRightSpriteId].oam.shape = 0;
gSprites[healthboxLeftSpriteId].oam.shape = ST_OAM_SQUARE;
gSprites[healthboxRightSpriteId].oam.shape = ST_OAM_SQUARE;
gSprites[healthboxRightSpriteId].oam.tileNum += 64;
@@ -1711,9 +1914,9 @@ void Task_HidePartyStatusSummary(u8 taskId)
gTasks[taskId].tData15 = 16;
for (i = 0; i < PARTY_SIZE; i++)
gSprites[ballIconSpriteIds[i]].oam.objMode = 1;
gSprites[ballIconSpriteIds[i]].oam.objMode = ST_OAM_OBJ_BLEND;
gSprites[summaryBarSpriteId].oam.objMode = 1;
gSprites[summaryBarSpriteId].oam.objMode = ST_OAM_OBJ_BLEND;
if (isBattleStart)
{
+62 -42
View File
@@ -14,34 +14,54 @@
#include "constants/trainers.h"
// This file's functions.
static void sub_8195980(void);
static void sub_8195A38(void);
static void sub_8195AE4(void);
static void sub_8195BB0(void);
static void sub_8195C20(void);
static void InitPalaceChallenge(void);
static void GetPalaceData(void);
static void SetPalaceData(void);
static void GetPalaceCommentId(void);
static void SetPalaceOpponent(void);
static void BufferOpponentIntroSpeech(void);
static void sub_8195C7C(void);
static void sub_8195CE4(void);
static void sub_8195D28(void);
static void sub_8195DB8(void);
static void IncrementPalaceStreak(void);
static void SavePalaceChallenge(void);
static void SetRandomPalacePrize(void);
static void GivePalacePrize(void);
// Const rom data.
static void (* const sBattlePalaceFunctions[])(void) =
{
[BATTLE_PALACE_FUNC_0] = sub_8195980,
[BATTLE_PALACE_FUNC_1] = sub_8195A38,
[BATTLE_PALACE_FUNC_2] = sub_8195AE4,
[BATTLE_PALACE_FUNC_3] = sub_8195BB0,
[BATTLE_PALACE_FUNC_4] = sub_8195C20,
[BATTLE_PALACE_FUNC_INIT] = InitPalaceChallenge,
[BATTLE_PALACE_FUNC_GET_DATA] = GetPalaceData,
[BATTLE_PALACE_FUNC_SET_DATA] = SetPalaceData,
[BATTLE_PALACE_FUNC_GET_COMMENT_ID] = GetPalaceCommentId,
[BATTLE_PALACE_FUNC_SET_OPPONENT] = SetPalaceOpponent,
[BATTLE_PALACE_FUNC_GET_OPPONENT_INTRO] = BufferOpponentIntroSpeech,
[BATTLE_PALACE_FUNC_6] = sub_8195C7C,
[BATTLE_PALACE_FUNC_7] = sub_8195CE4,
[BATTLE_PALACE_FUNC_8] = sub_8195D28,
[BATTLE_PALACE_FUNC_9] = sub_8195DB8,
[BATTLE_PALACE_FUNC_INCREMENT_STREAK] = IncrementPalaceStreak,
[BATTLE_PALACE_FUNC_SAVE] = SavePalaceChallenge,
[BATTLE_PALACE_FUNC_SET_PRIZE] = SetRandomPalacePrize,
[BATTLE_PALACE_FUNC_GIVE_PRIZE] = GivePalacePrize,
};
static const u16 gUnknown_0860DE78[] = {ITEM_HP_UP, ITEM_PROTEIN, ITEM_IRON, ITEM_CALCIUM, ITEM_CARBOS, ITEM_ZINC};
static const u16 gUnknown_0860DE84[] = {ITEM_BRIGHT_POWDER, ITEM_WHITE_HERB, ITEM_QUICK_CLAW, ITEM_LEFTOVERS, ITEM_MENTAL_HERB, ITEM_KINGS_ROCK, ITEM_FOCUS_BAND, ITEM_SCOPE_LENS, ITEM_CHOICE_BAND};
static const u16 sBattlePalaceEarlyPrizes[] =
{
ITEM_HP_UP,
ITEM_PROTEIN,
ITEM_IRON,
ITEM_CALCIUM,
ITEM_CARBOS,
ITEM_ZINC
};
static const u16 sBattlePalaceLatePrizes[] =
{
ITEM_BRIGHT_POWDER,
ITEM_WHITE_HERB,
ITEM_QUICK_CLAW,
ITEM_LEFTOVERS,
ITEM_MENTAL_HERB,
ITEM_KINGS_ROCK,
ITEM_FOCUS_BAND,
ITEM_SCOPE_LENS,
ITEM_CHOICE_BAND
};
static const u32 sWinStreakFlags[][2] =
{
@@ -61,7 +81,7 @@ void CallBattlePalaceFunction(void)
sBattlePalaceFunctions[gSpecialVar_0x8004]();
}
static void sub_8195980(void)
static void InitPalaceChallenge(void)
{
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
@@ -77,39 +97,39 @@ static void sub_8195980(void)
gTrainerBattleOpponent_A = 0;
}
static void sub_8195A38(void)
static void GetPalaceData(void)
{
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
switch (gSpecialVar_0x8005)
{
case 0:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_DC6;
case PALACE_DATA_PRIZE:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.palacePrize;
break;
case 1:
case PALACE_DATA_WIN_STREAK:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode];
break;
case 2:
case PALACE_DATA_WIN_STREAK_ACTIVE:
gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]) != 0);
break;
}
}
static void sub_8195AE4(void)
static void SetPalaceData(void)
{
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
switch (gSpecialVar_0x8005)
{
case 0:
gSaveBlock2Ptr->frontier.field_DC6 = gSpecialVar_0x8006;
case PALACE_DATA_PRIZE:
gSaveBlock2Ptr->frontier.palacePrize = gSpecialVar_0x8006;
break;
case 1:
case PALACE_DATA_WIN_STREAK:
gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] = gSpecialVar_0x8006;
break;
case 2:
case PALACE_DATA_WIN_STREAK_ACTIVE:
if (gSpecialVar_0x8006)
gSaveBlock2Ptr->frontier.winStreakActiveFlags |= sWinStreakFlags[battleMode][lvlMode];
else
@@ -118,7 +138,7 @@ static void sub_8195AE4(void)
}
}
static void sub_8195BB0(void)
static void GetPalaceCommentId(void)
{
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
@@ -131,7 +151,7 @@ static void sub_8195BB0(void)
gSpecialVar_Result = 4;
}
static void sub_8195C20(void)
static void SetPalaceOpponent(void)
{
gTrainerBattleOpponent_A = 5 *(Random() % 255) / 64u;
SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0);
@@ -143,7 +163,7 @@ static void BufferOpponentIntroSpeech(void)
FrontierSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_A].speechBefore);
}
static void sub_8195C7C(void)
static void IncrementPalaceStreak(void)
{
u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
@@ -158,7 +178,7 @@ static void sub_8195C7C(void)
}
}
static void sub_8195CE4(void)
static void SavePalaceChallenge(void)
{
gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005;
VarSet(VAR_TEMP_0, 0);
@@ -166,23 +186,23 @@ static void sub_8195CE4(void)
SaveGameFrontier();
}
static void sub_8195D28(void)
static void SetRandomPalacePrize(void)
{
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
if (gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] > 41)
gSaveBlock2Ptr->frontier.field_DC6 = gUnknown_0860DE84[Random() % ARRAY_COUNT(gUnknown_0860DE84)];
gSaveBlock2Ptr->frontier.palacePrize = sBattlePalaceLatePrizes[Random() % ARRAY_COUNT(sBattlePalaceLatePrizes)];
else
gSaveBlock2Ptr->frontier.field_DC6 = gUnknown_0860DE78[Random() % ARRAY_COUNT(gUnknown_0860DE78)];
gSaveBlock2Ptr->frontier.palacePrize = sBattlePalaceEarlyPrizes[Random() % ARRAY_COUNT(sBattlePalaceEarlyPrizes)];
}
static void sub_8195DB8(void)
static void GivePalacePrize(void)
{
if (AddBagItem(gSaveBlock2Ptr->frontier.field_DC6, 1) == TRUE)
if (AddBagItem(gSaveBlock2Ptr->frontier.palacePrize, 1) == TRUE)
{
CopyItemName(gSaveBlock2Ptr->frontier.field_DC6, gStringVar1);
gSaveBlock2Ptr->frontier.field_DC6 = 0;
CopyItemName(gSaveBlock2Ptr->frontier.palacePrize, gStringVar1);
gSaveBlock2Ptr->frontier.palacePrize = 0;
gSpecialVar_Result = TRUE;
}
else
+87 -87
View File
@@ -44,7 +44,7 @@ struct PikeWildMon
// IWRAM bss
static u8 sRoomType;
static u8 sStatusMon;
static bool8 sUnknown_0300128E;
static bool8 sInWildMonRoom;
static u32 sStatusFlags;
static u8 sNpcId;
@@ -55,27 +55,27 @@ static void SetBattlePikeData(void);
static void IsNextRoomFinal(void);
static void SetupRoomEventObjects(void);
static void GetRoomType(void);
static void sub_81A7400(void);
static void sub_81A740C(void);
static void sub_81A7418(void);
static void SetInWildMonRoom(void);
static void ClearInWildMonRoom(void);
static void SavePikeChallenge(void);
static void nullsub_76(void);
static void nullsub_124(void);
static void GetRoomInflictedStatus(void);
static void GetRoomInflictedStatusMon(void);
static void HealOneOrTwoMons(void);
static void BufferNPCMessage(void);
static void StatusInflictionScreenFade(void);
static void StatusInflictionScreenFlash(void);
static void GetInBattlePike(void);
static void SetHintedRoom(void);
static void GetHintedRoomIndex(void);
static void GetRoomTypeHint(void);
static void ClearPikeTrainerIds(void);
static void BufferRecordMixingTrainerMessage(void);
static void BufferTrainerIntro(void);
static void GetCurrentRoomPikeQueenFightType(void);
static void HealSomeMonsBeforePikeQueen(void);
static void SetHealingroomTypesDisabled(void);
static void IsPartyFullHealed(void);
static void BackupMonHeldItems(void);
static void SaveMonHeldItems(void);
static void RestoreMonHeldItems(void);
static void InitPikeChallenge(void);
static u8 GetNextRoomType(void);
@@ -83,7 +83,7 @@ static void PrepareOneTrainer(bool8 difficult);
static u16 GetNPCRoomGraphicsId(void);
static void PrepareTwoTrainers(void);
static void TryHealMons(u8 healCount);
static void Task_DoStatusInflictionScreenFade(u8 taskId);
static void Task_DoStatusInflictionScreenFlash(u8 taskId);
static bool8 AtLeastTwoAliveMons(void);
static u8 SpeciesToPikeMonId(u16 species);
static bool8 CanEncounterWildMon(u8 monLevel);
@@ -480,35 +480,35 @@ static const u8 sFrontierBrainStreakAppearances[NUM_FRONTIER_FACILITIES][4] =
static void (* const sBattlePikeFunctions[])(void) =
{
[BATTLE_PIKE_FUNC_SET_ROOM_TYPE] = SetRoomType,
[BATTLE_PIKE_FUNC_GET_DATA] = GetBattlePikeData,
[BATTLE_PIKE_FUNC_SET_DATA] = SetBattlePikeData,
[BATTLE_PIKE_FUNC_IS_FINAL_ROOM] = IsNextRoomFinal,
[BATTLE_PIKE_FUNC_SET_ROOM_OBJECTS] = SetupRoomEventObjects,
[BATTLE_PIKE_FUNC_GET_ROOM_TYPE] = GetRoomType,
[BATTLE_PIKE_FUNC_6] = sub_81A7400,
[BATTLE_PIKE_FUNC_7] = sub_81A740C,
[BATTLE_PIKE_FUNC_8] = sub_81A7418,
[BATTLE_PIKE_FUNC_NULL_9] = nullsub_76,
[BATTLE_PIKE_FUNC_NULL_10] = nullsub_124,
[BATTLE_PIKE_FUNC_GET_ROOM_STATUS] = GetRoomInflictedStatus,
[BATTLE_PIKE_FUNC_GET_ROOM_STATUS_MON] = GetRoomInflictedStatusMon,
[BATTLE_PIKE_FUNC_HEAL_ONE_TWO_MONS] = HealOneOrTwoMons,
[BATTLE_PIKE_FUNC_BUFFER_NPC_MSG] = BufferNPCMessage,
[BATTLE_PIKE_FUNC_STATUS_SCREEN_FADE] = StatusInflictionScreenFade,
[BATTLE_PIKE_FUNC_IS_IN] = GetInBattlePike,
[BATTLE_PIKE_FUNC_SET_HINT_ROOM] = SetHintedRoom,
[BATTLE_PIKE_FUNC_GET_HINT_ROOM_ID] = GetHintedRoomIndex,
[BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT] = GetRoomTypeHint,
[BATTLE_PIKE_FUNC_CLEAR_TRAINER_IDS] = ClearPikeTrainerIds,
[BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG] = BufferRecordMixingTrainerMessage,
[BATTLE_PIKE_FUNC_GET_QUEEN_FIGHT_TYPE] = GetCurrentRoomPikeQueenFightType,
[BATTLE_PIKE_FUNC_HEAL_MONS_BEFORE_QUEEN] = HealSomeMonsBeforePikeQueen,
[BATTLE_PIKE_FUNC_SET_HEALING_ROOMS_DISABLED] = SetHealingroomTypesDisabled,
[BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH] = IsPartyFullHealed,
[BATTLE_PIKE_FUNC_SAVE_MON_HELD_ITEMS] = BackupMonHeldItems,
[BATTLE_PIKE_FUNC_LOAD_MON_HELD_ITEMS] = RestoreMonHeldItems,
[BATTLE_PIKE_FUNC_INIT_CHALLENGE] = InitPikeChallenge
[BATTLE_PIKE_FUNC_SET_ROOM_TYPE] = SetRoomType,
[BATTLE_PIKE_FUNC_GET_DATA] = GetBattlePikeData,
[BATTLE_PIKE_FUNC_SET_DATA] = SetBattlePikeData,
[BATTLE_PIKE_FUNC_IS_FINAL_ROOM] = IsNextRoomFinal,
[BATTLE_PIKE_FUNC_SET_ROOM_OBJECTS] = SetupRoomEventObjects,
[BATTLE_PIKE_FUNC_GET_ROOM_TYPE] = GetRoomType,
[BATTLE_PIKE_FUNC_SET_IN_WILD_MON_ROOM] = SetInWildMonRoom,
[BATTLE_PIKE_FUNC_CLEAR_IN_WILD_MON_ROOM] = ClearInWildMonRoom,
[BATTLE_PIKE_FUNC_SAVE] = SavePikeChallenge,
[BATTLE_PIKE_FUNC_NULL_9] = nullsub_76,
[BATTLE_PIKE_FUNC_NULL_10] = nullsub_124,
[BATTLE_PIKE_FUNC_GET_ROOM_STATUS] = GetRoomInflictedStatus,
[BATTLE_PIKE_FUNC_GET_ROOM_STATUS_MON] = GetRoomInflictedStatusMon,
[BATTLE_PIKE_FUNC_HEAL_ONE_TWO_MONS] = HealOneOrTwoMons,
[BATTLE_PIKE_FUNC_BUFFER_NPC_MSG] = BufferNPCMessage,
[BATTLE_PIKE_FUNC_STATUS_SCREEN_FLASH] = StatusInflictionScreenFlash,
[BATTLE_PIKE_FUNC_IS_IN] = GetInBattlePike,
[BATTLE_PIKE_FUNC_SET_HINT_ROOM] = SetHintedRoom,
[BATTLE_PIKE_FUNC_GET_HINT_ROOM_ID] = GetHintedRoomIndex,
[BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT] = GetRoomTypeHint,
[BATTLE_PIKE_FUNC_CLEAR_TRAINER_IDS] = ClearPikeTrainerIds,
[BATTLE_PIKE_FUNC_GET_TRAINER_INTRO] = BufferTrainerIntro,
[BATTLE_PIKE_FUNC_GET_QUEEN_FIGHT_TYPE] = GetCurrentRoomPikeQueenFightType,
[BATTLE_PIKE_FUNC_HEAL_MONS_BEFORE_QUEEN] = HealSomeMonsBeforePikeQueen,
[BATTLE_PIKE_FUNC_SET_HEAL_ROOMS_DISABLED] = SetHealingroomTypesDisabled,
[BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH] = IsPartyFullHealed,
[BATTLE_PIKE_FUNC_SAVE_HELD_ITEMS] = SaveMonHeldItems,
[BATTLE_PIKE_FUNC_RESET_HELD_ITEMS] = RestoreMonHeldItems,
[BATTLE_PIKE_FUNC_INIT] = InitPikeChallenge
};
static const u8 sRoomTypeHints[] = {
@@ -533,7 +533,7 @@ static const u8 sNumMonsToHealBeforePikeQueen[][3] =
{0, 1, 2},
};
static bool8 (* const sStatusInflictionScreenFadeFuncs[])(struct Task *) =
static bool8 (* const sStatusInflictionScreenFlashFuncs[])(struct Task *) =
{
StatusInflictionFadeOut, StatusInflictionFadeIn
};
@@ -579,7 +579,7 @@ static void SetupRoomEventObjects(void)
break;
case PIKE_ROOM_STATUS:
objGfx1 = EVENT_OBJ_GFX_GENTLEMAN;
if (sStatusMon == PIKE_STATUS_DUSCLOPS)
if (sStatusMon == PIKE_STATUSMON_DUSCLOPS)
objGfx2 = EVENT_OBJ_GFX_DUSCLOPS;
else
objGfx2 = EVENT_OBJ_GFX_KIRLIA;
@@ -623,19 +623,19 @@ static void GetBattlePikeData(void)
switch (gSpecialVar_0x8005)
{
case 0:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_E02;
case PIKE_DATA_PRIZE:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.pikePrize;
break;
case 1:
case PIKE_DATA_WIN_STREAK:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.pikeWinStreaks[gSaveBlock2Ptr->frontier.lvlMode];
break;
case 2:
case PIKE_DATA_RECORD_STREAK:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.pikeRecordStreaks[gSaveBlock2Ptr->frontier.lvlMode];
break;
case 3:
case PIKE_DATA_TOTAL_STREAKS:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.pikeTotalStreaks[gSaveBlock2Ptr->frontier.lvlMode];
break;
case 4:
case PIKE_DATA_WIN_STREAK_ACTIVE:
if (lvlMode != FRONTIER_LVL_50)
gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PIKE_OPEN;
else
@@ -650,22 +650,22 @@ static void SetBattlePikeData(void)
switch (gSpecialVar_0x8005)
{
case 0:
gSaveBlock2Ptr->frontier.field_E02 = gSpecialVar_0x8006;
case PIKE_DATA_PRIZE:
gSaveBlock2Ptr->frontier.pikePrize = gSpecialVar_0x8006;
break;
case 1:
case PIKE_DATA_WIN_STREAK:
if (gSpecialVar_0x8006 <= MAX_STREAK)
gSaveBlock2Ptr->frontier.pikeWinStreaks[gSaveBlock2Ptr->frontier.lvlMode] = gSpecialVar_0x8006;
break;
case 2:
case PIKE_DATA_RECORD_STREAK:
if (gSpecialVar_0x8006 <= MAX_STREAK && gSaveBlock2Ptr->frontier.pikeRecordStreaks[gSaveBlock2Ptr->frontier.lvlMode] < gSpecialVar_0x8006)
gSaveBlock2Ptr->frontier.pikeRecordStreaks[gSaveBlock2Ptr->frontier.lvlMode] = gSpecialVar_0x8006;
break;
case 3:
case PIKE_DATA_TOTAL_STREAKS:
if (gSpecialVar_0x8006 <= MAX_STREAK)
gSaveBlock2Ptr->frontier.pikeTotalStreaks[gSaveBlock2Ptr->frontier.lvlMode] = gSpecialVar_0x8006;
break;
case 4:
case PIKE_DATA_WIN_STREAK_ACTIVE:
if (lvlMode != FRONTIER_LVL_50)
{
if (gSpecialVar_0x8006)
@@ -697,17 +697,17 @@ static void GetRoomType(void)
gSpecialVar_Result = sRoomType;
}
static void sub_81A7400(void)
static void SetInWildMonRoom(void)
{
sUnknown_0300128E = TRUE;
sInWildMonRoom = TRUE;
}
static void sub_81A740C(void)
static void ClearInWildMonRoom(void)
{
sUnknown_0300128E = FALSE;
sInWildMonRoom = FALSE;
}
static void sub_81A7418(void)
static void SavePikeChallenge(void)
{
gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005;
VarSet(VAR_TEMP_0, 0);
@@ -731,19 +731,19 @@ static void GetRoomInflictedStatus(void)
switch (sStatusFlags)
{
case STATUS1_FREEZE:
gSpecialVar_Result = 0;
gSpecialVar_Result = PIKE_STATUS_FREEZE;
break;
case STATUS1_BURN:
gSpecialVar_Result = 1;
gSpecialVar_Result = PIKE_STATUS_BURN;
break;
case STATUS1_TOXIC_POISON:
gSpecialVar_Result = 2;
gSpecialVar_Result = PIKE_STATUS_TOXIC;
break;
case STATUS1_PARALYSIS:
gSpecialVar_Result = 3;
gSpecialVar_Result = PIKE_STATUS_PARALYSIS;
break;
case STATUS1_SLEEP:
gSpecialVar_Result = 4;
gSpecialVar_Result = PIKE_STATUS_SLEEP;
break;
}
}
@@ -774,9 +774,9 @@ static void BufferNPCMessage(void)
FrontierSpeechToString(sNPCSpeeches[speechId]);
}
static void StatusInflictionScreenFade(void)
static void StatusInflictionScreenFlash(void)
{
CreateTask(Task_DoStatusInflictionScreenFade, 2);
CreateTask(Task_DoStatusInflictionScreenFlash, 2);
}
static void HealMon(struct Pokemon *mon)
@@ -946,19 +946,19 @@ static bool8 TryInflictRandomStatus(void)
switch (sStatusFlags)
{
case STATUS1_FREEZE:
sStatusMon = PIKE_STATUS_DUSCLOPS;
sStatusMon = PIKE_STATUSMON_DUSCLOPS;
break;
case STATUS1_BURN:
if (Random() % 2 != 0)
sStatusMon = PIKE_STATUS_DUSCLOPS;
sStatusMon = PIKE_STATUSMON_DUSCLOPS;
else
sStatusMon = PIKE_STATUS_KIRLIA;
sStatusMon = PIKE_STATUSMON_KIRLIA;
break;
case STATUS1_PARALYSIS:
case STATUS1_SLEEP:
case STATUS1_TOXIC_POISON:
default:
sStatusMon = PIKE_STATUS_KIRLIA;
sStatusMon = PIKE_STATUSMON_KIRLIA;
break;
}
@@ -1100,9 +1100,9 @@ static u16 GetNPCRoomGraphicsId(void)
}
// Unused
static u8 sub_81A7B84(void)
static u8 GetInWildMonRoom(void)
{
return sUnknown_0300128E;
return sInWildMonRoom;
}
bool32 TryGenerateBattlePikeWildMon(bool8 checkKeenEyeIntimidate)
@@ -1172,9 +1172,9 @@ u8 GetBattlePikeWildMonHeaderId(void)
return headerId;
}
static void DoStatusInflictionScreenFade(u8 taskId)
static void DoStatusInflictionScreenFlash(u8 taskId)
{
while (sStatusInflictionScreenFadeFuncs[gTasks[taskId].data[0]](&gTasks[taskId]));
while (sStatusInflictionScreenFlashFuncs[gTasks[taskId].data[0]](&gTasks[taskId]));
}
static bool8 StatusInflictionFadeOut(struct Task *task)
@@ -1211,7 +1211,7 @@ static bool8 StatusInflictionFadeIn(struct Task *task)
{
if (--task->data[3] == 0)
{
DestroyTask(FindTaskIdByFunc(DoStatusInflictionScreenFade));
DestroyTask(FindTaskIdByFunc(DoStatusInflictionScreenFlash));
}
else
{
@@ -1222,9 +1222,9 @@ static bool8 StatusInflictionFadeIn(struct Task *task)
return FALSE;
}
static void StartStatusInflictionScreenFade(s16 fadeOutDelay, s16 fadeInDelay, s16 numFades, s16 fadeOutSpeed, s16 fadeInSpped)
static void StartStatusInflictionScreenFlash(s16 fadeOutDelay, s16 fadeInDelay, s16 numFades, s16 fadeOutSpeed, s16 fadeInSpped)
{
u8 taskId = CreateTask(DoStatusInflictionScreenFade, 3);
u8 taskId = CreateTask(DoStatusInflictionScreenFlash, 3);
gTasks[taskId].data[1] = fadeOutDelay;
gTasks[taskId].data[2] = fadeInDelay;
@@ -1234,24 +1234,24 @@ static void StartStatusInflictionScreenFade(s16 fadeOutDelay, s16 fadeInDelay, s
gTasks[taskId].data[6] = fadeOutDelay;
}
static bool8 IsStatusInflictionScreenFadeTaskFinished(void)
static bool8 IsStatusInflictionScreenFlashTaskFinished(void)
{
if (FindTaskIdByFunc(DoStatusInflictionScreenFade) == 0xFF)
if (FindTaskIdByFunc(DoStatusInflictionScreenFlash) == 0xFF)
return TRUE;
else
return FALSE;
}
static void Task_DoStatusInflictionScreenFade(u8 taskId)
static void Task_DoStatusInflictionScreenFlash(u8 taskId)
{
if (gTasks[taskId].data[0] == 0)
{
gTasks[taskId].data[0]++;
StartStatusInflictionScreenFade(0, 0, 3, 2, 2);
StartStatusInflictionScreenFlash(0, 0, 3, 2, 2);
}
else
{
if (IsStatusInflictionScreenFadeTaskFinished())
if (IsStatusInflictionScreenFlashTaskFinished())
{
EnableBothScriptContexts();
DestroyTask(taskId);
@@ -1335,10 +1335,10 @@ static void SetHintedRoom(void)
u8 i, count, id;
u8 *roomCandidates;
gSpecialVar_Result = 0;
gSpecialVar_Result = FALSE;
if (GetPikeQueenFightType(1))
{
gSpecialVar_Result = 1;
gSpecialVar_Result = TRUE;
gSaveBlock2Ptr->frontier.pikeHintedRoomIndex = Random() % 6;
gSaveBlock2Ptr->frontier.pikeHintedRoomType = PIKE_ROOM_BRAIN;
}
@@ -1462,7 +1462,7 @@ static void ClearPikeTrainerIds(void)
gSaveBlock2Ptr->frontier.trainerIds[i] = 0xFFFF;
}
static void BufferRecordMixingTrainerMessage(void)
static void BufferTrainerIntro(void)
{
if (gSpecialVar_0x8005 == 0)
{
@@ -1500,7 +1500,7 @@ static u8 GetPikeQueenFightType(u8 nextRoom)
u8 numPikeSymbols;
u8 facility = FRONTIER_FACILITY_PIKE;
u8 ret = 0;
u8 ret = FRONTIER_BRAIN_NOT_READY;
u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u16 winStreak = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode];
winStreak += nextRoom;
@@ -1511,16 +1511,16 @@ static u8 GetPikeQueenFightType(u8 nextRoom)
case 0:
case 1:
if (winStreak == sFrontierBrainStreakAppearances[facility][numPikeSymbols] - sFrontierBrainStreakAppearances[facility][3])
ret = numPikeSymbols + 1;
ret = numPikeSymbols + 1; // FRONTIER_BRAIN_SILVER and FRONTIER_BRAIN_GOLD
break;
case 2:
default:
if (winStreak == sFrontierBrainStreakAppearances[facility][0] - sFrontierBrainStreakAppearances[facility][3])
ret = 3;
ret = FRONTIER_BRAIN_STREAK;
else if (winStreak == sFrontierBrainStreakAppearances[facility][1] - sFrontierBrainStreakAppearances[facility][3]
|| (winStreak > sFrontierBrainStreakAppearances[facility][1]
&& (winStreak - sFrontierBrainStreakAppearances[facility][1] + sFrontierBrainStreakAppearances[facility][3]) % sFrontierBrainStreakAppearances[facility][2] == 0))
ret = 4;
ret = FRONTIER_BRAIN_STREAK_LONG;
break;
}
@@ -1584,7 +1584,7 @@ static void IsPartyFullHealed(void)
}
}
static void BackupMonHeldItems(void)
static void SaveMonHeldItems(void)
{
u8 i;
+45 -44
View File
@@ -71,9 +71,9 @@ struct PyramidTrainerEncounterMusic
static void InitPyramidChallenge(void);
static void GetBattlePyramidData(void);
static void SetBattlePyramidData(void);
static void sub_81A9134(void);
static void SetBattlePyramidRewardItem(void);
static void GiveBattlePyramidRewardItem(void);
static void SavePyramidChallenge(void);
static void SetBattlePyramidPrize(void);
static void GiveBattlePyramidPrize(void);
static void SeedPyramidFloor(void);
static void SetPickupItem(void);
static void HidePyramidItem(void);
@@ -787,24 +787,24 @@ static const u8 sHintTextTypes[] =
static void (* const sBattlePyramidFunctions[])(void) =
{
InitPyramidChallenge,
GetBattlePyramidData,
SetBattlePyramidData,
sub_81A9134,
SetBattlePyramidRewardItem,
GiveBattlePyramidRewardItem,
SeedPyramidFloor,
SetPickupItem,
HidePyramidItem,
InitPyramidFacilityTrainers,
ShowPostBattleHintText,
UpdatePyramidWinStreak,
GetInBattlePyramid,
UpdatePyramidLightRadius,
ClearPyramidPartyHeldItems,
SetPyramidFloorPalette,
sub_81A9828,
RestorePyramidPlayerParty,
[BATTLE_PYRAMID_FUNC_INIT] = InitPyramidChallenge,
[BATTLE_PYRAMID_FUNC_GET_DATA] = GetBattlePyramidData,
[BATTLE_PYRAMID_FUNC_SET_DATA] = SetBattlePyramidData,
[BATTLE_PYRAMID_FUNC_SAVE] = SavePyramidChallenge,
[BATTLE_PYRAMID_FUNC_SET_PRIZE] = SetBattlePyramidPrize,
[BATTLE_PYRAMID_FUNC_GIVE_PRIZE] = GiveBattlePyramidPrize,
[BATTLE_PYRAMID_FUNC_SEED_FLOOR] = SeedPyramidFloor,
[BATTLE_PYRAMID_FUNC_SET_ITEM] = SetPickupItem,
[BATTLE_PYRAMID_FUNC_HIDE_ITEM] = HidePyramidItem,
[BATTLE_PYRAMID_FUNC_INIT_TRAINERS] = InitPyramidFacilityTrainers,
[BATTLE_PYRAMID_FUNC_SHOW_HINT_TEXT] = ShowPostBattleHintText,
[BATTLE_PYRAMID_FUNC_UPDATE_STREAK] = UpdatePyramidWinStreak,
[BATTLE_PYRAMID_FUNC_IS_IN] = GetInBattlePyramid,
[BATTLE_PYRAMID_FUNC_UPDATE_LIGHT] = UpdatePyramidLightRadius,
[BATTLE_PYRAMID_FUNC_CLEAR_HELD_ITEMS] = ClearPyramidPartyHeldItems,
[BATTLE_PYRAMID_FUNC_SET_FLOOR_PALETTE] = SetPyramidFloorPalette,
[BATTLE_PYRAMID_FUNC_16] = sub_81A9828,
[BATTLE_PYRAMID_FUNC_RESTORE_PARTY] = RestorePyramidPlayerParty,
};
static const u16 sShortStreakRewardItems[] = {ITEM_HP_UP, ITEM_PROTEIN, ITEM_IRON, ITEM_CALCIUM, ITEM_CARBOS, ITEM_ZINC};
@@ -868,28 +868,28 @@ static void GetBattlePyramidData(void)
switch (gSpecialVar_0x8005)
{
case 0:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.pyramidRewardItem;
case PYRAMID_DATA_PRIZE:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.pyramidPrize;
break;
case 1:
case PYRAMID_DATA_WIN_STREAK:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode];
break;
case 2:
case PYRAMID_DATA_WIN_STREAK_ACTIVE:
if (lvlMode != FRONTIER_LVL_50)
gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PYRAMID_OPEN;
else
gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PYRAMID_50;
break;
case 3:
case PYRAMID_DATA_WIN_STREAK_50:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.pyramidWinStreaks[FRONTIER_LVL_50];
break;
case 4:
case PYRAMID_DATA_WIN_STREAK_OPEN:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.pyramidWinStreaks[FRONTIER_LVL_OPEN];
break;
case 5:
case PYRAMID_DATA_WIN_STREAK_ACTIVE_50:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PYRAMID_50;
break;
case 6:
case PYRAMID_DATA_WIN_STREAK_ACTIVE_OPEN:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PYRAMID_OPEN;
break;
}
@@ -901,13 +901,13 @@ static void SetBattlePyramidData(void)
switch (gSpecialVar_0x8005)
{
case 0:
gSaveBlock2Ptr->frontier.pyramidRewardItem = gSpecialVar_0x8006;
case PYRAMID_DATA_PRIZE:
gSaveBlock2Ptr->frontier.pyramidPrize = gSpecialVar_0x8006;
break;
case 1:
case PYRAMID_DATA_WIN_STREAK:
gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] = gSpecialVar_0x8006;
break;
case 2:
case PYRAMID_DATA_WIN_STREAK_ACTIVE:
if (lvlMode != FRONTIER_LVL_50)
{
if (gSpecialVar_0x8006)
@@ -923,13 +923,13 @@ static void SetBattlePyramidData(void)
gSaveBlock2Ptr->frontier.winStreakActiveFlags &= ~(STREAK_PYRAMID_50);
}
break;
case 7:
case PYRAMID_DATA_TRAINER_FLAGS:
gSaveBlock2Ptr->frontier.pyramidTrainerFlags = gSpecialVar_0x8006;
break;
}
}
static void sub_81A9134(void)
static void SavePyramidChallenge(void)
{
gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005;
VarSet(VAR_TEMP_0, 0);
@@ -938,22 +938,22 @@ static void sub_81A9134(void)
TrySavingData(SAVE_LINK);
}
static void SetBattlePyramidRewardItem(void)
static void SetBattlePyramidPrize(void)
{
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] > 41)
gSaveBlock2Ptr->frontier.pyramidRewardItem = sLongStreakRewardItems[Random() % ARRAY_COUNT(sLongStreakRewardItems)];
gSaveBlock2Ptr->frontier.pyramidPrize = sLongStreakRewardItems[Random() % ARRAY_COUNT(sLongStreakRewardItems)];
else
gSaveBlock2Ptr->frontier.pyramidRewardItem = sShortStreakRewardItems[Random() % ARRAY_COUNT(sShortStreakRewardItems)];
gSaveBlock2Ptr->frontier.pyramidPrize = sShortStreakRewardItems[Random() % ARRAY_COUNT(sShortStreakRewardItems)];
}
static void GiveBattlePyramidRewardItem(void)
static void GiveBattlePyramidPrize(void)
{
if (AddBagItem(gSaveBlock2Ptr->frontier.pyramidRewardItem, 1) == TRUE)
if (AddBagItem(gSaveBlock2Ptr->frontier.pyramidPrize, 1) == TRUE)
{
CopyItemName(gSaveBlock2Ptr->frontier.pyramidRewardItem, gStringVar1);
gSaveBlock2Ptr->frontier.pyramidRewardItem = 0;
CopyItemName(gSaveBlock2Ptr->frontier.pyramidPrize, gStringVar1);
gSaveBlock2Ptr->frontier.pyramidPrize = 0;
gSpecialVar_Result = TRUE;
}
else
@@ -1004,6 +1004,7 @@ static void SetPickupItem(void)
else
gSpecialVar_0x8000 = sPickupItemsLvl50[round][sPickupItemSlots[i][1]];
// Quantity of item to give
gSpecialVar_0x8001 = 1;
}
@@ -1122,10 +1123,10 @@ static void UpdatePyramidLightRadius(void)
{
switch (gSpecialVar_0x8006)
{
case 0:
case PYRAMID_LIGHT_SET_RADIUS:
gSaveBlock2Ptr->frontier.pyramidLightRadius = gSpecialVar_0x8005;
break;
case 1:
case PYRAMID_LIGHT_INCR_RADIUS:
switch (gSpecialVar_Result)
{
case 0:
+4 -4
View File
@@ -278,10 +278,10 @@ static const struct WindowTemplate gUnknown_0861F350[] =
static const struct OamData gOamData_861F378 =
{
.y = 0,
.affineMode = 1,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_NORMAL,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
@@ -589,7 +589,7 @@ static void PyramidBag_CopyItemName(u8 *dst, u16 itemId)
{
ConvertIntToDecimalStringN(gStringVar1, ITEM_TO_BERRY(itemId), STR_CONV_MODE_LEADING_ZEROS, 2);
CopyItemName(itemId, gStringVar2);
StringExpandPlaceholders(dst, gText_UnkF908Var1Clear7Var2);
StringExpandPlaceholders(dst, gText_NumberVar1Clear7Var2);
}
else
{
+5 -5
View File
@@ -730,10 +730,10 @@ static const u8 sRubyLevelUpStatBoxStats[] =
static const struct OamData sOamData_MonIconOnLvlUpBox =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x32),
.x = 0,
.matrixNum = 0,
@@ -6278,7 +6278,7 @@ static void DrawLevelUpWindow1(void)
u16 currStats[NUM_STATS];
GetMonLevelUpWindowStats(&gPlayerParty[gBattleStruct->expGetterMonId], currStats);
DrawLevelUpWindowPg1(0xD, gBattleResources->beforeLvlUp->stats, currStats, 0xE, 0xD, 0xF);
DrawLevelUpWindowPg1(0xD, gBattleResources->beforeLvlUp->stats, currStats, TEXT_DYNAMIC_COLOR_5, TEXT_DYNAMIC_COLOR_4, TEXT_DYNAMIC_COLOR_6);
}
static void DrawLevelUpWindow2(void)
@@ -6286,7 +6286,7 @@ static void DrawLevelUpWindow2(void)
u16 currStats[NUM_STATS];
GetMonLevelUpWindowStats(&gPlayerParty[gBattleStruct->expGetterMonId], currStats);
DrawLevelUpWindowPg2(0xD, currStats, 0xE, 0xD, 0xF);
DrawLevelUpWindowPg2(0xD, currStats, TEXT_DYNAMIC_COLOR_5, TEXT_DYNAMIC_COLOR_4, TEXT_DYNAMIC_COLOR_6);
}
static void sub_804F17C(void)
+109 -97
View File
@@ -11,37 +11,49 @@
#include "battle_factory_screen.h"
#include "frontier_util.h"
#include "string_util.h"
#include "constants/battle_tent.h"
#include "constants/items.h"
#include "constants/layouts.h"
#include "constants/region_map_sections.h"
#include "constants/species.h"
#include "constants/trainers.h"
// This file's functions.
static void sub_81B99D4(void);
static void sub_81B9A28(void);
static void sub_81B9A44(void);
static void sub_81B9A60(void);
static void sub_81B9A90(void);
static void sub_81B9ABC(void);
static void sub_81B9B00(void);
static void sub_81B9B28(void);
static void sub_81B9BA0(void);
static void sub_81B9BF4(void);
static void sub_81B9C10(void);
static void sub_81B9C2C(void);
static void sub_81B9C70(void);
static void sub_81B9C98(void);
static void sub_81B9CF0(void);
static void sub_81B9D28(void);
static void sub_81B9D7C(void);
static void sub_81B9D98(void);
static void sub_81B9DB4(void);
static void sub_81B9DF8(void);
static void sub_81B9E20(void);
static void sub_81B9E78(void);
static void sub_81B9E88(void);
static void sub_81BA040(void);
static void sub_81B9EC0(void);
static void InitVerdanturfTentChallenge(void);
static void GetVerdanturfTentPrize(void);
static void SetVerdanturfTentPrize(void);
static void SetVerdanturfTentTrainerGfx(void);
static void BufferVerdanturfTentTrainerIntro(void);
static void SaveVerdanturfTentChallenge(void);
static void SetRandomVerdanturfTentPrize(void);
static void GiveVerdanturfTentPrize(void);
static void InitFallarborTentChallenge(void);
static void GetFallarborTentPrize(void);
static void SetFallarborTentPrize(void);
static void SaveFallarborTentChallenge(void);
static void SetRandomFallarborTentPrize(void);
static void GiveFallarborTentPrize(void);
static void BufferFallarborTentTrainerName(void);
static void InitSlateportTentChallenge(void);
static void GetSlateportTentPrize(void);
static void SetSlateportTentPrize(void);
static void SaveSlateportTentChallenge(void);
static void SetRandomSlateportTentPrize(void);
static void GiveSlateportTentPrize(void);
static void SelectInitialRentalMons(void);
static void SwapRentalMons(void);
static void GenerateOpponentMons(void);
static void GenerateInitialRentalMons(void);
/*
* Battle Tents are mini versions of particular Battle Frontier facilities
* As such they each share some scripts and functions with their counterpart
*
* Verdanturf Battle Tent: Battle Palace
* Fallarbor Battle Tent: Battle Arena
* Slateport Battle Tent: Battle Factory
*
*/
// IWRAM bss
static u16 sRandMonSetId;
@@ -49,43 +61,43 @@ static u16 sRandMonSetId;
// const rom data
void static (*const sVerdanturfTentFuncs[])(void) =
{
sub_81B99D4,
sub_81B9A28,
sub_81B9A44,
sub_81B9A60,
sub_81B9A90,
sub_81B9ABC,
sub_81B9B00,
sub_81B9B28
[VERDANTURF_TENT_FUNC_INIT] = InitVerdanturfTentChallenge,
[VERDANTURF_TENT_FUNC_GET_PRIZE] = GetVerdanturfTentPrize,
[VERDANTURF_TENT_FUNC_SET_PRIZE] = SetVerdanturfTentPrize,
[VERDANTURF_TENT_FUNC_SET_OPPONENT_GFX] = SetVerdanturfTentTrainerGfx,
[VERDANTURF_TENT_FUNC_GET_OPPONENT_INTRO] = BufferVerdanturfTentTrainerIntro,
[VERDANTURF_TENT_FUNC_SAVE] = SaveVerdanturfTentChallenge,
[VERDANTURF_TENT_FUNC_SET_RANDOM_PRIZE] = SetRandomVerdanturfTentPrize,
[VERDANTURF_TENT_FUNC_GIVE_PRIZE] = GiveVerdanturfTentPrize
};
static const u16 sVerdanturfTentRewards[] = {ITEM_NEST_BALL};
void static (*const sFallarborTentFuncs[])(void) =
{
sub_81B9BA0,
sub_81B9BF4,
sub_81B9C10,
sub_81B9C2C,
sub_81B9C70,
sub_81B9C98,
sub_81B9CF0
[FALLARBOR_TENT_FUNC_INIT] = InitFallarborTentChallenge,
[FALLARBOR_TENT_FUNC_GET_PRIZE] = GetFallarborTentPrize,
[FALLARBOR_TENT_FUNC_SET_PRIZE] = SetFallarborTentPrize,
[FALLARBOR_TENT_FUNC_SAVE] = SaveFallarborTentChallenge,
[FALLARBOR_TENT_FUNC_SET_RANDOM_PRIZE] = SetRandomFallarborTentPrize,
[FALLARBOR_TENT_FUNC_GIVE_PRIZE] = GiveFallarborTentPrize,
[FALLARBOR_TENT_FUNC_GET_OPPONENT_NAME] = BufferFallarborTentTrainerName
};
static const u16 sFallarborTentRewards[] = {ITEM_HYPER_POTION};
void static (*const sSlateportTentFuncs[])(void) =
{
sub_81B9D28,
sub_81B9D7C,
sub_81B9D98,
sub_81B9DB4,
sub_81B9DF8,
sub_81B9E20,
sub_81B9E78,
sub_81B9E88,
sub_81BA040,
sub_81B9EC0
[SLATEPORT_TENT_FUNC_INIT] = InitSlateportTentChallenge,
[SLATEPORT_TENT_FUNC_GET_PRIZE] = GetSlateportTentPrize,
[SLATEPORT_TENT_FUNC_SET_PRIZE] = SetSlateportTentPrize,
[SLATEPORT_TENT_FUNC_SAVE] = SaveSlateportTentChallenge,
[SLATEPORT_TENT_FUNC_SET_RANDOM_PRIZE] = SetRandomSlateportTentPrize,
[SLATEPORT_TENT_FUNC_GIVE_PRIZE] = GiveSlateportTentPrize,
[SLATEPORT_TENT_FUNC_SELECT_RENT_MONS] = SelectInitialRentalMons,
[SLATEPORT_TENT_FUNC_SWAP_RENT_MONS] = SwapRentalMons,
[SLATEPORT_TENT_FUNC_GENERATE_OPPONENT_MONS] = GenerateOpponentMons,
[SLATEPORT_TENT_FUNC_GENERATE_RENTAL_MONS] = GenerateInitialRentalMons
};
static const u16 sSlateportTentRewards[] = {ITEM_FULL_HEAL};
@@ -96,7 +108,7 @@ void CallVerdanturfTentFunction(void)
sVerdanturfTentFuncs[gSpecialVar_0x8004]();
}
static void sub_81B99D4(void)
static void InitVerdanturfTentChallenge(void)
{
gSaveBlock2Ptr->frontier.challengeStatus = 0;
gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0;
@@ -104,29 +116,29 @@ static void sub_81B99D4(void)
SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1);
}
static void sub_81B9A28(void)
static void GetVerdanturfTentPrize(void)
{
gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_E6A;
gSpecialVar_Result = gSaveBlock2Ptr->frontier.verdanturfTentPrize;
}
static void sub_81B9A44(void)
static void SetVerdanturfTentPrize(void)
{
gSaveBlock2Ptr->frontier.field_E6A = gSpecialVar_0x8006;
gSaveBlock2Ptr->frontier.verdanturfTentPrize = gSpecialVar_0x8006;
}
static void sub_81B9A60(void)
static void SetVerdanturfTentTrainerGfx(void)
{
gTrainerBattleOpponent_A = (u32)((Random() % 255) * 5) / 64;
SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0);
}
static void sub_81B9A90(void)
static void BufferVerdanturfTentTrainerIntro(void)
{
if (gTrainerBattleOpponent_A < 300)
if (gTrainerBattleOpponent_A < TRAINER_RECORD_MIXING_FRIEND)
FrontierSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_A].speechBefore);
}
static void sub_81B9ABC(void)
static void SaveVerdanturfTentChallenge(void)
{
gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005;
VarSet(VAR_TEMP_0, 0);
@@ -134,17 +146,17 @@ static void sub_81B9ABC(void)
SaveGameFrontier();
}
static void sub_81B9B00(void)
static void SetRandomVerdanturfTentPrize(void)
{
gSaveBlock2Ptr->frontier.field_E6A = sVerdanturfTentRewards[Random() % ARRAY_COUNT(sVerdanturfTentRewards)];
gSaveBlock2Ptr->frontier.verdanturfTentPrize = sVerdanturfTentRewards[Random() % ARRAY_COUNT(sVerdanturfTentRewards)];
}
static void sub_81B9B28(void)
static void GiveVerdanturfTentPrize(void)
{
if (AddBagItem(gSaveBlock2Ptr->frontier.field_E6A, 1) == TRUE)
if (AddBagItem(gSaveBlock2Ptr->frontier.verdanturfTentPrize, 1) == TRUE)
{
CopyItemName(gSaveBlock2Ptr->frontier.field_E6A, gStringVar1);
gSaveBlock2Ptr->frontier.field_E6A = ITEM_NONE;
CopyItemName(gSaveBlock2Ptr->frontier.verdanturfTentPrize, gStringVar1);
gSaveBlock2Ptr->frontier.verdanturfTentPrize = ITEM_NONE;
gSpecialVar_Result = TRUE;
}
else
@@ -158,7 +170,7 @@ void CallFallarborTentFunction(void)
sFallarborTentFuncs[gSpecialVar_0x8004]();
}
static void sub_81B9BA0(void)
static void InitFallarborTentChallenge(void)
{
gSaveBlock2Ptr->frontier.challengeStatus = 0;
gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0;
@@ -166,17 +178,17 @@ static void sub_81B9BA0(void)
SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1);
}
static void sub_81B9BF4(void)
static void GetFallarborTentPrize(void)
{
gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_E6C;
gSpecialVar_Result = gSaveBlock2Ptr->frontier.fallarborTentPrize;
}
static void sub_81B9C10(void)
static void SetFallarborTentPrize(void)
{
gSaveBlock2Ptr->frontier.field_E6C = gSpecialVar_0x8006;
gSaveBlock2Ptr->frontier.fallarborTentPrize = gSpecialVar_0x8006;
}
static void sub_81B9C2C(void)
static void SaveFallarborTentChallenge(void)
{
gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005;
VarSet(VAR_TEMP_0, 0);
@@ -184,17 +196,17 @@ static void sub_81B9C2C(void)
SaveGameFrontier();
}
static void sub_81B9C70(void)
static void SetRandomFallarborTentPrize(void)
{
gSaveBlock2Ptr->frontier.field_E6C = sFallarborTentRewards[Random() % ARRAY_COUNT(sFallarborTentRewards)];
gSaveBlock2Ptr->frontier.fallarborTentPrize = sFallarborTentRewards[Random() % ARRAY_COUNT(sFallarborTentRewards)];
}
static void sub_81B9C98(void)
static void GiveFallarborTentPrize(void)
{
if (AddBagItem(gSaveBlock2Ptr->frontier.field_E6C, 1) == TRUE)
if (AddBagItem(gSaveBlock2Ptr->frontier.fallarborTentPrize, 1) == TRUE)
{
CopyItemName(gSaveBlock2Ptr->frontier.field_E6C, gStringVar1);
gSaveBlock2Ptr->frontier.field_E6C = ITEM_NONE;
CopyItemName(gSaveBlock2Ptr->frontier.fallarborTentPrize, gStringVar1);
gSaveBlock2Ptr->frontier.fallarborTentPrize = ITEM_NONE;
gSpecialVar_Result = TRUE;
}
else
@@ -203,7 +215,7 @@ static void sub_81B9C98(void)
}
}
static void sub_81B9CF0(void)
static void BufferFallarborTentTrainerName(void)
{
GetFrontierTrainerName(gStringVar1, gTrainerBattleOpponent_A);
}
@@ -213,7 +225,7 @@ void CallSlateportTentFunction(void)
sSlateportTentFuncs[gSpecialVar_0x8004]();
}
static void sub_81B9D28(void)
static void InitSlateportTentChallenge(void)
{
gSaveBlock2Ptr->frontier.challengeStatus = 0;
gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0;
@@ -221,17 +233,17 @@ static void sub_81B9D28(void)
SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1);
}
static void sub_81B9D7C(void)
static void GetSlateportTentPrize(void)
{
gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_E6E;
gSpecialVar_Result = gSaveBlock2Ptr->frontier.slateportTentPrize;
}
static void sub_81B9D98(void)
static void SetSlateportTentPrize(void)
{
gSaveBlock2Ptr->frontier.field_E6E = gSpecialVar_0x8006;
gSaveBlock2Ptr->frontier.slateportTentPrize = gSpecialVar_0x8006;
}
static void sub_81B9DB4(void)
static void SaveSlateportTentChallenge(void)
{
gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005;
VarSet(VAR_TEMP_0, 0);
@@ -239,17 +251,17 @@ static void sub_81B9DB4(void)
SaveGameFrontier();
}
static void sub_81B9DF8(void)
static void SetRandomSlateportTentPrize(void)
{
gSaveBlock2Ptr->frontier.field_E6E = sSlateportTentRewards[Random() % ARRAY_COUNT(sSlateportTentRewards)];
gSaveBlock2Ptr->frontier.slateportTentPrize = sSlateportTentRewards[Random() % ARRAY_COUNT(sSlateportTentRewards)];
}
static void sub_81B9E20(void)
static void GiveSlateportTentPrize(void)
{
if (AddBagItem(gSaveBlock2Ptr->frontier.field_E6E, 1) == TRUE)
if (AddBagItem(gSaveBlock2Ptr->frontier.slateportTentPrize, 1) == TRUE)
{
CopyItemName(gSaveBlock2Ptr->frontier.field_E6E, gStringVar1);
gSaveBlock2Ptr->frontier.field_E6E = ITEM_NONE;
CopyItemName(gSaveBlock2Ptr->frontier.slateportTentPrize, gStringVar1);
gSaveBlock2Ptr->frontier.slateportTentPrize = ITEM_NONE;
gSpecialVar_Result = TRUE;
}
else
@@ -258,13 +270,13 @@ static void sub_81B9E20(void)
}
}
static void sub_81B9E78(void)
static void SelectInitialRentalMons(void)
{
ZeroPlayerPartyMons();
DoBattleFactorySelectScreen();
}
static void sub_81B9E88(void)
static void SwapRentalMons(void)
{
DoBattleFactorySwapScreen();
}
@@ -275,7 +287,7 @@ bool8 InSlateportBattleTent(void)
&& (gMapHeader.mapLayoutId == LAYOUT_BATTLE_TENT_CORRIDOR || gMapHeader.mapLayoutId == LAYOUT_BATTLE_TENT_BATTLE_ROOM);
}
static void sub_81B9EC0(void)
static void GenerateInitialRentalMons(void)
{
s32 i, j;
u8 firstMonId;
@@ -337,13 +349,13 @@ static void sub_81B9EC0(void)
}
}
static void sub_81BA040(void)
static void GenerateOpponentMons(void)
{
u16 trainerId;
s32 i, j, k;
register const u16 *monSets asm("r9"); // Fix me. Compiler insists on moving that variable into stack.
u16 species[3];
u16 heldItems[3];
u16 species[FRONTIER_PARTY_SIZE];
u16 heldItems[FRONTIER_PARTY_SIZE];
s32 setsCount = 0;
gFacilityTrainers = gSlateportBattleTentTrainers;
@@ -374,7 +386,7 @@ static void sub_81BA040(void)
monSets = gFacilityTrainers[gTrainerBattleOpponent_A].monSets;
i = 0;
while (i != 3)
while (i != FRONTIER_PARTY_SIZE)
{
sRandMonSetId = monSets[Random() % setsCount];
for (j = 0; j < 6; j++)
+37 -37
View File
@@ -42,17 +42,17 @@ EWRAM_DATA const struct BattleFrontierTrainer *gFacilityTrainers = NULL;
EWRAM_DATA const struct FacilityMon *gFacilityTrainerMons = NULL;
// IWRAM common
u16 gUnknown_03006298[4];
u16 gUnknown_03006298[MAX_FRONTIER_PARTY_SIZE];
// This file's functions.
static void sub_8161F94(void);
static void sub_8162054(void);
static void sub_81620F4(void);
static void ChooseNextBattleTowerTrainer(void);
static void sub_81621C0(void);
static void InitTowerChallenge(void);
static void GetTowerData(void);
static void SetTowerData(void);
static void SetNextFacilityOpponent(void);
static void SetTowerBattleWon(void);
static void AwardBattleTowerRibbons(void);
static void SaveBattleTowerProgress(void);
static void sub_8163914(void);
static void SaveTowerChallenge(void);
static void GetOpponentIntroSpeech(void);
static void nullsub_61(void);
static void nullsub_116(void);
static void sub_81642A0(void);
@@ -60,11 +60,11 @@ static void sub_8164828(void);
static void sub_8164B74(void);
static void sub_8164DCC(void);
static void sub_8164DE4(void);
static void sub_8164E04(void);
static void SetTowerInterviewData(void);
static void ValidateBattleTowerRecordChecksums(void);
static void SaveCurrentWinStreak(void);
static void ValidateApprenticesChecksums(void);
static void sub_8165E18(void);
static void SetNextBattleTentOpponent(void);
static void CopyEReaderTrainerFarewellMessage(void);
static void ClearBattleTowerRecord(struct EmeraldBattleTowerRecord *record);
static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount);
@@ -1056,14 +1056,14 @@ struct
static void (* const sBattleTowerFuncs[])(void) =
{
[BATTLE_TOWER_FUNC_0] = sub_8161F94,
[BATTLE_TOWER_FUNC_1] = sub_8162054,
[BATTLE_TOWER_FUNC_2] = sub_81620F4,
[BATTLE_TOWER_FUNC_CHOOSE_TRAINER] = ChooseNextBattleTowerTrainer,
[BATTLE_TOWER_FUNC_4] = sub_81621C0,
[BATTLE_TOWER_FUNC_INIT] = InitTowerChallenge,
[BATTLE_TOWER_FUNC_GET_DATA] = GetTowerData,
[BATTLE_TOWER_FUNC_SET_DATA] = SetTowerData,
[BATTLE_TOWER_FUNC_SET_OPPONENT] = SetNextFacilityOpponent,
[BATTLE_TOWER_FUNC_SET_BATTLE_WON] = SetTowerBattleWon,
[BATTLE_TOWER_FUNC_GIVE_RIBBONS] = AwardBattleTowerRibbons,
[BATTLE_TOWER_FUNC_SAVE] = SaveBattleTowerProgress,
[BATTLE_TOWER_FUNC_7] = sub_8163914,
[BATTLE_TOWER_FUNC_SAVE] = SaveTowerChallenge,
[BATTLE_TOWER_FUNC_GET_OPPONENT_INTRO] = GetOpponentIntroSpeech,
[BATTLE_TOWER_FUNC_NOP] = nullsub_61,
[BATTLE_TOWER_FUNC_NOP2] = nullsub_116,
[BATTLE_TOWER_FUNC_10] = sub_81642A0,
@@ -1071,7 +1071,7 @@ static void (* const sBattleTowerFuncs[])(void) =
[BATTLE_TOWER_FUNC_12] = sub_8164B74,
[BATTLE_TOWER_FUNC_13] = sub_8164DCC,
[BATTLE_TOWER_FUNC_14] = sub_8164DE4,
[BATTLE_TOWER_FUNC_15] = sub_8164E04,
[BATTLE_TOWER_FUNC_SET_INTERVIEW_DATA] = SetTowerInterviewData,
};
static const u32 sWinStreakFlags[][2] =
@@ -1154,7 +1154,7 @@ void CallBattleTowerFunc(void)
sBattleTowerFuncs[gSpecialVar_0x8004]();
}
static void sub_8161F94(void)
static void InitTowerChallenge(void)
{
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
@@ -1172,7 +1172,7 @@ static void sub_8161F94(void)
gTrainerBattleOpponent_A = 0;
}
static void sub_8162054(void)
static void GetTowerData(void)
{
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
@@ -1181,19 +1181,19 @@ static void sub_8162054(void)
{
case 0:
break;
case 1:
case TOWER_DATA_WIN_STREAK:
gSpecialVar_Result = GetCurrentBattleTowerWinStreak(lvlMode, battleMode);
break;
case 2:
case TOWER_DATA_WIN_STREAK_ACTIVE:
gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]) != 0);
break;
case 3:
case TOWER_DATA_LVL_MODE:
gSaveBlock2Ptr->frontier.towerLvlMode = gSaveBlock2Ptr->frontier.lvlMode;
break;
}
}
static void sub_81620F4(void)
static void SetTowerData(void)
{
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
@@ -1202,27 +1202,27 @@ static void sub_81620F4(void)
{
case 0:
break;
case 1:
case TOWER_DATA_WIN_STREAK:
gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] = gSpecialVar_0x8006;
break;
case 2:
case TOWER_DATA_WIN_STREAK_ACTIVE:
if (gSpecialVar_0x8006)
gSaveBlock2Ptr->frontier.winStreakActiveFlags |= sWinStreakFlags[battleMode][lvlMode];
else
gSaveBlock2Ptr->frontier.winStreakActiveFlags &= sWinStreakMasks[battleMode][lvlMode];
break;
case 3:
case TOWER_DATA_LVL_MODE:
gSaveBlock2Ptr->frontier.towerLvlMode = gSaveBlock2Ptr->frontier.lvlMode;
break;
}
}
static void sub_81621C0(void)
static void SetTowerBattleWon(void)
{
if (gTrainerBattleOpponent_A == TRAINER_EREADER)
ClearEReaderTrainer(&gSaveBlock2Ptr->frontier.ereaderTrainer);
// below field is never read outside this conditional
// towerNumWins is never read outside this conditional
if (gSaveBlock2Ptr->frontier.towerNumWins < MAX_STREAK)
gSaveBlock2Ptr->frontier.towerNumWins++;
@@ -1299,12 +1299,12 @@ static bool8 ChooseSpecialBattleTowerTrainer(void)
}
}
static void ChooseNextBattleTowerTrainer(void)
static void SetNextFacilityOpponent(void)
{
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
if (lvlMode == FRONTIER_LVL_TENT)
{
sub_8165E18();
SetNextBattleTentOpponent();
}
else
{
@@ -2096,7 +2096,7 @@ static void FillFactoryFrontierTrainerParty(u16 trainerId, u8 firstMonId)
level = SetFacilityPtrsGetLevel();
otID = T1_READ_32(gSaveBlock2Ptr->playerTrainerId);
for (i = 0; i < 3; i++)
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
u16 monSetId = gUnknown_03006298[i];
CreateMonWithEVSpreadNatureOTID(&gEnemyParty[firstMonId + i],
@@ -2124,7 +2124,7 @@ static void FillFactoryTentTrainerParty(u16 trainerId, u8 firstMonId)
u8 fixedIV = 0;
u32 otID = T1_READ_32(gSaveBlock2Ptr->playerTrainerId);
for (i = 0; i < 3; i++)
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
u16 monSetId = gUnknown_03006298[i];
CreateMonWithEVSpreadNatureOTID(&gEnemyParty[firstMonId + i],
@@ -2165,7 +2165,7 @@ void FrontierSpeechToString(const u16 *words)
}
}
static void sub_8163914(void)
static void GetOpponentIntroSpeech(void)
{
u16 trainerId;
SetFacilityPtrsGetLevel();
@@ -2423,7 +2423,7 @@ static void sub_8163EE4(void)
SaveCurrentWinStreak();
}
static void SaveBattleTowerProgress(void)
static void SaveTowerChallenge(void)
{
u16 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u16 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
@@ -2889,7 +2889,7 @@ static void sub_8164DE4(void)
SetBattleFacilityTrainerGfxId(gSaveBlock2Ptr->frontier.trainerIds[17], 0xF);
}
static void sub_8164E04(void)
static void SetTowerInterviewData(void)
{
s32 i;
u8 text[32];
@@ -3562,7 +3562,7 @@ static u8 SetTentPtrsGetLevel(void)
return level;
}
static void sub_8165E18(void)
static void SetNextBattleTentOpponent(void)
{
s32 i;
u16 trainerId;
+12 -12
View File
@@ -760,10 +760,10 @@ static const struct SpriteTemplate gUnknown_085C8E68 =
static const struct OamData gOamData_85C8E80 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
@@ -1672,7 +1672,7 @@ bool8 FldEff_Pokeball(void)
{
u8 spriteId = CreateSpriteAtEnd(&gUnknown_085C8E68, gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
gSprites[spriteId].oam.priority = 0;
gSprites[spriteId].oam.affineMode = 1;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].data[0] = gFieldEffectArguments[2];
gSprites[spriteId].data[1] = gFieldEffectArguments[3];
gSprites[spriteId].data[2] = -1;
@@ -2394,20 +2394,20 @@ static void Mugshots_CreateOpponentPlayerSprites(struct Task *task)
opponentSprite->callback = sub_8148380;
playerSprite->callback = sub_8148380;
opponentSprite->oam.affineMode = 3;
playerSprite->oam.affineMode = 3;
opponentSprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE;
playerSprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE;
opponentSprite->oam.matrixNum = AllocOamMatrix();
playerSprite->oam.matrixNum = AllocOamMatrix();
opponentSprite->oam.shape = 1;
playerSprite->oam.shape = 1;
opponentSprite->oam.shape = SPRITE_SHAPE(64x32);
playerSprite->oam.shape = SPRITE_SHAPE(64x32);
opponentSprite->oam.size = 3;
playerSprite->oam.size = 3;
opponentSprite->oam.size = SPRITE_SIZE(64x32);
playerSprite->oam.size = SPRITE_SIZE(64x32);
CalcCenterToCornerVec(opponentSprite, 1, 3, 3);
CalcCenterToCornerVec(playerSprite, 1, 3, 3);
CalcCenterToCornerVec(opponentSprite, SPRITE_SHAPE(64x32), SPRITE_SIZE(64x32), ST_OAM_AFFINE_DOUBLE);
CalcCenterToCornerVec(playerSprite, SPRITE_SHAPE(64x32), SPRITE_SIZE(64x32), ST_OAM_AFFINE_DOUBLE);
SetOamMatrixRotationScaling(opponentSprite->oam.matrixNum, sMugshotsOpponentRotationScales[mugshotId][0], sMugshotsOpponentRotationScales[mugshotId][1], 0);
SetOamMatrixRotationScaling(playerSprite->oam.matrixNum, -512, 512, 0);
+3 -3
View File
@@ -1830,9 +1830,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
{
switch (GetCurrentWeather())
{
case WEATHER_RAIN_LIGHT:
case WEATHER_RAIN_MED:
case WEATHER_RAIN_HEAVY:
case WEATHER_RAIN:
case WEATHER_RAIN_THUNDERSTORM:
case WEATHER_DOWNPOUR:
if (!(gBattleWeather & WEATHER_RAIN_ANY))
{
gBattleWeather = (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_PERMANENT);
+15 -15
View File
@@ -402,10 +402,10 @@ static const TaskFunc sUnknown_083399EC[] =
static const struct OamData sOamData_8216314 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x32),
.x = 0,
.matrixNum = 0,
@@ -545,10 +545,10 @@ static const struct SpriteTemplate sBlenderSyncArrow_SpriteTemplate =
static const struct OamData sOamData_821640C =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x16),
.x = 0,
.matrixNum = 0,
@@ -614,10 +614,10 @@ static const struct SpriteTemplate sUnknown_08339B40 =
static const struct OamData sOamData_8216474 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(8x8),
.x = 0,
.matrixNum = 0,
@@ -701,10 +701,10 @@ static const struct SpriteTemplate sUnknown_08339BE0 =
static const struct OamData sOamData_8216514 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x32),
.x = 0,
.matrixNum = 0,
@@ -759,10 +759,10 @@ static const struct SpriteTemplate sUnknown_08339C2C =
static const struct OamData sOamData_8216560 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x32),
.x = 0,
.matrixNum = 0,
+2 -2
View File
@@ -153,7 +153,7 @@ extern const u16 gUnknown_082F41E8[];
extern const s8 gUnknown_082F41CC[][2];
extern const s8 gUnknown_082F41D2[][2];
extern const u32 gUnknown_082F334C[];
extern const u8 gUnknown_082F32D8[][3];
extern const u8 sBerryCrushTextColors1[][3];
struct BerryCrushGame *sub_8020C00(void)
{
@@ -821,5 +821,5 @@ void sub_8021944(struct BerryCrushGame_138 *arg0, u16 arg1)
void sub_80219C8(u8 windowId, u8 left, u8 colorId, const u8 *string)
{
left = (left * 4) - (GetStringWidth(2, string, -1) / 2u);
AddTextPrinterParameterized3(windowId, 2, left, 0, gUnknown_082F32D8[colorId], 0, string);
AddTextPrinterParameterized3(windowId, 2, left, 0, sBerryCrushTextColors1[colorId], 0, string);
}
+27 -27
View File
@@ -36,16 +36,16 @@ static void berry_fix_bg_hide(void);
// .rodata
static const u8 sUnknown_08617E78[] = _("Berry Program Update");
static const u8 sUnknown_08617E8D[] = _("Ruby/Sapphire");
static const u8 sUnknown_08617E9B[] = _("Emerald");
static const u8 sText_BerryProgramUpdate[] = _("Berry Program Update");
static const u8 sText_RubySapphire[] = _("Ruby/Sapphire");
static const u8 sText_Emerald[] = _("Emerald");
static const u8 Unknown_08617EA3[] = _("The Berry Program on your POKéMON\nRuby/Sapphire Game Pak will be updated.\n{COLOR RED}{SHADOW LIGHT_RED}Press the A Button.");
static const u8 Unknown_08617F07[] = _("Please ensure the connection of your\nGame Boy Advance system matches this.\n{COLOR RED}{SHADOW LIGHT_RED}YES: Press the A Button.\nNO: Turn off the power and try again.");
static const u8 Unknown_08617F97[] = _("Please turn on the power of POKéMON\nRuby/Sapphire while holding START and\nSELECT simultaneously. Then, ensure\nthe picture above appears.");
static const u8 Unknown_08618020[] = _("Transmitting. Please wait.\n{COLOR RED}{SHADOW LIGHT_RED}Please do not turn off the power or\nunplug the Game Boy Advance Game\nLink Cable.");
static const u8 Unknown_08618092[] = _("Please follow the instructions on your\nPOKéMON Ruby/Sapphire screen.");
static const u8 Unknown_086180D7[] = _("Transmission failure.\n{COLOR RED}{SHADOW LIGHT_RED}Please try again.");
static const u8 sText_BerryProgramWillBeUpdatedPressA[] = _("The Berry Program on your POKéMON\nRuby/Sapphire Game Pak will be updated.\n{COLOR RED}{SHADOW LIGHT_RED}Press the A Button.");
static const u8 sText_EnsureGBAConnectionMatches[] = _("Please ensure the connection of your\nGame Boy Advance system matches this.\n{COLOR RED}{SHADOW LIGHT_RED}YES: Press the A Button.\nNO: Turn off the power and try again.");
static const u8 sText_TurnOffPowerHoldingStartSelect[] = _("Please turn on the power of POKéMON\nRuby/Sapphire while holding START and\nSELECT simultaneously. Then, ensure\nthe picture above appears.");
static const u8 sText_TransmittingPleaseWait[] = _("Transmitting. Please wait.\n{COLOR RED}{SHADOW LIGHT_RED}Please do not turn off the power or\nunplug the Game Boy Advance Game\nLink Cable.");
static const u8 sText_PleaseFollowInstructionsOnScreen[] = _("Please follow the instructions on your\nPOKéMON Ruby/Sapphire screen.");
static const u8 sText_TransmissionFailureTryAgain[] = _("Transmission failure.\n{COLOR RED}{SHADOW LIGHT_RED}Please try again.");
static const struct BgTemplate gUnknown_08618108[] = {
{
@@ -70,16 +70,16 @@ static const u16 sUnknown_08618138[] = {
0x675a, 0, 0, 0
};
static const u8 sUnknown_08618158[] = {10, 11, 12};
static const u8 sUnknown_0861815B[] = { 0, 10, 13};
static const u8 sBerryProgramTextColors[] = {TEXT_DYNAMIC_COLOR_1, TEXT_DYNAMIC_COLOR_2, TEXT_DYNAMIC_COLOR_3};
static const u8 sGameTitleTextColors[] = { TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_1, TEXT_DYNAMIC_COLOR_4};
static const u8 *const gUnknown_08618160[] = {
Unknown_08617F07,
Unknown_08617F97,
Unknown_08618020,
Unknown_08618092,
Unknown_086180D7,
Unknown_08617EA3
static const u8 *const sBerryProgramTexts[] = {
sText_EnsureGBAConnectionMatches,
sText_TurnOffPowerHoldingStartSelect,
sText_TransmittingPleaseWait,
sText_PleaseFollowInstructionsOnScreen,
sText_TransmissionFailureTryAgain,
sText_BerryProgramWillBeUpdatedPressA
};
static const void *const gUnknown_08618178[][3] = {
@@ -230,21 +230,21 @@ static void berry_fix_gpu_set(void)
FillWindowPixelBuffer(3, PIXEL_FILL(0));
FillWindowPixelBuffer(0, PIXEL_FILL(0xA));
width = GetStringWidth(0, sUnknown_08617E9B, 0);
width = GetStringWidth(0, sText_Emerald, 0);
left = (0x78 - width) / 2;
AddTextPrinterParameterized3(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E9B);
AddTextPrinterParameterized3(2, 0, left, 3, sGameTitleTextColors, TEXT_SPEED_FF, sText_Emerald);
width = GetStringWidth(0, sUnknown_08617E8D, 0);
width = GetStringWidth(0, sText_RubySapphire, 0);
left = (0x78 - width) / 2 + 0x78;
AddTextPrinterParameterized3(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D);
AddTextPrinterParameterized3(2, 0, left, 3, sGameTitleTextColors, TEXT_SPEED_FF, sText_RubySapphire);
width = GetStringWidth(0, sUnknown_08617E8D, 0);
width = GetStringWidth(0, sText_RubySapphire, 0);
left = (0x70 - width) / 2;
AddTextPrinterParameterized3(3, 0, left, 0, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D);
AddTextPrinterParameterized3(3, 0, left, 0, sGameTitleTextColors, TEXT_SPEED_FF, sText_RubySapphire);
width = GetStringWidth(1, sUnknown_08617E78, 0);
width = GetStringWidth(1, sText_BerryProgramUpdate, 0);
left = (0xD0 - width) / 2;
AddTextPrinterParameterized3(0, 1, left, 2, sUnknown_08618158, TEXT_SPEED_FF, sUnknown_08617E78);
AddTextPrinterParameterized3(0, 1, left, 2, sBerryProgramTextColors, TEXT_SPEED_FF, sText_BerryProgramUpdate);
CopyWindowToVram(2, 2);
CopyWindowToVram(3, 2);
@@ -274,7 +274,7 @@ static void berry_fix_text_print(int scene)
{
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32);
FillWindowPixelBuffer(1, PIXEL_FILL(0xA));
AddTextPrinterParameterized3(1, 1, 0, 0, sUnknown_08618158, -1, gUnknown_08618160[scene]);
AddTextPrinterParameterized3(1, 1, 0, 0, sBerryProgramTextColors, -1, sBerryProgramTexts[scene]);
PutWindowTilemap(1);
CopyWindowToVram(1, 2);
switch (scene)
+1 -1
View File
@@ -403,7 +403,7 @@ static void PrintBerryNumberAndName(void)
const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
ConvertIntToDecimalStringN(gStringVar1, sBerryTag->berryId, STR_CONV_MODE_LEADING_ZEROS, 2);
StringCopy(gStringVar2, berry->name);
StringExpandPlaceholders(gStringVar4, gText_UnkF908Var1Var2);
StringExpandPlaceholders(gStringVar4, gText_NumberVar1Var2);
PrintTextInBerryTagScreen(WIN_BERRY_NAME, gStringVar4, 0, 1, 0, 0);
}
+4 -4
View File
@@ -307,7 +307,7 @@ static void CableCarMainCallback_Setup(void)
gMain.state++;
break;
case 5:
if (sCableCar->weather == WEATHER_ASH)
if (sCableCar->weather == WEATHER_VOLCANIC_ASH)
{
gMain.state++;
}
@@ -425,7 +425,7 @@ static void sub_81503E4(u8 taskId)
case 1:
switch (sCableCar->weather)
{
case WEATHER_ASH:
case WEATHER_VOLCANIC_ASH:
if (gWeatherPtr->sprites.s2.ashSprites[0] != NULL && gWeatherPtr->sprites.s2.ashSprites[0]->oam.priority != 0)
{
for (; i < NUM_ASH_SPRITES; i++)
@@ -815,7 +815,7 @@ static void LoadCableCarSprites(void)
gSprites[spriteId].pos2.y = 4;
gSprites[spriteId].data[0] = 200;
gSprites[spriteId].data[1] = 99;
sCableCar->weather = WEATHER_ASH;
sCableCar->weather = WEATHER_VOLCANIC_ASH;
sCableCar->unk4 = 0x15e;
SetCurrentAndNextWeatherNoDelay(WEATHER_SUNNY);
break;
@@ -841,7 +841,7 @@ static void LoadCableCarSprites(void)
gSprites[spriteId].data[1] = 0x41;
sCableCar->weather = WEATHER_SUNNY;
sCableCar->unk4 = 0x109;
SetCurrentAndNextWeatherNoDelay(WEATHER_ASH);
SetCurrentAndNextWeatherNoDelay(WEATHER_VOLCANIC_ASH);
break;
}
for (i = 0; i < 9; i++)
+11 -11
View File
@@ -270,10 +270,10 @@ static const struct SpriteSheet gUnknown_08587A74 =
static const struct OamData gOamData_8587A7C =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(8x8),
.x = 0,
.matrixNum = 0,
@@ -355,10 +355,10 @@ static const struct SpritePalette gUnknown_08587B08 =
static const struct OamData gOamData_8587B10 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x8),
.x = 0,
.matrixNum = 0,
@@ -414,16 +414,16 @@ const struct Subsprite gSubspriteTable_8587B78[] =
{
.x = -28,
.y = -4,
.shape = ST_OAM_H_RECTANGLE,
.size = 1,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 0,
.priority = 0
},
{
.x = 4,
.y = -4,
.shape = ST_OAM_H_RECTANGLE,
.size = 1,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 4,
.priority = 0
}
@@ -5021,7 +5021,7 @@ static void sub_80DE69C(u8 a)
for (i = 0; i < CONTESTANT_COUNT; i++)
{
gSprites[gContestResources->field_14[i].unk0].oam.matrixNum = AllocOamMatrix();
gSprites[gContestResources->field_14[i].unk0].oam.affineMode = 1;
gSprites[gContestResources->field_14[i].unk0].oam.affineMode = ST_OAM_AFFINE_NORMAL;
StartSpriteAffineAnim(&gSprites[gContestResources->field_14[i].unk0], a);
if (a == 2)
{
+3 -3
View File
@@ -89,7 +89,7 @@ extern const struct CompressedSpriteSheet gUnknown_0858D878[];
extern const struct CompressedSpritePalette gUnknown_0858D880[];
extern const struct SpriteSheet gUnknown_0858D8E0;
extern const struct SpriteTemplate gSpriteTemplate_858D8C8;
extern const u8 gUnknown_0858D8E8[];
extern const u8 sContestLinkTextColors[];
extern const u8 gUnknown_0858D6D0[];
extern const struct SpriteTemplate gSpriteTemplate_858D7F8;
extern const struct SpriteSheet gUnknown_0858D810[];
@@ -935,7 +935,7 @@ s32 sub_80F6B78(const u8 *text, u8 spriteId)
if (strWidth > 30)
strWidth = 30;
AddTextPrinterParameterized3(windowId, 1, (strWidth * 8 - origWidth) / 2, 1, gUnknown_0858D8E8, -1, text);
AddTextPrinterParameterized3(windowId, 1, (strWidth * 8 - origWidth) / 2, 1, sContestLinkTextColors, -1, text);
windowTilesPtr = (u8 *)(GetWindowAttribute(windowId, WINDOW_TILE_DATA));
src = (u8 *)(gUnknown_0858D6D0);
@@ -1029,7 +1029,7 @@ _080F6BD0:\n\
asrs r2, 1\n\
lsls r2, 24\n\
lsrs r2, 24\n\
ldr r0, =gUnknown_0858D8E8\n\
ldr r0, =sContestLinkTextColors\n\
str r0, [sp]\n\
movs r0, 0x1\n\
negs r0, r0\n\
+25 -25
View File
@@ -11,38 +11,38 @@ struct CoordEventWeather
static void CoordEventWeather_Clouds(void);
static void CoordEventWeather_Sunny(void);
static void CoordEventWeather_LightRain(void);
static void CoordEventWeather_Rain(void);
static void CoordEventWeather_Snow(void);
static void CoordEventWeather_Thunderstorm(void);
static void CoordEventWeather_Fog(void);
static void CoordEventWeather_HorizontalFog(void);
static void CoordEventWeather_DiagonalFog(void);
static void CoordEventWeather_Ash(void);
static void CoordEventWeather_Sandstorm(void);
static void CoordEventWeather_Dark(void);
static void CoordEventWeather_Shade(void);
static void CoordEventWeather_Drought(void);
static void CoordEventWeather_Route119Cycle(void);
static void CoordEventWeather_Route123Cycle(void);
static const struct CoordEventWeather sCoordEventWeatherFuncs[] =
{
{ COORD_EVENT_WEATHER_CLOUDS, CoordEventWeather_Clouds },
{ COORD_EVENT_WEATHER_SUNNY, CoordEventWeather_Sunny },
{ COORD_EVENT_WEATHER_RAIN_LIGHT, CoordEventWeather_LightRain },
{ COORD_EVENT_WEATHER_SNOW, CoordEventWeather_Snow },
{ COORD_EVENT_WEATHER_RAIN_MED, CoordEventWeather_Thunderstorm },
{ COORD_EVENT_WEATHER_FOG_1, CoordEventWeather_Fog },
{ COORD_EVENT_WEATHER_FOG_2, CoordEventWeather_DiagonalFog },
{ COORD_EVENT_WEATHER_ASH, CoordEventWeather_Ash },
{ COORD_EVENT_WEATHER_SANDSTORM, CoordEventWeather_Sandstorm },
{ COORD_EVENT_WEATHER_SHADE, CoordEventWeather_Dark },
{ COORD_EVENT_WEATHER_DROUGHT, CoordEventWeather_Drought },
{ COORD_EVENT_WEATHER_ROUTE119_CYCLE, CoordEventWeather_Route119Cycle },
{ COORD_EVENT_WEATHER_ROUTE123_CYCLE, CoordEventWeather_Route123Cycle },
{ COORD_EVENT_WEATHER_SUNNY_CLOUDS, CoordEventWeather_Clouds },
{ COORD_EVENT_WEATHER_SUNNY, CoordEventWeather_Sunny },
{ COORD_EVENT_WEATHER_RAIN, CoordEventWeather_Rain },
{ COORD_EVENT_WEATHER_SNOW, CoordEventWeather_Snow },
{ COORD_EVENT_WEATHER_RAIN_THUNDERSTORM, CoordEventWeather_Thunderstorm },
{ COORD_EVENT_WEATHER_FOG_HORIZONTAL, CoordEventWeather_HorizontalFog },
{ COORD_EVENT_WEATHER_FOG_DIAGONAL, CoordEventWeather_DiagonalFog },
{ COORD_EVENT_WEATHER_VOLCANIC_ASH, CoordEventWeather_Ash },
{ COORD_EVENT_WEATHER_SANDSTORM, CoordEventWeather_Sandstorm },
{ COORD_EVENT_WEATHER_SHADE, CoordEventWeather_Shade },
{ COORD_EVENT_WEATHER_DROUGHT, CoordEventWeather_Drought },
{ COORD_EVENT_WEATHER_ROUTE119_CYCLE, CoordEventWeather_Route119Cycle },
{ COORD_EVENT_WEATHER_ROUTE123_CYCLE, CoordEventWeather_Route123Cycle },
};
static void CoordEventWeather_Clouds(void)
{
SetWeather(WEATHER_CLOUDS);
SetWeather(WEATHER_SUNNY_CLOUDS);
}
static void CoordEventWeather_Sunny(void)
@@ -50,9 +50,9 @@ static void CoordEventWeather_Sunny(void)
SetWeather(WEATHER_SUNNY);
}
static void CoordEventWeather_LightRain(void)
static void CoordEventWeather_Rain(void)
{
SetWeather(WEATHER_RAIN_LIGHT);
SetWeather(WEATHER_RAIN);
}
static void CoordEventWeather_Snow(void)
@@ -62,22 +62,22 @@ static void CoordEventWeather_Snow(void)
static void CoordEventWeather_Thunderstorm(void)
{
SetWeather(WEATHER_RAIN_MED);
SetWeather(WEATHER_RAIN_THUNDERSTORM);
}
static void CoordEventWeather_Fog(void)
static void CoordEventWeather_HorizontalFog(void)
{
SetWeather(WEATHER_FOG_1);
SetWeather(WEATHER_FOG_HORIZONTAL);
}
static void CoordEventWeather_DiagonalFog(void)
{
SetWeather(WEATHER_FOG_2);
SetWeather(WEATHER_FOG_DIAGONAL);
}
static void CoordEventWeather_Ash(void)
{
SetWeather(WEATHER_ASH);
SetWeather(WEATHER_VOLCANIC_ASH);
}
static void CoordEventWeather_Sandstorm(void)
@@ -85,7 +85,7 @@ static void CoordEventWeather_Sandstorm(void)
SetWeather(WEATHER_SANDSTORM);
}
static void CoordEventWeather_Dark(void)
static void CoordEventWeather_Shade(void)
{
SetWeather(WEATHER_SHADE);
}
+5 -5
View File
@@ -1053,10 +1053,10 @@ static const struct SpritePalette gUnknown_085E702C[] = {
static const struct OamData gUnknown_085E703C =
{
.y = 160,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
@@ -2183,7 +2183,7 @@ static void sub_8177050(struct Sprite *sprite)
{
case 0:
default:
sprite->oam.affineMode = 1;
sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL;
sprite->oam.matrixNum = sprite->data[1];
sprite->data[2] = 16;
SetOamMatrix(sprite->data[1], 0x10000 / sprite->data[2], 0, 0, 0x10000 / sprite->data[2]);
@@ -2225,7 +2225,7 @@ static void sub_8177050(struct Sprite *sprite)
{
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0));
sprite->oam.objMode = 1;
sprite->oam.objMode = ST_OAM_OBJ_BLEND;
sprite->data[3] = 16;
sprite->data[0] += 1;
}
File diff suppressed because it is too large Load Diff
+12 -12
View File
@@ -879,10 +879,10 @@ static const u16 sHeldItemPalette[] = INCBIN_U16("graphics/interface/hold_icons.
static const struct OamData sOamData_HeldItem =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(8x8),
.x = 0,
.matrixNum = 0,
@@ -935,10 +935,10 @@ static const struct SpriteTemplate sSpriteTemplate_HeldItem =
static const struct OamData sOamData_MenuPokeball =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x32),
.x = 0,
.matrixNum = 0,
@@ -992,10 +992,10 @@ static const struct SpriteTemplate sSpriteTemplate_MenuPokeball =
static const struct OamData sOamData_MenuPokeballSmall =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x16),
.x = 0,
.matrixNum = 0,
@@ -1073,10 +1073,10 @@ static const struct SpriteTemplate sSpriteTemplate_MenuPokeballSmall =
static const struct OamData sOamData_StatusCondition =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x8),
.x = 0,
.matrixNum = 0,
+2 -2
View File
@@ -377,7 +377,7 @@ const u8 gItemEffect_QualotBerry[10] = {
[9] = 2,
};
const u8 gItemEffect_HondrewBerry[10] = {
const u8 gItemEffect_HondewBerry[10] = {
[5] = ITEM5_EV_SPATK | ITEM5_FRIENDSHIP_ALL,
[6] = -10,
[7] = 10,
@@ -469,7 +469,7 @@ const u8 *const gItemEffectTable[] =
[ITEM_POMEG_BERRY - ITEM_POTION] = gItemEffect_PomegBerry,
[ITEM_KELPSY_BERRY - ITEM_POTION] = gItemEffect_KelpsyBerry,
[ITEM_QUALOT_BERRY - ITEM_POTION] = gItemEffect_QualotBerry,
[ITEM_HONDEW_BERRY - ITEM_POTION] = gItemEffect_HondrewBerry,
[ITEM_HONDEW_BERRY - ITEM_POTION] = gItemEffect_HondewBerry,
[ITEM_GREPA_BERRY - ITEM_POTION] = gItemEffect_GrepaBerry,
[ITEM_TAMATO_BERRY - ITEM_POTION] = gItemEffect_TamatoBerry,
[LAST_BERRY_INDEX - ITEM_POTION] = NULL
+3 -3
View File
@@ -633,7 +633,7 @@ static const u32 sTradeTilemap_WirelessSignal[] = INCBIN_U32("graphics/trade/wir
static const struct OamData sTradeOamData_16x16 =
{
.affineMode = 1,
.affineMode = ST_OAM_AFFINE_NORMAL,
.shape = SPRITE_SHAPE(16x16),
.size = SPRITE_SIZE(16x16)
};
@@ -735,8 +735,8 @@ static const struct SpriteTemplate gSpriteTemplate_8338D28 =
static const struct OamData sTradeOamData_32x32 =
{
.affineMode = 1,
.objMode = 1,
.affineMode = ST_OAM_AFFINE_NORMAL,
.objMode = ST_OAM_OBJ_BLEND,
.shape = SPRITE_SHAPE(32x32),
.size = SPRITE_SIZE(32x32),
.priority = 1
+345 -350
View File
@@ -1,210 +1,213 @@
// const rom data
ALIGNED(4) const u8 gText_EmptyString[] = _("");
ALIGNED(4) const u8 gText_Colon[] = _(":");
ALIGNED(4) const u8 gText_UnkCtrlCodeF907[] = _("{ID}");
ALIGNED(4) const u8 gText_PleaseStartOver[] = _("Please start over from the beginning.");
ALIGNED(4) const u8 gText_WirelessSearchCanceled[] = _("The WIRELESS COMMUNICATION\nSYSTEM search has been canceled.");
ALIGNED(4) const u8 unref_text_union_room_0[] = _("Awaiting communication\nfrom another player.");
ALIGNED(4) const u8 gText_AwaitingCommunication[] = _("{STR_VAR_1}! Awaiting\ncommunication from another player.");
ALIGNED(4) const u8 gText_AwaitingLink[] = _("{STR_VAR_1}! Awaiting link!\nPress START when everyone's ready.");
ALIGNED(4) const u8 gJPText_SingleBattle[] = _("シングルバトルを かいさいする");
ALIGNED(4) const u8 gJPText_DoubleBattle[] = _("ダブルバトルを かいさいする");
ALIGNED(4) const u8 gJPText_MultiBattle[] = _("マルチバトルを かいさいする");
ALIGNED(4) const u8 gJPText_TradePokemon[] = _("ポケモンこうかんを かいさいする");
ALIGNED(4) const u8 gJPText_Chat[] = _("チャットを かいさいする");
ALIGNED(4) const u8 gJPText_DistWonderCard[] = _("ふしぎなカードをくばる");
ALIGNED(4) const u8 gJPText_DistWonderNews[] = _("ふしぎなニュースをくばる");
ALIGNED(4) const u8 unref_text_union_room_1[] = _("ふしぎなできごとを かいさいする");
ALIGNED(4) const u8 gJPText_HoldPokemonJump[] = _("なわとびを かいさいする");
ALIGNED(4) const u8 gJPText_HoldBerryCrush[] = _("きのみマッシャーを かいさいする");
ALIGNED(4) const u8 gJPText_HoldBerryPicking[] = _("きのみどりを かいさいする");
ALIGNED(4) const u8 gJPText_HoldSpinTrade[] = _("ぐるぐるこうかんを かいさいする");
ALIGNED(4) const u8 gJPText_HoldSpinShop[] = _("ぐるぐるショップを かいさいする");
ALIGNED(4) static const u8 sText_EmptyString[] = _("");
ALIGNED(4) const u8 sText_Colon[] = _(":");
ALIGNED(4) const u8 sText_ID[] = _("{ID}");
ALIGNED(4) const u8 sText_PleaseStartOver[] = _("Please start over from the beginning.");
ALIGNED(4) const u8 sText_WirelessSearchCanceled[] = _("The WIRELESS COMMUNICATION\nSYSTEM search has been canceled.");
ALIGNED(4) const u8 sText_AwaitingCommunucation2[] = _("Awaiting communication\nfrom another player."); // Unused
ALIGNED(4) const u8 sText_AwaitingCommunication[] = _("{STR_VAR_1}! Awaiting\ncommunication from another player.");
ALIGNED(4) const u8 sText_AwaitingLinkPressStart[] = _("{STR_VAR_1}! Awaiting link!\nPress START when everyone's ready.");
ALIGNED(4) const u8 sJPText_SingleBattle[] = _("シングルバトルを かいさいする");
ALIGNED(4) const u8 sJPText_DoubleBattle[] = _("ダブルバトルを かいさいする");
ALIGNED(4) const u8 sJPText_MultiBattle[] = _("マルチバトルを かいさいする");
ALIGNED(4) const u8 sJPText_TradePokemon[] = _("ポケモンこうかんを かいさいする");
ALIGNED(4) const u8 sJPText_Chat[] = _("チャットを かいさいする");
ALIGNED(4) const u8 sJPText_DistWonderCard[] = _("ふしぎなカードをくばる");
ALIGNED(4) const u8 sJPText_DistWonderNews[] = _("ふしぎなニュースをくばる");
ALIGNED(4) const u8 sJPText_DistMysteryEvent[] = _("ふしぎなできごとを かいさいする"); // Unused
ALIGNED(4) const u8 sJPText_HoldPokemonJump[] = _("なわとびを かいさいする");
ALIGNED(4) const u8 sJPText_HoldBerryCrush[] = _("きのみマッシャーを かいさいする");
ALIGNED(4) const u8 sJPText_HoldBerryPicking[] = _("きのみどりを かいさいする");
ALIGNED(4) const u8 sJPText_HoldSpinTrade[] = _("ぐるぐるこうかんを かいさいする");
ALIGNED(4) const u8 sJPText_HoldSpinShop[] = _("ぐるぐるショップを かいさいする");
const u8 *const unref_text_ptrs_union_room_0[] = {
gJPText_SingleBattle,
gJPText_DoubleBattle,
gJPText_MultiBattle,
gJPText_TradePokemon,
gJPText_Chat,
gJPText_DistWonderCard,
gJPText_DistWonderNews,
gJPText_DistWonderCard,
gJPText_HoldPokemonJump,
gJPText_HoldBerryCrush,
gJPText_HoldBerryPicking,
gJPText_HoldBerryPicking,
gJPText_HoldSpinTrade,
gJPText_HoldSpinShop
// Unused
const u8 *const sJPLinkGroupActionTexts[] = {
sJPText_SingleBattle,
sJPText_DoubleBattle,
sJPText_MultiBattle,
sJPText_TradePokemon,
sJPText_Chat,
sJPText_DistWonderCard,
sJPText_DistWonderNews,
sJPText_DistWonderCard,
sJPText_HoldPokemonJump,
sJPText_HoldBerryCrush,
sJPText_HoldBerryPicking,
sJPText_HoldBerryPicking,
sJPText_HoldSpinTrade,
sJPText_HoldSpinShop
};
const u8 gText_1PlayerNeeded[] = _("1 player\nneeded.");
const u8 gText_2PlayersNeeded[] = _("2 players\nneeded.");
const u8 gText_3PlayersNeeded[] = _("3 players\nneeded.");
const u8 gText_4PlayersNeeded[] = _("4 players\nneeded.");
const u8 gText_2PlayerMode[] = _("2-PLAYER\nMODE");
const u8 gText_3PlayerMode[] = _("3-PLAYER\nMODE");
const u8 gText_4PlayerMode[] = _("4-PLAYER\nMODE");
const u8 gText_5PlayerMode[] = _("5-PLAYER\nMODE");
const u8 sText_1PlayerNeeded[] = _("1 player\nneeded.");
const u8 sText_2PlayersNeeded[] = _("2 players\nneeded.");
const u8 sText_3PlayersNeeded[] = _("3 players\nneeded.");
const u8 sText_4PlayersNeeded[] = _("4 players\nneeded.");
const u8 sText_2PlayerMode[] = _("2-PLAYER\nMODE");
const u8 sText_3PlayerMode[] = _("3-PLAYER\nMODE");
const u8 sText_4PlayerMode[] = _("4-PLAYER\nMODE");
const u8 sText_5PlayerMode[] = _("5-PLAYER\nMODE");
const u8 *const gUnknown_082EDB60[][5] = {
static const u8 *const sPlayersNeededOrModeTexts[][5] = {
{
gText_1PlayerNeeded,
gText_2PlayerMode
sText_1PlayerNeeded,
sText_2PlayerMode
}, {
gText_3PlayersNeeded,
gText_2PlayersNeeded,
gText_1PlayerNeeded,
gText_4PlayerMode
sText_3PlayersNeeded,
sText_2PlayersNeeded,
sText_1PlayerNeeded,
sText_4PlayerMode
}, {
gText_1PlayerNeeded,
gText_2PlayerMode,
gText_3PlayerMode,
gText_4PlayerMode,
gText_5PlayerMode
sText_1PlayerNeeded,
sText_2PlayerMode,
sText_3PlayerMode,
sText_4PlayerMode,
sText_5PlayerMode
}, {
gText_2PlayersNeeded,
gText_1PlayerNeeded,
gText_3PlayerMode,
gText_4PlayerMode,
gText_5PlayerMode
sText_2PlayersNeeded,
sText_1PlayerNeeded,
sText_3PlayerMode,
sText_4PlayerMode,
sText_5PlayerMode
}, {
gText_1PlayerNeeded,
gText_2PlayerMode,
gText_3PlayerMode,
gText_4PlayerMode
sText_1PlayerNeeded,
sText_2PlayerMode,
sText_3PlayerMode,
sText_4PlayerMode
}
};
ALIGNED(4) const u8 gUnknown_082EDBC4[] = _("{B_BUTTON}CANCEL");
ALIGNED(4) const u8 unref_text_union_room_2[] = _("ため\nさんかしゃ ぼしゅうちゅう です!");
ALIGNED(4) const u8 gUnknown_082EDBE8[] = _("{STR_VAR_2} contacted you for\n{STR_VAR_1}. Accept?");
ALIGNED(4) const u8 gUnknown_082EDC0C[] = _("{STR_VAR_2} contacted you.\nWill you share {STR_VAR_1}?");
ALIGNED(4) const u8 gUnknown_082EDC34[] = _("{STR_VAR_2} contacted you.\nAdd to the members?");
ALIGNED(4) const u8 gUnknown_082EDC5C[] = _("{STR_VAR_1}!\nAre these members OK?");
ALIGNED(4) const u8 gUnknown_082EDC78[] = _("Cancel {STR_VAR_1} MODE\nwith these members?");
ALIGNED(4) const u8 gUnknown_082EDC9C[] = _("An “OK” was sent\nto {STR_VAR_1}.");
ALIGNED(4) const u8 gUnknown_082EDCB4[] = _("The other TRAINER doesn't appear\nto be available now…\p");
ALIGNED(4) const u8 gUnknown_082EDCEC[] = _("You can't transmit with a TRAINER\nwho is too far away.\p");
ALIGNED(4) const u8 gUnknown_082EDD24[] = _("The other TRAINER(S) is/are not\nready yet.\p");
ALIGNED(4) const u8 sText_BButtonCancel[] = _("{B_BUTTON}CANCEL");
ALIGNED(4) const u8 sJPText_SearchingForParticipants[] = _("ため\nさんかしゃ ぼしゅうちゅう です!"); // Unused, may have been cut off
ALIGNED(4) const u8 sText_PlayerContactedYouForXAccept[] = _("{STR_VAR_2} contacted you for\n{STR_VAR_1}. Accept?");
ALIGNED(4) const u8 sText_PlayerContactedYouShareX[] = _("{STR_VAR_2} contacted you.\nWill you share {STR_VAR_1}?");
ALIGNED(4) const u8 sText_PlayerContactedYouAddToMembers[] = _("{STR_VAR_2} contacted you.\nAdd to the members?");
ALIGNED(4) const u8 sText_AreTheseMembersOK[] = _("{STR_VAR_1}!\nAre these members OK?");
ALIGNED(4) const u8 sText_CancelModeWithTheseMembers[] = _("Cancel {STR_VAR_1} MODE\nwith these members?");
ALIGNED(4) const u8 sText_AnOKWasSentToPlayer[] = _("An “OK” was sent\nto {STR_VAR_1}.");
ALIGNED(4) const u8 sText_OtherTrainerUnavailableNow[] = _("The other TRAINER doesn't appear\nto be available now…\p");
ALIGNED(4) const u8 sText_CantTransmitTrainerTooFar[] = _("You can't transmit with a TRAINER\nwho is too far away.\p");
ALIGNED(4) const u8 sText_TrainersNotReadyYet[] = _("The other TRAINER(S) is/are not\nready yet.\p");
const u8 *const gUnknown_082EDD50[] = {
gUnknown_082EDCEC,
gUnknown_082EDD24
const u8 *const sCantTransmitToTrainerTexts[] = {
sText_CantTransmitTrainerTooFar,
sText_TrainersNotReadyYet
};
ALIGNED(4) const u8 gUnknown_082EDD58[] = _("The {STR_VAR_1} MODE with\nthese members will be canceled.{PAUSE 60}");
ALIGNED(4) const u8 gUnknown_082EDD8C[] = _("There is a member who can no\nlonger remain available.\p");
ALIGNED(4) const u8 sText_ModeWithTheseMembersWillBeCanceled[] = _("The {STR_VAR_1} MODE with\nthese members will be canceled.{PAUSE 60}");
ALIGNED(4) const u8 sText_MemberNoLongerAvailable[] = _("There is a member who can no\nlonger remain available.\p");
const u8 *const gUnknown_082EDDC4[] = {
gUnknown_082EDCB4,
gUnknown_082EDD8C
const u8 *const sPlayerUnavailableTexts[] = {
sText_OtherTrainerUnavailableNow,
sText_MemberNoLongerAvailable
};
ALIGNED(4) const u8 gUnknown_082EDDCC[] = _("The other TRAINER appears\nunavailable…\p");
ALIGNED(4) const u8 gUnknown_082EDDF4[] = _("{STR_VAR_1} sent back an “OK”!");
ALIGNED(4) const u8 gUnknown_082EDE0C[] = _("{STR_VAR_1} OK'd your registration as\na member.");
ALIGNED(4) const u8 gUnknown_082EDE34[] = _("{STR_VAR_1} replied, “No…”\p");
ALIGNED(4) const u8 gUnknown_082EDE48[] = _("{STR_VAR_1}!\nAwaiting other members!");
ALIGNED(4) const u8 gUnknown_082EDE64[] = _("Quit being a member?");
ALIGNED(4) const u8 gUnknown_082EDE7C[] = _("You stopped being a member.\p");
ALIGNED(4) const u8 sText_TrainerAppearsUnavailable[] = _("The other TRAINER appears\nunavailable…\p");
ALIGNED(4) const u8 sText_PlayerSentBackOK[] = _("{STR_VAR_1} sent back an “OK”!");
ALIGNED(4) const u8 sText_PlayerOKdRegistration[] = _("{STR_VAR_1} OK'd your registration as\na member.");
ALIGNED(4) const u8 sText_PlayerRepliedNo[] = _("{STR_VAR_1} replied, “No…”\p");
ALIGNED(4) const u8 sText_AwaitingOtherMembers[] = _("{STR_VAR_1}!\nAwaiting other members!");
ALIGNED(4) const u8 sText_QuitBeingMember[] = _("Quit being a member?");
ALIGNED(4) const u8 sText_StoppedBeingMember[] = _("You stopped being a member.\p");
const u8 *const gUnknown_082EDE9C[] = {
const u8 *const sPlayerDisconnectedTexts[] = {
NULL,
gUnknown_082EDD8C,
gUnknown_082EDDCC,
sText_MemberNoLongerAvailable,
sText_TrainerAppearsUnavailable,
NULL,
NULL,
NULL,
gUnknown_082EDE34,
sText_PlayerRepliedNo,
NULL,
NULL,
gUnknown_082EDE7C
sText_StoppedBeingMember
};
ALIGNED(4) const u8 gUnknown_082EDEC4[] = _("The WIRELESS COMMUNICATION\nSYSTEM link has been established.");
ALIGNED(4) const u8 gUnknown_082EDF04[] = _("The WIRELESS COMMUNICATION\nSYSTEM link has been dropped…");
ALIGNED(4) const u8 gUnknown_082EDF40[] = _("The link with your friend has been\ndropped…");
ALIGNED(4) const u8 gUnknown_082EDF6C[] = _("{STR_VAR_1} replied, “No…”");
ALIGNED(4) const u8 sText_WirelessLinkEstablished[] = _("The WIRELESS COMMUNICATION\nSYSTEM link has been established.");
ALIGNED(4) const u8 sText_WirelessLinkDropped[] = _("The WIRELESS COMMUNICATION\nSYSTEM link has been dropped…");
ALIGNED(4) const u8 sText_LinkWithFriendDropped[] = _("The link with your friend has been\ndropped…");
ALIGNED(4) const u8 sText_PlayerRepliedNo2[] = _("{STR_VAR_1} replied, “No…”");
const u8 *const gUnknown_082EDF80[] = {
const u8 *const sLinkDroppedTexts[] = {
NULL,
gUnknown_082EDF40,
gUnknown_082EDF40,
sText_LinkWithFriendDropped,
sText_LinkWithFriendDropped,
NULL,
NULL,
NULL,
gUnknown_082EDF6C,
sText_PlayerRepliedNo2,
NULL,
NULL,
NULL
};
ALIGNED(4) const u8 gUnknown_082EDFA8[] = _("Do you want the {STR_VAR_2}\nMODE?");
ALIGNED(4) const u8 gUnknown_082EDFC4[] = _("Do you want the {STR_VAR_2}\nMODE?");
ALIGNED(4) const u8 sText_DoYouWantXMode[] = _("Do you want the {STR_VAR_2}\nMODE?");
ALIGNED(4) const u8 sText_DoYouWantXMode2[] = _("Do you want the {STR_VAR_2}\nMODE?");
const u8 *const unref_text_ptrs_union_room_1[] = {
gUnknown_082EDFA8,
gUnknown_082EDFC4
// Unused
static const u8 *const sDoYouWantModeTexts[] = {
sText_DoYouWantXMode,
sText_DoYouWantXMode2
};
ALIGNED(4) const u8 unref_text_union_room_3[] = _("Communicating…\nPlease wait.");
ALIGNED(4) const u8 gUnknown_082EE004[] = _("Awaiting {STR_VAR_1}'s response about\nthe trade…");
ALIGNED(4) const u8 gUnknown_082EE02C[] = _("Communicating{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.");
ALIGNED(4) const u8 gUnknown_082EE098[] = _("Communicating with {STR_VAR_1}{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.");
ALIGNED(4) const u8 gUnknown_082EE104[] = _("Please wait a while{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.");
ALIGNED(4) const u8 sText_CommunicatingPleaseWait[] = _("Communicating…\nPlease wait."); // Unused
ALIGNED(4) const u8 sText_AwaitingPlayersResponseAboutTrade[] = _("Awaiting {STR_VAR_1}'s response about\nthe trade…");
ALIGNED(4) const u8 sText_Communicating[] = _("Communicating{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.");
ALIGNED(4) const u8 sText_CommunicatingWithPlayer[] = _("Communicating with {STR_VAR_1}{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.");
ALIGNED(4) const u8 sText_PleaseWaitAWhile[] = _("Please wait a while{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.");
const u8 *const gUnknown_082EE17C[] = {
gUnknown_082EE02C,
gUnknown_082EE098,
gUnknown_082EE104
static const u8 *const sCommunicatingWaitTexts[] = {
sText_Communicating,
sText_CommunicatingWithPlayer,
sText_PleaseWaitAWhile
};
ALIGNED(4) const u8 gUnknown_082EE188[] = _("Hiya! Is there something that you\nwanted to do?");
ALIGNED(4) const u8 gUnknown_082EE1B8[] = _("Hello!\nWould you like to do something?");
ALIGNED(4) const u8 gUnknown_082EE1E0[] = _("{STR_VAR_1}: Hiya, we meet again!\nWhat are you up for this time?");
ALIGNED(4) const u8 gUnknown_082EE218[] = _("{STR_VAR_1}: Oh! {PLAYER}, hello!\nWould you like to do something?");
ALIGNED(4) const u8 sText_HiDoSomethingMale[] = _("Hiya! Is there something that you\nwanted to do?");
ALIGNED(4) const u8 sText_HiDoSomethingFemale[] = _("Hello!\nWould you like to do something?");
ALIGNED(4) const u8 sText_HiDoSomethingAgainMale[] = _("{STR_VAR_1}: Hiya, we meet again!\nWhat are you up for this time?");
ALIGNED(4) const u8 sText_HiDoSomethingAgainFemale[] = _("{STR_VAR_1}: Oh! {PLAYER}, hello!\nWould you like to do something?");
const u8 *const gUnknown_082EE24C[][2] = {
static const u8 *const sHiDoSomethingTexts[][GENDER_COUNT] = {
{
gUnknown_082EE188,
gUnknown_082EE1B8
sText_HiDoSomethingMale,
sText_HiDoSomethingFemale
}, {
gUnknown_082EE1E0,
gUnknown_082EE218
sText_HiDoSomethingAgainMale,
sText_HiDoSomethingAgainFemale
}
};
ALIGNED(4) const u8 gUnknown_082EE25C[] = _("Want to do something?");
ALIGNED(4) const u8 gUnknown_082EE274[] = _("Would you like to do something?");
ALIGNED(4) const u8 gUnknown_082EE294[] = _("{STR_VAR_1}: What would you like to\ndo now?");
ALIGNED(4) const u8 unref_text_union_room_4[] = _("{STR_VAR_1}: Want to do anything else?");
ALIGNED(4) const u8 sText_DoSomethingMale[] = _("Want to do something?");
ALIGNED(4) const u8 sText_DoSomethingFemale[] = _("Would you like to do something?");
ALIGNED(4) const u8 sText_DoSomethingAgainMale[] = _("{STR_VAR_1}: What would you like to\ndo now?");
ALIGNED(4) const u8 sText_DoSomethingAgainFemale[] = _("{STR_VAR_1}: Want to do anything else?"); // Unused
const u8 *const unref_text_ptrs_union_room_2[][2] = {
// Unused
static const u8 *const sDoSomethingTexts[][GENDER_COUNT] = {
{
gUnknown_082EE25C,
gUnknown_082EE274
sText_DoSomethingMale,
sText_DoSomethingFemale
}, {
gUnknown_082EE294,
gUnknown_082EE294
sText_DoSomethingAgainMale,
sText_DoSomethingAgainMale // was probably supposed to be sText_DoSomethingAgainFemale
}
};
ALIGNED(4) const u8 sText_SomebodyHasContactedYou[] = _("Somebody has contacted you.{PAUSE 60}");
ALIGNED(4) const u8 sText_XHasContactedYou[] = _("{STR_VAR_1} has contacted you.{PAUSE 60}");
ALIGNED(4) const u8 sText_PlayerHasContactedYou[] = _("{STR_VAR_1} has contacted you.{PAUSE 60}");
static const u8 *const gUnknown_082EE324[] = {
static const u8 *const sPlayerContactedYouTexts[] = {
sText_SomebodyHasContactedYou,
sText_XHasContactedYou
sText_PlayerHasContactedYou
};
ALIGNED(4) const u8 sUnionRoom_AwaitingResponseFromTrainer[] = _("Awaiting a response from\nthe other TRAINER…");
ALIGNED(4) const u8 sUnionRoom_AwaitingResponseFromX[] = _("Awaiting a response from\n{STR_VAR_1}…");
ALIGNED(4) const u8 sText_AwaitingResponseFromTrainer[] = _("Awaiting a response from\nthe other TRAINER…");
ALIGNED(4) const u8 sText_AwaitingResponseFromPlayer[] = _("Awaiting a response from\n{STR_VAR_1}…");
static const u8 *const sUnionRoomTexts_AwaitingResponse[] = {
sUnionRoom_AwaitingResponseFromTrainer,
sUnionRoom_AwaitingResponseFromX
static const u8 *const sAwaitingResponseTexts[] = {
sText_AwaitingResponseFromTrainer,
sText_AwaitingResponseFromPlayer
};
ALIGNED(4) const u8 sText_ShowTrainerCard[] = _("The other TRAINER showed\nyou their TRAINER CARD.\pWould you like to show your\nTRAINER CARD?");
@@ -218,7 +221,7 @@ ALIGNED(4) const u8 sText_OfferDeclined2[] = _("You declined the offer.\p");
ALIGNED(4) const u8 sText_ChatEnded[] = _("The chat was ended.\p");
// Unused
static const u8 *const sUnionRoomTexts_Invitation[] = {
static const u8 *const sInvitationTexts[] = {
sText_ShowTrainerCard,
sText_BattleChallenge,
sText_ChatInvitation,
@@ -230,7 +233,7 @@ ALIGNED(4) const u8 sText_PlayerJoinChatMale[] = _("{STR_VAR_1}: Hey, {PLAYER}!\
ALIGNED(4) const u8 sText_JoinChatFemale[] = _("Oh, hi! We're having a chat now.\nWould you like to join us?");
ALIGNED(4) const u8 sText_PlayerJoinChatFemale[] = _("{STR_VAR_1}: Oh, hi, {PLAYER}!\nWe're having a chat now.\lWould you like to join us?");
const u8 *const sUnionRoomTexts_JoinChat[][GENDER_COUNT] = {
static const u8 *const sJoinChatTexts[][GENDER_COUNT] = {
{
sText_JoinChatMale,
sText_JoinChatFemale
@@ -241,170 +244,164 @@ const u8 *const sUnionRoomTexts_JoinChat[][GENDER_COUNT] = {
};
ALIGNED(4) const u8 sText_TrainerAppearsBusy[] = _("……\nThe TRAINER appears to be busy…\p");
ALIGNED(4) const u8 gUnknown_082EE6EC[] = _("A battle, huh?\nAll right, just give me some time.");
ALIGNED(4) const u8 gUnknown_082EE720[] = _("You want to chat, huh?\nSure, just wait a little.");
ALIGNED(4) const u8 gUnknown_082EE754[] = _("Sure thing! As my “Greetings,”\nhere's my TRAINER CARD.");
ALIGNED(4) const u8 gUnknown_082EE78C[] = _("A battle? Of course, but I need\ntime to get ready.");
ALIGNED(4) const u8 gUnknown_082EE7C0[] = _("Did you want to chat?\nOkay, but please wait a moment.");
ALIGNED(4) const u8 gUnknown_082EE7F8[] = _("As my introduction, I'll show you\nmy TRAINER CARD.");
ALIGNED(4) const u8 sText_WaitForBattleMale[] = _("A battle, huh?\nAll right, just give me some time.");
ALIGNED(4) const u8 sText_WaitForChatMale[] = _("You want to chat, huh?\nSure, just wait a little.");
ALIGNED(4) const u8 sText_ShowTrainerCardMale[] = _("Sure thing! As my “Greetings,”\nhere's my TRAINER CARD.");
ALIGNED(4) const u8 sText_WaitForBattleFemale[] = _("A battle? Of course, but I need\ntime to get ready.");
ALIGNED(4) const u8 sText_WaitForChatFemale[] = _("Did you want to chat?\nOkay, but please wait a moment.");
ALIGNED(4) const u8 sText_ShowTrainerCardFemale[] = _("As my introduction, I'll show you\nmy TRAINER CARD.");
const u8 *const gUnknown_082EE82C[][4] = {
const u8 *const sText_WaitOrShowCardTexts[GENDER_COUNT][4] = {
{
gUnknown_082EE6EC,
gUnknown_082EE720,
sText_WaitForBattleMale,
sText_WaitForChatMale,
NULL,
gUnknown_082EE754
sText_ShowTrainerCardMale
}, {
gUnknown_082EE78C,
gUnknown_082EE7C0,
sText_WaitForBattleFemale,
sText_WaitForChatFemale,
NULL,
gUnknown_082EE7F8
sText_ShowTrainerCardFemale
}
};
ALIGNED(4) const u8 unref_text_union_room_5[] = _("You want to chat, huh?\nSure, just wait a little.");
ALIGNED(4) const u8 gUnknown_082EE880[] = _("Thanks for waiting!\nLet's get our battle started!{PAUSE 60}");
ALIGNED(4) const u8 gUnknown_082EE8B8[] = _("All right!\nLet's chat!{PAUSE 60}");
ALIGNED(4) const u8 gUnknown_082EE8D4[] = _("Sorry I made you wait!\nLet's get started!{PAUSE 60}");
ALIGNED(4) const u8 gUnknown_082EE904[] = _("Sorry I made you wait!\nLet's chat.{PAUSE 60}");
ALIGNED(4) const u8 gUnknown_082EE92C[] = _("The trade will be started.{PAUSE 60}");
ALIGNED(4) const u8 gUnknown_082EE94C[] = _("The battle will be started.{PAUSE 60}");
ALIGNED(4) const u8 gUnknown_082EE96C[] = _("Entering the chat…{PAUSE 60}");
ALIGNED(4) const u8 sText_WaitForChatMale2[] = _("You want to chat, huh?\nSure, just wait a little."); // Unused
ALIGNED(4) const u8 sText_DoneWaitingBattleMale[] = _("Thanks for waiting!\nLet's get our battle started!{PAUSE 60}");
ALIGNED(4) const u8 sText_DoneWaitingChatMale[] = _("All right!\nLet's chat!{PAUSE 60}");
ALIGNED(4) const u8 sText_DoneWaitingBattleFemale[] = _("Sorry I made you wait!\nLet's get started!{PAUSE 60}");
ALIGNED(4) const u8 sText_DoneWaitingChatFemale[] = _("Sorry I made you wait!\nLet's chat.{PAUSE 60}");
ALIGNED(4) const u8 sText_TradeWillBeStarted[] = _("The trade will be started.{PAUSE 60}");
ALIGNED(4) const u8 sText_BattleWillBeStarted[] = _("The battle will be started.{PAUSE 60}");
ALIGNED(4) const u8 sText_EnteringChat[] = _("Entering the chat…{PAUSE 60}");
const u8 *const gUnknown_082EE984[][2][3] = {
const u8 *const sStartActivityTexts[][GENDER_COUNT][3] = {
{
{
gUnknown_082EE94C,
gUnknown_082EE96C,
gUnknown_082EE92C
sText_BattleWillBeStarted,
sText_EnteringChat,
sText_TradeWillBeStarted
}, {
gUnknown_082EE94C,
gUnknown_082EE96C,
gUnknown_082EE92C
sText_BattleWillBeStarted,
sText_EnteringChat,
sText_TradeWillBeStarted
}
}, {
{
gUnknown_082EE880,
gUnknown_082EE8B8,
gUnknown_082EE92C
sText_DoneWaitingBattleMale,
sText_DoneWaitingChatMale,
sText_TradeWillBeStarted
}, {
gUnknown_082EE8D4,
gUnknown_082EE904,
gUnknown_082EE92C
sText_DoneWaitingBattleFemale,
sText_DoneWaitingChatFemale,
sText_TradeWillBeStarted
}
}
};
ALIGNED(4) const u8 gUnknown_082EE9B4[] = _("Sorry! My POKéMON don't seem to\nbe feeling too well right now.\lLet me battle you another time.\p");
ALIGNED(4) const u8 gUnknown_082EEA14[] = _("I'm terribly sorry, but my POKéMON\naren't feeling well…\pLet's battle another time.\p");
ALIGNED(4) const u8 sText_BattleDeclinedMale[] = _("Sorry! My POKéMON don't seem to\nbe feeling too well right now.\lLet me battle you another time.\p");
ALIGNED(4) const u8 sText_BattleDeclinedFemale[] = _("I'm terribly sorry, but my POKéMON\naren't feeling well…\pLet's battle another time.\p");
const u8 *const gUnknown_082EEA68[] = {
gUnknown_082EE9B4,
gUnknown_082EEA14
const u8 *const sBattleDeclinedTexts[GENDER_COUNT] = {
sText_BattleDeclinedMale,
sText_BattleDeclinedFemale
};
ALIGNED(4) const u8 gUnknown_082EEA70[] = _("Huh? My TRAINER CARD…\nWhere'd it go now?\lSorry! I'll show you another time!\p");
ALIGNED(4) const u8 gUnknown_082EEAC0[] = _("Oh? Now where did I put my\nTRAINER CARD?…\lSorry! I'll show you later!\p");
ALIGNED(4) const u8 sText_ShowTrainerCardDeclinedMale[] = _("Huh? My TRAINER CARD…\nWhere'd it go now?\lSorry! I'll show you another time!\p");
ALIGNED(4) const u8 sText_ShowTrainerCardDeclinedFemale[] = _("Oh? Now where did I put my\nTRAINER CARD?…\lSorry! I'll show you later!\p");
const u8 *const gUnknown_082EEB08[] = {
gUnknown_082EEA70,
gUnknown_082EEAC0
const u8 *const sShowTrainerCardDeclinedTexts[GENDER_COUNT] = {
sText_ShowTrainerCardDeclinedMale,
sText_ShowTrainerCardDeclinedFemale
};
ALIGNED(4) const u8 gUnknown_082EEB10[] = _("If you want to do something with\nme, just give me a shout!\p");
ALIGNED(4) const u8 gUnknown_082EEB4C[] = _("If you want to do something with\nme, don't be shy.\p");
ALIGNED(4) const u8 sText_IfYouWantToDoSomethingMale[] = _("If you want to do something with\nme, just give me a shout!\p");
ALIGNED(4) const u8 sText_IfYouWantToDoSomethingFemale[] = _("If you want to do something with\nme, don't be shy.\p");
const u8 *const gUnknown_082EEB80[] = {
gUnknown_082EEB10,
gUnknown_082EEB4C
const u8 *const sIfYouWantToDoSomethingTexts[GENDER_COUNT] = {
sText_IfYouWantToDoSomethingMale,
sText_IfYouWantToDoSomethingFemale
};
ALIGNED(4) const u8 sText_TrainerBattleBusy[] = _("Whoops! Sorry, but I have to do\nsomething else.\lAnother time, okay?\p");
ALIGNED(4) const u8 sText_NeedTwoMonsOfLevel30OrLower1[] = _("If you want to battle, you need\ntwo POKéMON that are below\lLv. 30.\p");
ALIGNED(4) const u8 sText_NeedTwoMonsOfLevel30OrLower2[] = _("For a battle, you need two\nPOKéMON that are below Lv. 30.\p");
ALIGNED(4) const u8 sText_DeclineBattleMale[] = _("Oh, all right.\nCome see me anytime, okay?\p");
ALIGNED(4) const u8 sText_DeclineBattleFemale[] = _("Oh…\nPlease come by anytime.\p");
ALIGNED(4) const u8 stext_DeclineBattleFemale[] = _("Oh…\nPlease come by anytime.\p");
const u8 *const sUnionRoomTexts_DeclineBattle[GENDER_COUNT] = {
[MALE] = sText_DeclineBattleMale,
[FEMALE] = sText_DeclineBattleFemale
static const u8 *const sDeclineBattleTexts[GENDER_COUNT] = {
sText_DeclineBattleMale,
stext_DeclineBattleFemale
};
ALIGNED(4) const u8 gUnknown_082EECA4[] = _("Oh, sorry!\nI just can't right this instant.\lLet's chat another time.\p");
ALIGNED(4) const u8 gUnknown_082EECEC[] = _("Oh, I'm sorry.\nI have too much to do right now.\lLet's chat some other time.\p");
ALIGNED(4) const u8 sText_ChatDeclinedMale[] = _("Oh, sorry!\nI just can't right this instant.\lLet's chat another time.\p");
ALIGNED(4) const u8 sText_ChatDeclinedFemale[] = _("Oh, I'm sorry.\nI have too much to do right now.\lLet's chat some other time.\p");
const u8 *const gUnknown_082EED3C[] = {
gUnknown_082EECA4,
gUnknown_082EECEC
const u8 *const sChatDeclinedTexts[GENDER_COUNT] = {
sText_ChatDeclinedMale,
sText_ChatDeclinedFemale
};
ALIGNED(4) const u8 gUnknown_082EED44[] = _("Whoa!\nI can tell you're pretty tough!\p");
ALIGNED(4) const u8 gUnknown_082EED6C[] = _("You used that move?\nThat's good strategy!\p");
ALIGNED(4) const u8 gUnknown_082EED98[] = _("Way to go!\nThat was an eye-opener!\p");
ALIGNED(4) const u8 gUnknown_082EEDBC[] = _("Oh! How could you use that\nPOKéMON in that situation?\p");
ALIGNED(4) const u8 gUnknown_082EEDF4[] = _("That POKéMON…\nIt's been raised really well!\p");
ALIGNED(4) const u8 gUnknown_082EEE24[] = _("That's it!\nThis is the right move now!\p");
ALIGNED(4) const u8 gUnknown_082EEE4C[] = _("That's awesome!\nYou can battle that way?\p");
ALIGNED(4) const u8 gUnknown_082EEE78[] = _("You have exquisite timing for\nswitching POKéMON!\p");
ALIGNED(4) const u8 sText_YoureToughMale[] = _("Whoa!\nI can tell you're pretty tough!\p");
ALIGNED(4) const u8 sText_UsedGoodMoveMale[] = _("You used that move?\nThat's good strategy!\p");
ALIGNED(4) const u8 sText_BattleSurpriseMale[] = _("Way to go!\nThat was an eye-opener!\p");
ALIGNED(4) const u8 sText_SwitchedMonsMale[] = _("Oh! How could you use that\nPOKéMON in that situation?\p");
ALIGNED(4) const u8 sText_YoureToughFemale[] = _("That POKéMON…\nIt's been raised really well!\p");
ALIGNED(4) const u8 sText_UsedGoodMoveFemale[] = _("That's it!\nThis is the right move now!\p");
ALIGNED(4) const u8 sText_BattleSurpriseFemale[] = _("That's awesome!\nYou can battle that way?\p");
ALIGNED(4) const u8 sText_SwitchedMonsFemale[] = _("You have exquisite timing for\nswitching POKéMON!\p");
const u8 *const gUnknown_082EEEAC[GENDER_COUNT][4] = {
[MALE] =
const u8 *const sBattleReactionTexts[GENDER_COUNT][4] = {
{
gUnknown_082EED44,
gUnknown_082EED6C,
gUnknown_082EED98,
gUnknown_082EEDBC
sText_YoureToughMale,
sText_UsedGoodMoveMale,
sText_BattleSurpriseMale,
sText_SwitchedMonsMale
},
[FEMALE] =
{
gUnknown_082EEDF4,
gUnknown_082EEE24,
gUnknown_082EEE4C,
gUnknown_082EEE78
sText_YoureToughFemale,
sText_UsedGoodMoveFemale,
sText_BattleSurpriseFemale,
sText_SwitchedMonsFemale
}
};
ALIGNED(4) const u8 gUnknown_082EEECC[] = _("Oh, I see!\nThis is educational!\p");
ALIGNED(4) const u8 gUnknown_082EEEF0[] = _("Don't say anything funny anymore!\nI'm sore from laughing!\p");
ALIGNED(4) const u8 gUnknown_082EEF2C[] = _("Oh?\nSomething like that happened.\p");
ALIGNED(4) const u8 gUnknown_082EEF50[] = _("Hmhm… What?\nSo is this what you're saying?\p");
ALIGNED(4) const u8 gUnknown_082EEF7C[] = _("Is that right?\nI didn't know that.\p");
ALIGNED(4) const u8 gUnknown_082EEFA0[] = _("Ahaha!\nWhat is that about?\p");
ALIGNED(4) const u8 gUnknown_082EEFBC[] = _("Yes, that's exactly it!\nThat's what I meant.\p");
ALIGNED(4) const u8 gUnknown_082EEFEC[] = _("In other words…\nYes! That's right!\p");
ALIGNED(4) const u8 sText_LearnedSomethingMale[] = _("Oh, I see!\nThis is educational!\p");
ALIGNED(4) const u8 sText_ThatsFunnyMale[] = _("Don't say anything funny anymore!\nI'm sore from laughing!\p");
ALIGNED(4) const u8 sText_RandomChatMale1[] = _("Oh?\nSomething like that happened.\p");
ALIGNED(4) const u8 sText_RandomChatMale2[] = _("Hmhm… What?\nSo is this what you're saying?\p");
ALIGNED(4) const u8 sText_LearnedSomethingFemale[] = _("Is that right?\nI didn't know that.\p");
ALIGNED(4) const u8 sText_ThatsFunnyFemale[] = _("Ahaha!\nWhat is that about?\p");
ALIGNED(4) const u8 sText_RandomChatFemale1[] = _("Yes, that's exactly it!\nThat's what I meant.\p");
ALIGNED(4) const u8 sText_RandomChatFemale2[] = _("In other words…\nYes! That's right!\p");
const u8 *const gUnknown_082EF010[GENDER_COUNT][4] = {
[MALE] =
const u8 *const sChatReactionTexts[GENDER_COUNT][4] = {
{
gUnknown_082EEECC,
gUnknown_082EEEF0,
gUnknown_082EEF2C,
gUnknown_082EEF50
sText_LearnedSomethingMale,
sText_ThatsFunnyMale,
sText_RandomChatMale1,
sText_RandomChatMale2
},
[FEMALE] =
{
gUnknown_082EEF7C,
gUnknown_082EEFA0,
gUnknown_082EEFBC,
gUnknown_082EEFEC
sText_LearnedSomethingFemale,
sText_ThatsFunnyFemale,
sText_RandomChatFemale1,
sText_RandomChatFemale2
}
};
ALIGNED(4) const u8 gUnknown_082EF030[] = _("I'm just showing my TRAINER CARD\nas my way of greeting.\p");
ALIGNED(4) const u8 gUnknown_082EF06C[] = _("I hope I get to know you better!\p");
ALIGNED(4) const u8 gUnknown_082EF090[] = _("We're showing each other our\nTRAINER CARDS to get acquainted.\p");
ALIGNED(4) const u8 gUnknown_082EF0D0[] = _("Glad to meet you.\nPlease don't be a stranger!\p");
ALIGNED(4) const u8 sText_ShowedTrainerCardMale1[] = _("I'm just showing my TRAINER CARD\nas my way of greeting.\p");
ALIGNED(4) const u8 sText_ShowedTrainerCardMale2[] = _("I hope I get to know you better!\p");
ALIGNED(4) const u8 sText_ShowedTrainerCardFemale1[] = _("We're showing each other our\nTRAINER CARDS to get acquainted.\p");
ALIGNED(4) const u8 sText_ShowedTrainerCardFemale2[] = _("Glad to meet you.\nPlease don't be a stranger!\p");
const u8 *const gUnknown_082EF100[GENDER_COUNT][2] = {
[MALE] =
const u8 *const sTrainerCardReactionTexts[GENDER_COUNT][2] = {
{
gUnknown_082EF030,
gUnknown_082EF06C
sText_ShowedTrainerCardMale1,
sText_ShowedTrainerCardMale2
},
[FEMALE] =
{
gUnknown_082EF090,
gUnknown_082EF0D0
sText_ShowedTrainerCardFemale1,
sText_ShowedTrainerCardFemale2
}
};
@@ -413,13 +410,11 @@ ALIGNED(4) const u8 sText_MaleTraded2[] = _("Finally, a trade got me that\nPOKé
ALIGNED(4) const u8 sText_FemaleTraded1[] = _("I'm trading POKéMON right now.\p");
ALIGNED(4) const u8 sText_FemaleTraded2[] = _("I finally got that POKéMON I\nwanted in a trade!\p");
const u8 *const sUnionRoomTexts_Traded[GENDER_COUNT][4] = {
[MALE] =
const u8 *const sTradeReactionTexts[GENDER_COUNT][4] = {
{
sText_MaleTraded1,
sText_MaleTraded2
},
[FEMALE] =
{
sText_FemaleTraded1,
sText_FemaleTraded2
@@ -442,17 +437,17 @@ ALIGNED(4) const u8 sText_RegistrationCanceled2[] = _("The registration has been
ALIGNED(4) const u8 sText_TradeTrainersWillBeListed[] = _("TRAINERS wishing to make a trade\nwill be listed."); // unused
ALIGNED(4) const u8 sText_ChooseTrainerToTradeWith2[] = _("Please choose the TRAINER with whom\nyou would like to trade POKéMON."); // unused
ALIGNED(4) const u8 sText_AskTrainerToMakeTrade[] = _("Would you like to ask {STR_VAR_1} to\nmake a trade?");
ALIGNED(4) const u8 sText_AwaitingResponseFromTrainer[] = _("Awaiting a response from\nthe other TRAINER…"); // unused
ALIGNED(4) const u8 sText_AwaitingResponseFromTrainer2[] = _("Awaiting a response from\nthe other TRAINER…"); // unused
ALIGNED(4) const u8 sText_NotRegisteredAMonForTrade[] = _("You have not registered a POKéMON\nfor trading.\p"); // unused
ALIGNED(4) const u8 sText_DontHaveTypeTrainerWants[] = _("You don't have a {STR_VAR_2}-type\nPOKéMON that {STR_VAR_1} wants.\p");
ALIGNED(4) const u8 sText_DontHaveEggTrainerWants[] = _("You don't have an EGG that\n{STR_VAR_1} wants.\p");
ALIGNED(4) const u8 sText_CantTradeMonRightNow[] = _("{STR_VAR_1} can't make a trade for\nyour POKéMON right now.\p");
ALIGNED(4) const u8 sText_CantTradePartnersMonRightNow[] = _("You can't make a trade for\n{STR_VAR_1}'s POKéMON right now.\p");
ALIGNED(4) const u8 sText_PlayerCantTradeForYourMon[] = _("{STR_VAR_1} can't make a trade for\nyour POKéMON right now.\p");
ALIGNED(4) const u8 sText_CantTradeForPartnersMon[] = _("You can't make a trade for\n{STR_VAR_1}'s POKéMON right now.\p");
// unused
const u8 *const sUnionRoomTexts_CantTradeRightNow[] = {
sText_CantTradeMonRightNow,
sText_CantTradePartnersMonRightNow
// Unused
const u8 *const sCantTradeMonTexts[] = {
sText_PlayerCantTradeForYourMon,
sText_CantTradeForPartnersMon
};
ALIGNED(4) const u8 sText_TradeOfferRejected[] = _("Your trade offer was rejected.\p");
@@ -504,27 +499,27 @@ static const u8 *const sChooseTrainerTexts[NUM_LINK_GROUP_TYPES] =
[LINK_GROUP_BATTLE_TOWER_OPEN] = sText_ChooseLeaderBattleTowerOpenLv
};
ALIGNED(4) const u8 gUnknown_082EFBC8[] = _("Searching for a WIRELESS\nCOMMUNICATION SYSTEM. Wait...");
ALIGNED(4) const u8 unref_text_union_room_12[] = _("For a DOUBLE BATTLE, you must have\nat least two POKéMON.\p");
ALIGNED(4) const u8 gUnknown_082EFC3C[] = _("Awaiting {STR_VAR_1}'s response…");
ALIGNED(4) const u8 gUnknown_082EFC54[] = _("{STR_VAR_1} has been asked to register\nyou as a member. Please wait.");
ALIGNED(4) const u8 gUnknown_082EFC90[] = _("Awaiting a response from the\nWIRELESS COMMUNICATION SYSTEM.");
ALIGNED(4) const u8 unref_text_union_room_13[] = _("Please wait for other TRAINERS to\ngather and get ready.");
ALIGNED(4) const u8 gUnknown_082EFD04[] = _("No CARDS appear to be shared \nright now.");
ALIGNED(4) const u8 gUnknown_082EFD30[] = _("No NEWS appears to be shared\nright now.");
ALIGNED(4) const u8 sText_SearchingForWirelessSystemWait[] = _("Searching for a WIRELESS\nCOMMUNICATION SYSTEM. Wait...");
ALIGNED(4) const u8 sText_MustHaveTwoMonsForDoubleBattle[] = _("For a DOUBLE BATTLE, you must have\nat least two POKéMON.\p"); // Unused
ALIGNED(4) const u8 sText_AwaitingPlayersResponse[] = _("Awaiting {STR_VAR_1}'s response…");
ALIGNED(4) const u8 sText_PlayerHasBeenAskedToRegisterYouPleaseWait[] = _("{STR_VAR_1} has been asked to register\nyou as a member. Please wait.");
ALIGNED(4) const u8 sText_AwaitingResponseFromWirelessSystem[] = _("Awaiting a response from the\nWIRELESS COMMUNICATION SYSTEM.");
ALIGNED(4) const u8 sText_PleaseWaitForOtherTrainersToGather[] = _("Please wait for other TRAINERS to\ngather and get ready."); // Unused
ALIGNED(4) const u8 sText_NoCardsSharedRightNow[] = _("No CARDS appear to be shared \nright now.");
ALIGNED(4) const u8 sText_NoNewsSharedRightNow[] = _("No NEWS appears to be shared\nright now.");
const u8 *const gUnknown_082EFD58[] = {
gUnknown_082EFD04,
gUnknown_082EFD30
const u8 *const sNoWonderSharedTexts[] = {
sText_NoCardsSharedRightNow,
sText_NoNewsSharedRightNow
};
ALIGNED(4) const u8 gUnknown_082EFD60[] = _("BATTLE");
ALIGNED(4) const u8 gUnknown_082EFD68[] = _("CHAT");
ALIGNED(4) const u8 gUnknown_082EFD70[] = _("GREETINGS");
ALIGNED(4) const u8 gUnknown_082EFD7C[] = _("EXIT");
ALIGNED(4) const u8 gUnknown_082EFD84[] = _("EXIT");
ALIGNED(4) const u8 gUnknown_082EFD8C[] = _("INFO");
ALIGNED(4) const u8 gUnknown_082EFD94[] = _("NAME{CLEAR_TO 0x3C}WANTED{CLEAR_TO 0x6E}OFFER{CLEAR_TO 0xC6}LV.");
ALIGNED(4) const u8 sText_Battle[] = _("BATTLE");
ALIGNED(4) const u8 sText_Chat2[] = _("CHAT");
ALIGNED(4) const u8 sText_Greetings[] = _("GREETINGS");
ALIGNED(4) const u8 sText_Exit[] = _("EXIT");
ALIGNED(4) const u8 sText_Exit2[] = _("EXIT");
ALIGNED(4) const u8 sText_Info[] = _("INFO");
ALIGNED(4) const u8 sText_NameWantedOfferLv[] = _("NAME{CLEAR_TO 0x3C}WANTED{CLEAR_TO 0x6E}OFFER{CLEAR_TO 0xC6}LV.");
ALIGNED(4) const u8 sText_SingleBattle[] = _("SINGLE BATTLE");
ALIGNED(4) const u8 sText_DoubleBattle[] = _("DOUBLE BATTLE");
ALIGNED(4) const u8 sText_MultiBattle[] = _("MULTI BATTLE");
@@ -560,20 +555,20 @@ static const u8 *const sCardColorTexts[] = {
sText_ItsGoldCard
};
ALIGNED(4) const u8 gUnknown_082EFF64[] = _("This is {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}'s\nTRAINER CARD…\l{SPECIAL_F7 0x02}\pPOKéDEX: {SPECIAL_F7 0x03}\nTIME: {SPECIAL_F7 0x04}:{SPECIAL_F7 0x05}\p");
ALIGNED(4) const u8 gUnknown_082EFFA4[] = _("BATTLES: WINS: {SPECIAL_F7 0x00} LOSSES: {SPECIAL_F7 0x02}\nTRADES: {SPECIAL_F7 0x03}\p“{SPECIAL_F7 0x04} {SPECIAL_F7 0x05}\n{SPECIAL_F7 0x06} {SPECIAL_F7 0x07}”\p");
ALIGNED(4) const u8 gUnknown_082EFFDC[] = _("{SPECIAL_F7 0x01}: Glad to have met you!{PAUSE 60}");
ALIGNED(4) const u8 gUnknown_082EFFFC[] = _("{SPECIAL_F7 0x01}: Glad to meet you!{PAUSE 60}");
ALIGNED(4) const u8 sText_TrainerCardInfoPage1[] = _("This is {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}'s\nTRAINER CARD…\l{SPECIAL_F7 0x02}\pPOKéDEX: {SPECIAL_F7 0x03}\nTIME: {SPECIAL_F7 0x04}:{SPECIAL_F7 0x05}\p");
ALIGNED(4) const u8 sText_TrainerCardInfoPage2[] = _("BATTLES: WINS: {SPECIAL_F7 0x00} LOSSES: {SPECIAL_F7 0x02}\nTRADES: {SPECIAL_F7 0x03}\p“{SPECIAL_F7 0x04} {SPECIAL_F7 0x05}\n{SPECIAL_F7 0x06} {SPECIAL_F7 0x07}”\p");
ALIGNED(4) const u8 sText_GladToMeetYouMale[] = _("{SPECIAL_F7 0x01}: Glad to have met you!{PAUSE 60}");
ALIGNED(4) const u8 sText_GladToMeetYouFemale[] = _("{SPECIAL_F7 0x01}: Glad to meet you!{PAUSE 60}");
const u8 *const gUnknown_082F0018[] = {
gUnknown_082EFFDC,
gUnknown_082EFFFC
const u8 *const sGladToMeetYouTexts[GENDER_COUNT] = {
sText_GladToMeetYouMale,
sText_GladToMeetYouFemale
};
ALIGNED(4) const u8 gUnknown_082F0020[] = _("Finished checking {SPECIAL_F7 0x01}'s\nTRAINER CARD.{PAUSE 60}");
ALIGNED(4) const u8 sText_FinishedCheckingPlayersTrainerCard[] = _("Finished checking {SPECIAL_F7 0x01}'s\nTRAINER CARD.{PAUSE 60}");
const u8 *const gUnknown_082F0048[] = {
gText_EmptyString,
const u8 *const sLinkGroupActivityTexts[] = {
sText_EmptyString,
sText_SingleBattle,
sText_DoubleBattle,
sText_MultiBattle,
@@ -586,14 +581,14 @@ const u8 *const gUnknown_082F0048[] = {
sText_BerryCrush,
sText_BerryPicking,
sText_Search,
gText_EmptyString,
sText_EmptyString,
sText_BattleTowerOpenLv,
sText_RecordCorner,
sText_BerryBlender,
gText_EmptyString,
gText_EmptyString,
gText_EmptyString,
gText_EmptyString,
sText_EmptyString,
sText_EmptyString,
sText_EmptyString,
sText_EmptyString,
sText_WonderCards,
sText_WonderNews,
sText_CoolContest,
@@ -670,11 +665,11 @@ const struct WindowTemplate gUnknown_082F012C = {
};
const struct ListMenuItem gUnknown_082F0134[] = {
{ gText_EmptyString, 0 },
{ gText_EmptyString, 1 },
{ gText_EmptyString, 2 },
{ gText_EmptyString, 3 },
{ gText_EmptyString, 4 }
{ sText_EmptyString, 0 },
{ sText_EmptyString, 1 },
{ sText_EmptyString, 2 },
{ sText_EmptyString, 3 },
{ sText_EmptyString, 4 }
};
const struct ListMenuTemplate gUnknown_082F015C = {
@@ -719,22 +714,22 @@ const struct WindowTemplate gUnknown_082F017C = {
};
const struct ListMenuItem gUnknown_082F0184[] = {
{ gText_EmptyString, 0 },
{ gText_EmptyString, 1 },
{ gText_EmptyString, 2 },
{ gText_EmptyString, 3 },
{ gText_EmptyString, 4 },
{ gText_EmptyString, 5 },
{ gText_EmptyString, 6 },
{ gText_EmptyString, 7 },
{ gText_EmptyString, 8 },
{ gText_EmptyString, 9 },
{ gText_EmptyString, 10 },
{ gText_EmptyString, 11 },
{ gText_EmptyString, 12 },
{ gText_EmptyString, 13 },
{ gText_EmptyString, 14 },
{ gText_EmptyString, 15 }
{ sText_EmptyString, 0 },
{ sText_EmptyString, 1 },
{ sText_EmptyString, 2 },
{ sText_EmptyString, 3 },
{ sText_EmptyString, 4 },
{ sText_EmptyString, 5 },
{ sText_EmptyString, 6 },
{ sText_EmptyString, 7 },
{ sText_EmptyString, 8 },
{ sText_EmptyString, 9 },
{ sText_EmptyString, 10 },
{ sText_EmptyString, 11 },
{ sText_EmptyString, 12 },
{ sText_EmptyString, 13 },
{ sText_EmptyString, 14 },
{ sText_EmptyString, 15 }
};
const struct ListMenuTemplate gUnknown_082F0204 = {
@@ -769,10 +764,10 @@ const struct WindowTemplate gUnknown_082F021C = {
};
const struct ListMenuItem gUnknown_082F0224[] = {
{ gUnknown_082EFD70, 0x208 },
{ gUnknown_082EFD60, 0x241 },
{ gUnknown_082EFD68, 0x245 },
{ gUnknown_082EFD7C, 0x040 }
{ sText_Greetings, 0x208 },
{ sText_Battle, 0x241 },
{ sText_Chat2, 0x245 },
{ sText_Exit, 0x040 }
};
const struct ListMenuTemplate gUnknown_082F0244 = {
@@ -808,8 +803,8 @@ const struct WindowTemplate gUnknown_082F025C = {
const struct ListMenuItem gUnknown_082F0264[] = {
{ gText_Register, 1 },
{ gUnknown_082EFD8C, 2 },
{ gUnknown_082EFD7C, 3 }
{ sText_Info, 2 },
{ sText_Exit, 3 }
};
const struct ListMenuTemplate gUnknown_082F027C = {
@@ -861,7 +856,7 @@ static const struct ListMenuItem sTradingBoardTypes[] = {
{ gTypeNames[TYPE_DRAGON], TYPE_DRAGON },
{ gTypeNames[TYPE_STEEL], TYPE_STEEL },
{ gTypeNames[TYPE_DARK], TYPE_DARK },
{ gUnknown_082EFD7C, NUMBER_OF_MON_TYPES }
{ sText_Exit, NUMBER_OF_MON_TYPES }
};
const struct ListMenuTemplate sMenuTemplate_TradingBoardRequestType = {
@@ -906,16 +901,16 @@ const struct WindowTemplate gUnknown_082F034C = {
};
const struct ListMenuItem gUnknown_082F0354[] = {
{ gText_EmptyString, -3 },
{ gText_EmptyString, 0 },
{ gText_EmptyString, 1 },
{ gText_EmptyString, 2 },
{ gText_EmptyString, 3 },
{ gText_EmptyString, 4 },
{ gText_EmptyString, 5 },
{ gText_EmptyString, 6 },
{ gText_EmptyString, 7 },
{ gUnknown_082EFD84, 8 }
{ sText_EmptyString, -3 },
{ sText_EmptyString, 0 },
{ sText_EmptyString, 1 },
{ sText_EmptyString, 2 },
{ sText_EmptyString, 3 },
{ sText_EmptyString, 4 },
{ sText_EmptyString, 5 },
{ sText_EmptyString, 6 },
{ sText_EmptyString, 7 },
{ sText_Exit2, 8 }
};
const struct ListMenuTemplate gUnknown_082F03A4 = {
@@ -950,22 +945,22 @@ const struct WindowTemplate UnrefWindowTemplate_082F03B4 = {
};
const struct ListMenuItem gUnknown_082F03C4[] = {
{ gText_EmptyString, 0 },
{ gText_EmptyString, 1 },
{ gText_EmptyString, 2 },
{ gText_EmptyString, 3 },
{ gText_EmptyString, 4 },
{ gText_EmptyString, 5 },
{ gText_EmptyString, 6 },
{ gText_EmptyString, 7 },
{ gText_EmptyString, 8 },
{ gText_EmptyString, 9 },
{ gText_EmptyString, 10 },
{ gText_EmptyString, 11 },
{ gText_EmptyString, 12 },
{ gText_EmptyString, 13 },
{ gText_EmptyString, 14 },
{ gText_EmptyString, 15 }
{ sText_EmptyString, 0 },
{ sText_EmptyString, 1 },
{ sText_EmptyString, 2 },
{ sText_EmptyString, 3 },
{ sText_EmptyString, 4 },
{ sText_EmptyString, 5 },
{ sText_EmptyString, 6 },
{ sText_EmptyString, 7 },
{ sText_EmptyString, 8 },
{ sText_EmptyString, 9 },
{ sText_EmptyString, 10 },
{ sText_EmptyString, 11 },
{ sText_EmptyString, 12 },
{ sText_EmptyString, 13 },
{ sText_EmptyString, 14 },
{ sText_EmptyString, 15 }
};
const struct ListMenuTemplate UnrefListMenuTemplate_082F0444 = {
+40 -40
View File
@@ -2704,17 +2704,17 @@ static const u16 gUnknown_082F7B50[][4] =
{9999, 9999, 9999, 0},
};
static const u8 gUnknown_082F7B78[] = _("あいうえおかき");
static const u8 gUnknown_082F7B80[] = _("ABCDEFG");
static const u8 gUnknown_082F7B88[] = _("0123456");
static const u8 sJPText_Vowels[] = _("あいうえおかき");
static const u8 sText_ABCDEFG[] = _("ABCDEFG");
static const u8 sText_0123456[] = _("0123456");
static const u8 *const gUnknown_082F7B90[] =
static const u8 *const sPlaceholderPlayerNames[] =
{
gUnknown_082F7B78,
gUnknown_082F7B78,
gUnknown_082F7B78,
gUnknown_082F7B80,
gUnknown_082F7B88
sJPText_Vowels,
sJPText_Vowels,
sJPText_Vowels,
sText_ABCDEFG,
sText_0123456
};
static void sub_8027D20(void)
@@ -2726,8 +2726,8 @@ static void sub_8027D38(void)
{
u8 i, playerId;
for (playerId = gUnknown_02022C98->unk24; playerId < 5; playerId++)
StringCopy(gLinkPlayers[playerId].name, gUnknown_082F7B90[playerId]);
for (playerId = gUnknown_02022C98->unk24; playerId < ARRAY_COUNT(sPlaceholderPlayerNames); playerId++)
StringCopy(gLinkPlayers[playerId].name, sPlaceholderPlayerNames[playerId]);
gUnknown_02022C98->unk24 = 5;
for (i = 0; i < 4; i++)
@@ -3555,14 +3555,14 @@ static const u32 gDodrioBerryBgTilemap2Left[] = INCBIN_U32("graphics/link_games/
static const struct OamData sOamData_82FB1E0 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.shape = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
.size = 3,
.size = SPRITE_SIZE(64x64),
.tileNum = 0,
.priority = 2,
.paletteNum = 0,
@@ -3572,14 +3572,14 @@ static const struct OamData sOamData_82FB1E0 =
static const struct OamData sOamData_82FB1E8 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.shape = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x16),
.x = 0,
.matrixNum = 0,
.size = 1,
.size = SPRITE_SIZE(16x16),
.tileNum = 0,
.priority = 0,
.paletteNum = 0,
@@ -3589,14 +3589,14 @@ static const struct OamData sOamData_82FB1E8 =
static const struct OamData sOamData_82FB1F0 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.shape = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x16),
.x = 0,
.matrixNum = 0,
.size = 1,
.size = SPRITE_SIZE(16x16),
.tileNum = 0,
.priority = 2,
.paletteNum = 0,
@@ -3606,14 +3606,14 @@ static const struct OamData sOamData_82FB1F0 =
static const struct OamData sOamData_82FB1F8 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.shape = 1,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x32),
.x = 0,
.matrixNum = 0,
.size = 3,
.size = SPRITE_SIZE(64x32),
.tileNum = 0,
.priority = 3,
.paletteNum = 0,
@@ -4386,12 +4386,12 @@ struct WinCoords
u8 top;
};
static const u8 gUnknown_082FB380[][3] =
static const u8 sTextColorTable[][3] =
{
{1, 2, 3},
{1, 4, 5},
{1, 8, 9},
{1, 6, 7},
{TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY},
{TEXT_COLOR_WHITE, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED},
{TEXT_COLOR_WHITE, TEXT_COLOR_BLUE, TEXT_COLOR_LIGHT_BLUE},
{TEXT_COLOR_WHITE, TEXT_COLOR_GREEN, TEXT_COLOR_LIGHT_GREEN},
};
static const struct WinCoords gUnknown_082FB38C[] = {{12, 6}};
@@ -4525,7 +4525,7 @@ static void sub_8029440(void)
if (id == GetMultiplayerId())
colorsId = 2;
name = sub_8027660(id);
AddTextPrinterParameterized3(gUnknown_02022CF8->unk3008[i], 1, left, 1, gUnknown_082FB380[colorsId], -1, name);
AddTextPrinterParameterized3(gUnknown_02022CF8->unk3008[i], 1, left, 1, sTextColorTable[colorsId], -1, name);
CopyWindowToVram(gUnknown_02022CF8->unk3008[i], 2);
window.baseBlock += 0xE;
sub_8029174(&window);
@@ -4609,7 +4609,7 @@ static void sub_80296A8(u8 playersCount_)
if (id == GetMultiplayerId())
colorsId = 2;
name = sub_8027660(id);
AddTextPrinterParameterized3(gUnknown_02022CF8->unk3008[1], 1, 28, gUnknown_082FB402[i], gUnknown_082FB380[colorsId], -1, name);
AddTextPrinterParameterized3(gUnknown_02022CF8->unk3008[1], 1, 28, gUnknown_082FB402[i], sTextColorTable[colorsId], -1, name);
ConvertIntToDecimalStringN(numString, points, STR_CONV_MODE_LEFT_ALIGN, 7);
numWidth = GetStringWidth(1, numString, -1);
AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, numString, x - numWidth, gUnknown_082FB402[i], -1, NULL);
@@ -4653,7 +4653,7 @@ static void sub_802988C(void)
colorsId = 2;
name = sub_8027660(i);
AddTextPrinterParameterized3(gUnknown_02022CF8->unk3008[1], 1, 0, gUnknown_082FB3F8[i], gUnknown_082FB380[colorsId], -1, name);
AddTextPrinterParameterized3(gUnknown_02022CF8->unk3008[1], 1, 0, gUnknown_082FB3F8[i], sTextColorTable[colorsId], -1, name);
for (j = 0; j < 4; j++)
{
u32 width;
@@ -4663,7 +4663,7 @@ static void sub_802988C(void)
ConvertIntToDecimalStringN(gStringVar4, result1, STR_CONV_MODE_LEFT_ALIGN, 4);
width = GetStringWidth(1, gStringVar4, -1);
if (result2 == result1 && result2 != 0)
AddTextPrinterParameterized3(gUnknown_02022CF8->unk3008[1], 1, gUnknown_082FB3F0[j] - width, gUnknown_082FB3F8[i], gUnknown_082FB380[1], -1, gStringVar4);
AddTextPrinterParameterized3(gUnknown_02022CF8->unk3008[1], 1, gUnknown_082FB3F0[j] - width, gUnknown_082FB3F8[i], sTextColorTable[1], -1, gStringVar4);
else
AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gStringVar4, gUnknown_082FB3F0[j] - width, gUnknown_082FB3F8[i], -1, NULL);
}
+6 -6
View File
@@ -3703,7 +3703,7 @@ static void sub_811CFCC(void)
xOffset = GetStringCenterAlignXOffset(1, titleText, 144);
FillWindowPixelBuffer(0, PIXEL_FILL(0));
sub_811D058(0, 1, titleText, xOffset, 1, 0xFF, 0, 2, 3);
sub_811D058(0, 1, titleText, xOffset, 1, 0xFF, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
PutWindowTilemap(0);
CopyWindowToVram(0, 3);
}
@@ -3713,12 +3713,12 @@ void sub_811D028(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, vo
AddTextPrinterParameterized(windowId, fontId, str, x, y, speed, callback);
}
static void sub_811D058(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, u8 red, u8 green, u8 blue)
static void sub_811D058(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, u8 bg, u8 fg, u8 shadow)
{
u8 color[3];
color[0] = red;
color[1] = green;
color[2] = blue;
color[0] = bg;
color[1] = fg;
color[2] = shadow;
AddTextPrinterParameterized3(windowId, fontId, left, top, color, speed, str);
}
@@ -4089,7 +4089,7 @@ static void sub_811D864(u8 arg0, u8 arg1)
if (!sub_811BF88(easyChatWord))
sub_811D028(2, 1, sUnknown_0203A11C->unkCC, (j * 13 + 3) * 8, y, 0xFF, NULL);
else
sub_811D058(2, 1, sUnknown_0203A11C->unkCC, (j * 13 + 3) * 8, y, 0xFF, 1, 5, 3);
sub_811D058(2, 1, sUnknown_0203A11C->unkCC, (j * 13 + 3) * 8, y, 0xFF, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_RED, TEXT_COLOR_LIGHT_GREY);
}
}
+6 -6
View File
@@ -83,10 +83,10 @@ static const u8 sEggShardTiles[] = INCBIN_U8("graphics/misc/egg_shard.4bpp");
static const struct OamData sOamData_EggHatch =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x32),
.x = 0,
.matrixNum = 0,
@@ -163,10 +163,10 @@ static const struct SpriteTemplate sSpriteTemplate_EggHatch =
static const struct OamData sOamData_EggShard =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(8x8),
.x = 0,
.matrixNum = 0,
+4 -4
View File
@@ -757,13 +757,13 @@ static void sub_810A9DC(struct Sprite *sprite)
{
if (!sprite->data[0])
{
sprite->oam.shape = 2;
sprite->oam.size = 0;
sprite->oam.shape = SPRITE_SHAPE(8x16);
sprite->oam.size = SPRITE_SIZE(8x16);
}
else
{
sprite->oam.shape = 0;
sprite->oam.size = 1;
sprite->oam.shape = SPRITE_SHAPE(16x16);
sprite->oam.size = SPRITE_SIZE(16x16);
}
if (++sprite->data[1] == 15)
DestroySprite(sprite);
+14 -14
View File
@@ -251,7 +251,7 @@ static void sub_81D5084(u8 taskId)
switch (data->unk8)
{
case 0:
if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gUnknown_085EDFD6))
if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gJPText_ReceiveMysteryGiftWithEReader))
data->unk8 = 1;
break;
case 1:
@@ -275,9 +275,9 @@ static void sub_81D5084(u8 taskId)
}
break;
case 4:
if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gUnknown_085EDFF5))
if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gJPText_SelectConnectFromEReaderMenu))
{
AddTextPrinterToWindow1(gUnknown_085EE014);
AddTextPrinterToWindow1(gJPText_SelectConnectWithGBA);
sub_81D505C(&data->unk0);
data->unk8 = 5;
}
@@ -324,11 +324,11 @@ static void sub_81D5084(u8 taskId)
}
break;
case 7:
if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gUnknown_085EE05C))
if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gJPText_LinkIsIncorrect))
data->unk8 = 4;
break;
case 8:
AddTextPrinterToWindow1(gUnknown_085EE097);
AddTextPrinterToWindow1(gJPText_Connecting);
// XXX: This (u32*) cast is discarding the const qualifier from gUnknown_089A3470
sub_81D4D50(&gUnknown_03006370, gMultiBootProgram_BerryGlitchFix_Start - gUnknown_089A3470, (u32*)gUnknown_089A3470);
data->unk8 = 9;
@@ -347,7 +347,7 @@ static void sub_81D5084(u8 taskId)
else if (data->unkE == 1)
{
sub_81D505C(&data->unk0);
AddTextPrinterToWindow1(gUnknown_085EE120);
AddTextPrinterToWindow1(gJPText_PleaseWaitAMoment);
data->unk8 = 11;
}
else
@@ -361,7 +361,7 @@ static void sub_81D5084(u8 taskId)
break;
case 12:
sub_81D4E30();
AddTextPrinterToWindow1(gUnknown_085EE0DC);
AddTextPrinterToWindow1(gJPText_AllowEReaderToLoadCard);
data->unk8 = 13;
break;
case 13:
@@ -370,7 +370,7 @@ static void sub_81D5084(u8 taskId)
case 0:
break;
case 2:
AddTextPrinterToWindow1(gUnknown_085EE097);
AddTextPrinterToWindow1(gJPText_Connecting);
data->unk8 = 14;
break;
case 1:
@@ -418,7 +418,7 @@ static void sub_81D5084(u8 taskId)
case 17:
if (TryWriteTrainerHill((struct EReaderTrainerHillSet *)&gDecompressionBuffer))
{
AddTextPrinterToWindow1(gUnknown_085EE0FA);
AddTextPrinterToWindow1(gJPText_ConnectionComplete);
sub_81D505C(&data->unk0);
data->unk8 = 18;
}
@@ -430,7 +430,7 @@ static void sub_81D5084(u8 taskId)
case 18:
if (sub_81D5064(&data->unk0, 120))
{
AddTextPrinterToWindow1(gUnknown_085EE107);
AddTextPrinterToWindow1(gJPText_NewTrainerHasComeToHoenn);
PlayFanfare(MUS_FANFA4);
data->unk8 = 19;
}
@@ -440,19 +440,19 @@ static void sub_81D5084(u8 taskId)
data->unk8 = 26;
break;
case 23:
if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9,gUnknown_085EE06B))
if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gJPText_CardReadingHasBeenHalted))
data->unk8 = 26;
break;
case 20:
if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gUnknown_085EE0A3))
if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gJPText_ConnectionErrorCheckLink))
data->unk8 = 0;
break;
case 21:
if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gUnknown_085EE0BF))
if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gJPText_ConnectionErrorTryAgain))
data->unk8 = 0;
break;
case 22:
if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gUnknown_085EE12D))
if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gJPText_WriteErrorUnableToSaveData))
data->unk8 = 0;
break;
case 26:
+14 -174
View File
@@ -1121,13 +1121,13 @@ void ResetEventObjects(void)
static void CreateReflectionEffectSprites(void)
{
u8 spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[21], 0, 0, 31);
gSprites[spriteId].oam.affineMode = 1;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
InitSpriteAffineAnim(&gSprites[spriteId]);
StartSpriteAffineAnim(&gSprites[spriteId], 0);
gSprites[spriteId].invisible = TRUE;
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[21], 0, 0, 31);
gSprites[spriteId].oam.affineMode = 1;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
InitSpriteAffineAnim(&gSprites[spriteId]);
StartSpriteAffineAnim(&gSprites[spriteId], 1);
gSprites[spriteId].invisible = TRUE;
@@ -1199,8 +1199,6 @@ static u8 GetEventObjectIdByLocalId(u8 localId)
return EVENT_OBJECTS_COUNT;
}
// This function has the same nonmatching quirk as in Ruby/Sapphire.
#ifdef NONMATCHING
static u8 InitEventObjectStateFromTemplate(struct EventObjectTemplate *template, u8 mapNum, u8 mapGroup)
{
struct EventObject *eventObject;
@@ -1208,11 +1206,8 @@ static u8 InitEventObjectStateFromTemplate(struct EventObjectTemplate *template,
s16 x;
s16 y;
// mapNum and mapGroup are in the wrong registers (r7/r6 instead of r6/r7)
if (GetAvailableEventObjectId(template->localId, mapNum, mapGroup, &eventObjectId))
{
return EVENT_OBJECTS_COUNT;
}
eventObject = &gEventObjects[eventObjectId];
ClearEventObject(eventObject);
x = template->x + 7;
@@ -1223,6 +1218,7 @@ static u8 InitEventObjectStateFromTemplate(struct EventObjectTemplate *template,
eventObject->movementType = template->movementType;
eventObject->localId = template->localId;
eventObject->mapNum = mapNum;
eventObject++; eventObject--;
eventObject->mapGroup = mapGroup;
eventObject->initialCoords.x = x;
eventObject->initialCoords.y = y;
@@ -1232,7 +1228,6 @@ static u8 InitEventObjectStateFromTemplate(struct EventObjectTemplate *template,
eventObject->previousCoords.y = y;
eventObject->currentElevation = template->elevation;
eventObject->previousElevation = template->elevation;
// For some reason, 0x0F is placed in r9, to be used later
eventObject->range.as_nybbles.x = template->movementRangeX;
eventObject->range.as_nybbles.y = template->movementRangeY;
eventObject->trainerType = template->trainerType;
@@ -1240,177 +1235,22 @@ static u8 InitEventObjectStateFromTemplate(struct EventObjectTemplate *template,
eventObject->previousMovementDirection = gInitialMovementTypeFacingDirections[template->movementType];
SetEventObjectDirection(eventObject, eventObject->previousMovementDirection);
SetEventObjectDynamicGraphicsId(eventObject);
#ifndef NONMATCHING
asm("":::"r5", "r6");
#endif
if (gRangedMovementTypes[eventObject->movementType])
{
if ((eventObject->range.as_nybbles.x) == 0)
if (eventObject->range.as_nybbles.x == 0)
{
// r9 is invoked here
eventObject->range.as_nybbles.x++;
}
if ((eventObject->range.as_nybbles.y) == 0)
if (eventObject->range.as_nybbles.y == 0)
{
eventObject->range.as_nybbles.y++;
}
}
return eventObjectId;
}
#else
static NAKED u8 InitEventObjectStateFromTemplate(struct EventObjectTemplate *template, u8 mapId, u8 mapGroupId)
{
asm_unified("\tpush {r4-r7,lr}\n"
"\tmov r7, r9\n"
"\tmov r6, r8\n"
"\tpush {r6,r7}\n"
"\tsub sp, 0x4\n"
"\tadds r5, r0, 0\n"
"\tlsls r1, 24\n"
"\tlsrs r6, r1, 24\n"
"\tlsls r2, 24\n"
"\tlsrs r7, r2, 24\n"
"\tldrb r0, [r5]\n"
"\tadds r1, r6, 0\n"
"\tadds r2, r7, 0\n"
"\tmov r3, sp\n"
"\tbl GetAvailableEventObjectId\n"
"\tlsls r0, 24\n"
"\tcmp r0, 0\n"
"\tbeq _0808D66E\n"
"\tmovs r0, 0x10\n"
"\tb _0808D762\n"
"_0808D66E:\n"
"\tmov r0, sp\n"
"\tldrb r1, [r0]\n"
"\tlsls r0, r1, 3\n"
"\tadds r0, r1\n"
"\tlsls r0, 2\n"
"\tldr r1, =gEventObjects\n"
"\tadds r4, r0, r1\n"
"\tadds r0, r4, 0\n"
"\tbl ClearEventObject\n"
"\tldrh r3, [r5, 0x4]\n"
"\tadds r3, 0x7\n"
"\tlsls r3, 16\n"
"\tlsrs r3, 16\n"
"\tldrh r2, [r5, 0x6]\n"
"\tadds r2, 0x7\n"
"\tlsls r2, 16\n"
"\tlsrs r2, 16\n"
"\tldrb r0, [r4]\n"
"\tmovs r1, 0x1\n"
"\torrs r0, r1\n"
"\tmovs r1, 0x4\n"
"\torrs r0, r1\n"
"\tstrb r0, [r4]\n"
"\tldrb r0, [r5, 0x1]\n"
"\tstrb r0, [r4, 0x5]\n"
"\tldrb r0, [r5, 0x9]\n"
"\tstrb r0, [r4, 0x6]\n"
"\tldrb r0, [r5]\n"
"\tstrb r0, [r4, 0x8]\n"
"\tstrb r6, [r4, 0x9]\n"
"\tstrb r7, [r4, 0xA]\n"
"\tstrh r3, [r4, 0xC]\n"
"\tstrh r2, [r4, 0xE]\n"
"\tstrh r3, [r4, 0x10]\n"
"\tstrh r2, [r4, 0x12]\n"
"\tstrh r3, [r4, 0x14]\n"
"\tstrh r2, [r4, 0x16]\n"
"\tldrb r0, [r5, 0x8]\n"
"\tmovs r7, 0xF\n"
"\tadds r1, r7, 0\n"
"\tands r1, r0\n"
"\tldrb r2, [r4, 0xB]\n"
"\tmovs r0, 0x10\n"
"\tnegs r0, r0\n"
"\tmov r8, r0\n"
"\tands r0, r2\n"
"\torrs r0, r1\n"
"\tstrb r0, [r4, 0xB]\n"
"\tldrb r1, [r5, 0x8]\n"
"\tlsls r1, 4\n"
"\tands r0, r7\n"
"\torrs r0, r1\n"
"\tstrb r0, [r4, 0xB]\n"
"\tldrb r1, [r5, 0xA]\n"
"\tlsls r1, 28\n"
"\tmovs r0, 0xF\n"
"\tmov r9, r0\n"
"\tlsrs r1, 28\n"
"\tldrb r2, [r4, 0x19]\n"
"\tmov r0, r8\n"
"\tands r0, r2\n"
"\torrs r0, r1\n"
"\tstrb r0, [r4, 0x19]\n"
"\tldrb r1, [r5, 0xA]\n"
"\tlsrs r1, 4\n"
"\tlsls r1, 4\n"
"\tands r0, r7\n"
"\torrs r0, r1\n"
"\tstrb r0, [r4, 0x19]\n"
"\tldrh r0, [r5, 0xC]\n"
"\tstrb r0, [r4, 0x7]\n"
"\tldrh r0, [r5, 0xE]\n"
"\tstrb r0, [r4, 0x1D]\n"
"\tldr r1, =gInitialMovementTypeFacingDirections\n"
"\tldrb r0, [r5, 0x9]\n"
"\tadds r0, r1\n"
"\tldrb r1, [r0]\n"
"\tadds r0, r4, 0\n"
"\tadds r0, 0x20\n"
"\tstrb r1, [r0]\n"
"\tldrb r1, [r0]\n"
"\tadds r0, r4, 0\n"
"\tbl SetEventObjectDirection\n"
"\tadds r0, r4, 0\n"
"\tbl SetEventObjectDynamicGraphicsId\n"
"\tldr r1, =gRangedMovementTypes\n"
"\tldrb r0, [r4, 0x6]\n"
"\tadds r0, r1\n"
"\tldrb r0, [r0]\n"
"\tcmp r0, 0\n"
"\tbeq _0808D75E\n"
"\tldrb r2, [r4, 0x19]\n"
"\tadds r0, r7, 0\n"
"\tands r0, r2\n"
"\tcmp r0, 0\n"
"\tbne _0808D746\n"
"\tlsls r0, r2, 28\n"
"\tlsrs r0, 28\n"
"\tadds r0, 0x1\n"
"\tmov r1, r9\n"
"\tands r0, r1\n"
"\tmov r1, r8\n"
"\tands r1, r2\n"
"\torrs r1, r0\n"
"\tstrb r1, [r4, 0x19]\n"
"_0808D746:\n"
"\tldrb r2, [r4, 0x19]\n"
"\tmovs r0, 0xF0\n"
"\tands r0, r2\n"
"\tcmp r0, 0\n"
"\tbne _0808D75E\n"
"\tlsrs r1, r2, 4\n"
"\tadds r1, 0x1\n"
"\tlsls r1, 4\n"
"\tadds r0, r7, 0\n"
"\tands r0, r2\n"
"\torrs r0, r1\n"
"\tstrb r0, [r4, 0x19]\n"
"_0808D75E:\n"
"\tmov r0, sp\n"
"\tldrb r0, [r0]\n"
"_0808D762:\n"
"\tadd sp, 0x4\n"
"\tpop {r3,r4}\n"
"\tmov r8, r3\n"
"\tmov r9, r4\n"
"\tpop {r4-r7}\n"
"\tpop {r1}\n"
"\tbx r1\n"
".pool");
}
#endif
u8 Unref_TryInitLocalEventObject(u8 localId)
{
@@ -1676,7 +1516,7 @@ u8 AddPseudoEventObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 x
{
sprite = &gSprites[spriteId];
SetSubspriteTables(sprite, subspriteTables);
sprite->subspriteMode = 2;
sprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY;
}
return spriteId;
}
@@ -1721,7 +1561,7 @@ u8 sprite_new(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction)
if (subspriteTables != NULL)
{
SetSubspriteTables(sprite, subspriteTables);
sprite->subspriteMode = 2;
sprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY;
}
InitObjectPriorityByZCoord(sprite, z);
SetObjectSubpriorityByZCoord(z, sprite, 1);
@@ -4586,7 +4426,7 @@ void MovementType_Hidden(struct Sprite *sprite)
if (!sprite->data[7])
{
gEventObjects[sprite->data[0]].fixedPriority = TRUE;
sprite->subspriteMode = 2;
sprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY;
sprite->oam.priority = 3;
sprite->data[7]++;
}
@@ -6814,7 +6654,7 @@ bool8 MovementAction_InitAffineAnim_Step0(struct EventObject *eventObject, struc
sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE;
InitSpriteAffineAnim(sprite);
sprite->affineAnimPaused = TRUE;
sprite->subspriteMode = 0;
sprite->subspriteMode = SUBSPRITES_OFF;
return TRUE;
}
@@ -8844,12 +8684,12 @@ void sub_8097BB4(u8 var1, u8 graphicsId)
{
sprite->subspriteTables = NULL;
sprite->subspriteTableNum = 0;
sprite->subspriteMode = 0;
sprite->subspriteMode = SUBSPRITES_OFF;
}
else
{
SetSubspriteTables(sprite, graphicsInfo->subspriteTables);
sprite->subspriteMode = 2;
sprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY;
}
StartSpriteAnim(sprite, 0);
}
+13 -13
View File
@@ -50,10 +50,10 @@ static const struct SpritePalette sEvoSparkleSpritePals[] =
static const struct OamData sOamData_EvoSparkle =
{
.y = 160,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(8x8),
.x = 0,
.matrixNum = 0,
@@ -141,7 +141,7 @@ static void CreatePreEvoSparkleSet1(u8 arg0)
gSprites[spriteID].data[5] = 48;
gSprites[spriteID].data[6] = arg0;
gSprites[spriteID].data[7] = 0;
gSprites[spriteID].oam.affineMode = 1;
gSprites[spriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteID].oam.matrixNum = 31;
gSprites[spriteID].callback = SpriteCB_PreEvoSparkleSet1;
}
@@ -169,7 +169,7 @@ static void CreatePreEvoSparkleSet2(u8 arg0)
gSprites[spriteID].data[5] = 8;
gSprites[spriteID].data[6] = arg0;
gSprites[spriteID].data[7] = 0;
gSprites[spriteID].oam.affineMode = 1;
gSprites[spriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteID].oam.matrixNum = 25;
gSprites[spriteID].subpriority = 1;
gSprites[spriteID].callback = SpriteCB_PreEvoSparkleSet2;
@@ -198,7 +198,7 @@ static void CreatePostEvoSparkleSet1(u8 arg0, u8 arg1)
gSprites[spriteID].data[5] = 120;
gSprites[spriteID].data[6] = arg0;
gSprites[spriteID].data[7] = 0;
gSprites[spriteID].oam.affineMode = 1;
gSprites[spriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteID].oam.matrixNum = 31;
gSprites[spriteID].subpriority = 1;
gSprites[spriteID].callback = SpriteCB_PostEvoSparkleSet1;
@@ -243,7 +243,7 @@ static void CreatePostEvoSparkleSet2(u8 arg0)
gSprites[spriteID].data[3] = 3 - (Random() % 7);
gSprites[spriteID].data[5] = 48 + (Random() & 0x3F);
gSprites[spriteID].data[7] = 0;
gSprites[spriteID].oam.affineMode = 1;
gSprites[spriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteID].oam.matrixNum = 31;
gSprites[spriteID].subpriority = 20;
gSprites[spriteID].callback = SpriteCB_PostEvoSparkleSet2;
@@ -497,13 +497,13 @@ u8 sub_817C3A0(u8 preEvoSpriteID, u8 postEvoSpriteID)
SetOamMatrix(31, toDiv / gTasks[taskID].data[4], 0, 0, toDiv / gTasks[taskID].data[4]);
gSprites[preEvoSpriteID].callback = PokeEvoSprite_DummySpriteCB;
gSprites[preEvoSpriteID].oam.affineMode = 1;
gSprites[preEvoSpriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[preEvoSpriteID].oam.matrixNum = 30;
gSprites[preEvoSpriteID].invisible = FALSE;
CpuSet(stack, &gPlttBufferFaded[0x100 + (gSprites[preEvoSpriteID].oam.paletteNum * 16)], 16);
gSprites[postEvoSpriteID].callback = PokeEvoSprite_DummySpriteCB;
gSprites[postEvoSpriteID].oam.affineMode = 1;
gSprites[postEvoSpriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[postEvoSpriteID].oam.matrixNum = 31;
gSprites[postEvoSpriteID].invisible = FALSE;
CpuSet(stack, &gPlttBufferFaded[0x100 + (gSprites[postEvoSpriteID].oam.paletteNum * 16)], 16);
@@ -587,11 +587,11 @@ static void sub_817C560(u8 taskID)
static void PreEvoInvisible_PostEvoVisible_KillTask(u8 taskID)
{
gSprites[gTasks[taskID].tPreEvoSpriteID].oam.affineMode = 0;
gSprites[gTasks[taskID].tPreEvoSpriteID].oam.affineMode = ST_OAM_AFFINE_OFF;
gSprites[gTasks[taskID].tPreEvoSpriteID].oam.matrixNum = 0;
gSprites[gTasks[taskID].tPreEvoSpriteID].invisible = TRUE;
gSprites[gTasks[taskID].tPostEvoSpriteID].oam.affineMode = 0;
gSprites[gTasks[taskID].tPostEvoSpriteID].oam.affineMode = ST_OAM_AFFINE_OFF;
gSprites[gTasks[taskID].tPostEvoSpriteID].oam.matrixNum = 0;
gSprites[gTasks[taskID].tPostEvoSpriteID].invisible = FALSE;
@@ -600,11 +600,11 @@ static void PreEvoInvisible_PostEvoVisible_KillTask(u8 taskID)
static void PreEvoVisible_PostEvoInvisible_KillTask(u8 taskID)
{
gSprites[gTasks[taskID].tPreEvoSpriteID].oam.affineMode = 0;
gSprites[gTasks[taskID].tPreEvoSpriteID].oam.affineMode = ST_OAM_AFFINE_OFF;
gSprites[gTasks[taskID].tPreEvoSpriteID].oam.matrixNum = 0;
gSprites[gTasks[taskID].tPreEvoSpriteID].invisible = FALSE;
gSprites[gTasks[taskID].tPostEvoSpriteID].oam.affineMode = 0;
gSprites[gTasks[taskID].tPostEvoSpriteID].oam.affineMode = ST_OAM_AFFINE_OFF;
gSprites[gTasks[taskID].tPostEvoSpriteID].oam.matrixNum = 0;
gSprites[gTasks[taskID].tPostEvoSpriteID].invisible = TRUE;
+2 -2
View File
@@ -558,9 +558,9 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior)
ScriptContext1_SetupScript(EventScript_EggHatch);
return TRUE;
}
if (UnusualWeatherHasExpired() == TRUE)
if (AbnormalWeatherHasExpired() == TRUE)
{
ScriptContext1_SetupScript(UnusualWeather_EventScript_EndEventAndCleanup_1);
ScriptContext1_SetupScript(AbnormalWeather_EventScript_EndEventAndCleanup_1);
return TRUE;
}
if (ShouldDoBrailleRegicePuzzle() == TRUE)
+76 -20
View File
@@ -406,20 +406,76 @@ const struct SpriteFrameImage gSpriteImageTable_855C294[] =
const struct Subsprite gSubspriteTable_855C29C[] =
{
{.x = -12, .y = -8, .priority = 2, .tileOffset = 0, .shape = 1, .size = 0},
{.x = 4, .y = -8, .priority = 2, .tileOffset = 2, .shape = 0, .size = 0},
{.x = -12, .y = 0, .priority = 2, .tileOffset = 3, .shape = 1, .size = 0},
{.x = 4, .y = 0, .priority = 2, .tileOffset = 5, .shape = 0, .size = 0}
{
.x = -12,
.y = -8,
.shape = SPRITE_SHAPE(16x8),
.size = SPRITE_SIZE(16x8),
.tileOffset = 0,
.priority = 2
},
{
.x = 4,
.y = -8,
.shape = SPRITE_SHAPE(8x8),
.size = SPRITE_SIZE(8x8),
.tileOffset = 2,
.priority = 2
},
{
.x = -12,
.y = 0,
.shape = SPRITE_SHAPE(16x8),
.size = SPRITE_SIZE(16x8),
.tileOffset = 3,
.priority = 2
},
{
.x = 4,
.y = 0,
.shape = SPRITE_SHAPE(8x8),
.size = SPRITE_SIZE(8x8),
.tileOffset = 5,
.priority = 2
}
};
const struct SubspriteTable gUnknown_0855C2AC = subsprite_table(gSubspriteTable_855C29C);
const struct Subsprite gSubspriteTable_855C2B4[] =
{
{.x = -32, .y = -8, .priority = 2, .tileOffset = 0, .shape = 1, .size = 1},
{.x = 0, .y = -8, .priority = 2, .tileOffset = 4, .shape = 1, .size = 1},
{.x = -32, .y = 0, .priority = 2, .tileOffset = 8, .shape = 1, .size = 1},
{.x = 0, .y = 0, .priority = 2, .tileOffset = 12, .shape = 1, .size = 1}
{
.x = -32,
.y = -8,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 0,
.priority = 2
},
{
.x = 0,
.y = -8,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 4,
.priority = 2
},
{
.x = -32,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 8,
.priority = 2
},
{
.x = 0,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 12,
.priority = 2
}
};
const struct SubspriteTable gUnknown_0855C2C4 = subsprite_table(gSubspriteTable_855C2B4);
@@ -870,7 +926,7 @@ u8 CreateMonSprite_FieldMove(u16 species, u32 d, u32 g, s16 x, s16 y, u8 subprio
void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId)
{
ResetPreservedPalettesInWeather();
if (sprite->oam.affineMode != 0)
if (sprite->oam.affineMode != ST_OAM_AFFINE_OFF)
{
FreeOamMatrix(sprite->oam.matrixNum);
}
@@ -1473,7 +1529,7 @@ static bool8 sub_80B6BCC(struct Task *task) // gUnknown_0855C3C8[0]
task->data[4] = playerSprite->subspriteMode;
playerObject->fixedPriority = 1;
playerSprite->oam.priority = 1;
playerSprite->subspriteMode = 2;
playerSprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY;
task->data[0]++;
return TRUE;
}
@@ -2021,7 +2077,7 @@ static bool8 sub_80B7704(struct Task *task, struct EventObject *eventObject, str
task->data[5]++;
eventObject->fixedPriority = 1;
sprite->oam.priority = 1;
sprite->subspriteMode = 2;
sprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY;
}
if (task->data[1] == 0 && task->data[4] != 0)
{
@@ -2396,9 +2452,9 @@ static void TeleportFieldEffectTask3(struct Task *task)
{
task->data[3] <<= 1;
}
if (task->data[4] > 8 && (sprite->oam.priority = 1, sprite->subspriteMode != 0))
if (task->data[4] > 8 && (sprite->oam.priority = 1, sprite->subspriteMode != SUBSPRITES_OFF))
{
sprite->subspriteMode = 2;
sprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY;
}
if (task->data[4] >= 0xa8)
{
@@ -2487,9 +2543,9 @@ static void sub_80B830C(struct Task *task)
} else
{
sprite->oam.priority = 1;
if (sprite->subspriteMode != 0)
if (sprite->subspriteMode != SUBSPRITES_OFF)
{
sprite->subspriteMode = 2;
sprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY;
}
}
if (sprite->pos2.y >= -0x30 && task->data[1] > 1 && !(sprite->pos2.y & 1))
@@ -3284,7 +3340,7 @@ static void sub_80B957C(struct Sprite *sprite)
{
if (sprite->data[0] == 0)
{
sprite->oam.affineMode = 3;
sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE;
sprite->affineAnims = gSpriteAffineAnimTable_0855C548;
InitSpriteAffineAnim(sprite);
StartSpriteAffineAnim(sprite, 0);
@@ -3304,9 +3360,9 @@ static void sub_80B957C(struct Sprite *sprite)
if (sprite->data[1] > 0x81)
{
sprite->data[7]++;
sprite->oam.affineMode = 0;
sprite->oam.affineMode = ST_OAM_AFFINE_OFF;
FreeOamMatrix(sprite->oam.matrixNum);
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, 0);
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, ST_OAM_AFFINE_OFF);
}
}
}
@@ -3337,7 +3393,7 @@ void sub_80B96B0(struct Sprite *sprite)
{
if (sprite->data[0] == 0)
{
sprite->oam.affineMode = 3;
sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE;
sprite->affineAnims = gSpriteAffineAnimTable_0855C548;
InitSpriteAffineAnim(sprite);
StartSpriteAffineAnim(sprite, 1);
@@ -3368,7 +3424,7 @@ void sub_80B96B0(struct Sprite *sprite)
if (sprite->data[3] >= 60)
{
sprite->data[7]++;
sprite->oam.affineMode = 0;
sprite->oam.affineMode = ST_OAM_AFFINE_OFF;
FreeOamMatrix(sprite->oam.matrixNum);
sprite->invisible = TRUE;
}
+2 -2
View File
@@ -129,7 +129,7 @@ static void UpdateObjectReflectionSprite(struct Sprite *reflectionSprite)
reflectionSprite->oam.paletteNum = gReflectionEffectPaletteMap[mainSprite->oam.paletteNum];
reflectionSprite->oam.shape = mainSprite->oam.shape;
reflectionSprite->oam.size = mainSprite->oam.size;
reflectionSprite->oam.matrixNum = mainSprite->oam.matrixNum | 0x10;
reflectionSprite->oam.matrixNum = mainSprite->oam.matrixNum | ST_OAM_VFLIP;
reflectionSprite->oam.tileNum = mainSprite->oam.tileNum;
reflectionSprite->subspriteTables = mainSprite->subspriteTables;
reflectionSprite->subspriteTableNum = mainSprite->subspriteTableNum;
@@ -153,7 +153,7 @@ static void UpdateObjectReflectionSprite(struct Sprite *reflectionSprite)
// matrix based on whether or not the main sprite is horizontally flipped.
// If the sprite is facing to the east, then it is flipped, and its matrixNum is 8.
reflectionSprite->oam.matrixNum = 0;
if (mainSprite->oam.matrixNum & 0x8)
if (mainSprite->oam.matrixNum & ST_OAM_HFLIP)
reflectionSprite->oam.matrixNum = 1;
}
}
+2 -2
View File
@@ -2092,7 +2092,7 @@ static void sub_808D094(u8 taskId)
object->fixedPriority = TRUE;
sprite->oam.priority = 0;
sprite->subpriority = 0;
sprite->subspriteMode = 0;
sprite->subspriteMode = SUBSPRITES_OFF;
data[0]++;
case 1:
sub_808D38C(object, &data[1]);
@@ -2156,7 +2156,7 @@ static void sub_808D1FC(u8 taskId)
object->fixedPriority = TRUE;
sprite->oam.priority = 1;
sprite->subpriority = 0;
sprite->subspriteMode = 0;
sprite->subspriteMode = SUBSPRITES_OFF;
data[0]++;
case 1:
sub_808D38C(object, &data[1]);
+23 -23
View File
@@ -3542,36 +3542,36 @@ bool8 IsDestinationBoxFull(void)
return FALSE;
}
void CreateUnusualWeatherEvent(void)
void CreateAbnormalWeatherEvent(void)
{
u16 randomValue = Random();
VarSet(VAR_UNUSUAL_WEATHER_STEP_COUNTER, 0);
VarSet(VAR_ABNORMAL_WEATHER_STEP_COUNTER, 0);
if (FlagGet(FLAG_DEFEATED_KYOGRE) == TRUE)
{
VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue % UNUSUAL_WEATHER_COUNT_PER_LEGENDARY) + UNUSUAL_WEATHER_GROUDON_LOCATIONS_START);
VarSet(VAR_ABNORMAL_WEATHER_LOCATION, (randomValue % ABNORMAL_WEATHER_COUNT_PER_LEGENDARY) + ABNORMAL_WEATHER_GROUDON_LOCATIONS_START);
}
else if (FlagGet(FLAG_DEFEATED_GROUDON) == TRUE)
{
VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue % UNUSUAL_WEATHER_COUNT_PER_LEGENDARY) + UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START);
VarSet(VAR_ABNORMAL_WEATHER_LOCATION, (randomValue % ABNORMAL_WEATHER_COUNT_PER_LEGENDARY) + ABNORMAL_WEATHER_KYOGRE_LOCATIONS_START);
}
else if ((randomValue & 1) == 0)
{
randomValue = Random();
VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue % UNUSUAL_WEATHER_COUNT_PER_LEGENDARY) + UNUSUAL_WEATHER_GROUDON_LOCATIONS_START);
VarSet(VAR_ABNORMAL_WEATHER_LOCATION, (randomValue % ABNORMAL_WEATHER_COUNT_PER_LEGENDARY) + ABNORMAL_WEATHER_GROUDON_LOCATIONS_START);
}
else
{
randomValue = Random();
VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue % UNUSUAL_WEATHER_COUNT_PER_LEGENDARY) + UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START);
VarSet(VAR_ABNORMAL_WEATHER_LOCATION, (randomValue % ABNORMAL_WEATHER_COUNT_PER_LEGENDARY) + ABNORMAL_WEATHER_KYOGRE_LOCATIONS_START);
}
}
// Saves the map name for the current unusual weather location in gStringVar1, then
// Saves the map name for the current abnormal weather location in gStringVar1, then
// returns TRUE if the weather is for Kyogre, and FALSE if it's for Groudon.
bool32 GetUnusualWeatherMapNameAndType(void)
bool32 GetAbnormalWeatherMapNameAndType(void)
{
static const u8 sUnusualWeatherMapNumbers[] = {
static const u8 sAbnormalWeatherMapNumbers[] = {
MAP_NUM(ROUTE114),
MAP_NUM(ROUTE114),
MAP_NUM(ROUTE115),
@@ -3590,11 +3590,11 @@ bool32 GetUnusualWeatherMapNameAndType(void)
MAP_NUM(ROUTE129)
};
u16 unusualWeather = VarGet(VAR_UNUSUAL_WEATHER_LOCATION);
u16 abnormalWeather = VarGet(VAR_ABNORMAL_WEATHER_LOCATION);
GetMapName(gStringVar1, sUnusualWeatherMapNumbers[unusualWeather - 1], 0);
GetMapName(gStringVar1, sAbnormalWeatherMapNumbers[abnormalWeather - 1], 0);
if (unusualWeather < UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START)
if (abnormalWeather < ABNORMAL_WEATHER_KYOGRE_LOCATIONS_START)
{
return FALSE;
}
@@ -3604,10 +3604,10 @@ bool32 GetUnusualWeatherMapNameAndType(void)
}
}
bool8 UnusualWeatherHasExpired(void)
bool8 AbnormalWeatherHasExpired(void)
{
// Duplicate array.
static const u8 sUnusualWeatherMapNumbers_2[] = {
static const u8 sAbnormalWeatherMapNumbers[] = {
MAP_NUM(ROUTE114),
MAP_NUM(ROUTE114),
MAP_NUM(ROUTE115),
@@ -3626,17 +3626,17 @@ bool8 UnusualWeatherHasExpired(void)
MAP_NUM(ROUTE129)
};
u16 steps = VarGet(VAR_UNUSUAL_WEATHER_STEP_COUNTER);
u16 unusualWeather = VarGet(VAR_UNUSUAL_WEATHER_LOCATION);
u16 steps = VarGet(VAR_ABNORMAL_WEATHER_STEP_COUNTER);
u16 abnormalWeather = VarGet(VAR_ABNORMAL_WEATHER_LOCATION);
if (unusualWeather == UNUSUAL_WEATHER_NONE)
if (abnormalWeather == ABNORMAL_WEATHER_NONE)
{
return FALSE;
}
if (++steps > 999)
{
VarSet(VAR_UNUSUAL_WEATHER_STEP_COUNTER, 0);
VarSet(VAR_ABNORMAL_WEATHER_STEP_COUNTER, 0);
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER_MARINE_CAVE))
{
switch (gSaveBlock1Ptr->location.mapNum)
@@ -3646,7 +3646,7 @@ bool8 UnusualWeatherHasExpired(void)
case MAP_NUM(MARINE_CAVE_END):
case MAP_NUM(TERRA_CAVE_ENTRANCE):
case MAP_NUM(TERRA_CAVE_END):
VarSet(VAR_SHOULD_END_UNUSUAL_WEATHER, 1);
VarSet(VAR_SHOULD_END_ABNORMAL_WEATHER, 1);
return FALSE;
default:
break;
@@ -3661,27 +3661,27 @@ bool8 UnusualWeatherHasExpired(void)
case MAP_NUM(UNDERWATER5):
case MAP_NUM(UNDERWATER6):
case MAP_NUM(UNDERWATER7):
VarSet(VAR_SHOULD_END_UNUSUAL_WEATHER, 1);
VarSet(VAR_SHOULD_END_ABNORMAL_WEATHER, 1);
return FALSE;
default:
break;
}
}
if (gSaveBlock1Ptr->location.mapNum == sUnusualWeatherMapNumbers_2[unusualWeather - 1] &&
if (gSaveBlock1Ptr->location.mapNum == sAbnormalWeatherMapNumbers[abnormalWeather - 1] &&
gSaveBlock1Ptr->location.mapGroup == 0)
{
return TRUE;
}
else
{
VarSet(VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_NONE);
VarSet(VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_NONE);
return FALSE;
}
}
else
{
VarSet(VAR_UNUSUAL_WEATHER_STEP_COUNTER, steps);
VarSet(VAR_ABNORMAL_WEATHER_STEP_COUNTER, steps);
return FALSE;
}
}
+44 -44
View File
@@ -56,7 +56,7 @@ static void ApplyDroughtGammaShiftWithBlend(s8 gammaIndex, u8 blendCoeff, u16 bl
static void ApplyFogBlend(u8 blendCoeff, u16 blendColor);
static bool8 FadeInScreen_RainShowShade(void);
static bool8 FadeInScreen_Drought(void);
static bool8 FadeInScreen_Fog1(void);
static bool8 FadeInScreen_FogHorizontal(void);
static void FadeInScreenWithWeather(void);
static void DoNothing(void);
static void Task_WeatherInit(u8 taskId);
@@ -89,29 +89,29 @@ struct Weather *const gWeatherPtr = &gWeather;
static const struct WeatherCallbacks sWeatherFuncs[] =
{
{None_Init, None_Main, None_Init, None_Finish},
{Clouds_InitVars, Clouds_Main, Clouds_InitAll, Clouds_Finish},
{Sunny_InitVars, Sunny_Main, Sunny_InitAll, Sunny_Finish},
{LightRain_InitVars, LightRain_Main, LightRain_InitAll, LightRain_Finish},
{Snow_InitVars, Snow_Main, Snow_InitAll, Snow_Finish},
{MedRain_InitVars, Rain_Main, MedRain_InitAll, Rain_Finish},
{Fog1_InitVars, Fog1_Main, Fog1_InitAll, Fog1_Finish},
{Ash_InitVars, Ash_Main, Ash_InitAll, Ash_Finish},
{Sandstorm_InitVars, Sandstorm_Main, Sandstorm_InitAll, Sandstorm_Finish},
{Fog2_InitVars, Fog2_Main, Fog2_InitAll, Fog2_Finish},
{Fog1_InitVars, Fog1_Main, Fog1_InitAll, Fog1_Finish},
{Shade_InitVars, Shade_Main, Shade_InitAll, Shade_Finish},
{Drought_InitVars, Drought_Main, Drought_InitAll, Drought_Finish},
{HeavyRain_InitVars, Rain_Main, HeavyRain_InitAll, Rain_Finish},
{Bubbles_InitVars, Bubbles_Main, Bubbles_InitAll, Bubbles_Finish},
[WEATHER_NONE] = {None_Init, None_Main, None_Init, None_Finish},
[WEATHER_SUNNY_CLOUDS] = {Clouds_InitVars, Clouds_Main, Clouds_InitAll, Clouds_Finish},
[WEATHER_SUNNY] = {Sunny_InitVars, Sunny_Main, Sunny_InitAll, Sunny_Finish},
[WEATHER_RAIN] = {Rain_InitVars, Rain_Main, Rain_InitAll, Rain_Finish},
[WEATHER_SNOW] = {Snow_InitVars, Snow_Main, Snow_InitAll, Snow_Finish},
[WEATHER_RAIN_THUNDERSTORM] = {Thunderstorm_InitVars, Thunderstorm_Main, Thunderstorm_InitAll, Thunderstorm_Finish},
[WEATHER_FOG_HORIZONTAL] = {FogHorizontal_InitVars, FogHorizontal_Main, FogHorizontal_InitAll, FogHorizontal_Finish},
[WEATHER_VOLCANIC_ASH] = {Ash_InitVars, Ash_Main, Ash_InitAll, Ash_Finish},
[WEATHER_SANDSTORM] = {Sandstorm_InitVars, Sandstorm_Main, Sandstorm_InitAll, Sandstorm_Finish},
[WEATHER_FOG_DIAGONAL] = {FogDiagonal_InitVars, FogDiagonal_Main, FogDiagonal_InitAll, FogDiagonal_Finish},
[WEATHER_UNDERWATER] = {FogHorizontal_InitVars, FogHorizontal_Main, FogHorizontal_InitAll, FogHorizontal_Finish},
[WEATHER_SHADE] = {Shade_InitVars, Shade_Main, Shade_InitAll, Shade_Finish},
[WEATHER_DROUGHT] = {Drought_InitVars, Drought_Main, Drought_InitAll, Drought_Finish},
[WEATHER_DOWNPOUR] = {Downpour_InitVars, Thunderstorm_Main, Downpour_InitAll, Thunderstorm_Finish},
[WEATHER_UNDERWATER_BUBBLES] = {Bubbles_InitVars, Bubbles_Main, Bubbles_InitAll, Bubbles_Finish},
};
void (*const gWeatherPalStateFuncs[])(void) =
{
UpdateWeatherGammaShift, // WEATHER_PAL_STATE_CHANGING_WEATHER
FadeInScreenWithWeather, // WEATHER_PAL_STATE_SCREEN_FADING_IN
DoNothing, // WEATHER_PAL_STATE_SCREEN_FADING_OUT
DoNothing, // WEATHER_PAL_STATE_IDLE
[WEATHER_PAL_STATE_CHANGING_WEATHER] = UpdateWeatherGammaShift,
[WEATHER_PAL_STATE_SCREEN_FADING_IN] = FadeInScreenWithWeather,
[WEATHER_PAL_STATE_SCREEN_FADING_OUT] = DoNothing,
[WEATHER_PAL_STATE_IDLE] = DoNothing,
};
// This table specifies which of the gamma shift tables should be
@@ -171,8 +171,8 @@ void StartWeather(void)
gWeatherPtr->cloudSpritesCreated = 0;
gWeatherPtr->snowflakeSpriteCount = 0;
gWeatherPtr->ashSpritesCreated = 0;
gWeatherPtr->fog1SpritesCreated = 0;
gWeatherPtr->fog2SpritesCreated = 0;
gWeatherPtr->fogHSpritesCreated = 0;
gWeatherPtr->fogDSpritesCreated = 0;
gWeatherPtr->sandstormSpritesCreated = 0;
gWeatherPtr->sandstormSwirlSpritesCreated = 0;
gWeatherPtr->bubblesSpritesCreated = 0;
@@ -188,7 +188,7 @@ void StartWeather(void)
void SetNextWeather(u8 weather)
{
if (weather != WEATHER_RAIN_LIGHT && weather != WEATHER_RAIN_MED && weather != WEATHER_RAIN_HEAVY)
if (weather != WEATHER_RAIN && weather != WEATHER_RAIN_THUNDERSTORM && weather != WEATHER_DOWNPOUR)
{
PlayRainStoppingSoundEffect();
}
@@ -371,9 +371,9 @@ static void FadeInScreenWithWeather(void)
switch (gWeatherPtr->currWeather)
{
case WEATHER_RAIN_LIGHT:
case WEATHER_RAIN_MED:
case WEATHER_RAIN_HEAVY:
case WEATHER_RAIN:
case WEATHER_RAIN_THUNDERSTORM:
case WEATHER_DOWNPOUR:
case WEATHER_SNOW:
case WEATHER_SHADE:
if (FadeInScreen_RainShowShade() == FALSE)
@@ -389,17 +389,17 @@ static void FadeInScreenWithWeather(void)
gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE;
}
break;
case WEATHER_FOG_1:
if (FadeInScreen_Fog1() == FALSE)
case WEATHER_FOG_HORIZONTAL:
if (FadeInScreen_FogHorizontal() == FALSE)
{
gWeatherPtr->gammaIndex = 0;
gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE;
}
break;
case WEATHER_ASH:
case WEATHER_VOLCANIC_ASH:
case WEATHER_SANDSTORM:
case WEATHER_FOG_2:
case WEATHER_FOG_3:
case WEATHER_FOG_DIAGONAL:
case WEATHER_UNDERWATER:
default:
if (!gPaletteFade.active)
{
@@ -442,7 +442,7 @@ static bool8 FadeInScreen_Drought(void)
return TRUE;
}
static bool8 FadeInScreen_Fog1(void)
static bool8 FadeInScreen_FogHorizontal(void)
{
if (gWeatherPtr->fadeScreenCounter == 16)
return FALSE;
@@ -763,11 +763,11 @@ void FadeScreen(u8 mode, s8 delay)
switch (gWeatherPtr->currWeather)
{
case WEATHER_RAIN_LIGHT:
case WEATHER_RAIN_MED:
case WEATHER_RAIN_HEAVY:
case WEATHER_RAIN:
case WEATHER_RAIN_THUNDERSTORM:
case WEATHER_DOWNPOUR:
case WEATHER_SNOW:
case WEATHER_FOG_1:
case WEATHER_FOG_HORIZONTAL:
case WEATHER_SHADE:
case WEATHER_DROUGHT:
useWeatherPal = TRUE;
@@ -816,7 +816,7 @@ void UpdateSpritePaletteWithWeather(u8 spritePaletteIndex)
case WEATHER_PAL_STATE_SCREEN_FADING_IN:
if (gWeatherPtr->unknown_6CA != 0)
{
if (gWeatherPtr->currWeather == WEATHER_FOG_1)
if (gWeatherPtr->currWeather == WEATHER_FOG_HORIZONTAL)
MarkFogSpritePalToLighten(paletteIndex);
paletteIndex *= 16;
for (i = 0; i < 16; i++)
@@ -831,7 +831,7 @@ void UpdateSpritePaletteWithWeather(u8 spritePaletteIndex)
// WEATHER_PAL_STATE_CHANGING_WEATHER
// WEATHER_PAL_STATE_CHANGING_IDLE
default:
if (gWeatherPtr->currWeather != WEATHER_FOG_1)
if (gWeatherPtr->currWeather != WEATHER_FOG_HORIZONTAL)
{
ApplyGammaShift(paletteIndex, 1, gWeatherPtr->gammaIndex);
}
@@ -995,28 +995,28 @@ void sub_80AC274(u8 a)
switch (a)
{
case 1:
SetWeather(WEATHER_CLOUDS);
SetWeather(WEATHER_SUNNY_CLOUDS);
break;
case 2:
SetWeather(WEATHER_SUNNY);
break;
case 3:
SetWeather(WEATHER_RAIN_LIGHT);
SetWeather(WEATHER_RAIN);
break;
case 4:
SetWeather(WEATHER_SNOW);
break;
case 5:
SetWeather(WEATHER_RAIN_MED);
SetWeather(WEATHER_RAIN_THUNDERSTORM);
break;
case 6:
SetWeather(WEATHER_FOG_1);
SetWeather(WEATHER_FOG_HORIZONTAL);
break;
case 7:
SetWeather(WEATHER_FOG_2);
SetWeather(WEATHER_FOG_DIAGONAL);
break;
case 8:
SetWeather(WEATHER_ASH);
SetWeather(WEATHER_VOLCANIC_ASH);
break;
case 9:
SetWeather(WEATHER_SANDSTORM);
+226 -226
View File
@@ -14,14 +14,14 @@
#include "gpu_regs.h"
// EWRAM
EWRAM_DATA static u8 gCurrentAlternatingWeather = 0;
EWRAM_DATA static u8 gCurrentAbnormalWeather = 0;
EWRAM_DATA static u16 gUnusedWeatherRelated = 0;
// CONST
const u16 gCloudsWeatherPalette[] = INCBIN_U16("graphics/weather/cloud.gbapal");
const u16 gSandstormWeatherPalette[] = INCBIN_U16("graphics/weather/sandstorm.gbapal");
const u8 gWeatherFog2Tiles[] = INCBIN_U8("graphics/weather/fog2.4bpp");
const u8 gWeatherFog1Tiles[] = INCBIN_U8("graphics/weather/fog1.4bpp");
const u8 gWeatherFogDiagonalTiles[] = INCBIN_U8("graphics/weather/fog_diagonal.4bpp");
const u8 gWeatherFogHorizontalTiles[] = INCBIN_U8("graphics/weather/fog_horizontal.4bpp");
const u8 gWeatherCloudTiles[] = INCBIN_U8("graphics/weather/cloud.4bpp");
const u8 gWeatherSnow1Tiles[] = INCBIN_U8("graphics/weather/snow0.4bpp");
const u8 gWeatherSnow2Tiles[] = INCBIN_U8("graphics/weather/snow1.4bpp");
@@ -31,7 +31,7 @@ const u8 gWeatherRainTiles[] = INCBIN_U8("graphics/weather/rain.4bpp");
const u8 gWeatherSandstormTiles[] = INCBIN_U8("graphics/weather/sandstorm.4bpp");
//------------------------------------------------------------------------------
// Clouds
// WEATHER_SUNNY_CLOUDS
//------------------------------------------------------------------------------
static void CreateCloudSprites(void);
@@ -57,10 +57,10 @@ static const struct SpriteSheet sCloudSpriteSheet =
static const struct OamData sCloudSpriteOamData =
{
.y = 0,
.affineMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_BLEND,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
@@ -227,7 +227,7 @@ static void UpdateCloudSprite(struct Sprite *sprite)
}
//------------------------------------------------------------------------------
// Drought
// WEATHER_DROUGHT
//------------------------------------------------------------------------------
static void UpdateDroughtBlend(u8);
@@ -352,7 +352,7 @@ static void UpdateDroughtBlend(u8 taskId)
#undef tWinRange
//------------------------------------------------------------------------------
// Light Rain
// WEATHER_RAIN
//------------------------------------------------------------------------------
static void LoadRainSpriteSheet(void);
@@ -392,10 +392,10 @@ static const struct Coords16 sRainSpriteCoords[] =
static const struct OamData sRainSpriteOamData =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x32),
.x = 0,
.matrixNum = 0,
@@ -469,27 +469,27 @@ static const struct SpriteSheet sRainSpriteSheet =
.tag = 0x1206,
};
void LightRain_InitVars(void)
void Rain_InitVars(void)
{
gWeatherPtr->initStep = 0;
gWeatherPtr->weatherGfxLoaded = FALSE;
gWeatherPtr->rainSpriteVisibleCounter = 0;
gWeatherPtr->rainSpriteVisibleDelay = 8;
gWeatherPtr->isHeavyRain = 0;
gWeatherPtr->isDownpour = FALSE;
gWeatherPtr->targetRainSpriteCount = 10;
gWeatherPtr->gammaTargetIndex = 3;
gWeatherPtr->gammaStepDelay = 20;
SetRainStrengthFromSoundEffect(SE_T_KOAME);
}
void LightRain_InitAll(void)
void Rain_InitAll(void)
{
LightRain_InitVars();
Rain_InitVars();
while (!gWeatherPtr->weatherGfxLoaded)
LightRain_Main();
Rain_Main();
}
void LightRain_Main(void)
void Rain_Main(void)
{
switch (gWeatherPtr->initStep)
{
@@ -511,14 +511,14 @@ void LightRain_Main(void)
}
}
bool8 LightRain_Finish(void)
bool8 Rain_Finish(void)
{
switch (gWeatherPtr->finishStep)
{
case 0:
if (gWeatherPtr->nextWeather == WEATHER_RAIN_LIGHT
|| gWeatherPtr->nextWeather == WEATHER_RAIN_MED
|| gWeatherPtr->nextWeather == WEATHER_RAIN_HEAVY)
if (gWeatherPtr->nextWeather == WEATHER_RAIN
|| gWeatherPtr->nextWeather == WEATHER_RAIN_THUNDERSTORM
|| gWeatherPtr->nextWeather == WEATHER_DOWNPOUR)
{
gWeatherPtr->finishStep = 0xFF;
return FALSE;
@@ -563,7 +563,7 @@ static void StartRainSpriteFall(struct Sprite *sprite)
rand = sprite->tRandom * 1103515245 + 12345;
sprite->tRandom = ((rand & 0x7FFF0000) >> 16) % 600;
numFallingFrames = sRainSpriteFallingDurations[gWeatherPtr->isHeavyRain][0];
numFallingFrames = sRainSpriteFallingDurations[gWeatherPtr->isDownpour][0];
tileX = sprite->tRandom % 30;
sprite->tPosX = tileX * 8; // Useless assignment, leftover from before fixed-point values were used
@@ -578,8 +578,8 @@ static void StartRainSpriteFall(struct Sprite *sprite)
sprite->tPosY <<= 7; // This is tileX * 8, using a fixed-point value with 4 decimal places
// "Rewind" the rain sprites, from their ending position.
sprite->tPosX -= sRainSpriteMovement[gWeatherPtr->isHeavyRain][0] * numFallingFrames;
sprite->tPosY -= sRainSpriteMovement[gWeatherPtr->isHeavyRain][1] * numFallingFrames;
sprite->tPosX -= sRainSpriteMovement[gWeatherPtr->isDownpour][0] * numFallingFrames;
sprite->tPosY -= sRainSpriteMovement[gWeatherPtr->isDownpour][1] * numFallingFrames;
StartSpriteAnim(sprite, 0);
sprite->tState = 0;
@@ -592,8 +592,8 @@ static void UpdateRainSprite(struct Sprite *sprite)
if (sprite->tState == 0)
{
// Raindrop is in its "falling" motion.
sprite->tPosX += sRainSpriteMovement[gWeatherPtr->isHeavyRain][0];
sprite->tPosY += sRainSpriteMovement[gWeatherPtr->isHeavyRain][1];
sprite->tPosX += sRainSpriteMovement[gWeatherPtr->isDownpour][0];
sprite->tPosY += sRainSpriteMovement[gWeatherPtr->isDownpour][1];
sprite->pos1.x = sprite->tPosX >> 4;
sprite->pos1.y = sprite->tPosY >> 4;
@@ -607,7 +607,7 @@ static void UpdateRainSprite(struct Sprite *sprite)
if (--sprite->tCounter == 0)
{
// Make raindrop splash on the ground
StartSpriteAnim(sprite, gWeatherPtr->isHeavyRain + 1);
StartSpriteAnim(sprite, gWeatherPtr->isDownpour + 1);
sprite->tState = 1;
sprite->pos1.x -= gSpriteCoordOffsetX;
sprite->pos1.y -= gSpriteCoordOffsetY;
@@ -637,9 +637,9 @@ static void WaitRainSprite(struct Sprite *sprite)
static void InitRainSpriteMovement(struct Sprite *sprite, u16 val)
{
u16 numFallingFrames = sRainSpriteFallingDurations[gWeatherPtr->isHeavyRain][0];
u16 numAdvanceRng = val / (sRainSpriteFallingDurations[gWeatherPtr->isHeavyRain][1] + numFallingFrames);
u16 frameVal = val % (sRainSpriteFallingDurations[gWeatherPtr->isHeavyRain][1] + numFallingFrames);
u16 numFallingFrames = sRainSpriteFallingDurations[gWeatherPtr->isDownpour][0];
u16 numAdvanceRng = val / (sRainSpriteFallingDurations[gWeatherPtr->isDownpour][1] + numFallingFrames);
u16 frameVal = val % (sRainSpriteFallingDurations[gWeatherPtr->isDownpour][1] + numFallingFrames);
while (--numAdvanceRng != 0xFFFF)
StartRainSpriteFall(sprite);
@@ -839,10 +839,10 @@ static bool8 UpdateVisibleSnowflakeSprites(void)
static const struct OamData sSnowflakeSpriteOamData =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(8x8),
.x = 0,
.matrixNum = 0,
@@ -1009,16 +1009,16 @@ static void UpdateSnowflakeSprite(struct Sprite *sprite)
#undef tDeltaY2
//------------------------------------------------------------------------------
// Medium Rain
// WEATHER_RAIN_THUNDERSTORM
//------------------------------------------------------------------------------
void MedRain_InitVars(void)
void Thunderstorm_InitVars(void)
{
gWeatherPtr->initStep = 0;
gWeatherPtr->weatherGfxLoaded = FALSE;
gWeatherPtr->rainSpriteVisibleCounter = 0;
gWeatherPtr->rainSpriteVisibleDelay = 4;
gWeatherPtr->isHeavyRain = 0;
gWeatherPtr->isDownpour = FALSE;
gWeatherPtr->targetRainSpriteCount = 16;
gWeatherPtr->gammaTargetIndex = 3;
gWeatherPtr->gammaStepDelay = 20;
@@ -1027,27 +1027,27 @@ void MedRain_InitVars(void)
SetRainStrengthFromSoundEffect(SE_T_AME);
}
void MedRain_InitAll(void)
void Thunderstorm_InitAll(void)
{
MedRain_InitVars();
Thunderstorm_InitVars();
while (gWeatherPtr->weatherGfxLoaded == FALSE)
Rain_Main();
Thunderstorm_Main();
}
//------------------------------------------------------------------------------
// Heavy Rain
// WEATHER_DOWNPOUR
//------------------------------------------------------------------------------
static void UpdateThunderSound(void);
static void SetThunderCounter(u16);
void HeavyRain_InitVars(void)
void Downpour_InitVars(void)
{
gWeatherPtr->initStep = 0;
gWeatherPtr->weatherGfxLoaded = FALSE;
gWeatherPtr->rainSpriteVisibleCounter = 0;
gWeatherPtr->rainSpriteVisibleDelay = 4;
gWeatherPtr->isHeavyRain = 1;
gWeatherPtr->isDownpour = TRUE;
gWeatherPtr->targetRainSpriteCount = 24;
gWeatherPtr->gammaTargetIndex = 3;
gWeatherPtr->gammaStepDelay = 20;
@@ -1055,14 +1055,14 @@ void HeavyRain_InitVars(void)
SetRainStrengthFromSoundEffect(SE_T_OOAME);
}
void HeavyRain_InitAll(void)
void Downpour_InitAll(void)
{
HeavyRain_InitVars();
Downpour_InitVars();
while (gWeatherPtr->weatherGfxLoaded == FALSE)
Rain_Main();
Thunderstorm_Main();
}
void Rain_Main(void)
void Thunderstorm_Main(void)
{
UpdateThunderSound();
switch (gWeatherPtr->initStep)
@@ -1166,7 +1166,7 @@ void Rain_Main(void)
}
}
bool8 Rain_Finish(void)
bool8 Thunderstorm_Finish(void)
{
switch (gWeatherPtr->finishStep)
{
@@ -1175,12 +1175,12 @@ bool8 Rain_Finish(void)
gWeatherPtr->finishStep++;
// fall through
case 1:
Rain_Main();
Thunderstorm_Main();
if (gWeatherPtr->unknown_6EA)
{
if (gWeatherPtr->nextWeather == WEATHER_RAIN_LIGHT
|| gWeatherPtr->nextWeather == WEATHER_RAIN_MED
|| gWeatherPtr->nextWeather == WEATHER_RAIN_HEAVY)
if (gWeatherPtr->nextWeather == WEATHER_RAIN
|| gWeatherPtr->nextWeather == WEATHER_RAIN_THUNDERSTORM
|| gWeatherPtr->nextWeather == WEATHER_DOWNPOUR)
return FALSE;
gWeatherPtr->targetRainSpriteCount = 0;
@@ -1235,7 +1235,7 @@ static void UpdateThunderSound(void)
}
//------------------------------------------------------------------------------
// Fog 1
// WEATHER_FOG_HORIZONTAL and WEATHER_UNDERWATER
//------------------------------------------------------------------------------
// unused data
@@ -1244,10 +1244,10 @@ static const u16 unusedData_839AB1C[] = {0, 6, 6, 12, 18, 42, 300, 300};
static const struct OamData gOamData_839AB2C =
{
.y = 0,
.affineMode = 0,
.objMode = 1,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_BLEND,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
@@ -1315,8 +1315,8 @@ static const union AffineAnimCmd *const gSpriteAffineAnimTable_839AB8C[] =
gSpriteAffineAnim_839AB7C,
};
static void Fog1SpriteCallback(struct Sprite *);
static const struct SpriteTemplate sFog1SpriteTemplate =
static void FogHorizontalSpriteCallback(struct Sprite *);
static const struct SpriteTemplate sFogHorizontalSpriteTemplate =
{
.tileTag = 0x1201,
.paletteTag = 0x1200,
@@ -1324,48 +1324,48 @@ static const struct SpriteTemplate sFog1SpriteTemplate =
.anims = gSpriteAnimTable_839AB64,
.images = NULL,
.affineAnims = gSpriteAffineAnimTable_839AB8C,
.callback = Fog1SpriteCallback,
.callback = FogHorizontalSpriteCallback,
};
void Fog1_Main(void);
static void CreateFog1Sprites(void);
static void DestroyFog1Sprites(void);
void FogHorizontal_Main(void);
static void CreateFogHorizontalSprites(void);
static void DestroyFogHorizontalSprites(void);
void Fog1_InitVars(void)
void FogHorizontal_InitVars(void)
{
gWeatherPtr->initStep = 0;
gWeatherPtr->weatherGfxLoaded = FALSE;
gWeatherPtr->gammaTargetIndex = 0;
gWeatherPtr->gammaStepDelay = 20;
if (gWeatherPtr->fog1SpritesCreated == 0)
if (gWeatherPtr->fogHSpritesCreated == 0)
{
gWeatherPtr->fog1ScrollCounter = 0;
gWeatherPtr->fog1ScrollOffset = 0;
gWeatherPtr->fog1ScrollPosX = 0;
gWeatherPtr->fogHScrollCounter = 0;
gWeatherPtr->fogHScrollOffset = 0;
gWeatherPtr->fogHScrollPosX = 0;
Weather_SetBlendCoeffs(0, 16);
}
}
void Fog1_InitAll(void)
void FogHorizontal_InitAll(void)
{
Fog1_InitVars();
FogHorizontal_InitVars();
while (gWeatherPtr->weatherGfxLoaded == FALSE)
Fog1_Main();
FogHorizontal_Main();
}
void Fog1_Main(void)
void FogHorizontal_Main(void)
{
gWeatherPtr->fog1ScrollPosX = (gSpriteCoordOffsetX - gWeatherPtr->fog1ScrollOffset) & 0xFF;
if (++gWeatherPtr->fog1ScrollCounter > 3)
gWeatherPtr->fogHScrollPosX = (gSpriteCoordOffsetX - gWeatherPtr->fogHScrollOffset) & 0xFF;
if (++gWeatherPtr->fogHScrollCounter > 3)
{
gWeatherPtr->fog1ScrollCounter = 0;
gWeatherPtr->fog1ScrollOffset++;
gWeatherPtr->fogHScrollCounter = 0;
gWeatherPtr->fogHScrollOffset++;
}
switch (gWeatherPtr->initStep)
{
case 0:
CreateFog1Sprites();
if (gWeatherPtr->currWeather == WEATHER_FOG_1)
CreateFogHorizontalSprites();
if (gWeatherPtr->currWeather == WEATHER_FOG_HORIZONTAL)
Weather_SetTargetBlendCoeffs(12, 8, 3);
else
Weather_SetTargetBlendCoeffs(4, 16, 0);
@@ -1381,13 +1381,13 @@ void Fog1_Main(void)
}
}
bool8 Fog1_Finish(void)
bool8 FogHorizontal_Finish(void)
{
gWeatherPtr->fog1ScrollPosX = (gSpriteCoordOffsetX - gWeatherPtr->fog1ScrollOffset) & 0xFF;
if (++gWeatherPtr->fog1ScrollCounter > 3)
gWeatherPtr->fogHScrollPosX = (gSpriteCoordOffsetX - gWeatherPtr->fogHScrollOffset) & 0xFF;
if (++gWeatherPtr->fogHScrollCounter > 3)
{
gWeatherPtr->fog1ScrollCounter = 0;
gWeatherPtr->fog1ScrollOffset++;
gWeatherPtr->fogHScrollCounter = 0;
gWeatherPtr->fogHScrollOffset++;
}
switch (gWeatherPtr->finishStep)
@@ -1401,7 +1401,7 @@ bool8 Fog1_Finish(void)
gWeatherPtr->finishStep++;
break;
case 2:
DestroyFog1Sprites();
DestroyFogHorizontalSprites();
gWeatherPtr->finishStep++;
break;
default:
@@ -1412,73 +1412,73 @@ bool8 Fog1_Finish(void)
#define tSpriteColumn data[0]
static void Fog1SpriteCallback(struct Sprite *sprite)
static void FogHorizontalSpriteCallback(struct Sprite *sprite)
{
sprite->pos2.y = (u8)gSpriteCoordOffsetY;
sprite->pos1.x = gWeatherPtr->fog1ScrollPosX + 32 + sprite->tSpriteColumn * 64;
sprite->pos1.x = gWeatherPtr->fogHScrollPosX + 32 + sprite->tSpriteColumn * 64;
if (sprite->pos1.x > 271)
{
sprite->pos1.x = 480 + gWeatherPtr->fog1ScrollPosX - (4 - sprite->tSpriteColumn) * 64;
sprite->pos1.x = 480 + gWeatherPtr->fogHScrollPosX - (4 - sprite->tSpriteColumn) * 64;
sprite->pos1.x &= 0x1FF;
}
}
static void CreateFog1Sprites(void)
static void CreateFogHorizontalSprites(void)
{
u16 i;
u8 spriteId;
struct Sprite *sprite;
if (!gWeatherPtr->fog1SpritesCreated)
if (!gWeatherPtr->fogHSpritesCreated)
{
struct SpriteSheet fog1SpriteSheet = {
.data = gWeatherFog1Tiles,
.size = sizeof(gWeatherFog1Tiles),
struct SpriteSheet fogHorizontalSpriteSheet = {
.data = gWeatherFogHorizontalTiles,
.size = sizeof(gWeatherFogHorizontalTiles),
.tag = 0x1201,
};
LoadSpriteSheet(&fog1SpriteSheet);
for (i = 0; i < NUM_FOG1_SPRITES; i++)
LoadSpriteSheet(&fogHorizontalSpriteSheet);
for (i = 0; i < NUM_FOG_HORIZONTAL_SPRITES; i++)
{
spriteId = CreateSpriteAtEnd(&sFog1SpriteTemplate, 0, 0, 0xFF);
spriteId = CreateSpriteAtEnd(&sFogHorizontalSpriteTemplate, 0, 0, 0xFF);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
sprite->tSpriteColumn = i % 5;
sprite->pos1.x = (i % 5) * 64 + 32;
sprite->pos1.y = (i / 5) * 64 + 32;
gWeatherPtr->sprites.s2.fog1Sprites[i] = sprite;
gWeatherPtr->sprites.s2.fogHSprites[i] = sprite;
}
else
{
gWeatherPtr->sprites.s2.fog1Sprites[i] = NULL;
gWeatherPtr->sprites.s2.fogHSprites[i] = NULL;
}
}
gWeatherPtr->fog1SpritesCreated = TRUE;
gWeatherPtr->fogHSpritesCreated = TRUE;
}
}
static void DestroyFog1Sprites(void)
static void DestroyFogHorizontalSprites(void)
{
u16 i;
if (gWeatherPtr->fog1SpritesCreated)
if (gWeatherPtr->fogHSpritesCreated)
{
for (i = 0; i < NUM_FOG1_SPRITES; i++)
for (i = 0; i < NUM_FOG_HORIZONTAL_SPRITES; i++)
{
if (gWeatherPtr->sprites.s2.fog1Sprites[i] != NULL)
DestroySprite(gWeatherPtr->sprites.s2.fog1Sprites[i]);
if (gWeatherPtr->sprites.s2.fogHSprites[i] != NULL)
DestroySprite(gWeatherPtr->sprites.s2.fogHSprites[i]);
}
FreeSpriteTilesByTag(0x1201);
gWeatherPtr->fog1SpritesCreated = 0;
gWeatherPtr->fogHSpritesCreated = 0;
}
}
#undef tSpriteColumn
//------------------------------------------------------------------------------
// Volcanic ash
// WEATHER_VOLCANIC_ASH
//------------------------------------------------------------------------------
static void LoadAshSpriteSheet(void);
@@ -1688,48 +1688,48 @@ static void UpdateAshSprite(struct Sprite *sprite)
#undef tSpriteRow
//------------------------------------------------------------------------------
// Fog 2
// WEATHER_FOG_DIAGONAL
//------------------------------------------------------------------------------
static void UpdateFog2Movement(void);
static void CreateFog2Sprites(void);
static void DestroyFog2Sprites(void);
static void UpdateFog2Sprite(struct Sprite *);
static void UpdateFogDiagonalMovement(void);
static void CreateFogDiagonalSprites(void);
static void DestroyFogDiagonalSprites(void);
static void UpdateFogDiagonalSprite(struct Sprite *);
void Fog2_InitVars(void)
void FogDiagonal_InitVars(void)
{
gWeatherPtr->initStep = 0;
gWeatherPtr->weatherGfxLoaded = 0;
gWeatherPtr->gammaTargetIndex = 0;
gWeatherPtr->gammaStepDelay = 20;
gWeatherPtr->fog1ScrollCounter = 0;
gWeatherPtr->fog1ScrollOffset = 1;
if (!gWeatherPtr->fog2SpritesCreated)
gWeatherPtr->fogHScrollCounter = 0;
gWeatherPtr->fogHScrollOffset = 1;
if (!gWeatherPtr->fogDSpritesCreated)
{
gWeatherPtr->fog2ScrollXCounter = 0;
gWeatherPtr->fog2ScrollYCounter = 0;
gWeatherPtr->fog2XOffset = 0;
gWeatherPtr->fog2YOffset = 0;
gWeatherPtr->fog2BaseSpritesX = 0;
gWeatherPtr->fog2PosY = 0;
gWeatherPtr->fogDScrollXCounter = 0;
gWeatherPtr->fogDScrollYCounter = 0;
gWeatherPtr->fogDXOffset = 0;
gWeatherPtr->fogDYOffset = 0;
gWeatherPtr->fogDBaseSpritesX = 0;
gWeatherPtr->fogDPosY = 0;
Weather_SetBlendCoeffs(0, 16);
}
}
void Fog2_InitAll(void)
void FogDiagonal_InitAll(void)
{
Fog2_InitVars();
FogDiagonal_InitVars();
while (gWeatherPtr->weatherGfxLoaded == FALSE)
Fog2_Main();
FogDiagonal_Main();
}
void Fog2_Main(void)
void FogDiagonal_Main(void)
{
UpdateFog2Movement();
UpdateFogDiagonalMovement();
switch (gWeatherPtr->initStep)
{
case 0:
CreateFog2Sprites();
CreateFogDiagonalSprites();
gWeatherPtr->initStep++;
break;
case 1:
@@ -1745,9 +1745,9 @@ void Fog2_Main(void)
}
}
bool8 Fog2_Finish(void)
bool8 FogDiagonal_Finish(void)
{
UpdateFog2Movement();
UpdateFogDiagonalMovement();
switch (gWeatherPtr->finishStep)
{
case 0:
@@ -1760,7 +1760,7 @@ bool8 Fog2_Finish(void)
gWeatherPtr->finishStep++;
break;
case 2:
DestroyFog2Sprites();
DestroyFogDiagonalSprites();
gWeatherPtr->finishStep++;
break;
default:
@@ -1769,32 +1769,32 @@ bool8 Fog2_Finish(void)
return TRUE;
}
static void UpdateFog2Movement(void)
static void UpdateFogDiagonalMovement(void)
{
if (++gWeatherPtr->fog2ScrollXCounter > 2)
if (++gWeatherPtr->fogDScrollXCounter > 2)
{
gWeatherPtr->fog2XOffset++;
gWeatherPtr->fog2ScrollXCounter = 0;
gWeatherPtr->fogDXOffset++;
gWeatherPtr->fogDScrollXCounter = 0;
}
if (++gWeatherPtr->fog2ScrollYCounter > 4)
if (++gWeatherPtr->fogDScrollYCounter > 4)
{
gWeatherPtr->fog2YOffset++;
gWeatherPtr->fog2ScrollYCounter = 0;
gWeatherPtr->fogDYOffset++;
gWeatherPtr->fogDScrollYCounter = 0;
}
gWeatherPtr->fog2BaseSpritesX = (gSpriteCoordOffsetX - gWeatherPtr->fog2XOffset) & 0xFF;
gWeatherPtr->fog2PosY = gSpriteCoordOffsetY + gWeatherPtr->fog2YOffset;
gWeatherPtr->fogDBaseSpritesX = (gSpriteCoordOffsetX - gWeatherPtr->fogDXOffset) & 0xFF;
gWeatherPtr->fogDPosY = gSpriteCoordOffsetY + gWeatherPtr->fogDYOffset;
}
static const struct SpriteSheet gFog2SpriteSheet =
static const struct SpriteSheet gFogDiagonalSpriteSheet =
{
.data = gWeatherFog2Tiles,
.size = sizeof(gWeatherFog2Tiles),
.data = gWeatherFogDiagonalTiles,
.size = sizeof(gWeatherFogDiagonalTiles),
.tag = 0x1203,
};
static const struct OamData sFog2SpriteOamData =
static const struct OamData sFogDiagonalSpriteOamData =
{
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
@@ -1808,86 +1808,86 @@ static const struct OamData sFog2SpriteOamData =
.paletteNum = 0,
};
static const union AnimCmd sFog2SpriteAnimCmd0[] =
static const union AnimCmd sFogDiagonalSpriteAnimCmd0[] =
{
ANIMCMD_FRAME(0, 16),
ANIMCMD_END,
};
static const union AnimCmd *const sFog2SpriteAnimCmds[] =
static const union AnimCmd *const sFogDiagonalSpriteAnimCmds[] =
{
sFog2SpriteAnimCmd0,
sFogDiagonalSpriteAnimCmd0,
};
static const struct SpriteTemplate sFog2SpriteTemplate =
static const struct SpriteTemplate sFogDiagonalSpriteTemplate =
{
.tileTag = 0x1203,
.paletteTag = 0x1200,
.oam = &sFog2SpriteOamData,
.anims = sFog2SpriteAnimCmds,
.oam = &sFogDiagonalSpriteOamData,
.anims = sFogDiagonalSpriteAnimCmds,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateFog2Sprite,
.callback = UpdateFogDiagonalSprite,
};
#define tSpriteColumn data[0]
#define tSpriteRow data[1]
static void CreateFog2Sprites(void)
static void CreateFogDiagonalSprites(void)
{
u16 i;
struct SpriteSheet fog2SpriteSheet;
struct SpriteSheet fogDiagonalSpriteSheet;
u8 spriteId;
struct Sprite *sprite;
if (!gWeatherPtr->fog2SpritesCreated)
if (!gWeatherPtr->fogDSpritesCreated)
{
fog2SpriteSheet = gFog2SpriteSheet;
LoadSpriteSheet(&fog2SpriteSheet);
for (i = 0; i < NUM_FOG2_SPRITES; i++)
fogDiagonalSpriteSheet = gFogDiagonalSpriteSheet;
LoadSpriteSheet(&fogDiagonalSpriteSheet);
for (i = 0; i < NUM_FOG_DIAGONAL_SPRITES; i++)
{
spriteId = CreateSpriteAtEnd(&sFog2SpriteTemplate, 0, (i / 5) * 64, 0xFF);
spriteId = CreateSpriteAtEnd(&sFogDiagonalSpriteTemplate, 0, (i / 5) * 64, 0xFF);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
sprite->tSpriteColumn = i % 5;
sprite->tSpriteRow = i / 5;
gWeatherPtr->sprites.s2.fog2Sprites[i] = sprite;
gWeatherPtr->sprites.s2.fogDSprites[i] = sprite;
}
else
{
gWeatherPtr->sprites.s2.fog2Sprites[i] = NULL;
gWeatherPtr->sprites.s2.fogDSprites[i] = NULL;
}
}
gWeatherPtr->fog2SpritesCreated = TRUE;
gWeatherPtr->fogDSpritesCreated = TRUE;
}
}
static void DestroyFog2Sprites(void)
static void DestroyFogDiagonalSprites(void)
{
u16 i;
if (gWeatherPtr->fog2SpritesCreated)
if (gWeatherPtr->fogDSpritesCreated)
{
for (i = 0; i < NUM_FOG2_SPRITES; i++)
for (i = 0; i < NUM_FOG_DIAGONAL_SPRITES; i++)
{
if (gWeatherPtr->sprites.s2.fog2Sprites[i])
DestroySprite(gWeatherPtr->sprites.s2.fog2Sprites[i]);
if (gWeatherPtr->sprites.s2.fogDSprites[i])
DestroySprite(gWeatherPtr->sprites.s2.fogDSprites[i]);
}
FreeSpriteTilesByTag(0x1203);
gWeatherPtr->fog2SpritesCreated = FALSE;
gWeatherPtr->fogDSpritesCreated = FALSE;
}
}
static void UpdateFog2Sprite(struct Sprite *sprite)
static void UpdateFogDiagonalSprite(struct Sprite *sprite)
{
sprite->pos2.y = gWeatherPtr->fog2PosY;
sprite->pos1.x = gWeatherPtr->fog2BaseSpritesX + 32 + sprite->tSpriteColumn * 64;
sprite->pos2.y = gWeatherPtr->fogDPosY;
sprite->pos1.x = gWeatherPtr->fogDBaseSpritesX + 32 + sprite->tSpriteColumn * 64;
if (sprite->pos1.x > 271)
{
sprite->pos1.x = gWeatherPtr->fog2BaseSpritesX + 480 - (4 - sprite->tSpriteColumn) * 64;
sprite->pos1.x = gWeatherPtr->fogDBaseSpritesX + 480 - (4 - sprite->tSpriteColumn) * 64;
sprite->pos1.x &= 0x1FF;
}
}
@@ -1896,7 +1896,7 @@ static void UpdateFog2Sprite(struct Sprite *sprite)
#undef tSpriteRow
//------------------------------------------------------------------------------
// Sandstorm
// WEATHER_SANDSTORM
//------------------------------------------------------------------------------
static void UpdateSandstormWaveIndex(void);
@@ -2137,14 +2137,14 @@ static void CreateSwirlSandstormSprites(void)
if (spriteId != MAX_SPRITES)
{
gWeatherPtr->sprites.s2.sandstormSprites2[i] = &gSprites[spriteId];
gWeatherPtr->sprites.s2.sandstormSprites2[i]->oam.size = 2;
gWeatherPtr->sprites.s2.sandstormSprites2[i]->oam.size = ST_OAM_SIZE_2;
gWeatherPtr->sprites.s2.sandstormSprites2[i]->tSpriteRow = i * 51;
gWeatherPtr->sprites.s2.sandstormSprites2[i]->tRadius = 8;
gWeatherPtr->sprites.s2.sandstormSprites2[i]->tRadiusCounter = 0;
gWeatherPtr->sprites.s2.sandstormSprites2[i]->data[4] = 0x6730; // unused value
gWeatherPtr->sprites.s2.sandstormSprites2[i]->tEntranceDelay = sSwirlEntranceDelays[i];
StartSpriteAnim(gWeatherPtr->sprites.s2.sandstormSprites2[i], 1);
CalcCenterToCornerVec(gWeatherPtr->sprites.s2.sandstormSprites2[i], 0, 2, 0);
CalcCenterToCornerVec(gWeatherPtr->sprites.s2.sandstormSprites2[i], SPRITE_SHAPE(32x32), SPRITE_SIZE(32x32), ST_OAM_AFFINE_OFF);
gWeatherPtr->sprites.s2.sandstormSprites2[i]->callback = WaitSandSwirlSpriteEntrance;
}
else
@@ -2205,7 +2205,7 @@ static void UpdateSandstormSwirlSprite(struct Sprite *sprite)
#undef tEntranceDelay
//------------------------------------------------------------------------------
// Shade
// WEATHER_SHADE
//------------------------------------------------------------------------------
void Shade_InitVars(void)
@@ -2230,7 +2230,7 @@ bool8 Shade_Finish(void)
}
//------------------------------------------------------------------------------
// Bubbles
// WEATHER_UNDERWATER_BUBBLES
//------------------------------------------------------------------------------
static void CreateBubbleSprite(u16);
@@ -2265,7 +2265,7 @@ static const s16 sBubbleStartCoords[][2] =
void Bubbles_InitVars(void)
{
Fog1_InitVars();
FogHorizontal_InitVars();
if (!gWeatherPtr->bubblesSpritesCreated)
{
LoadSpriteSheet(&sWeatherBubbleSpriteSheet);
@@ -2285,7 +2285,7 @@ void Bubbles_InitAll(void)
void Bubbles_Main(void)
{
Fog1_Main();
FogHorizontal_Main();
if (++gWeatherPtr->bubblesDelayCounter > sBubbleStartDelays[gWeatherPtr->bubblesDelayIndex])
{
gWeatherPtr->bubblesDelayCounter = 0;
@@ -2300,7 +2300,7 @@ void Bubbles_Main(void)
bool8 Bubbles_Finish(void)
{
if (!Fog1_Finish())
if (!FogHorizontal_Finish())
{
DestroyBubbleSprites();
return FALSE;
@@ -2399,13 +2399,13 @@ static void UpdateBubbleSprite(struct Sprite *sprite)
//------------------------------------------------------------------------------
// Unused function.
static void UnusedSetCurrentAlternatingWeather(u32 a0, u32 a1)
static void UnusedSetCurrentAbnormalWeather(u32 a0, u32 a1)
{
gCurrentAlternatingWeather = a0;
gCurrentAbnormalWeather = a0;
gUnusedWeatherRelated = a1;
}
static void Task_DoAlternatingWeather(u8 taskId)
static void Task_DoAbnormalWeather(u8 taskId)
{
s16 *data = gTasks[taskId].data;
@@ -2415,7 +2415,7 @@ static void Task_DoAlternatingWeather(u8 taskId)
if (data[15]-- <= 0)
{
SetNextWeather(data[1]);
gCurrentAlternatingWeather = data[1];
gCurrentAbnormalWeather = data[1];
data[15] = 600;
data[0]++;
}
@@ -2424,7 +2424,7 @@ static void Task_DoAlternatingWeather(u8 taskId)
if (data[15]-- <= 0)
{
SetNextWeather(data[2]);
gCurrentAlternatingWeather = data[2];
gCurrentAbnormalWeather = data[2];
data[15] = 600;
data[0] = 0;
}
@@ -2432,27 +2432,27 @@ static void Task_DoAlternatingWeather(u8 taskId)
}
}
static void CreateAlternatingWeatherTask(void)
static void CreateAbnormalWeatherTask(void)
{
u8 taskId = CreateTask(Task_DoAlternatingWeather, 0);
u8 taskId = CreateTask(Task_DoAbnormalWeather, 0);
s16 *data = gTasks[taskId].data;
data[15] = 600;
if (gCurrentAlternatingWeather == WEATHER_RAIN_HEAVY)
if (gCurrentAbnormalWeather == WEATHER_DOWNPOUR)
{
data[1] = WEATHER_DROUGHT;
data[2] = WEATHER_RAIN_HEAVY;
data[2] = WEATHER_DOWNPOUR;
}
else if (gCurrentAlternatingWeather == WEATHER_DROUGHT)
else if (gCurrentAbnormalWeather == WEATHER_DROUGHT)
{
data[1] = WEATHER_RAIN_HEAVY;
data[1] = WEATHER_DOWNPOUR;
data[2] = WEATHER_DROUGHT;
}
else
{
gCurrentAlternatingWeather = WEATHER_RAIN_HEAVY;
gCurrentAbnormalWeather = WEATHER_DOWNPOUR;
data[1] = WEATHER_DROUGHT;
data[2] = WEATHER_RAIN_HEAVY;
data[2] = WEATHER_DOWNPOUR;
}
}
@@ -2494,17 +2494,17 @@ void DoCurrentWeather(void)
{
u8 weather = GetSav1Weather();
if (weather == WEATHER_ALTERNATING)
if (weather == WEATHER_ABNORMAL)
{
if (!FuncIsActiveTask(Task_DoAlternatingWeather))
CreateAlternatingWeatherTask();
weather = gCurrentAlternatingWeather;
if (!FuncIsActiveTask(Task_DoAbnormalWeather))
CreateAbnormalWeatherTask();
weather = gCurrentAbnormalWeather;
}
else
{
if (FuncIsActiveTask(Task_DoAlternatingWeather))
DestroyTask(FindTaskIdByFunc(Task_DoAlternatingWeather));
gCurrentAlternatingWeather = WEATHER_RAIN_HEAVY;
if (FuncIsActiveTask(Task_DoAbnormalWeather))
DestroyTask(FindTaskIdByFunc(Task_DoAbnormalWeather));
gCurrentAbnormalWeather = WEATHER_DOWNPOUR;
}
SetNextWeather(weather);
}
@@ -2513,17 +2513,17 @@ void ResumePausedWeather(void)
{
u8 weather = GetSav1Weather();
if (weather == WEATHER_ALTERNATING)
if (weather == WEATHER_ABNORMAL)
{
if (!FuncIsActiveTask(Task_DoAlternatingWeather))
CreateAlternatingWeatherTask();
weather = gCurrentAlternatingWeather;
if (!FuncIsActiveTask(Task_DoAbnormalWeather))
CreateAbnormalWeatherTask();
weather = gCurrentAbnormalWeather;
}
else
{
if (FuncIsActiveTask(Task_DoAlternatingWeather))
DestroyTask(FindTaskIdByFunc(Task_DoAlternatingWeather));
gCurrentAlternatingWeather = WEATHER_RAIN_HEAVY;
if (FuncIsActiveTask(Task_DoAbnormalWeather))
DestroyTask(FindTaskIdByFunc(Task_DoAbnormalWeather));
gCurrentAbnormalWeather = WEATHER_DOWNPOUR;
}
SetCurrentAndNextWeather(weather);
}
@@ -2531,15 +2531,15 @@ void ResumePausedWeather(void)
static const u8 sWeatherCycleRoute119[] =
{
WEATHER_SUNNY,
WEATHER_RAIN_LIGHT,
WEATHER_RAIN_MED,
WEATHER_RAIN_LIGHT,
WEATHER_RAIN,
WEATHER_RAIN_THUNDERSTORM,
WEATHER_RAIN,
};
static const u8 sWeatherCycleRoute123[] =
{
WEATHER_SUNNY,
WEATHER_SUNNY,
WEATHER_RAIN_LIGHT,
WEATHER_RAIN,
WEATHER_SUNNY,
};
@@ -2547,25 +2547,25 @@ static u8 TranslateWeatherNum(u8 weather)
{
switch (weather)
{
case WEATHER_NONE: return WEATHER_NONE;
case WEATHER_CLOUDS: return WEATHER_CLOUDS;
case WEATHER_SUNNY: return WEATHER_SUNNY;
case WEATHER_RAIN_LIGHT: return WEATHER_RAIN_LIGHT;
case WEATHER_SNOW: return WEATHER_SNOW;
case WEATHER_RAIN_MED: return WEATHER_RAIN_MED;
case WEATHER_FOG_1: return WEATHER_FOG_1;
case WEATHER_ASH: return WEATHER_ASH;
case WEATHER_SANDSTORM: return WEATHER_SANDSTORM;
case WEATHER_FOG_2: return WEATHER_FOG_2;
case WEATHER_FOG_3: return WEATHER_FOG_3;
case WEATHER_SHADE: return WEATHER_SHADE;
case WEATHER_DROUGHT: return WEATHER_DROUGHT;
case WEATHER_RAIN_HEAVY: return WEATHER_RAIN_HEAVY;
case WEATHER_BUBBLES: return WEATHER_BUBBLES;
case WEATHER_ALTERNATING: return WEATHER_ALTERNATING;
case WEATHER_ROUTE119_CYCLE: return sWeatherCycleRoute119[gSaveBlock1Ptr->weatherCycleStage];
case WEATHER_ROUTE123_CYCLE: return sWeatherCycleRoute123[gSaveBlock1Ptr->weatherCycleStage];
default: return WEATHER_NONE;
case WEATHER_NONE: return WEATHER_NONE;
case WEATHER_SUNNY_CLOUDS: return WEATHER_SUNNY_CLOUDS;
case WEATHER_SUNNY: return WEATHER_SUNNY;
case WEATHER_RAIN: return WEATHER_RAIN;
case WEATHER_SNOW: return WEATHER_SNOW;
case WEATHER_RAIN_THUNDERSTORM: return WEATHER_RAIN_THUNDERSTORM;
case WEATHER_FOG_HORIZONTAL: return WEATHER_FOG_HORIZONTAL;
case WEATHER_VOLCANIC_ASH: return WEATHER_VOLCANIC_ASH;
case WEATHER_SANDSTORM: return WEATHER_SANDSTORM;
case WEATHER_FOG_DIAGONAL: return WEATHER_FOG_DIAGONAL;
case WEATHER_UNDERWATER: return WEATHER_UNDERWATER;
case WEATHER_SHADE: return WEATHER_SHADE;
case WEATHER_DROUGHT: return WEATHER_DROUGHT;
case WEATHER_DOWNPOUR: return WEATHER_DOWNPOUR;
case WEATHER_UNDERWATER_BUBBLES: return WEATHER_UNDERWATER_BUBBLES;
case WEATHER_ABNORMAL: return WEATHER_ABNORMAL;
case WEATHER_ROUTE119_CYCLE: return sWeatherCycleRoute119[gSaveBlock1Ptr->weatherCycleStage];
case WEATHER_ROUTE123_CYCLE: return sWeatherCycleRoute123[gSaveBlock1Ptr->weatherCycleStage];
default: return WEATHER_NONE;
}
}
@@ -2579,7 +2579,7 @@ void UpdateWeatherPerDay(u16 increment)
static void UpdateRainCounter(u8 newWeather, u8 oldWeather)
{
if (newWeather != oldWeather
&& (newWeather == WEATHER_RAIN_LIGHT || newWeather == WEATHER_RAIN_MED))
&& (newWeather == WEATHER_RAIN || newWeather == WEATHER_RAIN_THUNDERSTORM))
IncrementGameStat(GAME_STAT_GOT_RAINED_ON);
}
+3 -3
View File
@@ -92,10 +92,10 @@ static const struct HyperCutterUnk sHyperCutStruct[] =
static const struct OamData sOamData_CutGrass =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(8x8),
.x = 0,
.matrixNum = 0,
+1 -1
View File
@@ -540,7 +540,7 @@ void sub_810E2C8(struct Sprite *sprite)
if (sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK)
{
FreeOamMatrix(sprite->oam.matrixNum);
sprite->oam.affineMode = 0;
sprite->oam.affineMode = ST_OAM_AFFINE_OFF;
}
DestroySprite(sprite);
+25 -25
View File
@@ -288,9 +288,9 @@ static const struct WindowTemplate sMapWindowTemplates[] =
static const u8 sTextColors[][3] =
{
{0, 2, 3},
{0, 1, 9},
{0, 4, 5},
{TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY},
{TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_BLUE},
{TEXT_COLOR_TRANSPARENT, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED},
};
struct
@@ -483,21 +483,21 @@ static const struct SpriteTemplate sSpriteTemplate_Head =
static const u8 *const sPassAreaDescriptions[] =
{
gUnknown_085EDA96,
gUnknown_085ED932,
gUnknown_085ED94D,
gUnknown_085ED961,
gUnknown_085ED977,
gUnknown_085ED993,
gUnknown_085ED9AF,
gUnknown_085ED9C7,
gUnknown_085ED9E5,
gUnknown_085EDA02,
gUnknown_085EDA21,
gUnknown_085EDA3C,
gUnknown_085EDA5E,
gUnknown_085EDA78,
gUnknown_085ED931,
gText_ThereIsNoBattleRecord,
gText_CheckFrontierMap,
gText_CheckTrainerCard,
gText_ViewRecordedBattle,
gText_PutAwayFrontierPass,
gText_CurrentBattlePoints,
gText_CollectedSymbols,
gText_BattleTowerAbilitySymbol,
gText_BattleDomeTacticsSymbol,
gText_BattlePalaceSpiritsSymbol,
gText_BattleArenaGutsSymbol,
gText_BattleFactoryKnowledgeSymbol,
gText_BattlePikeLuckSymbol,
gText_BattlePyramidBraveSymbol,
gText_EmptyString7,
};
struct
@@ -509,13 +509,13 @@ struct
u8 animNum;
} static const sMapLandmarks[] =
{
{gUnknown_085EDAB1, gUnknown_085EDB0F, 0x59, 0x28, 1},
{gUnknown_085EDABE, gUnknown_085EDB4E, 0x21, 0x2A, 1},
{gUnknown_085EDACA, gUnknown_085EDB8B, 0x78, 0x56, 0},
{gUnknown_085EDAD8, gUnknown_085EDBC2, 0x72, 0x3B, 0},
{gUnknown_085EDAE5, gUnknown_085EDC00, 0x19, 0x43, 0},
{gUnknown_085EDAF4, gUnknown_085EDC45, 0x39, 0x39, 1},
{gUnknown_085EDB00, gUnknown_085EDC84, 0x86, 0x29, 1},
{gText_BattleTower3, gText_BattleTowerDesc, 0x59, 0x28, 1},
{gText_BattleDome2, gText_BattleDomeDesc, 0x21, 0x2A, 1},
{gText_BattlePalace2, gText_BattlePalaceDesc, 0x78, 0x56, 0},
{gText_BattleArena2, gText_BattleArenaDesc, 0x72, 0x3B, 0},
{gText_BattleFactory2, gText_BattleFactoryDesc, 0x19, 0x43, 0},
{gText_BattlePike2, gText_BattlePikeDesc, 0x39, 0x39, 1},
{gText_BattlePyramid2, gText_BattlePyramidDesc, 0x86, 0x29, 1},
};
// code
+21 -20
View File
@@ -138,9 +138,10 @@ static const struct BgTemplate sHof_BgTemplates[] =
static const struct WindowTemplate sHof_WindowTemplate = {0, 2, 2, 0xE, 6, 0xE, 1};
static const u8 sUnknown_085E5388[] = {0, 1, 2, 0};
static const u8 sMonInfoTextColors[4] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY};
static const u8 sPlayerInfoTextColors[4] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY};
static const u8 sUnknown_085E538C[] = {0, 2, 3, 0, 4, 5, 0, 0};
static const u8 sUnused_085E538C[] = {4, 5, 0, 0};
static const struct CompressedSpriteSheet sHallOfFame_ConfettiSpriteSheet[] =
{
@@ -174,10 +175,10 @@ static const s16 sHallOfFame_MonHalfTeamPositions[3][4] =
static const struct OamData sOamData_85E53FC =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(8x8),
.x = 0,
.matrixNum = 0,
@@ -580,7 +581,7 @@ static void Task_Hof_PrintMonInfoAfterAnimating(u8 taskId)
if (monSprite->callback == SpriteCallbackDummy)
{
monSprite->oam.affineMode = 0;
monSprite->oam.affineMode = ST_OAM_AFFINE_OFF;
HallOfFame_PrintMonInfo(currMon, 0, 14);
gTasks[taskId].tFrameCount = 120;
gTasks[taskId].func = Task_Hof_TryDisplayAnotherMon;
@@ -1063,7 +1064,7 @@ static void Task_HofPC_HandleExit(u8 taskId)
static void Task_HofPC_PrintDataIsCorrupted(u8 taskId)
{
sub_8198180(gText_UnkCtrlF800Exit, 8, TRUE);
sub_8198180(gText_AButtonExit, 8, TRUE);
DrawDialogueFrame(0, 0);
AddTextPrinterParameterized2(0, 1, gText_HOFCorrupted, 0, NULL, 2, 1, 3);
CopyWindowToVram(0, 3);
@@ -1086,7 +1087,7 @@ static void HallOfFame_PrintWelcomeText(u8 unusedPossiblyWindowId, u8 unused2)
{
FillWindowPixelBuffer(0, PIXEL_FILL(0));
PutWindowTilemap(0);
AddTextPrinterParameterized3(0, 1, GetStringCenterAlignXOffset(1, gText_WelcomeToHOF, 0xD0), 1, sUnknown_085E5388, 0, gText_WelcomeToHOF);
AddTextPrinterParameterized3(0, 1, GetStringCenterAlignXOffset(1, gText_WelcomeToHOF, 0xD0), 1, sMonInfoTextColors, 0, gText_WelcomeToHOF);
CopyWindowToVram(0, 3);
}
@@ -1122,7 +1123,7 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u
*(stringPtr)++ = CHAR_QUESTION_MARK;
}
stringPtr[0] = EOS;
AddTextPrinterParameterized3(0, 1, 0x10, 1, sUnknown_085E5388, -1, text);
AddTextPrinterParameterized3(0, 1, 0x10, 1, sMonInfoTextColors, -1, text);
}
// nick, species names, gender and level
@@ -1131,13 +1132,13 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u
if (currMon->species == SPECIES_EGG)
{
width = GetStringCenterAlignXOffset(1, text, 0xD0);
AddTextPrinterParameterized3(0, 1, width, 1, sUnknown_085E5388, -1, text);
AddTextPrinterParameterized3(0, 1, width, 1, sMonInfoTextColors, -1, text);
CopyWindowToVram(0, 3);
}
else
{
width = GetStringRightAlignXOffset(1, text, 0x80);
AddTextPrinterParameterized3(0, 1, width, 1, sUnknown_085E5388, -1, text);
AddTextPrinterParameterized3(0, 1, width, 1, sMonInfoTextColors, -1, text);
text[0] = CHAR_SLASH;
stringPtr = StringCopy(text + 1, gSpeciesNames[currMon->species]);
@@ -1158,15 +1159,15 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u
}
stringPtr[0] = EOS;
AddTextPrinterParameterized3(0, 1, 0x80, 1, sUnknown_085E5388, -1, text);
AddTextPrinterParameterized3(0, 1, 0x80, 1, sMonInfoTextColors, -1, text);
stringPtr = StringCopy(text, gText_Level);
ConvertIntToDecimalStringN(stringPtr, currMon->lvl, STR_CONV_MODE_LEFT_ALIGN, 3);
AddTextPrinterParameterized3(0, 1, 0x24, 0x11, sUnknown_085E5388, -1, text);
AddTextPrinterParameterized3(0, 1, 0x24, 0x11, sMonInfoTextColors, -1, text);
stringPtr = StringCopy(text, gText_IDNumber);
ConvertIntToDecimalStringN(stringPtr, (u16)(currMon->tid), STR_CONV_MODE_LEADING_ZEROS, 5);
AddTextPrinterParameterized3(0, 1, 0x68, 0x11, sUnknown_085E5388, -1, text);
AddTextPrinterParameterized3(0, 1, 0x68, 0x11, sMonInfoTextColors, -1, text);
CopyWindowToVram(0, 3);
}
@@ -1181,13 +1182,13 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
FillWindowPixelBuffer(1, PIXEL_FILL(1));
PutWindowTilemap(1);
DrawStdFrameWithCustomTileAndPalette(1, FALSE, 0x21D, 0xD);
AddTextPrinterParameterized3(1, 1, 0, 1, sUnknown_085E538C, -1, gText_Name);
AddTextPrinterParameterized3(1, 1, 0, 1, sPlayerInfoTextColors, -1, gText_Name);
width = GetStringRightAlignXOffset(1, gSaveBlock2Ptr->playerName, 0x70);
AddTextPrinterParameterized3(1, 1, width, 1, sUnknown_085E538C, -1, gSaveBlock2Ptr->playerName);
AddTextPrinterParameterized3(1, 1, width, 1, sPlayerInfoTextColors, -1, gSaveBlock2Ptr->playerName);
trainerId = (gSaveBlock2Ptr->playerTrainerId[0]) | (gSaveBlock2Ptr->playerTrainerId[1] << 8);
AddTextPrinterParameterized3(1, 1, 0, 0x11, sUnknown_085E538C, 0, gText_IDNumber);
AddTextPrinterParameterized3(1, 1, 0, 0x11, sPlayerInfoTextColors, 0, gText_IDNumber);
text[0] = (trainerId % 100000) / 10000 + CHAR_0;
text[1] = (trainerId % 10000) / 1000 + CHAR_0;
text[2] = (trainerId % 1000) / 100 + CHAR_0;
@@ -1195,9 +1196,9 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
text[4] = (trainerId % 10) / 1 + CHAR_0;
text[5] = EOS;
width = GetStringRightAlignXOffset(1, text, 0x70);
AddTextPrinterParameterized3(1, 1, width, 0x11, sUnknown_085E538C, -1, text);
AddTextPrinterParameterized3(1, 1, width, 0x11, sPlayerInfoTextColors, -1, text);
AddTextPrinterParameterized3(1, 1, 0, 0x21, sUnknown_085E538C, -1, gText_MainMenuTime);
AddTextPrinterParameterized3(1, 1, 0, 0x21, sPlayerInfoTextColors, -1, gText_Time);
text[0] = (gSaveBlock2Ptr->playTimeHours / 100) + CHAR_0;
text[1] = (gSaveBlock2Ptr->playTimeHours % 100) / 10 + CHAR_0;
text[2] = (gSaveBlock2Ptr->playTimeHours % 10) + CHAR_0;
@@ -1213,7 +1214,7 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
text[6] = EOS;
width = GetStringRightAlignXOffset(1, text, 0x70);
AddTextPrinterParameterized3(1, 1, width, 0x21, sUnknown_085E538C, -1, text);
AddTextPrinterParameterized3(1, 1, width, 0x21, sPlayerInfoTextColors, -1, text);
CopyWindowToVram(1, 3);
}
+2 -2
View File
@@ -998,7 +998,7 @@ void AnimTask_Haze1(u8 taskId)
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
sub_80A6B30(&animBg);
LoadBgTiles(animBg.bgId, gWeatherFog1Tiles, 0x800, animBg.tilesOffset);
LoadBgTiles(animBg.bgId, gWeatherFogHorizontalTiles, 0x800, animBg.tilesOffset);
sub_80A6D60(&animBg, gBattleAnimFogTilemap, 0);
LoadPalette(&gUnknown_083970E8, animBg.paletteId * 16, 32);
@@ -1105,7 +1105,7 @@ void AnimTask_LoadMistTiles(u8 taskId)
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
sub_80A6B30(&animBg);
LoadBgTiles(animBg.bgId, gWeatherFog1Tiles, 0x800, animBg.tilesOffset);
LoadBgTiles(animBg.bgId, gWeatherFogHorizontalTiles, 0x800, animBg.tilesOffset);
sub_80A6D60(&animBg, gBattleAnimFogTilemap, 0);
LoadPalette(&gUnknown_083970E8, animBg.paletteId * 16, 32);
+56 -56
View File
@@ -141,10 +141,10 @@ static const struct SpritePalette gIntroPalette_Lightning[] =
static const struct OamData gUnknown_085E4A94 =
{
.y = 160,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x16),
.x = 0,
.matrixNum = 0,
@@ -210,10 +210,10 @@ static const struct SpritePalette gIntroPokemonRunningPalette[] =
static const struct OamData gUnknown_085E4B28 =
{
.y = 160,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x32),
.x = 0,
.matrixNum = 0,
@@ -247,10 +247,10 @@ static const struct SpriteTemplate gUnknown_085E4B40 =
static const struct OamData gUnknown_085E4B58 =
{
.y = 160,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x32),
.x = 0,
.matrixNum = 0,
@@ -303,10 +303,10 @@ static const struct SpriteTemplate gUnknown_085E4BA4 =
static const struct OamData gUnknown_085E4BBC =
{
.y = 160,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
@@ -352,10 +352,10 @@ static const struct SpritePalette gIntroRayquazaLightningPalette[] =
static const struct OamData gUnknown_085E4C14 =
{
.y = 160,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x32),
.x = 0,
.matrixNum = 0,
@@ -437,10 +437,10 @@ static const s16 gIntroKyogreBubbleData[][3] =
static const struct OamData gUnknown_085E4CF0 =
{
.y = 160,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x32),
.x = 0,
.matrixNum = 0,
@@ -477,10 +477,10 @@ static const struct SpriteTemplate gUnknown_085E4D14 =
static const struct OamData gUnknown_085E4D2C =
{
.y = 160,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x32),
.x = 0,
.matrixNum = 0,
@@ -568,10 +568,10 @@ static const union AnimCmd *const gIntroBicycleAnimationCommands[] =
static const struct OamData gUnknown_085E4DD4 =
{
.y = 160,
.affineMode = 3,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x16),
.x = 0,
.matrixNum = 0,
@@ -584,10 +584,10 @@ static const struct OamData gUnknown_085E4DD4 =
static const struct OamData gUnknown_085E4DDC =
{
.y = 160,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(8x8),
.x = 0,
.matrixNum = 0,
@@ -600,10 +600,10 @@ static const struct OamData gUnknown_085E4DDC =
static const struct OamData gUnknown_085E4DE4 =
{
.y = 160,
.affineMode = 3,
.objMode = 1,
.affineMode = ST_OAM_AFFINE_DOUBLE,
.objMode = ST_OAM_OBJ_BLEND,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x64),
.x = 0,
.matrixNum = 0,
@@ -800,10 +800,10 @@ static const u8 gUnknown_085E4FA4[] =
static const struct OamData gUnknown_085E4FB0 =
{
.y = 160,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x32),
.x = 0,
.matrixNum = 0,
@@ -853,10 +853,10 @@ static const struct SpritePalette gIntroPalette_DropLogoFlygon[] =
static const struct OamData gUnknown_085E501C =
{
.y = 160,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
@@ -2568,9 +2568,9 @@ static void sub_816F3A4(struct Sprite *sprite)
sprite->data[2] = 1024;
sprite->data[3] = 8 * (sprite->data[1] & 3);
sprite->callback = sub_816F318;
sprite->oam.shape = 1;
sprite->oam.size = 3;
CalcCenterToCornerVec(sprite, 1, 3, 2);
sprite->oam.shape = SPRITE_SHAPE(64x32);
sprite->oam.size = SPRITE_SIZE(64x32);
CalcCenterToCornerVec(sprite, SPRITE_SHAPE(64x32), SPRITE_SIZE(64x32), ST_OAM_AFFINE_ERASE);
}
else
{
@@ -2690,9 +2690,9 @@ static void SpriteCB_WaterDropFall(struct Sprite *sprite)
sprite->data[2] = 1024;
sprite->data[3] = 8 * (sprite->data[1] & 3);
sprite->callback = sub_816F318;
sprite->oam.shape = 1;
sprite->oam.size = 3;
CalcCenterToCornerVec(sprite, 1, 3, 2);
sprite->oam.shape = SPRITE_SHAPE(64x32);
sprite->oam.size = SPRITE_SIZE(64x32);
CalcCenterToCornerVec(sprite, SPRITE_SHAPE(64x32), SPRITE_SIZE(64x32), ST_OAM_AFFINE_ERASE);
}
}
@@ -2713,9 +2713,9 @@ static void SpriteCB_WaterDropFall_2(struct Sprite *sprite)
sprite->data[2] = 1024;
sprite->data[3] = 8 * (sprite->data[1] & 3);
sprite->callback = sub_816F318;
sprite->oam.shape = 1;
sprite->oam.size = 3;
CalcCenterToCornerVec(sprite, 1, 3, 2);
sprite->oam.shape = SPRITE_SHAPE(64x32);
sprite->oam.size = SPRITE_SIZE(64x32);
CalcCenterToCornerVec(sprite, SPRITE_SHAPE(64x32), SPRITE_SIZE(64x32), ST_OAM_AFFINE_ERASE);
}
}
@@ -2732,9 +2732,9 @@ static u8 CreateWaterDrop(s16 x, s16 y, u16 c, u16 d, u16 e, u8 fallImmediately)
gSprites[spriteId].data[3] = c;
gSprites[spriteId].data[5] = e;
gSprites[spriteId].data[6] = c;
gSprites[spriteId].oam.affineMode = 3;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_DOUBLE;
gSprites[spriteId].oam.matrixNum = d;
CalcCenterToCornerVec(&gSprites[spriteId], 0, 2, 2);
CalcCenterToCornerVec(&gSprites[spriteId], SPRITE_SHAPE(32x32), SPRITE_SIZE(32x32), ST_OAM_AFFINE_ERASE);
StartSpriteAnim(&gSprites[spriteId], 2);
if (!fallImmediately)
gSprites[spriteId].callback = sub_816F454;
@@ -2745,18 +2745,18 @@ static u8 CreateWaterDrop(s16 x, s16 y, u16 c, u16 d, u16 e, u8 fallImmediately)
spriteId = CreateSprite(&gIntroWaterDropSprite, x, y, 1);
gSprites[spriteId].data[7] = oldSpriteId;
gSprites[spriteId].data[1] = d + 1;
gSprites[spriteId].oam.affineMode = 3;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_DOUBLE;
gSprites[spriteId].oam.matrixNum = d + 1;
CalcCenterToCornerVec(&gSprites[spriteId], 0, 2, 2);
CalcCenterToCornerVec(&gSprites[spriteId], SPRITE_SHAPE(32x32), SPRITE_SIZE(32x32), ST_OAM_AFFINE_ERASE);
gSprites[spriteId].callback = sub_816F3A4;
spriteId = CreateSprite(&gIntroWaterDropSprite, x, y, 1);
gSprites[spriteId].data[7] = oldSpriteId;
gSprites[spriteId].data[1] = d + 2;
StartSpriteAnim(&gSprites[spriteId], 1);
gSprites[spriteId].oam.affineMode = 3;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_DOUBLE;
gSprites[spriteId].oam.matrixNum = d + 2;
CalcCenterToCornerVec(&gSprites[spriteId], 0, 2, 2);
CalcCenterToCornerVec(&gSprites[spriteId], SPRITE_SHAPE(32x32), SPRITE_SIZE(32x32), ST_OAM_AFFINE_ERASE);
gSprites[spriteId].callback = sub_816F3A4;
SetOamMatrix(d, c + 32, 0, 0, c + 32);
@@ -2915,7 +2915,7 @@ static void sub_816FB38(struct Sprite *sprite)
if (gIntroFrameCounter == 0x110)
{
StartSpriteAffineAnim(sprite, 2);
sprite->oam.objMode = 1;
sprite->oam.objMode = ST_OAM_OBJ_BLEND;
sprite->data[0]++;
}
break;
@@ -3008,9 +3008,9 @@ static void sub_816FEDC(struct Sprite *sprite)
{
case 0:
default:
sprite->oam.affineMode = 3;
sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE;
sprite->oam.matrixNum = 1;
CalcCenterToCornerVec(sprite, 1, 3, 3);
CalcCenterToCornerVec(sprite, SPRITE_SHAPE(64x32), SPRITE_SIZE(64x32), ST_OAM_AFFINE_DOUBLE);
sprite->invisible = FALSE;
sprite->data[0] = 1;
sprite->data[1] = 0x80;
@@ -3054,9 +3054,9 @@ static void SpriteCB_IntroRayquazaHyperbeam(struct Sprite *sprite)
case 0:
default:
sprite->invisible = FALSE;
sprite->oam.affineMode = 3;
sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE;
sprite->oam.matrixNum = 18;
CalcCenterToCornerVec(sprite, 0, 3, 3);
CalcCenterToCornerVec(sprite, SPRITE_SHAPE(64x64), SPRITE_SIZE(64x64), ST_OAM_AFFINE_DOUBLE);
sprite->data[1] = 0;
sprite->data[0] = 1;
//fall through
+1 -1
View File
@@ -1026,7 +1026,7 @@ static void sub_817B698(u8 a, const struct IntroCreditsSpriteMetadata *b, const
for(i = 0; i < d; i++)
{
u8 sprite = CreateSprite(&gUnknown_085F504C, b[i].x, b[i].y, b[i].subpriority);
CalcCenterToCornerVec(&gSprites[sprite], b[i].shape, b[i].size, 0);
CalcCenterToCornerVec(&gSprites[sprite], b[i].shape, b[i].size, ST_OAM_AFFINE_OFF);
gSprites[sprite].oam.priority = 3;
gSprites[sprite].oam.shape = b[i].shape;
gSprites[sprite].oam.size = b[i].size;
+3 -3
View File
@@ -16,10 +16,10 @@ EWRAM_DATA void *gItemIcon4x4Buffer = NULL;
static const struct OamData sOamData_ItemIcon =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x32),
.x = 0,
.matrixNum = 0,
+2 -2
View File
@@ -797,13 +797,13 @@ void GetItemName(s8 *dest, u16 itemId)
else
{
ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_TM01 + 1, STR_CONV_MODE_LEADING_ZEROS, 2);
StringExpandPlaceholders(dest, gText_UnkF908Var1Clear7Var2);
StringExpandPlaceholders(dest, gText_NumberVar1Clear7Var2);
}
break;
case BERRIES_POCKET:
ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_CHERI_BERRY + 1, STR_CONV_MODE_LEADING_ZEROS, 2);
CopyItemName(itemId, gStringVar2);
StringExpandPlaceholders(dest, gText_UnkF908Var1Clear7Var2);
StringExpandPlaceholders(dest, gText_NumberVar1Clear7Var2);
break;
default:
CopyItemName(itemId, dest);
+16 -16
View File
@@ -32,10 +32,10 @@ static const u16 gCherryUnused_Pal[] = INCBIN_U16("graphics/unused/cherry.gbapal
static const struct OamData sBagOamData =
{
.y = 0,
.affineMode = 1,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_NORMAL,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
@@ -142,10 +142,10 @@ static const struct SpriteTemplate gBagSpriteTemplate =
static const struct OamData sRotatingBallOamData =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x16),
.x = 0,
.matrixNum = 4,
@@ -213,10 +213,10 @@ static const struct SpriteTemplate gRotatingBallSpriteTemplate =
static const struct OamData sBerryPicOamData =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
@@ -230,10 +230,10 @@ static const struct OamData sBerryPicOamData =
static const struct OamData sBerryPicRotatingOamData =
{
.y = 0,
.affineMode = 3,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
@@ -370,10 +370,10 @@ const struct CompressedSpritePalette gBerryCheckCirclePaletteTable =
static const struct OamData sBerryCheckCircleOamData =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
@@ -492,7 +492,7 @@ static void UpdateSwitchPocketRotatingBallCoords(struct Sprite *sprite)
static void SpriteCB_SwitchPocketRotatingBallInit(struct Sprite *sprite)
{
sprite->oam.affineMode = 1;
sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL;
if (sprite->data[0] == -1)
sprite->affineAnims = sRotatingBallAnimCmds;
else
+3 -3
View File
@@ -89,7 +89,7 @@ EWRAM_DATA static void(*gUnknown_0203A0F4)(u8 taskId) = NULL;
// .rodata
static const MainCallback gUnknown_085920D8[] =
static const MainCallback sItemUseCallbacks[] =
{
CB2_ShowPartyMenuForItemUse,
CB2_ReturnToField,
@@ -115,12 +115,12 @@ void SetUpItemUseCallback(u8 taskId)
type = ItemId_GetType(gSpecialVar_ItemId) - 1;
if (!InBattlePyramid())
{
gBagMenu->mainCallback2 = gUnknown_085920D8[type];
gBagMenu->mainCallback2 = sItemUseCallbacks[type];
unknown_ItemMenu_Confirm(taskId);
}
else
{
gPyramidBagResources->callback2 = gUnknown_085920D8[type];
gPyramidBagResources->callback2 = sItemUseCallbacks[type];
sub_81C5B14(taskId);
}
}
+8 -9
View File
@@ -213,10 +213,9 @@ const struct WindowTemplate gUnknown_082ED204[] = {
{0x00, 0x00, 0x0D, 0x1E, 0x07, 0x0F, 0x016A},
DUMMY_WIN_TEMPLATE
};
const u8 gUnknown_082ED224[] = {
0x00, 0x01, 0x02, 0x00,
0xff, 0xfe, 0xff, 0x00
};
static const u8 sTextColors[] = { TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY };
static const u8 sUnused_082ED224[] = {0x00, 0xff, 0xfe, 0xff, 0x00};
// .text
@@ -1688,8 +1687,8 @@ static void sub_800B080(void)
LoadPalette(gWirelessLinkDisplayPal, 0, 0x20);
FillWindowPixelBuffer(0, PIXEL_FILL(0));
FillWindowPixelBuffer(2, PIXEL_FILL(0));
AddTextPrinterParameterized3(0, 3, 2, 6, gUnknown_082ED224, 0, gText_CommErrorEllipsis);
AddTextPrinterParameterized3(2, 3, 2, 1, gUnknown_082ED224, 0, gText_MoveCloserToLinkPartner);
AddTextPrinterParameterized3(0, 3, 2, 6, sTextColors, 0, gText_CommErrorEllipsis);
AddTextPrinterParameterized3(2, 3, 2, 1, sTextColors, 0, gText_MoveCloserToLinkPartner);
PutWindowTilemap(0);
PutWindowTilemap(2);
CopyWindowToVram(0, 0);
@@ -1701,7 +1700,7 @@ static void sub_800B138(void)
LoadBgTiles(0, g2BlankTilesGfx, 0x20, 0);
FillWindowPixelBuffer(1, PIXEL_FILL(0));
FillWindowPixelBuffer(2, PIXEL_FILL(0));
AddTextPrinterParameterized3(1, 3, 2, 0, gUnknown_082ED224, 0, gText_CommErrorCheckConnections);
AddTextPrinterParameterized3(1, 3, 2, 0, sTextColors, 0, gText_CommErrorCheckConnections);
PutWindowTilemap(1);
PutWindowTilemap(2);
CopyWindowToVram(1, 0);
@@ -1741,11 +1740,11 @@ static void CB2_PrintErrorMessage(void)
case 130:
if (gWirelessCommType == 2)
{
AddTextPrinterParameterized3(0, 3, 2, 20, gUnknown_082ED224, 0, gText_ABtnTitleScreen);
AddTextPrinterParameterized3(0, 3, 2, 20, sTextColors, 0, gText_ABtnTitleScreen);
}
else if (gWirelessCommType == 1)
{
AddTextPrinterParameterized3(0, 3, 2, 20, gUnknown_082ED224, 0, gText_ABtnRegistrationCounter);
AddTextPrinterParameterized3(0, 3, 2, 20, sTextColors, 0, gText_ABtnRegistrationCounter);
}
break;
}
+6 -6
View File
@@ -125,10 +125,10 @@ static const struct
static const struct OamData sOamData_ScrollArrowIndicator =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x16),
.x = 0,
.matrixNum = 0,
@@ -265,10 +265,10 @@ static const struct Subsprite sSubsprite_RedOutline8 =
static const struct OamData sOamData_RedArrowCursor =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x16),
.x = 0,
.matrixNum = 0,
+6 -6
View File
@@ -158,10 +158,10 @@ static const struct WindowTemplate sUnknown_0859F29C[] = {
DUMMY_WIN_TEMPLATE
};
static const u8 sUnknown_0859F2AC[] = {
0,
10,
11
static const u8 sTextColors[] = {
TEXT_COLOR_TRANSPARENT,
TEXT_DYNAMIC_COLOR_1,
TEXT_DYNAMIC_COLOR_2
};
static const u16 sUnknown_0859F2B0[][2] = {
@@ -486,14 +486,14 @@ static void sub_8121B1C(void)
{
continue;
}
AddTextPrinterParameterized3(0, 1, sMailRead->layout->var8[i].xOffset + sMailRead->layout->wordsYPos, y + sMailRead->layout->wordsXPos, sUnknown_0859F2AC, 0, sMailRead->strbuf[i]);
AddTextPrinterParameterized3(0, 1, sMailRead->layout->var8[i].xOffset + sMailRead->layout->wordsYPos, y + sMailRead->layout->wordsXPos, sTextColors, 0, sMailRead->strbuf[i]);
y += sMailRead->layout->var8[i].lineHeight;
}
bufptr = StringCopy(strbuf, gText_FromSpace);
StringCopy(bufptr, sMailRead->playerName);
box_x = GetStringCenterAlignXOffset(1, strbuf, sMailRead->signatureWidth) + 0x68;
box_y = sMailRead->layout->signatureYPos + 0x58;
AddTextPrinterParameterized3(0, 1, box_x, box_y, sUnknown_0859F2AC, 0, strbuf);
AddTextPrinterParameterized3(0, 1, box_x, box_y, sTextColors, 0, strbuf);
CopyWindowToVram(0, 3);
CopyWindowToVram(1, 3);
}
+30 -30
View File
@@ -412,8 +412,8 @@ static const struct WindowTemplate gNewGameBirchSpeechTextWindows[] =
static const u16 sMainMenuBgPal[] = INCBIN_U16("graphics/misc/main_menu_bg.gbapal");
static const u16 sMainMenuTextPal[] = INCBIN_U16("graphics/misc/main_menu_text.gbapal");
static const u8 sTextColor_Headers[] = {10, 11, 12};
static const u8 sTextColor_PlayerGenderColor[] = {10, 1, 12};
static const u8 sTextColor_Headers[] = {TEXT_DYNAMIC_COLOR_1, TEXT_DYNAMIC_COLOR_2, TEXT_DYNAMIC_COLOR_3};
static const u8 sTextColor_MenuInfo[] = {TEXT_DYNAMIC_COLOR_1, TEXT_COLOR_WHITE, TEXT_DYNAMIC_COLOR_3};
static const struct BgTemplate sMainMenuBgTemplates[] = {
{
@@ -1312,7 +1312,7 @@ static void Task_NewGameBirchSpeech_WaitToShowBirch(u8 taskId)
gSprites[spriteId].pos1.x = 136;
gSprites[spriteId].pos1.y = 60;
gSprites[spriteId].invisible = FALSE;
gSprites[spriteId].oam.objMode = 1;
gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND;
NewGameBirchSpeech_StartFadeInTarget1OutTarget2(taskId, 10);
NewGameBirchSpeech_StartFadePlatformOut(taskId, 20);
gTasks[taskId].tTimer = 80;
@@ -1324,7 +1324,7 @@ static void Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome(u8 taskId)
{
if (gTasks[taskId].tIsDoneFadingSprites)
{
gSprites[gTasks[taskId].tBirchSpriteId].oam.objMode = 0;
gSprites[gTasks[taskId].tBirchSpriteId].oam.objMode = ST_OAM_OBJ_NORMAL;
if (gTasks[taskId].tTimer)
{
gTasks[taskId].tTimer--;
@@ -1392,7 +1392,7 @@ static void Task_NewGameBirchSpeechSub_WaitForLotad(u8 taskId)
case 0:
if (sprite->callback == SpriteCallbackDummy)
{
sprite->oam.affineMode = 0;
sprite->oam.affineMode = ST_OAM_AFFINE_OFF;
goto incrementStateAndTimer;
}
break;
@@ -1430,8 +1430,8 @@ static void Task_NewGameBirchSpeech_StartBirchLotadPlatformFade(u8 taskId)
{
if (!RunTextPrintersAndIsPrinter0Active())
{
gSprites[gTasks[taskId].tBirchSpriteId].oam.objMode = 1;
gSprites[gTasks[taskId].tLotadSpriteId].oam.objMode = 1;
gSprites[gTasks[taskId].tBirchSpriteId].oam.objMode = ST_OAM_OBJ_BLEND;
gSprites[gTasks[taskId].tLotadSpriteId].oam.objMode = ST_OAM_OBJ_BLEND;
NewGameBirchSpeech_StartFadeOutTarget1InTarget2(taskId, 2);
NewGameBirchSpeech_StartFadePlatformIn(taskId, 1);
gTasks[taskId].tTimer = 64;
@@ -1470,7 +1470,7 @@ static void Task_NewGameBirchSpeech_StartPlayerFadeIn(u8 taskId)
gSprites[spriteId].pos1.x = 180;
gSprites[spriteId].pos1.y = 60;
gSprites[spriteId].invisible = FALSE;
gSprites[spriteId].oam.objMode = 1;
gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND;
gTasks[taskId].tPlayerSpriteId = spriteId;
gTasks[taskId].tPlayerGender = MALE;
NewGameBirchSpeech_StartFadeInTarget1OutTarget2(taskId, 2);
@@ -1484,7 +1484,7 @@ static void Task_NewGameBirchSpeech_WaitForPlayerFadeIn(u8 taskId)
{
if (gTasks[taskId].tIsDoneFadingSprites)
{
gSprites[gTasks[taskId].tPlayerSpriteId].oam.objMode = 0;
gSprites[gTasks[taskId].tPlayerSpriteId].oam.objMode = ST_OAM_OBJ_NORMAL;
gTasks[taskId].func = Task_NewGameBirchSpeech_BoyOrGirl;
}
}
@@ -1530,7 +1530,7 @@ static void Task_NewGameBirchSpeech_ChooseGender(u8 taskId)
if (gender2 != gTasks[taskId].tPlayerGender)
{
gTasks[taskId].tPlayerGender = gender2;
gSprites[gTasks[taskId].tPlayerSpriteId].oam.objMode = 1;
gSprites[gTasks[taskId].tPlayerSpriteId].oam.objMode = ST_OAM_OBJ_BLEND;
NewGameBirchSpeech_StartFadeOutTarget1InTarget2(taskId, 0);
gTasks[taskId].func = Task_NewGameBirchSpeech_SlideOutOldGenderSprite;
}
@@ -1554,7 +1554,7 @@ static void Task_NewGameBirchSpeech_SlideOutOldGenderSprite(u8 taskId)
gSprites[spriteId].pos1.y = 60;
gSprites[spriteId].invisible = FALSE;
gTasks[taskId].tPlayerSpriteId = spriteId;
gSprites[spriteId].oam.objMode = 1;
gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND;
NewGameBirchSpeech_StartFadeInTarget1OutTarget2(taskId, 0);
gTasks[taskId].func = Task_NewGameBirchSpeech_SlideInNewGenderSprite;
}
@@ -1573,7 +1573,7 @@ static void Task_NewGameBirchSpeech_SlideInNewGenderSprite(u8 taskId)
gSprites[spriteId].pos1.x = 180;
if (gTasks[taskId].tIsDoneFadingSprites)
{
gSprites[spriteId].oam.objMode = 0;
gSprites[spriteId].oam.objMode = ST_OAM_OBJ_NORMAL;
gTasks[taskId].func = Task_NewGameBirchSpeech_ChooseGender;
}
}
@@ -1637,7 +1637,7 @@ static void Task_NewGameBirchSpeech_ProcessNameYesNoMenu(u8 taskId)
{
case 0:
PlaySE(SE_SELECT);
gSprites[gTasks[taskId].tPlayerSpriteId].oam.objMode = 1;
gSprites[gTasks[taskId].tPlayerSpriteId].oam.objMode = ST_OAM_OBJ_BLEND;
NewGameBirchSpeech_StartFadeOutTarget1InTarget2(taskId, 2);
NewGameBirchSpeech_StartFadePlatformIn(taskId, 1);
gTasks[taskId].func = Task_NewGameBirchSpeech_SlidePlatformAway2;
@@ -1674,12 +1674,12 @@ static void Task_NewGameBirchSpeech_ReshowBirchLotad(u8 taskId)
gSprites[spriteId].pos1.x = 136;
gSprites[spriteId].pos1.y = 60;
gSprites[spriteId].invisible = FALSE;
gSprites[spriteId].oam.objMode = 1;
gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND;
spriteId = gTasks[taskId].tLotadSpriteId;
gSprites[spriteId].pos1.x = 100;
gSprites[spriteId].pos1.y = 75;
gSprites[spriteId].invisible = FALSE;
gSprites[spriteId].oam.objMode = 1;
gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND;
NewGameBirchSpeech_StartFadeInTarget1OutTarget2(taskId, 2);
NewGameBirchSpeech_StartFadePlatformOut(taskId, 1);
NewGameBirchSpeech_ClearWindow(0);
@@ -1693,12 +1693,12 @@ static void Task_NewGameBirchSpeech_WaitForSpriteFadeInAndTextPrinter(u8 taskId)
{
if (gTasks[taskId].tIsDoneFadingSprites)
{
gSprites[gTasks[taskId].tBirchSpriteId].oam.objMode = 0;
gSprites[gTasks[taskId].tLotadSpriteId].oam.objMode = 0;
gSprites[gTasks[taskId].tBirchSpriteId].oam.objMode = ST_OAM_OBJ_NORMAL;
gSprites[gTasks[taskId].tLotadSpriteId].oam.objMode = ST_OAM_OBJ_NORMAL;
if (!RunTextPrintersAndIsPrinter0Active())
{
gSprites[gTasks[taskId].tBirchSpriteId].oam.objMode = 1;
gSprites[gTasks[taskId].tLotadSpriteId].oam.objMode = 1;
gSprites[gTasks[taskId].tBirchSpriteId].oam.objMode = ST_OAM_OBJ_BLEND;
gSprites[gTasks[taskId].tLotadSpriteId].oam.objMode = ST_OAM_OBJ_BLEND;
NewGameBirchSpeech_StartFadeOutTarget1InTarget2(taskId, 2);
NewGameBirchSpeech_StartFadePlatformIn(taskId, 1);
gTasks[taskId].tTimer = 64;
@@ -1727,7 +1727,7 @@ static void Task_NewGameBirchSpeech_AreYouReady(u8 taskId)
gSprites[spriteId].pos1.x = 120;
gSprites[spriteId].pos1.y = 60;
gSprites[spriteId].invisible = FALSE;
gSprites[spriteId].oam.objMode = 1;
gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND;
gTasks[taskId].tPlayerSpriteId = spriteId;
NewGameBirchSpeech_StartFadeInTarget1OutTarget2(taskId, 2);
NewGameBirchSpeech_StartFadePlatformOut(taskId, 1);
@@ -1743,11 +1743,11 @@ static void Task_NewGameBirchSpeech_ShrinkPlayer(u8 taskId)
if (gTasks[taskId].tIsDoneFadingSprites)
{
gSprites[gTasks[taskId].tPlayerSpriteId].oam.objMode = 0;
gSprites[gTasks[taskId].tPlayerSpriteId].oam.objMode = ST_OAM_OBJ_NORMAL;
if (!RunTextPrintersAndIsPrinter0Active())
{
spriteId = gTasks[taskId].tPlayerSpriteId;
gSprites[spriteId].oam.affineMode = 1;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].affineAnims = sSpriteAffineAnimTable_PlayerShrink;
InitSpriteAffineAnim(&gSprites[spriteId]);
StartSpriteAffineAnim(&gSprites[spriteId], 0);
@@ -2147,8 +2147,8 @@ static void MainMenu_FormatSavegameText(void)
static void MainMenu_FormatSavegamePlayer(void)
{
StringExpandPlaceholders(gStringVar4, gText_ContinueMenuPlayer);
AddTextPrinterParameterized3(2, 1, 0, 17, sTextColor_PlayerGenderColor, -1, gStringVar4);
AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, gSaveBlock2Ptr->playerName, 100), 17, sTextColor_PlayerGenderColor, -1, gSaveBlock2Ptr->playerName);
AddTextPrinterParameterized3(2, 1, 0, 17, sTextColor_MenuInfo, -1, gStringVar4);
AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, gSaveBlock2Ptr->playerName, 100), 17, sTextColor_MenuInfo, -1, gSaveBlock2Ptr->playerName);
}
static void MainMenu_FormatSavegameTime(void)
@@ -2157,11 +2157,11 @@ static void MainMenu_FormatSavegameTime(void)
u8* ptr;
StringExpandPlaceholders(gStringVar4, gText_ContinueMenuTime);
AddTextPrinterParameterized3(2, 1, 0x6C, 17, sTextColor_PlayerGenderColor, -1, gStringVar4);
AddTextPrinterParameterized3(2, 1, 0x6C, 17, sTextColor_MenuInfo, -1, gStringVar4);
ptr = ConvertIntToDecimalStringN(str, gSaveBlock2Ptr->playTimeHours, STR_CONV_MODE_LEFT_ALIGN, 3);
*ptr = 0xF0;
ConvertIntToDecimalStringN(ptr + 1, gSaveBlock2Ptr->playTimeMinutes, STR_CONV_MODE_LEADING_ZEROS, 2);
AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 17, sTextColor_PlayerGenderColor, -1, str);
AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 17, sTextColor_MenuInfo, -1, str);
}
static void MainMenu_FormatSavegamePokedex(void)
@@ -2176,9 +2176,9 @@ static void MainMenu_FormatSavegamePokedex(void)
else
dexCount = GetHoennPokedexCount(FLAG_GET_CAUGHT);
StringExpandPlaceholders(gStringVar4, gText_ContinueMenuPokedex);
AddTextPrinterParameterized3(2, 1, 0, 33, sTextColor_PlayerGenderColor, -1, gStringVar4);
AddTextPrinterParameterized3(2, 1, 0, 33, sTextColor_MenuInfo, -1, gStringVar4);
ConvertIntToDecimalStringN(str, dexCount, STR_CONV_MODE_LEFT_ALIGN, 3);
AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 100), 33, sTextColor_PlayerGenderColor, -1, str);
AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 100), 33, sTextColor_MenuInfo, -1, str);
}
}
@@ -2194,9 +2194,9 @@ static void MainMenu_FormatSavegameBadges(void)
badgeCount++;
}
StringExpandPlaceholders(gStringVar4, gText_ContinueMenuBadges);
AddTextPrinterParameterized3(2, 1, 0x6C, 33, sTextColor_PlayerGenderColor, -1, gStringVar4);
AddTextPrinterParameterized3(2, 1, 0x6C, 33, sTextColor_MenuInfo, -1, gStringVar4);
ConvertIntToDecimalStringN(str, badgeCount, STR_CONV_MODE_LEADING_ZEROS, 1);
AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 33, sTextColor_PlayerGenderColor, -1, str);
AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 33, sTextColor_MenuInfo, -1, str);
}
static void LoadMainMenuWindowFrameTiles(u8 bgId, u16 tileOffset)
+1 -1
View File
@@ -371,7 +371,7 @@ static void LoadMapNamePopUpWindowBg(void)
LoadBgTiles(GetWindowAttribute(popupWindowId, WINDOW_BG), gMapPopUp_Outline_Table[popUpThemeId], 0x400, 0x21D);
CallWindowFunction(popupWindowId, sub_80D4A78);
PutWindowTilemap(popupWindowId);
if(gMapHeader.weather == WEATHER_BUBBLES)
if (gMapHeader.weather == WEATHER_UNDERWATER_BUBBLES)
LoadPalette(&gUnknown_0857F444, 0xE0, 0x20);
else
LoadPalette(gMapPopUp_Palette_Table[popUpThemeId], 0xE0, 0x20);
+8 -8
View File
@@ -96,7 +96,7 @@ static const struct WindowTemplate sYesNo_WindowTemplates =
};
const u16 gUnknown_0860F0B0[] = INCBIN_U16("graphics/interface/860F0B0.gbapal");
const u8 gUnknown_0860F0D0[] = { 15, 1, 2 };
const u8 sTextColors[] = { TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY };
// Table of move info icon offsets in graphics/interface_fr/menu.png
const struct MoveMenuInfoIcon gMoveMenuInfoIcons[] =
@@ -825,7 +825,7 @@ void sub_8198180(const u8 *string, u8 a2, bool8 copyToVram)
0,
0xEC - (GetWindowAttribute(sWindowId, WINDOW_TILEMAP_LEFT) * 8) - a2 - width,
1,
gUnknown_0860F0D0,
sTextColors,
0,
string);
if (copyToVram)
@@ -842,15 +842,15 @@ void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyTo
{
if (a3 != 0)
{
color[0] = 0;
color[1] = 1;
color[2] = 2;
color[0] = TEXT_COLOR_TRANSPARENT;
color[1] = TEXT_COLOR_WHITE;
color[2] = TEXT_COLOR_DARK_GREY;
}
else
{
color[0] = 15;
color[1] = 1;
color[2] = 2;
color[0] = TEXT_DYNAMIC_COLOR_6;
color[1] = TEXT_COLOR_WHITE;
color[2] = TEXT_COLOR_DARK_GREY;
}
PutWindowTilemap(sWindowId);
FillWindowPixelBuffer(sWindowId, PIXEL_FILL(15));
+3 -3
View File
@@ -33,10 +33,10 @@ static TaskFunc gUnknown_0300117C;
static const struct OamData sOamData_859F4E8 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x16),
.x = 0,
.matrixNum = 0,
+21 -21
View File
@@ -72,9 +72,9 @@ static const struct WindowTemplate sUnknown_086253E8[] =
}
};
static const u8 sUnknown_08625400[] =
static const u8 sPlayerNameTextColors[] =
{
1, 2, 3
TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY
};
static const u8 sEmptyItemName[] = _("");
@@ -267,7 +267,7 @@ static void sub_81D1D44(u8 windowId, s32 itemId, u8 y)
length = StringLength(buffer);
if (length <= 5)
ConvertInternationalString(buffer, LANGUAGE_JAPANESE);
AddTextPrinterParameterized4(windowId, 1, 8, y, 0, 0, sUnknown_08625400, -1, buffer);
AddTextPrinterParameterized4(windowId, 1, 8, y, 0, 0, sPlayerNameTextColors, -1, buffer);
}
u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page)
@@ -1104,14 +1104,14 @@ static const u32 gUnknown_086256A0[] = INCBIN_U32("graphics/pokenav/sparkle.4bpp
static const struct OamData sOamData_8625A20 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.shape = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
.size = 3,
.size = SPRITE_SIZE(64x64),
.tileNum = 0,
.priority = 1,
.paletteNum = 0,
@@ -1121,14 +1121,14 @@ static const struct OamData sOamData_8625A20 =
static const struct OamData sOamData_8625A28 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.shape = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x16),
.x = 0,
.matrixNum = 0,
.size = 1,
.size = SPRITE_SIZE(16x16),
.tileNum = 0,
.priority = 2,
.paletteNum = 0,
@@ -1476,14 +1476,14 @@ static void sub_81D35E8(struct Sprite *sprite)
}
}
static const u8 *const sLvlUpStatStrings[] =
static const u8 *const sLvlUpStatStrings[NUM_STATS] =
{
gUnknown_085EEA46,
gUnknown_085EEA4E,
gUnknown_085EEA55,
gUnknown_085EEA63,
gUnknown_085EEA6B,
gUnknown_085EEA5D
gText_MaxHP,
gText_Attack,
gText_Defense,
gText_SpAtk,
gText_SpDef,
gText_Speed
};
void DrawLevelUpWindowPg1(u16 windowId, u16 *statsBefore, u16 *statsAfter, u8 bgClr, u8 fgClr, u8 shadowClr)
@@ -1517,7 +1517,7 @@ void DrawLevelUpWindowPg1(u16 windowId, u16 *statsBefore, u16 *statsAfter, u8 bg
-1,
sLvlUpStatStrings[i]);
StringCopy(text, (statsDiff[i] >= 0) ? gText_UnkCtrlF904 : gText_Dash);
StringCopy(text, (statsDiff[i] >= 0) ? gText_Plus : gText_Dash);
AddTextPrinterParameterized3(windowId,
1,
56,
+11 -11
View File
@@ -63,9 +63,9 @@ void sub_801C61C(void);
extern const struct OamData gOamData_AffineOff_ObjNormal_32x16;
const u8 gUnknown_082F0E10[][3] = {
{0, 2, 3},
{0, 1, 2}
const u8 sTextColorTable[][3] = {
{TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY},
{TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}
};
const u8 ALIGNED(4) gUnknown_082F0E18[3] = {7, 4, 7};
const struct WindowTemplate gUnknown_082F0E1C[] = {
@@ -371,28 +371,28 @@ void sub_801C178(u8 whichWindow)
case 0:
{
s32 x;
AddTextPrinterParameterized3(windowId, 3, 0, 1, gUnknown_082F0E10[sWonderCardData->unk_0170->textPal1], 0, sWonderCardData->unk_018B);
AddTextPrinterParameterized3(windowId, 3, 0, 1, sTextColorTable[sWonderCardData->unk_0170->textPal1], 0, sWonderCardData->unk_018B);
x = 160 - GetStringWidth(3, sWonderCardData->unk_01B4, GetFontAttribute(3, 2));
if (x < 0)
x = 0;
AddTextPrinterParameterized3(windowId, 3, x, 17, gUnknown_082F0E10[sWonderCardData->unk_0170->textPal1], 0, sWonderCardData->unk_01B4);
AddTextPrinterParameterized3(windowId, 3, x, 17, sTextColorTable[sWonderCardData->unk_0170->textPal1], 0, sWonderCardData->unk_01B4);
if (sWonderCardData->unk_0000.unk_04 != 0)
{
AddTextPrinterParameterized3(windowId, 1, 166, 17, gUnknown_082F0E10[sWonderCardData->unk_0170->textPal1], 0, sWonderCardData->unk_01DD);
AddTextPrinterParameterized3(windowId, 1, 166, 17, sTextColorTable[sWonderCardData->unk_0170->textPal1], 0, sWonderCardData->unk_01DD);
}
break;
}
case 1:
for (; sp0C < 4; sp0C++)
{
AddTextPrinterParameterized3(windowId, 3, 0, 16 * sp0C + 2, gUnknown_082F0E10[sWonderCardData->unk_0170->textPal2], 0, sWonderCardData->unk_01E4[sp0C]);
AddTextPrinterParameterized3(windowId, 3, 0, 16 * sp0C + 2, sTextColorTable[sWonderCardData->unk_0170->textPal2], 0, sWonderCardData->unk_01E4[sp0C]);
}
break;
case 2:
AddTextPrinterParameterized3(windowId, 3, 0, gUnknown_082F0E18[sWonderCardData->unk_0000.unk_08_0], gUnknown_082F0E10[sWonderCardData->unk_0170->textPal3], 0, sWonderCardData->unk_0288);
AddTextPrinterParameterized3(windowId, 3, 0, gUnknown_082F0E18[sWonderCardData->unk_0000.unk_08_0], sTextColorTable[sWonderCardData->unk_0170->textPal3], 0, sWonderCardData->unk_0288);
if (sWonderCardData->unk_0000.unk_08_0 != 2)
{
AddTextPrinterParameterized3(windowId, 3, 0, 16 + gUnknown_082F0E18[sWonderCardData->unk_0000.unk_08_0], gUnknown_082F0E10[sWonderCardData->unk_0170->textPal3], 0, sWonderCardData->unk_02B1);
AddTextPrinterParameterized3(windowId, 3, 0, 16 + gUnknown_082F0E18[sWonderCardData->unk_0000.unk_08_0], sTextColorTable[sWonderCardData->unk_0170->textPal3], 0, sWonderCardData->unk_02B1);
}
else
{
@@ -401,11 +401,11 @@ void sub_801C178(u8 whichWindow)
s32 spacing = GetFontAttribute(3, 2);
for (; sp0C < sWonderCardData->unk_0175; sp0C++)
{
AddTextPrinterParameterized3(windowId, 3, x, y, gUnknown_082F0E10[sWonderCardData->unk_0170->textPal3], 0, sWonderCardData->unk_02DC[sp0C].unk_01);
AddTextPrinterParameterized3(windowId, 3, x, y, sTextColorTable[sWonderCardData->unk_0170->textPal3], 0, sWonderCardData->unk_02DC[sp0C].unk_01);
if (sWonderCardData->unk_02DC[sp0C].unk_42[0] != EOS)
{
x += GetStringWidth(3, sWonderCardData->unk_02DC[sp0C].unk_01, spacing);
AddTextPrinterParameterized3(windowId, 3, x, y, gUnknown_082F0E10[sWonderCardData->unk_0170->textPal3], 0, sWonderCardData->unk_02DC[sp0C].unk_42);
AddTextPrinterParameterized3(windowId, 3, x, y, sTextColorTable[sWonderCardData->unk_0170->textPal3], 0, sWonderCardData->unk_02DC[sp0C].unk_42);
x += GetStringWidth(3, sWonderCardData->unk_02DC[sp0C].unk_42, spacing) + sWonderCardData->unk_02DC[sp0C].unk_00;
}
}
+3 -3
View File
@@ -139,10 +139,10 @@ static const union AnimCmd gSpriteAnim_8617DEC[] =
static const struct OamData gOamData_8617DF4 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x16),
.x = 0,
.matrixNum = 0,
+12 -12
View File
@@ -26,10 +26,10 @@ static const u8 gUnknown_0859E67C[] = INCBIN_U8("graphics/misc/mon_markings.4bpp
static const struct OamData gUnknown_0859EE7C =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
@@ -43,10 +43,10 @@ static const struct OamData gUnknown_0859EE7C =
static const struct OamData gUnknown_0859EE84 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(8x8),
.x = 0,
.matrixNum = 0,
@@ -152,10 +152,10 @@ static const union AnimCmd *const gUnknown_0859EF14[] =
static const struct OamData gUnknown_0859EF1C =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x8),
.x = 0,
.matrixNum = 0,
@@ -520,12 +520,12 @@ static void sub_811FC80(s16 x, s16 y, u16 baseTileTag, u16 basePaletteTag)
if (spriteId != MAX_SPRITES)
{
sMenu->menuTextSprite = &gSprites[spriteId];
sMenu->menuTextSprite->oam.shape = ST_OAM_SQUARE;
sMenu->menuTextSprite->oam.size = 2;
sMenu->menuTextSprite->oam.shape = SPRITE_SHAPE(32x32);
sMenu->menuTextSprite->oam.size = SPRITE_SIZE(32x32);
StartSpriteAnim(sMenu->menuTextSprite, 9);
sMenu->menuTextSprite->pos1.x = x + MENU_TEXT_SPRITE_X_OFFSET;
sMenu->menuTextSprite->pos1.y = y + 80;
CalcCenterToCornerVec(sMenu->menuTextSprite, 1, 2, 0);
CalcCenterToCornerVec(sMenu->menuTextSprite, SPRITE_SHAPE(32x16), SPRITE_SIZE(32x16), ST_OAM_AFFINE_OFF);
}
else
{
+3 -3
View File
@@ -20,10 +20,10 @@ EWRAM_DATA static u8 sMoneyLabelSpriteId = 0;
static const struct OamData sOamData_MoneyLabel =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x16),
.x = 0,
.matrixNum = 0,
+9 -9
View File
@@ -183,14 +183,14 @@ static const u8 sMoveRelearnerSpriteSheetData[] = INCBIN_U8("graphics/interface/
static const struct OamData sHeartSpriteOamData =
{
.y = 0,
.affineMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = ST_OAM_4BPP,
.shape = ST_OAM_SQUARE,
.shape = SPRITE_SHAPE(8x8),
.x = 0,
.matrixNum = 0,
.size = 0,
.size = SPRITE_SIZE(8x8),
.tileNum = 0,
.priority = 0,
.paletteNum = 0,
@@ -200,14 +200,14 @@ static const struct OamData sHeartSpriteOamData =
static const struct OamData sUnusedOam1 =
{
.y = 0,
.affineMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = ST_OAM_4BPP,
.shape = ST_OAM_V_RECTANGLE,
.shape = SPRITE_SHAPE(8x16),
.x = 0,
.matrixNum = 0,
.size = 0,
.size = SPRITE_SIZE(8x16),
.tileNum = 0,
.priority = 0,
.paletteNum = 0,
@@ -217,14 +217,14 @@ static const struct OamData sUnusedOam1 =
static const struct OamData sUnusedOam2 =
{
.y = 0,
.affineMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = ST_OAM_4BPP,
.shape = ST_OAM_H_RECTANGLE,
.shape = SPRITE_SHAPE(16x8),
.x = 0,
.matrixNum = 0,
.size = 0,
.size = SPRITE_SIZE(16x8),
.tileNum = 0,
.priority = 0,
.paletteNum = 0,
+172 -39
View File
@@ -54,7 +54,7 @@ static const u8 *const sTransferredToPCMessages[] =
gText_PkmnTransferredLanettesPCBoxFull
};
static const u8 gUnknown_0858BDC8[] = _("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!");
static const u8 sText_AlphabetUpperLower[] = _("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!");
static const struct BgTemplate gUnknown_0858BE00[] =
{
@@ -221,7 +221,7 @@ static void NamingScreen_TurnOffScreen(void);
static void NamingScreen_InitDisplayMode(void);
static void VBlankCB_NamingScreen(void);
static void sub_80E501C(void);
static bool8 sub_80E503C(u8);
static bool8 IsLetter(u8);
void DoNamingScreen(u8 templateNum, u8 *destBuffer, u16 monSpecies, u16 monGender, u32 monPersonality, MainCallback returnCallback)
{
@@ -913,7 +913,7 @@ static void CursorInit(void)
gNamingScreenData->cursorSpriteId = CreateSprite(&gUnknown_0858C138, 38, 88, 1);
sub_80E3E3C(1);
gSprites[gNamingScreenData->cursorSpriteId].oam.priority = 1;
gSprites[gNamingScreenData->cursorSpriteId].oam.objMode = 1;
gSprites[gNamingScreenData->cursorSpriteId].oam.objMode = ST_OAM_OBJ_BLEND;
gSprites[gNamingScreenData->cursorSpriteId].data[6] = 1;
gSprites[gNamingScreenData->cursorSpriteId].data[6] = 2;
SetCursorPos(0, 0);
@@ -1526,8 +1526,8 @@ static void TaskDummy3(void)
static const u8 sGenderColors[2][3] =
{
{0, 9, 8},
{0, 5, 4}
{TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_BLUE, TEXT_COLOR_BLUE},
{TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_RED, TEXT_COLOR_RED}
};
static void sub_80E49BC(void)
@@ -1679,7 +1679,7 @@ static void sub_80E4D10(void)
{
temp[0] = gNamingScreenData->textBuffer[i];
temp[1] = gText_ExpandedPlaceholder_Empty[0];
unk2 = (sub_80E503C(temp[0]) == 1) ? 2 : 0;
unk2 = (IsLetter(temp[0]) == TRUE) ? 2 : 0;
AddTextPrinterParameterized(gNamingScreenData->windows[2], 1, temp, i * 8 + unk + unk2, 1, 0xFF, NULL);
}
@@ -1689,17 +1689,17 @@ static void sub_80E4D10(void)
PutWindowTilemap(gNamingScreenData->windows[2]);
}
struct TextColorThing // needed because of alignment... it's so stupid
struct TextColor // Needed because of alignment
{
u8 colors[3][4];
};
static const struct TextColorThing sUnkColorStruct =
static const struct TextColor sTextColorStruct =
{
{
{13, 1, 2},
{14, 1, 2},
{15, 1, 2}
{TEXT_DYNAMIC_COLOR_4, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY},
{TEXT_DYNAMIC_COLOR_5, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY},
{TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}
}
};
@@ -1710,11 +1710,11 @@ static const u8 sFillValues[KBPAGE_COUNT] =
[KBPAGE_SYMBOLS] = PIXEL_FILL(0xF)
};
static const u8 *const sUnkColors[KBPAGE_COUNT] =
static const u8 *const sKeyboardTextColors[KBPAGE_COUNT] =
{
[KBPAGE_LETTERS_LOWER] = sUnkColorStruct.colors[1],
[KBPAGE_LETTERS_UPPER] = sUnkColorStruct.colors[0],
[KBPAGE_SYMBOLS] = sUnkColorStruct.colors[2]
[KBPAGE_LETTERS_LOWER] = sTextColorStruct.colors[1],
[KBPAGE_LETTERS_UPPER] = sTextColorStruct.colors[0],
[KBPAGE_SYMBOLS] = sTextColorStruct.colors[2]
};
static void sub_80E4DE4(u8 window, u8 page)
@@ -1725,7 +1725,7 @@ static void sub_80E4DE4(u8 window, u8 page)
for (i = 0; i < KBROW_COUNT; i++)
{
AddTextPrinterParameterized3(window, 1, 0, i * 16 + 1, sUnkColors[page], 0, sNamingScreenKeyboardText[page][i]);
AddTextPrinterParameterized3(window, 1, 0, i * 16 + 1, sKeyboardTextColors[page], 0, sNamingScreenKeyboardText[page][i]);
}
PutWindowTilemap(window);
@@ -1767,7 +1767,7 @@ static void sub_80E4E5C(void)
static void sub_80E4EF0(void)
{
const u8 color[3] = { 15, 1, 2 };
const u8 color[3] = { TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY };
FillWindowPixelBuffer(gNamingScreenData->windows[4], PIXEL_FILL(15));
AddTextPrinterParameterized3(gNamingScreenData->windows[4], 0, 2, 1, color, 0, gText_MoveOkBack);
@@ -1815,13 +1815,13 @@ static void sub_80E501C(void)
ShowBg(3);
}
static bool8 sub_80E503C(u8 character)
static bool8 IsLetter(u8 character)
{
u8 i;
for (i = 0; gUnknown_0858BDC8[i] != EOS; i++)
for (i = 0; sText_AlphabetUpperLower[i] != EOS; i++)
{
if (character == gUnknown_0858BDC8[i])
if (character == sText_AlphabetUpperLower[i])
return FALSE;
}
return FALSE;
@@ -1948,37 +1948,170 @@ const struct OamData gOamData_858BFFC =
static const struct Subsprite gUnknown_0858C004[] =
{
{-20, -16, 1, 1, 0, 1},
{ 12, -16, 0, 0, 4, 1},
{-20, -8, 1, 1, 5, 1},
{ 12, -8, 0, 0, 9, 1},
{-20, 0, 1, 1, 10, 1},
{ 12, 0, 0, 0, 14, 1},
{-20, 8, 1, 1, 15, 1},
{ 12, 8, 0, 0, 19, 1}
{
.x = -20,
.y = -16,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 0,
.priority = 1
},
{
.x = 12,
.y = -16,
.shape = SPRITE_SHAPE(8x8),
.size = SPRITE_SIZE(8x8),
.tileOffset = 4,
.priority = 1
},
{
.x = -20,
.y = -8,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 5,
.priority = 1
},
{
.x = 12,
.y = -8,
.shape = SPRITE_SHAPE(8x8),
.size = SPRITE_SIZE(8x8),
.tileOffset = 9,
.priority = 1
},
{
.x = -20,
.y = 0,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 10,
.priority = 1
},
{
.x = 12,
.y = 0,
.shape = SPRITE_SHAPE(8x8),
.size = SPRITE_SIZE(8x8),
.tileOffset = 14,
.priority = 1
},
{
.x = -20,
.y = 8,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 15,
.priority = 1
},
{
.x = 12,
.y = 8,
.shape = SPRITE_SHAPE(8x8),
.size = SPRITE_SIZE(8x8),
.tileOffset = 19,
.priority = 1
}
};
static const struct Subsprite gUnknown_0858C024[] =
{
{-12, -4, 1, 0, 0, 1},
{ 4, -4, 0, 0, 2, 1}
{
.x = -12,
.y = -4,
.shape = SPRITE_SHAPE(16x8),
.size = SPRITE_SIZE(16x8),
.tileOffset = 0,
.priority = 1
},
{
.x = 4,
.y = -4,
.shape = SPRITE_SHAPE(8x8),
.size = SPRITE_SIZE(8x8),
.tileOffset = 2,
.priority = 1
}
};
static const struct Subsprite gUnknown_0858C02C[] =
{
{-20, -12, 1, 1, 0, 1},
{ 12, -12, 0, 0, 4, 1},
{-20, -4, 1, 1, 5, 1},
{ 12, -4, 0, 0, 9, 1},
{-20, 4, 1, 1, 10, 1},
{ 12, 4, 0, 0, 14, 1}
{
.x = -20,
.y = -12,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 0,
.priority = 1
},
{
.x = 12,
.y = -12,
.shape = SPRITE_SHAPE(8x8),
.size = SPRITE_SIZE(8x8),
.tileOffset = 4,
.priority = 1
},
{
.x = -20,
.y = -4,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 5,
.priority = 1
},
{
.x = 12,
.y = -4,
.shape = SPRITE_SHAPE(8x8),
.size = SPRITE_SIZE(8x8),
.tileOffset = 9,
.priority = 1
},
{
.x = -20,
.y = 4,
.shape = SPRITE_SHAPE(32x8),
.size = SPRITE_SIZE(32x8),
.tileOffset = 10,
.priority = 1
},
{
.x = 12,
.y = 4,
.shape = SPRITE_SHAPE(8x8),
.size = SPRITE_SIZE(8x8),
.tileOffset = 14,
.priority = 1
}
};
static const struct Subsprite gUnknown_0858C044[] =
{
{-8, -12, 1, 0, 0, 3},
{-8, -4, 1, 0, 2, 3},
{-8, 4, 1, 0, 4, 3}
{
.x = -8,
.y = -12,
.shape = SPRITE_SHAPE(16x8),
.size = SPRITE_SIZE(16x8),
.tileOffset = 0,
.priority = 3
},
{
.x = -8,
.y = -4,
.shape = SPRITE_SHAPE(16x8),
.size = SPRITE_SIZE(16x8),
.tileOffset = 2,
.priority = 3
},
{
.x = -8,
.y = 4,
.shape = SPRITE_SHAPE(16x8),
.size = SPRITE_SIZE(16x8),
.tileOffset = 4,
.priority = 3
}
};
static const struct SubspriteTable gUnknown_0858C050[] =
+4 -4
View File
@@ -432,11 +432,11 @@ static void Overworld_ResetStateAfterWhiteOut(void)
FlagClear(FLAG_SYS_USE_STRENGTH);
FlagClear(FLAG_SYS_USE_FLASH);
// If you were defeated by Kyogre/Groudon and the step counter has
// maxed out, end the unusual weather.
if (VarGet(VAR_SHOULD_END_UNUSUAL_WEATHER) == 1)
// maxed out, end the abnormal weather.
if (VarGet(VAR_SHOULD_END_ABNORMAL_WEATHER) == 1)
{
VarSet(VAR_SHOULD_END_UNUSUAL_WEATHER, 0);
VarSet(VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_NONE);
VarSet(VAR_SHOULD_END_ABNORMAL_WEATHER, 0);
VarSet(VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_NONE);
}
}
+2 -2
View File
@@ -4956,7 +4956,7 @@ static void DisplayLevelUpStatsPg1(u8 taskId)
s16 *arrayPtr = sPartyMenuInternal->data;
arrayPtr[12] = CreateLevelUpStatsWindow();
DrawLevelUpWindowPg1(arrayPtr[12], arrayPtr, &arrayPtr[6], 1, 2, 3);
DrawLevelUpWindowPg1(arrayPtr[12], arrayPtr, &arrayPtr[6], TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
CopyWindowToVram(arrayPtr[12], 2);
schedule_bg_copy_tilemap_to_vram(2);
}
@@ -4965,7 +4965,7 @@ static void DisplayLevelUpStatsPg2(u8 taskId)
{
s16 *arrayPtr = sPartyMenuInternal->data;
DrawLevelUpWindowPg2(arrayPtr[12], &arrayPtr[6], 1, 2, 3);
DrawLevelUpWindowPg2(arrayPtr[12], &arrayPtr[6], TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
CopyWindowToVram(arrayPtr[12], 2);
schedule_bg_copy_tilemap_to_vram(2);
}
+3 -3
View File
@@ -95,10 +95,10 @@ const struct CompressedSpritePalette gBallSpritePalettes[POKEBALL_COUNT] =
static const struct OamData sBallOamData =
{
.y = 0,
.affineMode = 3,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x16),
.x = 0,
.matrixNum = 0,
+5 -5
View File
@@ -219,10 +219,10 @@ static const u8 sContestStatsMonData[] = {MON_DATA_COOL, MON_DATA_BEAUTY, MON_DA
static const struct OamData sOamData_PokeblockCase =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
@@ -928,7 +928,7 @@ static void sub_8136470(struct Sprite *sprite)
switch (sprite->data[0])
{
case 0:
sprite->oam.affineMode = 1;
sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL;
sprite->affineAnims = sSpriteAffineAnimTable_85B26F0;
InitSpriteAffineAnim(sprite);
sprite->data[0] = 1;
@@ -937,7 +937,7 @@ static void sub_8136470(struct Sprite *sprite)
case 1:
if (++sprite->data[1] > 11)
{
sprite->oam.affineMode = 0;
sprite->oam.affineMode = ST_OAM_AFFINE_OFF;
sprite->data[0] = 0;
sprite->data[1] = 0;
FreeOamMatrix(sprite->oam.matrixNum);
+7 -7
View File
@@ -459,10 +459,10 @@ static const union AffineAnimCmd *const sSpriteAffineAnimTable_85F066C[] =
static const struct OamData sThrownPokeblockOamData =
{
.y = 0,
.affineMode = 3,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(8x8),
.x = 0,
.matrixNum = 0,
@@ -833,7 +833,7 @@ static u8 CreateMonSprite(struct Pokemon* mon)
if (!IsMonSpriteNotFlipped(species))
{
gSprites[spriteId].affineAnims = sSpriteAffineAnimTable_MonNoFlip;
gSprites[spriteId].oam.affineMode = 3;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_DOUBLE;
CalcCenterToCornerVec(&gSprites[spriteId], gSprites[spriteId].oam.shape, gSprites[spriteId].oam.size, gSprites[spriteId].oam.affineMode);
sPokeblockFeed->noMonFlip = FALSE;
}
@@ -869,7 +869,7 @@ static void sub_817A468(struct Sprite* sprite)
static u8 CreatePokeblockCaseSpriteForFeeding(void)
{
u8 spriteId = CreatePokeblockCaseSprite(188, 100, 2);
gSprites[spriteId].oam.affineMode = 1;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].affineAnims = sSpriteAffineAnimTable_85F0664;
gSprites[spriteId].callback = SpriteCallbackDummy;
InitSpriteAffineAnim(&gSprites[spriteId]);
@@ -879,7 +879,7 @@ static u8 CreatePokeblockCaseSpriteForFeeding(void)
static void DoPokeblockCaseThrowEffect(u8 spriteId, bool8 a1)
{
FreeOamMatrix(gSprites[spriteId].oam.matrixNum);
gSprites[spriteId].oam.affineMode = 3;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_DOUBLE;
if (!a1)
gSprites[spriteId].affineAnims = sSpriteAffineAnimTable_85F0668;
@@ -947,7 +947,7 @@ static void sub_817A634(void)
sub_817A91C();
if (sNatureToMonPokeblockAnim[pokeblockFeed->nature][1] != 0)
{
pokeblockFeed->monSpritePtr->oam.affineMode = 3;
pokeblockFeed->monSpritePtr->oam.affineMode = ST_OAM_AFFINE_DOUBLE;
pokeblockFeed->monSpritePtr->oam.matrixNum = 0;
pokeblockFeed->monSpritePtr->affineAnims = sSpriteAffineAnimTable_85F04FC;
InitSpriteAffineAnim(pokeblockFeed->monSpritePtr);
+106 -105
View File
@@ -164,7 +164,7 @@ static void CreateInitialPokemonSprites(u16, u16);
bool8 sub_80BD404(u8, u8, u8);
u16 sub_80BD69C(u16, u16);
void sub_80BD8D0(void);
bool8 sub_80BD930(void);
static bool8 UpdateSelectedMon(void);
u8 sub_80BDA40(void);
u16 GetPokemonSpriteToDisplay(u16);
u32 sub_80BDACC(u16, s16, s16);
@@ -186,7 +186,7 @@ void LoadSelectedScreen(u8);
void BeginChangeInfoScreen(u8);
void BeginReturnToPokedex(u8);
void LoadAreaScreen(u8);
void sub_80BF1B4(u8);
static void WaitForAreaScreenInput(u8 taskId);
void sub_80BF1EC(u8);
void LoadCryScreen(u8);
void sub_80BF5CC(u8);
@@ -203,12 +203,12 @@ static void Task_DisplayNewMonData(u8);
void sub_80C0088(u8);
void blockset_load_palette_to_gpu(u8);
void sub_80C01CC(struct Sprite *sprite);
void sub_80C020C(u32, u32, u32, u32);
void sub_80C0354(u16, u8, u8);
void sub_80C0460(u16 weight, u8 left, u8 top);
void sub_80C09B0(u16);
static void PrintMonInfo(u32 num, u32, u32 owned, u32 newEntry);
static void PrintMonHeight(u16 height, u8 left, u8 top);
static void PrintMonWeight(u16 weight, u8 left, u8 top);
static void ResetOtherVideoRegisters(u16);
u8 sub_80C0B44(u8, u16, u8, u8);
void sub_80C0D30(u8, u16);
static void PrintFootprint(u8 windowId, u16 dexNum);
u16 sub_80C0EF8(u16, s16, s16, s8);
u16 sub_80C0E0C(u8, u16, u16, u16);
u8 LoadSearchMenu(void);
@@ -244,10 +244,10 @@ void sub_80C267C(void);
static const struct OamData sOamData_855CFE4 =
{
.y = 160,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(8x8),
.x = 0,
.matrixNum = 0,
@@ -261,10 +261,10 @@ static const struct OamData sOamData_855CFE4 =
static const struct OamData sOamData_855CFEC =
{
.y = 160,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x8),
.x = 0,
.matrixNum = 0,
@@ -278,10 +278,10 @@ static const struct OamData sOamData_855CFEC =
static const struct OamData sOamData_855CFF4 =
{
.y = 160,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x16),
.x = 0,
.matrixNum = 0,
@@ -295,10 +295,10 @@ static const struct OamData sOamData_855CFF4 =
static const struct OamData sOamData_855CFFC =
{
.y = 160,
.affineMode = 0,
.objMode = 2,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_WINDOW,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x32),
.x = 0,
.matrixNum = 0,
@@ -312,10 +312,10 @@ static const struct OamData sOamData_855CFFC =
static const struct OamData sOamData_855D004 =
{
.y = 160,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x32),
.x = 0,
.matrixNum = 0,
@@ -329,10 +329,10 @@ static const struct OamData sOamData_855D004 =
static const struct OamData sOamData_855D00C =
{
.y = 160,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(8x16),
.x = 0,
.matrixNum = 0,
@@ -934,19 +934,19 @@ static const u8 gUnknown_0856ED08[][4] =
static const struct UnknownStruct3 gUnknown_0856ED30[] =
{
{
.text = gUnknown_085E87A5,
.text = gText_SearchForPkmnBasedOnParameters,
.unk4 = 0,
.unk5 = 0,
.unk6 = 5,
},
{
.text = gUnknown_085E87D6,
.text = gText_SwitchPokedexListings,
.unk4 = 6,
.unk5 = 0,
.unk6 = 5,
},
{
.text = gUnknown_085E87EF,
.text = gText_ReturnToPokedex,
.unk4 = 12,
.unk5 = 0,
.unk6 = 5,
@@ -956,7 +956,7 @@ static const struct UnknownStruct3 gUnknown_0856ED30[] =
static const struct UnknownStruct4 gUnknown_0856ED48[] =
{
{
.text = gUnknown_085E8840,
.text = gText_ListByFirstLetter,
.unk4 = 0,
.unk5 = 2,
.unk6 = 5,
@@ -965,7 +965,7 @@ static const struct UnknownStruct4 gUnknown_0856ED48[] =
.unk9 = 12,
},
{
.text = gUnknown_085E887C,
.text = gText_ListByBodyColor,
.unk4 = 0,
.unk5 = 4,
.unk6 = 5,
@@ -974,7 +974,7 @@ static const struct UnknownStruct4 gUnknown_0856ED48[] =
.unk9 = 12,
},
{
.text = gUnknown_085E88A6,
.text = gText_ListByType,
.unk4 = 0,
.unk5 = 6,
.unk6 = 5,
@@ -983,7 +983,7 @@ static const struct UnknownStruct4 gUnknown_0856ED48[] =
.unk9 = 6,
},
{
.text = gUnknown_085E88A6,
.text = gText_ListByType,
.unk4 = 0,
.unk5 = 6,
.unk6 = 5,
@@ -992,7 +992,7 @@ static const struct UnknownStruct4 gUnknown_0856ED48[] =
.unk9 = 6,
},
{
.text = gUnknown_085E881F,
.text = gText_SelectPokedexListingMode,
.unk4 = 0,
.unk5 = 8,
.unk6 = 5,
@@ -1001,7 +1001,7 @@ static const struct UnknownStruct4 gUnknown_0856ED48[] =
.unk9 = 12,
},
{
.text = gUnknown_085E8806,
.text = gText_SelectPokedexMode,
.unk4 = 0,
.unk5 = 10,
.unk6 = 5,
@@ -1010,7 +1010,7 @@ static const struct UnknownStruct4 gUnknown_0856ED48[] =
.unk9 = 12,
},
{
.text = gUnknown_085E88C8,
.text = gText_ExecuteSearchSwitch,
.unk4 = 0,
.unk5 = 12,
.unk6 = 5,
@@ -1323,7 +1323,7 @@ void CB2_Pokedex(void)
case 0:
default:
SetVBlankCallback(NULL);
sub_80C09B0(0);
ResetOtherVideoRegisters(0);
DmaFillLarge16(3, 0, (u8 *)VRAM, VRAM_SIZE, 0x1000);
DmaClear32(3, OAM, OAM_SIZE);
DmaClear16(3, PLTT, PLTT_SIZE);
@@ -1527,7 +1527,7 @@ void sub_80BBC74(u8 taskId)
{
if (gTasks[gTasks[taskId].data[0]].isActive)
{
if (sPokedexView->unk64A == 1 && !sub_80BE9C4(gTasks[taskId].data[0]) && sub_80BD930())
if (sPokedexView->unk64A == 1 && !sub_80BE9C4(gTasks[taskId].data[0]) && UpdateSelectedMon())
sub_80BE9F8(&sPokedexView->pokedexList[sPokedexView->selectedPokemon], gTasks[taskId].data[0]);
}
else
@@ -1727,7 +1727,7 @@ void sub_80BC360(u8 taskId)
{
if (gTasks[gTasks[taskId].data[0]].isActive)
{
if (sPokedexView->unk64A == 1 && !sub_80BE9C4(gTasks[taskId].data[0]) && sub_80BD930())
if (sPokedexView->unk64A == 1 && !sub_80BE9C4(gTasks[taskId].data[0]) && UpdateSelectedMon())
sub_80BE9F8(&sPokedexView->pokedexList[sPokedexView->selectedPokemon], gTasks[taskId].data[0]);
}
else
@@ -1776,7 +1776,7 @@ bool8 sub_80BC514(u8 a)
return 0;
SetVBlankCallback(NULL);
sPokedexView->unk64A = a;
sub_80C09B0(0);
ResetOtherVideoRegisters(0);
SetGpuReg(REG_OFFSET_BG2VOFS, sPokedexView->initialVOffset);
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sPokedex_BgTemplate, 4);
@@ -2378,7 +2378,7 @@ void sub_80BD8D0(void)
}
}
u8 sub_80BD930(void)
static bool8 UpdateSelectedMon(void)
{
u16 r2;
u16 r4 = sPokedexView->selectedPokemon;
@@ -2467,7 +2467,7 @@ u32 sub_80BDACC(u16 num, s16 x, s16 y)
{
u8 spriteId = CreateMonSpriteFromNationalDexNumber(num, x, y, i);
gSprites[spriteId].oam.affineMode = 1;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.priority = 3;
gSprites[spriteId].data[0] = 0;
gSprites[spriteId].data[1] = i;
@@ -2506,13 +2506,13 @@ static void CreateInterfaceSprites(u8 a)
StartSpriteAnim(&gSprites[spriteId], 1);
spriteId = CreateSprite(&sRotatingPokeballSpriteTemplate, 0, 80, 2);
gSprites[spriteId].oam.affineMode = 1;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.matrixNum = 30;
gSprites[spriteId].data[0] = 0x1E;
gSprites[spriteId].data[1] = 0;
spriteId = CreateSprite(&sRotatingPokeballSpriteTemplate, 0, 80, 2);
gSprites[spriteId].oam.affineMode = 1;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.matrixNum = 31;
gSprites[spriteId].data[0] = 0x1F;
gSprites[spriteId].data[1] = 0x80;
@@ -2698,7 +2698,7 @@ void sub_80BE44C(struct Sprite *sprite)
void MoveMonIntoPosition(struct Sprite *sprite)
{
sprite->oam.priority = 0;
sprite->oam.affineMode = 0;
sprite->oam.affineMode = ST_OAM_AFFINE_OFF;
sprite->pos2.x = 0;
sprite->pos2.y = 0;
if (sprite->pos1.x != 48 || sprite->pos1.y != 56)
@@ -2855,7 +2855,7 @@ void sub_80BE834(struct Sprite *sprite)
}
}
void sub_80BE8DC(const u8* str, u8 left, u8 top)
static void PrintInfoPageText(const u8* str, u8 left, u8 top)
{
u8 color[3];
color[0] = 0;
@@ -2924,21 +2924,21 @@ void LoadInfoScreen(u8 taskId)
SetVBlankCallback(NULL);
r2 = 0;
if (gTasks[taskId].data[1] != 0)
r2 += 0x1000;
r2 += DISPCNT_OBJ_ON;
if (gTasks[taskId].data[2] != 0)
r2 |= 0x200;
sub_80C09B0(r2);
r2 |= DISPCNT_BG1_ON;
ResetOtherVideoRegisters(r2);
gMain.state = 1;
}
break;
case 1:
DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0);
CopyToBgTilemapBuffer(3, gPokedexTilemap_DescriptionScreen, 0, 0);
FillWindowPixelBuffer(0, PIXEL_FILL(0));
PutWindowTilemap(0);
PutWindowTilemap(1);
sub_80C0D30(1, sPokedexListItem->dexNum);
CopyWindowToVram(1, 2);
FillWindowPixelBuffer(WIN_INFO, PIXEL_FILL(0));
PutWindowTilemap(WIN_INFO);
PutWindowTilemap(WIN_FOOTPRINT);
PrintFootprint(WIN_FOOTPRINT, sPokedexListItem->dexNum);
CopyWindowToVram(WIN_FOOTPRINT, 2);
gMain.state++;
break;
case 2:
@@ -2951,10 +2951,10 @@ void LoadInfoScreen(u8 taskId)
gMain.state++;
break;
case 4:
sub_80C020C(sPokedexListItem->dexNum, sPokedexView->dexMode == 0 ? 0 : 1, sPokedexListItem->owned, 0);
PrintMonInfo(sPokedexListItem->dexNum, sPokedexView->dexMode == 0 ? 0 : 1, sPokedexListItem->owned, 0);
if (!sPokedexListItem->owned)
LoadPalette(gPlttBufferUnfaded + 1, 0x31, 0x1E);
CopyWindowToVram(0, 3);
CopyWindowToVram(WIN_INFO, 3);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(3);
@@ -2970,13 +2970,13 @@ void LoadInfoScreen(u8 taskId)
break;
case 6:
{
u32 r3 = 0;
u32 preservedPalettes = 0;
if (gTasks[taskId].data[2] != 0)
r3 = 0x14;
preservedPalettes = 0x14; // each bit represents a palette index
if (gTasks[taskId].data[1] != 0)
r3 |= (1 << (gSprites[gTasks[taskId].tMonSpriteId].oam.paletteNum + 16));
BeginNormalPaletteFade(~r3, 0, 16, 0, RGB_BLACK);
preservedPalettes |= (1 << (gSprites[gTasks[taskId].tMonSpriteId].oam.paletteNum + 16));
BeginNormalPaletteFade(~preservedPalettes, 0, 16, 0, RGB_BLACK);
SetVBlankCallback(gUnknown_030060B4);
gMain.state++;
}
@@ -3022,7 +3022,7 @@ void LoadInfoScreen(u8 taskId)
}
}
void sub_80BEDB0(void)
static void FreeWindowAndBgBuffers(void)
{
void *r0;
FreeAllWindowBuffers();
@@ -3148,7 +3148,7 @@ void BeginReturnToPokedex(u8 taskId)
if (!gPaletteFade.active)
{
FreeAndDestroyMonPicSprite(gTasks[taskId].tMonSpriteId);
sub_80BEDB0();
FreeWindowAndBgBuffers();
DestroyTask(taskId);
}
}
@@ -3164,7 +3164,7 @@ void LoadAreaScreen(u8 taskId)
sPokedexView->unk64A = 5;
gUnknown_030060B4 = gMain.vblankCallback;
SetVBlankCallback(NULL);
sub_80C09B0(0x200);
ResetOtherVideoRegisters(DISPCNT_BG1_ON);
sPokedexView->selectedScreen = AREA_SCREEN;
gMain.state = 1;
}
@@ -3181,13 +3181,14 @@ void LoadAreaScreen(u8 taskId)
SetVBlankCallback(gUnknown_030060B4);
sPokedexView->unk64E = 0;
gMain.state = 0;
gTasks[taskId].func = sub_80BF1B4;
gTasks[taskId].func = WaitForAreaScreenInput;
break;
}
}
void sub_80BF1B4(u8 taskId)
static void WaitForAreaScreenInput(u8 taskId)
{
// See Task_PokedexAreaScreen_1() in pokedex_area_screen.c
if (sPokedexView->unk64E != 0)
gTasks[taskId].func = sub_80BF1EC;
}
@@ -3221,7 +3222,7 @@ void LoadCryScreen(u8 taskId)
sPokedexView->unk64A = 6;
gUnknown_030060B4 = gMain.vblankCallback;
SetVBlankCallback(NULL);
sub_80C09B0(0x200);
ResetOtherVideoRegisters(DISPCNT_BG1_ON);
sPokedexView->selectedScreen = CRY_SCREEN;
gMain.state = 1;
}
@@ -3246,7 +3247,7 @@ void LoadCryScreen(u8 taskId)
gMain.state++;
break;
case 4:
sub_80BE8DC(gText_CryOf, 0x52, 33);
PrintInfoPageText(gText_CryOf, 0x52, 33);
sub_80C0B44(0, sPokedexListItem->dexNum, 0x52, 49);
gMain.state++;
break;
@@ -3415,7 +3416,7 @@ void LoadSizeScreen(u8 taskId)
sPokedexView->unk64A = 7;
gUnknown_030060B4 = gMain.vblankCallback;
SetVBlankCallback(NULL);
sub_80C09B0(0x200);
ResetOtherVideoRegisters(DISPCNT_BG1_ON);
sPokedexView->selectedScreen = SIZE_SCREEN;
gMain.state = 1;
}
@@ -3439,7 +3440,7 @@ void LoadSizeScreen(u8 taskId)
StringCopy(string, gText_SizeComparedTo);
StringAppend(string, gSaveBlock2Ptr->playerName);
sub_80BE8DC(string, GetStringCenterAlignXOffset(1, string, 0xF0), 0x79);
PrintInfoPageText(string, GetStringCenterAlignXOffset(1, string, 0xF0), 0x79);
gMain.state++;
}
break;
@@ -3449,7 +3450,7 @@ void LoadSizeScreen(u8 taskId)
break;
case 5:
spriteId = sub_80C0EF8(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), 152, 56, 0);
gSprites[spriteId].oam.affineMode = 1;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.matrixNum = 1;
gSprites[spriteId].oam.priority = 0;
gSprites[spriteId].pos2.y = gPokedexEntries[sPokedexListItem->dexNum].trainerOffset;
@@ -3460,7 +3461,7 @@ void LoadSizeScreen(u8 taskId)
break;
case 6:
spriteId = CreateMonSpriteFromNationalDexNumber(sPokedexListItem->dexNum, 88, 56, 1);
gSprites[spriteId].oam.affineMode = 1;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.matrixNum = 2;
gSprites[spriteId].oam.priority = 0;
gSprites[spriteId].pos2.y = gPokedexEntries[sPokedexListItem->dexNum].pokemonOffset;
@@ -3760,7 +3761,7 @@ static void Task_DisplayNewMonData(u8 taskId)
{
gUnknown_030060B4 = gMain.vblankCallback;
SetVBlankCallback(NULL);
sub_80C09B0(0x100);
ResetOtherVideoRegisters(DISPCNT_BG0_ON);
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sNewEntryInfoScreen_BgTemplate, 2);
SetBgTilemapBuffer(3, AllocZeroed(0x800));
@@ -3776,7 +3777,7 @@ static void Task_DisplayNewMonData(u8 taskId)
FillWindowPixelBuffer(WIN_INFO, PIXEL_FILL(0));
PutWindowTilemap(WIN_INFO);
PutWindowTilemap(WIN_FOOTPRINT);
sub_80C0D30(1, gTasks[taskId].data[1]);
PrintFootprint(WIN_FOOTPRINT, gTasks[taskId].data[1]);
CopyWindowToVram(WIN_FOOTPRINT, 2);
ResetPaletteFade();
LoadPokedexBgPalette(0);
@@ -3786,7 +3787,7 @@ static void Task_DisplayNewMonData(u8 taskId)
gTasks[taskId].data[0]++;
break;
case 3:
sub_80C020C(dexNum, IsNationalPokedexEnabled(), 1, 1);
PrintMonInfo(dexNum, IsNationalPokedexEnabled(), 1, 1);
CopyWindowToVram(WIN_INFO, 3);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(3);
@@ -3881,7 +3882,7 @@ void sub_80C01CC(struct Sprite *sprite)
sprite->pos1.y -= 1;
}
void sub_80C020C(u32 num, u32 value, u32 c, u32 d)
static void PrintMonInfo(u32 num, u32 value, u32 owned, u32 newEntry)
{
u8 str[0x10];
u8 str2[0x20];
@@ -3890,21 +3891,21 @@ void sub_80C020C(u32 num, u32 value, u32 c, u32 d)
const u8 *text2;
const u8 *text3;
if (d)
sub_80BE8DC(gText_PokedexRegistration, GetStringCenterAlignXOffset(1, gText_PokedexRegistration, 0xF0), 0);
if (newEntry)
PrintInfoPageText(gText_PokedexRegistration, GetStringCenterAlignXOffset(1, gText_PokedexRegistration, 0xF0), 0);
if (value == 0)
value = NationalToHoennOrder(num);
else
value = num;
ConvertIntToDecimalStringN(StringCopy(str, gText_UnkCtrlF908Clear01), value, STR_CONV_MODE_LEADING_ZEROS, 3);
sub_80BE8DC(str, 0x60, 0x19);
ConvertIntToDecimalStringN(StringCopy(str, gText_NumberClear01), value, STR_CONV_MODE_LEADING_ZEROS, 3);
PrintInfoPageText(str, 0x60, 0x19);
natNum = NationalPokedexNumToSpecies(num);
if (natNum)
text = gSpeciesNames[natNum];
else
text = sText_TenDashes2;
sub_80BE8DC(text, 0x84, 0x19);
if (c)
PrintInfoPageText(text, 0x84, 0x19);
if (owned)
{
CopyMonCategoryText(num, str2);
text2 = str2;
@@ -3913,27 +3914,27 @@ void sub_80C020C(u32 num, u32 value, u32 c, u32 d)
{
text2 = gText_5MarksPokemon;
}
sub_80BE8DC(text2, 0x64, 0x29);
sub_80BE8DC(gText_HTHeight, 0x60, 0x39);
sub_80BE8DC(gText_WTWeight, 0x60, 0x49);
if (c)
PrintInfoPageText(text2, 0x64, 0x29);
PrintInfoPageText(gText_HTHeight, 0x60, 0x39);
PrintInfoPageText(gText_WTWeight, 0x60, 0x49);
if (owned)
{
sub_80C0354(gPokedexEntries[num].height, 0x81, 0x39);
sub_80C0460(gPokedexEntries[num].weight, 0x81, 0x49);
PrintMonHeight(gPokedexEntries[num].height, 0x81, 0x39);
PrintMonWeight(gPokedexEntries[num].weight, 0x81, 0x49);
}
else
{
sub_80BE8DC(gText_UnkHeight, 0x81, 0x39);
sub_80BE8DC(gText_UnkWeight, 0x81, 0x49);
PrintInfoPageText(gText_UnkHeight, 0x81, 0x39);
PrintInfoPageText(gText_UnkWeight, 0x81, 0x49);
}
if (c)
if (owned)
text3 = gPokedexEntries[num].description;
else
text3 = gExpandedPlaceholder_PokedexDescription;
sub_80BE8DC(text3, GetStringCenterAlignXOffset(1, text3, 0xF0), 0x5F);
PrintInfoPageText(text3, GetStringCenterAlignXOffset(1, text3, 0xF0), 0x5F);
}
void sub_80C0354(u16 height, u8 left, u8 top)
static void PrintMonHeight(u16 height, u8 left, u8 top)
{
u8 buffer[16];
u32 inches, feet;
@@ -3963,13 +3964,13 @@ void sub_80C0354(u16 height, u8 left, u8 top)
buffer[i++] = (inches % 10) + CHAR_0;
buffer[i++] = CHAR_DBL_QUOT_RIGHT;
buffer[i++] = EOS;
sub_80BE8DC(buffer, left, top);
PrintInfoPageText(buffer, left, top);
}
#ifdef NONMATCHING
// This doesn't match because gcc manages to avoid using the stack
// to store local variables.
void sub_80C0460(u16 weight, u8 left, u8 top)
static void PrintMonWeight(u16 weight, u8 left, u8 top)
{
u8 buffer[16];
bool8 output;
@@ -4025,11 +4026,11 @@ void sub_80C0460(u16 weight, u8 left, u8 top)
buffer[i++] = CHAR_s;
buffer[i++] = CHAR_PERIOD;
buffer[i++] = EOS;
sub_80BE8DC(buffer, left, top);
PrintInfoPageText(buffer, left, top);
}
#else
__attribute__((naked))
void sub_80C0460(u16 weight, u8 left, u8 top)
static void PrintMonWeight(u16 weight, u8 left, u8 top)
{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
@@ -4234,7 +4235,7 @@ _080C0552:\n\
mov r0, sp\n\
mov r1, r10\n\
ldr r2, [sp, 0x10]\n\
bl sub_80BE8DC\n\
bl PrintInfoPageText\n\
add sp, 0x14\n\
pop {r3-r5}\n\
mov r8, r3\n\
@@ -4247,7 +4248,7 @@ _080C0552:\n\
}
#endif
const u8 *sub_80C0620(u16 dexNum)
const u8 *GetPokedexCategoryName(u16 dexNum) // unused
{
return gPokedexEntries[dexNum].categoryName;
}
@@ -4435,7 +4436,7 @@ bool16 HasAllMons(void)
return TRUE;
}
void sub_80C09B0(u16 a)
static void ResetOtherVideoRegisters(u16 a)
{
if (!(a & DISPCNT_BG0_ON))
{
@@ -4484,7 +4485,7 @@ void sub_80C0A88(u8 windowId, const u8 *str, u8 left, u8 top)
AddTextPrinterParameterized4(windowId, 1, left, top, 0, 0, color, -1, str);
}
void sub_80C0AC4(u8 windowId, u16 order, u8 left, u8 top)
void sub_80C0AC4(u8 windowId, u16 order, u8 left, u8 top) // unused
{
u8 str[4];
@@ -4518,7 +4519,7 @@ u8 sub_80C0B44(u8 windowId, u16 num, u8 left, u8 top)
return i;
}
void sub_80C0BF0(u8 windowId, const u8* str, u8 left, u8 top)
void sub_80C0BF0(u8 windowId, const u8* str, u8 left, u8 top) // unused
{
u8 str2[11];
u8 i;
@@ -4534,7 +4535,7 @@ void sub_80C0BF0(u8 windowId, const u8* str, u8 left, u8 top)
sub_80C0A88(windowId, str2, left, top);
}
void sub_80C0C6C(u8 windowId, u16 b, u8 left, u8 top)
void sub_80C0C6C(u8 windowId, u16 b, u8 left, u8 top) // unused
{
u8 str[6];
bool8 outputted = FALSE;
@@ -4571,10 +4572,10 @@ void sub_80C0C6C(u8 windowId, u16 b, u8 left, u8 top)
sub_80C0A88(windowId, str, left, top);
}
void sub_80C0D30(u8 windowId, u16 a1)
static void PrintFootprint(u8 windowId, u16 dexNum)
{
u8 image[32 * 4];
const u8 * r12 = gMonFootprintTable[NationalPokedexNumToSpecies(a1)];
const u8 * r12 = gMonFootprintTable[NationalPokedexNumToSpecies(dexNum)];
u16 r5 = 0;
u16 i;
u16 j;
@@ -4802,7 +4803,7 @@ void Task_LoadSearchMenu(u8 taskId)
if (!gPaletteFade.active)
{
sPokedexView->unk64A = 2;
sub_80C09B0(0);
ResetOtherVideoRegisters(0);
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sSearchMenu_BgTemplate, 4);
SetBgTilemapBuffer(3, AllocZeroed(0x800));
@@ -5066,7 +5067,7 @@ void sub_80C1A4C(u8 taskId)
else
{
PlaySE(SE_HAZURE);
sub_80C2618(gUnknown_085E8785);
sub_80C2618(gText_NoMatchingPkmnWereFound);
}
gTasks[taskId].func = sub_80C1AB8;
CopyWindowToVram(0, 2);
+3 -3
View File
@@ -2083,10 +2083,10 @@ static const struct SpeciesItem sAlteringCaveWildMonHeldItems[] =
static const struct OamData sOamData_8329F20 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
+3 -3
View File
@@ -970,7 +970,7 @@ static void SetAffineData(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rot
static void HandleStartAffineAnim(struct Sprite *sprite)
{
sprite->oam.affineMode = 3;
sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE;
sprite->affineAnims = sSpriteAffineAnimTable_860AD68;
if (sUnknown_03001274 == TRUE)
@@ -1028,7 +1028,7 @@ static u8 sub_817F758(void)
static void sub_817F77C(struct Sprite *sprite)
{
sprite->oam.affineMode = 1;
sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL;
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
if (sUnknown_03001274 == TRUE)
@@ -1040,7 +1040,7 @@ static void sub_817F77C(struct Sprite *sprite)
FreeOamMatrix(sprite->oam.matrixNum);
sprite->oam.matrixNum |= (sprite->hFlip << 3);
sprite->oam.affineMode = 0;
sprite->oam.affineMode = ST_OAM_AFFINE_OFF;
}
}
+15 -17
View File
@@ -1004,28 +1004,26 @@ const union AffineAnimCmd *const sMonIconAffineAnims[] =
const u16 sSpriteImageSizes[3][4] =
{
// square
[ST_OAM_SQUARE] =
{
0x20, // 1×1
0x80, // 2×2
0x200, // 4×4
0x800, // 8×8
[SPRITE_SIZE(8x8)] = 0x20,
[SPRITE_SIZE(16x16)] = 0x80,
[SPRITE_SIZE(32x32)] = 0x200,
[SPRITE_SIZE(64x64)] = 0x800,
},
// horizontal rectangle
[ST_OAM_H_RECTANGLE] =
{
0x40, // 2×1
0x80, // 4×1
0x100, // 4×2
0x400, // 8×4
[SPRITE_SIZE(16x8)] = 0x40,
[SPRITE_SIZE(32x8)] = 0x80,
[SPRITE_SIZE(32x16)] = 0x100,
[SPRITE_SIZE(64x32)] = 0x400,
},
// vertical rectangle
[ST_OAM_V_RECTANGLE] =
{
0x40, // 1×2
0x80, // 1×4
0x100, // 2×4
0x400, // 4×8
[SPRITE_SIZE(8x16)] = 0x40,
[SPRITE_SIZE(8x32)] = 0x80,
[SPRITE_SIZE(16x32)] = 0x100,
[SPRITE_SIZE(32x64)] = 0x400,
},
};
+41 -41
View File
@@ -2294,14 +2294,14 @@ static const struct SpriteTemplate *const gUnknown_082FBEB8[] =
static const struct OamData sOamData_82FBEC8 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.shape = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
.size = 3,
.size = SPRITE_SIZE(64x64),
.tileNum = 0,
.priority = 2,
.paletteNum = 0,
@@ -2311,14 +2311,14 @@ static const struct OamData sOamData_82FBEC8 =
static const struct OamData sOamData_82FBED0 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.shape = 2,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x32),
.x = 0,
.matrixNum = 0,
.size = 2,
.size = SPRITE_SIZE(16x32),
.tileNum = 0,
.priority = 2,
.paletteNum = 0,
@@ -2328,14 +2328,14 @@ static const struct OamData sOamData_82FBED0 =
static const struct OamData sOamData_82FBED8 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.shape = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x32),
.x = 0,
.matrixNum = 0,
.size = 2,
.size = SPRITE_SIZE(32x32),
.tileNum = 0,
.priority = 2,
.paletteNum = 0,
@@ -2345,14 +2345,14 @@ static const struct OamData sOamData_82FBED8 =
static const struct OamData sOamData_82FBEE0 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.shape = 1,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x16),
.x = 0,
.matrixNum = 0,
.size = 2,
.size = SPRITE_SIZE(32x16),
.tileNum = 0,
.priority = 2,
.paletteNum = 0,
@@ -2498,14 +2498,14 @@ static const struct SpriteTemplate gUnknown_082FBFC0 =
static const struct OamData sOamData_82FBFD8 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.shape = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x16),
.x = 0,
.matrixNum = 0,
.size = 1,
.size = SPRITE_SIZE(16x16),
.tileNum = 0,
.priority = 1,
.paletteNum = 0,
@@ -3466,7 +3466,7 @@ static void sub_802DB18(u16 left, u16 top, u8 cursorPos)
static void sub_802DB8C(void)
{
u8 color[] = {0, 2, 3};
u8 color[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY};
PutWindowTilemap(0);
PutWindowTilemap(1);
@@ -3557,8 +3557,8 @@ static void sub_802DD08(void)
struct UnkStruct3 unkStruct;
struct UnkStruct3 *ptr = &unkStruct; // This temp variable is needed to match, don't ask me why.
ptr->shape = 0;
ptr->size = 0;
ptr->shape = SPRITE_SHAPE(8x8);
ptr->size = SPRITE_SIZE(8x8);
ptr->field_0_0 = 0;
ptr->priority = 1;
ptr->field_1 = 5;
@@ -3666,7 +3666,7 @@ static void sub_802DF70(bool32 arg0)
if (!arg0)
{
for (i = 0; i < playersCount; i++)
sub_802DED8(i, 0, 2, 3);
sub_802DED8(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
}
else
{
@@ -3674,9 +3674,9 @@ static void sub_802DF70(bool32 arg0)
for (i = 0; i < playersCount; i++)
{
if (var != i)
sub_802DED8(i, 0, 2, 3);
sub_802DED8(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
else
sub_802DED8(i, 0, 4, 5);
sub_802DED8(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED);
}
}
}
@@ -4483,14 +4483,14 @@ static void sub_802EF50(u16 tileTag, u16 palTag)
static const struct OamData sOamData_82FEBDC =
{
.y = 0,
.affineMode = 3,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_DOUBLE,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.shape = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x32),
.x = 0,
.matrixNum = 0,
.size = 2,
.size = SPRITE_SIZE(32x32),
.tileNum = 0,
.priority = 0,
.paletteNum = 0,
@@ -4500,14 +4500,14 @@ static const struct OamData sOamData_82FEBDC =
static const struct OamData sOamData_82FEBE4 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.shape = 1,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x32),
.x = 0,
.matrixNum = 0,
.size = 3,
.size = SPRITE_SIZE(64x32),
.tileNum = 0,
.priority = 0,
.paletteNum = 0,
+25 -25
View File
@@ -778,8 +778,8 @@ static const union AffineAnimCmd *const sSpriteAffineAnimTable_8571730[] =
sSpriteAffineAnim_8571720
};
static const u8 gUnknown_08571734[] = {4, 0xF, 0xE};
static const u8 gUnknown_08571737[] = _("/30");
static const u8 sBoxInfoTextColors[] = {TEXT_COLOR_RED, TEXT_DYNAMIC_COLOR_6, TEXT_DYNAMIC_COLOR_5};
static const u8 sText_OutOf30[] = _("/30");
static const u16 gBoxSelectionPopupPalette[] = INCBIN_U16("graphics/unknown/unknown_57173C.gbapal");
static const u8 gBoxSelectionPopupCenterTiles[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_center.4bpp");
@@ -963,10 +963,10 @@ static const struct WindowTemplate sYesNoWindowTemplate =
static const struct OamData sOamData_857286C =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.matrixNum = 0,
@@ -980,10 +980,10 @@ static const struct OamData sOamData_857286C =
static const struct OamData sOamData_8572874 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x8),
.x = 0,
.matrixNum = 0,
@@ -1056,10 +1056,10 @@ static const struct SpriteTemplate gUnknown_085728D4 =
static const struct OamData sOamData_85728EC =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x32),
.x = 0,
.matrixNum = 0,
@@ -2090,7 +2090,7 @@ static void sub_80C7BB4(void)
static void sub_80C7BE4(void)
{
u8 text[16];
u8 numBoxMonsText[16];
struct WindowTemplate winTemplate;
u8 windowId;
u8 *boxName = GetBoxNamePtr(gUnknown_02039D04->curBox);
@@ -2106,12 +2106,12 @@ static void sub_80C7BE4(void)
FillWindowPixelBuffer(windowId, PIXEL_FILL(4));
center = GetStringCenterAlignXOffset(1, boxName, 64);
AddTextPrinterParameterized3(windowId, 1, center, 1, gUnknown_08571734, TEXT_SPEED_FF, boxName);
AddTextPrinterParameterized3(windowId, 1, center, 1, sBoxInfoTextColors, TEXT_SPEED_FF, boxName);
ConvertIntToDecimalStringN(text, nPokemonInBox, STR_CONV_MODE_RIGHT_ALIGN, 2);
StringAppend(text, gUnknown_08571737);
center = GetStringCenterAlignXOffset(1, text, 64);
AddTextPrinterParameterized3(windowId, 1, center, 17, gUnknown_08571734, TEXT_SPEED_FF, text);
ConvertIntToDecimalStringN(numBoxMonsText, nPokemonInBox, STR_CONV_MODE_RIGHT_ALIGN, 2);
StringAppend(numBoxMonsText, sText_OutOf30);
center = GetStringCenterAlignXOffset(1, numBoxMonsText, 64);
AddTextPrinterParameterized3(windowId, 1, center, 17, sBoxInfoTextColors, TEXT_SPEED_FF, numBoxMonsText);
winTileData = GetWindowAttribute(windowId, WINDOW_TILE_DATA);
CpuCopy32((void *)winTileData, (void *)OBJ_VRAM0 + 0x100 + (GetSpriteTileStartByTag(gUnknown_02039D04->unk_0240) * 32), 0x400);
@@ -4569,7 +4569,7 @@ static void sub_80CB028(u8 boxId)
for (boxPosition = 0; boxPosition < IN_BOX_COUNT; boxPosition++)
{
if (GetBoxMonDataAt(boxId, boxPosition, MON_DATA_HELD_ITEM) == 0)
sPSSData->boxMonsSprites[boxPosition]->oam.objMode = 1;
sPSSData->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND;
}
}
}
@@ -4586,7 +4586,7 @@ static void sub_80CB140(u8 boxPosition)
sPSSData->boxMonsSprites[boxPosition] = CreateMonIconSprite(species, personality, x, y, 2, 19 - (boxPosition % IN_BOX_ROWS));
if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS)
sPSSData->boxMonsSprites[boxPosition]->oam.objMode = 1;
sPSSData->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND;
}
}
@@ -4699,7 +4699,7 @@ static u8 sub_80CB2F8(u8 row, u16 times, s16 xDelta)
sPSSData->boxMonsSprites[boxPosition]->data[3] = xDest;
sPSSData->boxMonsSprites[boxPosition]->callback = sub_80CB234;
if (GetBoxMonDataAt(sPSSData->field_C5C, boxPosition, MON_DATA_HELD_ITEM) == 0)
sPSSData->boxMonsSprites[boxPosition]->oam.objMode = 1;
sPSSData->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND;
count++;
}
}
@@ -4846,7 +4846,7 @@ static void CreatePartyMonsSprites(bool8 arg0)
for (i = 0; i < PARTY_SIZE; i++)
{
if (sPSSData->partySprites[i] != NULL && GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM) == 0)
sPSSData->partySprites[i]->oam.objMode = 1;
sPSSData->partySprites[i]->oam.objMode = ST_OAM_OBJ_BLEND;
}
}
}
@@ -5087,7 +5087,7 @@ static void sub_80CBF14(u8 mode, u8 position)
if (*sPSSData->field_B04 != NULL)
{
InitSpriteAffineAnim(*sPSSData->field_B04);
(*sPSSData->field_B04)->oam.affineMode = 1;
(*sPSSData->field_B04)->oam.affineMode = ST_OAM_AFFINE_NORMAL;
(*sPSSData->field_B04)->affineAnims = gSpriteAffineAnimTable_857291C;
StartSpriteAffineAnim(*sPSSData->field_B04, 0);
}
@@ -9358,10 +9358,10 @@ static const u32 gUnknown_0857BB24[] = INCBIN_U32("graphics/pokemon_storage/unkn
static const struct OamData sOamData_857BBA4 =
{
.y = 0,
.affineMode = 1,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_NORMAL,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x32),
.x = 0,
.matrixNum = 0,
+12 -12
View File
@@ -706,10 +706,10 @@ static const u8 sMovesPPLayout[] = _("{PP}{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}");
static const struct OamData sOamData_MoveTypes =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x16),
.x = 0,
.matrixNum = 0,
@@ -882,10 +882,10 @@ static const u8 sMoveTypeToOamPaletteNum[NUMBER_OF_MON_TYPES + CONTEST_CATEGORIE
static const struct OamData gOamData_861CFF4 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(16x16),
.x = 0,
.matrixNum = 0,
@@ -971,10 +971,10 @@ static const struct SpriteTemplate gUnknown_0861D084 =
static const struct OamData sOamData_StatusCondition =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x8),
.x = 0,
.matrixNum = 0,
@@ -2716,7 +2716,7 @@ static void PrintNotEggInfo(void)
u16 dexNum = SpeciesToPokedexNum(summary->species);
if (dexNum != 0xFFFF)
{
StringCopy(gStringVar1, &gText_UnkCtrlF908Clear01[0]);
StringCopy(gStringVar1, &gText_NumberClear01[0]);
ConvertIntToDecimalStringN(gStringVar2, dexNum, STR_CONV_MODE_LEADING_ZEROS, 3);
StringAppend(gStringVar1, gStringVar2);
if (!IsMonShiny(mon))
@@ -3055,7 +3055,7 @@ static void PrintMonOTID(void)
int xPos;
if (InBattleFactory() != TRUE && InSlateportBattleTent() != TRUE)
{
ConvertIntToDecimalStringN(StringCopy(gStringVar1, gText_UnkCtrlF907F908), (u16)sMonSummaryScreen->summary.OTID, STR_CONV_MODE_LEADING_ZEROS, 5);
ConvertIntToDecimalStringN(StringCopy(gStringVar1, gText_IDNumber2), (u16)sMonSummaryScreen->summary.OTID, STR_CONV_MODE_LEADING_ZEROS, 5);
xPos = GetStringRightAlignXOffset(1, gStringVar1, 56);
SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, PSS_DATA_WINDOW_INFO_ID), gStringVar1, xPos, 1, 0, 1);
}
@@ -3209,7 +3209,7 @@ static void PrintEggOTName(void)
static void PrintEggOTID(void)
{
int x;
StringCopy(gStringVar1, gText_UnkCtrlF907F908);
StringCopy(gStringVar1, gText_IDNumber2);
StringAppend(gStringVar1, gText_FiveMarks);
x = GetStringRightAlignXOffset(1, gStringVar1, 56);
SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, PSS_DATA_WINDOW_INFO_ID), gStringVar1, x, 1, 0, 1);
+1 -1
View File
@@ -280,7 +280,7 @@ static const struct OamData sUnknown_0861FB24 =
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x16),
.x = 0,
.matrixNum = 0,
+5 -5
View File
@@ -755,7 +755,7 @@ void sub_81D0E60(struct PokenavSub14 *structPtr)
void sub_81D0E84(struct PokenavSub14 *structPtr)
{
u8 color[] = {4, 2, 3};
u8 color[] = {TEXT_COLOR_RED, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY};
ConvertIntToDecimalStringN(gStringVar1, GetCurrMonRibbonCount(), STR_CONV_MODE_LEFT_ALIGN, 2);
DynamicPlaceholderTextUtil_Reset();
@@ -770,7 +770,7 @@ void sub_81D0EFC(struct PokenavSub14 *structPtr)
{
s32 i;
u32 ribbonId = sub_81D0954();
u8 color[] = {4, 2, 3};
u8 color[] = {TEXT_COLOR_RED, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY};
FillWindowPixelBuffer(structPtr->field_A, PIXEL_FILL(4));
if (ribbonId < 25)
@@ -1060,10 +1060,10 @@ static const struct SpritePalette gUnknown_08624C80[] =
static const struct OamData sOamData_8624CB0 =
{
.y = 0,
.affineMode = 1,
.objMode = 0,
.affineMode = ST_OAM_AFFINE_NORMAL,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = 0,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x32),
.x = 0,
.matrixNum = 0,
+25 -26
View File
@@ -220,32 +220,31 @@ static const struct WindowTemplate gUnknown_086202CC =
static const u8 *const gUnknown_086202D4[] =
{
gUnknown_085EBCC5,
gUnknown_085EBCE8,
gUnknown_085EBD01,
gUnknown_085EBD1C,
gUnknown_085EBD34,
gUnknown_085EBD83,
gUnknown_085EBDA2,
gUnknown_085EBDBF,
gUnknown_085EBDDB,
gUnknown_085EBDEE,
gUnknown_085EBE06,
gUnknown_085EBE19,
gUnknown_085EBE2D,
gUnknown_085EBE41
gText_CheckMapOfHoenn,
gText_CheckPokemonInDetail,
gText_CallRegisteredTrainer,
gText_CheckObtainedRibbons,
gText_PutAwayPokenav,
gText_CheckPartyPokemonInDetail,
gText_CheckAllPokemonInDetail,
gText_ReturnToPokenavMenu,
gText_FindCoolPokemon,
gText_FindBeautifulPokemon,
gText_FindCutePokemon,
gText_FindSmartPokemon,
gText_FindToughPokemon,
gText_ReturnToConditionMenu
};
static const u8 gUnknown_0862030C[] = {6, 8, 7};
static const u8 gUnknown_0862030F[] = {6, 8, 7, 0, 0};
static const u8 sOptionDescTextColors[] = {TEXT_COLOR_GREEN, TEXT_COLOR_BLUE, TEXT_COLOR_LIGHT_GREEN};
static const u8 sOptionDescTextColors2[] = {TEXT_COLOR_GREEN, TEXT_COLOR_BLUE, TEXT_COLOR_LIGHT_GREEN};
static const struct OamData gUnknown_08620314 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.bpp = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x16),
.x = 0,
.size = SPRITE_SIZE(32x16),
@@ -287,9 +286,9 @@ static const struct SpriteTemplate gUnknown_0862034C =
static const struct OamData gUnknown_08620364 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.bpp = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x16),
.x = 0,
.size = SPRITE_SIZE(32x16),
@@ -1030,7 +1029,7 @@ static void sub_81CA4AC(struct Sprite * sprite)
{
sprite->invisible = TRUE;
FreeOamMatrix(sprite->oam.matrixNum);
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, 0);
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, ST_OAM_AFFINE_OFF);
sprite->oam.affineMode = ST_OAM_AFFINE_OFF;
sprite->oam.objMode = ST_OAM_OBJ_NORMAL;
sprite->callback = SpriteCallbackDummy;
@@ -1130,7 +1129,7 @@ static void sub_81CA714(void)
const u8 * s = gUnknown_086202D4[i];
u32 width = GetStringWidth(1, s, -1);
FillWindowPixelBuffer(ptr->optionDescriptionWindowId, PIXEL_FILL(6));
AddTextPrinterParameterized3(ptr->optionDescriptionWindowId, 1, (192 - width) / 2, 1, gUnknown_0862030C, 0, s);
AddTextPrinterParameterized3(ptr->optionDescriptionWindowId, 1, (192 - width) / 2, 1, sOptionDescTextColors, 0, s);
}
@@ -1140,7 +1139,7 @@ static void sub_81CA770(void)
const u8 * s = gText_NoRibbonWinners;
u32 width = GetStringWidth(1, s, -1);
FillWindowPixelBuffer(ptr->optionDescriptionWindowId, PIXEL_FILL(6));
AddTextPrinterParameterized3(ptr->optionDescriptionWindowId, 1, (192 - width) / 2, 1, gUnknown_0862030F, 0, s);
AddTextPrinterParameterized3(ptr->optionDescriptionWindowId, 1, (192 - width) / 2, 1, sOptionDescTextColors2, 0, s);
}
static bool32 sub_81CA7C4(void)
+6 -6
View File
@@ -227,9 +227,9 @@ const struct SpritePalette gUnknown_08622818[2] =
static const struct OamData sOptionsCursorOamData =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.bpp = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(8x16),
.x = 0,
.size = SPRITE_SIZE(8x16),
@@ -252,9 +252,9 @@ static const struct SpriteTemplate sOptionsCursorSpriteTemplate =
static const struct OamData sTrainerPicOamData =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.bpp = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.size = SPRITE_SIZE(64x64),
+3 -3
View File
@@ -144,9 +144,9 @@ const struct WindowTemplate gUnknown_08623110 =
const struct OamData gUnknown_086231C8 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.bpp = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
.bpp = ST_OAM_4BPP,
.shape = SPRITE_SHAPE(32x8),
.x = 0,
.size = SPRITE_SIZE(32x8),
+2 -2
View File
@@ -719,8 +719,8 @@ void sub_81CE9E4(void)
if (spriteId != MAX_SPRITES)
{
structPtr->unk1806[i] = spriteId;
gSprites[spriteId].oam.shape = 1;
gSprites[spriteId].oam.size = 2;
gSprites[spriteId].oam.shape = SPRITE_SHAPE(32x16);
gSprites[spriteId].oam.size = SPRITE_SIZE(32x16);
}
else
{
+2 -2
View File
@@ -659,7 +659,7 @@ void sub_810F6B0(struct Sprite *sprite)
static void sub_810F740(struct Sprite *sprite)
{
sprite->oam.affineMode = 1;
sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL;
sprite->affineAnims = gUnknown_08596740;
sprite->data[0] = 0;
InitSpriteAffineAnim(sprite);
@@ -674,7 +674,7 @@ static void sub_810F774(struct Sprite *sprite)
if (sprite->affineAnimEnded)
{
FreeOamMatrix(sprite->oam.matrixNum);
sprite->oam.affineMode = 0;
sprite->oam.affineMode = ST_OAM_AFFINE_OFF;
sprite->data[1] = 18;
sprite->data[0]++;
}

Some files were not shown because too many files have changed in this diff Show More