summaryrefslogtreecommitdiff
path: root/src/battle/battle_bg.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle/battle_bg.c')
-rw-r--r--src/battle/battle_bg.c864
1 files changed, 0 insertions, 864 deletions
diff --git a/src/battle/battle_bg.c b/src/battle/battle_bg.c
deleted file mode 100644
index c3877ec1c..000000000
--- a/src/battle/battle_bg.c
+++ /dev/null
@@ -1,864 +0,0 @@
-#include "global.h"
-#include "battle.h"
-#include "decompress.h"
-#include "ewram.h"
-#include "graphics.h"
-#include "link.h"
-#include "main.h"
-#include "palette.h"
-#include "task.h"
-#include "text.h"
-#include "text_window.h"
-#include "trainer.h"
-#include "trig.h"
-#include "sound.h"
-#include "constants/map_types.h"
-#include "constants/songs.h"
-
-
-extern u16 gBattleTypeFlags;
-extern u8 gBattleOutcome;
-
-extern struct Window gUnknown_03004210;
-
-extern u8 BattleText_Win[];
-extern u8 BattleText_Loss[];
-extern u8 BattleText_Tie[];
-
-extern void sub_8032A38(void);
-
-#define GetCurrentMapBattleScene sav1_map_get_battletype
-//extern u8 GetCurrentMapBattleScene(void);
-
-extern const u8 gGameVersion;
-extern u16 gBattleTypeFlags;
-extern struct Trainer gTrainers[];
-extern u16 gTrainerBattleOpponent;
-
-extern u8 gBattleTerrain;
-
-extern u16 gBattleTerrainPalette_Groudon[];
-extern u16 gBattleTerrainPalette_Kyogre[];
-extern u16 gBattleTerrainPalette_BuildingLeader[];
-extern u16 gBattleTerrainPalette_StadiumSteven[];
-extern u16 gBattleTerrainPalette_BuildingGym[];
-extern u16 gBattleTerrainPalette_StadiumMagma[];
-extern u16 gBattleTerrainPalette_StadiumAqua[];
-extern u16 gBattleTerrainPalette_StadiumSidney[];
-extern u16 gBattleTerrainPalette_StadiumPhoebe[];
-extern u16 gBattleTerrainPalette_StadiumGlacia[];
-extern u16 gBattleTerrainPalette_StadiumDrake[];
-extern u16 gBattleTerrainPalette_BattleTower[];
-
-extern u8 gVersusFrameGfx[];
-extern u16 gVersusFrameTilemap[];
-extern u16 gVersusFramePal[];
-
-extern u16 gBattle_BG1_X;
-extern u16 gBattle_BG1_Y;
-extern u16 gBattle_BG2_X;
-extern u16 gBattle_BG2_Y;
-
-extern u8 sav1_map_get_battletype(void);
-
-struct LinkResultWindow {
- struct Window *window;
- u16 offset;
- u8 left;
- u8 top;
- u8 *dest;
-};
-
-#define gLinkResultWindows gUnknown_081F9680
-extern const struct LinkResultWindow gLinkResultWindows[];
-
-extern struct SpriteTemplate gSpriteTemplate_81F96D0;
-
-const struct OamData gOamData_81F952C = {
- .affineMode = ST_OAM_AFFINE_DOUBLE,
- .size = 3
-};
-
-const struct OamData gOamData_81F9534 = {
- .affineMode = ST_OAM_AFFINE_DOUBLE,
- .size = 3,
- .tileNum = 64
-};
-
-const union AffineAnimCmd gSpriteAffineAnim_81F953C[] = {
- AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0),
- AFFINEANIMCMD_END
-};
-
-const union AffineAnimCmd gSpriteAffineAnim_81F954C[] = {
- AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0),
- AFFINEANIMCMD_FRAME(0x18, 0x18, 0, -128),
- AFFINEANIMCMD_FRAME(0x18, 0x18, 0, -128),
- AFFINEANIMCMD_END
-};
-
-const union AffineAnimCmd *const gSpriteAffineAnimTable_81F956C[] = {
- gSpriteAffineAnim_81F953C,
- gSpriteAffineAnim_81F954C
-};
-
-const struct SpriteTemplate gSpriteTemplate_81F9574 = {
- .tileTag = 10000,
- .paletteTag = 10000,
- .oam = &gOamData_81F952C,
- .anims = gDummySpriteAnimTable,
- .images = NULL,
- .affineAnims = gSpriteAffineAnimTable_81F956C,
- .callback = nullsub_36
-};
-
-const struct SpriteTemplate gSpriteTemplate_81F958C = {
- .tileTag = 10000,
- .paletteTag = 10000,
- .oam = &gOamData_81F9534,
- .anims = gDummySpriteAnimTable,
- .images = NULL,
- .affineAnims = gSpriteAffineAnimTable_81F956C,
- .callback = nullsub_36
-};
-
-extern const u8 gUnknown_08E5DC2C[];
-
-const struct CompressedSpriteSheet gUnknown_081F95A4[] = {
- {gUnknown_08E5DC2C, 4096, 0x2710},
-};
-
-struct BattleBackground
-{
- const void *tileset;
- const void *tilemap;
- const void *entryTileset;
- const void *entryTilemap;
- const void *palette;
-};
-
-const struct BattleBackground gBattleTerrainTable[] = {
-{
- .tileset = gBattleTerrainTiles_TallGrass,
- .tilemap = gBattleTerrainTilemap_TallGrass,
- .entryTileset = gBattleTerrainAnimTiles_TallGrass,
- .entryTilemap = gBattleTerrainAnimTilemap_TallGrass,
- .palette = gBattleTerrainPalette_TallGrass
-},
-{
- .tileset = gBattleTerrainTiles_LongGrass,
- .tilemap = gBattleTerrainTilemap_LongGrass,
- .entryTileset = gBattleTerrainAnimTiles_LongGrass,
- .entryTilemap = gBattleTerrainAnimTilemap_LongGrass,
- .palette = gBattleTerrainPalette_LongGrass
-},
-{
- .tileset = gBattleTerrainTiles_Sand,
- .tilemap = gBattleTerrainTilemap_Sand,
- .entryTileset = gBattleTerrainAnimTiles_Sand,
- .entryTilemap = gBattleTerrainAnimTilemap_Sand,
- .palette = gBattleTerrainPalette_Sand
-},
-{
- .tileset = gBattleTerrainTiles_Underwater,
- .tilemap = gBattleTerrainTilemap_Underwater,
- .entryTileset = gBattleTerrainAnimTiles_Underwater,
- .entryTilemap = gBattleTerrainAnimTilemap_Underwater,
- .palette = gBattleTerrainPalette_Underwater
-},
-{
- .tileset = gBattleTerrainTiles_Water,
- .tilemap = gBattleTerrainTilemap_Water,
- .entryTileset = gBattleTerrainAnimTiles_Water,
- .entryTilemap = gBattleTerrainAnimTilemap_Water,
- .palette = gBattleTerrainPalette_Water
-},
-{
- .tileset = gBattleTerrainTiles_PondWater,
- .tilemap = gBattleTerrainTilemap_PondWater,
- .entryTileset = gBattleTerrainAnimTiles_PondWater,
- .entryTilemap = gBattleTerrainAnimTilemap_PondWater,
- .palette = gBattleTerrainPalette_PondWater
-},
-{
- .tileset = gBattleTerrainTiles_Rock,
- .tilemap = gBattleTerrainTilemap_Rock,
- .entryTileset = gBattleTerrainAnimTiles_Rock,
- .entryTilemap = gBattleTerrainAnimTilemap_Rock,
- .palette = gBattleTerrainPalette_Rock
-},
-{
- .tileset = gBattleTerrainTiles_Cave,
- .tilemap = gBattleTerrainTilemap_Cave,
- .entryTileset = gBattleTerrainAnimTiles_Cave,
- .entryTilemap = gBattleTerrainAnimTilemap_Cave,
- .palette = gBattleTerrainPalette_Cave
-},
-{
- .tileset = gBattleTerrainTiles_Building,
- .tilemap = gBattleTerrainTilemap_Building,
- .entryTileset = gBattleTerrainAnimTiles_Building,
- .entryTilemap = gBattleTerrainAnimTilemap_Building,
- .palette = gBattleTerrainPalette_Building
-},
-{
- .tileset = gBattleTerrainTiles_Building,
- .tilemap = gBattleTerrainTilemap_Building,
- .entryTileset = gBattleTerrainAnimTiles_Building,
- .entryTilemap = gBattleTerrainAnimTilemap_Building,
- .palette = gBattleTerrainPalette_Plain
- }
-};
-
-static void sub_800D6C4(void);
-
-void debug_sub_800D684(void)
-{
- u8 spriteId;
- ResetSpriteData();
- spriteId = CreateSprite(&gSpriteTemplate_81F96D0, 0, 0, 0);
- gSprites[spriteId].invisible = TRUE;
- SetMainCallback2(sub_800D6C4);
-}
-
-static void sub_800D6C4(void)
-{
- AnimateSprites();
- BuildOamBuffer();
-}
-
-void sub_800D6D4(void)
-{
- u16 ime = REG_IME;
- REG_IME = 0;
- REG_IE |= INTR_FLAG_VBLANK;
- REG_IME = ime;
- REG_DISPSTAT = DISPSTAT_VBLANK_INTR;
- REG_BG0CNT = 0x9800;
- REG_BG1CNT = 0x9c04;
- REG_BG2CNT = 0x5e05;
- REG_BG3CNT = 0x5a0b;
- REG_BLDCNT = 0;
- REG_BLDALPHA = 0;
- REG_BLDY = 0;
- REG_DISPCNT = 0xbf40;
-}
-
-void ApplyPlayerChosenFrameToBattleMenu(void)
-{
- TextWindow_SetBaseTileNum(0x12);
- TextWindow_LoadStdFrameGraphicsOverridePal(&gUnknown_03004210, 1);
- TextWindow_SetBaseTileNum(0x22);
- TextWindow_LoadStdFrameGraphicsOverridePal(&gUnknown_03004210, 1);
- gPlttBufferUnfaded[92] = 0x7fe0;
- gPlttBufferUnfaded[93] = 0x2529;
- gPlttBufferUnfaded[94] = 0x7fff;
- gPlttBufferUnfaded[95] = 0x675a;
- CpuSet(&gPlttBufferUnfaded[92], &gPlttBufferFaded[92], 4);
- sub_8032A38();
-}
-
-void DrawMainBattleBackground(void)
-{
- if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER /*| BATTLE_TYPE_x2000000*/))
- {
- LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000));
- LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000));
- LoadCompressedPalette(gBattleTerrainPalette_BattleTower, 0x20, 0x60);
- }
- else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON)
- {
- if (gGameVersion == VERSION_RUBY)
- {
- LZDecompressVram(gBattleTerrainTiles_Cave, (void*)(VRAM + 0x8000));
- LZDecompressVram(gBattleTerrainTilemap_Cave, (void*)(VRAM + 0xD000));
- LoadCompressedPalette(gBattleTerrainPalette_Groudon, 0x20, 0x60);
- }
- else
- {
- LZDecompressVram(gBattleTerrainTiles_Water, (void*)(VRAM + 0x8000));
- LZDecompressVram(gBattleTerrainTilemap_Water, (void*)(VRAM + 0xD000));
- LoadCompressedPalette(gBattleTerrainPalette_Kyogre, 0x20, 0x60);
- }
- }
- else
- {
- if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
- {
- u8 trainerClass = gTrainers[gTrainerBattleOpponent].trainerClass;
- if (trainerClass == TRAINER_CLASS_LEADER)
- {
- LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000));
- LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000));
- LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, 0x20, 0x60);
- return;
- }
- else if (trainerClass == TRAINER_CLASS_CHAMPION)
- {
- LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000));
- LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000));
- LoadCompressedPalette(gBattleTerrainPalette_StadiumSteven, 0x20, 0x60);
- return;
- }
- }
-
- switch (GetCurrentMapBattleScene())
- {
- case MAP_BATTLE_SCENE_NORMAL:
- LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tileset, (void*)(VRAM + 0x8000));
- LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tilemap, (void*)(VRAM + 0xD000));
- LoadCompressedPalette(gBattleTerrainTable[gBattleTerrain].palette, 0x20, 0x60);
- break;
- case MAP_BATTLE_SCENE_GYM:
- LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000));
- LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000));
- LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, 0x20, 0x60);
- break;
- case MAP_BATTLE_SCENE_MAGMA:
- LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000));
- LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000));
- LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, 0x20, 0x60);
- break;
- case MAP_BATTLE_SCENE_AQUA:
- LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000));
- LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000));
- LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, 0x20, 0x60);
- break;
- case MAP_BATTLE_SCENE_SIDNEY:
- LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000));
- LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000));
- LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, 0x20, 0x60);
- break;
- case MAP_BATTLE_SCENE_PHOEBE:
- LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000));
- LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000));
- LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, 0x20, 0x60);
- break;
- case MAP_BATTLE_SCENE_GLACIA:
- LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000));
- LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000));
- LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, 0x20, 0x60);
- break;
- case MAP_BATTLE_SCENE_DRAKE:
- LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000));
- LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000));
- LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, 0x20, 0x60);
- break;
- case MAP_BATTLE_SCENE_BATTLE_TOWER:
- LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000));
- LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000));
- LoadCompressedPalette(gBattleTerrainPalette_BattleTower, 0x20, 0x60);
- break;
- }
- }
-}
-
-void LoadBattleTextboxAndBackground(void)
-{
- LZDecompressVram(gBattleTextboxTiles, (void*)(BG_VRAM));
- CpuSet(gBattleTextboxTilemap, (void *)(VRAM + 0xC000), 0x800);
- LoadCompressedPalette(gBattleTextboxPalette, 0, 0x40);
- ApplyPlayerChosenFrameToBattleMenu();
- DrawMainBattleBackground();
-
- #if DEBUG
- if (gBattleTypeFlags & BATTLE_TYPE_LINK)
- {
- debug_sub_8008218((void*)(VRAM + 0x600), 0, (void*)(VRAM + 0xC000), 1);
- debug_sub_8008264(257, 3, 1, 3, 1);
- debug_sub_8008264(257, 3, 21, 3, 1);
- debug_sub_8008264(257, 3, 41, 3, 1);
- }
- #endif
-}
-
-static void sub_800DAF8(u8 taskId, u8 windowId, u8 *dest)
-{
- int i;
- u16 r4 = 0;
- u16 src[6];
-
- if (gBattleTypeFlags & BATTLE_TYPE_MULTI) {
- if (gTasks[taskId].data[5]) {
- switch (windowId) {
- case 0:
- r4 = gTasks[taskId].data[3] & 0x3f;
- break;
- case 1:
- r4 = (gTasks[taskId].data[4] & 0xfc0) >> 6;
- break;
- case 2:
- r4 = (gTasks[taskId].data[3] & 0xfc0) >> 6;
- break;
- case 3:
- r4 = gTasks[taskId].data[4] & 0x3f;
- break;
- }
- } else {
- switch (windowId) {
- case 0:
- r4 = gTasks[taskId].data[3] & 0x3f;
- break;
- case 1:
- r4 = gTasks[taskId].data[4] & 0x3f;
- break;
- case 2:
- r4 = (gTasks[taskId].data[3] & 0xfc0) >> 6;
- break;
- case 3:
- r4 = (gTasks[taskId].data[4] & 0xfc0) >> 6;
- break;
- }
- }
- for (i = 0; i < 3; i++) {
- src[i] = ((r4 & (3 << (i * 2))) >> (i * 2)) + 0x6001;
- }
- CpuSet(src, dest, 3);
- } else {
- if (windowId == gBattleStruct->linkPlayerIndex) {
- r4 = gTasks[taskId].data[3];
- } else {
- r4 = gTasks[taskId].data[4];
- }
- for (i = 0; i < 6; i++) {
- src[i] = ((r4 & (3 << (i * 2))) >> (i * 2)) + 0x6001;
- }
- CpuSet(src, dest, 6);
- }
-}
-
-
-#if ENGLISH
-#define LEFT_MESSAGE_X 6
-#define RIGHT_MESSAGE_X 21
-#define TILE_OFFSET_LOSS 168
-#elif GERMAN
-#define LEFT_MESSAGE_X 5
-#define RIGHT_MESSAGE_X 20
-#define TILE_OFFSET_LOSS 172
-#endif
-#define TILE_OFFSET_WIN 160
-#define CENTER_MESSAGE_X 13
-#define MESSAGE_Y 2
-
-#define PRINT_MESSAGE(text, tileDataStartOffset, x) \
-{ \
- Text_InitWindow(&gUnknown_03004210, text, tileDataStartOffset, x, MESSAGE_Y); \
- Text_PrintWindow8002F44(&gUnknown_03004210); \
-}
-
-#define PRINT_MESSAGE_LEFT(text, tileDataStartOffset) PRINT_MESSAGE(text, tileDataStartOffset, LEFT_MESSAGE_X)
-#define PRINT_MESSAGE_RIGHT(text, tileDataStartOffset) PRINT_MESSAGE(text, tileDataStartOffset, RIGHT_MESSAGE_X)
-
-static void PrintLinkBattleWinLossTie(void)
-{
-
- if (gBattleOutcome == 3)
- {
- PRINT_MESSAGE(BattleText_Tie, TILE_OFFSET_WIN, CENTER_MESSAGE_X);
- return;
- }
-
- if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
- {
- // Double battle?
-
- if (gBattleOutcome == 1)
- {
-
- // lp_field_18 = player position?
- switch (gLinkPlayers[gBattleStruct->linkPlayerIndex].lp_field_18)
- {
- case 0:
- case 2:
- PRINT_MESSAGE_LEFT(BattleText_Win, TILE_OFFSET_WIN);
- PRINT_MESSAGE_RIGHT(BattleText_Loss, TILE_OFFSET_LOSS);
- return;
-
- case 1:
- case 3:
- PRINT_MESSAGE_RIGHT(BattleText_Win, TILE_OFFSET_WIN)
- PRINT_MESSAGE_LEFT(BattleText_Loss, TILE_OFFSET_LOSS)
- return;
- }
- }
- else
- {
-
- switch (gLinkPlayers[gBattleStruct->linkPlayerIndex].lp_field_18)
- {
- case 1:
- case 3:
- PRINT_MESSAGE_LEFT(BattleText_Win, TILE_OFFSET_WIN);
- PRINT_MESSAGE_RIGHT(BattleText_Loss, TILE_OFFSET_LOSS);
- return;
-
- case 0:
- case 2:
- PRINT_MESSAGE_RIGHT(BattleText_Win, TILE_OFFSET_WIN);
- PRINT_MESSAGE_LEFT(BattleText_Loss, TILE_OFFSET_LOSS);
- return;
- }
- }
-
- return;
- }
-
-
- if (gBattleOutcome == 1)
- {
- if (gLinkPlayers[gBattleStruct->linkPlayerIndex].lp_field_18 != 0)
- {
- PRINT_MESSAGE_RIGHT(BattleText_Win, TILE_OFFSET_WIN);
- PRINT_MESSAGE_LEFT(BattleText_Loss, TILE_OFFSET_LOSS);
- }
- else
- {
- PRINT_MESSAGE_LEFT(BattleText_Win, TILE_OFFSET_WIN);
- PRINT_MESSAGE_RIGHT(BattleText_Loss, TILE_OFFSET_LOSS);
- }
- }
- else
- {
- if (gLinkPlayers[gBattleStruct->linkPlayerIndex].lp_field_18 != 0)
- {
- PRINT_MESSAGE_LEFT(BattleText_Win, TILE_OFFSET_WIN);
- PRINT_MESSAGE_RIGHT(BattleText_Loss, TILE_OFFSET_LOSS);
- }
- else
- {
- PRINT_MESSAGE_RIGHT(BattleText_Win, TILE_OFFSET_WIN);
- PRINT_MESSAGE_LEFT(BattleText_Loss, TILE_OFFSET_LOSS);
- }
- }
-}
-
-
-void sub_800DE30(u8 taskId)
-{
- u8 palette;
- int i;
-
- switch (gTasks[taskId].data[0]) {
-
- case 0:
- if (gBattleTypeFlags & BATTLE_TYPE_MULTI) {
- for (i = 0; i < 4; i++) {
- u8 windowId = (gLinkPlayers[i].lp_field_18 & 3);
- Text_InitWindow8002E4C(
- gLinkResultWindows[windowId].window,
- gLinkPlayers[i].name,
- gLinkResultWindows[windowId].offset,
- gLinkResultWindows[windowId].left,
- gLinkResultWindows[windowId].top,
- 1);
- Text_PrintWindow8002F44(gLinkResultWindows[windowId].window);
- sub_800DAF8(taskId, windowId, gLinkResultWindows[windowId].dest);
- }
- } else {
- u8 windowId = 4;
-
- u8 playerId = gBattleStruct->linkPlayerIndex;
- u8 opponentId = gBattleStruct->linkPlayerIndex ^ 1;
- if (gLinkPlayers[playerId].lp_field_18) {
- opponentId = gBattleStruct->linkPlayerIndex;
- playerId = gBattleStruct->linkPlayerIndex ^ 1;
- }
-
- Text_InitWindow8002E4C(
- gLinkResultWindows[windowId].window,
- gLinkPlayers[playerId].name,
- gLinkResultWindows[windowId].offset,
- gLinkResultWindows[windowId].left,
- gLinkResultWindows[windowId].top,
- 1);
- Text_PrintWindow8002F44(gLinkResultWindows[windowId].window);
- sub_800DAF8(taskId, playerId, gLinkResultWindows[windowId].dest);
-
- Text_InitWindow8002E4C(
- gLinkResultWindows[windowId + 1].window,
- gLinkPlayers[opponentId].name,
- gLinkResultWindows[windowId + 1].offset,
- gLinkResultWindows[windowId + 1].left,
- gLinkResultWindows[windowId + 1].top,
- 1);
- Text_PrintWindow8002F44(gLinkResultWindows[windowId + 1].window);
- sub_800DAF8(taskId, opponentId, gLinkResultWindows[windowId + 1].dest);
- }
- gTasks[taskId].data[0]++;
- break;
-
- case 1:
- palette = AllocSpritePalette(10000);
- gPlttBufferUnfaded[palette * 16 + 0x10f] = gPlttBufferFaded[palette * 16 + 0x10f] = 0x7fff;
- gBattleStruct->unk1608A = CreateSprite(&gSpriteTemplate_81F9574, 108, 80, 0);
- gBattleStruct->unk1608B = CreateSprite(&gSpriteTemplate_81F958C, 132, 80, 0);
- gSprites[gBattleStruct->unk1608A].invisible = TRUE;
- gSprites[gBattleStruct->unk1608B].invisible = TRUE;
- gTasks[taskId].data[0]++;
- break;
-
- case 2:
- if (gTasks[taskId].data[5]) {
- gBattle_BG1_X = (-20) - (Sin2(gTasks[taskId].data[1]) / 32);
- gBattle_BG2_X = (-140) - (Sin2(gTasks[taskId].data[2]) / 32);
- gBattle_BG1_Y = -36;
- gBattle_BG2_Y = -36;
- } else {
- gBattle_BG1_X = (-20) - (Sin2(gTasks[taskId].data[1]) / 32);
- gBattle_BG1_Y = (-164) + (Cos2(gTasks[taskId].data[1]) / 32);
- gBattle_BG2_X = (-140) - (Sin2(gTasks[taskId].data[2]) / 32);
- gBattle_BG2_Y = (-164) + (Cos2(gTasks[taskId].data[2]) / 32);
- }
- if (gTasks[taskId].data[2]) {
- gTasks[taskId].data[2] -= 2;
- gTasks[taskId].data[1] += 2;
- } else {
- if (gTasks[taskId].data[5]) {
- PrintLinkBattleWinLossTie();
- }
- PlaySE(SE_W231);
- DestroyTask(taskId);
- gSprites[gBattleStruct->unk1608A].invisible = FALSE;
- gSprites[gBattleStruct->unk1608B].invisible = FALSE;
- gSprites[gBattleStruct->unk1608B].oam.tileNum += 0x40;
- gSprites[gBattleStruct->unk1608A].data[0] = 0;
- gSprites[gBattleStruct->unk1608B].data[0] = 1;
- gSprites[gBattleStruct->unk1608A].data[1] = gSprites[gBattleStruct->unk1608A].pos1.x;
- gSprites[gBattleStruct->unk1608B].data[1] = gSprites[gBattleStruct->unk1608B].pos1.x;
- gSprites[gBattleStruct->unk1608A].data[2] = 0;
- gSprites[gBattleStruct->unk1608B].data[2] = 0;
- }
- break;
- }
-}
-
-void LoadBattleEntryBackground(void) {
- if (gBattleTypeFlags & BATTLE_TYPE_LINK) {
- LZDecompressVram(gVersusFrameGfx, (void *)(VRAM + 0x4000));
- LZDecompressVram(gVersusFrameTilemap, (void *)(VRAM + 0xE000));
- LZDecompressVram(gVersusFrameTilemap, (void *)(VRAM + 0xF000));
- LZDecompressVram(gUnknown_08E5DC2C, (void *)(VRAM + 0x10000));
- LoadCompressedPalette(gVersusFramePal, 0x60, 0x20);
- REG_BG1CNT = 0x5c04;
- REG_WININ = 0x36;
- REG_WINOUT = 0x36;
- gBattle_BG1_Y = 0xff5c;
- gBattle_BG2_Y = 0xff5c;
- LoadCompressedObjectPic(gUnknown_081F95A4);
- return;
- } else if (gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) {
- LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)(VRAM + 0x4000));
- LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)(VRAM + 0xE000));
- return;
- } else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) {
- if (gGameVersion == VERSION_RUBY) {
- LZDecompressVram(gBattleTerrainAnimTiles_Cave, (void *)(VRAM + 0x4000));
- LZDecompressVram(gBattleTerrainAnimTilemap_Cave, (void *)(VRAM + 0xE000));
- return;
- } else {
- LZDecompressVram(gBattleTerrainAnimTiles_Underwater, (void *)(VRAM + 0x4000));
- LZDecompressVram(gBattleTerrainAnimTilemap_Underwater, (void *)(VRAM + 0xE000));
- return;
- }
- } else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) {
- if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x19) {
- LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)(VRAM + 0x4000));
- LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)(VRAM + 0xE000));
- return;
- } else if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x20) {
- LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)(VRAM + 0x4000));
- LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)(VRAM + 0xE000));
- return;
- }
- }
- if (sav1_map_get_battletype() == 0) {
- LZDecompressVram(gBattleTerrainTable[gBattleTerrain].entryTileset, (void *)(VRAM + 0x4000));
- LZDecompressVram(gBattleTerrainTable[gBattleTerrain].entryTilemap, (void *)(VRAM + 0xE000));
- return;
- }
- LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)(VRAM + 0x4000));
- LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)(VRAM + 0xE000));
-}
-
-int LoadChosenBattleElement(u8 type) {
- int ret = 0;
- switch (type) {
- case 0:
- LZDecompressVram(&gBattleTextboxTiles, (void *)VRAM);
- break;
- case 1:
- CpuCopy16(gBattleTextboxTilemap, (void *)(VRAM + 0xC000), 0x1000);
- break;
- case 2:
- LoadCompressedPalette(gBattleTextboxPalette, 0, 0x40);
- break;
- case 3: // tiles
- if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK))) {
- if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) {
- if (gGameVersion == VERSION_RUBY) {
- LZDecompressVram(gBattleTerrainTiles_Cave, (void *)(VRAM + 0x8000));
- break;
- } else {
- LZDecompressVram(gBattleTerrainTiles_Water, (void *)(VRAM + 0x8000));
- break;
- }
- } else {
- if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) {
- if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x19) {
- LZDecompressVram(gBattleTerrainTiles_Building, (void *)(VRAM + 0x8000));
- break;
- } else if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x20) {
- LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(VRAM + 0x8000));
- break;
- }
- }
- switch (sav1_map_get_battletype()) {
- case 0:
- LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tileset, (void *)(VRAM + 0x8000));
- break;
- case 2:
- LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(VRAM + 0x8000));
- break;
- case 3:
- LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(VRAM + 0x8000));
- break;
- case 4:
- LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(VRAM + 0x8000));
- break;
- case 5:
- LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(VRAM + 0x8000));
- break;
- case 6:
- LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(VRAM + 0x8000));
- break;
- case 7:
- LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(VRAM + 0x8000));
- break;
- case 1:
- case 8:
- LZDecompressVram(gBattleTerrainTiles_Building, (void *)(VRAM + 0x8000));
- break;
- }
- break;
- }
- } else {
- LZDecompressVram(gBattleTerrainTiles_Building, (void *)(VRAM + 0x8000));
- break;
- }
- case 4: // tilemap
- if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK))) {
- if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) {
- if (gGameVersion == 2) {
- LZDecompressVram(gBattleTerrainTilemap_Cave, (void *)(VRAM + 0xD000));
- break;
- } else {
- LZDecompressVram(gBattleTerrainTilemap_Water, (void *)(VRAM + 0xD000));
- break;
- }
- } else {
- if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) {
- if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x19) {
- LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(VRAM + 0xD000));
- break;
- } else if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x20) {
- LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(VRAM + 0xD000));
- break;
- }
- }
- switch (sav1_map_get_battletype()) {
- case 0:
- LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tilemap, (void *)(VRAM + 0xD000));
- break;
- case 2:
- LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(VRAM + 0xD000));
- break;
- case 3:
- LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(VRAM + 0xD000));
- break;
- case 4:
- LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(VRAM + 0xD000));
- break;
- case 5:
- LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(VRAM + 0xD000));
- break;
- case 6:
- LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(VRAM + 0xD000));
- break;
- case 7:
- LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(VRAM + 0xD000));
- break;
- case 1:
- case 8:
- LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(VRAM + 0xD000));
- break;
- }
- break;
- }
- } else {
- LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(VRAM + 0xD000));
- break;
- }
- case 5: // palette
- if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK))) {
- if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) {
- if (gGameVersion == 2) {
- LoadCompressedPalette(gBattleTerrainPalette_Groudon, 0x20, 0x60);
- break;
- } else {
- LoadCompressedPalette(gBattleTerrainPalette_Kyogre, 0x20, 0x60);
- break;
- }
- } else {
- if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) {
- if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x19) {
- LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, 0x20, 0x60);
- break;
- } else if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x20) {
- LoadCompressedPalette(gBattleTerrainPalette_StadiumSteven, 0x20, 0x60);
- break;
- }
- }
- switch (sav1_map_get_battletype()) {
- case 0:
- LoadCompressedPalette(gBattleTerrainTable[gBattleTerrain].palette, 0x20, 0x60);
- break;
- case 1:
- LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, 0x20, 0x60);
- break;
- case 2:
- LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, 0x20, 0x60);
- break;
- case 3:
- LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, 0x20, 0x60);
- break;
- case 4:
- LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, 0x20, 0x60);
- break;
- case 5:
- LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, 0x20, 0x60);
- break;
- case 6:
- LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, 0x20, 0x60);
- break;
- case 7:
- LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, 0x20, 0x60);
- break;
- case 8:
- LoadCompressedPalette(gBattleTerrainPalette_BattleTower, 0x20, 0x60);
- break;
- }
- break;
- }
- } else {
- LoadCompressedPalette(gBattleTerrainPalette_BattleTower, 0x20, 0x60);
- break;
- }
- case 6:
- ApplyPlayerChosenFrameToBattleMenu();
- break;
- default:
- ret = 1;
- }
- return ret;
-}