diff options
author | Edouard Veyrier <veyrie_e@epita.fr> | 2018-03-28 19:20:20 +0200 |
---|---|---|
committer | Edouard Veyrier <veyrie_e@epita.fr> | 2018-03-28 19:20:20 +0200 |
commit | 75b07292c99bdae7efe539bbe797aa4c381c880e (patch) | |
tree | 2bbe85ce0b4bc3886f264f979909a33dd9d7d483 /src/learn_move.c | |
parent | 2ecbe252a29b9d58bfd2df82c01f94be7b69a7b0 (diff) |
Translate first functions of learn move
Diffstat (limited to 'src/learn_move.c')
-rw-r--r-- | src/learn_move.c | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/src/learn_move.c b/src/learn_move.c new file mode 100644 index 000000000..3a1ac72f4 --- /dev/null +++ b/src/learn_move.c @@ -0,0 +1,83 @@ +#include "global.h" +#include "main.h" +#include "task.h" +#include "script.h" +#include "sprite.h" +#include "palette.h" +#include "menu.h" +#include "list_menu.h" +#include "malloc.h" +#include "field_screen.h" +#include "event_data.h" +#include "learn_move.h" + +extern void (*gFieldCallback)(void); +extern struct LearnMoveStruct *gUnknown_0203BC34; + +// Ew, just copied from poeruby... +const u16 gDexArrows_Pal[] = INCBIN_U16("graphics/pokedex/arrows.gbapal"); +const u8 gDexArrows_Gfx[] = INCBIN_U8("graphics/pokedex/arrows.4bpp"); +const struct SpritePalette gUnknown_085CEBB8 = {gDexArrows_Pal, 5526}; +const struct SpriteSheet gUnknown_085CEBB0 = {gDexArrows_Gfx, sizeof(gDexArrows_Gfx), 5525}; + +static struct LearnMoveStruct *sLearnMoveStruct; +static void sub_8160664(u8 taskId); +void sub_81606A0(void); //CB2_InitLearnMove + +void sub_8160624(void) //VBlankCB_LearnMove +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_8160638(void) //TeachMoveTutorMove +{ + ScriptContext2_Enable(); + CreateTask(sub_8160664, 0xA); + BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); +} + +void sub_8160664(u8 taskId) +{ + if (!gPaletteFade.active) + { + SetMainCallback2(sub_81606A0); + gFieldCallback = sub_80AF168; + DestroyTask(taskId); + } +} + +void sub_81606A0(void) //CB2_InitLearnMove +{ + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + clear_scheduled_bg_copies_to_vram(); + + + //LearnMoveStruct** + gUnknown_0203BC34 = AllocZeroed(0x118);//gUnknown_0203BC34 is a global pointer to LearnMoveStruct ? + //r1 = &gSpecialVar_0x8004; //What is this global ? + //u8* partyMon = gUnknown_0203BC34 + 0x44 //partyMon ? + //*partyMon = r1; + gUnknown_0203BC34->partyMon = gSpecialVar_0x8004; + + SetVBlankCallback(sub_8160624); + sub_81607EC(); + sub_81D2824(0); + + //pointer to ? + (&gUnknown_0203BC38)[0] = 0; + (&gUnknown_0203BC38)[2] = 0; + (&gUnknown_0203BC38)[4] = 0; + + sub_8161280(); + LoadSpriteSheet(&gUnknown_085CEBB0); + LoadSpritePalette(&gUnknown_085CEBB8); + sub_81610B8(); + + ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); + FillPalette(0, 0, 2); + SetMainCallback2(sub_816082C); +} |