diff options
Diffstat (limited to 'arm9/src')
-rw-r--r-- | arm9/src/main.c | 24 | ||||
-rw-r--r-- | arm9/src/pokemon.c | 484 | ||||
-rw-r--r-- | arm9/src/unk_02006234.c | 28 | ||||
-rw-r--r-- | arm9/src/unk_0207FC5C.c | 533 | ||||
-rw-r--r-- | arm9/src/waza.c | 4 |
5 files changed, 803 insertions, 270 deletions
diff --git a/arm9/src/main.c b/arm9/src/main.c index a81db33d..3f967380 100644 --- a/arm9/src/main.c +++ b/arm9/src/main.c @@ -6,7 +6,7 @@ #include "PAD_pad.h" #include "main.h" #include "poke_overlay.h" -#include "save_block_2.h" +#include "player_data.h" #include "sound.h" FS_EXTERN_OVERLAY(MODULE_52); @@ -16,9 +16,9 @@ FS_EXTERN_OVERLAY(MODULE_63); struct Unk2106FA0 gBacklightTop; -extern BOOL FUN_02006234(struct Unk21DBE18 *, s32 *, int); -extern BOOL FUN_02006290(int); -extern void FUN_02006260(int); +extern BOOL OverlayManager_new(struct Unk21DBE18 *, s32 *, int); +extern BOOL OverlayManager_Run(int); +extern void OverlayManager_delete(int); extern BOOL FUN_02033678(void); extern u32 FUN_020335B8(void); extern BOOL FUN_0202FB80(void); @@ -89,12 +89,12 @@ THUMB_FUNC void NitroMain(void) case 0: // Title Demo gBacklightTop.unk1C = 0; - FUN_02000E7C(FS_OVERLAY_ID(MODULE_63), &MOD63_021DBE18); + RegisterMainOverlay(FS_OVERLAY_ID(MODULE_63), &MOD63_021DBE18); break; case 1: // Reset transition? gBacklightTop.unk1C = 1; - FUN_02000E7C(FS_OVERLAY_ID(MODULE_52), &MOD52_021D76C8); + RegisterMainOverlay(FS_OVERLAY_ID(MODULE_52), &MOD52_021D76C8); break; default: GF_ASSERT(0); @@ -118,7 +118,7 @@ THUMB_FUNC void NitroMain(void) } if (FUN_0202FB80()) { - FUN_02000E0C(); + Main_RunOverlayManager(); FUN_0201B5CC(gMain.unk18); FUN_0201B5CC(gMain.unk24); if (!gMain.unk30) @@ -151,7 +151,7 @@ THUMB_FUNC void FUN_02000DF4(void) gBacklightTop.unk14 = NULL; } -THUMB_FUNC void FUN_02000E0C(void) +THUMB_FUNC void Main_RunOverlayManager(void) { if (!gBacklightTop.unkC) { @@ -160,20 +160,20 @@ THUMB_FUNC void FUN_02000E0C(void) if (gBacklightTop.unk10 != SDK_OVERLAY_INVALID_ID) HandleLoadOverlay(gBacklightTop.unk10, 0); gBacklightTop.unk8 = gBacklightTop.unk10; - gBacklightTop.unkC = FUN_02006234(gBacklightTop.unk14, &gBacklightTop.unk18, 0); + gBacklightTop.unkC = OverlayManager_new(gBacklightTop.unk14, &gBacklightTop.unk18, 0); gBacklightTop.unk10 = SDK_OVERLAY_INVALID_ID; gBacklightTop.unk14 = NULL; } - if (FUN_02006290(gBacklightTop.unkC)) + if (OverlayManager_Run(gBacklightTop.unkC)) { - FUN_02006260(gBacklightTop.unkC); + OverlayManager_delete(gBacklightTop.unkC); gBacklightTop.unkC = 0; if (gBacklightTop.unk8 != SDK_OVERLAY_INVALID_ID) UnloadOverlayByID(gBacklightTop.unk8); } } -THUMB_FUNC void FUN_02000E7C(FSOverlayID id, struct Unk21DBE18 * arg1) +THUMB_FUNC void RegisterMainOverlay(FSOverlayID id, struct Unk21DBE18 * arg1) { if (gBacklightTop.unk14 != NULL) ErrorHandling(); diff --git a/arm9/src/pokemon.c b/arm9/src/pokemon.c index dbf86d8a..3db6796a 100644 --- a/arm9/src/pokemon.c +++ b/arm9/src/pokemon.c @@ -701,33 +701,33 @@ u32 GetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * dest) ret = blockA->sheen; break; case MON_DATA_SINNOH_CHAMP_RIBBON: - case MON_DATA_SINNOH_RIBBON_26: - case MON_DATA_SINNOH_RIBBON_27: - case MON_DATA_SINNOH_RIBBON_28: - case MON_DATA_SINNOH_RIBBON_29: - case MON_DATA_SINNOH_RIBBON_30: - case MON_DATA_SINNOH_RIBBON_31: - case MON_DATA_SINNOH_RIBBON_32: - case MON_DATA_SINNOH_RIBBON_33: - case MON_DATA_SINNOH_RIBBON_34: - case MON_DATA_SINNOH_RIBBON_35: - case MON_DATA_SINNOH_RIBBON_36: - case MON_DATA_SINNOH_RIBBON_37: - case MON_DATA_SINNOH_RIBBON_38: - case MON_DATA_SINNOH_RIBBON_39: - case MON_DATA_SINNOH_RIBBON_40: - case MON_DATA_SINNOH_RIBBON_41: - case MON_DATA_SINNOH_RIBBON_42: - case MON_DATA_SINNOH_RIBBON_43: - case MON_DATA_SINNOH_RIBBON_44: - case MON_DATA_SINNOH_RIBBON_45: - case MON_DATA_SINNOH_RIBBON_46: - case MON_DATA_SINNOH_RIBBON_47: - case MON_DATA_SINNOH_RIBBON_48: - case MON_DATA_SINNOH_RIBBON_49: - case MON_DATA_SINNOH_RIBBON_50: - case MON_DATA_SINNOH_RIBBON_51: - case MON_DATA_SINNOH_RIBBON_52: + case MON_DATA_ABILITY_RIBBON: + case MON_DATA_GREAT_ABILITY_RIBBON: + case MON_DATA_DOUBLE_ABILITY_RIBBON: + case MON_DATA_MULTI_ABILITY_RIBBON: + case MON_DATA_PAIR_ABILITY_RIBBON: + case MON_DATA_WORLD_ABILITY_RIBBON: + case MON_DATA_ALERT_RIBBON: + case MON_DATA_SHOCK_RIBBON: + case MON_DATA_DOWNCAST_RIBBON: + case MON_DATA_CARELESS_RIBBON: + case MON_DATA_RELAX_RIBBON: + case MON_DATA_SNOOZE_RIBBON: + case MON_DATA_SMILE_RIBBON: + case MON_DATA_GORGEOUS_RIBBON: + case MON_DATA_ROYAL_RIBBON: + case MON_DATA_GORGEOUS_ROYAL_RIBBON: + case MON_DATA_FOOTPRINT_RIBBON: + case MON_DATA_RECORD_RIBBON: + case MON_DATA_HISTORY_RIBBON: + case MON_DATA_LEGEND_RIBBON: + case MON_DATA_RED_RIBBON: + case MON_DATA_GREEN_RIBBON: + case MON_DATA_BLUE_RIBBON: + case MON_DATA_FESTIVAL_RIBBON: + case MON_DATA_CARNIVAL_RIBBON: + case MON_DATA_CLASSIC_RIBBON: + case MON_DATA_PREMIER_RIBBON: case MON_DATA_SINNOH_RIBBON_53: { if (blockA->sinnohRibbons & (1ll << (attr - MON_DATA_SINNOH_CHAMP_RIBBON))) @@ -790,39 +790,39 @@ u32 GetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * dest) case MON_DATA_HAS_NICKNAME: ret = blockB->isNicknamed; break; - case MON_DATA_COOL_RIBBON: - case MON_DATA_HOENN_RIBBON_79: - case MON_DATA_HOENN_RIBBON_80: - case MON_DATA_HOENN_RIBBON_81: - case MON_DATA_HOENN_RIBBON_82: - case MON_DATA_HOENN_RIBBON_83: - case MON_DATA_HOENN_RIBBON_84: - case MON_DATA_HOENN_RIBBON_85: - case MON_DATA_HOENN_RIBBON_86: - case MON_DATA_HOENN_RIBBON_87: - case MON_DATA_HOENN_RIBBON_88: - case MON_DATA_HOENN_RIBBON_89: - case MON_DATA_HOENN_RIBBON_90: - case MON_DATA_HOENN_RIBBON_91: - case MON_DATA_HOENN_RIBBON_92: - case MON_DATA_HOENN_RIBBON_93: - case MON_DATA_HOENN_RIBBON_94: - case MON_DATA_HOENN_RIBBON_95: - case MON_DATA_HOENN_RIBBON_96: - case MON_DATA_HOENN_RIBBON_97: - case MON_DATA_HOENN_RIBBON_98: - case MON_DATA_HOENN_RIBBON_99: - case MON_DATA_HOENN_RIBBON_100: - case MON_DATA_HOENN_RIBBON_101: - case MON_DATA_HOENN_RIBBON_102: - case MON_DATA_HOENN_RIBBON_103: - case MON_DATA_HOENN_RIBBON_104: - case MON_DATA_HOENN_RIBBON_105: - case MON_DATA_HOENN_RIBBON_106: - case MON_DATA_HOENN_RIBBON_107: - case MON_DATA_HOENN_RIBBON_108: - case MON_DATA_HOENN_RIBBON_109: - if (blockB->ribbonFlags & (1ll << (attr - MON_DATA_COOL_RIBBON))) + case MON_DATA_HOENN_COOL_RIBBON: + case MON_DATA_HOENN_COOL_RIBBON_SUPER: + case MON_DATA_HOENN_COOL_RIBBON_HYPER: + case MON_DATA_HOENN_COOL_RIBBON_MASTER: + case MON_DATA_HOENN_BEAUTY_RIBBON: + case MON_DATA_HOENN_BEAUTY_RIBBON_SUPER: + case MON_DATA_HOENN_BEAUTY_RIBBON_HYPER: + case MON_DATA_HOENN_BEAUTY_RIBBON_MASTER: + case MON_DATA_HOENN_CUTE_RIBBON: + case MON_DATA_HOENN_CUTE_RIBBON_SUPER: + case MON_DATA_HOENN_CUTE_RIBBON_HYPER: + case MON_DATA_HOENN_CUTE_RIBBON_MASTER: + case MON_DATA_HOENN_SMART_RIBBON: + case MON_DATA_HOENN_SMART_RIBBON_SUPER: + case MON_DATA_HOENN_SMART_RIBBON_HYPER: + case MON_DATA_HOENN_SMART_RIBBON_MASTER: + case MON_DATA_HOENN_TOUGH_RIBBON: + case MON_DATA_HOENN_TOUGH_RIBBON_SUPER: + case MON_DATA_HOENN_TOUGH_RIBBON_HYPER: + case MON_DATA_HOENN_TOUGH_RIBBON_MASTER: + case MON_DATA_HOENN_CHAMPION_RIBBON: + case MON_DATA_HOENN_WINNING_RIBBON: + case MON_DATA_HOENN_VICTORY_RIBBON: + case MON_DATA_HOENN_ARTIST_RIBBON: + case MON_DATA_HOENN_EFFORT_RIBBON: + case MON_DATA_HOENN_MARINE_RIBBON: + case MON_DATA_HOENN_LAND_RIBBON: + case MON_DATA_HOENN_SKY_RIBBON: + case MON_DATA_HOENN_COUNTRY_RIBBON: + case MON_DATA_HOENN_NATIONAL_RIBBON: + case MON_DATA_HOENN_EARTH_RIBBON: + case MON_DATA_HOENN_WORLD_RIBBON: + if (blockB->ribbonFlags & (1ll << (attr - MON_DATA_HOENN_COOL_RIBBON))) ret = TRUE; else ret = FALSE; @@ -876,28 +876,28 @@ u32 GetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * dest) case MON_DATA_GAME_VERSION: ret = blockC->originGame; break; - case MON_DATA_SINNOH_RIBBON_122: - case MON_DATA_SINNOH_RIBBON_123: - case MON_DATA_SINNOH_RIBBON_124: - case MON_DATA_SINNOH_RIBBON_125: - case MON_DATA_SINNOH_RIBBON_126: - case MON_DATA_SINNOH_RIBBON_127: - case MON_DATA_SINNOH_RIBBON_128: - case MON_DATA_SINNOH_RIBBON_129: - case MON_DATA_SINNOH_RIBBON_130: - case MON_DATA_SINNOH_RIBBON_131: - case MON_DATA_SINNOH_RIBBON_132: - case MON_DATA_SINNOH_RIBBON_133: - case MON_DATA_SINNOH_RIBBON_134: - case MON_DATA_SINNOH_RIBBON_135: - case MON_DATA_SINNOH_RIBBON_136: - case MON_DATA_SINNOH_RIBBON_137: - case MON_DATA_SINNOH_RIBBON_138: - case MON_DATA_SINNOH_RIBBON_139: - case MON_DATA_SINNOH_RIBBON_140: - case MON_DATA_SINNOH_RIBBON_141: + case MON_DATA_COOL_RIBBON: + case MON_DATA_COOL_RIBBON_GREAT: + case MON_DATA_COOL_RIBBON_ULTRA: + case MON_DATA_COOL_RIBBON_MASTER: + case MON_DATA_BEAUTY_RIBBON: + case MON_DATA_BEAUTY_RIBBON_GREAT: + case MON_DATA_BEAUTY_RIBBON_ULTRA: + case MON_DATA_BEAUTY_RIBBON_MASTER: + case MON_DATA_CUTE_RIBBON: + case MON_DATA_CUTE_RIBBON_GREAT: + case MON_DATA_CUTE_RIBBON_ULTRA: + case MON_DATA_CUTE_RIBBON_MASTER: + case MON_DATA_SMART_RIBBON: + case MON_DATA_SMART_RIBBON_GREAT: + case MON_DATA_SMART_RIBBON_ULTRA: + case MON_DATA_SMART_RIBBON_MASTER: + case MON_DATA_TOUGH_RIBBON: + case MON_DATA_TOUGH_RIBBON_GREAT: + case MON_DATA_TOUGH_RIBBON_ULTRA: + case MON_DATA_TOUGH_RIBBON_MASTER: case MON_DATA_SINNOH_RIBBON_142: - if (blockC->sinnohRibbons2 & (1ll << (attr - MON_DATA_SINNOH_RIBBON_122))) + if (blockC->sinnohRibbons2 & (1ll << (attr - MON_DATA_COOL_RIBBON))) ret = TRUE; else ret = FALSE; @@ -1178,33 +1178,33 @@ void SetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * value) blockA->sheen = VALUE(u8); break; case MON_DATA_SINNOH_CHAMP_RIBBON: - case MON_DATA_SINNOH_RIBBON_26: - case MON_DATA_SINNOH_RIBBON_27: - case MON_DATA_SINNOH_RIBBON_28: - case MON_DATA_SINNOH_RIBBON_29: - case MON_DATA_SINNOH_RIBBON_30: - case MON_DATA_SINNOH_RIBBON_31: - case MON_DATA_SINNOH_RIBBON_32: - case MON_DATA_SINNOH_RIBBON_33: - case MON_DATA_SINNOH_RIBBON_34: - case MON_DATA_SINNOH_RIBBON_35: - case MON_DATA_SINNOH_RIBBON_36: - case MON_DATA_SINNOH_RIBBON_37: - case MON_DATA_SINNOH_RIBBON_38: - case MON_DATA_SINNOH_RIBBON_39: - case MON_DATA_SINNOH_RIBBON_40: - case MON_DATA_SINNOH_RIBBON_41: - case MON_DATA_SINNOH_RIBBON_42: - case MON_DATA_SINNOH_RIBBON_43: - case MON_DATA_SINNOH_RIBBON_44: - case MON_DATA_SINNOH_RIBBON_45: - case MON_DATA_SINNOH_RIBBON_46: - case MON_DATA_SINNOH_RIBBON_47: - case MON_DATA_SINNOH_RIBBON_48: - case MON_DATA_SINNOH_RIBBON_49: - case MON_DATA_SINNOH_RIBBON_50: - case MON_DATA_SINNOH_RIBBON_51: - case MON_DATA_SINNOH_RIBBON_52: + case MON_DATA_ABILITY_RIBBON: + case MON_DATA_GREAT_ABILITY_RIBBON: + case MON_DATA_DOUBLE_ABILITY_RIBBON: + case MON_DATA_MULTI_ABILITY_RIBBON: + case MON_DATA_PAIR_ABILITY_RIBBON: + case MON_DATA_WORLD_ABILITY_RIBBON: + case MON_DATA_ALERT_RIBBON: + case MON_DATA_SHOCK_RIBBON: + case MON_DATA_DOWNCAST_RIBBON: + case MON_DATA_CARELESS_RIBBON: + case MON_DATA_RELAX_RIBBON: + case MON_DATA_SNOOZE_RIBBON: + case MON_DATA_SMILE_RIBBON: + case MON_DATA_GORGEOUS_RIBBON: + case MON_DATA_ROYAL_RIBBON: + case MON_DATA_GORGEOUS_ROYAL_RIBBON: + case MON_DATA_FOOTPRINT_RIBBON: + case MON_DATA_RECORD_RIBBON: + case MON_DATA_HISTORY_RIBBON: + case MON_DATA_LEGEND_RIBBON: + case MON_DATA_RED_RIBBON: + case MON_DATA_GREEN_RIBBON: + case MON_DATA_BLUE_RIBBON: + case MON_DATA_FESTIVAL_RIBBON: + case MON_DATA_CARNIVAL_RIBBON: + case MON_DATA_CLASSIC_RIBBON: + case MON_DATA_PREMIER_RIBBON: case MON_DATA_SINNOH_RIBBON_53: flag = VALUE(u8); mask = (u64)flag << (attr - MON_DATA_SINNOH_CHAMP_RIBBON); @@ -1255,40 +1255,40 @@ void SetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * value) case MON_DATA_HAS_NICKNAME: blockB->isNicknamed = VALUE(u8); break; - case MON_DATA_COOL_RIBBON: - case MON_DATA_HOENN_RIBBON_79: - case MON_DATA_HOENN_RIBBON_80: - case MON_DATA_HOENN_RIBBON_81: - case MON_DATA_HOENN_RIBBON_82: - case MON_DATA_HOENN_RIBBON_83: - case MON_DATA_HOENN_RIBBON_84: - case MON_DATA_HOENN_RIBBON_85: - case MON_DATA_HOENN_RIBBON_86: - case MON_DATA_HOENN_RIBBON_87: - case MON_DATA_HOENN_RIBBON_88: - case MON_DATA_HOENN_RIBBON_89: - case MON_DATA_HOENN_RIBBON_90: - case MON_DATA_HOENN_RIBBON_91: - case MON_DATA_HOENN_RIBBON_92: - case MON_DATA_HOENN_RIBBON_93: - case MON_DATA_HOENN_RIBBON_94: - case MON_DATA_HOENN_RIBBON_95: - case MON_DATA_HOENN_RIBBON_96: - case MON_DATA_HOENN_RIBBON_97: - case MON_DATA_HOENN_RIBBON_98: - case MON_DATA_HOENN_RIBBON_99: - case MON_DATA_HOENN_RIBBON_100: - case MON_DATA_HOENN_RIBBON_101: - case MON_DATA_HOENN_RIBBON_102: - case MON_DATA_HOENN_RIBBON_103: - case MON_DATA_HOENN_RIBBON_104: - case MON_DATA_HOENN_RIBBON_105: - case MON_DATA_HOENN_RIBBON_106: - case MON_DATA_HOENN_RIBBON_107: - case MON_DATA_HOENN_RIBBON_108: - case MON_DATA_HOENN_RIBBON_109: + case MON_DATA_HOENN_COOL_RIBBON: + case MON_DATA_HOENN_COOL_RIBBON_SUPER: + case MON_DATA_HOENN_COOL_RIBBON_HYPER: + case MON_DATA_HOENN_COOL_RIBBON_MASTER: + case MON_DATA_HOENN_BEAUTY_RIBBON: + case MON_DATA_HOENN_BEAUTY_RIBBON_SUPER: + case MON_DATA_HOENN_BEAUTY_RIBBON_HYPER: + case MON_DATA_HOENN_BEAUTY_RIBBON_MASTER: + case MON_DATA_HOENN_CUTE_RIBBON: + case MON_DATA_HOENN_CUTE_RIBBON_SUPER: + case MON_DATA_HOENN_CUTE_RIBBON_HYPER: + case MON_DATA_HOENN_CUTE_RIBBON_MASTER: + case MON_DATA_HOENN_SMART_RIBBON: + case MON_DATA_HOENN_SMART_RIBBON_SUPER: + case MON_DATA_HOENN_SMART_RIBBON_HYPER: + case MON_DATA_HOENN_SMART_RIBBON_MASTER: + case MON_DATA_HOENN_TOUGH_RIBBON: + case MON_DATA_HOENN_TOUGH_RIBBON_SUPER: + case MON_DATA_HOENN_TOUGH_RIBBON_HYPER: + case MON_DATA_HOENN_TOUGH_RIBBON_MASTER: + case MON_DATA_HOENN_CHAMPION_RIBBON: + case MON_DATA_HOENN_WINNING_RIBBON: + case MON_DATA_HOENN_VICTORY_RIBBON: + case MON_DATA_HOENN_ARTIST_RIBBON: + case MON_DATA_HOENN_EFFORT_RIBBON: + case MON_DATA_HOENN_MARINE_RIBBON: + case MON_DATA_HOENN_LAND_RIBBON: + case MON_DATA_HOENN_SKY_RIBBON: + case MON_DATA_HOENN_COUNTRY_RIBBON: + case MON_DATA_HOENN_NATIONAL_RIBBON: + case MON_DATA_HOENN_EARTH_RIBBON: + case MON_DATA_HOENN_WORLD_RIBBON: flag = VALUE(u8); - mask = (u64)flag << (attr - MON_DATA_COOL_RIBBON); + mask = (u64)flag << (attr - MON_DATA_HOENN_COOL_RIBBON); if (flag) blockB->ribbonFlags |= mask; else @@ -1333,29 +1333,29 @@ void SetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * value) case MON_DATA_GAME_VERSION: blockC->originGame = VALUE(u8); break; - case MON_DATA_SINNOH_RIBBON_122: - case MON_DATA_SINNOH_RIBBON_123: - case MON_DATA_SINNOH_RIBBON_124: - case MON_DATA_SINNOH_RIBBON_125: - case MON_DATA_SINNOH_RIBBON_126: - case MON_DATA_SINNOH_RIBBON_127: - case MON_DATA_SINNOH_RIBBON_128: - case MON_DATA_SINNOH_RIBBON_129: - case MON_DATA_SINNOH_RIBBON_130: - case MON_DATA_SINNOH_RIBBON_131: - case MON_DATA_SINNOH_RIBBON_132: - case MON_DATA_SINNOH_RIBBON_133: - case MON_DATA_SINNOH_RIBBON_134: - case MON_DATA_SINNOH_RIBBON_135: - case MON_DATA_SINNOH_RIBBON_136: - case MON_DATA_SINNOH_RIBBON_137: - case MON_DATA_SINNOH_RIBBON_138: - case MON_DATA_SINNOH_RIBBON_139: - case MON_DATA_SINNOH_RIBBON_140: - case MON_DATA_SINNOH_RIBBON_141: + case MON_DATA_COOL_RIBBON: + case MON_DATA_COOL_RIBBON_GREAT: + case MON_DATA_COOL_RIBBON_ULTRA: + case MON_DATA_COOL_RIBBON_MASTER: + case MON_DATA_BEAUTY_RIBBON: + case MON_DATA_BEAUTY_RIBBON_GREAT: + case MON_DATA_BEAUTY_RIBBON_ULTRA: + case MON_DATA_BEAUTY_RIBBON_MASTER: + case MON_DATA_CUTE_RIBBON: + case MON_DATA_CUTE_RIBBON_GREAT: + case MON_DATA_CUTE_RIBBON_ULTRA: + case MON_DATA_CUTE_RIBBON_MASTER: + case MON_DATA_SMART_RIBBON: + case MON_DATA_SMART_RIBBON_GREAT: + case MON_DATA_SMART_RIBBON_ULTRA: + case MON_DATA_SMART_RIBBON_MASTER: + case MON_DATA_TOUGH_RIBBON: + case MON_DATA_TOUGH_RIBBON_GREAT: + case MON_DATA_TOUGH_RIBBON_ULTRA: + case MON_DATA_TOUGH_RIBBON_MASTER: case MON_DATA_SINNOH_RIBBON_142: flag = VALUE(u8); - mask = (u64)flag << (attr - MON_DATA_SINNOH_RIBBON_122); + mask = (u64)flag << (attr - MON_DATA_COOL_RIBBON); if (flag) blockC->sinnohRibbons2 |= mask; else @@ -1630,33 +1630,33 @@ void AddBoxMonData(struct BoxPokemon * boxmon, int attr, int value) case MON_DATA_MARKINGS: case MON_DATA_GAME_LANGUAGE: case MON_DATA_SINNOH_CHAMP_RIBBON: - case MON_DATA_SINNOH_RIBBON_26: - case MON_DATA_SINNOH_RIBBON_27: - case MON_DATA_SINNOH_RIBBON_28: - case MON_DATA_SINNOH_RIBBON_29: - case MON_DATA_SINNOH_RIBBON_30: - case MON_DATA_SINNOH_RIBBON_31: - case MON_DATA_SINNOH_RIBBON_32: - case MON_DATA_SINNOH_RIBBON_33: - case MON_DATA_SINNOH_RIBBON_34: - case MON_DATA_SINNOH_RIBBON_35: - case MON_DATA_SINNOH_RIBBON_36: - case MON_DATA_SINNOH_RIBBON_37: - case MON_DATA_SINNOH_RIBBON_38: - case MON_DATA_SINNOH_RIBBON_39: - case MON_DATA_SINNOH_RIBBON_40: - case MON_DATA_SINNOH_RIBBON_41: - case MON_DATA_SINNOH_RIBBON_42: - case MON_DATA_SINNOH_RIBBON_43: - case MON_DATA_SINNOH_RIBBON_44: - case MON_DATA_SINNOH_RIBBON_45: - case MON_DATA_SINNOH_RIBBON_46: - case MON_DATA_SINNOH_RIBBON_47: - case MON_DATA_SINNOH_RIBBON_48: - case MON_DATA_SINNOH_RIBBON_49: - case MON_DATA_SINNOH_RIBBON_50: - case MON_DATA_SINNOH_RIBBON_51: - case MON_DATA_SINNOH_RIBBON_52: + case MON_DATA_ABILITY_RIBBON: + case MON_DATA_GREAT_ABILITY_RIBBON: + case MON_DATA_DOUBLE_ABILITY_RIBBON: + case MON_DATA_MULTI_ABILITY_RIBBON: + case MON_DATA_PAIR_ABILITY_RIBBON: + case MON_DATA_WORLD_ABILITY_RIBBON: + case MON_DATA_ALERT_RIBBON: + case MON_DATA_SHOCK_RIBBON: + case MON_DATA_DOWNCAST_RIBBON: + case MON_DATA_CARELESS_RIBBON: + case MON_DATA_RELAX_RIBBON: + case MON_DATA_SNOOZE_RIBBON: + case MON_DATA_SMILE_RIBBON: + case MON_DATA_GORGEOUS_RIBBON: + case MON_DATA_ROYAL_RIBBON: + case MON_DATA_GORGEOUS_ROYAL_RIBBON: + case MON_DATA_FOOTPRINT_RIBBON: + case MON_DATA_RECORD_RIBBON: + case MON_DATA_HISTORY_RIBBON: + case MON_DATA_LEGEND_RIBBON: + case MON_DATA_RED_RIBBON: + case MON_DATA_GREEN_RIBBON: + case MON_DATA_BLUE_RIBBON: + case MON_DATA_FESTIVAL_RIBBON: + case MON_DATA_CARNIVAL_RIBBON: + case MON_DATA_CLASSIC_RIBBON: + case MON_DATA_PREMIER_RIBBON: case MON_DATA_SINNOH_RIBBON_53: case MON_DATA_MOVE1: case MON_DATA_MOVE2: @@ -1664,38 +1664,38 @@ void AddBoxMonData(struct BoxPokemon * boxmon, int attr, int value) case MON_DATA_MOVE4: case MON_DATA_IS_EGG: case MON_DATA_HAS_NICKNAME: - case MON_DATA_COOL_RIBBON: - case MON_DATA_HOENN_RIBBON_79: - case MON_DATA_HOENN_RIBBON_80: - case MON_DATA_HOENN_RIBBON_81: - case MON_DATA_HOENN_RIBBON_82: - case MON_DATA_HOENN_RIBBON_83: - case MON_DATA_HOENN_RIBBON_84: - case MON_DATA_HOENN_RIBBON_85: - case MON_DATA_HOENN_RIBBON_86: - case MON_DATA_HOENN_RIBBON_87: - case MON_DATA_HOENN_RIBBON_88: - case MON_DATA_HOENN_RIBBON_89: - case MON_DATA_HOENN_RIBBON_90: - case MON_DATA_HOENN_RIBBON_91: - case MON_DATA_HOENN_RIBBON_92: - case MON_DATA_HOENN_RIBBON_93: - case MON_DATA_HOENN_RIBBON_94: - case MON_DATA_HOENN_RIBBON_95: - case MON_DATA_HOENN_RIBBON_96: - case MON_DATA_HOENN_RIBBON_97: - case MON_DATA_HOENN_RIBBON_98: - case MON_DATA_HOENN_RIBBON_99: - case MON_DATA_HOENN_RIBBON_100: - case MON_DATA_HOENN_RIBBON_101: - case MON_DATA_HOENN_RIBBON_102: - case MON_DATA_HOENN_RIBBON_103: - case MON_DATA_HOENN_RIBBON_104: - case MON_DATA_HOENN_RIBBON_105: - case MON_DATA_HOENN_RIBBON_106: - case MON_DATA_HOENN_RIBBON_107: - case MON_DATA_HOENN_RIBBON_108: - case MON_DATA_HOENN_RIBBON_109: + case MON_DATA_HOENN_COOL_RIBBON: + case MON_DATA_HOENN_COOL_RIBBON_SUPER: + case MON_DATA_HOENN_COOL_RIBBON_HYPER: + case MON_DATA_HOENN_COOL_RIBBON_MASTER: + case MON_DATA_HOENN_BEAUTY_RIBBON: + case MON_DATA_HOENN_BEAUTY_RIBBON_SUPER: + case MON_DATA_HOENN_BEAUTY_RIBBON_HYPER: + case MON_DATA_HOENN_BEAUTY_RIBBON_MASTER: + case MON_DATA_HOENN_CUTE_RIBBON: + case MON_DATA_HOENN_CUTE_RIBBON_SUPER: + case MON_DATA_HOENN_CUTE_RIBBON_HYPER: + case MON_DATA_HOENN_CUTE_RIBBON_MASTER: + case MON_DATA_HOENN_SMART_RIBBON: + case MON_DATA_HOENN_SMART_RIBBON_SUPER: + case MON_DATA_HOENN_SMART_RIBBON_HYPER: + case MON_DATA_HOENN_SMART_RIBBON_MASTER: + case MON_DATA_HOENN_TOUGH_RIBBON: + case MON_DATA_HOENN_TOUGH_RIBBON_SUPER: + case MON_DATA_HOENN_TOUGH_RIBBON_HYPER: + case MON_DATA_HOENN_TOUGH_RIBBON_MASTER: + case MON_DATA_HOENN_CHAMPION_RIBBON: + case MON_DATA_HOENN_WINNING_RIBBON: + case MON_DATA_HOENN_VICTORY_RIBBON: + case MON_DATA_HOENN_ARTIST_RIBBON: + case MON_DATA_HOENN_EFFORT_RIBBON: + case MON_DATA_HOENN_MARINE_RIBBON: + case MON_DATA_HOENN_LAND_RIBBON: + case MON_DATA_HOENN_SKY_RIBBON: + case MON_DATA_HOENN_COUNTRY_RIBBON: + case MON_DATA_HOENN_NATIONAL_RIBBON: + case MON_DATA_HOENN_EARTH_RIBBON: + case MON_DATA_HOENN_WORLD_RIBBON: case MON_DATA_FATEFUL_ENCOUNTER: case MON_DATA_GENDER: case MON_DATA_FORME: @@ -1708,26 +1708,26 @@ void AddBoxMonData(struct BoxPokemon * boxmon, int attr, int value) case MON_DATA_NICKNAME_4: case MON_DATA_UNK_120: case MON_DATA_GAME_VERSION: - case MON_DATA_SINNOH_RIBBON_122: - case MON_DATA_SINNOH_RIBBON_123: - case MON_DATA_SINNOH_RIBBON_124: - case MON_DATA_SINNOH_RIBBON_125: - case MON_DATA_SINNOH_RIBBON_126: - case MON_DATA_SINNOH_RIBBON_127: - case MON_DATA_SINNOH_RIBBON_128: - case MON_DATA_SINNOH_RIBBON_129: - case MON_DATA_SINNOH_RIBBON_130: - case MON_DATA_SINNOH_RIBBON_131: - case MON_DATA_SINNOH_RIBBON_132: - case MON_DATA_SINNOH_RIBBON_133: - case MON_DATA_SINNOH_RIBBON_134: - case MON_DATA_SINNOH_RIBBON_135: - case MON_DATA_SINNOH_RIBBON_136: - case MON_DATA_SINNOH_RIBBON_137: - case MON_DATA_SINNOH_RIBBON_138: - case MON_DATA_SINNOH_RIBBON_139: - case MON_DATA_SINNOH_RIBBON_140: - case MON_DATA_SINNOH_RIBBON_141: + case MON_DATA_COOL_RIBBON: + case MON_DATA_COOL_RIBBON_GREAT: + case MON_DATA_COOL_RIBBON_ULTRA: + case MON_DATA_COOL_RIBBON_MASTER: + case MON_DATA_BEAUTY_RIBBON: + case MON_DATA_BEAUTY_RIBBON_GREAT: + case MON_DATA_BEAUTY_RIBBON_ULTRA: + case MON_DATA_BEAUTY_RIBBON_MASTER: + case MON_DATA_CUTE_RIBBON: + case MON_DATA_CUTE_RIBBON_GREAT: + case MON_DATA_CUTE_RIBBON_ULTRA: + case MON_DATA_CUTE_RIBBON_MASTER: + case MON_DATA_SMART_RIBBON: + case MON_DATA_SMART_RIBBON_GREAT: + case MON_DATA_SMART_RIBBON_ULTRA: + case MON_DATA_SMART_RIBBON_MASTER: + case MON_DATA_TOUGH_RIBBON: + case MON_DATA_TOUGH_RIBBON_GREAT: + case MON_DATA_TOUGH_RIBBON_ULTRA: + case MON_DATA_TOUGH_RIBBON_MASTER: case MON_DATA_SINNOH_RIBBON_142: case MON_DATA_OT_NAME: case MON_DATA_OT_NAME_2: @@ -3725,7 +3725,7 @@ void FUN_0206AA84(struct Pokemon * pokemon) SetMonData(pokemon, MON_DATA_SEAL_COORDS, sp1); } -void FUN_0206AAB4(struct BoxPokemon * boxmon) +void RestoreBoxMonPP(struct BoxPokemon * boxmon) { int i; u8 pp; diff --git a/arm9/src/unk_02006234.c b/arm9/src/unk_02006234.c index af93ed3e..a493311d 100644 --- a/arm9/src/unk_02006234.c +++ b/arm9/src/unk_02006234.c @@ -3,15 +3,15 @@ #include "poke_overlay.h" #include "heap.h" -struct UnkStruct_02006234 * FUN_02006234(struct Unk21DBE18 * ovly_mgr, int * a1, u32 heap_id); //todo header? -void FUN_02006260(struct UnkStruct_02006234 * a0); -void * FUN_02006268(struct UnkStruct_02006234 * a0, u32 size, u32 heap_id); -void * FUN_02006278(struct UnkStruct_02006234 * a0); -void FUN_0200627C(struct UnkStruct_02006234 * a0); -int * FUN_0200628C(struct UnkStruct_02006234 * a0); -BOOL FUN_02006290(struct UnkStruct_02006234 * a0); +struct UnkStruct_02006234 * OverlayManager_new(struct Unk21DBE18 * ovly_mgr, int * a1, u32 heap_id); //todo header? +void OverlayManager_delete(struct UnkStruct_02006234 * a0); +void * OverlayManager_CreateAndGetData(struct UnkStruct_02006234 * a0, u32 size, u32 heap_id); +void * OverlayManager_GetData(struct UnkStruct_02006234 * a0); +void OverlayManager_FreeData(struct UnkStruct_02006234 * a0); +int * OverlayManager_GetField18(struct UnkStruct_02006234 * a0); +BOOL OverlayManager_Run(struct UnkStruct_02006234 * a0); -THUMB_FUNC struct UnkStruct_02006234 * FUN_02006234(struct Unk21DBE18 * ovly_mgr, int * a1, u32 heap_id) +THUMB_FUNC struct UnkStruct_02006234 * OverlayManager_new(struct Unk21DBE18 * ovly_mgr, int * a1, u32 heap_id) { struct UnkStruct_02006234 * ret = (struct UnkStruct_02006234 *)AllocFromHeap(heap_id, sizeof(struct UnkStruct_02006234)); ret->ovly_mgr = *ovly_mgr; @@ -24,33 +24,33 @@ THUMB_FUNC struct UnkStruct_02006234 * FUN_02006234(struct Unk21DBE18 * ovly_mgr return ret; } -THUMB_FUNC void FUN_02006260(struct UnkStruct_02006234 * a0) +THUMB_FUNC void OverlayManager_delete(struct UnkStruct_02006234 * a0) { FreeToHeap(a0); } -THUMB_FUNC void * FUN_02006268(struct UnkStruct_02006234 * a0, u32 size, u32 heap_id) +THUMB_FUNC void * OverlayManager_CreateAndGetData(struct UnkStruct_02006234 * a0, u32 size, u32 heap_id) { return a0->unk1C = AllocFromHeap(heap_id, size); } -THUMB_FUNC void * FUN_02006278(struct UnkStruct_02006234 * a0) +THUMB_FUNC void * OverlayManager_GetData(struct UnkStruct_02006234 * a0) { return a0->unk1C; } -THUMB_FUNC void FUN_0200627C(struct UnkStruct_02006234 * a0) +THUMB_FUNC void OverlayManager_FreeData(struct UnkStruct_02006234 * a0) { FreeToHeap(a0->unk1C); a0->unk1C = NULL; } -THUMB_FUNC int * FUN_0200628C(struct UnkStruct_02006234 * a0) +THUMB_FUNC int * OverlayManager_GetField18(struct UnkStruct_02006234 * a0) { return a0->unk18; } -THUMB_FUNC BOOL FUN_02006290(struct UnkStruct_02006234 * a0) +THUMB_FUNC BOOL OverlayManager_Run(struct UnkStruct_02006234 * a0) { switch (a0->unk10) { diff --git a/arm9/src/unk_0207FC5C.c b/arm9/src/unk_0207FC5C.c new file mode 100644 index 00000000..1f001de1 --- /dev/null +++ b/arm9/src/unk_0207FC5C.c @@ -0,0 +1,533 @@ +#include "global.h" +#include "unk_0207FC5C.h" +#include "constants/pokemon.h" + +#pragma thumb on + +struct UnkStruct_020FB788 +{ + u32 monDataId; + u16 gfxId; + u16 palId; + u16 nameIdx; + u16 descIdx; +}; + +const struct UnkStruct_020FB788 UNK_020FB788[] = { + { + MON_DATA_HOENN_CHAMPION_RIBBON, + 72, + 0, + RIBBON_HOENN_CHAMPION, + 80 + }, { + MON_DATA_HOENN_COOL_RIBBON, + 73, + 0, + RIBBON_HOENN_COOL, + 81 + }, { + MON_DATA_HOENN_COOL_RIBBON_SUPER, + 74, + 0, + RIBBON_HOENN_COOL_SUPER, + 82 + }, { + MON_DATA_HOENN_COOL_RIBBON_HYPER, + 75, + 0, + RIBBON_HOENN_COOL_HYPER, + 83 + }, { + MON_DATA_HOENN_COOL_RIBBON_MASTER, + 76, + 0, + RIBBON_HOENN_COOL_MASTER, + 84 + }, { + MON_DATA_HOENN_BEAUTY_RIBBON, + 73, + 1, + RIBBON_HOENN_BEAUTY, + 85 + }, { + MON_DATA_HOENN_BEAUTY_RIBBON_SUPER, + 74, + 1, + RIBBON_HOENN_BEAUTY_SUPER, + 86 + }, { + MON_DATA_HOENN_BEAUTY_RIBBON_HYPER, + 75, + 1, + RIBBON_HOENN_BEAUTY_HYPER, + 87 + }, { + MON_DATA_HOENN_BEAUTY_RIBBON_MASTER, + 76, + 1, + RIBBON_HOENN_BEAUTY_MASTER, + 88 + }, { + MON_DATA_HOENN_CUTE_RIBBON, + 73, + 2, + RIBBON_HOENN_CUTE, + 89 + }, { + MON_DATA_HOENN_CUTE_RIBBON_SUPER, + 74, + 2, + RIBBON_HOENN_CUTE_SUPER, + 90 + }, { + MON_DATA_HOENN_CUTE_RIBBON_HYPER, + 75, + 2, + RIBBON_HOENN_CUTE_HYPER, + 91 + }, { + MON_DATA_HOENN_CUTE_RIBBON_MASTER, + 76, + 2, + RIBBON_HOENN_CUTE_MASTER, + 92 + }, { + MON_DATA_HOENN_SMART_RIBBON, + 73, + 3, + RIBBON_HOENN_SMART, + 93 + }, { + MON_DATA_HOENN_SMART_RIBBON_SUPER, + 74, + 3, + RIBBON_HOENN_SMART_SUPER, + 94 + }, { + MON_DATA_HOENN_SMART_RIBBON_HYPER, + 75, + 3, + RIBBON_HOENN_SMART_HYPER, + 95 + }, { + MON_DATA_HOENN_SMART_RIBBON_MASTER, + 76, + 3, + RIBBON_HOENN_SMART_MASTER, + 96 + }, { + MON_DATA_HOENN_TOUGH_RIBBON, + 73, + 4, + RIBBON_HOENN_TOUGH, + 97 + }, { + MON_DATA_HOENN_TOUGH_RIBBON_SUPER, + 74, + 4, + RIBBON_HOENN_TOUGH_SUPER, + 98 + }, { + MON_DATA_HOENN_TOUGH_RIBBON_HYPER, + 75, + 4, + RIBBON_HOENN_TOUGH_HYPER, + 99 + }, { + MON_DATA_HOENN_TOUGH_RIBBON_MASTER, + 76, + 4, + RIBBON_HOENN_TOUGH_MASTER, + 100 + }, { + MON_DATA_HOENN_WINNING_RIBBON, + 78, + 0, + RIBBON_HOENN_WINNING, + 101 + }, { + MON_DATA_HOENN_VICTORY_RIBBON, + 77, + 0, + RIBBON_HOENN_VICTORY, + 102 + }, { + MON_DATA_HOENN_ARTIST_RIBBON, + 79, + 1, + RIBBON_HOENN_ARTIST, + 103 + }, { + MON_DATA_HOENN_EFFORT_RIBBON, + 80, + 2, + RIBBON_HOENN_EFFORT, + 104 + }, { + MON_DATA_HOENN_MARINE_RIBBON, + 81, + 1, + RIBBON_HOENN_MARINE, + 0 | 0x8000 + }, { + MON_DATA_HOENN_LAND_RIBBON, + 81, + 3, + RIBBON_HOENN_LAND, + 1 | 0x8000 + }, { + MON_DATA_HOENN_SKY_RIBBON, + 81, + 4, + RIBBON_HOENN_SKY, + 2 | 0x8000 + }, { + MON_DATA_HOENN_COUNTRY_RIBBON, + 82, + 3, + RIBBON_HOENN_COUNTRY, + 178 + }, { + MON_DATA_HOENN_NATIONAL_RIBBON, + 82, + 4, + RIBBON_HOENN_NATIONAL, + 190 + }, { + MON_DATA_HOENN_EARTH_RIBBON, + 83, + 0, + RIBBON_HOENN_EARTH, + 191 + }, { + MON_DATA_HOENN_WORLD_RIBBON, + 83, + 1, + RIBBON_HOENN_WORLD, + 178 + }, { + MON_DATA_SINNOH_CHAMP_RIBBON, + 88, + 0, + RIBBON_SINNOH_CHAMP, + 105 + }, { + MON_DATA_COOL_RIBBON, + 89, + 0, + RIBBON_COOL, + 106 + }, { + MON_DATA_COOL_RIBBON_GREAT, + 90, + 0, + RIBBON_COOL_GREAT, + 107 + }, { + MON_DATA_COOL_RIBBON_ULTRA, + 91, + 0, + RIBBON_COOL_ULTRA, + 108 + }, { + MON_DATA_COOL_RIBBON_MASTER, + 92, + 0, + RIBBON_COOL_MASTER, + 109 + }, { + MON_DATA_BEAUTY_RIBBON, + 89, + 1, + RIBBON_BEAUTY, + 110 + }, { + MON_DATA_BEAUTY_RIBBON_GREAT, + 90, + 1, + RIBBON_BEAUTY_GREAT, + 111 + }, { + MON_DATA_BEAUTY_RIBBON_ULTRA, + 91, + 1, + RIBBON_BEAUTY_ULTRA, + 112 + }, { + MON_DATA_BEAUTY_RIBBON_MASTER, + 92, + 1, + RIBBON_BEAUTY_MASTER, + 113 + }, { + MON_DATA_CUTE_RIBBON, + 89, + 2, + RIBBON_CUTE, + 114 + }, { + MON_DATA_CUTE_RIBBON_GREAT, + 90, + 2, + RIBBON_CUTE_GREAT, + 115 + }, { + MON_DATA_CUTE_RIBBON_ULTRA, + 91, + 2, + RIBBON_CUTE_ULTRA, + 116 + }, { + MON_DATA_CUTE_RIBBON_MASTER, + 92, + 2, + RIBBON_CUTE_MASTER, + 117 + }, { + MON_DATA_SMART_RIBBON, + 89, + 3, + RIBBON_SMART, + 118 + }, { + MON_DATA_SMART_RIBBON_GREAT, + 90, + 3, + RIBBON_SMART_GREAT, + 119 + }, { + MON_DATA_SMART_RIBBON_ULTRA, + 91, + 3, + RIBBON_SMART_ULTRA, + 120 + }, { + MON_DATA_SMART_RIBBON_MASTER, + 92, + 3, + RIBBON_SMART_MASTER, + 121 + }, { + MON_DATA_TOUGH_RIBBON, + 89, + 4, + RIBBON_TOUGH, + 122 + }, { + MON_DATA_TOUGH_RIBBON_GREAT, + 90, + 4, + RIBBON_TOUGH_GREAT, + 123 + }, { + MON_DATA_TOUGH_RIBBON_ULTRA, + 91, + 4, + RIBBON_TOUGH_ULTRA, + 124 + }, { + MON_DATA_TOUGH_RIBBON_MASTER, + 92, + 4, + RIBBON_TOUGH_MASTER, + 125 + }, { + MON_DATA_ABILITY_RIBBON, + 93, + 0, + RIBBON_ABILITY, + 126 + }, { + MON_DATA_GREAT_ABILITY_RIBBON, + 94, + 0, + RIBBON_GREAT_ABILITY, + 127 + }, { + MON_DATA_DOUBLE_ABILITY_RIBBON, + 95, + 0, + RIBBON_DOUBLE_ABILITY, + 128 + }, { + MON_DATA_MULTI_ABILITY_RIBBON, + 96, + 0, + RIBBON_MULTI_ABILITY, + 129 + }, { + MON_DATA_PAIR_ABILITY_RIBBON, + 97, + 0, + RIBBON_PAIR_ABILITY, + 130 + }, { + MON_DATA_WORLD_ABILITY_RIBBON, + 98, + 0, + RIBBON_WORLD_ABILITY, + 131 + }, { + MON_DATA_ALERT_RIBBON, + 99, + 2, + RIBBON_ALERT, + 132 + }, { + MON_DATA_SHOCK_RIBBON, + 100, + 0, + RIBBON_SHOCK, + 133 + }, { + MON_DATA_DOWNCAST_RIBBON, + 101, + 1, + RIBBON_DOWNCAST, + 134 + }, { + MON_DATA_CARELESS_RIBBON, + 102, + 2, + RIBBON_CARELESS, + 135 + }, { + MON_DATA_RELAX_RIBBON, + 103, + 3, + RIBBON_RELAX, + 136 + }, { + MON_DATA_SNOOZE_RIBBON, + 104, + 0, + RIBBON_SNOOZE, + 137 + }, { + MON_DATA_SMILE_RIBBON, + 105, + 2, + RIBBON_SMILE, + 138 + }, { + MON_DATA_GORGEOUS_RIBBON, + 106, + 1, + RIBBON_GORGEOUS, + 139 + }, { + MON_DATA_ROYAL_RIBBON, + 107, + 3, + RIBBON_ROYAL, + 140 + }, { + MON_DATA_GORGEOUS_ROYAL_RIBBON, + 108, + 0, + RIBBON_GORGEOUS_ROYAL, + 141 + }, { + MON_DATA_FOOTPRINT_RIBBON, + 109, + 0, + RIBBON_FOOTPRINT, + 142 + }, { + MON_DATA_RECORD_RIBBON, + 110, + 1, + RIBBON_RECORD, + 143 + }, { + MON_DATA_HISTORY_RIBBON, + 111, + 3, + RIBBON_HISTORY, + 144 + }, { + MON_DATA_LEGEND_RIBBON, + 112, + 0, + RIBBON_LEGEND, + 145 + }, { + MON_DATA_RED_RIBBON, + 113, + 0, + RIBBON_RED, + 7 | 0x8000 + }, { + MON_DATA_GREEN_RIBBON, + 114, + 3, + RIBBON_GREEN, + 8 | 0x8000 + }, { + MON_DATA_BLUE_RIBBON, + 115, + 1, + RIBBON_BLUE, + 9 | 0x8000 + }, { + MON_DATA_FESTIVAL_RIBBON, + 116, + 1, + RIBBON_FESTIVAL, + 10 | 0x8000 + }, { + MON_DATA_CARNIVAL_RIBBON, + 117, + 0, + RIBBON_CARNIVAL, + 11 | 0x8000 + }, { + MON_DATA_CLASSIC_RIBBON, + 118, + 1, + RIBBON_CLASSIC, + 12 | 0x8000 + }, { + MON_DATA_PREMIER_RIBBON, + 119, + 0, + RIBBON_PREMIER, + 13 | 0x8000 + } +}; + +u32 FUN_0207FC5C(u8 a0, u32 a1) +{ + switch (a1) + { + case 0: + return UNK_020FB788[a0].monDataId; + case 1: + return UNK_020FB788[a0].gfxId; + case 2: + return UNK_020FB788[a0].palId; + case 3: + return UNK_020FB788[a0].nameIdx; + case 4: + return UNK_020FB788[a0].descIdx; + default: + return 0; + } +} + +int FUN_0207FCC0(u8 * a0, u32 a1) +{ + int ret = (int)UNK_020FB788[a1].descIdx; + if (ret & 0x8000) + ret = a0[(u8)ret] + 0x92; + return ret; +} + +u8 FUN_0207FCE0(u32 a0) +{ + int ret = (int)UNK_020FB788[a0].descIdx; + if (ret & 0x8000) + return (u8)ret; + return 0xFF; +} diff --git a/arm9/src/waza.c b/arm9/src/waza.c index f394fedd..5d676afa 100644 --- a/arm9/src/waza.c +++ b/arm9/src/waza.c @@ -37,8 +37,8 @@ u32 GetAttrFromWazaTbl(struct WazaTbl * wazaTbl, MoveAttr attr) { case MOVEATTR_EFFECT: return wazaTbl->effect; - case MOVEATTR_UNK1: - return wazaTbl->unk2; + case MOVEATTR_CLASS: + return wazaTbl->class; case MOVEATTR_POWER: return wazaTbl->power; case MOVEATTR_TYPE: |