through sub_8111F8C

This commit is contained in:
PikalaxALT
2018-10-12 12:18:17 -04:00
parent 714d387cbd
commit 9377dc23e2
75 changed files with 806 additions and 937 deletions
+8 -5
View File
@@ -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;
}
}
}
}
+75 -2
View File
@@ -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;
}
}