// LoadLocationNameList(u32 index) -> (u32 outCount, buffer<nn::time::LocationName, 6>) public ResultCode LoadLocationNameList(ServiceCtx context) { uint index = context.RequestData.ReadUInt32(); ulong bufferPosition = context.Request.ReceiveBuff[0].Position; ulong bufferSize = context.Request.ReceiveBuff[0].Size; ResultCode errorCode = _timeZoneContentManager.LoadLocationNameList(index, out string[] locationNameArray, (uint)bufferSize / 0x24); if (errorCode == 0) { uint offset = 0; foreach (string locationName in locationNameArray) { int padding = 0x24 - locationName.Length; if (padding < 0) { return(ResultCode.LocationNameTooLong); } context.Memory.Write(bufferPosition + offset, Encoding.ASCII.GetBytes(locationName)); MemoryHelper.FillWithZeros(context.Memory, bufferPosition + offset + (ulong)locationName.Length, padding); offset += 0x24; } context.ResponseData.Write((uint)locationNameArray.Length); } return(errorCode); }