summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bg.c13
-rw-r--r--src/quest_log.c77
2 files changed, 83 insertions, 7 deletions
diff --git a/src/bg.c b/src/bg.c
index d7f84bf4e..df91e9d4a 100644
--- a/src/bg.c
+++ b/src/bg.c
@@ -1067,7 +1067,6 @@ void CopyBgTilemapBufferToVram(u8 bg)
void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u8 height)
{
- void* srcCopy;
u16 destX16;
u16 destY16;
u16 mode;
@@ -1077,26 +1076,30 @@ void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u
switch (GetBgType(bg))
{
case 0:
- srcCopy = src;
+ {
+ u16 * srcCopy = src;
for (destY16 = destY; destY16 < (destY + height); destY16++)
{
for (destX16 = destX; destX16 < (destX + width); destX16++)
{
- ((u16*)sGpuBgConfigs2[bg].tilemap)[((destY16 * 0x20) + destX16)] = *((u16*)srcCopy)++;
+ ((u16*)sGpuBgConfigs2[bg].tilemap)[((destY16 * 0x20) + destX16)] = *(srcCopy)++;
}
}
break;
+ }
case 1:
- srcCopy = src;
+ {
+ u8 * srcCopy = src;
mode = GetBgMetricAffineMode(bg, 0x1);
for (destY16 = destY; destY16 < (destY + height); destY16++)
{
for (destX16 = destX; destX16 < (destX + width); destX16++)
{
- ((u8*)sGpuBgConfigs2[bg].tilemap)[((destY16 * mode) + destX16)] = *((u8*)srcCopy)++;
+ ((u8*)sGpuBgConfigs2[bg].tilemap)[((destY16 * mode) + destX16)] = *(srcCopy)++;
}
}
break;
+ }
}
}
}
diff --git a/src/quest_log.c b/src/quest_log.c
index 4cf7e6c95..2c98ca377 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -13,6 +13,8 @@
#include "overworld.h"
#include "field_fadetransition.h"
#include "field_weather.h"
+#include "map_obj_80688E4.h"
+#include "field_player_avatar.h"
#include "item.h"
#include "wild_encounter.h"
#include "help_system.h"
@@ -39,6 +41,8 @@ struct UnkStruct_203AE98
u8 unk_6;
};
+extern u16 gUnknown_20371F8[];
+
EWRAM_DATA u8 gUnknown_203ADF8 = 0;
EWRAM_DATA u8 gUnknown_203ADF9 = 0;
EWRAM_DATA u8 gUnknown_203ADFA = 0;
@@ -48,6 +52,7 @@ EWRAM_DATA void * gUnknown_203AE04 = NULL;
EWRAM_DATA u16 * gUnknown_203AE08 = NULL;
EWRAM_DATA void * gUnknown_203AE0C[32] = {NULL};
EWRAM_DATA void (* gUnknown_203AE8C)(void) = 0;
+EWRAM_DATA u16 *gUnknown_203AE90 = NULL;
EWRAM_DATA struct UnkStruct_203AE94 gUnknown_203AE94 = {0};
EWRAM_DATA struct UnkStruct_203AE98 gUnknown_203AE98[32] = {0};
EWRAM_DATA u16 gUnknown_203AF98 = 0;
@@ -82,7 +87,10 @@ void sub_8111D10(void);
void sub_8111D90(u8);
void sub_8111E20(void);
void sub_8111E64(s8);
+void sub_8111E84(void);
bool8 sub_8111F60(void);
+void sub_8111F8C(u8);
+void sub_8111FCC(u8);
void sub_8112364(void);
void sub_8112888(u8);
void sub_8112940(u8, struct UnkStruct_203AE98 *, u16);
@@ -916,7 +924,7 @@ void sub_81118F4(s8 a0)
void sub_8111914(void)
{
- if (!gUnknown_2037AB8.active)
+ if (!gPaletteFade.active)
{
ScriptContext2_Enable();
if (++gUnknown_203ADF8 < 4 && gSaveBlock1Ptr->questLog[gUnknown_203ADF8].unk_000)
@@ -985,7 +993,7 @@ void sub_8111A34(u8 taskId)
}
break;
case 1:
- if (!gUnknown_2037AB8.active)
+ if (!gPaletteFade.active)
{
gUnknown_3005E88 = 0;
routine = (void (*)(void)) GetWordTaskArg(taskId, 14);
@@ -1158,3 +1166,68 @@ void sub_8111D90(u8 a0)
Free(buffer);
}
}
+
+void sub_8111E20(void)
+{
+ ClearWindowTilemap(gUnknown_203ADFE[2]);
+ FillWindowPixelRect(gUnknown_203ADFE[2], 15, 0, 0, 0xf0, 0x30);
+ CopyWindowToVram(gUnknown_203ADFE[2], 2);
+ PutWindowTilemap(gUnknown_203ADFE[1]);
+ CopyWindowToVram(gUnknown_203ADFE[1], 1);
+}
+
+void sub_8111E64(s8 a0)
+{
+ fade_screen(1, a0);
+ gUnknown_203AE8C = sub_8111E84;
+}
+
+void sub_8111E84(void)
+{
+ if (!gPaletteFade.active)
+ {
+ ScriptContext2_Enable();
+ for (gUnknown_203ADF8 = gUnknown_203ADF8; gUnknown_203ADF8 < 4; gUnknown_203ADF8++)
+ {
+ if (gSaveBlock1Ptr->questLog[gUnknown_203ADF8].unk_000 == 0)
+ break;
+ sub_811175C(gUnknown_203ADF8, gUnknown_203AE98);
+ }
+ gUnknown_3005E88 = 0;
+ sub_8111984();
+ }
+}
+
+void sub_8111F14(void)
+{
+ if (gUnknown_203ADFA == 3)
+ gUnknown_203AE90 = AllocZeroed(0x200 * sizeof(u16));
+}
+
+void sub_8111F38(u16 a0, u16 a1)
+{
+ CpuSet(gUnknown_20371F8 + a0, gUnknown_203AE90 + a0, a1);
+}
+
+bool8 sub_8111F60(void)
+{
+ LoadPalette(stdpal_get(4), 0xF0, 0x20);
+ sub_8111070(0);
+ sub_807DF7C();
+ CreateTask(sub_8111F8C, 0xFF);
+ return TRUE;
+}
+
+void sub_8111F8C(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ if (ScriptContext2_IsEnabled() != TRUE)
+ {
+ player_bitmagic();
+ sub_805C270();
+ sub_805C780();
+ ScriptContext2_Enable();
+ task->func = sub_8111FCC;
+ }
+}