bool Path::Load(pugi::xml_node const& aPathNode) { mName = aPathNode.attribute("name").value(); mStartPosition.x = static_cast<float>(aPathNode.child("start_point").attribute("x").as_float()); mStartPosition.y = static_cast<float>(aPathNode.child("start_point").attribute("y").as_int()); for(pugi::xml_node const& aOrderNode : aPathNode.children("order")) { Order o; if(!o.Load(aOrderNode)) { std::cout << "Could not load order on path" << std::endl; assert(0); return false; } mOrders.push_back(o); } return true; }
bool BidOrOffer::Load(PacketBase& packet) { m_lstOrders.clear(); if (!packet.ReadString(m_strBidPrice, 10)) return false; int nOrderCount; if (!packet.ReadInt(nOrderCount, 4)) return false; while (--nOrderCount >= 0) { Order order; if (!order.Load(packet)) return false; m_lstOrders.push_back(order); } return true; }