summaryrefslogtreecommitdiff
path: root/src/scene
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-12-23 12:57:46 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2017-12-23 12:57:46 -0500
commitfdd7e7cb848747a1e0ace8a63d29aaa22dfd1140 (patch)
tree6ddaed4de52bfcc517d573a8f30c5bd0a1650782 /src/scene
parentbb8f652504f886af296ffcaac57bf76cdc893c97 (diff)
parent1c1ce902515ccb3ccecde29611711c9b1a3ce955 (diff)
Merge branch 'master' into cable_car
Diffstat (limited to 'src/scene')
-rw-r--r--src/scene/berry_blender.c154
-rw-r--r--src/scene/cable_car.c174
-rw-r--r--src/scene/contest_painting.c24
-rw-r--r--src/scene/credits.c357
-rw-r--r--src/scene/egg_hatch.c120
-rw-r--r--src/scene/evolution_graphics.c84
-rw-r--r--src/scene/evolution_scene.c276
-rw-r--r--src/scene/hall_of_fame.c138
-rw-r--r--src/scene/intro.c713
-rwxr-xr-xsrc/scene/intro_credits_graphics.c44
-rw-r--r--src/scene/new_game.c8
-rw-r--r--src/scene/title_screen.c38
12 files changed, 1154 insertions, 976 deletions
diff --git a/src/scene/berry_blender.c b/src/scene/berry_blender.c
index 7ffcc5185..d147d11ce 100644
--- a/src/scene/berry_blender.c
+++ b/src/scene/berry_blender.c
@@ -7,19 +7,20 @@
#include "menu.h"
#include "strings2.h"
#include "sound.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "berry.h"
#include "string_util.h"
#include "link.h"
#include "task.h"
#include "overworld.h"
#include "item.h"
-#include "items.h"
-#include "rng.h"
+#include "constants/items.h"
+#include "random.h"
#include "save.h"
#include "menu_cursor.h"
#include "trig.h"
#include "pokeblock.h"
+#include "ewram.h"
//needed to match Blender_ControlHitPitch
struct MusicPlayerInfo
@@ -207,8 +208,7 @@ extern void de_sub_8073110();
extern struct MusicPlayerInfo gMPlay_SE2;
extern struct MusicPlayerInfo gMPlay_BGM;
-extern u8 ewram[];
-extern u16 gScriptItemId;
+extern u16 gSpecialVar_ItemId;
extern u8 gUnknown_020297ED;
extern u8 byte_3002A68;
@@ -828,7 +828,7 @@ static bool8 sub_804E2EC(void)
switch (gBerryBlenderData->field_1)
{
case 0:
- LZDecompressWram(gUnknown_08E6C100, &ewram[0x10000]);
+ LZDecompressWram(gUnknown_08E6C100, ewram10000);
gBerryBlenderData->field_1++;
break;
case 1:
@@ -843,7 +843,7 @@ static bool8 sub_804E2EC(void)
break;
case 2:
{
- void* offsetRead = &ewram[0x10000];
+ void* offsetRead = ewram10000;
void* offsetWrite = (void*)(VRAM);
u32 size = 0x2000;
while (TRUE)
@@ -862,16 +862,16 @@ static bool8 sub_804E2EC(void)
}
break;
case 3:
- LZDecompressWram(gUnknown_08E6C920, &ewram[0x10000]);
+ LZDecompressWram(gUnknown_08E6C920, ewram10000);
gBerryBlenderData->field_1++;
break;
case 4:
- LZDecompressWram(gUnknown_08E6D354, &ewram[0x13000]);
+ LZDecompressWram(gUnknown_08E6D354, ewram13000);
gBerryBlenderData->field_1++;
break;
case 5:
{
- void* offsetRead = &ewram[0x10000];
+ void* offsetRead = ewram10000;
void* offsetWrite = (void*)(VRAM + 0xE000);
DmaCopy16(3, offsetRead, offsetWrite, 0x1000);
@@ -880,7 +880,7 @@ static bool8 sub_804E2EC(void)
break;
case 6:
{
- void* offsetRead = &ewram[0x11000];
+ void* offsetRead = ewram11000;
void* offsetWrite = (void*)(VRAM + 0xF000);
DmaCopy16(3, offsetRead, offsetWrite, 0x1000);
@@ -890,7 +890,7 @@ static bool8 sub_804E2EC(void)
case 7:
{
u16 i;
- u16* palStore = (u16*)(&ewram[0x13000]);
+ u16* palStore = (u16*)(ewram13000);
void* offsetRead;
void* offsetWrite;
@@ -898,7 +898,7 @@ static bool8 sub_804E2EC(void)
{
*(palStore + i) |= 0x100;
}
- offsetRead = &ewram[0x13000];
+ offsetRead = ewram13000;
offsetWrite = (void*)(VRAM + 0x6000);
DmaCopy16(3, offsetRead, offsetWrite, 0x500);
LoadPalette(sBlenderOuterPal, 0x80, 0x20);
@@ -937,7 +937,7 @@ void sub_804E538(void)
{
u8* field6F; //this temp value is needed to match
- gBerryBlenderData = (struct BerryBlenderData*)(&ewram[0x18000]);
+ gBerryBlenderData = eBerryBlenderData;
field6F = &gBerryBlenderData->field_6F;
gBerryBlenderData->field_0 = 0;
@@ -1019,34 +1019,34 @@ static void sub_804E56C(void)
void sub_804E738(struct Sprite* sprite)
{
- sprite->data1 += sprite->data6;
- sprite->data2 -= sprite->data4;
- sprite->data2 += sprite->data7;
- sprite->data0 += sprite->data7;
- sprite->data4--;
+ sprite->data[1] += sprite->data[6];
+ sprite->data[2] -= sprite->data[4];
+ sprite->data[2] += sprite->data[7];
+ sprite->data[0] += sprite->data[7];
+ sprite->data[4]--;
- if (sprite->data0 < sprite->data2)
+ if (sprite->data[0] < sprite->data[2])
{
- sprite->data3 = sprite->data4 = sprite->data3 - 1;
- if (++sprite->data5 > 3)
+ sprite->data[3] = sprite->data[4] = sprite->data[3] - 1;
+ if (++sprite->data[5] > 3)
DestroySprite(sprite);
else
PlaySE(SE_TB_KARA);
}
- sprite->pos1.x = sprite->data1;
- sprite->pos1.y = sprite->data2;
+ sprite->pos1.x = sprite->data[1];
+ sprite->pos1.y = sprite->data[2];
}
void sub_804E794(struct Sprite* sprite, s16 a2, s16 a3, s16 a4, s16 a5, s16 a6)
{
- sprite->data0 = a3;
- sprite->data1 = a2;
- sprite->data2 = a3;
- sprite->data3 = a4;
- sprite->data4 = 10;
- sprite->data5 = 0;
- sprite->data6 = a5;
- sprite->data7 = a6;
+ sprite->data[0] = a3;
+ sprite->data[1] = a2;
+ sprite->data[2] = a3;
+ sprite->data[3] = a4;
+ sprite->data[4] = 10;
+ sprite->data[5] = 0;
+ sprite->data[6] = a5;
+ sprite->data[7] = a6;
sprite->callback = sub_804E738;
}
@@ -1111,7 +1111,7 @@ void sub_804E990(void)
s32 i;
REG_DISPCNT = 0;
- gBerryBlenderData = (struct BerryBlenderData*)(&ewram[0x18000]);
+ gBerryBlenderData = eBerryBlenderData;
gBerryBlenderData->field_0 = 0;
gBerryBlenderData->field_134 = 0;
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
@@ -1192,7 +1192,7 @@ static void sub_804E9F8(void)
case 8:
gBerryBlenderData->field_0++;
gBerryBlenderData->field_13C = 0;
- Blender_CopyBerryData(&gBerryBlenderData->blendedBerries[0], gScriptItemId);
+ Blender_CopyBerryData(&gBerryBlenderData->blendedBerries[0], gSpecialVar_ItemId);
memcpy(gBlockSendBuffer, &gBerryBlenderData->blendedBerries[0], sizeof(struct BlenderBerry));
sub_80084A4();
gBerryBlenderData->framesToWait = 0;
@@ -1438,9 +1438,9 @@ static void sub_804F378(void)
{
case 0:
sub_804F0F4();
- Blender_SetBankBerryData(0, gScriptItemId);
- Blender_CopyBerryData(&gBerryBlenderData->blendedBerries[0], gScriptItemId);
- sub_804F1BC(gScriptItemId, gBerryBlenderData->playersNo, &gBerryBlenderData->blendedBerries[0]);
+ Blender_SetBankBerryData(0, gSpecialVar_ItemId);
+ Blender_CopyBerryData(&gBerryBlenderData->blendedBerries[0], gSpecialVar_ItemId);
+ sub_804F1BC(gSpecialVar_ItemId, gBerryBlenderData->playersNo, &gBerryBlenderData->blendedBerries[0]);
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
{
gBerryBlenderData->field_70[i] = 0;
@@ -3012,10 +3012,10 @@ static void sub_80514F0(void)
void sub_8051524(struct Sprite* sprite)
{
- sprite->data2 += sprite->data0;
- sprite->data3 += sprite->data1;
- sprite->pos2.x = sprite->data2 / 8;
- sprite->pos2.y = sprite->data3 / 8;
+ sprite->data[2] += sprite->data[0];
+ sprite->data[3] += sprite->data[1];
+ sprite->pos2.x = sprite->data[2] / 8;
+ sprite->pos2.y = sprite->data[3] / 8;
if (sprite->animEnded)
DestroySprite(sprite);
}
@@ -3037,8 +3037,8 @@ static void sub_805156C(void)
y = gSineTable[(rand & 0xFF)] / 4;
spriteID = CreateSprite(&sSpriteTemplate_82164FC, x + 120, y + 80, 1);
- gSprites[spriteID].data0 = 16 - (Random() % 32);
- gSprites[spriteID].data1 = 16 - (Random() % 32);
+ gSprites[spriteID].data[0] = 16 - (Random() % 32);
+ gSprites[spriteID].data[1] = 16 - (Random() % 32);
gSprites[spriteID].callback = sub_8051524;
}
@@ -3046,16 +3046,16 @@ static void sub_805156C(void)
static void sub_8051650(struct Sprite* sprite)
{
- sprite->data0++;
- sprite->pos2.y = -(sprite->data0 / 3);
+ sprite->data[0]++;
+ sprite->pos2.y = -(sprite->data[0] / 3);
if (sprite->animEnded)
DestroySprite(sprite);
}
void sub_8051684(struct Sprite* sprite)
{
- sprite->data0++;
- sprite->pos2.y = -(sprite->data0 * 2);
+ sprite->data[0]++;
+ sprite->pos2.y = -(sprite->data[0] * 2);
if (sprite->pos2.y < -12)
sprite->pos2.y = -12;
if (sprite->animEnded)
@@ -3110,74 +3110,74 @@ void unref_sub_80516F8(u8 taskID)
static void sub_805181C(struct Sprite* sprite)
{
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
- sprite->data1 += 8;
- if (sprite->data1 > 88)
+ sprite->data[1] += 8;
+ if (sprite->data[1] > 88)
{
- sprite->data1 = 88;
- sprite->data0++;
+ sprite->data[1] = 88;
+ sprite->data[0]++;
PlaySE(SE_KON);
}
break;
case 1:
- sprite->data2 += 1;
- if (sprite->data2 > 20)
+ sprite->data[2] += 1;
+ if (sprite->data[2] > 20)
{
- sprite->data0++;
- sprite->data2 = 0;
+ sprite->data[0]++;
+ sprite->data[2] = 0;
}
break;
case 2:
- sprite->data1 += 4;
- if (sprite->data1 > 176)
+ sprite->data[1] += 4;
+ if (sprite->data[1] > 176)
{
- if (++sprite->data3 == 3)
+ if (++sprite->data[3] == 3)
{
DestroySprite(sprite);
CreateSprite(&sSpriteTemplate_821657C, 120, -20, 2);
}
else
{
- sprite->data0 = 0;
- sprite->data1 = -16;
- StartSpriteAnim(sprite, sprite->data3);
+ sprite->data[0] = 0;
+ sprite->data[1] = -16;
+ StartSpriteAnim(sprite, sprite->data[3]);
}
}
break;
}
- sprite->pos2.y = sprite->data1;
+ sprite->pos2.y = sprite->data[1];
}
static void sub_80518CC(struct Sprite* sprite)
{
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
- sprite->data1 += 8;
- if (sprite->data1 > 92)
+ sprite->data[1] += 8;
+ if (sprite->data[1] > 92)
{
- sprite->data1 = 92;
- sprite->data0++;
+ sprite->data[1] = 92;
+ sprite->data[0]++;
PlaySE(SE_PIN);
}
break;
case 1:
- sprite->data2 += 1;
- if (sprite->data2 > 20)
- sprite->data0++;
+ sprite->data[2] += 1;
+ if (sprite->data[2] > 20)
+ sprite->data[0]++;
break;
case 2:
- sprite->data1 += 4;
- if (sprite->data1 > 176)
+ sprite->data[1] += 4;
+ if (sprite->data[1] > 176)
{
gBerryBlenderData->field_0++;
DestroySprite(sprite);
}
break;
}
- sprite->pos2.y = sprite->data1;
+ sprite->pos2.y = sprite->data[1];
}
static void sub_805194C(u16 a0, u16 a1)
@@ -3431,7 +3431,7 @@ static bool8 Blender_PrintBlendingResults(void)
Blender_PrintMadePokeblockString(&pokeblock, gBerryBlenderData->stringVar);
CreateTask(sub_8052BD0, 6);
MenuPrintMessage(gBerryBlenderData->stringVar, 1, 15);
- RemoveBagItem(gScriptItemId, 1);
+ RemoveBagItem(gSpecialVar_ItemId, 1);
sub_810CA34(&pokeblock);
gBerryBlenderData->field_0++;
break;
@@ -3710,7 +3710,7 @@ static void sub_80527BC(void)
gUnknown_020297E0 = 0;
gUnknown_020297DC = 2;
for (i = 0; i < 200; i++)
- ewram[i] = 0;
+ gSharedMem[i] = 0;
gUnknown_020297E8 = 0;
}
for (i = 0; i < 100; i++)
@@ -3719,7 +3719,7 @@ static void sub_80527BC(void)
gUnknown_020297E0++;
else
{
- u16* ewramPtr = ((u16*)(ewram));
+ u16* ewramPtr = ((u16*)(gSharedMem));
ewramPtr[gUnknown_020297E4] = gUnknown_020297E0;
gUnknown_020297E4++;
gUnknown_020297E0 = 0;
diff --git a/src/scene/cable_car.c b/src/scene/cable_car.c
index 9caa2234f..d65022ae8 100644
--- a/src/scene/cable_car.c
+++ b/src/scene/cable_car.c
@@ -1,21 +1,22 @@
// Includes
#include "global.h"
+#include "ewram.h"
#include "overworld.h"
#include "palette.h"
-#include "rng.h"
+#include "random.h"
#include "main.h"
#include "script.h"
#include "task.h"
#include "sound.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "decompress.h"
#include "field_weather.h"
#include "field_map_obj.h"
#include "unknown_task.h"
#include "event_data.h"
#include "cable_car_util.h"
-#include "map_object_constants.h"
+#include "constants/map_objects.h"
// Static type declarations
@@ -28,7 +29,7 @@
f; \
})
-struct Unk_2017000 {
+struct CableCarEwramStruct1 {
u8 unk_0000;
u8 unk_0001;
u8 unk_0002;
@@ -48,19 +49,16 @@ struct Unk_2017000 {
u16 unk_08fc[0x400];
}; // size 0x10FC
-struct Unk_2019000 {
+struct CableCarEwramStruct2 {
/* 0x000 */ u16 mtChimneyTilemap[0xb4];
/* 0x168 */ u16 treeTilemap[0x1e0];
/* 0x528 */ u16 mountainTilemap[0x258];
/* 0x9d8 */ u16 pylonStemTilemap[0x628]; // size not actually known
};
-#define ewram_17000 (*(struct Unk_2017000 *)(ewram + 0x17000))
-#define ewram_19000 (*(struct Unk_2019000 *)(ewram + 0x19000))
-
// Static RAM declarations
-EWRAM_DATA struct Unk_2017000 *gUnknown_02039274 = NULL;
+EWRAM_DATA struct CableCarEwramStruct1 *gUnknown_02039274 = NULL;
EWRAM_DATA u8 gUnknown_02039278 = 0;
EWRAM_DATA u8 gUnknown_02039279 = 0;
EWRAM_DATA u8 gUnknown_0203927A = 0;
@@ -206,8 +204,8 @@ void sub_8123244(void)
DmaFill16Large(3, 0, VRAM, VRAM_SIZE, 0x1000);
DmaFill32Defvars(3, 0, OAM, OAM_SIZE);
DmaFill16Defvars(3, 0, PLTT, PLTT_SIZE);
- gUnknown_02039274 = &ewram_17000;
- DmaFill16Large(3, 0, &ewram_17000, 0x10FC, 0x1000);
+ gUnknown_02039274 = eCableCar1;
+ DmaFill16Large(3, 0, eCableCar1, 0x10FC, 0x1000);
gMain.state ++;
break;
case 1:
@@ -215,10 +213,10 @@ void sub_8123244(void)
ResetTasks();
FreeAllSpritePalettes();
ResetPaletteFade();
- sub_807C828();
+ StartWeather();
for (i = 0; i < 20; i ++)
{
- gUnknown_08396FC4->unk_0f0[i] = NULL;
+ gWeatherPtr->sprites.s2.ashSprites[i] = NULL;
}
InitMapMusic();
ResetMapMusic();
@@ -231,10 +229,10 @@ void sub_8123244(void)
LoadCompressedObjectPic(&gUnknown_08401CF8[i]);
}
LoadSpritePalettes(gUnknown_08401D18);
- LZDecompressWram(gCableCarMtChimneyTilemap, ewram_19000.mtChimneyTilemap);
- LZDecompressWram(gCableCarTreeTilemap, ewram_19000.treeTilemap);
- LZDecompressWram(gCableCarMountainTilemap, ewram_19000.mountainTilemap);
- LZDecompressWram(gCableCarPylonStemTilemap, ewram_19000.pylonStemTilemap);
+ LZDecompressWram(gCableCarMtChimneyTilemap, eCableCar2->mtChimneyTilemap);
+ LZDecompressWram(gCableCarTreeTilemap, eCableCar2->treeTilemap);
+ LZDecompressWram(gCableCarMountainTilemap, eCableCar2->mountainTilemap);
+ LZDecompressWram(gCableCarPylonStemTilemap, eCableCar2->pylonStemTilemap);
LoadPalette(gCableCarBG_Pal, 0, 0x80);
LZ77UnCompVram(gCableCarBG_Gfx, (u16 *)BG_VRAM);
gMain.state ++;
@@ -249,35 +247,35 @@ void sub_8123244(void)
{
gMain.state ++;
}
- else if (gUnknown_08396FC4->unk_0f0[0] != NULL)
+ else if (gWeatherPtr->sprites.s2.ashSprites[0] != NULL)
{
for (i = 0; i < 20; i ++)
{
- if (gUnknown_08396FC4->unk_0f0[i] != NULL)
+ if (gWeatherPtr->sprites.s2.ashSprites[i] != NULL)
{
- gUnknown_08396FC4->unk_0f0[i]->oam.priority = 0;
+ gWeatherPtr->sprites.s2.ashSprites[i]->oam.priority = 0;
}
}
gMain.state ++;
}
break;
case 5:
- sub_8124F08((u16 *)BG_SCREEN_ADDR(29), ewram_19000.treeTilemap, 0, 17, 32, 15);
- sub_8124F08((u16 *)BG_SCREEN_ADDR(30), ewram_19000.mountainTilemap, 0, 0, 30, 20);
+ sub_8124F08((u16 *)BG_SCREEN_ADDR(29), eCableCar2->treeTilemap, 0, 17, 32, 15);
+ sub_8124F08((u16 *)BG_SCREEN_ADDR(30), eCableCar2->mountainTilemap, 0, 0, 30, 20);
sub_8124F08(gUnknown_02039274->unk_08fc, gCableCarPylonHookTilemapEntries, 0, 0, 5, 2);
- sub_8124F08(gUnknown_02039274->unk_08fc, ewram_19000.pylonStemTilemap, 0, 2, 2, 20);
+ sub_8124F08(gUnknown_02039274->unk_08fc, eCableCar2->pylonStemTilemap, 0, 2, 2, 20);
gMain.state ++;
break;
case 6:
sub_81248AC(gSpecialVar_0x8004);
- sub_8124F08(gUnknown_02039274->unk_00fc, ewram_19000.mtChimneyTilemap + 0x48, 0, 14, 12, 3);
- sub_8124F08(gUnknown_02039274->unk_00fc, ewram_19000.mtChimneyTilemap + 0x6C, 12, 17, 12, 3);
- sub_8124F08(gUnknown_02039274->unk_00fc, ewram_19000.mtChimneyTilemap + 0x90, 24, 20, 12, 3);
- sub_8124F08(gUnknown_02039274->unk_00fc, ewram_19000.mtChimneyTilemap + 0x00, 0, 17, 12, 3);
- sub_8124F08(gUnknown_02039274->unk_00fc, ewram_19000.mtChimneyTilemap + 0x24, 0, 20, 12, 3);
- sub_8124F08(gUnknown_02039274->unk_00fc, ewram_19000.mtChimneyTilemap + 0x00, 12, 20, 12, 3);
- sub_8124F08(gUnknown_02039274->unk_00fc, ewram_19000.mtChimneyTilemap + 0x24, 12, 23, 12, 3);
- sub_8124F08(gUnknown_02039274->unk_00fc, ewram_19000.mtChimneyTilemap + 0x00, 24, 23, 12, 3);
+ sub_8124F08(gUnknown_02039274->unk_00fc, eCableCar2->mtChimneyTilemap + 0x48, 0, 14, 12, 3);
+ sub_8124F08(gUnknown_02039274->unk_00fc, eCableCar2->mtChimneyTilemap + 0x6C, 12, 17, 12, 3);
+ sub_8124F08(gUnknown_02039274->unk_00fc, eCableCar2->mtChimneyTilemap + 0x90, 24, 20, 12, 3);
+ sub_8124F08(gUnknown_02039274->unk_00fc, eCableCar2->mtChimneyTilemap + 0x00, 0, 17, 12, 3);
+ sub_8124F08(gUnknown_02039274->unk_00fc, eCableCar2->mtChimneyTilemap + 0x24, 0, 20, 12, 3);
+ sub_8124F08(gUnknown_02039274->unk_00fc, eCableCar2->mtChimneyTilemap + 0x00, 12, 20, 12, 3);
+ sub_8124F08(gUnknown_02039274->unk_00fc, eCableCar2->mtChimneyTilemap + 0x24, 12, 23, 12, 3);
+ sub_8124F08(gUnknown_02039274->unk_00fc, eCableCar2->mtChimneyTilemap + 0x00, 24, 23, 12, 3);
gMain.state ++;
break;
case 7:
@@ -325,12 +323,12 @@ void sub_8123740(void)
sub_807C9B4(0);
for (; i < 20; i ++)
{
- gUnknown_08396FC4->unk_0f0[i] = NULL;
+ gWeatherPtr->sprites.s2.ashSprites[i] = NULL;
}
ResetTasks();
ResetSpriteData();
ResetPaletteFade();
- DmaFill32Large(3, 0, ewram, 0x20000, 0x1000);
+ DmaFill32Large(3, 0, gSharedMem, 0x20000, 0x1000);
gUnknown_02039274 = NULL;
DmaFill16Large(3, 0, VRAM, VRAM_SIZE, 0x1000);
DmaFill32Defvars(3, 0, OAM, OAM_SIZE);
@@ -359,20 +357,20 @@ void sub_8123878(u8 taskId)
switch (gUnknown_02039274->unk_0002)
{
case 7:
- if (gUnknown_08396FC4->unk_0f0[0] != NULL && gUnknown_08396FC4->unk_0f0[0]->oam.priority != 0)
+ if (gWeatherPtr->sprites.s2.ashSprites[0] != NULL && gWeatherPtr->sprites.s2.ashSprites[0]->oam.priority != 0)
{
for (; i < 20; i ++)
{
- if (gUnknown_08396FC4->unk_0f0[i] != NULL)
+ if (gWeatherPtr->sprites.s2.ashSprites[i] != NULL)
{
- gUnknown_08396FC4->unk_0f0[i]->oam.priority = 0;
+ gWeatherPtr->sprites.s2.ashSprites[i]->oam.priority = 0;
}
}
gUnknown_02039274->unk_0001 = 2;
}
break;
case 2:
- if (gUnknown_08396FC4->unknown_6D0 == 2)
+ if (gWeatherPtr->currWeather == 2)
{
gUnknown_02039274->unk_0001 = 2;
}
@@ -380,9 +378,9 @@ void sub_8123878(u8 taskId)
{
for (; i < 20; i ++)
{
- if (gUnknown_08396FC4->unk_0f0[i] != NULL)
+ if (gWeatherPtr->sprites.s2.ashSprites[i] != NULL)
{
- gUnknown_08396FC4->unk_0f0[i]->invisible ^= TRUE;
+ gWeatherPtr->sprites.s2.ashSprites[i]->invisible ^= TRUE;
}
}
}
@@ -439,7 +437,7 @@ void sub_81239E4(u8 taskId)
break;
case 16:
sub_8124F08(gUnknown_02039274->unk_08fc, gCableCarPylonHookTilemapEntries, 0, 0, 5, 2);
- sub_8124F08(gUnknown_02039274->unk_08fc, ewram_19000.pylonStemTilemap, 0, 2, 2, 30);
+ sub_8124F08(gUnknown_02039274->unk_08fc, eCableCar2->pylonStemTilemap, 0, 2, 2, 30);
gUnknown_02039274->unk_0015 = 64;
break;
}
@@ -465,7 +463,7 @@ void sub_8123AF8(u8 taskId)
switch (gUnknown_02039274->unk_0014)
{
case 176:
- sub_8124F08(gUnknown_02039274->unk_08fc, ewram_19000.pylonStemTilemap, 0, 2, 2, 30);
+ sub_8124F08(gUnknown_02039274->unk_08fc, eCableCar2->pylonStemTilemap, 0, 2, 2, 30);
break;
case 16:
sub_8124E7C(gUnknown_02039274->unk_08fc, 0, 2, 0, 3, 2);
@@ -490,7 +488,7 @@ void sub_8123AF8(u8 taskId)
}
else
{
- gUnknown_08396FC4->unknown_6FC = (gUnknown_08396FC4->unknown_6FC + 247) % 248;
+ gWeatherPtr->unknown_6FC = (gWeatherPtr->unknown_6FC + 247) % 248;
}
}
@@ -520,13 +518,13 @@ void sub_8123CB8(struct Sprite *sprite)
{
if (gSpecialVar_0x8004 == 0)
{
- sprite->pos1.x = sprite->data0 - (u8)(0.14f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
- sprite->pos1.y = sprite->data1 - (u8)(0.067f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
+ sprite->pos1.x = sprite->data[0] - (u8)(0.14f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
+ sprite->pos1.y = sprite->data[1] - (u8)(0.067f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
}
else
{
- sprite->pos1.x = sprite->data0 + (u8)(0.14f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
- sprite->pos1.y = sprite->data1 + (u8)(0.067f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
+ sprite->pos1.x = sprite->data[0] + (u8)(0.14f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
+ sprite->pos1.y = sprite->data[1] + (u8)(0.067f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
}
}
}
@@ -537,30 +535,30 @@ void sub_8123D98(struct Sprite *sprite)
{
if (gSpecialVar_0x8004 == 0)
{
- sprite->pos1.x = sprite->data0 - (u8)(0.14f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
- sprite->pos1.y = sprite->data1 - (u8)(0.067f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
+ sprite->pos1.x = sprite->data[0] - (u8)(0.14f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
+ sprite->pos1.y = sprite->data[1] - (u8)(0.067f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
}
else
{
- sprite->pos1.x = sprite->data0 + (u8)(0.14f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
- sprite->pos1.y = sprite->data1 + (u8)(0.067f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
+ sprite->pos1.x = sprite->data[0] + (u8)(0.14f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
+ sprite->pos1.y = sprite->data[1] + (u8)(0.067f * S16TOPOSFLOAT(gUnknown_02039274->unk_0006));
}
- switch (sprite->data2)
+ switch (sprite->data[2])
{
case 0:
sprite->pos2.y = 17;
- if (sprite->data3 ++ > 9)
+ if (sprite->data[3] ++ > 9)
{
- sprite->data3 = 0;
- sprite->data2 ++;
+ sprite->data[3] = 0;
+ sprite->data[2] ++;
}
break;
default:
sprite->pos2.y = 16;
- if (sprite->data3 ++ > 9)
+ if (sprite->data[3] ++ > 9)
{
- sprite->data3 = 0;
- sprite->data2 = 0;
+ sprite->data[3] = 0;
+ sprite->data[2] = 0;
}
break;
}
@@ -569,24 +567,24 @@ void sub_8123D98(struct Sprite *sprite)
void sub_8123EB8(struct Sprite *sprite)
{
- if (sprite->data0 == 0)
+ if (sprite->data[0] == 0)
{
sprite->pos1.x += 2 * sprite->centerToCornerVecX;
sprite->pos1.y += 16 + sprite->centerToCornerVecY;
}
- if (++ sprite->data0 >= sprite->data2)
+ if (++ sprite->data[0] >= sprite->data[2])
{
- switch (sprite->data1)
+ switch (sprite->data[1])
{
case 0:
sprite->pos1.x ++;
- if ((sprite->data0 % 4) == 0)
+ if ((sprite->data[0] % 4) == 0)
{
sprite->pos1.y ++;
}
break;
case 1:
- if ((sprite->data0 % 2) != 0)
+ if ((sprite->data[0] % 2) != 0)
{
sprite->pos1.x ++;
if ((sprite->pos1.x % 4) == 0)
@@ -605,23 +603,23 @@ void sub_8123EB8(struct Sprite *sprite)
void sub_8123F44(struct Sprite *sprite)
{
- if (sprite->data0 == 0)
+ if (sprite->data[0] == 0)
{
sprite->pos1.y += 16 + sprite->centerToCornerVecY;
}
- if (++ sprite->data0 >= sprite->data2)
+ if (++ sprite->data[0] >= sprite->data[2])
{
- switch (sprite->data1)
+ switch (sprite->data[1])
{
case 0:
sprite->pos1.x --;
- if ((sprite->data0 % 4) == 0)
+ if ((sprite->data[0] % 4) == 0)
{
sprite->pos1.y --;
}
break;
case 1:
- if ((sprite->data0 % 2) != 0)
+ if ((sprite->data[0] % 2) != 0)
{
sprite->pos1.x --;
if ((sprite->pos1.x % 4) == 0)
@@ -749,42 +747,42 @@ void sub_8124118(void)
gSprites[spriteId].oam.priority = 2;
gSprites[spriteId].pos2.x = 0x08;
gSprites[spriteId].pos2.y = 0x10;
- gSprites[spriteId].data0 = 0xc8;
- gSprites[spriteId].data1 = 0x49;
+ gSprites[spriteId].data[0] = 0xc8;
+ gSprites[spriteId].data[1] = 0x49;
}
spriteId = CreateSprite(&gSpriteTemplate_8401D40[0], 0xb0, 0x2b, 0x67);
gSprites[spriteId].pos2.x = gSprites[spriteId].pos2.y = 0x20;
- gSprites[spriteId].data0 = 0xb0;
- gSprites[spriteId].data1 = 0x2b;
+ gSprites[spriteId].data[0] = 0xb0;
+ gSprites[spriteId].data[1] = 0x2b;
spriteId = CreateSprite(&gSpriteTemplate_8401D40[1], 0xc8, 0x63, 0x65);
gSprites[spriteId].pos2.x = 8;
gSprites[spriteId].pos2.y = 4;
- gSprites[spriteId].data0 = 0xc8;
- gSprites[spriteId].data1 = 0x63;
+ gSprites[spriteId].data[0] = 0xc8;
+ gSprites[spriteId].data[1] = 0x63;
gUnknown_02039274->unk_0002 = 7;
gUnknown_02039274->unk_0004 = 0x15e;
sub_807C9B4(2);
break;
case 1:
- sub_8124F08(gUnknown_02039274->unk_00fc, ewram_19000.mtChimneyTilemap + 0x24, 0x18, 0x1a, 0x0c, 0x03);
+ sub_8124F08(gUnknown_02039274->unk_00fc, eCableCar2->mtChimneyTilemap + 0x24, 0x18, 0x1a, 0x0c, 0x03);
spriteId = AddPseudoFieldObject(playerGraphicsIds[gSaveBlock2.playerGender], sub_8123D98, 0x80, 0x27, 0x66);
if (spriteId != MAX_SPRITES)
{
gSprites[spriteId].oam.priority = 2;
gSprites[spriteId].pos2.x = 0x08;
gSprites[spriteId].pos2.y = 0x10;
- gSprites[spriteId].data0 = 0x80;
- gSprites[spriteId].data1 = 0x27;
+ gSprites[spriteId].data[0] = 0x80;
+ gSprites[spriteId].data[1] = 0x27;
}
spriteId = CreateSprite(&gSpriteTemplate_8401D40[0], 0x68, 0x09, 0x67);
gSprites[spriteId].pos2.x = gSprites[spriteId].pos2.y = 0x20;
- gSprites[spriteId].data0 = 0x68;
- gSprites[spriteId].data1 = 0x09;
+ gSprites[spriteId].data[0] = 0x68;
+ gSprites[spriteId].data[1] = 0x09;
spriteId = CreateSprite(&gSpriteTemplate_8401D40[1], 0x80, 0x41, 0x65);
gSprites[spriteId].pos2.x = 8;
gSprites[spriteId].pos2.y = 4;
- gSprites[spriteId].data0 = 0x80;
- gSprites[spriteId].data1 = 0x41;
+ gSprites[spriteId].data[0] = 0x80;
+ gSprites[spriteId].data[1] = 0x41;
gUnknown_02039274->unk_0002 = 2;
gUnknown_02039274->unk_0004 = 0x109;
sub_807C9B4(7);
@@ -809,13 +807,13 @@ void sub_8124118(void)
if (rval % 2)
{
StartSpriteAnim(&gSprites[spriteId], 6);
- gSprites[spriteId].data1 = 1;
+ gSprites[spriteId].data[1] = 1;
gSprites[spriteId].pos1.y += 2;
}
else
{
StartSpriteAnim(&gSprites[spriteId], 7);
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[1] = 0;
}
}
else
@@ -823,16 +821,16 @@ void sub_8124118(void)
if (rval % 2)
{
StartSpriteAnim(&gSprites[spriteId], 7);
- gSprites[spriteId].data1 = 1;
+ gSprites[spriteId].data[1] = 1;
gSprites[spriteId].pos1.y += 2;
}
else
{
StartSpriteAnim(&gSprites[spriteId], 6);
- gSprites[spriteId].data1 = 0;
+ gSprites[spriteId].data[1] = 0;
}
}
- gSprites[spriteId].data2 = hikerMovementDelayTable[rval % 4];
+ gSprites[spriteId].data[2] = hikerMovementDelayTable[rval % 4];
}
}
}
@@ -850,9 +848,9 @@ void sub_812446C(void)
{
for (j = 0; j < 12; j ++)
{
- gUnknown_02039274->unk_0022[i][k] = ewram_19000.mtChimneyTilemap[0][offset + k];
- gUnknown_02039274->unk_0022[i + 3][k] = ewram_19000.mtChimneyTilemap[0][k];
- gUnknown_02039274->unk_0022[i + 6][k] = ewram_19000.mtChimneyTilemap[2][k];
+ gUnknown_02039274->unk_0022[i][k] = eCableCar2->mtChimneyTilemap[0][offset + k];
+ gUnknown_02039274->unk_0022[i + 3][k] = eCableCar2->mtChimneyTilemap[0][k];
+ gUnknown_02039274->unk_0022[i + 6][k] = eCableCar2->mtChimneyTilemap[2][k];
k ++;
}
}
diff --git a/src/scene/contest_painting.c b/src/scene/contest_painting.c
index 3662efdec..442d8ec26 100644
--- a/src/scene/contest_painting.c
+++ b/src/scene/contest_painting.c
@@ -6,14 +6,13 @@
#include "main.h"
#include "menu.h"
#include "palette.h"
-#include "rng.h"
+#include "random.h"
#include "sprite.h"
#include "string_util.h"
#include "strings.h"
#include "text.h"
#include "unknown_task.h"
-
-extern u8 unk_2000000[];
+#include "ewram.h"
static u8 gUnknown_03000750;
static u16 gUnknown_03000752;
@@ -26,9 +25,6 @@ u8 gUnknown_03005E40[0x4C];
struct ContestEntry *gUnknown_03005E8C;
u16 (*gUnknown_03005E90)[];
-extern struct ContestEntry unk_2015de0;
-extern struct Unk2015E00 unk_2015e00;
-
static const u16 gPictureFramePalettes[][16] =
{
INCBIN_U16("graphics/picture_frame/bg0.gbapal"),
@@ -113,7 +109,7 @@ void sub_8106630(u32 arg0)
{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
- ldr r2, _0810665C @ =0x02015de0\n\
+ ldr r2, _0810665C @ =gSharedMem + 0x15DE0\n\
subs r4, r2, 0x2\n\
subs r5, r2, 0x1\n\
ldr r3, _08106660 @ =gSaveBlock1\n\
@@ -135,7 +131,7 @@ void sub_8106630(u32 arg0)
pop {r0}\n\
bx r0\n\
.align 2, 0\n\
-_0810665C: .4byte 0x02015de0\n\
+_0810665C: .4byte gSharedMem + 0x15DE0\n\
_08106660: .4byte gSaveBlock1\n\
_08106664: .4byte 0x00002dfc\n\
.syntax divided\n");
@@ -153,7 +149,7 @@ static void ShowContestPainting(void)
case 0:
remove_some_task();
SetVBlankCallback(NULL);
- gUnknown_03005E8C = &unk_2015de0;
+ gUnknown_03005E8C = &ewram15DE0;
ContestPaintingInitVars(TRUE);
ContestPaintingInitBG();
gMain.state++;
@@ -184,15 +180,15 @@ static void ShowContestPainting(void)
case 2:
SeedRng(gMain.vblankCounter1);
InitKeys();
- ContestPaintingInitWindow(unk_2000000[0x15DDF]);
+ ContestPaintingInitWindow(ewram15DDF);
gMain.state++;
break;
case 3:
- sub_8107090(unk_2000000[0x15DDE], unk_2000000[0x15DDF]);
+ sub_8107090(ewram15DDE, ewram15DDF);
gMain.state++;
break;
case 4:
- ContestPaintingPrintCaption(unk_2000000[0x15DDE], unk_2000000[0x15DDF]);
+ ContestPaintingPrintCaption(ewram15DDE, ewram15DDF);
LoadPalette(gUnknown_083F6140, 0, 1 * 2);
DmaClear32(3, PLTT, 0x400);
BeginFastPaletteFade(2);
@@ -753,8 +749,8 @@ static u8 sub_8106EE0(u8 arg0)
static void sub_8106F4C(void)
{
- gUnknown_03005E90 = &unk_2015e00.unk2017e00;
- gUnknown_03005E10 = &unk_2015e00.unk2015e00;
+ gUnknown_03005E90 = &ewram15E00.unk2017e00;
+ gUnknown_03005E10 = &ewram15E00.unk2015e00;
}
static void sub_8106F6C(u8 arg0)
diff --git a/src/scene/credits.c b/src/scene/credits.c
index cf10137c1..81be60c9f 100644
--- a/src/scene/credits.c
+++ b/src/scene/credits.c
@@ -9,13 +9,14 @@
#include "menu.h"
#include "palette.h"
#include "pokedex.h"
-#include "rng.h"
-#include "songs.h"
+#include "random.h"
+#include "constants/songs.h"
#include "sound.h"
-#include "species.h"
+#include "constants/species.h"
#include "starter_choose.h"
#include "task.h"
#include "trig.h"
+#include "ewram.h"
asm(".set REG_BASE, 0x4000000");
asm(".set OFFSET_REG_BLDCNT, 0x50");
@@ -159,21 +160,11 @@ struct Unk201C000
struct CreditsEntry
{
u8 var_0;
- u8 *text;
+ const u8 *text;
};
-extern u8 ewram[];
-
-#define EWRAM_1F800 ((u16 *)(ewram + 0x1F800))
-#define HALL_OF_FAME_SHEET_0 ((u8 *)(ewram + 0x1E000))
-#define HALL_OF_FAME_SHEET_1 ((u8 *)(ewram + 0x1E800))
-#define HALL_OF_FAME_SHEET_2 ((u8 *)(ewram + 0x1F000))
-#define ewram1c000 (*(struct Unk201C000 *)(ewram + 0x1C000))
-
-extern struct HallOfFame gHallOfFame;
extern u8 unk_201e800[0x800];
extern u8 unk_201f000[0x800];
-extern u16 unk_201f800[];
extern struct SpriteTemplate gUnknown_02024E8C;
@@ -194,18 +185,208 @@ extern void *gUnknown_0840B5A0[];
// data/credits
const u16 gUnknown_0840B7BC[] = INCBIN_U16("graphics/credits/palette_1.gbapal");
const u8 gUnknown_0840B7FC[] = INCBIN_U8("graphics/credits/ampersand.4bpp");
-extern u8 gUnknown_0840B83C[];
-extern u8 gUnknown_0840B84B[];
-extern u8 gUnknown_0840B85A[];
-extern u8 gUnknown_0840B869[];
-extern u8 gUnknown_0840B878[];
-extern struct CreditsEntry *gCreditsEntryPointerTable[][5];
-extern u8 gUnknown_0840CA00[][2];
-extern struct SpriteSheet gUnknown_0840CAA0;
-extern struct SpritePalette gUnknown_0840CAB0;
-extern const union AnimCmd *const gSpriteAnimTable_0840CA54[];
-extern const union AnimCmd *const gSpriteAnimTable_0840CA94[];
-extern struct SpriteTemplate gSpriteTemplate_840CAEC;
+
+void spritecb_814580C(struct Sprite *sprite);
+
+const u8 gUnknown_0840B83C[] =
+{
+ 0, 1, 0,
+ 0xFF, 1, 0xFF,
+ 0xFF, 1, 0xFF,
+ 0xFF, 1, 0xFF,
+ 0xFF, 1, 0xFF,
+};
+
+const u8 gUnknown_0840B84B[] =
+{
+ 1, 0xFF, 1,
+ 1, 0xFF, 1,
+ 1, 2, 1,
+ 1, 0xFF, 1,
+ 1, 0xFF, 1,
+};
+
+const u8 gUnknown_0840B85A[] =
+{
+ 1, 0, 0,
+ 1, 0xFF, 0xFF,
+ 1, 2, 2,
+ 1, 0xFF, 0xFF,
+ 1, 0x80, 0x80,
+};
+
+const u8 gUnknown_0840B869[] =
+{
+ 1, 3, 1,
+ 1, 4, 1,
+ 1, 5, 1,
+ 1, 0xC4, 1,
+ 1, 0xC3, 1,
+};
+
+const u8 gUnknown_0840B878[] =
+{
+ 1, 6, 7,
+ 1, 8, 9,
+ 1, 0xFF, 1,
+ 1, 0x88, 0x89,
+ 1, 0x86, 0x87,
+#ifdef GERMAN
+ 1, 0, 0,
+ 1, 0xFF, 0xFF,
+ 1, 0x80, 0x8A,
+ 1, 0xFF, 0xFF,
+ 1, 0xFF, 0xFF,
+ 0, 1, 0,
+ 0xFF, 1, 0xFF,
+ 0xFF, 1, 0xFF,
+ 0xFF, 1, 0xFF,
+ 0x80, 1, 0x80,
+#endif
+};
+
+#ifdef GERMAN
+#include "../data/credits_de.h"
+#else
+#include "../data/credits_en.h"
+#endif
+
+const u8 gUnknown_0840CA00[][2] =
+{
+ {104, 36},
+ {120, 36},
+ {136, 36},
+};
+
+static const union AnimCmd gSpriteAnim_840CA08[] =
+{
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(64, 8),
+ ANIMCMD_FRAME(128, 8),
+ ANIMCMD_FRAME(192, 8),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd gSpriteAnim_840CA1C[] =
+{
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(64, 4),
+ ANIMCMD_FRAME(128, 4),
+ ANIMCMD_FRAME(192, 4),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd gSpriteAnim_840CA30[] =
+{
+ ANIMCMD_FRAME(256, 4),
+ ANIMCMD_FRAME(320, 4),
+ ANIMCMD_FRAME(384, 4),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd gSpriteAnim_840CA40[] =
+{
+ ANIMCMD_FRAME(384, 30),
+ ANIMCMD_FRAME(320, 30),
+ ANIMCMD_FRAME(256, 30),
+ ANIMCMD_FRAME(256, 30),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd *const gSpriteAnimTable_0840CA54[] =
+{
+ gSpriteAnim_840CA08,
+ gSpriteAnim_840CA1C,
+ gSpriteAnim_840CA30,
+ gSpriteAnim_840CA40,
+};
+
+static const union AnimCmd gSpriteAnim_840CA64[] =
+{
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(64, 8),
+ ANIMCMD_FRAME(128, 8),
+ ANIMCMD_FRAME(192, 8),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd gSpriteAnim_840CA78[] =
+{
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(64, 4),
+ ANIMCMD_FRAME(128, 4),
+ ANIMCMD_FRAME(192, 4),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd gSpriteAnim_840CA8C[] =
+{
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd *const gSpriteAnimTable_0840CA94[] =
+{
+ gSpriteAnim_840CA64,
+ gSpriteAnim_840CA78,
+ gSpriteAnim_840CA8C,
+};
+
+static const struct SpriteSheet gUnknown_0840CAA0[] = {{ewram1E000_2, 6144, 1001}, {0}};
+static const struct SpritePalette gUnknown_0840CAB0[] = {{ewram_1F800_2, 1001}, {0}};
+
+static const struct OamData gOamData_840CAC0 =
+{
+ .y = 160,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const union AnimCmd gSpriteAnim_840CAC8[] =
+{
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd gSpriteAnim_840CAD0[] =
+{
+ ANIMCMD_FRAME(64, 8),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd gSpriteAnim_840CAD8[] =
+{
+ ANIMCMD_FRAME(128, 8),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd *const gSpriteAnimTable_840CAE0[] =
+{
+ gSpriteAnim_840CAC8,
+ gSpriteAnim_840CAD0,
+ gSpriteAnim_840CAD8,
+};
+
+static const struct SpriteTemplate gSpriteTemplate_840CAEC =
+{
+ .tileTag = 1001,
+ .paletteTag = 1001,
+ .oam = &gOamData_840CAC0,
+ .anims = gSpriteAnimTable_840CAE0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = spritecb_814580C,
+};
// graphics
extern u8 gCreditsCopyrightEnd_Gfx[];
@@ -339,7 +520,7 @@ static void task_a_8143B38(u8 taskIdA)
static void task_a_8143B68(u8 taskIdA)
{
- u16 data11;
+ u16 data1;
if (gTasks[taskIdA].data[TDA_4])
{
@@ -354,18 +535,18 @@ static void task_a_8143B68(u8 taskIdA)
}
gUnknown_02039320 = 0;
- data11 = gTasks[taskIdA].data[TDA_11];
+ data1 = gTasks[taskIdA].data[TDA_11];
if (gTasks[taskIdA].data[TDA_11] == 1)
{
- gTasks[taskIdA].data[TDA_13] = data11;
+ gTasks[taskIdA].data[TDA_13] = data1;
gTasks[taskIdA].data[TDA_11] = 0;
BeginNormalPaletteFade(-1, 0, 0, 16, 0);
gTasks[taskIdA].func = task_a_8143BFC;
}
else if (gTasks[taskIdA].data[TDA_11] == 2)
{
- gTasks[taskIdA].data[TDA_13] = data11;
+ gTasks[taskIdA].data[TDA_13] = data1;
gTasks[taskIdA].data[TDA_11] = 0;
BeginNormalPaletteFade(-1, 0, 0, 16, 0);
gTasks[taskIdA].func = task_a_8143CC0;
@@ -441,8 +622,8 @@ void task_a_8143D04(u8 taskIdA)
EWRAM_1F800[2] = 0x529F; // light red
EWRAM_1F800[3] = 0x7E94; // light blue
- LoadSpriteSheet(&gUnknown_0840CAA0);
- LoadSpritePalette(&gUnknown_0840CAB0);
+ LoadSpriteSheet(gUnknown_0840CAA0);
+ LoadSpritePalette(gUnknown_0840CAB0);
gMain.state += 1;
break;
@@ -775,12 +956,12 @@ static void task_d_8144514(u8 taskIdD)
if (r6->unk8C < r6->unk8E - 1)
{
r6->unk8C++;
- gSprites[r2].data3 = 50;
+ gSprites[r2].data[3] = 50;
}
else
{
r6->unk8C = 0;
- gSprites[r2].data3 = 512;
+ gSprites[r2].data[3] = 512;
}
r6->unk88++;
if (r6->unk8A == 2)
@@ -815,7 +996,7 @@ void task_c_8144664(u8 taskIdC)
}
else
{
- gSprites[gTasks[taskIdC].data[TDC_2]].data0 = 2;
+ gSprites[gTasks[taskIdC].data[TDC_2]].data[0] = 2;
gTasks[taskIdC].data[TDC_5] = 0;
gTasks[taskIdC].data[TDC_0]++;
}
@@ -832,8 +1013,8 @@ void task_c_8144664(u8 taskIdC)
}
break;
case 3:
- gSprites[gTasks[taskIdC].data[TDC_2]].data0 = 3;
- gSprites[gTasks[taskIdC].data[TDC_3]].data0 = 1;
+ gSprites[gTasks[taskIdC].data[TDC_2]].data[0] = 3;
+ gSprites[gTasks[taskIdC].data[TDC_3]].data[0] = 1;
gTasks[taskIdC].data[TDC_4] = 120;
gTasks[taskIdC].data[TDC_0]++;
break;
@@ -856,7 +1037,7 @@ void task_c_8144664(u8 taskIdC)
}
else
{
- gSprites[gTasks[taskIdC].data[TDC_2]].data0 = 1;
+ gSprites[gTasks[taskIdC].data[TDC_2]].data[0] = 1;
gTasks[taskIdC].data[TDC_0]++;
}
break;
@@ -864,16 +1045,16 @@ void task_c_8144664(u8 taskIdC)
gTasks[taskIdC].data[TDC_0] = 50;
break;
case 10:
- gSprites[gTasks[taskIdC].data[TDC_3]].data0 = 2;
+ gSprites[gTasks[taskIdC].data[TDC_3]].data[0] = 2;
gTasks[taskIdC].data[TDC_0] = 50;
break;
case 20:
- gSprites[gTasks[taskIdC].data[TDC_2]].data0 = 4;
+ gSprites[gTasks[taskIdC].data[TDC_2]].data[0] = 4;
gTasks[taskIdC].data[TDC_0] = 50;
break;
case 30:
- gSprites[gTasks[taskIdC].data[TDC_2]].data0 = 5;
- gSprites[gTasks[taskIdC].data[TDC_3]].data0 = 3;
+ gSprites[gTasks[taskIdC].data[TDC_2]].data[0] = 5;
+ gSprites[gTasks[taskIdC].data[TDC_3]].data[0] = 3;
gTasks[taskIdC].data[TDC_0] = 50;
break;
case 50:
@@ -951,8 +1132,8 @@ static void sub_8144A68(u8 data, u8 taskIdA)
gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 272;
gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46;
gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data0 = 0;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data0 = 0;
+ gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0;
+ gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0;
gTasks[taskIdA].data[TDA_0] = sub_8148EC0(0, 0x2000, 0x20, 8);
break;
case 1:
@@ -962,8 +1143,8 @@ static void sub_8144A68(u8 data, u8 taskIdA)
gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 272;
gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46;
gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data0 = 0;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data0 = 0;
+ gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0;
+ gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0;
gTasks[taskIdA].data[TDA_0] = sub_8148EC0(0, 0x2000, 0x20, 8);
break;
case 2:
@@ -973,8 +1154,8 @@ static void sub_8144A68(u8 data, u8 taskIdA)
gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 272;
gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46;
gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data0 = 0;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data0 = 0;
+ gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0;
+ gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0;
gTasks[taskIdA].data[TDA_0] = sub_8148EC0(1, 0x2000, 0x200, 8);
break;
case 3:
@@ -984,8 +1165,8 @@ static void sub_8144A68(u8 data, u8 taskIdA)
gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = -32;
gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46;
gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data0 = 0;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data0 = 0;
+ gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0;
+ gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0;
gTasks[taskIdA].data[TDA_0] = sub_8148EC0(1, 0x2000, 0x200, 8);
break;
case 4:
@@ -995,8 +1176,8 @@ static void sub_8144A68(u8 data, u8 taskIdA)
gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 152;
gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46;
gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46;
- gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data0 = 0;
- gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data0 = 0;
+ gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0;
+ gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0;
gTasks[taskIdA].data[TDA_0] = sub_8148EC0(2, 0x2000, 0x200, 8);
break;
}
@@ -1160,7 +1341,7 @@ u16 sub_8145208(u8 arg0)
return out;
}
-void sub_814524C(u8 arg0[], u8 baseX, u8 baseY, u16 arg3, u16 palette)
+void sub_814524C(const u8 arg0[], u8 baseX, u8 baseY, u16 arg3, u16 palette)
{
u8 y, x;
const u16 tileOffset = (palette / 16) << 12;
@@ -1203,7 +1384,7 @@ static void spritecb_player_8145378(struct Sprite *sprite)
return;
}
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
StartSpriteAnimIfDifferent(sprite, 0);
@@ -1240,7 +1421,7 @@ static void spritecb_rival_8145420(struct Sprite *sprite)
return;
}
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
sprite->pos2.y = 0;
@@ -1256,9 +1437,9 @@ static void spritecb_rival_8145420(struct Sprite *sprite)
sprite->pos2.y = -gUnknown_0203935A;
break;
case 2:
- sprite->data7 += 1;
+ sprite->data[7] += 1;
StartSpriteAnimIfDifferent(sprite, 0);
- if ((sprite->data7 & 3) == 0)
+ if ((sprite->data[7] & 3) == 0)
sprite->pos1.x += 1;
break;
case 3:
@@ -1277,74 +1458,74 @@ void spritecb_81454E0(struct Sprite *sprite)
return;
}
- sprite->data7 += 1;
- switch (sprite->data0)
+ sprite->data[7] += 1;
+ switch (sprite->data[0])
{
case 0:
default:
sprite->oam.affineMode = 1;
- sprite->oam.matrixNum = sprite->data1;
- sprite->data2 = 16;
- SetOamMatrix(sprite->data1, 0x10000 / sprite->data2, 0, 0, 0x10000 / sprite->data2);
+ sprite->oam.matrixNum = sprite->data[1];
+ sprite->data[2] = 16;
+ SetOamMatrix(sprite->data[1], 0x10000 / sprite->data[2], 0, 0, 0x10000 / sprite->data[2]);
sprite->invisible = FALSE;
- sprite->data0 = 1;
+ sprite->data[0] = 1;
break;
case 1:
- if (sprite->data2 < 256)
+ if (sprite->data[2] < 256)
{
- sprite->data2 += 8;
- SetOamMatrix(sprite->data1, 0x10000 / sprite->data2, 0, 0, 0x10000 / sprite->data2);
+ sprite->data[2] += 8;
+ SetOamMatrix(sprite->data[1], 0x10000 / sprite->data[2], 0, 0, 0x10000 / sprite->data[2]);
}
else
{
- sprite->data0 += 1;
+ sprite->data[0] += 1;
}
- switch (sprite->data1)
+ switch (sprite->data[1])
{
case 1:
- if ((sprite->data7 & 3) == 0)
+ if ((sprite->data[7] & 3) == 0)
sprite->pos1.y += 1;
sprite->pos1.x -= 2;
break;
case 2:
break;
case 3:
- if ((sprite->data7 & 3) == 0)
+ if ((sprite->data[7] & 3) == 0)
sprite->pos1.y += 1;
sprite->pos1.x += 2;
break;
}
break;
case 2:
- if (sprite->data3 != 0)
+ if (sprite->data[3] != 0)
{
- sprite->data3 -= 1;
+ sprite->data[3] -= 1;
}
else
{
REG_BLDCNT = 0xF40;
REG_BLDALPHA = 0x10;
sprite->oam.objMode = 1;
- sprite->data3 = 16;
- sprite->data0 += 1;
+ sprite->data[3] = 16;
+ sprite->data[0] += 1;
}
break;
case 3:
- if (sprite->data3 != 0)
+ if (sprite->data[3] != 0)
{
int data3;
vu16 *reg;
- sprite->data3 -= 1;
+ sprite->data[3] -= 1;
reg = &REG_BLDALPHA;
- data3 = 16 - sprite->data3;
- *reg = (data3 << 8) + sprite->data3;
+ data3 = 16 - sprite->data[3];
+ *reg = (data3 << 8) + sprite->data[3];
}
else
{
sprite->invisible = TRUE;
- sprite->data0 = 10;
+ sprite->data[0] = 10;
}
break;
case 10:
@@ -1394,12 +1575,12 @@ static u8 sub_81456B4(u16 species, u16 x, u16 y, u16 position)
spriteId = CreateSprite(&gUnknown_02024E8C, x, y, 0);
gSprites[spriteId].oam.paletteNum = position;
gSprites[spriteId].oam.priority = 1;
- gSprites[spriteId].data1 = position + 1;
+ gSprites[spriteId].data[1] = position + 1;
gSprites[spriteId].invisible = TRUE;
gSprites[spriteId].callback = spritecb_81454E0;
spriteId2 = CreateSprite(&gSpriteTemplate_840CAEC, gSprites[spriteId].pos1.x, gSprites[spriteId].pos1.y, 1);
- gSprites[spriteId2].data0 = spriteId;
+ gSprites[spriteId2].data[0] = spriteId;
StartSpriteAnimIfDifferent(&gSprites[spriteId2], position);
@@ -1408,18 +1589,18 @@ static u8 sub_81456B4(u16 species, u16 x, u16 y, u16 position)
void spritecb_814580C(struct Sprite *sprite)
{
- if (gSprites[sprite->data0].data0 == 10 || gUnknown_0203935C)
+ if (gSprites[sprite->data[0]].data[0] == 10 || gUnknown_0203935C)
{
DestroySprite(sprite);
return;
}
- sprite->invisible = gSprites[sprite->data0].invisible;
- sprite->oam.objMode = gSprites[sprite->data0].oam.objMode;
- sprite->oam.affineMode = gSprites[sprite->data0].oam.affineMode;
- sprite->oam.matrixNum = gSprites[sprite->data0].oam.matrixNum;
- sprite->pos1.x = gSprites[sprite->data0].pos1.x;
- sprite->pos1.y = gSprites[sprite->data0].pos1.y;
+ sprite->invisible = gSprites[sprite->data[0]].invisible;
+ sprite->oam.objMode = gSprites[sprite->data[0]].oam.objMode;
+ sprite->oam.affineMode = gSprites[sprite->data[0]].oam.affineMode;
+ sprite->oam.matrixNum = gSprites[sprite->data[0]].oam.matrixNum;
+ sprite->pos1.x = gSprites[sprite->data[0]].pos1.x;
+ sprite->pos1.y = gSprites[sprite->data[0]].pos1.y;
}
static void sub_81458DC(void)
diff --git a/src/scene/egg_hatch.c b/src/scene/egg_hatch.c
index 032dcd284..c0111de7d 100644
--- a/src/scene/egg_hatch.c
+++ b/src/scene/egg_hatch.c
@@ -1,27 +1,28 @@
#include "global.h"
-#include "pokemon.h"
-#include "items.h"
-#include "decompress.h"
#include "data2.h"
-#include "task.h"
-#include "script.h"
-#include "palette.h"
-#include "overworld.h"
-#include "main.h"
+#include "daycare.h"
+#include "decompress.h"
#include "event_data.h"
+#include "ewram.h"
+#include "constants/items.h"
+#include "main.h"
+#include "menu.h"
+#include "naming_screen.h"
+#include "overworld.h"
+#include "palette.h"
+#include "pokemon.h"
+#include "random.h"
+#include "script.h"
+#include "constants/songs.h"
#include "sound.h"
-#include "songs.h"
-#include "text.h"
-#include "text_window.h"
#include "string_util.h"
#include "strings2.h"
-#include "menu.h"
-#include "naming_screen.h"
+#include "task.h"
+#include "text.h"
+#include "text_window.h"
#include "trig.h"
-#include "rng.h"
#include "trade.h"
-extern u8 ewram[];
extern struct SpriteTemplate gUnknown_02024E8C;
struct EggHatchData
@@ -47,7 +48,6 @@ extern const struct SpriteSheet sUnknown_0820A3B8;
extern const struct SpritePalette sUnknown_0820A3C0;
bool8 GetSetPokedexFlag(u16 nationalNum, u8 caseID);
-u8* GetMonNick(struct Pokemon* mon, u8* dst);
u8 sav1_map_get_name(void);
const struct CompressedSpritePalette* GetMonSpritePalStruct(struct Pokemon* mon); //gets pokemon palette address
void sub_8080990(void);
@@ -391,7 +391,7 @@ _08042B42:\n\
bool8 sub_8042B4C(void)
{
- return sub_8042ABC(&gSaveBlock1.daycareData, gSpecialVar_0x8004);
+ return sub_8042ABC(&gSaveBlock1.daycare, gSpecialVar_0x8004);
}
static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID)
@@ -416,7 +416,7 @@ static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID)
{
u16 species = GetMonData(mon, MON_DATA_SPECIES);
u32 pid = GetMonData(mon, MON_DATA_PERSONALITY);
- HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset,(u32)(&ewram[0]), gUnknown_081FAF4C[2 * a0 + 1], species, pid);
+ HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, ewram0_6, gUnknown_081FAF4C[2 * a0 + 1], species, pid);
LoadCompressedObjectPalette(GetMonSpritePalStruct(mon));
}
break;
@@ -460,7 +460,7 @@ static void CB2_EggHatch_0(void)
{
case 0:
REG_DISPCNT = 0;
- gEggHatchData = (struct EggHatchData*)(&ewram[0x18000]);
+ gEggHatchData = eEggHatchData;
gEggHatchData->eggPartyID = gSpecialVar_0x8004;
gEggHatchData->eggShardVelocityID = 0;
ResetTasks();
@@ -479,8 +479,8 @@ static void CB2_EggHatch_0(void)
break;
case 2:
LZDecompressVram(&gUnknown_08D00000, (void*)(VRAM));
- CpuSet(&gUnknown_08D00524, &ewram[0], 0x800);
- DmaCopy16(3, &ewram[0], (void*)(VRAM + 0x2800), 0x500);
+ CpuSet(&gUnknown_08D00524, ewram0_7, 0x800);
+ DmaCopy16(3, ewram0_7, (void*)(VRAM + 0x2800), 0x500);
LoadCompressedPalette(&gUnknown_08D004E0, 0, 0x20);
gMain.state++;
break;
@@ -669,16 +669,16 @@ static void CB2_EggHatch_1(void)
static void SpriteCB_Egg_0(struct Sprite* sprite)
{
- if (++sprite->data0 > 20)
+ if (++sprite->data[0] > 20)
{
sprite->callback = SpriteCB_Egg_1;
- sprite->data0 = 0;
+ sprite->data[0] = 0;
}
else
{
- sprite->data1 = (sprite->data1 + 20) & 0xFF;
- sprite->pos2.x = Sin(sprite->data1, 1);
- if (sprite->data0 == 15)
+ sprite->data[1] = (sprite->data[1] + 20) & 0xFF;
+ sprite->pos2.x = Sin(sprite->data[1], 1);
+ if (sprite->data[0] == 15)
{
PlaySE(SE_BOWA);
StartSpriteAnim(sprite, 1);
@@ -689,19 +689,19 @@ static void SpriteCB_Egg_0(struct Sprite* sprite)
static void SpriteCB_Egg_1(struct Sprite* sprite)
{
- if (++sprite->data2 > 30)
+ if (++sprite->data[2] > 30)
{
- if (++sprite->data0 > 20)
+ if (++sprite->data[0] > 20)
{
sprite->callback = SpriteCB_Egg_2;
- sprite->data0 = 0;
- sprite->data2 = 0;
+ sprite->data[0] = 0;
+ sprite->data[2] = 0;
}
else
{
- sprite->data1 = (sprite->data1 + 20) & 0xFF;
- sprite->pos2.x = Sin(sprite->data1, 2);
- if (sprite->data0 == 15)
+ sprite->data[1] = (sprite->data[1] + 20) & 0xFF;
+ sprite->pos2.x = Sin(sprite->data[1], 2);
+ if (sprite->data[0] == 15)
{
PlaySE(SE_BOWA);
StartSpriteAnim(sprite, 2);
@@ -712,30 +712,30 @@ static void SpriteCB_Egg_1(struct Sprite* sprite)
static void SpriteCB_Egg_2(struct Sprite* sprite)
{
- if (++sprite->data2 > 30)
+ if (++sprite->data[2] > 30)
{
- if (++sprite->data0 > 38)
+ if (++sprite->data[0] > 38)
{
u16 species;
sprite->callback = SpriteCB_Egg_3;
- sprite->data0 = 0;
+ sprite->data[0] = 0;
species = GetMonData(&gPlayerParty[gEggHatchData->eggPartyID], MON_DATA_SPECIES);
gSprites[gEggHatchData->pokeSpriteID].pos2.x = 0;
gSprites[gEggHatchData->pokeSpriteID].pos2.y = gMonFrontPicCoords[species].y_offset;
}
else
{
- sprite->data1 = (sprite->data1 + 20) & 0xFF;
- sprite->pos2.x = Sin(sprite->data1, 2);
- if (sprite->data0 == 15)
+ sprite->data[1] = (sprite->data[1] + 20) & 0xFF;
+ sprite->pos2.x = Sin(sprite->data[1], 2);
+ if (sprite->data[0] == 15)
{
PlaySE(SE_BOWA);
StartSpriteAnim(sprite, 2);
CreateRandomEggShardSprite();
CreateRandomEggShardSprite();
}
- if (sprite->data0 == 30)
+ if (sprite->data[0] == 30)
PlaySE(SE_BOWA);
}
}
@@ -743,60 +743,60 @@ static void SpriteCB_Egg_2(struct Sprite* sprite)
static void SpriteCB_Egg_3(struct Sprite* sprite)
{
- if (++sprite->data0 > 50)
+ if (++sprite->data[0] > 50)
{
sprite->callback = SpriteCB_Egg_4;
- sprite->data0 = 0;
+ sprite->data[0] = 0;
}
}
static void SpriteCB_Egg_4(struct Sprite* sprite)
{
s16 i;
- if (sprite->data0 == 0)
+ if (sprite->data[0] == 0)
BeginNormalPaletteFade(-1, -1, 0, 0x10, 0xFFFF);
- if (sprite->data0 < 4u)
+ if (sprite->data[0] < 4u)
{
for (i = 0; i <= 3; i++)
CreateRandomEggShardSprite();
}
- sprite->data0++;
+ sprite->data[0]++;
if (!gPaletteFade.active)
{
PlaySE(SE_TAMAGO);
sprite->invisible = 1;
sprite->callback = SpriteCB_Egg_5;
- sprite->data0 = 0;
+ sprite->data[0] = 0;
}
}
static void SpriteCB_Egg_5(struct Sprite* sprite)
{
- if (sprite->data0 == 0)
+ if (sprite->data[0] == 0)
{
gSprites[gEggHatchData->pokeSpriteID].invisible = 0;
StartSpriteAffineAnim(&gSprites[gEggHatchData->pokeSpriteID], 1);
}
- if (sprite->data0 == 8)
+ if (sprite->data[0] == 8)
BeginNormalPaletteFade(-1, -1, 0x10, 0, 0xFFFF);
- if (sprite->data0 <= 9)
+ if (sprite->data[0] <= 9)
gSprites[gEggHatchData->pokeSpriteID].pos1.y -= 1;
- if (sprite->data0 > 40)
+ if (sprite->data[0] > 40)
sprite->callback = SpriteCallbackDummy;
- sprite->data0++;
+ sprite->data[0]++;
}
static void SpriteCB_EggShard(struct Sprite* sprite)
{
- sprite->data4 += sprite->data1;
- sprite->data5 += sprite->data2;
+ sprite->data[4] += sprite->data[1];
+ sprite->data[5] += sprite->data[2];
- sprite->pos2.x = sprite->data4 / 256;
- sprite->pos2.y = sprite->data5 / 256;
+ sprite->pos2.x = sprite->data[4] / 256;
+ sprite->pos2.y = sprite->data[5] / 256;
- sprite->data2 += sprite->data3;
+ sprite->data[2] += sprite->data[3];
- if (sprite->pos1.y + sprite->pos2.y > sprite->pos1.y + 20 && sprite->data2 > 0)
+ if (sprite->pos1.y + sprite->pos2.y > sprite->pos1.y + 20 && sprite->data[2] > 0)
DestroySprite(sprite);
}
@@ -840,9 +840,9 @@ static void CreateRandomEggShardSprite(void)
static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 spriteAnimIndex)
{
u8 spriteID = CreateSprite(&sSpriteTemplate_820A418, x, y, 4);
- gSprites[spriteID].data1 = data1;
- gSprites[spriteID].data2 = data2;
- gSprites[spriteID].data3 = data3;
+ gSprites[spriteID].data[1] = data1;
+ gSprites[spriteID].data[2] = data2;
+ gSprites[spriteID].data[3] = data3;
StartSpriteAnim(&gSprites[spriteID], spriteAnimIndex);
}
diff --git a/src/scene/evolution_graphics.c b/src/scene/evolution_graphics.c
index 1fd5bf8fa..b9ef5b402 100644
--- a/src/scene/evolution_graphics.c
+++ b/src/scene/evolution_graphics.c
@@ -2,11 +2,11 @@
#include "evolution_graphics.h"
#include "sprite.h"
#include "trig.h"
-#include "rng.h"
+#include "random.h"
#include "decompress.h"
#include "task.h"
#include "sound.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "palette.h"
// this file's functions
@@ -115,18 +115,18 @@ static void SpriteCB_PreEvoSparkleSet1(struct Sprite* sprite)
{
u8 matrixNum;
- sprite->pos1.y = 88 - (sprite->data7 * sprite->data7) / 80;
- sprite->pos2.y = Sin((u8)(sprite->data6), sprite->data5) / 4;
- sprite->pos2.x = Cos((u8)(sprite->data6), sprite->data5);
- sprite->data6 += 4;
- if (sprite->data7 & 1)
- sprite->data5--;
- sprite->data7++;
+ sprite->pos1.y = 88 - (sprite->data[7] * sprite->data[7]) / 80;
+ sprite->pos2.y = Sin((u8)(sprite->data[6]), sprite->data[5]) / 4;
+ sprite->pos2.x = Cos((u8)(sprite->data[6]), sprite->data[5]);
+ sprite->data[6] += 4;
+ if (sprite->data[7] & 1)
+ sprite->data[5]--;
+ sprite->data[7]++;
if (sprite->pos2.y > 0)
sprite->subpriority = 1;
else
sprite->subpriority = 20;
- matrixNum = sprite->data5 / 4 + 20;
+ matrixNum = sprite->data[5] / 4 + 20;
if (matrixNum > 31)
matrixNum = 31;
sprite->oam.matrixNum = matrixNum;
@@ -140,9 +140,9 @@ static void CreatePreEvoSparkleSet1(u8 arg0)
u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 88, 0);
if (spriteID != MAX_SPRITES)
{
- gSprites[spriteID].data5 = 48;
- gSprites[spriteID].data6 = arg0;
- gSprites[spriteID].data7 = 0;
+ gSprites[spriteID].data[5] = 48;
+ gSprites[spriteID].data[6] = arg0;
+ gSprites[spriteID].data[7] = 0;
gSprites[spriteID].oam.affineMode = 1;
gSprites[spriteID].oam.matrixNum = 31;
gSprites[spriteID].callback = SpriteCB_PreEvoSparkleSet1;
@@ -153,11 +153,11 @@ static void SpriteCB_PreEvoSparkleSet2(struct Sprite* sprite)
{
if (sprite->pos1.y < 88)
{
- sprite->pos1.y = 8 + (sprite->data7 * sprite->data7) / 5;
- sprite->pos2.y = Sin((u8)(sprite->data6), sprite->data5) / 4;
- sprite->pos2.x = Cos((u8)(sprite->data6), sprite->data5);
- sprite->data5 = 8 + Sin((u8)(sprite->data7 * 4), 40);
- sprite->data7++;
+ sprite->pos1.y = 8 + (sprite->data[7] * sprite->data[7]) / 5;
+ sprite->pos2.y = Sin((u8)(sprite->data[6]), sprite->data[5]) / 4;
+ sprite->pos2.x = Cos((u8)(sprite->data[6]), sprite->data[5]);
+ sprite->data[5] = 8 + Sin((u8)(sprite->data[7] * 4), 40);
+ sprite->data[7]++;
}
else
DestroySprite(sprite);
@@ -168,9 +168,9 @@ static void CreatePreEvoSparkleSet2(u8 arg0)
u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 8, 0);
if (spriteID != MAX_SPRITES)
{
- gSprites[spriteID].data5 = 8;
- gSprites[spriteID].data6 = arg0;
- gSprites[spriteID].data7 = 0;
+ gSprites[spriteID].data[5] = 8;
+ gSprites[spriteID].data[6] = arg0;
+ gSprites[spriteID].data[7] = 0;
gSprites[spriteID].oam.affineMode = 1;
gSprites[spriteID].oam.matrixNum = 25;
gSprites[spriteID].subpriority = 1;
@@ -180,12 +180,12 @@ static void CreatePreEvoSparkleSet2(u8 arg0)
static void SpriteCB_PostEvoSparkleSet1(struct Sprite* sprite)
{
- if (sprite->data5 > 8)
+ if (sprite->data[5] > 8)
{
- sprite->pos2.y = Sin((u8)(sprite->data6), sprite->data5);
- sprite->pos2.x = Cos((u8)(sprite->data6), sprite->data5);
- sprite->data5 -= sprite->data3;
- sprite->data6 += 4;
+ sprite->pos2.y = Sin((u8)(sprite->data[6]), sprite->data[5]);
+ sprite->pos2.x = Cos((u8)(sprite->data[6]), sprite->data[5]);
+ sprite->data[5] -= sprite->data[3];
+ sprite->data[6] += 4;
}
else
DestroySprite(sprite);
@@ -196,10 +196,10 @@ static void CreatePostEvoSparkleSet1(u8 arg0, u8 arg1)
u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 56, 0);
if (spriteID != MAX_SPRITES)
{
- gSprites[spriteID].data3 = arg1;
- gSprites[spriteID].data5 = 120;
- gSprites[spriteID].data6 = arg0;
- gSprites[spriteID].data7 = 0;
+ gSprites[spriteID].data[3] = arg1;
+ gSprites[spriteID].data[5] = 120;
+ gSprites[spriteID].data[6] = arg0;
+ gSprites[spriteID].data[7] = 0;
gSprites[spriteID].oam.affineMode = 1;
gSprites[spriteID].oam.matrixNum = 31;
gSprites[spriteID].subpriority = 1;
@@ -209,29 +209,29 @@ static void CreatePostEvoSparkleSet1(u8 arg0, u8 arg1)
static void SpriteCB_PostEvoSparkleSet2(struct Sprite* sprite)
{
- if (!(sprite->data7 & 3))
+ if (!(sprite->data[7] & 3))
sprite->pos1.y++;
- if (sprite->data6 < 128)
+ if (sprite->data[6] < 128)
{
u8 matrixNum;
- sprite->pos2.y = -Sin((u8)(sprite->data6), sprite->data5);
- sprite->pos1.x = 120 + (sprite->data3 * sprite->data7) / 3;
- sprite->data6++;
- matrixNum = 31 - (sprite->data6 * 12 / 128);
- if (sprite->data6 > 64)
+ sprite->pos2.y = -Sin((u8)(sprite->data[6]), sprite->data[5]);
+ sprite->pos1.x = 120 + (sprite->data[3] * sprite->data[7]) / 3;
+ sprite->data[6]++;
+ matrixNum = 31 - (sprite->data[6] * 12 / 128);
+ if (sprite->data[6] > 64)
sprite->subpriority = 1;
else
{
sprite->invisible = 0;
sprite->subpriority = 20;
- if (sprite->data6 > 112 && sprite->data6 & 1)
+ if (sprite->data[6] > 112 && sprite->data[6] & 1)
sprite->invisible = 1;
}
if (matrixNum < 20)
matrixNum = 20;
sprite->oam.matrixNum = matrixNum;
- sprite->data7++;
+ sprite->data[7]++;
}
else
DestroySprite(sprite);
@@ -242,9 +242,9 @@ static void CreatePostEvoSparkleSet2(u8 arg0)
u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 56, 0);
if (spriteID != MAX_SPRITES)
{
- gSprites[spriteID].data3 = 3 - (Random() % 7);
- gSprites[spriteID].data5 = 48 + (Random() & 0x3F);
- gSprites[spriteID].data7 = 0;
+ 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.matrixNum = 31;
gSprites[spriteID].subpriority = 20;
diff --git a/src/scene/evolution_scene.c b/src/scene/evolution_scene.c
index 24168dc56..e0b42e1c7 100644
--- a/src/scene/evolution_scene.c
+++ b/src/scene/evolution_scene.c
@@ -16,14 +16,15 @@
#include "trade.h"
#include "menu.h"
#include "pokedex.h"
-#include "species.h"
+#include "constants/species.h"
#include "sound.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "overworld.h"
#include "battle_message.h"
#include "pokemon_summary_screen.h"
#include "menu_cursor.h"
#include "strings2.h"
+#include "ewram.h"
struct EvoInfo
{
@@ -55,8 +56,6 @@ struct EvoInfo
u8 unkA0C4; // 0x201E8C4
};
-#define sEvoInfo ((*(struct EvoInfo*)(ewram + 0x14800)))
-
void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies);
void sub_8024CEC(void);
void sub_8023A80(void);
@@ -78,7 +77,6 @@ extern u8 gBattleTerrain;
extern u8 gReservedSpritePaletteCount;
extern u16 gMoveToLearn;
extern struct SpriteTemplate gUnknown_02024E8C;
-extern u8 gUnk_2009000[]; // won't match if I 'ewram' it
extern bool8 gAffineAnimsDisabled;
extern u8 gDisplayedStringBattle[];
extern u8 gBattleTextBuff2[];
@@ -87,9 +85,9 @@ extern u8 gBattleCommunication[];
#define sEvoCursorPos gBattleCommunication[1] // when learning a new move
#define sEvoGraphicsTaskID gBattleCommunication[2]
-extern const u8 gUnknown_08400C4A[];
-extern const u8 gUnknown_08400C60[];
-extern const u8 gUnknown_08400C8D[];
+extern const u8 BattleText_StartEvo[];
+extern const u8 BattleText_FinishEvo[];
+extern const u8 BattleText_StopEvo[];
extern void * const gUnknown_081FAF4C[];
extern const u8* const gBattleStringsTable[];
@@ -133,7 +131,7 @@ static void CB2_BeginEvolutionScene(void)
#define tLearnsFirstMove data[6]
#define tLearnMoveState data[8]
#define tData9 data[9]
-#define tData10 data[10]
+#define tdata10 data[10]
#define tEvoWasStopped data[11]
#define tPartyID data[12]
@@ -276,7 +274,7 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo,
gTasks[ID].tEvoWasStopped = FALSE;
gTasks[ID].tPartyID = partyID;
- memcpy(gUnk_2009000, &gPlttBufferUnfaded[0x20], 0x60);
+ memcpy(ewram9000_hack, &gPlttBufferUnfaded[0x20], 0x60);
REG_DISPCNT = DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_1D_MAP;
SetHBlankCallback(EvoDummyFunc);
@@ -559,7 +557,7 @@ static void Task_EvolutionScene(u8 taskID)
case 1: // print 'whoa, poke is evolving!!!' msg
if (!gPaletteFade.active)
{
- StringExpandPlaceholders(gStringVar4, gUnknown_08400C4A);
+ StringExpandPlaceholders(gStringVar4, BattleText_StartEvo);
sub_8002EB0(&gUnknown_03004210, gStringVar4, 144, 2, 15);
gTasks[taskID].tState++;
}
@@ -639,7 +637,7 @@ static void Task_EvolutionScene(u8 taskID)
{
m4aMPlayAllStop();
PlayCry1(gTasks[taskID].tPostEvoSpecies, 0);
- memcpy(&gPlttBufferUnfaded[0x20], gUnk_2009000, 0x60);
+ memcpy(&gPlttBufferUnfaded[0x20], ewram9000_hack, 0x60);
BeginNormalPaletteFade(0x1C, 0, 0x10, 0, 0);
gTasks[taskID].tState++;
}
@@ -647,7 +645,7 @@ static void Task_EvolutionScene(u8 taskID)
case 13: // congratulations string and rename prompt
if (IsCryFinished() && !gPaletteFade.active)
{
- StringExpandPlaceholders(gStringVar4, gUnknown_08400C60);
+ StringExpandPlaceholders(gStringVar4, BattleText_FinishEvo);
sub_8002EB0(&gUnknown_03004210, gStringVar4, 144, 2, 15);
PlayBGM(BGM_FANFA5);
gTasks[taskID].tState++;
@@ -716,7 +714,7 @@ static void Task_EvolutionScene(u8 taskID)
case 18: // after the cry, print the string 'WHOA IT DID NOT EVOLVE!!!'
if (IsCryFinished())
{
- StringExpandPlaceholders(gStringVar4, gUnknown_08400C8D);
+ StringExpandPlaceholders(gStringVar4, BattleText_StopEvo);
sub_8002EB0(&gUnknown_03004210, gStringVar4, 144, 2, 15);
gTasks[taskID].tEvoWasStopped = TRUE;
gTasks[taskID].tState = 14;
@@ -765,7 +763,7 @@ static void Task_EvolutionScene(u8 taskID)
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[6]);
sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gTasks[taskID].tData9 = 5;
- gTasks[taskID].tData10 = 9;
+ gTasks[taskID].tdata10 = 9;
gTasks[taskID].tLearnMoveState++;
}
case 3:
@@ -799,7 +797,7 @@ static void Task_EvolutionScene(u8 taskID)
sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
PlaySE(SE_SELECT);
if (sEvoCursorPos != 0)
- gTasks[taskID].tLearnMoveState = gTasks[taskID].tData10;
+ gTasks[taskID].tLearnMoveState = gTasks[taskID].tdata10;
else
{
gTasks[taskID].tLearnMoveState = gTasks[taskID].tData9;
@@ -813,13 +811,13 @@ static void Task_EvolutionScene(u8 taskID)
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[292]);
sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
PlaySE(SE_SELECT);
- gTasks[taskID].tLearnMoveState = gTasks[taskID].tData10;
+ gTasks[taskID].tLearnMoveState = gTasks[taskID].tdata10;
}
break;
case 5:
if (!gPaletteFade.active)
{
- sub_809D9F0(gPlayerParty, gTasks[taskID].tPartyID,
+ ShowSelectMovePokemonSummaryScreen(gPlayerParty, gTasks[taskID].tPartyID,
gPlayerPartyCount - 1, CB2_EvolutionSceneLoadGraphics,
gMoveToLearn);
gTasks[taskID].tLearnMoveState++;
@@ -876,7 +874,7 @@ static void Task_EvolutionScene(u8 taskID)
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[8]);
sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gTasks[taskID].tData9 = 10;
- gTasks[taskID].tData10 = 0;
+ gTasks[taskID].tdata10 = 0;
gTasks[taskID].tLearnMoveState = 3;
break;
case 10:
@@ -901,7 +899,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
switch (gTasks[taskID].tState)
{
case 0:
- StringExpandPlaceholders(gStringVar4, gUnknown_08400C4A);
+ StringExpandPlaceholders(gStringVar4, BattleText_StartEvo);
sub_8002EB0(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gTasks[taskID].tState++;
break;
@@ -981,7 +979,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
if (IsSEPlaying())
{
PlayCry1(gTasks[taskID].tPostEvoSpecies, 0);
- memcpy(&gPlttBufferUnfaded[0x20], gUnk_2009000, 0x60);
+ memcpy(&gPlttBufferUnfaded[0x20], ewram9000_hack, 0x60);
BeginNormalPaletteFade(1, 0, 0x10, 0, 0);
gTasks[taskID].tState++;
}
@@ -989,7 +987,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
case 12:
if (IsCryFinished() && !gPaletteFade.active)
{
- StringExpandPlaceholders(gStringVar4, gUnknown_08400C60);
+ StringExpandPlaceholders(gStringVar4, BattleText_FinishEvo);
sub_8002EB0(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
PlayFanfare(BGM_FANFA5);
gTasks[taskID].tState++;
@@ -1079,7 +1077,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[6]);
sub_8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gTasks[taskID].tData9 = 5;
- gTasks[taskID].tData10 = 9;
+ gTasks[taskID].tdata10 = 9;
gTasks[taskID].tLearnMoveState++;
}
case 3:
@@ -1118,7 +1116,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
sub_8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
PlaySE(SE_SELECT);
if (sEvoCursorPos != 0)
- gTasks[taskID].tLearnMoveState = gTasks[taskID].tData10;
+ gTasks[taskID].tLearnMoveState = gTasks[taskID].tdata10;
else
{
gTasks[taskID].tLearnMoveState = gTasks[taskID].tData9;
@@ -1133,13 +1131,13 @@ static void Task_TradeEvolutionScene(u8 taskID)
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[292]);
sub_8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
PlaySE(SE_SELECT);
- gTasks[taskID].tLearnMoveState = gTasks[taskID].tData10;
+ gTasks[taskID].tLearnMoveState = gTasks[taskID].tdata10;
}
break;
case 5:
if (!gPaletteFade.active)
{
- sub_809D9F0(gPlayerParty, gTasks[taskID].tPartyID,
+ ShowSelectMovePokemonSummaryScreen(gPlayerParty, gTasks[taskID].tPartyID,
gPlayerPartyCount - 1, CB2_TradeEvolutionSceneLoadGraphics,
gMoveToLearn);
gTasks[taskID].tLearnMoveState++;
@@ -1196,7 +1194,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[8]);
sub_8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gTasks[taskID].tData9 = 10;
- gTasks[taskID].tData10 = 0;
+ gTasks[taskID].tdata10 = 0;
gTasks[taskID].tLearnMoveState = 3;
break;
case 10:
@@ -1522,7 +1520,7 @@ __attribute__((naked))
void unref_sub_8113B50()
{
asm(".syntax unified\n\
- push {r4-r7,lr}\n\
+ push {r4-r7,lr}\n\
mov r7, r10\n\
mov r6, r9\n\
mov r5, r8\n\
@@ -1536,7 +1534,7 @@ void unref_sub_8113B50()
str r1, [sp, 0x10]\n\
movs r2, 0\n\
str r2, [sp, 0x8]\n\
- ldr r3, _08113C60 @ =0x02014800\n\
+ ldr r3, _08113C60 @ =gSharedMem + 0x14800\n\
mov r12, r3\n\
ldr r4, _08113C64 @ =0x000018c4\n\
add r4, r12\n\
@@ -1553,7 +1551,7 @@ _08113B7C:\n\
adds r0, r3, 0x4\n\
adds r0, r1, r0\n\
strb r2, [r0]\n\
- ldr r4, _08113C6C @ =0x02014844\n\
+ ldr r4, _08113C6C @ =gSharedMem + 0x14844\n\
adds r0, r1, r4\n\
strb r2, [r0]\n\
movs r6, 0\n\
@@ -1564,7 +1562,7 @@ _08113B7C:\n\
_08113B9C:\n\
mov r0, r9\n\
adds r1, r6, r0\n\
- ldr r5, _08113C70 @ =0x020158c4\n\
+ ldr r5, _08113C70 @ =gSharedMem + 0x158C4\n\
adds r0, r1, r5\n\
strb r2, [r0]\n\
mov r5, r10\n\
@@ -1573,7 +1571,7 @@ _08113B9C:\n\
mov r5, r8\n\
adds r0, r1, r5\n\
strb r2, [r0]\n\
- ldr r5, _08113C74 @ =0x020170c4\n\
+ ldr r5, _08113C74 @ =gSharedMem + 0x170C4\n\
adds r0, r1, r5\n\
strb r2, [r0]\n\
adds r7, r3, 0\n\
@@ -1654,7 +1652,7 @@ _08113C4A:\n\
asrs r0, r6, 1\n\
lsls r0, 2\n\
add r0, r10\n\
- ldr r1, _08113C98 @ =0x020188c4\n\
+ ldr r1, _08113C98 @ =gSharedMem + 0x188C4\n\
adds r0, r1\n\
str r2, [r0]\n\
cmp r3, 0\n\
@@ -1663,12 +1661,12 @@ _08113C4A:\n\
beq _08113CC6\n\
b _08113CF4\n\
.align 2, 0\n\
-_08113C60: .4byte 0x02014800\n\
+_08113C60: .4byte gSharedMem + 0x14800\n\
_08113C64: .4byte 0x000018c4\n\
_08113C68: .4byte 0x000020c4\n\
-_08113C6C: .4byte 0x02014844\n\
-_08113C70: .4byte 0x020158c4\n\
-_08113C74: .4byte 0x020170c4\n\
+_08113C6C: .4byte gSharedMem + 0x14844\n\
+_08113C70: .4byte gSharedMem + 0x158C4\n\
+_08113C74: .4byte gSharedMem + 0x170C4\n\
_08113C78: .4byte 0x000008c4\n\
_08113C7C: .4byte 0x000030c4\n\
_08113C80: .4byte 0x000038c4\n\
@@ -1677,7 +1675,7 @@ _08113C88: .4byte 0x000070c4\n\
_08113C8C: .4byte 0x000080c4\n\
_08113C90: .4byte 0x000090c4\n\
_08113C94: .4byte 0x0000a0c4\n\
-_08113C98: .4byte 0x020188c4\n\
+_08113C98: .4byte gSharedMem + 0x188C4\n\
_08113C9C:\n\
movs r0, 0x1\n\
ands r0, r6\n\
@@ -1784,7 +1782,7 @@ _08113D4A:\n\
mov r8, r2\n\
movs r3, 0\n\
str r3, [sp, 0x8]\n\
- ldr r0, _08113D84 @ =0x02014844\n\
+ ldr r0, _08113D84 @ =gSharedMem + 0x14844\n\
movs r4, 0x82\n\
lsls r4, 6\n\
adds r4, r0\n\
@@ -1811,7 +1809,7 @@ _08113D78:\n\
beq _08113DB4\n\
b _08113DE4\n\
.align 2, 0\n\
-_08113D84: .4byte 0x02014844\n\
+_08113D84: .4byte gSharedMem + 0x14844\n\
_08113D88:\n\
adds r0, r6, 0\n\
mov r1, r9\n\
@@ -1917,9 +1915,9 @@ _08113E28:\n\
str r1, [sp, 0x8]\n\
_08113E3A:\n\
ldr r3, [sp, 0x8]\n\
- ldr r4, _08113EBC @ =0x02014804\n\
+ ldr r4, _08113EBC @ =gSharedMem + 0x14804\n\
adds r2, r3, r4\n\
- ldr r5, _08113EC0 @ =0x02014844\n\
+ ldr r5, _08113EC0 @ =gSharedMem + 0x14844\n\
adds r1, r3, r5\n\
ldrb r0, [r2]\n\
adds r3, 0x1\n\
@@ -1934,7 +1932,7 @@ _08113E52:\n\
ldrb r2, [r2]\n\
cmp r0, r2\n\
bge _08113F54\n\
- ldr r0, _08113EC4 @ =0x02014800\n\
+ ldr r0, _08113EC4 @ =gSharedMem + 0x14800\n\
adds r0, 0x4\n\
ldr r1, [sp, 0x8]\n\
adds r0, r1, r0\n\
@@ -1945,7 +1943,7 @@ _08113E66:\n\
str r2, [sp, 0x14]\n\
movs r6, 0\n\
ldr r3, [sp, 0x8]\n\
- ldr r4, _08113EC0 @ =0x02014844\n\
+ ldr r4, _08113EC0 @ =gSharedMem + 0x14844\n\
adds r0, r3, r4\n\
ldr r5, [sp, 0xC]\n\
adds r5, 0x1\n\
@@ -1953,18 +1951,18 @@ _08113E66:\n\
ldrb r0, [r0]\n\
cmp r6, r0\n\
bge _08113F3E\n\
- ldr r0, _08113EC4 @ =0x02014800\n\
+ ldr r0, _08113EC4 @ =gSharedMem + 0x14800\n\
mov r10, r0\n\
lsls r0, r3, 5\n\
ldr r2, [sp, 0xC]\n\
adds r1, r2, r0\n\
mov r9, r0\n\
- ldr r0, _08113EC4 @ =0x02014800\n\
+ ldr r0, _08113EC4 @ =gSharedMem + 0x14800\n\
adds r0, 0xC4\n\
mov r3, r9\n\
adds r7, r3, r0\n\
mov r5, r9\n\
- ldr r4, _08113EC4 @ =0x02014800\n\
+ ldr r4, _08113EC4 @ =gSharedMem + 0x14800\n\
ldr r2, _08113EC8 @ =0x000010c4\n\
adds r0, r4, r2\n\
adds r1, r0\n\
@@ -1984,9 +1982,9 @@ _08113EA4:\n\
ldrb r0, [r0]\n\
b _08113ED6\n\
.align 2, 0\n\
-_08113EBC: .4byte 0x02014804\n\
-_08113EC0: .4byte 0x02014844\n\
-_08113EC4: .4byte 0x02014800\n\
+_08113EBC: .4byte gSharedMem + 0x14804\n\
+_08113EC0: .4byte gSharedMem + 0x14844\n\
+_08113EC4: .4byte gSharedMem + 0x14800\n\
_08113EC8: .4byte 0x000010c4\n\
_08113ECC: .4byte 0x000020c4\n\
_08113ED0:\n\
@@ -2004,7 +2002,7 @@ _08113ED6:\n\
add r0, r10\n\
adds r2, r5, r0\n\
ldrb r0, [r4]\n\
- ldr r1, _08113F04 @ =0x02014800\n\
+ ldr r1, _08113F04 @ =gSharedMem + 0x14800\n\
mov r12, r1\n\
ldrb r1, [r2]\n\
cmp r0, r1\n\
@@ -2015,7 +2013,7 @@ _08113ED6:\n\
.align 2, 0\n\
_08113EFC: .4byte 0x000018c4\n\
_08113F00: .4byte 0x000028c4\n\
-_08113F04: .4byte 0x02014800\n\
+_08113F04: .4byte gSharedMem + 0x14800\n\
_08113F08:\n\
ldrb r1, [r2]\n\
ldrb r0, [r4]\n\
@@ -2041,7 +2039,7 @@ _08113F2C:\n\
adds r5, 0x1\n\
adds r6, 0x1\n\
ldr r3, [sp, 0x8]\n\
- ldr r4, _08114054 @ =0x02014844\n\
+ ldr r4, _08114054 @ =gSharedMem + 0x14844\n\
adds r0, r3, r4\n\
ldrb r0, [r0]\n\
cmp r6, r0\n\
@@ -2059,9 +2057,9 @@ _08113F3E:\n\
blt _08113E66\n\
_08113F54:\n\
movs r6, 0\n\
- ldr r2, _08114058 @ =0x02014800\n\
+ ldr r2, _08114058 @ =gSharedMem + 0x14800\n\
ldr r1, [sp, 0x8]\n\
- ldr r3, _08114054 @ =0x02014844\n\
+ ldr r3, _08114054 @ =gSharedMem + 0x14844\n\
adds r0, r1, r3\n\
adds r4, r2, 0\n\
mov r12, r4\n\
@@ -2092,15 +2090,15 @@ _08113F6E:\n\
bl sub_811430C\n\
_08113F94:\n\
adds r6, 0x1\n\
- ldr r2, _08114058 @ =0x02014800\n\
+ ldr r2, _08114058 @ =gSharedMem + 0x14800\n\
ldrb r5, [r4]\n\
cmp r6, r5\n\
blt _08113F6E\n\
_08113F9E:\n\
ldr r0, [sp, 0x8]\n\
- ldr r1, _0811405C @ =0x02014804\n\
+ ldr r1, _0811405C @ =gSharedMem + 0x14804\n\
adds r2, r0, r1\n\
- ldr r3, _08114054 @ =0x02014844\n\
+ ldr r3, _08114054 @ =gSharedMem + 0x14844\n\
adds r1, r0, r3\n\
ldrb r0, [r2]\n\
ldrb r1, [r1]\n\
@@ -2122,12 +2120,12 @@ _08113FBA:\n\
blt _08113FBA\n\
_08113FCC:\n\
ldr r0, [sp, 0x8]\n\
- ldr r1, _0811405C @ =0x02014804\n\
+ ldr r1, _0811405C @ =gSharedMem + 0x14804\n\
adds r2, r0, r1\n\
- ldr r3, _08114054 @ =0x02014844\n\
+ ldr r3, _08114054 @ =gSharedMem + 0x14844\n\
adds r1, r0, r3\n\
ldrb r0, [r2]\n\
- ldr r4, _08114058 @ =0x02014800\n\
+ ldr r4, _08114058 @ =gSharedMem + 0x14800\n\
ldrb r5, [r1]\n\
cmp r0, r5\n\
bhi _08113FE2\n\
@@ -2167,16 +2165,16 @@ _08114004:\n\
ldr r2, [sp, 0x24]\n\
adds r1, r2\n\
mov r10, r1\n\
- ldr r0, _08114058 @ =0x02014800\n\
+ ldr r0, _08114058 @ =gSharedMem + 0x14800\n\
adds r0, 0xC4\n\
adds r2, r0\n\
mov r8, r2\n\
ldr r7, [sp, 0x24]\n\
- ldr r3, _08114058 @ =0x02014800\n\
+ ldr r3, _08114058 @ =gSharedMem + 0x14800\n\
ldr r4, _08114060 @ =0x000010c4\n\
adds r0, r3, r4\n\
adds r5, r7, r0\n\
- ldr r0, _08114064 @ =0x020168c4\n\
+ ldr r0, _08114064 @ =gSharedMem + 0x168C4\n\
add r0, r10\n\
mov r12, r0\n\
ldrb r1, [r0]\n\
@@ -2192,22 +2190,22 @@ _0811403E:\n\
b _0811406E\n\
.align 2, 0\n\
_08114050: .4byte 0x000008c4\n\
-_08114054: .4byte 0x02014844\n\
-_08114058: .4byte 0x02014800\n\
-_0811405C: .4byte 0x02014804\n\
+_08114054: .4byte gSharedMem + 0x14844\n\
+_08114058: .4byte gSharedMem + 0x14800\n\
+_0811405C: .4byte gSharedMem + 0x14804\n\
_08114060: .4byte 0x000010c4\n\
-_08114064: .4byte 0x020168c4\n\
+_08114064: .4byte gSharedMem + 0x168C4\n\
_08114068:\n\
mov r4, r12\n\
ldrb r1, [r4]\n\
ldrb r0, [r5]\n\
_0811406E:\n\
subs r3, r1, r0\n\
- ldr r1, _0811408C @ =0x02014800\n\
+ ldr r1, _0811408C @ =gSharedMem + 0x14800\n\
ldr r2, _08114090 @ =0x000018c4\n\
adds r0, r1, r2\n\
adds r4, r7, r0\n\
- ldr r2, _08114094 @ =0x020170c4\n\
+ ldr r2, _08114094 @ =gSharedMem + 0x170C4\n\
add r2, r10\n\
ldrb r0, [r4]\n\
ldrb r1, [r2]\n\
@@ -2217,9 +2215,9 @@ _0811406E:\n\
ldrb r0, [r2]\n\
b _0811409C\n\
.align 2, 0\n\
-_0811408C: .4byte 0x02014800\n\
+_0811408C: .4byte gSharedMem + 0x14800\n\
_08114090: .4byte 0x000018c4\n\
-_08114094: .4byte 0x020170c4\n\
+_08114094: .4byte gSharedMem + 0x170C4\n\
_08114098:\n\
ldrb r1, [r2]\n\
ldrb r0, [r4]\n\
@@ -2248,25 +2246,25 @@ _081140B2:\n\
_081140C4:\n\
ldr r3, [sp, 0xC]\n\
add r3, r9\n\
- ldr r2, _08114164 @ =0x02014800\n\
+ ldr r2, _08114164 @ =gSharedMem + 0x14800\n\
ldr r4, _08114168 @ =0x000030c4\n\
adds r1, r2, r4\n\
adds r1, r3, r1\n\
ldr r2, [sp, 0x10]\n\
add r2, r9\n\
- ldr r5, _0811416C @ =0x020168c4\n\
+ ldr r5, _0811416C @ =gSharedMem + 0x168C4\n\
adds r0, r2, r5\n\
ldrb r0, [r0]\n\
strb r0, [r1]\n\
- ldr r0, _08114164 @ =0x02014800\n\
+ ldr r0, _08114164 @ =gSharedMem + 0x14800\n\
ldr r4, _08114170 @ =0x000038c4\n\
adds r1, r0, r4\n\
adds r1, r3, r1\n\
- ldr r5, _08114174 @ =0x020170c4\n\
+ ldr r5, _08114174 @ =gSharedMem + 0x170C4\n\
adds r2, r5\n\
ldrb r0, [r2]\n\
strb r0, [r1]\n\
- ldr r0, _08114164 @ =0x02014800\n\
+ ldr r0, _08114164 @ =gSharedMem + 0x14800\n\
adds r0, 0xC4\n\
adds r3, r0\n\
movs r0, 0x1\n\
@@ -2280,9 +2278,9 @@ _081140C4:\n\
b _08114004\n\
_08114104:\n\
movs r6, 0\n\
- ldr r4, _08114164 @ =0x02014800\n\
+ ldr r4, _08114164 @ =gSharedMem + 0x14800\n\
ldr r2, [sp, 0x8]\n\
- ldr r3, _08114178 @ =0x02014804\n\
+ ldr r3, _08114178 @ =gSharedMem + 0x14804\n\
adds r0, r2, r3\n\
ldrb r0, [r0]\n\
cmp r6, r0\n\
@@ -2327,12 +2325,12 @@ _0811411E:\n\
bl sub_81141F0\n\
b _081141B4\n\
.align 2, 0\n\
-_08114164: .4byte 0x02014800\n\
+_08114164: .4byte gSharedMem + 0x14800\n\
_08114168: .4byte 0x000030c4\n\
-_0811416C: .4byte 0x020168c4\n\
+_0811416C: .4byte gSharedMem + 0x168C4\n\
_08114170: .4byte 0x000038c4\n\
-_08114174: .4byte 0x020170c4\n\
-_08114178: .4byte 0x02014804\n\
+_08114174: .4byte gSharedMem + 0x170C4\n\
+_08114178: .4byte gSharedMem + 0x14804\n\
_0811417C: .4byte 0x000020c4\n\
_08114180: .4byte 0x000028c4\n\
_08114184:\n\
@@ -2361,9 +2359,9 @@ _08114184:\n\
bl sub_81141F0\n\
_081141B4:\n\
adds r6, 0x1\n\
- ldr r4, _081141E8 @ =0x02014800\n\
+ ldr r4, _081141E8 @ =gSharedMem + 0x14800\n\
ldr r1, [sp, 0x8]\n\
- ldr r2, _081141EC @ =0x02014804\n\
+ ldr r2, _081141EC @ =gSharedMem + 0x14804\n\
adds r0, r1, r2\n\
ldrb r0, [r0]\n\
cmp r6, r0\n\
@@ -2386,8 +2384,8 @@ _081141CE:\n\
.align 2, 0\n\
_081141E0: .4byte 0x000010c4\n\
_081141E4: .4byte 0x000018c4\n\
-_081141E8: .4byte 0x02014800\n\
-_081141EC: .4byte 0x02014804\n\
+_081141E8: .4byte gSharedMem + 0x14800\n\
+_081141EC: .4byte gSharedMem + 0x14804\n\
.syntax divided");
}
@@ -2455,7 +2453,7 @@ void unref_sub_81143CC()
sub sp, 0x14\n\
movs r0, 0x1\n\
str r0, [sp, 0x4]\n\
- ldr r0, _08114408 @ =0x02014800\n\
+ ldr r0, _08114408 @ =gSharedMem + 0x14800\n\
ldr r2, _0811440C @ =0x0000a0c4\n\
adds r1, r0, r2\n\
ldrb r3, [r1]\n\
@@ -2478,7 +2476,7 @@ _081143F2:\n\
str r1, [sp, 0x8]\n\
bl _08114D84\n\
.align 2, 0\n\
-_08114408: .4byte 0x02014800\n\
+_08114408: .4byte gSharedMem + 0x14800\n\
_0811440C: .4byte 0x0000a0c4\n\
_08114410:\n\
ldr r5, [sp]\n\
@@ -2585,7 +2583,7 @@ _081144EC: .4byte 0x000020c4\n\
_081144F0:\n\
movs r2, 0\n\
str r2, [sp, 0x4]\n\
- ldr r4, _08114568 @ =0x02014800\n\
+ ldr r4, _08114568 @ =gSharedMem + 0x14800\n\
lsls r0, r3, 1\n\
ldr r5, [sp]\n\
lsls r1, r5, 6\n\
@@ -2645,7 +2643,7 @@ _08114548:\n\
blt _0811453E\n\
b _081148D2\n\
.align 2, 0\n\
-_08114568: .4byte 0x02014800\n\
+_08114568: .4byte gSharedMem + 0x14800\n\
_0811456C: .4byte 0x000060c4\n\
_08114570: .4byte 0x000080c4\n\
_08114574: .4byte 0x000030c4\n\
@@ -2719,7 +2717,7 @@ _081145FC: .4byte 0x000020c4\n\
_08114600:\n\
movs r2, 0\n\
str r2, [sp, 0x4]\n\
- ldr r4, _08114678 @ =0x02014800\n\
+ ldr r4, _08114678 @ =gSharedMem + 0x14800\n\
lsls r0, r3, 1\n\
ldr r5, [sp]\n\
lsls r1, r5, 6\n\
@@ -2779,7 +2777,7 @@ _08114658:\n\
blt _0811464E\n\
b _081148D2\n\
.align 2, 0\n\
-_08114678: .4byte 0x02014800\n\
+_08114678: .4byte gSharedMem + 0x14800\n\
_0811467C: .4byte 0x000060c4\n\
_08114680: .4byte 0x000080c4\n\
_08114684: .4byte 0x000030c4\n\
@@ -2787,7 +2785,7 @@ _08114688: .4byte 0x000020c4\n\
_0811468C:\n\
movs r2, 0\n\
str r2, [sp, 0x4]\n\
- ldr r5, _081146C0 @ =0x02014800\n\
+ ldr r5, _081146C0 @ =gSharedMem + 0x14800\n\
mov r0, r8\n\
adds r4, r3, r0\n\
ldr r1, _081146C4 @ =0x000030c4\n\
@@ -2812,12 +2810,12 @@ _081146B4:\n\
strb r1, [r0]\n\
b _081148D2\n\
.align 2, 0\n\
-_081146C0: .4byte 0x02014800\n\
+_081146C0: .4byte gSharedMem + 0x14800\n\
_081146C4: .4byte 0x000030c4\n\
_081146C8:\n\
movs r4, 0\n\
str r4, [sp, 0x4]\n\
- ldr r5, _081146FC @ =0x02014800\n\
+ ldr r5, _081146FC @ =gSharedMem + 0x14800\n\
mov r0, r8\n\
adds r4, r3, r0\n\
ldr r1, _08114700 @ =0x000030c4\n\
@@ -2842,12 +2840,12 @@ _081146F0:\n\
strb r1, [r0]\n\
b _081148D2\n\
.align 2, 0\n\
-_081146FC: .4byte 0x02014800\n\
+_081146FC: .4byte gSharedMem + 0x14800\n\
_08114700: .4byte 0x000030c4\n\
_08114704:\n\
movs r4, 0\n\
str r4, [sp, 0x4]\n\
- ldr r5, _08114738 @ =0x02014800\n\
+ ldr r5, _08114738 @ =gSharedMem + 0x14800\n\
mov r0, r8\n\
adds r4, r3, r0\n\
ldr r1, _0811473C @ =0x000030c4\n\
@@ -2872,12 +2870,12 @@ _0811472C:\n\
strb r1, [r0]\n\
b _081148D2\n\
.align 2, 0\n\
-_08114738: .4byte 0x02014800\n\
+_08114738: .4byte gSharedMem + 0x14800\n\
_0811473C: .4byte 0x000030c4\n\
_08114740:\n\
movs r4, 0\n\
str r4, [sp, 0x4]\n\
- ldr r5, _08114774 @ =0x02014800\n\
+ ldr r5, _08114774 @ =gSharedMem + 0x14800\n\
mov r0, r8\n\
adds r4, r3, r0\n\
ldr r1, _08114778 @ =0x000030c4\n\
@@ -2902,12 +2900,12 @@ _08114768:\n\
strb r1, [r0]\n\
b _081148D2\n\
.align 2, 0\n\
-_08114774: .4byte 0x02014800\n\
+_08114774: .4byte gSharedMem + 0x14800\n\
_08114778: .4byte 0x000030c4\n\
_0811477C:\n\
movs r4, 0\n\
str r4, [sp, 0x4]\n\
- ldr r6, _081147B4 @ =0x02014800\n\
+ ldr r6, _081147B4 @ =gSharedMem + 0x14800\n\
mov r0, r8\n\
adds r5, r3, r0\n\
ldr r1, _081147B8 @ =0x000030c4\n\
@@ -2933,7 +2931,7 @@ _0811477C:\n\
strb r4, [r0]\n\
b _08114844\n\
.align 2, 0\n\
-_081147B4: .4byte 0x02014800\n\
+_081147B4: .4byte gSharedMem + 0x14800\n\
_081147B8: .4byte 0x000030c4\n\
_081147BC: .4byte 0x000020c4\n\
_081147C0:\n\
@@ -2948,7 +2946,7 @@ _081147C0:\n\
_081147D0:\n\
movs r1, 0\n\
str r1, [sp, 0x4]\n\
- ldr r6, _08114804 @ =0x02014800\n\
+ ldr r6, _08114804 @ =gSharedMem + 0x14800\n\
mov r2, r8\n\
adds r5, r3, r2\n\
ldr r0, _08114808 @ =0x000030c4\n\
@@ -2972,13 +2970,13 @@ _081147D0:\n\
movs r1, 0x2\n\
b _08114842\n\
.align 2, 0\n\
-_08114804: .4byte 0x02014800\n\
+_08114804: .4byte gSharedMem + 0x14800\n\
_08114808: .4byte 0x000030c4\n\
_0811480C: .4byte 0x000020c4\n\
_08114810:\n\
movs r0, 0\n\
str r0, [sp, 0x4]\n\
- ldr r6, _0811484C @ =0x02014800\n\
+ ldr r6, _0811484C @ =gSharedMem + 0x14800\n\
mov r1, r8\n\
adds r5, r3, r1\n\
ldr r2, _08114850 @ =0x000030c4\n\
@@ -3007,13 +3005,13 @@ _08114844:\n\
mov r10, r5\n\
b _081148D2\n\
.align 2, 0\n\
-_0811484C: .4byte 0x02014800\n\
+_0811484C: .4byte gSharedMem + 0x14800\n\
_08114850: .4byte 0x000030c4\n\
_08114854: .4byte 0x000020c4\n\
_08114858:\n\
movs r0, 0\n\
str r0, [sp, 0x4]\n\
- ldr r6, _08114894 @ =0x02014800\n\
+ ldr r6, _08114894 @ =gSharedMem + 0x14800\n\
mov r1, r8\n\
adds r5, r3, r1\n\
ldr r2, _08114898 @ =0x000030c4\n\
@@ -3042,7 +3040,7 @@ _08114882:\n\
mov r10, r4\n\
b _081148D2\n\
.align 2, 0\n\
-_08114894: .4byte 0x02014800\n\
+_08114894: .4byte gSharedMem + 0x14800\n\
_08114898: .4byte 0x000030c4\n\
_0811489C: .4byte 0x000020c4\n\
_081148A0:\n\
@@ -3075,7 +3073,7 @@ _081148C4:\n\
adds r2, r3, 0x1\n\
mov r10, r2\n\
_081148D2:\n\
- ldr r0, _081148F4 @ =0x02014800\n\
+ ldr r0, _081148F4 @ =gSharedMem + 0x14800\n\
mov r4, r8\n\
adds r1, r3, r4\n\
ldr r5, _081148F8 @ =0x000008c4\n\
@@ -3093,7 +3091,7 @@ _081148E8:\n\
ldr r0, [r0]\n\
mov pc, r0\n\
.align 2, 0\n\
-_081148F4: .4byte 0x02014800\n\
+_081148F4: .4byte gSharedMem + 0x14800\n\
_081148F8: .4byte 0x000008c4\n\
_081148FC: .4byte _08114900\n\
.align 2, 0\n\
@@ -3179,7 +3177,7 @@ _081149B4: .4byte 0x000028c4\n\
_081149B8:\n\
movs r2, 0\n\
str r2, [sp, 0x4]\n\
- ldr r4, _08114A28 @ =0x02014800\n\
+ ldr r4, _08114A28 @ =gSharedMem + 0x14800\n\
lsls r0, r3, 1\n\
ldr r5, [sp]\n\
lsls r1, r5, 6\n\
@@ -3235,7 +3233,7 @@ _08114A0C:\n\
blt _08114A02\n\
b _08114D76\n\
.align 2, 0\n\
-_08114A28: .4byte 0x02014800\n\
+_08114A28: .4byte gSharedMem + 0x14800\n\
_08114A2C: .4byte 0x000070c4\n\
_08114A30: .4byte 0x000090c4\n\
_08114A34: .4byte 0x000038c4\n\
@@ -3308,7 +3306,7 @@ _08114ABC: .4byte 0x000028c4\n\
_08114AC0:\n\
movs r2, 0\n\
str r2, [sp, 0x4]\n\
- ldr r4, _08114B30 @ =0x02014800\n\
+ ldr r4, _08114B30 @ =gSharedMem + 0x14800\n\
lsls r0, r3, 1\n\
ldr r5, [sp]\n\
lsls r1, r5, 6\n\
@@ -3364,7 +3362,7 @@ _08114B14:\n\
blt _08114B0A\n\
b _08114D76\n\
.align 2, 0\n\
-_08114B30: .4byte 0x02014800\n\
+_08114B30: .4byte gSharedMem + 0x14800\n\
_08114B34: .4byte 0x000070c4\n\
_08114B38: .4byte 0x000090c4\n\
_08114B3C: .4byte 0x000038c4\n\
@@ -3372,7 +3370,7 @@ _08114B40: .4byte 0x000028c4\n\
_08114B44:\n\
movs r2, 0\n\
str r2, [sp, 0x4]\n\
- ldr r5, _08114B70 @ =0x02014800\n\
+ ldr r5, _08114B70 @ =gSharedMem + 0x14800\n\
mov r0, r8\n\
adds r4, r3, r0\n\
ldr r1, _08114B74 @ =0x000038c4\n\
@@ -3392,13 +3390,13 @@ _08114B64:\n\
movs r1, 0x9\n\
b _08114D74\n\
.align 2, 0\n\
-_08114B70: .4byte 0x02014800\n\
+_08114B70: .4byte gSharedMem + 0x14800\n\
_08114B74: .4byte 0x000038c4\n\
_08114B78: .4byte 0x000008c4\n\
_08114B7C:\n\
movs r4, 0\n\
str r4, [sp, 0x4]\n\
- ldr r5, _08114BA8 @ =0x02014800\n\
+ ldr r5, _08114BA8 @ =gSharedMem + 0x14800\n\
mov r0, r8\n\
adds r4, r3, r0\n\
ldr r1, _08114BAC @ =0x000038c4\n\
@@ -3418,13 +3416,13 @@ _08114B9C:\n\
movs r1, 0xA\n\
b _08114D74\n\
.align 2, 0\n\
-_08114BA8: .4byte 0x02014800\n\
+_08114BA8: .4byte gSharedMem + 0x14800\n\
_08114BAC: .4byte 0x000038c4\n\
_08114BB0: .4byte 0x000008c4\n\
_08114BB4:\n\
movs r4, 0\n\
str r4, [sp, 0x4]\n\
- ldr r5, _08114BE0 @ =0x02014800\n\
+ ldr r5, _08114BE0 @ =gSharedMem + 0x14800\n\
mov r0, r8\n\
adds r4, r3, r0\n\
ldr r1, _08114BE4 @ =0x000038c4\n\
@@ -3444,13 +3442,13 @@ _08114BD4:\n\
movs r1, 0xB\n\
b _08114D74\n\
.align 2, 0\n\
-_08114BE0: .4byte 0x02014800\n\
+_08114BE0: .4byte gSharedMem + 0x14800\n\
_08114BE4: .4byte 0x000038c4\n\
_08114BE8: .4byte 0x000008c4\n\
_08114BEC:\n\
movs r4, 0\n\
str r4, [sp, 0x4]\n\
- ldr r5, _08114C18 @ =0x02014800\n\
+ ldr r5, _08114C18 @ =gSharedMem + 0x14800\n\
mov r0, r8\n\
adds r4, r3, r0\n\
ldr r1, _08114C1C @ =0x000038c4\n\
@@ -3470,13 +3468,13 @@ _08114C0C:\n\
movs r1, 0xC\n\
b _08114D74\n\
.align 2, 0\n\
-_08114C18: .4byte 0x02014800\n\
+_08114C18: .4byte gSharedMem + 0x14800\n\
_08114C1C: .4byte 0x000038c4\n\
_08114C20: .4byte 0x000008c4\n\
_08114C24:\n\
movs r4, 0\n\
str r4, [sp, 0x4]\n\
- ldr r6, _08114C58 @ =0x02014800\n\
+ ldr r6, _08114C58 @ =gSharedMem + 0x14800\n\
mov r0, r8\n\
adds r5, r3, r0\n\
ldr r1, _08114C5C @ =0x000038c4\n\
@@ -3500,7 +3498,7 @@ _08114C24:\n\
strb r5, [r0]\n\
b _08114D76\n\
.align 2, 0\n\
-_08114C58: .4byte 0x02014800\n\
+_08114C58: .4byte gSharedMem + 0x14800\n\
_08114C5C: .4byte 0x000038c4\n\
_08114C60: .4byte 0x000028c4\n\
_08114C64: .4byte 0x000008c4\n\
@@ -3515,7 +3513,7 @@ _08114C74: .4byte 0x000008c4\n\
_08114C78:\n\
movs r2, 0\n\
str r2, [sp, 0x4]\n\
- ldr r6, _08114CA8 @ =0x02014800\n\
+ ldr r6, _08114CA8 @ =gSharedMem + 0x14800\n\
mov r4, r8\n\
adds r5, r3, r4\n\
ldr r0, _08114CAC @ =0x000038c4\n\
@@ -3537,14 +3535,14 @@ _08114C78:\n\
movs r1, 0x2\n\
b _08114D74\n\
.align 2, 0\n\
-_08114CA8: .4byte 0x02014800\n\
+_08114CA8: .4byte gSharedMem + 0x14800\n\
_08114CAC: .4byte 0x000038c4\n\
_08114CB0: .4byte 0x000028c4\n\
_08114CB4: .4byte 0x000008c4\n\
_08114CB8:\n\
movs r2, 0\n\
str r2, [sp, 0x4]\n\
- ldr r6, _08114CE8 @ =0x02014800\n\
+ ldr r6, _08114CE8 @ =gSharedMem + 0x14800\n\
mov r4, r8\n\
adds r5, r3, r4\n\
ldr r0, _08114CEC @ =0x000038c4\n\
@@ -3566,14 +3564,14 @@ _08114CB8:\n\
movs r1, 0x3\n\
b _08114D74\n\
.align 2, 0\n\
-_08114CE8: .4byte 0x02014800\n\
+_08114CE8: .4byte gSharedMem + 0x14800\n\
_08114CEC: .4byte 0x000038c4\n\
_08114CF0: .4byte 0x000028c4\n\
_08114CF4: .4byte 0x000008c4\n\
_08114CF8:\n\
movs r2, 0\n\
str r2, [sp, 0x4]\n\
- ldr r6, _08114D2C @ =0x02014800\n\
+ ldr r6, _08114D2C @ =gSharedMem + 0x14800\n\
mov r4, r8\n\
adds r5, r3, r4\n\
ldr r0, _08114D30 @ =0x000038c4\n\
@@ -3598,7 +3596,7 @@ _08114D1E:\n\
strb r4, [r0]\n\
b _08114D76\n\
.align 2, 0\n\
-_08114D2C: .4byte 0x02014800\n\
+_08114D2C: .4byte gSharedMem + 0x14800\n\
_08114D30: .4byte 0x000038c4\n\
_08114D34: .4byte 0x000028c4\n\
_08114D38: .4byte 0x000008c4\n\
@@ -3635,7 +3633,7 @@ _08114D74:\n\
strb r1, [r0]\n\
_08114D76:\n\
mov r3, r10\n\
- ldr r2, _08114DB0 @ =0x02014800\n\
+ ldr r2, _08114DB0 @ =gSharedMem + 0x14800\n\
adds r0, r2, 0\n\
adds r0, 0x84\n\
ldr r4, [sp]\n\
@@ -3664,7 +3662,7 @@ _08114D9A:\n\
bx r1\n\
.align 2, 0\n\
_08114DAC: .4byte 0x000008c4\n\
-_08114DB0: .4byte 0x02014800\n\
+_08114DB0: .4byte gSharedMem + 0x14800\n\
.syntax divided");
}
@@ -3703,7 +3701,7 @@ void sub_8114E48()
adds r4, r0, 0\n\
lsls r1, 24\n\
lsrs r6, r1, 24\n\
- ldr r1, _08114E6C @ =0x02014800\n\
+ ldr r1, _08114E6C @ =gSharedMem + 0x14800\n\
ldr r2, _08114E70 @ =0x0000a0c4\n\
adds r0, r1, r2\n\
ldrb r0, [r0]\n\
@@ -3719,7 +3717,7 @@ _08114E60:\n\
movs r1, 0x1\n\
b _08114EA6\n\
.align 2, 0\n\
-_08114E6C: .4byte 0x02014800\n\
+_08114E6C: .4byte gSharedMem + 0x14800\n\
_08114E70: .4byte 0x0000a0c4\n\
_08114E74:\n\
subs r0, r4, 0x1\n\
@@ -3831,7 +3829,7 @@ _08114F26:\n\
beq _08114F7C\n\
subs r0, r4, 0x1\n\
lsls r5, r0, 7\n\
- ldr r0, _08114F68 @ =0x020188c4\n\
+ ldr r0, _08114F68 @ =gSharedMem + 0x188C4\n\
mov r12, r0\n\
_08114F42:\n\
asrs r0, r3, 1\n\
@@ -3854,7 +3852,7 @@ _08114F5E:\n\
b _08114FCA\n\
.align 2, 0\n\
_08114F64: .4byte 0x000008c4\n\
-_08114F68: .4byte 0x020188c4\n\
+_08114F68: .4byte gSharedMem + 0x188C4\n\
_08114F6C:\n\
ldrb r1, [r1]\n\
movs r0, 0xF\n\
@@ -3874,7 +3872,7 @@ _08114F7C:\n\
beq _08114FC8\n\
adds r0, r4, 0x1\n\
lsls r5, r0, 7\n\
- ldr r6, _08114FB0 @ =0x020188c4\n\
+ ldr r6, _08114FB0 @ =gSharedMem + 0x188C4\n\
adds r2, r1, 0\n\
_08114F90:\n\
asrs r0, r3, 1\n\
@@ -3893,7 +3891,7 @@ _08114F90:\n\
beq _08114FBE\n\
b _08114F5E\n\
.align 2, 0\n\
-_08114FB0: .4byte 0x020188c4\n\
+_08114FB0: .4byte gSharedMem + 0x188C4\n\
_08114FB4:\n\
ldrb r1, [r1]\n\
movs r0, 0xF\n\
diff --git a/src/scene/hall_of_fame.c b/src/scene/hall_of_fame.c
index 6f7df576b..1751ee99c 100644
--- a/src/scene/hall_of_fame.c
+++ b/src/scene/hall_of_fame.c
@@ -3,24 +3,24 @@
#include "task.h"
#include "palette.h"
#include "sound.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "pokemon.h"
#include "text.h"
#include "strings.h"
#include "string_util.h"
#include "menu.h"
#include "save.h"
-#include "species.h"
+#include "constants/species.h"
#include "overworld.h"
#include "m4a.h"
#include "data2.h"
#include "decompress.h"
-#include "rng.h"
+#include "random.h"
#include "trig.h"
+#include "ewram.h"
static EWRAM_DATA u32 sUnknown_0203931C = 0;
-extern u8 ewram[];
extern bool8 gUnknown_02039324; // has hall of fame records
extern void (*gGameContinueCallback)(void);
extern struct MusicPlayerInfo gMPlay_BGM;
@@ -156,69 +156,69 @@ static const struct OamData sOamData_840B598 =
void* const gUnknown_0840B5A0[] =
{
- &ewram[0x08000],
- &ewram[0x0A000],
- &ewram[0x0C000],
- &ewram[0x0E000],
- &ewram[0x10000],
- &ewram[0x14000],
- &ewram[0x18000]
+ ewram8000,
+ ewramA000,
+ ewramC000,
+ ewramE000,
+ ewram10000,
+ ewram14000,
+ ewram18000_2
};
static const struct SpriteFrameImage sSpriteImageTable_840B5BC[] =
{
- {&ewram[0x8000], 0x800},
- {&ewram[0x8800], 0x800},
- {&ewram[0x9000], 0x800},
- {&ewram[0x9800], 0x800}
+ {ewram8000, 0x800},
+ {ewram8800, 0x800},
+ {ewram9000, 0x800},
+ {ewram9800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B5DC[] =
{
- {&ewram[0xA000], 0x800},
- {&ewram[0xA800], 0x800},
- {&ewram[0xB000], 0x800},
- {&ewram[0xB800], 0x800}
+ {ewramA000, 0x800},
+ {ewramA800, 0x800},
+ {ewramB000, 0x800},
+ {ewramB800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B5FC[] =
{
- {&ewram[0xC000], 0x800},
- {&ewram[0xC800], 0x800},
- {&ewram[0xD000], 0x800},
- {&ewram[0xD800], 0x800}
+ {ewramC000, 0x800},
+ {ewramC800, 0x800},
+ {ewramD000, 0x800},
+ {ewramD800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B61C[] =
{
- {&ewram[0xE000], 0x800},
- {&ewram[0xE800], 0x800},
- {&ewram[0xF000], 0x800},
- {&ewram[0xF800], 0x800}
+ {ewramE000, 0x800},
+ {ewramE800, 0x800},
+ {ewramF000, 0x800},
+ {ewramF800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B63C[] =
{
- {&ewram[0x10000], 0x800},
- {&ewram[0x10800], 0x800},
- {&ewram[0x11000], 0x800},
- {&ewram[0x11800], 0x800}
+ {ewram10000, 0x800},
+ {ewram10800, 0x800},
+ {ewram11000, 0x800},
+ {ewram11800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B65C[] =
{
- {&ewram[0x14000], 0x800},
- {&ewram[0x14800], 0x800},
- {&ewram[0x15000], 0x800},
- {&ewram[0x15800], 0x800}
+ {ewram14000, 0x800},
+ {ewram14800, 0x800},
+ {ewram15000, 0x800},
+ {ewram15800, 0x800}
};
static const struct SpriteFrameImage sSpriteImageTable_840B67C[] =
{
- {&ewram[0x18000], 0x800},
- {&ewram[0x18800], 0x800},
- {&ewram[0x19000], 0x800},
- {&ewram[0x19800], 0x800}
+ {ewram18000_2, 0x800},
+ {ewram18800, 0x800},
+ {ewram19000, 0x800},
+ {ewram19800, 0x800}
};
static const struct SpriteFrameImage* const sUnknown_0840B69C[7] =
@@ -486,7 +486,7 @@ static void sub_8141FC4(void)
static void sub_8141FF8(u8 taskID)
{
u16 i, j;
- struct HallofFameMons* fameMons = (struct HallofFameMons*)(&ewram[0x1C000]);
+ struct HallofFameMons* fameMons = eHallOfFameMons1;
gTasks[taskID].tPokesNumber = 0; // valid pokes
for (i = 0; i < 6; i++)
@@ -530,13 +530,13 @@ static void sub_8141FF8(u8 taskID)
static void sub_814217C(u8 taskID)
{
u16 i;
- struct HallofFameMons* fameMons = (struct HallofFameMons*)(&ewram[0x1C000]);
- struct HallofFameMons* lastSavedTeam = (struct HallofFameMons*)(&ewram[0x1E000]);
+ struct HallofFameMons* fameMons = eHallOfFameMons1;
+ struct HallofFameMons* lastSavedTeam = eHallOfFameMons2;
if (gUnknown_02039324 == FALSE)
{
for (i = 0; i < 0x2000; i++)
- ewram[i + 0x1E000] = 0;
+ ewram1E000(i) = 0;
}
else
sub_8125EC8(3);
@@ -548,8 +548,8 @@ static void sub_814217C(u8 taskID)
}
if (i >= HALL_OF_FAME_MAX_TEAMS)
{
- struct HallofFameMons* r5 = (struct HallofFameMons*)(&ewram[0x1E000]);
- struct HallofFameMons* r6 = (struct HallofFameMons*)(&ewram[0x1E000]);
+ struct HallofFameMons* r5 = eHallOfFameMons2;
+ struct HallofFameMons* r6 = eHallOfFameMons2;
r5++;
for (i = 0; i < HALL_OF_FAME_MAX_TEAMS - 1; i++, r6++, r5++)
{
@@ -592,7 +592,7 @@ static void sub_8142320(u8 taskID)
u8 spriteID;
s16 xPos, yPos, field4, field6;
- struct HallofFameMons* fameMons = (struct HallofFameMons*)(&ewram[0x1C000]);
+ struct HallofFameMons* fameMons = eHallOfFameMons1;
u16 currPokeID = gTasks[taskID].tDisplayedPoke;
struct HallofFameMon* currMon = &fameMons->mons[currPokeID];
@@ -612,9 +612,9 @@ static void sub_8142320(u8 taskID)
}
spriteID = HallOfFame_LoadPokemonPic(currMon->species, xPos, yPos, currPokeID, currMon->tid, currMon->personality);
- gSprites[spriteID].data1 = field4;
- gSprites[spriteID].data2 = field6;
- gSprites[spriteID].data0 = 0;
+ gSprites[spriteID].data[1] = field4;
+ gSprites[spriteID].data[2] = field6;
+ gSprites[spriteID].data[0] = 0;
gSprites[spriteID].callback = sub_81435DC;
gTasks[taskID].tMonSpriteID(currPokeID) = spriteID;
MenuZeroFillWindowRect(0, 14, 29, 19);
@@ -623,11 +623,11 @@ static void sub_8142320(u8 taskID)
static void sub_8142404(u8 taskID)
{
- struct HallofFameMons* fameMons = (struct HallofFameMons*)(&ewram[0x1C000]);
+ struct HallofFameMons* fameMons = eHallOfFameMons1;
u16 currPokeID = gTasks[taskID].tDisplayedPoke;
struct HallofFameMon* currMon = &fameMons->mons[currPokeID];
- if (gSprites[gTasks[taskID].tMonSpriteID(currPokeID)].data0 != 0)
+ if (gSprites[gTasks[taskID].tMonSpriteID(currPokeID)].data[0] != 0)
{
if (currMon->species != SPECIES_EGG)
PlayCry1(currMon->species, 0);
@@ -639,7 +639,7 @@ static void sub_8142404(u8 taskID)
static void sub_8142484(u8 taskID)
{
- struct HallofFameMons* fameMons = (struct HallofFameMons*)(&ewram[0x1C000]);
+ struct HallofFameMons* fameMons = eHallOfFameMons1;
u16 currPokeID = gTasks[taskID].tDisplayedPoke;
struct HallofFameMon* currMon = &fameMons->mons[currPokeID];
@@ -808,7 +808,7 @@ void sub_81428CC(void)
REG_BLDY = 0;
sub_81435B8();
- fameMons = (struct HallofFameMons*)(&ewram[0x1C000]);
+ fameMons = eHallOfFameMons1;
fameMons->mons[0] = sDummyFameMon;
sub_80C5CD4(fameMons);
@@ -847,7 +847,7 @@ static void sub_8142A28(u8 taskID)
u16 *vram1, *vram2;
u16 i;
- struct HallofFameMons* savedTeams = (struct HallofFameMons*)(&ewram[0x1E000]);
+ struct HallofFameMons* savedTeams = eHallOfFameMons2;
for (i = 0; i < HALL_OF_FAME_MAX_TEAMS; i++, savedTeams++)
{
if (savedTeams->mons[0].species == 0)
@@ -872,7 +872,7 @@ static void sub_8142A28(u8 taskID)
static void sub_8142B04(u8 taskID)
{
- struct HallofFameMons* savedTeams = (struct HallofFameMons*)(&ewram[0x1E000]);
+ struct HallofFameMons* savedTeams = eHallOfFameMons2;
struct HallofFameMon* currMon;
u16 i;
u8* stringPtr;
@@ -937,7 +937,7 @@ static void sub_8142B04(u8 taskID)
static void sub_8142CC8(u8 taskID)
{
- struct HallofFameMons* savedTeams = (struct HallofFameMons*)(&ewram[0x1E000]);
+ struct HallofFameMons* savedTeams = eHallOfFameMons2;
struct HallofFameMon* currMon;
u16 i;
u16 currMonID;
@@ -1025,7 +1025,7 @@ static void sub_8142F78(u8 taskID)
struct HallofFameMons* fameMons;
CpuSet(gPlttBufferFaded, gPlttBufferUnfaded, 0x200);
- fameMons = (struct HallofFameMons*)(&ewram[0x1C000]);
+ fameMons = eHallOfFameMons1;
fameMons->mons[0] = sDummyFameMon;
sub_80C5E38(fameMons);
gTasks[taskID].func = sub_8142FCC;
@@ -1258,7 +1258,7 @@ static void sub_81433E0(void)
*((u16*)(VRAM + 0x3000) + i) = 2;
}
- offsetWrite4 = (u32)(&ewram[0]);
+ offsetWrite4 = ewram0_6;
size4 = 0x4000;
while (TRUE)
{
@@ -1299,22 +1299,22 @@ static void sub_81435B8(void)
static void sub_81435DC(struct Sprite* sprite)
{
u32 spritePos = *(u32*)(&sprite->pos1);
- u32 dataPos = *(u32*)(&sprite->data1);
+ u32 dataPos = *(u32*)(&sprite->data[1]);
if (spritePos != dataPos)
{
- if (sprite->pos1.x < sprite->data1)
+ if (sprite->pos1.x < sprite->data[1])
sprite->pos1.x += 15;
- if (sprite->pos1.x > sprite->data1)
+ if (sprite->pos1.x > sprite->data[1])
sprite->pos1.x -= 15;
- if (sprite->pos1.y < sprite->data2)
+ if (sprite->pos1.y < sprite->data[2])
sprite->pos1.y += 10;
- if (sprite->pos1.y > sprite->data2)
+ if (sprite->pos1.y > sprite->data[2])
sprite->pos1.y -= 10;
}
else
{
- sprite->data0 = 1;
+ sprite->data[0] = 1;
sprite->callback = SpriteCB_HallOfFame_Dummy;
}
}
@@ -1381,13 +1381,13 @@ static void sub_814386C(struct Sprite* sprite)
u8 tableID;
sprite->pos2.y++;
- sprite->pos2.y += sprite->data1;
+ sprite->pos2.y += sprite->data[1];
- tableID = sprite->data0;
+ tableID = sprite->data[0];
rand = (Random() % 4) + 8;
sprite->pos2.x = rand * gSineTable[tableID] / 256;
- sprite->data0 += 4;
+ sprite->data[0] += 4;
}
}
@@ -1405,9 +1405,9 @@ static bool8 sub_81438C4(void)
StartSpriteAnim(sprite, Random() % 17);
if (Random() & 3)
- sprite->data1 = 0;
+ sprite->data[1] = 0;
else
- sprite->data1 = 1;
+ sprite->data[1] = 1;
return 0;
}
diff --git a/src/scene/intro.c b/src/scene/intro.c
index dd7cc858c..9e334d06b 100644
--- a/src/scene/intro.c
+++ b/src/scene/intro.c
@@ -11,15 +11,16 @@
#include "main.h"
#include "new_game.h"
#include "palette.h"
-#include "rng.h"
+#include "random.h"
#include "save.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
-#include "species.h"
+#include "constants/species.h"
#include "task.h"
#include "title_screen.h"
#include "trig.h"
#include "unknown_task.h"
+#include "ewram.h"
extern struct SpriteTemplate gUnknown_02024E8C;
extern u16 gUnknown_02039358;
@@ -765,10 +766,14 @@ const struct SpritePalette gIntro3MiscPal_Table[] =
{gIntro3Misc2Palette, 2004},
{NULL},
};
-const u32 unusedData = 0x02000000;
+
+// Game Freak probably used the raw address here.
+// Treating this like a u8 * causes the compiler
+// to remove it at link time.
+const u32 unusedSharedMemPtr = (u32)gSharedMem;
static void MainCB2_EndIntro(void);
-static void Task_IntroLoadPart1Graphics(u8);
+void Task_IntroLoadPart1Graphics(u8);
static void Task_IntroFadeIn(u8);
static void Task_IntroWaterDrops(u8);
static void Task_IntroScrollDownAndShowEon(u8);
@@ -938,7 +943,7 @@ void CB2_InitCopyrightScreenAfterTitleScreen(void)
SetUpCopyrightScreen();
}
-static void Task_IntroLoadPart1Graphics(u8 taskId)
+void Task_IntroLoadPart1Graphics(u8 taskId)
{
SetVBlankCallback(NULL);
gUnknown_02039318 = Random() & 1;
@@ -990,11 +995,11 @@ static void Task_IntroWaterDrops(u8 taskId)
{
//start moving rock
if (gIntroFrameCounter == 76)
- gSprites[gTasks[taskId].data[0]].data0 = 1;
+ gSprites[gTasks[taskId].data[0]].data[0] = 1;
//drop rock
if (gIntroFrameCounter == 251)
- gSprites[gTasks[taskId].data[0]].data0 = 2;
+ gSprites[gTasks[taskId].data[0]].data[0] = 2;
if (gIntroFrameCounter == 368)
CreateWaterDrop(48, 0, 0x400, 5, 0x70, TRUE);
@@ -1129,17 +1134,17 @@ static void Task_IntroHandleBikeAndEonMovement(u8 taskId)
gTasks[taskId].func = Task_IntroWaitToSetupPart3;
}
if (gIntroFrameCounter == 1109)
- gSprites[gTasks[taskId].data[1]].data0 = 1;
+ gSprites[gTasks[taskId].data[1]].data[0] = 1;
if (gIntroFrameCounter == 1214)
- gSprites[gTasks[taskId].data[1]].data0 = 0;
+ gSprites[gTasks[taskId].data[1]].data[0] = 0;
if (gIntroFrameCounter == 1394)
- gSprites[gTasks[taskId].data[2]].data0 = 1;
+ gSprites[gTasks[taskId].data[2]].data[0] = 1;
if (gIntroFrameCounter == 1398)
- gSprites[gTasks[taskId].data[1]].data0 = 2;
+ gSprites[gTasks[taskId].data[1]].data[0] = 2;
if (gIntroFrameCounter == 1586)
- gSprites[gTasks[taskId].data[1]].data0 = 3;
+ gSprites[gTasks[taskId].data[1]].data[0] = 3;
if (gIntroFrameCounter == 1727)
- gSprites[gTasks[taskId].data[1]].data0 = 4;
+ gSprites[gTasks[taskId].data[1]].data[0] = 4;
//TODO: Clean this up
a = (((u16)gTasks[taskId].data[3] << 16) >> 18) & 0x7F;
@@ -1207,7 +1212,7 @@ static void Task_IntroWaitToSetupPart3DoubleFight(u8 taskId)
gTasks[taskId].func = Task_IntroLoadPart3Streaks;
}
-extern u8 unk_2000000[][32];
+//extern u8 gSharedMem[][32];
static void Task_IntroLoadPart3Streaks(u8 taskId)
{
@@ -1217,12 +1222,12 @@ static void Task_IntroLoadPart3Streaks(u8 taskId)
intro_reset_and_hide_bgs();
for (i = 0; i < 32; i++)
{
- unk_2000000[0][i] = 0;
- unk_2000000[1][i] = 17;
- unk_2000000[2][i] = 34;
+ ewram0arr[0][i] = 0;
+ ewram0arr[1][i] = 17;
+ ewram0arr[2][i] = 34;
}
vram = (void *)VRAM;
- DmaCopy16(3, unk_2000000, vram, 0x60);
+ DmaCopy16(3, gSharedMem, vram, 0x60);
for (i = 0; i < 0x280; i++)
((u16 *)(VRAM + 0x3000))[i] = 0xF001;
for (i = 0; i < 0x80; i++)
@@ -1309,15 +1314,15 @@ static void Task_IntroPokemonBattle(u8 taskId)
{
spriteId = sub_813CE88(SPECIES_SHARPEDO, 0xF0, 0xA0, 5, 1);
gSprites[spriteId].callback = sub_813DB9C;
- gSprites[spriteId].data1 = 1;
- gSprites[spriteId].data2 = 0;
+ gSprites[spriteId].data[1] = 1;
+ gSprites[spriteId].data[2] = 0;
}
if (gIntroFrameCounter == 152)
{
spriteId = sub_813CE88(SPECIES_DUSKULL, 0, 0xA0, 4, 1);
gSprites[spriteId].callback = sub_813DB9C;
- gSprites[spriteId].data1 = 2;
- gSprites[spriteId].data2 = 1;
+ gSprites[spriteId].data[1] = 2;
+ gSprites[spriteId].data[2] = 1;
}
if (gIntroFrameCounter == 219)
{
@@ -1329,12 +1334,12 @@ static void Task_IntroPokemonBattle(u8 taskId)
if (gIntroFrameCounter == 304)
{
gTasks[gTasks[taskId].data[15]].data[0] = 4;
- gSprites[gTasks[taskId].data[1]].data0 = 2;
+ gSprites[gTasks[taskId].data[1]].data[0] = 2;
}
if (gIntroFrameCounter == 384)
{
gTasks[gTasks[taskId].data[15]].data[0] = 0;
- gSprites[gTasks[taskId].data[1]].data0 = 4;
+ gSprites[gTasks[taskId].data[1]].data[0] = 4;
}
if (gIntroFrameCounter == 400)
{
@@ -1342,11 +1347,11 @@ static void Task_IntroPokemonBattle(u8 taskId)
}
if (gIntroFrameCounter == 432)
{
- gSprites[gTasks[taskId].data[1]].data0 = 5;
+ gSprites[gTasks[taskId].data[1]].data[0] = 5;
}
if (gIntroFrameCounter == 462)
{
- gSprites[gTasks[taskId].data[1]].data0 = 6;
+ gSprites[gTasks[taskId].data[1]].data[0] = 6;
gTasks[gTasks[taskId].data[15]].data[0] = 2;
}
if (gIntroFrameCounter == 463)
@@ -1366,8 +1371,8 @@ static void Task_IntroPokemonBattle(u8 taskId)
}
if (gIntroFrameCounter == 623)
{
- gSprites[gTasks[taskId].data[2]].data0 = 2;
- gSprites[gTasks[taskId].data[3]].data0 = 2;
+ gSprites[gTasks[taskId].data[2]].data[0] = 2;
+ gSprites[gTasks[taskId].data[3]].data[0] = 2;
gTasks[gTasks[taskId].data[15]].data[0] = 3;
}
if (gIntroFrameCounter == 624)
@@ -1388,17 +1393,17 @@ static void Task_IntroPokemonBattle(u8 taskId)
if (gIntroFrameCounter == 776)
{
gUnknown_0203931A = 1;
- gSprites[gTasks[taskId].data[4]].data0 = 2;
- gSprites[gTasks[taskId].data[5]].data0 = 2;
+ gSprites[gTasks[taskId].data[4]].data[0] = 2;
+ gSprites[gTasks[taskId].data[5]].data[0] = 2;
gTasks[gTasks[taskId].data[15]].data[0] = 0;
}
if (gIntroFrameCounter == 781)
{
sub_813D084(2);
- gSprites[gTasks[taskId].data[2]].data0 = 3;
- gSprites[gTasks[taskId].data[3]].data0 = 3;
- gSprites[gTasks[taskId].data[4]].data0 = 3;
- gSprites[gTasks[taskId].data[5]].data0 = 3;
+ gSprites[gTasks[taskId].data[2]].data[0] = 3;
+ gSprites[gTasks[taskId].data[3]].data[0] = 3;
+ gSprites[gTasks[taskId].data[4]].data[0] = 3;
+ gSprites[gTasks[taskId].data[5]].data[0] = 3;
spriteId = CreateSprite(&gSpriteTemplate_840B1F4, 0x78, 0x50, 15);
gSprites[spriteId].invisible = 1;
}
@@ -1833,18 +1838,18 @@ static void sub_813D0CC(struct Sprite *sprite)
{
u8 r0;
- if (sprite->data2 >= 192)
+ if (sprite->data[2] >= 192)
{
- if (sprite->data3 != 0)
+ if (sprite->data[3] != 0)
{
- sprite->data3--;
+ sprite->data[3]--;
}
else
{
sprite->invisible = FALSE;
- SetOamMatrix(sprite->data1, sprite->data2, 0, 0, sprite->data2);
- sprite->data2 = (sprite->data2 * 95) / 100;
- r0 = (sprite->data2 - 192) / 128 + 9;
+ SetOamMatrix(sprite->data[1], sprite->data[2], 0, 0, sprite->data[2]);
+ sprite->data[2] = (sprite->data[2] * 95) / 100;
+ r0 = (sprite->data[2] - 192) / 128 + 9;
if (r0 > 15)
r0 = 15;
sprite->oam.paletteNum = r0;
@@ -1858,14 +1863,14 @@ static void sub_813D0CC(struct Sprite *sprite)
static void sub_813D158(struct Sprite *sprite)
{
- if (gSprites[sprite->data7].data7 != 0)
+ if (gSprites[sprite->data[7]].data[7] != 0)
{
sprite->invisible = TRUE;
sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y;
StartSpriteAnim(sprite, 3);
- sprite->data2 = 1024;
- sprite->data3 = 8 * (sprite->data1 & 3);
+ sprite->data[2] = 1024;
+ sprite->data[3] = 8 * (sprite->data[1] & 3);
sprite->callback = sub_813D0CC;
sprite->oam.shape = 1;
sprite->oam.size = 3;
@@ -1873,16 +1878,16 @@ static void sub_813D158(struct Sprite *sprite)
}
else
{
- sprite->pos2.x = gSprites[sprite->data7].pos2.x;
- sprite->pos2.y = gSprites[sprite->data7].pos2.y;
- sprite->pos1.x = gSprites[sprite->data7].pos1.x;
- sprite->pos1.y = gSprites[sprite->data7].pos1.y;
+ sprite->pos2.x = gSprites[sprite->data[7]].pos2.x;
+ sprite->pos2.y = gSprites[sprite->data[7]].pos2.y;
+ sprite->pos1.x = gSprites[sprite->data[7]].pos1.x;
+ sprite->pos1.y = gSprites[sprite->data[7]].pos1.y;
}
}
static void sub_813D208(struct Sprite *sprite)
{
- if (sprite->data0 != 0)
+ if (sprite->data[0] != 0)
sprite->callback = sub_813D220;
}
@@ -1894,7 +1899,7 @@ static void sub_813D220(struct Sprite *sprite)
sprite->pos2.y = 0;
sprite->pos1.x += 4;
sprite->pos2.x = -4;
- sprite->data4 = 128;
+ sprite->data[4] = 128;
sprite->callback = sub_813D368;
}
else
@@ -1912,58 +1917,58 @@ static void sub_813D220(struct Sprite *sprite)
s16 var4;
s16 temp;
- data4 = sprite->data4;
+ data4 = sprite->data[4];
sin1 = gSineTable[(u8)data4];
sin2 = gSineTable[(u8)(data4 + 64)];
- sprite->data4 += 2;
+ sprite->data[4] += 2;
sprite->pos2.y = sin1 / 32;
sprite->pos1.x--;
if (sprite->pos1.x & 1)
sprite->pos1.y++;
temp = -sin2 / 16;
- data2 = sprite->data2;
- data3 = sprite->data3;
+ data2 = sprite->data[2];
+ data3 = sprite->data[3];
sin3 = gSineTable[(u8)(temp - 16)];
sin4 = gSineTable[(u8)(temp + 48)];
var1 = sin4 * data2 / 256;
var2 = -sin3 * data3 / 256;
var3 = sin3 * data2 / 256;
var4 = sin4 * data3 / 256;
- SetOamMatrix(sprite->data1, data2, 0, 0, data3);
- SetOamMatrix(sprite->data1 + 1, var1, var3, var2, var4);
- SetOamMatrix(sprite->data1 + 2, var1, var3, var2 * 2, var4 * 2);
+ SetOamMatrix(sprite->data[1], data2, 0, 0, data3);
+ SetOamMatrix(sprite->data[1] + 1, var1, var3, var2, var4);
+ SetOamMatrix(sprite->data[1] + 2, var1, var3, var2 * 2, var4 * 2);
}
}
static void sub_813D368(struct Sprite *sprite)
{
- SetOamMatrix(sprite->data1, sprite->data6 + 64, 0, 0, sprite->data6 + 64);
- SetOamMatrix(sprite->data1 + 1, sprite->data6 + 64, 0, 0, sprite->data6 + 64);
- SetOamMatrix(sprite->data1 + 2, sprite->data6 + 64, 0, 0, sprite->data6 + 64);
- if (sprite->data4 != 64)
+ SetOamMatrix(sprite->data[1], sprite->data[6] + 64, 0, 0, sprite->data[6] + 64);
+ SetOamMatrix(sprite->data[1] + 1, sprite->data[6] + 64, 0, 0, sprite->data[6] + 64);
+ SetOamMatrix(sprite->data[1] + 2, sprite->data[6] + 64, 0, 0, sprite->data[6] + 64);
+ if (sprite->data[4] != 64)
{
u16 data4;
- sprite->data4 -= 8;
- data4 = sprite->data4;
+ sprite->data[4] -= 8;
+ data4 = sprite->data[4];
sprite->pos2.x = gSineTable[(u8)(data4 + 64)] / 64;
sprite->pos2.y = gSineTable[(u8)data4] / 64;
}
else
{
- sprite->data4 = 0;
+ sprite->data[4] = 0;
sprite->callback = sub_813D414;
}
}
static void sub_813D414(struct Sprite *sprite)
{
- if (sprite->data0 != 2)
+ if (sprite->data[0] != 2)
{
s16 r2;
- sprite->data4 += 8;
- r2 = gSineTable[(u8)sprite->data4] / 16 + 64;
+ sprite->data[4] += 8;
+ r2 = gSineTable[(u8)sprite->data[4]] / 16 + 64;
sprite->pos2.x = gSineTable[(u8)(r2 + 64)] / 64;
sprite->pos2.y = gSineTable[(u8)r2] / 64;
}
@@ -1975,19 +1980,19 @@ static void sub_813D414(struct Sprite *sprite)
static void SpriteCB_WaterDropFall(struct Sprite *sprite)
{
- if (sprite->pos1.y < sprite->data5)
+ if (sprite->pos1.y < sprite->data[5])
{
sprite->pos1.y += 4;
}
else
{
- sprite->data7 = 1;
+ sprite->data[7] = 1;
sprite->invisible = TRUE;
sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y;
StartSpriteAnim(sprite, 3);
- sprite->data2 = 1024;
- sprite->data3 = 8 * (sprite->data1 & 3);
+ sprite->data[2] = 1024;
+ sprite->data[3] = 8 * (sprite->data[1] & 3);
sprite->callback = sub_813D0CC;
sprite->oam.shape = 1;
sprite->oam.size = 3;
@@ -1998,19 +2003,19 @@ static void SpriteCB_WaterDropFall(struct Sprite *sprite)
//Duplicate function
static void SpriteCB_WaterDropFall_2(struct Sprite *sprite)
{
- if (sprite->pos1.y < sprite->data5)
+ if (sprite->pos1.y < sprite->data[5])
{
sprite->pos1.y += 4;
}
else
{
- sprite->data7 = 1;
+ sprite->data[7] = 1;
sprite->invisible = TRUE;
sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y;
StartSpriteAnim(sprite, 3);
- sprite->data2 = 1024;
- sprite->data3 = 8 * (sprite->data1 & 3);
+ sprite->data[2] = 1024;
+ sprite->data[3] = 8 * (sprite->data[1] & 3);
sprite->callback = sub_813D0CC;
sprite->oam.shape = 1;
sprite->oam.size = 3;
@@ -2024,13 +2029,13 @@ static u8 CreateWaterDrop(s16 x, s16 y, u16 c, u16 d, u16 e, u8 fallImmediately)
u8 oldSpriteId;
spriteId = CreateSprite(&gSpriteTemplate_840AE20, x, y, 0);
- gSprites[spriteId].data0 = 0;
- gSprites[spriteId].data7 = 0;
- gSprites[spriteId].data1 = d;
- gSprites[spriteId].data2 = c;
- gSprites[spriteId].data3 = c;
- gSprites[spriteId].data5 = e;
- gSprites[spriteId].data6 = c;
+ gSprites[spriteId].data[0] = 0;
+ gSprites[spriteId].data[7] = 0;
+ gSprites[spriteId].data[1] = d;
+ gSprites[spriteId].data[2] = c;
+ gSprites[spriteId].data[3] = c;
+ gSprites[spriteId].data[5] = e;
+ gSprites[spriteId].data[6] = c;
gSprites[spriteId].oam.affineMode = 3;
gSprites[spriteId].oam.matrixNum = d;
CalcCenterToCornerVec(&gSprites[spriteId], 0, 2, 2);
@@ -2042,16 +2047,16 @@ static u8 CreateWaterDrop(s16 x, s16 y, u16 c, u16 d, u16 e, u8 fallImmediately)
oldSpriteId = spriteId;
spriteId = CreateSprite(&gSpriteTemplate_840AE20, x, y, 0);
- gSprites[spriteId].data7 = oldSpriteId;
- gSprites[spriteId].data1 = d + 1;
+ gSprites[spriteId].data[7] = oldSpriteId;
+ gSprites[spriteId].data[1] = d + 1;
gSprites[spriteId].oam.affineMode = 3;
gSprites[spriteId].oam.matrixNum = d + 1;
CalcCenterToCornerVec(&gSprites[spriteId], 0, 2, 2);
gSprites[spriteId].callback = sub_813D158;
spriteId = CreateSprite(&gSpriteTemplate_840AE20, x, y, 0);
- gSprites[spriteId].data7 = oldSpriteId;
- gSprites[spriteId].data1 = d + 2;
+ gSprites[spriteId].data[7] = oldSpriteId;
+ gSprites[spriteId].data[1] = d + 2;
StartSpriteAnim(&gSprites[spriteId], 1);
gSprites[spriteId].oam.affineMode = 3;
gSprites[spriteId].oam.matrixNum = d + 2;
@@ -2067,7 +2072,7 @@ static u8 CreateWaterDrop(s16 x, s16 y, u16 c, u16 d, u16 e, u8 fallImmediately)
static void sub_813D788(struct Sprite *sprite)
{
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
StartSpriteAnimIfDifferent(sprite, 0);
@@ -2119,7 +2124,7 @@ static void sub_813D788(struct Sprite *sprite)
static void sub_813D880(struct Sprite *sprite)
{
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
break;
@@ -2127,30 +2132,30 @@ static void sub_813D880(struct Sprite *sprite)
if (sprite->pos2.x + sprite->pos1.x < 304)
sprite->pos2.x += 8;
else
- sprite->data0 = 2;
+ sprite->data[0] = 2;
break;
case 2:
if (sprite->pos2.x + sprite->pos1.x > 120)
sprite->pos2.x -= 1;
else
- sprite->data0 = 3;
+ sprite->data[0] = 3;
break;
case 3:
if (sprite->pos2.x > 0)
sprite->pos2.x -= 2;
break;
}
- sprite->pos2.y = Sin((u8)sprite->data1, 8) - gUnknown_0203935A;
- sprite->data1 += 4;
+ sprite->pos2.y = Sin((u8)sprite->data[1], 8) - gUnknown_0203935A;
+ sprite->data[1] += 4;
}
static void sub_813D908(struct Sprite *sprite)
{
- if (gTasks[sprite->data0].data[0] == 0)
+ if (gTasks[sprite->data[0]].data[0] == 0)
{
sprite->invisible = TRUE;
}
- else if (gTasks[sprite->data0].data[0] != 4)
+ else if (gTasks[sprite->data[0]].data[0] != 4)
{
sprite->invisible = FALSE;
}
@@ -2168,17 +2173,17 @@ static u8 CreateGameFreakLogo(s16 a, s16 b, u8 c)
for (i = 0; i < 9; i++)
{
spriteId = CreateSprite(&gSpriteTemplate_840AF94, gUnknown_0840AF50[i][1] + a, b - 4, 0);
- gSprites[spriteId].data0 = c;
+ gSprites[spriteId].data[0] = c;
StartSpriteAnim(&gSprites[spriteId], gUnknown_0840AF50[i][0]);
}
for (i = 0; i < 8; i++)
{
spriteId = CreateSprite(&gSpriteTemplate_840AFAC, gUnknown_0840AF74[i][1] + a, b + 12, 0);
- gSprites[spriteId].data0 = c;
+ gSprites[spriteId].data[0] = c;
StartSpriteAnim(&gSprites[spriteId], gUnknown_0840AF74[i][0]);
}
spriteId = CreateSprite(&gSpriteTemplate_840AFC4, 120, b - 4, 0);
- gSprites[spriteId].data0 = c;
+ gSprites[spriteId].data[0] = c;
return spriteId;
}
@@ -2186,9 +2191,9 @@ static u8 CreateGameFreakLogo(s16 a, s16 b, u8 c)
#ifdef NONMATCHING
static void sub_813DA64(struct Sprite *sprite)
{
- sprite->data7++;
+ sprite->data[7]++;
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
default:
@@ -2196,10 +2201,10 @@ static void sub_813DA64(struct Sprite *sprite)
sprite->oam.matrixNum = 1;
CalcCenterToCornerVec(sprite, 1, 3, 3);
sprite->invisible = FALSE;
- sprite->data0 = 1;
- sprite->data1 = 128;
- sprite->data2 = -24;
- sprite->data3 = 0;
+ sprite->data[0] = 1;
+ sprite->data[1] = 128;
+ sprite->data[2] = -24;
+ sprite->data[3] = 0;
break;
case 1:
{
@@ -2211,33 +2216,33 @@ static void sub_813DA64(struct Sprite *sprite)
s16 r2;
//_0813DAC0
- if (sprite->data3 < 0x50)
+ if (sprite->data[3] < 0x50)
{
- sprite->pos2.y = -Sin((u8)sprite->data3, 0x78);
- sprite->pos2.x = -Sin((u8)sprite->data3, 0x8C);
- if (sprite->data3 > 64)
+ sprite->pos2.y = -Sin((u8)sprite->data[3], 0x78);
+ sprite->pos2.x = -Sin((u8)sprite->data[3], 0x8C);
+ if (sprite->data[3] > 64)
sprite->oam.priority = 3;
}
//_0813DAF8
- r3 = gSineTable[(u8)sprite->data2];
- sin1 = gSineTable[(u8)(sprite->data2 + 64)];
- r6 = sin1 * sprite->data1 / 256;
- foo = sin1 * sprite->data1 / 256;
- r5 = -r3 * sprite->data1 / 256;
- r2 = r3 * sprite->data1 / 256;
+ r3 = gSineTable[(u8)sprite->data[2]];
+ sin1 = gSineTable[(u8)(sprite->data[2] + 64)];
+ r6 = sin1 * sprite->data[1] / 256;
+ foo = sin1 * sprite->data[1] / 256;
+ r5 = -r3 * sprite->data[1] / 256;
+ r2 = r3 * sprite->data[1] / 256;
SetOamMatrix(1, r6, r2, r5, foo);
- if (sprite->data1 < 0x100)
- sprite->data1 += 8;
+ if (sprite->data[1] < 0x100)
+ sprite->data[1] += 8;
else
- sprite->data1 += 32;
- if (sprite->data2 < 0x18)
- sprite->data2 += 1;
- if (sprite->data3 < 64)
- sprite->data3 += 2;
- else if (!(sprite->data7 & 3))
- sprite->data3 += 1;
+ sprite->data[1] += 32;
+ if (sprite->data[2] < 0x18)
+ sprite->data[2] += 1;
+ if (sprite->data[3] < 64)
+ sprite->data[3] += 2;
+ else if (!(sprite->data[7] & 3))
+ sprite->data[3] += 1;
break;
}
}
@@ -2418,72 +2423,72 @@ _0813DB94:\n\
static void sub_813DB9C(struct Sprite *sprite)
{
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
default:
- if (sprite->data2 != 0)
+ if (sprite->data[2] != 0)
sprite->hFlip = TRUE;
else
sprite->hFlip = FALSE;
- sprite->data0 = 1;
+ sprite->data[0] = 1;
//fall through
case 1:
if (sprite->pos1.y > 96)
{
sprite->pos1.y -= 4;
- if (sprite->data2 != 0)
+ if (sprite->data[2] != 0)
sprite->pos1.x += 2;
else
sprite->pos1.x -= 2;
}
else
{
- sprite->data0++;
- sprite->data3 = 8;
+ sprite->data[0]++;
+ sprite->data[3] = 8;
}
break;
case 2:
- if (sprite->data3 != 0)
+ if (sprite->data[3] != 0)
{
- sprite->data3--;
+ sprite->data[3]--;
}
else
{
- sprite->data0++;
- sprite->data3 = 0; //redundant?
+ sprite->data[0]++;
+ sprite->data[3] = 0; //redundant?
}
break;
case 3:
sprite->oam.affineMode = 3;
- sprite->oam.matrixNum = sprite->data1;
+ sprite->oam.matrixNum = sprite->data[1];
CalcCenterToCornerVec(sprite, 0, 3, 3);
- if (sprite->data2 != 0)
- SetOamMatrix(sprite->data1, -256, 0, 0, 256);
+ if (sprite->data[2] != 0)
+ SetOamMatrix(sprite->data[1], -256, 0, 0, 256);
else
- SetOamMatrix(sprite->data1, 256, 0, 0, 256);
- sprite->data0++;
- sprite->data4 = 0;
+ SetOamMatrix(sprite->data[1], 256, 0, 0, 256);
+ sprite->data[0]++;
+ sprite->data[4] = 0;
break;
case 4:
- sprite->data4++;
+ sprite->data[4]++;
if (sprite->pos1.y + sprite->pos2.y > -32
&& sprite->pos1.x + sprite->pos2.x > -64)
{
u16 r2;
- sprite->pos2.y = -(sprite->data4 * sprite->data4) / 8;
- if (sprite->data2 != 0)
- sprite->pos2.x += sprite->data4;
+ sprite->pos2.y = -(sprite->data[4] * sprite->data[4]) / 8;
+ if (sprite->data[2] != 0)
+ sprite->pos2.x += sprite->data[4];
else
- sprite->pos2.x -= sprite->data4;
- if (sprite->data3 < 128)
- sprite->data3 += 8;
- r2 = 256 - sprite->data3;
- if (sprite->data2 != 0)
- SetOamMatrix(sprite->data1, -r2, 0, 0, r2);
+ sprite->pos2.x -= sprite->data[4];
+ if (sprite->data[3] < 128)
+ sprite->data[3] += 8;
+ r2 = 256 - sprite->data[3];
+ if (sprite->data[2] != 0)
+ SetOamMatrix(sprite->data[1], -r2, 0, 0, r2);
else
- SetOamMatrix(sprite->data1, r2, 0, 0, r2);
+ SetOamMatrix(sprite->data[1], r2, 0, 0, r2);
}
else
{
@@ -2494,50 +2499,50 @@ static void sub_813DB9C(struct Sprite *sprite)
static void sub_813DD58(struct Sprite *sprite)
{
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
default:
sprite->invisible = FALSE;
sprite->oam.affineMode = 1;
- sprite->oam.matrixNum = sprite->data1;
- sprite->data3 = 2048;
- sprite->data0 = 1;
+ sprite->oam.matrixNum = sprite->data[1];
+ sprite->data[3] = 2048;
+ sprite->data[0] = 1;
//fall through
case 1:
- if (sprite->data3 > 256)
+ if (sprite->data[3] > 256)
{
- sprite->data3 -= 128;
- if (sprite->data2 != 0)
- SetOamMatrix(sprite->data1, -sprite->data3, 0, 0, sprite->data3);
+ sprite->data[3] -= 128;
+ if (sprite->data[2] != 0)
+ SetOamMatrix(sprite->data[1], -sprite->data[3], 0, 0, sprite->data[3]);
else
- SetOamMatrix(sprite->data1, sprite->data3, 0, 0, sprite->data3);
+ SetOamMatrix(sprite->data[1], sprite->data[3], 0, 0, sprite->data[3]);
}
else
{
- if (sprite->data2 != 0)
- SetOamMatrix(sprite->data1, -256, 0, 0, 256);
+ if (sprite->data[2] != 0)
+ SetOamMatrix(sprite->data[1], -256, 0, 0, 256);
else
- SetOamMatrix(sprite->data1, 256, 0, 0, 256);
- sprite->data0++;
+ SetOamMatrix(sprite->data[1], 256, 0, 0, 256);
+ sprite->data[0]++;
}
break;
case 2:
break;
case 3:
- sprite->data4++;
- sprite->pos2.y = sprite->data4 * sprite->data4 / 32;
- if (sprite->data2 != 0)
- sprite->pos2.x = sprite->data4 / 4;
+ sprite->data[4]++;
+ sprite->pos2.y = sprite->data[4] * sprite->data[4] / 32;
+ if (sprite->data[2] != 0)
+ sprite->pos2.x = sprite->data[4] / 4;
else
- sprite->pos2.x = -(sprite->data4 / 4);
+ sprite->pos2.x = -(sprite->data[4] / 4);
break;
}
}
static void sub_813DE70(struct Sprite *sprite)
{
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
default:
@@ -2548,24 +2553,24 @@ static void sub_813DE70(struct Sprite *sprite)
else
{
StartSpriteAnim(sprite, 1);
- sprite->data6 = CreateSprite(&gSpriteTemplate_840B084, 16, 104, 100);
- sprite->data7 = CreateSprite(&gSpriteTemplate_840B084, 12, 106, 101);
- sprite->data0 = 1;
+ sprite->data[6] = CreateSprite(&gSpriteTemplate_840B084, 16, 104, 100);
+ sprite->data[7] = CreateSprite(&gSpriteTemplate_840B084, 12, 106, 101);
+ sprite->data[0] = 1;
}
break;
case 1:
break;
case 2:
StartSpriteAnim(sprite, 2);
- gSprites[sprite->data6].data0 = 1;
- gSprites[sprite->data7].data0 = 2;
- sprite->data0++;
+ gSprites[sprite->data[6]].data[0] = 1;
+ gSprites[sprite->data[7]].data[0] = 2;
+ sprite->data[0]++;
break;
case 3:
if (sprite->pos1.y > 160)
{
sprite->invisible = 1;
- sprite->data0 = 1;
+ sprite->data[0] = 1;
}
else
{
@@ -2577,37 +2582,37 @@ static void sub_813DE70(struct Sprite *sprite)
{
s16 r4, r5;
- r5 = gSprites[sprite->data6].pos1.x + gSprites[sprite->data6].pos2.x;
- r4 = gSprites[sprite->data6].pos1.y + gSprites[sprite->data6].pos2.y;
- DestroySprite(&gSprites[sprite->data6]);
- sprite->data6 = sub_813CE88(SPECIES_TORCHIC, r5, r4, 2, 1);
- gSprites[sprite->data6].callback = sub_813DD58;
- gSprites[sprite->data6].invisible = TRUE;
- gSprites[sprite->data6].data1 = 1;
- gSprites[sprite->data6].data2 = 1;
+ r5 = gSprites[sprite->data[6]].pos1.x + gSprites[sprite->data[6]].pos2.x;
+ r4 = gSprites[sprite->data[6]].pos1.y + gSprites[sprite->data[6]].pos2.y;
+ DestroySprite(&gSprites[sprite->data[6]]);
+ sprite->data[6] = sub_813CE88(SPECIES_TORCHIC, r5, r4, 2, 1);
+ gSprites[sprite->data[6]].callback = sub_813DD58;
+ gSprites[sprite->data[6]].invisible = TRUE;
+ gSprites[sprite->data[6]].data[1] = 1;
+ gSprites[sprite->data[6]].data[2] = 1;
sub_813E580(r5, r4);
- r5 = gSprites[sprite->data7].pos1.x + gSprites[sprite->data7].pos2.x;
- r4 = gSprites[sprite->data7].pos1.y + gSprites[sprite->data7].pos2.y;
- DestroySprite(&gSprites[sprite->data7]);
- sprite->data7 = sub_813CE88(SPECIES_MUDKIP, r5, r4, 3, 1);
- gSprites[sprite->data7].callback = sub_813DD58;
- gSprites[sprite->data7].invisible = TRUE;
- gSprites[sprite->data7].data1 = 2;
- gSprites[sprite->data7].data2 = 0;
+ r5 = gSprites[sprite->data[7]].pos1.x + gSprites[sprite->data[7]].pos2.x;
+ r4 = gSprites[sprite->data[7]].pos1.y + gSprites[sprite->data[7]].pos2.y;
+ DestroySprite(&gSprites[sprite->data[7]]);
+ sprite->data[7] = sub_813CE88(SPECIES_MUDKIP, r5, r4, 3, 1);
+ gSprites[sprite->data[7]].callback = sub_813DD58;
+ gSprites[sprite->data[7]].invisible = TRUE;
+ gSprites[sprite->data[7]].data[1] = 2;
+ gSprites[sprite->data[7]].data[2] = 0;
sub_813E580(r5, r4);
BeginNormalPaletteFade(0xFF0000, 0, 16, 16, RGB(31, 23, 31));
- sprite->data0 = 1;
+ sprite->data[0] = 1;
break;
}
case 5:
- gSprites[sprite->data6].data0 = 3;
- gSprites[sprite->data7].data0 = 3;
+ gSprites[sprite->data[6]].data[0] = 3;
+ gSprites[sprite->data[7]].data[0] = 3;
break;
case 6:
- DestroySprite(&gSprites[sprite->data6]);
- DestroySprite(&gSprites[sprite->data7]);
+ DestroySprite(&gSprites[sprite->data[6]]);
+ DestroySprite(&gSprites[sprite->data[7]]);
DestroySprite(sprite);
break;
}
@@ -2615,7 +2620,7 @@ static void sub_813DE70(struct Sprite *sprite)
static void sub_813E10C(struct Sprite *sprite)
{
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
default:
@@ -2626,20 +2631,20 @@ static void sub_813E10C(struct Sprite *sprite)
}
else
{
- sprite->data6 = sprite->pos1.x;
- sprite->data7 = sprite->pos1.y;
+ sprite->data[6] = sprite->pos1.x;
+ sprite->data[7] = sprite->pos1.y;
sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y;
sprite->pos2.x = 0;
sprite->pos2.y = 0;
- sprite->data0 = 1;
- sprite->data1 = 0;
+ sprite->data[0] = 1;
+ sprite->data[1] = 0;
}
break;
case 1:
- if (!(sprite->data1 & 1))
+ if (!(sprite->data[1] & 1))
{
- if (sprite->data1 & 2)
+ if (sprite->data[1] & 2)
{
sprite->pos2.x = -1;
sprite->pos2.y = 1;
@@ -2650,18 +2655,18 @@ static void sub_813E10C(struct Sprite *sprite)
sprite->pos2.y = 0;
}
}
- sprite->data1++;
+ sprite->data[1]++;
break;
case 2:
sprite->invisible = TRUE;
- sprite->pos1.x = sprite->data6;
- sprite->pos1.y = sprite->data7;
+ sprite->pos1.x = sprite->data[6];
+ sprite->pos1.y = sprite->data[7];
sprite->pos2.x = 0;
sprite->pos2.y = 0;
break;
case 3:
sprite->invisible = FALSE;
- sprite->data1++;
+ sprite->data[1]++;
//fall through
case 4:
if (sprite->pos2.x > -56)
@@ -2675,7 +2680,7 @@ static void sub_813E10C(struct Sprite *sprite)
sprite->pos1.y += sprite->pos2.y;
sprite->pos2.x = 0;
sprite->pos2.y = 0;
- sprite->data0 = 1;
+ sprite->data[0] = 1;
}
break;
}
@@ -2683,7 +2688,7 @@ static void sub_813E10C(struct Sprite *sprite)
static void sub_813E210(struct Sprite *sprite)
{
- switch (sprite->data0)
+ switch (sprite->data[0])
{
case 0:
default:
@@ -2694,20 +2699,20 @@ static void sub_813E210(struct Sprite *sprite)
}
else
{
- sprite->data6 = sprite->pos1.x;
- sprite->data7 = sprite->pos1.y;
+ sprite->data[6] = sprite->pos1.x;
+ sprite->data[7] = sprite->pos1.y;
sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y;
sprite->pos2.x = 0;
sprite->pos2.y = 0;
- sprite->data0 = 1;
- sprite->data1 = 0;
+ sprite->data[0] = 1;
+ sprite->data[1] = 0;
}
break;
case 1:
- if (!(sprite->data1 & 1))
+ if (!(sprite->data[1] & 1))
{
- if (sprite->data1 & 2)
+ if (sprite->data[1] & 2)
{
sprite->pos2.x = 1;
sprite->pos2.y = -1;
@@ -2718,18 +2723,18 @@ static void sub_813E210(struct Sprite *sprite)
sprite->pos2.y = 0;
}
}
- sprite->data1++;
+ sprite->data[1]++;
break;
case 2:
sprite->invisible = TRUE;
- sprite->pos1.x = sprite->data6;
- sprite->pos1.y = sprite->data7;
+ sprite->pos1.x = sprite->data[6];
+ sprite->pos1.y = sprite->data[7];
sprite->pos2.x = 0;
sprite->pos2.y = 0;
break;
case 3:
sprite->invisible = FALSE;
- sprite->data1++;
+ sprite->data[1]++;
//fall through
case 4:
if (sprite->pos2.x < 56)
@@ -2743,7 +2748,7 @@ static void sub_813E210(struct Sprite *sprite)
sprite->pos1.y += sprite->pos2.y;
sprite->pos2.x = 0;
sprite->pos2.y = 0;
- sprite->data0 = 1;
+ sprite->data[0] = 1;
}
break;
}
@@ -2753,8 +2758,8 @@ static void sub_813E30C(struct Sprite *sprite)
{
u16 r4, r1;
- sprite->data7++;
- switch (sprite->data0)
+ sprite->data[7]++;
+ switch (sprite->data[0])
{
case 0:
default:
@@ -2762,43 +2767,43 @@ static void sub_813E30C(struct Sprite *sprite)
case 1:
sprite->oam.affineMode = 1;
sprite->oam.matrixNum = 1;
- sprite->data0 = 10;
- sprite->data4 = 36;
+ sprite->data[0] = 10;
+ sprite->data[4] = 36;
//fall through
case 10:
if (sprite->pos1.x <= 144)
{
sprite->pos1.x += 4;
sprite->pos1.y -= 1;
- sprite->pos2.y = -Sin((u8)sprite->data2, 24);
- sprite->data2 += 4;
+ sprite->pos2.y = -Sin((u8)sprite->data[2], 24);
+ sprite->data[2] += 4;
}
- sprite->data3 -= sprite->data4;
- if ((sprite->data7 & 1) && sprite->data4 != 0)
- sprite->data4--;
- r4 = gSineTable[(u8)sprite->data3];
- r1 = gSineTable[(u8)(sprite->data3 + 64)];
+ sprite->data[3] -= sprite->data[4];
+ if ((sprite->data[7] & 1) && sprite->data[4] != 0)
+ sprite->data[4]--;
+ r4 = gSineTable[(u8)sprite->data[3]];
+ r1 = gSineTable[(u8)(sprite->data[3] + 64)];
SetOamMatrix(1, r1, r4, -r4, r1);
break;
case 2:
sprite->oam.affineMode = 1;
sprite->oam.matrixNum = 2;
- sprite->data0 = 20;
- sprite->data4 = 36;
+ sprite->data[0] = 20;
+ sprite->data[4] = 36;
//fall through
case 20:
if (sprite->pos1.x <= 96)
{
sprite->pos1.x += 3;
sprite->pos1.y -= 1;
- sprite->pos2.y = -Sin((u8)sprite->data2, 24);
- sprite->data2 += 4;
+ sprite->pos2.y = -Sin((u8)sprite->data[2], 24);
+ sprite->data[2] += 4;
}
- sprite->data3 -= sprite->data4;
- if ((sprite->data7 & 1) && sprite->data4 != 0)
- sprite->data4--;
- r4 = gSineTable[(u8)sprite->data3];
- r1 = gSineTable[(u8)(sprite->data3 + 64)];
+ sprite->data[3] -= sprite->data[4];
+ if ((sprite->data[7] & 1) && sprite->data[4] != 0)
+ sprite->data[4]--;
+ r4 = gSineTable[(u8)sprite->data[3]];
+ r1 = gSineTable[(u8)(sprite->data[3] + 64)];
SetOamMatrix(2, r1, r4, -r4, r1);
break;
}
@@ -2810,27 +2815,27 @@ static void sub_813E4B8(struct Sprite *sprite)
u16 r2;
u16 r1;
- sprite->data7++;
- if (sprite->data7 & 1)
+ sprite->data[7]++;
+ if (sprite->data[7] & 1)
sprite->invisible = FALSE;
else
sprite->invisible = TRUE;
- if (sprite->data2 >= 64)
+ if (sprite->data[2] >= 64)
{
DestroySprite(sprite);
return;
}
- sprite->data2 += 2;
- r4 = Sin((u8)sprite->data2, 40);
- sprite->pos2.x = Cos((u8)(sprite->data0 * 32), r4);
- sprite->pos2.y = Sin((u8)(sprite->data0 * 32), r4);
- if (sprite->data0 == 0)
- {
- sprite->data3 -= sprite->data1;
- if ((sprite->data7 & 1) && sprite->data1 != 0)
- sprite->data1--;
- r2 = gSineTable[(u8)sprite->data3];
- r1 = gSineTable[(u8)(sprite->data3 + 64)];
+ sprite->data[2] += 2;
+ r4 = Sin((u8)sprite->data[2], 40);
+ sprite->pos2.x = Cos((u8)(sprite->data[0] * 32), r4);
+ sprite->pos2.y = Sin((u8)(sprite->data[0] * 32), r4);
+ if (sprite->data[0] == 0)
+ {
+ sprite->data[3] -= sprite->data[1];
+ if ((sprite->data[7] & 1) && sprite->data[1] != 0)
+ sprite->data[1]--;
+ r2 = gSineTable[(u8)sprite->data[3]];
+ r1 = gSineTable[(u8)(sprite->data[3] + 64)];
SetOamMatrix(16, r1, r2, -r2, r1);
}
}
@@ -2845,8 +2850,8 @@ static void sub_813E580(u16 x, u16 y)
spriteId = CreateSprite(&gSpriteTemplate_840B0B0, x, y, 0);
gSprites[spriteId].oam.affineMode = 1;
gSprites[spriteId].oam.matrixNum = 16;
- gSprites[spriteId].data0 = i;
- gSprites[spriteId].data1 = 32;
+ gSprites[spriteId].data[0] = i;
+ gSprites[spriteId].data[1] = 32;
}
}
@@ -2858,16 +2863,16 @@ static void sub_813E5E0(struct Sprite *sprite)
}
else
{
- sprite->invisible = gSprites[sprite->data0].invisible;
- if (sprite->data7 < 12)
- sprite->data7++;
- sprite->data6 += 4;
- sprite->pos1.x = sprite->data4 + gSineTable[(u8)(sprite->data3 + 64)] * sprite->data6 / 256;
+ sprite->invisible = gSprites[sprite->data[0]].invisible;
+ if (sprite->data[7] < 12)
+ sprite->data[7]++;
+ sprite->data[6] += 4;
+ sprite->pos1.x = sprite->data[4] + gSineTable[(u8)(sprite->data[3] + 64)] * sprite->data[6] / 256;
//This useless '+ 0' is needed to make the asm match
- sprite->pos1.y = sprite->data5 + gSineTable[(u8)(sprite->data3 + 0)] * sprite->data6 / 256;
- sprite->pos2.y = gSineTable[(u8)(sprite->data1 + 0)] * sprite->data7 / 256;
- sprite->data1 += 16;
- if (sprite->pos1.y > sprite->data2)
+ sprite->pos1.y = sprite->data[5] + gSineTable[(u8)(sprite->data[3] + 0)] * sprite->data[6] / 256;
+ sprite->pos2.y = gSineTable[(u8)(sprite->data[1] + 0)] * sprite->data[7] / 256;
+ sprite->data[1] += 16;
+ if (sprite->pos1.y > sprite->data[2])
DestroySprite(sprite);
}
}
@@ -2885,15 +2890,15 @@ static void sub_813E6C0(struct Sprite *sprite)
}
else
{
- sprite->data7++;
+ sprite->data[7]++;
sprite->invisible = TRUE;
- if (gSprites[sprite->data0].data0 == 1 && !(sprite->data7 & 3))
+ if (gSprites[sprite->data[0]].data[0] == 1 && !(sprite->data[7] & 3))
{
- var1 = sprite->data1 + gSprites[sprite->data0].pos1.x;
- var2 = sprite->data2 + gSprites[sprite->data0].pos1.y;
+ var1 = sprite->data[1] + gSprites[sprite->data[0]].pos1.x;
+ var2 = sprite->data[2] + gSprites[sprite->data[0]].pos1.y;
for (i = 0; i < 3; i++)
{
- u8 r3 = gSprites[sprite->data0].subpriority - 1;
+ u8 r3 = gSprites[sprite->data[0]].subpriority - 1;
//Make redundant copies of these variables to get the asm to match
s16 _var1 = var1;
s16 _var2 = var2;
@@ -2901,13 +2906,13 @@ static void sub_813E6C0(struct Sprite *sprite)
spriteId = CreateSprite(&gSpriteTemplate_840B0DC, _var1, _var2, r3);
if (spriteId != 64)
{
- gSprites[spriteId].data0 = sprite->data0;
- gSprites[spriteId].data1 = (((sprite->data7 >> 2) & 7) << 5) + i * 85;
- gSprites[spriteId].data2 = sprite->data3;
- gSprites[spriteId].data3 = 104;
- gSprites[spriteId].data4 = var1;
- gSprites[spriteId].data5 = var2;
- gSprites[spriteId].data6 = 0;
+ gSprites[spriteId].data[0] = sprite->data[0];
+ gSprites[spriteId].data[1] = (((sprite->data[7] >> 2) & 7) << 5) + i * 85;
+ gSprites[spriteId].data[2] = sprite->data[3];
+ gSprites[spriteId].data[3] = 104;
+ gSprites[spriteId].data[4] = var1;
+ gSprites[spriteId].data[5] = var2;
+ gSprites[spriteId].data[6] = 0;
}
}
}
@@ -2921,10 +2926,10 @@ static void sub_813E7C0(u8 a)
spriteId = CreateSprite(&gSpriteTemplate_840B0F4, 0, 0, 0);
if (spriteId != 64)
{
- gSprites[spriteId].data0 = a;
- gSprites[spriteId].data1 = -12;
- gSprites[spriteId].data2 = 0;
- gSprites[spriteId].data3 = 136;
+ gSprites[spriteId].data[0] = a;
+ gSprites[spriteId].data[1] = -12;
+ gSprites[spriteId].data[2] = 0;
+ gSprites[spriteId].data[3] = 136;
}
}
@@ -2936,20 +2941,20 @@ static void sub_813E804(struct Sprite *sprite)
}
else
{
- sprite->invisible = gSprites[sprite->data0].invisible;
- sprite->data7++;
- if (sprite->data3 < 40)
- sprite->data3 += 2;
+ sprite->invisible = gSprites[sprite->data[0]].invisible;
+ sprite->data[7]++;
+ if (sprite->data[3] < 40)
+ sprite->data[3] += 2;
//This useless '+ 0' is needed to make the asm match
- sprite->pos1.x = gSprites[sprite->data0].pos1.x + gSprites[sprite->data0].pos2.x + gSineTable[(u8)(sprite->data1 + 64)] * sprite->data3 / 256;
- sprite->pos1.y = gSprites[sprite->data0].pos1.y + gSprites[sprite->data0].pos2.y + gSineTable[(u8)(sprite->data1 + 0)] * sprite->data3 / 512;
- sprite->data1 += 2;
- sprite->pos2.y = gSineTable[(u8)(sprite->data2 + 0)] / 32;
- sprite->data2 += 8;
- if ((sprite->data1 & 0xFF) < 128)
- sprite->subpriority = gSprites[sprite->data0].subpriority - 1;
+ sprite->pos1.x = gSprites[sprite->data[0]].pos1.x + gSprites[sprite->data[0]].pos2.x + gSineTable[(u8)(sprite->data[1] + 64)] * sprite->data[3] / 256;
+ sprite->pos1.y = gSprites[sprite->data[0]].pos1.y + gSprites[sprite->data[0]].pos2.y + gSineTable[(u8)(sprite->data[1] + 0)] * sprite->data[3] / 512;
+ sprite->data[1] += 2;
+ sprite->pos2.y = gSineTable[(u8)(sprite->data[2] + 0)] / 32;
+ sprite->data[2] += 8;
+ if ((sprite->data[1] & 0xFF) < 128)
+ sprite->subpriority = gSprites[sprite->data[0]].subpriority - 1;
else
- sprite->subpriority = gSprites[sprite->data0].subpriority + 1;
+ sprite->subpriority = gSprites[sprite->data[0]].subpriority + 1;
}
}
@@ -2963,8 +2968,8 @@ static void sub_813E930(u8 a)
spriteId = CreateSprite(&gSpriteTemplate_840B124, gSprites[a].pos1.x, gSprites[a].pos1.y, 0);
if (spriteId != 64)
{
- gSprites[spriteId].data0 = a;
- gSprites[spriteId].data1 = i * 32;
+ gSprites[spriteId].data[0] = a;
+ gSprites[spriteId].data[1] = i * 32;
}
}
}
@@ -2980,17 +2985,17 @@ static void sub_813E980(struct Sprite *sprite)
u8 r0;
u16 matrixNum;
- sprite->invisible = gSprites[sprite->data0].invisible;
- sprite->data7++;
- sprite->data6 += 8;
- sprite->pos1.x = sprite->data4 + gSineTable[(u8)(sprite->data3 + 64)] * sprite->data6 / 256;
- sprite->pos1.y = sprite->data5 + gSineTable[(u8)(sprite->data3 + 0)] * sprite->data6 / 256;
- r0 = sprite->data6 / 16;
+ sprite->invisible = gSprites[sprite->data[0]].invisible;
+ sprite->data[7]++;
+ sprite->data[6] += 8;
+ sprite->pos1.x = sprite->data[4] + gSineTable[(u8)(sprite->data[3] + 64)] * sprite->data[6] / 256;
+ sprite->pos1.y = sprite->data[5] + gSineTable[(u8)(sprite->data[3] + 0)] * sprite->data[6] / 256;
+ r0 = sprite->data[6] / 16;
if (r0 > 9)
r0 = 9;
matrixNum = (r0 + 18) & 31;
sprite->oam.matrixNum = matrixNum;
- if (sprite->data6 > 160)
+ if (sprite->data[6] > 160)
DestroySprite(sprite);
}
}
@@ -3007,26 +3012,26 @@ static void sub_813EA60(struct Sprite *sprite)
}
else
{
- sprite->data7++;
+ sprite->data[7]++;
sprite->invisible = TRUE;
- if (gSprites[sprite->data0].data0 == 1)
+ if (gSprites[sprite->data[0]].data[0] == 1)
{
- r6 = (sprite->data7 & 1);
+ r6 = (sprite->data[7] & 1);
if (!r6)
{
- r1 = sprite->data1 + gSprites[sprite->data0].pos1.x;
- r2 = sprite->data2 + gSprites[sprite->data0].pos1.y;
- spriteId = CreateSprite(&gSpriteTemplate_840B150, r1, r2, gSprites[sprite->data0].subpriority + 1);
+ r1 = sprite->data[1] + gSprites[sprite->data[0]].pos1.x;
+ r2 = sprite->data[2] + gSprites[sprite->data[0]].pos1.y;
+ spriteId = CreateSprite(&gSpriteTemplate_840B150, r1, r2, gSprites[sprite->data[0]].subpriority + 1);
if (spriteId != 64)
{
gSprites[spriteId].oam.affineMode = 3;
gSprites[spriteId].oam.matrixNum = 18;
CalcCenterToCornerVec(&gSprites[spriteId], 0, 1, 3);
- gSprites[spriteId].data0 = sprite->data0;
- gSprites[spriteId].data3 = gUnknown_0840B168[(sprite->data7 >> 1) & 7];
- gSprites[spriteId].data4 = r1;
- gSprites[spriteId].data5 = r2;
- gSprites[spriteId].data6 = r6;
+ gSprites[spriteId].data[0] = sprite->data[0];
+ gSprites[spriteId].data[3] = gUnknown_0840B168[(sprite->data[7] >> 1) & 7];
+ gSprites[spriteId].data[4] = r1;
+ gSprites[spriteId].data[5] = r2;
+ gSprites[spriteId].data[6] = r6;
}
}
}
@@ -3041,10 +3046,10 @@ static void InitIntroTorchicAttackAnim(u8 a)
spriteId = CreateSprite(&gSpriteTemplate_840B170, 0, 0, 0);
if (spriteId != 64)
{
- gSprites[spriteId].data0 = a;
- gSprites[spriteId].data1 = 0;
- gSprites[spriteId].data2 = 8;
- gSprites[spriteId].data3 = 24;
+ gSprites[spriteId].data[0] = a;
+ gSprites[spriteId].data[1] = 0;
+ gSprites[spriteId].data[2] = 8;
+ gSprites[spriteId].data[3] = 24;
}
for (i = 0; i < 10; i++)
{
@@ -3060,14 +3065,14 @@ static void sub_813EBBC(struct Sprite *sprite)
}
else
{
- sprite->invisible = gSprites[sprite->data0].invisible;
- sprite->data7 += 1;
- sprite->data6 += 8;
- sprite->pos1.x = sprite->data4 + gSineTable[(u8)(sprite->data3 + 64)] * sprite->data6 / 256;
- sprite->pos1.y = sprite->data5 + gSineTable[(u8)(sprite->data3 + 0)] * sprite->data6 / 256;
- sprite->pos2.y = gSineTable[(u8)(sprite->data1 + 0)] / 64;
- sprite->data1 += 16;
- if (sprite->pos1.y < sprite->data2)
+ sprite->invisible = gSprites[sprite->data[0]].invisible;
+ sprite->data[7] += 1;
+ sprite->data[6] += 8;
+ sprite->pos1.x = sprite->data[4] + gSineTable[(u8)(sprite->data[3] + 64)] * sprite->data[6] / 256;
+ sprite->pos1.y = sprite->data[5] + gSineTable[(u8)(sprite->data[3] + 0)] * sprite->data[6] / 256;
+ sprite->pos2.y = gSineTable[(u8)(sprite->data[1] + 0)] / 64;
+ sprite->data[1] += 16;
+ if (sprite->pos1.y < sprite->data[2])
DestroySprite(sprite);
}
}
@@ -3085,34 +3090,34 @@ static void sub_813EC90(struct Sprite *sprite)
}
else
{
- sprite->data7++;
+ sprite->data[7]++;
sprite->invisible = TRUE;
- if (gSprites[sprite->data0].data0 == 1)
+ if (gSprites[sprite->data[0]].data[0] == 1)
{
- r6 = sprite->data7 & 1;
+ r6 = sprite->data[7] & 1;
if (!r6)
{
- r1 = sprite->data1 + gSprites[sprite->data0].pos1.x;
- r2 = sprite->data2 + gSprites[sprite->data0].pos1.y;
- spriteId = CreateSprite(&gSpriteTemplate_840B1B0, r1, r2, gSprites[sprite->data0].subpriority + 1);
+ r1 = sprite->data[1] + gSprites[sprite->data[0]].pos1.x;
+ r2 = sprite->data[2] + gSprites[sprite->data[0]].pos1.y;
+ spriteId = CreateSprite(&gSpriteTemplate_840B1B0, r1, r2, gSprites[sprite->data[0]].subpriority + 1);
if (spriteId != 64)
{
gSprites[spriteId].oam.affineMode = 3;
gSprites[spriteId].oam.matrixNum = 17;
CalcCenterToCornerVec(&gSprites[spriteId], 0, 1, 3);
- gSprites[spriteId].data0 = sprite->data0;
- gSprites[spriteId].data1 = ((sprite->data7 >> 2) & 7) << 5;
- gSprites[spriteId].data2 = sprite->data3;
- gSprites[spriteId].data3 = 232;
- gSprites[spriteId].data4 = r1;
- gSprites[spriteId].data5 = r2;
- gSprites[spriteId].data6 = r6;
+ gSprites[spriteId].data[0] = sprite->data[0];
+ gSprites[spriteId].data[1] = ((sprite->data[7] >> 2) & 7) << 5;
+ gSprites[spriteId].data[2] = sprite->data[3];
+ gSprites[spriteId].data[3] = 232;
+ gSprites[spriteId].data[4] = r1;
+ gSprites[spriteId].data[5] = r2;
+ gSprites[spriteId].data[6] = r6;
}
}
- if (sprite->data6 < 112)
- sprite->data6 += 4;
+ if (sprite->data[6] < 112)
+ sprite->data[6] += 4;
}
- foo = 256 - gSineTable[(u8)sprite->data6] / 2;
+ foo = 256 - gSineTable[(u8)sprite->data[6]] / 2;
SetOamMatrix(17, foo, 0, 0, foo);
}
}
@@ -3124,10 +3129,10 @@ static void InitIntroMudkipAttackAnim(u8 a)
spriteId = CreateSprite(&gSpriteTemplate_840B1C8, 0, 0, 0);
if (spriteId != 64)
{
- gSprites[spriteId].data0 = a;
- gSprites[spriteId].data1 = 0;
- gSprites[spriteId].data2 = 12;
- gSprites[spriteId].data3 = 24;
+ gSprites[spriteId].data[0] = a;
+ gSprites[spriteId].data[1] = 0;
+ gSprites[spriteId].data[2] = 12;
+ gSprites[spriteId].data[3] = 24;
}
}
@@ -3136,8 +3141,8 @@ static void sub_813EDFC(struct Sprite *sprite)
u16 foo;
//I'm not sure why a switch statement was used here.
- //if (sprite->data0 != 1) would have been more appropriate.
- switch (sprite->data0)
+ //if (sprite->data[0] != 1) would have been more appropriate.
+ switch (sprite->data[0])
{
case 0:
default:
@@ -3145,23 +3150,23 @@ static void sub_813EDFC(struct Sprite *sprite)
sprite->oam.affineMode = 3;
sprite->oam.matrixNum = 18;
CalcCenterToCornerVec(sprite, 0, 3, 3);
- sprite->data1 = 0;
- sprite->data0 = 1;
+ sprite->data[1] = 0;
+ sprite->data[0] = 1;
//fall through
case 1:
break;
}
- sprite->data7++;
- if (sprite->data7 & 1)
+ sprite->data[7]++;
+ if (sprite->data[7] & 1)
{
sprite->invisible = TRUE;
}
else
{
sprite->invisible = FALSE;
- if (sprite->data1 < 64)
- sprite->data1++;
+ if (sprite->data[1] < 64)
+ sprite->data[1]++;
}
- foo = 256 - gSineTable[(u8)sprite->data1] / 2;
+ foo = 256 - gSineTable[(u8)sprite->data[1]] / 2;
SetOamMatrix(18, foo, 0, 0, foo);
}
diff --git a/src/scene/intro_credits_graphics.c b/src/scene/intro_credits_graphics.c
index cd0589af8..05c67696a 100755
--- a/src/scene/intro_credits_graphics.c
+++ b/src/scene/intro_credits_graphics.c
@@ -11,11 +11,11 @@
#include "main.h"
#include "new_game.h"
#include "palette.h"
-#include "rng.h"
+#include "random.h"
#include "save.h"
-#include "songs.h"
+#include "constants/songs.h"
#include "sound.h"
-#include "species.h"
+#include "constants/species.h"
#include "task.h"
#include "title_screen.h"
#include "trig.h"
@@ -418,11 +418,11 @@ void sub_814910C(struct Sprite *sprite)
}
else
{
- s32 var = ((sprite->pos1.x << 16) | (u16)sprite->data2) + (u16)sprite->data1;
+ s32 var = ((sprite->pos1.x << 16) | (u16)sprite->data[2]) + (u16)sprite->data[1];
sprite->pos1.x = var >> 16;
- sprite->data2 = var;
+ sprite->data[2] = var;
if (sprite->pos1.x > 255) sprite->pos1.x = 0xFFE0;
- if (sprite->data0)
+ if (sprite->data[0])
{
sprite->pos2.y = -(gUnknown_02039358 + gUnknown_0203935A);
}
@@ -447,9 +447,9 @@ void sub_8149174(u8 a, struct UnknownStruct1 *b, const union AnimCmd *const *c,
gSprites[sprite].oam.paletteNum = 0;
gSprites[sprite].anims = c;
StartSpriteAnim(&gSprites[sprite], b[i].var0_0);
- gSprites[sprite].data0 = a;
- gSprites[sprite].data1 = b[i].var4;
- gSprites[sprite].data2 = 0;
+ gSprites[sprite].data[0] = a;
+ gSprites[sprite].data[1] = b[i].var4;
+ gSprites[sprite].data[2] = 0;
}
}
@@ -474,11 +474,11 @@ void nullsub_82()
void sub_81492A0(struct Sprite* sprite)
{
- sprite->invisible = gSprites[sprite->data0].invisible;
- sprite->pos1.x = gSprites[sprite->data0].pos1.x;
- sprite->pos1.y = gSprites[sprite->data0].pos1.y + 8;
- sprite->pos2.x = gSprites[sprite->data0].pos2.x;
- sprite->pos2.y = gSprites[sprite->data0].pos2.y;
+ sprite->invisible = gSprites[sprite->data[0]].invisible;
+ sprite->pos1.x = gSprites[sprite->data[0]].pos1.x;
+ sprite->pos1.y = gSprites[sprite->data[0]].pos1.y + 8;
+ sprite->pos2.x = gSprites[sprite->data[0]].pos2.x;
+ sprite->pos2.y = gSprites[sprite->data[0]].pos2.y;
}
@@ -487,7 +487,7 @@ u8 intro_create_brendan_sprite(s16 a, s16 b)
{
u8 sprite = CreateSprite(&gSpriteTemplate_8416CDC, a, b, 0);
u8 brendan = CreateSprite(&gSpriteTemplate_Brendan, a, b + 8, 1);
- gSprites[brendan].data0 = sprite;
+ gSprites[brendan].data[0] = sprite;
return sprite;
}
@@ -495,7 +495,7 @@ u8 intro_create_may_sprite(s16 a, s16 b)
{
u8 sprite = CreateSprite(&gSpriteTemplate_8416CF4, a, b, 0);
u8 may = CreateSprite(&gSpriteTemplate_May, a, b + 8, 1);
- gSprites[may].data0 = sprite;
+ gSprites[may].data[0] = sprite;
return sprite;
}
@@ -505,17 +505,17 @@ void nullsub_83()
void sub_81493C4(struct Sprite* sprite)
{
- sprite->invisible = gSprites[sprite->data0].invisible;
- sprite->pos1.y = gSprites[sprite->data0].pos1.y;
- sprite->pos2.x = gSprites[sprite->data0].pos2.x;
- sprite->pos2.y = gSprites[sprite->data0].pos2.y;
+ sprite->invisible = gSprites[sprite->data[0]].invisible;
+ sprite->pos1.y = gSprites[sprite->data[0]].pos1.y;
+ sprite->pos2.x = gSprites[sprite->data[0]].pos2.x;
+ sprite->pos2.y = gSprites[sprite->data[0]].pos2.y;
}
u8 intro_create_latios_sprite(s16 a, s16 b)
{
u8 sprite = CreateSprite(&gSpriteTemplate_8416D7C, a - 32, b, 2);
u8 latios = CreateSprite(&gSpriteTemplate_8416D7C, a + 32, b, 2);
- gSprites[latios].data0 = sprite;
+ gSprites[latios].data[0] = sprite;
StartSpriteAnim(&gSprites[latios], 1);
gSprites[latios].callback = &sub_81493C4;
return sprite;
@@ -525,7 +525,7 @@ u8 intro_create_latias_sprite(s16 a, s16 b)
{
u8 sprite = CreateSprite(&gSpriteTemplate_8416D94, a - 32, b, 2);
u8 latios = CreateSprite(&gSpriteTemplate_8416D94, a + 32, b, 2);
- gSprites[latios].data0 = sprite;
+ gSprites[latios].data[0] = sprite;
StartSpriteAnim(&gSprites[latios], 1);
gSprites[latios].callback = &sub_81493C4;
return sprite;
diff --git a/src/scene/new_game.c b/src/scene/new_game.c
index 6ab21c544..ee042a0de 100644
--- a/src/scene/new_game.c
+++ b/src/scene/new_game.c
@@ -18,7 +18,7 @@
#include "pokedex.h"
#include "pokemon_size_record.h"
#include "pokemon_storage_system.h"
-#include "rng.h"
+#include "random.h"
#include "roamer.h"
#include "overworld.h"
#include "rtc.h"
@@ -92,9 +92,9 @@ void sub_8052DA8(void)
gSaveBlock1.sbStruct.unkSB1.sb1_2EFC_struct[i] = gUnknown_08216604;
}
-void sub_8052DE4(void)
+void ZeroBattleTowerData(void)
{
- CpuFill32(0, &gSaveBlock2.filler_A8, sizeof(gSaveBlock2.filler_A8));
+ CpuFill32(0, &gSaveBlock2.battleTower, sizeof(gSaveBlock2.battleTower));
}
void WarpToTruck(void)
@@ -127,7 +127,7 @@ void NewGameInitData(void)
ZeroPlayerPartyMons();
ZeroEnemyPartyMons();
ResetPokedex();
- sub_8052DE4();
+ ZeroBattleTowerData();
memset(&gSaveBlock1, 0, sizeof(gSaveBlock1));
ClearMailData();
gSaveBlock2.specialSaveWarp = 0;
diff --git a/src/scene/title_screen.c b/src/scene/title_screen.c
index 2503b0654..f158500fe 100644
--- a/src/scene/title_screen.c
+++ b/src/scene/title_screen.c
@@ -360,7 +360,7 @@ static void UpdateLegendaryMarkingColor(u8);
void SpriteCallback_VersionBannerLeft(struct Sprite *sprite)
{
- struct Task *task = &gTasks[sprite->data1];
+ struct Task *task = &gTasks[sprite->data[1]];
if (task->data[1] != 0)
{
@@ -384,7 +384,7 @@ void SpriteCallback_VersionBannerLeft(struct Sprite *sprite)
void SpriteCallback_VersionBannerRight(struct Sprite *sprite)
{
- struct Task *task = &gTasks[sprite->data1];
+ struct Task *task = &gTasks[sprite->data[1]];
if (task->data[1] != 0)
{
@@ -405,11 +405,11 @@ void SpriteCallback_VersionBannerRight(struct Sprite *sprite)
void SpriteCallback_PressStartCopyrightBanner(struct Sprite *sprite)
{
- if (sprite->data0 == 1)
+ if (sprite->data[0] == 1)
{
- sprite->data1++;
+ sprite->data[1]++;
//Alternate between hidden and shown every 16th frame
- if (sprite->data1 & 16)
+ if (sprite->data[1] & 16)
sprite->invisible = FALSE;
else
sprite->invisible = TRUE;
@@ -429,7 +429,7 @@ static void CreatePressStartBanner(s16 x, s16 y)
{
spriteId = CreateSprite(&sStartCopyrightBannerSpriteTemplate, x, y, 0);
StartSpriteAnim(&gSprites[spriteId], i);
- gSprites[spriteId].data0 = 1;
+ gSprites[spriteId].data[0] = 1;
}
}
#elif GERMAN
@@ -554,27 +554,27 @@ void SpriteCallback_PokemonLogoShine(struct Sprite *sprite)
{
if (gTasks[gUnknown_0202F7E4].data[1] == 0 && sprite->pos1.x < 272)
{
- if (sprite->data0) //Flash background
+ if (sprite->data[0]) //Flash background
{
u16 backgroundColor;
if (sprite->pos1.x < DISPLAY_WIDTH / 2)
{
//Brighten background color
- if (sprite->data1 < 31)
- sprite->data1++;
- if (sprite->data1 < 31)
- sprite->data1++;
+ if (sprite->data[1] < 31)
+ sprite->data[1]++;
+ if (sprite->data[1] < 31)
+ sprite->data[1]++;
}
else
{
//Darken background color
- if (sprite->data1 != 0)
- sprite->data1--;
- if (sprite->data1 != 0)
- sprite->data1--;
+ if (sprite->data[1] != 0)
+ sprite->data[1]--;
+ if (sprite->data[1] != 0)
+ sprite->data[1]--;
}
- backgroundColor = _RGB(sprite->data1, sprite->data1, sprite->data1);
+ backgroundColor = _RGB(sprite->data[1], sprite->data[1], sprite->data[1]);
gPlttBufferFaded[0] = backgroundColor;
gPlttBufferFaded[PLTT_BUFFER_INDEX] = backgroundColor;
}
@@ -593,7 +593,7 @@ static void StartPokemonLogoShine(bool8 flashBackground)
u8 spriteId = CreateSprite(&sPokemonLogoShineSpriteTemplate, 0, 68, 0);
gSprites[spriteId].oam.objMode = 2;
- gSprites[spriteId].data0 = flashBackground;
+ gSprites[spriteId].data[0] = flashBackground;
}
static void VBlankCB(void)
@@ -758,12 +758,12 @@ static void Task_TitleScreenPhase1(u8 taskId)
//Create left side of version banner
spriteId = CreateSprite(&sVersionBannerLeftSpriteTemplate, VERSION_BANNER_LEFT_X, VERSION_BANNER_Y, 0);
gSprites[spriteId].invisible = TRUE;
- gSprites[spriteId].data1 = taskId;
+ gSprites[spriteId].data[1] = taskId;
//Create right side of version banner
spriteId = CreateSprite(&sVersionBannerRightSpriteTemplate, VERSION_BANNER_RIGHT_X, VERSION_BANNER_Y, 0);
gSprites[spriteId].invisible = TRUE;
- gSprites[spriteId].data1 = taskId;
+ gSprites[spriteId].data[1] = taskId;
gTasks[taskId].data[5] = 88;
gTasks[taskId].tCounter = 144;