summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cereader_tool.c4
-rw-r--r--src/data/pokemon/pokedex_text.h16
-rw-r--r--src/daycare.c4
-rw-r--r--src/field_specials.c2
-rw-r--r--src/fieldmap.c2
-rw-r--r--src/intro.c17
-rw-r--r--src/main.c8
-rw-r--r--src/malloc.c12
-rw-r--r--src/menews_jisan.c2
-rw-r--r--src/mevent.c8
-rw-r--r--src/mevent_server.c54
-rw-r--r--src/quest_log.c75
-rw-r--r--src/scrcmd.c4
-rw-r--r--src/title_screen.c37
-rw-r--r--src/trade.c159
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)
{