Merge pull request #1336 from GriffinRichards/giftribbons

Document some ribbon usage
This commit is contained in:
GriffinR
2021-02-24 10:07:59 -05:00
committed by GitHub
40 changed files with 821 additions and 645 deletions

View File

@@ -51,6 +51,7 @@
#define MAX_REMATCH_ENTRIES 100 // only REMATCH_TABLE_ENTRIES (78) are used
#define NUM_CONTEST_WINNERS 13
#define UNION_ROOM_KB_ROW_COUNT 10
#define GIFT_RIBBONS_COUNT 11
#define PYRAMID_BAG_ITEMS_COUNT 10
#define HALL_FACILITIES_COUNT 9 // 7 facilities for single mode + tower double mode + tower multi mode.

View File

@@ -171,7 +171,7 @@
#define MON_DATA_NATIONAL_RIBBON 76
#define MON_DATA_EARTH_RIBBON 77
#define MON_DATA_WORLD_RIBBON 78
#define MON_DATA_FILLER 79
#define MON_DATA_UNUSED_RIBBONS 79
#define MON_DATA_EVENT_LEGAL 80
#define MON_DATA_KNOWN_MOVES 81
#define MON_DATA_RIBBON_COUNT 82
@@ -182,6 +182,55 @@
#define MON_DATA_SPATK2 87
#define MON_DATA_SPDEF2 88
// Ribbon IDs used by TV and Pokénav
#define CHAMPION_RIBBON 0
#define COOL_RIBBON_NORMAL 1
#define COOL_RIBBON_SUPER 2
#define COOL_RIBBON_HYPER 3
#define COOL_RIBBON_MASTER 4
#define BEAUTY_RIBBON_NORMAL 5
#define BEAUTY_RIBBON_SUPER 6
#define BEAUTY_RIBBON_HYPER 7
#define BEAUTY_RIBBON_MASTER 8
#define CUTE_RIBBON_NORMAL 9
#define CUTE_RIBBON_SUPER 10
#define CUTE_RIBBON_HYPER 11
#define CUTE_RIBBON_MASTER 12
#define SMART_RIBBON_NORMAL 13
#define SMART_RIBBON_SUPER 14
#define SMART_RIBBON_HYPER 15
#define SMART_RIBBON_MASTER 16
#define TOUGH_RIBBON_NORMAL 17
#define TOUGH_RIBBON_SUPER 18
#define TOUGH_RIBBON_HYPER 19
#define TOUGH_RIBBON_MASTER 20
#define WINNING_RIBBON 21
#define VICTORY_RIBBON 22
#define ARTIST_RIBBON 23
#define EFFORT_RIBBON 24
#define MARINE_RIBBON 25
#define LAND_RIBBON 26
#define SKY_RIBBON 27
#define COUNTRY_RIBBON 28
#define NATIONAL_RIBBON 29
#define EARTH_RIBBON 30
#define WORLD_RIBBON 31
#define FIRST_GIFT_RIBBON MARINE_RIBBON
#define LAST_GIFT_RIBBON WORLD_RIBBON
#define NUM_GIFT_RIBBONS (1 + LAST_GIFT_RIBBON - FIRST_GIFT_RIBBON)
// The above gift ribbons (Marine - World) are
// special distribution ribbons that correspond to
// 1 bit each in the Pokémon struct. Gen 4 hard-codes
// each of these to the given name. In Gen 3 they're
// used to get an index into giftRibbons in the save block,
// which can have a value 0-64 (0 is 'no ribbon') that
// corresponds to one of the special ribbons listed
// in gGiftRibbonDescriptionPointers. Most of these were
// never distributed
#define MAX_GIFT_RIBBON 64
#define MIN_LEVEL 1
#define MAX_LEVEL 100

View File

