diff options
Diffstat (limited to 'src/scene')
| -rw-r--r-- | src/scene/berry_blender.c | 154 | ||||
| -rw-r--r-- | src/scene/cable_car.c | 174 | ||||
| -rw-r--r-- | src/scene/contest_painting.c | 24 | ||||
| -rw-r--r-- | src/scene/credits.c | 357 | ||||
| -rw-r--r-- | src/scene/egg_hatch.c | 120 | ||||
| -rw-r--r-- | src/scene/evolution_graphics.c | 84 | ||||
| -rw-r--r-- | src/scene/evolution_scene.c | 276 | ||||
| -rw-r--r-- | src/scene/hall_of_fame.c | 138 | ||||
| -rw-r--r-- | src/scene/intro.c | 713 | ||||
| -rwxr-xr-x | src/scene/intro_credits_graphics.c | 44 | ||||
| -rw-r--r-- | src/scene/new_game.c | 8 | ||||
| -rw-r--r-- | src/scene/title_screen.c | 38 |
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 = ®_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; |
