item data generation (#1105)

* item entities

* pt II

* item hud scripts

* world map

* remove duplicate

* py formatting

* generate hud script ID mapping

* rename jump item -> boots

* item table

* unify pt1

* unify pt2

* item enum and ranges

* fix

* disambiguate boots/hammer names

* move table as well

* remove old move table

* comments concerns etc

* py fmt

* recipe generation

* break it!

* phix it

---------

Co-authored-by: HailSanta <Hail2Santa@gmail.com>
Co-authored-by: Ethan Roseman <ethteck@gmail.com>
This commit is contained in:
HailSanta 2023-08-02 23:44:30 -04:00 committed by GitHub
parent f8d6ccddc4
commit f445cbaf18
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
64 changed files with 9781 additions and 11898 deletions

View File

@ -1249,8 +1249,8 @@ typedef struct MessagePrintState {
/* 0x51B */ char unk_51B[0x1]; /* 0x51B */ char unk_51B[0x1];
/* 0x51C */ u16 speechVolumePitch; /* 0x51C */ u16 speechVolumePitch;
/* 0x51E */ char unk_51E[0x2]; /* 0x51E */ char unk_51E[0x2];
/* 0x520 */ s32 speedSoundIDA; /* 0x520 */ s32 speechSoundIDA;
/* 0x524 */ s32 speedSoundIDB; /* 0x524 */ s32 speechSoundIDB;
/* 0x528 */ u16 varBufferReadPos; /* 0x528 */ u16 varBufferReadPos;
/* 0x52A */ s8 unk_52A; /* 0x52A */ s8 unk_52A;
/* 0x52B */ u8 curImageIndex; /* 0x52B */ u8 curImageIndex;
@ -2472,11 +2472,11 @@ typedef struct CreditsData {
/* 0x04 */ CreditsLine lines[32]; /* 0x04 */ CreditsLine lines[32];
} CreditsData; // size = 0x74 } CreditsData; // size = 0x74
typedef struct CreditsUnkBeta { typedef struct CreditsPairOffset {
/* 0x00 */ u8 unk_00; /* 0x00 */ u8 firstChar;
/* 0x01 */ u8 unk_01; /* 0x01 */ u8 secondChar;
/* 0x02 */ s16 size; /* 0x02 */ s16 offset;
} CreditsUnkBeta; // size = 0x4 } CreditsPairOffset; // size = 0x4
typedef struct GameMode { typedef struct GameMode {
/* 0x00 */ u16 flags; /* 0x00 */ u16 flags;
@ -2495,11 +2495,11 @@ typedef struct PartnerDMAData {
/* 0x10 */ s32 y; /* 0x10 */ s32 y;
} PartnerDMAData; // size = 0x14 } PartnerDMAData; // size = 0x14
typedef struct struct_D_802EB620 { typedef struct MsgVoice {
/* 0x00 */ s32 unk_00; /* 0x00 */ s32 unk_00;
/* 0x04 */ s32 unk_04; /* 0x04 */ s32 unk_04;
/* 0x08 */ s32 unk_08; /* 0x08 */ s32 unk_08;
} struct_D_802EB620; // size = 0x0C } MsgVoice; // size = 0x0C
typedef struct Rect { typedef struct Rect {
/* 0x00 */ s32 ulx; /* 0x00 */ s32 ulx;

View File

@ -232,7 +232,7 @@ enum StoryProgress {
STORY_CH8_REACHED_BOWSERS_CASTLE = 94, STORY_CH8_REACHED_BOWSERS_CASTLE = 94,
STORY_CH8_REACHED_PEACHS_CASTLE = 95, STORY_CH8_REACHED_PEACHS_CASTLE = 95,
STORY_EPILOGUE = 96, STORY_EPILOGUE = 96,
STORY_61 = 97, STORY_NEVER = 97,
}; };
enum KoopaKootFavors { enum KoopaKootFavors {
@ -537,9 +537,12 @@ enum SoundIDs {
SOUND_E = 0x0000000E, SOUND_E = 0x0000000E,
SOUND_F = 0x0000000F, SOUND_F = 0x0000000F,
SOUND_10 = 0x00000010, SOUND_10 = 0x00000010,
SOUND_11 = 0x00000011, SOUND_NORMAL_VOICE_A = 0x00000011,
SOUND_12 = 0x00000012, SOUND_NORMAL_VOICE_B = 0x00000012,
SOUND_14 = 0x00000014, SOUND_14 = 0x00000014,
SOUND_BOWSER_VOICE_A = 0x00000017,
SOUND_BOWSER_VOICE_B = 0x00000018,
SOUND_STAR_VOICE = 0x0000001B,
SOUND_21 = 0x00000021, SOUND_21 = 0x00000021,
SOUND_22 = 0x00000022, SOUND_22 = 0x00000022,
SOUND_23 = 0x00000023, SOUND_23 = 0x00000023,
@ -1756,396 +1759,7 @@ enum AuxCameraParams {
AUX_CAM_ZOOM_PERCENT = 8 AUX_CAM_ZOOM_PERCENT = 8
}; };
enum ItemIDs { #include "item_enum.h"
ITEM_NONE = 0x00000000,
ITEM_BOOTS = 0x00000001,
ITEM_SUPER_BOOTS = 0x00000002,
ITEM_ULTRA_BOOTS = 0x00000003,
ITEM_HAMMER = 0x00000004,
ITEM_SUPER_HAMMER = 0x00000005,
ITEM_ULTRA_HAMMER = 0x00000006,
ITEM_LUCKY_STAR = 0x00000007,
ITEM_MAP = 0x00000008,
ITEM_BIG_MAP = 0x00000009,
ITEM_FIRST_DEGREE_CARD = 0x0000000A,
ITEM_SECOND_DEGREE_CARD = 0x0000000B,
ITEM_THIRD_DEGREE_CARD = 0x0000000C,
ITEM_FOURTH_DEGREE_CARD = 0x0000000D,
ITEM_DIPLOMA = 0x0000000E,
ITEM_ULTRA_STONE = 0x0000000F,
ITEM_KOOPA_FORTRESS_KEY = 0x00000010,
ITEM_RUINS_KEY = 0x00000011,
ITEM_PULSE_STONE = 0x00000012,
ITEM_TUBBA_CASTLE_KEY = 0x00000013,
ITEM_CRYSTAL_PALACE_KEY = 0x00000014,
ITEM_LUNAR_STONE = 0x00000015,
ITEM_PYRAMID_STONE = 0x00000016,
ITEM_DIAMOND_STONE = 0x00000017,
ITEM_GOLDEN_VASE = 0x00000018,
ITEM_KOOPER_SHELL = 0x00000019,
ITEM_BOWSER_CASTLE_KEY = 0x0000001A,
ITEM_FOREST_PASS = 0x0000001B,
ITEM_BOO_WEIGHT = 0x0000001C,
ITEM_BOO_PORTRAIT = 0x0000001D,
ITEM_CRYSTAL_BERRY = 0x0000001E,
ITEM_MYSTICAL_KEY = 0x0000001F,
ITEM_STOREROOM_KEY = 0x00000020,
ITEM_TOY_TRAIN = 0x00000021,
ITEM_BOO_RECORD = 0x00000022,
ITEM_FRYING_PAN = 0x00000023,
ITEM_DICTIONARY = 0x00000024,
ITEM_MYSTERY_NOTE = 0x00000025,
ITEM_SUSPICIOUS_NOTE = 0x00000026,
ITEM_CRYSTAL_BALL = 0x00000027,
ITEM_SCREWDRIVER = 0x00000028,
ITEM_COOKBOOK = 0x00000029,
ITEM_JADE_RAVEN = 0x0000002A,
ITEM_MAGICAL_SEED1 = 0x0000002B,
ITEM_MAGICAL_SEED2 = 0x0000002C,
ITEM_MAGICAL_SEED3 = 0x0000002D,
ITEM_MAGICAL_SEED4 = 0x0000002E,
ITEM_TOAD_DOLL = 0x0000002F,
ITEM_CALCULATOR = 0x00000030,
ITEM_SNOWMAN_BUCKET = 0x00000031,
ITEM_SNOWMAN_SCARF = 0x00000032,
ITEM_RED_KEY = 0x00000033,
ITEM_BLUE_KEY = 0x00000034,
ITEM_UNUSED_LETTER_1 = 0x00000035,
ITEM_LETTER_TO_MERLON = 0x00000036,
ITEM_LETTER_TO_GOOMPA = 0x00000037,
ITEM_LETTER_TO_MORT_T = 0x00000038,
ITEM_LETTER_TO_RUSS_T = 0x00000039,
ITEM_LETTER_TO_MAYOR_PENGUIN = 0x0000003A,
ITEM_LETTER_TO_MERLOW = 0x0000003B,
ITEM_LETTER_TO_FICE_T = 0x0000003C,
ITEM_LETTER_TO_NOMADIMOUSE = 0x0000003D,
ITEM_LETTER_TO_MINHT = 0x0000003E,
ITEM_UNUSED_LETTER_2 = 0x0000003F,
ITEM_LETTER_CHAIN_GOOMPAPA_1 = 0x00000040,
ITEM_LETTER_TO_IGOR = 0x00000041,
ITEM_UNUSED_LETTER_3 = 0x00000042,
ITEM_UNUSED_LETTER_4 = 0x00000043,
ITEM_UNUSED_LETTER_5 = 0x00000044,
ITEM_LETTER_CHAIN_FRANKY = 0x00000045,
ITEM_LETTER_CHAIN_MUSS_T = 0x00000046,
ITEM_LETTER_CHAIN_KOOVER_1 = 0x00000047,
ITEM_LETTER_CHAIN_FISHMAEL = 0x00000048,
ITEM_LETTER_CHAIN_KOOVER_2 = 0x00000049,
ITEM_LETTER_CHAIN_MR_E = 0x0000004A,
ITEM_LETTER_CHAIN_MISS_T = 0x0000004B,
ITEM_LETTER_CHAIN_LITTLE_MOUSER = 0x0000004C,
ITEM_UNUSED_LETTER_6 = 0x0000004D,
ITEM_LETTER_CHAIN_DANE_T_1 = 0x0000004E,
ITEM_LETTER_CHAIN_YOSHI_KID = 0x0000004F,
ITEM_LETTER_CHAIN_DANE_T_2 = 0x00000050,
ITEM_LETTER_CHAIN_FROST_T = 0x00000051,
ITEM_LETTER_CHAIN_GOOMPAPA_2 = 0x00000052,
ITEM_ARTIFACT = 0x00000053,
ITEM_LETTER_TO_KOLORADO = 0x00000054,
ITEM_UNUSED_LETTER_7 = 0x00000055,
ITEM_DOLLY = 0x00000056,
ITEM_WATER_STONE = 0x00000057,
ITEM_MAGICAL_BEAN = 0x00000058,
ITEM_FERTILE_SOIL = 0x00000059,
ITEM_MIRACLE_WATER = 0x0000005A,
ITEM_VOLCANO_VASE = 0x0000005B,
ITEM_KOOT_THE_TAPE = 0x0000005C,
ITEM_BAKING_SUGAR = 0x0000005D,
ITEM_BAKING_SALT = 0x0000005E,
ITEM_BAKING_EGG = 0x0000005F,
ITEM_BAKING_CREAM = 0x00000060,
ITEM_BAKING_STRAWBERRY = 0x00000061,
ITEM_BAKING_BUTTER = 0x00000062,
ITEM_BAKING_CLEANSER = 0x00000063,
ITEM_BAKING_WATER = 0x00000064,
ITEM_BAKING_FLOUR = 0x00000065,
ITEM_BAKING_MILK = 0x00000066,
ITEM_LYRICS = 0x00000067,
ITEM_MELODY = 0x00000068,
ITEM_MAILBAG = 0x00000069,
ITEM_PEACH_KEY1 = 0x0000006A,
ITEM_ODD_KEY = 0x0000006B,
ITEM_STAR_STONE = 0x0000006C,
ITEM_SNEAKY_PARASOL = 0x0000006D,
ITEM_KOOT_KOOPA_LEGENDS = 0x0000006E,
ITEM_KOOT_LUIGIS_AUTOGRAPH = 0x0000006F,
ITEM_KOOT_EMPTY_WALLET = 0x00000070,
ITEM_KOOT_MERLUVLEES_AUTOGRAPH = 0x00000071,
ITEM_KOOT_SHELL = 0x00000072,
ITEM_KOOT_OLD_PHOTO = 0x00000073,
ITEM_KOOT_GLASSES = 0x00000074,
ITEM_KOOT_ALT_PHOTO = 0x00000075,
ITEM_KOOT_PACKAGE = 0x00000076,
ITEM_KOOT_RED_JAR = 0x00000077,
ITEM_PEACH_KEY2 = 0x00000078,
ITEM_WAREHOUSE_KEY = 0x00000079,
ITEM_PRISON_KEY1 = 0x0000007A,
ITEM_SILVER_CREDIT = 0x0000007B,
ITEM_GOLD_CREDIT = 0x0000007C,
ITEM_PRISON_KEY2 = 0x0000007D,
ITEM_PRISON_KEY3 = 0x0000007E,
ITEM_PRISON_KEY4 = 0x0000007F,
ITEM_FIRE_FLOWER = 0x00000080,
ITEM_SNOWMAN_DOLL = 0x00000081,
ITEM_THUNDER_RAGE = 0x00000082,
ITEM_SHOOTING_STAR = 0x00000083,
ITEM_THUNDER_BOLT = 0x00000084,
ITEM_PEBBLE = 0x00000085,
ITEM_DUSTY_HAMMER = 0x00000086,
ITEM_INSECTICIDE_HERB = 0x00000087,
ITEM_STONE_CAP = 0x00000088,
ITEM_TASTY_TONIC = 0x00000089,
ITEM_MUSHROOM = 0x0000008A,
ITEM_VOLT_SHROOM = 0x0000008B,
ITEM_SUPER_SHROOM = 0x0000008C,
ITEM_DRIED_SHROOM = 0x0000008D,
ITEM_ULTRA_SHROOM = 0x0000008E,
ITEM_SLEEPY_SHEEP = 0x0000008F,
ITEM_POW_BLOCK = 0x00000090,
ITEM_HUSTLE_DRINK = 0x00000091,
ITEM_STOP_WATCH = 0x00000092,
ITEM_WHACKAS_BUMP = 0x00000093,
ITEM_APPLE = 0x00000094,
ITEM_LIFE_SHROOM = 0x00000095,
ITEM_MYSTERY = 0x00000096,
ITEM_REPEL_GEL = 0x00000097,
ITEM_FRIGHT_JAR = 0x00000098,
ITEM_PLEASE_COME_BACK = 0x00000099,
ITEM_DIZZY_DIAL = 0x0000009A,
ITEM_SUPER_SODA = 0x0000009B,
ITEM_LEMON = 0x0000009C,
ITEM_LIME = 0x0000009D,
ITEM_BLUE_BERRY = 0x0000009E,
ITEM_RED_BERRY = 0x0000009F,
ITEM_YELLOW_BERRY = 0x000000A0,
ITEM_BUBBLE_BERRY = 0x000000A1,
ITEM_JAMMIN_JELLY = 0x000000A2,
ITEM_MAPLE_SYRUP = 0x000000A3,
ITEM_HONEY_SYRUP = 0x000000A4,
ITEM_GOOMNUT = 0x000000A5,
ITEM_KOOPA_LEAF = 0x000000A6,
ITEM_DRIED_PASTA = 0x000000A7,
ITEM_DRIED_FRUIT = 0x000000A8,
ITEM_STRANGE_LEAF = 0x000000A9,
ITEM_CAKE_MIX = 0x000000AA,
ITEM_EGG = 0x000000AB,
ITEM_COCONUT = 0x000000AC,
ITEM_MELON = 0x000000AD,
ITEM_STINKY_HERB = 0x000000AE,
ITEM_ICED_POTATO = 0x000000AF,
ITEM_SPICY_SOUP = 0x000000B0,
ITEM_APPLE_PIE = 0x000000B1,
ITEM_HONEY_ULTRA = 0x000000B2,
ITEM_MAPLE_ULTRA = 0x000000B3,
ITEM_JELLY_ULTRA = 0x000000B4,
ITEM_KOOPASTA = 0x000000B5,
ITEM_FRIED_SHROOM = 0x000000B6,
ITEM_SHROOM_CAKE = 0x000000B7,
ITEM_SHROOM_STEAK = 0x000000B8,
ITEM_HOT_SHROOM = 0x000000B9,
ITEM_SWEET_SHROOM = 0x000000BA,
ITEM_YUMMY_MEAL = 0x000000BB,
ITEM_HEALTHY_JUICE = 0x000000BC,
ITEM_BLAND_MEAL = 0x000000BD,
ITEM_DELUXE_FEAST = 0x000000BE,
ITEM_SPECIAL_SHAKE = 0x000000BF,
ITEM_BIG_COOKIE = 0x000000C0,
ITEM_CAKE = 0x000000C1,
ITEM_MISTAKE = 0x000000C2,
ITEM_KOOPA_TEA = 0x000000C3,
ITEM_HONEY_SUPER = 0x000000C4,
ITEM_MAPLE_SUPER = 0x000000C5,
ITEM_JELLY_SUPER = 0x000000C6,
ITEM_SPAGHETTI = 0x000000C7,
ITEM_EGG_MISSILE = 0x000000C8,
ITEM_FRIED_EGG = 0x000000C9,
ITEM_HONEY_SHROOM = 0x000000CA,
ITEM_HONEY_CANDY = 0x000000CB,
ITEM_ELECTRO_POP = 0x000000CC,
ITEM_FIRE_POP = 0x000000CD,
ITEM_LIME_CANDY = 0x000000CE,
ITEM_COCO_POP = 0x000000CF,
ITEM_LEMON_CANDY = 0x000000D0,
ITEM_JELLY_POP = 0x000000D1,
ITEM_STRANGE_CAKE = 0x000000D2,
ITEM_KOOKY_COOKIE = 0x000000D3,
ITEM_FROZEN_FRIES = 0x000000D4,
ITEM_POTATO_SALAD = 0x000000D5,
ITEM_NUTTY_CAKE = 0x000000D6,
ITEM_MAPLE_SHROOM = 0x000000D7,
ITEM_BOILED_EGG = 0x000000D8,
ITEM_YOSHI_COOKIE = 0x000000D9,
ITEM_JELLY_SHROOM1 = 0x000000DA,
ITEM_JELLY_SHROOM2 = 0x000000DB,
ITEM_JELLY_SHROOM3 = 0x000000DC,
ITEM_JELLY_SHROOM4 = 0x000000DD,
ITEM_JELLY_SHROOM5 = 0x000000DE,
ITEM_JELLY_SHROOM6 = 0x000000DF,
ITEM_SPIN_SMASH = 0x000000E0,
ITEM_MULTIBOUNCE = 0x000000E1,
ITEM_POWER_PLUS_A = 0x000000E2,
ITEM_DODGE_MASTER = 0x000000E3,
ITEM_POWER_BOUNCE = 0x000000E4,
ITEM_SPIKE_SHIELD = 0x000000E5,
ITEM_FIRST_ATTACK = 0x000000E6,
ITEM_HP_PLUS_A = 0x000000E7,
ITEM_QUAKE_HAMMER = 0x000000E8,
ITEM_DOUBLE_DIP = 0x000000E9,
ITEM_MYSTERY_SCROLL = 0x000000EA,
ITEM_SLEEP_STOMP = 0x000000EB,
ITEM_FIRE_SHIELD = 0x000000EC,
ITEM_QUICK_CHANGE = 0x000000ED,
ITEM_D_DOWN_POUND = 0x000000EE,
ITEM_DIZZY_STOMP = 0x000000EF,
ITEM_SMASH_CHARGE0 = 0x000000F0,
ITEM_PRETTY_LUCKY = 0x000000F1,
ITEM_FEELING_FINE = 0x000000F2,
ITEM_ATTACK_FX_A = 0x000000F3,
ITEM_ALLOR_NOTHING = 0x000000F4,
ITEM_HP_DRAIN = 0x000000F5,
ITEM_BOOTS_CHARGE0 = 0x000000F6,
ITEM_SLOW_GO = 0x000000F7,
ITEM_FP_PLUS_A = 0x000000F8,
ITEM_MEGA_RUSH = 0x000000F9,
ITEM_ICE_POWER = 0x000000FA,
ITEM_DEFEND_PLUS_A = 0x000000FB,
ITEM_PAY_OFF = 0x000000FC,
ITEM_MONEY_MONEY = 0x000000FD,
ITEM_CHILL_OUT = 0x000000FE,
ITEM_HAPPY_HEART_A = 0x000000FF,
ITEM_ZAP_TAP = 0x00000100,
ITEM_BERSERKER = 0x00000101,
ITEM_RIGHT_ON = 0x00000102,
ITEM_RUNAWAY_PAY = 0x00000103,
ITEM_REFUND = 0x00000104,
ITEM_FLOWER_SAVER_A = 0x00000105,
ITEM_TRIPLE_DIP = 0x00000106,
ITEM_HAMMER_THROW = 0x00000107,
ITEM_MEGA_QUAKE = 0x00000108,
ITEM_SMASH_CHARGE = 0x00000109,
ITEM_BOOTS_CHARGE = 0x0000010A,
ITEM_S_SMASH_CHG = 0x0000010B,
ITEM_S_JUMP_CHG = 0x0000010C,
ITEM_POWER_RUSH = 0x0000010D,
ITEM_AUTO_JUMP = 0x0000010E,
ITEM_AUTO_SMASH = 0x0000010F,
ITEM_CRAZY_HEART = 0x00000110,
ITEM_LAST_STAND = 0x00000111,
ITEM_CLOSE_CALL = 0x00000112,
ITEM_P_UP_D_DOWN = 0x00000113,
ITEM_LUCKY_DAY = 0x00000114,
ITEM_MEGA_HP_DRAIN = 0x00000115,
ITEM_P_DOWN_D_UP = 0x00000116,
ITEM_POWER_QUAKE = 0x00000117,
ITEM_AUTO_MULTIBOUNCE = 0x00000118,
ITEM_FLOWER_FANATIC = 0x00000119,
ITEM_HEART_FINDER = 0x0000011A,
ITEM_FLOWER_FINDER = 0x0000011B,
ITEM_SPIN_ATTACK = 0x0000011C,
ITEM_DIZZY_ATTACK = 0x0000011D,
ITEM_I_SPY = 0x0000011E,
ITEM_SPEEDY_SPIN = 0x0000011F,
ITEM_BUMP_ATTACK = 0x00000120,
ITEM_POWER_JUMP = 0x00000121,
ITEM_SUPER_JUMP = 0x00000122,
ITEM_MEGA_JUMP = 0x00000123,
ITEM_POWER_SMASH1 = 0x00000124,
ITEM_SUPER_SMASH = 0x00000125,
ITEM_MEGA_SMASH = 0x00000126,
ITEM_POWER_SMASH2 = 0x00000127,
ITEM_POWER_SMASH3 = 0x00000128,
ITEM_DEEP_FOCUS1 = 0x00000129,
ITEM_SUPER_FOCUS = 0x0000012A,
ITEM_SHRINK_SMASH = 0x0000012B,
ITEM_SHELL_CRACK = 0x0000012C,
ITEM_KAIDEN = 0x0000012D,
ITEM_D_DOWN_JUMP = 0x0000012E,
ITEM_SHRINK_STOMP = 0x0000012F,
ITEM_DAMAGE_DODGE_A = 0x00000130,
ITEM_EARTHQUAKE_JUMP = 0x00000131,
ITEM_DEEP_FOCUS2 = 0x00000132,
ITEM_DEEP_FOCUS3 = 0x00000133,
ITEM_HP_PLUS_B = 0x00000134,
ITEM_FP_PLUS_B = 0x00000135,
ITEM_HAPPY_HEART_B = 0x00000136,
ITEM_HAPPY_HEART_X = 0x00000137,
ITEM_FLOWER_SAVER_B = 0x00000138,
ITEM_FLOWER_SAVER_X = 0x00000139,
ITEM_DAMAGE_DODGE_B = 0x0000013A,
ITEM_DAMAGE_DODGE_X = 0x0000013B,
ITEM_POWER_PLUS_B = 0x0000013C,
ITEM_POWER_PLUS_X = 0x0000013D,
ITEM_DEFEND_PLUS_X = 0x0000013E,
ITEM_DEFEND_PLUS_Y = 0x0000013F,
ITEM_HAPPY_FLOWER_A = 0x00000140,
ITEM_HAPPY_FLOWER_B = 0x00000141,
ITEM_HAPPY_FLOWER_X = 0x00000142,
ITEM_GROUP_FOCUS = 0x00000143,
ITEM_PEEKABOO = 0x00000144,
ITEM_ATTACK_FX_D = 0x00000145,
ITEM_ATTACK_FX_B = 0x00000146,
ITEM_ATTACK_FX_E = 0x00000147,
ITEM_ATTACK_FX_C = 0x00000148,
ITEM_ATTACK_FX_F = 0x00000149,
ITEM_HP_PLUS_C = 0x0000014A,
ITEM_HP_PLUS_X = 0x0000014B,
ITEM_HP_PLUS_Y = 0x0000014C,
ITEM_FP_PLUS_C = 0x0000014D,
ITEM_FP_PLUS_X = 0x0000014E,
ITEM_FP_PLUS_Y = 0x0000014F,
ITEM_HEALTHY_HEALTHY = 0x00000150,
ITEM_ATTACK_FX_F2 = 0x00000151,
ITEM_ATTACK_FX_F3 = 0x00000152,
ITEM_ATTACK_FX_F4 = 0x00000153,
ITEM_ATTACK_FX_F5 = 0x00000154,
ITEM_PARTNER_ATTACK = 0x00000155,
ITEM_HEART = 0x00000156,
ITEM_COIN = 0x00000157,
ITEM_HEART_PIECE = 0x00000158,
ITEM_STAR_POINT = 0x00000159,
ITEM_HEART_POINT = 0x0000015A,
ITEM_FLOWER_POINT = 0x0000015B,
ITEM_STAR_PIECE = 0x0000015C,
ITEM_PRESENT = 0x0000015D,
ITEM_CAKE_DONE = 0x0000015E,
ITEM_CAKE_BARE = 0x0000015F,
ITEM_CAKE_PAN = 0x00000160,
ITEM_CAKE_BATTER = 0x00000161,
ITEM_CAKE_BOWL = 0x00000162,
ITEM_CAKE_MIXED = 0x00000163,
ITEM_CAKE_WITH_ICING = 0x00000164,
ITEM_CAKE_WITH_BERRIES = 0x00000165,
ITEM_HAMMER1_ICON = 0x00000166,
ITEM_HAMMER2_ICON = 0x00000167,
ITEM_HAMMER3_ICON = 0x00000168,
ITEM_BOOTS1_ICON = 0x00000169,
ITEM_BOOTS2_ICON = 0x0000016A,
ITEM_BOOTS3_ICON = 0x0000016B,
ITEM_ITEMS_ICON = 0x0000016C,
};
#define LOOKUP_ITEM(itemID) gItemTable[itemID & ~0xF0000]
// item ranges:
// 001 - 007 = gear (hammer/boots)
// 008 - 00F = 'quest' items
// 010 - 07F = keys
// 080 - 0DA = consumables
// 0DB - 0DF = unused
// 0E0 - 154 badges
// 155+ misc (collectables, utility items for menu purposes, etc)
#define ITEM_FIRST_KEY ITEM_KOOPA_FORTRESS_KEY
#define ITEM_LAST_KEY ITEM_PRISON_KEY4
#define ITEM_FIRST_CONSUMABLE ITEM_FIRE_FLOWER
#define ITEM_LAST_CONSUMABLE ITEM_JELLY_SHROOM1
#define ITEM_FIRST_BADGE ITEM_SPIN_SMASH
#define ITEM_LAST_BADGE ITEM_ATTACK_FX_F5
#define ITEM_NUM_KEYS (ITEM_LAST_KEY - ITEM_FIRST_KEY + 1)
#define ITEM_NUM_CONSUMABLES (ITEM_LAST_CONSUMABLE - ITEM_FIRST_CONSUMABLE + 1)
#define IS_ITEM(itemID) (itemID >= ITEM_FIRST_KEY && itemID <= ITEM_LAST_CONSUMABLE)
#define IS_BADGE(itemID) (itemID >= ITEM_FIRST_BADGE && itemID <= ITEM_LAST_BADGE)
// used for chest and give item events // used for chest and give item events
enum GotItemType { enum GotItemType {
@ -3799,213 +3413,7 @@ enum EffectGfxDataFlags {
FX_GRAPHICS_CAN_FREE = 0x00000002, FX_GRAPHICS_CAN_FREE = 0x00000002,
}; };
enum MoveIDs { #include "move_enum.h"
MOVE_NONE = 0x00000000,
MOVE_UNUSED_01 = 0x00000001,
MOVE_UNUSED_02 = 0x00000002,
MOVE_HAMMER1 = 0x00000003,
MOVE_HAMMER2 = 0x00000004,
MOVE_HAMMER3 = 0x00000005,
MOVE_UNUSED_HAMMER4 = 0x00000006,
MOVE_UNUSED_HAMMER5 = 0x00000007,
MOVE_SPIN_SMASH = 0x00000008,
MOVE_QUAKE_HAMMER = 0x00000009,
MOVE_D_DOWN_POUND = 0x0000000A,
MOVE_SMASH_CHARGE0 = 0x0000000B,
MOVE_UNUSED_HAMMER_0C = 0x0000000C,
MOVE_HAMMER_THROW = 0x0000000D,
MOVE_MEGA_QUAKE = 0x0000000E,
MOVE_SMASH_CHARGE = 0x0000000F,
MOVE_UNUSED_HAMMER_10 = 0x00000010,
MOVE_SUPER_SMASH_CHARGE = 0x00000011,
MOVE_UNUSED_HAMMER_12 = 0x00000012,
MOVE_AUTO_SMASH = 0x00000013,
MOVE_POWER_QUAKE = 0x00000014,
MOVE_POWER_SMASH = 0x00000015,
MOVE_SUPER_SMASH = 0x00000016,
MOVE_MEGA_SMASH = 0x00000017,
MOVE_SHRINK_SMASH = 0x00000018,
MOVE_SHELL_CRACK = 0x00000019,
MOVE_JUMP1 = 0x0000001A,
MOVE_JUMP2 = 0x0000001B,
MOVE_JUMP3 = 0x0000001C,
MOVE_UNUSED_JUMP4 = 0x0000001D,
MOVE_UNUSED_JUMP5 = 0x0000001E,
MOVE_MULTIBOUNCE = 0x0000001F,
MOVE_POWER_BOUNCE = 0x00000020,
MOVE_SLEEP_STOMP = 0x00000021,
MOVE_DIZZY_STOMP = 0x00000022,
MOVE_JUMP_CHARGE0 = 0x00000023,
MOVE_UNUSED_24 = 0x00000024,
MOVE_JUMP_CHARGE = 0x00000025,
MOVE_UNUSED_26 = 0x00000026,
MOVE_SUPER_JUMP_CHARGE = 0x00000027,
MOVE_UNUSED_28 = 0x00000028,
MOVE_AUTO_JUMP = 0x00000029,
MOVE_AUTO_MULTIBOUNCE = 0x0000002A,
MOVE_POWER_JUMP = 0x0000002B,
MOVE_SUPER_JUMP = 0x0000002C,
MOVE_MEGA_JUMP = 0x0000002D,
MOVE_D_DOWN_JUMP = 0x0000002E,
MOVE_SHRINK_STOMP = 0x0000002F,
MOVE_EARTHQUAKE_JUMP = 0x00000030,
MOVE_UNUSED_DEFEND_PLUS = 0x00000031,
MOVE_UNUSED_32 = 0x00000032,
MOVE_DAMAGE_DODGE = 0x00000033,
MOVE_ITEMS = 0x00000034,
MOVE_DOUBLE_DIP = 0x00000035,
MOVE_TRIPLE_DIP = 0x00000036,
MOVE_UNUSED_37 = 0x00000037,
MOVE_QUICK_CHANGE = 0x00000038,
MOVE_UNUSED_39 = 0x00000039,
MOVE_UNUSED_3A = 0x0000003A,
MOVE_POWER_PLUS = 0x0000003B,
MOVE_ALLOR_NOTHING = 0x0000003C,
MOVE_ICE_POWER = 0x0000003D,
MOVE_P_UP_D_DOWN = 0x0000003E,
MOVE_UNUSED_3F = 0x0000003F,
MOVE_SPIKE_SHIELD = 0x00000040,
MOVE_FIRE_SHIELD = 0x00000041,
MOVE_PRETTY_LUCKY = 0x00000042,
MOVE_FEELING_FINE = 0x00000043,
MOVE_ZAP_TAP = 0x00000044,
MOVE_DEFEND_PLUS = 0x00000045,
MOVE_LAST_STAND = 0x00000046,
MOVE_CLOSE_CALL = 0x00000047,
MOVE_LUCKY_DAY = 0x00000048,
MOVE_P_DOWN_D_UP = 0x00000049,
MOVE_HEALTHY_HEALTHY = 0x0000004A,
MOVE_UNUSED_4B = 0x0000004B,
MOVE_DODGE_MASTER = 0x0000004C,
MOVE_FIRST_ATTACK = 0x0000004D,
MOVE_SLOW_GO = 0x0000004E,
MOVE_RIGHT_ON = 0x0000004F,
MOVE_BUMP_ATTACK = 0x00000050,
MOVE_UNUSED_51 = 0x00000051,
MOVE_HP_PLUS = 0x00000052,
MOVE_MYSTERY_SCROLL = 0x00000053,
MOVE_ATTACK_FX_A = 0x00000054,
MOVE_ATTACK_FX_D = 0x00000055,
MOVE_ATTACK_FX_B = 0x00000056,
MOVE_ATTACK_FX_E = 0x00000057,
MOVE_ATTACK_FX_C = 0x00000058,
MOVE_ATTACK_FX_F = 0x00000059,
MOVE_HP_DRAIN = 0x0000005A,
MOVE_FP_PLUS = 0x0000005B,
MOVE_MONEY_MONEY = 0x0000005C,
MOVE_CHILL_OUT_BADGE = 0x0000005D,
MOVE_HAPPY_HEART = 0x0000005E,
MOVE_MEGA_RUSH = 0x0000005F,
MOVE_BERSERKER = 0x00000060,
MOVE_RUNAWAY_PAY = 0x00000061,
MOVE_FLOWER_SAVER = 0x00000062,
MOVE_PAY_OFF = 0x00000063,
MOVE_POWER_RUSH = 0x00000064,
MOVE_CRAZY_HEART = 0x00000065,
MOVE_MEGA_HP_DRAIN = 0x00000066,
MOVE_FLOWER_FANATIC = 0x00000067,
MOVE_HEART_FINDER = 0x00000068,
MOVE_FLOWER_FINDER = 0x00000069,
MOVE_SPIN_ATTACK = 0x0000006A,
MOVE_DIZZY_ATTACK = 0x0000006B,
MOVE_I_SPY = 0x0000006C,
MOVE_SPEEDY_SPIN = 0x0000006D,
MOVE_REFUND = 0x0000006E,
MOVE_UNUSED_FINAL_GOOMPA = 0x0000006F,
MOVE_UNUSED_FINAL_BOBOMB = 0x00000070,
MOVE_DEEP_FOCUS = 0x00000071,
MOVE_SUPER_FOCUS = 0x00000072,
MOVE_KAIDEN = 0x00000073,
MOVE_HAPPY_FLOWER = 0x00000074,
MOVE_GROUP_FOCUS = 0x00000075,
MOVE_PEEKABOO = 0x00000076,
MOVE_FOCUS = 0x00000077,
MOVE_REFRESH = 0x00000078,
MOVE_LULLABY = 0x00000079,
MOVE_STAR_STORM = 0x0000007A,
MOVE_CHILL_OUT_MOVE = 0x0000007B,
MOVE_SMOOCH = 0x0000007C,
MOVE_TIME_OUT = 0x0000007D,
MOVE_UP_AND_AWAY = 0x0000007E,
MOVE_STAR_BEAM = 0x0000007F,
MOVE_PEACH_BEAM = 0x00000080,
MOVE_PEACH_FOCUS = 0x00000081,
MOVE_TWINK_DASH = 0x00000082,
// Goombario moves
MOVE_HEADBONK1 = 0x00000083,
MOVE_HEADBONK2 = 0x00000084,
MOVE_HEADBONK3 = 0x00000085,
MOVE_TATTLE = 0x00000086,
MOVE_CHARGE = 0x00000087,
MOVE_MULTIBONK = 0x00000088,
// Kooper moves
MOVE_SHELL_TOSS1 = 0x00000089,
MOVE_SHELL_TOSS2 = 0x0000008A,
MOVE_SHELL_TOSS3 = 0x0000008B,
MOVE_POWER_SHELL = 0x0000008C,
MOVE_DIZZY_SHELL = 0x0000008D,
MOVE_FIRE_SHELL = 0x0000008E,
// Bombette moves
MOVE_BODY_SLAM1 = 0x0000008F,
MOVE_BODY_SLAM2 = 0x00000090,
MOVE_BODY_SLAM3 = 0x00000091,
MOVE_BOMB = 0x00000092,
MOVE_POWER_BOMB = 0x00000093,
MOVE_MEGA_BOMB = 0x00000094,
// Parakarry moves
MOVE_SKY_DIVE1 = 0x00000095,
MOVE_SKY_DIVE2 = 0x00000096,
MOVE_SKY_DIVE3 = 0x00000097,
MOVE_SHELL_SHOT = 0x00000098,
MOVE_AIR_LIFT = 0x00000099,
MOVE_AIR_RAID = 0x0000009A,
// Goompa moves
MOVE_UNUSED_LONE_FOOL1 = 0x0000009B,
MOVE_UNUSED_LONE_FOOL2 = 0x0000009C,
MOVE_UNUSED_LONE_FOOL3 = 0x0000009D,
MOVE_UNUSED_MUMBLE = 0x0000009E,
MOVE_UNUSED_PREACH = 0x0000009F,
MOVE_UNUSED_AWAKENING = 0x000000A0,
// Watt moves
MOVE_ELECTRO_DASH1 = 0x000000A1,
MOVE_ELECTRO_DASH2 = 0x000000A2,
MOVE_ELECTRO_DASH3 = 0x000000A3,
MOVE_POWER_SHOCK = 0x000000A4,
MOVE_TURBO_CHARGE = 0x000000A5,
MOVE_MEGA_SHOCK = 0x000000A6,
// Sushie moves
MOVE_BELLY_FLOP1 = 0x000000A7,
MOVE_BELLY_FLOP2 = 0x000000A8,
MOVE_BELLY_FLOP3 = 0x000000A9,
MOVE_SQUIRT = 0x000000AA,
MOVE_WATER_BLOCK = 0x000000AB,
MOVE_TIDAL_WAVE = 0x000000AC,
// Lakilester moves
MOVE_SPINY_FLIP1 = 0x000000AD,
MOVE_SPINY_FLIP2 = 0x000000AE,
MOVE_SPINY_FLIP3 = 0x000000AF,
MOVE_SPINY_SURGE = 0x000000B0,
MOVE_CLOUD_NINE = 0x000000B1,
MOVE_HURRICANE = 0x000000B2,
// Bow moves
MOVE_SMACK1 = 0x000000B3,
MOVE_SMACK2 = 0x000000B4,
MOVE_SMACK3 = 0x000000B5,
MOVE_OUTTA_SIGHT = 0x000000B6,
MOVE_SPOOK = 0x000000B7,
MOVE_FAN_SMACK = 0x000000B8,
};
#define STAR_POWER_INDEX(x) (x - MOVE_FOCUS)
enum GameModeIDs { enum GameModeIDs {
GAME_MODE_STARTUP = 0x00000000, GAME_MODE_STARTUP = 0x00000000,

View File

@ -19,11 +19,95 @@ enum {
#define is_Loop ITEM_SCRIPT_OP_Loop, #define is_Loop ITEM_SCRIPT_OP_Loop,
#define is_RandomRestart(max, cutoff) ITEM_SCRIPT_OP_RandomRestart, max, cutoff, #define is_RandomRestart(max, cutoff) ITEM_SCRIPT_OP_RandomRestart, max, cutoff,
#define STANDARD_ITEM_SCRIPT(icon) \ // item entity script templates used to generate scripts via src/item_entity_scripts.yaml
#define IES_TEMPLATE_STANDARD(icon) \
{ \ { \
is_SetIcon(60, icon) \ is_SetIcon(60, icon) \
is_Restart \ is_Restart \
is_End \ is_End \
} }
#define IES_TEMPLATE_BASIC(icon) \
{ \
is_SetIcon(255, icon) \
is_End \
}
#define IES_TEMPLATE_HEART() \
{ \
is_SetIcon(10, anim_heart_0) \
is_SetIcon(6, anim_heart_1) \
is_Restart \
is_End \
}
#define IES_TEMPLATE_COIN() \
{ \
is_Loop \
is_SetIcon(3, anim_coin_0) \
is_SetIcon(3, anim_coin_1) \
is_SetIcon(3, anim_coin_4) \
is_SetIcon(3, anim_coin_5) \
is_SetIcon(3, anim_coin_6) \
is_SetIcon(3, anim_coin_7) \
is_SetIcon(3, anim_coin_8) \
is_SetIcon(3, anim_coin_9) \
is_RandomRestart(100, 50) \
is_SetIcon(3, anim_coin_0) \
is_SetIcon(2, anim_coin_1) \
is_SetIcon(1, anim_coin_2) \
is_SetIcon(1, anim_coin_3) \
is_SetIcon(2, anim_coin_4) \
is_SetIcon(3, anim_coin_5) \
is_SetIcon(3, anim_coin_6) \
is_SetIcon(3, anim_coin_7) \
is_SetIcon(3, anim_coin_8) \
is_SetIcon(3, anim_coin_9) \
is_Restart \
is_End \
}
#define IES_TEMPLATE_SP() \
{ \
is_SetIcon(2, anim_sp_0) \
is_SetIcon(2, anim_sp_1) \
is_SetIcon(2, anim_sp_2) \
is_SetIcon(2, anim_sp_3) \
is_SetIcon(2, anim_sp_4) \
is_SetIcon(2, anim_sp_5) \
is_SetIcon(2, anim_sp_6) \
is_SetIcon(2, anim_sp_7) \
is_Restart \
is_End \
}
#define IES_TEMPLATE_HP() \
{ \
is_SetIcon(8, anim_hp_0) \
is_SetIcon(5, anim_hp_1) \
is_SetIcon(8, anim_hp_2) \
is_Restart \
is_End \
}
#define IES_TEMPLATE_FP() \
{ \
is_SetIcon(8, anim_fp_0) \
is_SetIcon(5, anim_fp_1) \
is_SetIcon(8, anim_fp_2) \
is_Restart \
is_End \
}
#define IES_TEMPLATE_STAR_PIECE() \
{ \
is_SetIcon(12, anim_star_piece_0) \
is_SetIcon(4, anim_star_piece_1) \
is_SetIcon(12, anim_star_piece_2) \
is_SetIcon(4, anim_star_piece_1) \
is_Restart \
is_End \
}
#endif #endif

View File

@ -1,337 +0,0 @@
// indices into gItemHudScripts for hud scripts used by the item table
#define HS_INDEX_HES_Item_SpicySoup 0x1
#define HS_INDEX_HES_Item_ApplePie 0x2
#define HS_INDEX_HES_Item_HoneyUltra 0x3
#define HS_INDEX_HES_Item_MapleUltra 0x4
#define HS_INDEX_HES_Item_JellyUltra 0x5
#define HS_INDEX_HES_Item_Koopasta 0x6
#define HS_INDEX_HES_Item_FriedShroom 0x7
#define HS_INDEX_HES_Item_ShroomCake 0x8
#define HS_INDEX_HES_Item_ShroomSteak 0x9
#define HS_INDEX_HES_Item_HotShroom 0xA
#define HS_INDEX_HES_Item_SweetShroom 0xB
#define HS_INDEX_HES_Item_HealthyJuice 0xC
#define HS_INDEX_HES_Item_BlandMeal 0xD
#define HS_INDEX_HES_Item_YummyMeal 0xE
#define HS_INDEX_HES_Item_DeluxeFeast 0xF
#define HS_INDEX_HES_Item_SpecialShake 0x10
#define HS_INDEX_HES_Item_BigCookie 0x11
#define HS_INDEX_HES_Item_Cake 0x12
#define HS_INDEX_HES_Item_Mistake 0x13
#define HS_INDEX_HES_Item_KoopaTea 0x14
#define HS_INDEX_HES_Item_HoneySuper 0x15
#define HS_INDEX_HES_Item_MapleSuper 0x16
#define HS_INDEX_HES_Item_JellySuper 0x17
#define HS_INDEX_HES_Item_Spaghetti 0x18
#define HS_INDEX_HES_Item_EggMissile 0x19
#define HS_INDEX_HES_Item_FriedEgg 0x1A
#define HS_INDEX_HES_Item_HoneyShroom 0x1B
#define HS_INDEX_HES_Item_HoneyCandy 0x1C
#define HS_INDEX_HES_Item_ElectroPop 0x1D
#define HS_INDEX_HES_Item_FirePop 0x1E
#define HS_INDEX_HES_Item_LimeCandy 0x1F
#define HS_INDEX_HES_Item_CocoPop 0x20
#define HS_INDEX_HES_Item_LemonCandy 0x21
#define HS_INDEX_HES_Item_JellyPop 0x22
#define HS_INDEX_HES_Item_StrangeCake 0x23
#define HS_INDEX_HES_Item_KookyCookie 0x24
#define HS_INDEX_HES_Item_FrozenFries 0x25
#define HS_INDEX_HES_Item_PotatoSalad 0x26
#define HS_INDEX_HES_Item_NuttyCake 0x27
#define HS_INDEX_HES_Item_MapleShroom 0x28
#define HS_INDEX_HES_Item_BoiledEgg 0x29
#define HS_INDEX_HES_Item_YoshiCookie 0x2A
#define HS_INDEX_HES_Item_JellyShroom 0x2B
#define HS_INDEX_HES_Item_Unused_02C 0x2C
#define HS_INDEX_HES_Item_Unused_02D 0x2D
#define HS_INDEX_HES_Item_Unused_02E 0x2E
#define HS_INDEX_HES_Item_Unused_02F 0x2F
#define HS_INDEX_HES_Item_Unused_030 0x30
#define HS_INDEX_HES_Item_Heart 0x31
#define HS_INDEX_HES_Item_Coin 0x32
#define HS_INDEX_HES_Item_HeartPiece 0x33
#define HS_INDEX_HES_Item_StarPoint 0x34
#define HS_INDEX_HES_Item_HeartPoint 0x35
#define HS_INDEX_HES_Item_FlowerPoint 0x36
#define HS_INDEX_HES_Item_StarPiece 0x37
#define HS_INDEX_HES_Item_Jump 0x38
#define HS_INDEX_HES_Item_SpinJump 0x39
#define HS_INDEX_HES_Item_TornadoJump 0x3A
#define HS_INDEX_HES_Item_Hammer 0x3B
#define HS_INDEX_HES_Item_SuperHammer 0x3C
#define HS_INDEX_HES_Item_UltraHammer 0x3D
#define HS_INDEX_HES_Item_LuckyStar 0x3E
#define HS_INDEX_HES_Item_Map 0x3F
#define HS_INDEX_HES_Item_KoopaFortressKey 0x40
#define HS_INDEX_HES_Item_RuinsKey 0x41
#define HS_INDEX_HES_Item_TubbaCastleKey 0x42
#define HS_INDEX_HES_Item_CrystalPalaceKey 0x43
#define HS_INDEX_HES_Item_BowserCastleKey 0x44
#define HS_INDEX_HES_Item_Dolly 0x45
#define HS_INDEX_HES_Item_KooperShell 0x46
#define HS_INDEX_HES_Item_PulseStone 0x47
#define HS_INDEX_HES_Item_Artifact 0x48
#define HS_INDEX_HES_Item_VolcanoVase 0x49
#define HS_INDEX_HES_Item_PyramidStone 0x4A
#define HS_INDEX_HES_Item_DiamondStone 0x4B
#define HS_INDEX_HES_Item_LunarStone 0x4C
#define HS_INDEX_HES_Item_ForestPass 0x4D
#define HS_INDEX_HES_Item_BooRecordOutline 0x4E
#define HS_INDEX_HES_Item_BooRecord 0x4F
#define HS_INDEX_HES_Item_BooWeight 0x50
#define HS_INDEX_HES_Item_BooPortrait 0x51
#define HS_INDEX_HES_Item_MysticalKey 0x52
#define HS_INDEX_HES_Item_IronKey 0x53
#define HS_INDEX_HES_Item_ToyTrain 0x54
#define HS_INDEX_HES_Item_FryingPan 0x55
#define HS_INDEX_HES_Item_Dictionary 0x56
#define HS_INDEX_HES_Item_MysteryNote 0x57
#define HS_INDEX_HES_Item_SuspiciousNote 0x58
#define HS_INDEX_HES_Item_MagicalSeed1 0x59
#define HS_INDEX_HES_Item_MagicalSeed2 0x5A
#define HS_INDEX_HES_Item_MagicalSeed3 0x5B
#define HS_INDEX_HES_Item_MagicalSeed4 0x5C
#define HS_INDEX_HES_Item_CrystalBerry 0x5D
#define HS_INDEX_HES_Item_WaterStone 0x5E
#define HS_INDEX_HES_Item_MagicalBean 0x5F
#define HS_INDEX_HES_Item_FertileSoil 0x60
#define HS_INDEX_HES_Item_MiracleWater 0x61
#define HS_INDEX_HES_Item_UltraStone 0x62
#define HS_INDEX_HES_Item_ToadDoll 0x63
#define HS_INDEX_HES_Item_Calculator 0x64
#define HS_INDEX_HES_Item_Screwdriver 0x65
#define HS_INDEX_HES_Item_Cookbook 0x66
#define HS_INDEX_HES_Item_JadeRaven 0x67
#define HS_INDEX_HES_Item_SnowmanBucket 0x68
#define HS_INDEX_HES_Item_SnowmanScarf 0x69
#define HS_INDEX_HES_Item_RedKey 0x6A
#define HS_INDEX_HES_Item_BlueKey 0x6B
#define HS_INDEX_HES_Item_KootPackage 0x6C
#define HS_INDEX_HES_Item_KootRedJar 0x6D
#define HS_INDEX_HES_Item_Melody 0x6E
#define HS_INDEX_HES_Item_Lyrics 0x6F
#define HS_INDEX_HES_Item_Mailbag 0x70
#define HS_INDEX_HES_Item_StarStone 0x71
#define HS_INDEX_HES_Item_SneakyParasol 0x72
#define HS_INDEX_HES_Item_PeachKey 0x73
#define HS_INDEX_HES_Item_UNK_1DC210 0x74
#define HS_INDEX_HES_Item_UNK_1DC430 0x75
#define HS_INDEX_HES_Item_UNK_1DC650 0x76
#define HS_INDEX_HES_Item_UNK_1DC870 0x77
#define HS_INDEX_HES_Item_FirstDegreeCard 0x78
#define HS_INDEX_HES_Item_SecondDegreeCard 0x79
#define HS_INDEX_HES_Item_ThirdDegreeCard 0x7A
#define HS_INDEX_HES_Item_FourthDegreeCard 0x7B
#define HS_INDEX_HES_Item_Diploma 0x7C
#define HS_INDEX_HES_Item_CrystalBall 0x7D
#define HS_INDEX_HES_Item_GoldCredit 0x7E
#define HS_INDEX_HES_Item_SilverCredit 0x7F
#define HS_INDEX_HES_Item_KootKoopaLegends 0x80
#define HS_INDEX_HES_Item_KootTheTape 0x81
#define HS_INDEX_HES_Item_KootLuigiAutograph 0x82
#define HS_INDEX_HES_Item_KootEmptyWallet 0x83
#define HS_INDEX_HES_Item_KootMerluvleeAutograph 0x84
#define HS_INDEX_HES_Item_KootShell 0x85
#define HS_INDEX_HES_Item_KootPhoto 0x86
#define HS_INDEX_HES_Item_KootGlasses 0x87
#define HS_INDEX_HES_Item_Letter 0x88
#define HS_INDEX_HES_Item_Unused_089 0x89
#define HS_INDEX_HES_Item_Unused_08A 0x8A
#define HS_INDEX_HES_Item_Unused_08B 0x8B
#define HS_INDEX_HES_Item_Unused_08C 0x8C
#define HS_INDEX_HES_Item_Unused_08D 0x8D
#define HS_INDEX_HES_Item_Unused_08E 0x8E
#define HS_INDEX_HES_Item_Unused_08F 0x8F
#define HS_INDEX_HES_Item_SpinSmash 0x90
#define HS_INDEX_HES_Item_Multibounce 0x91
#define HS_INDEX_HES_Item_PowerPlus 0x92
#define HS_INDEX_HES_Item_DodgeMaster 0x93
#define HS_INDEX_HES_Item_PowerBounce 0x94
#define HS_INDEX_HES_Item_SpikeShield 0x95
#define HS_INDEX_HES_Item_FirstAttack 0x96
#define HS_INDEX_HES_Item_HPPlus 0x97
#define HS_INDEX_HES_Item_QuakeHammer 0x98
#define HS_INDEX_HES_Item_DoubleDip 0x99
#define HS_INDEX_HES_Item_PowerQuake 0x9A
#define HS_INDEX_HES_Item_MegaQuake 0x9B
#define HS_INDEX_HES_Item_SleepStomp 0x9C
#define HS_INDEX_HES_Item_SmashCharge 0x9D
#define HS_INDEX_HES_Item_SSmashChg 0x9E
#define HS_INDEX_HES_Item_AutoSmash 0x9F
#define HS_INDEX_HES_Item_FireShield 0xA0
#define HS_INDEX_HES_Item_JumpCharge 0xA1
#define HS_INDEX_HES_Item_SJumpChg 0xA2
#define HS_INDEX_HES_Item_AutoJump 0xA3
#define HS_INDEX_HES_Item_DDownPound 0xA4
#define HS_INDEX_HES_Item_AutoMultibounce 0xA5
#define HS_INDEX_HES_Item_DizzyStomp 0xA6
#define HS_INDEX_HES_Item_HammerThrow 0xA7
#define HS_INDEX_HES_Item_SmashCharge0 0xA8
#define HS_INDEX_HES_Item_PrettyLucky 0xA9
#define HS_INDEX_HES_Item_FeelingFine 0xAA
#define HS_INDEX_HES_Item_AttackFXA 0xAB
#define HS_INDEX_HES_Item_AllorNothing 0xAC
#define HS_INDEX_HES_Item_HPDrain 0xAD
#define HS_INDEX_HES_Item_JumpCharge0 0xAE
#define HS_INDEX_HES_Item_SlowGo 0xAF
#define HS_INDEX_HES_Item_FPPlus 0xB0
#define HS_INDEX_HES_Item_MegaRush 0xB1
#define HS_INDEX_HES_Item_IcePower 0xB2
#define HS_INDEX_HES_Item_DefendPlus 0xB3
#define HS_INDEX_HES_Item_PayOff 0xB4
#define HS_INDEX_HES_Item_MoneyMoney 0xB5
#define HS_INDEX_HES_Item_ChillOut 0xB6
#define HS_INDEX_HES_Item_HappyHeart 0xB7
#define HS_INDEX_HES_Item_ZapTap 0xB8
#define HS_INDEX_HES_Item_Berserker 0xB9
#define HS_INDEX_HES_Item_RightOn 0xBA
#define HS_INDEX_HES_Item_RunawayPay 0xBB
#define HS_INDEX_HES_Item_Refund 0xBC
#define HS_INDEX_HES_Item_FlowerSaver 0xBD
#define HS_INDEX_HES_Item_TripleDip 0xBE
#define HS_INDEX_HES_Item_FlowerFanatic 0xBF
#define HS_INDEX_HES_Item_PowerJump 0xC0
#define HS_INDEX_HES_Item_SuperJump 0xC1
#define HS_INDEX_HES_Item_MegaJump 0xC2
#define HS_INDEX_HES_Item_PowerSmash1 0xC3
#define HS_INDEX_HES_Item_SuperSmash 0xC4
#define HS_INDEX_HES_Item_MegaSmash 0xC5
#define HS_INDEX_HES_Item_LuckyDay 0xC6
#define HS_INDEX_HES_Item_MegaHPDrain 0xC7
#define HS_INDEX_HES_Item_BumpAttack 0xC8
#define HS_INDEX_HES_Item_PUpDDown 0xC9
#define HS_INDEX_HES_Item_PDownDUp 0xCA
#define HS_INDEX_HES_Item_HeartFinder 0xCB
#define HS_INDEX_HES_Item_FlowerFinder 0xCC
#define HS_INDEX_HES_Item_DizzyAttack 0xCD
#define HS_INDEX_HES_Item_SpeedySpin 0xCE
#define HS_INDEX_HES_Item_SpinAttack 0xCF
#define HS_INDEX_HES_Item_ISpy 0xD0
#define HS_INDEX_HES_Item_PowerRush 0xD1
#define HS_INDEX_HES_Item_LastStand 0xD2
#define HS_INDEX_HES_Item_CloseCall 0xD3
#define HS_INDEX_HES_Item_CrazyHeart 0xD4
#define HS_INDEX_HES_Item_Unused_0D5 0xD5
#define HS_INDEX_HES_Item_Unused_0D6 0xD6
#define HS_INDEX_HES_Item_Unused_0D7 0xD7
#define HS_INDEX_HES_Item_ShrinkSmash 0xD8
#define HS_INDEX_HES_Item_ShrinkStomp 0xD9
#define HS_INDEX_HES_Item_DDownJump 0xDA
#define HS_INDEX_HES_Item_DamageDodge 0xDB
#define HS_INDEX_HES_Item_EarthquakeJump 0xDC
#define HS_INDEX_HES_Item_HappyFlower 0xDD
#define HS_INDEX_HES_Item_Unused_0DE 0xDE
#define HS_INDEX_HES_Item_Unused_0DF 0xDF
#define HS_INDEX_HES_Item_DeepFocus 0xE0
#define HS_INDEX_HES_Item_SuperFocus 0xE1
#define HS_INDEX_HES_Item_Kaiden 0xE2
#define HS_INDEX_HES_Item_QuickChange 0xE3
#define HS_INDEX_HES_Item_Unused_0E4 0xE4
#define HS_INDEX_HES_Item_Unused_0E5 0xE5
#define HS_INDEX_HES_Item_Unused_0E6 0xE6
#define HS_INDEX_HES_Item_Unused_0E7 0xE7
#define HS_INDEX_HES_Item_Peekaboo 0xE8
#define HS_INDEX_HES_Item_GroupFocus 0xE9
#define HS_INDEX_HES_Item_AttackFXD 0xEA
#define HS_INDEX_HES_Item_AttackFXB 0xEB
#define HS_INDEX_HES_Item_AttackFXE 0xEC
#define HS_INDEX_HES_Item_AttackFXC 0xED
#define HS_INDEX_HES_Item_AttackFXF 0xEE
#define HS_INDEX_HES_Item_Unused_0EF 0xEF
#define HS_INDEX_HES_Item_HealthyHealthy 0xF0
#define HS_INDEX_HES_Item_Unused_0F1 0xF1
#define HS_INDEX_HES_Item_Unused_0F2 0xF2
#define HS_INDEX_HES_Item_Unused_0F3 0xF3
#define HS_INDEX_HES_Item_Unused_0F4 0xF4
#define HS_INDEX_HES_Item_Unused_0F5 0xF5
#define HS_INDEX_HES_Item_Unused_0F6 0xF6
#define HS_INDEX_HES_Item_Unused_0F7 0xF7
#define HS_INDEX_HES_Item_Mushroom 0xF8
#define HS_INDEX_HES_Item_SuperShroom 0xF9
#define HS_INDEX_HES_Item_UltraShroom 0xFA
#define HS_INDEX_HES_Item_LifeShroom 0xFB
#define HS_INDEX_HES_Item_DriedShroom 0xFC
#define HS_INDEX_HES_Item_TastyTonic 0xFD
#define HS_INDEX_HES_Item_SuperSoda 0xFE
#define HS_INDEX_HES_Item_BlueBerry 0xFF
#define HS_INDEX_HES_Item_RedBerry 0x100
#define HS_INDEX_HES_Item_YellowBerry 0x101
#define HS_INDEX_HES_Item_BubbleBerry 0x102
#define HS_INDEX_HES_Item_Goomnut 0x103
#define HS_INDEX_HES_Item_KoopaLeaf 0x104
#define HS_INDEX_HES_Item_DriedPasta 0x105
#define HS_INDEX_HES_Item_Lime 0x106
#define HS_INDEX_HES_Item_Lemon 0x107
#define HS_INDEX_HES_Item_DriedFruit 0x108
#define HS_INDEX_HES_Item_StrangeLeaf 0x109
#define HS_INDEX_HES_Item_CakeMix 0x10A
#define HS_INDEX_HES_Item_Egg 0x10B
#define HS_INDEX_HES_Item_Coconut 0x10C
#define HS_INDEX_HES_Item_Melon 0x10D
#define HS_INDEX_HES_Item_StinkyHerb 0x10E
#define HS_INDEX_HES_Item_IcedPotato 0x10F
#define HS_INDEX_HES_Item_HoneySyrup 0x110
#define HS_INDEX_HES_Item_MapleSyrup 0x111
#define HS_INDEX_HES_Item_JamminJelly 0x112
#define HS_INDEX_HES_Item_WhackasBump 0x113
#define HS_INDEX_HES_Item_Apple 0x114
#define HS_INDEX_HES_Item_BakingSalt 0x115
#define HS_INDEX_HES_Item_BakingSugar 0x116
#define HS_INDEX_HES_Item_BakingEgg 0x117
#define HS_INDEX_HES_Item_BakingCream 0x118
#define HS_INDEX_HES_Item_BakingStrawberry 0x119
#define HS_INDEX_HES_Item_BakingButter 0x11A
#define HS_INDEX_HES_Item_BakingCleanser 0x11B
#define HS_INDEX_HES_Item_BakingWater 0x11C
#define HS_INDEX_HES_Item_BakingFlour 0x11D
#define HS_INDEX_HES_Item_BakingMilk 0x11E
#define HS_INDEX_HES_Item_Unused_11F 0x11F
#define HS_INDEX_HES_Item_FireFlower 0x120
#define HS_INDEX_HES_Item_SnowmanDoll 0x121
#define HS_INDEX_HES_Item_ThunderRage 0x122
#define HS_INDEX_HES_Item_ThunderBolt 0x123
#define HS_INDEX_HES_Item_ShootingStar 0x124
#define HS_INDEX_HES_Item_DustyHammer 0x125
#define HS_INDEX_HES_Item_Pebble 0x126
#define HS_INDEX_HES_Item_Unused_127 0x127
#define HS_INDEX_HES_Item_StoneCap 0x128
#define HS_INDEX_HES_Item_VoltShroom 0x129
#define HS_INDEX_HES_Item_PowerStar 0x12A
#define HS_INDEX_HES_Item_Parasol 0x12B
#define HS_INDEX_HES_Item_MagicMirror 0x12C
#define HS_INDEX_HES_Item_Unused_12D 0x12D
#define HS_INDEX_HES_Item_Unused_12E 0x12E
#define HS_INDEX_HES_Item_Unused_12F 0x12F
#define HS_INDEX_HES_Item_SleepySheep 0x130
#define HS_INDEX_HES_Item_XBandage 0x131
#define HS_INDEX_HES_Item_POWBlock 0x132
#define HS_INDEX_HES_Item_HustleDrink 0x133
#define HS_INDEX_HES_Item_StopWatch 0x134
#define HS_INDEX_HES_Item_DizzyDial 0x135
#define HS_INDEX_HES_Item_Unused_136 0x136
#define HS_INDEX_HES_Item_Unused_137 0x137
#define HS_INDEX_HES_Item_PleaseComeBack 0x138
#define HS_INDEX_HES_Item_Unused_139 0x139
#define HS_INDEX_HES_Item_FrightJar 0x13A
#define HS_INDEX_HES_Item_Mystery 0x13B
#define HS_INDEX_HES_Item_RepelGel 0x13C
#define HS_INDEX_HES_Item_InsecticideHerb 0x13D
#define HS_INDEX_HES_Item_Unused_13E 0x13E
#define HS_INDEX_HES_Item_Unused_13F 0x13F
#define HS_INDEX_HES_Item_Present 0x140
#define HS_INDEX_HES_Item_CakeDone 0x141
#define HS_INDEX_HES_Item_CakeBare 0x142
#define HS_INDEX_HES_Item_CakePan 0x143
#define HS_INDEX_HES_Item_CakeBatter 0x144
#define HS_INDEX_HES_Item_CakeBowl 0x145
#define HS_INDEX_HES_Item_CakeMixed 0x146
#define HS_INDEX_HES_Item_CakeWithIcing 0x147
#define HS_INDEX_HES_Item_CakeWithBerries 0x148
#define HS_INDEX_HES_Item_PartnerAttack 0x149
#define HS_INDEX_HES_Item_Hammer1Icon 0x14A
#define HS_INDEX_HES_Item_Hammer2Icon 0x14B
#define HS_INDEX_HES_Item_Hammer3Icon 0x14C
#define HS_INDEX_HES_Item_Boots1Icon 0x14D
#define HS_INDEX_HES_Item_Boots2Icon 0x14E
#define HS_INDEX_HES_Item_Boots3Icon 0x14F
#define HS_INDEX_HES_Item_ItemsIcon 0x150

View File

@ -3825,15 +3825,15 @@ void btl_state_update_first_strike(void) {
switch (encounterStatus->hitType) { switch (encounterStatus->hitType) {
case ENCOUNTER_TRIGGER_JUMP: case ENCOUNTER_TRIGGER_JUMP:
battleStatus->moveCategory = BTL_MENU_TYPE_JUMP; battleStatus->moveCategory = BTL_MENU_TYPE_JUMP;
battleStatus->selectedMoveID = MOVE_UNUSED_JUMP4; battleStatus->selectedMoveID = MOVE_FIRST_STRIKE_JUMP;
battleStatus->moveArgument = encounterStatus->hitTier; battleStatus->moveArgument = encounterStatus->hitTier;
battleStatus->curTargetListFlags = gMoveTable[MOVE_UNUSED_JUMP4].flags; battleStatus->curTargetListFlags = gMoveTable[MOVE_FIRST_STRIKE_JUMP].flags;
break; break;
case ENCOUNTER_TRIGGER_HAMMER: case ENCOUNTER_TRIGGER_HAMMER:
battleStatus->moveCategory = BTL_MENU_TYPE_SMASH; battleStatus->moveCategory = BTL_MENU_TYPE_SMASH;
battleStatus->selectedMoveID = MOVE_UNUSED_HAMMER4; battleStatus->selectedMoveID = MOVE_FIRST_STRIKE_HAMMER;
battleStatus->moveArgument = encounterStatus->hitTier; battleStatus->moveArgument = encounterStatus->hitTier;
battleStatus->curTargetListFlags = gMoveTable[MOVE_UNUSED_HAMMER4].flags; battleStatus->curTargetListFlags = gMoveTable[MOVE_FIRST_STRIKE_HAMMER].flags;
break; break;
case ENCOUNTER_TRIGGER_PARTNER: case ENCOUNTER_TRIGGER_PARTNER:
btl_set_state(BATTLE_STATE_PARTNER_FIRST_STRIKE); btl_set_state(BATTLE_STATE_PARTNER_FIRST_STRIKE);

View File

@ -26,9 +26,9 @@ BSS f32 D_8029EFB0;
BSS f32 D_8029EFB4; BSS f32 D_8029EFB4;
BSS f32 D_8029EFB8; BSS f32 D_8029EFB8;
BSS s32 D_8029EFBC; BSS s32 D_8029EFBC;
BSS s32 D_8029EFC0[10]; BSS s32 BtlStarPointTensHIDs[10];
BSS s32 D_8029EFE8[10]; BSS s32 BtlStarPointShinesHIDs[10];
BSS s32 D_8029F010[10]; BSS s32 BtlStarPointOnesHIDs[10];
BSS PAL_BIN gTattleBgPalette[0x100]; BSS PAL_BIN gTattleBgPalette[0x100];
extern HudScript HES_HPDigit0; extern HudScript HES_HPDigit0;
@ -204,20 +204,20 @@ void initialize_battle(void) {
D_8029EFBC = hud_element_create(&HES_HPBar); D_8029EFBC = hud_element_create(&HES_HPBar);
hud_element_set_flags(D_8029EFBC, HUD_ELEMENT_FLAG_80); hud_element_set_flags(D_8029EFBC, HUD_ELEMENT_FLAG_80);
for (i = 0; i < ARRAY_COUNT(D_8029EFC0); i++) { for (i = 0; i < ARRAY_COUNT(BtlStarPointTensHIDs); i++) {
hudElemID = D_8029EFC0[i] = hud_element_create(&HES_Item_StarPoint); hudElemID = BtlStarPointTensHIDs[i] = hud_element_create(&HES_Item_StarPoint);
hud_element_set_flags(hudElemID, HUD_ELEMENT_FLAG_80 | HUD_ELEMENT_FLAG_DISABLED); hud_element_set_flags(hudElemID, HUD_ELEMENT_FLAG_80 | HUD_ELEMENT_FLAG_DISABLED);
hud_element_set_render_depth(hudElemID, 20); hud_element_set_render_depth(hudElemID, 20);
} }
for (i = 0; i < ARRAY_COUNT(D_8029EFE8); i++) { for (i = 0; i < ARRAY_COUNT(BtlStarPointShinesHIDs); i++) {
hudElemID = D_8029EFE8[i] = hud_element_create(&HES_StatusSPShine); hudElemID = BtlStarPointShinesHIDs[i] = hud_element_create(&HES_StatusSPShine);
hud_element_set_flags(hudElemID, HUD_ELEMENT_FLAG_80 | HUD_ELEMENT_FLAG_DISABLED); hud_element_set_flags(hudElemID, HUD_ELEMENT_FLAG_80 | HUD_ELEMENT_FLAG_DISABLED);
hud_element_set_render_depth(hudElemID, 20); hud_element_set_render_depth(hudElemID, 20);
} }
for (i = 0; i < ARRAY_COUNT(D_8029F010); i++) { for (i = 0; i < ARRAY_COUNT(BtlStarPointOnesHIDs); i++) {
hudElemID = D_8029F010[i] = hud_element_create(&HES_Item_SmallStarPoint); hudElemID = BtlStarPointOnesHIDs[i] = hud_element_create(&HES_Item_SmallStarPoint);
hud_element_set_flags(hudElemID, HUD_ELEMENT_FLAG_80 | HUD_ELEMENT_FLAG_DISABLED); hud_element_set_flags(hudElemID, HUD_ELEMENT_FLAG_80 | HUD_ELEMENT_FLAG_DISABLED);
hud_element_set_render_depth(hudElemID, 20); hud_element_set_render_depth(hudElemID, 20);
} }
@ -1012,7 +1012,7 @@ void btl_update_starpoints_display(void) {
ones = battleStatus->totalStarPoints % 10; ones = battleStatus->totalStarPoints % 10;
for (i = 0; i < tens; i++) { for (i = 0; i < tens; i++) {
id = D_8029EFC0[i]; id = BtlStarPointTensHIDs[i];
if (hud_element_get_script(id) != &HES_Item_StarPoint) { if (hud_element_get_script(id) != &HES_Item_StarPoint) {
hud_element_set_script(id, &HES_Item_StarPoint); hud_element_set_script(id, &HES_Item_StarPoint);
} }
@ -1020,7 +1020,7 @@ void btl_update_starpoints_display(void) {
hud_element_set_render_pos(id, posX, posY); hud_element_set_render_pos(id, posX, posY);
hud_element_draw_clipped(id); hud_element_draw_clipped(id);
id = D_8029EFE8[i]; id = BtlStarPointShinesHIDs[i];
if (hud_element_get_script(id) != &HES_StatusSPShine) { if (hud_element_get_script(id) != &HES_StatusSPShine) {
hud_element_set_script(id, &HES_StatusSPShine); hud_element_set_script(id, &HES_StatusSPShine);
} }
@ -1030,9 +1030,9 @@ void btl_update_starpoints_display(void) {
posX -= (one * 20.0f); posX -= (one * 20.0f);
} }
for (; i < ARRAY_COUNT(D_8029EFC0); i++) { for (; i < ARRAY_COUNT(BtlStarPointTensHIDs); i++) {
hud_element_set_flags(D_8029EFC0[i], HUD_ELEMENT_FLAG_DISABLED); hud_element_set_flags(BtlStarPointTensHIDs[i], HUD_ELEMENT_FLAG_DISABLED);
hud_element_set_flags(D_8029EFE8[i], HUD_ELEMENT_FLAG_DISABLED); hud_element_set_flags(BtlStarPointShinesHIDs[i], HUD_ELEMENT_FLAG_DISABLED);
} }
posX = D_8029DA40; posX = D_8029DA40;
@ -1045,7 +1045,7 @@ void btl_update_starpoints_display(void) {
} }
for (i = 0; i < ones; i++) { for (i = 0; i < ones; i++) {
id = D_8029F010[i]; id = BtlStarPointOnesHIDs[i];
if (hud_element_get_script(id) != &HES_Item_SmallStarPoint) { if (hud_element_get_script(id) != &HES_Item_SmallStarPoint) {
hud_element_set_script(id, &HES_Item_SmallStarPoint); hud_element_set_script(id, &HES_Item_SmallStarPoint);
} }
@ -1055,8 +1055,8 @@ void btl_update_starpoints_display(void) {
posX -= one * 10.0f; posX -= one * 10.0f;
} }
for (; i < ARRAY_COUNT(D_8029F010); i++) { for (; i < ARRAY_COUNT(BtlStarPointOnesHIDs); i++) {
hud_element_set_flags(D_8029F010[i], HUD_ELEMENT_FLAG_DISABLED); hud_element_set_flags(BtlStarPointOnesHIDs[i], HUD_ELEMENT_FLAG_DISABLED);
} }
} }
} }

View File

@ -2683,13 +2683,13 @@ extern HudScript HES_CDownButton;
extern HudScript HES_CLeftButton; extern HudScript HES_CLeftButton;
extern HudScript HES_CRightButton; extern HudScript HES_CRightButton;
extern HudScript HES_CUpButton; extern HudScript HES_CUpButton;
extern HudScript HES_Item_Boots1; extern HudScript HES_Item_MenuBoots1;
extern HudScript HES_Item_Boots2; extern HudScript HES_Item_MenuBoots2;
extern HudScript HES_Item_Boots3; extern HudScript HES_Item_MenuBoots3;
extern HudScript HES_Item_Hammer1; extern HudScript HES_Item_MenuHammer1;
extern HudScript HES_Item_Hammer2; extern HudScript HES_Item_MenuHammer2;
extern HudScript HES_Item_Hammer3; extern HudScript HES_Item_MenuHammer3;
extern HudScript HES_Item_Items; extern HudScript HES_Item_MenuItems;
extern HudScript HES_MashBButton2; extern HudScript HES_MashBButton2;
extern HudScript HES_MashCDownButton1; extern HudScript HES_MashCDownButton1;
extern HudScript HES_MashCLeftButton; extern HudScript HES_MashCLeftButton;
@ -3552,37 +3552,37 @@ void btl_update_message_popup(void* data) {
case 0: case 0:
switch (popup->messageIndex) { switch (popup->messageIndex) {
case BTL_MSG_HAMMER_DISABLED_1: case BTL_MSG_HAMMER_DISABLED_1:
D_8029F642 = hud_element_create(&HES_Item_Hammer1); D_8029F642 = hud_element_create(&HES_Item_MenuHammer1);
hud_element_set_flags(D_8029F642, HUD_ELEMENT_FLAG_80); hud_element_set_flags(D_8029F642, HUD_ELEMENT_FLAG_80);
hud_element_set_render_pos(D_8029F642, -100, -100); hud_element_set_render_pos(D_8029F642, -100, -100);
break; break;
case BTL_MSG_HAMMER_DISABLED_2: case BTL_MSG_HAMMER_DISABLED_2:
D_8029F642 = hud_element_create(&HES_Item_Hammer2); D_8029F642 = hud_element_create(&HES_Item_MenuHammer2);
hud_element_set_flags(D_8029F642, HUD_ELEMENT_FLAG_80); hud_element_set_flags(D_8029F642, HUD_ELEMENT_FLAG_80);
hud_element_set_render_pos(D_8029F642, -100, -100); hud_element_set_render_pos(D_8029F642, -100, -100);
break; break;
case BTL_MSG_HAMMER_DISABLED_3: case BTL_MSG_HAMMER_DISABLED_3:
D_8029F642 = hud_element_create(&HES_Item_Hammer3); D_8029F642 = hud_element_create(&HES_Item_MenuHammer3);
hud_element_set_flags(D_8029F642, HUD_ELEMENT_FLAG_80); hud_element_set_flags(D_8029F642, HUD_ELEMENT_FLAG_80);
hud_element_set_render_pos(D_8029F642, -100, -100); hud_element_set_render_pos(D_8029F642, -100, -100);
break; break;
case BTL_MSG_JUMP_DISABLED_1: case BTL_MSG_JUMP_DISABLED_1:
D_8029F642 = hud_element_create(&HES_Item_Boots1); D_8029F642 = hud_element_create(&HES_Item_MenuBoots1);
hud_element_set_flags(D_8029F642, HUD_ELEMENT_FLAG_80); hud_element_set_flags(D_8029F642, HUD_ELEMENT_FLAG_80);
hud_element_set_render_pos(D_8029F642, -100, -100); hud_element_set_render_pos(D_8029F642, -100, -100);
break; break;
case BTL_MSG_JUMP_DISABLED_2: case BTL_MSG_JUMP_DISABLED_2:
D_8029F642 = hud_element_create(&HES_Item_Boots2); D_8029F642 = hud_element_create(&HES_Item_MenuBoots2);
hud_element_set_flags(D_8029F642, HUD_ELEMENT_FLAG_80); hud_element_set_flags(D_8029F642, HUD_ELEMENT_FLAG_80);
hud_element_set_render_pos(D_8029F642, -100, -100); hud_element_set_render_pos(D_8029F642, -100, -100);
break; break;
case BTL_MSG_JUMP_DISABLED_3: case BTL_MSG_JUMP_DISABLED_3:
D_8029F642 = hud_element_create(&HES_Item_Boots3); D_8029F642 = hud_element_create(&HES_Item_MenuBoots3);
hud_element_set_flags(D_8029F642, HUD_ELEMENT_FLAG_80); hud_element_set_flags(D_8029F642, HUD_ELEMENT_FLAG_80);
hud_element_set_render_pos(D_8029F642, -100, -100); hud_element_set_render_pos(D_8029F642, -100, -100);
break; break;
case BTL_MSG_ITEMS_DISABLED: case BTL_MSG_ITEMS_DISABLED:
D_8029F642 = hud_element_create(&HES_Item_Items); D_8029F642 = hud_element_create(&HES_Item_MenuItems);
hud_element_set_flags(D_8029F642, HUD_ELEMENT_FLAG_80); hud_element_set_flags(D_8029F642, HUD_ELEMENT_FLAG_80);
hud_element_set_render_pos(D_8029F642, -100, -100); hud_element_set_render_pos(D_8029F642, -100, -100);
break; break;

View File

@ -1811,26 +1811,26 @@ EvtScript EVS_PlayerRegainAbility = {
EVT_SWITCH(LVarA) EVT_SWITCH(LVarA)
EVT_CASE_EQ(2) EVT_CASE_EQ(2)
EVT_SET(LVarE, 0) EVT_SET(LVarE, 0)
EVT_SET(LVarA, ITEM_ITEMS_ICON) EVT_SET(LVarA, ITEM_MENU_ITEMS)
EVT_CASE_EQ(1) EVT_CASE_EQ(1)
EVT_SET(LVarE, 1) EVT_SET(LVarE, 1)
EVT_SWITCH(LVarC) EVT_SWITCH(LVarC)
EVT_CASE_EQ(0) EVT_CASE_EQ(0)
EVT_SET(LVarA, ITEM_HAMMER1_ICON) EVT_SET(LVarA, ITEM_MENU_HAMMER1)
EVT_CASE_EQ(1) EVT_CASE_EQ(1)
EVT_SET(LVarA, ITEM_HAMMER2_ICON) EVT_SET(LVarA, ITEM_MENU_HAMMER2)
EVT_CASE_EQ(2) EVT_CASE_EQ(2)
EVT_SET(LVarA, ITEM_HAMMER3_ICON) EVT_SET(LVarA, ITEM_MENU_HAMMER3)
EVT_END_SWITCH EVT_END_SWITCH
EVT_CASE_EQ(0) EVT_CASE_EQ(0)
EVT_SET(LVarE, 2) EVT_SET(LVarE, 2)
EVT_SWITCH(LVarB) EVT_SWITCH(LVarB)
EVT_CASE_EQ(0) EVT_CASE_EQ(0)
EVT_SET(LVarA, ITEM_BOOTS1_ICON) EVT_SET(LVarA, ITEM_MENU_BOOTS1)
EVT_CASE_EQ(1) EVT_CASE_EQ(1)
EVT_SET(LVarA, ITEM_BOOTS2_ICON) EVT_SET(LVarA, ITEM_MENU_BOOTS2)
EVT_CASE_EQ(2) EVT_CASE_EQ(2)
EVT_SET(LVarA, ITEM_BOOTS3_ICON) EVT_SET(LVarA, ITEM_MENU_BOOTS3)
EVT_END_SWITCH EVT_END_SWITCH
EVT_END_SWITCH EVT_END_SWITCH
EVT_CALL(GetActorPos, ACTOR_PLAYER, LVar0, LVar1, LVar2) EVT_CALL(GetActorPos, ACTOR_PLAYER, LVar0, LVar1, LVar2)

View File

@ -88,7 +88,7 @@ extern HudScript HES_PeachBeam;
extern HudScript HES_PeachBeamDisabled; extern HudScript HES_PeachBeamDisabled;
extern HudScript HES_MoveDiamond; extern HudScript HES_MoveDiamond;
extern HudScript HES_MoveDiamondDisabled; extern HudScript HES_MoveDiamond_disabled;
extern HudScript HES_MoveBlueOrb; extern HudScript HES_MoveBlueOrb;
extern HudScript HES_MoveBlueOrbDisabled; extern HudScript HES_MoveBlueOrbDisabled;
extern HudScript HES_MoveGreenOrb; extern HudScript HES_MoveGreenOrb;
@ -257,15 +257,15 @@ AnimID BattleMenu_PartnerIdleAnims[] = {
}; };
HudScript* battle_menu_PartnerMoveHudScripts[10][10] = { HudScript* battle_menu_PartnerMoveHudScripts[10][10] = {
[PARTNER_GOOMBARIO] { &HES_Goombario, &HES_GoombarioDisabled, &HES_MoveDiamond, &HES_MoveDiamondDisabled, &HES_MoveBlueOrb, &HES_MoveBlueOrbDisabled, &HES_MoveGreenOrb, &HES_MoveGreenOrbDisabled, &HES_MoveRedOrb, &HES_MoveRedOrbDisabled }, [PARTNER_GOOMBARIO] { &HES_Goombario, &HES_GoombarioDisabled, &HES_MoveDiamond, &HES_MoveDiamond_disabled, &HES_MoveBlueOrb, &HES_MoveBlueOrbDisabled, &HES_MoveGreenOrb, &HES_MoveGreenOrbDisabled, &HES_MoveRedOrb, &HES_MoveRedOrbDisabled },
[PARTNER_KOOPER] { &HES_Kooper, &HES_KooperDisabled, &HES_MoveDiamond, &HES_MoveDiamondDisabled, &HES_MoveBlueOrb, &HES_MoveBlueOrbDisabled, &HES_MoveGreenOrb, &HES_MoveGreenOrbDisabled, &HES_MoveRedOrb, &HES_MoveRedOrbDisabled }, [PARTNER_KOOPER] { &HES_Kooper, &HES_KooperDisabled, &HES_MoveDiamond, &HES_MoveDiamond_disabled, &HES_MoveBlueOrb, &HES_MoveBlueOrbDisabled, &HES_MoveGreenOrb, &HES_MoveGreenOrbDisabled, &HES_MoveRedOrb, &HES_MoveRedOrbDisabled },
[PARTNER_BOMBETTE] { &HES_Bombette, &HES_BombetteDisabled, &HES_MoveDiamond, &HES_MoveDiamondDisabled, &HES_MoveBlueOrb, &HES_MoveBlueOrbDisabled, &HES_MoveGreenOrb, &HES_MoveGreenOrbDisabled, &HES_MoveRedOrb, &HES_MoveRedOrbDisabled }, [PARTNER_BOMBETTE] { &HES_Bombette, &HES_BombetteDisabled, &HES_MoveDiamond, &HES_MoveDiamond_disabled, &HES_MoveBlueOrb, &HES_MoveBlueOrbDisabled, &HES_MoveGreenOrb, &HES_MoveGreenOrbDisabled, &HES_MoveRedOrb, &HES_MoveRedOrbDisabled },
[PARTNER_PARAKARRY] { &HES_Parakarry, &HES_ParakarryDisabled, &HES_MoveDiamond, &HES_MoveDiamondDisabled, &HES_MoveBlueOrb, &HES_MoveBlueOrbDisabled, &HES_MoveGreenOrb, &HES_MoveGreenOrbDisabled, &HES_MoveRedOrb, &HES_MoveRedOrbDisabled }, [PARTNER_PARAKARRY] { &HES_Parakarry, &HES_ParakarryDisabled, &HES_MoveDiamond, &HES_MoveDiamond_disabled, &HES_MoveBlueOrb, &HES_MoveBlueOrbDisabled, &HES_MoveGreenOrb, &HES_MoveGreenOrbDisabled, &HES_MoveRedOrb, &HES_MoveRedOrbDisabled },
[PARTNER_GOOMPA] { &HES_Partner0, &HES_Partner0Disabled, &HES_MoveDiamond, &HES_MoveDiamondDisabled, &HES_MoveBlueOrb, &HES_MoveBlueOrbDisabled, &HES_MoveGreenOrb, &HES_MoveGreenOrbDisabled, &HES_MoveRedOrb, &HES_MoveRedOrbDisabled }, [PARTNER_GOOMPA] { &HES_Partner0, &HES_Partner0Disabled, &HES_MoveDiamond, &HES_MoveDiamond_disabled, &HES_MoveBlueOrb, &HES_MoveBlueOrbDisabled, &HES_MoveGreenOrb, &HES_MoveGreenOrbDisabled, &HES_MoveRedOrb, &HES_MoveRedOrbDisabled },
[PARTNER_WATT] { &HES_Watt, &HES_WattDisabled, &HES_MoveDiamond, &HES_MoveDiamondDisabled, &HES_MoveBlueOrb, &HES_MoveBlueOrbDisabled, &HES_MoveGreenOrb, &HES_MoveGreenOrbDisabled, &HES_MoveRedOrb, &HES_MoveRedOrbDisabled }, [PARTNER_WATT] { &HES_Watt, &HES_WattDisabled, &HES_MoveDiamond, &HES_MoveDiamond_disabled, &HES_MoveBlueOrb, &HES_MoveBlueOrbDisabled, &HES_MoveGreenOrb, &HES_MoveGreenOrbDisabled, &HES_MoveRedOrb, &HES_MoveRedOrbDisabled },
[PARTNER_SUSHIE] { &HES_Sushie, &HES_SushieDisabled, &HES_MoveDiamond, &HES_MoveDiamondDisabled, &HES_MoveBlueOrb, &HES_MoveBlueOrbDisabled, &HES_MoveGreenOrb, &HES_MoveGreenOrbDisabled, &HES_MoveRedOrb, &HES_MoveRedOrbDisabled }, [PARTNER_SUSHIE] { &HES_Sushie, &HES_SushieDisabled, &HES_MoveDiamond, &HES_MoveDiamond_disabled, &HES_MoveBlueOrb, &HES_MoveBlueOrbDisabled, &HES_MoveGreenOrb, &HES_MoveGreenOrbDisabled, &HES_MoveRedOrb, &HES_MoveRedOrbDisabled },
[PARTNER_LAKILESTER] { &HES_Lakilester, &HES_LakilesterDisabled, &HES_MoveDiamond, &HES_MoveDiamondDisabled, &HES_MoveBlueOrb, &HES_MoveBlueOrbDisabled, &HES_MoveGreenOrb, &HES_MoveGreenOrbDisabled, &HES_MoveRedOrb, &HES_MoveRedOrbDisabled }, [PARTNER_LAKILESTER] { &HES_Lakilester, &HES_LakilesterDisabled, &HES_MoveDiamond, &HES_MoveDiamond_disabled, &HES_MoveBlueOrb, &HES_MoveBlueOrbDisabled, &HES_MoveGreenOrb, &HES_MoveGreenOrbDisabled, &HES_MoveRedOrb, &HES_MoveRedOrbDisabled },
[PARTNER_BOW] { &HES_Bow, &HES_BowDisabled, &HES_MoveDiamond, &HES_MoveDiamondDisabled, &HES_MoveBlueOrb, &HES_MoveBlueOrbDisabled, &HES_MoveGreenOrb, &HES_MoveGreenOrbDisabled, &HES_MoveRedOrb, &HES_MoveRedOrbDisabled }, [PARTNER_BOW] { &HES_Bow, &HES_BowDisabled, &HES_MoveDiamond, &HES_MoveDiamond_disabled, &HES_MoveBlueOrb, &HES_MoveBlueOrbDisabled, &HES_MoveGreenOrb, &HES_MoveGreenOrbDisabled, &HES_MoveRedOrb, &HES_MoveRedOrbDisabled },
}; };
IconHudScriptPair battle_menu_PeachStarPowerHudScripts = { &HES_MenuStarPower, &HES_MenuStarPowerDisabled }; IconHudScriptPair battle_menu_PeachStarPowerHudScripts = { &HES_MenuStarPower, &HES_MenuStarPowerDisabled };
@ -3282,7 +3282,7 @@ void btl_state_update_player_menu(void) {
break; break;
case BTL_SUBSTATE_PLAYER_MENU_BERSERKER_1: case BTL_SUBSTATE_PLAYER_MENU_BERSERKER_1:
if (playerData->bootsLevel >= 0) { if (playerData->bootsLevel >= 0) {
battleStatus->curTargetListFlags = gMoveTable[MOVE_UNUSED_JUMP5].flags; battleStatus->curTargetListFlags = gMoveTable[MOVE_BERSERKER_JUMP].flags;
player_create_target_list(playerActor); player_create_target_list(playerActor);
jumpTargetCount = playerActor->targetListLength; jumpTargetCount = playerActor->targetListLength;
} else { } else {
@ -3290,7 +3290,7 @@ void btl_state_update_player_menu(void) {
} }
if (playerData->hammerLevel >= 0) { if (playerData->hammerLevel >= 0) {
battleStatus->curTargetListFlags = gMoveTable[MOVE_UNUSED_HAMMER5].flags; battleStatus->curTargetListFlags = gMoveTable[MOVE_BERSERKER_HAMMER].flags;
player_create_target_list(playerActor); player_create_target_list(playerActor);
hammerTargetCount = playerActor->targetListLength; hammerTargetCount = playerActor->targetListLength;
} else { } else {
@ -3310,15 +3310,15 @@ void btl_state_update_player_menu(void) {
jumpChance = 101; jumpChance = 101;
} }
if (rand_int(100) < jumpChance) { if (rand_int(100) < jumpChance) {
battleStatus->selectedMoveID = MOVE_UNUSED_JUMP5; battleStatus->selectedMoveID = MOVE_BERSERKER_JUMP;
battleStatus->moveCategory = BTL_MENU_TYPE_JUMP; battleStatus->moveCategory = BTL_MENU_TYPE_JUMP;
battleStatus->curTargetListFlags = gMoveTable[MOVE_UNUSED_JUMP5].flags; battleStatus->curTargetListFlags = gMoveTable[MOVE_BERSERKER_JUMP].flags;
battleStatus->moveArgument = playerData->bootsLevel; battleStatus->moveArgument = playerData->bootsLevel;
player_create_target_list(playerActor); player_create_target_list(playerActor);
} else { } else {
battleStatus->selectedMoveID = MOVE_UNUSED_HAMMER5; battleStatus->selectedMoveID = MOVE_BERSERKER_HAMMER;
battleStatus->moveCategory = BTL_MENU_TYPE_SMASH; battleStatus->moveCategory = BTL_MENU_TYPE_SMASH;
battleStatus->curTargetListFlags = gMoveTable[MOVE_UNUSED_HAMMER5].flags; battleStatus->curTargetListFlags = gMoveTable[MOVE_BERSERKER_HAMMER].flags;
battleStatus->moveArgument = playerData->hammerLevel; battleStatus->moveArgument = playerData->hammerLevel;
player_create_target_list(playerActor); player_create_target_list(playerActor);
} }

View File

@ -292,18 +292,7 @@ HudScript HES_HandPointLeftHeld = {
hs_End hs_End
}; };
#include "item_hud_scripts.inc.c" #include "item_data.inc.c"
//TODO padding
s32 pad_after_item_hudscripts[] = {
0x00000000, 0x00000000
};
#include "item_table.inc.c"
#include "item_hud_script_table.inc.c"
#include "item_entity_scripts.inc.c"
//TODO split for partner popup menu data? //TODO split for partner popup menu data?
@ -460,7 +449,7 @@ IconHudScriptPair gPartnerIconHudScripts[] = {
{ .enabled = &HES_PartnerB, .disabled = &HES_PartnerBDisabled }, { .enabled = &HES_PartnerB, .disabled = &HES_PartnerBDisabled },
}; };
#include "move_table.inc.c" #include "move_data.inc.c"
//TODO padding //TODO padding
s32 pad_after_move_table[] = { s32 pad_after_move_table[] = {

View File

@ -82,17 +82,17 @@ EvtScript N(EVS_802A3348) = {
EVT_CASE_GT(FALSE) EVT_CASE_GT(FALSE)
EVT_CALL(GetMenuSelection, LVar0, LVar1, LVar2) EVT_CALL(GetMenuSelection, LVar0, LVar1, LVar2)
EVT_SWITCH(LVar1) EVT_SWITCH(LVar1)
EVT_CASE_EQ(ITEM_NONE) EVT_CASE_EQ(0)
EVT_CALL(StartRumble, 7) EVT_CALL(StartRumble, 7)
EVT_THREAD EVT_THREAD
EVT_CALL(ShakeCam, CAM_BATTLE, 0, 10, EVT_FLOAT(1.3)) EVT_CALL(ShakeCam, CAM_BATTLE, 0, 10, EVT_FLOAT(1.3))
EVT_END_THREAD EVT_END_THREAD
EVT_CASE_EQ(ITEM_BOOTS) EVT_CASE_EQ(1)
EVT_CALL(StartRumble, 8) EVT_CALL(StartRumble, 8)
EVT_THREAD EVT_THREAD
EVT_CALL(ShakeCam, CAM_BATTLE, 0, 10, EVT_FLOAT(1.6)) EVT_CALL(ShakeCam, CAM_BATTLE, 0, 10, EVT_FLOAT(1.6))
EVT_END_THREAD EVT_END_THREAD
EVT_CASE_EQ(ITEM_SUPER_BOOTS) EVT_CASE_EQ(2)
EVT_CALL(StartRumble, 9) EVT_CALL(StartRumble, 9)
EVT_THREAD EVT_THREAD
EVT_CALL(ShakeCam, CAM_BATTLE, 0, 10, EVT_FLOAT(1.9)) EVT_CALL(ShakeCam, CAM_BATTLE, 0, 10, EVT_FLOAT(1.9))
@ -101,17 +101,17 @@ EvtScript N(EVS_802A3348) = {
EVT_CASE_DEFAULT EVT_CASE_DEFAULT
EVT_CALL(GetMenuSelection, LVar0, LVar1, LVar2) EVT_CALL(GetMenuSelection, LVar0, LVar1, LVar2)
EVT_SWITCH(LVar1) EVT_SWITCH(LVar1)
EVT_CASE_EQ(ITEM_NONE) EVT_CASE_EQ(0)
EVT_CALL(StartRumble, 7) EVT_CALL(StartRumble, 7)
EVT_THREAD EVT_THREAD
EVT_CALL(ShakeCam, CAM_BATTLE, 0, 2, EVT_FLOAT(1.3)) EVT_CALL(ShakeCam, CAM_BATTLE, 0, 2, EVT_FLOAT(1.3))
EVT_END_THREAD EVT_END_THREAD
EVT_CASE_EQ(ITEM_BOOTS) EVT_CASE_EQ(1)
EVT_CALL(StartRumble, 8) EVT_CALL(StartRumble, 8)
EVT_THREAD EVT_THREAD
EVT_CALL(ShakeCam, CAM_BATTLE, 0, 2, EVT_FLOAT(1.6)) EVT_CALL(ShakeCam, CAM_BATTLE, 0, 2, EVT_FLOAT(1.6))
EVT_END_THREAD EVT_END_THREAD
EVT_CASE_EQ(ITEM_SUPER_BOOTS) EVT_CASE_EQ(2)
EVT_CALL(StartRumble, 9) EVT_CALL(StartRumble, 9)
EVT_THREAD EVT_THREAD
EVT_CALL(ShakeCam, CAM_BATTLE, 0, 2, EVT_FLOAT(1.9)) EVT_CALL(ShakeCam, CAM_BATTLE, 0, 2, EVT_FLOAT(1.9))
@ -130,11 +130,11 @@ EvtScript N(EVS_802A3348) = {
EVT_CASE_GT(FALSE) EVT_CASE_GT(FALSE)
EVT_CALL(GetMenuSelection, LVar0, LVar1, LVar2) EVT_CALL(GetMenuSelection, LVar0, LVar1, LVar2)
EVT_SWITCH(LVar1) EVT_SWITCH(LVar1)
EVT_CASE_EQ(ITEM_NONE) EVT_CASE_EQ(0)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_HIT_NORMAL) EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_HIT_NORMAL)
EVT_CASE_EQ(ITEM_BOOTS) EVT_CASE_EQ(1)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_10E) EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_10E)
EVT_CASE_EQ(ITEM_SUPER_BOOTS) EVT_CASE_EQ(2)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_10E) EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_10E)
EVT_END_SWITCH EVT_END_SWITCH
EVT_CALL(PlayerDamageEnemy, LVar0, DAMAGE_TYPE_SMASH, 25, 0, LVarF, 48) EVT_CALL(PlayerDamageEnemy, LVar0, DAMAGE_TYPE_SMASH, 25, 0, LVarF, 48)
@ -142,11 +142,11 @@ EvtScript N(EVS_802A3348) = {
EVT_CASE_DEFAULT EVT_CASE_DEFAULT
EVT_CALL(GetMenuSelection, LVar0, LVar1, LVar2) EVT_CALL(GetMenuSelection, LVar0, LVar1, LVar2)
EVT_SWITCH(LVar1) EVT_SWITCH(LVar1)
EVT_CASE_EQ(ITEM_NONE) EVT_CASE_EQ(0)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_HIT_NORMAL) EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_HIT_NORMAL)
EVT_CASE_EQ(ITEM_BOOTS) EVT_CASE_EQ(1)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_10E) EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_10E)
EVT_CASE_EQ(ITEM_SUPER_BOOTS) EVT_CASE_EQ(2)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_10E) EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_10E)
EVT_END_SWITCH EVT_END_SWITCH
EVT_CALL(PlayerDamageEnemy, LVar0, DAMAGE_TYPE_SMASH, 25, 0, LVarE, 32) EVT_CALL(PlayerDamageEnemy, LVar0, DAMAGE_TYPE_SMASH, 25, 0, LVarE, 32)
@ -173,11 +173,11 @@ extern EvtScript N(EVS_802A3FD8);
EvtScript N(EVS_UseMove0) = { EvtScript N(EVS_UseMove0) = {
EVT_CALL(GetMenuSelection, LVar0, LVar1, LVar2) EVT_CALL(GetMenuSelection, LVar0, LVar1, LVar2)
EVT_SWITCH(LVar1) EVT_SWITCH(LVar1)
EVT_CASE_EQ(ITEM_NONE) EVT_CASE_EQ(0)
EVT_EXEC_WAIT(N(EVS_802A3948)) EVT_EXEC_WAIT(N(EVS_802A3948))
EVT_CASE_EQ(ITEM_BOOTS) EVT_CASE_EQ(1)
EVT_EXEC_WAIT(N(EVS_802A3C90)) EVT_EXEC_WAIT(N(EVS_802A3C90))
EVT_CASE_EQ(ITEM_SUPER_BOOTS) EVT_CASE_EQ(2)
EVT_EXEC_WAIT(N(EVS_802A3FD8)) EVT_EXEC_WAIT(N(EVS_802A3FD8))
EVT_END_SWITCH EVT_END_SWITCH
EVT_RETURN EVT_RETURN

View File

@ -97,21 +97,21 @@ EvtScript N(EVS_802A3168) = {
EVT_END_IF EVT_END_IF
EVT_CALL(GetMenuSelection, LVar0, LVar1, LVar2) EVT_CALL(GetMenuSelection, LVar0, LVar1, LVar2)
EVT_SWITCH(LVar1) EVT_SWITCH(LVar1)
EVT_CASE_EQ(ITEM_NONE) EVT_CASE_EQ(0)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_211B) EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_211B)
EVT_CASE_EQ(ITEM_BOOTS) EVT_CASE_EQ(1)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_211C) EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_211C)
EVT_CASE_EQ(ITEM_SUPER_BOOTS) EVT_CASE_EQ(2)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_211D) EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_211D)
EVT_END_SWITCH EVT_END_SWITCH
EVT_WAIT(10) EVT_WAIT(10)
EVT_CALL(GetMenuSelection, LVar0, LVar1, LVar2) EVT_CALL(GetMenuSelection, LVar0, LVar1, LVar2)
EVT_SWITCH(LVar1) EVT_SWITCH(LVar1)
EVT_CASE_EQ(ITEM_NONE) EVT_CASE_EQ(0)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_2118) EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_2118)
EVT_CASE_EQ(ITEM_BOOTS) EVT_CASE_EQ(1)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_2119) EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_2119)
EVT_CASE_EQ(ITEM_SUPER_BOOTS) EVT_CASE_EQ(2)
EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_211A) EVT_CALL(PlaySoundAtActor, ACTOR_PLAYER, SOUND_211A)
EVT_END_SWITCH EVT_END_SWITCH
EVT_SET(LVar9, 0) EVT_SET(LVar9, 0)

View File

@ -53,8 +53,8 @@ BattleMoveEntry gMoveScriptTable[] = {
[MOVE_HAMMER1] BTL_MOVE(hammer_attack, EVS_UseMove0), [MOVE_HAMMER1] BTL_MOVE(hammer_attack, EVS_UseMove0),
[MOVE_HAMMER2] BTL_MOVE(hammer_attack, EVS_UseMove0), [MOVE_HAMMER2] BTL_MOVE(hammer_attack, EVS_UseMove0),
[MOVE_HAMMER3] BTL_MOVE(hammer_attack, EVS_UseMove0), [MOVE_HAMMER3] BTL_MOVE(hammer_attack, EVS_UseMove0),
[MOVE_UNUSED_HAMMER4] BTL_MOVE(hammer_attack, EVS_UseMove1), [MOVE_FIRST_STRIKE_HAMMER] BTL_MOVE(hammer_attack, EVS_UseMove1),
[MOVE_UNUSED_HAMMER5] BTL_MOVE(hammer_attack, EVS_UseMove2), [MOVE_BERSERKER_HAMMER] BTL_MOVE(hammer_attack, EVS_UseMove2),
[MOVE_SPIN_SMASH] BTL_MOVE(spin_smash, EVS_UseMove), [MOVE_SPIN_SMASH] BTL_MOVE(spin_smash, EVS_UseMove),
[MOVE_QUAKE_HAMMER] BTL_MOVE(quake_hammer, EVS_UseMove0), [MOVE_QUAKE_HAMMER] BTL_MOVE(quake_hammer, EVS_UseMove0),
[MOVE_D_DOWN_POUND] BTL_MOVE(d_down_pound, EVS_UseMove), [MOVE_D_DOWN_POUND] BTL_MOVE(d_down_pound, EVS_UseMove),
@ -76,8 +76,8 @@ BattleMoveEntry gMoveScriptTable[] = {
[MOVE_JUMP1] BTL_MOVE(jump_attack, EVS_UseMove0), [MOVE_JUMP1] BTL_MOVE(jump_attack, EVS_UseMove0),
[MOVE_JUMP2] BTL_MOVE(jump_attack, EVS_UseMove0), [MOVE_JUMP2] BTL_MOVE(jump_attack, EVS_UseMove0),
[MOVE_JUMP3] BTL_MOVE(jump_attack, EVS_UseMove0), [MOVE_JUMP3] BTL_MOVE(jump_attack, EVS_UseMove0),
[MOVE_UNUSED_JUMP4] BTL_MOVE(jump_attack, EVS_UseMove1), [MOVE_FIRST_STRIKE_JUMP] BTL_MOVE(jump_attack, EVS_UseMove1),
[MOVE_UNUSED_JUMP5] BTL_MOVE(jump_attack, EVS_UseMove2), [MOVE_BERSERKER_JUMP] BTL_MOVE(jump_attack, EVS_UseMove2),
[MOVE_MULTIBOUNCE] BTL_MOVE(multibounce, EVS_UseMove), [MOVE_MULTIBOUNCE] BTL_MOVE(multibounce, EVS_UseMove),
[MOVE_POWER_BOUNCE] BTL_MOVE(power_bounce, EVS_UseMove), [MOVE_POWER_BOUNCE] BTL_MOVE(power_bounce, EVS_UseMove),
[MOVE_SLEEP_STOMP] BTL_MOVE(sleep_stomp, EVS_UseMove), [MOVE_SLEEP_STOMP] BTL_MOVE(sleep_stomp, EVS_UseMove),

View File

@ -1,27 +1,27 @@
#include "common.h" #include "common.h"
s32 N(hammer_icons)[] = { s32 N(hammer_icons)[] = {
ITEM_HAMMER1_ICON, ITEM_MENU_HAMMER1,
ITEM_HAMMER2_ICON, ITEM_MENU_HAMMER2,
ITEM_HAMMER3_ICON ITEM_MENU_HAMMER3,
}; };
s32 N(hammer_text)[] = { s32 N(hammer_text)[] = {
BTL_MSG_HAMMER_DISABLED_1, BTL_MSG_HAMMER_DISABLED_1,
BTL_MSG_HAMMER_DISABLED_2, BTL_MSG_HAMMER_DISABLED_2,
BTL_MSG_HAMMER_DISABLED_3 BTL_MSG_HAMMER_DISABLED_3,
}; };
s32 N(jump_icons)[] = { s32 N(jump_icons)[] = {
ITEM_BOOTS1_ICON, ITEM_MENU_BOOTS1,
ITEM_BOOTS2_ICON, ITEM_MENU_BOOTS2,
ITEM_BOOTS3_ICON ITEM_MENU_BOOTS3,
}; };
s32 N(jump_text)[] = { s32 N(jump_text)[] = {
BTL_MSG_JUMP_DISABLED_1, BTL_MSG_JUMP_DISABLED_1,
BTL_MSG_JUMP_DISABLED_2, BTL_MSG_JUMP_DISABLED_2,
BTL_MSG_JUMP_DISABLED_3 BTL_MSG_JUMP_DISABLED_3,
}; };
API_CALLABLE(N(DisableRandomAbility)) { API_CALLABLE(N(DisableRandomAbility)) {
@ -60,7 +60,7 @@ API_CALLABLE(N(DisableRandomAbility)) {
case 2: case 2:
battleStatus->itemLossTurns = turnsLost; battleStatus->itemLossTurns = turnsLost;
evt_set_variable(script, *args++, ITEM_ITEMS_ICON); evt_set_variable(script, *args++, ITEM_MENU_ITEMS);
evt_set_variable(script, *args++, BTL_MSG_ITEMS_DISABLED); evt_set_variable(script, *args++, BTL_MSG_ITEMS_DISABLED);
break; break;
} }

View File

@ -2560,7 +2560,7 @@ HudScript HES_MoveGreenOrb = HES_TEMPLATE_CI_ENUM_SIZE(ui_move_partner_2, 32, 32
HudScript HES_MoveRedOrb = HES_TEMPLATE_CI_ENUM_SIZE(ui_move_partner_3, 32, 32); HudScript HES_MoveRedOrb = HES_TEMPLATE_CI_ENUM_SIZE(ui_move_partner_3, 32, 32);
HudScript HES_MoveDiamondDisabled = HES_TEMPLATE_CI_ENUM_SIZE(ui_move_basic_disabled, 32, 32); HudScript HES_MoveDiamond_disabled = HES_TEMPLATE_CI_ENUM_SIZE(ui_move_basic_disabled, 32, 32);
HudScript HES_MoveBlueOrbDisabled = HES_TEMPLATE_CI_ENUM_SIZE(ui_move_partner_1_disabled, 32, 32); HudScript HES_MoveBlueOrbDisabled = HES_TEMPLATE_CI_ENUM_SIZE(ui_move_partner_1_disabled, 32, 32);

View File

@ -288,7 +288,9 @@ extern HudScript* wPartnerHudScripts[];
hs_End \ hs_End \
} }
#define STANDARD_ITEM_HUD_SCRIPT(icon) \ // hud script templates used to generate scripts via src/item_hud_scripts.yaml
#define HES_TEMPLATE_STANDARD_ITEM(icon) \
{ \ { \
hs_SetVisible \ hs_SetVisible \
hs_SetTileSize(HUD_ELEMENT_SIZE_32x32) \ hs_SetTileSize(HUD_ELEMENT_SIZE_32x32) \
@ -298,6 +300,158 @@ extern HudScript* wPartnerHudScripts[];
hs_End \ hs_End \
} }
#define HES_TEMPLATE_HEART_PIECE() \
{ \
hs_SetVisible \
hs_SetTileSize(HUD_ELEMENT_SIZE_24x24) \
hs_Loop \
hs_SetIcon(60, anim_heart_piece) \
hs_Restart \
hs_End \
}
#define HES_TEMPLATE_HEART() \
{ \
hs_SetVisible \
hs_SetTileSize(HUD_ELEMENT_SIZE_24x24) \
hs_Loop \
hs_SetIcon(10, anim_heart_0) \
hs_SetIcon(6, anim_heart_1) \
hs_Restart \
hs_End \
}
#define HES_TEMPLATE_STAR_POINT() \
{ \
hs_SetVisible \
hs_SetTileSize(HUD_ELEMENT_SIZE_24x24) \
hs_Loop \
hs_SetIcon(2, anim_sp_0) \
hs_SetIcon(2, anim_sp_1) \
hs_SetIcon(2, anim_sp_2) \
hs_SetIcon(2, anim_sp_3) \
hs_SetIcon(2, anim_sp_4) \
hs_SetIcon(2, anim_sp_5) \
hs_SetIcon(2, anim_sp_6) \
hs_SetIcon(2, anim_sp_7) \
hs_Restart \
hs_End \
}
#define HES_TEMPLATE_SMALL_STAR_POINT() \
{ \
hs_SetVisible \
hs_SetTileSize(HUD_ELEMENT_SIZE_8x8) \
hs_Loop \
hs_SetIcon(2, anim_sp_small_0) \
hs_SetIcon(2, anim_sp_small_1) \
hs_SetIcon(2, anim_sp_small_2) \
hs_SetIcon(2, anim_sp_small_3) \
hs_SetIcon(2, anim_sp_small_4) \
hs_SetIcon(2, anim_sp_small_5) \
hs_SetIcon(2, anim_sp_small_6) \
hs_SetIcon(2, anim_sp_small_7) \
hs_Restart \
hs_End \
}
#define HES_TEMPLATE_HEART_POINT() \
{ \
hs_SetVisible \
hs_SetTileSize(HUD_ELEMENT_SIZE_32x32) \
hs_Loop \
hs_SetIcon(8, anim_hp_0) \
hs_SetIcon(5, anim_hp_1) \
hs_SetIcon(8, anim_hp_2) \
hs_Restart \
hs_End \
}
#define HES_TEMPLATE_FLOWER_POINT() \
{ \
hs_SetVisible \
hs_SetTileSize(HUD_ELEMENT_SIZE_32x32) \
hs_Loop \
hs_SetIcon(8, anim_fp_0) \
hs_SetIcon(5, anim_fp_1) \
hs_SetIcon(8, anim_fp_2) \
hs_Restart \
hs_End \
}
#define HES_TEMPLATE_STAR_PIECE() \
{ \
hs_SetVisible \
hs_SetTileSize(HUD_ELEMENT_SIZE_32x32) \
hs_Loop \
hs_SetIcon(12, anim_star_piece_0) \
hs_SetIcon(4, anim_star_piece_1) \
hs_SetIcon(12, anim_star_piece_2) \
hs_SetIcon(4, anim_star_piece_1) \
hs_Restart \
hs_End \
}
#define HES_TEMPLATE_COIN() \
{ \
hs_SetVisible \
hs_SetTileSize(HUD_ELEMENT_SIZE_24x24) \
hs_Loop \
hs_op_15(0) \
hs_SetIcon(3, anim_coin_0) \
hs_SetIcon(3, anim_coin_1) \
hs_SetIcon(3, anim_coin_4) \
hs_SetIcon(3, anim_coin_5) \
hs_SetIcon(3, anim_coin_6) \
hs_SetIcon(3, anim_coin_7) \
hs_SetIcon(3, anim_coin_8) \
hs_SetIcon(3, anim_coin_9) \
hs_RandomRestart(100, 70) \
hs_op_15(1) \
hs_SetIcon(3, anim_coin_0) \
hs_SetIcon(2, anim_coin_1) \
hs_SetIcon(1, anim_coin_2) \
hs_SetIcon(1, anim_coin_3) \
hs_SetIcon(2, anim_coin_4) \
hs_SetIcon(3, anim_coin_5) \
hs_SetIcon(3, anim_coin_6) \
hs_SetIcon(3, anim_coin_7) \
hs_SetIcon(3, anim_coin_8) \
hs_SetIcon(3, anim_coin_9) \
hs_Restart \
hs_End \
}
#define HES_COIN_SPARKLE(dx, dy) \
{ \
hs_SetTexelOffset(dx, dy) \
hs_SetIcon(1, anim_shimmer_0) \
hs_SetIcon(1, anim_shimmer_1) \
hs_SetIcon(1, anim_shimmer_2) \
hs_SetIcon(2, anim_shimmer_6) \
hs_SetIcon(1, anim_shimmer_2) \
hs_SetIcon(1, anim_shimmer_3) \
hs_SetIcon(1, anim_shimmer_6) \
hs_SetIcon(1, anim_shimmer_4) \
hs_SetIcon(1, anim_shimmer_6) \
hs_SetIcon(1, anim_shimmer_5) \
hs_SetIcon(16, anim_shimmer_6) \
hs_End \
}
#define HES_TEMPLATE_COIN_SPARKLE() \
{ \
hs_SetVisible \
hs_SetTileSize(HUD_ELEMENT_SIZE_8x8) \
hs_RandomBranch( \
HS_PTR(HES_Item_CoinSparkleA), \
HS_PTR(HES_Item_CoinSparkleB), \
HS_PTR(HES_Item_CoinSparkleC), \
HS_PTR(HES_Item_CoinSparkleD), \
HS_PTR(HES_Item_CoinSparkleE)) \
hs_End \
}
void hud_element_load_script(HudElement* hudElement, HudScript* anim); void hud_element_load_script(HudElement* hudElement, HudScript* anim);
/// @param clamp 0 = repeat; 1 = clamp /// @param clamp 0 = repeat; 1 = clamp

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,336 @@
- { name: Placeholder, template: BASIC, icon: key/Gift }
- { name: Present, template: BASIC, icon: key/Gift }
- { name: CakeDone, template: BASIC, icon: key/CakeDone }
- { name: CakeBare, template: BASIC, icon: key/CakeBare }
- { name: CakePan, template: BASIC, icon: key/CakePan }
- { name: CakeBatter, template: BASIC, icon: key/CakeBatter }
- { name: CakeBowl, template: BASIC, icon: key/CakeBowl }
- { name: CakeMixed, template: BASIC, icon: key/CakeMixed }
- { name: CakeWithIcing, template: BASIC, icon: key/CakeWithIcing }
- { name: CakeWithBerries, template: BASIC, icon: key/CakeWithBerries }
- { name: MenuHammer1, template: BASIC, icon: menu/hammer_1 }
- { name: MenuHammer2, template: BASIC, icon: menu/hammer_2 }
- { name: MenuHammer3, template: BASIC, icon: menu/hammer_3 }
- { name: MenuBoots1, template: BASIC, icon: menu/boots_1 }
- { name: MenuBoots2, template: BASIC, icon: menu/boots_2 }
- { name: MenuBoots3, template: BASIC, icon: menu/boots_3 }
- { name: MenuItems, template: BASIC, icon: menu/items }
- { name: PleaseComeBack, template: STANDARD, icon: battle/PleaseComeBack }
- { name: ITEM_139, template: STANDARD, icon: battle/item_139 }
- { name: FrightJar, template: STANDARD, icon: battle/FrightJar }
- { name: Mystery, template: STANDARD, icon: battle/Mystery }
- { name: RepelGel, template: STANDARD, icon: battle/RepelGel }
- { name: InsecticideHerb, template: STANDARD, icon: battle/InsecticideHerb }
- { name: ITEM_13E, template: STANDARD, icon: battle/item_13E }
- { name: ITEM_13F, template: STANDARD, icon: battle/item_13F }
- { name: GearBoots1, template: STANDARD, icon: gear/boots_1 }
- { name: GearBoots2, template: STANDARD, icon: gear/boots_2 }
- { name: GearBoots3, template: STANDARD, icon: gear/boots_3 }
- { name: GearHammer1, template: STANDARD, icon: gear/hammer_1 }
- { name: GearHammer2, template: STANDARD, icon: gear/hammer_2 }
- { name: GearHammer3, template: STANDARD, icon: gear/hammer_3 }
- { name: LuckyStar, template: STANDARD, icon: gear/lucky_star }
- { name: Map, template: STANDARD, icon: key/map }
- { name: KoopaFortressKey, template: STANDARD, icon: key/key_koopa_fortress }
- { name: RuinsKey, template: STANDARD, icon: key/key_ruins }
- { name: TubbaCastleKey, template: STANDARD, icon: key/key_tubba_castle }
- { name: IcePalaceKey, template: STANDARD, icon: key/key_ice_palace }
- { name: BowserCastleKey, template: STANDARD, icon: key/key_bowser_castle }
- { name: Dolly, template: STANDARD, icon: key/dolly }
- { name: KooperShell, template: STANDARD, icon: key/kooper_shell }
- { name: PulseStone, template: STANDARD, icon: key/pulse_stone }
- { name: Artifact, template: STANDARD, icon: key/artifact }
- { name: AncientVase, template: STANDARD, icon: key/vase }
- { name: RuinsStonePyramid, template: STANDARD, icon: key/ruins_stone_pyramid }
- { name: RuinsStoneStar, template: STANDARD, icon: key/ruins_stone_star }
- { name: RuinsStoneMoon, template: STANDARD, icon: key/ruins_stone_moon }
- { name: ForestPass, template: STANDARD, icon: key/forest_pass }
- { name: BooRecordOutline, template: STANDARD, icon: key/boo_record_mask }
- { name: BooRecord, template: STANDARD, icon: key/boo_record }
- { name: BooWeight, template: STANDARD, icon: key/boo_weight }
- { name: BoosPortrait, template: STANDARD, icon: key/boo_portrait }
- { name: MysticKey, template: STANDARD, icon: key/mystic_key }
- { name: StoreroomKey, template: STANDARD, icon: key/key_storeroom }
- { name: ToyTrain, template: STANDARD, icon: key/toybox_train }
- { name: FryingPan, template: STANDARD, icon: key/frying_pan }
- { name: Dictionary, template: STANDARD, icon: key/dictionary }
- { name: MysteryNote, template: STANDARD, icon: key/mystery_note }
- { name: SuspiciousNote, template: STANDARD, icon: key/suspicious_note }
- { name: MagicalSeed1, template: STANDARD, icon: key/seed_1 }
- { name: MagicalSeed2, template: STANDARD, icon: key/seed_2 }
- { name: MagicalSeed3, template: STANDARD, icon: key/seed_3 }
- { name: MagicalSeed4, template: STANDARD, icon: key/seed_4 }
- { name: CrystalBerry, template: STANDARD, icon: key/crystal_berry }
- { name: WaterStone, template: STANDARD, icon: key/water_stone }
- { name: MagicalBean, template: STANDARD, icon: key/magic_bean }
- { name: FertileSoil, template: STANDARD, icon: key/fertile_soil }
- { name: MiracleWater, template: STANDARD, icon: key/miracle_water }
- { name: UltraStone, template: STANDARD, icon: key/ultra_stone }
- { name: ToadDoll, template: STANDARD, icon: key/toad_doll }
- { name: Calculator, template: STANDARD, icon: key/calculator }
- { name: Screwdriver, template: STANDARD, icon: key/screwdriver }
- { name: Cookbook, template: STANDARD, icon: key/book_cook }
- { name: JadeRaven, template: STANDARD, icon: key/jade_raven }
- { name: SnowmanBucket, template: STANDARD, icon: key/snowman_bucket }
- { name: SnowmanScarf, template: STANDARD, icon: key/snowman_scarf }
- { name: RedKey, template: STANDARD, icon: key/key_red }
- { name: BlueKey, template: STANDARD, icon: key/key_blue }
- { name: KootPackage, template: STANDARD, icon: key/koot_package }
- { name: KootRedJar, template: STANDARD, icon: key/koot_red_jar }
- { name: Melody, template: STANDARD, icon: key/book_melody }
- { name: Lyrics, template: STANDARD, icon: key/book_lyrics }
- { name: Mailbag, template: STANDARD, icon: key/mailbag }
- { name: StarStone, template: STANDARD, icon: key/star_stone }
- { name: SneakyParasol, template: STANDARD, icon: peach/sneaky_parasol }
- { name: PeachKey, template: STANDARD, icon: key/key_peach }
- { name: 1DC210, template: STANDARD, icon: key/1DC210 }
- { name: 1DC430, template: STANDARD, icon: key/1DC430 }
- { name: 1DC650, template: STANDARD, icon: key/1DC650 }
- { name: 1DC870, template: STANDARD, icon: key/1DC870 }
- { name: DojoCard1, template: STANDARD, icon: key/dojo_card_1 }
- { name: DojoCard2, template: STANDARD, icon: key/dojo_card_2 }
- { name: DojoCard3, template: STANDARD, icon: key/dojo_card_3 }
- { name: DojoCard4, template: STANDARD, icon: key/dojo_card_4 }
- { name: DojoCard5, template: STANDARD, icon: key/dojo_card_5 }
- { name: CrystalBall, template: STANDARD, icon: key/crystal_ball }
- { name: GoldCard, template: STANDARD, icon: key/card_gold }
- { name: SilverCard, template: STANDARD, icon: key/card_silver }
- { name: KootBook, template: STANDARD, icon: key/koot_book }
- { name: KootTheTape, template: STANDARD, icon: key/koot_the_tape }
- { name: KootAutographMerluvlee, template: STANDARD, icon: key/koot_autograph_luigi }
- { name: KootEmptyWallet, template: STANDARD, icon: key/koot_empty_wallet }
- { name: KootAutographLuigi, template: STANDARD, icon: key/koot_autograph_merluvlee }
- { name: KootKoopaShell, template: STANDARD, icon: key/koot_shell }
- { name: KootOldPhoto, template: STANDARD, icon: key/koot_photo }
- { name: KootGlasses, template: STANDARD, icon: key/koot_glasses }
- { name: Letter, template: STANDARD, icon: key/Letter }
- { name: Unused_089, template: STANDARD, icon: key/LongLetter }
- { name: Unused_08A, template: STANDARD, icon: key/TealLetter }
- { name: Unused_08B, template: STANDARD, icon: key/Postcard }
- { name: Unused_08C, template: STANDARD, icon: key/EmptyBook }
- { name: Unused_08D, template: STANDARD, icon: unused/item_08D }
- { name: Unused_08E, template: STANDARD, icon: unused/item_08E }
- { name: Unused_08F, template: STANDARD, icon: unused/item_08F }
- { name: SpinSmash, template: STANDARD, icon: badge/SpinSmash }
- { name: Multibounce, template: STANDARD, icon: badge/Multibounce }
- { name: PowerPlus, template: STANDARD, icon: badge/PowerPlus }
- { name: DodgeMaster, template: STANDARD, icon: badge/DodgeMaster }
- { name: PowerBounce, template: STANDARD, icon: badge/PowerBounce }
- { name: SpikeShield, template: STANDARD, icon: badge/SpikeShield }
- { name: FirstAttack, template: STANDARD, icon: badge/FirstAttack }
- { name: HPPlus, template: STANDARD, icon: badge/HPPlus }
- { name: QuakeHammer, template: STANDARD, icon: badge/QuakeHammer }
- { name: DoubleDip, template: STANDARD, icon: badge/DoubleDip }
- { name: PowerQuake, template: STANDARD, icon: badge/PowerQuake }
- { name: MegaQuake, template: STANDARD, icon: badge/MegaQuake }
- { name: SleepStomp, template: STANDARD, icon: badge/SleepStomp }
- { name: SmashCharge, template: STANDARD, icon: badge/SmashCharge }
- { name: SSmashChg, template: STANDARD, icon: badge/SSmashChg }
- { name: AutoSmash, template: STANDARD, icon: badge/AutoSmash }
- { name: FireShield, template: STANDARD, icon: badge/FireShield }
- { name: JumpCharge, template: STANDARD, icon: badge/JumpCharge }
- { name: SJumpChg, template: STANDARD, icon: badge/SJumpChg }
- { name: AutoJump, template: STANDARD, icon: badge/AutoJump }
- { name: DDownPound, template: STANDARD, icon: badge/DDownPound }
- { name: AutoMultibounce, template: STANDARD, icon: badge/AutoMultibounce }
- { name: DizzyStomp, template: STANDARD, icon: badge/DizzyStomp }
- { name: HammerThrow, template: STANDARD, icon: badge/HammerThrow }
- { name: SmashCharge0, template: STANDARD, icon: badge/SmashCharge0 }
- { name: PrettyLucky, template: STANDARD, icon: badge/PrettyLucky }
- { name: FeelingFine, template: STANDARD, icon: badge/FeelingFine }
- { name: AttackFXA, template: STANDARD, icon: badge/AttackFXA }
- { name: AllorNothing, template: STANDARD, icon: badge/AllorNothing }
- { name: HPDrain, template: STANDARD, icon: badge/HPDrain }
- { name: JumpCharge0, template: STANDARD, icon: badge/JumpCharge0 }
- { name: SlowGo, template: STANDARD, icon: badge/SlowGo }
- { name: FPPlus, template: STANDARD, icon: badge/FPPlus }
- { name: MegaRush, template: STANDARD, icon: badge/MegaRush }
- { name: IcePower, template: STANDARD, icon: badge/IcePower }
- { name: DefendPlus, template: STANDARD, icon: badge/DefendPlus }
- { name: PayOff, template: STANDARD, icon: badge/PayOff }
- { name: MoneyMoney, template: STANDARD, icon: badge/MoneyMoney }
- { name: ChillOut, template: STANDARD, icon: badge/ChillOut }
- { name: HappyHeart, template: STANDARD, icon: badge/HappyHeart }
- { name: ZapTap, template: STANDARD, icon: badge/ZapTap }
- { name: Berserker, template: STANDARD, icon: badge/Berserker }
- { name: RightOn, template: STANDARD, icon: badge/RightOn }
- { name: RunawayPay, template: STANDARD, icon: badge/RunawayPay }
- { name: Refund, template: STANDARD, icon: badge/Refund }
- { name: FlowerSaver, template: STANDARD, icon: badge/FlowerSaver }
- { name: TripleDip, template: STANDARD, icon: badge/TripleDip }
- { name: FlowerFanatic, template: STANDARD, icon: badge/FlowerFanatic }
- { name: PowerJump, template: STANDARD, icon: badge/PowerJump }
- { name: SuperJump, template: STANDARD, icon: badge/SuperJump }
- { name: MegaJump, template: STANDARD, icon: badge/MegaJump }
- { name: PowerSmash, template: STANDARD, icon: badge/PowerSmash }
- { name: SuperSmash, template: STANDARD, icon: badge/SuperSmash }
- { name: MegaSmash, template: STANDARD, icon: badge/MegaSmash }
- { name: LuckyDay, template: STANDARD, icon: badge/LuckyDay }
- { name: MegaHPDrain, template: STANDARD, icon: badge/MegaHPDrain }
- { name: BumpAttack, template: STANDARD, icon: badge/BumpAttack }
- { name: PUpDDown, template: STANDARD, icon: badge/PUpDDown }
- { name: PDownDUp, template: STANDARD, icon: badge/PDownDUp }
- { name: HeartFinder, template: STANDARD, icon: badge/HeartFinder }
- { name: FlowerFinder, template: STANDARD, icon: badge/FlowerFinder }
- { name: DizzyAttack, template: STANDARD, icon: badge/DizzyAttack }
- { name: SpeedySpin, template: STANDARD, icon: badge/SpeedySpin }
- { name: SpinAttack, template: STANDARD, icon: badge/SpinAttack }
- { name: ISpy, template: STANDARD, icon: badge/ISpy }
- { name: PowerRush, template: STANDARD, icon: badge/PowerRush }
- { name: LastStand, template: STANDARD, icon: badge/LastStand }
- { name: CloseCall, template: STANDARD, icon: badge/CloseCall }
- { name: CrazyHeart, template: STANDARD, icon: badge/CrazyHeart }
- { name: Unused_0D5, template: STANDARD, icon: unused/item_0D5 }
- { name: Unused_0D6, template: STANDARD, icon: unused/item_0D6 }
- { name: Unused_0D7, template: STANDARD, icon: unused/item_0D7 }
- { name: ShrinkSmash, template: STANDARD, icon: badge/ShrinkSmash }
- { name: ShrinkStomp, template: STANDARD, icon: badge/ShrinkStomp }
- { name: DDownJump, template: STANDARD, icon: badge/DDownJump }
- { name: DamageDodge, template: STANDARD, icon: badge/DamageDodge }
- { name: EarthquakeJump, template: STANDARD, icon: badge/EarthquakeJump }
- { name: HappyFlower, template: STANDARD, icon: badge/HappyFlower }
- { name: HappyCoin, template: STANDARD, icon: badge/HappyCoin }
- { name: Unused_0DF, template: STANDARD, icon: unused/item_0DF }
- { name: DeepFocus, template: STANDARD, icon: badge/DeepFocus }
- { name: SuperFocus, template: STANDARD, icon: badge/SuperFocus }
- { name: Kaiden, template: STANDARD, icon: badge/Kaiden }
- { name: QuickChange, template: STANDARD, icon: badge/QuickChange }
- { name: Unused_0E4, template: STANDARD, icon: unused/item_0E4 }
- { name: Unused_0E5, template: STANDARD, icon: unused/item_0E5 }
- { name: Unused_0E6, template: STANDARD, icon: unused/item_0E6 }
- { name: Unused_0E7, template: STANDARD, icon: unused/item_0E7 }
- { name: Peekaboo, template: STANDARD, icon: badge/Peekaboo }
- { name: GroupFocus, template: STANDARD, icon: badge/GroupFocus }
- { name: AttackFXD, template: STANDARD, icon: badge/AttackFXD }
- { name: AttackFXB, template: STANDARD, icon: badge/AttackFXB }
- { name: AttackFXE, template: STANDARD, icon: badge/AttackFXE }
- { name: AttackFXC, template: STANDARD, icon: badge/AttackFXC }
- { name: AttackFXF, template: STANDARD, icon: badge/AttackFXF }
- { name: Unused_0EF, template: STANDARD, icon: unused/item_0EF }
- { name: HealthyHealthy, template: STANDARD, icon: badge/HealthyHealthy }
- { name: Unused_0F1, template: STANDARD, icon: unused/item_0F1 }
- { name: Unused_0F2, template: STANDARD, icon: unused/item_0F2 }
- { name: Unused_0F3, template: STANDARD, icon: unused/item_0F3 }
- { name: Unused_0F4, template: STANDARD, icon: unused/item_0F4 }
- { name: Unused_0F5, template: STANDARD, icon: unused/item_0F5 }
- { name: Unused_0F6, template: STANDARD, icon: unused/item_0F6 }
- { name: Unused_0F7, template: STANDARD, icon: unused/item_0F7 }
- { name: Heart, template: HEART }
- { name: Coin, template: COIN }
- { name: HeartPiece, template: STANDARD, icon: anim/heart_piece }
- { name: StarPoint, template: SP }
- { name: HeartPoint, template: HP }
- { name: FlowerPoint, template: FP }
- { name: StarPiece, template: STAR_PIECE }
- { name: SpicySoup, template: STANDARD, icon: food/SpicySoup }
- { name: ApplePie, template: STANDARD, icon: food/ApplePie }
- { name: HoneyUltra, template: STANDARD, icon: food/HoneyUltra }
- { name: MapleUltra, template: STANDARD, icon: food/MapleUltra }
- { name: JellyUltra, template: STANDARD, icon: food/JellyUltra }
- { name: Koopasta, template: STANDARD, icon: food/Koopasta }
- { name: FriedShroom, template: STANDARD, icon: food/FriedShroom }
- { name: ShroomCake, template: STANDARD, icon: food/ShroomCake }
- { name: ShroomSteak, template: STANDARD, icon: food/ShroomSteak }
- { name: HotShroom, template: STANDARD, icon: food/HotShroom }
- { name: SweetShroom, template: STANDARD, icon: food/SweetShroom }
- { name: HealthyJuice, template: STANDARD, icon: food/HealthyJuice }
- { name: BlandMeal, template: STANDARD, icon: food/BlandMeal }
- { name: YummyMeal, template: STANDARD, icon: food/YummyMeal }
- { name: DeluxeFeast, template: STANDARD, icon: food/DeluxeFeast }
- { name: SpecialShake, template: STANDARD, icon: food/SpecialShake }
- { name: BigCookie, template: STANDARD, icon: food/BigCookie }
- { name: Cake, template: STANDARD, icon: food/Cake }
- { name: Mistake, template: STANDARD, icon: food/Mistake }
- { name: KoopaTea, template: STANDARD, icon: food/KoopaTea }
- { name: HoneySuper, template: STANDARD, icon: food/HoneySuper }
- { name: MapleSuper, template: STANDARD, icon: food/MapleSuper }
- { name: JellySuper, template: STANDARD, icon: food/JellySuper }
- { name: Spaghetti, template: STANDARD, icon: food/Spaghetti }
- { name: EggMissile, template: STANDARD, icon: food/EggMissile }
- { name: FriedEgg, template: STANDARD, icon: food/FriedEgg }
- { name: HoneyShroom, template: STANDARD, icon: food/HoneyShroom }
- { name: HoneyCandy, template: STANDARD, icon: food/HoneyCandy }
- { name: ElectroPop, template: STANDARD, icon: food/ElectroPop }
- { name: FirePop, template: STANDARD, icon: food/FirePop }
- { name: LimeCandy, template: STANDARD, icon: food/LimeCandy }
- { name: CocoPop, template: STANDARD, icon: food/CocoPop }
- { name: LemonCandy, template: STANDARD, icon: food/LemonCandy }
- { name: JellyPop, template: STANDARD, icon: food/JellyPop }
- { name: StrangeCake, template: STANDARD, icon: food/StrangeCake }
- { name: KookyCookie, template: STANDARD, icon: food/KookyCookie }
- { name: FrozenFries, template: STANDARD, icon: food/FrozenFries }
- { name: PotatoSalad, template: STANDARD, icon: food/PotatoSalad }
- { name: NuttyCake, template: STANDARD, icon: food/NuttyCake }
- { name: MapleShroom, template: STANDARD, icon: food/MapleShroom }
- { name: BoiledEgg, template: STANDARD, icon: food/BoiledEgg }
- { name: YoshiCookie, template: STANDARD, icon: food/YoshiCookie }
- { name: JellyShroom, template: STANDARD, icon: food/JellyShroom }
- { name: Unused_02C, template: STANDARD, icon: unused/item_02C }
- { name: Unused_02D, template: STANDARD, icon: unused/item_02D }
- { name: Unused_02E, template: STANDARD, icon: unused/item_02E }
- { name: Unused_02F, template: STANDARD, icon: unused/item_02F }
- { name: Unused_030, template: STANDARD, icon: unused/item_030 }
- { name: FireFlower, template: STANDARD, icon: battle/FireFlower }
- { name: SnowmanDoll, template: STANDARD, icon: battle/SnowmanDoll }
- { name: ThunderRage, template: STANDARD, icon: battle/ThunderRage }
- { name: ThunderBolt, template: STANDARD, icon: battle/ThunderBolt }
- { name: ShootingStar, template: STANDARD, icon: battle/ShootingStar }
- { name: DustyHammer, template: STANDARD, icon: battle/DustyHammer }
- { name: Pebble, template: STANDARD, icon: battle/Pebble }
- { name: ITEM_127, template: STANDARD, icon: unused/item_127 }
- { name: StoneCap, template: STANDARD, icon: battle/StoneCap }
- { name: VoltShroom, template: STANDARD, icon: battle/VoltShroom }
- { name: PowerStar, template: STANDARD, icon: battle/PowerStar }
- { name: Parasol, template: STANDARD, icon: battle/Parasol }
- { name: MagicMirror, template: STANDARD, icon: battle/MagicMirror }
- { name: ITEM_12D, template: STANDARD, icon: unused/item_12D }
- { name: ITEM_12E, template: STANDARD, icon: unused/item_12E }
- { name: ITEM_12F, template: STANDARD, icon: unused/item_12F }
- { name: Mushroom, template: STANDARD, icon: food/Mushroom }
- { name: SuperShroom, template: STANDARD, icon: food/SuperShroom }
- { name: UltraShroom, template: STANDARD, icon: food/UltraShroom }
- { name: LifeShroom, template: STANDARD, icon: food/LifeShroom }
- { name: DriedShroom, template: STANDARD, icon: food/DriedShroom }
- { name: TastyTonic, template: STANDARD, icon: food/TastyTonic }
- { name: SuperSoda, template: STANDARD, icon: food/SuperSoda }
- { name: BlueBerry, template: STANDARD, icon: food/BlueBerry }
- { name: RedBerry, template: STANDARD, icon: food/RedBerry }
- { name: YellowBerry, template: STANDARD, icon: food/YellowBerry }
- { name: BubbleBerry, template: STANDARD, icon: food/BubbleBerry }
- { name: Goomnut, template: STANDARD, icon: food/Goomnut }
- { name: KoopaLeaf, template: STANDARD, icon: food/KoopaLeaf }
- { name: DriedPasta, template: STANDARD, icon: food/DriedPasta }
- { name: Lime, template: STANDARD, icon: food/Lime }
- { name: Lemon, template: STANDARD, icon: food/Lemon }
- { name: DriedFruit, template: STANDARD, icon: food/DriedFruit }
- { name: StrangeLeaf, template: STANDARD, icon: food/StrangeLeaf }
- { name: CakeMix, template: STANDARD, icon: food/CakeMix }
- { name: Egg, template: STANDARD, icon: food/Egg }
- { name: Coconut, template: STANDARD, icon: food/Coconut }
- { name: Melon, template: STANDARD, icon: food/Melon }
- { name: StinkyHerb, template: STANDARD, icon: food/StinkyHerb }
- { name: IcedPotato, template: STANDARD, icon: food/IcedPotato }
- { name: HoneySyrup, template: STANDARD, icon: food/HoneySyrup }
- { name: MapleSyrup, template: STANDARD, icon: food/MapleSyrup }
- { name: JamminJelly, template: STANDARD, icon: food/JamminJelly }
- { name: WhackasBump, template: STANDARD, icon: food/WhackasBump }
- { name: Apple, template: STANDARD, icon: food/Apple }
- { name: BakingSalt, template: STANDARD, icon: peach/BakingSalt }
- { name: BakingSugar, template: STANDARD, icon: peach/BakingSugar }
- { name: BakingEgg, template: STANDARD, icon: peach/BakingEgg }
- { name: BakingCream, template: STANDARD, icon: peach/BakingCream }
- { name: BakingStrawberry, template: STANDARD, icon: peach/BakingStrawberry }
- { name: BakingButter, template: STANDARD, icon: peach/BakingButter }
- { name: BakingCleanser, template: STANDARD, icon: peach/BakingCleanser }
- { name: BakingWater, template: STANDARD, icon: peach/BakingWater }
- { name: BakingFlour, template: STANDARD, icon: peach/BakingFlour }
- { name: BakingMilk, template: STANDARD, icon: peach/BakingMilk }
- { name: ITEM_11F, template: STANDARD, icon: unused/item_11F }
- { name: SleepySheep, template: STANDARD, icon: battle/SleepySheep }
- { name: XBandage, template: STANDARD, icon: battle/XBandage }
- { name: POWBlock, template: STANDARD, icon: battle/POWBlock }
- { name: HustleDrink, template: STANDARD, icon: battle/HustleDrink }
- { name: StopWatch, template: STANDARD, icon: battle/StopWatch }
- { name: DizzyDial, template: STANDARD, icon: battle/DizzyDial }
- { name: ITEM_136, template: STANDARD, icon: battle/item_136 }
- { name: ITEM_137, template: STANDARD, icon: battle/item_137 }

View File

@ -1,342 +0,0 @@
extern HudScript HES_MoveDiamond;
extern HudScript HES_MoveDiamondDisabled;
IconHudScriptPair gItemHudScripts[] = {
{ .enabled = NULL, .disabled = NULL },
{ .enabled = &HES_Item_SpicySoup, .disabled = &HES_Item_SpicySoup_disabled },
{ .enabled = &HES_Item_ApplePie, .disabled = &HES_Item_ApplePie_disabled },
{ .enabled = &HES_Item_HoneyUltra, .disabled = &HES_Item_HoneyUltra_disabled },
{ .enabled = &HES_Item_MapleUltra, .disabled = &HES_Item_MapleUltra_disabled },
{ .enabled = &HES_Item_JellyUltra, .disabled = &HES_Item_JellyUltra_disabled },
{ .enabled = &HES_Item_Koopasta, .disabled = &HES_Item_Koopasta_disabled },
{ .enabled = &HES_Item_FriedShroom, .disabled = &HES_Item_FriedShroom_disabled },
{ .enabled = &HES_Item_ShroomCake, .disabled = &HES_Item_ShroomCake_disabled },
{ .enabled = &HES_Item_ShroomSteak, .disabled = &HES_Item_ShroomSteak_disabled },
{ .enabled = &HES_Item_HotShroom, .disabled = &HES_Item_HotShroom_disabled },
{ .enabled = &HES_Item_SweetShroom, .disabled = &HES_Item_SweetShroom_disabled },
{ .enabled = &HES_Item_HealthyJuice, .disabled = &HES_Item_HealthyJuice_disabled },
{ .enabled = &HES_Item_BlandMeal, .disabled = &HES_Item_BlandMeal_disabled },
{ .enabled = &HES_Item_YummyMeal, .disabled = &HES_Item_YummyMeal_disabled },
{ .enabled = &HES_Item_DeluxeFeast, .disabled = &HES_Item_DeluxeFeast_disabled },
{ .enabled = &HES_Item_SpecialShake, .disabled = &HES_Item_SpecialShake_disabled },
{ .enabled = &HES_Item_BigCookie, .disabled = &HES_Item_BigCookie_disabled },
{ .enabled = &HES_Item_Cake, .disabled = &HES_Item_Cake_disabled },
{ .enabled = &HES_Item_Mistake, .disabled = &HES_Item_Mistake_disabled },
{ .enabled = &HES_Item_KoopaTea, .disabled = &HES_Item_KoopaTea_disabled },
{ .enabled = &HES_Item_HoneySuper, .disabled = &HES_Item_HoneySuper_disabled },
{ .enabled = &HES_Item_MapleSuper, .disabled = &HES_Item_MapleSuper_disabled },
{ .enabled = &HES_Item_JellySuper, .disabled = &HES_Item_JellySuper_disabled },
{ .enabled = &HES_Item_Spaghetti, .disabled = &HES_Item_Spaghetti_disabled },
{ .enabled = &HES_Item_EggMissile, .disabled = &HES_Item_EggMissile_disabled },
{ .enabled = &HES_Item_FriedEgg, .disabled = &HES_Item_FriedEgg_disabled },
{ .enabled = &HES_Item_HoneyShroom, .disabled = &HES_Item_HoneyShroom_disabled },
{ .enabled = &HES_Item_HoneyCandy, .disabled = &HES_Item_HoneyCandy_disabled },
{ .enabled = &HES_Item_ElectroPop, .disabled = &HES_Item_ElectroPop_disabled },
{ .enabled = &HES_Item_FirePop, .disabled = &HES_Item_FirePop_disabled },
{ .enabled = &HES_Item_LimeCandy, .disabled = &HES_Item_LimeCandy_disabled },
{ .enabled = &HES_Item_CocoPop, .disabled = &HES_Item_CocoPop_disabled },
{ .enabled = &HES_Item_LemonCandy, .disabled = &HES_Item_LemonCandy_disabled },
{ .enabled = &HES_Item_JellyPop, .disabled = &HES_Item_JellyPop_disabled },
{ .enabled = &HES_Item_StrangeCake, .disabled = &HES_Item_StrangeCake_disabled },
{ .enabled = &HES_Item_KookyCookie, .disabled = &HES_Item_KookyCookie_disabled },
{ .enabled = &HES_Item_FrozenFries, .disabled = &HES_Item_FrozenFries_disabled },
{ .enabled = &HES_Item_PotatoSalad, .disabled = &HES_Item_PotatoSalad_disabled },
{ .enabled = &HES_Item_NuttyCake, .disabled = &HES_Item_NuttyCake_disabled },
{ .enabled = &HES_Item_MapleShroom, .disabled = &HES_Item_MapleShroom_disabled },
{ .enabled = &HES_Item_BoiledEgg, .disabled = &HES_Item_BoiledEgg_disabled },
{ .enabled = &HES_Item_YoshiCookie, .disabled = &HES_Item_YoshiCookie_disabled },
{ .enabled = &HES_Item_JellyShroom, .disabled = &HES_Item_JellyShroom_disabled },
{ .enabled = &HES_Item_Unused_02C, .disabled = &HES_Item_Unused_02C_disabled },
{ .enabled = &HES_Item_Unused_02D, .disabled = &HES_Item_Unused_02D_disabled },
{ .enabled = &HES_Item_Unused_02E, .disabled = &HES_Item_Unused_02E_disabled },
{ .enabled = &HES_Item_Unused_02F, .disabled = &HES_Item_Unused_02F_disabled },
{ .enabled = &HES_Item_Unused_030, .disabled = &HES_Item_Unused_030_disabled },
{ .enabled = &HES_Item_Heart, .disabled = &HES_Item_Heart },
{ .enabled = &HES_Item_Coin, .disabled = &HES_Item_Coin },
{ .enabled = &HES_Item_HeartPiece, .disabled = &HES_Item_HeartPiece },
{ .enabled = &HES_Item_StarPoint, .disabled = &HES_Item_StarPoint },
{ .enabled = &HES_Item_HeartPoint, .disabled = &HES_Item_HeartPoint },
{ .enabled = &HES_Item_FlowerPoint, .disabled = &HES_Item_FlowerPoint },
{ .enabled = &HES_Item_StarPiece, .disabled = &HES_Item_StarPiece },
{ .enabled = &HES_Item_GearBoots1, .disabled = &HES_Item_GearBoots1 },
{ .enabled = &HES_Item_GearBoots2, .disabled = &HES_Item_GearBoots2 },
{ .enabled = &HES_Item_GearBoots3, .disabled = &HES_Item_GearBoots3 },
{ .enabled = &HES_Item_GearHammer1, .disabled = &HES_Item_GearHammer1 },
{ .enabled = &HES_Item_GearHammer2, .disabled = &HES_Item_GearHammer2 },
{ .enabled = &HES_Item_GearHammer3, .disabled = &HES_Item_GearHammer3 },
{ .enabled = &HES_Item_LuckyStar, .disabled = &HES_Item_LuckyStar },
{ .enabled = &HES_Item_Map, .disabled = &HES_Item_Map },
{ .enabled = &HES_Item_KoopaFortressKey, .disabled = &HES_Item_KoopaFortressKey },
{ .enabled = &HES_Item_RuinsKey, .disabled = &HES_Item_RuinsKey },
{ .enabled = &HES_Item_TubbaCastleKey, .disabled = &HES_Item_TubbaCastleKey },
{ .enabled = &HES_Item_IcePalaceKey, .disabled = &HES_Item_IcePalaceKey },
{ .enabled = &HES_Item_BowserCastleKey, .disabled = &HES_Item_BowserCastleKey },
{ .enabled = &HES_Item_Dolly, .disabled = &HES_Item_Dolly },
{ .enabled = &HES_Item_KooperShell, .disabled = &HES_Item_KooperShell },
{ .enabled = &HES_Item_PulseStone, .disabled = &HES_Item_PulseStone },
{ .enabled = &HES_Item_Artifact, .disabled = &HES_Item_Artifact },
{ .enabled = &HES_Item_AncientVase, .disabled = &HES_Item_AncientVase },
{ .enabled = &HES_Item_RuinsStonePyramid, .disabled = &HES_Item_RuinsStonePyramid },
{ .enabled = &HES_Item_RuinsStoneStar, .disabled = &HES_Item_RuinsStoneStar },
{ .enabled = &HES_Item_RuinsStoneMoon, .disabled = &HES_Item_RuinsStoneMoon },
{ .enabled = &HES_Item_ForestPass, .disabled = &HES_Item_ForestPass },
{ .enabled = &HES_Item_BooRecordOutline, .disabled = &HES_Item_BooRecordOutline },
{ .enabled = &HES_Item_BooRecord, .disabled = &HES_Item_BooRecord },
{ .enabled = &HES_Item_BooWeight, .disabled = &HES_Item_BooWeight },
{ .enabled = &HES_Item_BooPortrait, .disabled = &HES_Item_BooPortrait },
{ .enabled = &HES_Item_MysticKey, .disabled = &HES_Item_MysticKey },
{ .enabled = &HES_Item_IronKey, .disabled = &HES_Item_IronKey },
{ .enabled = &HES_Item_ToyboxTrain, .disabled = &HES_Item_ToyboxTrain },
{ .enabled = &HES_Item_FryingPan, .disabled = &HES_Item_FryingPan },
{ .enabled = &HES_Item_Dictionary, .disabled = &HES_Item_Dictionary },
{ .enabled = &HES_Item_MysteryNote, .disabled = &HES_Item_MysteryNote },
{ .enabled = &HES_Item_SuspiciousNote, .disabled = &HES_Item_SuspiciousNote },
{ .enabled = &HES_Item_MagicalSeed1, .disabled = &HES_Item_MagicalSeed1 },
{ .enabled = &HES_Item_MagicalSeed2, .disabled = &HES_Item_MagicalSeed2 },
{ .enabled = &HES_Item_MagicalSeed3, .disabled = &HES_Item_MagicalSeed3 },
{ .enabled = &HES_Item_MagicalSeed4, .disabled = &HES_Item_MagicalSeed4 },
{ .enabled = &HES_Item_CrystalBerry, .disabled = &HES_Item_CrystalBerry },
{ .enabled = &HES_Item_WaterStone, .disabled = &HES_Item_WaterStone },
{ .enabled = &HES_Item_MagicBean, .disabled = &HES_Item_MagicBean },
{ .enabled = &HES_Item_FertileSoil, .disabled = &HES_Item_FertileSoil },
{ .enabled = &HES_Item_MiracleWater, .disabled = &HES_Item_MiracleWater },
{ .enabled = &HES_Item_UltraStone, .disabled = &HES_Item_UltraStone },
{ .enabled = &HES_Item_ToadDoll, .disabled = &HES_Item_ToadDoll },
{ .enabled = &HES_Item_Calculator, .disabled = &HES_Item_Calculator },
{ .enabled = &HES_Item_Screwdriver, .disabled = &HES_Item_Screwdriver },
{ .enabled = &HES_Item_CookBook, .disabled = &HES_Item_CookBook },
{ .enabled = &HES_Item_JadeRaven, .disabled = &HES_Item_JadeRaven },
{ .enabled = &HES_Item_SnowmanBucket, .disabled = &HES_Item_SnowmanBucket },
{ .enabled = &HES_Item_SnowmanScarf, .disabled = &HES_Item_SnowmanScarf },
{ .enabled = &HES_Item_RedKey, .disabled = &HES_Item_RedKey },
{ .enabled = &HES_Item_BlueKey, .disabled = &HES_Item_BlueKey },
{ .enabled = &HES_Item_KootPackage, .disabled = &HES_Item_KootPackage },
{ .enabled = &HES_Item_KootRedJar, .disabled = &HES_Item_KootRedJar },
{ .enabled = &HES_Item_Melody, .disabled = &HES_Item_Melody },
{ .enabled = &HES_Item_Lyrics, .disabled = &HES_Item_Lyrics },
{ .enabled = &HES_Item_Mailbag, .disabled = &HES_Item_Mailbag },
{ .enabled = &HES_Item_StarStone, .disabled = &HES_Item_StarStone },
{ .enabled = &HES_Item_SneakyParasol, .disabled = &HES_Item_SneakyParasol },
{ .enabled = &HES_Item_PeachKey, .disabled = &HES_Item_PeachKey },
{ .enabled = &HES_Item_UNK_1DC210, .disabled = &HES_Item_UNK_1DC210 },
{ .enabled = &HES_Item_UNK_1DC430, .disabled = &HES_Item_UNK_1DC430 },
{ .enabled = &HES_Item_UNK_1DC650, .disabled = &HES_Item_UNK_1DC650 },
{ .enabled = &HES_Item_UNK_1DC870, .disabled = &HES_Item_UNK_1DC870 },
{ .enabled = &HES_Item_DojoCard1, .disabled = &HES_Item_DojoCard1 },
{ .enabled = &HES_Item_DojoCard2, .disabled = &HES_Item_DojoCard2 },
{ .enabled = &HES_Item_DojoCard3, .disabled = &HES_Item_DojoCard3 },
{ .enabled = &HES_Item_DojoCard4, .disabled = &HES_Item_DojoCard4 },
{ .enabled = &HES_Item_DojoCard5, .disabled = &HES_Item_DojoCard5 },
{ .enabled = &HES_Item_CrystalBall, .disabled = &HES_Item_CrystalBall },
{ .enabled = &HES_Item_GoldCard, .disabled = &HES_Item_GoldCard },
{ .enabled = &HES_Item_SilverCard, .disabled = &HES_Item_SilverCard },
{ .enabled = &HES_Item_KootBook, .disabled = &HES_Item_KootBook },
{ .enabled = &HES_Item_KootTheTape, .disabled = &HES_Item_KootTheTape },
{ .enabled = &HES_Item_KootMerluvleeAutograph, .disabled = &HES_Item_KootMerluvleeAutograph },
{ .enabled = &HES_Item_KootEmptyWallet, .disabled = &HES_Item_KootEmptyWallet },
{ .enabled = &HES_Item_KootLuigiAutograph, .disabled = &HES_Item_KootLuigiAutograph },
{ .enabled = &HES_Item_KootShell, .disabled = &HES_Item_KootShell },
{ .enabled = &HES_Item_KootPhoto, .disabled = &HES_Item_KootPhoto },
{ .enabled = &HES_Item_KootGlasses, .disabled = &HES_Item_KootGlasses },
{ .enabled = &HES_Item_Letter, .disabled = &HES_Item_Letter_disabled },
{ .enabled = &HES_Item_Unused_089, .disabled = &HES_Item_Unused_089_disabled },
{ .enabled = &HES_Item_Unused_08A, .disabled = &HES_Item_Unused_08A_disabled },
{ .enabled = &HES_Item_Unused_08B, .disabled = &HES_Item_Unused_08B_disabled },
{ .enabled = &HES_Item_Unused_08C, .disabled = &HES_Item_Unused_08C_disabled },
{ .enabled = &HES_Item_Unused_08D, .disabled = &HES_Item_Unused_08D_disabled },
{ .enabled = &HES_Item_Unused_08E, .disabled = &HES_Item_Unused_08E_disabled },
{ .enabled = &HES_Item_Unused_08F, .disabled = &HES_Item_Unused_08F_disabled },
{ .enabled = &HES_Item_SpinSmash, .disabled = &HES_Item_SpinSmash_disabled },
{ .enabled = &HES_Item_Multibounce, .disabled = &HES_Item_Multibounce_disabled },
{ .enabled = &HES_Item_PowerPlus, .disabled = &HES_Item_PowerPlus_disabled },
{ .enabled = &HES_Item_DodgeMaster, .disabled = &HES_Item_DodgeMaster_disabled },
{ .enabled = &HES_Item_PowerBounce, .disabled = &HES_Item_PowerBounce_disabled },
{ .enabled = &HES_Item_SpikeShield, .disabled = &HES_Item_SpikeShield_disabled },
{ .enabled = &HES_Item_FirstAttack, .disabled = &HES_Item_FirstAttack_disabled },
{ .enabled = &HES_Item_HPPlus, .disabled = &HES_Item_HPPlus_disabled },
{ .enabled = &HES_Item_QuakeHammer, .disabled = &HES_Item_QuakeHammer_disabled },
{ .enabled = &HES_Item_DoubleDip, .disabled = &HES_Item_DoubleDip_disabled },
{ .enabled = &HES_Item_PowerQuake, .disabled = &HES_Item_PowerQuake_disabled },
{ .enabled = &HES_Item_MegaQuake, .disabled = &HES_Item_MegaQuake_disabled },
{ .enabled = &HES_Item_SleepStomp, .disabled = &HES_Item_SleepStomp_disabled },
{ .enabled = &HES_Item_SmashCharge, .disabled = &HES_Item_SmashCharge_disabled },
{ .enabled = &HES_Item_SSmashChg, .disabled = &HES_Item_SSmashChg_disabled },
{ .enabled = &HES_Item_AutoSmash, .disabled = &HES_Item_AutoSmash_disabled },
{ .enabled = &HES_Item_FireShield, .disabled = &HES_Item_FireShield_disabled },
{ .enabled = &HES_Item_JumpCharge, .disabled = &HES_Item_JumpCharge_disabled },
{ .enabled = &HES_Item_SJumpChg, .disabled = &HES_Item_SJumpChg_disabled },
{ .enabled = &HES_Item_AutoJump, .disabled = &HES_Item_AutoJump_disabled },
{ .enabled = &HES_Item_DDownPound, .disabled = &HES_Item_DDownPound_disabled },
{ .enabled = &HES_Item_AutoMultibounce, .disabled = &HES_Item_AutoMultibounce_disabled },
{ .enabled = &HES_Item_DizzyStomp, .disabled = &HES_Item_DizzyStomp_disabled },
{ .enabled = &HES_Item_HammerThrow, .disabled = &HES_Item_HammerThrow_disabled },
{ .enabled = &HES_Item_SmashCharge0, .disabled = &HES_Item_SmashCharge0_disabled },
{ .enabled = &HES_Item_PrettyLucky, .disabled = &HES_Item_PrettyLucky_disabled },
{ .enabled = &HES_Item_FeelingFine, .disabled = &HES_Item_FeelingFine_disabled },
{ .enabled = &HES_Item_AttackFXA, .disabled = &HES_Item_AttackFXA_disabled },
{ .enabled = &HES_Item_AllorNothing, .disabled = &HES_Item_AllorNothing_disabled },
{ .enabled = &HES_Item_HPDrain, .disabled = &HES_Item_HPDrain_disabled },
{ .enabled = &HES_Item_JumpCharge0, .disabled = &HES_Item_JumpCharge0_disabled },
{ .enabled = &HES_Item_SlowGo, .disabled = &HES_Item_SlowGo_disabled },
{ .enabled = &HES_Item_FPPlus, .disabled = &HES_Item_FPPlus_disabled },
{ .enabled = &HES_Item_MegaRush, .disabled = &HES_Item_MegaRush_disabled },
{ .enabled = &HES_Item_IcePower, .disabled = &HES_Item_IcePower_disabled },
{ .enabled = &HES_Item_DefendPlus, .disabled = &HES_Item_DefendPlus_disabled },
{ .enabled = &HES_Item_PayOff, .disabled = &HES_Item_PayOff_disabled },
{ .enabled = &HES_Item_MoneyMoney, .disabled = &HES_Item_MoneyMoney_disabled },
{ .enabled = &HES_Item_ChillOut, .disabled = &HES_Item_ChillOut_disabled },
{ .enabled = &HES_Item_HappyHeart, .disabled = &HES_Item_HappyHeart_disabled },
{ .enabled = &HES_Item_ZapTap, .disabled = &HES_Item_ZapTap_disabled },
{ .enabled = &HES_Item_Berserker, .disabled = &HES_Item_Berserker_disabled },
{ .enabled = &HES_Item_RightOn, .disabled = &HES_Item_RightOn_disabled },
{ .enabled = &HES_Item_RunawayPay, .disabled = &HES_Item_RunawayPay_disabled },
{ .enabled = &HES_Item_Refund, .disabled = &HES_Item_Refund_disabled },
{ .enabled = &HES_Item_FlowerSaver, .disabled = &HES_Item_FlowerSaver_disabled },
{ .enabled = &HES_Item_TripleDip, .disabled = &HES_Item_TripleDip_disabled },
{ .enabled = &HES_Item_FlowerFanatic, .disabled = &HES_Item_FlowerFanatic_disabled },
{ .enabled = &HES_Item_PowerJump, .disabled = &HES_Item_PowerJump_disabled },
{ .enabled = &HES_Item_SuperJump, .disabled = &HES_Item_SuperJump_disabled },
{ .enabled = &HES_Item_MegaJump, .disabled = &HES_Item_MegaJump_disabled },
{ .enabled = &HES_Item_PowerSmash1, .disabled = &HES_Item_PowerSmash1_disabled },
{ .enabled = &HES_Item_SuperSmash, .disabled = &HES_Item_SuperSmash_disabled },
{ .enabled = &HES_Item_MegaSmash, .disabled = &HES_Item_MegaSmash_disabled },
{ .enabled = &HES_Item_LuckyDay, .disabled = &HES_Item_LuckyDay_disabled },
{ .enabled = &HES_Item_MegaHPDrain, .disabled = &HES_Item_MegaHPDrain_disabled },
{ .enabled = &HES_Item_BumpAttack, .disabled = &HES_Item_BumpAttack_disabled },
{ .enabled = &HES_Item_PUpDDown, .disabled = &HES_Item_PUpDDown_disabled },
{ .enabled = &HES_Item_PDownDUp, .disabled = &HES_Item_PDownDUp_disabled },
{ .enabled = &HES_Item_HeartFinder, .disabled = &HES_Item_HeartFinder_disabled },
{ .enabled = &HES_Item_FlowerFinder, .disabled = &HES_Item_FlowerFinder_disabled },
{ .enabled = &HES_Item_DizzyAttack, .disabled = &HES_Item_DizzyAttack_disabled },
{ .enabled = &HES_Item_SpeedySpin, .disabled = &HES_Item_SpeedySpin_disabled },
{ .enabled = &HES_Item_SpinAttack, .disabled = &HES_Item_SpinAttack_disabled },
{ .enabled = &HES_Item_ISpy, .disabled = &HES_Item_ISpy_disabled },
{ .enabled = &HES_Item_PowerRush, .disabled = &HES_Item_PowerRush_disabled },
{ .enabled = &HES_Item_LastStand, .disabled = &HES_Item_LastStand_disabled },
{ .enabled = &HES_Item_CloseCall, .disabled = &HES_Item_CloseCall_disabled },
{ .enabled = &HES_Item_CrazyHeart, .disabled = &HES_Item_CrazyHeart_disabled },
{ .enabled = &HES_Item_Unused_0D5, .disabled = &HES_Item_Unused_0D5_disabled },
{ .enabled = &HES_Item_Unused_0D6, .disabled = &HES_Item_Unused_0D6_disabled },
{ .enabled = &HES_Item_Unused_0D7, .disabled = &HES_Item_Unused_0D7_disabled },
{ .enabled = &HES_Item_ShrinkSmash, .disabled = &HES_Item_ShrinkSmash_disabled },
{ .enabled = &HES_Item_ShrinkStomp, .disabled = &HES_Item_ShrinkStomp_disabled },
{ .enabled = &HES_Item_DDownJump, .disabled = &HES_Item_DDownJump_disabled },
{ .enabled = &HES_Item_DamageDodge, .disabled = &HES_Item_DamageDodge_disabled },
{ .enabled = &HES_Item_EarthquakeJump, .disabled = &HES_Item_EarthquakeJump_disabled },
{ .enabled = &HES_Item_HappyFlower, .disabled = &HES_Item_HappyFlower_disabled },
{ .enabled = &HES_Item_Unused_0DE, .disabled = &HES_Item_Unused_0DE_disabled },
{ .enabled = &HES_Item_Unused_0DF, .disabled = &HES_Item_Unused_0DF_disabled },
{ .enabled = &HES_Item_DeepFocus, .disabled = &HES_Item_DeepFocus_disabled },
{ .enabled = &HES_Item_SuperFocus, .disabled = &HES_Item_SuperFocus_disabled },
{ .enabled = &HES_Item_Kaiden, .disabled = &HES_Item_Kaiden_disabled },
{ .enabled = &HES_Item_QuickChange, .disabled = &HES_Item_QuickChange_disabled },
{ .enabled = &HES_Item_Unused_0E4, .disabled = &HES_Item_Unused_0E4_disabled },
{ .enabled = &HES_Item_Unused_0E5, .disabled = &HES_Item_Unused_0E5_disabled },
{ .enabled = &HES_Item_Unused_0E6, .disabled = &HES_Item_Unused_0E6_disabled },
{ .enabled = &HES_Item_Unused_0E7, .disabled = &HES_Item_Unused_0E7_disabled },
{ .enabled = &HES_Item_Peekaboo, .disabled = &HES_Item_Peekaboo_disabled },
{ .enabled = &HES_Item_GroupFocus, .disabled = &HES_Item_GroupFocus_disabled },
{ .enabled = &HES_Item_AttackFXD, .disabled = &HES_Item_AttackFXD_disabled },
{ .enabled = &HES_Item_AttackFXB, .disabled = &HES_Item_AttackFXB_disabled },
{ .enabled = &HES_Item_AttackFXE, .disabled = &HES_Item_AttackFXE_disabled },
{ .enabled = &HES_Item_AttackFXC, .disabled = &HES_Item_AttackFXC_disabled },
{ .enabled = &HES_Item_AttackFXF, .disabled = &HES_Item_AttackFXF_disabled },
{ .enabled = &HES_Item_Unused_0EF, .disabled = &HES_Item_Unused_0EF_disabled },
{ .enabled = &HES_Item_HealthyHealthy, .disabled = &HES_Item_HealthyHealthy_disabled },
{ .enabled = &HES_Item_Unused_0F1, .disabled = &HES_Item_Unused_0F1_disabled },
{ .enabled = &HES_Item_Unused_0F2, .disabled = &HES_Item_Unused_0F2_disabled },
{ .enabled = &HES_Item_Unused_0F3, .disabled = &HES_Item_Unused_0F3_disabled },
{ .enabled = &HES_Item_Unused_0F4, .disabled = &HES_Item_Unused_0F4_disabled },
{ .enabled = &HES_Item_Unused_0F5, .disabled = &HES_Item_Unused_0F5_disabled },
{ .enabled = &HES_Item_Unused_0F6, .disabled = &HES_Item_Unused_0F6_disabled },
{ .enabled = &HES_Item_Unused_0F7, .disabled = &HES_Item_Unused_0F7_disabled },
{ .enabled = &HES_Item_Mushroom, .disabled = &HES_Item_Mushroom_disabled },
{ .enabled = &HES_Item_SuperShroom, .disabled = &HES_Item_SuperShroom_disabled },
{ .enabled = &HES_Item_UltraShroom, .disabled = &HES_Item_UltraShroom_disabled },
{ .enabled = &HES_Item_LifeShroom, .disabled = &HES_Item_LifeShroom_disabled },
{ .enabled = &HES_Item_DriedShroom, .disabled = &HES_Item_DriedShroom_disabled },
{ .enabled = &HES_Item_TastyTonic, .disabled = &HES_Item_TastyTonic_disabled },
{ .enabled = &HES_Item_SuperSoda, .disabled = &HES_Item_SuperSoda_disabled },
{ .enabled = &HES_Item_BlueBerry, .disabled = &HES_Item_BlueBerry_disabled },
{ .enabled = &HES_Item_RedBerry, .disabled = &HES_Item_RedBerry_disabled },
{ .enabled = &HES_Item_YellowBerry, .disabled = &HES_Item_YellowBerry_disabled },
{ .enabled = &HES_Item_BubbleBerry, .disabled = &HES_Item_BubbleBerry_disabled },
{ .enabled = &HES_Item_Goomnut, .disabled = &HES_Item_Goomnut_disabled },
{ .enabled = &HES_Item_KoopaLeaf, .disabled = &HES_Item_KoopaLeaf_disabled },
{ .enabled = &HES_Item_DriedPasta, .disabled = &HES_Item_DriedPasta_disabled },
{ .enabled = &HES_Item_Lime, .disabled = &HES_Item_Lime_disabled },
{ .enabled = &HES_Item_Lemon, .disabled = &HES_Item_Lemon_disabled },
{ .enabled = &HES_Item_DriedFruit, .disabled = &HES_Item_DriedFruit_disabled },
{ .enabled = &HES_Item_StrangeLeaf, .disabled = &HES_Item_StrangeLeaf_disabled },
{ .enabled = &HES_Item_CakeMix, .disabled = &HES_Item_CakeMix_disabled },
{ .enabled = &HES_Item_Egg, .disabled = &HES_Item_Egg_disabled },
{ .enabled = &HES_Item_Coconut, .disabled = &HES_Item_Coconut_disabled },
{ .enabled = &HES_Item_Melon, .disabled = &HES_Item_Melon_disabled },
{ .enabled = &HES_Item_StinkyHerb, .disabled = &HES_Item_StinkyHerb_disabled },
{ .enabled = &HES_Item_IcedPotato, .disabled = &HES_Item_IcedPotato_disabled },
{ .enabled = &HES_Item_HoneySyrup, .disabled = &HES_Item_HoneySyrup_disabled },
{ .enabled = &HES_Item_MapleSyrup, .disabled = &HES_Item_MapleSyrup_disabled },
{ .enabled = &HES_Item_JamminJelly, .disabled = &HES_Item_JamminJelly_disabled },
{ .enabled = &HES_Item_WhackasBump, .disabled = &HES_Item_WhackasBump_disabled },
{ .enabled = &HES_Item_Apple, .disabled = &HES_Item_Apple_disabled },
{ .enabled = &HES_Item_BakingSalt, .disabled = &HES_Item_BakingSalt_disabled },
{ .enabled = &HES_Item_BakingSugar, .disabled = &HES_Item_BakingSugar_disabled },
{ .enabled = &HES_Item_BakingEgg, .disabled = &HES_Item_BakingEgg_disabled },
{ .enabled = &HES_Item_BakingCream, .disabled = &HES_Item_BakingCream_disabled },
{ .enabled = &HES_Item_BakingStrawberry, .disabled = &HES_Item_BakingStrawberry_disabled },
{ .enabled = &HES_Item_BakingButter, .disabled = &HES_Item_BakingButter_disabled },
{ .enabled = &HES_Item_BakingCleanser, .disabled = &HES_Item_BakingCleanser_disabled },
{ .enabled = &HES_Item_BakingWater, .disabled = &HES_Item_BakingWater_disabled },
{ .enabled = &HES_Item_BakingFlour, .disabled = &HES_Item_BakingFlour_disabled },
{ .enabled = &HES_Item_BakingMilk, .disabled = &HES_Item_BakingMilk_disabled },
{ .enabled = &HES_Item_Unused_11F, .disabled = &HES_Item_Unused_11F_disabled },
{ .enabled = &HES_Item_FireFlower, .disabled = &HES_Item_FireFlower_disabled },
{ .enabled = &HES_Item_SnowmanDoll, .disabled = &HES_Item_SnowmanDoll_disabled },
{ .enabled = &HES_Item_ThunderRage, .disabled = &HES_Item_ThunderRage_disabled },
{ .enabled = &HES_Item_ThunderBolt, .disabled = &HES_Item_ThunderBolt_disabled },
{ .enabled = &HES_Item_ShootingStar, .disabled = &HES_Item_ShootingStar_disabled },
{ .enabled = &HES_Item_DustyHammer, .disabled = &HES_Item_DustyHammer_disabled },
{ .enabled = &HES_Item_Pebble, .disabled = &HES_Item_Pebble_disabled },
{ .enabled = &HES_Item_Unused_127, .disabled = &HES_Item_Unused_127_disabled },
{ .enabled = &HES_Item_StoneCap, .disabled = &HES_Item_StoneCap_disabled },
{ .enabled = &HES_Item_VoltShroom, .disabled = &HES_Item_VoltShroom_disabled },
{ .enabled = &HES_Item_PowerStar, .disabled = &HES_Item_PowerStar_disabled },
{ .enabled = &HES_Item_Parasol, .disabled = &HES_Item_Parasol_disabled },
{ .enabled = &HES_Item_MagicMirror, .disabled = &HES_Item_MagicMirror_disabled },
{ .enabled = &HES_Item_Unused_12D, .disabled = &HES_Item_Unused_12D_disabled },
{ .enabled = &HES_Item_Unused_12E, .disabled = &HES_Item_Unused_12E_disabled },
{ .enabled = &HES_Item_Unused_12F, .disabled = &HES_Item_Unused_12F_disabled },
{ .enabled = &HES_Item_SleepySheep, .disabled = &HES_Item_SleepySheep_disabled },
{ .enabled = &HES_Item_XBandage, .disabled = &HES_Item_XBandage_disabled },
{ .enabled = &HES_Item_POWBlock, .disabled = &HES_Item_POWBlock_disabled },
{ .enabled = &HES_Item_HustleDrink, .disabled = &HES_Item_HustleDrink_disabled },
{ .enabled = &HES_Item_StopWatch, .disabled = &HES_Item_StopWatch_disabled },
{ .enabled = &HES_Item_DizzyDial, .disabled = &HES_Item_DizzyDial_disabled },
{ .enabled = &HES_Item_Unused_136, .disabled = &HES_Item_Unused_136_disabled },
{ .enabled = &HES_Item_Unused_137, .disabled = &HES_Item_Unused_137_disabled },
{ .enabled = &HES_Item_PleaseComeBack, .disabled = &HES_Item_PleaseComeBack_disabled },
{ .enabled = &HES_Item_Unused_139, .disabled = &HES_Item_Unused_139_disabled },
{ .enabled = &HES_Item_FrightJar, .disabled = &HES_Item_FrightJar_disabled },
{ .enabled = &HES_Item_Mystery, .disabled = &HES_Item_Mystery_disabled },
{ .enabled = &HES_Item_RepelGel, .disabled = &HES_Item_RepelGel_disabled },
{ .enabled = &HES_Item_InsecticideHerb, .disabled = &HES_Item_InsecticideHerb_disabled },
{ .enabled = &HES_Item_Unused_13E, .disabled = &HES_Item_Unused_13E_disabled },
{ .enabled = &HES_Item_Unused_13F, .disabled = &HES_Item_Unused_13F_disabled },
{ .enabled = &HES_Item_Present, .disabled = &HES_Item_Present },
{ .enabled = &HES_Item_CakeDone, .disabled = &HES_Item_CakeDone },
{ .enabled = &HES_Item_CakeBaked, .disabled = &HES_Item_CakeBaked },
{ .enabled = &HES_Item_CakePan, .disabled = &HES_Item_CakePan },
{ .enabled = &HES_Item_CakeBatter, .disabled = &HES_Item_CakeBatter },
{ .enabled = &HES_Item_CakeBowl, .disabled = &HES_Item_CakeBowl },
{ .enabled = &HES_Item_CakeMixed, .disabled = &HES_Item_CakeMixed },
{ .enabled = &HES_Item_CakeIcing, .disabled = &HES_Item_CakeIcing },
{ .enabled = &HES_Item_CakeBerries, .disabled = &HES_Item_CakeBerries },
{ .enabled = &HES_MoveDiamond, .disabled = &HES_MoveDiamondDisabled },
{ .enabled = &HES_Item_Hammer1, .disabled = &HES_Item_Hammer1 },
{ .enabled = &HES_Item_Hammer2, .disabled = &HES_Item_Hammer2 },
{ .enabled = &HES_Item_Hammer3, .disabled = &HES_Item_Hammer3 },
{ .enabled = &HES_Item_Boots1, .disabled = &HES_Item_Boots1 },
{ .enabled = &HES_Item_Boots2, .disabled = &HES_Item_Boots2 },
{ .enabled = &HES_Item_Boots3, .disabled = &HES_Item_Boots3 },
{ .enabled = &HES_Item_Items, .disabled = &HES_Item_Items }
};

File diff suppressed because it is too large Load Diff

336
src/item_hud_scripts.yaml Normal file
View File

@ -0,0 +1,336 @@
- { priority: 320, name: Present, template: STANDARD_ITEM, icon: key/Gift }
- { priority: 321, name: CakeDone, template: STANDARD_ITEM, icon: key/CakeDone }
- { priority: 322, name: CakeBare, template: STANDARD_ITEM, icon: key/CakeBare }
- { priority: 323, name: CakePan, template: STANDARD_ITEM, icon: key/CakePan }
- { priority: 324, name: CakeBatter, template: STANDARD_ITEM, icon: key/CakeBatter }
- { priority: 325, name: CakeBowl, template: STANDARD_ITEM, icon: key/CakeBowl }
- { priority: 326, name: CakeMixed, template: STANDARD_ITEM, icon: key/CakeMixed }
- { priority: 327, name: CakeWithIcing, template: STANDARD_ITEM, icon: key/CakeWithIcing }
- { priority: 328, name: CakeWithBerries, template: STANDARD_ITEM, icon: key/CakeWithBerries }
- { priority: 329, name: HES_MoveDiamond, pair: true }
- { priority: 330, name: MenuHammer1, template: STANDARD_ITEM, icon: menu/hammer_1 }
- { priority: 331, name: MenuHammer2, template: STANDARD_ITEM, icon: menu/hammer_2 }
- { priority: 332, name: MenuHammer3, template: STANDARD_ITEM, icon: menu/hammer_3 }
- { priority: 333, name: MenuBoots1, template: STANDARD_ITEM, icon: menu/boots_1 }
- { priority: 334, name: MenuBoots2, template: STANDARD_ITEM, icon: menu/boots_2 }
- { priority: 335, name: MenuBoots3, template: STANDARD_ITEM, icon: menu/boots_3 }
- { priority: 336, name: MenuItems, template: STANDARD_ITEM, icon: menu/items }
- { priority: 51, name: HeartPiece, template: HEART_PIECE }
- { priority: 49, name: Heart, template: HEART }
- { priority: 50, name: Coin, template: COIN }
- { priority: 52, name: StarPoint, template: STAR_POINT }
- { priority: 53, name: HeartPoint, template: HEART_POINT }
- { priority: 54, name: FlowerPoint, template: FLOWER_POINT }
- { priority: 55, name: StarPiece, template: STAR_PIECE }
- { priority: 56, name: GearBoots1, template: STANDARD_ITEM, icon: gear/boots_1 }
- { priority: 57, name: GearBoots2, template: STANDARD_ITEM, icon: gear/boots_2 }
- { priority: 58, name: GearBoots3, template: STANDARD_ITEM, icon: gear/boots_3 }
- { priority: 59, name: GearHammer1, template: STANDARD_ITEM, icon: gear/hammer_1 }
- { priority: 60, name: GearHammer2, template: STANDARD_ITEM, icon: gear/hammer_2 }
- { priority: 61, name: GearHammer3, template: STANDARD_ITEM, icon: gear/hammer_3 }
- { priority: 62, name: LuckyStar, template: STANDARD_ITEM, icon: gear/lucky_star }
- { priority: 63, name: Map, template: STANDARD_ITEM, icon: key/map }
- { priority: 64, name: KoopaFortressKey, template: STANDARD_ITEM, icon: key/key_koopa_fortress }
- { priority: 65, name: RuinsKey, template: STANDARD_ITEM, icon: key/key_ruins }
- { priority: 66, name: TubbaCastleKey, template: STANDARD_ITEM, icon: key/key_tubba_castle }
- { priority: 67, name: IcePalaceKey, template: STANDARD_ITEM, icon: key/key_ice_palace }
- { priority: 68, name: BowserCastleKey, template: STANDARD_ITEM, icon: key/key_bowser_castle }
- { priority: 69, name: Dolly, template: STANDARD_ITEM, icon: key/dolly }
- { priority: 70, name: KooperShell, template: STANDARD_ITEM, icon: key/kooper_shell }
- { priority: 71, name: PulseStone, template: STANDARD_ITEM, icon: key/pulse_stone }
- { priority: 72, name: Artifact, template: STANDARD_ITEM, icon: key/artifact }
- { priority: 73, name: AncientVase, template: STANDARD_ITEM, icon: key/vase }
- { priority: 74, name: RuinsStonePyramid, template: STANDARD_ITEM, icon: key/ruins_stone_pyramid }
- { priority: 75, name: RuinsStoneStar, template: STANDARD_ITEM, icon: key/ruins_stone_star }
- { priority: 76, name: RuinsStoneMoon, template: STANDARD_ITEM, icon: key/ruins_stone_moon }
- { priority: 77, name: ForestPass, template: STANDARD_ITEM, icon: key/forest_pass }
- { priority: 78, name: BooRecordOutline, template: STANDARD_ITEM, icon: key/boo_record_mask }
- { priority: 79, name: BooRecord, template: STANDARD_ITEM, icon: key/boo_record }
- { priority: 80, name: BooWeight, template: STANDARD_ITEM, icon: key/boo_weight }
- { priority: 81, name: BooPortrait, template: STANDARD_ITEM, icon: key/boo_portrait }
- { priority: 82, name: MysticKey, template: STANDARD_ITEM, icon: key/mystic_key }
- { priority: 83, name: IronKey, template: STANDARD_ITEM, icon: key/key_storeroom }
- { priority: 84, name: ToyboxTrain, template: STANDARD_ITEM, icon: key/toybox_train }
- { priority: 85, name: FryingPan, template: STANDARD_ITEM, icon: key/frying_pan }
- { priority: 86, name: Dictionary, template: STANDARD_ITEM, icon: key/dictionary }
- { priority: 87, name: MysteryNote, template: STANDARD_ITEM, icon: key/mystery_note }
- { priority: 88, name: SuspiciousNote, template: STANDARD_ITEM, icon: key/suspicious_note }
- { priority: 89, name: MagicalSeed1, template: STANDARD_ITEM, icon: key/seed_1 }
- { priority: 90, name: MagicalSeed2, template: STANDARD_ITEM, icon: key/seed_2 }
- { priority: 91, name: MagicalSeed3, template: STANDARD_ITEM, icon: key/seed_3 }
- { priority: 92, name: MagicalSeed4, template: STANDARD_ITEM, icon: key/seed_4 }
- { priority: 93, name: CrystalBerry, template: STANDARD_ITEM, icon: key/crystal_berry }
- { priority: 94, name: WaterStone, template: STANDARD_ITEM, icon: key/water_stone }
- { priority: 95, name: MagicBean, template: STANDARD_ITEM, icon: key/magic_bean }
- { priority: 96, name: FertileSoil, template: STANDARD_ITEM, icon: key/fertile_soil }
- { priority: 97, name: MiracleWater, template: STANDARD_ITEM, icon: key/miracle_water }
- { priority: 98, name: UltraStone, template: STANDARD_ITEM, icon: key/ultra_stone }
- { priority: 99, name: ToadDoll, template: STANDARD_ITEM, icon: key/toad_doll }
- { priority: 100, name: Calculator, template: STANDARD_ITEM, icon: key/calculator }
- { priority: 101, name: Screwdriver, template: STANDARD_ITEM, icon: key/screwdriver }
- { priority: 102, name: CookBook, template: STANDARD_ITEM, icon: key/book_cook }
- { priority: 103, name: JadeRaven, template: STANDARD_ITEM, icon: key/jade_raven }
- { priority: 104, name: SnowmanBucket, template: STANDARD_ITEM, icon: key/snowman_bucket }
- { priority: 105, name: SnowmanScarf, template: STANDARD_ITEM, icon: key/snowman_scarf }
- { priority: 106, name: RedKey, template: STANDARD_ITEM, icon: key/key_red }
- { priority: 107, name: BlueKey, template: STANDARD_ITEM, icon: key/key_blue }
- { priority: 108, name: KootPackage, template: STANDARD_ITEM, icon: key/koot_package }
- { priority: 109, name: KootRedJar, template: STANDARD_ITEM, icon: key/koot_red_jar }
- { priority: 110, name: Melody, template: STANDARD_ITEM, icon: key/book_melody }
- { priority: 111, name: Lyrics, template: STANDARD_ITEM, icon: key/book_lyrics }
- { priority: 112, name: Mailbag, template: STANDARD_ITEM, icon: key/mailbag }
- { priority: 113, name: StarStone, template: STANDARD_ITEM, icon: key/star_stone }
- { priority: 114, name: SneakyParasol, template: STANDARD_ITEM, icon: peach/sneaky_parasol }
- { priority: 115, name: PeachKey, template: STANDARD_ITEM, icon: key/key_peach }
- { priority: 116, name: UNK_1DC210, template: STANDARD_ITEM, icon: key/1DC210 }
- { priority: 117, name: UNK_1DC430, template: STANDARD_ITEM, icon: key/1DC430 }
- { priority: 118, name: UNK_1DC650, template: STANDARD_ITEM, icon: key/1DC650 }
- { priority: 119, name: UNK_1DC870, template: STANDARD_ITEM, icon: key/1DC870 }
- { priority: 120, name: DojoCard1, template: STANDARD_ITEM, icon: key/dojo_card_1 }
- { priority: 121, name: DojoCard2, template: STANDARD_ITEM, icon: key/dojo_card_2 }
- { priority: 122, name: DojoCard3, template: STANDARD_ITEM, icon: key/dojo_card_3 }
- { priority: 123, name: DojoCard4, template: STANDARD_ITEM, icon: key/dojo_card_4 }
- { priority: 124, name: DojoCard5, template: STANDARD_ITEM, icon: key/dojo_card_5 }
- { priority: 125, name: CrystalBall, template: STANDARD_ITEM, icon: key/crystal_ball }
- { priority: 126, name: GoldCard, template: STANDARD_ITEM, icon: key/card_gold }
- { priority: 127, name: SilverCard, template: STANDARD_ITEM, icon: key/card_silver }
- { priority: 128, name: KootBook, template: STANDARD_ITEM, icon: key/koot_book }
- { priority: 129, name: KootTheTape, template: STANDARD_ITEM, icon: key/koot_the_tape }
- { priority: 130, name: KootLuigiAutograph, template: STANDARD_ITEM, icon: key/koot_autograph_luigi }
- { priority: 131, name: KootEmptyWallet, template: STANDARD_ITEM, icon: key/koot_empty_wallet }
- { priority: 132, name: KootMerluvleeAutograph, template: STANDARD_ITEM, icon: key/koot_autograph_merluvlee }
- { priority: 133, name: KootShell, template: STANDARD_ITEM, icon: key/koot_shell }
- { priority: 134, name: KootPhoto, template: STANDARD_ITEM, icon: key/koot_photo }
- { priority: 135, name: KootGlasses, template: STANDARD_ITEM, icon: key/koot_glasses }
- { priority: 136, name: Letter, template: STANDARD_ITEM, icon: key/Letter, pair: true }
- { priority: 137, name: Unused_089, template: STANDARD_ITEM, icon: key/LongLetter, pair: true }
- { priority: 138, name: Unused_08A, template: STANDARD_ITEM, icon: key/TealLetter, pair: true }
- { priority: 139, name: Unused_08B, template: STANDARD_ITEM, icon: key/Postcard, pair: true }
- { priority: 140, name: Unused_08C, template: STANDARD_ITEM, icon: key/EmptyBook, pair: true }
- { priority: 141, name: Unused_08D, template: STANDARD_ITEM, icon: unused/item_08D, pair: true }
- { priority: 142, name: Unused_08E, template: STANDARD_ITEM, icon: unused/item_08E, pair: true }
- { priority: 143, name: Unused_08F, template: STANDARD_ITEM, icon: unused/item_08F, pair: true }
- { priority: 312, name: PleaseComeBack, template: STANDARD_ITEM, icon: battle/PleaseComeBack, pair: true }
- { priority: 313, name: Unused_139, template: STANDARD_ITEM, icon: battle/item_139, pair: true }
- { priority: 314, name: FrightJar, template: STANDARD_ITEM, icon: battle/FrightJar, pair: true }
- { priority: 315, name: Mystery, template: STANDARD_ITEM, icon: battle/Mystery, pair: true }
- { priority: 316, name: RepelGel, template: STANDARD_ITEM, icon: battle/RepelGel, pair: true }
- { priority: 317, name: InsecticideHerb, template: STANDARD_ITEM, icon: battle/InsecticideHerb, pair: true }
- { priority: 318, name: Unused_13E, template: STANDARD_ITEM, icon: battle/item_13E, pair: true }
- { priority: 319, name: Unused_13F, template: STANDARD_ITEM, icon: battle/item_13F, pair: true }
- { priority: 1, name: SpicySoup, template: STANDARD_ITEM, icon: food/SpicySoup, pair: true }
- { priority: 2, name: ApplePie, template: STANDARD_ITEM, icon: food/ApplePie, pair: true }
- { priority: 3, name: HoneyUltra, template: STANDARD_ITEM, icon: food/HoneyUltra, pair: true }
- { priority: 4, name: MapleUltra, template: STANDARD_ITEM, icon: food/MapleUltra, pair: true }
- { priority: 5, name: JellyUltra, template: STANDARD_ITEM, icon: food/JellyUltra, pair: true }
- { priority: 6, name: Koopasta, template: STANDARD_ITEM, icon: food/Koopasta, pair: true }
- { priority: 7, name: FriedShroom, template: STANDARD_ITEM, icon: food/FriedShroom, pair: true }
- { priority: 8, name: ShroomCake, template: STANDARD_ITEM, icon: food/ShroomCake, pair: true }
- { priority: 9, name: ShroomSteak, template: STANDARD_ITEM, icon: food/ShroomSteak, pair: true }
- { priority: 10, name: HotShroom, template: STANDARD_ITEM, icon: food/HotShroom, pair: true }
- { priority: 11, name: SweetShroom, template: STANDARD_ITEM, icon: food/SweetShroom, pair: true }
- { priority: 12, name: HealthyJuice, template: STANDARD_ITEM, icon: food/HealthyJuice, pair: true }
- { priority: 13, name: BlandMeal, template: STANDARD_ITEM, icon: food/BlandMeal, pair: true }
- { priority: 14, name: YummyMeal, template: STANDARD_ITEM, icon: food/YummyMeal, pair: true }
- { priority: 15, name: DeluxeFeast, template: STANDARD_ITEM, icon: food/DeluxeFeast, pair: true }
- { priority: 16, name: SpecialShake, template: STANDARD_ITEM, icon: food/SpecialShake, pair: true }
- { priority: 17, name: BigCookie, template: STANDARD_ITEM, icon: food/BigCookie, pair: true }
- { priority: 18, name: Cake, template: STANDARD_ITEM, icon: food/Cake, pair: true }
- { priority: 19, name: Mistake, template: STANDARD_ITEM, icon: food/Mistake, pair: true }
- { priority: 20, name: KoopaTea, template: STANDARD_ITEM, icon: food/KoopaTea, pair: true }
- { priority: 21, name: HoneySuper, template: STANDARD_ITEM, icon: food/HoneySuper, pair: true }
- { priority: 22, name: MapleSuper, template: STANDARD_ITEM, icon: food/MapleSuper, pair: true }
- { priority: 23, name: JellySuper, template: STANDARD_ITEM, icon: food/JellySuper, pair: true }
- { priority: 24, name: Spaghetti, template: STANDARD_ITEM, icon: food/Spaghetti, pair: true }
- { priority: 25, name: EggMissile, template: STANDARD_ITEM, icon: food/EggMissile, pair: true }
- { priority: 26, name: FriedEgg, template: STANDARD_ITEM, icon: food/FriedEgg, pair: true }
- { priority: 27, name: HoneyShroom, template: STANDARD_ITEM, icon: food/HoneyShroom, pair: true }
- { priority: 28, name: HoneyCandy, template: STANDARD_ITEM, icon: food/HoneyCandy, pair: true }
- { priority: 29, name: ElectroPop, template: STANDARD_ITEM, icon: food/ElectroPop, pair: true }
- { priority: 30, name: FirePop, template: STANDARD_ITEM, icon: food/FirePop, pair: true }
- { priority: 31, name: LimeCandy, template: STANDARD_ITEM, icon: food/LimeCandy, pair: true }
- { priority: 32, name: CocoPop, template: STANDARD_ITEM, icon: food/CocoPop, pair: true }
- { priority: 33, name: LemonCandy, template: STANDARD_ITEM, icon: food/LemonCandy, pair: true }
- { priority: 34, name: JellyPop, template: STANDARD_ITEM, icon: food/JellyPop, pair: true }
- { priority: 35, name: StrangeCake, template: STANDARD_ITEM, icon: food/StrangeCake, pair: true }
- { priority: 36, name: KookyCookie, template: STANDARD_ITEM, icon: food/KookyCookie, pair: true }
- { priority: 37, name: FrozenFries, template: STANDARD_ITEM, icon: food/FrozenFries, pair: true }
- { priority: 38, name: PotatoSalad, template: STANDARD_ITEM, icon: food/PotatoSalad, pair: true }
- { priority: 39, name: NuttyCake, template: STANDARD_ITEM, icon: food/NuttyCake, pair: true }
- { priority: 40, name: MapleShroom, template: STANDARD_ITEM, icon: food/MapleShroom, pair: true }
- { priority: 41, name: BoiledEgg, template: STANDARD_ITEM, icon: food/BoiledEgg, pair: true }
- { priority: 42, name: YoshiCookie, template: STANDARD_ITEM, icon: food/YoshiCookie, pair: true }
- { priority: 43, name: JellyShroom, template: STANDARD_ITEM, icon: food/JellyShroom, pair: true }
- { priority: 44, name: Unused_02C, template: STANDARD_ITEM, icon: unused/item_02C, pair: true }
- { priority: 45, name: Unused_02D, template: STANDARD_ITEM, icon: unused/item_02D, pair: true }
- { priority: 46, name: Unused_02E, template: STANDARD_ITEM, icon: unused/item_02E, pair: true }
- { priority: 47, name: Unused_02F, template: STANDARD_ITEM, icon: unused/item_02F, pair: true }
- { priority: 48, name: Unused_030, template: STANDARD_ITEM, icon: unused/item_030, pair: true }
- { priority: 144, name: SpinSmash, template: STANDARD_ITEM, icon: badge/SpinSmash, pair: true }
- { priority: 145, name: Multibounce, template: STANDARD_ITEM, icon: badge/Multibounce, pair: true }
- { priority: 146, name: PowerPlus, template: STANDARD_ITEM, icon: badge/PowerPlus, pair: true }
- { priority: 147, name: DodgeMaster, template: STANDARD_ITEM, icon: badge/DodgeMaster, pair: true }
- { priority: 148, name: PowerBounce, template: STANDARD_ITEM, icon: badge/PowerBounce, pair: true }
- { priority: 149, name: SpikeShield, template: STANDARD_ITEM, icon: badge/SpikeShield, pair: true }
- { priority: 150, name: FirstAttack, template: STANDARD_ITEM, icon: badge/FirstAttack, pair: true }
- { priority: 151, name: HPPlus, template: STANDARD_ITEM, icon: badge/HPPlus, pair: true }
- { priority: 152, name: QuakeHammer, template: STANDARD_ITEM, icon: badge/QuakeHammer, pair: true }
- { priority: 153, name: DoubleDip, template: STANDARD_ITEM, icon: badge/DoubleDip, pair: true }
- { priority: 154, name: PowerQuake, template: STANDARD_ITEM, icon: badge/PowerQuake, pair: true }
- { priority: 155, name: MegaQuake, template: STANDARD_ITEM, icon: badge/MegaQuake, pair: true }
- { priority: 156, name: SleepStomp, template: STANDARD_ITEM, icon: badge/SleepStomp, pair: true }
- { priority: 157, name: SmashCharge, template: STANDARD_ITEM, icon: badge/SmashCharge, pair: true }
- { priority: 158, name: SSmashChg, template: STANDARD_ITEM, icon: badge/SSmashChg, pair: true }
- { priority: 159, name: AutoSmash, template: STANDARD_ITEM, icon: badge/AutoSmash, pair: true }
- { priority: 160, name: FireShield, template: STANDARD_ITEM, icon: badge/FireShield, pair: true }
- { priority: 161, name: JumpCharge, template: STANDARD_ITEM, icon: badge/JumpCharge, pair: true }
- { priority: 162, name: SJumpChg, template: STANDARD_ITEM, icon: badge/SJumpChg, pair: true }
- { priority: 163, name: AutoJump, template: STANDARD_ITEM, icon: badge/AutoJump, pair: true }
- { priority: 164, name: DDownPound, template: STANDARD_ITEM, icon: badge/DDownPound, pair: true }
- { priority: 165, name: AutoMultibounce, template: STANDARD_ITEM, icon: badge/AutoMultibounce, pair: true }
- { priority: 166, name: DizzyStomp, template: STANDARD_ITEM, icon: badge/DizzyStomp, pair: true }
- { priority: 167, name: HammerThrow, template: STANDARD_ITEM, icon: badge/HammerThrow, pair: true }
- { priority: 168, name: SmashCharge0, template: STANDARD_ITEM, icon: badge/SmashCharge0, pair: true }
- { priority: 169, name: PrettyLucky, template: STANDARD_ITEM, icon: badge/PrettyLucky, pair: true }
- { priority: 170, name: FeelingFine, template: STANDARD_ITEM, icon: badge/FeelingFine, pair: true }
- { priority: 171, name: AttackFXA, template: STANDARD_ITEM, icon: badge/AttackFXA, pair: true }
- { priority: 172, name: AllorNothing, template: STANDARD_ITEM, icon: badge/AllorNothing, pair: true }
- { priority: 173, name: HPDrain, template: STANDARD_ITEM, icon: badge/HPDrain, pair: true }
- { priority: 174, name: JumpCharge0, template: STANDARD_ITEM, icon: badge/JumpCharge0, pair: true }
- { priority: 175, name: SlowGo, template: STANDARD_ITEM, icon: badge/SlowGo, pair: true }
- { priority: 176, name: FPPlus, template: STANDARD_ITEM, icon: badge/FPPlus, pair: true }
- { priority: 177, name: MegaRush, template: STANDARD_ITEM, icon: badge/MegaRush, pair: true }
- { priority: 178, name: IcePower, template: STANDARD_ITEM, icon: badge/IcePower, pair: true }
- { priority: 179, name: DefendPlus, template: STANDARD_ITEM, icon: badge/DefendPlus, pair: true }
- { priority: 180, name: PayOff, template: STANDARD_ITEM, icon: badge/PayOff, pair: true }
- { priority: 181, name: MoneyMoney, template: STANDARD_ITEM, icon: badge/MoneyMoney, pair: true }
- { priority: 182, name: ChillOut, template: STANDARD_ITEM, icon: badge/ChillOut, pair: true }
- { priority: 183, name: HappyHeart, template: STANDARD_ITEM, icon: badge/HappyHeart, pair: true }
- { priority: 184, name: ZapTap, template: STANDARD_ITEM, icon: badge/ZapTap, pair: true }
- { priority: 185, name: Berserker, template: STANDARD_ITEM, icon: badge/Berserker, pair: true }
- { priority: 186, name: RightOn, template: STANDARD_ITEM, icon: badge/RightOn, pair: true }
- { priority: 187, name: RunawayPay, template: STANDARD_ITEM, icon: badge/RunawayPay, pair: true }
- { priority: 188, name: Refund, template: STANDARD_ITEM, icon: badge/Refund, pair: true }
- { priority: 189, name: FlowerSaver, template: STANDARD_ITEM, icon: badge/FlowerSaver, pair: true }
- { priority: 190, name: TripleDip, template: STANDARD_ITEM, icon: badge/TripleDip, pair: true }
- { priority: 191, name: FlowerFanatic, template: STANDARD_ITEM, icon: badge/FlowerFanatic, pair: true }
- { priority: 192, name: PowerJump, template: STANDARD_ITEM, icon: badge/PowerJump, pair: true }
- { priority: 193, name: SuperJump, template: STANDARD_ITEM, icon: badge/SuperJump, pair: true }
- { priority: 194, name: MegaJump, template: STANDARD_ITEM, icon: badge/MegaJump, pair: true }
- { priority: 195, name: PowerSmash1, template: STANDARD_ITEM, icon: badge/PowerSmash, pair: true }
- { priority: 196, name: SuperSmash, template: STANDARD_ITEM, icon: badge/SuperSmash, pair: true }
- { priority: 197, name: MegaSmash, template: STANDARD_ITEM, icon: badge/MegaSmash, pair: true }
- { priority: 198, name: LuckyDay, template: STANDARD_ITEM, icon: badge/LuckyDay, pair: true }
- { priority: 199, name: MegaHPDrain, template: STANDARD_ITEM, icon: badge/MegaHPDrain, pair: true }
- { priority: 200, name: BumpAttack, template: STANDARD_ITEM, icon: badge/BumpAttack, pair: true }
- { priority: 201, name: PUpDDown, template: STANDARD_ITEM, icon: badge/PUpDDown, pair: true }
- { priority: 202, name: PDownDUp, template: STANDARD_ITEM, icon: badge/PDownDUp, pair: true }
- { priority: 203, name: HeartFinder, template: STANDARD_ITEM, icon: badge/HeartFinder, pair: true }
- { priority: 204, name: FlowerFinder, template: STANDARD_ITEM, icon: badge/FlowerFinder, pair: true }
- { priority: 205, name: DizzyAttack, template: STANDARD_ITEM, icon: badge/DizzyAttack, pair: true }
- { priority: 206, name: SpeedySpin, template: STANDARD_ITEM, icon: badge/SpeedySpin, pair: true }
- { priority: 207, name: SpinAttack, template: STANDARD_ITEM, icon: badge/SpinAttack, pair: true }
- { priority: 208, name: ISpy, template: STANDARD_ITEM, icon: badge/ISpy, pair: true }
- { priority: 209, name: PowerRush, template: STANDARD_ITEM, icon: badge/PowerRush, pair: true }
- { priority: 210, name: LastStand, template: STANDARD_ITEM, icon: badge/LastStand, pair: true }
- { priority: 211, name: CloseCall, template: STANDARD_ITEM, icon: badge/CloseCall, pair: true }
- { priority: 212, name: CrazyHeart, template: STANDARD_ITEM, icon: badge/CrazyHeart, pair: true }
- { priority: 213, name: Unused_0D5, template: STANDARD_ITEM, icon: unused/item_0D5, pair: true }
- { priority: 214, name: Unused_0D6, template: STANDARD_ITEM, icon: unused/item_0D6, pair: true }
- { priority: 215, name: Unused_0D7, template: STANDARD_ITEM, icon: unused/item_0D7, pair: true }
- { priority: 216, name: ShrinkSmash, template: STANDARD_ITEM, icon: badge/ShrinkSmash, pair: true }
- { priority: 217, name: ShrinkStomp, template: STANDARD_ITEM, icon: badge/ShrinkStomp, pair: true }
- { priority: 218, name: DDownJump, template: STANDARD_ITEM, icon: badge/DDownJump, pair: true }
- { priority: 219, name: DamageDodge, template: STANDARD_ITEM, icon: badge/DamageDodge, pair: true }
- { priority: 220, name: EarthquakeJump, template: STANDARD_ITEM, icon: badge/EarthquakeJump, pair: true }
- { priority: 221, name: HappyFlower, template: STANDARD_ITEM, icon: badge/HappyFlower, pair: true }
- { priority: 222, name: Unused_0DE, template: STANDARD_ITEM, icon: badge/HappyCoin, pair: true }
- { priority: 223, name: Unused_0DF, template: STANDARD_ITEM, icon: unused/item_0DF, pair: true }
- { priority: 224, name: DeepFocus, template: STANDARD_ITEM, icon: badge/DeepFocus, pair: true }
- { priority: 225, name: SuperFocus, template: STANDARD_ITEM, icon: badge/SuperFocus, pair: true }
- { priority: 226, name: Kaiden, template: STANDARD_ITEM, icon: badge/Kaiden, pair: true }
- { priority: 227, name: QuickChange, template: STANDARD_ITEM, icon: badge/QuickChange, pair: true }
- { priority: 228, name: Unused_0E4, template: STANDARD_ITEM, icon: unused/item_0E4, pair: true }
- { priority: 229, name: Unused_0E5, template: STANDARD_ITEM, icon: unused/item_0E5, pair: true }
- { priority: 230, name: Unused_0E6, template: STANDARD_ITEM, icon: unused/item_0E6, pair: true }
- { priority: 231, name: Unused_0E7, template: STANDARD_ITEM, icon: unused/item_0E7, pair: true }
- { priority: 232, name: Peekaboo, template: STANDARD_ITEM, icon: badge/Peekaboo, pair: true }
- { priority: 233, name: GroupFocus, template: STANDARD_ITEM, icon: badge/GroupFocus, pair: true }
- { priority: 234, name: AttackFXD, template: STANDARD_ITEM, icon: badge/AttackFXD, pair: true }
- { priority: 235, name: AttackFXB, template: STANDARD_ITEM, icon: badge/AttackFXB, pair: true }
- { priority: 236, name: AttackFXE, template: STANDARD_ITEM, icon: badge/AttackFXE, pair: true }
- { priority: 237, name: AttackFXC, template: STANDARD_ITEM, icon: badge/AttackFXC, pair: true }
- { priority: 238, name: AttackFXF, template: STANDARD_ITEM, icon: badge/AttackFXF, pair: true }
- { priority: 239, name: Unused_0EF, template: STANDARD_ITEM, icon: unused/item_0EF, pair: true }
- { priority: 240, name: HealthyHealthy, template: STANDARD_ITEM, icon: badge/HealthyHealthy, pair: true }
- { priority: 241, name: Unused_0F1, template: STANDARD_ITEM, icon: unused/item_0F1, pair: true }
- { priority: 242, name: Unused_0F2, template: STANDARD_ITEM, icon: unused/item_0F2, pair: true }
- { priority: 243, name: Unused_0F3, template: STANDARD_ITEM, icon: unused/item_0F3, pair: true }
- { priority: 244, name: Unused_0F4, template: STANDARD_ITEM, icon: unused/item_0F4, pair: true }
- { priority: 245, name: Unused_0F5, template: STANDARD_ITEM, icon: unused/item_0F5, pair: true }
- { priority: 246, name: Unused_0F6, template: STANDARD_ITEM, icon: unused/item_0F6, pair: true }
- { priority: 247, name: Unused_0F7, template: STANDARD_ITEM, icon: unused/item_0F7, pair: true }
- { priority: 288, name: FireFlower, template: STANDARD_ITEM, icon: battle/FireFlower, pair: true }
- { priority: 289, name: SnowmanDoll, template: STANDARD_ITEM, icon: battle/SnowmanDoll, pair: true }
- { priority: 290, name: ThunderRage, template: STANDARD_ITEM, icon: battle/ThunderRage, pair: true }
- { priority: 291, name: ThunderBolt, template: STANDARD_ITEM, icon: battle/ThunderBolt, pair: true }
- { priority: 292, name: ShootingStar, template: STANDARD_ITEM, icon: battle/ShootingStar, pair: true }
- { priority: 293, name: DustyHammer, template: STANDARD_ITEM, icon: battle/DustyHammer, pair: true }
- { priority: 294, name: Pebble, template: STANDARD_ITEM, icon: battle/Pebble, pair: true }
- { priority: 295, name: Unused_127, template: STANDARD_ITEM, icon: unused/item_127, pair: true }
- { priority: 296, name: StoneCap, template: STANDARD_ITEM, icon: battle/StoneCap, pair: true }
- { priority: 297, name: VoltShroom, template: STANDARD_ITEM, icon: battle/VoltShroom, pair: true }
- { priority: 298, name: PowerStar, template: STANDARD_ITEM, icon: battle/PowerStar, pair: true }
- { priority: 299, name: Parasol, template: STANDARD_ITEM, icon: battle/Parasol, pair: true }
- { priority: 300, name: MagicMirror, template: STANDARD_ITEM, icon: battle/MagicMirror, pair: true }
- { priority: 301, name: Unused_12D, template: STANDARD_ITEM, icon: unused/item_12D, pair: true }
- { priority: 302, name: Unused_12E, template: STANDARD_ITEM, icon: unused/item_12E, pair: true }
- { priority: 303, name: Unused_12F, template: STANDARD_ITEM, icon: unused/item_12F, pair: true }
- { priority: 248, name: Mushroom, template: STANDARD_ITEM, icon: food/Mushroom, pair: true }
- { priority: 249, name: SuperShroom, template: STANDARD_ITEM, icon: food/SuperShroom, pair: true }
- { priority: 250, name: UltraShroom, template: STANDARD_ITEM, icon: food/UltraShroom, pair: true }
- { priority: 251, name: LifeShroom, template: STANDARD_ITEM, icon: food/LifeShroom, pair: true }
- { priority: 252, name: DriedShroom, template: STANDARD_ITEM, icon: food/DriedShroom, pair: true }
- { priority: 253, name: TastyTonic, template: STANDARD_ITEM, icon: food/TastyTonic, pair: true }
- { priority: 254, name: SuperSoda, template: STANDARD_ITEM, icon: food/SuperSoda, pair: true }
- { priority: 255, name: BlueBerry, template: STANDARD_ITEM, icon: food/BlueBerry, pair: true }
- { priority: 256, name: RedBerry, template: STANDARD_ITEM, icon: food/RedBerry, pair: true }
- { priority: 257, name: YellowBerry, template: STANDARD_ITEM, icon: food/YellowBerry, pair: true }
- { priority: 258, name: BubbleBerry, template: STANDARD_ITEM, icon: food/BubbleBerry, pair: true }
- { priority: 259, name: Goomnut, template: STANDARD_ITEM, icon: food/Goomnut, pair: true }
- { priority: 260, name: KoopaLeaf, template: STANDARD_ITEM, icon: food/KoopaLeaf, pair: true }
- { priority: 261, name: DriedPasta, template: STANDARD_ITEM, icon: food/DriedPasta, pair: true }
- { priority: 262, name: Lime, template: STANDARD_ITEM, icon: food/Lime, pair: true }
- { priority: 263, name: Lemon, template: STANDARD_ITEM, icon: food/Lemon, pair: true }
- { priority: 264, name: DriedFruit, template: STANDARD_ITEM, icon: food/DriedFruit, pair: true }
- { priority: 265, name: StrangeLeaf, template: STANDARD_ITEM, icon: food/StrangeLeaf, pair: true }
- { priority: 266, name: CakeMix, template: STANDARD_ITEM, icon: food/CakeMix, pair: true }
- { priority: 267, name: Egg, template: STANDARD_ITEM, icon: food/Egg, pair: true }
- { priority: 268, name: Coconut, template: STANDARD_ITEM, icon: food/Coconut, pair: true }
- { priority: 269, name: Melon, template: STANDARD_ITEM, icon: food/Melon, pair: true }
- { priority: 270, name: StinkyHerb, template: STANDARD_ITEM, icon: food/StinkyHerb, pair: true }
- { priority: 271, name: IcedPotato, template: STANDARD_ITEM, icon: food/IcedPotato, pair: true }
- { priority: 272, name: HoneySyrup, template: STANDARD_ITEM, icon: food/HoneySyrup, pair: true }
- { priority: 273, name: MapleSyrup, template: STANDARD_ITEM, icon: food/MapleSyrup, pair: true }
- { priority: 274, name: JamminJelly, template: STANDARD_ITEM, icon: food/JamminJelly, pair: true }
- { priority: 275, name: WhackasBump, template: STANDARD_ITEM, icon: food/WhackasBump, pair: true }
- { priority: 276, name: Apple, template: STANDARD_ITEM, icon: food/Apple, pair: true }
- { priority: 277, name: BakingSalt, template: STANDARD_ITEM, icon: peach/BakingSalt, pair: true }
- { priority: 278, name: BakingSugar, template: STANDARD_ITEM, icon: peach/BakingSugar, pair: true }
- { priority: 279, name: BakingEgg, template: STANDARD_ITEM, icon: peach/BakingEgg, pair: true }
- { priority: 280, name: BakingCream, template: STANDARD_ITEM, icon: peach/BakingCream, pair: true }
- { priority: 281, name: BakingStrawberry, template: STANDARD_ITEM, icon: peach/BakingStrawberry, pair: true }
- { priority: 282, name: BakingButter, template: STANDARD_ITEM, icon: peach/BakingButter, pair: true }
- { priority: 283, name: BakingCleanser, template: STANDARD_ITEM, icon: peach/BakingCleanser, pair: true }
- { priority: 284, name: BakingWater, template: STANDARD_ITEM, icon: peach/BakingWater, pair: true }
- { priority: 285, name: BakingFlour, template: STANDARD_ITEM, icon: peach/BakingFlour, pair: true }
- { priority: 286, name: BakingMilk, template: STANDARD_ITEM, icon: peach/BakingMilk, pair: true }
- { priority: 287, name: Unused_11F, template: STANDARD_ITEM, icon: unused/item_11F, pair: true }
- { priority: 304, name: SleepySheep, template: STANDARD_ITEM, icon: battle/SleepySheep, pair: true }
- { priority: 305, name: XBandage, template: STANDARD_ITEM, icon: battle/XBandage, pair: true }
- { priority: 306, name: POWBlock, template: STANDARD_ITEM, icon: battle/POWBlock, pair: true }
- { priority: 307, name: HustleDrink, template: STANDARD_ITEM, icon: battle/HustleDrink, pair: true }
- { priority: 308, name: StopWatch, template: STANDARD_ITEM, icon: battle/StopWatch, pair: true }
- { priority: 309, name: DizzyDial, template: STANDARD_ITEM, icon: battle/DizzyDial, pair: true }
- { priority: 310, name: Unused_136, template: STANDARD_ITEM, icon: battle/item_136, pair: true }
- { priority: 311, name: Unused_137, template: STANDARD_ITEM, icon: battle/item_137, pair: true }

File diff suppressed because it is too large Load Diff

5459
src/item_table.yaml Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1665
src/move_table.yaml Normal file

File diff suppressed because it is too large Load Diff

View File

@ -663,9 +663,9 @@ void msg_play_speech_sound(MessagePrintState* printer, u8 character) {
} }
if (character & flag) { if (character & flag) {
sfx_play_sound_with_params(printer->speedSoundIDA, volume, printer->speechPan, pitchShift); sfx_play_sound_with_params(printer->speechSoundIDA, volume, printer->speechPan, pitchShift);
} else { } else {
sfx_play_sound_with_params(printer->speedSoundIDB, volume, printer->speechPan, pitchShift); sfx_play_sound_with_params(printer->speechSoundIDB, volume, printer->speechPan, pitchShift);
} }
} }
} }
@ -674,7 +674,7 @@ extern s32 gItemIconRasterOffsets[];
extern s32 gItemIconPaletteOffsets[]; extern s32 gItemIconPaletteOffsets[];
extern s32 D_802EB5C0[]; extern s32 D_802EB5C0[];
extern s32 D_802EB5F0[]; extern s32 D_802EB5F0[];
extern struct_D_802EB620 D_802EB620[]; extern MsgVoice MsgVoices[];
#if VERSION_IQUE #if VERSION_IQUE
INCLUDE_ASM(s32, "msg", msg_copy_to_print_buffer); INCLUDE_ASM(s32, "msg", msg_copy_to_print_buffer);
@ -771,8 +771,8 @@ void msg_copy_to_print_buffer(MessagePrintState* printer, s32 arg1, s32 arg2) {
if (nextArg != MSG_CHAR_UNK_C3) { if (nextArg != MSG_CHAR_UNK_C3) {
printer->stateFlags |= MSG_STATE_FLAG_80; printer->stateFlags |= MSG_STATE_FLAG_80;
} }
printer->speedSoundIDA = SOUND_11; printer->speechSoundIDA = SOUND_NORMAL_VOICE_A;
printer->speedSoundIDB = SOUND_12; printer->speechSoundIDB = SOUND_NORMAL_VOICE_B;
printer->windowState = MSG_WINDOW_STATE_OPENING; printer->windowState = MSG_WINDOW_STATE_OPENING;
break; break;
case MSG_STYLE_CHOICE: case MSG_STYLE_CHOICE:
@ -1243,9 +1243,9 @@ void msg_copy_to_print_buffer(MessagePrintState* printer, s32 arg1, s32 arg2) {
case MSG_READ_FUNC_VOICE: case MSG_READ_FUNC_VOICE:
arg = *srcBuf++; arg = *srcBuf++;
printer->speechSoundType = arg; printer->speechSoundType = arg;
printer->speedSoundIDA = D_802EB620[arg].unk_00; printer->speechSoundIDA = MsgVoices[arg].unk_00;
printer->speedSoundIDB = D_802EB620[arg].unk_04; printer->speechSoundIDB = MsgVoices[arg].unk_04;
printer->speechVolumePitch = D_802EB620[arg].unk_08; printer->speechVolumePitch = MsgVoices[arg].unk_08;
break; break;
case MSG_READ_FUNC_VOLUME: case MSG_READ_FUNC_VOLUME:
printer->volume = *srcBuf++; printer->volume = *srcBuf++;
@ -1255,12 +1255,12 @@ void msg_copy_to_print_buffer(MessagePrintState* printer, s32 arg1, s32 arg2) {
argQ = *srcBuf++; argQ = *srcBuf++;
argW = *srcBuf++; argW = *srcBuf++;
argE = *srcBuf++; argE = *srcBuf++;
printer->speedSoundIDA = (arg << 0x18) + (argQ << 0x10) + (argW << 0x8) + (argE); printer->speechSoundIDA = (arg << 0x18) + (argQ << 0x10) + (argW << 0x8) + (argE);
arg = *srcBuf++; arg = *srcBuf++;
argQ = *srcBuf++; argQ = *srcBuf++;
argW = *srcBuf++; argW = *srcBuf++;
argE = *srcBuf++; argE = *srcBuf++;
printer->speedSoundIDB = (arg << 0x18) + (argQ << 0x10) + (argW << 0x8) + (argE); printer->speechSoundIDB = (arg << 0x18) + (argQ << 0x10) + (argW << 0x8) + (argE);
break; break;
case MSG_READ_FUNC_CENTER_X: case MSG_READ_FUNC_CENTER_X:
*printBuf++ = MSG_CHAR_PRINT_FUNCTION; *printBuf++ = MSG_CHAR_PRINT_FUNCTION;
@ -1374,8 +1374,8 @@ void initialize_printer(MessagePrintState* printer, s32 arg1, s32 arg2) {
printer->windowSize.y = 0; printer->windowSize.y = 0;
printer->windowSize.x = 0; printer->windowSize.x = 0;
printer->speechVolumePitch = 0; printer->speechVolumePitch = 0;
printer->speedSoundIDA = 0; printer->speechSoundIDA = 0;
printer->speedSoundIDB = 0; printer->speechSoundIDB = 0;
printer->varBufferReadPos = 0; printer->varBufferReadPos = 0;
printer->curImageIndex = 0; printer->curImageIndex = 0;
printer->varImageScreenPos.x = 0; printer->varImageScreenPos.x = 0;

View File

@ -8,20 +8,20 @@ s32 D_802EB5F0[] = {
0x0000EB78, 0x00010778, 0x00012378, 0x00013F78, 0x00015B78, 0x00017778, 0x00019378, 0x0001AF78, 0x0001CB78, 0x0001E778, 0x00020378, 0x00021F78 0x0000EB78, 0x00010778, 0x00012378, 0x00013F78, 0x00015B78, 0x00017778, 0x00019378, 0x0001AF78, 0x0001CB78, 0x0001E778, 0x00020378, 0x00021F78
}; };
struct_D_802EB620 D_802EB620[] = { MsgVoice MsgVoices[] = {
{ {
.unk_00 = 0x11, .unk_00 = SOUND_NORMAL_VOICE_A,
.unk_04 = 0x12, .unk_04 = SOUND_NORMAL_VOICE_B,
.unk_08 = 0 .unk_08 = 0
}, },
{ {
.unk_00 = 0x17, .unk_00 = SOUND_BOWSER_VOICE_A,
.unk_04 = 0x18, .unk_04 = SOUND_BOWSER_VOICE_B,
.unk_08 = -50 .unk_08 = -50
}, },
{ {
.unk_00 = 0x1B, .unk_00 = SOUND_STAR_VOICE,
.unk_04 = 0x1B, .unk_04 = SOUND_STAR_VOICE,
.unk_08 = 0 .unk_08 = 0
}, },
}; };

View File

@ -1,7 +1,7 @@
#include "pause_common.h" #include "pause_common.h"
#include "message_ids.h" #include "message_ids.h"
extern Gfx gPauseDLOrbs[]; extern Gfx PauseGfxOrbs[];
void pause_badges_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening); void pause_badges_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening);
void pause_badges_init(MenuPanel* panel); void pause_badges_init(MenuPanel* panel);
@ -531,7 +531,7 @@ void pause_badges_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width
orbColorG1 = 255; orbColorG1 = 255;
orbColorB1 = 100; orbColorB1 = 100;
gSPDisplayList(gMainGfxPos++, gPauseDLOrbs); gSPDisplayList(gMainGfxPos++, PauseGfxOrbs);
gDPSetTextureFilter(gMainGfxPos++, G_TF_BILERP); gDPSetTextureFilter(gMainGfxPos++, G_TF_BILERP);
if (isEquipped == 0) { if (isEquipped == 0) {
@ -642,7 +642,7 @@ void pause_badges_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width
orbColorG = 255; orbColorG = 255;
orbColorB = 100; orbColorB = 100;
maxBP = playerData->maxBP; maxBP = playerData->maxBP;
gSPDisplayList(gMainGfxPos++, gPauseDLOrbs); gSPDisplayList(gMainGfxPos++, PauseGfxOrbs);
gDPSetTextureFilter(gMainGfxPos++, G_TF_BILERP); gDPSetTextureFilter(gMainGfxPos++, G_TF_BILERP);
for (orbIndex = 0; orbIndex < maxBP; orbIndex++) { for (orbIndex = 0; orbIndex < maxBP; orbIndex++) {
gDPSetPrimColor(gMainGfxPos++, 0, 0, 227, 227, 227, 255); gDPSetPrimColor(gMainGfxPos++, 0, 0, 227, 227, 227, 255);

View File

@ -71,7 +71,7 @@ extern u8 pause_banner_boots_pal[];
extern u8 pause_banner_star_energy_pal[]; extern u8 pause_banner_star_energy_pal[];
#endif #endif
Gfx gPauseDLBannerHp[] = { Gfx PauseGfxBannerHp[] = {
gsDPPipeSync(), gsDPPipeSync(),
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON), gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCycleType(G_CYC_1CYCLE),
@ -90,7 +90,7 @@ Gfx gPauseDLBannerHp[] = {
gsSPEndDisplayList(), gsSPEndDisplayList(),
}; };
Gfx gPauseDLBannerFp[] = { Gfx PauseGfxBannerFp[] = {
gsDPPipeSync(), gsDPPipeSync(),
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON), gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCycleType(G_CYC_1CYCLE),
@ -109,7 +109,7 @@ Gfx gPauseDLBannerFp[] = {
gsSPEndDisplayList(), gsSPEndDisplayList(),
}; };
Gfx gPauseDLBannerBp[] = { Gfx PauseGfxBannerBp[] = {
gsDPPipeSync(), gsDPPipeSync(),
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON), gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCycleType(G_CYC_1CYCLE),
@ -128,7 +128,7 @@ Gfx gPauseDLBannerBp[] = {
gsSPEndDisplayList(), gsSPEndDisplayList(),
}; };
Gfx gPauseDLBannerBoots[] = { Gfx PauseGfxBannerBoots[] = {
gsDPPipeSync(), gsDPPipeSync(),
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON), gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCycleType(G_CYC_1CYCLE),
@ -147,7 +147,7 @@ Gfx gPauseDLBannerBoots[] = {
gsSPEndDisplayList(), gsSPEndDisplayList(),
}; };
Gfx gPauseDLBannerHammer[] = { Gfx PauseGfxBannerHammer[] = {
gsDPPipeSync(), gsDPPipeSync(),
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON), gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCycleType(G_CYC_1CYCLE),
@ -166,7 +166,7 @@ Gfx gPauseDLBannerHammer[] = {
gsSPEndDisplayList(), gsSPEndDisplayList(),
}; };
Gfx gPauseDLBannerStarEnergy[] = { Gfx PauseGfxBannerStarEnergy[] = {
gsDPPipeSync(), gsDPPipeSync(),
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON), gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCycleType(G_CYC_1CYCLE),
@ -185,7 +185,7 @@ Gfx gPauseDLBannerStarEnergy[] = {
gsSPEndDisplayList(), gsSPEndDisplayList(),
}; };
Gfx gPauseDLStatsBar[] = { Gfx PauseGfxStatsBar[] = {
gsDPPipeSync(), gsDPPipeSync(),
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON), gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCycleType(G_CYC_1CYCLE),
@ -204,7 +204,7 @@ Gfx gPauseDLStatsBar[] = {
gsSPEndDisplayList(), gsSPEndDisplayList(),
}; };
Gfx gPauseDLWorldMap[] = { Gfx PauseGfxWorldMap[] = {
gsDPPipeSync(), gsDPPipeSync(),
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON), gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCycleType(G_CYC_1CYCLE),
@ -222,7 +222,7 @@ Gfx gPauseDLWorldMap[] = {
gsSPEndDisplayList(), gsSPEndDisplayList(),
}; };
Gfx gPauseDLPathPoints[] = { Gfx PauseGfxPathPoints[] = {
gsDPPipeSync(), gsDPPipeSync(),
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON), gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCycleType(G_CYC_1CYCLE),
@ -242,7 +242,7 @@ Gfx gPauseDLPathPoints[] = {
gsSPEndDisplayList(), gsSPEndDisplayList(),
}; };
Gfx gPauseDLArrows[] = { Gfx PauseGfxArrows[] = {
gsDPPipeSync(), gsDPPipeSync(),
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON), gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCycleType(G_CYC_1CYCLE),
@ -260,7 +260,7 @@ Gfx gPauseDLArrows[] = {
gsSPEndDisplayList(), gsSPEndDisplayList(),
}; };
Gfx gPauseDLOrbs[] = { Gfx PauseGfxOrbs[] = {
gsDPPipeSync(), gsDPPipeSync(),
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON), gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCycleType(G_CYC_1CYCLE),
@ -278,7 +278,7 @@ Gfx gPauseDLOrbs[] = {
gsSPEndDisplayList(), gsSPEndDisplayList(),
}; };
Gfx gPauseDLAvailable[] = { Gfx PauseGfxAvailable[] = {
gsDPPipeSync(), gsDPPipeSync(),
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON), gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCycleType(G_CYC_1CYCLE),
@ -302,7 +302,7 @@ Gfx gPauseDLAvailable[] = {
#define pause_prompt_check_abilities_png_height 16 #define pause_prompt_check_abilities_png_height 16
#endif #endif
Gfx gPauseDLCheckAbilities[] = { Gfx PauseGfxCheckAbilities[] = {
gsDPPipeSync(), gsDPPipeSync(),
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON), gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCycleType(G_CYC_1CYCLE),
@ -321,7 +321,7 @@ Gfx gPauseDLCheckAbilities[] = {
gsSPEndDisplayList(), gsSPEndDisplayList(),
}; };
Gfx gPauseDLSpiritsBg[] = { Gfx PauseGfxSpiritsBg[] = {
gsDPPipeSync(), gsDPPipeSync(),
gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON), gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCycleType(G_CYC_1CYCLE), gsDPSetCycleType(G_CYC_1CYCLE),
@ -567,16 +567,16 @@ s32 gPauseMessages[] = {
[PAUSE_MSG_UNKNOWN_SPIRIT] (s32) gPauseMsg_56, [PAUSE_MSG_UNKNOWN_SPIRIT] (s32) gPauseMsg_56,
}; };
Gfx* gPauseDLLabels[] = { Gfx* PauseGfxLabels[] = {
[PAUSE_LBL_HP] gPauseDLBannerHp, [PAUSE_LBL_HP] PauseGfxBannerHp,
[PAUSE_LBL_FP] gPauseDLBannerFp, [PAUSE_LBL_FP] PauseGfxBannerFp,
[PAUSE_LBL_BP] gPauseDLBannerBp, [PAUSE_LBL_BP] PauseGfxBannerBp,
[PAUSE_LBL_BOOTS] gPauseDLBannerBoots, [PAUSE_LBL_BOOTS] PauseGfxBannerBoots,
[PAUSE_LBL_HAMMER] gPauseDLBannerHammer, [PAUSE_LBL_HAMMER] PauseGfxBannerHammer,
[PAUSE_LBL_ENERGY] gPauseDLBannerStarEnergy, [PAUSE_LBL_ENERGY] PauseGfxBannerStarEnergy,
[PAUSE_LBL_STATS] gPauseDLStatsBar, [PAUSE_LBL_STATS] PauseGfxStatsBar,
[PAUSE_LBL_AVAILABLE] gPauseDLAvailable, [PAUSE_LBL_AVAILABLE] PauseGfxAvailable,
[PAUSE_LBL_ABILITIES] gPauseDLCheckAbilities, [PAUSE_LBL_ABILITIES] PauseGfxCheckAbilities,
}; };
s32 pause_get_menu_msg(s32 index) { s32 pause_get_menu_msg(s32 index) {
@ -602,7 +602,7 @@ void pause_draw_menu_label(s32 index, s32 x, s32 y) {
xOffset = 160; xOffset = 160;
} }
gSPDisplayList(gMainGfxPos++, gPauseDLLabels[index]); gSPDisplayList(gMainGfxPos++, PauseGfxLabels[index]);
pause_draw_rect(x * 4, y * 4, (x + xOffset) * 4, (y + 16) * 4, 0, 0, 0, 0x400, 0x400); pause_draw_rect(x * 4, y * 4, (x + xOffset) * 4, (y + 16) * 4, 0, 0, 0, 0x400, 0x400);
#if VERSION_PAL #if VERSION_PAL

View File

@ -9,10 +9,10 @@
#define MAP_TITLE_WIDTH 180 #define MAP_TITLE_WIDTH 180
#endif #endif
extern Gfx gPauseDLWorldMap[]; extern Gfx PauseGfxWorldMap[];
extern Gfx PauseGfxPathPoints[];
extern Gfx PauseGfxArrows[];
extern u8 pause_world_map_png[]; extern u8 pause_world_map_png[];
extern Gfx gPauseDLPathPoints[];
extern Gfx gPauseDLArrows[];
void pause_map_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening); void pause_map_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening);
void pause_map_draw_title(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening); void pause_map_draw_title(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening);
@ -21,94 +21,24 @@ void pause_map_handle_input(MenuPanel* tab);
void pause_map_update(MenuPanel* tab); void pause_map_update(MenuPanel* tab);
void pause_map_cleanup(MenuPanel* tab); void pause_map_cleanup(MenuPanel* tab);
static s32 gPauseMapIconIDs[1]; static s32 PauseMapIconIDs[1];
static f32 gPauseMapCameraX; static f32 PauseMapCameraX;
static f32 gPauseMapCameraY; static f32 PauseMapCameraY;
static s32 gPauseMapMarioX; static s32 PauseMapMarioX;
static s32 gPauseMapMarioY; static s32 PauseMapMarioY;
static f32 gPauseMapTargetX; static f32 PauseMapTargetX;
static f32 gPauseMapTargetY; static f32 PauseMapTargetY;
static s32 gPauseMapCursorCurrentOption; static s32 PauseMapCursorCurrentOption;
static s32 gPauseMapCursorCurrentOptionCopy; static s32 PauseMapCursorCurrentOptionCopy;
static s32 gPauseMapSpacesInSnapRange; static s32 PauseMapSpacesInSnapRange;
HudScript* gPauseMapIconScripts[] = { &HES_MapWalk0 }; HudScript* PauseMapIconScripts[] = { &HES_MapWalk0 };
s32 D_8024FA34 = -1; s32 D_8024FA34 = -1;
Vec2b gPauseMapPaths[][32] = {
{ { 1, -10 }, { 1, -8 }, { -9, -2 }, { -8, 0 }, { -8, 0 }, { -7, -3 }, { -5, -3 } },
{ { -1, 24 }, { 1, -8 }, { 2, -7 } },
{ { -3, 7 }, { -7, 4 }, { -8, 2 } },
{ },
{ },
{ { -8, -3 }, { -7, 0 }, { -8, 1 }, { -7, 2 } },
{ { -9, 0 }, { -6, -1 }, { -7, 0 }, { -8, 1 }, { -1, 8 } },
{ { 1, 6 }, { -3, 6 } },
{ { -7, 1 }, { -7, 3 }, { -7, 3 }, { -7, 3 }, { -7, 1 }, { -7, 2 }, { -7, 0 } },
{ { -9, 3 }, { -8, 0 }, { -8, 0 }, { -9, -2 }, { -7, -4 }, { -7, -4 }, { -6, -5 }, { -5, -6 }, { -1, -7 }, { -3, -6 }, { -3, -6 }, { -7, -4 }, { -7, 0 }, { -8, 0 }, { -8, 0 }, { -8, 0 }, { -8, 0 }, { 0, -6 }, { 0, -6 } },
{ { -6, 5 }, { -6, 3 }, { -8, 0 }, { -8, -4 }, { -5, -5 }, { -8, -3 }, { -8, 1 }, { -5, 5 }, { -2, 7 }, { 2, 7 }, { 5, 5 }, { 6, 5 }, { 6, 3 } },
{ { -2, 6 }, { -4, 4 } },
{ { 4, 6 }, { 4, 5 } },
{ { -8, -1 }, { -10, -2 }, { -8, -2 }, { -9, -1 }, { -8, -1 }, { -10, 0 }, { -9, 0 } },
{ { 8, 6 } },
{ { -7, 4 }, { -7, 5 }, { -7, 4 }, { -7, 5 } },
{ { -8, 2 }, { -8, 3 }, { -8, 3 }, { -8, 3 } },
{ { 10, -1 } },
{ { 6, 6 }, { 6, 6 }, { 8, 2 }, { 7, -1 } },
{ { 11, 2 }, { 11, 0 }, { 11, -2 }, { 10, -3 }, { 7, -7 }, { 3, -8 }, { 0, -9 }, { -4, -7 }, { -9, -3 }, { -10, -2 }, { -9, -2 }, { -7, -6 }, { -2, -9 }, { 1, -9 }, { 0, -9 }, { -8, -5 }, { -9, -2 }, { 1, -8 }, { 9, -2 }, { 9, -2 }, { 8, -5 } },
{ { -9, 3 }, { -5, 5 } },
{ { -5, 6 }, { -2, 9 }, { 2, 8 }, { 7, 6 }, { 7, 4 } },
{ },
{ { -3, 6 }, { 0, 7 }, { 5, 6 }, { 1, 7 } },
{ },
{ { -9, -2 } },
{ { -11, 1 }, { -9, -2 } },
{ { -7, 3 }, { -6, 5 } },
{ { 0, 7 } },
{ { -9, 3 }, { -8, 1 }, { -7, 1 }, { -7, 4 }, { 2, 6 }, { 8, 3 } },
{ { -3, 6 }, { 2, 6 }, { 8, 3 }, { 6, 5 }, { -2, 6 }, { -6, 3 } },
{ { -6, 5 }, { -2, 7 }, { 2, 7 }, { 6, 6 }, { 8, 3 }, { 8, 0 }, { 8, -3 }, { 8, -5 }, { 6, -5 }, { 7, -4 }, { 8, -1 }, { 8, 3 }, { 2, 8 } },
{ { -3, 7 }, { 0, 6 }, { 4, 7 } },
{}
};
PauseMapSpace gPauseMapSpaces[] = {
{ .pos = { .x = 116, .y = 185 }, .parent = 0, .pathLength = 7, .path = gPauseMapPaths[ 0], .afterRequirement = STORY_EPILOGUE, .id = LOCATION_TOAD_TOWN },
{ .pos = { .x = 118, .y = 151 }, .parent = 0, .pathLength = 3, .path = gPauseMapPaths[ 1], .afterRequirement = STORY_EPILOGUE, .id = LOCATION_PEACH_CASTLE_GROUNDS },
{ .pos = { .x = 143, .y = 134 }, .parent = 1, .pathLength = 3, .path = gPauseMapPaths[ 2], .afterRequirement = STORY_CH0_BEGAN_PEACH_MISSION, .id = LOCATION_SHOOTING_STAR_SUMMIT },
{ .pos = { .x = 100, .y = 174 }, .parent = 0, .pathLength = 0, .path = gPauseMapPaths[ 3], .afterRequirement = STORY_61, .id = LOCATION_TOAD_TOWN_TUNNELS },
{ .pos = { .x = 36, .y = 157 }, .parent = 5, .pathLength = 0, .path = gPauseMapPaths[ 4], .afterRequirement = STORY_CH0_GOOMBARIO_JOINED_PARTY, .id = LOCATION_GOOMBA_VILLAGE },
{ .pos = { .x = 74, .y = 154 }, .parent = 0, .pathLength = 4, .path = gPauseMapPaths[ 5], .afterRequirement = STORY_CH0_ARRIVED_AT_TOAD_TOWN, .id = LOCATION_GOOMBA_ROAD },
{ .pos = { .x = 148, .y = 167 }, .parent = 0, .pathLength = 5, .path = gPauseMapPaths[ 6], .afterRequirement = STORY_CH1_STAR_SPRIT_DEPARTED, .id = LOCATION_PLEASANT_PATH },
{ .pos = { .x = 154, .y = 148 }, .parent = 6, .pathLength = 2, .path = gPauseMapPaths[ 7], .afterRequirement = STORY_CH1_KOOPER_JOINED_PARTY, .id = LOCATION_KOOPA_VILLAGE },
{ .pos = { .x = 205, .y = 152 }, .parent = 6, .pathLength = 7, .path = gPauseMapPaths[ 8], .afterRequirement = STORY_CH1_STAR_SPRIT_DEPARTED, .id = LOCATION_KOOPA_BROS_FORTRESS },
{ .pos = { .x = 227, .y = 243 }, .parent = 0, .pathLength = 19, .path = gPauseMapPaths[ 9], .afterRequirement = STORY_61, .id = LOCATION_MT_RUGGED },
{ .pos = { .x = 266, .y = 206 }, .parent = 9, .pathLength = 13, .path = gPauseMapPaths[10], .afterRequirement = STORY_CH2_UNCOVERED_DRY_DRY_RUINS, .id = LOCATION_DRY_DRY_DESERT },
{ .pos = { .x = 280, .y = 191 }, .parent = 10, .pathLength = 2, .path = gPauseMapPaths[11], .afterRequirement = STORY_61, .id = LOCATION_DRY_DRY_OUTPOST },
{ .pos = { .x = 252, .y = 188 }, .parent = 10, .pathLength = 2, .path = gPauseMapPaths[12], .afterRequirement = STORY_CH2_BEGAN_PEACH_MISSION, .id = LOCATION_DRY_DRY_RUINS },
{ .pos = { .x = 187, .y = 193 }, .parent = 0, .pathLength = 7, .path = gPauseMapPaths[13], .afterRequirement = STORY_CH3_ARRIVED_AT_BOOS_MANSION, .id = LOCATION_FOREVER_FOREST },
{ .pos = { .x = 170, .y = 180 }, .parent = 13, .pathLength = 1, .path = gPauseMapPaths[14], .afterRequirement = STORY_CH3_UNLOCKED_GUSTY_GULCH, .id = LOCATION_BOOS_MANSION },
{ .pos = { .x = 223, .y = 170 }, .parent = 13, .pathLength = 4, .path = gPauseMapPaths[15], .afterRequirement = STORY_CH3_BEGAN_PEACH_MISSION, .id = LOCATION_GUSTY_GULCH },
{ .pos = { .x = 263, .y = 156 }, .parent = 15, .pathLength = 4, .path = gPauseMapPaths[16], .afterRequirement = STORY_CH3_BEGAN_PEACH_MISSION, .id = LOCATION_TUBBAS_MANOR },
{ .pos = { .x = 203, .y = 171 }, .parent = 15, .pathLength = 1, .path = gPauseMapPaths[17], .afterRequirement = STORY_CH3_BEGAN_PEACH_MISSION, .id = LOCATION_WINDY_MILL },
{ .pos = { .x = 79, .y = 173 }, .parent = 0, .pathLength = 4, .path = gPauseMapPaths[18], .afterRequirement = STORY_CH4_STAR_SPRIT_DEPARTED, .id = LOCATION_SHY_GUYS_TOYBOX },
{ .pos = { .x = 66, .y = 289 }, .parent = 0, .pathLength = 21, .path = gPauseMapPaths[19], .afterRequirement = STORY_CH5_ZIP_LINE_READY, .id = LOCATION_JADE_JUNGLE },
{ .pos = { .x = 84, .y = 274 }, .parent = 19, .pathLength = 2, .path = gPauseMapPaths[20], .afterRequirement = STORY_61, .id = LOCATION_YOSHIS_VILLAGE },
{ .pos = { .x = 47, .y = 252 }, .parent = 19, .pathLength = 5, .path = gPauseMapPaths[21], .afterRequirement = STORY_CH5_BEGAN_PEACH_MISSION, .id = LOCATION_MT_LAVALAVA },
{ .pos = { .x = 59, .y = 126 }, .parent = 0, .pathLength = 0, .path = gPauseMapPaths[22], .afterRequirement = STORY_CH6_BEGAN_PEACH_MISSION, .id = LOCATION_FLOWER_FIELDS },
{ .pos = { .x = 58, .y = 92 }, .parent = 22, .pathLength = 4, .path = gPauseMapPaths[23], .afterRequirement = STORY_CH6_BEGAN_PEACH_MISSION, .id = LOCATION_CLOUDY_CLIMB },
{ .pos = { .x = 183, .y = 125 }, .parent = 3, .pathLength = 0, .path = gPauseMapPaths[24], .afterRequirement = STORY_CH7_MAYOR_MURDER_SOLVED, .id = LOCATION_SHIVER_CITY },
{ .pos = { .x = 203, .y = 126 }, .parent = 24, .pathLength = 1, .path = gPauseMapPaths[25], .afterRequirement = STORY_CH7_DEFEATED_MONSTAR, .id = LOCATION_SHIVER_SNOWFIELD },
{ .pos = { .x = 234, .y = 128 }, .parent = 25, .pathLength = 2, .path = gPauseMapPaths[26], .afterRequirement = STORY_CH7_GOT_SNOWMAN_SCARF, .id = LOCATION_STARBORN_VALLEY },
{ .pos = { .x = 220, .y = 112 }, .parent = 25, .pathLength = 2, .path = gPauseMapPaths[27], .afterRequirement = STORY_CH7_STAR_SPRIT_DEPARTED, .id = LOCATION_SHIVER_MOUNTAIN },
{ .pos = { .x = 223, .y = 99 }, .parent = 27, .pathLength = 1, .path = gPauseMapPaths[28], .afterRequirement = STORY_CH7_STAR_SPRIT_DEPARTED, .id = LOCATION_CRYSTAL_PALACE },
{ .pos = { .x = 158, .y = 110 }, .parent = 2, .pathLength = 6, .path = gPauseMapPaths[29], .afterRequirement = STORY_61, .id = LOCATION_STAR_WAY },
{ .pos = { .x = 163, .y = 78 }, .parent = 29, .pathLength = 6, .path = gPauseMapPaths[30], .afterRequirement = STORY_61, .id = LOCATION_STAR_HAVEN },
{ .pos = { .x = 96, .y = 49 }, .parent = 30, .pathLength = 13, .path = gPauseMapPaths[31], .afterRequirement = STORY_EPILOGUE, .id = LOCATION_BOWSERS_CASTLE },
{ .pos = { .x = 88, .y = 22 }, .parent = 31, .pathLength = 3, .path = gPauseMapPaths[32], .afterRequirement = STORY_EPILOGUE, .id = LOCATION_PEACHS_CASTLE },
{ .pos = { .x = 98, .y = 147 }, .parent = 0, .pathLength = 0, .path = gPauseMapPaths[33], .afterRequirement = STORY_61, .id = LOCATION_MARIOS_HOUSE }
};
s32 gPauseMapArrowWobble[] = { 0, 2, 3, 3, 4, 4, 4, 4, 3, 2, 1, 0 }; #include "world_map.inc.c"
MenuWindowBP gPauseMapWindowBPs[] = {
s32 PauseMapArrowWobble[] = { 0, 2, 3, 3, 4, 4, 4, 4, 3, 2, 1, 0 };
MenuWindowBP PauseMapWindowBPs[] = {
{ {
.windowID = WINDOW_ID_PAUSE_MAP, .windowID = WINDOW_ID_PAUSE_MAP,
.unk_01 = 0, .unk_01 = 0,
@ -162,8 +92,8 @@ MenuPanel gPausePanelMap = {
void pause_map_calc_path_points(PauseMapSpace* space) { void pause_map_calc_path_points(PauseMapSpace* space) {
Vec2b* path = space->path; Vec2b* path = space->path;
s32 pathLength = space->pathLength; s32 pathLength = space->pathLength;
s32 x1 = gPauseMapSpaces[space->parent].pos.x; s32 x1 = PauseMapSpaces[space->parent].pos.x;
s32 y1 = gPauseMapSpaces[space->parent].pos.y; s32 y1 = PauseMapSpaces[space->parent].pos.y;
s32 x2 = space->pos.x; s32 x2 = space->pos.x;
s32 y2 = space->pos.y; s32 y2 = space->pos.y;
s32 xThingPrev = 0; s32 xThingPrev = 0;
@ -201,8 +131,8 @@ void pause_map_draw_border_arrows(s32 imageIndex, s32 x, s32 y) {
} }
void pause_map_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) { void pause_map_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) {
s32 cameraX = gPauseMapCameraX; s32 cameraX = PauseMapCameraX;
s32 cameraY = gPauseMapCameraY; s32 cameraY = PauseMapCameraY;
s32 i, j; s32 i, j;
s32 tileHeight; s32 tileHeight;
s32 x1, y1, x2, y2; s32 x1, y1, x2, y2;
@ -219,7 +149,7 @@ void pause_map_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s
Vec2b* path; Vec2b* path;
s32 pathLength; s32 pathLength;
gSPDisplayList(gMainGfxPos++, gPauseDLWorldMap); gSPDisplayList(gMainGfxPos++, PauseGfxWorldMap);
ult = -cameraX * 32; ult = -cameraX * 32;
for (i = 0; i < 60; i++) { for (i = 0; i < 60; i++) {
if (4 * i + 4 < 111) { if (4 * i + 4 < 111) {
@ -240,7 +170,7 @@ void pause_map_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s
} }
} }
gSPDisplayList(gMainGfxPos++, gPauseDLPathPoints); gSPDisplayList(gMainGfxPos++, PauseGfxPathPoints);
x1 = baseX + 26; x1 = baseX + 26;
y1 = baseY + 22; y1 = baseY + 22;
@ -267,10 +197,10 @@ void pause_map_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s
gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, x1, y1, x2, y2); gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, x1, y1, x2, y2);
mapSpace = gPauseMapSpaces; mapSpace = PauseMapSpaces;
camX = cameraX + baseX; camX = cameraX + baseX;
camY = cameraY + baseY; camY = cameraY + baseY;
for (i = 0; i < ARRAY_COUNT(gPauseMapSpaces); i++, mapSpace++) { for (i = 0; i < ARRAY_COUNT(PauseMapSpaces); i++, mapSpace++) {
posX = mapSpace->pos.x; posX = mapSpace->pos.x;
posY = mapSpace->pos.y; posY = mapSpace->pos.y;
@ -279,7 +209,7 @@ void pause_map_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s
continue; continue;
} }
if (i != gPauseMapCursorCurrentOption) { if (i != PauseMapCursorCurrentOption) {
gDPSetPrimColor(gMainGfxPos++, 0, 0, 220, 80, 30, 255); gDPSetPrimColor(gMainGfxPos++, 0, 0, 220, 80, 30, 255);
} else { } else {
gDPSetPrimColor(gMainGfxPos++, 0, 0, (gGameStatusPtr->frameCounter * 10) % 120 + 120, gDPSetPrimColor(gMainGfxPos++, 0, 0, (gGameStatusPtr->frameCounter * 10) % 120 + 120,
@ -308,38 +238,38 @@ void pause_map_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s
mapULX = baseX + 26 + cameraX; mapULX = baseX + 26 + cameraX;
mapULY = baseY + 22 + cameraY; mapULY = baseY + 22 + cameraY;
hud_element_set_render_pos(gPauseMapIconIDs[0], mapULX + gPauseMapMarioX, mapULY + gPauseMapMarioY - 7); hud_element_set_render_pos(PauseMapIconIDs[0], mapULX + PauseMapMarioX, mapULY + PauseMapMarioY - 7);
hud_element_draw_without_clipping(gPauseMapIconIDs[0]); hud_element_draw_without_clipping(PauseMapIconIDs[0]);
currentTab = gPauseMenuCurrentTab; currentTab = gPauseMenuCurrentTab;
if (currentTab == 6) { if (currentTab == 6) {
pause_set_cursor_pos(WINDOW_ID_PAUSE_MAP, mapULX + gPauseMapTargetX - 8.0f, mapULY + gPauseMapTargetY); pause_set_cursor_pos(WINDOW_ID_PAUSE_MAP, mapULX + PauseMapTargetX - 8.0f, mapULY + PauseMapTargetY);
if (gPauseMenuCurrentTab == currentTab) { if (gPauseMenuCurrentTab == currentTab) {
offset = gPauseMapArrowWobble[gGameStatusPtr->frameCounter % 12]; offset = PauseMapArrowWobble[gGameStatusPtr->frameCounter % 12];
offsetLeft = offset; offsetLeft = offset;
offsetRight = offset; offsetRight = offset;
offsetUp = offset; offsetUp = offset;
offsetDown = offset; offsetDown = offset;
gSPDisplayList(gMainGfxPos++, gPauseDLArrows); gSPDisplayList(gMainGfxPos++, PauseGfxArrows);
if (!(gPauseMapCameraX < 0.0f)) { if (!(PauseMapCameraX < 0.0f)) {
offsetLeft = 0; offsetLeft = 0;
} }
pause_map_draw_border_arrows(0, baseX + 26 - offsetLeft, baseY + height / 2 - 8); pause_map_draw_border_arrows(0, baseX + 26 - offsetLeft, baseY + height / 2 - 8);
if (!(gPauseMapCameraX > -86.0f)) { if (!(PauseMapCameraX > -86.0f)) {
offsetRight = 0; offsetRight = 0;
} }
pause_map_draw_border_arrows(1, baseX + width - 50 + offsetRight, baseY + height / 2 - 8); pause_map_draw_border_arrows(1, baseX + width - 50 + offsetRight, baseY + height / 2 - 8);
if (!(gPauseMapCameraY < 0.0f)) { if (!(PauseMapCameraY < 0.0f)) {
offsetUp = 0; offsetUp = 0;
} }
pause_map_draw_border_arrows(2, baseX + width / 2 - 8, baseY + 24 - offsetUp); pause_map_draw_border_arrows(2, baseX + width / 2 - 8, baseY + 24 - offsetUp);
if (!(gPauseMapCameraY > -210.0f)) { if (!(PauseMapCameraY > -210.0f)) {
offsetDown = 0; offsetDown = 0;
} }
pause_map_draw_border_arrows(3, baseX + width / 2 - 8, baseY + height - 44 + offsetDown); pause_map_draw_border_arrows(3, baseX + width / 2 - 8, baseY + height - 44 + offsetDown);
@ -381,9 +311,9 @@ void pause_map_draw_title(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32
s32 msgID; s32 msgID;
if (gPauseMenuCurrentTab == 6) { if (gPauseMenuCurrentTab == 6) {
if (gPauseMapCursorCurrentOption != -1) { if (PauseMapCursorCurrentOption != -1) {
msgWidth = get_msg_width(MSG_Menus_00F2 + (gPauseMapCursorCurrentOption * 3), 0); msgWidth = get_msg_width(MSG_Menus_00F2 + (PauseMapCursorCurrentOption * 3), 0);
msgID = MSG_Menus_00F2 + (gPauseMapCursorCurrentOption * 3); msgID = MSG_Menus_00F2 + (PauseMapCursorCurrentOption * 3);
draw_msg(msgID, baseX + ((width - msgWidth) >> 1), baseY + 1, 255, MSG_PAL_WHITE, 0); draw_msg(msgID, baseX + ((width - msgWidth) >> 1), baseY + 1, 255, MSG_PAL_WHITE, 0);
} }
} }
@ -393,54 +323,54 @@ void pause_map_init(MenuPanel* tab) {
s32 currentLocation; s32 currentLocation;
s32 i; s32 i;
for (i = 0; i < ARRAY_COUNT(gPauseMapIconScripts); i++) { for (i = 0; i < ARRAY_COUNT(PauseMapIconScripts); i++) {
gPauseMapIconIDs[i] = hud_element_create(gPauseMapIconScripts[i]); PauseMapIconIDs[i] = hud_element_create(PauseMapIconScripts[i]);
hud_element_set_flags(gPauseMapIconIDs[i], HUD_ELEMENT_FLAG_80); hud_element_set_flags(PauseMapIconIDs[i], HUD_ELEMENT_FLAG_80);
} }
for (i = 0; i < ARRAY_COUNT(gPauseMapWindowBPs); i++) { for (i = 0; i < ARRAY_COUNT(PauseMapWindowBPs); i++) {
gPauseMapWindowBPs[i].tab = tab; PauseMapWindowBPs[i].tab = tab;
} }
setup_pause_menu_tab(gPauseMapWindowBPs, ARRAY_COUNT(gPauseMapWindowBPs)); setup_pause_menu_tab(PauseMapWindowBPs, ARRAY_COUNT(PauseMapWindowBPs));
gPauseMapCursorCurrentOption = -1; PauseMapCursorCurrentOption = -1;
gPauseMapSpacesInSnapRange = 0; PauseMapSpacesInSnapRange = 0;
gPauseMapCursorCurrentOptionCopy = -1; PauseMapCursorCurrentOptionCopy = -1;
currentLocation = evt_get_variable(0, GB_WorldLocation); currentLocation = evt_get_variable(0, GB_WorldLocation);
for (i = 0; i < ARRAY_COUNT(gPauseMapSpaces); i++) { for (i = 0; i < ARRAY_COUNT(PauseMapSpaces); i++) {
if (gPauseMapSpaces[i].id == currentLocation) { if (PauseMapSpaces[i].id == currentLocation) {
break; break;
} }
} }
if (i < ARRAY_COUNT(gPauseMapSpaces)) { if (i < ARRAY_COUNT(PauseMapSpaces)) {
gPauseMapMarioX = gPauseMapSpaces[i].pos.x; PauseMapMarioX = PauseMapSpaces[i].pos.x;
gPauseMapMarioY = gPauseMapSpaces[i].pos.y; PauseMapMarioY = PauseMapSpaces[i].pos.y;
} else { } else {
gPauseMapMarioX = 0; PauseMapMarioX = 0;
gPauseMapMarioY = 0; PauseMapMarioY = 0;
} }
gPauseMapTargetX = gPauseMapMarioX; PauseMapTargetX = PauseMapMarioX;
gPauseMapTargetY = gPauseMapMarioY; PauseMapTargetY = PauseMapMarioY;
gPauseMapCameraX = 0.0f; PauseMapCameraX = 0.0f;
gPauseMapCameraY = 0.0f; PauseMapCameraY = 0.0f;
gPauseMapCameraX -= (s32)(gPauseMapTargetX + gPauseMapCameraX - 117.0); PauseMapCameraX -= (s32)(PauseMapTargetX + PauseMapCameraX - 117.0);
gPauseMapCameraY -= (s32)(gPauseMapTargetY + gPauseMapCameraY - 55.0); PauseMapCameraY -= (s32)(PauseMapTargetY + PauseMapCameraY - 55.0);
if (gPauseMapCameraX > 0) { if (PauseMapCameraX > 0) {
gPauseMapCameraX = 0; PauseMapCameraX = 0;
} }
if (gPauseMapCameraY > 0) { if (PauseMapCameraY > 0) {
gPauseMapCameraY = 0; PauseMapCameraY = 0;
} }
if (gPauseMapCameraX <= -86.0f) { if (PauseMapCameraX <= -86.0f) {
gPauseMapCameraX = -85.0f; PauseMapCameraX = -85.0f;
} }
if (gPauseMapCameraY <= -210.0f) { if (PauseMapCameraY <= -210.0f) {
gPauseMapCameraY = -209.0f; PauseMapCameraY = -209.0f;
} }
tab->initialized = TRUE; tab->initialized = TRUE;
@ -449,73 +379,73 @@ void pause_map_init(MenuPanel* tab) {
void pause_map_handle_input(MenuPanel* tab) { void pause_map_handle_input(MenuPanel* tab) {
f32 xMovement = gGameStatusPtr->stickX[0] * 0.05f; f32 xMovement = gGameStatusPtr->stickX[0] * 0.05f;
f32 yMovement = -gGameStatusPtr->stickY[0] * 0.05f; f32 yMovement = -gGameStatusPtr->stickY[0] * 0.05f;
f32 gPauseMapTargetYPosTemp = gPauseMapTargetY; f32 PauseMapTargetYPosTemp = PauseMapTargetY;
f32 gPauseMapTargetXPosTemp = gPauseMapTargetX; f32 PauseMapTargetXPosTemp = PauseMapTargetX;
s32 xTemp; s32 xTemp;
s32 yTemp; s32 yTemp;
if (xMovement == 0.0f && yMovement == 0.0f && gPauseMapCursorCurrentOption != -1) { if (xMovement == 0.0f && yMovement == 0.0f && PauseMapCursorCurrentOption != -1) {
PauseMapSpace* mapSpace = &gPauseMapSpaces[gPauseMapCursorCurrentOption]; PauseMapSpace* mapSpace = &PauseMapSpaces[PauseMapCursorCurrentOption];
xMovement = mapSpace->pos.x - gPauseMapTargetXPosTemp; xMovement = mapSpace->pos.x - PauseMapTargetXPosTemp;
yMovement = mapSpace->pos.y - gPauseMapTargetYPosTemp; yMovement = mapSpace->pos.y - PauseMapTargetYPosTemp;
xMovement *= 0.32; xMovement *= 0.32;
yMovement *= 0.32; yMovement *= 0.32;
} }
gPauseMapTargetX += xMovement; PauseMapTargetX += xMovement;
gPauseMapTargetY += yMovement; PauseMapTargetY += yMovement;
if (gPauseMapTargetX < 16.0f) { if (PauseMapTargetX < 16.0f) {
gPauseMapTargetX = 16.0f; PauseMapTargetX = 16.0f;
} }
if (gPauseMapTargetY < 8.0f) { if (PauseMapTargetY < 8.0f) {
gPauseMapTargetY = 8.0f; PauseMapTargetY = 8.0f;
} }
if (gPauseMapTargetX >= 316.0f) { if (PauseMapTargetX >= 316.0f) {
gPauseMapTargetX = 315.0f; PauseMapTargetX = 315.0f;
} }
if (gPauseMapTargetY >= 308.0f) { if (PauseMapTargetY >= 308.0f) {
gPauseMapTargetY = 307.0f; PauseMapTargetY = 307.0f;
} }
xTemp = gPauseMapTargetX + gPauseMapCameraX - 117.0; xTemp = PauseMapTargetX + PauseMapCameraX - 117.0;
yTemp = gPauseMapTargetY + gPauseMapCameraY - 55.0; yTemp = PauseMapTargetY + PauseMapCameraY - 55.0;
if (xTemp >= 53.0) { if (xTemp >= 53.0) {
gPauseMapCameraX -= xTemp - 53.0; PauseMapCameraX -= xTemp - 53.0;
} }
if (xTemp <= -37.0) { if (xTemp <= -37.0) {
gPauseMapCameraX -= xTemp + 37.0; PauseMapCameraX -= xTemp + 37.0;
} }
if (yTemp >= 15.0) { if (yTemp >= 15.0) {
gPauseMapCameraY -= yTemp - 15.0; PauseMapCameraY -= yTemp - 15.0;
} }
if (yTemp <= -15.0) { if (yTemp <= -15.0) {
gPauseMapCameraY -= yTemp + 15.0; PauseMapCameraY -= yTemp + 15.0;
} }
if (gPauseMapCameraX > 0.0f) { if (PauseMapCameraX > 0.0f) {
gPauseMapCameraX = 0.0f; PauseMapCameraX = 0.0f;
} }
if (gPauseMapCameraY > 0.0f) { if (PauseMapCameraY > 0.0f) {
gPauseMapCameraY = 0.0f; PauseMapCameraY = 0.0f;
} }
if (gPauseMapCameraX < -86.0f) { if (PauseMapCameraX < -86.0f) {
gPauseMapCameraX = -86.0f; PauseMapCameraX = -86.0f;
} }
if (gPauseMapCameraY < -210.0f) { if (PauseMapCameraY < -210.0f) {
gPauseMapCameraY = -210.0f; PauseMapCameraY = -210.0f;
} }
if (gPausePressedButtons & BUTTON_B) { if (gPausePressedButtons & BUTTON_B) {
@ -525,36 +455,36 @@ void pause_map_handle_input(MenuPanel* tab) {
} }
gPauseCurrentDescIconScript = 0; gPauseCurrentDescIconScript = 0;
if (gPauseMapCursorCurrentOption == -1) { if (PauseMapCursorCurrentOption == -1) {
gPauseCurrentDescMsg = MSG_NONE; gPauseCurrentDescMsg = MSG_NONE;
return; return;
} }
gPauseCurrentDescMsg = MSG_Menus_00F3 + (gPauseMapCursorCurrentOption * 3); gPauseCurrentDescMsg = MSG_Menus_00F3 + (PauseMapCursorCurrentOption * 3);
// If the story has progressed enough, show the "after" description // If the story has progressed enough, show the "after" description
if (evt_get_variable(0, GB_StoryProgress) >= gPauseMapSpaces[gPauseMapCursorCurrentOption].afterRequirement) { if (evt_get_variable(0, GB_StoryProgress) >= PauseMapSpaces[PauseMapCursorCurrentOption].afterRequirement) {
gPauseCurrentDescMsg++; gPauseCurrentDescMsg++;
} }
} }
void pause_map_update(MenuPanel* tab) { void pause_map_update(MenuPanel* tab) {
PauseMapSpace* mapSpace = &gPauseMapSpaces[0]; PauseMapSpace* mapSpace = &PauseMapSpaces[0];
f32 lowestSqSum = 10000.0f; f32 lowestSqSum = 10000.0f;
f32 cursorOption = -1.0f; f32 cursorOption = -1.0f;
s32 i; s32 i;
gPauseMapCursorCurrentOption = -1; PauseMapCursorCurrentOption = -1;
gPauseMapSpacesInSnapRange = 0; PauseMapSpacesInSnapRange = 0;
for (i = 0; i < ARRAY_COUNT(gPauseMapSpaces); i++, mapSpace++) { for (i = 0; i < ARRAY_COUNT(PauseMapSpaces); i++, mapSpace++) {
if (evt_get_variable(0, GF_MAP_ToadTown + i) != 0) { if (evt_get_variable(0, GF_MAP_ToadTown + i) != 0) {
f32 deltaX = gPauseMapTargetX - mapSpace->pos.x; f32 deltaX = PauseMapTargetX - mapSpace->pos.x;
f32 deltaY = gPauseMapTargetY - mapSpace->pos.y; f32 deltaY = PauseMapTargetY - mapSpace->pos.y;
f32 sqSum = SQ(deltaX) + SQ(deltaY); f32 sqSum = SQ(deltaX) + SQ(deltaY);
if (sqSum < 400.0f) { if (sqSum < 400.0f) {
gPauseMapSpacesInSnapRange++; PauseMapSpacesInSnapRange++;
} }
if (sqSum < lowestSqSum && sqSum < 200.0f) { if (sqSum < lowestSqSum && sqSum < 200.0f) {
@ -564,14 +494,14 @@ void pause_map_update(MenuPanel* tab) {
} }
} }
gPauseMapCursorCurrentOption = cursorOption; PauseMapCursorCurrentOption = cursorOption;
gPauseMapCursorCurrentOptionCopy = cursorOption; PauseMapCursorCurrentOptionCopy = cursorOption;
} }
void pause_map_cleanup(MenuPanel* tab) { void pause_map_cleanup(MenuPanel* tab) {
s32 i; s32 i;
for (i = 0; i < ARRAY_COUNT(gPauseMapIconIDs); i++) { for (i = 0; i < ARRAY_COUNT(PauseMapIconIDs); i++) {
hud_element_free(gPauseMapIconIDs[i]); hud_element_free(PauseMapIconIDs[i]);
} }
} }

View File

@ -9,7 +9,7 @@
#include "sprite/npc/WorldKlevar.h" #include "sprite/npc/WorldKlevar.h"
#include "sprite/npc/WorldKalmar.h" #include "sprite/npc/WorldKalmar.h"
extern Gfx gPauseDLSpiritsBg[]; extern Gfx PauseGfxSpiritsBg[];
extern s8 pause_spirits_bg_png[]; extern s8 pause_spirits_bg_png[];
void pause_spirits_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening); void pause_spirits_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening);
@ -159,7 +159,7 @@ void pause_spirits_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 widt
gDPPipeSync(gMainGfxPos++); gDPPipeSync(gMainGfxPos++);
gSPViewport(gMainGfxPos++, &gPauseSpiritsViewport); gSPViewport(gMainGfxPos++, &gPauseSpiritsViewport);
gSPDisplayList(gMainGfxPos++, gPauseDLSpiritsBg); gSPDisplayList(gMainGfxPos++, PauseGfxSpiritsBg);
for (i = 0; i < 5; i++) { for (i = 0; i < 5; i++) {
gDPLoadTextureTile_4b(gMainGfxPos++, pause_spirits_bg_png, G_IM_FMT_CI, 128, 110, gDPLoadTextureTile_4b(gMainGfxPos++, pause_spirits_bg_png, G_IM_FMT_CI, 128, 110,

359
src/recipes.yaml Normal file
View File

@ -0,0 +1,359 @@
# All cooking outputs must be listed here, except when cooking a Mystery
Products:
- [ ITEM_MISTAKE, QUALITY_BAD ]
- [ ITEM_FRIED_SHROOM, QUALITY_OK ]
- [ ITEM_SPICY_SOUP, QUALITY_OK ]
- [ ITEM_TASTY_TONIC, QUALITY_OK ]
- [ ITEM_NUTTY_CAKE, QUALITY_OK ]
- [ ITEM_KOOPA_TEA, QUALITY_OK ]
- [ ITEM_SPAGHETTI, QUALITY_OK ]
- [ ITEM_DIZZY_DIAL, QUALITY_ODD ]
- [ ITEM_BIG_COOKIE, QUALITY_GOOD ]
- [ ITEM_CAKE, QUALITY_OK ]
- [ ITEM_FRIED_EGG, QUALITY_OK ]
- [ ITEM_BOILED_EGG, QUALITY_OK ]
- [ ITEM_SUPER_SODA, QUALITY_OK ]
- [ ITEM_YOSHI_COOKIE, QUALITY_OK ]
- [ ITEM_DELUXE_FEAST, QUALITY_GREAT ]
- [ ITEM_FROZEN_FRIES, QUALITY_OK ]
- [ ITEM_POTATO_SALAD, QUALITY_OK ]
- [ ITEM_HOT_SHROOM, QUALITY_OK ]
- [ ITEM_BLAND_MEAL, QUALITY_GOOD ]
- [ ITEM_HONEY_SHROOM, QUALITY_OK ]
- [ ITEM_MAPLE_SHROOM, QUALITY_OK ]
- [ ITEM_JELLY_SHROOM1, QUALITY_OK ]
- [ ITEM_LIFE_SHROOM, QUALITY_OK ]
- [ ITEM_VOLT_SHROOM, QUALITY_OK ]
- [ ITEM_SLEEPY_SHEEP, QUALITY_ODD ]
- [ ITEM_SHROOM_CAKE, QUALITY_OK ]
- [ ITEM_SHROOM_STEAK, QUALITY_OK ]
- [ ITEM_HONEY_SUPER, QUALITY_OK ]
- [ ITEM_MAPLE_SUPER, QUALITY_OK ]
- [ ITEM_JELLY_SUPER, QUALITY_OK ]
- [ ITEM_YUMMY_MEAL, QUALITY_GOOD ]
- [ ITEM_HONEY_ULTRA, QUALITY_OK ]
- [ ITEM_MAPLE_ULTRA, QUALITY_OK ]
- [ ITEM_JELLY_ULTRA, QUALITY_OK ]
- [ ITEM_SWEET_SHROOM, QUALITY_OK ]
- [ ITEM_ELECTRO_POP, QUALITY_OK ]
- [ ITEM_THUNDER_RAGE, QUALITY_ODD ]
- [ ITEM_FIRE_POP, QUALITY_OK ]
- [ ITEM_EGG_MISSILE, QUALITY_OK ]
- [ ITEM_SPECIAL_SHAKE, QUALITY_GOOD ]
- [ ITEM_COCO_POP, QUALITY_OK ]
- [ ITEM_HEALTHY_JUICE, QUALITY_GREAT ]
- [ ITEM_LIME_CANDY, QUALITY_OK ]
- [ ITEM_LEMON_CANDY, QUALITY_OK ]
- [ ITEM_HONEY_CANDY, QUALITY_OK ]
- [ ITEM_JELLY_POP, QUALITY_OK ]
- [ ITEM_APPLE_PIE, QUALITY_OK ]
- [ ITEM_KOOPASTA, QUALITY_OK ]
- [ ITEM_KOOKY_COOKIE, QUALITY_OK ]
- [ ITEM_FIRE_FLOWER, QUALITY_ODD ]
- [ ITEM_STRANGE_CAKE, QUALITY_GOOD ]
# Cooking a Mystery has 50% to make MISTAKE and 50% change to create any of these with equal probability
MysteryProducts:
- ITEM_FIRE_FLOWER
- ITEM_TASTY_TONIC
- ITEM_SUPER_SODA
- ITEM_SLEEPY_SHEEP
- ITEM_LIFE_SHROOM
- ITEM_DIZZY_DIAL
- ITEM_VOLT_SHROOM
- ITEM_FRIED_SHROOM
- ITEM_KOOPASTA
- ITEM_SPICY_SOUP
- ITEM_KOOPA_TEA
- ITEM_SPAGHETTI
- ITEM_FRIED_EGG
- ITEM_BOILED_EGG
- ITEM_POTATO_SALAD
- ITEM_HONEY_SHROOM
- ITEM_BLAND_MEAL
- ITEM_THUNDER_RAGE
- ITEM_EGG_MISSILE
- ITEM_APPLE_PIE
- ITEM_KOOKY_COOKIE
- ITEM_BIG_COOKIE
- ITEM_SPECIAL_SHAKE
# [ Input, Product without Cookbook, Product with Cookbook (optional) ]
SingleRecipes:
- [ ITEM_MUSHROOM, ITEM_FRIED_SHROOM ]
- [ ITEM_SUPER_SHROOM, ITEM_FRIED_SHROOM ]
- [ ITEM_ULTRA_SHROOM, ITEM_SHROOM_STEAK ]
- [ ITEM_LIFE_SHROOM, ITEM_HOT_SHROOM ]
- [ ITEM_VOLT_SHROOM, ITEM_HOT_SHROOM ]
- [ ITEM_FIRE_FLOWER, ITEM_SPICY_SOUP ]
- [ ITEM_COCONUT, ITEM_TASTY_TONIC ]
- [ ITEM_LIME, ITEM_TASTY_TONIC ]
- [ ITEM_LEMON, ITEM_TASTY_TONIC ]
- [ ITEM_HONEY_SYRUP, ITEM_SUPER_SODA ]
- [ ITEM_MAPLE_SYRUP, ITEM_SUPER_SODA ]
- [ ITEM_JAMMIN_JELLY, ITEM_SUPER_SODA ]
- [ ITEM_APPLE, ITEM_SUPER_SODA ]
- [ ITEM_RED_BERRY, ITEM_MISTAKE, ITEM_SUPER_SODA ]
- [ ITEM_BLUE_BERRY, ITEM_MISTAKE, ITEM_SUPER_SODA ]
- [ ITEM_YELLOW_BERRY, ITEM_MISTAKE, ITEM_SUPER_SODA ]
- [ ITEM_GOOMNUT, ITEM_NUTTY_CAKE ]
- [ ITEM_KOOPA_LEAF, ITEM_KOOPA_TEA ]
- [ ITEM_DRIED_PASTA, ITEM_SPAGHETTI ]
- [ ITEM_DRIED_FRUIT, ITEM_MISTAKE ]
- [ ITEM_STRANGE_LEAF, ITEM_MISTAKE, ITEM_DIZZY_DIAL ]
- [ ITEM_CAKE_MIX, ITEM_CAKE ]
- [ ITEM_EGG, ITEM_FRIED_EGG ]
- [ ITEM_MELON, ITEM_SPECIAL_SHAKE ]
- [ ITEM_STINKY_HERB, ITEM_MISTAKE ]
- [ ITEM_ICED_POTATO, ITEM_POTATO_SALAD ]
- [ ITEM_DRIED_SHROOM, ITEM_MISTAKE, ITEM_FRIED_SHROOM ]
- [ ITEM_BUBBLE_BERRY, ITEM_MISTAKE, ITEM_TASTY_TONIC ]
- [ ITEM_WHACKAS_BUMP, ITEM_MISTAKE, ITEM_YUMMY_MEAL ]
# [ Input1, Input2, Product ]
# Recipes with both inputs found as ingredients in SingleRecipes will be added to the DoubleRecipesMatrix,
# all others will generate as ExtraDoubleRecipes
DoubleRecipes:
- [ ITEM_MUSHROOM, ITEM_SUPER_SHROOM, ITEM_HOT_SHROOM ]
- [ ITEM_MUSHROOM, ITEM_ULTRA_SHROOM, ITEM_SHROOM_STEAK ]
- [ ITEM_MUSHROOM, ITEM_LIFE_SHROOM, ITEM_SHROOM_STEAK ]
- [ ITEM_MUSHROOM, ITEM_VOLT_SHROOM, ITEM_HOT_SHROOM ]
- [ ITEM_MUSHROOM, ITEM_FIRE_FLOWER, ITEM_HOT_SHROOM ]
- [ ITEM_MUSHROOM, ITEM_HONEY_SYRUP, ITEM_HONEY_SHROOM ]
- [ ITEM_MUSHROOM, ITEM_MAPLE_SYRUP, ITEM_MAPLE_SHROOM ]
- [ ITEM_MUSHROOM, ITEM_JAMMIN_JELLY, ITEM_JELLY_SHROOM1 ]
- [ ITEM_MUSHROOM, ITEM_GOOMNUT, ITEM_VOLT_SHROOM ]
- [ ITEM_MUSHROOM, ITEM_KOOPA_LEAF, ITEM_VOLT_SHROOM ]
- [ ITEM_MUSHROOM, ITEM_DRIED_PASTA, ITEM_BLAND_MEAL ]
- [ ITEM_MUSHROOM, ITEM_DRIED_FRUIT, ITEM_VOLT_SHROOM ]
- [ ITEM_MUSHROOM, ITEM_STRANGE_LEAF, ITEM_VOLT_SHROOM ]
- [ ITEM_MUSHROOM, ITEM_CAKE_MIX, ITEM_SHROOM_CAKE ]
- [ ITEM_MUSHROOM, ITEM_EGG, ITEM_BLAND_MEAL ]
- [ ITEM_MUSHROOM, ITEM_ICED_POTATO, ITEM_BLAND_MEAL ]
- [ ITEM_MUSHROOM, ITEM_DRIED_SHROOM, ITEM_FRIED_SHROOM ]
- [ ITEM_SUPER_SHROOM, ITEM_ULTRA_SHROOM, ITEM_SHROOM_STEAK ]
- [ ITEM_SUPER_SHROOM, ITEM_LIFE_SHROOM, ITEM_SHROOM_STEAK ]
- [ ITEM_SUPER_SHROOM, ITEM_VOLT_SHROOM, ITEM_HOT_SHROOM ]
- [ ITEM_SUPER_SHROOM, ITEM_FIRE_FLOWER, ITEM_BLAND_MEAL ]
- [ ITEM_SUPER_SHROOM, ITEM_HONEY_SYRUP, ITEM_HONEY_SUPER ]
- [ ITEM_SUPER_SHROOM, ITEM_MAPLE_SYRUP, ITEM_MAPLE_SUPER ]
- [ ITEM_SUPER_SHROOM, ITEM_JAMMIN_JELLY, ITEM_JELLY_SUPER ]
- [ ITEM_SUPER_SHROOM, ITEM_GOOMNUT, ITEM_LIFE_SHROOM ]
- [ ITEM_SUPER_SHROOM, ITEM_KOOPA_LEAF, ITEM_LIFE_SHROOM ]
- [ ITEM_SUPER_SHROOM, ITEM_DRIED_PASTA, ITEM_BLAND_MEAL ]
- [ ITEM_SUPER_SHROOM, ITEM_DRIED_FRUIT, ITEM_VOLT_SHROOM ]
- [ ITEM_SUPER_SHROOM, ITEM_STRANGE_LEAF, ITEM_LIFE_SHROOM ]
- [ ITEM_SUPER_SHROOM, ITEM_CAKE_MIX, ITEM_SHROOM_CAKE ]
- [ ITEM_SUPER_SHROOM, ITEM_EGG, ITEM_BLAND_MEAL ]
- [ ITEM_SUPER_SHROOM, ITEM_ICED_POTATO, ITEM_BLAND_MEAL ]
- [ ITEM_SUPER_SHROOM, ITEM_DRIED_SHROOM, ITEM_HOT_SHROOM ]
- [ ITEM_ULTRA_SHROOM, ITEM_LIFE_SHROOM, ITEM_SHROOM_STEAK ]
- [ ITEM_ULTRA_SHROOM, ITEM_VOLT_SHROOM, ITEM_SHROOM_STEAK ]
- [ ITEM_ULTRA_SHROOM, ITEM_FIRE_FLOWER, ITEM_YUMMY_MEAL ]
- [ ITEM_ULTRA_SHROOM, ITEM_HONEY_SYRUP, ITEM_HONEY_ULTRA ]
- [ ITEM_ULTRA_SHROOM, ITEM_MAPLE_SYRUP, ITEM_MAPLE_ULTRA ]
- [ ITEM_ULTRA_SHROOM, ITEM_JAMMIN_JELLY, ITEM_JELLY_ULTRA ]
- [ ITEM_ULTRA_SHROOM, ITEM_GOOMNUT, ITEM_LIFE_SHROOM ]
- [ ITEM_ULTRA_SHROOM, ITEM_KOOPA_LEAF, ITEM_LIFE_SHROOM ]
- [ ITEM_ULTRA_SHROOM, ITEM_DRIED_PASTA, ITEM_YUMMY_MEAL ]
- [ ITEM_ULTRA_SHROOM, ITEM_DRIED_FRUIT, ITEM_VOLT_SHROOM ]
- [ ITEM_ULTRA_SHROOM, ITEM_STRANGE_LEAF, ITEM_LIFE_SHROOM ]
- [ ITEM_ULTRA_SHROOM, ITEM_CAKE_MIX, ITEM_SWEET_SHROOM ]
- [ ITEM_ULTRA_SHROOM, ITEM_EGG, ITEM_YUMMY_MEAL ]
- [ ITEM_ULTRA_SHROOM, ITEM_ICED_POTATO, ITEM_YUMMY_MEAL ]
- [ ITEM_ULTRA_SHROOM, ITEM_DRIED_SHROOM, ITEM_SHROOM_STEAK ]
- [ ITEM_LIFE_SHROOM, ITEM_FIRE_FLOWER, ITEM_BLAND_MEAL ]
- [ ITEM_LIFE_SHROOM, ITEM_HONEY_SYRUP, ITEM_HONEY_SUPER ]
- [ ITEM_LIFE_SHROOM, ITEM_MAPLE_SYRUP, ITEM_MAPLE_SUPER ]
- [ ITEM_LIFE_SHROOM, ITEM_JAMMIN_JELLY, ITEM_JELLY_SUPER ]
- [ ITEM_LIFE_SHROOM, ITEM_GOOMNUT, ITEM_LIFE_SHROOM ]
- [ ITEM_LIFE_SHROOM, ITEM_KOOPA_LEAF, ITEM_LIFE_SHROOM ]
- [ ITEM_LIFE_SHROOM, ITEM_DRIED_PASTA, ITEM_BLAND_MEAL ]
- [ ITEM_LIFE_SHROOM, ITEM_DRIED_FRUIT, ITEM_VOLT_SHROOM ]
- [ ITEM_LIFE_SHROOM, ITEM_STRANGE_LEAF, ITEM_LIFE_SHROOM ]
- [ ITEM_LIFE_SHROOM, ITEM_CAKE_MIX, ITEM_SWEET_SHROOM ]
- [ ITEM_LIFE_SHROOM, ITEM_EGG, ITEM_BLAND_MEAL ]
- [ ITEM_LIFE_SHROOM, ITEM_ICED_POTATO, ITEM_BLAND_MEAL ]
- [ ITEM_LIFE_SHROOM, ITEM_DRIED_SHROOM, ITEM_SHROOM_STEAK ]
- [ ITEM_VOLT_SHROOM, ITEM_FIRE_FLOWER, ITEM_BLAND_MEAL ]
- [ ITEM_VOLT_SHROOM, ITEM_HONEY_SYRUP, ITEM_HONEY_SUPER ]
- [ ITEM_VOLT_SHROOM, ITEM_MAPLE_SYRUP, ITEM_MAPLE_SUPER ]
- [ ITEM_VOLT_SHROOM, ITEM_JAMMIN_JELLY, ITEM_JELLY_SUPER ]
- [ ITEM_VOLT_SHROOM, ITEM_GOOMNUT, ITEM_LIFE_SHROOM ]
- [ ITEM_VOLT_SHROOM, ITEM_KOOPA_LEAF, ITEM_LIFE_SHROOM ]
- [ ITEM_VOLT_SHROOM, ITEM_DRIED_PASTA, ITEM_BLAND_MEAL ]
- [ ITEM_VOLT_SHROOM, ITEM_DRIED_FRUIT, ITEM_THUNDER_RAGE ]
- [ ITEM_VOLT_SHROOM, ITEM_STRANGE_LEAF, ITEM_DIZZY_DIAL ]
- [ ITEM_VOLT_SHROOM, ITEM_CAKE_MIX, ITEM_ELECTRO_POP ]
- [ ITEM_VOLT_SHROOM, ITEM_EGG, ITEM_BLAND_MEAL ]
- [ ITEM_VOLT_SHROOM, ITEM_ICED_POTATO, ITEM_BLAND_MEAL ]
- [ ITEM_VOLT_SHROOM, ITEM_DRIED_SHROOM, ITEM_HOT_SHROOM ]
- [ ITEM_FIRE_FLOWER, ITEM_GOOMNUT, ITEM_BLAND_MEAL ]
- [ ITEM_FIRE_FLOWER, ITEM_CAKE_MIX, ITEM_FIRE_POP ]
- [ ITEM_FIRE_FLOWER, ITEM_EGG, ITEM_EGG_MISSILE ]
- [ ITEM_FIRE_FLOWER, ITEM_ICED_POTATO, ITEM_FROZEN_FRIES ]
- [ ITEM_FIRE_FLOWER, ITEM_DRIED_SHROOM, ITEM_FRIED_SHROOM ]
- [ ITEM_COCONUT, ITEM_HONEY_SYRUP, ITEM_TASTY_TONIC ]
- [ ITEM_COCONUT, ITEM_MAPLE_SYRUP, ITEM_SUPER_SODA ]
- [ ITEM_COCONUT, ITEM_JAMMIN_JELLY, ITEM_SPECIAL_SHAKE ]
- [ ITEM_COCONUT, ITEM_APPLE, ITEM_SUPER_SODA ]
- [ ITEM_COCONUT, ITEM_RED_BERRY, ITEM_SUPER_SODA ]
- [ ITEM_COCONUT, ITEM_BLUE_BERRY, ITEM_SUPER_SODA ]
- [ ITEM_COCONUT, ITEM_YELLOW_BERRY, ITEM_SUPER_SODA ]
- [ ITEM_COCONUT, ITEM_KOOPA_LEAF, ITEM_SUPER_SODA ]
- [ ITEM_COCONUT, ITEM_DRIED_PASTA, ITEM_BLAND_MEAL ]
- [ ITEM_COCONUT, ITEM_CAKE_MIX, ITEM_COCO_POP ]
- [ ITEM_COCONUT, ITEM_MELON, ITEM_SUPER_SODA ]
- [ ITEM_COCONUT, ITEM_ICED_POTATO, ITEM_BLAND_MEAL ]
- [ ITEM_LIME, ITEM_LEMON, ITEM_SUPER_SODA ]
- [ ITEM_LIME, ITEM_HONEY_SYRUP, ITEM_TASTY_TONIC ]
- [ ITEM_LIME, ITEM_MAPLE_SYRUP, ITEM_SUPER_SODA ]
- [ ITEM_LIME, ITEM_JAMMIN_JELLY, ITEM_SPECIAL_SHAKE ]
- [ ITEM_LIME, ITEM_APPLE, ITEM_SUPER_SODA ]
- [ ITEM_LIME, ITEM_RED_BERRY, ITEM_SUPER_SODA ]
- [ ITEM_LIME, ITEM_BLUE_BERRY, ITEM_SUPER_SODA ]
- [ ITEM_LIME, ITEM_YELLOW_BERRY, ITEM_SUPER_SODA ]
- [ ITEM_LIME, ITEM_KOOPA_LEAF, ITEM_SUPER_SODA ]
- [ ITEM_LIME, ITEM_CAKE_MIX, ITEM_LIME_CANDY ]
- [ ITEM_LIME, ITEM_MELON, ITEM_SPECIAL_SHAKE ]
- [ ITEM_LEMON, ITEM_HONEY_SYRUP, ITEM_TASTY_TONIC ]
- [ ITEM_LEMON, ITEM_MAPLE_SYRUP, ITEM_SUPER_SODA ]
- [ ITEM_LEMON, ITEM_JAMMIN_JELLY, ITEM_SPECIAL_SHAKE ]
- [ ITEM_LEMON, ITEM_APPLE, ITEM_SUPER_SODA ]
- [ ITEM_LEMON, ITEM_RED_BERRY, ITEM_SUPER_SODA ]
- [ ITEM_LEMON, ITEM_BLUE_BERRY, ITEM_SUPER_SODA ]
- [ ITEM_LEMON, ITEM_YELLOW_BERRY, ITEM_SUPER_SODA ]
- [ ITEM_LEMON, ITEM_KOOPA_LEAF, ITEM_SUPER_SODA ]
- [ ITEM_LEMON, ITEM_CAKE_MIX, ITEM_LEMON_CANDY ]
- [ ITEM_LEMON, ITEM_MELON, ITEM_SPECIAL_SHAKE ]
- [ ITEM_HONEY_SYRUP, ITEM_MAPLE_SYRUP, ITEM_SUPER_SODA ]
- [ ITEM_HONEY_SYRUP, ITEM_JAMMIN_JELLY, ITEM_SPECIAL_SHAKE ]
- [ ITEM_HONEY_SYRUP, ITEM_APPLE, ITEM_TASTY_TONIC ]
- [ ITEM_HONEY_SYRUP, ITEM_RED_BERRY, ITEM_TASTY_TONIC ]
- [ ITEM_HONEY_SYRUP, ITEM_BLUE_BERRY, ITEM_TASTY_TONIC ]
- [ ITEM_HONEY_SYRUP, ITEM_YELLOW_BERRY, ITEM_TASTY_TONIC ]
- [ ITEM_HONEY_SYRUP, ITEM_KOOPA_LEAF, ITEM_SUPER_SODA ]
- [ ITEM_HONEY_SYRUP, ITEM_CAKE_MIX, ITEM_HONEY_CANDY ]
- [ ITEM_HONEY_SYRUP, ITEM_MELON, ITEM_SPECIAL_SHAKE ]
- [ ITEM_MAPLE_SYRUP, ITEM_JAMMIN_JELLY, ITEM_SPECIAL_SHAKE ]
- [ ITEM_MAPLE_SYRUP, ITEM_APPLE, ITEM_SUPER_SODA ]
- [ ITEM_MAPLE_SYRUP, ITEM_RED_BERRY, ITEM_SUPER_SODA ]
- [ ITEM_MAPLE_SYRUP, ITEM_BLUE_BERRY, ITEM_SUPER_SODA ]
- [ ITEM_MAPLE_SYRUP, ITEM_YELLOW_BERRY, ITEM_SUPER_SODA ]
- [ ITEM_MAPLE_SYRUP, ITEM_KOOPA_LEAF, ITEM_SUPER_SODA ]
- [ ITEM_MAPLE_SYRUP, ITEM_CAKE_MIX, ITEM_KOOKY_COOKIE ]
- [ ITEM_MAPLE_SYRUP, ITEM_MELON, ITEM_SPECIAL_SHAKE ]
- [ ITEM_JAMMIN_JELLY, ITEM_APPLE, ITEM_SPECIAL_SHAKE ]
- [ ITEM_JAMMIN_JELLY, ITEM_RED_BERRY, ITEM_SPECIAL_SHAKE ]
- [ ITEM_JAMMIN_JELLY, ITEM_BLUE_BERRY, ITEM_SPECIAL_SHAKE ]
- [ ITEM_JAMMIN_JELLY, ITEM_YELLOW_BERRY, ITEM_SPECIAL_SHAKE ]
- [ ITEM_JAMMIN_JELLY, ITEM_KOOPA_LEAF, ITEM_SUPER_SODA ]
- [ ITEM_JAMMIN_JELLY, ITEM_CAKE_MIX, ITEM_JELLY_POP ]
- [ ITEM_JAMMIN_JELLY, ITEM_MELON, ITEM_SPECIAL_SHAKE ]
- [ ITEM_APPLE, ITEM_RED_BERRY, ITEM_SUPER_SODA ]
- [ ITEM_APPLE, ITEM_BLUE_BERRY, ITEM_SUPER_SODA ]
- [ ITEM_APPLE, ITEM_YELLOW_BERRY, ITEM_SUPER_SODA ]
- [ ITEM_APPLE, ITEM_CAKE_MIX, ITEM_APPLE_PIE ]
- [ ITEM_APPLE, ITEM_MELON, ITEM_SPECIAL_SHAKE ]
- [ ITEM_RED_BERRY, ITEM_BLUE_BERRY, ITEM_SUPER_SODA ]
- [ ITEM_RED_BERRY, ITEM_YELLOW_BERRY, ITEM_SUPER_SODA ]
- [ ITEM_RED_BERRY, ITEM_KOOPA_LEAF, ITEM_BLAND_MEAL ]
- [ ITEM_RED_BERRY, ITEM_DRIED_PASTA, ITEM_BLAND_MEAL ]
- [ ITEM_RED_BERRY, ITEM_STRANGE_LEAF, ITEM_SLEEPY_SHEEP ]
- [ ITEM_RED_BERRY, ITEM_CAKE_MIX, ITEM_BIG_COOKIE ]
- [ ITEM_RED_BERRY, ITEM_MELON, ITEM_SPECIAL_SHAKE ]
- [ ITEM_BLUE_BERRY, ITEM_YELLOW_BERRY, ITEM_SUPER_SODA ]
- [ ITEM_BLUE_BERRY, ITEM_KOOPA_LEAF, ITEM_BLAND_MEAL ]
- [ ITEM_BLUE_BERRY, ITEM_DRIED_PASTA, ITEM_BLAND_MEAL ]
- [ ITEM_BLUE_BERRY, ITEM_STRANGE_LEAF, ITEM_SLEEPY_SHEEP ]
- [ ITEM_BLUE_BERRY, ITEM_CAKE_MIX, ITEM_BIG_COOKIE ]
- [ ITEM_BLUE_BERRY, ITEM_MELON, ITEM_SPECIAL_SHAKE ]
- [ ITEM_YELLOW_BERRY, ITEM_KOOPA_LEAF, ITEM_BLAND_MEAL ]
- [ ITEM_YELLOW_BERRY, ITEM_DRIED_PASTA, ITEM_BLAND_MEAL ]
- [ ITEM_YELLOW_BERRY, ITEM_STRANGE_LEAF, ITEM_SLEEPY_SHEEP ]
- [ ITEM_YELLOW_BERRY, ITEM_CAKE_MIX, ITEM_BIG_COOKIE ]
- [ ITEM_YELLOW_BERRY, ITEM_MELON, ITEM_SPECIAL_SHAKE ]
- [ ITEM_GOOMNUT, ITEM_KOOPA_LEAF, ITEM_BLAND_MEAL ]
- [ ITEM_GOOMNUT, ITEM_DRIED_PASTA, ITEM_BLAND_MEAL ]
- [ ITEM_GOOMNUT, ITEM_STRANGE_LEAF, ITEM_BLAND_MEAL ]
- [ ITEM_GOOMNUT, ITEM_CAKE_MIX, ITEM_BIG_COOKIE ]
- [ ITEM_KOOPA_LEAF, ITEM_DRIED_PASTA, ITEM_KOOPASTA ]
- [ ITEM_KOOPA_LEAF, ITEM_CAKE_MIX, ITEM_KOOKY_COOKIE ]
- [ ITEM_KOOPA_LEAF, ITEM_MELON, ITEM_SPECIAL_SHAKE ]
- [ ITEM_DRIED_PASTA, ITEM_DRIED_FRUIT, ITEM_YUMMY_MEAL ]
- [ ITEM_DRIED_PASTA, ITEM_STRANGE_LEAF, ITEM_BLAND_MEAL ]
- [ ITEM_DRIED_PASTA, ITEM_EGG, ITEM_BLAND_MEAL ]
- [ ITEM_DRIED_PASTA, ITEM_ICED_POTATO, ITEM_BLAND_MEAL ]
- [ ITEM_DRIED_FRUIT, ITEM_STRANGE_LEAF, ITEM_FIRE_FLOWER ]
- [ ITEM_DRIED_FRUIT, ITEM_ICED_POTATO, ITEM_YUMMY_MEAL ]
- [ ITEM_STRANGE_LEAF, ITEM_CAKE_MIX, ITEM_STRANGE_CAKE ]
- [ ITEM_STRANGE_LEAF, ITEM_EGG, ITEM_BOILED_EGG ]
- [ ITEM_STRANGE_LEAF, ITEM_MELON, ITEM_SPECIAL_SHAKE ]
- [ ITEM_STRANGE_LEAF, ITEM_STINKY_HERB, ITEM_DIZZY_DIAL ]
- [ ITEM_STRANGE_LEAF, ITEM_ICED_POTATO, ITEM_YUMMY_MEAL ]
- [ ITEM_CAKE_MIX, ITEM_EGG, ITEM_BIG_COOKIE ]
- [ ITEM_CAKE_MIX, ITEM_MELON, ITEM_YOSHI_COOKIE ]
- [ ITEM_CAKE_MIX, ITEM_STINKY_HERB, ITEM_KOOKY_COOKIE ]
- [ ITEM_CAKE_MIX, ITEM_ICED_POTATO, ITEM_BLAND_MEAL ]
- [ ITEM_EGG, ITEM_STINKY_HERB, ITEM_BOILED_EGG ]
- [ ITEM_EGG, ITEM_ICED_POTATO, ITEM_BLAND_MEAL ]
- [ ITEM_SPECIAL_SHAKE, ITEM_DRIED_SHROOM, ITEM_HEALTHY_JUICE ]
- [ ITEM_SPECIAL_SHAKE, ITEM_STRANGE_LEAF, ITEM_HEALTHY_JUICE ]
- [ ITEM_SPECIAL_SHAKE, ITEM_STINKY_HERB, ITEM_HEALTHY_JUICE ]
- [ ITEM_POTATO_SALAD, ITEM_SPAGHETTI, ITEM_YUMMY_MEAL ]
- [ ITEM_POTATO_SALAD, ITEM_FRIED_SHROOM, ITEM_BLAND_MEAL ]
- [ ITEM_POTATO_SALAD, ITEM_HOT_SHROOM, ITEM_YUMMY_MEAL ]
- [ ITEM_POTATO_SALAD, ITEM_SHROOM_STEAK, ITEM_DELUXE_FEAST ]
- [ ITEM_STRANGE_LEAF, ITEM_WHACKAS_BUMP, ITEM_DELUXE_FEAST ]
# [ Product, Flag ]
# Flag will be set when the corresponding item is cooked
CookingRecords:
- [ ITEM_SPICY_SOUP, GF_MAC02_DiscoveredRecipe_00 ]
- [ ITEM_APPLE_PIE, GF_MAC02_DiscoveredRecipe_01 ]
- [ ITEM_HONEY_ULTRA, GF_MAC02_DiscoveredRecipe_02 ]
- [ ITEM_MAPLE_ULTRA, GF_MAC02_DiscoveredRecipe_03 ]
- [ ITEM_JELLY_ULTRA, GF_MAC02_DiscoveredRecipe_04 ]
- [ ITEM_KOOPASTA, GF_MAC02_DiscoveredRecipe_05 ]
- [ ITEM_FRIED_SHROOM, GF_MAC02_DiscoveredRecipe_06 ]
- [ ITEM_SHROOM_CAKE, GF_MAC02_DiscoveredRecipe_07 ]
- [ ITEM_SHROOM_STEAK, GF_MAC02_DiscoveredRecipe_08 ]
- [ ITEM_HOT_SHROOM, GF_MAC02_DiscoveredRecipe_09 ]
- [ ITEM_SWEET_SHROOM, GF_MAC02_DiscoveredRecipe_0A ]
- [ ITEM_BLAND_MEAL, GF_MAC02_DiscoveredRecipe_0B ]
- [ ITEM_YUMMY_MEAL, GF_MAC02_DiscoveredRecipe_0C ]
- [ ITEM_DELUXE_FEAST, GF_MAC02_DiscoveredRecipe_0D ]
- [ ITEM_SPECIAL_SHAKE, GF_MAC02_DiscoveredRecipe_0E ]
- [ ITEM_HEALTHY_JUICE, GF_MAC02_DiscoveredRecipe_0F ]
- [ ITEM_BIG_COOKIE, GF_MAC02_DiscoveredRecipe_10 ]
- [ ITEM_CAKE, GF_MAC02_DiscoveredRecipe_11 ]
- [ ITEM_MISTAKE, GF_MAC02_DiscoveredRecipe_12 ]
- [ ITEM_KOOPA_TEA, GF_MAC02_DiscoveredRecipe_13 ]
- [ ITEM_HONEY_SUPER, GF_MAC02_DiscoveredRecipe_14 ]
- [ ITEM_MAPLE_SUPER, GF_MAC02_DiscoveredRecipe_15 ]
- [ ITEM_JELLY_SUPER, GF_MAC02_DiscoveredRecipe_16 ]
- [ ITEM_SPAGHETTI, GF_MAC02_DiscoveredRecipe_17 ]
- [ ITEM_EGG_MISSILE, GF_MAC02_DiscoveredRecipe_18 ]
- [ ITEM_FRIED_EGG, GF_MAC02_DiscoveredRecipe_19 ]
- [ ITEM_HONEY_SHROOM, GF_MAC02_DiscoveredRecipe_1A ]
- [ ITEM_HONEY_CANDY, GF_MAC02_DiscoveredRecipe_1B ]
- [ ITEM_ELECTRO_POP, GF_MAC02_DiscoveredRecipe_1C ]
- [ ITEM_FIRE_POP, GF_MAC02_DiscoveredRecipe_1D ]
- [ ITEM_LIME_CANDY, GF_MAC02_DiscoveredRecipe_1E ]
- [ ITEM_COCO_POP, GF_MAC02_DiscoveredRecipe_1F ]
- [ ITEM_LEMON_CANDY, GF_MAC02_DiscoveredRecipe_20 ]
- [ ITEM_JELLY_POP, GF_MAC02_DiscoveredRecipe_21 ]
- [ ITEM_STRANGE_CAKE, GF_MAC02_DiscoveredRecipe_22 ]
- [ ITEM_KOOKY_COOKIE, GF_MAC02_DiscoveredRecipe_23 ]
- [ ITEM_FROZEN_FRIES, GF_MAC02_DiscoveredRecipe_24 ]
- [ ITEM_POTATO_SALAD, GF_MAC02_DiscoveredRecipe_25 ]
- [ ITEM_NUTTY_CAKE, GF_MAC02_DiscoveredRecipe_26 ]
- [ ITEM_MAPLE_SHROOM, GF_MAC02_DiscoveredRecipe_27 ]
- [ ITEM_BOILED_EGG, GF_MAC02_DiscoveredRecipe_28 ]
- [ ITEM_YOSHI_COOKIE, GF_MAC02_DiscoveredRecipe_29 ]
- [ ITEM_JELLY_SHROOM1, GF_MAC02_DiscoveredRecipe_2A ]
- [ ITEM_TASTY_TONIC, GF_MAC02_DiscoveredRecipe_2B ]
- [ ITEM_DIZZY_DIAL, GF_MAC02_DiscoveredRecipe_2C ]
- [ ITEM_SUPER_SODA, GF_MAC02_DiscoveredRecipe_2D ]
- [ ITEM_REPEL_GEL, GF_MAC02_DiscoveredRecipe_2E ]
- [ ITEM_LIFE_SHROOM, GF_MAC02_DiscoveredRecipe_2F ]
- [ ITEM_VOLT_SHROOM, GF_MAC02_DiscoveredRecipe_30 ]
- [ ITEM_SLEEPY_SHEEP, GF_MAC02_DiscoveredRecipe_31 ]
- [ ITEM_THUNDER_RAGE, GF_MAC02_DiscoveredRecipe_32 ]
- [ ITEM_FIRE_FLOWER, GF_MAC02_DiscoveredRecipe_33 ]

View File

@ -3,26 +3,25 @@
#include "sprite/player.h" #include "sprite/player.h"
AnimID IdlePeachAnims[] = { AnimID IdlePeachAnims[] = {
ANIM_Peach1_Idle, // none [PEACH_BAKING_NONE] ANIM_Peach1_Idle,
ANIM_Peach1_HoldCream, // cream [PEACH_BAKING_CREAM] ANIM_Peach1_HoldCream,
ANIM_Peach1_HoldStrawberry, // strawberry [PEACH_BAKING_STRAWBERRY] ANIM_Peach1_HoldStrawberry,
ANIM_Peach1_HoldButter, // butter [PEACH_BAKING_BUTTER] ANIM_Peach1_HoldButter,
ANIM_Peach1_HoldCleanser, // cleanser [PEACH_BAKING_CLEANSER] ANIM_Peach1_HoldCleanser,
ANIM_Peach1_HoldWater, // water [PEACH_BAKING_WATER] ANIM_Peach1_HoldWater,
ANIM_Peach1_HoldMilk, // milk [PEACH_BAKING_MILK] ANIM_Peach1_HoldMilk,
ANIM_Peach1_HoldFlour, // flour [PEACH_BAKING_FLOUR] ANIM_Peach1_HoldFlour,
ANIM_Peach1_HoldEgg, // egg [PEACH_BAKING_EGG] ANIM_Peach1_HoldEgg,
ANIM_Peach1_HoldCompleteCake, // complete cake [PEACH_BAKING_COMPLETE_CAKE] ANIM_Peach1_HoldCompleteCake,
ANIM_Peach1_HoldCakeBowl, // cake bowl [PEACH_BAKING_CAKE_BOWL] ANIM_Peach1_HoldCakeBowl,
ANIM_Peach1_HoldCakeMixed, // cake mixed [PEACH_BAKING_CAKE_MIXED] ANIM_Peach1_HoldCakeMixed,
ANIM_Peach1_HoldCakePan, // cake pan [PEACH_BAKING_CAKE_PAN] ANIM_Peach1_HoldCakePan,
ANIM_Peach1_HoldCakeBatter, // cake batter [PEACH_BAKING_CAKE_BATTER] ANIM_Peach1_HoldCakeBatter,
ANIM_Peach1_HoldBareCake, // cake bare [PEACH_BAKING_CAKE_BARE] ANIM_Peach1_HoldBareCake,
ANIM_Peach1_HoldSalt, // salt [PEACH_BAKING_SALT] ANIM_Peach1_HoldSalt,
ANIM_Peach1_HoldSugar, // sugar [PEACH_BAKING_SUGAR] ANIM_Peach1_HoldSugar,
ANIM_Peach1_HoldIcingCake, // cake with icing [PEACH_BAKING_CAKE_WITH_ICING] ANIM_Peach1_HoldIcingCake,
ANIM_Peach1_HoldBerryCake, // cake with berries [PEACH_BAKING_CAKE_WITH_BERRIES] ANIM_Peach1_HoldBerryCake,
0x00000000,
}; };
enum { enum {

View File

@ -3,26 +3,25 @@
#include "sprite/player.h" #include "sprite/player.h"
AnimID StepUpPeachAnims[] = { AnimID StepUpPeachAnims[] = {
ANIM_Peach1_Walk, // none [PEACH_BAKING_NONE] ANIM_Peach1_Walk,
ANIM_Peach1_CarryCream, // cream [PEACH_BAKING_CREAM] ANIM_Peach1_CarryCream,
ANIM_Peach1_CarryStrawberry, // strawberry [PEACH_BAKING_STRAWBERRY] ANIM_Peach1_CarryStrawberry,
ANIM_Peach1_CarryButter, // butter [PEACH_BAKING_BUTTER] ANIM_Peach1_CarryButter,
ANIM_Peach1_CarryCleanser, // cleanser [PEACH_BAKING_CLEANSER] ANIM_Peach1_CarryCleanser,
ANIM_Peach1_CarryWater, // water [PEACH_BAKING_WATER] ANIM_Peach1_CarryWater,
ANIM_Peach1_CarryMilk, // milk [PEACH_BAKING_MILK] ANIM_Peach1_CarryMilk,
ANIM_Peach1_CarryFlour, // flour [PEACH_BAKING_FLOUR] ANIM_Peach1_CarryFlour,
ANIM_Peach1_CarryEgg, // egg [PEACH_BAKING_EGG] ANIM_Peach1_CarryEgg,
ANIM_Peach1_CarryCompleteCake, // complete cake [PEACH_BAKING_COMPLETE_CAKE] ANIM_Peach1_CarryCompleteCake,
ANIM_Peach1_CarryCakeBowl, // cake bowl [PEACH_BAKING_CAKE_BOWL] ANIM_Peach1_CarryCakeBowl,
ANIM_Peach1_CarryCakeMixed, // cake mixed [PEACH_BAKING_CAKE_MIXED] ANIM_Peach1_CarryCakeMixed,
ANIM_Peach1_CarryCakePan, // cake pan [PEACH_BAKING_CAKE_PAN] ANIM_Peach1_CarryCakePan,
ANIM_Peach1_CarryCakeBatter, // cake batter [PEACH_BAKING_CAKE_BATTER] ANIM_Peach1_CarryCakeBatter,
ANIM_Peach1_CarryBareCake, // cake bare [PEACH_BAKING_CAKE_BARE] ANIM_Peach1_CarryBareCake,
ANIM_Peach1_CarrySalt, // salt [PEACH_BAKING_SALT] ANIM_Peach1_CarrySalt,
ANIM_Peach1_CarrySugar, // sugar [PEACH_BAKING_SUGAR] ANIM_Peach1_CarrySugar,
ANIM_Peach1_CarryIcingCake, // cake with icing [PEACH_BAKING_CAKE_WITH_ICING] ANIM_Peach1_CarryIcingCake,
ANIM_Peach1_CarryBerryCake, // cake with berries [PEACH_BAKING_CAKE_WITH_BERRIES] ANIM_Peach1_CarryBerryCake,
0x00000000
}; };
void func_802B6198_E24768(void); void func_802B6198_E24768(void);

View File

@ -3,26 +3,25 @@
#include "sprite/player.h" #include "sprite/player.h"
AnimID WalkPeachAnims[] = { AnimID WalkPeachAnims[] = {
ANIM_Peach1_Walk, // none [PEACH_BAKING_NONE] ANIM_Peach1_Walk,
ANIM_Peach1_CarryCream, // cream [PEACH_BAKING_CREAM] ANIM_Peach1_CarryCream,
ANIM_Peach1_CarryStrawberry, // strawberry [PEACH_BAKING_STRAWBERRY] ANIM_Peach1_CarryStrawberry,
ANIM_Peach1_CarryButter, // butter [PEACH_BAKING_BUTTER] ANIM_Peach1_CarryButter,
ANIM_Peach1_CarryCleanser, // cleanser [PEACH_BAKING_CLEANSER] ANIM_Peach1_CarryCleanser,
ANIM_Peach1_CarryWater, // water [PEACH_BAKING_WATER] ANIM_Peach1_CarryWater,
ANIM_Peach1_CarryMilk, // milk [PEACH_BAKING_MILK] ANIM_Peach1_CarryMilk,
ANIM_Peach1_CarryFlour, // flour [PEACH_BAKING_FLOUR] ANIM_Peach1_CarryFlour,
ANIM_Peach1_CarryEgg, // egg [PEACH_BAKING_EGG] ANIM_Peach1_CarryEgg,
ANIM_Peach1_CarryCompleteCake, // complete cake [PEACH_BAKING_COMPLETE_CAKE] ANIM_Peach1_CarryCompleteCake,
ANIM_Peach1_CarryCakeBowl, // cake bowl [PEACH_BAKING_CAKE_BOWL] ANIM_Peach1_CarryCakeBowl,
ANIM_Peach1_CarryCakeMixed, // cake mixed [PEACH_BAKING_CAKE_MIXED] ANIM_Peach1_CarryCakeMixed,
ANIM_Peach1_CarryCakePan, // cake pan [PEACH_BAKING_CAKE_PAN] ANIM_Peach1_CarryCakePan,
ANIM_Peach1_CarryCakeBatter, // cake batter [PEACH_BAKING_CAKE_BATTER] ANIM_Peach1_CarryCakeBatter,
ANIM_Peach1_CarryBareCake, // cake bare [PEACH_BAKING_CAKE_BARE] ANIM_Peach1_CarryBareCake,
ANIM_Peach1_CarrySalt, // salt [PEACH_BAKING_SALT] ANIM_Peach1_CarrySalt,
ANIM_Peach1_CarrySugar, // sugar [PEACH_BAKING_SUGAR] ANIM_Peach1_CarrySugar,
ANIM_Peach1_CarryIcingCake, // cake with icing [PEACH_BAKING_CAKE_WITH_ICING] ANIM_Peach1_CarryIcingCake,
ANIM_Peach1_CarryBerryCake, // cake with berries [PEACH_BAKING_CAKE_WITH_BERRIES] ANIM_Peach1_CarryBerryCake,
0x00000000
}; };
static void action_update_run_peach(void); static void action_update_run_peach(void);

View File

@ -30,69 +30,69 @@ enum {
CREDITS_LINE_VANISHING = 2 CREDITS_LINE_VANISHING = 2
}; };
CreditsUnkBeta N(Font4Patterns)[] = { CreditsPairOffset N(Font4Patterns)[] = {
{ .unk_00 = 0x02, .unk_01 = 0x07, .size = 1 }, { .firstChar = 0x02, .secondChar = 0x07, .offset = 1 },
{ .unk_00 = 0x02, .unk_01 = 0x0A, .size = 1 }, { .firstChar = 0x02, .secondChar = 0x0A, .offset = 1 },
{ .unk_00 = 0x03, .unk_01 = 0x04, .size = 1 }, { .firstChar = 0x03, .secondChar = 0x04, .offset = 1 },
{ .unk_00 = 0x07, .unk_01 = 0x0D, .size = 1 }, { .firstChar = 0x07, .secondChar = 0x0D, .offset = 1 },
{ .unk_00 = 0x09, .unk_01 = 0x04, .size = 1 }, { .firstChar = 0x09, .secondChar = 0x04, .offset = 1 },
{ .unk_00 = 0x0C, .unk_01 = 0x04, .size = 1 }, { .firstChar = 0x0C, .secondChar = 0x04, .offset = 1 },
{ .unk_00 = 0x0C, .unk_01 = 0x0C, .size = 1 }, { .firstChar = 0x0C, .secondChar = 0x0C, .offset = 1 },
{ .unk_00 = 0x0C, .unk_01 = 0x14, .size = 1 }, { .firstChar = 0x0C, .secondChar = 0x14, .offset = 1 },
{ .unk_00 = 0x0D, .unk_01 = 0x03, .size = 1 }, { .firstChar = 0x0D, .secondChar = 0x03, .offset = 1 },
{ .unk_00 = 0x0D, .unk_01 = 0x04, .size = 1 }, { .firstChar = 0x0D, .secondChar = 0x04, .offset = 1 },
{ .unk_00 = 0x0D, .unk_01 = 0x0A, .size = 1 }, { .firstChar = 0x0D, .secondChar = 0x0A, .offset = 1 },
{ .unk_00 = 0x0D, .unk_01 = 0x14, .size = 1 }, { .firstChar = 0x0D, .secondChar = 0x14, .offset = 1 },
{ .unk_00 = 0x0E, .unk_01 = 0x0D, .size = 1 }, { .firstChar = 0x0E, .secondChar = 0x0D, .offset = 1 },
{ .unk_00 = 0x0E, .unk_01 = 0x11, .size = 1 }, { .firstChar = 0x0E, .secondChar = 0x11, .offset = 1 },
{ .unk_00 = 0x11, .unk_01 = 0x04, .size = 1 }, { .firstChar = 0x11, .secondChar = 0x04, .offset = 1 },
{ .unk_00 = 0x11, .unk_01 = 0x0F, .size = 1 }, { .firstChar = 0x11, .secondChar = 0x0F, .offset = 1 },
{ .unk_00 = 0x14, .unk_01 = 0x02, .size = 1 }, { .firstChar = 0x14, .secondChar = 0x02, .offset = 1 },
{ .unk_00 = 0x14, .unk_01 = 0x0D, .size = 1 }, { .firstChar = 0x14, .secondChar = 0x0D, .offset = 1 },
{ .unk_00 = 0x14, .unk_01 = 0x0F, .size = 1 }, { .firstChar = 0x14, .secondChar = 0x0F, .offset = 1 },
{ .unk_00 = 0x14, .unk_01 = 0x12, .size = 1 }, { .firstChar = 0x14, .secondChar = 0x12, .offset = 1 },
{ .unk_00 = 0x12, .unk_01 = 0x02, .size = 1 }, { .firstChar = 0x12, .secondChar = 0x02, .offset = 1 },
{ .unk_00 = 0x12, .unk_01 = 0x07, .size = 1 }, { .firstChar = 0x12, .secondChar = 0x07, .offset = 1 },
{ .unk_00 = 0x12, .unk_01 = 0x0F, .size = 1 }, { .firstChar = 0x12, .secondChar = 0x0F, .offset = 1 },
{ .unk_00 = 0x15, .unk_01 = 0x04, .size = 1 }, { .firstChar = 0x15, .secondChar = 0x04, .offset = 1 },
{ .unk_00 = 0x16, .unk_01 = 0x11, .size = 1 }, { .firstChar = 0x16, .secondChar = 0x11, .offset = 1 },
{} {}
}; };
CreditsUnkBeta N(Font3Patterns)[] = { CreditsPairOffset N(Font3Patterns)[] = {
{ .unk_00 = 0x00, .unk_01 = 0x02, .size = 1 }, { .firstChar = 0x00, .secondChar = 0x02, .offset = 1 },
{ .unk_00 = 0x00, .unk_01 = 0x06, .size = 1 }, { .firstChar = 0x00, .secondChar = 0x06, .offset = 1 },
{ .unk_00 = 0x00, .unk_01 = 0x0E, .size = 1 }, { .firstChar = 0x00, .secondChar = 0x0E, .offset = 1 },
{ .unk_00 = 0x00, .unk_01 = 0x03, .size = 1 }, { .firstChar = 0x00, .secondChar = 0x03, .offset = 1 },
{ .unk_00 = 0x00, .unk_01 = 0x08, .size = 1 }, { .firstChar = 0x00, .secondChar = 0x08, .offset = 1 },
{ .unk_00 = 0x00, .unk_01 = 0x0A, .size = 1 }, { .firstChar = 0x00, .secondChar = 0x0A, .offset = 1 },
{ .unk_00 = 0x00, .unk_01 = 0x0D, .size = 1 }, { .firstChar = 0x00, .secondChar = 0x0D, .offset = 1 },
{ .unk_00 = 0x00, .unk_01 = 0x13, .size = 1 }, { .firstChar = 0x00, .secondChar = 0x13, .offset = 1 },
{ .unk_00 = 0x00, .unk_01 = 0x14, .size = 1 }, { .firstChar = 0x00, .secondChar = 0x14, .offset = 1 },
{ .unk_00 = 0x07, .unk_01 = 0x00, .size = 1 }, { .firstChar = 0x07, .secondChar = 0x00, .offset = 1 },
{ .unk_00 = 0x07, .unk_01 = 0x06, .size = 1 }, { .firstChar = 0x07, .secondChar = 0x06, .offset = 1 },
{ .unk_00 = 0x07, .unk_01 = 0x08, .size = 1 }, { .firstChar = 0x07, .secondChar = 0x08, .offset = 1 },
{ .unk_00 = 0x08, .unk_01 = 0x02, .size = 1 }, { .firstChar = 0x08, .secondChar = 0x02, .offset = 1 },
{ .unk_00 = 0x08, .unk_01 = 0x04, .size = 1 }, { .firstChar = 0x08, .secondChar = 0x04, .offset = 1 },
{ .unk_00 = 0x08, .unk_01 = 0x06, .size = 1 }, { .firstChar = 0x08, .secondChar = 0x06, .offset = 1 },
{ .unk_00 = 0x08, .unk_01 = 0x0A, .size = 1 }, { .firstChar = 0x08, .secondChar = 0x0A, .offset = 1 },
{ .unk_00 = 0x08, .unk_01 = 0x0D, .size = 1 }, { .firstChar = 0x08, .secondChar = 0x0D, .offset = 1 },
{ .unk_00 = 0x08, .unk_01 = 0x0E, .size = 1 }, { .firstChar = 0x08, .secondChar = 0x0E, .offset = 1 },
{ .unk_00 = 0x08, .unk_01 = 0x13, .size = 1 }, { .firstChar = 0x08, .secondChar = 0x13, .offset = 1 },
{ .unk_00 = 0x08, .unk_01 = 0x18, .size = 1 }, { .firstChar = 0x08, .secondChar = 0x18, .offset = 1 },
{ .unk_00 = 0x09, .unk_01 = 0x08, .size = 1 }, { .firstChar = 0x09, .secondChar = 0x08, .offset = 1 },
{ .unk_00 = 0x0C, .unk_01 = 0x0E, .size = 1 }, { .firstChar = 0x0C, .secondChar = 0x0E, .offset = 1 },
{ .unk_00 = 0x0C, .unk_01 = 0x08, .size = 1 }, { .firstChar = 0x0C, .secondChar = 0x08, .offset = 1 },
{ .unk_00 = 0x0D, .unk_01 = 0x06, .size = 1 }, { .firstChar = 0x0D, .secondChar = 0x06, .offset = 1 },
{ .unk_00 = 0x0D, .unk_01 = 0x08, .size = 1 }, { .firstChar = 0x0D, .secondChar = 0x08, .offset = 1 },
{ .unk_00 = 0x0D, .unk_01 = 0x0E, .size = 1 }, { .firstChar = 0x0D, .secondChar = 0x0E, .offset = 1 },
{ .unk_00 = 0x0D, .unk_01 = 0x13, .size = 1 }, { .firstChar = 0x0D, .secondChar = 0x13, .offset = 1 },
{ .unk_00 = 0x12, .unk_01 = 0x04, .size = 1 }, { .firstChar = 0x12, .secondChar = 0x04, .offset = 1 },
{ .unk_00 = 0x12, .unk_01 = 0x08, .size = 1 }, { .firstChar = 0x12, .secondChar = 0x08, .offset = 1 },
{ .unk_00 = 0x13, .unk_01 = 0x04, .size = 1 }, { .firstChar = 0x13, .secondChar = 0x04, .offset = 1 },
{ .unk_00 = 0x14, .unk_01 = 0x02, .size = 1 }, { .firstChar = 0x14, .secondChar = 0x02, .offset = 1 },
{ .unk_00 = 0x14, .unk_01 = 0x08, .size = 1 }, { .firstChar = 0x14, .secondChar = 0x08, .offset = 1 },
{ .unk_00 = 0x14, .unk_01 = 0x0A, .size = 1 }, { .firstChar = 0x14, .secondChar = 0x0A, .offset = 1 },
{} {}
}; };
@ -499,7 +499,7 @@ void N(CharAnim_FadeOut_3)(CreditsLine* line, CreditsChar* chr) {
void N(credits_update_line)(CreditsLine* line) { void N(credits_update_line)(CreditsLine* line) {
CreditsChar creditsChar; CreditsChar creditsChar;
CreditsChar* curChar = &creditsChar; CreditsChar* curChar = &creditsChar;
CreditsUnkBeta* curPattern; CreditsPairOffset* curPattern;
s32 msgHeight, msgWidth, msgMaxLineChars; s32 msgHeight, msgWidth, msgMaxLineChars;
s32 doneCurrentState; s32 doneCurrentState;
s32 readPos; s32 readPos;
@ -563,11 +563,11 @@ void N(credits_update_line)(CreditsLine* line) {
} }
do { do {
if (curMsgChar == curPattern[i].unk_00 && nextMsgChar1 == curPattern[i].unk_01) { if (curMsgChar == curPattern[i].firstChar && nextMsgChar1 == curPattern[i].secondChar) {
msgWidth += curPattern[i].size; msgWidth += curPattern[i].offset;
} }
i++; i++;
} while (curPattern[i].size != 0); } while (curPattern[i].offset != 0);
} }
break; break;
} }
@ -700,11 +700,11 @@ void N(credits_update_line)(CreditsLine* line) {
} }
} }
do { do {
if (curMsgChar == curPattern[i].unk_00 && nextMsgChar2 == curPattern[i].unk_01) { if (curMsgChar == curPattern[i].firstChar && nextMsgChar2 == curPattern[i].secondChar) {
posX += curPattern[i].size; posX += curPattern[i].offset;
} }
i++; i++;
} while (curPattern[i].size != 0); } while (curPattern[i].offset != 0);
} }
break; break;
} }

View File

@ -6,7 +6,7 @@ EvtScript N(EVS_ParadePhase_Luigi) = {
EVT_WAIT(80 * DT) EVT_WAIT(80 * DT)
EVT_THREAD EVT_THREAD
EVT_LOOP(9 * DT) EVT_LOOP(9 * DT)
EVT_CALL(PlaySoundAtNpc, NPC_Luigi, SOUND_11, SOUND_SPACE_MODE_0) EVT_CALL(PlaySoundAtNpc, NPC_Luigi, SOUND_NORMAL_VOICE_A, SOUND_SPACE_MODE_0)
EVT_WAIT(15) EVT_WAIT(15)
EVT_END_LOOP EVT_END_LOOP
EVT_END_THREAD EVT_END_THREAD

View File

@ -4,7 +4,7 @@
EvtScript N(EVS_MakeEntities) = { EvtScript N(EVS_MakeEntities) = {
EVT_CALL(MakeEntity, EVT_PTR(Entity_HiddenYellowBlock), 660, 60, -115, 0, ITEM_THUNDER_RAGE, MAKE_ENTITY_END) EVT_CALL(MakeEntity, EVT_PTR(Entity_HiddenYellowBlock), 660, 60, -115, 0, ITEM_THUNDER_RAGE, MAKE_ENTITY_END)
EVT_CALL(AssignBlockFlag, GF_FLO17_HiddenItem_ThunderRage) EVT_CALL(AssignBlockFlag, GF_FLO17_HiddenItem_ThunderRage)
EVT_CALL(MakeItemEntity, ITEM_LETTER_TO_MINHT, -245, 0, 105, ITEM_SPAWN_MODE_FIXED_NEVER_VANISH, GF_FLO17_Item_Letter09) EVT_CALL(MakeItemEntity, ITEM_LETTER_TO_MINH_T, -245, 0, 105, ITEM_SPAWN_MODE_FIXED_NEVER_VANISH, GF_FLO17_Item_Letter09)
EVT_RETURN EVT_RETURN
EVT_END EVT_END
}; };

View File

@ -25,7 +25,7 @@ typedef struct BadgeHint {
#define BADGE_REQ_MERLOW_SHOP 10002 #define BADGE_REQ_MERLOW_SHOP 10002
BadgeHint N(BadgeHintData)[] = { BadgeHint N(BadgeHintData)[] = {
{ MSG_MerluvleeHint_JumpCharge, ITEM_BOOTS_CHARGE, STORY_CH3_STAR_SPRIT_DEPARTED }, { MSG_MerluvleeHint_JumpCharge, ITEM_JUMP_CHARGE, STORY_CH3_STAR_SPRIT_DEPARTED },
{ MSG_MerluvleeHint_SuperJumpCharge, ITEM_S_JUMP_CHG, STORY_CH6_ARRIVED_AT_FLOWER_FIELDS }, { MSG_MerluvleeHint_SuperJumpCharge, ITEM_S_JUMP_CHG, STORY_CH6_ARRIVED_AT_FLOWER_FIELDS },
{ MSG_MerluvleeHint_ShrinkStomp, ITEM_SHRINK_STOMP, STORY_CH1_DEFEATED_JR_TROOPA }, { MSG_MerluvleeHint_ShrinkStomp, ITEM_SHRINK_STOMP, STORY_CH1_DEFEATED_JR_TROOPA },
{ MSG_MerluvleeHint_Multibounce, ITEM_MULTIBOUNCE, STORY_CH1_DEFEATED_JR_TROOPA }, { MSG_MerluvleeHint_Multibounce, ITEM_MULTIBOUNCE, STORY_CH1_DEFEATED_JR_TROOPA },
@ -689,7 +689,7 @@ EvtScript N(EVS_KootCheckBall_Merluvlee) = {
EVT_CHOOSE_KEY_ITEM_FROM(N(CrystalBallItems)) EVT_CHOOSE_KEY_ITEM_FROM(N(CrystalBallItems))
EVT_IF_NE(LVar0, -1) EVT_IF_NE(LVar0, -1)
EVT_CALL(SpeakToPlayer, NPC_Merluvlee, ANIM_Merluvlee_Talk, ANIM_Merluvlee_Idle, 0, MSG_HOS_0049) EVT_CALL(SpeakToPlayer, NPC_Merluvlee, ANIM_Merluvlee_Talk, ANIM_Merluvlee_Idle, 0, MSG_HOS_0049)
EVT_GIVE_KEY_REWARD(ITEM_KOOT_MERLUVLEES_AUTOGRAPH) EVT_GIVE_KEY_REWARD(ITEM_KOOT_MERLUVLEE_AUTOGRAPH)
EVT_SET(GF_HOS06_Gift_MerluvleesAutograph, TRUE) EVT_SET(GF_HOS06_Gift_MerluvleesAutograph, TRUE)
EVT_ELSE EVT_ELSE
EVT_CALL(SpeakToPlayer, NPC_Merluvlee, ANIM_Merluvlee_Talk, ANIM_Merluvlee_Idle, 0, MSG_HOS_0048) EVT_CALL(SpeakToPlayer, NPC_Merluvlee, ANIM_Merluvlee_Talk, ANIM_Merluvlee_Idle, 0, MSG_HOS_0048)

View File

@ -49,7 +49,7 @@ EvtScript N(EVS_KootFavorCheck_Luigi) = {
EVT_WAIT(10) EVT_WAIT(10)
EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_Luigi_Talk, ANIM_Luigi_Idle, 0, MSG_CH0_0105) EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_Luigi_Talk, ANIM_Luigi_Idle, 0, MSG_CH0_0105)
EVT_WAIT(10) EVT_WAIT(10)
EVT_SET(LVar0, ITEM_KOOT_LUIGIS_AUTOGRAPH) EVT_SET(LVar0, ITEM_KOOT_LUIGI_AUTOGRAPH)
EVT_SET(LVar1, 1) EVT_SET(LVar1, 1)
EVT_EXEC_WAIT(N(GiveItemReward)) EVT_EXEC_WAIT(N(GiveItemReward))
EVT_CALL(AddKeyItem, LVar0) EVT_CALL(AddKeyItem, LVar0)

View File

@ -153,7 +153,7 @@ ShopItemData N(RowfBadgeInventory)[] = {
{ .itemID = ITEM_DODGE_MASTER, .price = 100, .descMsg = MSG_ItemShopDesc_DodgeMaster }, { .itemID = ITEM_DODGE_MASTER, .price = 100, .descMsg = MSG_ItemShopDesc_DodgeMaster },
{ .itemID = ITEM_SLEEP_STOMP, .price = 75, .descMsg = MSG_ItemShopDesc_SleepStomp }, { .itemID = ITEM_SLEEP_STOMP, .price = 75, .descMsg = MSG_ItemShopDesc_SleepStomp },
{ .itemID = ITEM_DOUBLE_DIP, .price = 100, .descMsg = MSG_ItemShopDesc_DoubleDip }, { .itemID = ITEM_DOUBLE_DIP, .price = 100, .descMsg = MSG_ItemShopDesc_DoubleDip },
{ .itemID = ITEM_BOOTS_CHARGE, .price = 50, .descMsg = MSG_ItemShopDesc_JumpCharge }, { .itemID = ITEM_JUMP_CHARGE, .price = 50, .descMsg = MSG_ItemShopDesc_JumpCharge },
{ .itemID = ITEM_SPIN_SMASH, .price = 75, .descMsg = MSG_ItemShopDesc_SpinSmash }, { .itemID = ITEM_SPIN_SMASH, .price = 75, .descMsg = MSG_ItemShopDesc_SpinSmash },
{ .itemID = ITEM_GROUP_FOCUS, .price = 100, .descMsg = MSG_ItemShopDesc_GroupFocus }, { .itemID = ITEM_GROUP_FOCUS, .price = 100, .descMsg = MSG_ItemShopDesc_GroupFocus },
{ .itemID = ITEM_ALLOR_NOTHING, .price = 100, .descMsg = MSG_ItemShopDesc_AllorNothing }, { .itemID = ITEM_ALLOR_NOTHING, .price = 100, .descMsg = MSG_ItemShopDesc_AllorNothing },

View File

@ -70,14 +70,14 @@ EvtScript N(EVS_LetterReward_Merlon) = {
}; };
s32 N(LetterList_MinhT)[] = { s32 N(LetterList_MinhT)[] = {
ITEM_LETTER_TO_MINHT, ITEM_LETTER_TO_MINH_T,
ITEM_NONE ITEM_NONE
}; };
EvtScript N(EVS_LetterPrompt_MinhT) = { EvtScript N(EVS_LetterPrompt_MinhT) = {
EVT_CALL(N(LetterDelivery_Init), EVT_CALL(N(LetterDelivery_Init),
NPC_MinhT, ANIM_MinhT_Talk, ANIM_MinhT_Idle, NPC_MinhT, ANIM_MinhT_Talk, ANIM_MinhT_Idle,
ITEM_LETTER_TO_MINHT, ITEM_NONE, ITEM_LETTER_TO_MINH_T, ITEM_NONE,
MSG_MAC_Plaza_0078, MSG_MAC_Plaza_0079, MSG_MAC_Plaza_007A, MSG_MAC_Plaza_007B, MSG_MAC_Plaza_0078, MSG_MAC_Plaza_0079, MSG_MAC_Plaza_007A, MSG_MAC_Plaza_007B,
EVT_PTR(N(LetterList_MinhT))) EVT_PTR(N(LetterList_MinhT)))
EVT_EXEC_WAIT(N(EVS_DoLetterDelivery)) EVT_EXEC_WAIT(N(EVS_DoLetterDelivery))

View File

@ -324,7 +324,7 @@ EvtScript N(EVS_Scene_FlowerGateAppears) = {
}; };
s32 N(LetterList_MinhT_Unused)[] = { s32 N(LetterList_MinhT_Unused)[] = {
ITEM_LETTER_TO_MINHT, ITEM_LETTER_TO_MINH_T,
ITEM_NONE ITEM_NONE
}; };

View File

@ -4,95 +4,16 @@
#include "common.h" #include "common.h"
#include "gcc/string.h" #include "gcc/string.h"
// enum mapping itemIDs -> index in single recipe arrays and column/rows in double recipe matrix typedef struct CookingResult {
enum CookingIngredientID { /* 00 */ s32 quality;
iRSH = 0, // ITEM_MUSHROOM /* 04 */ s32 itemID;
iSSH = 1, // ITEM_SUPER_SHROOM } CookingResult; // size = 0x8
iUSH = 2, // ITEM_ULTRA_SHROOM
iLSH = 3, // ITEM_LIFE_SHROOM
iVSH = 4, // ITEM_VOLT_SHROOM
iFFL = 5, // ITEM_FIRE_FLOWER
iCOC = 6, // ITEM_COCONUT
iLIM = 7, // ITEM_LIME
iLEM = 8, // ITEM_LEMON
iHSY = 9, // ITEM_HONEY_SYRUP
iMSY = 10, // ITEM_MAPLE_SYRUP
iJAM = 11, // ITEM_JAMMIN_JELLY
iAPP = 12, // ITEM_APPLE
iRBY = 13, // ITEM_RED_BERRY
iBBY = 14, // ITEM_BLUE_BERRY
iYBY = 15, // ITEM_YELLOW_BERRY
iGMN = 16, // ITEM_GOOMNUT
iKLF = 17, // ITEM_KOOPA_LEAF
iDRP = 18, // ITEM_DRIED_PASTA
iDRF = 19, // ITEM_DRIED_FRUIT
iSLF = 20, // ITEM_STRANGE_LEAF
iMIX = 21, // ITEM_CAKE_MIX
iEGG = 22, // ITEM_EGG
iMEL = 23, // ITEM_MELON
iSTK = 24, // ITEM_STINKY_HERB
iPOT = 25, // ITEM_ICED_POTATO
iDSH = 26, // ITEM_DRIED_SHROOM
iBUB = 27, // ITEM_BUBBLE_BERRY
iBMP = 28, // ITEM_WHACKAS_BUMP
INPUT_END = 29,
};
// enum mapping cooking result to itemID/quality rating typedef struct ExtraCookingPair {
enum CookingResultID { /* 00 */ s32 inputA;
rXXX = 0, // ITEM_MISTAKE /* 04 */ s32 inputB;
rFRS = 1, // ITEM_FRIED_SHROOM /* 04 */ s32 output;
rSPS = 2, // ITEM_SPICY_SOUP } ExtraCookingPair; // size = 0x8
rTTN = 3, // ITEM_TASTY_TONIC
rNUT = 4, // ITEM_NUTTY_CAKE
rTEA = 5, // ITEM_KOOPA_TEA
rSPG = 6, // ITEM_SPAGHETTI
rDZD = 7, // ITEM_DIZZY_DIAL
rBCK = 8, // ITEM_BIG_COOKIE
rCAK = 9, // ITEM_CAKE
rFEG = 10, // ITEM_FRIED_EGG
rBEG = 11, // ITEM_BOILED_EGG
rSOD = 12, // ITEM_SUPER_SODA
rYCK = 13, // ITEM_YOSHI_COOKIE
rDLX = 14, // ITEM_DELUXE_FEAST
rFZF = 15, // ITEM_FROZEN_FRIES
rPOT = 16, // ITEM_POTATO_SALAD
rHOT = 17, // ITEM_HOT_SHROOM
rBLN = 18, // ITEM_BLAND_MEAL
rHSH = 19, // ITEM_HONEY_SHROOM
rMSH = 20, // ITEM_MAPLE_SHROOM
rJSH = 21, // ITEM_JELLY_SHROOM1
rLSH = 22, // ITEM_LIFE_SHROOM
rVSH = 23, // ITEM_VOLT_SHROOM
rSLS = 24, // ITEM_SLEEPY_SHEEP
rSHC = 25, // ITEM_SHROOM_CAKE
rSHS = 26, // ITEM_SHROOM_STEAK
rHSU = 27, // ITEM_HONEY_SUPER
rMSU = 28, // ITEM_MAPLE_SUPER
rJSU = 29, // ITEM_JELLY_SUPER
rYUM = 30, // ITEM_YUMMY_MEAL
rHUL = 31, // ITEM_HONEY_ULTRA
rMUL = 32, // ITEM_MAPLE_ULTRA
rJUL = 33, // ITEM_JELLY_ULTRA
rSWS = 34, // ITEM_SWEET_SHROOM
rELP = 35, // ITEM_ELECTRO_POP
rTHR = 36, // ITEM_THUNDER_RAGE
rFIP = 37, // ITEM_FIRE_POP
rEGM = 38, // ITEM_EGG_MISSILE
rSSH = 39, // ITEM_SPECIAL_SHAKE
rCOP = 40, // ITEM_COCO_POP
rJUI = 41, // ITEM_HEALTHY_JUICE
rLIC = 42, // ITEM_LIME_CANDY
rLEC = 43, // ITEM_LEMON_CANDY
rHNC = 44, // ITEM_HONEY_CANDY
rJLP = 45, // ITEM_JELLY_POP
rPIE = 46, // ITEM_APPLE_PIE
rKOO = 47, // ITEM_KOOPASTA
rKCK = 48, // ITEM_KOOKY_COOKIE
rFFL = 49, // ITEM_FIRE_FLOWER
rSTR = 50, // ITEM_STRANGE_CAKE
RESULT_END = 51,
};
enum CookingResultQuality { enum CookingResultQuality {
QUALITY_BAD = 0, QUALITY_BAD = 0,
@ -102,242 +23,7 @@ enum CookingResultQuality {
QUALITY_ODD = 4, QUALITY_ODD = 4,
}; };
s32 CookingIngredients[] = { #include "recipes.inc.c"
[iRSH] ITEM_MUSHROOM,
[iSSH] ITEM_SUPER_SHROOM,
[iUSH] ITEM_ULTRA_SHROOM,
[iLSH] ITEM_LIFE_SHROOM,
[iVSH] ITEM_VOLT_SHROOM,
[iFFL] ITEM_FIRE_FLOWER,
[iCOC] ITEM_COCONUT,
[iLIM] ITEM_LIME,
[iLEM] ITEM_LEMON,
[iHSY] ITEM_HONEY_SYRUP,
[iMSY] ITEM_MAPLE_SYRUP,
[iJAM] ITEM_JAMMIN_JELLY,
[iAPP] ITEM_APPLE,
[iRBY] ITEM_RED_BERRY,
[iBBY] ITEM_BLUE_BERRY,
[iYBY] ITEM_YELLOW_BERRY,
[iGMN] ITEM_GOOMNUT,
[iKLF] ITEM_KOOPA_LEAF,
[iDRP] ITEM_DRIED_PASTA,
[iDRF] ITEM_DRIED_FRUIT,
[iSLF] ITEM_STRANGE_LEAF,
[iMIX] ITEM_CAKE_MIX,
[iEGG] ITEM_EGG,
[iMEL] ITEM_MELON,
[iSTK] ITEM_STINKY_HERB,
[iPOT] ITEM_ICED_POTATO,
[iDSH] ITEM_DRIED_SHROOM,
[iBUB] ITEM_BUBBLE_BERRY,
[iBMP] ITEM_WHACKAS_BUMP,
[INPUT_END] -1
};
typedef struct CookingResult {
/* 00 */ s32 quality;
/* 04 */ s32 itemID;
} CookingResult; // size = 0x8
CookingResult CookingResults[] = {
[rXXX] { QUALITY_BAD, ITEM_MISTAKE },
[rFRS] { QUALITY_OK, ITEM_FRIED_SHROOM },
[rSPS] { QUALITY_OK, ITEM_SPICY_SOUP },
[rTTN] { QUALITY_OK, ITEM_TASTY_TONIC },
[rNUT] { QUALITY_OK, ITEM_NUTTY_CAKE },
[rTEA] { QUALITY_OK, ITEM_KOOPA_TEA },
[rSPG] { QUALITY_OK, ITEM_SPAGHETTI },
[rDZD] { QUALITY_ODD, ITEM_DIZZY_DIAL },
[rBCK] { QUALITY_GOOD, ITEM_BIG_COOKIE },
[rCAK] { QUALITY_OK, ITEM_CAKE },
[rFEG] { QUALITY_OK, ITEM_FRIED_EGG },
[rBEG] { QUALITY_OK, ITEM_BOILED_EGG },
[rSOD] { QUALITY_OK, ITEM_SUPER_SODA },
[rYCK] { QUALITY_OK, ITEM_YOSHI_COOKIE },
[rDLX] { QUALITY_GREAT, ITEM_DELUXE_FEAST },
[rFZF] { QUALITY_OK, ITEM_FROZEN_FRIES },
[rPOT] { QUALITY_OK, ITEM_POTATO_SALAD },
[rHOT] { QUALITY_OK, ITEM_HOT_SHROOM },
[rBLN] { QUALITY_GOOD, ITEM_BLAND_MEAL },
[rHSH] { QUALITY_OK, ITEM_HONEY_SHROOM },
[rMSH] { QUALITY_OK, ITEM_MAPLE_SHROOM },
[rJSH] { QUALITY_OK, ITEM_JELLY_SHROOM1 },
[rLSH] { QUALITY_OK, ITEM_LIFE_SHROOM },
[rVSH] { QUALITY_OK, ITEM_VOLT_SHROOM },
[rSLS] { QUALITY_ODD, ITEM_SLEEPY_SHEEP },
[rSHC] { QUALITY_OK, ITEM_SHROOM_CAKE },
[rSHS] { QUALITY_OK, ITEM_SHROOM_STEAK },
[rHSU] { QUALITY_OK, ITEM_HONEY_SUPER },
[rMSU] { QUALITY_OK, ITEM_MAPLE_SUPER },
[rJSU] { QUALITY_OK, ITEM_JELLY_SUPER },
[rYUM] { QUALITY_GOOD, ITEM_YUMMY_MEAL },
[rHUL] { QUALITY_OK, ITEM_HONEY_ULTRA },
[rMUL] { QUALITY_OK, ITEM_MAPLE_ULTRA },
[rJUL] { QUALITY_OK, ITEM_JELLY_ULTRA },
[rSWS] { QUALITY_OK, ITEM_SWEET_SHROOM },
[rELP] { QUALITY_OK, ITEM_ELECTRO_POP },
[rTHR] { QUALITY_ODD, ITEM_THUNDER_RAGE },
[rFIP] { QUALITY_OK, ITEM_FIRE_POP },
[rEGM] { QUALITY_OK, ITEM_EGG_MISSILE },
[rSSH] { QUALITY_GOOD, ITEM_SPECIAL_SHAKE },
[rCOP] { QUALITY_OK, ITEM_COCO_POP },
[rJUI] { QUALITY_GREAT, ITEM_HEALTHY_JUICE },
[rLIC] { QUALITY_OK, ITEM_LIME_CANDY },
[rLEC] { QUALITY_OK, ITEM_LEMON_CANDY },
[rHNC] { QUALITY_OK, ITEM_HONEY_CANDY },
[rJLP] { QUALITY_OK, ITEM_JELLY_POP },
[rPIE] { QUALITY_OK, ITEM_APPLE_PIE },
[rKOO] { QUALITY_OK, ITEM_KOOPASTA },
[rKCK] { QUALITY_OK, ITEM_KOOKY_COOKIE },
[rFFL] { QUALITY_ODD, ITEM_FIRE_FLOWER },
[rSTR] { QUALITY_GOOD, ITEM_STRANGE_CAKE },
[RESULT_END] { -1, -1 },
};
s8 SingleRecipesWithoutCookbook[] = {
[iRSH] rFRS, // ITEM_MUSHROOM --> ITEM_FRIED_SHROOM
[iSSH] rFRS, // ITEM_SUPER_SHROOM --> ITEM_FRIED_SHROOM
[iUSH] rSHS, // ITEM_ULTRA_SHROOM --> ITEM_SHROOM_STEAK
[iLSH] rHOT, // ITEM_LIFE_SHROOM --> ITEM_HOT_SHROOM
[iVSH] rHOT, // ITEM_VOLT_SHROOM --> ITEM_HOT_SHROOM
[iFFL] rSPS, // ITEM_FIRE_FLOWER --> ITEM_SPICY_SOUP
[iCOC] rTTN, // ITEM_COCONUT --> ITEM_TASTY_TONIC
[iLIM] rTTN, // ITEM_LIME --> ITEM_TASTY_TONIC
[iLEM] rTTN, // ITEM_LEMON --> ITEM_TASTY_TONIC
[iHSY] rSOD, // ITEM_HONEY_SYRUP --> ITEM_SUPER_SODA
[iMSY] rSOD, // ITEM_MAPLE_SYRUP --> ITEM_SUPER_SODA
[iJAM] rSOD, // ITEM_JAMMIN_JELLY --> ITEM_SUPER_SODA
[iAPP] rSOD, // ITEM_APPLE --> ITEM_SUPER_SODA
[iRBY] rXXX, // ITEM_RED_BERRY --> ITEM_MISTAKE
[iBBY] rXXX, // ITEM_BLUE_BERRY --> ITEM_MISTAKE
[iYBY] rXXX, // ITEM_YELLOW_BERRY --> ITEM_MISTAKE
[iGMN] rNUT, // ITEM_GOOMNUT --> ITEM_NUTTY_CAKE
[iKLF] rTEA, // ITEM_KOOPA_LEAF --> ITEM_KOOPA_TEA
[iDRP] rSPG, // ITEM_DRIED_PASTA --> ITEM_SPAGHETTI
[iDRF] rXXX, // ITEM_DRIED_FRUIT --> ITEM_MISTAKE
[iSLF] rXXX, // ITEM_STRANGE_LEAF --> ITEM_MISTAKE
[iMIX] rCAK, // ITEM_CAKE_MIX --> ITEM_CAKE
[iEGG] rFEG, // ITEM_EGG --> ITEM_FRIED_EGG
[iMEL] rSSH, // ITEM_MELON --> ITEM_SPECIAL_SHAKE
[iSTK] rXXX, // ITEM_STINKY_HERB --> ITEM_MISTAKE
[iPOT] rPOT, // ITEM_ICED_POTATO --> ITEM_POTATO_SALAD
[iDSH] rXXX, // ITEM_DRIED_SHROOM --> ITEM_MISTAKE
[iBUB] rXXX, // ITEM_BUBBLE_BERRY --> ITEM_MISTAKE
[iBMP] rXXX, // ITEM_WHACKAS_BUMP --> ITEM_MISTAKE
};
// items with (*) are upgraded from ITEM_MISTAKE when using the cookbook
s8 SingleRecipesWithCookbook[] = {
[iRSH] rFRS, // ITEM_MUSHROOM --> ITEM_FRIED_SHROOM
[iSSH] rFRS, // ITEM_SUPER_SHROOM --> ITEM_FRIED_SHROOM
[iUSH] rSHS, // ITEM_ULTRA_SHROOM --> ITEM_SHROOM_STEAK
[iLSH] rHOT, // ITEM_LIFE_SHROOM --> ITEM_HOT_SHROOM
[iVSH] rHOT, // ITEM_VOLT_SHROOM --> ITEM_HOT_SHROOM
[iFFL] rSPS, // ITEM_FIRE_FLOWER --> ITEM_SPICY_SOUP
[iCOC] rTTN, // ITEM_COCONUT --> ITEM_TASTY_TONIC
[iLIM] rTTN, // ITEM_LIME --> ITEM_TASTY_TONIC
[iLEM] rTTN, // ITEM_LEMON --> ITEM_TASTY_TONIC
[iHSY] rSOD, // ITEM_HONEY_SYRUP --> ITEM_SUPER_SODA
[iMSY] rSOD, // ITEM_MAPLE_SYRUP --> ITEM_SUPER_SODA
[iJAM] rSOD, // ITEM_JAMMIN_JELLY --> ITEM_SUPER_SODA
[iAPP] rSOD, // ITEM_APPLE --> ITEM_SUPER_SODA
[iRBY] rSOD, // ITEM_RED_BERRY --> ITEM_SUPER_SODA (*)
[iBBY] rSOD, // ITEM_BLUE_BERRY --> ITEM_SUPER_SODA (*)
[iYBY] rSOD, // ITEM_YELLOW_BERRY --> ITEM_SUPER_SODA (*)
[iGMN] rNUT, // ITEM_GOOMNUT --> ITEM_NUTTY_CAKE
[iKLF] rTEA, // ITEM_KOOPA_LEAF --> ITEM_KOOPA_TEA
[iDRP] rSPG, // ITEM_DRIED_PASTA --> ITEM_SPAGHETTI
[iDRF] rXXX, // ITEM_DRIED_FRUIT --> ITEM_MISTAKE
[iSLF] rDZD, // ITEM_STRANGE_LEAF --> ITEM_DIZZY_DIAL (*)
[iMIX] rCAK, // ITEM_CAKE_MIX --> ITEM_CAKE
[iEGG] rFEG, // ITEM_EGG --> ITEM_FRIED_EGG
[iMEL] rSSH, // ITEM_MELON --> ITEM_SPECIAL_SHAKE
[iSTK] rXXX, // ITEM_STINKY_HERB --> ITEM_MISTAKE
[iPOT] rPOT, // ITEM_ICED_POTATO --> ITEM_POTATO_SALAD
[iDSH] rFRS, // ITEM_DRIED_SHROOM --> ITEM_FRIED_SHROOM (*)
[iBUB] rTTN, // ITEM_BUBBLE_BERRY --> ITEM_TASTY_TONIC (*)
[iBMP] rYUM, // ITEM_WHACKAS_BUMP --> ITEM_YUMMY_MEAL (*)
};
s8 DoubleRecipesMatrix[] = {
/* iRSH iSSH iUSH iLSH iVSH iFFL iCOC iLIM iLEM iHSY iMSY iJAM iAPP iRBY iBBY iYBY iGMN iKLF iDRP iDRF iSLF iMIX iEGG iMEL iSTK iPOT iDSH iBUB iBMP */
/* iRSH */ rXXX, rHOT, rSHS, rSHS, rHOT, rHOT, rXXX, rXXX, rXXX, rHSH, rMSH, rJSH, rXXX, rXXX, rXXX, rXXX, rVSH, rVSH, rBLN, rVSH, rVSH, rSHC, rBLN, rXXX, rXXX, rBLN, rFRS, rXXX, rXXX,
/* iSSH */ -1, rXXX, rSHS, rSHS, rHOT, rBLN, rXXX, rXXX, rXXX, rHSU, rMSU, rJSU, rXXX, rXXX, rXXX, rXXX, rLSH, rLSH, rBLN, rVSH, rLSH, rSHC, rBLN, rXXX, rXXX, rBLN, rHOT, rXXX, rXXX,
/* iUSH */ -1, -1, rXXX, rSHS, rSHS, rYUM, rXXX, rXXX, rXXX, rHUL, rMUL, rJUL, rXXX, rXXX, rXXX, rXXX, rLSH, rLSH, rYUM, rVSH, rLSH, rSWS, rYUM, rXXX, rXXX, rYUM, rSHS, rXXX, rXXX,
/* iLSH */ -1, -1, -1, rXXX, rXXX, rBLN, rXXX, rXXX, rXXX, rHSU, rMSU, rJSU, rXXX, rXXX, rXXX, rXXX, rLSH, rLSH, rBLN, rVSH, rLSH, rSWS, rBLN, rXXX, rXXX, rBLN, rSHS, rXXX, rXXX,
/* iVSH */ -1, -1, -1, -1, rXXX, rBLN, rXXX, rXXX, rXXX, rHSU, rMSU, rJSU, rXXX, rXXX, rXXX, rXXX, rLSH, rLSH, rBLN, rTHR, rDZD, rELP, rBLN, rXXX, rXXX, rBLN, rHOT, rXXX, rXXX,
/* iFFL */ -1, -1, -1, -1, -1, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, rBLN, rXXX, rXXX, rXXX, rXXX, rFIP, rEGM, rXXX, rXXX, rFZF, rFRS, rXXX, rXXX,
/* iCOC */ -1, -1, -1, -1, -1, -1, rXXX, rXXX, rXXX, rTTN, rSOD, rSSH, rSOD, rSOD, rSOD, rSOD, rXXX, rSOD, rBLN, rXXX, rXXX, rCOP, rXXX, rSOD, rXXX, rBLN, rXXX, rXXX, rXXX,
/* iLIM */ -1, -1, -1, -1, -1, -1, -1, rXXX, rSOD, rTTN, rSOD, rSSH, rSOD, rSOD, rSOD, rSOD, rXXX, rSOD, rXXX, rXXX, rXXX, rLIC, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iLEM */ -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rTTN, rSOD, rSSH, rSOD, rSOD, rSOD, rSOD, rXXX, rSOD, rXXX, rXXX, rXXX, rLEC, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iHSY */ -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rSOD, rSSH, rTTN, rTTN, rTTN, rTTN, rXXX, rSOD, rXXX, rXXX, rXXX, rHNC, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iMSY */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rSSH, rSOD, rSOD, rSOD, rSOD, rXXX, rSOD, rXXX, rXXX, rXXX, rKCK, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iJAM */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rSSH, rSSH, rSSH, rSSH, rXXX, rSOD, rXXX, rXXX, rXXX, rJLP, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iAPP */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rSOD, rSOD, rSOD, rXXX, rXXX, rXXX, rXXX, rXXX, rPIE, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iRBY */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rSOD, rSOD, rXXX, rBLN, rBLN, rXXX, rSLS, rBCK, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iBBY */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rSOD, rXXX, rBLN, rBLN, rXXX, rSLS, rBCK, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iYBY */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rXXX, rBLN, rBLN, rXXX, rSLS, rBCK, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iGMN */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rBLN, rBLN, rXXX, rBLN, rBCK, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iKLF */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rKOO, rXXX, rXXX, rKCK, rXXX, rSSH, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iDRP */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rYUM, rBLN, rXXX, rBLN, rXXX, rXXX, rBLN, rXXX, rXXX, rXXX,
/* iDRF */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rFFL, rXXX, rXXX, rXXX, rXXX, rYUM, rXXX, rXXX, rXXX,
/* iSLF */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rSTR, rBEG, rSSH, rDZD, rYUM, rXXX, rXXX, rXXX,
/* iMIX */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rBCK, rYCK, rKCK, rBLN, rXXX, rXXX, rXXX,
/* iEGG */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rXXX, rBEG, rBLN, rXXX, rXXX, rXXX,
/* iMEL */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iSTK */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rXXX, rXXX, rXXX, rXXX,
/* iPOT */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rXXX, rXXX, rXXX,
/* iDSH */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rXXX, rXXX,
/* iBUB */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX, rXXX,
/* iBMP */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, rXXX,
};
typedef struct ExtraCookingPair {
/* 00 */ s32 inputA;
/* 04 */ s32 inputB;
/* 04 */ s32 output;
} ExtraCookingPair; // size = 0x8
// additional recipes checked for inputs not included in the matrix
ExtraCookingPair ExtraDoubleRecipes[] = {
{ ITEM_SPECIAL_SHAKE, ITEM_DRIED_SHROOM, rJUI }, // --> ITEM_HEALTHY_JUICE
{ ITEM_SPECIAL_SHAKE, ITEM_STRANGE_LEAF, rJUI }, // --> ITEM_HEALTHY_JUICE
{ ITEM_SPECIAL_SHAKE, ITEM_STINKY_HERB, rJUI }, // --> ITEM_HEALTHY_JUICE
{ ITEM_POTATO_SALAD, ITEM_SPAGHETTI, rYUM }, // --> ITEM_YUMMY_MEAL
{ ITEM_POTATO_SALAD, ITEM_FRIED_SHROOM, rBLN }, // --> ITEM_BLAND_MEAL
{ ITEM_POTATO_SALAD, ITEM_HOT_SHROOM, rYUM }, // --> ITEM_YUMMY_MEAL
{ ITEM_POTATO_SALAD, ITEM_SHROOM_STEAK, rDLX }, // --> ITEM_DELUXE_FEAST
{ ITEM_STRANGE_LEAF, ITEM_WHACKAS_BUMP, rDLX }, // --> ITEM_DELUXE_FEAST
};
// when cooking a mystery, theres is a 50% chance to create ITEM_MISTAKE, and a 50% chance to select
// any one of these outcomes with equal probability
s32 MysteryResultOptions[] = {
ITEM_FIRE_FLOWER,
ITEM_TASTY_TONIC,
ITEM_SUPER_SODA,
ITEM_SLEEPY_SHEEP,
ITEM_LIFE_SHROOM,
ITEM_DIZZY_DIAL,
ITEM_VOLT_SHROOM,
ITEM_FRIED_SHROOM,
ITEM_KOOPASTA,
ITEM_SPICY_SOUP,
ITEM_KOOPA_TEA,
ITEM_SPAGHETTI,
ITEM_FRIED_EGG,
ITEM_BOILED_EGG,
ITEM_POTATO_SALAD,
ITEM_HONEY_SHROOM,
ITEM_BLAND_MEAL,
ITEM_THUNDER_RAGE,
ITEM_EGG_MISSILE,
ITEM_APPLE_PIE,
ITEM_KOOKY_COOKIE,
ITEM_BIG_COOKIE,
ITEM_SPECIAL_SHAKE,
};
API_CALLABLE(N(GetCookResultForSingleRecipe)) { API_CALLABLE(N(GetCookResultForSingleRecipe)) {
Bytecode* args = script->ptrReadPos; Bytecode* args = script->ptrReadPos;
@ -364,12 +50,12 @@ API_CALLABLE(N(GetCookResultForSingleRecipe)) {
resultQuality = 4; resultQuality = 4;
} }
} else { } else {
for (i = 0; i < INPUT_END; i++) { for (i = 0; i < NUM_INGREDIENTS; i++) {
if (CookingIngredients[i] == inputItem) { if (CookingIngredients[i] == inputItem) {
break; break;
} }
} }
if (i < INPUT_END) { if (i < NUM_INGREDIENTS) {
if (hasCookbook) { if (hasCookbook) {
i = SingleRecipesWithCookbook[i]; i = SingleRecipesWithCookbook[i];
} else { } else {
@ -400,23 +86,23 @@ API_CALLABLE(N(GetCookResultForDoubleRecipe)) {
s32 i; s32 i;
// get ingredient enum values // get ingredient enum values
for (inputIdxA = 0; inputIdxA < INPUT_END; inputIdxA++) { for (inputIdxA = 0; inputIdxA < NUM_INGREDIENTS; inputIdxA++) {
if (CookingIngredients[inputIdxA] == inputItemA) { if (CookingIngredients[inputIdxA] == inputItemA) {
break; break;
} }
} }
for (inputIdxB = 0; inputIdxB < INPUT_END; inputIdxB++) { for (inputIdxB = 0; inputIdxB < NUM_INGREDIENTS; inputIdxB++) {
if (CookingIngredients[inputIdxB] == inputItemB) { if (CookingIngredients[inputIdxB] == inputItemB) {
break; break;
} }
} }
// check the recipe matrix // check the recipe matrix
resultIdx = 0; resultIdx = 0;
if ((inputIdxA < INPUT_END) && (inputIdxB < INPUT_END)) { if ((inputIdxA < NUM_INGREDIENTS) && (inputIdxB < NUM_INGREDIENTS)) {
if (inputIdxA < inputIdxB) { if (inputIdxA < inputIdxB) {
recipeIdx = inputIdxB + (inputIdxA * INPUT_END); recipeIdx = inputIdxB + (inputIdxA * NUM_INGREDIENTS);
} else { } else {
recipeIdx = inputIdxA + (inputIdxB * INPUT_END); recipeIdx = inputIdxA + (inputIdxB * NUM_INGREDIENTS);
} }
resultIdx = DoubleRecipesMatrix[recipeIdx]; resultIdx = DoubleRecipesMatrix[recipeIdx];
} }
@ -439,71 +125,6 @@ API_CALLABLE(N(GetCookResultForDoubleRecipe)) {
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
const s32 CookableItemIDs[] = {
ITEM_SPICY_SOUP,
ITEM_APPLE_PIE,
ITEM_HONEY_ULTRA,
ITEM_MAPLE_ULTRA,
ITEM_JELLY_ULTRA,
ITEM_KOOPASTA,
ITEM_FRIED_SHROOM,
ITEM_SHROOM_CAKE,
ITEM_SHROOM_STEAK,
ITEM_HOT_SHROOM,
ITEM_SWEET_SHROOM,
ITEM_BLAND_MEAL,
ITEM_YUMMY_MEAL,
ITEM_DELUXE_FEAST,
ITEM_SPECIAL_SHAKE,
ITEM_HEALTHY_JUICE,
ITEM_BIG_COOKIE,
ITEM_CAKE,
ITEM_MISTAKE,
ITEM_KOOPA_TEA,
ITEM_HONEY_SUPER,
ITEM_MAPLE_SUPER,
ITEM_JELLY_SUPER,
ITEM_SPAGHETTI,
ITEM_EGG_MISSILE,
ITEM_FRIED_EGG,
ITEM_HONEY_SHROOM,
ITEM_HONEY_CANDY,
ITEM_ELECTRO_POP,
ITEM_FIRE_POP,
ITEM_LIME_CANDY,
ITEM_COCO_POP,
ITEM_LEMON_CANDY,
ITEM_JELLY_POP,
ITEM_STRANGE_CAKE,
ITEM_KOOKY_COOKIE,
ITEM_FROZEN_FRIES,
ITEM_POTATO_SALAD,
ITEM_NUTTY_CAKE,
ITEM_MAPLE_SHROOM,
ITEM_BOILED_EGG,
ITEM_YOSHI_COOKIE,
ITEM_JELLY_SHROOM1,
ITEM_TASTY_TONIC,
ITEM_DIZZY_DIAL,
ITEM_SUPER_SODA,
ITEM_REPEL_GEL,
ITEM_LIFE_SHROOM,
ITEM_VOLT_SHROOM,
ITEM_SLEEPY_SHEEP,
ITEM_THUNDER_RAGE,
ITEM_FIRE_FLOWER,
};
const s32 CookableDiscoveredFlags[] = {
GF_MAC02_DiscoveredRecipe_00, GF_MAC02_DiscoveredRecipe_01, GF_MAC02_DiscoveredRecipe_02, GF_MAC02_DiscoveredRecipe_03, GF_MAC02_DiscoveredRecipe_04, GF_MAC02_DiscoveredRecipe_05, GF_MAC02_DiscoveredRecipe_06, GF_MAC02_DiscoveredRecipe_07,
GF_MAC02_DiscoveredRecipe_08, GF_MAC02_DiscoveredRecipe_09, GF_MAC02_DiscoveredRecipe_0A, GF_MAC02_DiscoveredRecipe_0B, GF_MAC02_DiscoveredRecipe_0C, GF_MAC02_DiscoveredRecipe_0D, GF_MAC02_DiscoveredRecipe_0E, GF_MAC02_DiscoveredRecipe_0F,
GF_MAC02_DiscoveredRecipe_10, GF_MAC02_DiscoveredRecipe_11, GF_MAC02_DiscoveredRecipe_12, GF_MAC02_DiscoveredRecipe_13, GF_MAC02_DiscoveredRecipe_14, GF_MAC02_DiscoveredRecipe_15, GF_MAC02_DiscoveredRecipe_16, GF_MAC02_DiscoveredRecipe_17,
GF_MAC02_DiscoveredRecipe_18, GF_MAC02_DiscoveredRecipe_19, GF_MAC02_DiscoveredRecipe_1A, GF_MAC02_DiscoveredRecipe_1B, GF_MAC02_DiscoveredRecipe_1C, GF_MAC02_DiscoveredRecipe_1D, GF_MAC02_DiscoveredRecipe_1E, GF_MAC02_DiscoveredRecipe_1F,
GF_MAC02_DiscoveredRecipe_20, GF_MAC02_DiscoveredRecipe_21, GF_MAC02_DiscoveredRecipe_22, GF_MAC02_DiscoveredRecipe_23, GF_MAC02_DiscoveredRecipe_24, GF_MAC02_DiscoveredRecipe_25, GF_MAC02_DiscoveredRecipe_26, GF_MAC02_DiscoveredRecipe_27,
GF_MAC02_DiscoveredRecipe_28, GF_MAC02_DiscoveredRecipe_29, GF_MAC02_DiscoveredRecipe_2A, GF_MAC02_DiscoveredRecipe_2B, GF_MAC02_DiscoveredRecipe_2C, GF_MAC02_DiscoveredRecipe_2D, GF_MAC02_DiscoveredRecipe_2E, GF_MAC02_DiscoveredRecipe_2F,
GF_MAC02_DiscoveredRecipe_30, GF_MAC02_DiscoveredRecipe_31, GF_MAC02_DiscoveredRecipe_32, GF_MAC02_DiscoveredRecipe_33
};
API_CALLABLE(N(SetRecipeDiscovered)) { API_CALLABLE(N(SetRecipeDiscovered)) {
s32 cookedItems[ARRAY_COUNT(CookableItemIDs)]; s32 cookedItems[ARRAY_COUNT(CookableItemIDs)];
s32 cookedFlags[ARRAY_COUNT(CookableDiscoveredFlags)]; s32 cookedFlags[ARRAY_COUNT(CookableDiscoveredFlags)];

View File

@ -61,7 +61,7 @@ KootFavor N(KootFavorData)[] = {
.unlockedFlag = GF_NOK02_KootFavor04_Unlocked, .unlockedFlag = GF_NOK02_KootFavor04_Unlocked,
.gaveUpFlag = GF_NOK02_KootFavor04_GaveUp, .gaveUpFlag = GF_NOK02_KootFavor04_GaveUp,
.completeFlag = GF_NOK02_KootFavor04_Complete, .completeFlag = GF_NOK02_KootFavor04_Complete,
.requiredItem = ITEM_KOOT_LUIGIS_AUTOGRAPH, .requiredItem = ITEM_KOOT_LUIGI_AUTOGRAPH,
}, },
[KOOT_FAVOR_CH3_1] { [KOOT_FAVOR_CH3_1] {
.requestMsg = MSG_KootFavor_000F, .requestMsg = MSG_KootFavor_000F,
@ -88,7 +88,7 @@ KootFavor N(KootFavorData)[] = {
.unlockedFlag = GF_NOK02_KootFavor07_Unlocked, .unlockedFlag = GF_NOK02_KootFavor07_Unlocked,
.gaveUpFlag = GF_NOK02_KootFavor07_GaveUp, .gaveUpFlag = GF_NOK02_KootFavor07_GaveUp,
.completeFlag = GF_NOK02_KootFavor07_Complete, .completeFlag = GF_NOK02_KootFavor07_Complete,
.requiredItem = ITEM_KOOT_MERLUVLEES_AUTOGRAPH, .requiredItem = ITEM_KOOT_MERLUVLEE_AUTOGRAPH,
}, },
[KOOT_FAVOR_CH4_1] { [KOOT_FAVOR_CH4_1] {
.requestMsg = MSG_KootFavor_0018, .requestMsg = MSG_KootFavor_0018,

View File

@ -35,7 +35,7 @@ EvtScript N(EVS_MakeEntities) = {
EVT_CALL(MakeEntity, EVT_PTR(Entity_GiantChest), 180, 0, -175, -10, ITEM_NONE, MAKE_ENTITY_END) EVT_CALL(MakeEntity, EVT_PTR(Entity_GiantChest), 180, 0, -175, -10, ITEM_NONE, MAKE_ENTITY_END)
EVT_CALL(AssignChestFlag, GF_OBK04_GiantChest) EVT_CALL(AssignChestFlag, GF_OBK04_GiantChest)
EVT_CALL(AssignScript, EVT_PTR(N(EVS_OpenGiantChest))) EVT_CALL(AssignScript, EVT_PTR(N(EVS_OpenGiantChest)))
EVT_CALL(MakeItemEntity, ITEM_BOOTS2_ICON, NPC_DISPOSE_LOCATION, ITEM_SPAWN_MODE_DECORATION, 0) EVT_CALL(MakeItemEntity, ITEM_MENU_BOOTS2, NPC_DISPOSE_LOCATION, ITEM_SPAWN_MODE_DECORATION, 0)
EVT_CALL(N(SetItemAlpha)) EVT_CALL(N(SetItemAlpha))
EVT_SET(MV_KeepAwayItem, LVar0) EVT_SET(MV_KeepAwayItem, LVar0)
EVT_IF_EQ(GF_OBK04_BoardedFloor, FALSE) EVT_IF_EQ(GF_OBK04_BoardedFloor, FALSE)

View File

@ -6,6 +6,6 @@ API_CALLABLE(N(GetItemName)) {
s32 inOutVar = *args++; s32 inOutVar = *args++;
s32 itemID = evt_get_variable(script, inOutVar); s32 itemID = evt_get_variable(script, inOutVar);
evt_set_variable(script, inOutVar, LOOKUP_ITEM(itemID).nameMsg); evt_set_variable(script, inOutVar, gItemTable[itemID & ~0xF0000].nameMsg);
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }

View File

@ -4,7 +4,7 @@
EvtScript N(EVS_MakeEntities) = { EvtScript N(EVS_MakeEntities) = {
EVT_CALL(MakeEntity, EVT_PTR(Entity_HiddenYellowBlock), 660, 60, -115, 0, ITEM_THUNDER_RAGE, MAKE_ENTITY_END) EVT_CALL(MakeEntity, EVT_PTR(Entity_HiddenYellowBlock), 660, 60, -115, 0, ITEM_THUNDER_RAGE, MAKE_ENTITY_END)
EVT_CALL(AssignBlockFlag, GF_FLO17_HiddenItem_ThunderRage) EVT_CALL(AssignBlockFlag, GF_FLO17_HiddenItem_ThunderRage)
EVT_CALL(MakeItemEntity, ITEM_LETTER_TO_MINHT, -245, 0, 105, ITEM_SPAWN_MODE_FIXED_NEVER_VANISH, GF_FLO17_Item_Letter09) EVT_CALL(MakeItemEntity, ITEM_LETTER_TO_MINH_T, -245, 0, 105, ITEM_SPAWN_MODE_FIXED_NEVER_VANISH, GF_FLO17_Item_Letter09)
EVT_RETURN EVT_RETURN
EVT_END EVT_END
}; };

36
src/world_map.xml Normal file
View File

@ -0,0 +1,36 @@
<WorldMap>
<Location id="LOCATION_TOAD_TOWN" parent="LOCATION_TOAD_TOWN" requires="STORY_EPILOGUE" startX="116" startY="185" path="1,-10;1,-8;-9,-2;-8,0;-8,0;-7,-3;-5,-3"/>
<Location id="LOCATION_PEACH_CASTLE_GROUNDS" parent="LOCATION_TOAD_TOWN" requires="STORY_EPILOGUE" startX="118" startY="151" path="-1,24;1,-8;2,-7"/>
<Location id="LOCATION_SHOOTING_STAR_SUMMIT" parent="LOCATION_PEACH_CASTLE_GROUNDS" requires="STORY_CH0_BEGAN_PEACH_MISSION" startX="143" startY="134" path="-3,7;-7,4;-8,2"/>
<Location id="LOCATION_TOAD_TOWN_TUNNELS" parent="LOCATION_TOAD_TOWN" requires="STORY_NEVER" startX="100" startY="174" path=""/>
<Location id="LOCATION_GOOMBA_VILLAGE" parent="LOCATION_GOOMBA_ROAD" requires="STORY_CH0_GOOMBARIO_JOINED_PARTY" startX="36" startY="157" path=""/>
<Location id="LOCATION_GOOMBA_ROAD" parent="LOCATION_TOAD_TOWN" requires="STORY_CH0_ARRIVED_AT_TOAD_TOWN" startX="74" startY="154" path="-8,-3;-7,0;-8,1;-7,2"/>
<Location id="LOCATION_PLEASANT_PATH" parent="LOCATION_TOAD_TOWN" requires="STORY_CH1_STAR_SPRIT_DEPARTED" startX="148" startY="167" path="-9,0;-6,-1;-7,0;-8,1;-1,8"/>
<Location id="LOCATION_KOOPA_VILLAGE" parent="LOCATION_PLEASANT_PATH" requires="STORY_CH1_KOOPER_JOINED_PARTY" startX="154" startY="148" path="1,6;-3,6"/>
<Location id="LOCATION_KOOPA_BROS_FORTRESS" parent="LOCATION_PLEASANT_PATH" requires="STORY_CH1_STAR_SPRIT_DEPARTED" startX="205" startY="152" path="-7,1;-7,3;-7,3;-7,3;-7,1;-7,2;-7,0"/>
<Location id="LOCATION_MT_RUGGED" parent="LOCATION_TOAD_TOWN" requires="STORY_NEVER" startX="227" startY="243" path="-9,3;-8,0;-8,0;-9,-2;-7,-4;-7,-4;-6,-5;-5,-6;-1,-7;-3,-6;-3,-6;-7,-4;-7,0;-8,0;-8,0;-8,0;-8,0;0,-6;0,-6"/>
<Location id="LOCATION_DRY_DRY_DESERT" parent="LOCATION_MT_RUGGED" requires="STORY_CH2_UNCOVERED_DRY_DRY_RUINS" startX="266" startY="206" path="-6,5;-6,3;-8,0;-8,-4;-5,-5;-8,-3;-8,1;-5,5;-2,7;2,7;5,5;6,5;6,3"/>
<Location id="LOCATION_DRY_DRY_OUTPOST" parent="LOCATION_DRY_DRY_DESERT" requires="STORY_NEVER" startX="280" startY="191" path="-2,6;-4,4"/>
<Location id="LOCATION_DRY_DRY_RUINS" parent="LOCATION_DRY_DRY_DESERT" requires="STORY_CH2_BEGAN_PEACH_MISSION" startX="252" startY="188" path="4,6;4,5"/>
<Location id="LOCATION_FOREVER_FOREST" parent="LOCATION_TOAD_TOWN" requires="STORY_CH3_ARRIVED_AT_BOOS_MANSION" startX="187" startY="193" path="-8,-1;-10,-2;-8,-2;-9,-1;-8,-1;-10,0;-9,0"/>
<Location id="LOCATION_BOOS_MANSION" parent="LOCATION_FOREVER_FOREST" requires="STORY_CH3_UNLOCKED_GUSTY_GULCH" startX="170" startY="180" path="8,6"/>
<Location id="LOCATION_GUSTY_GULCH" parent="LOCATION_FOREVER_FOREST" requires="STORY_CH3_BEGAN_PEACH_MISSION" startX="223" startY="170" path="-7,4;-7,5;-7,4;-7,5"/>
<Location id="LOCATION_TUBBAS_MANOR" parent="LOCATION_GUSTY_GULCH" requires="STORY_CH3_BEGAN_PEACH_MISSION" startX="263" startY="156" path="-8,2;-8,3;-8,3;-8,3"/>
<Location id="LOCATION_WINDY_MILL" parent="LOCATION_GUSTY_GULCH" requires="STORY_CH3_BEGAN_PEACH_MISSION" startX="203" startY="171" path="10,-1"/>
<Location id="LOCATION_SHY_GUYS_TOYBOX" parent="LOCATION_TOAD_TOWN" requires="STORY_CH4_STAR_SPRIT_DEPARTED" startX="79" startY="173" path="6,6;6,6;8,2;7,-1"/>
<Location id="LOCATION_JADE_JUNGLE" parent="LOCATION_TOAD_TOWN" requires="STORY_CH5_ZIP_LINE_READY" startX="66" startY="289" path="11,2;11,0;11,-2;10,-3;7,-7;3,-8;0,-9;-4,-7;-9,-3;-10,-2;-9,-2;-7,-6;-2,-9;1,-9;0,-9;-8,-5;-9,-2;1,-8;9,-2;9,-2;8,-5"/>
<Location id="LOCATION_YOSHIS_VILLAGE" parent="LOCATION_JADE_JUNGLE" requires="STORY_NEVER" startX="84" startY="274" path="-9,3;-5,5"/>
<Location id="LOCATION_MT_LAVALAVA" parent="LOCATION_JADE_JUNGLE" requires="STORY_CH5_BEGAN_PEACH_MISSION" startX="47" startY="252" path="-5,6;-2,9;2,8;7,6;7,4"/>
<Location id="LOCATION_FLOWER_FIELDS" parent="LOCATION_TOAD_TOWN" requires="STORY_CH6_BEGAN_PEACH_MISSION" startX="59" startY="126" path=""/>
<Location id="LOCATION_CLOUDY_CLIMB" parent="LOCATION_FLOWER_FIELDS" requires="STORY_CH6_BEGAN_PEACH_MISSION" startX="58" startY="92" path="-3,6;0,7;5,6;1,7"/>
<Location id="LOCATION_SHIVER_CITY" parent="LOCATION_TOAD_TOWN_TUNNELS" requires="STORY_CH7_MAYOR_MURDER_SOLVED" startX="183" startY="125" path=""/>
<Location id="LOCATION_SHIVER_SNOWFIELD" parent="LOCATION_SHIVER_CITY" requires="STORY_CH7_DEFEATED_MONSTAR" startX="203" startY="126" path="-9,-2"/>
<Location id="LOCATION_STARBORN_VALLEY" parent="LOCATION_SHIVER_SNOWFIELD" requires="STORY_CH7_GOT_SNOWMAN_SCARF" startX="234" startY="128" path="-11,1;-9,-2"/>
<Location id="LOCATION_SHIVER_MOUNTAIN" parent="LOCATION_SHIVER_SNOWFIELD" requires="STORY_CH7_STAR_SPRIT_DEPARTED" startX="220" startY="112" path="-7,3;-6,5"/>
<Location id="LOCATION_CRYSTAL_PALACE" parent="LOCATION_SHIVER_MOUNTAIN" requires="STORY_CH7_STAR_SPRIT_DEPARTED" startX="223" startY="99" path="0,7"/>
<Location id="LOCATION_STAR_WAY" parent="LOCATION_SHOOTING_STAR_SUMMIT" requires="STORY_NEVER" startX="158" startY="110" path="-9,3;-8,1;-7,1;-7,4;2,6;8,3"/>
<Location id="LOCATION_STAR_HAVEN" parent="LOCATION_STAR_WAY" requires="STORY_NEVER" startX="163" startY="78" path="-3,6;2,6;8,3;6,5;-2,6;-6,3"/>
<Location id="LOCATION_BOWSERS_CASTLE" parent="LOCATION_STAR_HAVEN" requires="STORY_EPILOGUE" startX="96" startY="49" path="-6,5;-2,7;2,7;6,6;8,3;8,0;8,-3;8,-5;6,-5;7,-4;8,-1;8,3;2,8"/>
<Location id="LOCATION_PEACHS_CASTLE" parent="LOCATION_BOWSERS_CASTLE" requires="STORY_EPILOGUE" startX="88" startY="22" path="-3,7;0,6;4,7"/>
<Location id="LOCATION_MARIOS_HOUSE" parent="LOCATION_TOAD_TOWN" requires="STORY_NEVER" startX="98" startY="147" path=""/>
</WorldMap>

View File

@ -254,7 +254,27 @@ def write_ninja_rules(
ninja.rule( ninja.rule(
"icons", "icons",
command=f"$python {BUILD_TOOLS}/pm_icons.py $out $list_path $header_path $asset_stack", command=f"$python {BUILD_TOOLS}/icons.py $out $list_path $header_path $asset_stack",
)
ninja.rule(
"move_data",
command=f"$python {BUILD_TOOLS}/move_data.py $out $in",
)
ninja.rule(
"item_data",
command=f"$python {BUILD_TOOLS}/item_data.py $out $in",
)
ninja.rule(
"world_map",
command=f"$python {BUILD_TOOLS}/world_map.py $in $out",
)
ninja.rule(
"recipes",
command=f"$python {BUILD_TOOLS}/recipes.py $in $out",
) )
ninja.rule( ninja.rule(
@ -477,7 +497,7 @@ class Configure:
assert self.linker_entries is not None assert self.linker_entries is not None
built_objects = set() built_objects = set()
generated_headers = [] generated_code = []
def build( def build(
object_paths: Union[Path, List[Path]], object_paths: Union[Path, List[Path]],
@ -496,8 +516,8 @@ class Configure:
for object_path in object_paths: for object_path in object_paths:
if object_path.suffixes[-1] == ".o": if object_path.suffixes[-1] == ".o":
built_objects.add(str(object_path)) built_objects.add(str(object_path))
elif object_path.suffixes[-1] == ".h" or task == "bin_inc_c" or task == "pal_inc_c": elif object_path.suffix.endswith(".h") or object_path.suffix.endswith(".c"):
generated_headers.append(str(object_path)) generated_code.append(str(object_path))
# don't rebuild objects if we've already seen all of them # don't rebuild objects if we've already seen all of them
if not str(object_path) in skip_outputs: if not str(object_path) in skip_outputs:
@ -505,7 +525,7 @@ class Configure:
for i_output in implicit_outputs: for i_output in implicit_outputs:
if i_output.endswith(".h"): if i_output.endswith(".h"):
generated_headers.append(i_output) generated_code.append(i_output)
if needs_build: if needs_build:
skip_outputs.update(object_strs) skip_outputs.update(object_strs)
@ -516,7 +536,7 @@ class Configure:
if task == "yay0": if task == "yay0":
implicit.append(YAY0_COMPRESS_TOOL) implicit.append(YAY0_COMPRESS_TOOL)
elif task in ["cc", "cxx", "cc_modern"]: elif task in ["cc", "cxx", "cc_modern"]:
order_only.append("generated_headers_" + self.version) order_only.append("generated_code_" + self.version)
inputs = self.resolve_src_paths(src_paths) inputs = self.resolve_src_paths(src_paths)
for dir in asset_deps: for dir in asset_deps:
@ -548,6 +568,40 @@ class Configure:
}, },
) )
build(
self.build_path() / "include/world_map.inc.c",
[Path("src/world_map.xml")],
"world_map",
)
build(
self.build_path() / "include/recipes.inc.c",
[Path("src/recipes.yaml")],
"recipes",
)
build(
[
self.build_path() / "include/move_data.inc.c",
self.build_path() / "include/move_enum.h",
],
[Path("src/move_table.yaml")],
"move_data",
)
build(
[
self.build_path() / "include/item_data.inc.c",
self.build_path() / "include/item_enum.h",
],
[
Path("src/item_table.yaml"),
Path("src/item_entity_scripts.yaml"),
Path("src/item_hud_scripts.yaml"),
],
"item_data",
)
# Build objects # Build objects
for entry in self.linker_entries: for entry in self.linker_entries:
seg = entry.segment seg = entry.segment
@ -1131,7 +1185,7 @@ class Configure:
implicit=[str(self.rom_path())], implicit=[str(self.rom_path())],
) )
ninja.build("generated_headers_" + self.version, "phony", generated_headers) ninja.build("generated_code_" + self.version, "phony", generated_code)
def make_current(self, ninja: ninja_syntax.Writer): def make_current(self, ninja: ninja_syntax.Writer):
current = Path("ver/current") current = Path("ver/current")

View File

@ -1,7 +1,7 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import argparse
import re import re
import argparse
from pathlib import Path from pathlib import Path
from typing import Dict, Tuple from typing import Dict, Tuple
from common import get_asset_path from common import get_asset_path
@ -48,10 +48,10 @@ def build(out_bin: Path, in_xml: Path, out_header: Path, asset_stack: Tuple[Path
file = Icon.attrib["name"] file = Icon.attrib["name"]
if file is None: if file is None:
raise Exception("Icon os missing attribute: 'name'") raise Exception("Icon is missing attribute: 'name'")
if type is None: if type is None:
raise Exception("Icon os missing attribute: 'type'") raise Exception("Icon is missing attribute: 'type'")
name = re.sub("\\W", "_", file) name = re.sub("\\W", "_", file)

341
tools/build/item_data.py Normal file
View File

@ -0,0 +1,341 @@
#!/usr/bin/env python3
import re
import sys
import yaml
import argparse
from pathlib import Path
from typing import List, Dict
from io import TextIOWrapper
class ItemEntry:
def __init__(self, entry):
self.name = list(entry.keys())[0]
data = entry[self.name]
self.category = data.get("category", "")
self.nameMsg = data.get("nameMsg", "MSG_NONE")
self.fullDescMsg = data.get("fullDescMsg", "MSG_NONE")
self.shortDescMsg = data.get("shortDescMsg", "MSG_NONE")
self.hudElem = data.get("hudElement", "Item_Present")
self.itemEntity = data.get("itemEntity", "Placeholder")
self.icon = data.get("icon", "key/Gift")
self.sellValue = data.get("sellValue", -1)
self.sortValue = data.get("sortValue", 0)
self.targetFlags = data.get("targetFlags", [])
self.typeFlags = data.get("typeFlags", [])
self.moveID = data.get("moveID", "MOVE_NONE")
self.potencyA = data.get("potencyA", 0)
self.potencyB = data.get("potencyB", 0)
self.icon = re.sub("\\W", "_", self.icon)
def read_items_yaml(in_yaml: Path) -> List[ItemEntry]:
items: List[ItemEntry] = []
with open(in_yaml) as f:
entry_list = yaml.load(f.read(), Loader=yaml.SafeLoader)
for entry in entry_list:
items.append(ItemEntry(entry))
return items
def generate_item_table(fout: TextIOWrapper, items: List[ItemEntry], hs_map: Dict[str, int]):
fout.write("ItemData gItemTable[] = {\n")
def join_flags(flags: List[str]) -> str:
if len(flags) > 0:
joined = " | ".join(flags)
else:
joined = "0"
return joined
for idx, item in enumerate(items):
hud_elem_id = hs_map.get(item.hudElem, None)
if hud_elem_id == None:
raise Exception(f"Item {item.name} requires undefined HudScript: {item.hudElem}")
if item.hudElem.startswith("HES_"):
hud_elem_str = item.hudElem
else:
hud_elem_str = "HES_Item_" + item.hudElem
fout.write(f" {{ // 0x{idx:03X}: {item.name}\n")
fout.write(f" .nameMsg = {item.nameMsg},\n")
fout.write(f" .fullDescMsg = {item.fullDescMsg},\n")
fout.write(f" .shortDescMsg = {item.shortDescMsg},\n")
fout.write(f" .hudElemID = {hud_elem_id}, // {hud_elem_str}\n")
fout.write(f" .sellValue = {item.sellValue},\n")
fout.write(f" .sortValue = {item.sortValue},\n")
fout.write(f" .targetFlags = {join_flags(item.targetFlags)},\n")
fout.write(f" .typeFlags = {join_flags(item.typeFlags)},\n")
fout.write(f" .moveID = {item.moveID},\n")
fout.write(f" .potencyA = {item.potencyA},\n")
fout.write(f" .potencyB = {item.potencyB},\n")
fout.write(f" }},\n")
fout.write("};\n")
fout.write("\n")
def generate_item_enum(fout: TextIOWrapper, items: List[ItemEntry]):
fout.write("#ifndef ITEM_ENUM_H\n")
fout.write("#define ITEM_ENUM_H\n")
fout.write("\n")
fout.write("enum ItemIDs {\n")
item_enum: List[str] = []
for idx, item in enumerate(items):
# FireFlower -> FIRE_FLOWER
# POWBlock -> POW_BLOCK
# MagicalSeed1 -> MAGICAL_SEED1
# UnusedLetter_4 -> UNUSED_LETTER_4
# etc
name = "ITEM_" + re.sub("((?<=[a-z0-9])[A-Z]|(?!^)(?<!_)[A-Z](?=[a-z]))", r"_\1", item.name).upper()
item_enum.append(name)
fout.write(f" {name:39} = 0x{idx:03X},\n")
fout.write("};\n")
fout.write("\n")
# determine itemID ranges for each category
min_cat: Dict[str, int] = {}
max_cat: Dict[str, int] = {}
for idx, item in enumerate(items):
cat = item.category
if cat not in min_cat:
min_cat[cat] = idx
max_cat[cat] = idx
fout.write(f"#define ITEM_FIRST_KEY {item_enum[min_cat['KEY']]}\n")
fout.write(f"#define ITEM_LAST_KEY {item_enum[max_cat['KEY']]}\n")
fout.write(f"#define ITEM_FIRST_CONSUMABLE {item_enum[min_cat['CONSUMABLE']]}\n")
fout.write(f"#define ITEM_LAST_CONSUMABLE {item_enum[max_cat['CONSUMABLE']]}\n")
fout.write(f"#define ITEM_FIRST_BADGE {item_enum[min_cat['BADGE']]}\n")
fout.write(f"#define ITEM_LAST_BADGE {item_enum[max_cat['BADGE']]}\n")
fout.write("\n")
fout.write("#define ITEM_NUM_KEYS (ITEM_LAST_KEY - ITEM_FIRST_KEY + 1)\n")
fout.write("#define ITEM_NUM_CONSUMABLES (ITEM_LAST_CONSUMABLE - ITEM_FIRST_CONSUMABLE + 1)\n")
fout.write("\n")
fout.write("#define IS_ITEM(itemID) (itemID >= ITEM_FIRST_KEY && itemID <= ITEM_LAST_CONSUMABLE)\n")
fout.write("#define IS_BADGE(itemID) (itemID >= ITEM_FIRST_BADGE && itemID <= ITEM_LAST_BADGE)\n")
fout.write("\n")
fout.write("#endif // ITEM_ENUM_H\n")
class ItemHudScriptEntry:
def __init__(self, script):
self.name = script.get("name", None)
self.template = script.get("template", None)
self.icon = script.get("icon", "")
priority_str = script.get("priority", "auto")
self.pair = script.get("pair", False)
if self.name == None:
raise Exception(f"ItemHudScript is missing 'name'")
self.extern = self.name.startswith("HES_")
if self.extern:
self.full_name = self.name
else:
self.full_name = "HES_Item_" + self.name
if self.template == None and not self.extern:
raise Exception(f"{self.name} is missing 'template'")
self.icon = re.sub("\\W", "_", self.icon)
if str(priority_str).lower() == "auto":
self.priority = sys.maxsize
else:
self.priority = int(priority_str)
def read_hud_scripts_yaml(in_yaml: Path) -> List[ItemHudScriptEntry]:
scripts: List[ItemHudScriptEntry] = []
with open(in_yaml) as f:
entry_list = yaml.load(f.read(), Loader=yaml.SafeLoader)
for entry in entry_list:
scripts.append(ItemHudScriptEntry(entry))
return scripts
def generate_hud_scripts(fout: TextIOWrapper, hud_scripts: List[ItemHudScriptEntry]):
for entry in hud_scripts:
# do not generate scripts for entries defined externally
if entry.extern:
continue
fout.write(f"HudScript {entry.full_name} = HES_TEMPLATE_{entry.template}({entry.icon});\n")
if entry.pair:
fout.write(
f"HudScript {entry.full_name}_disabled = HES_TEMPLATE_{entry.template}({entry.icon}_disabled);\n"
)
# there is no item for these scripts, just generate them after the coin script
if entry.name == "Coin":
fout.write("HudScript HES_Item_CoinSparkleA = HES_COIN_SPARKLE(-8, 0);\n")
fout.write("HudScript HES_Item_CoinSparkleB = HES_COIN_SPARKLE( 8, 8);\n")
fout.write("HudScript HES_Item_CoinSparkleC = HES_COIN_SPARKLE(-4, 8);\n")
fout.write("HudScript HES_Item_CoinSparkleD = HES_COIN_SPARKLE( 6, -6);\n")
fout.write("HudScript HES_Item_CoinSparkleE = HES_COIN_SPARKLE( 1, -8);\n")
fout.write("HudScript HES_Item_CoinSparkleRandom = HES_TEMPLATE_COIN_SPARKLE();\n")
elif entry.name == "StarPoint":
fout.write("HudScript HES_Item_SmallStarPoint = HES_TEMPLATE_SMALL_STAR_POINT();\n")
fout.write("\n")
fout.write("s32 pad_after_item_hudscripts[] = { 0, 0 };\n")
fout.write("\n")
def generate_hud_scripts_table(fout: TextIOWrapper, hud_scripts: List[ItemHudScriptEntry]):
for entry in hud_scripts:
if entry.extern:
fout.write(f"extern HudScript {entry.full_name};\n")
if entry.pair:
fout.write(f"extern HudScript {entry.full_name}_disabled;\n")
fout.write("\n")
fout.write("IconHudScriptPair gItemHudScripts[] = {\n")
fout.write(" { .enabled = NULL, .disabled = NULL },\n") # array index 0 is always NULL
for entry in hud_scripts:
if entry.pair:
fout.write(f" {{ .enabled = &{entry.full_name}, .disabled = &{entry.full_name}_disabled }},\n")
else:
fout.write(f" {{ .enabled = &{entry.full_name}, .disabled = &{entry.full_name} }},\n")
fout.write("};\n")
fout.write("\n")
def generate_item_entity_scripts(fout: TextIOWrapper, ies_yaml: Path):
with open(ies_yaml) as f:
scripts = yaml.load(f.read(), Loader=yaml.SafeLoader)
for script in scripts:
name = script.get("name", None)
template = script.get("template", None)
icon = script.get("icon", None)
if name is None:
raise Exception("Item entity script is missing 'name'")
if template is None:
raise Exception(f"{name} is missing 'template'")
if icon is None:
icon = ""
else:
icon = re.sub("\\W", "_", icon)
fout.write(f"ItemScript IES_{name} = IES_TEMPLATE_{template}({icon});\n")
fout.write("\n")
def generate_item_entity_scripts_table(fout: TextIOWrapper, items: List[ItemEntry]):
fout.write("// indexed by itemID\n")
fout.write("s32* gItemEntityScripts[] = {\n")
idx = 0
for item in items:
fout.write(f" IES_{item.itemEntity},\n")
idx += 1
# must pad with IES_Placeholder to match
while idx <= 0x180:
fout.write(f" IES_{items[0].itemEntity},\n")
idx += 1
fout.write("};\n")
fout.write("\n")
def generate_item_icon_tables(fout: TextIOWrapper, items: List[ItemEntry]):
# note: DUMMY items have no icon rasters or palettes
fout.write("// indexed by itemID\n")
fout.write("s32 gItemIconRasterOffsets[] = {\n")
for item in items:
if item.category != "DUMMY":
fout.write(f" ICON_{item.icon}_raster,\n")
fout.write("};\n")
fout.write("\n")
fout.write("// indexed by itemID\n")
fout.write("s32 gItemIconPaletteOffsets[] = {\n")
for item in items:
if item.category != "DUMMY":
fout.write(f" ICON_{item.icon}_palette,\n")
fout.write("};\n")
fout.write("\n")
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Generates item table")
parser.add_argument("out_data", help="output header file to generate containing the data")
parser.add_argument("out_enum", help="output header file to generate containing the enum")
parser.add_argument("items_yaml", type=Path, help="input yaml file path")
parser.add_argument("ies_yaml", type=Path, help="input yaml file path for item entity scripts")
parser.add_argument("hes_yaml", type=Path, help="input yaml file path for item hud element scripts")
args = parser.parse_args()
items = read_items_yaml(args.items_yaml)
hud_scripts = read_hud_scripts_yaml(args.hes_yaml)
# sort items by category
CATEGORY_ORDER = {
"NONE": 0,
"GEAR": 1,
"QUEST": 2,
"KEY": 3,
"CONSUMABLE": 4,
"UNUSED": 5,
"BADGE": 6,
"UTILITY": 7,
"DUMMY": 1000, # must always be at the end of the item table
}
items.sort(key=lambda x: CATEGORY_ORDER.get(x.category, 999))
with open(args.out_data, "w") as fout:
fout.write("/* This file is auto-generated. Do not edit. */\n")
fout.write('#include "common.h"\n')
fout.write('#include "message_ids.h"\n')
fout.write('#include "hud_element.h"\n')
fout.write('#include "item_entity.h"\n')
fout.write('#include "icon_offsets.h"\n')
fout.write("\n")
generate_hud_scripts(fout, hud_scripts)
# after writing the hud script sources, sort them according to table order
hud_scripts.sort(key=lambda x: x.priority)
# get hudElemID for each hud element
hs_map: Dict[str, int] = {}
for idx, hs in enumerate(hud_scripts):
hs_map[hs.name] = idx + 1
generate_item_table(fout, items, hs_map)
generate_hud_scripts_table(fout, hud_scripts)
generate_item_entity_scripts(fout, args.ies_yaml)
generate_item_entity_scripts_table(fout, items)
generate_item_icon_tables(fout, items)
with open(args.out_enum, "w") as fout:
fout.write("/* This file is auto-generated. Do not edit. */\n")
fout.write("\n")
generate_item_enum(fout, items)

111
tools/build/move_data.py Normal file
View File

@ -0,0 +1,111 @@
#!/usr/bin/env python3
import re
import yaml
import argparse
from pathlib import Path
from typing import List
from io import TextIOWrapper
class MoveEntry:
def __init__(self, entry):
self.name = list(entry.keys())[0]
data = entry[self.name]
self.nameMsg = data.get("nameMsg", "MSG_NONE")
self.fullDescMsg = data.get("fullDescMsg", "MSG_NONE")
self.shortDescMsg = data.get("shortDescMsg", "MSG_NONE")
self.flags = data.get("flags", [])
self.category = data.get("category", "")
self.actionTip = data.get("actionTip", "")
self.costFP = data.get("costFP", 0)
self.costBP = data.get("costBP", 0)
def read_moves_yaml(in_yaml: Path) -> List[MoveEntry]:
items: List[MoveEntry] = []
with open(in_yaml) as f:
entry_list = yaml.load(f.read(), Loader=yaml.SafeLoader)
for entry in entry_list:
items.append(MoveEntry(entry))
return items
def generate_move_table(fout: TextIOWrapper, moves: List[MoveEntry]):
fout.write("MoveData gMoveTable[] = {\n")
def join_flags(flags: List[str]) -> str:
if len(flags) > 0:
joined = " | ".join(flags)
else:
joined = "0"
return joined
for idx, move in enumerate(moves):
fout.write(f" {{ // 0x{idx:02X}: {move.name}\n")
fout.write(f" .nameMsg = {move.nameMsg},\n")
fout.write(f" .fullDescMsg = {move.fullDescMsg},\n")
fout.write(f" .shortDescMsg = {move.shortDescMsg},\n")
fout.write(f" .flags = {join_flags(move.flags)},\n")
fout.write(f" .category = {move.category},\n")
fout.write(f" .actionTip = {move.actionTip},\n")
fout.write(f" .costFP = {move.costFP},\n")
fout.write(f" .costBP = {move.costBP},\n")
fout.write(f" }},\n")
fout.write("};\n")
fout.write("\n")
def generate_move_enum(fout: TextIOWrapper, moves: List[MoveEntry]):
fout.write("#ifndef MOVE_ENUM_H\n")
fout.write("#define MOVE_ENUM_H\n")
fout.write("\n")
fout.write("enum MoveIDs {\n")
item_enum: List[str] = []
for idx, move in enumerate(moves):
if re.match(r"Unused_(?:Hammer_)?([0-9A-F]{2})", move.name):
name = "MOVE_" + move.name.upper()
else:
name = "MOVE_" + re.sub("((?<=[a-z0-9])[A-Z]|(?!^)(?<!_)[A-Z](?=[a-z]))", r"_\1", move.name).upper()
item_enum.append(name)
fout.write(f" {name:39} = 0x{idx:03X},\n")
fout.write("};\n")
fout.write("\n")
fout.write("#define STAR_POWER_INDEX(x) (x - MOVE_FOCUS)\n")
fout.write("\n")
fout.write("#endif // MOVE_ENUM_H\n")
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Generates item table")
parser.add_argument("out_data", help="output header file to generate containing the data")
parser.add_argument("out_enum", help="output header file to generate containing the enum")
parser.add_argument("moves_yaml", type=Path, help="input yaml file path")
args = parser.parse_args()
moves = read_moves_yaml(args.moves_yaml)
with open(args.out_data, "w") as fout:
fout.write("/* This file is auto-generated. Do not edit. */\n")
fout.write('#include "common.h"\n')
fout.write('#include "message_ids.h"\n')
fout.write("\n")
generate_move_table(fout, moves)
with open(args.out_enum, "w") as fout:
fout.write("/* This file is auto-generated. Do not edit. */\n")
fout.write("\n")
generate_move_enum(fout, moves)

172
tools/build/recipes.py Normal file
View File

@ -0,0 +1,172 @@
#!/usr/bin/env python3
import yaml
import argparse
from pathlib import Path
from typing import List, Dict
class DoubleRecipe:
def __init__(self, entry: List[str], order: Dict[str, int]):
order0 = order.get(entry[0], 99999)
order1 = order.get(entry[1], 99999)
if order0 <= order1 or order0 == 99999 or order1 == 99999:
self.i = order0
self.j = order1
self.in1 = entry[0]
self.in2 = entry[1]
else:
self.i = order1
self.j = order0
self.in1 = entry[1]
self.in2 = entry[0]
self.result = entry[2]
self.used = False
def generate(in_yaml: Path, out_c: Path):
with open(in_yaml) as f:
data = yaml.load(f.read(), Loader=yaml.SafeLoader)
products = data["Products"]
mystery_products = data["MysteryProducts"]
single_recipes = data["SingleRecipes"]
double_recipes = data["DoubleRecipes"]
records = data["CookingRecords"]
dim = len(single_recipes)
input_idx: Dict[str, int] = {}
for idx, entry in enumerate(single_recipes):
input_idx[entry[0]] = idx
product_idx: Dict[str, int] = {}
for idx, entry in enumerate(products):
product_idx[entry[0]] = idx
for recipe in single_recipes:
if len(recipe) != 2 and len(recipe) != 3:
raise Exception(f"Invaid format for ExtraDoubleRecipe: {str(recipe)}")
if not recipe[1] in product_idx:
raise Exception(f"Product {recipe[1]} for SingleRecipe {recipe[0]} not listed in Products")
if len(recipe) == 3 and not recipe[2] in product_idx:
raise Exception(f"Product {recipe[2]} for SingleRecipe {recipe[0]} not listed in Products")
# double recipes with inputs not found in SingleRecipes are automatically treated as an ExtraDoubleRecipe
for recipe in double_recipes:
if len(recipe) != 3:
raise Exception(f"Invaid format for ExtraDoubleRecipe: {str(recipe)}")
# if not recipe[0] in input_idx:
# raise Exception(f"Ingredient {recipe[0]} for DoubleRecipe ({recipe[0]}, {recipe[1]}) not listed in SingleRecipes")
# if not recipe[1] in input_idx:
# raise Exception(f"Ingredient {recipe[1]} for DoubleRecipe ({recipe[0]}, {recipe[1]}) not listed in SingleRecipes")
if not recipe[2] in product_idx:
raise Exception(f"Product {recipe[2]} for DoubleRecipe ({recipe[0]}, {recipe[1]}) not listed in Products")
# for recipe in extra_recipes:
# if len(recipe) != 3:
# raise Exception(f"Invaid format for ExtraDoubleRecipe: {str(recipe)}")
# if not recipe[2] in product_idx:
# raise Exception(f"Product {recipe[2]} for ExtraDoubleRecipe ({recipe[0]}, {recipe[1]}) not listed in Products")
with open(out_c, "w") as f:
f.write("/* This file is auto-generated. Do not edit. */\n\n")
f.write('#include "common.h"\n\n')
f.write(f"#define NUM_INGREDIENTS {dim}\n\n")
f.write("s32 CookingIngredients[] = {\n")
for recipe in single_recipes:
f.write(f" {recipe[0]},\n")
f.write(" -1,\n")
f.write("};\n\n")
f.write("CookingResult CookingResults[] = {\n")
for product in products:
f.write(f" {{ {product[1] + ',':15} {product[0]} }},\n")
f.write(" { -1, -1 },\n")
f.write("};\n\n")
f.write("s8 SingleRecipesWithoutCookbook[] = {\n")
for recipe in single_recipes:
f.write(f" {product_idx[recipe[1]]:-2}, // {recipe[0]:20} --> {recipe[1]}\n")
f.write("};\n\n")
f.write("s8 SingleRecipesWithCookbook[] = {\n")
for recipe in single_recipes:
if len(recipe) == 3:
f.write(f" {product_idx[recipe[2]]:-2}, // {recipe[0]:20} --> {recipe[2]}\n")
else:
f.write(f" {product_idx[recipe[1]]:-2}, // {recipe[0]:20} --> {recipe[1]}\n")
f.write("};\n\n")
recipe_map: Dict[int, DoubleRecipe] = {}
recipe_list: List[DoubleRecipe] = []
def combine_ids(i, j):
return i * dim + j
for entry in double_recipes:
r = DoubleRecipe(entry, input_idx)
if r.i < 99999 and r.j < 99999:
id_pair = combine_ids(r.i, r.j)
if id_pair in recipe_map:
raise Exception(f"Duplicate recipe for {r.in1} and {r.in2} in DoubleRecipes")
recipe_map[id_pair] = r
recipe_list.append(r)
f.write("s8 DoubleRecipesMatrix[] = {\n")
for i in range(0, dim):
f.write(" ")
for j in range(0, dim):
if j < i:
# ignore lower diagonal
id = -1
elif combine_ids(i, j) in recipe_map:
# recipe is defined, get product id
recipe = recipe_map[combine_ids(i, j)]
# this special combination COULD be defined in the matrix, but isn't in vanilla
# so we need to grant it a special exception, forcing it to generate in ExtraDoubleRecipes
if recipe.in1 == "ITEM_STRANGE_LEAF" and recipe.in2 == "ITEM_WHACKAS_BUMP":
id = 0
else:
id = product_idx[recipe.result]
recipe.used = True
else:
# no recipe for this (i,j) -> default to ITEM_MISTAKE
id = 0
f.write(f" {id:-2},")
f.write("\n")
f.write("};\n\n")
f.write("ExtraCookingPair ExtraDoubleRecipes[] = {\n")
# for entry in extra_recipes:
# f.write(f" {{ {entry[0]}, {entry[1]}, {product_idx[entry[2]]} }},\n")
for entry in recipe_list:
if not entry.used:
f.write(f" {{ {entry.in1}, {entry.in2}, {product_idx[entry.result]} }},\n")
f.write("};\n\n")
f.write("s32 MysteryResultOptions[] = {\n")
for product in mystery_products:
f.write(f" {product},\n")
f.write("};\n\n")
f.write("const s32 CookableItemIDs[] = {\n")
for rec in records:
f.write(f" {rec[0]},\n")
f.write("};\n\n")
f.write("const s32 CookableDiscoveredFlags[] = {\n")
for rec in records:
f.write(f" {rec[1]},\n")
f.write("};\n\n")
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Generates Tayce T cooking data")
parser.add_argument("in_yaml", type=Path, help="input yaml file path")
parser.add_argument("out", help="output file to generate")
args = parser.parse_args()
generate(args.in_yaml, args.out)

86
tools/build/world_map.py Normal file
View File

@ -0,0 +1,86 @@
#!/usr/bin/env python3
import argparse
from pathlib import Path
from typing import List, Dict
import xml.etree.ElementTree as ET
def get_required_attrib(elem: ET.Element, attrib: str) -> str:
value = elem.attrib.get(attrib, None)
if value == None:
raise Exception(f"{elem.tag} is missing attribute: '{attrib}'")
return str(value)
class WorldMapEntry:
def __init__(self, elem: ET.Element):
self.location = get_required_attrib(elem, "id")
self.parent = get_required_attrib(elem, "parent")
self.requires = get_required_attrib(elem, "requires")
self.startX = get_required_attrib(elem, "startX")
self.startY = get_required_attrib(elem, "startY")
path_str = get_required_attrib(elem, "path")
self.path = []
if path_str != "":
for i in path_str.split(";"):
self.path.append(i.split(","))
def generate(in_xml: Path, out_c: Path):
xml = ET.parse(in_xml)
ScriptList = xml.getroot()
with open(out_c, "w") as f:
f.write("#ifndef WORLD_MAP_H\n")
f.write("#define WORLD_MAP_H\n")
f.write("/* This file is auto-generated. Do not edit. */\n\n")
f.write('#include "common.h"\n\n')
locations: List[WorldMapEntry] = []
for elem in ScriptList.findall("Location"):
locations.append(WorldMapEntry(elem))
loc_to_idx: Dict[str, int] = {}
for idx, loc in enumerate(locations):
loc_to_idx[loc.location] = idx
# write paths
# note: len(locations) = 34, will only match if hardcoded to 32 here
f.write("Vec2b PauseMapPaths[][32] = {\n")
for loc in locations:
f.write(" { ")
for point in loc.path:
f.write(f"{{ {point[0]}, {point[1]} }}, ")
f.write("},\n")
f.write("};\n\n")
# write locations
f.write("PauseMapSpace PauseMapSpaces[] = {\n")
for idx, loc in enumerate(locations):
if loc.parent not in loc_to_idx:
raise Exception(f"{loc.parent} is not defined")
f.write(
f" {{ .id = {loc.location}, .parent = {loc_to_idx[loc.parent]}, .afterRequirement = {loc.requires}, "
+ f".pos = {{ .x = {loc.startX}, .y = {loc.startY} }}, "
+ f".pathLength = {len(loc.path)}, .path = PauseMapPaths[{idx}] }},\n"
)
f.write("};\n")
f.write("\n#endif // WORLD_MAP_H\n")
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Generates world map data")
parser.add_argument("in_xml", type=Path, help="input xml file path")
parser.add_argument("header_path", help="output header file to generate")
args = parser.parse_args()
generate(args.in_xml, args.header_path)

View File

@ -1,24 +1,24 @@
# valid icon types are: # valid icon types are:
# single ci4 image followed by one palette # solo ci4 image followed by one palette
# pair ci4 image followed by two palettes; the second will be called .disabled # pair ci4 image followed by two palettes; the second will be called .disabled
# rgba16 rgba image; used by one strange entry # rgba16 rgba image; used by one strange entry
- [solo, key/Gift, 32, 32] - [solo, key/Gift, 32, 32]
- [solo, key/CakeDone, 32, 32] - [solo, key/CakeDone, 32, 32]
- [solo, key/CakeBaked, 32, 32] - [solo, key/CakeBare, 32, 32]
- [solo, key/CakePan, 32, 32] - [solo, key/CakePan, 32, 32]
- [solo, key/CakeBatter, 32, 32] - [solo, key/CakeBatter, 32, 32]
- [solo, key/CakeBowl, 32, 32] - [solo, key/CakeBowl, 32, 32]
- [solo, key/CakeMix, 32, 32] - [solo, key/CakeMixed, 32, 32]
- [solo, key/CakeIcing, 32, 32] - [solo, key/CakeWithIcing, 32, 32]
- [solo, key/CakeBerries, 32, 32] - [solo, key/CakeWithBerries, 32, 32]
- [solo, key/gear_boots_1, 32, 32] - [solo, gear/boots_1, 32, 32]
- [solo, key/gear_boots_2, 32, 32] - [solo, gear/boots_2, 32, 32]
- [solo, key/gear_boots_3, 32, 32] - [solo, gear/boots_3, 32, 32]
- [solo, key/gear_hammer_1, 32, 32] - [solo, gear/hammer_1, 32, 32]
- [solo, key/gear_hammer_2, 32, 32] - [solo, gear/hammer_2, 32, 32]
- [solo, key/gear_hammer_3, 32, 32] - [solo, gear/hammer_3, 32, 32]
- [solo, key/gear_lucky_star, 32, 32] - [solo, gear/lucky_star, 32, 32]
- [solo, key/map, 32, 32] - [solo, key/map, 32, 32]
- [pair, food/SpicySoup, 32, 32] - [pair, food/SpicySoup, 32, 32]
- [pair, food/ApplePie, 32, 32] - [pair, food/ApplePie, 32, 32]
@ -338,13 +338,13 @@
- [solo, hud/coin, 24, 24] - [solo, hud/coin, 24, 24]
- [solo, hud/heart_container, 24, 24] - [solo, hud/heart_container, 24, 24]
- [solo, hud/star_point, 24, 24] - [solo, hud/star_point, 24, 24]
- [pair, Hammer1, 32, 32] - [pair, menu/hammer_1, 32, 32]
- [pair, Hammer2, 32, 32] - [pair, menu/hammer_2, 32, 32]
- [pair, Hammer3, 32, 32] - [pair, menu/hammer_3, 32, 32]
- [pair, Boots1, 32, 32] - [pair, menu/boots_1, 32, 32]
- [pair, Boots2, 32, 32] - [pair, menu/boots_2, 32, 32]
- [pair, Boots3, 32, 32] - [pair, menu/boots_3, 32, 32]
- [pair, Items, 32, 32] - [pair, menu/items, 32, 32]
- [solo, anim/hp_0, 32, 32] - [solo, anim/hp_0, 32, 32]
- [solo, anim/hp_1, 32, 32] - [solo, anim/hp_1, 32, 32]
- [solo, anim/hp_2, 32, 32] - [solo, anim/hp_2, 32, 32]

View File

@ -6327,9 +6327,9 @@
- [0x23, 0x009D, ItemShortDesc_Refund] - [0x23, 0x009D, ItemShortDesc_Refund]
- [0x23, 0x009E, ItemShortDesc_ISpy] - [0x23, 0x009E, ItemShortDesc_ISpy]
- [0x23, 0x009F, ItemShortDesc_Peekaboo] - [0x23, 0x009F, ItemShortDesc_Peekaboo]
- [0x23, 0x00A0, ItemShortDesc_Jump] - [0x23, 0x00A0, ItemShortDesc_Boots]
- [0x23, 0x00A1, ItemShortDesc_SpinJump] - [0x23, 0x00A1, ItemShortDesc_SuperBoots]
- [0x23, 0x00A2, ItemShortDesc_TornadoJump] - [0x23, 0x00A2, ItemShortDesc_UltraBoots]
- [0x23, 0x00A3, ItemShortDesc_Hammer] - [0x23, 0x00A3, ItemShortDesc_Hammer]
- [0x23, 0x00A4, ItemShortDesc_SuperHammer] - [0x23, 0x00A4, ItemShortDesc_SuperHammer]
- [0x23, 0x00A5, ItemShortDesc_UltraHammer] - [0x23, 0x00A5, ItemShortDesc_UltraHammer]
@ -6595,9 +6595,9 @@
- [0x24, 0x009D, ItemShopDesc_Refund] - [0x24, 0x009D, ItemShopDesc_Refund]
- [0x24, 0x009E, ItemShopDesc_ISpy] - [0x24, 0x009E, ItemShopDesc_ISpy]
- [0x24, 0x009F, ItemShopDesc_Peekaboo] - [0x24, 0x009F, ItemShopDesc_Peekaboo]
- [0x24, 0x00A0, ItemShopDesc_Jump] - [0x24, 0x00A0, ItemShopDesc_Boots]
- [0x24, 0x00A1, ItemShopDesc_SpinJump] - [0x24, 0x00A1, ItemShopDesc_SuperBoots]
- [0x24, 0x00A2, ItemShopDesc_TornadoJump] - [0x24, 0x00A2, ItemShopDesc_UltraBoots]
- [0x24, 0x00A3, ItemShopDesc_Hammer] - [0x24, 0x00A3, ItemShopDesc_Hammer]
- [0x24, 0x00A4, ItemShopDesc_SuperHammer] - [0x24, 0x00A4, ItemShopDesc_SuperHammer]
- [0x24, 0x00A5, ItemShopDesc_UltraHammer] - [0x24, 0x00A5, ItemShopDesc_UltraHammer]
@ -6863,9 +6863,9 @@
- [0x25, 0x009D, ItemFullDesc_Refund] - [0x25, 0x009D, ItemFullDesc_Refund]
- [0x25, 0x009E, ItemFullDesc_ISpy] - [0x25, 0x009E, ItemFullDesc_ISpy]
- [0x25, 0x009F, ItemFullDesc_Peekaboo] - [0x25, 0x009F, ItemFullDesc_Peekaboo]
- [0x25, 0x00A0, ItemFullDesc_Jump] - [0x25, 0x00A0, ItemFullDesc_Boots]
- [0x25, 0x00A1, ItemFullDesc_SpinJump] - [0x25, 0x00A1, ItemFullDesc_SuperBoots]
- [0x25, 0x00A2, ItemFullDesc_TornadoJump] - [0x25, 0x00A2, ItemFullDesc_UltraBoots]
- [0x25, 0x00A3, ItemFullDesc_Hammer] - [0x25, 0x00A3, ItemFullDesc_Hammer]
- [0x25, 0x00A4, ItemFullDesc_SuperHammer] - [0x25, 0x00A4, ItemFullDesc_SuperHammer]
- [0x25, 0x00A5, ItemFullDesc_UltraHammer] - [0x25, 0x00A5, ItemFullDesc_UltraHammer]
@ -7131,9 +7131,9 @@
- [0x26, 0x009D, ItemName_Refund] - [0x26, 0x009D, ItemName_Refund]
- [0x26, 0x009E, ItemName_ISpy] - [0x26, 0x009E, ItemName_ISpy]
- [0x26, 0x009F, ItemName_Peekaboo] - [0x26, 0x009F, ItemName_Peekaboo]
- [0x26, 0x00A0, ItemName_Jump] - [0x26, 0x00A0, ItemName_Boots]
- [0x26, 0x00A1, ItemName_SpinJump] - [0x26, 0x00A1, ItemName_SuperBoots]
- [0x26, 0x00A2, ItemName_TornadoJump] - [0x26, 0x00A2, ItemName_UltraBoots]
- [0x26, 0x00A3, ItemName_Hammer] - [0x26, 0x00A3, ItemName_Hammer]
- [0x26, 0x00A4, ItemName_SuperHammer] - [0x26, 0x00A4, ItemName_SuperHammer]
- [0x26, 0x00A5, ItemName_UltraHammer] - [0x26, 0x00A5, ItemName_UltraHammer]

View File

@ -6379,9 +6379,9 @@
- [0x23, 0x009D, ItemShortDesc_Refund] - [0x23, 0x009D, ItemShortDesc_Refund]
- [0x23, 0x009E, ItemShortDesc_ISpy] - [0x23, 0x009E, ItemShortDesc_ISpy]
- [0x23, 0x009F, ItemShortDesc_Peekaboo] - [0x23, 0x009F, ItemShortDesc_Peekaboo]
- [0x23, 0x00A0, ItemShortDesc_Jump] - [0x23, 0x00A0, ItemShortDesc_Boots]
- [0x23, 0x00A1, ItemShortDesc_SpinJump] - [0x23, 0x00A1, ItemShortDesc_SuperBoots]
- [0x23, 0x00A2, ItemShortDesc_TornadoJump] - [0x23, 0x00A2, ItemShortDesc_UltraBoots]
- [0x23, 0x00A3, ItemShortDesc_Hammer] - [0x23, 0x00A3, ItemShortDesc_Hammer]
- [0x23, 0x00A4, ItemShortDesc_SuperHammer] - [0x23, 0x00A4, ItemShortDesc_SuperHammer]
- [0x23, 0x00A5, ItemShortDesc_UltraHammer] - [0x23, 0x00A5, ItemShortDesc_UltraHammer]
@ -6647,9 +6647,9 @@
- [0x24, 0x009D, ItemShopDesc_Refund] - [0x24, 0x009D, ItemShopDesc_Refund]
- [0x24, 0x009E, ItemShopDesc_ISpy] - [0x24, 0x009E, ItemShopDesc_ISpy]
- [0x24, 0x009F, ItemShopDesc_Peekaboo] - [0x24, 0x009F, ItemShopDesc_Peekaboo]
- [0x24, 0x00A0, ItemShopDesc_Jump] - [0x24, 0x00A0, ItemShopDesc_Boots]
- [0x24, 0x00A1, ItemShopDesc_SpinJump] - [0x24, 0x00A1, ItemShopDesc_SuperBoots]
- [0x24, 0x00A2, ItemShopDesc_TornadoJump] - [0x24, 0x00A2, ItemShopDesc_UltraBoots]
- [0x24, 0x00A3, ItemShopDesc_Hammer] - [0x24, 0x00A3, ItemShopDesc_Hammer]
- [0x24, 0x00A4, ItemShopDesc_SuperHammer] - [0x24, 0x00A4, ItemShopDesc_SuperHammer]
- [0x24, 0x00A5, ItemShopDesc_UltraHammer] - [0x24, 0x00A5, ItemShopDesc_UltraHammer]
@ -6915,9 +6915,9 @@
- [0x25, 0x009D, ItemFullDesc_Refund] - [0x25, 0x009D, ItemFullDesc_Refund]
- [0x25, 0x009E, ItemFullDesc_ISpy] - [0x25, 0x009E, ItemFullDesc_ISpy]
- [0x25, 0x009F, ItemFullDesc_Peekaboo] - [0x25, 0x009F, ItemFullDesc_Peekaboo]
- [0x25, 0x00A0, ItemFullDesc_Jump] - [0x25, 0x00A0, ItemFullDesc_Boots]
- [0x25, 0x00A1, ItemFullDesc_SpinJump] - [0x25, 0x00A1, ItemFullDesc_SuperBoots]
- [0x25, 0x00A2, ItemFullDesc_TornadoJump] - [0x25, 0x00A2, ItemFullDesc_UltraBoots]
- [0x25, 0x00A3, ItemFullDesc_Hammer] - [0x25, 0x00A3, ItemFullDesc_Hammer]
- [0x25, 0x00A4, ItemFullDesc_SuperHammer] - [0x25, 0x00A4, ItemFullDesc_SuperHammer]
- [0x25, 0x00A5, ItemFullDesc_UltraHammer] - [0x25, 0x00A5, ItemFullDesc_UltraHammer]
@ -7183,9 +7183,9 @@
- [0x26, 0x009D, ItemName_Refund] - [0x26, 0x009D, ItemName_Refund]
- [0x26, 0x009E, ItemName_ISpy] - [0x26, 0x009E, ItemName_ISpy]
- [0x26, 0x009F, ItemName_Peekaboo] - [0x26, 0x009F, ItemName_Peekaboo]
- [0x26, 0x00A0, ItemName_Jump] - [0x26, 0x00A0, ItemName_Boots]
- [0x26, 0x00A1, ItemName_SpinJump] - [0x26, 0x00A1, ItemName_SuperBoots]
- [0x26, 0x00A2, ItemName_TornadoJump] - [0x26, 0x00A2, ItemName_UltraBoots]
- [0x26, 0x00A3, ItemName_Hammer] - [0x26, 0x00A3, ItemName_Hammer]
- [0x26, 0x00A4, ItemName_SuperHammer] - [0x26, 0x00A4, ItemName_SuperHammer]
- [0x26, 0x00A5, ItemName_UltraHammer] - [0x26, 0x00A5, ItemName_UltraHammer]

View File

@ -1154,8 +1154,8 @@ glabel msg_copy_to_print_buffer
/* BA694 801237B4 0280202D */ daddu $a0, $s4, $zero /* BA694 801237B4 0280202D */ daddu $a0, $s4, $zero
.LIQUE_801237B8: .LIQUE_801237B8:
/* BA698 801237B8 92700000 */ lbu $s0, 0x0($s3) /* BA698 801237B8 92700000 */ lbu $s0, 0x0($s3)
/* BA69C 801237BC 3C04802F */ lui $a0, %hi(D_802EB620) /* BA69C 801237BC 3C04802F */ lui $a0, %hi(MsgVoices)
/* BA6A0 801237C0 2484B620 */ addiu $a0, $a0, %lo(D_802EB620) /* BA6A0 801237C0 2484B620 */ addiu $a0, $a0, %lo(MsgVoices)
/* BA6A4 801237C4 320300FF */ andi $v1, $s0, 0xFF /* BA6A4 801237C4 320300FF */ andi $v1, $s0, 0xFF
/* BA6A8 801237C8 00031040 */ sll $v0, $v1, 1 /* BA6A8 801237C8 00031040 */ sll $v0, $v1, 1
/* BA6AC 801237CC 00431021 */ addu $v0, $v0, $v1 /* BA6AC 801237CC 00431021 */ addu $v0, $v0, $v1

View File

@ -6330,9 +6330,9 @@
#define MSG_ItemShortDesc_Refund MESSAGE_ID(0x23, 0x09D) #define MSG_ItemShortDesc_Refund MESSAGE_ID(0x23, 0x09D)
#define MSG_ItemShortDesc_ISpy MESSAGE_ID(0x23, 0x09E) #define MSG_ItemShortDesc_ISpy MESSAGE_ID(0x23, 0x09E)
#define MSG_ItemShortDesc_Peekaboo MESSAGE_ID(0x23, 0x09F) #define MSG_ItemShortDesc_Peekaboo MESSAGE_ID(0x23, 0x09F)
#define MSG_ItemShortDesc_Jump MESSAGE_ID(0x23, 0x0A0) #define MSG_ItemShortDesc_Boots MESSAGE_ID(0x23, 0x0A0)
#define MSG_ItemShortDesc_SpinJump MESSAGE_ID(0x23, 0x0A1) #define MSG_ItemShortDesc_SuperBoots MESSAGE_ID(0x23, 0x0A1)
#define MSG_ItemShortDesc_TornadoJump MESSAGE_ID(0x23, 0x0A2) #define MSG_ItemShortDesc_UltraBoots MESSAGE_ID(0x23, 0x0A2)
#define MSG_ItemShortDesc_Hammer MESSAGE_ID(0x23, 0x0A3) #define MSG_ItemShortDesc_Hammer MESSAGE_ID(0x23, 0x0A3)
#define MSG_ItemShortDesc_SuperHammer MESSAGE_ID(0x23, 0x0A4) #define MSG_ItemShortDesc_SuperHammer MESSAGE_ID(0x23, 0x0A4)
#define MSG_ItemShortDesc_UltraHammer MESSAGE_ID(0x23, 0x0A5) #define MSG_ItemShortDesc_UltraHammer MESSAGE_ID(0x23, 0x0A5)
@ -7134,9 +7134,9 @@
#define MSG_ItemName_Refund MESSAGE_ID(0x26, 0x09D) #define MSG_ItemName_Refund MESSAGE_ID(0x26, 0x09D)
#define MSG_ItemName_ISpy MESSAGE_ID(0x26, 0x09E) #define MSG_ItemName_ISpy MESSAGE_ID(0x26, 0x09E)
#define MSG_ItemName_Peekaboo MESSAGE_ID(0x26, 0x09F) #define MSG_ItemName_Peekaboo MESSAGE_ID(0x26, 0x09F)
#define MSG_ItemName_Jump MESSAGE_ID(0x26, 0x0A0) #define MSG_ItemName_Boots MESSAGE_ID(0x26, 0x0A0)
#define MSG_ItemName_SpinJump MESSAGE_ID(0x26, 0x0A1) #define MSG_ItemName_SuperBoots MESSAGE_ID(0x26, 0x0A1)
#define MSG_ItemName_TornadoJump MESSAGE_ID(0x26, 0x0A2) #define MSG_ItemName_UltraBoots MESSAGE_ID(0x26, 0x0A2)
#define MSG_ItemName_Hammer MESSAGE_ID(0x26, 0x0A3) #define MSG_ItemName_Hammer MESSAGE_ID(0x26, 0x0A3)
#define MSG_ItemName_SuperHammer MESSAGE_ID(0x26, 0x0A4) #define MSG_ItemName_SuperHammer MESSAGE_ID(0x26, 0x0A4)
#define MSG_ItemName_UltraHammer MESSAGE_ID(0x26, 0x0A5) #define MSG_ItemName_UltraHammer MESSAGE_ID(0x26, 0x0A5)

View File

@ -790,7 +790,7 @@ HES_Bombette = 0x80106178;
HES_BombetteDisabled = 0x801061a0; HES_BombetteDisabled = 0x801061a0;
HES_Parakarry = 0x801061c8; HES_Parakarry = 0x801061c8;
HES_ParakarryDisabled = 0x801061f0; HES_ParakarryDisabled = 0x801061f0;
HES_MoveDiamondDisabled = 0x801077b8; HES_MoveDiamond_disabled = 0x801077b8;
HES_MoveDiamond = 0x80107718; HES_MoveDiamond = 0x80107718;
npc_test_move_simple_with_slipping = 0x800dc024; npc_test_move_simple_with_slipping = 0x800dc024;
SetNpcPos = 0x802cdcb0; SetNpcPos = 0x802cdcb0;
@ -1204,7 +1204,7 @@ D_802ED970 = 0x802ed970;
D_802F39D0 = 0x802f39d0; D_802F39D0 = 0x802f39d0;
D_802EB5C0 = 0x802eb5c0; D_802EB5C0 = 0x802eb5c0;
D_802EB5F0 = 0x802eb5f0; D_802EB5F0 = 0x802eb5f0;
D_802EB620 = 0x802eb620; MsgVoices = 0x802eb620;
ui_msg_star_png = 0x802ed690; ui_msg_star_png = 0x802ed690;
ui_point_right_pal = 0x800f9fc0; ui_point_right_pal = 0x800f9fc0;
spr_get_npc_raster_info = 0x802de9d8; spr_get_npc_raster_info = 0x802de9d8;

View File

@ -1,6 +1,7 @@
#ifndef _MESSAGE_IDS_JP_H_ #ifndef _MESSAGE_IDS_JP_H_
#define _MESSAGE_IDS_JP_H_ #define _MESSAGE_IDS_JP_H_
#define MSG_NONE MESSAGE_ID(0x00, 0x000)
#define MSG_Menus_Party_Goombario MESSAGE_ID(0x20, 0x00E) #define MSG_Menus_Party_Goombario MESSAGE_ID(0x20, 0x00E)
#define MSG_Menus_Party_Kooper MESSAGE_ID(0x20, 0x00F) #define MSG_Menus_Party_Kooper MESSAGE_ID(0x20, 0x00F)
#define MSG_Menus_Party_Bombette MESSAGE_ID(0x20, 0x010) #define MSG_Menus_Party_Bombette MESSAGE_ID(0x20, 0x010)
@ -224,9 +225,9 @@
#define MSG_ItemShortDesc_ShellCrack MESSAGE_ID(0x28, 0x0BB) #define MSG_ItemShortDesc_ShellCrack MESSAGE_ID(0x28, 0x0BB)
#define MSG_ShortDesc_32 MESSAGE_ID(0x28, 0x0BD) #define MSG_ShortDesc_32 MESSAGE_ID(0x28, 0x0BD)
#define MSG_ItemShortDesc_MysteryScroll MESSAGE_ID(0x28, 0x0C5) #define MSG_ItemShortDesc_MysteryScroll MESSAGE_ID(0x28, 0x0C5)
#define MSG_ItemShortDesc_Jump MESSAGE_ID(0x28, 0x0C6) #define MSG_ItemShortDesc_Boots MESSAGE_ID(0x28, 0x0C6)
#define MSG_ItemShortDesc_SpinJump MESSAGE_ID(0x28, 0x0C7) #define MSG_ItemShortDesc_SuperBoots MESSAGE_ID(0x28, 0x0C7)
#define MSG_ItemShortDesc_TornadoJump MESSAGE_ID(0x28, 0x0C8) #define MSG_ItemShortDesc_UltraBoots MESSAGE_ID(0x28, 0x0C8)
#define MSG_ItemShortDesc_Hammer MESSAGE_ID(0x28, 0x0C9) #define MSG_ItemShortDesc_Hammer MESSAGE_ID(0x28, 0x0C9)
#define MSG_ItemShortDesc_SuperHammer MESSAGE_ID(0x28, 0x0CA) #define MSG_ItemShortDesc_SuperHammer MESSAGE_ID(0x28, 0x0CA)
#define MSG_ItemShortDesc_UltraHammer MESSAGE_ID(0x28, 0x0CB) #define MSG_ItemShortDesc_UltraHammer MESSAGE_ID(0x28, 0x0CB)
@ -819,9 +820,9 @@
#define MSG_ItemName_Kaiden MESSAGE_ID(0x2B, 0x0B8) #define MSG_ItemName_Kaiden MESSAGE_ID(0x2B, 0x0B8)
#define MSG_ItemName_ShellCrack MESSAGE_ID(0x2B, 0x0BC) #define MSG_ItemName_ShellCrack MESSAGE_ID(0x2B, 0x0BC)
#define MSG_ItemName_MysteryScroll MESSAGE_ID(0x2B, 0x0C6) #define MSG_ItemName_MysteryScroll MESSAGE_ID(0x2B, 0x0C6)
#define MSG_ItemName_Jump MESSAGE_ID(0x2B, 0x0C7) #define MSG_ItemName_Boots MESSAGE_ID(0x2B, 0x0C7)
#define MSG_ItemName_SpinJump MESSAGE_ID(0x2B, 0x0C8) #define MSG_ItemName_SuperBoots MESSAGE_ID(0x2B, 0x0C8)
#define MSG_ItemName_TornadoJump MESSAGE_ID(0x2B, 0x0C9) #define MSG_ItemName_UltraBoots MESSAGE_ID(0x2B, 0x0C9)
#define MSG_ItemName_Hammer MESSAGE_ID(0x2B, 0x0CA) #define MSG_ItemName_Hammer MESSAGE_ID(0x2B, 0x0CA)
#define MSG_ItemName_SuperHammer MESSAGE_ID(0x2B, 0x0CB) #define MSG_ItemName_SuperHammer MESSAGE_ID(0x2B, 0x0CB)
#define MSG_ItemName_UltraHammer MESSAGE_ID(0x2B, 0x0CC) #define MSG_ItemName_UltraHammer MESSAGE_ID(0x2B, 0x0CC)

View File

@ -141,7 +141,7 @@ HES_PartnerBDisabled = 0x801081D0;
HES_Peril = 0x80108B54; HES_Peril = 0x80108B54;
HES_Danger = 0x80108BA4; HES_Danger = 0x80108BA4;
HES_MoveDiamond = 0x801094C8; HES_MoveDiamond = 0x801094C8;
HES_MoveDiamondDisabled = 0x80109568; HES_MoveDiamond_disabled = 0x80109568;
wPartnerNpc = 0x8010CAF0; wPartnerNpc = 0x8010CAF0;
NpcHitQueryColliderID = 0x8010CB38; NpcHitQueryColliderID = 0x8010CB38;
gPartnerStatus = 0x08010ED70; gPartnerStatus = 0x08010ED70;

View File

@ -1448,13 +1448,13 @@ HES_HandPointLeft = 0x80080388; // rom:0x5B788
HES_HandPointLeftHeld = 0x800804C0; // rom:0x5B8C0 HES_HandPointLeftHeld = 0x800804C0; // rom:0x5B8C0
HES_Item_Present = 0x800804F0; // rom:0x5B8F0 HES_Item_Present = 0x800804F0; // rom:0x5B8F0
HES_Item_CakeDone = 0x80080520; // rom:0x5B920 HES_Item_CakeDone = 0x80080520; // rom:0x5B920
HES_Item_CakeBaked = 0x80080550; // rom:0x5B950 HES_Item_CakeBare = 0x80080550; // rom:0x5B950
HES_Item_CakePan = 0x80080580; // rom:0x5B980 HES_Item_CakePan = 0x80080580; // rom:0x5B980
HES_Item_CakeBatter = 0x800805B0; // rom:0x5B9B0 HES_Item_CakeBatter = 0x800805B0; // rom:0x5B9B0
HES_Item_CakeBowl = 0x800805E0; // rom:0x5B9E0 HES_Item_CakeBowl = 0x800805E0; // rom:0x5B9E0
HES_Item_CakeMixed = 0x80080610; // rom:0x5BA10 HES_Item_CakeMixed = 0x80080610; // rom:0x5BA10
HES_Item_CakeIcing = 0x80080640; // rom:0x5BA40 HES_Item_CakeWIthIcing = 0x80080640; // rom:0x5BA40
HES_Item_CakeBerries = 0x80080670; // rom:0x5BA70 HES_Item_CakeWithBerries = 0x80080670; // rom:0x5BA70
HES_Item_Hammer1 = 0x800806A0; // rom:0x5BAA0 HES_Item_Hammer1 = 0x800806A0; // rom:0x5BAA0
HES_Item_Hammer2 = 0x800806D0; // rom:0x5BAD0 HES_Item_Hammer2 = 0x800806D0; // rom:0x5BAD0
HES_Item_Hammer3 = 0x80080700; // rom:0x5BB00 HES_Item_Hammer3 = 0x80080700; // rom:0x5BB00
@ -2026,12 +2026,12 @@ gItemHudScripts = 0x8008A680; // rom:0x65A80
IES_Jump = 0x8008B108; // rom:0x66508 IES_Jump = 0x8008B108; // rom:0x66508
IES_CompleteCake = 0x8008B124; // rom:0x66524 IES_CompleteCake = 0x8008B124; // rom:0x66524
IES_CakeDone = 0x8008B140; // rom:0x66540 IES_CakeDone = 0x8008B140; // rom:0x66540
IES_CakeBaked = 0x8008B15C; // rom:0x6655C IES_CakeBare = 0x8008B15C; // rom:0x6655C
IES_CakePan = 0x8008B178; // rom:0x66578 IES_CakePan = 0x8008B178; // rom:0x66578
IES_CakeBatter = 0x8008B194; // rom:0x66594 IES_CakeBatter = 0x8008B194; // rom:0x66594
IES_CakeBowl = 0x8008B1B0; // rom:0x665B0 IES_CakeBowl = 0x8008B1B0; // rom:0x665B0
IES_CakeMixed = 0x8008B1CC; // rom:0x665CC IES_CakeWithMixed = 0x8008B1CC; // rom:0x665CC
IES_CakeIcing = 0x8008B1E8; // rom:0x665E8 IES_CakeWithIcing = 0x8008B1E8; // rom:0x665E8
IES_CakeBerries = 0x8008B204; // rom:0x66604 IES_CakeBerries = 0x8008B204; // rom:0x66604
IES_Hammer1 = 0x8008B220; // rom:0x66620 IES_Hammer1 = 0x8008B220; // rom:0x66620
IES_Hammer2 = 0x8008B23C; // rom:0x6663C IES_Hammer2 = 0x8008B23C; // rom:0x6663C
@ -3716,7 +3716,7 @@ HES_MoveDiamond = 0x80109338; // rom:0xA27E8
HES_MoveBlueOrb = 0x80109360; // rom:0xA2810 HES_MoveBlueOrb = 0x80109360; // rom:0xA2810
HES_MoveGreenOrb = 0x80109388; // rom:0xA2838 HES_MoveGreenOrb = 0x80109388; // rom:0xA2838
HES_MoveRedOrb = 0x801093B0; // rom:0xA2860 HES_MoveRedOrb = 0x801093B0; // rom:0xA2860
HES_MoveDiamondDisabled = 0x801093D8; // rom:0xA2888 HES_MoveDiamond_disabled = 0x801093D8; // rom:0xA2888
HES_MoveBlueOrbDisabled = 0x80109400; // rom:0xA28B0 HES_MoveBlueOrbDisabled = 0x80109400; // rom:0xA28B0
HES_MoveGreenOrbDisabled = 0x80109428; // rom:0xA28D8 HES_MoveGreenOrbDisabled = 0x80109428; // rom:0xA28D8
HES_MoveRedOrbDisabled = 0x80109450; // rom:0xA2900 HES_MoveRedOrbDisabled = 0x80109450; // rom:0xA2900
@ -6180,12 +6180,12 @@ gPauseSpiritsDrawOrder = 0x8024F974; // rom:0x142CB4
gPauseSpiritsCursorPositions = 0x8024F990; // rom:0x142CD0 gPauseSpiritsCursorPositions = 0x8024F990; // rom:0x142CD0
gPauseSpiritsWindowsBPs = 0x8024F9C8; // rom:0x142D08 gPauseSpiritsWindowsBPs = 0x8024F9C8; // rom:0x142D08
gPausePanelSpirits = 0x8024FA10; // rom:0x142D50 gPausePanelSpirits = 0x8024FA10; // rom:0x142D50
gPauseMapIconScripts = 0x8024FA30; // rom:0x142D70 PauseMapIconScripts = 0x8024FA30; // rom:0x142D70
D_8024FA34 = 0x8024FA34; // rom:0x142D74 D_8024FA34 = 0x8024FA34; // rom:0x142D74
gPauseMapPaths = 0x8024FA38; // rom:0x142D78 PauseMapPaths = 0x8024FA38; // rom:0x142D78
gPauseMapSpaces = 0x802502B8; // rom:0x1435F8 PauseMapSpaces = 0x802502B8; // rom:0x1435F8
gPauseMapArrowWobble = 0x80250560; // rom:0x1438A0 PauseMapArrowWobble = 0x80250560; // rom:0x1438A0
gPauseMapWindowBPs = 0x80250590; // rom:0x1438D0 PauseMapWindowBPs = 0x80250590; // rom:0x1438D0
gPausePanelMap = 0x8025068C; // rom:0x1439CC gPausePanelMap = 0x8025068C; // rom:0x1439CC
pause_image_1439F0_png = 0x802506B0; // rom:0x1439F0 pause_image_1439F0_png = 0x802506B0; // rom:0x1439F0
pause_image_143BF0_png = 0x802508B0; // rom:0x143BF0 pause_image_143BF0_png = 0x802508B0; // rom:0x143BF0
@ -6216,20 +6216,20 @@ pause_prompt_check_abilities_png = 0x8026E0B0; // rom:0x1613F0
pause_prompt_check_abilities_pal = 0x8026E4B0; // rom:0x1617F0 pause_prompt_check_abilities_pal = 0x8026E4B0; // rom:0x1617F0
pause_stats_bar_png = 0x8026E6B0; // rom:0x1619F0 pause_stats_bar_png = 0x8026E6B0; // rom:0x1619F0
pause_stats_bar_pal = 0x8026E930; // rom:0x161C70 pause_stats_bar_pal = 0x8026E930; // rom:0x161C70
gPauseDLBannerHp = 0x8026EB30; // rom:0x161E70 PauseGfxBannerHp = 0x8026EB30; // rom:0x161E70
gPauseDLBannerFp = 0x8026EC08; // rom:0x161F48 PauseGfxBannerFp = 0x8026EC08; // rom:0x161F48
gPauseDLBannerBp = 0x8026ECE0; // rom:0x162020 PauseGfxBannerBp = 0x8026ECE0; // rom:0x162020
gPauseDLBannerBoots = 0x8026EDB8; // rom:0x1620F8 PauseGfxBannerBoots = 0x8026EDB8; // rom:0x1620F8
gPauseDLBannerHammer = 0x8026EE90; // rom:0x1621D0 PauseGfxBannerHammer = 0x8026EE90; // rom:0x1621D0
gPauseDLBannerStarEnergy = 0x8026EF68; // rom:0x1622A8 PauseGfxBannerStarEnergy = 0x8026EF68; // rom:0x1622A8
gPauseDLStatsBar = 0x8026F040; // rom:0x162380 PauseGfxStatsBar = 0x8026F040; // rom:0x162380
gPauseDLWorldMap = 0x8026F118; // rom:0x162458 PauseGfxWorldMap = 0x8026F118; // rom:0x162458
gPauseDLPathPoints = 0x8026F1B8; // rom:0x1624F8 PauseGfxPathPoints = 0x8026F1B8; // rom:0x1624F8
gPauseDLArrows = 0x8026F2A0; // rom:0x1625E0 PauseGfxArrows = 0x8026F2A0; // rom:0x1625E0
gPauseDLOrbs = 0x8026F348; // rom:0x162688 PauseGfxOrbs = 0x8026F348; // rom:0x162688
gPauseDLAvailable = 0x8026F3F0; // rom:0x162730 PauseGfxAvailable = 0x8026F3F0; // rom:0x162730
gPauseDLCheckAbilities = 0x8026F4C8; // rom:0x162808 PauseGfxCheckAbilities = 0x8026F4C8; // rom:0x162808
gPauseDLSpiritsBg = 0x8026F5A0; // rom:0x1628E0 PauseGfxSpiritsBg = 0x8026F5A0; // rom:0x1628E0
gPauseMsg_17 = 0x8026F640; // rom:0x162980 gPauseMsg_17 = 0x8026F640; // rom:0x162980
gPauseMsg_18 = 0x8026F648; // rom:0x162988 gPauseMsg_18 = 0x8026F648; // rom:0x162988
gPauseMsg_19 = 0x8026F650; // rom:0x162990 gPauseMsg_19 = 0x8026F650; // rom:0x162990
@ -6266,7 +6266,7 @@ gPauseMsg_54 = 0x8026F764; // rom:0x162AA4
gPauseMsg_55 = 0x8026F768; // rom:0x162AA8 gPauseMsg_55 = 0x8026F768; // rom:0x162AA8
gPauseMsg_56 = 0x8026F774; // rom:0x162AB4 gPauseMsg_56 = 0x8026F774; // rom:0x162AB4
gPauseMessages = 0x8026F778; // rom:0x162AB8 gPauseMessages = 0x8026F778; // rom:0x162AB8
gPauseDLLabels = 0x8026F8D4; // rom:0x162C14 PauseGfxLabels = 0x8026F8D4; // rom:0x162C14
gPauseWS_0 = 0x8026F900; // rom:0x162C40 gPauseWS_0 = 0x8026F900; // rom:0x162C40
gPauseWS_1 = 0x8026F938; // rom:0x162C78 gPauseWS_1 = 0x8026F938; // rom:0x162C78
gPauseWS_2 = 0x8026F970; // rom:0x162CB0 gPauseWS_2 = 0x8026F970; // rom:0x162CB0
@ -26686,16 +26686,16 @@ gPauseSpiritsSpriteIDs = 0x802706C0; //
D_802706DC = 0x802706DC; // D_802706DC = 0x802706DC; //
gPauseSpiritsIndexes = 0x802706E0; // gPauseSpiritsIndexes = 0x802706E0; //
gPauseSpiritsNumSpirits = 0x802706FC; // gPauseSpiritsNumSpirits = 0x802706FC; //
gPauseMapIconIDs = 0x80270700; // PauseMapIconIDs = 0x80270700; //
gPauseMapCameraX = 0x80270704; // PauseMapCameraX = 0x80270704; //
gPauseMapCameraY = 0x80270708; // PauseMapCameraY = 0x80270708; //
gPauseMapMarioX = 0x8027070C; // PauseMapMarioX = 0x8027070C; //
gPauseMapMarioY = 0x80270710; // PauseMapMarioY = 0x80270710; //
gPauseMapTargetX = 0x80270714; // PauseMapTargetX = 0x80270714; //
gPauseMapTargetY = 0x80270718; // PauseMapTargetY = 0x80270718; //
gPauseMapCursorCurrentOption = 0x8027071C; // PauseMapCursorCurrentOption = 0x8027071C; //
gPauseMapCursorCurrentOptionCopy = 0x80270720; // PauseMapCursorCurrentOptionCopy = 0x80270720; //
gPauseMapSpacesInSnapRange = 0x80270724; // PauseMapSpacesInSnapRange = 0x80270724; //
D_80280000 = 0x80280000; // D_80280000 = 0x80280000; //
D_80281104 = 0x80281104; // D_80281104 = 0x80281104; //
bMarioHideAnims = 0x80283370; // bMarioHideAnims = 0x80283370; //
@ -26768,9 +26768,9 @@ D_8029EFB0 = 0x8029EFB0; //
D_8029EFB4 = 0x8029EFB4; // D_8029EFB4 = 0x8029EFB4; //
D_8029EFB8 = 0x8029EFB8; // D_8029EFB8 = 0x8029EFB8; //
D_8029EFBC = 0x8029EFBC; // D_8029EFBC = 0x8029EFBC; //
D_8029EFC0 = 0x8029EFC0; // BtlStarPointTensHIDs = 0x8029EFC0; //
D_8029EFE8 = 0x8029EFE8; // BtlStarPointShinesHIDs = 0x8029EFE8; //
D_8029F010 = 0x8029F010; // BtlStarPointOnesHIDs = 0x8029F010; //
gTattleBgPalette = 0x8029F038; // gTattleBgPalette = 0x8029F038; //
BattleEnemiesCreated = 0x8029F240; // BattleEnemiesCreated = 0x8029F240; //
D_8029F244 = 0x8029F244; // D_8029F244 = 0x8029F244; //
@ -27192,7 +27192,7 @@ D_802EB3D0 = 0x802EB3D0; //
gMsgCharsets = 0x802EB5A8; // gMsgCharsets = 0x802EB5A8; //
D_802EB5C0 = 0x802EB5C0; // D_802EB5C0 = 0x802EB5C0; //
D_802EB5F0 = 0x802EB5F0; // D_802EB5F0 = 0x802EB5F0; //
D_802EB620 = 0x802EB620; // MsgVoices = 0x802EB620; //
D_802EB644 = 0x802EB644; // D_802EB644 = 0x802EB644; //
D_802ED970 = 0x802ED970; // D_802ED970 = 0x802ED970; //
D_802EE8D0 = 0x802EE8D0; // D_802EE8D0 = 0x802EE8D0; //