Untitled
unknown
plain_text
2 years ago
7.5 kB
6
Indexable
void Serialize(BinaryReader& br) {
m_id = br.read<uint32_t>();
m_editable_type = br.read<uint8_t>();
m_item_category = br.read<uint8_t>();
m_item_type = br.read<uint8_t>();
m_marterial = br.read<uint8_t>();
m_name = this->Cypher(br.read_string(), m_id);
m_texture = br.read_string();
m_texture_hash = br.read<uint32_t>();
m_visual_effect = br.read<uint8_t>();
m_flags1 = br.read<uint32_t>();
m_texture_x = br.read<uint8_t>();
m_texture_y = br.read<uint8_t>();
m_spread_type = br.read<uint8_t>();
m_is_stripey_wallpaper = br.read<uint8_t>();
m_collision_type = br.read<uint8_t>();
m_break_hits = br.read<uint8_t>() / 6;
m_reset_time = br.read<uint32_t>();
m_clothing_type = br.read<uint8_t>();
m_rarity = br.read<uint16_t>();
m_max_amount = br.read<uint8_t>();
m_extra_file = br.read_string();
m_extra_file_hash = br.read<uint32_t>();
m_audio_volume = br.read<uint32_t>();
m_pet_name = br.read_string();
m_pet_prefix = br.read_string();
m_pet_suffix = br.read_string();
m_pet_ability = br.read_string();
m_seed_base = br.read<uint8_t>();
m_seed_overlay = br.read<uint8_t>();
m_tree_base = br.read<uint8_t>();
m_tree_leaves = br.read<uint8_t>();
m_seed_color = br.read<uint32_t>();
m_seed_overlay_color = br.read<uint32_t>();
m_ingredient = br.read<uint32_t>();
m_grow_time = br.read<uint32_t>();
m_flags2 = br.read<uint16_t>();
m_rayman = br.read<uint16_t>();
m_extra_options = br.read_string();
m_texture2 = br.read_string();
m_extra_options2 = br.read_string();
for (auto index = 0; index < 80; index++)
m_reserved[index] = br.read<uint8_t>();
m_punch_options = br.read_string();
m_val3 = br.read<uint32_t>();
for (auto index = 0; index < 9; index++)
m_bodypart[index] = br.read<uint8_t>();
m_val4 = br.read<uint32_t>();
m_val5 = br.read<uint32_t>();
switch (m_item_type)
{
case ITEMTYPE_DOOR:
case ITEMTYPE_LOCK:
case ITEMTYPE_SIGN:
case ITEMTYPE_MAIN_DOOR:
case ITEMTYPE_SEED:
case ITEMTYPE_PORTAL:
case ITEMTYPE_MAILBOX:
case ITEMTYPE_BULLETIN:
case ITEMTYPE_DICE:
case ITEMTYPE_PROVIDER:
case ITEMTYPE_ACHIEVEMENT:
case ITEMTYPE_SUNGATE:
case ITEMTYPE_HEART_MONITOR:
case ITEMTYPE_DONATION_BOX:
case ITEMTYPE_TOYBOX:
case ITEMTYPE_MANNEQUIN:
case ITEMTYPE_SECURITY_CAMERA:
case ITEMTYPE_MAGIC_EGG:
case ITEMTYPE_GAME_RESOURCES:
case ITEMTYPE_GAME_GENERATOR:
case ITEMTYPE_XENONITE:
case ITEMTYPE_DRESSUP:
case ITEMTYPE_CRYSTAL:
case ITEMTYPE_BURGLAR:
case ITEMTYPE_SPOTLIGHT:
case ITEMTYPE_DISPLAY_BLOCK:
case ITEMTYPE_VENDING_MACHINE:
case ITEMTYPE_FISHTANK:
case ITEMTYPE_SOLAR:
case ITEMTYPE_FORGE:
case ITEMTYPE_GIVING_TREE:
case ITEMTYPE_GIVING_TREE_STUMP:
case ITEMTYPE_STEAM_ORGAN:
case ITEMTYPE_TAMAGOTCHI:
case ITEMTYPE_SWING:
case ITEMTYPE_FLAG:
case ITEMTYPE_LOBSTER_TRAP:
case ITEMTYPE_ART_CANVAS:
case ITEMTYPE_BATTLE_CAGE:
case ITEMTYPE_PET_TRAINER:
case ITEMTYPE_STEAM_ENGINE:
case ITEMTYPE_LOCKBOT:
case ITEMTYPE_WEATHER_SPECIAL:
case ITEMTYPE_SPIRIT_STORAGE:
case ITEMTYPE_DISPLAY_SHELF:
case ITEMTYPE_VIP_ENTRANCE:
case ITEMTYPE_CHALLENGE_TIMER:
case ITEMTYPE_CHALLENGE_FLAG:
case ITEMTYPE_FISH_MOUNT:
case ITEMTYPE_PORTRAIT:
case ITEMTYPE_WEATHER_SPECIAL2:
case ITEMTYPE_FOSSIL_PREP:
case ITEMTYPE_DNA_MACHINE:
case ITEMTYPE_BLASTER:
case ITEMTYPE_CHEMTANK:
case ITEMTYPE_STORAGE:
case ITEMTYPE_OVEN:
case ITEMTYPE_SUPER_MUSIC:
case ITEMTYPE_GEIGER_CHARGER:
case ITEMTYPE_ADVENTURE_RESET:
case ITEMTYPE_TOMB_ROBBER:
case ITEMTYPE_FACTION:
case ITEMTYPE_RED_FACTION:
case ITEMTYPE_GREEN_FACTION:
case ITEMTYPE_BLUE_FACTION:
case ITEMTYPE_FISHGOTCHI_TANK:
case ITEMTYPE_ITEM_SUCKER:
case ITEMTYPE_ROBOT:
case ITEMTYPE_TICKET:
case ITEMTYPE_STATS_BLOCK:
case ITEMTYPE_FIELD_NODE:
case ITEMTYPE_OUIJA_BOARD:
case ITEMTYPE_AUTO_ACTION_BREAK:
case ITEMTYPE_AUTO_ACTION_HARVEST:
case ITEMTYPE_AUTO_ACTION_HARVEST_SUCK:
case ITEMTYPE_LIGHTNING_IF_ON:
case ITEMTYPE_PHASED_BLOCK:
case ITEMTYPE_PASSWORD_STORAGE:
case ITEMTYPE_PHASED_BLOCK_2:
case ITEMTYPE_WEATHER_INFINITY:
case ITEMTYPE_KRANKENS_BLOCK:
case ITEMTYPE_FRIENDS_ENTRANCE:
case 30:
case 133: {
m_has_extra = true;
break;
}
}
/*if (!m_texture.empty()) {
uintmax_t file_size = 0;
void* data = nullptr;
if (std::filesystem::exists(fmt::format("cache/game/{}", m_texture)))
data = FileManager::read_all_bytes(fmt::format("cache/game/{}", m_texture), file_size);
if (!data)
fmt::print("ItemInfo::Serialize -> failed to load texture for item {}, (texture: {})\n", m_name, m_texture);
m_texture_hash = proton::utils::hash(data, file_size);
std::free(data);
}
if (!m_extra_file.empty()) {
uintmax_t file_size = 0;
void* data = nullptr;
if (std::filesystem::exists(fmt::format("cache/{}", m_extra_file)))
data = FileManager::read_all_bytes(fmt::format("cache/{}", m_extra_file), file_size);
// if (!data)
// fmt::print("ItemInfo::Serialize -> failed to load extra_file for item {}, (extra_file: {})\n", m_name, m_extra_file);
m_extra_file_hash = proton::utils::hash(data, file_size);
std::free(data);
}*/
/*std::string name = m_name;
std::transform(name.begin(), name.end(), name.begin(), ::toupper);
utils::replace(name, " ", "_");
utils::replace(name, "_-_", "_");
utils::replace(name, "-", "_");
utils::replace(name, ":", "");
utils::replace(name, "'", "");
utils::replace(name, "!", "");
utils::replace(name, "#", "");
utils::replace(name, ".", "");
utils::replace(name, "(", "");
utils::replace(name, ")", "");
if (m_id > 12653)
fmt::print("ITEM_{} = {},\n", name, m_id);*/
}Editor is loading...