public float SelectRandomItemAndGenerateNewDisplay() { Item query = SelectRandomItem(); #if VERBOSE Console.WriteLine("Layer {0}, selected {1}, drop probability: {2}", LayerDepth, query.LayerLocalId, DropProbability(query.Id)); #endif float searchedItemDistance = Item.GetDistanceSQR(query.Descriptor, SearchedItem.Descriptor); Logs.AddLast(new BrowsingLog(Logs.Count, Display.ToArray(), query, DropProbability(query.Id), searchedItemDistance, LayerDepth, BrowsingDepth)); // zoom vs pan if ((LayerDepth < Mles.Layers.Length - 1) && (CurrentZoomingStep++) % ZoomingStep == 0) { // zoom LayerDepth++; GenerateNewDisplayZoom(query, LayerDepth, DisplaySize); } else { // pan GenerateNewDisplayPan(query, LayerDepth, DisplaySize); } BrowsingDepth++; if (DisplayContainsSearchedItem()) { ItemFound = true; } return(Item.GetDistanceSQR(query.Descriptor, SearchedItem.Descriptor)); }
static void SaveLog(Log log) { Logs.AddLast(log); switch (log) { case Chat chat: if (OptionsManager.IgnoreOwnMessages && chat.Name == OptionsManager.OwnUsername) { return; } Chats.Insert(0, chat); if (chat.Translation.Message == chat.Message || chat.Translation.Message == "---") { return; } /* Send translation in chat over telnet if options allow it. */ switch (OptionsManager.SendTranslationsFrom) { case TelnetGrant.AllChat: if (chat.ChatType == ChatType.Team) { return; } break; case TelnetGrant.TeamChat: if (chat.ChatType == ChatType.All) { return; } break; } TelnetHelper.SendChatTranslation(OptionsManager.SendTranslationsTo, chat); break; case Command command: /* Check options is command is allowed */ switch (OptionsManager.AllowCommandsFrom) { case TelnetGrant.Self: if (command.Name != OptionsManager.OwnUsername) { return; } break; case TelnetGrant.TeamChat: if (command.ChatType == ChatType.All) { return; } break; default: return; } Commands.Insert(0, command); break; } }