From 4a6035a14c916be794890054556529ae5300a0b4 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Mon, 17 Apr 2017 22:18:32 +0200 Subject: Decompile fldeff_softboiled --- src/fldeff_softboiled.c | 166 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 src/fldeff_softboiled.c (limited to 'src/fldeff_softboiled.c') diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c new file mode 100644 index 000000000..712bb8be9 --- /dev/null +++ b/src/fldeff_softboiled.c @@ -0,0 +1,166 @@ +#include "global.h" +#include "asm.h" +#include "menu.h" +#include "pokemon.h" +#include "songs.h" +#include "sound.h" +#include "sprite.h" +#include "strings.h" +#include "task.h" + +struct UnknownStruct1 { + u8 filler0[0x259]; + u8 unk259; + u8 filler25A[6]; + u8 unk260; + u8 unk261; + u8 unk262; + s16 unk264; + s16 unk266; + u8 filler268[10]; + u16 unk272; + u8 filler274[14]; + u16 unk282; +}; + +struct UnknownStruct2 { + u8 unk0; + u8 unk1; + u8 unk2; + u8 filler3[9]; + void *unkC; +}; + +struct UnknownStruct3 { + struct Pokemon *unk0; + u8 filler4[1]; + u8 unk5; + u16 unk6; + u8 filler8[4]; + s32 unkC; + void* unk10; + u8 filler14[26]; + s16 unk2E; +}; + + +#define EWRAM_1000 (*(struct UnknownStruct2 *)(unk_2000000 + 0x1000)) +#define EWRAM_1B000 (*(struct UnknownStruct1 *)(unk_2000000 + 0x1B000)) +#define EWRAM_1C000 (*(struct UnknownStruct3 *)(unk_2000000 + 0x1C000)) + +// extern +extern u8 gUnknown_0202E8F6; +extern u8 gLastFieldPokeMenuOpened; + +extern u8 unk_2000000[]; +extern u8 gUnknown_0202E8F4; + +// Public +bool8 SetUpFieldMove_SoftBoiled(void); +void sub_8133D28(u8 taskid); + +// Static +static void sub_8133D50(u8 taskId); +static void sub_8133E74(u8 taskId); +static void sub_8133EB8(u8 taskId); +static void sub_8133EF8(void); + +bool8 SetUpFieldMove_SoftBoiled(void) { + u16 maxHp; + u16 hp; + u16 minHp; + + maxHp = GetMonData(&gPlayerParty[gLastFieldPokeMenuOpened], MON_DATA_MAX_HP); + hp = GetMonData(&gPlayerParty[gLastFieldPokeMenuOpened], MON_DATA_HP); + + minHp = (maxHp / 5); + if (hp >= minHp) + { + return TRUE; + } + + return FALSE; +} + +void sub_8133D28(u8 taskid) { + EWRAM_1000.unkC = sub_8133D50; + EWRAM_1B000.unk272 = 3; + sub_808A004(taskid); +} + +static void sub_8133D50(u8 taskId) { + u8 unk1, unk2; + u16 hp; + struct Pokemon *pokemon; + //struct Task *task; + + struct Sprite *sprites = gSprites; + + + unk1 = sprites[EWRAM_1000.unk1].data0; + unk2 = sprites[EWRAM_1000.unk2].data0; + + if (unk1 > 5 || unk2 > 5) + { + sub_806CD44(taskId); + return; + } + + EWRAM_1C000.unk0 = &gPlayerParty[sprites[EWRAM_1000.unk2].data0]; + hp = GetMonData(EWRAM_1C000.unk0, MON_DATA_HP); + + if (hp == 0 || unk1 == unk2 || GetMonData(EWRAM_1C000.unk0, MON_DATA_MAX_HP) == hp) + { + sub_8133EB8(taskId); + return; + } + + PlaySE(SE_KAIFUKU); + + EWRAM_1C000.unk5 = gSprites[EWRAM_1000.unk1].data0; + + pokemon = &gPlayerParty[EWRAM_1C000.unk5]; + EWRAM_1C000.unk0 = pokemon; + EWRAM_1C000.unk6 = 0; + EWRAM_1C000.unkC = -0x8000; + EWRAM_1C000.unk10 = sub_8133EF8; + + + gTasks[taskId].data[10] = GetMonData(EWRAM_1C000.unk0, MON_DATA_MAX_HP); + gTasks[taskId].data[11] = GetMonData(EWRAM_1C000.unk0, MON_DATA_HP); + gTasks[taskId].data[12] = gTasks[taskId].data[10] / 5; + + sub_806D5A4(); + gTasks[taskId].func = sub_806FA18; + EWRAM_1B000.unk282 = gTasks[taskId].data[11]; +} + +static void sub_8133E74(u8 taskId) { + if (gUnknown_0202E8F6) + { + return; + } + + MenuZeroFillWindowRect(3, 14, 26, 19); + sub_806D538(3, 0); + gTasks[taskId].func = sub_806CB74; +} + +static void sub_8133EB8(u8 taskId) { + gUnknown_0202E8F4 = 0; + sub_806D5A4(); + sub_806E834(gOtherText_CantUseOnPoke, 1); + gTasks[taskId].func = sub_8133E74; +} + +#define WINDOW_LEFT 3 +#define WINDOW_RIGHT 26 + +static void sub_8133EF8(void) { + sub_806CCE4(); + EWRAM_1B000.unk261 = 2; + DestroySprite(&gSprites[EWRAM_1000.unk1]); + MenuZeroFillWindowRect(WINDOW_LEFT, 14, WINDOW_RIGHT, 19); + sub_806D538(0, 0); + SwitchTaskToFollowupFunc(EWRAM_1000.unk0); +} -- cgit v1.2.3 From 504786aee41e3c54507cd17c3b57720aaaaec6e5 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Sat, 6 May 2017 14:34:53 +0200 Subject: Various german patches --- src/fldeff_softboiled.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/fldeff_softboiled.c') diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c index 712bb8be9..d0ee712af 100644 --- a/src/fldeff_softboiled.c +++ b/src/fldeff_softboiled.c @@ -43,6 +43,13 @@ struct UnknownStruct3 { s16 unk2E; }; +#if ENGLISH +#define WINDOW_LEFT 3 +#define WINDOW_RIGHT 26 +#elif GERMAN +#define WINDOW_LEFT 0 +#define WINDOW_RIGHT 29 +#endif #define EWRAM_1000 (*(struct UnknownStruct2 *)(unk_2000000 + 0x1000)) #define EWRAM_1B000 (*(struct UnknownStruct1 *)(unk_2000000 + 0x1B000)) @@ -141,7 +148,7 @@ static void sub_8133E74(u8 taskId) { return; } - MenuZeroFillWindowRect(3, 14, 26, 19); + MenuZeroFillWindowRect(WINDOW_LEFT, 14, WINDOW_RIGHT, 19); sub_806D538(3, 0); gTasks[taskId].func = sub_806CB74; } @@ -153,9 +160,6 @@ static void sub_8133EB8(u8 taskId) { gTasks[taskId].func = sub_8133E74; } -#define WINDOW_LEFT 3 -#define WINDOW_RIGHT 26 - static void sub_8133EF8(void) { sub_806CCE4(); EWRAM_1B000.unk261 = 2; -- cgit v1.2.3 From 4d2b22a899c11dfcacfec6889968ab01655a3fe3 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Fri, 26 May 2017 14:53:51 +0200 Subject: Add headers --- src/fldeff_softboiled.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'src/fldeff_softboiled.c') diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c index d0ee712af..8a1a8d3b7 100644 --- a/src/fldeff_softboiled.c +++ b/src/fldeff_softboiled.c @@ -1,5 +1,7 @@ +#include "party_menu.h" +#include "pokemon_menu.h" #include "global.h" -#include "asm.h" +#include "fldeff_softboiled.h" #include "menu.h" #include "pokemon.h" #include "songs.h" @@ -62,10 +64,6 @@ extern u8 gLastFieldPokeMenuOpened; extern u8 unk_2000000[]; extern u8 gUnknown_0202E8F4; -// Public -bool8 SetUpFieldMove_SoftBoiled(void); -void sub_8133D28(u8 taskid); - // Static static void sub_8133D50(u8 taskId); static void sub_8133E74(u8 taskId); -- cgit v1.2.3 From f26daa3d6954d2db3a7c44b79d319a7a084462c2 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Fri, 26 May 2017 15:01:42 +0200 Subject: Sort includes --- src/fldeff_softboiled.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/fldeff_softboiled.c') diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c index 8a1a8d3b7..45f319c62 100644 --- a/src/fldeff_softboiled.c +++ b/src/fldeff_softboiled.c @@ -1,9 +1,9 @@ -#include "party_menu.h" -#include "pokemon_menu.h" #include "global.h" #include "fldeff_softboiled.h" #include "menu.h" +#include "party_menu.h" #include "pokemon.h" +#include "pokemon_menu.h" #include "songs.h" #include "sound.h" #include "sprite.h" -- cgit v1.2.3