std::string FloatFormat::intervalToHex (const Interval& interval) const { if (interval.empty()) return interval.hasNaN() ? "{ NaN }" : "{}"; else if (interval.lo() == interval.hi()) return (std::string(interval.hasNaN() ? "{ NaN, " : "{ ") + floatToHex(interval.lo()) + " }"); else if (interval == Interval::unbounded(true)) return "<any>"; return (std::string(interval.hasNaN() ? "{ NaN } | " : "") + "[" + floatToHex(interval.lo()) + ", " + floatToHex(interval.hi()) + "]"); }
void Car::serialize(CL_NetGameEvent *p_event) const { // save iteration counter p_event->add_argument(m_impl->m_iterId); // save inputs p_event->add_argument(CL_NetGameEventValue(m_impl->m_inputState.accel)); p_event->add_argument(CL_NetGameEventValue(m_impl->m_inputState.brake)); p_event->add_argument(floatToHex(m_impl->m_inputState.turn)); p_event->add_argument(CL_NetGameEventValue(m_impl->m_inputLocked)); // corpse state p_event->add_argument(floatToHex(m_impl->m_position.x)); p_event->add_argument(floatToHex(m_impl->m_position.y)); p_event->add_argument(floatToHex(m_impl->m_rotation.to_radians())); p_event->add_argument(floatToHex(m_impl->m_speed)); // physics parameters p_event->add_argument(floatToHex(m_impl->m_phyMoveRot.to_radians())); p_event->add_argument(floatToHex(m_impl->m_phyMoveVec.x)); p_event->add_argument(floatToHex(m_impl->m_phyMoveVec.y)); p_event->add_argument(floatToHex(m_impl->m_phySpeedDelta)); p_event->add_argument(floatToHex(m_impl->m_phyWheelsTurn)); p_event->add_argument(floatToHex(m_impl->m_damage)); }