void SpaceStation::Load(Serializer::Reader &rd, Space *space) { ModelBody::Load(rd, space); MarketAgent::Load(rd); int num = rd.Int32(); if (num > Equip::TYPE_MAX) throw SavedGameCorruptException(); for (int i=0; i<Equip::TYPE_MAX; i++) { m_equipmentStock[i] = 0; } for (int i=0; i<num; i++) { m_equipmentStock[i] = static_cast<Equip::Type>(rd.Int32()); } // load shityard int numShipsForSale = rd.Int32(); for (int i=0; i<numShipsForSale; i++) { ShipFlavour s; s.Load(rd); m_shipsOnSale.push_back(s); } for (int i=0; i<MAX_DOCKING_PORTS; i++) { m_shipDocking[i].shipIndex = rd.Int32(); m_shipDocking[i].stage = rd.Int32(); m_shipDocking[i].stagePos = rd.Float(); m_shipDocking[i].fromPos = rd.Vector3d(); m_shipDocking[i].fromRot = rd.RdQuaternionf(); m_openAnimState[i] = rd.Float(); m_dockAnimState[i] = rd.Float(); } m_bbCreated = rd.Bool(); m_lastUpdatedShipyard = rd.Double(); m_sbody = space->GetSystemBodyByIndex(rd.Int32()); m_numPoliceDocked = rd.Int32(); InitStation(); }
ShipSpinnerWidget::ShipSpinnerWidget(const ShipFlavour &flavour, float width, float height) : m_width(width), m_height(height) { m_model = LmrLookupModelByName(ShipType::types[flavour.type].lmrModelName.c_str()); memset(&m_params, 0, sizeof(LmrObjParams)); flavour.ApplyTo(&m_params); m_params.argDoubles[0] = 1.0; }
ShipSpinnerWidget::ShipSpinnerWidget(const ShipFlavour &flavour, float width, float height) : m_width(width), m_height(height) { m_model = Pi::FindModel(ShipType::types[flavour.id].lmrModelName.c_str()); memset(&m_params, 0, sizeof(LmrObjParams)); m_params.animationNamespace = "ShipAnimation"; m_params.equipment = &m_equipment; m_params.animValues[Ship::ANIM_WHEEL_STATE] = 1.0; m_params.flightState = Ship::FLYING; flavour.ApplyTo(&m_params); flavour.ApplyTo(m_model); Color lc(1.f); m_light.SetDiffuse(lc); m_light.SetSpecular(lc); m_light.SetPosition(vector3f(1.f, 1.f, 0.f)); m_light.SetType(Graphics::Light::LIGHT_DIRECTIONAL); }