private void buttonOk_Click(object sender, EventArgs e) { DialogResult = DialogResult.Cancel; if (comboBox1.SelectedItem != null) { TriadCard card = comboBox1.SelectedItem as TriadCard; // check modified numbers for (int idx = 0; idx < 4; idx++) { if (card.Sides[idx] != cardState.sideNumber[idx]) { ImageHashData digitPattern = new ImageHashData() { type = EImageHashType.CardNumber, previewBounds = cardState.sideInfo[idx].scanBox, previewContextBounds = cardState.scanBox, isKnown = true }; digitPattern.CalculateHash(cardState.sideInfo[idx].hashValues); digitPattern.ownerOb = card.Sides[idx]; PlayerSettingsDB.Get().RemoveKnownHash(digitPattern); if (card.Sides[idx] != cardState.sideInfo[idx].matchNum) { PlayerSettingsDB.Get().AddKnownHash(digitPattern); cardState.sideInfo[idx].hasOverride = true; } cardState.sideNumber[idx] = card.Sides[idx]; cardState.card = card; cardState.failedMatching = false; DialogResult = DialogResult.OK; } } // check multicard hash if (comboBox1.Items.Count > 1 && cardState.cardImageHash != null && cardState.card != card) { cardState.cardImageHash.ownerOb = card; PlayerSettingsDB.Get().RemoveKnownHash(cardState.cardImageHash); PlayerSettingsDB.Get().AddKnownHash(cardState.cardImageHash); cardState.card = card; DialogResult = DialogResult.OK; } } Close(); }
private int ParseCactpotCircle(FastBitmapHSV bitmap, Rectangle circleBox, string debugName) { float[] values = ExtractCirclePattern(bitmap, circleBox); int result; ImageHashData pattern = new ImageHashData() { type = EImageHashType.Cactpot, previewBounds = circleBox, isKnown = true }; pattern.CalculateHash(values); // allow overwrites in case there is a user defined value, must be exact match ImageHashData overridePattern = ImageHashDB.Get().FindExactMatch(pattern); if (overridePattern != null) { result = (int)overridePattern.ownerOb; } else { result = classifierCactpot.Calculate(values, out float DummyPct); pattern.isAuto = true; } pattern.ownerOb = result; screenAnalyzer.AddImageHash(pattern); Rectangle previewBounds = new Rectangle(circleBox.X + circleBox.Width, circleBox.Y, 8, 16); debugHashes.Add(new ImageUtils.HashPreview() { hashValues = values, bounds = previewBounds }); debugShapes.Add(GetCirclePatternBounds(circleBox)); return(result); }