From 642daafd7a4aadf1ff1080094be4a88c0229a31b Mon Sep 17 00:00:00 2001 From: Umeboshi Date: Sat, 24 Jan 2026 07:09:36 -0800 Subject: [PATCH] [core][lua][sql] isJugPet() Lua Binding --- scripts/enum/pet_id.lua | 196 ++++++++++++++++++----------- scripts/specs/core/CBaseEntity.lua | 5 + sql/pet_list.sql | 60 ++++++++- src/map/lua/lua_baseentity.cpp | 23 ++++ src/map/lua/lua_baseentity.h | 1 + src/map/utils/petutils.h | 162 +++++++++++++++++++----- 6 files changed, 338 insertions(+), 109 deletions(-) diff --git a/scripts/enum/pet_id.lua b/scripts/enum/pet_id.lua index 4595a7c7ab9..3f84b310ce4 100644 --- a/scripts/enum/pet_id.lua +++ b/scripts/enum/pet_id.lua @@ -7,85 +7,135 @@ xi = xi or {} xi.petId = { -- Summoner - FIRE_SPIRIT = 0, - ICE_SPIRIT = 1, - AIR_SPIRIT = 2, - EARTH_SPIRIT = 3, - THUNDER_SPIRIT = 4, - WATER_SPIRIT = 5, - LIGHT_SPIRIT = 6, - DARK_SPIRIT = 7, - CARBUNCLE = 8, - FENRIR = 9, - IFRIT = 10, - TITAN = 11, - LEVIATHAN = 12, - GARUDA = 13, - SHIVA = 14, - RAMUH = 15, - DIABOLOS = 16, - ALEXANDER = 17, - ODIN = 18, - ATOMOS = 19, - CAIT_SITH = 20, - SIREN = 76, + FIRE_SPIRIT = 0, + ICE_SPIRIT = 1, + AIR_SPIRIT = 2, + EARTH_SPIRIT = 3, + THUNDER_SPIRIT = 4, + WATER_SPIRIT = 5, + LIGHT_SPIRIT = 6, + DARK_SPIRIT = 7, + CARBUNCLE = 8, + FENRIR = 9, + IFRIT = 10, + TITAN = 11, + LEVIATHAN = 12, + GARUDA = 13, + SHIVA = 14, + RAMUH = 15, + DIABOLOS = 16, + ALEXANDER = 17, + ODIN = 18, + ATOMOS = 19, + CAIT_SITH = 20, + SIREN = 76, -- Beastmaster - SHEEP_FAMILIAR = 21, - HARE_FAMILIAR = 22, - CRAB_FAMILIAR = 23, - COURIER_CARRIE = 24, - HOMUNCULUS = 25, - FLYTRAP_FAMILIAR = 26, - TIGER_FAMILIAR = 27, - FLOWERPOT_BILL = 28, - EFT_FAMILIAR = 29, - LIZARD_FAMILIAR = 30, - MAYFLY_FAMILIAR = 31, - FUNGUAR_FAMILIAR = 32, - BEETLE_FAMILIAR = 33, - ANTLION_FAMILIAR = 34, - MITE_FAMILIAR = 35, - LULLABY_MELODIA = 36, - KEENEARED_STEFFI = 37, - FLOWERPOT_BEN = 38, - SABER_SIRAVARDE = 39, - COLDBLOOD_COMO = 40, - SHELLBUSTER_OROB = 41, - VORACIOUS_AUDREY = 42, - AMBUSHER_ALLIE = 43, - LIFEDRINKER_LARS = 44, - PANZER_GALAHAD = 45, - CHOPSUEY_CHUCKY = 46, - AMIGO_SABOTENDER = 47, - CRAFTY_CLYVONNE = 49, - BLOODCLAW_SHASRA = 50, - LUCKY_LULUSH = 51, - FATSO_FARGANN = 52, - DISCREET_LOUISE = 53, - SWIFT_SIEGHARD = 54, - DIPPER_YULY = 55, - FLOWERPOT_MERLE = 56, - NURSERY_NAZUNA = 57, - MAILBUSTER_CETAS = 58, - AUDACIOUS_ANNA = 59, - PRESTO_JULIO = 60, - BUGEYED_BRONCHA = 61, - GOOEY_GERARD = 62, - GOREFANG_HOBS = 63, - FAITHFUL_FALCOR = 64, - CRUDE_RAPHIE = 65, - DAPPER_MAC = 66, - SLIPPERY_SILAS = 67, - TURBID_TOLOI = 68, - SWEET_CAROLINE = 77, + SHEEP_FAMILIAR = 21, + HARE_FAMILIAR = 22, + CRAB_FAMILIAR = 23, + COURIER_CARRIE = 24, + HOMUNCULUS = 25, + FLYTRAP_FAMILIAR = 26, + TIGER_FAMILIAR = 27, + FLOWERPOT_BILL = 28, + EFT_FAMILIAR = 29, + LIZARD_FAMILIAR = 30, + MAYFLY_FAMILIAR = 31, + FUNGUAR_FAMILIAR = 32, + BEETLE_FAMILIAR = 33, + ANTLION_FAMILIAR = 34, + MITE_FAMILIAR = 35, + LULLABY_MELODIA = 36, + KEENEARED_STEFFI = 37, + FLOWERPOT_BEN = 38, + SABER_SIRAVARDE = 39, + COLDBLOOD_COMO = 40, + SHELLBUSTER_OROB = 41, + VORACIOUS_AUDREY = 42, + AMBUSHER_ALLIE = 43, + LIFEDRINKER_LARS = 44, + PANZER_GALAHAD = 45, + CHOPSUEY_CHUCKY = 46, + AMIGO_SABOTENDER = 47, + CRAFTY_CLYVONNE = 49, + BLOODCLAW_SHASRA = 50, + LUCKY_LULUSH = 51, + FATSO_FARGANN = 52, + DISCREET_LOUISE = 53, + SWIFT_SIEGHARD = 54, + DIPPER_YULY = 55, + FLOWERPOT_MERLE = 56, + NURSERY_NAZUNA = 57, + MAILBUSTER_CETAS = 58, + AUDACIOUS_ANNA = 59, + PRESTO_JULIO = 60, + BUGEYED_BRONCHA = 61, + GOOEY_GERARD = 62, + GOREFANG_HOBS = 63, + FAITHFUL_FALCOR = 64, + CRUDE_RAPHIE = 65, + DAPPER_MAC = 66, + SLIPPERY_SILAS = 67, + TURBID_TOLOI = 68, + SWEET_CAROLINE = 77, + AMIABLE_ROCHE = 78, + HEADBREAKER_KEN = 79, + ANKLEBITER_JEDD = 80, + CURSED_ANNABELLE = 81, + BRAINY_WALUIS = 82, + SLIME_FAMILIAR = 83, + SULTRY_PATRICE = 84, + GENEROUS_ARTHUR = 85, + REDOLENT_CANDI = 86, + ALLURING_HONEY = 87, + LYNX_FAMILIAR = 88, + VIVACIOUS_GASTON = 89, + CARING_KIYOMARU = 90, + VIVACIOUS_VICKIE = 91, + SUSPICIOUS_ALICE = 92, + SURGING_STORM = 93, + SUBMERGED_IYO = 94, + WARLIKE_PATRICK = 95, + RHYMING_SHIZUNA = 96, + BLACKBEARD_RANDY = 97, + THREESTAR_LYNN = 98, + HURLER_PERCIVAL = 99, + ACUEX_FAMILIAR = 100, + FLUFFY_BREDO = 101, + WEEVIL_FAMILIAR = 102, + STALWART_ANGELINA = 103, + FLEET_REINHARD = 104, + SHARPWIT_HERMES = 105, + PORTER_CRAB_FAMILIAR = 106, + JOVIAL_EDWIN = 107, + ATTENTIVE_IBUKI = 108, + SWOOPING_ZHIVAGO = 109, + SUNBURST_MALFIK = 110, + AGED_ANGUS = 111, + SCISSORLEG_XERIN = 112, + BOUNCING_BERTHA = 113, + SPIDER_FAMILIAR = 114, + GUSSY_HACHIROBE = 115, + COLIBRI_FAMILIAR = 116, + CHORAL_LEERA = 117, + DROOPY_DORTWIN = 118, + PONDERING_PETER = 119, + HERALD_HENRY = 120, + HIPPOGRYPH_FAMILIAR = 121, + DARING_ROLAND = 122, + MOSQUITO_FAMILIAR = 123, + LEFT_HANDED_YOKO = 124, + BRAVE_HERO_GLENN = 125, + YELLOW_BEETLE_FAMILIAR = 126, + ENERGIZED_SEFINA = 127, -- Dragoon - WYVERN = 48, + WYVERN = 48, -- Puppetmaster - AUTOMATON = 69, + AUTOMATON = 69, -- Geomancer - LUOPAN = 75, + LUOPAN = 75, } diff --git a/scripts/specs/core/CBaseEntity.lua b/scripts/specs/core/CBaseEntity.lua index ae7764bc4b9..3c5067d3723 100644 --- a/scripts/specs/core/CBaseEntity.lua +++ b/scripts/specs/core/CBaseEntity.lua @@ -3460,6 +3460,11 @@ end function CBaseEntity:isAvatar() end +---@nodiscard +---@return boolean +function CBaseEntity:isJugPet() +end + ---@nodiscard ---@return CBaseEntity? function CBaseEntity:getMaster() diff --git a/sql/pet_list.sql b/sql/pet_list.sql index 3e220b2d85d..0e749049dce 100644 --- a/sql/pet_list.sql +++ b/sql/pet_list.sql @@ -6,7 +6,7 @@ SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; /*!40101 SET NAMES utf8 */; -- --- Structure de la table `pet_list` +-- Table structure for table `pet_list` -- DROP TABLE IF EXISTS `pet_list`; @@ -22,9 +22,7 @@ CREATE TABLE IF NOT EXISTS `pet_list` ( PRIMARY KEY (`petid`) ) ENGINE=Aria TRANSACTIONAL=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; --- --- Contenu de la table `pet_list` --- +-- damageType ENUMs -- NONE = 0, -- PIERCING = 1, @@ -110,3 +108,57 @@ INSERT INTO `pet_list` VALUES (72,'StormwakerFrame',5127,1,99,0,0,3); INSERT INTO `pet_list` VALUES (75,'Luopan',6040,1,99,0,0,0); INSERT INTO `pet_list` VALUES (76,'Siren',7047,1,99,0,0,2); INSERT INTO `pet_list` VALUES (77,'SweetCaroline',7500,99,119,7200,0,3); + +-- TODO: Lv. 99 + Jug Pets not currently implemented. +-- Need to input values here as well as assign the petid to subskill of corresponding jug item in item_weapons.sql + +-- INSERT INTO `pet_list` VALUES (78,'Amiable Roche',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (79,'Headbreaker Ken',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (80,'Anklebiter Jedd',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (81,'Cursed Annabelle',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (82,'Brainy Waluis',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (83,'Slime Familiar',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (84,'Sultry Patrice',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (85,'Generous Arthur',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (86,'Redolent Candi',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (87,'Alluring Honey',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (88,'Lynx Familiar',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (89,'Vivacious Gaston',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (90,'Caring Kiyomaro',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (91,'Vivacious Vickie',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (92,'Suspicious Alice',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (93,'Surging Storm',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (94,'Submerged Iyo',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (95,'Warlike Patrick',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (96,'Rhyming Shizuna',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (97,'Blackbeard Randy',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (98,'Threestar Lynn',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (99,'Hurler Percival',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (100,'Acuex Familiar',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (101,'Fluffy Bredo',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (102,'Weevil Familiar',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (103,'Stalwart Angelina',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (104,'Fleet Reinhard',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (105,'Sharpwit Hermes',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (106,'Porter Crab Familiar',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (107,'Jovial Edwin',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (108,'Attentive Ibuki',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (109,'Swooping Zhivago',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (110,'Sunburst Malfik',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (111,'Aged Angus',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (112,'Scissorleg Xerin',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (113,'Bouncing Bertha',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (114,'Spider Familiar',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (115,'Gussy Hachirobe',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (116,'Colibri Familiar',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (117,'Choral Leera',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (118,'Droopy Dortwin',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (119,'Pondering Peter',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (120,'Herald Henry',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (121,'Hippogryph Familiar',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (122,'Daring Roland',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (123,'Mosquito Familiar',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (124,'Left-Handed Yoko',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (125,'Brave Hero Glenn',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (126,'Yellow Beetle Familiar',poolID,minLevel,maxLevel,time,element,damageType); +-- INSERT INTO `pet_list` VALUES (127,'Energized Sefina',poolID,minLevel,maxLevel,time,element,damageType); diff --git a/src/map/lua/lua_baseentity.cpp b/src/map/lua/lua_baseentity.cpp index 7e5c8d60779..f23f01d2a8f 100644 --- a/src/map/lua/lua_baseentity.cpp +++ b/src/map/lua/lua_baseentity.cpp @@ -16027,6 +16027,28 @@ bool CLuaBaseEntity::isAvatar() return false; } +/************************************************************************ + * Function: isJugPet() + * Purpose : Returns true if entity is a BST jug pet. + * Example : local isJugPet = pet:isJugPet() + * Notes : + ************************************************************************/ + +auto CLuaBaseEntity::isJugPet() -> bool +{ + if (m_PBaseEntity->objtype == TYPE_PET) + { + uint32 petID = static_cast(m_PBaseEntity)->m_PetID; + if ((petID >= PETID_SHEEP_FAMILIAR && petID <= PETID_TURBID_TOLOI) || + (petID >= PETID_SWEET_CAROLINE && petID <= PETID_ENERGIZED_SEFINA)) + { + return true; + } + } + + return false; +} + /************************************************************************ * Function: getPetElement() * Purpose : Returns the elemental affinity of a pet entity @@ -20160,6 +20182,7 @@ void CLuaBaseEntity::Register() SOL_REGISTER("getPetID", CLuaBaseEntity::getPetID); SOL_REGISTER("isAutomaton", CLuaBaseEntity::isAutomaton); SOL_REGISTER("isAvatar", CLuaBaseEntity::isAvatar); + SOL_REGISTER("isJugPet", CLuaBaseEntity::isJugPet); SOL_REGISTER("getPetElement", CLuaBaseEntity::getPetElement); SOL_REGISTER("setPet", CLuaBaseEntity::setPet); SOL_REGISTER("getMinimumPetLevel", CLuaBaseEntity::getMinimumPetLevel); diff --git a/src/map/lua/lua_baseentity.h b/src/map/lua/lua_baseentity.h index e9fd7f54b18..73bd4a47662 100644 --- a/src/map/lua/lua_baseentity.h +++ b/src/map/lua/lua_baseentity.h @@ -787,6 +787,7 @@ class CLuaBaseEntity uint32 getPetID(); bool isAutomaton(); bool isAvatar(); + auto isJugPet() -> bool; auto getMaster() -> CBaseEntity*; uint8 getPetElement(); void setPet(const sol::object& petObj); diff --git a/src/map/utils/petutils.h b/src/map/utils/petutils.h index d9b6233ab21..1dec3b217d4 100644 --- a/src/map/utils/petutils.h +++ b/src/map/utils/petutils.h @@ -27,38 +27,136 @@ enum PETID { - PETID_FIRESPIRIT = 0, - PETID_ICESPIRIT = 1, - PETID_AIRSPIRIT = 2, - PETID_EARTHSPIRIT = 3, - PETID_THUNDERSPIRIT = 4, - PETID_WATERSPIRIT = 5, - PETID_LIGHTSPIRIT = 6, - PETID_DARKSPIRIT = 7, - PETID_CARBUNCLE = 8, - PETID_FENRIR = 9, - PETID_IFRIT = 10, - PETID_TITAN = 11, - PETID_LEVIATHAN = 12, - PETID_GARUDA = 13, - PETID_SHIVA = 14, - PETID_RAMUH = 15, - PETID_DIABOLOS = 16, - PETID_ALEXANDER = 17, - PETID_ODIN = 18, - PETID_ATOMOS = 19, - PETID_CAIT_SITH = 20, - PETID_WYVERN = 48, - PETID_HARLEQUINFRAME = 69, - PETID_VALOREDGEFRAME = 70, - PETID_SHARPSHOTFRAME = 71, - PETID_STORMWAKERFRAME = 72, - PETID_ADVENTURING_FELLOW = 73, - PETID_CHOCOBO = 74, - PETID_LUOPAN = 75, - PETID_SIREN = 76, - // BST Jug pets exist in the gaps of this enum - MAX_PETID = 78, + PETID_FIRESPIRIT = 0, + PETID_ICESPIRIT = 1, + PETID_AIRSPIRIT = 2, + PETID_EARTHSPIRIT = 3, + PETID_THUNDERSPIRIT = 4, + PETID_WATERSPIRIT = 5, + PETID_LIGHTSPIRIT = 6, + PETID_DARKSPIRIT = 7, + PETID_CARBUNCLE = 8, + PETID_FENRIR = 9, + PETID_IFRIT = 10, + PETID_TITAN = 11, + PETID_LEVIATHAN = 12, + PETID_GARUDA = 13, + PETID_SHIVA = 14, + PETID_RAMUH = 15, + PETID_DIABOLOS = 16, + PETID_ALEXANDER = 17, + PETID_ODIN = 18, + PETID_ATOMOS = 19, + PETID_CAIT_SITH = 20, + PETID_SHEEP_FAMILIAR = 21, + PETID_HARE_FAMILIAR = 22, + PETID_CRAB_FAMILIAR = 23, + PETID_COURIER_CARRIE = 24, + PETID_HOMUNCULUS = 25, + PETID_FLYTRAP_FAMILIAR = 26, + PETID_TIGER_FAMILIAR = 27, + PETID_FLOWERPOT_BILL = 28, + PETID_EFT_FAMILIAR = 29, + PETID_LIZARD_FAMILIAR = 30, + PETID_MAYFLY_FAMILIAR = 31, + PETID_FUNGUAR_FAMILIAR = 32, + PETID_BEETLE_FAMILIAR = 33, + PETID_ANTLION_FAMILIAR = 34, + PETID_MITE_FAMILIAR = 35, + PETID_LULLABY_MELODIA = 36, + PETID_KEENEARED_STEFFI = 37, + PETID_FLOWERPOT_BEN = 38, + PETID_SABER_SIRAVARDE = 39, + PETID_COLDBLOOD_COMO = 40, + PETID_SHELLBUSTER_OROB = 41, + PETID_VORACIOUS_AUDREY = 42, + PETID_AMBUSHER_ALLIE = 43, + PETID_LIFEDRINKER_LARS = 44, + PETID_PANZER_GALAHAD = 45, + PETID_CHOPSUEY_CHUCKY = 46, + PETID_AMIGO_SABOTENDER = 47, + PETID_WYVERN = 48, + PETID_CRAFTY_CLYVONNE = 49, + PETID_BLOODCLAW_SHASRA = 50, + PETID_LUCKY_LULUSH = 51, + PETID_FATSO_FARGANN = 52, + PETID_DISCREET_LOUISE = 53, + PETID_SWIFT_SIEGHARD = 54, + PETID_DIPPER_YULY = 55, + PETID_FLOWERPOT_MERLE = 56, + PETID_NURSERY_NAZUNA = 57, + PETID_MAILBUSTER_CETAS = 58, + PETID_AUDACIOUS_ANNA = 59, + PETID_PRESTO_JULIO = 60, + PETID_BUGEYED_BRONCHA = 61, + PETID_GOOEY_GERARD = 62, + PETID_GOREFANG_HOBS = 63, + PETID_FAITHFUL_FALCOR = 64, + PETID_CRUDE_RAPHIE = 65, + PETID_DAPPER_MAC = 66, + PETID_SLIPPERY_SILAS = 67, + PETID_TURBID_TOLOI = 68, + PETID_HARLEQUINFRAME = 69, + PETID_VALOREDGEFRAME = 70, + PETID_SHARPSHOTFRAME = 71, + PETID_STORMWAKERFRAME = 72, + PETID_ADVENTURING_FELLOW = 73, + PETID_CHOCOBO = 74, + PETID_LUOPAN = 75, + PETID_SIREN = 76, + PETID_SWEET_CAROLINE = 77, + PETID_AMIABLE_ROCHE = 78, + PETID_HEADBREAKER_KEN = 79, + PETID_ANKLEBITER_JEDD = 80, + PETID_CURSED_ANNABELLE = 81, + PETID_BRAINY_WALUIS = 82, + PETID_SLIME_FAMILIAR = 83, + PETID_SULTRY_PATRICE = 84, + PETID_GENEROUS_ARTHUR = 85, + PETID_REDOLENT_CANDI = 86, + PETID_ALLURING_HONEY = 87, + PETID_LYNX_FAMILIAR = 88, + PETID_VIVACIOUS_GASTON = 89, + PETID_CARING_KIYOMARU = 90, + PETID_VIVACIOUS_VICKIE = 91, + PETID_SUSPICIOUS_ALICE = 92, + PETID_SURGING_STORM = 93, + PETID_SUBMERGED_IYO = 94, + PETID_WARLIKE_PATRICK = 95, + PETID_RHYMING_SHIZUNA = 96, + PETID_BLACKBEARD_RANDY = 97, + PETID_THREESTAR_LYNN = 98, + PETID_HURLER_PERCIVAL = 99, + PETID_ACUEX_FAMILIAR = 100, + PETID_FLUFFY_BREDO = 101, + PETID_WEEVIL_FAMILIAR = 102, + PETID_STALWART_ANGELINA = 103, + PETID_FLEET_REINHARD = 104, + PETID_SHARPWIT_HERMES = 105, + PETID_PORTER_CRAB_FAMILIAR = 106, + PETID_JOVIAL_EDWIN = 107, + PETID_ATTENTIVE_IBUKI = 108, + PETID_SWOOPING_ZHIVAGO = 109, + PETID_SUNBURST_MALFIK = 110, + PETID_AGED_ANGUS = 111, + PETID_SCISSORLEG_XERIN = 112, + PETID_BOUNCING_BERTHA = 113, + PETID_SPIDER_FAMILIAR = 114, + PETID_GUSSY_HACHIROBE = 115, + PETID_COLIBRI_FAMILIAR = 116, + PETID_CHORAL_LEERA = 117, + PETID_DROOPY_DORTWIN = 118, + PETID_PONDERING_PETER = 119, + PETID_HERALD_HENRY = 120, + PETID_HIPPOGRYPH_FAMILIAR = 121, + PETID_DARING_ROLAND = 122, + PETID_MOSQUITO_FAMILIAR = 123, + PETID_LEFT_HANDED_YOKO = 124, + PETID_BRAVE_HERO_GLENN = 125, + PETID_YELLOW_BEETLE_FAMILIAR = 126, + PETID_ENERGIZED_SEFINA = 127, + + MAX_PETID = 128, }; struct Pet_t