use libpso::packet::login::{ShipList, ShipListEntry}; use libpso::packet::ship::*; use crate::common::serverstate::ClientId; use crate::common::leveltable::CharacterLevelTable; use crate::ship::ship::{ShipError, ClientState, Clients}; use crate::ship::location::{ClientLocation, RoomId, AreaClient, ClientLocationError}; use crate::ship::room::RoomState; use crate::ship::items::ItemManager; use crate::ship::packet::builder::{player_header, player_info}; use libpso::utf8_to_utf16_array; use crate::common::interserver::Ship; use libpso::packet::ship::BLOCK_MENU_ID; use crate::login::character::SHIP_MENU_ID; pub fn ship_list(ships: &Vec) -> ShipList { let ships = ships.iter() .enumerate() .map(|(i, ship)| { ShipListEntry { menu: SHIP_MENU_ID, item: i as u32, flags: 0, name: utf8_to_utf16_array!(ship.name, 0x11) } }) .collect(); ShipList::new(ships) }