private void StructureSetTheme(Session session, Packet packet) { uint cityId; uint structureId; string theme; try { cityId = packet.GetUInt32(); structureId = packet.GetUInt32(); theme = packet.GetString(); } catch (Exception) { ReplyError(session, packet, Error.Unexpected); return; } ICity city; IStructure structure; locker.Lock(cityId, structureId, out city, out structure).Do(() => { if (city == null || structure == null || city.Owner != session.Player) { ReplyError(session, packet, Error.ObjectNotFound); return; } var result = themeManager.SetStructureTheme(structure, theme); ReplyWithResult(session, packet, result); }); }