diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/cereader_tool.c | 4 | ||||
-rw-r--r-- | src/data/pokemon/pokedex_text.h | 16 | ||||
-rw-r--r-- | src/daycare.c | 4 | ||||
-rw-r--r-- | src/field_specials.c | 2 | ||||
-rw-r--r-- | src/fieldmap.c | 2 | ||||
-rw-r--r-- | src/intro.c | 17 | ||||
-rw-r--r-- | src/main.c | 8 | ||||
-rw-r--r-- | src/malloc.c | 12 | ||||
-rw-r--r-- | src/menews_jisan.c | 2 | ||||
-rw-r--r-- | src/mevent.c | 8 | ||||
-rw-r--r-- | src/mevent_server.c | 54 | ||||
-rw-r--r-- | src/quest_log.c | 75 | ||||
-rw-r--r-- | src/scrcmd.c | 4 | ||||
-rw-r--r-- | src/title_screen.c | 37 | ||||
-rw-r--r-- | src/trade.c | 159 |
15 files changed, 200 insertions, 204 deletions
diff --git a/src/cereader_tool.c b/src/cereader_tool.c index 654a70b48..2c5d05018 100644 --- a/src/cereader_tool.c +++ b/src/cereader_tool.c @@ -41,8 +41,8 @@ bool32 ValidateTrainerTowerData(struct EReaderTrainerHillSet * ttdata) static bool32 CEReaderTool_SaveTrainerTower_r(struct EReaderTrainerHillSet * ttdata, u8 * buffer) { - AGB_ASSERT_EX(ttdata->dummy == 0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/cereader_tool.c", 198); - AGB_ASSERT_EX(ttdata->id == 0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/cereader_tool.c", 199) + AGB_ASSERT_EX(ttdata->dummy == 0, ABSPATH("cereader_tool.c"), 198); + AGB_ASSERT_EX(ttdata->id == 0, ABSPATH("cereader_tool.c"), 199) memset(buffer, 0, 0x1000); memcpy(buffer, ttdata, SEC30_SIZE); diff --git a/src/data/pokemon/pokedex_text.h b/src/data/pokemon/pokedex_text.h index 3285c8d11..be073876f 100644 --- a/src/data/pokemon/pokedex_text.h +++ b/src/data/pokemon/pokedex_text.h @@ -1063,9 +1063,14 @@ const u8 gMewPokedexText[] = _( const u8 gMewPokedexTextUnused[] = _(""); const u8 gChikoritaPokedexText[] = _( +#if REVISION == 0 "Its pleasantly aromatic leaves have the\n" +#else + "Its pleasantly aromatic leaf has the\n" +#endif "ability to check the humidity and\n" - "temperature."); + "temperature." +); const u8 gChikoritaPokedexTextUnused[] = _(""); @@ -1735,9 +1740,16 @@ const u8 gPupitarPokedexText[] = _( const u8 gPupitarPokedexTextUnused[] = _(""); const u8 gTyranitarPokedexText[] = _( +#if REVISION == 0 "Its body can't be harmed by any sort of\n" "attack, so it is very eager to make\n" - "challenges against enemies."); + "challenges against enemies." +#else + "It has an impudent nature. Having great\n" + "strength, it can even change surrounding\n" + "landforms." +#endif +); const u8 gTyranitarPokedexTextUnused[] = _(""); diff --git a/src/daycare.c b/src/daycare.c index 8862dfda9..b3e76faba 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -1503,7 +1503,11 @@ static void DaycarePrintMonLvl(struct DayCare *daycare, u8 windowId, u32 daycare u8 lvlText[12]; u8 intText[8]; +#if REVISION == 0 strcpy((char *)lvlText, (const char *)gText_Lv); +#else + StringCopy(lvlText, gText_Lv); +#endif level = GetLevelAfterDaycareSteps(&daycare->mons[daycareSlotId].mon, daycare->mons[daycareSlotId].steps); ConvertIntToDecimalStringN(intText, level, STR_CONV_MODE_LEFT_ALIGN, 3); StringAppend(lvlText, intText); diff --git a/src/field_specials.c b/src/field_specials.c index de3bc7d57..7abc3f5c9 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1915,7 +1915,7 @@ u16 Special_BattleCardAction(void) case 4: return sub_81445C0(2); default: - AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scr_tool.c", 3873); + AGB_ASSERT_EX(0, ABSPATH("scr_tool.c"), 3873); return 0; } } diff --git a/src/fieldmap.c b/src/fieldmap.c index 5582b6977..adb26f230 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -83,7 +83,7 @@ void sub_8058A00(struct MapHeader * mapHeader) VMap.map = gBackupMapLayout; VMap.Xsize = mapLayout->width + 15; VMap.Ysize = mapLayout->height + 14; - AGB_ASSERT_EX(VMap.Xsize * VMap.Ysize <= VIRTUAL_MAP_SIZE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/fieldmap.c", 158); + AGB_ASSERT_EX(VMap.Xsize * VMap.Ysize <= VIRTUAL_MAP_SIZE, ABSPATH("fieldmap.c"), 158); map_copy_with_padding(mapLayout->map, mapLayout->width, mapLayout->height); mapheader_copy_mapdata_of_adjacent_maps(mapHeader); } diff --git a/src/intro.c b/src/intro.c index 33a03a389..cee1c8fec 100644 --- a/src/intro.c +++ b/src/intro.c @@ -131,6 +131,11 @@ static void sub_80EE9D4(struct Sprite * sprite); static void sub_80EEA94(struct IntroSequenceData * ptr); static void sub_80EEB08(struct Sprite * sprite); static void sub_80EEBE4(void); +#if REVISION >= 1 +static void sub_rev1_80EDFAC(void); +#else +#define sub_rev1_80EDFAC() +#endif extern const u32 gMultiBootProgram_PokemonColosseum_Start[]; @@ -828,6 +833,7 @@ static void sub_80ECD60(struct IntroSequenceData * this) if (!IsDma3ManagerBusyWithBgCopy()) { DestroySprite(this->field_0014); + sub_rev1_80EDFAC(); this->field_0012 = 0; this->field_0004++; } @@ -1592,6 +1598,17 @@ static struct Sprite * sub_80EDF68(void) return &gSprites[spriteId]; } +#if REVISION >= 1 +static void sub_rev1_80EDFAC(void) +{ + int i; + for (i = 0; i < 2; i++) + { + gSprites[CreateSprite(&gUnknown_840BCFC, 0x68 + 32 * i, 0x6c, 5)].oam.tileNum += i * 4; + } +} +#endif + static void sub_80EDF94(struct IntroSequenceData * this) { u8 taskId; diff --git a/src/main.c b/src/main.c index 9294c80ce..6d50e5fd3 100644 --- a/src/main.c +++ b/src/main.c @@ -57,14 +57,20 @@ static void IntrDummy(void); #if defined(FIRERED) #define GAME_VERSION VERSION_FIRE_RED -#elif defined(LEAF_GREEN) +#elif defined(LEAFGREEN) #define GAME_VERSION VERSION_LEAF_GREEN +#else +#error unknown version #endif const u8 gGameVersion = GAME_VERSION; const u8 gGameLanguage = GAME_LANGUAGE; +#if REVISION == 0 const char BuildDateTime[] = "2004 04 26 11:20"; +#else +const char BuildDateTime[] = "2004 07 20 09:30"; +#endif const IntrFunc gIntrTableTemplate[] = { diff --git a/src/malloc.c b/src/malloc.c index 4768721ba..590d45c05 100644 --- a/src/malloc.c +++ b/src/malloc.c @@ -93,7 +93,7 @@ void *AllocInternal(void *heapStart, u32 size) if (pos->next == head) { - AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/gflib/malloc.c", 174); + AGB_ASSERT_EX(0, ABSPATH("gflib/malloc.c"), 174); return NULL; } @@ -103,20 +103,20 @@ void *AllocInternal(void *heapStart, u32 size) void FreeInternal(void *heapStart, void *p) { - AGB_ASSERT_EX(p != NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/gflib/malloc.c", 195); + AGB_ASSERT_EX(p != NULL, ABSPATH("gflib/malloc.c"), 195); if (p) { struct MemBlock *head = (struct MemBlock *)heapStart; struct MemBlock *pos = (struct MemBlock *)((u8 *)p - sizeof(struct MemBlock)); - AGB_ASSERT_EX(pos->magic_number == MALLOC_SYSTEM_ID, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/gflib/malloc.c", 204); - AGB_ASSERT_EX(pos->flag == TRUE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/gflib/malloc.c", 205); + AGB_ASSERT_EX(pos->magic_number == MALLOC_SYSTEM_ID, ABSPATH("gflib/malloc.c"), 204); + AGB_ASSERT_EX(pos->flag == TRUE, ABSPATH("gflib/malloc.c"), 205); pos->flag = FALSE; // If the freed block isn't the last one, merge with the next block // if it's not in use. if (pos->next != head) { if (!pos->next->flag) { - AGB_ASSERT_EX(pos->next->magic_number == MALLOC_SYSTEM_ID, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/gflib/malloc.c", 211); + AGB_ASSERT_EX(pos->next->magic_number == MALLOC_SYSTEM_ID, ABSPATH("gflib/malloc.c"), 211); pos->size += sizeof(struct MemBlock) + pos->next->size; pos->next->magic_number = 0; pos->next = pos->next->next; @@ -129,7 +129,7 @@ void FreeInternal(void *heapStart, void *p) // if it's not in use. if (pos != head) { if (!pos->prev->flag) { - AGB_ASSERT_EX(pos->prev->magic_number == MALLOC_SYSTEM_ID, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/gflib/malloc.c", 228); + AGB_ASSERT_EX(pos->prev->magic_number == MALLOC_SYSTEM_ID, ABSPATH("gflib/malloc.c"), 228); pos->prev->next = pos->next; diff --git a/src/menews_jisan.c b/src/menews_jisan.c index f38de9cfd..d8971f6a2 100644 --- a/src/menews_jisan.c +++ b/src/menews_jisan.c @@ -142,7 +142,7 @@ static u32 GetMENewsJisanState(struct MENewsJisanStruct *a0) return 4; return 5; default: - AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/menews_jisan.c", 383); + AGB_ASSERT_EX(0, ABSPATH("menews_jisan.c"), 383); return 0; } } diff --git a/src/mevent.c b/src/mevent.c index 5ed001d09..3eff0c086 100644 --- a/src/mevent.c +++ b/src/mevent.c @@ -852,7 +852,7 @@ u16 sub_81444B0(const struct MEventClientHeaderStruct * a0, u32 command) case 4: return a0->unk_44; default: - AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c", 825); + AGB_ASSERT_EX(0, ABSPATH("mevent.c"), 825); return 0; } } @@ -881,7 +881,7 @@ void sub_814451C(u32 command) } if (dest == NULL) { - AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c", 868); + AGB_ASSERT_EX(0, ABSPATH("mevent.c"), 868); } else if (++(*dest) > 999) { @@ -939,7 +939,7 @@ u16 sub_81445C0(u32 command) break; } } - AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c", 913); + AGB_ASSERT_EX(0, ABSPATH("mevent.c"), 913); return 0; } @@ -977,7 +977,7 @@ void sub_8144714(u32 a0, u32 a1) sub_8144824(1, a1, gSaveBlock1Ptr->mysteryEventBuffers.unk_344[0], 5); break; default: - AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c", 988); + AGB_ASSERT_EX(0, ABSPATH("mevent.c"), 988); } } } diff --git a/src/mevent_server.c b/src/mevent_server.c index 252a8885f..bebd69fe3 100644 --- a/src/mevent_server.c +++ b/src/mevent_server.c @@ -68,7 +68,7 @@ static void mevent_srv_free_resources(struct mevent_srv_common * svr) static void mevent_srv_common_init_send(struct mevent_srv_common * svr, u32 ident, const void * src, u32 size) { - AGB_ASSERT_EX(size <= ME_SEND_BUF_SIZE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 257); + AGB_ASSERT_EX(size <= ME_SEND_BUF_SIZE, ABSPATH("mevent_server.c"), 257); mevent_srv_sub_init_send(&svr->manager, ident, src, size); } @@ -129,7 +129,7 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr) switch (cmd->instr) { case 0: - AGB_ASSERT_EX(cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 354); + AGB_ASSERT_EX(cmd->parameter == NULL, ABSPATH("mevent_server.c"), 354); svr->mainseqno = 1; svr->param = cmd->flag; break; @@ -137,23 +137,23 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr) svr->mainseqno = 3; break; case 2: - AGB_ASSERT_EX(cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 364); + AGB_ASSERT_EX(cmd->parameter == NULL, ABSPATH("mevent_server.c"), 364); mevent_srv_sub_init_recv(&svr->manager, cmd->flag, svr->recvBuffer); svr->mainseqno = 2; break; case 3: - AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 370); + AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 370); svr->cmdidx = 0; svr->cmdBuffer = cmd->parameter; break; case 5: - AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 376); - AGB_ASSERT_EX(cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 377); + AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 376); + AGB_ASSERT_EX(cmd->parameter == NULL, ABSPATH("mevent_server.c"), 377); memcpy(svr->mevent_unk1442cc, svr->recvBuffer, sizeof(struct MEventClientHeaderStruct)); break; case 6: - AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 382); - AGB_ASSERT_EX(cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 383); + AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 382); + AGB_ASSERT_EX(cmd->parameter == NULL, ABSPATH("mevent_server.c"), 383); svr->param = ValidateMEventClientHeader(svr->mevent_unk1442cc); break; case 4: @@ -164,42 +164,42 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr) } break; case 7: - AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 396); + AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 396); ptr = mevent_first_if_not_null_else_second(cmd->parameter, svr->card); svr->param = sub_8144418(ptr, svr->mevent_unk1442cc, ptr); break; case 8: - AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 402); - AGB_ASSERT_EX(cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 403); + AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 402); + AGB_ASSERT_EX(cmd->parameter == NULL, ABSPATH("mevent_server.c"), 403); svr->param = *(u32 *)svr->recvBuffer; break; case 9: - AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 408); + AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 408); ptr = mevent_first_if_not_null_else_second(cmd->parameter, &svr->sendWord); svr->param = sub_8144434(ptr, svr->mevent_unk1442cc, ptr); break; case 10: - AGB_ASSERT_EX(cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 415); + AGB_ASSERT_EX(cmd->parameter == NULL, ABSPATH("mevent_server.c"), 415); svr->param = sub_81444B0(svr->mevent_unk1442cc, cmd->flag); break; case 11: - AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 420); + AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 420); svr->param = sub_8144474(svr->mevent_unk1442cc, cmd->parameter); break; case 12: - AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 426); + AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 426); svr->param = mevent_compare_pointers(cmd->parameter, *(void **)svr->recvBuffer); break; case 14: - AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 432); + AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 432); mevent_srv_common_init_send(svr, 0x17, mevent_first_if_not_null_else_second(cmd->parameter, svr->news), sizeof(struct MEWonderNewsData)); break; case 13: - AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 438); + AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 438); mevent_srv_common_init_send(svr, 0x16, mevent_first_if_not_null_else_second(cmd->parameter, svr->card), sizeof(struct MEWonderCardData)); break; case 16: - AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 444); + AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 444); mevent_srv_common_init_send(svr, 0x18, mevent_first_if_not_null_else_second(cmd->parameter, &svr->sendWord), 4); break; case 15: @@ -215,7 +215,7 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr) mevent_srv_common_init_send(svr, 0x10, cmd->parameter, cmd->flag); break; case 19: - AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 466); + AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 466); mevent_srv_common_init_send(svr, 0x1a, cmd->parameter, 188); break; case 20: @@ -225,15 +225,15 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr) mevent_srv_common_init_send(svr, 0x1c, cmd->parameter, cmd->flag); break; case 22: - AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 481); + AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 481); memcpy(svr->card, cmd->parameter, 332); break; case 23: - AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 486); + AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 486); memcpy(svr->news, cmd->parameter, 444); break; case 21: - AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 491); + AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 491); svr->sendWord = *(u32 *)cmd->parameter; break; case 24: @@ -245,16 +245,16 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr) svr->sendBuffer2Size = cmd->flag; break; case 26: - AGB_ASSERT_EX(cmd->flag == FALSE && cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 506); + AGB_ASSERT_EX(cmd->flag == FALSE && cmd->parameter == NULL, ABSPATH("mevent_server.c"), 506); memcpy(svr->card, GetSavedWonderCard(), 332); sub_814410C(svr->card); break; case 27: - AGB_ASSERT_EX(cmd->flag == FALSE && cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 512); + AGB_ASSERT_EX(cmd->flag == FALSE && cmd->parameter == NULL, ABSPATH("mevent_server.c"), 512); memcpy(svr->news, GetSavedWonderNews(), 444); break; case 28: - AGB_ASSERT_EX(cmd->flag == FALSE && cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 517); + AGB_ASSERT_EX(cmd->flag == FALSE && cmd->parameter == NULL, ABSPATH("mevent_server.c"), 517); svr->sendBuffer1 = sub_8069E48(); break; case 29: @@ -276,8 +276,8 @@ static u32 (*const func_tbl[])(struct mevent_srv_common *) = { static u32 mevent_srv_exec_common(struct mevent_srv_common * svr) { u32 response; - AGB_ASSERT_EX(svr->mainseqno < NELEMS(func_tbl), "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 546); + AGB_ASSERT_EX(svr->mainseqno < NELEMS(func_tbl), ABSPATH("mevent_server.c"), 546); response = func_tbl[svr->mainseqno](svr); - AGB_ASSERT_EX(svr->mainseqno < NELEMS(func_tbl), "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 548); + AGB_ASSERT_EX(svr->mainseqno < NELEMS(func_tbl), ABSPATH("mevent_server.c"), 548); return response; } diff --git a/src/quest_log.c b/src/quest_log.c index 6b25150f3..970071a0f 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -179,9 +179,9 @@ static void sub_8113A1C(u16); static void sub_811381C(void); static bool8 sub_8113A44(u16, const u16 *); static u16 *QuestLog_SkipCommand(u16 *, u16 **); -static void sub_8113ABC(u16 *); -static bool8 sub_8113AE8(u16 *); -static bool8 sub_8113B44(u16 *); +static void sub_8113ABC(const u16 *); +static bool8 sub_8113AE8(const u16 *); +static bool8 sub_8113B44(const u16 *); static void sub_8113B88(void); static void sub_8113B94(u16); static void sub_8113BD8(void); @@ -2831,19 +2831,24 @@ static u16 *QuestLog_SkipCommand(u16 *curPtr, u16 **prevPtr_p) return sQuestLogEventCmdSizes[idx] + (sQuestLogEventCmdSizes[idx] - 4) * cnt + (void *)curPtr; } -static void sub_8113ABC(u16 *a0) +static void sub_8113ABC(const u16 *a0) { - u8 *r2 = (u8 *)(a0 + 2); + const u8 *r2 = (const u8 *)(a0 + 2); if ((a0[0] & 0xFFF) != 35) gUnknown_203B04A = 0; else gUnknown_203B04A = r2[1] + 1; } -#ifdef NONMATCHING -static bool8 sub_8113AE8(u16 *a0) +static bool8 sub_8113AE8(const u16 *a0) { - if (a0 == NULL || a0[1] > sQuestLogIdx) +#ifndef NONMATCHING + register const u16 *r0 asm("r0") = a0; +#else + const u16 *r0 = a0; +#endif + + if (r0 == NULL || r0[1] > sQuestLogIdx) return FALSE; sQuestLogScriptParsingCBs[a0[0] & 0xFFF](a0); @@ -2853,60 +2858,8 @@ static bool8 sub_8113AE8(u16 *a0) gUnknown_203B044.unk_2 = 1; return TRUE; } -#else -NAKED -static bool8 sub_8113AE8(u16 *a0) -{ - asm_unified("\tpush {r4,lr}\n" - "\tadds r4, r0, 0\n" - "\tcmp r0, 0\n" - "\tbeq _08113AFA\n" - "\tldr r1, _08113B00 @ =sQuestLogIdx\n" - "\tldrh r0, [r0, 0x2]\n" - "\tldrh r1, [r1]\n" - "\tcmp r0, r1\n" - "\tbls _08113B04\n" - "_08113AFA:\n" - "\tmovs r0, 0\n" - "\tb _08113B32\n" - "\t.align 2, 0\n" - "_08113B00: .4byte sQuestLogIdx\n" - "_08113B04:\n" - "\tldr r2, _08113B38 @ =sQuestLogScriptParsingCBs\n" - "\tldrh r1, [r4]\n" - "\tldr r0, _08113B3C @ =0x00000fff\n" - "\tands r0, r1\n" - "\tlsls r0, 2\n" - "\tadds r0, r2\n" - "\tldr r1, [r0]\n" - "\tadds r0, r4, 0\n" - "\tbl _call_via_r1\n" - "\tldr r2, _08113B40 @ =gUnknown_203B044\n" - "\tldrh r1, [r4]\n" - "\tstrb r1, [r2]\n" - "\tmovs r0, 0xF0\n" - "\tlsls r0, 8\n" - "\tands r0, r1\n" - "\tlsrs r0, 12\n" - "\tstrb r0, [r2, 0x1]\n" - "\tcmp r0, 0\n" - "\tbeq _08113B30\n" - "\tmovs r0, 0x1\n" - "\tstrh r0, [r2, 0x2]\n" - "_08113B30:\n" - "\tmovs r0, 0x1\n" - "_08113B32:\n" - "\tpop {r4}\n" - "\tpop {r1}\n" - "\tbx r1\n" - "\t.align 2, 0\n" - "_08113B38: .4byte sQuestLogScriptParsingCBs\n" - "_08113B3C: .4byte 0x00000fff\n" - "_08113B40: .4byte gUnknown_203B044"); -} -#endif -static bool8 sub_8113B44(u16 *a0) +static bool8 sub_8113B44(const u16 *a0) { if (gUnknown_203B044.unk_2 == 0) return FALSE; diff --git a/src/scrcmd.c b/src/scrcmd.c index 6a5d61227..a88655e17 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -105,7 +105,7 @@ bool8 ScrCmd_special(struct ScriptContext *ctx) if (specialPtr < gSpecialsEnd) (*specialPtr)(); else - AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c", 241); + AGB_ASSERT_EX(0, ABSPATH("scrcmd.c"), 241); return FALSE; } @@ -116,7 +116,7 @@ bool8 ScrCmd_specialvar(struct ScriptContext *ctx) if (specialPtr < gSpecialsEnd) *varPtr = (*specialPtr)(); else - AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c", 263); + AGB_ASSERT_EX(0, ABSPATH("scrcmd.c"), 263); return FALSE; } diff --git a/src/title_screen.c b/src/title_screen.c index a67c2cb36..e2257fbbe 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -60,6 +60,7 @@ static void UpdateScanlineEffectRegBuffer(s16 a0); static void ScheduleStopScanlineEffect(void); static void LoadMainTitleScreenPalsAndResetBgs(void); static void CB2_FadeOutTransitionToSaveClearScreen(void); +static void SpriteCallback_TitleScreenFlameOrLeaf(struct Sprite * sprite); static void CB2_FadeOutTransitionToBerryFix(void); static void LoadSpriteGfxAndPals(void); static void Task_FlameOrLeafSpawner(u8 taskId); @@ -238,6 +239,12 @@ static const u8 gUnknown_83BFBD4[] = { 0x04, 0x10, 0x1a, 0x20, 0x30, 0xc8, 0xd8, 0xe0, 0xe8, 0x3c, 0x4c, 0x5c, 0x6c, 0x80, 0x90 }; +#if defined(LEAFGREEN) +static const u16 gUnknown_LG_83BFA10[] = { + 50, 80, 110, 60, 90, 70, 100, 50 +}; +#endif + void CB2_InitTitleScreen(void) { switch (gMain.state) @@ -876,6 +883,7 @@ static void SpriteCallback_TitleScreenFlameOrLeaf(struct Sprite * sprite) #endif } +#if defined(FIRERED) static bool32 CreateFlameOrLeafSprite(s32 x, s32 y, s32 xspeed, s32 yspeed, bool32 templateId) { u8 spriteId; @@ -901,6 +909,35 @@ static bool32 CreateFlameOrLeafSprite(s32 x, s32 y, s32 xspeed, s32 yspeed, bool } return FALSE; } +#elif defined(LEAFGREEN) +void _CreateFlameOrLeafSprite(s32 y0, s32 x1, s32 y1) +{ + u8 spriteId = CreateSprite(&sSpriteTemplate_FlameOrLeaf_State0, 0xF0, y0, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].data[0] = 0xF00; + gSprites[spriteId].data[1] = x1; + gSprites[spriteId].data[2] = y0 << 4; + gSprites[spriteId].data[3] = y1; + gSprites[spriteId].callback = SpriteCallback_TitleScreenFlameOrLeaf; + } +} + +void SpriteCallback_LG_8079800(struct Sprite * sprite) +{ + sprite->pos1.x -= 7; + if (sprite->pos1.x < -16) + { + sprite->pos1.x = 0x100; + sprite->data[7]++; + if (sprite->data[7] >= NELEMS(gUnknown_LG_83BFA10)) + sprite->data[7] = 0; + sprite->pos1.y = gUnknown_LG_83BFA10[sprite->data[7]]; + } +} + +#define CreateFlameOrLeafSprite ((bool32 (*)())_CreateFlameOrLeafSprite) +#endif //FRLG static void Task_FlameOrLeafSpawner(u8 taskId) { diff --git a/src/trade.c b/src/trade.c index 42ff22978..2f48928ec 100644 --- a/src/trade.c +++ b/src/trade.c @@ -365,41 +365,58 @@ static const u8 sTradeMonSpriteCoords[][2] = { {0x17, 0x12}, }; -// No idea if a 4D array is correct -static const u8 gUnknown_8261E5A[][2][6][2] = { - { - { - {0x05, 0x04}, - {0x0c, 0x04}, - {0x05, 0x09}, - {0x0c, 0x09}, - {0x05, 0x0e}, - {0x0c, 0x0e} - }, { - {0x14, 0x04}, - {0x1b, 0x04}, - {0x14, 0x09}, - {0x1b, 0x09}, - {0x14, 0x0e}, - {0x1b, 0x0e} - } - }, { - { - {0x01, 0x03}, - {0x08, 0x03}, - {0x01, 0x08}, - {0x08, 0x08}, - {0x01, 0x0d}, - {0x08, 0x0d} - }, { - {0x10, 0x03}, - {0x17, 0x03}, - {0x10, 0x08}, - {0x17, 0x08}, - {0x10, 0x0d}, - {0x17, 0x0d} - } - } +static const u8 gUnknown_8261E5A[][2][2] = { + { + {0x05, 0x04}, + {0x0c, 0x04}, + }, + { + {0x05, 0x09}, + {0x0c, 0x09}, + }, + { + {0x05, 0x0e}, + {0x0c, 0x0e} + }, + { + {0x14, 0x04}, + {0x1b, 0x04}, + }, + { + {0x14, 0x09}, + {0x1b, 0x09}, + }, + { + {0x14, 0x0e}, + {0x1b, 0x0e}, + }, +}; + +static const u8 gUnknown_8261E72[][2][2] = { + { + {0x01, 0x03}, + {0x08, 0x03}, + }, + { + {0x01, 0x08}, + {0x08, 0x08}, + }, + { + {0x01, 0x0d}, + {0x08, 0x0d} + }, + { + {0x10, 0x03}, + {0x17, 0x03}, + }, + { + {0x10, 0x08}, + {0x17, 0x08}, + }, + { + {0x10, 0x0d}, + {0x17, 0x0d}, + }, }; static const u8 sTradeUnknownSpriteCoords[][4] = { @@ -2328,78 +2345,28 @@ static void sub_804F08C(u8 whichParty, u8 monIdx, u8 a2, u8 a3, u8 a4, u8 a5) sTradeMenuResourcesPtr->tilemapBuffer[(a3 - 1) * 32 + a2 + 1] = r2; } -#ifdef NONMATCHING -// Instruction swap when setting r5 and r4 static void sub_804F284(u8 whichParty) { s32 i; for (i = 0; i < sTradeMenuResourcesPtr->partyCounts[whichParty]; i++) { + const u8 (*r5)[2]; + const u8 (*r4)[2]; + u32 r0 = 3 * whichParty; + const u8 (*r1)[2][2] = gUnknown_8261E5A; + r5 = r1[r0]; + r4 = gUnknown_8261E72[r0]; + sub_804F08C( whichParty, i, - gUnknown_8261E5A[0][whichParty][i][0], - gUnknown_8261E5A[0][whichParty][i][1], - gUnknown_8261E5A[1][whichParty][i][0], - gUnknown_8261E5A[1][whichParty][i][1] + r5[i][0], + r5[i][1], + r4[i][0], + r4[i][1] ); } } -#else -NAKED -static void sub_804F284(u8 whichParty) -{ - asm_unified("\tpush {r4-r7,lr}\n" - "\tsub sp, 0x8\n" - "\tlsls r0, 24\n" - "\tlsrs r6, r0, 24\n" - "\tmovs r7, 0\n" - "\tldr r0, _0804F2DC @ =sTradeMenuResourcesPtr\n" - "\tldr r0, [r0]\n" - "\tadds r0, 0x36\n" - "\tadds r0, r6\n" - "\tldrb r0, [r0]\n" - "\tcmp r7, r0\n" - "\tbge _0804F2D4\n" - "\tlsls r0, r6, 1\n" - "\tadds r0, r6\n" - "\tldr r1, _0804F2E0 @ =gUnknown_8261E5A\n" - "\tlsls r0, 2\n" - "\tadds r5, r0, r1\n" - "\tldr r1, _0804F2E4 @ =gUnknown_8261E5A+24\n" - "\tadds r4, r0, r1\n" - "_0804F2AA:\n" - "\tlsls r1, r7, 24\n" - "\tlsrs r1, 24\n" - "\tldrb r2, [r5]\n" - "\tldrb r3, [r5, 0x1]\n" - "\tldrb r0, [r4]\n" - "\tstr r0, [sp]\n" - "\tldrb r0, [r4, 0x1]\n" - "\tstr r0, [sp, 0x4]\n" - "\tadds r0, r6, 0\n" - "\tbl sub_804F08C\n" - "\tadds r5, 0x2\n" - "\tadds r4, 0x2\n" - "\tadds r7, 0x1\n" - "\tldr r0, _0804F2DC @ =sTradeMenuResourcesPtr\n" - "\tldr r0, [r0]\n" - "\tadds r0, 0x36\n" - "\tadds r0, r6\n" - "\tldrb r0, [r0]\n" - "\tcmp r7, r0\n" - "\tblt _0804F2AA\n" - "_0804F2D4:\n" - "\tadd sp, 0x8\n" - "\tpop {r4-r7}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" - "_0804F2DC: .4byte sTradeMenuResourcesPtr\n" - "_0804F2E0: .4byte gUnknown_8261E5A\n" - "_0804F2E4: .4byte gUnknown_8261E5A+24"); -} -#endif //NONMATCHING static void sub_804F2E8(u8 whichParty) { |