Merge branch 'learn_move' of git://github.com/Edwearth/pokeemerald into Edwearth-learn_move
This commit is contained in:
@@ -0,0 +1,139 @@
|
||||
#include "global.h"
|
||||
#include "main.h"
|
||||
#include "task.h"
|
||||
#include "script.h"
|
||||
#include "sprite.h"
|
||||
#include "palette.h"
|
||||
#include "menu.h"
|
||||
#include "menu_helpers.h"
|
||||
#include "list_menu.h"
|
||||
#include "malloc.h"
|
||||
#include "field_screen.h"
|
||||
#include "event_data.h"
|
||||
#include "bg.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "learn_move.h"
|
||||
|
||||
EWRAM_DATA u8 *gUnknown_0203BC34 = 0;
|
||||
EWRAM_DATA u8 gUnknown_0203BC38[8] = {0};
|
||||
|
||||
extern void (*gFieldCallback)(void);
|
||||
extern const struct SpritePalette gUnknown_085CEBB8;
|
||||
extern const struct SpriteSheet gUnknown_085CEBB0;
|
||||
extern const struct BgTemplate gUnknown_085CEC28;
|
||||
extern void sub_81D2824(u16);
|
||||
|
||||
void sub_8160868(void);
|
||||
void sub_8161280(void);
|
||||
void sub_81610B8(void);
|
||||
void sub_816082C(void);
|
||||
|
||||
static void sub_8160664(u8 taskId);
|
||||
void sub_81606A0(void); //CB2_InitLearnMove
|
||||
void sub_8160740(void);
|
||||
void sub_81607EC(void);
|
||||
void sub_816082C(void);
|
||||
|
||||
void sub_8160624(void) //VBlankCB_LearnMove
|
||||
{
|
||||
LoadOam();
|
||||
ProcessSpriteCopyRequests();
|
||||
TransferPlttBuffer();
|
||||
}
|
||||
|
||||
void sub_8160638(void) //TeachMoveTutorMove
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
CreateTask(sub_8160664, 0xA);
|
||||
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
|
||||
}
|
||||
|
||||
void sub_8160664(u8 taskId)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
SetMainCallback2(sub_81606A0);
|
||||
gFieldCallback = sub_80AF168;
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
// Doesn't match
|
||||
void sub_81606A0(void) //CB2_InitLearnMove
|
||||
{
|
||||
ResetSpriteData();
|
||||
FreeAllSpritePalettes();
|
||||
ResetTasks();
|
||||
clear_scheduled_bg_copies_to_vram();
|
||||
|
||||
gUnknown_0203BC34 = AllocZeroed(0x118); //gUnknown_0203BC34 ?
|
||||
gUnknown_0203BC34[68] = gSpecialVar_0x8004;
|
||||
|
||||
SetVBlankCallback(sub_8160624);
|
||||
sub_81607EC();
|
||||
sub_81D2824(0);
|
||||
|
||||
//gUnknown_0203BC38 ?
|
||||
gUnknown_0203BC38[0] = 0;
|
||||
gUnknown_0203BC38[2] = 0;
|
||||
gUnknown_0203BC38[4] = 0;
|
||||
|
||||
sub_8161280();
|
||||
|
||||
LoadSpriteSheet(&gUnknown_085CEBB0);
|
||||
LoadSpritePalette(&gUnknown_085CEBB8);
|
||||
sub_81610B8();
|
||||
|
||||
gUnknown_0203BC34[274] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_0203BC38[0], gUnknown_0203BC38[2]);
|
||||
FillPalette(0, 0, 2);
|
||||
SetMainCallback2(sub_816082C);
|
||||
}
|
||||
|
||||
// Doesn't match
|
||||
void sub_8160740(void)
|
||||
{
|
||||
ResetSpriteData();
|
||||
FreeAllSpritePalettes();
|
||||
ResetTasks();
|
||||
clear_scheduled_bg_copies_to_vram();
|
||||
|
||||
gUnknown_0203BC34 = AllocZeroed(0x118); //gUnknown_0203BC34 ?
|
||||
gUnknown_0203BC34[68] = gSpecialVar_0x8004;
|
||||
gUnknown_0203BC34[69] = gSpecialVar_0x8005;
|
||||
|
||||
SetVBlankCallback(sub_8160624);
|
||||
sub_81607EC();
|
||||
|
||||
//gUnknown_0203BC38 ?
|
||||
sub_81D2824(gUnknown_0203BC38[4]);
|
||||
sub_8161280();
|
||||
|
||||
LoadSpriteSheet(&gUnknown_085CEBB0);
|
||||
LoadSpritePalette(&gUnknown_085CEBB8);
|
||||
|
||||
gUnknown_0203BC34[274] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_0203BC38[0], gUnknown_0203BC38[2]);
|
||||
FillPalette(0, 0, 2);
|
||||
SetMainCallback2(sub_816082C);
|
||||
}
|
||||
|
||||
void sub_81607EC(void)
|
||||
{
|
||||
ResetVramOamAndBgCntRegs();
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, &gUnknown_085CEC28, 2);
|
||||
ResetAllBgsCoordinates();
|
||||
SetGpuReg(0, 0x1040);
|
||||
ShowBg(0);
|
||||
ShowBg(1);
|
||||
SetGpuReg(0x50, 0);
|
||||
}
|
||||
|
||||
void sub_816082C(void)
|
||||
{
|
||||
sub_8160868();
|
||||
RunTasks();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
do_scheduled_bg_tilemap_copies_to_vram();
|
||||
UpdatePaletteFade();
|
||||
}
|
||||
Reference in New Issue
Block a user