fix pokeblock merge conflicts
This commit is contained in:
@@ -152,7 +152,7 @@ extern u8 gUnknown_020241E9;
|
||||
extern u16 gChosenMove;
|
||||
|
||||
extern const struct BattleMove gBattleMoves[];
|
||||
extern const u16 gUnknown_08C004E0[]; // battle textbox palette
|
||||
extern const u16 gBattleTextboxPalette[]; // battle textbox palette
|
||||
extern const struct BgTemplate gUnknown_0831AA08[];
|
||||
extern const struct WindowTemplate * const gUnknown_0831ABA0[];
|
||||
extern const u8 gUnknown_0831ACE0[];
|
||||
@@ -754,7 +754,7 @@ static void CB2_HandleStartBattle(void)
|
||||
ResetBlockReceivedFlags();
|
||||
sub_8036EB8(2, playerMultiplayerId);
|
||||
SetAllPlayersBerryData();
|
||||
taskId = CreateTask(task00_0800F6FC, 0);
|
||||
taskId = CreateTask(sub_8035D74, 0);
|
||||
gTasks[taskId].data[1] = 0x10E;
|
||||
gTasks[taskId].data[2] = 0x5A;
|
||||
gTasks[taskId].data[5] = 0;
|
||||
@@ -956,7 +956,7 @@ static void CB2_HandleStartMultiPartnerBattle(void)
|
||||
ResetBlockReceivedFlags();
|
||||
sub_8036EB8(2, playerMultiplayerId);
|
||||
SetAllPlayersBerryData();
|
||||
taskId = CreateTask(task00_0800F6FC, 0);
|
||||
taskId = CreateTask(sub_8035D74, 0);
|
||||
gTasks[taskId].data[1] = 0x10E;
|
||||
gTasks[taskId].data[2] = 0x5A;
|
||||
gTasks[taskId].data[5] = 0;
|
||||
@@ -1342,7 +1342,7 @@ static void CB2_HandleStartMultiBattle(void)
|
||||
sub_8036EB8(4, playerMultiplayerId);
|
||||
SetAllPlayersBerryData();
|
||||
sub_8068AA4();
|
||||
var = CreateTask(task00_0800F6FC, 0);
|
||||
var = CreateTask(sub_8035D74, 0);
|
||||
gTasks[var].data[1] = 0x10E;
|
||||
gTasks[var].data[2] = 0x5A;
|
||||
gTasks[var].data[5] = 0;
|
||||
@@ -1978,7 +1978,7 @@ void sub_8038D64(void)
|
||||
gBattle_BG3_Y = 0;
|
||||
|
||||
sub_80356D0();
|
||||
LoadCompressedPalette(gUnknown_08C004E0, 0, 64);
|
||||
LoadCompressedPalette(gBattleTextboxPalette, 0, 64);
|
||||
ApplyPlayerChosenFrameToBattleMenu();
|
||||
ResetSpriteData();
|
||||
ResetTasks();
|
||||
@@ -1988,7 +1988,7 @@ void sub_8038D64(void)
|
||||
gReservedSpritePaletteCount = 4;
|
||||
SetVBlankCallback(VBlankCB_Battle);
|
||||
|
||||
taskId = CreateTask(task00_0800F6FC, 0);
|
||||
taskId = CreateTask(sub_8035D74, 0);
|
||||
gTasks[taskId].data[1] = 0x10E;
|
||||
gTasks[taskId].data[2] = 0x5A;
|
||||
gTasks[taskId].data[5] = 1;
|
||||
|
||||
754
src/battle_bg.c
Normal file
754
src/battle_bg.c
Normal file
@@ -0,0 +1,754 @@
|
||||
#include "global.h"
|
||||
#include "battle.h"
|
||||
#include "sprite.h"
|
||||
#include "constants\trainers.h"
|
||||
#include "graphics.h"
|
||||
#include "decompress.h"
|
||||
#include "bg.h"
|
||||
#include "palette.h"
|
||||
#include "main.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "link.h"
|
||||
#include "battle_message.h"
|
||||
#include "task.h"
|
||||
#include "trig.h"
|
||||
#include "sound.h"
|
||||
#include "songs.h"
|
||||
#include "strings.h"
|
||||
#include "window.h"
|
||||
#include "text_window.h"
|
||||
#include "new_menu_helpers.h"
|
||||
|
||||
struct BattleBackground
|
||||
{
|
||||
const void *tileset;
|
||||
const void *tilemap;
|
||||
const void *entryTileset;
|
||||
const void *entryTilemap;
|
||||
const void *palette;
|
||||
};
|
||||
|
||||
extern const struct SpriteTemplate gUnknown_0831A9D0;
|
||||
extern const struct SpriteTemplate gUnknown_0831A9E8;
|
||||
extern const struct CompressedSpriteSheet gUnknown_0831AA00;
|
||||
extern const struct BgTemplate gUnknown_0831AA08[4];
|
||||
extern const struct WindowTemplate *gUnknown_0831ABA0[];
|
||||
extern const struct BattleBackground gBattleTerrainTable[];
|
||||
|
||||
extern u8 gBattleTerrain;
|
||||
extern u16 gTrainerBattleOpponent_A;
|
||||
extern u16 gBattle_BG1_X;
|
||||
extern u16 gBattle_BG1_Y;
|
||||
extern u16 gBattle_BG2_X;
|
||||
extern u16 gBattle_BG2_Y;
|
||||
extern u16 gPartnerTrainerId;
|
||||
|
||||
extern u8 GetCurrentMapBattleScene(void);
|
||||
|
||||
void sub_8035658(void)
|
||||
{
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, gUnknown_0831AA08, ARRAY_COUNT(gUnknown_0831AA08));
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_ARENA)
|
||||
{
|
||||
gBattleScripting.field_24 = 1;
|
||||
SetBgTilemapBuffer(1, gUnknown_02023060);
|
||||
SetBgTilemapBuffer(2, gUnknown_02023060);
|
||||
}
|
||||
else
|
||||
{
|
||||
gBattleScripting.field_24 = 0;
|
||||
}
|
||||
|
||||
InitWindows(gUnknown_0831ABA0[gBattleScripting.field_24]);
|
||||
DeactivateAllTextPrinters();
|
||||
}
|
||||
|
||||
void sub_80356D0(void)
|
||||
{
|
||||
DisableInterrupts(INTR_FLAG_HBLANK);
|
||||
EnableInterrupts(INTR_FLAG_VBLANK | INTR_FLAG_VCOUNT | INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL);
|
||||
sub_8035658();
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDY, 0);
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON | DISPCNT_WIN0_ON | DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
|
||||
}
|
||||
|
||||
void ApplyPlayerChosenFrameToBattleMenu(void)
|
||||
{
|
||||
sub_809882C(2, 0x12, 0x10);
|
||||
sub_809882C(2, 0x22, 0x10);
|
||||
LoadCompressedPalette(gUnknown_08D85600, 0x50, 0x20);
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_ARENA)
|
||||
{
|
||||
sub_81978B0(0x70);
|
||||
copy_textbox_border_tile_patterns_to_vram(0, 0x30, 0x70);
|
||||
gPlttBufferUnfaded[0x76] = 0;
|
||||
CpuCopy16(&gPlttBufferUnfaded[0x76], &gPlttBufferFaded[0x76], 2);
|
||||
}
|
||||
}
|
||||
|
||||
void DrawMainBattleBackground(void)
|
||||
{
|
||||
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_x2000000))
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60);
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_GROUDON)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTiles_Cave, (void*)(VRAM + 0x8000));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Cave, (void*)(VRAM + 0xD000));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Groudon, 0x20, 0x60);
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTiles_Water, (void*)(VRAM + 0x8000));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Water, (void*)(VRAM + 0xD000));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Kyogre, 0x20, 0x60);
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_RAYQUAZA)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTiles_Rayquaza, (void*)(VRAM + 0x8000));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Rayquaza, (void*)(VRAM + 0xD000));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Rayquaza, 0x20, 0x60);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
|
||||
{
|
||||
u8 trainerClass = gTrainers[gTrainerBattleOpponent_A].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_StadiumWallace, 0x20, 0x60);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
switch (GetCurrentMapBattleScene())
|
||||
{
|
||||
default:
|
||||
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_FRONTIER:
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LoadBattleTextboxAndBackground(void)
|
||||
{
|
||||
LZDecompressVram(gBattleTextboxTiles, (void*)(VRAM));
|
||||
CopyToBgTilemapBuffer(0, gBattleTextboxTilemap, 0, 0);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
LoadCompressedPalette(gBattleTextboxPalette, 0, 0x40);
|
||||
ApplyPlayerChosenFrameToBattleMenu();
|
||||
|
||||
DrawMainBattleBackground();
|
||||
}
|
||||
|
||||
static void sub_8035AE4(u8 taskId, u8 bank, u8 bgId, u8 destX, u8 destY)
|
||||
{
|
||||
s32 i;
|
||||
u16 var = 0;
|
||||
u16 src[6];
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
||||
{
|
||||
if (gTasks[taskId].data[5] != 0)
|
||||
{
|
||||
switch (bank)
|
||||
{
|
||||
case 0:
|
||||
var = 0x3F & gTasks[taskId].data[3];
|
||||
break;
|
||||
case 1:
|
||||
var = (0xFC0 & gTasks[taskId].data[4]) >> 6;
|
||||
break;
|
||||
case 2:
|
||||
var = (0xFC0 & gTasks[taskId].data[3]) >> 6;
|
||||
break;
|
||||
case 3:
|
||||
var = 0x3F & gTasks[taskId].data[4];
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (bank)
|
||||
{
|
||||
case 0:
|
||||
var = 0x3F & gTasks[taskId].data[3];
|
||||
break;
|
||||
case 1:
|
||||
var = 0x3F & gTasks[taskId].data[4];
|
||||
break;
|
||||
case 2:
|
||||
var = (0xFC0 & gTasks[taskId].data[3]) >> 6;
|
||||
break;
|
||||
case 3:
|
||||
var = (0xFC0 & gTasks[taskId].data[4]) >> 6;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
src[i] = ((var & (3 << (i * 2))) >> (i * 2)) + 0x6001;
|
||||
}
|
||||
|
||||
CopyToBgTilemapBufferRect_ChangePalette(bgId, src, destX, destY, 3, 1, 0x11);
|
||||
CopyBgTilemapBufferToVram(bgId);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (bank == gBattleScripting.multiplayerId)
|
||||
var = gTasks[taskId].data[3];
|
||||
else
|
||||
var = gTasks[taskId].data[4];
|
||||
|
||||
for (i = 0; i < 6; i++)
|
||||
{
|
||||
src[i] = ((var & (3 << (i * 2))) >> (i * 2)) + 0x6001;
|
||||
}
|
||||
|
||||
CopyToBgTilemapBufferRect_ChangePalette(bgId, src, destX, destY, 6, 1, 0x11);
|
||||
CopyBgTilemapBufferToVram(bgId);
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8035C4C(void)
|
||||
{
|
||||
if (gBattleOutcome == BATTLE_DREW)
|
||||
{
|
||||
BattleHandleAddTextPrinter(gText_Draw, 0x15);
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
||||
{
|
||||
if (gBattleOutcome == BATTLE_WON)
|
||||
{
|
||||
switch (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18)
|
||||
{
|
||||
case 0:
|
||||
BattleHandleAddTextPrinter(gText_Win, 0x16);
|
||||
BattleHandleAddTextPrinter(gText_Loss, 0x17);
|
||||
break;
|
||||
case 1:
|
||||
BattleHandleAddTextPrinter(gText_Win, 0x17);
|
||||
BattleHandleAddTextPrinter(gText_Loss, 0x16);
|
||||
break;
|
||||
case 2:
|
||||
BattleHandleAddTextPrinter(gText_Win, 0x16);
|
||||
BattleHandleAddTextPrinter(gText_Loss, 0x17);
|
||||
break;
|
||||
case 3:
|
||||
BattleHandleAddTextPrinter(gText_Win, 0x17);
|
||||
BattleHandleAddTextPrinter(gText_Loss, 0x16);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18)
|
||||
{
|
||||
case 0:
|
||||
BattleHandleAddTextPrinter(gText_Win, 0x17);
|
||||
BattleHandleAddTextPrinter(gText_Loss, 0x16);
|
||||
break;
|
||||
case 1:
|
||||
BattleHandleAddTextPrinter(gText_Win, 0x16);
|
||||
BattleHandleAddTextPrinter(gText_Loss, 0x17);
|
||||
break;
|
||||
case 2:
|
||||
BattleHandleAddTextPrinter(gText_Win, 0x17);
|
||||
BattleHandleAddTextPrinter(gText_Loss, 0x16);
|
||||
break;
|
||||
case 3:
|
||||
BattleHandleAddTextPrinter(gText_Win, 0x16);
|
||||
BattleHandleAddTextPrinter(gText_Loss, 0x17);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (gBattleOutcome == BATTLE_WON)
|
||||
{
|
||||
if (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18 != 0)
|
||||
{
|
||||
BattleHandleAddTextPrinter(gText_Win, 0x17);
|
||||
BattleHandleAddTextPrinter(gText_Loss, 0x16);
|
||||
}
|
||||
else
|
||||
{
|
||||
BattleHandleAddTextPrinter(gText_Win, 0x16);
|
||||
BattleHandleAddTextPrinter(gText_Loss, 0x17);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18 != 0)
|
||||
{
|
||||
BattleHandleAddTextPrinter(gText_Win, 0x16);
|
||||
BattleHandleAddTextPrinter(gText_Loss, 0x17);
|
||||
}
|
||||
else
|
||||
{
|
||||
BattleHandleAddTextPrinter(gText_Win, 0x17);
|
||||
BattleHandleAddTextPrinter(gText_Loss, 0x16);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8035D74(u8 taskId)
|
||||
{
|
||||
struct LinkPlayer *linkPlayer;
|
||||
u8 *name;
|
||||
s32 i, palId;
|
||||
|
||||
switch (gTasks[taskId].data[0])
|
||||
{
|
||||
case 0:
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
||||
{
|
||||
for (i = 0; i < BATTLE_BANKS_COUNT; i++)
|
||||
{
|
||||
name = gLinkPlayers[i].name;
|
||||
linkPlayer = &gLinkPlayers[i];
|
||||
|
||||
switch (linkPlayer->lp_field_18)
|
||||
{
|
||||
case 0:
|
||||
BattleHandleAddTextPrinter(name, 0x11);
|
||||
sub_8035AE4(taskId, linkPlayer->lp_field_18, 1, 2, 4);
|
||||
break;
|
||||
case 1:
|
||||
BattleHandleAddTextPrinter(name, 0x12);
|
||||
sub_8035AE4(taskId, linkPlayer->lp_field_18, 2, 2, 4);
|
||||
break;
|
||||
case 2:
|
||||
BattleHandleAddTextPrinter(name, 0x13);
|
||||
sub_8035AE4(taskId, linkPlayer->lp_field_18, 1, 2, 8);
|
||||
break;
|
||||
case 3:
|
||||
BattleHandleAddTextPrinter(name, 0x14);
|
||||
sub_8035AE4(taskId, linkPlayer->lp_field_18, 2, 2, 8);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
u8 playerId = gBattleScripting.multiplayerId;
|
||||
u8 opponentId = playerId ^ BIT_SIDE;
|
||||
u8 opponentId_copy = opponentId;
|
||||
|
||||
if (gLinkPlayers[playerId].lp_field_18 != 0)
|
||||
opponentId = playerId, playerId = opponentId_copy;
|
||||
|
||||
name = gLinkPlayers[playerId].name;
|
||||
BattleHandleAddTextPrinter(name, 0xF);
|
||||
|
||||
name = gLinkPlayers[opponentId].name;
|
||||
BattleHandleAddTextPrinter(name, 0x10);
|
||||
|
||||
sub_8035AE4(taskId, playerId, 1, 2, 7);
|
||||
sub_8035AE4(taskId, opponentId, 2, 2, 7);
|
||||
}
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
case 1:
|
||||
palId = AllocSpritePalette(0x2710);
|
||||
gPlttBufferUnfaded[palId * 16 + 0x10F] = gPlttBufferFaded[palId * 16 + 0x10F] = 0x7FFF;
|
||||
gBattleStruct->field_7D = CreateSprite(&gUnknown_0831A9D0, 111, 80, 0);
|
||||
gBattleStruct->field_7E = CreateSprite(&gUnknown_0831A9E8, 129, 80, 0);
|
||||
gSprites[gBattleStruct->field_7D].invisible = 1;
|
||||
gSprites[gBattleStruct->field_7E].invisible = 1;
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
case 2:
|
||||
if (gTasks[taskId].data[5] != 0)
|
||||
{
|
||||
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 = (Cos2(gTasks[taskId].data[1]) / 32) - 164;
|
||||
gBattle_BG2_X = -(140) - (Sin2(gTasks[taskId].data[2]) / 32);
|
||||
gBattle_BG2_Y = (Cos2(gTasks[taskId].data[2]) / 32) - 164;
|
||||
}
|
||||
|
||||
if (gTasks[taskId].data[2] != 0)
|
||||
{
|
||||
gTasks[taskId].data[2] -= 2;
|
||||
gTasks[taskId].data[1] += 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gTasks[taskId].data[5] != 0)
|
||||
sub_8035C4C();
|
||||
|
||||
PlaySE(SE_W231);
|
||||
DestroyTask(taskId);
|
||||
gSprites[gBattleStruct->field_7D].invisible = 0;
|
||||
gSprites[gBattleStruct->field_7E].invisible = 0;
|
||||
gSprites[gBattleStruct->field_7E].oam.tileNum += 0x40;
|
||||
gSprites[gBattleStruct->field_7D].data[0] = 0;
|
||||
gSprites[gBattleStruct->field_7E].data[0] = 1;
|
||||
gSprites[gBattleStruct->field_7D].data[1] = gSprites[gBattleStruct->field_7D].pos1.x;
|
||||
gSprites[gBattleStruct->field_7E].data[1] = gSprites[gBattleStruct->field_7E].pos1.x;
|
||||
gSprites[gBattleStruct->field_7D].data[2] = 0;
|
||||
gSprites[gBattleStruct->field_7E].data[2] = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void LoadBattleEntryBackground(void)
|
||||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||
{
|
||||
LZDecompressVram(gUnknown_08D778F0, (void*)(VRAM + 0x4000));
|
||||
LZDecompressVram(gUnknown_08D77B0C, (void*)(VRAM + 0x10000));
|
||||
LoadCompressedPalette(gUnknown_08D77AE4, 0x60, 0x20);
|
||||
SetBgAttribute(1, BG_CTRL_ATTR_MAPBASEINDEX, 1);
|
||||
SetGpuReg(REG_OFFSET_BG1CNT, 0x5C04);
|
||||
CopyToBgTilemapBuffer(1, gUnknown_08D779D8, 0, 0);
|
||||
CopyToBgTilemapBuffer(2, gUnknown_08D779D8, 0, 0);
|
||||
CopyBgTilemapBufferToVram(1);
|
||||
CopyBgTilemapBufferToVram(2);
|
||||
SetGpuReg(REG_OFFSET_WININ, 0x36);
|
||||
SetGpuReg(REG_OFFSET_WINOUT, 0x36);
|
||||
gBattle_BG1_Y = 0xFF5C;
|
||||
gBattle_BG2_Y = 0xFF5C;
|
||||
LoadCompressedObjectPicUsingHeap(&gUnknown_0831AA00);
|
||||
}
|
||||
else if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_EREADER_TRAINER))
|
||||
{
|
||||
if (!(gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) || gPartnerTrainerId == STEVEN_PARTNER_ID)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainAnimTiles_Building, (void*)(VRAM + 0x4000));
|
||||
LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void*)(VRAM + 0xE000));
|
||||
}
|
||||
else
|
||||
{
|
||||
SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 2);
|
||||
SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 2);
|
||||
CopyToBgTilemapBuffer(1, gUnknown_08D857A8, 0, 0);
|
||||
CopyToBgTilemapBuffer(2, gUnknown_08D85A1C, 0, 0);
|
||||
CopyBgTilemapBufferToVram(1);
|
||||
CopyBgTilemapBufferToVram(2);
|
||||
}
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_GROUDON)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainAnimTiles_Cave, (void*)(VRAM + 0x4000));
|
||||
LZDecompressVram(gBattleTerrainAnimTilemap_Cave, (void*)(VRAM + 0xE000));
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainAnimTiles_Underwater, (void*)(VRAM + 0x4000));
|
||||
LZDecompressVram(gBattleTerrainAnimTilemap_Underwater, (void*)(VRAM + 0xE000));
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_RAYQUAZA)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainAnimTiles_Rayquaza, (void*)(VRAM + 0x4000));
|
||||
LZDecompressVram(gBattleTerrainAnimTilemap_Rayquaza, (void*)(VRAM + 0xE000));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
|
||||
{
|
||||
u8 trainerClass = gTrainers[gTrainerBattleOpponent_A].trainerClass;
|
||||
if (trainerClass == TRAINER_CLASS_LEADER)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainAnimTiles_Building, (void*)(VRAM + 0x4000));
|
||||
LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void*)(VRAM + 0xE000));
|
||||
return;
|
||||
}
|
||||
else if (trainerClass == TRAINER_CLASS_CHAMPION)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainAnimTiles_Building, (void*)(VRAM + 0x4000));
|
||||
LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void*)(VRAM + 0xE000));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (GetCurrentMapBattleScene() == MAP_BATTLE_SCENE_NORMAL)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTable[gBattleTerrain].entryTileset, (void*)(VRAM + 0x4000));
|
||||
LZDecompressVram(gBattleTerrainTable[gBattleTerrain].entryTilemap, (void*)(VRAM + 0xE000));
|
||||
}
|
||||
else
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainAnimTiles_Building, (void*)(VRAM + 0x4000));
|
||||
LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void*)(VRAM + 0xE000));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool8 LoadChosenBattleElement(u8 caseId)
|
||||
{
|
||||
bool8 ret = FALSE;
|
||||
|
||||
switch (caseId)
|
||||
{
|
||||
case 0:
|
||||
LZDecompressVram(gBattleTextboxTiles, (void*)(VRAM));
|
||||
break;
|
||||
case 1:
|
||||
CopyToBgTilemapBuffer(0, gBattleTextboxTilemap, 0, 0);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
break;
|
||||
case 2:
|
||||
LoadCompressedPalette(gBattleTextboxPalette, 0, 0x40);
|
||||
break;
|
||||
case 3:
|
||||
if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_EREADER_TRAINER))
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000));
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_GROUDON)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTiles_Cave, (void*)(VRAM + 0x8000));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
|
||||
{
|
||||
u8 trainerClass = gTrainers[gTrainerBattleOpponent_A].trainerClass;
|
||||
if (trainerClass == TRAINER_CLASS_LEADER)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000));
|
||||
break;
|
||||
}
|
||||
else if (trainerClass == TRAINER_CLASS_CHAMPION)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch (GetCurrentMapBattleScene())
|
||||
{
|
||||
default:
|
||||
case MAP_BATTLE_SCENE_NORMAL:
|
||||
LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tileset, (void*)(VRAM + 0x8000));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_GYM:
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_MAGMA:
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_AQUA:
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_SIDNEY:
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_PHOEBE:
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_GLACIA:
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_DRAKE:
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_FRONTIER:
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000));
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_EREADER_TRAINER))
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000));
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON)
|
||||
{
|
||||
if (gGameVersion == VERSION_RUBY)
|
||||
LZDecompressVram(gBattleTerrainTilemap_Cave, (void*)(VRAM + 0xD000));
|
||||
else
|
||||
LZDecompressVram(gBattleTerrainTilemap_Water, (void*)(VRAM + 0xD000));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
|
||||
{
|
||||
u8 trainerClass = gTrainers[gTrainerBattleOpponent_A].trainerClass;
|
||||
if (trainerClass == TRAINER_CLASS_LEADER)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000));
|
||||
break;
|
||||
}
|
||||
else if (trainerClass == TRAINER_CLASS_CHAMPION)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch (GetCurrentMapBattleScene())
|
||||
{
|
||||
default:
|
||||
case MAP_BATTLE_SCENE_NORMAL:
|
||||
LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tilemap, (void*)(VRAM + 0xD000));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_GYM:
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_MAGMA:
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_AQUA:
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_SIDNEY:
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_PHOEBE:
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_GLACIA:
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_DRAKE:
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_FRONTIER:
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000));
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_EREADER_TRAINER))
|
||||
{
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60);
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON)
|
||||
{
|
||||
if (gGameVersion == VERSION_RUBY)
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Groudon, 0x20, 0x60);
|
||||
else
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Kyogre, 0x20, 0x60);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
|
||||
{
|
||||
u8 trainerClass = gTrainers[gTrainerBattleOpponent_A].trainerClass;
|
||||
if (trainerClass == TRAINER_CLASS_LEADER)
|
||||
{
|
||||
LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, 0x20, 0x60);
|
||||
break;
|
||||
}
|
||||
else if (trainerClass == TRAINER_CLASS_CHAMPION)
|
||||
{
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumWallace, 0x20, 0x60);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch (GetCurrentMapBattleScene())
|
||||
{
|
||||
default:
|
||||
case MAP_BATTLE_SCENE_NORMAL:
|
||||
LoadCompressedPalette(gBattleTerrainTable[gBattleTerrain].palette, 0x20, 0x60);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_GYM:
|
||||
LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, 0x20, 0x60);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_MAGMA:
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, 0x20, 0x60);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_AQUA:
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, 0x20, 0x60);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_SIDNEY:
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, 0x20, 0x60);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_PHOEBE:
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, 0x20, 0x60);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_GLACIA:
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, 0x20, 0x60);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_DRAKE:
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, 0x20, 0x60);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_FRONTIER:
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
ApplyPlayerChosenFrameToBattleMenu();
|
||||
break;
|
||||
default:
|
||||
ret = TRUE;
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -234,7 +234,7 @@ static void (*const sPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
|
||||
static const u8 sTargetIdentities[] = {IDENTITY_PLAYER_MON1, IDENTITY_PLAYER_MON2, IDENTITY_OPPONENT_MON2, IDENTITY_OPPONENT_MON1};
|
||||
|
||||
// unknown unused data
|
||||
static const u8 gUnknown_0831C5FC[] = {0x48, 0x48, 0x20, 0x5a, 0x50, 0x50, 0x50, 0x58};
|
||||
static const u8 sUnknown_0831C5FC[] = {0x48, 0x48, 0x20, 0x5a, 0x50, 0x50, 0x50, 0x58};
|
||||
|
||||
void nullsub_21(void)
|
||||
{
|
||||
|
||||
@@ -198,7 +198,7 @@ static void (*const sPlayerPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
|
||||
};
|
||||
|
||||
// unknown unused data
|
||||
static const u8 gUnknown_08617254[] =
|
||||
static const u8 sUnknown_08617254[] =
|
||||
{
|
||||
0x83, 0x4d, 0xf3, 0x5f, 0x6f, 0x4f, 0xeb, 0x3e,
|
||||
0x67, 0x2e, 0x10, 0x46, 0x8c, 0x3d, 0x28, 0x35,
|
||||
|
||||
@@ -1366,7 +1366,7 @@ static const u16 sUnknownMoveTable[] =
|
||||
|
||||
static const u8 sDummyWeirdStatusString[] = {EOS, EOS, EOS, EOS, EOS, EOS, EOS, EOS, 0, 0};
|
||||
|
||||
static const u8 gUnknown_085CD42C[] =
|
||||
static const u8 sUnknown_085CD42C[] =
|
||||
{
|
||||
0xFF, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0xF, 0x6, 0x0, 0x0, 0xFF, 0x1,
|
||||
0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0xF, 0x6, 0x0, 0x0, 0xEE, 0x1, 0x0, 0x1, 0x0,
|
||||
@@ -1391,7 +1391,7 @@ static const u8 gUnknown_085CD42C[] =
|
||||
0x6, 0x0, 0x0, 0x0, 0x1, 0xFF, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x6, 0x0, 0x0
|
||||
};
|
||||
|
||||
static const u8 gUnknown_085CD54C[] =
|
||||
static const u8 sUnknown_085CD54C[] =
|
||||
{
|
||||
0xFF, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0xF, 0x6, 0x0, 0x0, 0xFF, 0x1,
|
||||
0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0xF, 0x6, 0x0, 0x0, 0xEE, 0x1, 0x0, 0x1, 0x0,
|
||||
@@ -1418,7 +1418,7 @@ static const u8 gUnknown_085CD54C[] =
|
||||
|
||||
static const u8 * const gUnknown_085CD660[] =
|
||||
{
|
||||
gUnknown_085CD42C, gUnknown_085CD54C
|
||||
sUnknown_085CD42C, sUnknown_085CD54C
|
||||
};
|
||||
|
||||
static const u8 sRecordedBattleTextSpeeds[] = {8, 4, 1, 0};
|
||||
|
||||
@@ -35,9 +35,9 @@ static void berry_fix_bg_hide(void);
|
||||
|
||||
// .rodata
|
||||
|
||||
static const u8 gUnknown_08617E78[] = _("Berry Program Update");
|
||||
static const u8 gUnknown_08617E8D[] = _("Ruby/Sapphire");
|
||||
static const u8 gUnknown_08617E9B[] = _("Emerald");
|
||||
static const u8 sUnknown_08617E78[] = _("Berry Program Update");
|
||||
static const u8 sUnknown_08617E8D[] = _("Ruby/Sapphire");
|
||||
static const u8 sUnknown_08617E9B[] = _("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.");
|
||||
@@ -62,15 +62,15 @@ static const struct WindowTemplate gUnknown_08618110[] = {
|
||||
{-1}
|
||||
};
|
||||
|
||||
static const u16 gUnknown_08618138[] = {
|
||||
static const u16 sUnknown_08618138[] = {
|
||||
0x7fff, 0x7fff, 0x318c, 0x675a,
|
||||
0x043c, 0x3aff, 0x0664, 0x4bd2,
|
||||
0x6546, 0x7b14, 0x7fff, 0x318c,
|
||||
0x675a, 0x0000, 0x0000, 0x0000
|
||||
};
|
||||
|
||||
static const u8 gUnknown_08618158[] = {10, 11, 12};
|
||||
static const u8 gUnknown_0861815B[] = { 0, 10, 13};
|
||||
static const u8 sUnknown_08618158[] = {10, 11, 12};
|
||||
static const u8 sUnknown_0861815B[] = { 0, 10, 13};
|
||||
|
||||
static const u8 *const gUnknown_08618160[] = {
|
||||
Unknown_08617F07,
|
||||
@@ -243,21 +243,21 @@ static void berry_fix_gpu_set(void)
|
||||
InitWindows(gUnknown_08618110);
|
||||
DeactivateAllTextPrinters();
|
||||
|
||||
DmaCopy32(3, gUnknown_08618138, BG_PLTT + 0x1E0, 0x20);
|
||||
DmaCopy32(3, sUnknown_08618138, BG_PLTT + 0x1E0, 0x20);
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP);
|
||||
FillWindowPixelBuffer(2, 0);
|
||||
FillWindowPixelBuffer(3, 0);
|
||||
FillWindowPixelBuffer(0, 0xAA);
|
||||
|
||||
// This block is a meme among memes
|
||||
width = (0x78 - GetStringWidth(0, gUnknown_08617E9B, 0)) / 2;
|
||||
box_print(2, 0, width, 3, gUnknown_0861815B, -1, gUnknown_08617E9B);
|
||||
width = (s32)(0x78 - GetStringWidth(0, gUnknown_08617E9B, 0)) / 2 + 0x78;
|
||||
box_print(2, 0, width, 3, gUnknown_0861815B, -1, gUnknown_08617E8D);
|
||||
width = (0x70 - GetStringWidth(0, gUnknown_08617E8D, 0)) / 2;
|
||||
box_print(3, 0, width, 0, gUnknown_0861815B, -1, gUnknown_08617E8D);
|
||||
width = (0xd0 - GetStringWidth(1, gUnknown_08617E78, 0)) / 2;
|
||||
box_print(0, 1, width, 2, gUnknown_08618158, -1, gUnknown_08617E78);
|
||||
width = (0x78 - GetStringWidth(0, sUnknown_08617E9B, 0)) / 2;
|
||||
box_print(2, 0, width, 3, sUnknown_0861815B, -1, sUnknown_08617E9B);
|
||||
width = (s32)(0x78 - GetStringWidth(0, sUnknown_08617E9B, 0)) / 2 + 0x78;
|
||||
box_print(2, 0, width, 3, sUnknown_0861815B, -1, sUnknown_08617E8D);
|
||||
width = (0x70 - GetStringWidth(0, sUnknown_08617E8D, 0)) / 2;
|
||||
box_print(3, 0, width, 0, sUnknown_0861815B, -1, sUnknown_08617E8D);
|
||||
width = (0xd0 - GetStringWidth(1, sUnknown_08617E78, 0)) / 2;
|
||||
box_print(0, 1, width, 2, sUnknown_08618158, -1, sUnknown_08617E78);
|
||||
|
||||
CopyWindowToVram(2, 2);
|
||||
CopyWindowToVram(3, 2);
|
||||
@@ -346,7 +346,7 @@ __attribute__((naked)) static void berry_fix_gpu_set(void)
|
||||
"\tldr r0, =gUnknown_08618110\n"
|
||||
"\tbl InitWindows\n"
|
||||
"\tbl DeactivateAllTextPrinters\n"
|
||||
"\tldr r0, =gUnknown_08618138\n"
|
||||
"\tldr r0, =sUnknown_08618138\n"
|
||||
"\tstr r0, [r4]\n"
|
||||
"\tldr r0, =0x050001e0\n"
|
||||
"\tstr r0, [r4, 0x4]\n"
|
||||
@@ -365,7 +365,7 @@ __attribute__((naked)) static void berry_fix_gpu_set(void)
|
||||
"\tmovs r0, 0\n"
|
||||
"\tmovs r1, 0xAA\n"
|
||||
"\tbl FillWindowPixelBuffer\n"
|
||||
"\tldr r5, =gUnknown_08617E9B\n"
|
||||
"\tldr r5, =sUnknown_08617E9B\n"
|
||||
"\tmovs r0, 0\n"
|
||||
"\tadds r1, r5, 0\n"
|
||||
"\tmovs r2, 0\n"
|
||||
@@ -378,7 +378,7 @@ __attribute__((naked)) static void berry_fix_gpu_set(void)
|
||||
"\tasrs r0, 1\n"
|
||||
"\tlsls r2, r0, 24\n"
|
||||
"\tlsrs r2, 24\n"
|
||||
"\tldr r6, =gUnknown_0861815B\n"
|
||||
"\tldr r6, =sUnknown_0861815B\n"
|
||||
"\tstr r6, [sp]\n"
|
||||
"\tmovs r0, 0x1\n"
|
||||
"\tnegs r0, r0\n"
|
||||
@@ -389,7 +389,7 @@ __attribute__((naked)) static void berry_fix_gpu_set(void)
|
||||
"\tmovs r1, 0\n"
|
||||
"\tmovs r3, 0x3\n"
|
||||
"\tbl box_print\n"
|
||||
"\tldr r5, =gUnknown_08617E8D\n"
|
||||
"\tldr r5, =sUnknown_08617E8D\n"
|
||||
"\tmovs r0, 0\n"
|
||||
"\tadds r1, r5, 0\n"
|
||||
"\tmovs r2, 0\n"
|
||||
@@ -431,7 +431,7 @@ __attribute__((naked)) static void berry_fix_gpu_set(void)
|
||||
"\tmovs r1, 0\n"
|
||||
"\tmovs r3, 0\n"
|
||||
"\tbl box_print\n"
|
||||
"\tldr r4, =gUnknown_08617E78\n"
|
||||
"\tldr r4, =sUnknown_08617E78\n"
|
||||
"\tmovs r0, 0x1\n"
|
||||
"\tadds r1, r4, 0\n"
|
||||
"\tmovs r2, 0\n"
|
||||
@@ -444,7 +444,7 @@ __attribute__((naked)) static void berry_fix_gpu_set(void)
|
||||
"\tasrs r0, 1\n"
|
||||
"\tlsls r2, r0, 24\n"
|
||||
"\tlsrs r2, 24\n"
|
||||
"\tldr r0, =gUnknown_08618158\n"
|
||||
"\tldr r0, =sUnknown_08618158\n"
|
||||
"\tstr r0, [sp]\n"
|
||||
"\tmov r0, r8\n"
|
||||
"\tstr r0, [sp, 0x4]\n"
|
||||
@@ -496,7 +496,7 @@ static void berry_fix_text_print(int scene)
|
||||
{
|
||||
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32);
|
||||
FillWindowPixelBuffer(1, 0xAA);
|
||||
box_print(1, 1, 0, 0, gUnknown_08618158, -1, gUnknown_08618160[scene]);
|
||||
box_print(1, 1, 0, 0, sUnknown_08618158, -1, gUnknown_08618160[scene]);
|
||||
PutWindowTilemap(1);
|
||||
CopyWindowToVram(1, 2);
|
||||
switch (scene)
|
||||
|
||||
@@ -48,9 +48,9 @@ extern struct SpriteTemplate gUnknown_0202499C;
|
||||
extern void (*gFieldCallback)(void);
|
||||
|
||||
extern const struct CompressedSpriteSheet gMonFrontPicTable[];
|
||||
extern const u8 gUnknown_08C00000[];
|
||||
extern const u8 gUnknown_08C00524[];
|
||||
extern const u8 gUnknown_08C004E0[];
|
||||
extern const u8 gBattleTextboxTiles[];
|
||||
extern const u8 gBattleTextboxTilemap[];
|
||||
extern const u8 gBattleTextboxPalette[];
|
||||
extern const u16 gUnknown_08DD7300[]; // palette, gameboy advance
|
||||
extern const u32 gUnknown_08DD7360[]; // tileset gameboy advance
|
||||
extern const u32 gUnknown_08331F60[]; // tilemap gameboy circle
|
||||
@@ -522,9 +522,9 @@ static void CB2_EggHatch_0(void)
|
||||
gMain.state++;
|
||||
break;
|
||||
case 2:
|
||||
copy_decompressed_tile_data_to_vram_autofree(0, gUnknown_08C00000, 0, 0, 0);
|
||||
CopyToBgTilemapBuffer(0, gUnknown_08C00524, 0, 0);
|
||||
LoadCompressedPalette(gUnknown_08C004E0, 0, 0x20);
|
||||
copy_decompressed_tile_data_to_vram_autofree(0, gBattleTextboxTiles, 0, 0, 0);
|
||||
CopyToBgTilemapBuffer(0, gBattleTextboxTilemap, 0, 0);
|
||||
LoadCompressedPalette(gBattleTextboxPalette, 0, 0x20);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 3:
|
||||
|
||||
@@ -187,9 +187,9 @@ static const struct BgTemplate sHof_BgTemplates[] =
|
||||
|
||||
static const struct WindowTemplate sHof_WindowTemplate = {0, 2, 2, 0xE, 6, 0xE, 1};
|
||||
|
||||
static const u8 gUnknown_085E5388[] = {0, 1, 2, 0};
|
||||
static const u8 sUnknown_085E5388[] = {0, 1, 2, 0};
|
||||
|
||||
static const u8 gUnknown_085E538C[] = {0, 2, 3, 0, 4, 5, 0, 0};
|
||||
static const u8 sUnknown_085E538C[] = {0, 2, 3, 0, 4, 5, 0, 0};
|
||||
|
||||
static const struct CompressedSpriteSheet sHallOfFame_ConfettiSpriteSheet =
|
||||
{
|
||||
@@ -1137,7 +1137,7 @@ static void HallOfFame_PrintWelcomeText(u8 unusedPossiblyWindowId, u8 unused2)
|
||||
{
|
||||
FillWindowPixelBuffer(0, 0);
|
||||
PutWindowTilemap(0);
|
||||
box_print(0, 1, GetStringCenterAlignXOffset(1, gText_WelcomeToHOF, 0xD0), 1, gUnknown_085E5388, 0, gText_WelcomeToHOF);
|
||||
box_print(0, 1, GetStringCenterAlignXOffset(1, gText_WelcomeToHOF, 0xD0), 1, sUnknown_085E5388, 0, gText_WelcomeToHOF);
|
||||
CopyWindowToVram(0, 3);
|
||||
}
|
||||
|
||||
@@ -1173,7 +1173,7 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u
|
||||
*(stringPtr)++ = CHAR_QUESTION_MARK;
|
||||
}
|
||||
stringPtr[0] = EOS;
|
||||
box_print(0, 1, 0x10, 1, gUnknown_085E5388, -1, text);
|
||||
box_print(0, 1, 0x10, 1, sUnknown_085E5388, -1, text);
|
||||
}
|
||||
|
||||
// nick, species names, gender and level
|
||||
@@ -1182,13 +1182,13 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u
|
||||
if (currMon->species == SPECIES_EGG)
|
||||
{
|
||||
width = GetStringCenterAlignXOffset(1, text, 0xD0);
|
||||
box_print(0, 1, width, 1, gUnknown_085E5388, -1, text);
|
||||
box_print(0, 1, width, 1, sUnknown_085E5388, -1, text);
|
||||
CopyWindowToVram(0, 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
width = GetStringRightAlignXOffset(1, text, 0x80);
|
||||
box_print(0, 1, width, 1, gUnknown_085E5388, -1, text);
|
||||
box_print(0, 1, width, 1, sUnknown_085E5388, -1, text);
|
||||
|
||||
text[0] = CHAR_SLASH;
|
||||
stringPtr = StringCopy(text + 1, gSpeciesNames[currMon->species]);
|
||||
@@ -1209,15 +1209,15 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u
|
||||
}
|
||||
|
||||
stringPtr[0] = EOS;
|
||||
box_print(0, 1, 0x80, 1, gUnknown_085E5388, -1, text);
|
||||
box_print(0, 1, 0x80, 1, sUnknown_085E5388, -1, text);
|
||||
|
||||
stringPtr = StringCopy(text, gText_Level);
|
||||
ConvertIntToDecimalStringN(stringPtr, currMon->lvl, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
box_print(0, 1, 0x24, 0x11, gUnknown_085E5388, -1, text);
|
||||
box_print(0, 1, 0x24, 0x11, sUnknown_085E5388, -1, text);
|
||||
|
||||
stringPtr = StringCopy(text, gText_IDNumber);
|
||||
ConvertIntToDecimalStringN(stringPtr, (u16)(currMon->tid), STR_CONV_MODE_LEADING_ZEROS, 5);
|
||||
box_print(0, 1, 0x68, 0x11, gUnknown_085E5388, -1, text);
|
||||
box_print(0, 1, 0x68, 0x11, sUnknown_085E5388, -1, text);
|
||||
|
||||
CopyWindowToVram(0, 3);
|
||||
}
|
||||
@@ -1232,13 +1232,13 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
|
||||
FillWindowPixelBuffer(1, 0x11);
|
||||
PutWindowTilemap(1);
|
||||
SetWindowBorderStyle(1, FALSE, 0x21D, 0xD);
|
||||
box_print(1, 1, 0, 1, gUnknown_085E538C, -1, gText_Name);
|
||||
box_print(1, 1, 0, 1, sUnknown_085E538C, -1, gText_Name);
|
||||
|
||||
width = GetStringRightAlignXOffset(1, gSaveBlock2Ptr->playerName, 0x70);
|
||||
box_print(1, 1, width, 1, gUnknown_085E538C, -1, gSaveBlock2Ptr->playerName);
|
||||
box_print(1, 1, width, 1, sUnknown_085E538C, -1, gSaveBlock2Ptr->playerName);
|
||||
|
||||
trainerId = (gSaveBlock2Ptr->playerTrainerId[0]) | (gSaveBlock2Ptr->playerTrainerId[1] << 8);
|
||||
box_print(1, 1, 0, 0x11, gUnknown_085E538C, 0, gText_IDNumber);
|
||||
box_print(1, 1, 0, 0x11, sUnknown_085E538C, 0, gText_IDNumber);
|
||||
text[0] = (trainerId % 100000) / 10000 + CHAR_0;
|
||||
text[1] = (trainerId % 10000) / 1000 + CHAR_0;
|
||||
text[2] = (trainerId % 1000) / 100 + CHAR_0;
|
||||
@@ -1246,9 +1246,9 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
|
||||
text[4] = (trainerId % 10) / 1 + CHAR_0;
|
||||
text[5] = EOS;
|
||||
width = GetStringRightAlignXOffset(1, text, 0x70);
|
||||
box_print(1, 1, width, 0x11, gUnknown_085E538C, -1, text);
|
||||
box_print(1, 1, width, 0x11, sUnknown_085E538C, -1, text);
|
||||
|
||||
box_print(1, 1, 0, 0x21, gUnknown_085E538C, -1, gText_MainMenuTime);
|
||||
box_print(1, 1, 0, 0x21, sUnknown_085E538C, -1, gText_MainMenuTime);
|
||||
text[0] = (gSaveBlock2Ptr->playTimeHours / 100) + CHAR_0;
|
||||
text[1] = (gSaveBlock2Ptr->playTimeHours % 100) / 10 + CHAR_0;
|
||||
text[2] = (gSaveBlock2Ptr->playTimeHours % 10) + CHAR_0;
|
||||
@@ -1264,7 +1264,7 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
|
||||
text[6] = EOS;
|
||||
|
||||
width = GetStringRightAlignXOffset(1, text, 0x70);
|
||||
box_print(1, 1, width, 0x21, gUnknown_085E538C, -1, text);
|
||||
box_print(1, 1, width, 0x21, sUnknown_085E538C, -1, text);
|
||||
|
||||
CopyWindowToVram(1, 3);
|
||||
}
|
||||
|
||||
@@ -29,10 +29,10 @@ static u8 sub_818E258(const u8 *);
|
||||
|
||||
extern const u8 gText_Lady2[];
|
||||
|
||||
static const u16 gUnknown_0860B074[] = {
|
||||
static const u16 sUnknown_0860B074[] = {
|
||||
0x62, 0xcb, 0xdc, 0xcc, 0xd1
|
||||
};
|
||||
static const u16 gUnknown_0860B07E[] = {
|
||||
static const u16 sUnknown_0860B07E[] = {
|
||||
0x1a, 0x14, 0x0a
|
||||
};
|
||||
|
||||
@@ -119,11 +119,11 @@ static const u16 *const gUnknown_0860B1A4[] = {
|
||||
Unknown_0860B192
|
||||
};
|
||||
|
||||
static const u16 gUnknown_0860B1E4[] = {
|
||||
static const u16 sUnknown_0860B1E4[] = {
|
||||
0x0210, 0x0400, 0x0212, 0x1a26, 0x0208, 0x045d, 0x040a, 0x0411, 0x0464, 0x020e, 0x1a25, 0x181b, 0x1a24, 0x0420, 0x0410, 0x0400
|
||||
};
|
||||
|
||||
static const u16 gUnknown_0860B204[] = {
|
||||
static const u16 sUnknown_0860B204[] = {
|
||||
0x007b, 0x007f, 0x0081, 0x0023, 0x0023, 0x0023, 0x00a5, 0x00a7, 0x00a6, 0x000b, 0x012f, 0x006b, 0x006d, 0x0044, 0x0044, 0x000c
|
||||
};
|
||||
|
||||
@@ -176,7 +176,7 @@ static const u16 *const gUnknown_0860B2EC[] = {
|
||||
Unknown_0860B2D6
|
||||
};
|
||||
|
||||
static const u16 gUnknown_0860B304[] = {
|
||||
static const u16 sUnknown_0860B304[] = {
|
||||
0x0b, 0x6e, 0x40, 0x6f, 0x44, 0x47
|
||||
};
|
||||
|
||||
@@ -218,7 +218,7 @@ static const u8 *const gUnknown_0860B338[] = {
|
||||
gUnknown_085EADE7
|
||||
};
|
||||
|
||||
static const u16 gUnknown_0860B34C[] = {
|
||||
static const u16 sUnknown_0860B34C[] = {
|
||||
0x0120, 0x013b, 0x011e, 0x013d, 0x0019
|
||||
};
|
||||
|
||||
@@ -237,11 +237,11 @@ void sub_818D9C0(void)
|
||||
{
|
||||
LilycoveLady *lilycoveLady;
|
||||
|
||||
VarSet(VAR_0x4010, gUnknown_0860B07E[GetLilycoveLadyId()]);
|
||||
VarSet(VAR_0x4010, sUnknown_0860B07E[GetLilycoveLadyId()]);
|
||||
if (GetLilycoveLadyId() == LILYCOVE_LADY_CONTEST)
|
||||
{
|
||||
lilycoveLady = &gSaveBlock1Ptr->lilycoveLady;
|
||||
VarSet(VAR_0x4011, gUnknown_0860B074[lilycoveLady->contest.category]);
|
||||
VarSet(VAR_0x4011, sUnknown_0860B074[lilycoveLady->contest.category]);
|
||||
gSpecialVar_Result = TRUE;
|
||||
}
|
||||
else
|
||||
@@ -481,7 +481,7 @@ u16 sub_818DEA0(void)
|
||||
u16 itemId;
|
||||
|
||||
gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour;
|
||||
itemId = gUnknown_0860B304[gUnknown_0203CD64->unk_00c];
|
||||
itemId = sUnknown_0860B304[gUnknown_0203CD64->unk_00c];
|
||||
sub_818DE88(itemId);
|
||||
gUnknown_0203CD64->phase = 2;
|
||||
return itemId;
|
||||
@@ -508,8 +508,8 @@ static void sub_818DF00(void)
|
||||
{
|
||||
gUnknown_0203CD68->unk_002[i] = gUnknown_0860B1A4[v0][i];
|
||||
}
|
||||
gUnknown_0203CD68->unk_014 = gUnknown_0860B1E4[v0];
|
||||
gUnknown_0203CD68->itemId = gUnknown_0860B204[v0];
|
||||
gUnknown_0203CD68->unk_014 = sUnknown_0860B1E4[v0];
|
||||
gUnknown_0203CD68->itemId = sUnknown_0860B204[v0];
|
||||
gUnknown_0203CD68->unk_02b = v0;
|
||||
gUnknown_0203CD68->playerName[0] = EOS;
|
||||
}
|
||||
@@ -581,13 +581,13 @@ u8 sub_818E06C(void)
|
||||
{
|
||||
i = 0;
|
||||
}
|
||||
} while (sub_811F8D8(gUnknown_0860B1E4[i]) == 0);
|
||||
} while (sub_811F8D8(sUnknown_0860B1E4[i]) == 0);
|
||||
for (j = 0; j < 9; j ++)
|
||||
{
|
||||
quiz->unk_002[j] = gUnknown_0860B1A4[i][j];
|
||||
}
|
||||
quiz->unk_014 = gUnknown_0860B1E4[i];
|
||||
quiz->itemId = gUnknown_0860B204[i];
|
||||
quiz->unk_014 = sUnknown_0860B1E4[i];
|
||||
quiz->itemId = sUnknown_0860B204[i];
|
||||
quiz->unk_02b = i;
|
||||
quiz->playerName[0] = EOS;
|
||||
}
|
||||
@@ -1091,7 +1091,7 @@ void sub_818E940(void)
|
||||
void sub_818E960(void)
|
||||
{
|
||||
gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest;
|
||||
gSpecialVar_0x8005 = gUnknown_0860B34C[gUnknown_0203CD6C->category];
|
||||
gSpecialVar_0x8005 = sUnknown_0860B34C[gUnknown_0203CD6C->category];
|
||||
}
|
||||
|
||||
u8 sub_818E990(void)
|
||||
|
||||
@@ -65,7 +65,7 @@ static const struct PaletteStructTemplate gDummyPaletteStructTemplate = {
|
||||
.uid = 0xFFFF,
|
||||
.pst_field_B_5 = 1
|
||||
};
|
||||
static const u8 gUnknown_0852489C[] = {
|
||||
static const u8 sUnknown_0852489C[] = {
|
||||
0, 0, 0, 0, 0,
|
||||
5, 5, 5, 5, 5,
|
||||
11, 11, 11, 11, 11,
|
||||
@@ -849,13 +849,13 @@ void TintPalette_GrayScale(u16 *palette, u16 count)
|
||||
r = *palette & 0x1F;
|
||||
g = (*palette >> 5) & 0x1F;
|
||||
b = (*palette >> 10) & 0x1F;
|
||||
|
||||
|
||||
r *= 0x4C;
|
||||
r += g * 0x97;
|
||||
r += b * 0x1D;
|
||||
|
||||
|
||||
gray = r >> 8;
|
||||
|
||||
|
||||
*palette++ = gray << 10 | gray << 5 | gray;
|
||||
}
|
||||
return;
|
||||
@@ -874,18 +874,18 @@ void TintPalette_GrayScale2(u16 *palette, u16 count)
|
||||
r = *palette & 0x1F;
|
||||
g = (*palette >> 5) & 0x1F;
|
||||
b = (*palette >> 10) & 0x1F;
|
||||
|
||||
|
||||
r *= 0x4C;
|
||||
r += g * 0x97;
|
||||
r += b * 0x1D;
|
||||
|
||||
|
||||
gray = r >> 8;
|
||||
|
||||
|
||||
if ((u32)gray > 0x1F)
|
||||
gray = 0x1F;
|
||||
|
||||
gray = gUnknown_0852489C[gray];
|
||||
|
||||
|
||||
gray = sUnknown_0852489C[gray];
|
||||
|
||||
*palette++ = gray << 10 | gray << 5 | gray;
|
||||
}
|
||||
return;
|
||||
@@ -902,31 +902,31 @@ void TintPalette_SepiaTone(u16 *palette, u16 count)
|
||||
s8 r2;
|
||||
s8 g2;
|
||||
s8 b2;
|
||||
|
||||
|
||||
int i;
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
r = *palette & 0x1F;
|
||||
g = (*palette >> 5) & 0x1F;
|
||||
b = (*palette >> 10) & 0x1F;
|
||||
|
||||
|
||||
r *= 0x4C;
|
||||
r += g * 0x97;
|
||||
r += b * 0x1D;
|
||||
|
||||
|
||||
gray = (s32)(r >> 8);
|
||||
|
||||
|
||||
sepia = (gray * 0x133);
|
||||
|
||||
|
||||
r2 = (u16)sepia >> 8;
|
||||
|
||||
|
||||
g2 = gray;
|
||||
|
||||
|
||||
b2 = (gray * 15);
|
||||
|
||||
|
||||
if (r2 > 0x1F)
|
||||
r2 = 0x1F;
|
||||
|
||||
|
||||
*palette++ = b2 << 10 | g2 << 5 | r2;
|
||||
}
|
||||
return;
|
||||
@@ -1011,28 +1011,28 @@ void sub_80A2BAC(u16 *palette, u16 count, u16 a3, u16 a4, u16 a5)
|
||||
r = *palette & 0x1F;
|
||||
g = (*palette >> 5) & 0x1F;
|
||||
b = (*palette >> 10) & 0x1F;
|
||||
|
||||
|
||||
r *= 0x4C;
|
||||
r += g * 0x97;
|
||||
r += b * 0x1D;
|
||||
|
||||
|
||||
gray = r >> 8;
|
||||
|
||||
|
||||
r2 = (u16)(gray * a3) >> 8;
|
||||
|
||||
|
||||
g2 = (u16)(gray * a4) >> 8;
|
||||
|
||||
|
||||
b2 = (u16)(gray * a5) >> 8;
|
||||
|
||||
|
||||
if (r2 > 0x1F)
|
||||
r2 = 0x1F;
|
||||
|
||||
|
||||
if (g2 > 0x1F)
|
||||
g2 = 0x1F;
|
||||
|
||||
|
||||
if (b2 > 0x1F)
|
||||
b2 = 0x1F;
|
||||
|
||||
|
||||
*palette++ = b2 << 10 | g2 << 5 | r2;
|
||||
}
|
||||
return;
|
||||
|
||||
@@ -239,9 +239,9 @@ static const u8 sRegionMapFrameTilemapLZ[] = INCBIN_U8("graphics/pokenav/map_fra
|
||||
|
||||
static const u16 Unknown_085A1D48[] = INCBIN_U16("graphics/pokenav/fly_target_icons.gbapal");
|
||||
|
||||
static const u8 gUnknown_085A1D68[] = INCBIN_U8("graphics/pokenav/fly_target_icons.4bpp.lz");
|
||||
static const u8 sUnknown_085A1D68[] = INCBIN_U8("graphics/pokenav/fly_target_icons.4bpp.lz");
|
||||
|
||||
static const u8 gUnknown_085A1E3C[][3] = {
|
||||
static const u8 sUnknown_085A1E3C[][3] = {
|
||||
{MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 1},
|
||||
{MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), 14},
|
||||
{MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), 15},
|
||||
@@ -326,7 +326,7 @@ static const struct SpritePalette gUnknown_085A1F10 = {
|
||||
Unknown_085A1D48, 2
|
||||
};
|
||||
|
||||
static const u16 gUnknown_085A1F18[][2] = {
|
||||
static const u16 sUnknown_085A1F18[][2] = {
|
||||
{FLAG_UNLOCK_BATTLE_FRONTIER, MAPSEC_BATTLE_FRONTIER},
|
||||
{-1, MAPSEC_NONE}
|
||||
};
|
||||
@@ -1738,7 +1738,7 @@ static void sub_8124A70(void)
|
||||
{
|
||||
struct SpriteSheet sheet;
|
||||
|
||||
LZ77UnCompWram(gUnknown_085A1D68, gUnknown_0203A148->unk_88c);
|
||||
LZ77UnCompWram(sUnknown_085A1D68, gUnknown_0203A148->unk_88c);
|
||||
sheet.data = gUnknown_0203A148->unk_88c;
|
||||
sheet.size = 0x1c0;
|
||||
sheet.tag = 2;
|
||||
@@ -1806,11 +1806,11 @@ static void sub_8124BE4(void)
|
||||
u16 mapSecId;
|
||||
u8 spriteId;
|
||||
|
||||
for (i = 0; gUnknown_085A1F18[i][1] != MAPSEC_NONE; i++)
|
||||
for (i = 0; sUnknown_085A1F18[i][1] != MAPSEC_NONE; i++)
|
||||
{
|
||||
if (FlagGet(gUnknown_085A1F18[i][0]))
|
||||
if (FlagGet(sUnknown_085A1F18[i][0]))
|
||||
{
|
||||
mapSecId = gUnknown_085A1F18[i][1];
|
||||
mapSecId = sUnknown_085A1F18[i][1];
|
||||
sub_8124630(mapSecId, &x, &y, &width, &height);
|
||||
x = (x + MAPCURSOR_X_MIN) * 8;
|
||||
y = (y + MAPCURSOR_Y_MIN) * 8;
|
||||
@@ -1919,13 +1919,13 @@ static void sub_8124E0C(void)
|
||||
sub_8084CCC(FlagGet(FLAG_SYS_POKEMON_LEAGUE_FLY) && gUnknown_0203A148->regionMap.posWithinMapSec == 0 ? 0x14 : 0x0B);
|
||||
break;
|
||||
default:
|
||||
if (gUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][2] != 0)
|
||||
if (sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][2] != 0)
|
||||
{
|
||||
sub_8084CCC(gUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][2]);
|
||||
sub_8084CCC(sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][2]);
|
||||
}
|
||||
else
|
||||
{
|
||||
warp1_set_2(gUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][0], gUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][1], -1);
|
||||
warp1_set_2(sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][0], sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][1], -1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ extern struct SpriteTemplate gUnknown_0202499C;
|
||||
extern const union AnimCmd * const * const gMonAnimationsSpriteAnimsPtrTable[];
|
||||
|
||||
extern void dp12_8087EA4(void);
|
||||
extern void trs_config(void);
|
||||
extern void sub_8035658(void);
|
||||
extern bool8 IsDoubleBattle(void);
|
||||
extern u8 GetSubstituteSpriteDefault_Y(u8 bank);
|
||||
extern u8 GetBankSpriteDefault_Y(u8 bank);
|
||||
@@ -73,7 +73,7 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
|
||||
{
|
||||
case 0:
|
||||
dp12_8087EA4();
|
||||
trs_config();
|
||||
sub_8035658();
|
||||
SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0);
|
||||
SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0);
|
||||
ShowBg(0);
|
||||
|
||||
@@ -1,17 +1,5 @@
|
||||
|
||||
// Includes
|
||||
#include "global.h"
|
||||
|
||||
// Static type declarations
|
||||
|
||||
// Static RAM declarations
|
||||
|
||||
IWRAM_DATA u32 gUnknown_03000DD4;
|
||||
IWRAM_DATA u32 gUnknown_03000DD8;
|
||||
IWRAM_DATA u32 gUnknown_03000DDC;
|
||||
|
||||
// Static ROM declarations
|
||||
|
||||
// .rodata
|
||||
|
||||
// .text
|
||||
@@ -154,8 +154,8 @@ static const u8 sClockFrames[8][3] =
|
||||
{ 5, 1, 0 },
|
||||
};
|
||||
|
||||
static const u8 gSaveFailedClockPal[] = INCBIN_U8("graphics/misc/clock_small.gbapal");
|
||||
static const u8 gSaveFailedClockGfx[] = INCBIN_U8("graphics/misc/clock_small.4bpp.lz");
|
||||
static const u8 sSaveFailedClockPal[] = INCBIN_U8("graphics/misc/clock_small.gbapal");
|
||||
static const u8 sSaveFailedClockGfx[] = INCBIN_U8("graphics/misc/clock_small.4bpp.lz");
|
||||
|
||||
static void CB2_SaveFailedScreen(void);
|
||||
static void CB2_WipeSave(void);
|
||||
@@ -221,7 +221,7 @@ static void CB2_SaveFailedScreen(void)
|
||||
LZ77UnCompVram(gBirchHelpGfx, (void *)VRAM);
|
||||
LZ77UnCompVram(gBirchBagTilemap, (void *)(VRAM + 0x7000));
|
||||
LZ77UnCompVram(gBirchGrassTilemap, (void *)(VRAM + 0x7800));
|
||||
LZ77UnCompVram(gSaveFailedClockGfx, (void *)(VRAM + 0x10020));
|
||||
LZ77UnCompVram(sSaveFailedClockGfx, (void *)(VRAM + 0x10020));
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, gUnknown_085EFD88, 3);
|
||||
SetBgTilemapBuffer(0, (void *)&gDecompressionBuffer[0x2000]);
|
||||
@@ -238,7 +238,7 @@ static void CB2_SaveFailedScreen(void)
|
||||
ResetTasks();
|
||||
ResetPaletteFade();
|
||||
LoadPalette(gBirchBagGrassPal, 0, 0x40);
|
||||
LoadPalette(gSaveFailedClockPal, 0x100, 0x20);
|
||||
LoadPalette(sSaveFailedClockPal, 0x100, 0x20);
|
||||
LoadPalette(gUnknown_0850FEFC, 0xE0, 0x20);
|
||||
LoadPalette(gUnknown_0860F074, 0xF0, 0x20);
|
||||
SetWindowBorderStyle(gSaveFailedWindowIds[TEXT_WIN_ID], FALSE, 0x214, 0xE);
|
||||
|
||||
10
src/sprite.c
10
src/sprite.c
@@ -240,7 +240,7 @@ static const AffineAnimCmdFunc sAffineAnimCmdFuncs[] =
|
||||
AffineAnimCmd_frame,
|
||||
};
|
||||
|
||||
static const s32 gUnknown_082EC6F4[24] =
|
||||
static const s32 sUnknown_082EC6F4[24] =
|
||||
{
|
||||
8, 8, 0x10, 0x10, 0x20, 0x20,
|
||||
0x40, 0x40, 0x10, 8, 0x20, 8,
|
||||
@@ -1214,14 +1214,14 @@ void obj_update_pos2(struct Sprite* sprite, s32 a1, s32 a2)
|
||||
u8 matrixNum = sprite->oam.matrixNum;
|
||||
if (a1 != 0x800)
|
||||
{
|
||||
var0 = gUnknown_082EC6F4[sprite->oam.size * 8 + sprite->oam.shape * 32];
|
||||
var0 = sUnknown_082EC6F4[sprite->oam.size * 8 + sprite->oam.shape * 32];
|
||||
var1 = var0 << 8;
|
||||
var2 = (var0 << 16) / gOamMatrices[matrixNum].a;
|
||||
sprite->pos2.x = sub_8007E28(var1, var2, a1);
|
||||
}
|
||||
if (a2 != 0x800)
|
||||
{
|
||||
var0 = gUnknown_082EC6F4[4 + (sprite->oam.size * 8 + sprite->oam.shape * 32)];
|
||||
var0 = sUnknown_082EC6F4[4 + (sprite->oam.size * 8 + sprite->oam.shape * 32)];
|
||||
var1 = var0 << 8;
|
||||
var2 = (var0 << 16) / gOamMatrices[matrixNum].d;
|
||||
sprite->pos2.y = sub_8007E28(var1, var2, a2);
|
||||
@@ -1247,7 +1247,7 @@ void obj_update_pos2(struct Sprite* sprite, s32 a1, s32 a2)
|
||||
mov r9, r0\n\
|
||||
cmp r6, r9\n\
|
||||
beq _08007EA2\n\
|
||||
ldr r2, =gUnknown_082EC6F4\n\
|
||||
ldr r2, =sUnknown_082EC6F4\n\
|
||||
lsrs r1, 6\n\
|
||||
lsls r1, 3\n\
|
||||
ldrb r0, [r5, 0x1]\n\
|
||||
@@ -1272,7 +1272,7 @@ void obj_update_pos2(struct Sprite* sprite, s32 a1, s32 a2)
|
||||
_08007EA2:\n\
|
||||
cmp r8, r9\n\
|
||||
beq _08007EDA\n\
|
||||
ldr r2, =gUnknown_082EC6F4\n\
|
||||
ldr r2, =sUnknown_082EC6F4\n\
|
||||
ldrb r1, [r5, 0x3]\n\
|
||||
lsrs r1, 6\n\
|
||||
lsls r1, 3\n\
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
#include "text.h"
|
||||
#include "sound.h"
|
||||
|
||||
static const u8 gUnknown_08616124[] = {1, 2, 4};
|
||||
static const u16 gFont6BrailleGlyphs[] = INCBIN_U16("data/graphics/fonts/font6.fwjpnfont");
|
||||
static const u8 sUnknown_08616124[] = {1, 2, 4};
|
||||
static const u16 sFont6BrailleGlyphs[] = INCBIN_U16("data/graphics/fonts/font6.fwjpnfont");
|
||||
|
||||
static void DecompressGlyphFont6(u16);
|
||||
|
||||
@@ -13,7 +13,7 @@ u16 Font6Func(struct TextPrinter *textPrinter)
|
||||
{
|
||||
u16 char_;
|
||||
struct TextPrinterSubStruct *sub;
|
||||
|
||||
|
||||
sub = &textPrinter->sub_union.sub;
|
||||
switch (textPrinter->state)
|
||||
{
|
||||
@@ -163,15 +163,15 @@ u16 Font6Func(struct TextPrinter *textPrinter)
|
||||
case 4:
|
||||
if (textPrinter->scrollDistance)
|
||||
{
|
||||
if (textPrinter->scrollDistance < gUnknown_08616124[gSaveBlock2Ptr->optionsTextSpeed])
|
||||
if (textPrinter->scrollDistance < sUnknown_08616124[gSaveBlock2Ptr->optionsTextSpeed])
|
||||
{
|
||||
ScrollWindow(textPrinter->subPrinter.windowId, 0, textPrinter->scrollDistance, textPrinter->subPrinter.bgColor | (textPrinter->subPrinter.bgColor << 4));
|
||||
textPrinter->scrollDistance = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
ScrollWindow(textPrinter->subPrinter.windowId, 0, gUnknown_08616124[gSaveBlock2Ptr->optionsTextSpeed], textPrinter->subPrinter.bgColor | (textPrinter->subPrinter.bgColor << 4));
|
||||
textPrinter->scrollDistance -= gUnknown_08616124[gSaveBlock2Ptr->optionsTextSpeed];
|
||||
ScrollWindow(textPrinter->subPrinter.windowId, 0, sUnknown_08616124[gSaveBlock2Ptr->optionsTextSpeed], textPrinter->subPrinter.bgColor | (textPrinter->subPrinter.bgColor << 4));
|
||||
textPrinter->scrollDistance -= sUnknown_08616124[gSaveBlock2Ptr->optionsTextSpeed];
|
||||
}
|
||||
CopyWindowToVram(textPrinter->subPrinter.windowId, 2);
|
||||
}
|
||||
@@ -204,7 +204,7 @@ static void DecompressGlyphFont6(u16 glyph)
|
||||
{
|
||||
const u16 *glyphs;
|
||||
|
||||
glyphs = gFont6BrailleGlyphs + 0x100 * (glyph / 8) + 0x10 * (glyph % 8);
|
||||
glyphs = sFont6BrailleGlyphs + 0x100 * (glyph / 8) + 0x10 * (glyph % 8);
|
||||
DecompressGlyphTile(glyphs, (u16 *)gUnknown_03002F90);
|
||||
DecompressGlyphTile(glyphs + 0x8, (u16 *)(gUnknown_03002F90 + 0x20));
|
||||
DecompressGlyphTile(glyphs + 0x80, (u16 *)(gUnknown_03002F90 + 0x40));
|
||||
|
||||
@@ -57,8 +57,8 @@ static void SpriteCB_PMIndicator(struct Sprite *sprite);
|
||||
|
||||
// rodata
|
||||
|
||||
static const u8 gUnknown_085B1F58[] = INCBIN_U8("graphics/wallclock/graphics_85b1f58.4bpp.lz");
|
||||
static const u16 gUnknown_085B21D4[] = INCBIN_U16("graphics/wallclock/palette_85b21d4.gbapal");
|
||||
static const u8 sUnknown_085B1F58[] = INCBIN_U8("graphics/wallclock/graphics_85b1f58.4bpp.lz");
|
||||
static const u16 sUnknown_085B21D4[] = INCBIN_U16("graphics/wallclock/palette_85b21d4.gbapal");
|
||||
static const struct WindowTemplate gUnknown_085B21DC[] = {
|
||||
{ 0x00, 0x03, 0x11, 0x18, 0x02, 0x0e, 0x200 },
|
||||
{ 0x02, 0x18, 0x10, 0x06, 0x02, 0x0c, 0x230 },
|
||||
@@ -88,7 +88,7 @@ static const struct BgTemplate gUnknown_085B21FC[] = {
|
||||
}
|
||||
};
|
||||
static const struct CompressedSpriteSheet gUnknown_085B2208 = {
|
||||
gUnknown_085B1F58, 0x2000, TAG_GFX_WALL_CLOCK_HAND
|
||||
sUnknown_085B1F58, 0x2000, TAG_GFX_WALL_CLOCK_HAND
|
||||
};
|
||||
static const u32 filler_85B2210[2] = {};
|
||||
static const struct SpritePalette gUnknown_085B2218[] = {
|
||||
@@ -571,7 +571,7 @@ static void LoadWallClockGraphics(void)
|
||||
LoadPalette(gUnknown_08DCC03C, 0x00, 0x20);
|
||||
}
|
||||
LoadPalette(GetOverworldTextboxPalettePtr(), 0xe0, 0x20);
|
||||
LoadPalette(gUnknown_085B21D4, 0xc0, 0x08);
|
||||
LoadPalette(sUnknown_085B21D4, 0xc0, 0x08);
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, gUnknown_085B21FC, 3);
|
||||
InitWindows(gUnknown_085B21DC);
|
||||
@@ -666,27 +666,27 @@ void Cb2_ViewWallClock(void)
|
||||
angle1 = 90;
|
||||
angle2 = 135;
|
||||
}
|
||||
|
||||
|
||||
spriteId = CreateSprite(&gUnknown_085B2250, 0x78, 0x50, 1);
|
||||
gSprites[spriteId].data[0] = taskId;
|
||||
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
|
||||
gSprites[spriteId].oam.matrixNum = 0;
|
||||
|
||||
|
||||
spriteId = CreateSprite(&gUnknown_085B2268, 0x78, 0x50, 0);
|
||||
gSprites[spriteId].data[0] = taskId;
|
||||
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
|
||||
gSprites[spriteId].oam.matrixNum = 1;
|
||||
|
||||
|
||||
spriteId = CreateSprite(&gUnknown_085B22A0, 0x78, 0x50, 2);
|
||||
gSprites[spriteId].data[0] = taskId;
|
||||
gSprites[spriteId].data[1] = angle1;
|
||||
|
||||
|
||||
spriteId = CreateSprite(&gUnknown_085B22B8, 0x78, 0x50, 2);
|
||||
gSprites[spriteId].data[0] = taskId;
|
||||
gSprites[spriteId].data[1] = angle2;
|
||||
|
||||
|
||||
WallClockInit();
|
||||
|
||||
|
||||
PrintTextOnWindow(1, 1, gText_Cancel4, 0, 1, 0, NULL);
|
||||
PutWindowTilemap(1);
|
||||
schedule_bg_copy_tilemap_to_vram(2);
|
||||
|
||||
Reference in New Issue
Block a user