diff options
Diffstat (limited to 'src/code_8086A3C.c')
-rw-r--r-- | src/code_8086A3C.c | 206 |
1 files changed, 187 insertions, 19 deletions
diff --git a/src/code_8086A3C.c b/src/code_8086A3C.c index db438c0..d8dbe4c 100644 --- a/src/code_8086A3C.c +++ b/src/code_8086A3C.c @@ -5,7 +5,8 @@ extern struct DungeonGlobalData *gDungeonGlobalData; extern void LoadIQSkills(struct DungeonEntity *); -extern struct DungeonEntity *sub_8085480(void); +extern struct DungeonEntity *GetPartnerEntity(); +extern struct DungeonEntity *xxx_call_GetLeaderEntity(void); extern struct DungeonEntity *sub_8085680(u32); extern void SetDefaultIQSkills(u8 *param_1, u8 param_2); extern void sub_8097FF8(void); @@ -20,6 +21,40 @@ extern void sub_80855E4(void *); extern void sub_8085860(s32 r0, u32 r1); extern void sub_8068FE0(struct DungeonEntity *, u32, u32); extern void sub_8097FA8(u32); +extern void sub_80858AC(void *, u32); +extern void sub_8052910(u8 *); +extern void sub_806CDD4(struct DungeonEntity *, u32, u32); +extern void sub_80869E4(struct DungeonEntity *, u32, u32, u32); +extern void sub_8083E88(u32); +extern void sub_803E708(u32, u32); +extern void sub_8086448(void); +extern void sub_80862BC(struct DungeonEntity *); +extern void sub_8086E74(struct DungeonEntity *); +extern void SpriteLookAroundEffect(struct DungeonEntity *); +extern void sub_8086A54(struct DungeonEntity *); +extern void PlaySoundEffect(u32); +extern void sub_808563C(void *); + +// X / Y Coords?? +struct subStruct_Skarmory +{ + int x; + int y; +}; + +extern u8 gUnknown_8100768; +extern u8 gUnknown_8100798; +extern u8 gUnknown_8100820; +extern u8 gUnknown_8100844; +extern u8 gUnknown_8100880; +extern u8 gUnknown_8100928; +extern u8 gUnknown_8100A04; +extern u8 gUnknown_8100B80; +extern u8 gUnknown_8100BC0; +extern u8 gUnknown_8100C90; +extern u8 gUnknown_8100CBC; +extern u8 gUnknown_8100CDC; +extern u8 gUnknown_8100D3C; void sub_8086A3C(struct DungeonEntity *param_1) { @@ -79,40 +114,40 @@ u8 sub_8086AE4(s16 _index) void sub_8086B14(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * DiglettEntity; + struct DungeonEntity * SkarmoryEntity; - iVar1 = sub_8085480(); - iVar2 = sub_8085680(4); - uVar3 = sub_8085680(3); + LeaderEntity = xxx_call_GetLeaderEntity(); + DiglettEntity = sub_8085680(4); + SkarmoryEntity = sub_8085680(3); sub_8083E88(0x72); sub_8085374(); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); - sub_8086A3C(uVar3); - iVar2->entityData->unk15C = 1; - sub_8085860(iVar1->posWorldX,iVar1->posWorldY + -2); + sub_8086A3C(SkarmoryEntity); + DiglettEntity->entityData->unk15C = 1; + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY + -2); CopySpeciesNametoBuffer(gUnknown_202E038,SPECIES_DIGLETT); CopySpeciesNametoBuffer(gUnknown_202E038 + 0x50, SPECIES_SKARMORY); } void sub_8086B94(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * DiglettEntity; + struct DungeonEntity * SkarmoryEntity; - iVar1 = sub_8085480(); - iVar2 = sub_8085680(4); - uVar3 = sub_8085680(3); + LeaderEntity = xxx_call_GetLeaderEntity(); + DiglettEntity = sub_8085680(4); + SkarmoryEntity = sub_8085680(3); - sub_8068FE0(uVar3,0x21c,0); - sub_8068FE0(iVar2,0x21c,0); + sub_8068FE0(SkarmoryEntity,0x21c,0); + sub_8068FE0(DiglettEntity,0x21c,0); sub_80854D4(); sub_8085930(4); - sub_8085860(iVar1->posWorldX,iVar1->posWorldY); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY); } void sub_8086BDC(char param_1, s32 param_2) @@ -122,3 +157,136 @@ void sub_8086BDC(char param_1, s32 param_2) gDungeonGlobalData->unk2 = 1; } } + +void SkarmoryPreFightDialogue(void) +{ + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *PartnerEntity; + struct DungeonEntity * DiglettEntity; + struct DungeonEntity * SkarmoryEntity; + + struct subStruct_Skarmory local_1c; + struct subStruct_Skarmory local_20; + + LeaderEntity = xxx_call_GetLeaderEntity(); // Player + PartnerEntity = GetPartnerEntity(); // Partner + DiglettEntity = sub_8085680(4); // Diglett + SkarmoryEntity = sub_8085680(3); // Skarmory + + local_1c.x = DiglettEntity->posPixelX; + local_1c.y = DiglettEntity->posPixelY + 0x3000; + + local_20.x = SkarmoryEntity->posPixelX; + local_20.y = SkarmoryEntity->posPixelY + 0x2000; + + sub_8086448(); + sub_803E708(10,0x46); + sub_80862BC(PartnerEntity); + sub_803E708(0x20,0x46); + sub_803E708(10,0x46); + sub_8052910(&gUnknown_8100768); + sub_80858AC(&local_1c,0x40); + sub_803E708(0x40,0x46); + sub_80858AC(&local_20,0x30); + sub_8052910(&gUnknown_8100798); + sub_803E708(10,0x46); + DiglettEntity->entityData->unk15D = 1; + sub_80858AC(&local_1c,0x30); + sub_8052910(&gUnknown_8100820); // Diglett: ...I...\nI'm scared. + sub_803E708(10,0x46); + sub_80858AC(&local_20,0x20); + sub_803E708(0x20,0x46); + sub_8086E74(SkarmoryEntity); + sub_8052910(&gUnknown_8100844); // Skarmory: You!\nWhat do you think you're doing here?! + sub_803E708(10,0x46); + sub_8052910(&gUnknown_8100880); + sub_803E708(10,0x46); + sub_8052910(&gUnknown_8100928); + sub_803E708(10,0x46); + sub_8052910(&gUnknown_8100A04); + sub_803E708(10,0x46); + sub_806CDD4(SkarmoryEntity,0xd,0); + sub_8052910(&gUnknown_8100B80); + sub_803E708(10,0x46); + sub_80869E4(PartnerEntity,4,1,2); + sub_80869E4(LeaderEntity,4,2,6); + sub_8052910(&gUnknown_8100BC0); + sub_80869E4(PartnerEntity,4,2,4); + sub_80869E4(LeaderEntity,4,1,4); + sub_803E708(10,0x46); + sub_8083E88(0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); +} + +void SkarmoryReFightDialogue(void) +{ + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * SkarmoryEntity; + struct subStruct_Skarmory local_14; + + LeaderEntity = xxx_call_GetLeaderEntity(); + SkarmoryEntity = sub_8085680(3); + local_14.x = SkarmoryEntity->posPixelX; + local_14.y = SkarmoryEntity->posPixelY + 0x2000; + sub_8086448(); + sub_803E708(10,0x46); + sub_8086E74(SkarmoryEntity); + sub_80858AC(&local_14,0x10); + sub_8052910(&gUnknown_8100C90); + sub_803E708(10,0x46); + sub_8052910(&gUnknown_8100CBC); + sub_803E708(10,0x46); + sub_806CDD4(SkarmoryEntity,0xd,0); + sub_8052910(&gUnknown_8100CDC); + sub_803E708(10,0x46); + sub_80858AC(&LeaderEntity->posPixelX,0x10); + sub_8083E88(0xb); +} + +void sub_8086E40(void) +{ + SpriteLookAroundEffect(xxx_call_GetLeaderEntity()); + sub_803E708(10,0x46); + sub_8052910(&gUnknown_8100D3C); + sub_803E708(10,0x46); + gDungeonGlobalData->unk2 = 1; +} + +void sub_8086E74(struct DungeonEntity * param_1) +{ + sub_806CDD4(param_1,0xf,0); + sub_8086A54(param_1); + PlaySoundEffect(0x1f8); + sub_803E708(0x44,0x46); +} + +void sub_8086E9C(void) +{ + struct DungeonEntity * LeaderEntity; + + LeaderEntity = xxx_call_GetLeaderEntity(); + sub_8083E88(0x72); + sub_8085374(); + sub_80854D4(); + sub_8085930(4); + sub_80855E4(sub_8086A3C); + sub_808563C(sub_8086A3C); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3); + CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_METAPOD); + CopySpeciesNametoBuffer(gUnknown_202E038 + 0x50, SPECIES_GENGAR); + CopySpeciesNametoBuffer(gUnknown_202E038 + 0xA0, SPECIES_CATERPIE); +} + +void sub_8086F00(void) +{ + struct DungeonEntity * LeaderEntity; + + LeaderEntity = xxx_call_GetLeaderEntity(); + sub_80854D4(); + sub_8085930(4); + sub_80855E4(sub_8086A3C); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3); + CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_METAPOD); + CopySpeciesNametoBuffer(gUnknown_202E038 + 0x50, SPECIES_GENGAR); + CopySpeciesNametoBuffer(gUnknown_202E038 + 0xA0, SPECIES_CATERPIE); +} |