diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2021-10-11 09:03:17 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-11 09:03:17 -0700 |
commit | 25794a39c3539e66d1c0b2334cb35273cd9d8494 (patch) | |
tree | 43ca3a658e80672844b2906b8cbe151ed70c3621 /src/code_80848F0.c | |
parent | 2d4c802d769f53462a2742a5c6afaad4d7f290fb (diff) |
Finish main menu decomp (#59)
* decomp rest of main_menu
* move some main menu data over
* decomp some more wonder mail
* decomp the dungeon dialogue scene switches
* more wonder mail
* consolidate struct_802F204
* another wonder mail func
* more wonder mail
* slight cleanup
Diffstat (limited to 'src/code_80848F0.c')
-rw-r--r-- | src/code_80848F0.c | 421 |
1 files changed, 421 insertions, 0 deletions
diff --git a/src/code_80848F0.c b/src/code_80848F0.c new file mode 100644 index 0000000..f82c4af --- /dev/null +++ b/src/code_80848F0.c @@ -0,0 +1,421 @@ +#include "global.h" +#include "dungeon_global_data.h" + +extern struct DungeonGlobalData *gDungeonGlobalData; + +extern void SkarmonyPreFightDialogue(); +extern void SkarmonyReFightDialogue(); +extern void sub_8086E40(); +extern void TeamMeaniePreFightDialogue(); +extern void TeamMeanieReFightDialogue(); +extern void sub_8087130(); +extern void ZapdosPreFightDialogue(); +extern void ZapdosReFightDialogue(); +extern void ZapdosPostStoryPreFightDialogue(); +extern void MoltresPreFightDialogue(); +extern void MoltresReFightDialogue(); +extern void MoltresPostStoryPreFightDialogue(); +extern void ArticunoPreFightDialogue(); +extern void ArticunoReFightDialogue(); +extern void ArticunoPostStoryPreFightDialogue(); +extern void sub_8088608(); +extern void sub_8088618(); +extern void GroudonPreFightDialogue(); +extern void GroudonReFightDialogue(); +extern void GroudonPostStoryPreFightDialogue(); +extern void MagmaCavernMidDialogue(); +extern void sub_8089168(); +extern void RayquazaPreFightDialogue(); +extern void RayquazaReFightDialogue(); +extern void RayquazaPostStoryPreFightDialogue(); +extern void sub_80897F0(); +extern void sub_8089878(); +extern void sub_80898E4(); +extern void MewtwoPreFightDialogue(); +extern void MewtwoPreFightDialogue1(); +extern void EnteiPreFightDialogue(); +extern void EnteiPreFightDialogue1(); +extern void EnteiPreFightDialogue2(); +extern void RaikouPreFightDialogue(); +extern void RaikouPreFightDialogue1(); +extern void RaikouPreFightDialogue2(); +extern void SuicunePreFightDialogue(); +extern void SuicunePreFightDialogue1(); +extern void SuicunePreFightDialogue2(); +extern void HoOhPreFightDialogue(); +extern void HoOhPreFightDialogue1(); +extern void LatiosPreFightDialogue(); +extern void LatiosReFightDialogue(); +extern void sub_808AC3C(); +extern void RegirockPreFightDialogue(); +extern void RegicePreFightDialogue(); +extern void RegisteelPreFightDialogue(); +extern void JirachiPreFightDialogue(); +extern void JirachiPreFightDialogue1(); +extern void LugiaPreFightDialogue(); +extern void KyogrePreFightDialogue(); +extern void DeoxysPreFightDialogue(); +extern void CelebiJoinDialogue(); +extern void sub_808C998(); +extern void MedichamRescueDialogue(); +extern void DummyFightDialogue(); +extern void SmeargleRescueDialogue(); +extern void sub_808CD9C(); +extern void sub_8085764(); +extern void sub_80857B8(); +extern void sub_8097FF8(); + +extern void sub_8086BDC(u32,u8); +extern void sub_8086F54(u32,u8); +extern void sub_8087334(u32,u8); +extern void sub_80878F4(u32,u8); +extern void sub_8088088(u32,u8); +extern void sub_8088818(u32,u8); +extern void sub_80893B4(u32,u8); +extern void sub_8089788(struct DungeonEntity *,u32,u8); +extern void sub_8089A00(u32,u8); +extern void sub_8089CFC(u32,u8); +extern void sub_8089FF0(u32,u8); +extern void sub_808A36C(u32,u8); +extern void sub_808A6E8(u32,u8); +extern void sub_808AAF0(u32,u8); +extern void sub_808AE54(u32,u8,s16 *); +extern void sub_808AEC8(u32,u8,s16 *); +extern void sub_808AF3C(u32,u8,s16 *); +extern void sub_808B3E4(u32,u8,u8); +extern void sub_808BE70(u32,u8,u8); +extern void sub_808C1A4(u32,u8,u8); +extern void sub_808C414(u32,u8,u8); +extern void nullsub_100(u32,u8,u8); +extern void sub_808C948(struct DungeonEntity *,u8); +extern void sub_8083E88(u32); + +extern void sub_808AFB0(u8); +extern void sub_808B030(u8); +extern void sub_808B0B0(u8); + + +void DisplayPreFightDialogue(void) +{ + + switch(gDungeonGlobalData->unk3A0D) { + case 0: + break; + case 1: + SkarmonyPreFightDialogue(); + break; + case 2: + SkarmonyReFightDialogue(); + break; + case 3: + sub_8086E40(); + break; + case 4: + TeamMeaniePreFightDialogue(); + break; + case 5: + TeamMeanieReFightDialogue(); + break; + case 6: + sub_8087130(); + break; + case 7: + ZapdosPreFightDialogue(); + break; + case 8: + ZapdosReFightDialogue(); + break; + case 9: + ZapdosPostStoryPreFightDialogue(); + break; + case 10: + MoltresPreFightDialogue(); + break; + case 0xb: + MoltresReFightDialogue(); + break; + case 0xc: + MoltresPostStoryPreFightDialogue(); + break; + case 0xd: + ArticunoPreFightDialogue(); + break; + case 0xe: + ArticunoReFightDialogue(); + break; + case 0xf: + ArticunoPostStoryPreFightDialogue(); + break; + case 0x10: + sub_8088608(); + break; + case 0x11: + sub_8088618(); + break; + case 0x12: + GroudonPreFightDialogue(); + break; + case 0x13: + GroudonReFightDialogue(); + break; + case 0x14: + GroudonPostStoryPreFightDialogue(); + break; + case 0x15: + MagmaCavernMidDialogue(); + break; + case 0x16: + sub_8089168(); + break; + case 0x17: + RayquazaPreFightDialogue(); + break; + case 0x18: + RayquazaReFightDialogue(); + break; + case 0x19: + RayquazaPostStoryPreFightDialogue(); + break; + case 0x1a: + sub_80897F0(); + break; + case 0x1b: + sub_8089878(); + break; + case 0x1c: + sub_80898E4(); + break; + case 0x1d: + case 0x1e: + MewtwoPreFightDialogue(); + break; + case 0x1f: + MewtwoPreFightDialogue1(); + break; + case 0x20: + EnteiPreFightDialogue(); + break; + case 0x21: + EnteiPreFightDialogue1(); + break; + case 0x22: + EnteiPreFightDialogue2(); + break; + case 0x23: + RaikouPreFightDialogue(); + break; + case 0x24: + RaikouPreFightDialogue1(); + break; + case 0x25: + RaikouPreFightDialogue2(); + break; + case 0x26: + SuicunePreFightDialogue(); + break; + case 0x27: + SuicunePreFightDialogue1(); + break; + case 0x28: + SuicunePreFightDialogue2(); + break; + case 0x29: + HoOhPreFightDialogue(); + break; + case 0x2a: + HoOhPreFightDialogue1(); + break; + case 0x2b: + LatiosPreFightDialogue(); + break; + case 0x2c: + LatiosReFightDialogue(); + break; + case 0x2d: + sub_808AC3C(); + break; + case 0x2e: + RegirockPreFightDialogue(); + break; + case 0x2f: + RegicePreFightDialogue(); + break; + case 0x30: + RegisteelPreFightDialogue(); + break; + case 0x31: + JirachiPreFightDialogue(); + break; + case 0x32: + JirachiPreFightDialogue1(); + break; + case 0x33: + LugiaPreFightDialogue(); + break; + case 0x34: + KyogrePreFightDialogue(); + break; + case 0x35: + DeoxysPreFightDialogue(); + break; + case 0x36: + CelebiJoinDialogue(); + break; + case 0x37: + sub_808C998(); + break; + case 0x38: + MedichamRescueDialogue(); + break; + case 0x39: + DummyFightDialogue(); + break; + case 0x3a: + SmeargleRescueDialogue(); + break; + case 0x3b: + sub_808CD9C(); + break; + case 0x3C: + break; + } + sub_8085764(); + sub_80857B8(); + gDungeonGlobalData->unk1356C = 0; + sub_8097FF8(); +} + +void sub_8084E00(struct DungeonEntity *param_1,char param_2,char param_3) +{ + + if (param_2 != '\0') { + switch(gDungeonGlobalData->unk3A0D) { + case 0: + break; + case 1: + case 2: + sub_8086BDC(param_2,gDungeonGlobalData->unk3A0D); + break; + case 4: + case 5: + sub_8086F54(param_2,gDungeonGlobalData->unk3A0D); + break; + case 7: + case 8: + case 9: + sub_8087334(param_2,gDungeonGlobalData->unk3A0D); + break; + case 10: + case 0xb: + case 0xc: + sub_80878F4(param_2,gDungeonGlobalData->unk3A0D); + break; + case 0xd: + case 0xe: + case 0xf: + sub_8088088(param_2,gDungeonGlobalData->unk3A0D); + break; + case 0x12: + case 0x13: + case 0x14: + sub_8088818(param_2,gDungeonGlobalData->unk3A0D); + break; + case 0x17: + case 0x18: + case 0x19: + sub_80893B4(param_2,gDungeonGlobalData->unk3A0D); + break; + case 0x1a: + case 0x1b: + sub_8089788(param_1,param_2,gDungeonGlobalData->unk3A0D); + break; + case 0x1d: + case 0x1e: + case 0x1f: + sub_8089A00(param_2,gDungeonGlobalData->unk3A0D); + break; + case 0x20: + case 0x21: + case 0x22: + sub_8089CFC(param_2,gDungeonGlobalData->unk3A0D); + break; + case 0x23: + case 0x24: + case 0x25: + sub_8089FF0(param_2,gDungeonGlobalData->unk3A0D); + break; + case 0x26: + case 0x27: + case 0x28: + sub_808A36C(param_2,gDungeonGlobalData->unk3A0D); + break; + case 0x29: + case 0x2a: + sub_808A6E8(param_2,gDungeonGlobalData->unk3A0D); + break; + case 0x2b: + case 0x2c: + case 0x2d: + sub_808AAF0(param_2,gDungeonGlobalData->unk3A0D); + break; + case 0x2e: + sub_808AE54(param_2,gDungeonGlobalData->unk3A0D,¶m_1->posWorldX); + break; + case 0x2f: + sub_808AEC8(param_2,gDungeonGlobalData->unk3A0D,¶m_1->posWorldX); + break; + case 0x30: + sub_808AF3C(param_2,gDungeonGlobalData->unk3A0D,¶m_1->posWorldX); + break; + case 0x31: + case 0x32: + sub_808B3E4(param_2,gDungeonGlobalData->unk3A0D,param_3); + break; + case 0x33: + sub_808BE70(param_2,gDungeonGlobalData->unk3A0D,param_3); + break; + case 0x34: + sub_808C1A4(param_2,gDungeonGlobalData->unk3A0D,param_3); + break; + case 0x35: + sub_808C414(param_2,gDungeonGlobalData->unk3A0D,param_3); + break; + case 0x36: + nullsub_100(param_2,gDungeonGlobalData->unk3A0D,param_3); + break; + case 0x37: + sub_808C948(param_1,gDungeonGlobalData->unk3A0D); + break; + case 0x38: + case 0x39: + case 0x3A: + case 0x3B: + case 0x3C: + break; + } + if ((param_3 == '\0') && (gDungeonGlobalData->unk2 != '\0')) { + sub_8083E88(999); + } + } +} + +void sub_8085140(void) +{ + switch(gDungeonGlobalData->unk3A0D) { + // NOTE: shortcut way to generate all cases from 0 - 0x3C properly + default: + case 0: + case 1: + case 0x3C: + break; + case 0x2e: + sub_808AFB0(gDungeonGlobalData->unk3A0D); + break; + case 0x2f: + sub_808B030(gDungeonGlobalData->unk3A0D); + break; + case 0x30: + sub_808B0B0(gDungeonGlobalData->unk3A0D); + break; + } +} |