@@ -188,4 +188,22 @@
#define CONTESTLIVE_FLAG_LAST_BOTH_ROUNDS (1 << 6)
#define CONTESTLIVE_FLAG_NO_APPEALS (1 << 7)
// TV Show states for Spot the Cuties
#define SPOTCUTIES_STATE_INTRO 0
#define SPOTCUTIES_STATE_RIBBONS_LOW 1
#define SPOTCUTIES_STATE_RIBBONS_MID 2
#define SPOTCUTIES_STATE_RIBBONS_HIGH 3
#define SPOTCUTIES_STATE_RIBBON_INTRO 4
#define SPOTCUTIES_STATE_RIBBON_CHAMPION 5
#define SPOTCUTIES_STATE_RIBBON_COOL 6
#define SPOTCUTIES_STATE_RIBBON_BEAUTY 7
#define SPOTCUTIES_STATE_RIBBON_CUTE 8
#define SPOTCUTIES_STATE_RIBBON_SMART 9
#define SPOTCUTIES_STATE_RIBBON_TOUGH 10
#define SPOTCUTIES_STATE_RIBBON_WINNING 11
#define SPOTCUTIES_STATE_RIBBON_VICTORY 12
#define SPOTCUTIES_STATE_RIBBON_ARTIST 13
#define SPOTCUTIES_STATE_RIBBON_EFFORT 14
#define SPOTCUTIES_STATE_OUTRO 15
#endif //GUARD_CONSTANTS_TV_H

View File

@@ -196,22 +196,22 @@ extern const u8 gTVTrainerFanClubText08[];
extern const u8 gTVTrainerFanClubText09[];
extern const u8 gTVTrainerFanClubText10[];
extern const u8 gTVTrainerFanClubText11[];
extern const u8 gTVCutiesText00[];
extern const u8 gTVCutiesText01[];
extern const u8 gTVCutiesText02[];
extern const u8 gTVCutiesText03[];
extern const u8 gTVCutiesText04[];
extern const u8 gTVCutiesText05[];
extern const u8 gTVCutiesText06[];
extern const u8 gTVCutiesText07[];
extern const u8 gTVCutiesText08[];
extern const u8 gTVCutiesText09[];
extern const u8 gTVCutiesText10[];
extern const u8 gTVCutiesText11[];
extern const u8 gTVCutiesText12[];
extern const u8 gTVCutiesText13[];
extern const u8 gTVCutiesText14[];
extern const u8 gTVCutiesText15[];
extern const u8 TVSpotTheCuties_Text_Intro[];
extern const u8 TVSpotTheCuties_Text_RibbonsLow[];
extern const u8 TVSpotTheCuties_Text_RibbonsMid[];
extern const u8 TVSpotTheCuties_Text_RibbonsHigh[];
extern const u8 TVSpotTheCuties_Text_RibbonIntro[];
extern const u8 TVSpotTheCuties_Text_RibbonChampion[];
extern const u8 TVSpotTheCuties_Text_RibbonCool[];
extern const u8 TVSpotTheCuties_Text_RibbonBeauty[];
extern const u8 TVSpotTheCuties_Text_RibbonCute[];
extern const u8 TVSpotTheCuties_Text_RibbonSmart[];
extern const u8 TVSpotTheCuties_Text_RibbonTough[];
extern const u8 TVSpotTheCuties_Text_RibbonWinning[];
extern const u8 TVSpotTheCuties_Text_RibbonVictory[];
extern const u8 TVSpotTheCuties_Text_RibbonArtist[];
extern const u8 TVSpotTheCuties_Text_RibbonEffort[];
extern const u8 TVSpotTheCuties_Text_Outro[];
extern const u8 gTVPokemonNewsBattleFrontierText00[];
extern const u8 gTVPokemonNewsBattleFrontierText01[];
extern const u8 gTVPokemonNewsBattleFrontierText02[];

View File

@@ -50,6 +50,8 @@
#define BG_TILE_H_FLIP(n) (0x400 + (n))
#define BG_TILE_V_FLIP(n) (0x800 + (n))
#define NUM_BACKGROUNDS 4
// text-mode BG
#define OBJ_VRAM0 (VRAM + 0x10000)
#define OBJ_VRAM0_SIZE 0x8000

View File

