uint32_t hsStream::WriteSafeWStringLong(const plString &string) { plStringBuffer<uint16_t> wbuff = string.ToUtf16(); uint32_t len = wbuff.GetSize(); WriteLE32(len); if (len > 0) { const uint16_t *buffp = wbuff.GetData(); for (uint32_t i=0; i<len; i++) { WriteLE16(~buffp[i]); } WriteLE16(static_cast<uint16_t>(0)); } return 0; }
uint32_t hsStream::WriteSafeWString(const plString &string) { plStringBuffer<uint16_t> wbuff = string.ToUtf16(); uint32_t len = wbuff.GetSize(); hsAssert(len<0xf000, plString::Format("string len of %d is too long for WriteSafeWString, use WriteSafeWStringLong", len).c_str() ); WriteLE16(len | 0xf000); if (len > 0) { const uint16_t *buffp = wbuff.GetData(); for (uint32_t i=0; i<len; i++) { WriteLE16(~buffp[i]); } WriteLE16(static_cast<uint16_t>(0)); } return 0; }