From 27ca4fb2944e86d71a28b04c7b16126ee6f248b8 Mon Sep 17 00:00:00 2001 From: scnorton Date: Sun, 17 Dec 2017 15:44:49 -0500 Subject: Decompile data: trainer_see --- include/trainer_see.h | 10 ---------- 1 file changed, 10 deletions(-) (limited to 'include') diff --git a/include/trainer_see.h b/include/trainer_see.h index de96dcd3a..e36df981b 100644 --- a/include/trainer_see.h +++ b/include/trainer_see.h @@ -5,17 +5,7 @@ #include "task.h" bool8 CheckTrainers(void); -bool8 CheckTrainer(u8); -u8 TrainerCanApproachPlayer(struct MapObject *); - -bool8 CheckPathBetweenTrainerAndPlayer(struct MapObject2 *, u8, u8); -void sub_80842C8(struct MapObject *, u8); -void sub_80842FC(void (*func)(u8)); -void RunTrainerSeeFuncList(u8); void sub_8084794(struct MapObject *var); void ScrSpecial_EndTrainerApproach(void); -void sub_80847D8(u8); -void sub_8084894(struct Sprite *sprite, u16 a2, u8 a3); -void objc_exclamation_mark_probably(struct Sprite *sprite); #endif // GUARD_TRAINER_SEE_H -- cgit v1.2.3 From 6bc9b82b1b47a0d2a4bd87bd6d654a34866b9344 Mon Sep 17 00:00:00 2001 From: scnorton Date: Sun, 17 Dec 2017 15:56:14 -0500 Subject: Fix CheckPathBetweenTrainerAndPlayer and remove MapObject2 struct definition and references --- include/global.fieldmap.h | 71 ++++++----------------------------------------- 1 file changed, 8 insertions(+), 63 deletions(-) (limited to 'include') diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 488cc11d9..20190dcb7 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -224,7 +224,14 @@ struct MapObject /*0x14*/ struct Coords16 coords3; /*0x18*/ u8 mapobj_unk_18:4; //current direction? /*0x18*/ u8 placeholder18:4; - /*0x19*/ u8 mapobj_unk_19; + /*0x19*/ union __attribute__((packed)) { + u8 as_byte; + struct __attribute__((packed)) { + u8 x:4; + u8 y:4; + } __attribute((aligned (1))) as_nybbles; + } __attribute((aligned (1))) range; + // /*0x19*/ u8 mapobj_unk_19; /*0x1A*/ u8 mapobj_unk_1A; /*0x1B*/ u8 mapobj_unk_1B; /*0x1C*/ u8 mapobj_unk_1C; @@ -237,68 +244,6 @@ struct MapObject /*size = 0x24*/ }; -// THIS IS NEEDED TO MAKE TRAINER_SEE.C MATCH, PLEASE DO NOT REMOVE UNLESS YOU FIX CHECKPATHBETWEENTRAINERANDPLAYER -struct MapObject2 -{ - /*0x00*/ u32 active:1; - u32 mapobj_bit_1:1; - u32 mapobj_bit_2:1; - u32 mapobj_bit_3:1; - u32 mapobj_bit_4:1; - u32 mapobj_bit_5:1; - u32 mapobj_bit_6:1; - u32 mapobj_bit_7:1; - /*0x01*/ u32 mapobj_bit_8:1; - u32 mapobj_bit_9:1; - u32 mapobj_bit_10:1; - u32 mapobj_bit_11:1; - u32 mapobj_bit_12:1; - u32 mapobj_bit_13:1; - u32 mapobj_bit_14:1; - u32 mapobj_bit_15:1; - /*0x02*/ u32 mapobj_bit_16:1; - u32 mapobj_bit_17:1; - u32 mapobj_bit_18:1; - u32 mapobj_bit_19:1; - u32 mapobj_bit_20:1; - u32 mapobj_bit_21:1; - u32 mapobj_bit_22:1; - u32 mapobj_bit_23:1; - /*0x03*/ u32 mapobj_bit_24:1; - u32 mapobj_bit_25:1; - u32 mapobj_bit_26:1; - u32 mapobj_bit_27:1; - u32 mapobj_bit_28:1; - u32 mapobj_bit_29:1; - u32 mapobj_bit_30:1; - u32 mapobj_bit_31:1; - /*0x04*/ u8 spriteId; - /*0x05*/ u8 graphicsId; - /*0x06*/ u8 animPattern; - /*0x07*/ u8 trainerType; - /*0x08*/ u8 localId; - /*0x09*/ u8 mapNum; - /*0x0A*/ u8 mapGroup; - /*0x0B*/ u8 mapobj_unk_0B_0:4; - u8 elevation:4; - /*0x0C*/ struct Coords16 coords1; - /*0x10*/ struct Coords16 coords2; - /*0x14*/ struct Coords16 coords3; - /*0x18*/ u8 mapobj_unk_18:4; - /*0x18*/ u8 placeholder18:4; - /*0x19*/ u8 mapobj_unk_19:4; - /*0x19*/ u8 mapobj_unk_19b:4; - /*0x1A*/ u8 mapobj_unk_1A; - /*0x1B*/ u8 mapobj_unk_1B; - /*0x1C*/ u8 mapobj_unk_1C; - /*0x1D*/ u8 trainerRange_berryTreeId; - /*0x1E*/ u8 mapobj_unk_1E; - /*0x1F*/ u8 mapobj_unk_1F; - /*0x20*/ u8 mapobj_unk_20; - /*0x21*/ u8 mapobj_unk_21; - /*size = 0x24*/ -}; - struct MapObjectGraphicsInfo { /*0x00*/ u16 tileTag; -- cgit v1.2.3 From 466031e365a961c9138d972a524db916570db6b3 Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 18 Dec 2017 11:18:32 -0500 Subject: Fix building german --- include/menu_cursor.h | 4 ---- 1 file changed, 4 deletions(-) (limited to 'include') diff --git a/include/menu_cursor.h b/include/menu_cursor.h index 6d31cc29f..ca82ef244 100644 --- a/include/menu_cursor.h +++ b/include/menu_cursor.h @@ -21,8 +21,4 @@ void sub_814AD7C(u8 a1, u8 a2); void sub_814ADC8(void); void sub_814ADF4(u8 a1); -#if GERMAN -extern const u32 gUnknown_0842F798[2]; -#endif - #endif // GUARD_MENU_CURSOR_H -- cgit v1.2.3 From 16935c054850b4c8a339aba68ce6d7acec73a96a Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 18 Dec 2017 12:23:15 -0500 Subject: Make mystery_event_msg great again --- include/mystery_event_msg.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 include/mystery_event_msg.h (limited to 'include') diff --git a/include/mystery_event_msg.h b/include/mystery_event_msg.h new file mode 100644 index 000000000..5523be694 --- /dev/null +++ b/include/mystery_event_msg.h @@ -0,0 +1,16 @@ +#ifndef GUARD_MYSTERY_EVENT_MSG_H +#define GUARD_MYSTERY_EVENT_MSG_H + +extern const u8 gOtherText_BerryObtainedDadHasIt[]; +extern const u8 gOtherText_BerryTransformed[]; +extern const u8 gOtherText_BerryAlreadyObtained[]; +extern const u8 gOtherText_SpecialRibbonReceived[]; +extern const u8 gOtherText_DexUpgraded[]; +extern const u8 gOtherText_RareWordAdded[]; +extern const u8 gOtherText_PokeWasSentOver[]; +extern const u8 gOtherText_PartyIsFull[]; +extern const u8 gOtherText_NewTrainerInHoenn[]; +extern const u8 gOtherText_NewAdversaryInBattleTower[]; +extern const u8 gOtherText_DataCannotUseVersion[]; + +#endif //GUARD_MYSTERY_EVENT_MSG_H -- cgit v1.2.3 From 408f3cf295e76b61f2c1a442c80d1036bbaa9d28 Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 18 Dec 2017 14:55:28 -0500 Subject: Decompile data: intro_credits_graphics --- include/intro_credits_graphics.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'include') diff --git a/include/intro_credits_graphics.h b/include/intro_credits_graphics.h index 2718d2f9f..303f50095 100644 --- a/include/intro_credits_graphics.h +++ b/include/intro_credits_graphics.h @@ -1,14 +1,14 @@ #ifndef GUARD_INTRO_CREDITS_GRAPHICS_H #define GUARD_INTRO_CREDITS_GRAPHICS_H -extern const struct CompressedSpriteSheet gIntro2BrendanSpriteSheet; -extern const struct CompressedSpriteSheet gIntro2MaySpriteSheet; -extern const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet; -extern const struct CompressedSpriteSheet gIntro2LatiosSpriteSheet; -extern const struct CompressedSpriteSheet gIntro2LatiasSpriteSheet; +extern const struct CompressedSpriteSheet gIntro2BrendanSpriteSheet[]; +extern const struct CompressedSpriteSheet gIntro2MaySpriteSheet[]; +extern const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet[]; +extern const struct CompressedSpriteSheet gIntro2LatiosSpriteSheet[]; +extern const struct CompressedSpriteSheet gIntro2LatiasSpriteSheet[]; extern const struct SpritePalette gIntro2SpritePalettes[]; -extern const struct CompressedSpriteSheet gUnknown_08416E24; -extern const struct CompressedSpriteSheet gUnknown_08416E34; +extern const struct CompressedSpriteSheet gUnknown_08416E24[]; +extern const struct CompressedSpriteSheet gUnknown_08416E34[]; void load_intro_part2_graphics(u8 a); void sub_8148C78(u8 a); -- cgit v1.2.3 From 3196def6040f9f376881a0be000789e751030089 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 18 Dec 2017 19:16:44 -0500 Subject: Decompile data: naming_screen --- include/graphics.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'include') diff --git a/include/graphics.h b/include/graphics.h index 7c23e90ab..07ee1f76c 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2611,4 +2611,19 @@ extern const u16 gTradeMonBoxTilemap[]; extern const u8 gUnknown_08D00000[]; extern const u16 gUnknown_08D00524[]; extern const u8 gUnknown_08D004E0[]; + +extern const u8 gNamingScreenBackButtonTiles[]; +extern const u8 gNamingScreenOKButtonTiles[]; +extern const u8 gNamingScreenChangeKeyboardBoxTiles[]; +extern const u8 gNamingScreenChangeKeyboardButtonTiles[]; +extern const u8 gNamingScreenLowerTextTiles[]; +extern const u8 gNamingScreenUpperTextTiles[]; +extern const u8 gNamingScreenOthersTextTiles[]; +extern const u8 gNamingScreenCursorTiles[]; +extern const u8 gNamingScreenActiveCursorSmallTiles[]; +extern const u8 gNamingScreenActiveCursorBigTiles[]; +extern const u8 gNamingScreenRightPointingTriangleTiles[]; +extern const u8 gNamingScreenUnderscoreTiles[]; +extern const u16 gNamingScreenPalettes[][16]; + #endif // GUARD_GRAPHICS_H -- cgit v1.2.3 From 8fd3100fb491c22bb90d1a86f2f1b0fd3b090ac4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 20 Dec 2017 17:31:27 -0500 Subject: Through sub_8101A28 --- include/ewram.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/ewram.h b/include/ewram.h index eacc02cab..9d3002615 100755 --- a/include/ewram.h +++ b/include/ewram.h @@ -24,7 +24,7 @@ extern u8 gSharedMem[]; #define ewram0arr ((u8 (*)[32])gSharedMem) #define eVoidSharedArr (void *)(ewram_addr + 0x0) #define eVoidSharedArr2 (u32)(ewram_addr) // ew(ram) -#define ewram0_8 ((struct UnkStruct2000000 *)(gSharedMem + 0x0)) +#define eSlotMachine ((struct SlotMachineEwramStruct *)(gSharedMem + 0x0)) #define ewram0_9(i) (u8 *)(ewram_addr + (i * 0x20)) #define ewram0_10 (*(struct UnknownPokenav0*)(gSharedMem + 0)) #define ewram0_11 (*(struct UnknownPokenav0_1*)(gSharedMem + 0)) -- cgit v1.2.3 From f0957176bc96aef3bac673ac520ba55832957ba8 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 20 Dec 2017 17:51:17 -0500 Subject: through sub_8101AE0 --- include/gba/macro.h | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) (limited to 'include') diff --git a/include/gba/macro.h b/include/gba/macro.h index a0edf2a49..945ba4885 100644 --- a/include/gba/macro.h +++ b/include/gba/macro.h @@ -104,25 +104,29 @@ } #define DmaClearLarge(dmaNum, dest, size, block, bit) \ -{ \ - u32 _size = size; \ - while (1) \ - { \ - DmaFill##bit(dmaNum, 0, dest, (block)); \ - dest += (block); \ - _size -= (block); \ - if (_size <= (block)) \ - { \ - DmaFill##bit(dmaNum, 0, dest, _size); \ - break; \ - } \ - } \ +{ \ + void *_dest = dest; \ + u32 _size = size; \ + while (1) \ + { \ + DmaFill##bit(dmaNum, 0, _dest, (block)); \ + _dest += (block); \ + _size -= (block); \ + if (_size <= (block)) \ + { \ + DmaFill##bit(dmaNum, 0, _dest, _size); \ + break; \ + } \ + } \ } #define DmaCopyLarge16(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 16) #define DmaCopyLarge32(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 32) +# define DmaClearLarge16(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 16) +# define DmaClearLarge32(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 32) + #define DmaCopyDefvars(dmaNum, src, dest, size, bit) \ { \ const void *_src = src; \ -- cgit v1.2.3 From 9c9c31b1e15014d7cfeb3856717d9b29715d46a5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 20 Dec 2017 20:09:48 -0500 Subject: through sub_8101D8C --- include/slot_machine.h | 31 +++++++++++++++++++++++++++++++ include/sprite.h | 2 ++ 2 files changed, 33 insertions(+) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index c39aa7ca8..60b1f177a 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -1,6 +1,37 @@ #ifndef GUARD_SLOT_MACHINE_H #define GUARD_SLOT_MACHINE_H +struct SlotMachineEwramStruct { + /*0x00*/ u8 unk00; + /*0x01*/ u8 unk01; + /*0x02*/ u8 unk02; + /*0x03*/ u8 unk03; + /*0x04*/ u8 unk04; + /*0x05*/ u8 filler05[3]; + /*0x08*/ u16 unk08; + /*0x0A*/ u8 unk0A; + /*0x0B*/ u8 unk0B; + /*0x0C*/ u16 coins; + /*0x0E*/ u16 unk0E; + /*0x10*/ u16 unk10; + /*0x12*/ u16 unk12; + /*0x14*/ u8 filler14[4]; + /*0x18*/ u16 unk18; + /*0x1A*/ u16 unk1A; + /*0x1C*/ s16 unk1C[3]; + /*0x22*/ u16 unk22[3]; + /*0x28*/ s16 unk28[3]; + /*0x2E*/ u8 filler2E[15]; + /*0x3D*/ u8 unk3D; + /*0x3E*/ u8 filler3E[26]; + /*0x58*/ u16 win0h; + /*0x5a*/ u16 win0v; + /*0x5c*/ u16 winIn; + /*0x5e*/ u16 winOut; + /*0x60*/ u16 backupMapMusic; + /*0x64*/ void *unk64; +}; + void PlaySlotMachine(u8, void *); void sub_8104DA4(void); u8 sub_8105BB4(u8, u8, s16); diff --git a/include/sprite.h b/include/sprite.h index a87260ec0..7b6dd2bef 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -229,6 +229,8 @@ extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[]; extern s16 gSpriteCoordOffsetX; extern s16 gSpriteCoordOffsetY; +extern u8 gOamLimit; + extern struct Sprite gSprites[]; void ResetSpriteData(void); -- cgit v1.2.3 From 3f6124709ae7843bcc82183c387ce03290c28c36 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 21 Dec 2017 08:42:29 -0500 Subject: through sub_8101E3C --- include/slot_machine.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index 60b1f177a..421946103 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -2,7 +2,7 @@ #define GUARD_SLOT_MACHINE_H struct SlotMachineEwramStruct { - /*0x00*/ u8 unk00; + /*0x00*/ u8 state; /*0x01*/ u8 unk01; /*0x02*/ u8 unk02; /*0x03*/ u8 unk03; @@ -11,10 +11,10 @@ struct SlotMachineEwramStruct { /*0x08*/ u16 unk08; /*0x0A*/ u8 unk0A; /*0x0B*/ u8 unk0B; - /*0x0C*/ u16 coins; + /*0x0C*/ s16 coins; /*0x0E*/ u16 unk0E; /*0x10*/ u16 unk10; - /*0x12*/ u16 unk12; + /*0x12*/ s16 bet; /*0x14*/ u8 filler14[4]; /*0x18*/ u16 unk18; /*0x1A*/ u16 unk1A; -- cgit v1.2.3 From 2fe7a0e1542fa24731d233ed3b9e97ce4efa9c31 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 21 Dec 2017 16:32:23 -0500 Subject: through sub_8102090 --- include/slot_machine.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index 421946103..057713a1b 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -16,7 +16,7 @@ struct SlotMachineEwramStruct { /*0x10*/ u16 unk10; /*0x12*/ s16 bet; /*0x14*/ u8 filler14[4]; - /*0x18*/ u16 unk18; + /*0x18*/ s16 unk18; /*0x1A*/ u16 unk1A; /*0x1C*/ s16 unk1C[3]; /*0x22*/ u16 unk22[3]; -- cgit v1.2.3 From 6369dca42b4a0cab379b5ecfdc5b8235e64f79cc Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 21 Dec 2017 18:34:43 -0500 Subject: sub_81020C8 --- include/slot_machine.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index 057713a1b..880fe6f1f 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -13,7 +13,7 @@ struct SlotMachineEwramStruct { /*0x0B*/ u8 unk0B; /*0x0C*/ s16 coins; /*0x0E*/ u16 unk0E; - /*0x10*/ u16 unk10; + /*0x10*/ s16 unk10; /*0x12*/ s16 bet; /*0x14*/ u8 filler14[4]; /*0x18*/ s16 unk18; -- cgit v1.2.3 From e432ffd18d6a1cd5bf1147a42979df3541ea0807 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 21 Dec 2017 19:08:24 -0500 Subject: through sub_8102460 --- include/slot_machine.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index 880fe6f1f..4dde64aa7 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -29,7 +29,7 @@ struct SlotMachineEwramStruct { /*0x5c*/ u16 winIn; /*0x5e*/ u16 winOut; /*0x60*/ u16 backupMapMusic; - /*0x64*/ void *unk64; + /*0x64*/ MainCallback prevMainCb; }; void PlaySlotMachine(u8, void *); -- cgit v1.2.3 From 388a4cc729c84e334819db165eb5aab99233ee9c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 21 Dec 2017 22:35:46 -0500 Subject: sub_8102540 --- include/slot_machine.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index 4dde64aa7..0e7efaf29 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -7,7 +7,9 @@ struct SlotMachineEwramStruct { /*0x02*/ u8 unk02; /*0x03*/ u8 unk03; /*0x04*/ u8 unk04; - /*0x05*/ u8 filler05[3]; + /*0x05*/ u8 unk05; + /*0x06*/ u8 unk06; + /*0x07*/ u8 unk07; /*0x08*/ u16 unk08; /*0x0A*/ u8 unk0A; /*0x0B*/ u8 unk0B; -- cgit v1.2.3 From 5a3aab439405d76c98e91bf1f3140584d42e1d62 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Sat, 23 Dec 2017 20:41:44 -0600 Subject: match sub_80EF9F8 --- include/region_map.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/region_map.h b/include/region_map.h index 4061c5e3d..254307052 100644 --- a/include/region_map.h +++ b/include/region_map.h @@ -4,10 +4,10 @@ struct RegionMap { u8 mapSectionName[20]; - u16 mapSectionId; - u8 unk16; - u8 everGrandeCityArea; - u8 (*inputCallback)(void); + /*0x14*/ u16 mapSectionId; + /*0x16*/ u8 unk16; + /*0x17*/ u8 everGrandeCityArea; + /*0x18*/ u8 (*inputCallback)(void); struct Sprite *cursorSprite; struct Sprite *playerIconSprite; s32 bg2x; -- cgit v1.2.3 From 4b5ad9de049a63b101b2bf5f2f2cb92beb26e5fb Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 22 Dec 2017 12:36:12 -0600 Subject: Name and use temp var constants --- include/constants/flags.h | 5 +++-- include/constants/vars.h | 30 +++++++++++++++++++----------- 2 files changed, 22 insertions(+), 13 deletions(-) (limited to 'include') diff --git a/include/constants/flags.h b/include/constants/flags.h index eff147fb8..40bac89a0 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -2,8 +2,8 @@ #define GUARD_CONSTANTS_FLAGS_H // temporary flags -// These temporary are are cleared every time a map is loaded. They are used for -// things like shortening an NPCs introduction text if the player already spoke +// These temporary flags are are cleared every time a map is loaded. They are used +// for things like shortening an NPCs introduction text if the player already spoke // to them once. #define FLAG_TEMP_1 0x1 #define FLAG_TEMP_2 0x2 @@ -799,6 +799,7 @@ // SPECIAL FLAGS (unknown purpose) +#define FLAG_SPECIAL_FLAG_0 0x4000 #define FLAG_SPECIAL_FLAG_1 0x4001 #endif // GUARD_CONSTANTS_FLAGS_H diff --git a/include/constants/vars.h b/include/constants/vars.h index 21834879f..df265c551 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -3,17 +3,25 @@ #define VAR_0x3F20 0x3F20 -#define VAR_0x4000 0x4000 -#define VAR_0x4001 0x4001 -#define VAR_0x4002 0x4002 -#define VAR_0x4003 0x4003 -#define VAR_0x4004 0x4004 -#define VAR_0x4005 0x4005 -#define VAR_0x4006 0x4006 -#define VAR_0x4007 0x4007 -#define VAR_0x4008 0x4008 -#define VAR_0x4009 0x4009 -#define VAR_0x400A 0x400A +// temporary vars +// The first 0x10 vars are are temporary--they are cleared every time a map is loaded. +#define VAR_TEMP_0 0x4000 +#define VAR_TEMP_1 0x4001 +#define VAR_TEMP_2 0x4002 +#define VAR_TEMP_3 0x4003 +#define VAR_TEMP_4 0x4004 +#define VAR_TEMP_5 0x4005 +#define VAR_TEMP_6 0x4006 +#define VAR_TEMP_7 0x4007 +#define VAR_TEMP_8 0x4008 +#define VAR_TEMP_9 0x4009 +#define VAR_TEMP_A 0x400A +#define VAR_TEMP_B 0x400B +#define VAR_TEMP_C 0x400C +#define VAR_TEMP_D 0x400D +#define VAR_TEMP_E 0x400E +#define VAR_TEMP_F 0x400F + #define VAR_0x401F 0x401F #define VAR_RECYCLE_GOODS 0x4020 #define VAR_REPEL_STEP_COUNT 0x4021 -- cgit v1.2.3 From e696b89ff2902c283207e5f712ccc6c59f174555 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 22 Dec 2017 13:27:24 -0600 Subject: Name and use dynamic object gfx id vars --- include/constants/vars.h | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/constants/vars.h b/include/constants/vars.h index df265c551..4f80e5e26 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -22,7 +22,27 @@ #define VAR_TEMP_E 0x400E #define VAR_TEMP_F 0x400F -#define VAR_0x401F 0x401F +// object gfx id vars +// These 0x10 vars are used to dynamically control a map object's sprite. +// For example, the rival's sprite id is dynamically set based on the player's gender. +// See VarGetFieldObjectGraphicsId(). +#define VAR_OBJ_GFX_ID_0 0x4010 +#define VAR_OBJ_GFX_ID_1 0x4011 +#define VAR_OBJ_GFX_ID_2 0x4012 +#define VAR_OBJ_GFX_ID_3 0x4013 +#define VAR_OBJ_GFX_ID_4 0x4014 +#define VAR_OBJ_GFX_ID_5 0x4015 +#define VAR_OBJ_GFX_ID_6 0x4016 +#define VAR_OBJ_GFX_ID_7 0x4017 +#define VAR_OBJ_GFX_ID_8 0x4018 +#define VAR_OBJ_GFX_ID_9 0x4019 +#define VAR_OBJ_GFX_ID_A 0x401A +#define VAR_OBJ_GFX_ID_B 0x401B +#define VAR_OBJ_GFX_ID_C 0x401C +#define VAR_OBJ_GFX_ID_D 0x401D +#define VAR_OBJ_GFX_ID_E 0x401E +#define VAR_OBJ_GFX_ID_F 0x401F + #define VAR_RECYCLE_GOODS 0x4020 #define VAR_REPEL_STEP_COUNT 0x4021 #define VAR_ICE_STEP_COUNT 0x4022 -- cgit v1.2.3 From 2379a5b6ebe1f8e59d27850279b00fca588804cc Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 22 Dec 2017 13:58:56 -0600 Subject: Name and use dynamic object gfx ids --- include/constants/map_objects.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'include') diff --git a/include/constants/map_objects.h b/include/constants/map_objects.h index 6a1c9e11a..7e5aef744 100644 --- a/include/constants/map_objects.h +++ b/include/constants/map_objects.h @@ -220,6 +220,26 @@ #define MAP_OBJ_GFX_LINK_BRENDAN 216 #define MAP_OBJ_GFX_LINK_MAY 217 +// These are dynamic object gfx ids. +// They correspond with the values of the VAR_OBJ_GFX_ID_X vars. +// More info about them in include/constants/vars.h +#define MAP_OBJ_GFX_VAR_0 240 +#define MAP_OBJ_GFX_VAR_1 241 +#define MAP_OBJ_GFX_VAR_2 242 +#define MAP_OBJ_GFX_VAR_3 243 +#define MAP_OBJ_GFX_VAR_4 244 +#define MAP_OBJ_GFX_VAR_5 245 +#define MAP_OBJ_GFX_VAR_6 246 +#define MAP_OBJ_GFX_VAR_7 247 +#define MAP_OBJ_GFX_VAR_8 248 +#define MAP_OBJ_GFX_VAR_9 249 +#define MAP_OBJ_GFX_VAR_A 250 +#define MAP_OBJ_GFX_VAR_B 251 +#define MAP_OBJ_GFX_VAR_C 252 +#define MAP_OBJ_GFX_VAR_D 253 +#define MAP_OBJ_GFX_VAR_E 254 +#define MAP_OBJ_GFX_VAR_F 255 + #define SHADOW_SIZE_S 0 #define SHADOW_SIZE_M 1 #define SHADOW_SIZE_L 2 -- cgit v1.2.3 From 51247c3eb9dc1f8ecf4298ada62ed7c2f768b50e Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 23 Dec 2017 10:41:27 -0600 Subject: Name and use general purpose vars --- include/constants/vars.h | 116 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 102 insertions(+), 14 deletions(-) (limited to 'include') diff --git a/include/constants/vars.h b/include/constants/vars.h index 4f80e5e26..b0662954f 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -43,42 +43,130 @@ #define VAR_OBJ_GFX_ID_E 0x401E #define VAR_OBJ_GFX_ID_F 0x401F +// general purpose vars #define VAR_RECYCLE_GOODS 0x4020 #define VAR_REPEL_STEP_COUNT 0x4021 #define VAR_ICE_STEP_COUNT 0x4022 -#define VAR_FIRST_POKE 0x4023 +#define VAR_STARTER_MON 0x4023 // 0=Treecko, 1=Torchic, 2=Mudkip #define VAR_MIRAGE_RND_H 0x4024 #define VAR_MIRAGE_RND_L 0x4025 #define VAR_SECRET_BASE_MAP 0x4026 - +#define VAR_CYCLING_ROAD_RECORD_COLLISIONS 0x4027 +#define VAR_CYCLING_ROAD_RECORD_TIME_L 0x4028 +#define VAR_CYCLING_ROAD_RECORD_TIME_H 0x4029 #define VAR_HAPPINESS_STEP_COUNTER 0x402A #define VAR_POISON_STEP_COUNTER 0x402B #define VAR_RESET_RTC_ENABLE 0x402C +#define VAR_ENIGMA_BERRY_AVAILABLE 0x402D #define VAR_DAYS 0x4040 #define VAR_DEPT_STORE_FLOOR 0x4043 -#define VAR_POKELOT_PRIZE 0x4045 +#define VAR_TRICK_HOUSE_ROOMS_COMPLETED 0x4044 +#define VAR_LOTTERY_PRIZE 0x4045 #define VAR_NATIONAL_DEX 0x4046 #define VAR_SHROOMISH_SIZE_RECORD 0x4047 #define VAR_ASH_GATHER_COUNT 0x4048 #define VAR_BIRCH_STATE 0x4049 #define VAR_CRUISE_STEP_COUNT 0x404A -#define VAR_POKELOT_RND1 0x404B -#define VAR_POKELOT_RND2 0x404C +#define VAR_LOTTERY_RND_L 0x404B +#define VAR_LOTTERY_RND_H 0x404C #define VAR_BARBOACH_SIZE_RECORD 0x404F +#define VAR_LITTLEROOT_STATE 0x4050 +#define VAR_ROUTE102_ACCESSIBLE 0x4051 + +#define VAR_LAVARIDGE_RIVAL_STATE 0x4053 +#define VAR_CURRENT_SECRET_BASE 0x4054 + +#define VAR_PETALBURG_STATE 0x4057 +#define VAR_SLATEPORT_STATE 0x4058 + +#define VAR_RUSTBORO_STATE 0x405A + +#define VAR_SOOTOPOLIS_STATE 0x405E + +#define VAR_ROUTE101_STATE 0x4060 + +#define VAR_ROUTE103_STATE 0x4062 + +#define VAR_ROUTE110_STATE 0x4069 + +#define VAR_ROUTE116_STATE 0x406F + +#define VAR_ROUTE118_STATE 0x4071 +#define VAR_ROUTE119_STATE 0x4072 + +#define VAR_ROUTE121_STATE 0x4074 +#define VAR_ROUTE128_STATE 0x407B + +#define VAR_LITTLEROOT_HOUSES_STATE 0x4082 // TODO: needs more investigation + +#define VAR_BIRCH_LAB_STATE 0x4084 +#define VAR_PETALBURG_GYM_STATE 0x4085 +#define VAR_LINK_CONTEST_ROOM_STATE 0x4086 +#define VAR_CABLE_CLUB_STATE 0x4087 +#define VAR_CONTEST_LOCATION 0x4088 +#define VAR_0x4089 0x4089 // TODO: related to decorations +#define VAR_CONTEST_PRIZE_PICKUP 0x408A + +#define VAR_LITTLEROOT_HOUSES_STATE_2 0x408C // TODO: needs more investigation +#define VAR_LITTLEROOT_RIVAL_STATE 0x408D +#define VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE 0x408E +#define VAR_DEVON_CORP_3F_STATE 0x408F +#define VAR_BRINEY_HOUSE_STATE 0x4090 + +#define VAR_LITTLEROOT_INTRO_STATE 0x4092 +#define VAR_MAUVILLE_GYM_STATE 0x4093 +#define VAR_LILYCOVE_MUSEUM_2F_STATE 0x4094 +#define VAR_LILYCOVE_FAN_CLUB_STATE 0x4095 +#define VAR_BRINEY_LOCATION 0x4096 +#define VAR_0x4097 0x4097 // TODO: related to creating new secret base +#define VAR_PETALBURG_WOODS_STATE 0x4098 +#define VAR_LILYCOVE_CONTEST_LOBBY_STATE 0x4099 +#define VAR_RUSTURF_TUNNEL_STATE 0x409a +#define VAR_CAVE_OF_ORIGIN_B4F_STATE 0x409B +#define VAR_ELITE_4_STATE 0x409C + +#define VAR_SLATEPORT_HARBOR_STATE 0x40A0 + +#define VAR_SEAFLOOR_CAVERN_STATE 0x40A2 +#define VAR_CABLE_CAR_STATION_STATE 0x40A3 +#define VAR_SAFARI_ZONE_STATE 0x40A4 +#define VAR_TRICK_HOUSE_ENTRANCE_STATE 0x40A5 +#define VAR_TRICK_HOUSE_ENTRANCE_STATE_2 0x40A6 +#define VAR_TRICK_HOUSE_ENTRANCE_STATE_3 0x40A7 -#define VAR_0x4054 0x4054 +#define VAR_CYCLING_CHALLENGE_STATE 0x40A9 +#define VAR_SLATEPORT_MUSEUM_1F_STATE 0x40AA +#define VAR_TRICK_HOUSE_PUZZLE_1_STATE 0x40AB +#define VAR_TRICK_HOUSE_PUZZLE_2_STATE 0x40AC +#define VAR_TRICK_HOUSE_PUZZLE_3_STATE 0x40AD +#define VAR_TRICK_HOUSE_PUZZLE_4_STATE 0x40AE +#define VAR_TRICK_HOUSE_PUZZLE_5_STATE 0x40AF +#define VAR_TRICK_HOUSE_PUZZLE_6_STATE 0x40B0 +#define VAR_TRICK_HOUSE_PUZZLE_7_STATE 0x40B1 +#define VAR_TRICK_HOUSE_PUZZLE_8_STATE 0x40B2 +#define VAR_WEATHER_INSTITUTE_STATE 0x40B3 +#define VAR_PORTHOLE_STATE 0x40B4 +#define VAR_TRICK_HOUSE_STATE 0x40B5 // TODO: needs some further investigation +#define VAR_TRICK_HOUSE_PUZZLE_7_STATE_2 0x40B6 +#define VAR_SLATEPORT_FAN_CLUB_STATE 0x40B7 -#define VAR_0x4089 0x4089 -#define VAR_0x4095 0x4095 -#define VAR_0x4097 0x4097 -#define VAR_0x409a 0x409a -#define VAR_WEATHER_INSTITUTE_CLEARED 0x040B3 -#define VAR_PORTHOLE 0x40B4 +#define VAR_MT_PYRE_STATE 0x40B9 +#define VAR_NEW_MAUVILLE_STATE 0x40BA -#define VAR_0x40BC 0x40BC -#define VAR_0x40C2 0x40C2 +#define VAR_BRAVO_TRAINER_BATTLE_TOWER_ON 0x40BC +#define VAR_JAGGED_PASS_ASH_WEATHER 0x40BD +#define VAR_GLASS_WORKSHOP_STATE 0x40BE +#define VAR_METEOR_FALLS_STATE 0x40BF +#define VAR_GAME_CORNER_STATE 0x40C0 +#define VAR_TRICK_HOUSE_PRIZE_PICKUP 0x40C1 +#define VAR_PACIFIDLOG_TM_RECEIVED_DAY 0x40C2 +#define VAR_VICTORY_ROAD_1F_STATE 0x40C3 +#define VAR_FOSSIL_RESURRECTION_STATE 0x40C4 +#define VAR_WHICH_FOSSIL_REVIVED 0x40C5 +#define VAR_STEVENS_HOUSE_STATE 0x40C6 +#define VAR_OLDALE_STATE 0x40C7 #endif // GUARD_CONSTANTS_VARS_H -- cgit v1.2.3 From 1c8b05e7b059a98d4259f4129896d0cc1eaa3847 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 24 Dec 2017 10:11:43 -0600 Subject: Name and use constants for special vars --- include/constants/vars.h | 21 +++++++++++++++++++++ include/player_pc.h | 4 ++-- 2 files changed, 23 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/constants/vars.h b/include/constants/vars.h index b0662954f..352034d7a 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -169,4 +169,25 @@ #define VAR_STEVENS_HOUSE_STATE 0x40C6 #define VAR_OLDALE_STATE 0x40C7 +// special vars +// They are commonly used as parameters to commands, or return values from commands. +#define SPECIALVAR_0 0x8000 +#define SPECIALVAR_1 0x8001 +#define SPECIALVAR_2 0x8002 +#define SPECIALVAR_3 0x8003 +#define SPECIALVAR_4 0x8004 +#define SPECIALVAR_5 0x8005 +#define SPECIALVAR_6 0x8006 +#define SPECIALVAR_7 0x8007 +#define SPECIALVAR_8 0x8008 +#define SPECIALVAR_9 0x8009 +#define SPECIALVAR_A 0x800A +#define SPECIALVAR_B 0x800B +#define FACING 0x800C +#define RESULT 0x800D +#define ITEM_ID 0x800E +#define LAST_TALKED 0x800F +#define CONTEST_RANK 0x8010 +#define CONTEST_CATEGORY 0x8011 + #endif // GUARD_CONSTANTS_VARS_H diff --git a/include/player_pc.h b/include/player_pc.h index 3302ec634..625155b57 100644 --- a/include/player_pc.h +++ b/include/player_pc.h @@ -19,8 +19,8 @@ // defined and used in the above macro enum { - ITEM_ID, - QUANTITY + PC_ITEM_ID, + PC_QUANTITY }; // player PC menu options -- cgit v1.2.3 From 2c4d972f7c5a79ca94dca599b6e7b9e2c769cf70 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 24 Dec 2017 14:00:44 -0600 Subject: 'VAR_SPECIAL_X' instead of 'SPECIALVAR_X' --- include/constants/vars.h | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'include') diff --git a/include/constants/vars.h b/include/constants/vars.h index 352034d7a..13114e09b 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -171,18 +171,18 @@ // special vars // They are commonly used as parameters to commands, or return values from commands. -#define SPECIALVAR_0 0x8000 -#define SPECIALVAR_1 0x8001 -#define SPECIALVAR_2 0x8002 -#define SPECIALVAR_3 0x8003 -#define SPECIALVAR_4 0x8004 -#define SPECIALVAR_5 0x8005 -#define SPECIALVAR_6 0x8006 -#define SPECIALVAR_7 0x8007 -#define SPECIALVAR_8 0x8008 -#define SPECIALVAR_9 0x8009 -#define SPECIALVAR_A 0x800A -#define SPECIALVAR_B 0x800B +#define VAR_SPECIAL_0 0x8000 +#define VAR_SPECIAL_1 0x8001 +#define VAR_SPECIAL_2 0x8002 +#define VAR_SPECIAL_3 0x8003 +#define VAR_SPECIAL_4 0x8004 +#define VAR_SPECIAL_5 0x8005 +#define VAR_SPECIAL_6 0x8006 +#define VAR_SPECIAL_7 0x8007 +#define VAR_SPECIAL_8 0x8008 +#define VAR_SPECIAL_9 0x8009 +#define VAR_SPECIAL_A 0x800A +#define VAR_SPECIAL_B 0x800B #define FACING 0x800C #define RESULT 0x800D #define ITEM_ID 0x800E -- cgit v1.2.3 From 7d311d0f747dc5c7c194f436d1b90181bee3cc66 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 24 Dec 2017 21:42:08 -0500 Subject: through sub_8102BA4 --- include/slot_machine.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index 0e7efaf29..738866318 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -14,7 +14,7 @@ struct SlotMachineEwramStruct { /*0x0A*/ u8 unk0A; /*0x0B*/ u8 unk0B; /*0x0C*/ s16 coins; - /*0x0E*/ u16 unk0E; + /*0x0E*/ s16 unk0E; /*0x10*/ s16 unk10; /*0x12*/ s16 bet; /*0x14*/ u8 filler14[4]; -- cgit v1.2.3 From 6000e19e94c36b5d4b8c45b829b0506191282b44 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Mon, 25 Dec 2017 14:56:02 -0600 Subject: Add coord_weather_event macro, and define COORD_EVENT_WEATHER_* constants --- include/constants/weather.h | 39 +++++++++++++++++++++++++++++++++++++++ include/field_weather.h | 12 ------------ 2 files changed, 39 insertions(+), 12 deletions(-) create mode 100644 include/constants/weather.h (limited to 'include') diff --git a/include/constants/weather.h b/include/constants/weather.h new file mode 100644 index 000000000..946316984 --- /dev/null +++ b/include/constants/weather.h @@ -0,0 +1,39 @@ +#ifndef GUARD_CONSTANTS_WEATHER_H +#define GUARD_CONSTANTS_WEATHER_H + +#define WEATHER_NONE 0 +#define WEATHER_CLOUDS 1 +#define WEATHER_SUNNY 2 +#define WEATHER_RAIN_LIGHT 3 +#define WEATHER_SNOW 4 +#define WEATHER_RAIN_MED 5 +#define WEATHER_FOG_1 6 +#define WEATHER_ASH 7 +#define WEATHER_SANDSTORM 8 +#define WEATHER_FOG_2 9 +#define WEATHER_FOG_3 10 +#define WEATHER_DARK 11 +#define WEATHER_DROUGHT 12 +#define WEATHER_RAIN_HEAVY 13 +#define WEATHER_BUBBLES 14 +#define WEATHER_ROUTE119_CYCLE 20 +#define WEATHER_ROUTE123_CYCLE 21 + +// These are used in maps' coord_weather_event entries. +// They are not a one-to-one mapping with the engine's +// internal weather constants above. +#define COORD_EVENT_WEATHER_CLOUDS 1 +#define COORD_EVENT_WEATHER_SUNNY 2 +#define COORD_EVENT_WEATHER_RAIN_LIGHT 3 +#define COORD_EVENT_WEATHER_SNOW 4 +#define COORD_EVENT_WEATHER_RAIN_MED 5 +#define COORD_EVENT_WEATHER_FOG_1 6 +#define COORD_EVENT_WEATHER_FOG_2 7 +#define COORD_EVENT_WEATHER_ASH 8 +#define COORD_EVENT_WEATHER_SANDSTORM 9 +#define COORD_EVENT_WEATHER_DARK 10 +#define COORD_EVENT_WEATHER_DROUGHT 11 +#define COORD_EVENT_WEATHER_ROUTE119_CYCLE 20 +#define COORD_EVENT_WEATHER_ROUTE123_CYCLE 21 + +#endif // GUARD_CONSTANTS_WEATHER_H diff --git a/include/field_weather.h b/include/field_weather.h index ed16b2bf6..c96d4055e 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -1,18 +1,6 @@ #ifndef GUARD_WEATHER_H #define GUARD_WEATHER_H -#define WEATHER_NONE 0 -#define WEATHER_CLOUDS 1 -#define WEATHER_RAIN_LIGHT 3 -#define WEATHER_SNOW 4 -#define WEATHER_RAIN_MED 5 -#define WEATHER_FOG_1 6 -#define WEATHER_ASH 7 -#define WEATHER_FOG_2 9 -#define WEATHER_DROUGHT 12 -#define WEATHER_RAIN_HEAVY 13 -#define WEATHER_BUBBLES 14 - struct Sprite; struct Weather -- cgit v1.2.3 From 80cddf0cd4946d85e5e23ec90c530ca2ea54732d Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Tue, 26 Dec 2017 14:03:01 -0600 Subject: Add bg_hidden_item_event macro, and define hidden item flags --- include/constants/flags.h | 105 +++++++++++++++++++++++++++++++++++++++++++++- include/global.fieldmap.h | 4 +- 2 files changed, 105 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/constants/flags.h b/include/constants/flags.h index 40bac89a0..0e8c766f0 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -255,8 +255,109 @@ #define FLAG_RIVAL_LEFT_FOR_ROUTE103 0x12D #define FLAG_OMIT_DIVE_FROM_STEVEN_LETTER 0x12E -#define FLAG_UNKNOWN_2B8 0x2B8 // TODO: pokemon storage system? - +// hidden item flags +#define FLAG_HIDDEN_ITEMS_START 0x258 +#define FLAG_HIDDEN_ITEM_0 0x258 +#define FLAG_HIDDEN_ITEM_1 0x259 +#define FLAG_HIDDEN_ITEM_2 0x25A +#define FLAG_HIDDEN_ITEM_3 0x25B +#define FLAG_HIDDEN_ITEM_4 0x25C +#define FLAG_HIDDEN_ITEM_5 0x25D +#define FLAG_HIDDEN_ITEM_6 0x25E +#define FLAG_HIDDEN_ITEM_7 0x25F +#define FLAG_HIDDEN_ITEM_8 0x260 +#define FLAG_HIDDEN_ITEM_9 0x261 +#define FLAG_HIDDEN_ITEM_A 0x262 +#define FLAG_HIDDEN_ITEM_B 0x263 +#define FLAG_HIDDEN_ITEM_C 0x264 +#define FLAG_HIDDEN_ITEM_D 0x265 +#define FLAG_HIDDEN_ITEM_E 0x266 +#define FLAG_HIDDEN_ITEM_F 0x267 +#define FLAG_HIDDEN_ITEM_10 0x268 +#define FLAG_HIDDEN_ITEM_11 0x269 +#define FLAG_HIDDEN_ITEM_12 0x26A +#define FLAG_HIDDEN_ITEM_13 0x26B +#define FLAG_HIDDEN_ITEM_14 0x26C +#define FLAG_HIDDEN_ITEM_15 0x26D +#define FLAG_HIDDEN_ITEM_16 0x26E +#define FLAG_HIDDEN_ITEM_17 0x26F +#define FLAG_HIDDEN_ITEM_18 0x270 +#define FLAG_HIDDEN_ITEM_19 0x271 +#define FLAG_HIDDEN_ITEM_1A 0x272 +#define FLAG_HIDDEN_ITEM_1B 0x273 +#define FLAG_HIDDEN_ITEM_1C 0x274 +#define FLAG_HIDDEN_ITEM_1D 0x275 +#define FLAG_HIDDEN_ITEM_1E 0x276 +#define FLAG_HIDDEN_ITEM_1F 0x277 +#define FLAG_HIDDEN_ITEM_20 0x278 +#define FLAG_HIDDEN_ITEM_21 0x279 +#define FLAG_HIDDEN_ITEM_22 0x27A +#define FLAG_HIDDEN_ITEM_23 0x27B +#define FLAG_HIDDEN_ITEM_24 0x27C +#define FLAG_HIDDEN_ITEM_25 0x27D +#define FLAG_HIDDEN_ITEM_26 0x27E +#define FLAG_HIDDEN_ITEM_27 0x27F +#define FLAG_HIDDEN_ITEM_28 0x280 +#define FLAG_HIDDEN_ITEM_29 0x281 +#define FLAG_HIDDEN_ITEM_2A 0x282 +#define FLAG_HIDDEN_ITEM_2B 0x283 +#define FLAG_HIDDEN_ITEM_2C 0x284 +#define FLAG_HIDDEN_ITEM_2D 0x285 +#define FLAG_HIDDEN_ITEM_2E 0x286 +#define FLAG_HIDDEN_ITEM_2F 0x287 +#define FLAG_HIDDEN_ITEM_30 0x288 +#define FLAG_HIDDEN_ITEM_31 0x289 +#define FLAG_HIDDEN_ITEM_32 0x28A +#define FLAG_HIDDEN_ITEM_33 0x28B +#define FLAG_HIDDEN_ITEM_34 0x28C +#define FLAG_HIDDEN_ITEM_35 0x28D +#define FLAG_HIDDEN_ITEM_36 0x28E +#define FLAG_HIDDEN_ITEM_37 0x28F +#define FLAG_HIDDEN_ITEM_38 0x290 +#define FLAG_HIDDEN_ITEM_39 0x291 +#define FLAG_HIDDEN_ITEM_3A 0x292 +#define FLAG_HIDDEN_ITEM_3B 0x293 +#define FLAG_HIDDEN_ITEM_3C 0x294 +#define FLAG_HIDDEN_ITEM_3D 0x295 +#define FLAG_HIDDEN_ITEM_3E 0x296 +#define FLAG_HIDDEN_ITEM_3F 0x297 +#define FLAG_HIDDEN_ITEM_40 0x298 +#define FLAG_HIDDEN_ITEM_41 0x299 +#define FLAG_HIDDEN_ITEM_42 0x29A +#define FLAG_HIDDEN_ITEM_43 0x29B +#define FLAG_HIDDEN_ITEM_44 0x29C +#define FLAG_HIDDEN_ITEM_45 0x29D +#define FLAG_HIDDEN_ITEM_46 0x29E +#define FLAG_HIDDEN_ITEM_47 0x29F +#define FLAG_HIDDEN_ITEM_48 0x2A0 +#define FLAG_HIDDEN_ITEM_49 0x2A1 +#define FLAG_HIDDEN_ITEM_4A 0x2A2 +#define FLAG_HIDDEN_ITEM_4B 0x2A3 +#define FLAG_HIDDEN_ITEM_4C 0x2A4 +#define FLAG_HIDDEN_ITEM_4D 0x2A5 +#define FLAG_HIDDEN_ITEM_4E 0x2A6 +#define FLAG_HIDDEN_ITEM_4F 0x2A7 +#define FLAG_HIDDEN_ITEM_50 0x2A8 +#define FLAG_HIDDEN_ITEM_51 0x2A9 +#define FLAG_HIDDEN_ITEM_52 0x2AA +#define FLAG_HIDDEN_ITEM_53 0x2AB +#define FLAG_HIDDEN_ITEM_54 0x2AC +#define FLAG_HIDDEN_ITEM_55 0x2AD +#define FLAG_HIDDEN_ITEM_56 0x2AE +#define FLAG_HIDDEN_ITEM_57 0x2AF +#define FLAG_HIDDEN_ITEM_58 0x2B0 +#define FLAG_HIDDEN_ITEM_59 0x2B1 +#define FLAG_HIDDEN_ITEM_5A 0x2B2 +#define FLAG_HIDDEN_ITEM_5B 0x2B3 +#define FLAG_HIDDEN_ITEM_5C 0x2B4 +#define FLAG_HIDDEN_ITEM_5D 0x2B5 +#define FLAG_HIDDEN_ITEM_5E 0x2B6 +#define FLAG_HIDDEN_ITEM_5F 0x2B7 +#define FLAG_HIDDEN_ITEM_60 0x2B8 +#define FLAG_HIDDEN_ITEM_61 0x2B9 + + +// map object hide/show flags #define FLAG_HIDE_BIRCH_STARTERS_BAG 0x2BC #define FLAG_HIDE_BIRCH_BATTLE_POOCHYENA 0x2D0 diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 20190dcb7..a828cf131 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -119,9 +119,9 @@ struct BgEvent // in gen 3, "kind" (0x3 in BgEvent struct) determines the method to read the union. u8 *script; - // hidden item type probably + // hidden item type struct { - u8 filler6[0x2]; + u16 item; u16 hiddenItemId; // flag offset to determine flag lookup } hiddenItem; -- cgit v1.2.3 From 82230589d1170e14c48b6d8b5ccadd8ded5465ce Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Tue, 26 Dec 2017 16:08:02 -0600 Subject: Add bg_secret_base_event macro, and define secret base id constants --- include/constants/secret_bases.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 include/constants/secret_bases.h (limited to 'include') diff --git a/include/constants/secret_bases.h b/include/constants/secret_bases.h new file mode 100644 index 000000000..f9748183c --- /dev/null +++ b/include/constants/secret_bases.h @@ -0,0 +1,29 @@ +#ifndef GUARD_CONSTANTS_SECRET_BASES_H +#define GUARD_CONSTANTS_SECRET_BASES_H + +#define SECRET_BASE_RED_CAVE1(n) (0 + n) +#define SECRET_BASE_RED_CAVE2(n) (10 + n) +#define SECRET_BASE_RED_CAVE3(n) (20 + n) +#define SECRET_BASE_RED_CAVE4(n) (30 + n) +#define SECRET_BASE_BROWN_CAVE1(n) (40 + n) +#define SECRET_BASE_BROWN_CAVE2(n) (50 + n) +#define SECRET_BASE_BROWN_CAVE3(n) (60 + n) +#define SECRET_BASE_BROWN_CAVE4(n) (70 + n) +#define SECRET_BASE_BLUE_CAVE1(n) (80 + n) +#define SECRET_BASE_BLUE_CAVE2(n) (90 + n) +#define SECRET_BASE_BLUE_CAVE3(n) (100 + n) +#define SECRET_BASE_BLUE_CAVE4(n) (110 + n) +#define SECRET_BASE_YELLOW_CAVE1(n) (120 + n) +#define SECRET_BASE_YELLOW_CAVE2(n) (130 + n) +#define SECRET_BASE_YELLOW_CAVE3(n) (140 + n) +#define SECRET_BASE_YELLOW_CAVE4(n) (150 + n) +#define SECRET_BASE_TREE1(n) (160 + n) +#define SECRET_BASE_TREE2(n) (170 + n) +#define SECRET_BASE_TREE3(n) (180 + n) +#define SECRET_BASE_TREE4(n) (190 + n) +#define SECRET_BASE_SHRUB1(n) (200 + n) +#define SECRET_BASE_SHRUB2(n) (210 + n) +#define SECRET_BASE_SHRUB3(n) (220 + n) +#define SECRET_BASE_SHRUB4(n) (230 + n) + +#endif // GUARD_CONSTANTS_SECRET_BASES_H -- cgit v1.2.3 From a3b25543b3d85a5f88284752367abd6ed713f82b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 26 Dec 2017 20:37:55 -0500 Subject: through sub_8102DEC --- include/slot_machine.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index 738866318..c5e14f719 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -17,13 +17,15 @@ struct SlotMachineEwramStruct { /*0x0E*/ s16 unk0E; /*0x10*/ s16 unk10; /*0x12*/ s16 bet; - /*0x14*/ u8 filler14[4]; + /*0x14*/ s16 unk14; + /*0x16*/ s16 unk16; /*0x18*/ s16 unk18; /*0x1A*/ u16 unk1A; /*0x1C*/ s16 unk1C[3]; /*0x22*/ u16 unk22[3]; /*0x28*/ s16 unk28[3]; - /*0x2E*/ u8 filler2E[15]; + /*0x2E*/ u8 filler2E[12]; + /*0x3A*/ u8 unk3A[3]; /*0x3D*/ u8 unk3D; /*0x3E*/ u8 filler3E[26]; /*0x58*/ u16 win0h; -- cgit v1.2.3 From da62907ec54f400646416f38ef02bd7f03d5dbc4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 26 Dec 2017 21:25:47 -0500 Subject: through sub_8103008 --- include/slot_machine.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index c5e14f719..7fc47bb12 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -24,7 +24,8 @@ struct SlotMachineEwramStruct { /*0x1C*/ s16 unk1C[3]; /*0x22*/ u16 unk22[3]; /*0x28*/ s16 unk28[3]; - /*0x2E*/ u8 filler2E[12]; + /*0x2E*/ s16 unk2E[3]; + /*0x34*/ u16 unk34[3]; /*0x3A*/ u8 unk3A[3]; /*0x3D*/ u8 unk3D; /*0x3E*/ u8 filler3E[26]; -- cgit v1.2.3 From 0eb231352a820aa6597bb6a69ef920e3864931ab Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Tue, 26 Dec 2017 22:24:06 -0600 Subject: Fully enumerate secret base constants --- include/constants/secret_bases.h | 129 +++++++++++++++++++++++++++++++-------- 1 file changed, 105 insertions(+), 24 deletions(-) (limited to 'include') diff --git a/include/constants/secret_bases.h b/include/constants/secret_bases.h index f9748183c..0f51054a8 100644 --- a/include/constants/secret_bases.h +++ b/include/constants/secret_bases.h @@ -1,29 +1,110 @@ #ifndef GUARD_CONSTANTS_SECRET_BASES_H #define GUARD_CONSTANTS_SECRET_BASES_H -#define SECRET_BASE_RED_CAVE1(n) (0 + n) -#define SECRET_BASE_RED_CAVE2(n) (10 + n) -#define SECRET_BASE_RED_CAVE3(n) (20 + n) -#define SECRET_BASE_RED_CAVE4(n) (30 + n) -#define SECRET_BASE_BROWN_CAVE1(n) (40 + n) -#define SECRET_BASE_BROWN_CAVE2(n) (50 + n) -#define SECRET_BASE_BROWN_CAVE3(n) (60 + n) -#define SECRET_BASE_BROWN_CAVE4(n) (70 + n) -#define SECRET_BASE_BLUE_CAVE1(n) (80 + n) -#define SECRET_BASE_BLUE_CAVE2(n) (90 + n) -#define SECRET_BASE_BLUE_CAVE3(n) (100 + n) -#define SECRET_BASE_BLUE_CAVE4(n) (110 + n) -#define SECRET_BASE_YELLOW_CAVE1(n) (120 + n) -#define SECRET_BASE_YELLOW_CAVE2(n) (130 + n) -#define SECRET_BASE_YELLOW_CAVE3(n) (140 + n) -#define SECRET_BASE_YELLOW_CAVE4(n) (150 + n) -#define SECRET_BASE_TREE1(n) (160 + n) -#define SECRET_BASE_TREE2(n) (170 + n) -#define SECRET_BASE_TREE3(n) (180 + n) -#define SECRET_BASE_TREE4(n) (190 + n) -#define SECRET_BASE_SHRUB1(n) (200 + n) -#define SECRET_BASE_SHRUB2(n) (210 + n) -#define SECRET_BASE_SHRUB3(n) (220 + n) -#define SECRET_BASE_SHRUB4(n) (230 + n) +// Each secret base location is assigned an identifier value. +// The secret base's map is determined by (id / 10). The ones +// digit is used to differentiate secret bases using the same map. +// Therefore, each secret base map can be used by up to 10 different +// secret bases in the game. These ids are 1-based, but there is no +// apparent reason for that. + +#define SECRET_BASE_RED_CAVE1_1 1 +#define SECRET_BASE_RED_CAVE1_2 2 +#define SECRET_BASE_RED_CAVE1_3 3 + +#define SECRET_BASE_RED_CAVE2_1 11 +#define SECRET_BASE_RED_CAVE2_2 12 +#define SECRET_BASE_RED_CAVE2_3 13 + +#define SECRET_BASE_RED_CAVE3_1 21 +#define SECRET_BASE_RED_CAVE3_2 22 +#define SECRET_BASE_RED_CAVE3_3 23 + +#define SECRET_BASE_RED_CAVE4_1 31 +#define SECRET_BASE_RED_CAVE4_2 32 +#define SECRET_BASE_RED_CAVE4_3 33 + +#define SECRET_BASE_BROWN_CAVE1_1 41 +#define SECRET_BASE_BROWN_CAVE1_2 42 +#define SECRET_BASE_BROWN_CAVE1_3 43 + +#define SECRET_BASE_BROWN_CAVE2_1 51 +#define SECRET_BASE_BROWN_CAVE2_2 52 +#define SECRET_BASE_BROWN_CAVE2_3 53 + +#define SECRET_BASE_BROWN_CAVE3_1 61 +#define SECRET_BASE_BROWN_CAVE3_2 62 +#define SECRET_BASE_BROWN_CAVE3_3 63 + +#define SECRET_BASE_BROWN_CAVE4_1 71 +#define SECRET_BASE_BROWN_CAVE4_2 72 +#define SECRET_BASE_BROWN_CAVE4_3 73 + +#define SECRET_BASE_BLUE_CAVE1_1 81 +#define SECRET_BASE_BLUE_CAVE1_2 82 +#define SECRET_BASE_BLUE_CAVE1_3 83 + +#define SECRET_BASE_BLUE_CAVE2_1 91 +#define SECRET_BASE_BLUE_CAVE2_2 92 +#define SECRET_BASE_BLUE_CAVE2_3 93 + +#define SECRET_BASE_BLUE_CAVE3_1 101 +#define SECRET_BASE_BLUE_CAVE3_2 102 +#define SECRET_BASE_BLUE_CAVE3_3 103 + +#define SECRET_BASE_BLUE_CAVE4_1 111 +#define SECRET_BASE_BLUE_CAVE4_2 112 +#define SECRET_BASE_BLUE_CAVE4_3 113 + +#define SECRET_BASE_YELLOW_CAVE1_1 121 +#define SECRET_BASE_YELLOW_CAVE1_2 122 +#define SECRET_BASE_YELLOW_CAVE1_3 123 + +#define SECRET_BASE_YELLOW_CAVE2_1 131 +#define SECRET_BASE_YELLOW_CAVE2_2 132 +#define SECRET_BASE_YELLOW_CAVE2_3 133 + +#define SECRET_BASE_YELLOW_CAVE3_1 141 +#define SECRET_BASE_YELLOW_CAVE3_2 142 +#define SECRET_BASE_YELLOW_CAVE3_3 143 + +#define SECRET_BASE_YELLOW_CAVE4_1 151 +#define SECRET_BASE_YELLOW_CAVE4_2 152 +#define SECRET_BASE_YELLOW_CAVE4_3 153 + +#define SECRET_BASE_TREE1_1 161 +#define SECRET_BASE_TREE1_2 162 +#define SECRET_BASE_TREE1_3 163 +#define SECRET_BASE_TREE1_4 164 + +#define SECRET_BASE_TREE2_1 171 +#define SECRET_BASE_TREE2_2 172 +#define SECRET_BASE_TREE2_3 173 +#define SECRET_BASE_TREE2_4 174 + +#define SECRET_BASE_TREE3_1 181 +#define SECRET_BASE_TREE3_2 182 +#define SECRET_BASE_TREE3_3 183 + +#define SECRET_BASE_TREE4_1 191 +#define SECRET_BASE_TREE4_2 192 +#define SECRET_BASE_TREE4_3 193 + +#define SECRET_BASE_SHRUB1_1 201 +#define SECRET_BASE_SHRUB1_2 202 +#define SECRET_BASE_SHRUB1_3 203 +#define SECRET_BASE_SHRUB1_4 204 + +#define SECRET_BASE_SHRUB2_1 211 +#define SECRET_BASE_SHRUB2_2 212 +#define SECRET_BASE_SHRUB2_3 213 + +#define SECRET_BASE_SHRUB3_1 221 +#define SECRET_BASE_SHRUB3_2 222 +#define SECRET_BASE_SHRUB3_3 223 + +#define SECRET_BASE_SHRUB4_1 231 +#define SECRET_BASE_SHRUB4_2 232 +#define SECRET_BASE_SHRUB4_3 233 #endif // GUARD_CONSTANTS_SECRET_BASES_H -- cgit v1.2.3 From d34de50d34d18ee64c95232202751532534c2ed9 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Wed, 27 Dec 2017 09:23:30 -0600 Subject: Use descriptive name for the BLACK GLASSES hidden item flag --- include/constants/flags.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/constants/flags.h b/include/constants/flags.h index 0e8c766f0..a8067f6ca 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -353,7 +353,7 @@ #define FLAG_HIDDEN_ITEM_5D 0x2B5 #define FLAG_HIDDEN_ITEM_5E 0x2B6 #define FLAG_HIDDEN_ITEM_5F 0x2B7 -#define FLAG_HIDDEN_ITEM_60 0x2B8 +#define FLAG_HIDDEN_ITEM_BLACK_GLASSES 0x2B8 #define FLAG_HIDDEN_ITEM_61 0x2B9 -- cgit v1.2.3 From 16e0d8089194a8d098da47c7a7b07fbc4dcc0292 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Wed, 27 Dec 2017 13:15:01 -0600 Subject: Port battle_anim changes from pokeemerald --- include/battle.h | 2 +- include/battle_anim.h | 24 ++++++++++++++++-------- include/battle_interface.h | 2 +- include/contest.h | 4 ++-- include/rom_8077ABC.h | 13 ++----------- include/sprite.h | 2 +- 6 files changed, 23 insertions(+), 24 deletions(-) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index dda71e562..febb5807a 100644 --- a/include/battle.h +++ b/include/battle.h @@ -838,7 +838,7 @@ extern u8 gBattleTextBuff1[]; // asm/battle_1.o void sub_800D6D4(); void sub_800D74C(); -void sub_800D7B8(void); +void DrawMainBattleBackground(void); void sub_800DAB8(); void sub_800DE30(u8); void sub_800E23C(); diff --git a/include/battle_anim.h b/include/battle_anim.h index 9decb8f95..2db27599f 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -9,6 +9,14 @@ #define REG_BG2CNT_BITFIELD REG_BGnCNT_BITFIELD(2) #define REG_BG3CNT_BITFIELD REG_BGnCNT_BITFIELD(3) +enum +{ + ANIM_BANK_ATTACKER, + ANIM_BANK_TARGET, + ANIM_BANK_ATK_PARTNER, + ANIM_BANK_DEF_PARTNER, +}; + struct BattleAnimBackground { void *image; @@ -36,20 +44,20 @@ struct UnknownStruct3 extern void (*gAnimScriptCallback)(void); extern u8 gAnimScriptActive; -extern u8 gHappinessMoveAnim; -extern u8 gUnknown_0202F7C4; +extern u8 gAnimFriendship; +extern u8 gAnimMoveTurn; -void ExecuteMoveAnim(u16 move); -void DoMoveAnim(const u8 *const moveAnims[], u16 b, u8 c); +void DoMoveAnim(u16 move); +void LaunchBattleAnimation(const u8 *const moveAnims[], u16 b, u8 c); bool8 IsAnimBankSpriteVisible(u8 a); void sub_8076034(u8, u8); -bool8 NotInBattle(void); -void battle_anim_clear_some_data(void); -void move_anim_8072740(struct Sprite *sprite); +bool8 IsContest(void); +void ClearBattleAnimationVars(void); +void DestroyAnimSprite(struct Sprite *sprite); void DestroyAnimVisualTask(u8 task); void DestroyAnimVisualTask(u8 task); bool8 IsAnimBankSpriteVisible(u8); -s8 sub_8076F98(s8 a); +s8 BattleAnimAdjustPanning(s8 a); void sub_80763FC(u16 a, u16 *b, u32 c, u8 d); #endif diff --git a/include/battle_interface.h b/include/battle_interface.h index db41ee735..a3e00fd12 100644 --- a/include/battle_interface.h +++ b/include/battle_interface.h @@ -22,7 +22,7 @@ void sub_8043D84(u8, u8, u32, u32, u32); void sub_8043DB0(u8); void sub_8043DFC(u8); void nullsub_11(); -void sub_8043EB4(u8); +void UpdateOamPriorityInAllHealthboxes(u8); void sub_8043F44(u8); void sub_804454C(void); u8 sub_8044804(u8, const struct BattleInterfaceStruct2 *, u8, u8); diff --git a/include/contest.h b/include/contest.h index ae2767aef..10392c00e 100644 --- a/include/contest.h +++ b/include/contest.h @@ -73,14 +73,14 @@ extern const struct ContestEffect gContestEffects[]; extern const u8 *const gContestEffectStrings[]; void ResetLinkContestBoolean(void); -void sub_80AB2AC(void); +void LoadContestBgAfterMoveAnim(void); void CB2_StartContest(void); void Contest_CreatePlayerMon(u8); void Contest_InitAllPokemon(u8, u8); u8 sub_80AE47C(struct Pokemon *party); u16 sub_80AE770(u8, u8); void sub_80AE82C(u8); -u8 sub_80AEB1C(u16); +u8 IsSpeciesNotUnown(u16); void sub_80AF668(void); void sub_80B0F28(u8); bool8 Contest_SaveWinner(u8); diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h index 70bd6fe5a..04d996a21 100644 --- a/include/rom_8077ABC.h +++ b/include/rom_8077ABC.h @@ -4,21 +4,13 @@ #include "sprite.h" #include "task.h" -enum -{ - ANIM_BANK_ATK, - ANIM_BANK_DEF, - ANIM_BANK_ATK_PARTNER, - ANIM_BANK_DEF_PARTNER -}; - struct Struct_sub_8078914 { u8 *field_0; u8 *field_4; u8 field_8; }; -u8 sub_8077ABC(u8, u8); +u8 GetBankPosition(u8, u8); u8 sub_8077E44(u8 slot, u16 species, u8 a3); u8 GetAnimBankSpriteId(u8 side); void StoreSpriteCallbackInData(struct Sprite *sprite, void(*callback)(struct Sprite *)); @@ -36,8 +28,7 @@ u8 GetBankIdentity(u8 slot); u8 GetBankByPlayerAI(u8); u8 GetBankByPlayerAI(u8); u8 GetBankByPlayerAI(u8 state); -u8 AnimBankSpriteExists(u8); -bool8 AnimBankSpriteExists(u8); +bool8 IsBankSpritePresent(u8); bool8 IsDoubleBattle(); u8 IsDoubleBattle(void); bool8 IsDoubleBattle(void); diff --git a/include/sprite.h b/include/sprite.h index 9937a0797..13c76c84b 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -246,7 +246,7 @@ void BuildOamBuffer(void); u8 CreateSprite(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority); u8 CreateSpriteAtEnd(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority); u8 CreateInvisibleSprite(void (*callback)(struct Sprite *)); -u8 CreateSpriteAndAnimate(struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority); +u8 CreateSpriteAndAnimate(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority); void DestroySprite(struct Sprite *sprite); void ResetOamRange(u8 a, u8 b); void LoadOam(void); -- cgit v1.2.3 From 4767f21f2e72ae89ab542d61a86d5fbbe85df1a2 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Wed, 27 Dec 2017 15:43:22 -0600 Subject: Port updated battle_script macros from pokeemerald --- include/battle.h | 2 +- include/field_fadetransition.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index febb5807a..dd44e0172 100644 --- a/include/battle.h +++ b/include/battle.h @@ -312,7 +312,7 @@ struct BattleStruct /* 0x2000000 */ /*0x1600C*/ u8 cmd49StateTracker; /*0x1600D*/ u8 unk1600D; /*0x1600E*/ u8 turncountersTracker; - /*0x1600F*/ u8 atk23StateTracker; + /*0x1600F*/ u8 getexpStateTracker; /*0x16010*/ u8 moveTarget[4]; /*0x16014*/ u8 unk16014; /*0x16015*/ u8 unk16015; diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h index 111dc92a6..4377367f7 100644 --- a/include/field_fadetransition.h +++ b/include/field_fadetransition.h @@ -13,7 +13,7 @@ void sub_8080A3C(void); void sub_8080AC4(void); void mapldr_default(); void sub_8080B60(void); -void atk17_seteffectuser(void); +void atk17_seteffectsecondary(void); void sub_8080E28(void); void sub_8080E44(void); bool32 sub_8080E70(void); -- cgit v1.2.3 From 4bd55a4f027410a7caf50933d9b7e1da14ce73da Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 27 Dec 2017 22:01:52 -0500 Subject: through sub_81032E8 --- include/slot_machine.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index 7fc47bb12..203f3bbfc 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -25,7 +25,7 @@ struct SlotMachineEwramStruct { /*0x22*/ u16 unk22[3]; /*0x28*/ s16 unk28[3]; /*0x2E*/ s16 unk2E[3]; - /*0x34*/ u16 unk34[3]; + /*0x34*/ s16 unk34[3]; /*0x3A*/ u8 unk3A[3]; /*0x3D*/ u8 unk3D; /*0x3E*/ u8 filler3E[26]; -- cgit v1.2.3 From d05e72b6b269defef8d9b1bbce42adaf48f4ed8f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 29 Dec 2017 19:35:05 -0500 Subject: through sub_8103E7C --- include/slot_machine.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index 203f3bbfc..b04ee6377 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -28,7 +28,9 @@ struct SlotMachineEwramStruct { /*0x34*/ s16 unk34[3]; /*0x3A*/ u8 unk3A[3]; /*0x3D*/ u8 unk3D; - /*0x3E*/ u8 filler3E[26]; + /*0x3E*/ u8 filler3E[6]; + /*0x44*/ u8 unk44[5]; + /*0x49*/ u8 filler49[15]; /*0x58*/ u16 win0h; /*0x5a*/ u16 win0v; /*0x5c*/ u16 winIn; -- cgit v1.2.3 From 17745475ccc35c99ac9b586a03bc39de0936bb2e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 29 Dec 2017 20:03:05 -0500 Subject: through sub_8103FA0 --- include/field_effect.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/field_effect.h b/include/field_effect.h index 9f71efba1..bb859074f 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -252,6 +252,7 @@ void FreeResourcesAndDestroySprite(struct Sprite *sprite); void MultiplyInvertedPaletteRGBComponents(u16, u8, u8, u8); void sub_80878A8(void); void sub_8087BA8(void); +void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b); extern s32 gFieldEffectArguments[8]; -- cgit v1.2.3 From 8eb7f3db6ee630fd801391ac3a3b574abfa7a08d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 29 Dec 2017 21:14:09 -0500 Subject: through sub_8104144 --- include/slot_machine.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index b04ee6377..81263e97e 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -28,7 +28,8 @@ struct SlotMachineEwramStruct { /*0x34*/ s16 unk34[3]; /*0x3A*/ u8 unk3A[3]; /*0x3D*/ u8 unk3D; - /*0x3E*/ u8 filler3E[6]; + /*0x3E*/ u8 unk3E; + /*0x3F*/ u8 filler3F[5]; /*0x44*/ u8 unk44[5]; /*0x49*/ u8 filler49[15]; /*0x58*/ u16 win0h; -- cgit v1.2.3 From cd2b75a677bf15756734222a9a57f0f9153fc918 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 30 Dec 2017 11:03:18 -0600 Subject: Sync battle_script changes with pokeemerald --- include/battle.h | 235 +--------------------------------- include/constants/battle_constants.h | 239 +++++++++++++++++++++++++++++++++++ 2 files changed, 240 insertions(+), 234 deletions(-) create mode 100644 include/constants/battle_constants.h (limited to 'include') diff --git a/include/battle.h b/include/battle.h index dd44e0172..f34260e16 100644 --- a/include/battle.h +++ b/include/battle.h @@ -2,240 +2,7 @@ #define GUARD_BATTLE_H #include "sprite.h" - -#define F_TARGET_SELECTED_POKEMON 0 -#define F_TARGET_SPECIAL (1 << 0) -#define F_TARGET_UNK2 (1 << 1) -#define F_TARGET_RANDOM (1 << 2) -#define F_TARGET_BOTH_ENEMIES (1 << 3) -#define F_TARGET_USER (1 << 4) -#define F_TARGET_ALL_EXCEPT_USER (1 << 5) -#define F_TARGET_ENEMY_SIDE (1 << 6) - -#define F_MAKES_CONTACT (1 << 0) -#define F_AFFECTED_BY_PROTECT (1 << 1) -#define F_AFFECTED_BY_MAGIC_COAT (1 << 2) -#define F_AFFECTED_BY_SNATCH (1 << 3) -#define F_MIRROR_MOVE_COMPATIBLE (1 << 4) -#define F_AFFECTED_BY_KINGS_ROCK (1 << 5) - -#define BATTLE_TYPE_DOUBLE 0x0001 -#define BATTLE_TYPE_LINK 0x0002 -#define BATTLE_TYPE_WILD 0x0004 -#define BATTLE_TYPE_TRAINER 0x0008 -#define BATTLE_TYPE_FIRST_BATTLE 0x0010 -#define BATTLE_TYPE_20 0x0020 -#define BATTLE_TYPE_MULTI 0x0040 -#define BATTLE_TYPE_SAFARI 0x0080 -#define BATTLE_TYPE_BATTLE_TOWER 0x0100 -#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200 -#define BATTLE_TYPE_ROAMER 0x0400 -#define BATTLE_TYPE_EREADER_TRAINER 0x0800 -#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000 -#define BATTLE_TYPE_LEGENDARY 0x2000 -#define BATTLE_TYPE_REGI 0x4000 - -#define BATTLE_TYPE_LINK_DOUBLE (BATTLE_TYPE_MULTI | BATTLE_TYPE_TRAINER | BATTLE_TYPE_LINK | BATTLE_TYPE_DOUBLE) - -#define BATTLE_WON 0x1 -#define BATTLE_LOST 0x2 -#define BATTLE_DREW 0x3 -#define BATTLE_RAN 0x4 -#define BATTLE_PLAYER_TELEPORTED 0x5 -#define BATTLE_POKE_FLED 0x6 -#define BATTLE_CAUGHT 0x7 -#define BATTLE_OPPONENT_TELEPORTED 0xA - -#define AI_ACTION_DONE 0x0001 -#define AI_ACTION_FLEE 0x0002 -#define AI_ACTION_WATCH 0x0004 -#define AI_ACTION_DO_NOT_ATTACK 0x0008 -#define AI_ACTION_UNK5 0x0010 -#define AI_ACTION_UNK6 0x0020 -#define AI_ACTION_UNK7 0x0040 -#define AI_ACTION_UNK8 0x0080 - -#define STATUS_SLEEP 0x7 -#define STATUS_POISON 0x8 -#define STATUS_BURN 0x10 -#define STATUS_FREEZE 0x20 -#define STATUS_PARALYSIS 0x40 -#define STATUS_TOXIC_POISON 0x80 -#define STATUS_TOXIC_COUNTER 0xF00 - -#define STATUS_PSN_ANY ((STATUS_POISON | STATUS_TOXIC_POISON)) -#define STATUS_ANY ((STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON)) - -#define STATUS2_CONFUSION 0x00000007 -#define STATUS2_FLINCHED 0x00000008 -#define STATUS2_UPROAR 0x00000070 -#define STATUS2_BIDE 0x00000300 //two bits 0x100 0x200 -#define STATUS2_LOCK_CONFUSE 0x00000C00 -#define STATUS2_MULTIPLETURNS 0x00001000 -#define STATUS2_WRAPPED 0x0000E000 -#define STATUS2_INFATUATION 0x000F0000 -#define STATUS2_FOCUS_ENERGY 0x00100000 -#define STATUS2_TRANSFORMED 0x00200000 -#define STATUS2_RECHARGE 0x00400000 -#define STATUS2_RAGE 0x00800000 -#define STATUS2_SUBSTITUTE 0x01000000 -#define STATUS2_DESTINY_BOND 0x02000000 -#define STATUS2_ESCAPE_PREVENTION 0x04000000 -#define STATUS2_NIGHTMARE 0x08000000 -#define STATUS2_CURSED 0x10000000 -#define STATUS2_FORESIGHT 0x20000000 -#define STATUS2_DEFENSE_CURL 0x40000000 -#define STATUS2_TORMENT 0x80000000 - -#define STATUS3_LEECHSEED_BANK 0x3 -#define STATUS3_LEECHSEED 0x4 -#define STATUS3_ALWAYS_HITS 0x18 //two bits -#define STATUS3_PERISH_SONG 0x20 -#define STATUS3_ON_AIR 0x40 -#define STATUS3_UNDERGROUND 0x80 -#define STATUS3_MINIMIZED 0x100 -#define STATUS3_ROOTED 0x400 -#define STATUS3_CHARGED_UP 0x200 -#define STATUS3_YAWN 0x1800 //two bits -#define STATUS3_IMPRISIONED 0x2000 -#define STATUS3_GRUDGE 0x4000 -#define STATUS3_CANT_SCORE_A_CRIT 0x8000 -#define STATUS3_MUDSPORT 0x10000 -#define STATUS3_WATERSPORT 0x20000 -#define STATUS3_UNDERWATER 0x40000 -#define STATUS3_INTIMIDATE_POKES 0x80000 -#define STATUS3_TRACE 0x100000 - -#define STATUS3_SEMI_INVULNERABLE ((STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER)) - -#define HITMARKER_x20 0x00000020 -#define HITMARKER_DESTINYBOND 0x00000040 -#define HITMARKER_NO_ANIMATIONS 0x00000080 -#define HITMARKER_IGNORE_SUBSTITUTE 0x00000100 -#define HITMARKER_NO_ATTACKSTRING 0x00000200 -#define HITMARKER_ATTACKSTRING_PRINTED 0x00000400 -#define HITMARKER_NO_PPDEDUCT 0x00000800 -#define HITMARKER_PURSUIT_TRAP 0x00001000 -#define HITMARKER_IGNORE_SAFEGUARD 0x00002000 -#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000 -#define HITMARKER_IGNORE_ON_AIR 0x00010000 -#define HITMARKER_IGNORE_UNDERGROUND 0x00020000 -#define HITMARKER_IGNORE_UNDERWATER 0x00040000 -#define HITMARKER_UNABLE_TO_USE_MOVE 0x00080000 -#define HITMARKER_x100000 0x00100000 -#define HITMARKER_x200000 0x00200000 -#define HITMARKER_x400000 0x00400000 -#define HITMARKER_x800000 0x00800000 -#define HITMARKER_GRUDGE 0x01000000 -#define HITMARKER_OBEYS 0x02000000 -#define HITMARKER_x8000000 0x08000000 -#define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C)) -#define HITMARKER_UNK(bank) ((0x10000000 << bank)) - -#define SIDE_STATUS_REFLECT (1 << 0) -#define SIDE_STATUS_LIGHTSCREEN (1 << 1) -#define SIDE_STATUS_X4 (1 << 2) -#define SIDE_STATUS_SPIKES (1 << 4) -#define SIDE_STATUS_SAFEGUARD (1 << 5) -#define SIDE_STATUS_FUTUREATTACK (1 << 6) -#define SIDE_STATUS_MIST (1 << 8) -#define SIDE_STATUS_SPIKES_DAMAGED (1 << 9) - -#define ABILITYEFFECT_ON_SWITCHIN 0x0 -#define ABILITYEFFECT_ENDTURN 0x1 -#define ABILITYEFFECT_MOVES_BLOCK 0x2 -#define ABILITYEFFECT_ABSORBING 0x3 -#define ABILITYEFFECT_CONTACT 0x4 -#define ABILITYEFFECT_IMMUNITY 0x5 -#define ABILITYEFFECT_FORECAST 0x6 -#define ABILITYEFFECT_SYNCHRONIZE 0x7 -#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8 -#define ABILITYEFFECT_INTIMIDATE1 0x9 -#define ABILITYEFFECT_INTIMIDATE2 0xA -#define ABILITYEFFECT_TRACE 0xB -#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC -#define ABILITYEFFECT_CHECK_BANK_SIDE 0xD -#define ABILITYEFFECT_FIELD_SPORT 0xE -#define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK 0xF -#define ABILITYEFFECT_COUNT_OTHER_SIZE 0x10 -#define ABILITYEFFECT_COUNT_BANK_SIDE 0x11 -#define ABILITYEFFECT_COUNT_ON_FIELD 0x12 -#define ABILITYEFFECT_CHECK_ON_FIELD 0x13 - -#define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0))) - -#define MOVESTATUS_MISSED (1 << 0) -#define MOVESTATUS_SUPEREFFECTIVE (1 << 1) -#define MOVESTATUS_NOTVERYEFFECTIVE (1 << 2) -#define MOVESTATUS_NOTAFFECTED (1 << 3) -#define MOVESTATUS_ONEHITKO (1 << 4) -#define MOVESTATUS_FAILED (1 << 5) -#define MOVESTATUS_ENDURED (1 << 6) -#define MOVESTATUS_HUNGON (1 << 7) - -#define MOVESTATUS_NOEFFECT ((MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED)) - -#define MAX_TRAINER_ITEMS 4 -#define MAX_MON_MOVES 4 -#define MAX_BANKS_BATTLE 4 - -#define WEATHER_RAIN_TEMPORARY (1 << 0) -#define WEATHER_RAIN_DOWNPOUR (1 << 1) -#define WEATHER_RAIN_PERMANENT (1 << 2) -#define WEATHER_RAIN_ANY ((WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT)) -#define WEATHER_SANDSTORM_TEMPORARY (1 << 3) -#define WEATHER_SANDSTORM_PERMANENT (1 << 4) -#define WEATHER_SANDSTORM_ANY ((WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT)) -#define WEATHER_SUN_TEMPORARY (1 << 5) -#define WEATHER_SUN_PERMANENT (1 << 6) -#define WEATHER_SUN_ANY ((WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT)) -#define WEATHER_HAIL (1 << 7) - -// status animation table -#define B_ANIM_STATUS_PSN 0x0 -#define B_ANIM_STATUS_CONFUSION 0x1 -#define B_ANIM_STATUS_BRN 0x2 -#define B_ANIM_STATUS_INFATUATION 0x3 -#define B_ANIM_STATUS_SLP 0x4 -#define B_ANIM_STATUS_PRZ 0x5 -#define B_ANIM_STATUS_FRZ 0x6 -#define B_ANIM_STATUS_CURSED 0x7 -#define B_ANIM_STATUS_NIGHTMARE 0x8 -#define B_ANIM_STATUS_WRAPPED 0x9 - -// general animation table -#define B_ANIM_CASTFORM_CHANGE 0x0 -#define B_ANIM_STATS_CHANGE 0x1 -#define B_ANIM_SUBSTITUTE_FADE 0x2 -#define B_ANIM_SUBSTITUTE_APPEAR 0x3 -#define B_ANIM_POKEBLOCK_THROW 0x4 -#define B_ANIM_ITEM_KNOCKOFF 0x5 -#define B_ANIM_TURN_TRAP 0x6 -#define B_ANIM_ITEM_EFFECT 0x7 -#define B_ANIM_SMOKEBALL_ESCAPE 0x8 -#define B_ANIM_HANGED_ON 0x9 -#define B_ANIM_RAIN_CONTINUES 0xA -#define B_ANIM_SUN_CONTINUES 0xB -#define B_ANIM_SANDSTORM_CONTINUES 0xC -#define B_ANIM_HAIL_CONTINUES 0xD -#define B_ANIM_LEECH_SEED_DRAIN 0xE -#define B_ANIM_MON_HIT 0xF -#define B_ANIM_ITEM_STEAL 0x10 -#define B_ANIM_SNATCH_MOVE 0x11 -#define B_ANIM_FUTURE_SIGHT_HIT 0x12 -#define B_ANIM_DOOM_DESIRE_HIT 0x13 -#define B_ANIM_FOCUS_PUNCH_SET_UP 0x14 -#define B_ANIM_INGRAIN_HEAL 0x15 -#define B_ANIM_WISH_HEAL 0x16 - -// special animation table -#define B_ANIM_LVL_UP 0x0 -#define B_ANIM_SWITCH_OUT_PLAYER_MON 0x1 -#define B_ANIM_SWITCH_OUT_OPPONENT_MON 0x2 -#define B_ANIM_BALL_THROW 0x3 -#define B_ANIM_SAFARI_BALL_THROW 0x4 -#define B_ANIM_SUBSTITUTE_TO_MON 0x5 -#define B_ANIM_MON_TO_SUBSTITUTE 0x6 +#include "constants/battle_constants.h" enum { diff --git a/include/constants/battle_constants.h b/include/constants/battle_constants.h new file mode 100644 index 000000000..c446b916b --- /dev/null +++ b/include/constants/battle_constants.h @@ -0,0 +1,239 @@ +#ifndef GUARD_CONSTANTS_BATTLE_CONSTANTS_H +#define GUARD_CONSTANTS_BATTLE_CONSTANTS_H + +#define STATUS_SLEEP 0x7 +#define STATUS_POISON 0x8 +#define STATUS_BURN 0x10 +#define STATUS_FREEZE 0x20 +#define STATUS_PARALYSIS 0x40 +#define STATUS_TOXIC_POISON 0x80 +#define STATUS_TOXIC_COUNTER 0xF00 + +#define STATUS_PSN_ANY ((STATUS_POISON | STATUS_TOXIC_POISON)) +#define STATUS_ANY ((STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON)) + +#define STATUS2_CONFUSION 0x00000007 +#define STATUS2_FLINCHED 0x00000008 +#define STATUS2_UPROAR 0x00000070 +#define STATUS2_BIDE 0x00000300 //two bits 0x100 0x200 +#define STATUS2_LOCK_CONFUSE 0x00000C00 +#define STATUS2_MULTIPLETURNS 0x00001000 +#define STATUS2_WRAPPED 0x0000E000 +#define STATUS2_INFATUATION 0x000F0000 +#define STATUS2_FOCUS_ENERGY 0x00100000 +#define STATUS2_TRANSFORMED 0x00200000 +#define STATUS2_RECHARGE 0x00400000 +#define STATUS2_RAGE 0x00800000 +#define STATUS2_SUBSTITUTE 0x01000000 +#define STATUS2_DESTINY_BOND 0x02000000 +#define STATUS2_ESCAPE_PREVENTION 0x04000000 +#define STATUS2_NIGHTMARE 0x08000000 +#define STATUS2_CURSED 0x10000000 +#define STATUS2_FORESIGHT 0x20000000 +#define STATUS2_DEFENSE_CURL 0x40000000 +#define STATUS2_TORMENT 0x80000000 + +#define STATUS3_LEECHSEED_BANK 0x3 +#define STATUS3_LEECHSEED 0x4 +#define STATUS3_ALWAYS_HITS 0x18 //two bits +#define STATUS3_PERISH_SONG 0x20 +#define STATUS3_ON_AIR 0x40 +#define STATUS3_UNDERGROUND 0x80 +#define STATUS3_MINIMIZED 0x100 +#define STATUS3_ROOTED 0x400 +#define STATUS3_CHARGED_UP 0x200 +#define STATUS3_YAWN 0x1800 //two bits +#define STATUS3_IMPRISIONED 0x2000 +#define STATUS3_GRUDGE 0x4000 +#define STATUS3_CANT_SCORE_A_CRIT 0x8000 +#define STATUS3_MUDSPORT 0x10000 +#define STATUS3_WATERSPORT 0x20000 +#define STATUS3_UNDERWATER 0x40000 +#define STATUS3_INTIMIDATE_POKES 0x80000 +#define STATUS3_TRACE 0x100000 + +#define STATUS3_SEMI_INVULNERABLE ((STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER)) + +#define HITMARKER_x10 0x00000010 +#define HITMARKER_x20 0x00000020 +#define HITMARKER_DESTINYBOND 0x00000040 +#define HITMARKER_NO_ANIMATIONS 0x00000080 +#define HITMARKER_IGNORE_SUBSTITUTE 0x00000100 +#define HITMARKER_NO_ATTACKSTRING 0x00000200 +#define HITMARKER_ATTACKSTRING_PRINTED 0x00000400 +#define HITMARKER_NO_PPDEDUCT 0x00000800 +#define HITMARKER_PURSUIT_TRAP 0x00001000 +#define HITMARKER_IGNORE_SAFEGUARD 0x00002000 +#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000 +#define HITMARKER_IGNORE_ON_AIR 0x00010000 +#define HITMARKER_IGNORE_UNDERGROUND 0x00020000 +#define HITMARKER_IGNORE_UNDERWATER 0x00040000 +#define HITMARKER_UNABLE_TO_USE_MOVE 0x00080000 +#define HITMARKER_x100000 0x00100000 +#define HITMARKER_x200000 0x00200000 +#define HITMARKER_x400000 0x00400000 +#define HITMARKER_x800000 0x00800000 +#define HITMARKER_GRUDGE 0x01000000 +#define HITMARKER_OBEYS 0x02000000 +#define HITMARKER_x8000000 0x08000000 +#define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C)) +#define HITMARKER_UNK(bank) ((0x10000000 << bank)) + +#define MOVESTATUS_MISSED (1 << 0) +#define MOVESTATUS_SUPEREFFECTIVE (1 << 1) +#define MOVESTATUS_NOTVERYEFFECTIVE (1 << 2) +#define MOVESTATUS_NOTAFFECTED (1 << 3) +#define MOVESTATUS_ONEHITKO (1 << 4) +#define MOVESTATUS_FAILED (1 << 5) +#define MOVESTATUS_ENDURED (1 << 6) +#define MOVESTATUS_HUNGON (1 << 7) + +#define BATTLE_TYPE_DOUBLE 0x0001 +#define BATTLE_TYPE_LINK 0x0002 +#define BATTLE_TYPE_WILD 0x0004 +#define BATTLE_TYPE_TRAINER 0x0008 +#define BATTLE_TYPE_FIRST_BATTLE 0x0010 +#define BATTLE_TYPE_20 0x0020 +#define BATTLE_TYPE_MULTI 0x0040 +#define BATTLE_TYPE_SAFARI 0x0080 +#define BATTLE_TYPE_BATTLE_TOWER 0x0100 +#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200 +#define BATTLE_TYPE_ROAMER 0x0400 +#define BATTLE_TYPE_EREADER_TRAINER 0x0800 +#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000 +#define BATTLE_TYPE_LEGENDARY 0x2000 +#define BATTLE_TYPE_REGI 0x4000 +#define BATTLE_TYPE_LINK_DOUBLE (BATTLE_TYPE_MULTI | BATTLE_TYPE_TRAINER | BATTLE_TYPE_LINK | BATTLE_TYPE_DOUBLE) + +#define BATTLE_WON 0x1 +#define BATTLE_LOST 0x2 +#define BATTLE_DREW 0x3 +#define BATTLE_RAN 0x4 +#define BATTLE_PLAYER_TELEPORTED 0x5 +#define BATTLE_POKE_FLED 0x6 +#define BATTLE_CAUGHT 0x7 +#define BATTLE_OUT_OF_BALLS 0x8 +#define BATTLE_OPPONENT_TELEPORTED 0xA + +#define SIDE_STATUS_REFLECT (1 << 0) +#define SIDE_STATUS_LIGHTSCREEN (1 << 1) +#define SIDE_STATUS_X4 (1 << 2) +#define SIDE_STATUS_SPIKES (1 << 4) +#define SIDE_STATUS_SAFEGUARD (1 << 5) +#define SIDE_STATUS_FUTUREATTACK (1 << 6) +#define SIDE_STATUS_MIST (1 << 8) +#define SIDE_STATUS_SPIKES_DAMAGED (1 << 9) + +#define F_TARGET_SELECTED_POKEMON 0 +#define F_TARGET_SPECIAL (1 << 0) +#define F_TARGET_UNK2 (1 << 1) +#define F_TARGET_RANDOM (1 << 2) +#define F_TARGET_BOTH_ENEMIES (1 << 3) +#define F_TARGET_USER (1 << 4) +#define F_TARGET_ALL_EXCEPT_USER (1 << 5) +#define F_TARGET_ENEMY_SIDE (1 << 6) + +#define F_MAKES_CONTACT (1 << 0) +#define F_AFFECTED_BY_PROTECT (1 << 1) +#define F_AFFECTED_BY_MAGIC_COAT (1 << 2) +#define F_AFFECTED_BY_SNATCH (1 << 3) +#define F_MIRROR_MOVE_COMPATIBLE (1 << 4) +#define F_AFFECTED_BY_KINGS_ROCK (1 << 5) + +#define AI_ACTION_DONE 0x0001 +#define AI_ACTION_FLEE 0x0002 +#define AI_ACTION_WATCH 0x0004 +#define AI_ACTION_DO_NOT_ATTACK 0x0008 +#define AI_ACTION_UNK5 0x0010 +#define AI_ACTION_UNK6 0x0020 +#define AI_ACTION_UNK7 0x0040 +#define AI_ACTION_UNK8 0x0080 + +#define ABILITYEFFECT_ON_SWITCHIN 0x0 +#define ABILITYEFFECT_ENDTURN 0x1 +#define ABILITYEFFECT_MOVES_BLOCK 0x2 +#define ABILITYEFFECT_ABSORBING 0x3 +#define ABILITYEFFECT_CONTACT 0x4 +#define ABILITYEFFECT_IMMUNITY 0x5 +#define ABILITYEFFECT_FORECAST 0x6 +#define ABILITYEFFECT_SYNCHRONIZE 0x7 +#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8 +#define ABILITYEFFECT_INTIMIDATE1 0x9 +#define ABILITYEFFECT_INTIMIDATE2 0xA +#define ABILITYEFFECT_TRACE 0xB +#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC +#define ABILITYEFFECT_CHECK_BANK_SIDE 0xD +#define ABILITYEFFECT_FIELD_SPORT 0xE +#define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK 0xF +#define ABILITYEFFECT_COUNT_OTHER_SIZE 0x10 +#define ABILITYEFFECT_COUNT_BANK_SIDE 0x11 +#define ABILITYEFFECT_COUNT_ON_FIELD 0x12 +#define ABILITYEFFECT_CHECK_ON_FIELD 0x13 + +#define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0))) + +#define MOVESTATUS_NOEFFECT ((MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED)) + +#define MAX_TRAINER_ITEMS 4 +#define MAX_MON_MOVES 4 +#define MAX_BANKS_BATTLE 4 + +#define WEATHER_RAIN_TEMPORARY (1 << 0) +#define WEATHER_RAIN_DOWNPOUR (1 << 1) +#define WEATHER_RAIN_PERMANENT (1 << 2) +#define WEATHER_RAIN_ANY ((WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT)) +#define WEATHER_SANDSTORM_TEMPORARY (1 << 3) +#define WEATHER_SANDSTORM_PERMANENT (1 << 4) +#define WEATHER_SANDSTORM_ANY ((WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT)) +#define WEATHER_SUN_TEMPORARY (1 << 5) +#define WEATHER_SUN_PERMANENT (1 << 6) +#define WEATHER_SUN_ANY ((WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT)) +#define WEATHER_HAIL (1 << 7) + +// status animation table +#define B_ANIM_STATUS_PSN 0x0 +#define B_ANIM_STATUS_CONFUSION 0x1 +#define B_ANIM_STATUS_BRN 0x2 +#define B_ANIM_STATUS_INFATUATION 0x3 +#define B_ANIM_STATUS_SLP 0x4 +#define B_ANIM_STATUS_PRZ 0x5 +#define B_ANIM_STATUS_FRZ 0x6 +#define B_ANIM_STATUS_CURSED 0x7 +#define B_ANIM_STATUS_NIGHTMARE 0x8 +#define B_ANIM_STATUS_WRAPPED 0x9 + +// general animation table +#define B_ANIM_CASTFORM_CHANGE 0x0 +#define B_ANIM_STATS_CHANGE 0x1 +#define B_ANIM_SUBSTITUTE_FADE 0x2 +#define B_ANIM_SUBSTITUTE_APPEAR 0x3 +#define B_ANIM_POKEBLOCK_THROW 0x4 +#define B_ANIM_ITEM_KNOCKOFF 0x5 +#define B_ANIM_TURN_TRAP 0x6 +#define B_ANIM_ITEM_EFFECT 0x7 +#define B_ANIM_SMOKEBALL_ESCAPE 0x8 +#define B_ANIM_HANGED_ON 0x9 +#define B_ANIM_RAIN_CONTINUES 0xA +#define B_ANIM_SUN_CONTINUES 0xB +#define B_ANIM_SANDSTORM_CONTINUES 0xC +#define B_ANIM_HAIL_CONTINUES 0xD +#define B_ANIM_LEECH_SEED_DRAIN 0xE +#define B_ANIM_MON_HIT 0xF +#define B_ANIM_ITEM_STEAL 0x10 +#define B_ANIM_SNATCH_MOVE 0x11 +#define B_ANIM_FUTURE_SIGHT_HIT 0x12 +#define B_ANIM_DOOM_DESIRE_HIT 0x13 +#define B_ANIM_FOCUS_PUNCH_SET_UP 0x14 +#define B_ANIM_INGRAIN_HEAL 0x15 +#define B_ANIM_WISH_HEAL 0x16 + +// special animation table +#define B_ANIM_LVL_UP 0x0 +#define B_ANIM_SWITCH_OUT_PLAYER_MON 0x1 +#define B_ANIM_SWITCH_OUT_OPPONENT_MON 0x2 +#define B_ANIM_BALL_THROW 0x3 +#define B_ANIM_SAFARI_BALL_THROW 0x4 +#define B_ANIM_SUBSTITUTE_TO_MON 0x5 +#define B_ANIM_MON_TO_SUBSTITUTE 0x6 + +#endif // GUARD_CONSTANTS_BATTLE_CONSTANTS_H -- cgit v1.2.3 From ea3a851403a675c5b36daa77270aed0f8a3a5238 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 30 Dec 2017 11:59:31 -0600 Subject: Sync gAnimDisableStructPtr and gTransformedPersonalities with pokeemerald --- include/battle.h | 2 +- include/battle_anim.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index f34260e16..0881cf82c 100644 --- a/include/battle.h +++ b/include/battle.h @@ -306,7 +306,7 @@ struct BattleStruct /* 0x2000000 */ struct DisableStruct { - /*0x00*/ u32 unk0; + /*0x00*/ u32 transformedMonPersonality; /*0x04*/ u16 disabledMove; /*0x06*/ u16 encoredMove; /*0x08*/ u8 protectUses; diff --git a/include/battle_anim.h b/include/battle_anim.h index 2db27599f..d456950f6 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -46,6 +46,7 @@ extern void (*gAnimScriptCallback)(void); extern u8 gAnimScriptActive; extern u8 gAnimFriendship; extern u8 gAnimMoveTurn; +extern struct DisableStruct *gAnimDisableStructPtr; void DoMoveAnim(u16 move); void LaunchBattleAnimation(const u8 *const moveAnims[], u16 b, u8 c); -- cgit v1.2.3 From 13b2657c49b60dcf5d851a63346801232f9ee832 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 30 Dec 2017 13:31:22 -0500 Subject: through sub_8104498; decompile some data --- include/global.h | 2 +- include/slot_machine.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index a4e71852c..2ea69a1e1 100644 --- a/include/global.h +++ b/include/global.h @@ -5,7 +5,7 @@ #include "config.h" // IDE support -#ifdef __APPLE__ +#if defined(__APPLE__) || defined(__CYGWIN__) #define _(x) x #define __(x) x #define INCBIN_U8 {0} diff --git a/include/slot_machine.h b/include/slot_machine.h index 81263e97e..a7a1fed44 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -29,7 +29,8 @@ struct SlotMachineEwramStruct { /*0x3A*/ u8 unk3A[3]; /*0x3D*/ u8 unk3D; /*0x3E*/ u8 unk3E; - /*0x3F*/ u8 filler3F[5]; + /*0x3F*/ u8 unk3F; + /*0x40*/ u8 filler40[4]; /*0x44*/ u8 unk44[5]; /*0x49*/ u8 filler49[15]; /*0x58*/ u16 win0h; -- cgit v1.2.3 From b628d68bae049d3798142acbf4182b121e51a232 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 30 Dec 2017 16:09:07 -0500 Subject: through sub_81049F8 --- include/slot_machine.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index a7a1fed44..004538b14 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -20,7 +20,7 @@ struct SlotMachineEwramStruct { /*0x14*/ s16 unk14; /*0x16*/ s16 unk16; /*0x18*/ s16 unk18; - /*0x1A*/ u16 unk1A; + /*0x1A*/ s16 unk1A; /*0x1C*/ s16 unk1C[3]; /*0x22*/ u16 unk22[3]; /*0x28*/ s16 unk28[3]; @@ -32,7 +32,9 @@ struct SlotMachineEwramStruct { /*0x3F*/ u8 unk3F; /*0x40*/ u8 filler40[4]; /*0x44*/ u8 unk44[5]; - /*0x49*/ u8 filler49[15]; + /*0x49*/ u8 filler49[5]; + /*0x4E*/ u8 unk4E; + /*0x4F*/ u8 filler4F[9]; /*0x58*/ u16 win0h; /*0x5a*/ u16 win0v; /*0x5c*/ u16 winIn; -- cgit v1.2.3 From 26d22691dc88b3c9e61fa3612c46d3b24167d0eb Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 30 Dec 2017 23:20:35 -0500 Subject: through sub_810535C --- include/slot_machine.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index 004538b14..78744d0e4 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -30,9 +30,13 @@ struct SlotMachineEwramStruct { /*0x3D*/ u8 unk3D; /*0x3E*/ u8 unk3E; /*0x3F*/ u8 unk3F; - /*0x40*/ u8 filler40[4]; + /*0x40*/ u8 filler40[2]; + /*0x42*/ u8 unk42; + /*0x43*/ u8 unk43; /*0x44*/ u8 unk44[5]; - /*0x49*/ u8 filler49[5]; + /*0x49*/ u8 unk49; + /*0x4A*/ u8 unk4A; + /*0x49*/ u8 unk4B[3]; /*0x4E*/ u8 unk4E; /*0x4F*/ u8 filler4F[9]; /*0x58*/ u16 win0h; -- cgit v1.2.3 From c21bde059812ed521952512e4d800038e0e1deb7 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 30 Dec 2017 22:29:07 -0600 Subject: Remove redundant battle constants --- include/constants/battle_constants.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'include') diff --git a/include/constants/battle_constants.h b/include/constants/battle_constants.h index c446b916b..c61d54f76 100644 --- a/include/constants/battle_constants.h +++ b/include/constants/battle_constants.h @@ -124,14 +124,14 @@ #define SIDE_STATUS_MIST (1 << 8) #define SIDE_STATUS_SPIKES_DAMAGED (1 << 9) -#define F_TARGET_SELECTED_POKEMON 0 -#define F_TARGET_SPECIAL (1 << 0) -#define F_TARGET_UNK2 (1 << 1) -#define F_TARGET_RANDOM (1 << 2) -#define F_TARGET_BOTH_ENEMIES (1 << 3) -#define F_TARGET_USER (1 << 4) -#define F_TARGET_ALL_EXCEPT_USER (1 << 5) -#define F_TARGET_ENEMY_SIDE (1 << 6) +#define TARGET_SELECTED_POKEMON 0 +#define TARGET_SPECIAL (1 << 0) +#define TARGET_UNK2 (1 << 1) +#define TARGET_RANDOM (1 << 2) +#define TARGET_BOTH_ENEMIES (1 << 3) +#define TARGET_USER (1 << 4) +#define TARGET_ALL_EXCEPT_USER (1 << 5) +#define TARGET_ENEMY_SIDE (1 << 6) #define F_MAKES_CONTACT (1 << 0) #define F_AFFECTED_BY_PROTECT (1 << 1) -- cgit v1.2.3 From ba5e6c8a32c617f0d70e62968bf13023d1e1ff5e Mon Sep 17 00:00:00 2001 From: "Marco Willems (M17.1)" Date: Sun, 31 Dec 2017 13:06:30 +0100 Subject: disassembled fire.s --- include/rom_8077ABC.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h index 70bd6fe5a..70fd15e93 100644 --- a/include/rom_8077ABC.h +++ b/include/rom_8077ABC.h @@ -86,6 +86,7 @@ void sub_80785E4(struct Sprite *sprite); void sub_8078278(struct Sprite *sprite); void sub_8078C00(struct Sprite *sprite); void sub_8078114(struct Sprite *sprite); +void sub_8078174(struct Sprite *sprite); void sub_80793C4(struct Sprite *sprite); void sub_807A3FC(u8 slot, u8 a2, s16 *a3, s16 *a4); u8 sub_8079ED4(u8 slot); -- cgit v1.2.3 From a357c07d83a3b90adf0353501cbc0f84f6eeeddc Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 31 Dec 2017 19:58:37 -0500 Subject: through sub_8105554 --- include/slot_machine.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index 78744d0e4..882ec6d52 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -30,15 +30,15 @@ struct SlotMachineEwramStruct { /*0x3D*/ u8 unk3D; /*0x3E*/ u8 unk3E; /*0x3F*/ u8 unk3F; - /*0x40*/ u8 filler40[2]; + /*0x40*/ u8 unk40; + /*0x41*/ u8 unk41; /*0x42*/ u8 unk42; /*0x43*/ u8 unk43; /*0x44*/ u8 unk44[5]; - /*0x49*/ u8 unk49; - /*0x4A*/ u8 unk4A; + /*0x49*/ u8 unk49[2]; /*0x49*/ u8 unk4B[3]; - /*0x4E*/ u8 unk4E; - /*0x4F*/ u8 filler4F[9]; + /*0x4E*/ u8 unk4E[2]; + /*0x50*/ u8 filler50[8]; /*0x58*/ u16 win0h; /*0x5a*/ u16 win0v; /*0x5c*/ u16 winIn; -- cgit v1.2.3 From 39d2d1f37c62ffc458c82943fbfceb86959ef1a3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 31 Dec 2017 20:18:22 -0500 Subject: through sub_81056C0 --- include/slot_machine.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index 882ec6d52..7d7d8a24d 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -38,7 +38,8 @@ struct SlotMachineEwramStruct { /*0x49*/ u8 unk49[2]; /*0x49*/ u8 unk4B[3]; /*0x4E*/ u8 unk4E[2]; - /*0x50*/ u8 filler50[8]; + /*0x50*/ u8 unk50[2]; + /*0x52*/ u8 filler52[6]; /*0x58*/ u16 win0h; /*0x5a*/ u16 win0v; /*0x5c*/ u16 winIn; -- cgit v1.2.3 From 99c897b71582e942e47765837c936b5fd79bf569 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 31 Dec 2017 21:11:48 -0500 Subject: through sub_81059B8 --- include/slot_machine.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index 7d7d8a24d..34431a8ef 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -39,7 +39,8 @@ struct SlotMachineEwramStruct { /*0x49*/ u8 unk4B[3]; /*0x4E*/ u8 unk4E[2]; /*0x50*/ u8 unk50[2]; - /*0x52*/ u8 filler52[6]; + /*0x52*/ u8 unk52[2]; + /*0x54*/ u8 unk54[4]; /*0x58*/ u16 win0h; /*0x5a*/ u16 win0v; /*0x5c*/ u16 winIn; -- cgit v1.2.3 From f35549349e3c51003c124c74a8917b84a3f8e704 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 31 Dec 2017 21:45:59 -0500 Subject: through sub_8105BF8 --- include/sprite.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/sprite.h b/include/sprite.h index 1e989b6d5..37a318206 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -172,6 +172,8 @@ struct SpriteTemplate void (*callback)(struct Sprite *); }; +typedef void (*SpriteCallback)(struct Sprite *); + struct Sprite { /*0x00*/ struct OamData oam; @@ -180,7 +182,7 @@ struct Sprite /*0x10*/ const union AffineAnimCmd *const *affineAnims; /*0x14*/ const struct SpriteTemplate *template; /*0x18*/ const struct SubspriteTable *subspriteTables; - /*0x1C*/ void (*callback)(struct Sprite *); + /*0x1C*/ SpriteCallback callback; /*0x20*/ struct Coords16 pos1; /*0x24*/ struct Coords16 pos2; -- cgit v1.2.3 From 7f0ba304065a80d68b8610c4c8801839221677f6 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 31 Dec 2017 16:59:55 -0600 Subject: Port battle_setup names from pokeemerald --- include/battle_setup.h | 22 +++++++++------------- include/constants/battle_constants.h | 2 ++ include/secret_base.h | 2 +- 3 files changed, 12 insertions(+), 14 deletions(-) (limited to 'include') diff --git a/include/battle_setup.h b/include/battle_setup.h index 444ab5467..378a19b72 100644 --- a/include/battle_setup.h +++ b/include/battle_setup.h @@ -62,10 +62,10 @@ bool32 GetTrainerFlagFromScriptPointer(u8 *data); //void sub_808257C(void); //void unref_sub_8082590(void); // unused u8 HasTrainerAlreadyBeenFought(u16); -void trainer_flag_set(u16); -void trainer_flag_clear(u16); +void SetTrainerFlag(u16); +void ClearTrainerFlag(u16); void BattleSetup_StartTrainerBattle(void); -void sub_808260C(void); +void CB2_EndTrainerBattle(void); void do_choose_name_or_words_screen(void); //void ScrSpecial_StartTrainerEyeRematch(void); //void ScrSpecial_ShowTrainerIntroSpeech(void); @@ -74,10 +74,8 @@ u8 *BattleSetup_GetTrainerPostBattleScript(void); //void ScrSpecial_ShowTrainerNonBattlingSpeech(void); //void PlayTrainerEncounterMusic(void); //u8 *SanitizeString(u8 *str); -u8 *sub_808281C(void); -u8 *sub_8082830(void); +u8 *GetTrainerLoseText(void); //u8 *unref_sub_808286C(void); -u8 *sub_8082880(void); //s32 sub_8082894(const struct TrainerEyeTrainer *trainers, u16 trainerNum); //s32 sub_80828B8(const struct TrainerEyeTrainer *trainers, u16 trainerNum); //bool32 sub_80828FC(const struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum); @@ -89,14 +87,12 @@ u8 *sub_8082880(void); //void sub_8082AE4(const struct TrainerEyeTrainer *trainers, u16 trainerNum); //bool8 sub_8082B10(const struct TrainerEyeTrainer *trainers, u16 trainerNum); //bool32 sub_8082B44(void); -void sub_8082B78(void); +void IncrementRematchStepCounter(void); //bool32 sub_8082BA4(void); -void sub_8082BD0(u16, u16); -s32 sub_8082C0C(u16 mapGroup, u16 mapNum); -s32 unref_sub_8082C2C(u16 mapGroup, u16 mapNum); -u16 sub_8082C4C(u16 a1); -//s32 sub_8082C68(void); +void TryUpdateRandomTrainerRematches(u16, u16); +s32 DoesSomeoneWantRematchIn(u16 mapGroup, u16 mapNum); +s32 IsRematchTrainerIn(u16 mapGroup, u16 mapNum); +u16 GetRematchTrainerId(u16 a1); //u8 ScrSpecial_GetTrainerEyeRematchFlag(void); -void sub_8082CB8(void); #endif // GUARD_BATTLE_SETUP_H diff --git a/include/constants/battle_constants.h b/include/constants/battle_constants.h index c61d54f76..f7efb0dfd 100644 --- a/include/constants/battle_constants.h +++ b/include/constants/battle_constants.h @@ -105,6 +105,8 @@ #define BATTLE_TYPE_REGI 0x4000 #define BATTLE_TYPE_LINK_DOUBLE (BATTLE_TYPE_MULTI | BATTLE_TYPE_TRAINER | BATTLE_TYPE_LINK | BATTLE_TYPE_DOUBLE) +#define SECRET_BASE_OPPONENT 0x400 + #define BATTLE_WON 0x1 #define BATTLE_LOST 0x2 #define BATTLE_DREW 0x3 diff --git a/include/secret_base.h b/include/secret_base.h index abe5d781f..a3fa22c05 100644 --- a/include/secret_base.h +++ b/include/secret_base.h @@ -17,7 +17,7 @@ u8 sub_80BC050(); u8 *GetSecretBaseMapName(u8 *dest); void sub_80BC300(); u8 sub_80BCCA4(u8 secretBaseIndex); -const u8 *sub_80BCCE8(void); +const u8 *GetSecretBaseTrainerLoseText(void); void sub_80BCF1C(u8 taskId); void sub_80BD674(void *playerRecords, u32 size, u8 c); -- cgit v1.2.3 From c8d963b26afbe410bc1946bad911a11a7197c45e Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Mon, 1 Jan 2018 08:44:43 -0600 Subject: Label DoPokeNews and PokeNews struct --- include/global.h | 10 +++++----- include/tv.h | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index a4e71852c..54a0b8caf 100644 --- a/include/global.h +++ b/include/global.h @@ -524,11 +524,11 @@ union MauvilleMan u8 filler[0x40]; // needed to pad out the struct }; -struct UnknownSaveStruct2ABC +struct PokeNews { - u8 val0; - u8 val1; - u16 val2; + u8 kind; + u8 state; + u16 days; }; struct GabbyAndTyData @@ -671,7 +671,7 @@ struct SaveBlock1 /* 0x02025734 */ /*0x272C*/ u8 decorCushion[10]; /*0x2736*/ u8 padding_2736[2]; /*0x2738*/ TVShow tvShows[25]; - /*0x2ABC*/ struct UnknownSaveStruct2ABC unknown_2ABC[16]; + /*0x2ABC*/ struct PokeNews pokeNews[16]; /*0x2AFC*/ u16 outbreakPokemonSpecies; /*0x2AFE*/ u8 outbreakLocationMapNum; /*0x2AFF*/ u8 outbreakLocationMapGroup; diff --git a/include/tv.h b/include/tv.h index c2158ece0..91b871f71 100644 --- a/include/tv.h +++ b/include/tv.h @@ -43,7 +43,7 @@ void sub_80BEA5C(u16); void sub_80BEA88(void); void sub_80BEA88(void); void sub_80BEB20(void); -int sub_80BEBC8(struct UnknownSaveStruct2ABC *arg0); +int sub_80BEBC8(struct PokeNews *arg0); extern void sub_80BEBF4(void); void sub_80BEC10(u8); bool8 GetPriceReduction(u8); @@ -80,7 +80,7 @@ void sub_80C01D4(void); void sub_80C03A8(u8 showidx); void sub_80C03C8(u16 species, u8 showidx); void sub_80C0408(void); -bool8 sub_80C06E8(struct UnknownSaveStruct2ABC *arg0, struct UnknownSaveStruct2ABC *arg1, s8 arg2); +bool8 sub_80C06E8(struct PokeNews *arg0, struct PokeNews *arg1, s8 arg2); void TVShowConvertInternationalString(u8 *, u8 *, u8); void DoTVShowTheNameRaterShow(void); void DoTVShowPokemonTodaySuccessfulCapture(void); -- cgit v1.2.3 From 2da819cabb04e623dfb3830ad57ac6eed91efc65 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Mon, 1 Jan 2018 09:34:13 -0600 Subject: Label TV specials, and port over some TV changes from pokeemerald --- include/global.h | 58 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index 54a0b8caf..4ae5de873 100644 --- a/include/global.h +++ b/include/global.h @@ -241,8 +241,8 @@ struct EasyChatPair struct TVShowCommon { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u8 pad02[20]; /*0x16*/ u16 var16[3]; /*0x1C*/ u8 srcTrainerId3Lo; @@ -257,8 +257,8 @@ struct TVShowCommon struct TVShowFanClubLetter { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u16 species; /*0x04*/ u16 pad04[6]; /*0x10*/ u8 playerName[8]; @@ -267,8 +267,8 @@ struct TVShowFanClubLetter struct TVShowRecentHappenings { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u16 var02; /*0x04*/ u16 var04[6]; /*0x10*/ u8 playerName[8]; @@ -278,8 +278,8 @@ struct TVShowRecentHappenings struct TVShowFanclubOpinions { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u16 var02; /*0x04*/ u8 var04A:4; /*0x04*/ u8 var04B:4; @@ -294,16 +294,16 @@ struct TVShowFanclubOpinions struct TVShowUnknownType04 { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u8 pad02[4]; /*0x06*/ u16 var06; }; struct TVShowNameRaterShow { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u16 species; /*0x04*/ u8 pokemonName[11]; /*0x0F*/ u8 trainerName[11]; @@ -316,8 +316,8 @@ struct TVShowNameRaterShow struct TVShowBravoTrainerPokemonProfiles { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u16 species; /*0x04*/ u16 var04[2]; /*0x08*/ u8 pokemonNickname[11]; @@ -333,8 +333,8 @@ struct TVShowBravoTrainerPokemonProfiles struct TVShowBravoTrainerBattleTowerSpotlight { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u8 trainerName[8]; /*0x0A*/ u16 species; /*0x0C*/ u8 pokemonName[8]; @@ -349,8 +349,8 @@ struct TVShowBravoTrainerBattleTowerSpotlight struct TVShowPokemonToday { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u8 language; /*0x03*/ u8 language2; /*0x04*/ u8 nickname[11]; @@ -362,8 +362,8 @@ struct TVShowPokemonToday struct TVShowSmartShopper { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u8 priceReduced; /*0x03*/ u8 language; /*0x04*/ u8 pad04[2]; @@ -375,8 +375,8 @@ struct TVShowSmartShopper struct TVShowPokemonTodayFailed { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u8 language; /*0x03*/ u8 pad03[9]; /*0x0c*/ u16 species; @@ -389,8 +389,8 @@ struct TVShowPokemonTodayFailed struct TVShowPokemonAngler { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u8 var02; /*0x03*/ u8 var03; /*0x04*/ u16 var04; @@ -401,8 +401,8 @@ struct TVShowPokemonAngler struct TVShowWorldOfMasters { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u16 var02; /*0x04*/ u16 var04; /*0x06*/ u16 var06; @@ -415,8 +415,8 @@ struct TVShowWorldOfMasters struct TVShowMassOutbreak { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u8 var02; /*0x03*/ u8 var03; /*0x04*/ u16 moves[4]; @@ -428,7 +428,7 @@ struct TVShowMassOutbreak /*0x13*/ u8 probability; /*0x14*/ u8 level; /*0x15*/ u8 var15; - /*0x16*/ u16 var16; + /*0x16*/ u16 daysLeft; /*0x18*/ u8 language; u8 pad19[11]; }; -- cgit v1.2.3 From 7158286302493c6fe34068926b351292af2cb6a9 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Mon, 1 Jan 2018 13:59:39 -0600 Subject: Label a bunch more specials --- include/battle_setup.h | 1 - include/learn_move.h | 2 +- include/money.h | 4 ++-- include/pokedex.h | 2 +- include/trade.h | 3 --- 5 files changed, 4 insertions(+), 8 deletions(-) (limited to 'include') diff --git a/include/battle_setup.h b/include/battle_setup.h index 378a19b72..8423a6e6e 100644 --- a/include/battle_setup.h +++ b/include/battle_setup.h @@ -56,7 +56,6 @@ u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data); void TrainerWantsBattle(u8, u8 *); bool32 GetTrainerFlagFromScriptPointer(u8 *data); -//void sub_8082524(void); //u8 ScrSpecial_GetTrainerBattleMode(void); //u8 ScrSpecial_HasTrainerBeenFought(void); //void sub_808257C(void); diff --git a/include/learn_move.h b/include/learn_move.h index 85fbf046e..fca236ec9 100644 --- a/include/learn_move.h +++ b/include/learn_move.h @@ -1,6 +1,6 @@ #ifndef GUARD_LEARN_MOVE_H #define GUARD_LEARN_MOVE_H -void sub_8132670(void); +void TeachMoveTutorMove(void); #endif // GUARD_LEARN_MOVE_H diff --git a/include/money.h b/include/money.h index 5a0acd482..9f4ef71bc 100644 --- a/include/money.h +++ b/include/money.h @@ -11,7 +11,7 @@ void sub_80B7B34(u8, u8, int); void UpdateMoneyWindow(u32, u8, u8); void OpenMoneyWindow(u32, u8, u8); void CloseMoneyWindow(u8, u8); -bool8 sub_80B7CE8(void); -void sub_80B7D0C(void); +bool8 HasEnoughMoneyFor(void); +void PayMoneyFor(void); #endif // GUARD_MONEY_H diff --git a/include/pokedex.h b/include/pokedex.h index c47494e1f..d8416889a 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -22,7 +22,7 @@ s8 GetSetPokedexFlag(u16, u8); u16 GetNationalPokedexCount(u8); u16 GetHoennPokedexCount(u8); -bool8 sub_8090FC0(void); +bool8 CompletedHoennPokedex(void); u16 sub_8090FF4(void); #endif // GUARD_POKEDEX_H diff --git a/include/trade.h b/include/trade.h index 642bdcd65..46f58a802 100644 --- a/include/trade.h +++ b/include/trade.h @@ -51,14 +51,11 @@ extern const u32 gUnknown_0820CA98[]; extern const u16 gUnknown_0820F798[]; void sub_8047CD8(void); -u16 sub_804DB2C(void); -void sub_804DB68(void); void sub_804E174(void); extern const u8 gOtherText_MaleSymbol3[2]; extern const u8 gOtherText_FemaleSymbol3[2]; extern const u8 gOtherText_GenderlessSymbol[2]; void sub_804E22C(void); -u16 sub_804D89C(void); #endif //POKERUBY_TRADE_H -- cgit v1.2.3 From 664b42470fb6c590dd2bd8b02707a790feda23fe Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Mon, 1 Jan 2018 17:03:33 -0600 Subject: Use var constants for direct uses of gSaveBlock1.vars --- include/constants/vars.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/constants/vars.h b/include/constants/vars.h index 13114e09b..682d45003 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -3,6 +3,8 @@ #define VAR_0x3F20 0x3F20 +#define VARS_START 0x4000 + // temporary vars // The first 0x10 vars are are temporary--they are cleared every time a map is loaded. #define VAR_TEMP_0 0x4000 @@ -60,7 +62,8 @@ #define VAR_ENIGMA_BERRY_AVAILABLE 0x402D #define VAR_DAYS 0x4040 - +#define VAR_FANCLUB_UNKNOWN_1 0x4041 // TODO: document these two fanclub vars +#define VAR_FANCLUB_UNKNOWN_2 0x4042 #define VAR_DEPT_STORE_FLOOR 0x4043 #define VAR_TRICK_HOUSE_ROOMS_COMPLETED 0x4044 #define VAR_LOTTERY_PRIZE 0x4045 -- cgit v1.2.3 From fb99fe5aa6d8f7a257ba5613b32f285bba7afabd Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 2 Jan 2018 12:05:43 -0500 Subject: data through gSpriteImageTable_83ED228 --- include/ewram.h | 1 + include/graphics.h | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) (limited to 'include') diff --git a/include/ewram.h b/include/ewram.h index 9d3002615..7b480a0e8 100755 --- a/include/ewram.h +++ b/include/ewram.h @@ -78,6 +78,7 @@ extern u8 gSharedMem[]; #define ewram12000 (&gSharedMem[0x12000]) #define ewram12800 (&gSharedMem[0x12800]) #define ewram13000 (&gSharedMem[0x13000]) +#define ewram13200 (&gSharedMem[0x13200]) #define ewram13800 (&gSharedMem[0x13800]) #define EWRAM_14000 ((u8 *)(gSharedMem + 0x14000)) #define ewram14000 (&gSharedMem[0x14000]) diff --git a/include/graphics.h b/include/graphics.h index 488de07c0..9db35862c 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2656,4 +2656,21 @@ extern const u8 gNamingScreenRightPointingTriangleTiles[]; extern const u8 gNamingScreenUnderscoreTiles[]; extern const u16 gNamingScreenPalettes[][16]; +extern const u8 gSpriteImage_8E988E8[]; +extern const u8 gSpriteImage_8E98968[]; +extern const u8 gSpriteImage_8E989E8[]; +extern const u8 gSpriteImage_8E98A68[]; +extern const u8 gSpriteImage_8E98AE8[]; +extern const u8 gSpriteImage_8E98B68[]; +extern const u8 gSpriteImage_8E991E8[]; +extern const u8 gSpriteImage_8E99808[]; +extern const u8 gSpriteImage_8E98BE8[]; +extern const u8 gSpriteImage_8E98CE8[]; +extern const u8 gSpriteImage_8E993E8[]; +extern const u8 gSpriteImage_8E98DE8[]; +extern const u8 gSpriteImage_8E98FE8[]; +extern const u8 gSpriteImage_8E98848[]; +extern const u8 gSpriteImage_8E98868[]; +extern const u8 gSpriteImage_8E98828[]; + #endif // GUARD_GRAPHICS_H -- cgit v1.2.3 From aee62a5b2487845921a1e6c3c3f08475cc7ae2ea Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 2 Jan 2018 15:08:57 -0500 Subject: data through gUnknown_083EDD08 --- include/graphics.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'include') diff --git a/include/graphics.h b/include/graphics.h index 9db35862c..5f19b09cb 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2672,5 +2672,23 @@ extern const u8 gSpriteImage_8E98FE8[]; extern const u8 gSpriteImage_8E98848[]; extern const u8 gSpriteImage_8E98868[]; extern const u8 gSpriteImage_8E98828[]; +extern const u8 gSlotMachineReelSymbol1Tiles[]; +extern const u8 gSlotMachineReelSymbol2Tiles[]; +extern const u8 gSlotMachineReelSymbol3Tiles[]; +extern const u8 gSlotMachineReelSymbol4Tiles[]; +extern const u8 gSlotMachineReelSymbol5Tiles[]; +extern const u8 gSlotMachineReelSymbol6Tiles[]; +extern const u8 gSlotMachineReelSymbol7Tiles[]; +extern const u8 gSlotMachineNumber0Tiles[]; +extern const u8 gSlotMachineNumber1Tiles[]; +extern const u8 gSlotMachineNumber2Tiles[]; +extern const u8 gSlotMachineNumber3Tiles[]; +extern const u8 gSlotMachineNumber4Tiles[]; +extern const u8 gSlotMachineNumber5Tiles[]; +extern const u8 gSlotMachineNumber6Tiles[]; +extern const u8 gSlotMachineNumber7Tiles[]; +extern const u8 gSlotMachineNumber8Tiles[]; +extern const u8 gSlotMachineNumber9Tiles[]; +extern const u8 gUnknownPalette_08E997E8[]; #endif // GUARD_GRAPHICS_H -- cgit v1.2.3 From 9b2ebe671fe77298d0b1adcb5d87cbb2bd01cd3e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 2 Jan 2018 21:35:41 -0500 Subject: Remaining slot machine data --- include/graphics.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'include') diff --git a/include/graphics.h b/include/graphics.h index 5f19b09cb..1d66172ca 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2690,5 +2690,12 @@ extern const u8 gSlotMachineNumber7Tiles[]; extern const u8 gSlotMachineNumber8Tiles[]; extern const u8 gSlotMachineNumber9Tiles[]; extern const u8 gUnknownPalette_08E997E8[]; +extern const u16 gSlotMachineSpritePalette0[]; +extern const u16 gSlotMachineSpritePalette1[]; +extern const u16 gSlotMachineSpritePalette2[]; +extern const u16 gSlotMachineSpritePalette3[]; +extern const u16 gSlotMachineSpritePalette4[]; +extern const u16 gSlotMachineSpritePalette5[]; +extern const u16 gSlotMachineSpritePalette6[]; #endif // GUARD_GRAPHICS_H -- cgit v1.2.3 From b5ecdfa404a34c66fdf9f96342a2de0f173e6e73 Mon Sep 17 00:00:00 2001 From: "Marco Willems (M17.1)" Date: Wed, 3 Jan 2018 16:22:06 +0100 Subject: Decompiled fire_2.s --- include/heated_rock.h | 10 ++++++++++ include/rom_8077ABC.h | 4 ++++ 2 files changed, 14 insertions(+) create mode 100644 include/heated_rock.h (limited to 'include') diff --git a/include/heated_rock.h b/include/heated_rock.h new file mode 100644 index 000000000..26856fe7f --- /dev/null +++ b/include/heated_rock.h @@ -0,0 +1,10 @@ +#ifndef GUARD_HEATED_ROCK_H +#define GUARD_HEATED_ROCK_H + +// heated_rock (moves heated rock sprites) +// Used in Eruption. + +u16 sub_80D5940(u8 spriteId); +void sub_80D5994(struct Sprite *sprite, s16 x, s16 y); + +#endif // GUARD_HEATED_ROCK_H \ No newline at end of file diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h index 02023a215..dda90c48f 100644 --- a/include/rom_8077ABC.h +++ b/include/rom_8077ABC.h @@ -46,6 +46,7 @@ void sub_8078E70(u8 sprite, u8); void sub_8078F40(u8 sprite); void sub_8078F9C(u8 sprite); void sub_8079518(struct Sprite *sprite); +void sub_8079534(struct Sprite *sprite); void sub_80796F8(u8 task); void sub_80797EC(struct Task *task); void sub_8079814(u8 taskId); @@ -53,6 +54,9 @@ void sub_8079A64(u8 sprite); u16 sub_8079B10(u8 sprite); void sub_8079BF4(s16 *bottom, s16 *top, const void *ptr); void *sub_8079BFC(s16 bottom, s16 top); +// u8 a2 := u8 sprite +void sub_8079C08(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7); +u8 sub_8079C74(struct Task *task); void sub_8079E24(); u8 sub_8079E90(u8 slot); u8 GetBankIdentity_permutated(u8 slot); -- cgit v1.2.3 From 3c709ef2ede275d6eeaa319a603c199a3906226b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 3 Jan 2018 23:55:30 -0500 Subject: A little tidying --- include/global.h | 8 -------- include/sprite.h | 4 ---- 2 files changed, 12 deletions(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index 17dd0a88d..76300d36d 100644 --- a/include/global.h +++ b/include/global.h @@ -27,14 +27,6 @@ int strcmp (const char *, const char *); #define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided\n") -#define nonmatching(fndec, x) {\ -__attribute__((naked))\ -fndec\ -{\ - asm_unified(x);\ -}\ -} - #define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0])) #define POKEMON_SLOTS_NUMBER 412 diff --git a/include/sprite.h b/include/sprite.h index 2b7960f6f..b72c09989 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -120,10 +120,6 @@ union AffineAnimCmd {.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}} #define AFFINEANIMCMD_END \ {.type = AFFINEANIMCMDTYPE_END} -#define AFFINEANIMCMD_LOOP(_count) \ - {.loop = {.type = AFFINEANIMCMDTYPE_LOOP, .count = _count}} -#define AFFINEANIMCMD_JUMP(_target) \ - {.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}} struct AffineAnimState { -- cgit v1.2.3 From 86e1d1098e2554f21c42784115e9f69fb81b2925 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 4 Jan 2018 00:09:07 -0500 Subject: Declare as static what can be so declared --- include/graphics.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'include') diff --git a/include/graphics.h b/include/graphics.h index 1d66172ca..17abb840e 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2697,5 +2697,10 @@ extern const u16 gSlotMachineSpritePalette3[]; extern const u16 gSlotMachineSpritePalette4[]; extern const u16 gSlotMachineSpritePalette5[]; extern const u16 gSlotMachineSpritePalette6[]; +extern const u8 gSlotMachine_Gfx[]; +extern const u8 gSlotMachineReelTimeLights_Gfx[]; +extern const u16 gUnknown_08E95A18[]; +extern const u16 gUnknown_08E95AB8[]; +extern const u16 gUnknown_08E95FB8[]; #endif // GUARD_GRAPHICS_H -- cgit v1.2.3 From 0a70c2c6938c260bd8d1d036660891beb26c5820 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 4 Jan 2018 17:17:42 -0500 Subject: Get sub_8103668 matching --- include/ewram.h | 4 ++-- include/slot_machine.h | 33 ++++++++++++++++++++++++++++----- 2 files changed, 30 insertions(+), 7 deletions(-) (limited to 'include') diff --git a/include/ewram.h b/include/ewram.h index 7b480a0e8..5a350840a 100755 --- a/include/ewram.h +++ b/include/ewram.h @@ -70,7 +70,7 @@ extern u8 gSharedMem[]; #define ewramF800 (&gSharedMem[0xF800]) #define ewram_2010000 (*(struct TradeEwramStruct *)(gSharedMem + 0x10000)) #define ewram10000 (&gSharedMem[0x10000]) -#define ewram10000_2 (void *)(gSharedMem + 0x10000) // slot machine +#define eSlotMachineGfxBuffer (void *)(gSharedMem + 0x10000) // slot machine #define ePokedexPalAddr3 (void *)(gSharedMem + 0x10000) #define ewram10800 (&gSharedMem[0x10800]) #define ewram11000 (&gSharedMem[0x11000]) @@ -78,7 +78,7 @@ extern u8 gSharedMem[]; #define ewram12000 (&gSharedMem[0x12000]) #define ewram12800 (&gSharedMem[0x12800]) #define ewram13000 (&gSharedMem[0x13000]) -#define ewram13200 (&gSharedMem[0x13200]) +#define eSlotMachineReelTimeGfxBuffer (&gSharedMem[0x13200]) #define ewram13800 (&gSharedMem[0x13800]) #define EWRAM_14000 ((u8 *)(gSharedMem + 0x14000)) #define ewram14000 (&gSharedMem[0x14000]) diff --git a/include/slot_machine.h b/include/slot_machine.h index 34431a8ef..5588d2bac 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -1,6 +1,29 @@ #ifndef GUARD_SLOT_MACHINE_H #define GUARD_SLOT_MACHINE_H +enum { + SLOT_MACHINE_SYM_7_RED, + SLOT_MACHINE_SYM_7_BLUE, + SLOT_MACHINE_SYM_AZURILL, + SLOT_MACHINE_SYM_LOTAD, + SLOT_MACHINE_SYM_CHERRY, + SLOT_MACHINE_SYM_POWER, + SLOT_MACHINE_SYM_REPLAY +}; + +enum { + SLOT_MACHINE_MATCHED_1CHERRY, + SLOT_MACHINE_MATCHED_2CHERRY, + SLOT_MACHINE_MATCHED_REPLAY, + SLOT_MACHINE_MATCHED_LOTAD, + SLOT_MACHINE_MATCHED_AZURILL, + SLOT_MACHINE_MATCHED_POWER, + SLOT_MACHINE_MATCHED_777_MIXED, + SLOT_MACHINE_MATCHED_777_RED, + SLOT_MACHINE_MATCHED_777_BLUE, + SLOT_MACHINE_MATCHED_NONE +}; + struct SlotMachineEwramStruct { /*0x00*/ u8 state; /*0x01*/ u8 unk01; @@ -10,11 +33,11 @@ struct SlotMachineEwramStruct { /*0x05*/ u8 unk05; /*0x06*/ u8 unk06; /*0x07*/ u8 unk07; - /*0x08*/ u16 unk08; + /*0x08*/ u16 matchedSymbols; /*0x0A*/ u8 unk0A; /*0x0B*/ u8 unk0B; /*0x0C*/ s16 coins; - /*0x0E*/ s16 unk0E; + /*0x0E*/ s16 payout; /*0x10*/ s16 unk10; /*0x12*/ s16 bet; /*0x14*/ s16 unk14; @@ -26,7 +49,7 @@ struct SlotMachineEwramStruct { /*0x28*/ s16 unk28[3]; /*0x2E*/ s16 unk2E[3]; /*0x34*/ s16 unk34[3]; - /*0x3A*/ u8 unk3A[3]; + /*0x3A*/ u8 reelTasks[3]; /*0x3D*/ u8 unk3D; /*0x3E*/ u8 unk3E; /*0x3F*/ u8 unk3F; @@ -49,8 +72,8 @@ struct SlotMachineEwramStruct { /*0x64*/ MainCallback prevMainCb; }; -void PlaySlotMachine(u8, void *); +void PlaySlotMachine(u8 arg0, MainCallback cb); void sub_8104DA4(void); -u8 sub_8105BB4(u8, u8, s16); +u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); #endif // GUARD_SLOT_MACHINE_H -- cgit v1.2.3 From 59c99b2d65af9ea1d53d457c71dc7f0915d815c5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 4 Jan 2018 17:35:13 -0500 Subject: some renaming --- include/slot_machine.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index 5588d2bac..d932edff0 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -2,13 +2,13 @@ #define GUARD_SLOT_MACHINE_H enum { - SLOT_MACHINE_SYM_7_RED, - SLOT_MACHINE_SYM_7_BLUE, - SLOT_MACHINE_SYM_AZURILL, - SLOT_MACHINE_SYM_LOTAD, - SLOT_MACHINE_SYM_CHERRY, - SLOT_MACHINE_SYM_POWER, - SLOT_MACHINE_SYM_REPLAY + SLOT_MACHINE_TAG_7_RED, + SLOT_MACHINE_TAG_7_BLUE, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_CHERRY, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_REPLAY }; enum { @@ -46,7 +46,7 @@ struct SlotMachineEwramStruct { /*0x1A*/ s16 unk1A; /*0x1C*/ s16 unk1C[3]; /*0x22*/ u16 unk22[3]; - /*0x28*/ s16 unk28[3]; + /*0x28*/ s16 reelPositions[3]; /*0x2E*/ s16 unk2E[3]; /*0x34*/ s16 unk34[3]; /*0x3A*/ u8 reelTasks[3]; -- cgit v1.2.3 From 25bf57596507492210c36cffb1dfb6b9bf626df7 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 4 Jan 2018 18:03:10 -0500 Subject: propagate SLOT_MACHINE_MATCHED enums --- include/slot_machine.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/slot_machine.h b/include/slot_machine.h index d932edff0..f886d9239 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -27,7 +27,7 @@ enum { struct SlotMachineEwramStruct { /*0x00*/ u8 state; /*0x01*/ u8 unk01; - /*0x02*/ u8 unk02; + /*0x02*/ u8 pikaPower; /*0x03*/ u8 unk03; /*0x04*/ u8 unk04; /*0x05*/ u8 unk05; -- cgit v1.2.3