@@ -905,7 +905,7 @@ struct ExternalEventData
u8 unknownExternalDataFields1[7]; // if actually used, may be broken up into different fields.
u32 unknownExternalDataFields2:8;
u32 currentPokeCoupons:24; // PokéCoupons stored by Pokémon Colosseum and XD from Mt. Battle runs. Earned PokéCoupons are also added to totalEarnedPokeCoupons. Colosseum/XD caps this at 9,999,999, but will read up to 16,777,215.
u32 gotGoldPokeCouponTitleReward:1; // Master Ball from Jp Colosseum Bonus Disc; for reaching 30,000 totalEarnedPokeCoupons
u32 gotGoldPokeCouponTitleReward:1; // Master Ball from JP Colosseum Bonus Disc; for reaching 30,000 totalEarnedPokeCoupons
u32 gotSilverPokeCouponTitleReward:1; // Light Ball Pikachu from JP Colosseum Bonus Disc; for reaching 5000 totalEarnedPokeCoupons
u32 gotBronzePokeCouponTitleReward:1; // PP Max from JP Colosseum Bonus Disc; for reaching 2500 totalEarnedPokeCoupons
u32 receivedAgetoCelebi:1; // from JP Colosseum Bonus Disc
@@ -919,7 +919,7 @@ struct ExternalEventData
struct ExternalEventFlags
{
u8 usedBoxRS:1; // Set by Pokémon Box: Ruby & Sapphire; denotes whether this save has connected to it and triggered the free False Swipe Swablu Egg giveaway.
u8 boxRSEggsUnlocked:2; // Set by Pokémon Box: Ruby & Sapphire; denotes the number of Eggs unlocked from deposits; 1 for ExtremeSpeed Zigzagoon (at 100 deposited), 2 for Pay Day Skitty (at 500 deposited), 3 for Surf Pichu (at 1500 deposited)
u8 boxRSEggsUnlocked:2; // Set by Pokémon Box: Ruby & Sapphire; denotes the number of Eggs unlocked from deposits; 1 for ExtremeSpeed Zigzagoon (at 100 deposited), 2 for Pay Day Skitty (at 500 deposited), 3 for Surf Pichu (at 1499 deposited)
u8 padding:5;
u8 unknownFlag1;
u8 receivedGCNJirachi; // Both the US Colosseum Bonus Disc and PAL/AUS Pokémon Channel use this field. One cannot receive a WISHMKR Jirachi and CHANNEL Jirachi with the same savefile.
@@ -1017,7 +1017,7 @@ struct SaveBlock1
/*0x2e90*/ struct ContestWinner contestWinners[NUM_CONTEST_WINNERS]; // see CONTEST_WINNER_*
/*0x3030*/ struct DayCare daycare;
/*0x3150*/ struct LinkBattleRecords linkBattleRecords;
/*0x31A8*/ u8 giftRibbons[11];
/*0x31A8*/ u8 giftRibbons[GIFT_RIBBONS_COUNT];
/*0x31B3*/ struct ExternalEventData externalEventData;
/*0x31C7*/ struct ExternalEventFlags externalEventFlags;
/*0x31DC*/ struct Roamer roamer;

View File

@@ -4033,9 +4033,9 @@ extern const u32 gPokenavLeftHeaderBeauty_Gfx[];
extern const u32 gPokenavLeftHeaderCute_Gfx[];
extern const u32 gPokenavLeftHeaderSmart_Gfx[];
extern const u32 gPokenavLeftHeaderTough_Gfx[];
extern const u16 gUnknown_08DDE010[];
extern const u32 gUnknown_08DDE030[];
extern const u32 gUnknown_08DDE12C[];
extern const u16 gPokenavRibbonsSummaryBg_Pal[];
extern const u32 gPokenavRibbonsSummaryBg_Gfx[];
extern const u32 gPokenavRibbonsSummaryBg_Tilemap[];
extern const u32 gPageInfoTilemap[];
extern const u32 gUnknown_08D98CC8[];

View File

@@ -72,7 +72,7 @@ struct PokemonSubstruct3
/* 0x0B */ u32 nationalRibbon:1;
/* 0x0B */ u32 earthRibbon:1;
/* 0x0B */ u32 worldRibbon:1; // distributed during Pokémon Festa '04 and '05 to tournament winners
/* 0x0B */ u32 filler:4;
/* 0x0B */ u32 unusedRibbons:4; // discarded in Gen 4
/* 0x0B */ u32 eventLegal:1; // controls Mew & Deoxys obedience; if set, Pokémon is a fateful encounter in Gen 4+; set for in-game event island legendaries, some distributed events, and Pokémon from XD: Gale of Darkness.
};