From a92829b8f10f91510b74103f024005d9c578b94e Mon Sep 17 00:00:00 2001 From: Petr Baudis Date: Sun, 4 Jul 2010 13:45:05 +0200 Subject: [PATCH] Pattern CAPTURE, AESCAPE: Set up payload by traits only when we can return immediately --- pattern.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/pattern.c b/pattern.c index fb7b892..017de77 100644 --- a/pattern.c +++ b/pattern.c @@ -145,15 +145,15 @@ pattern_match_capture(struct pattern_config *pc, pattern_spec ps, #ifdef BOARD_TRAITS if (!trait_at(b, m->coord, m->color).cap) return f; - if (PS_PF(CAPTURE, 1STONE)) - f->payload |= trait_at(b, m->coord, m->color).cap1 << PF_CAPTURE_1STONE; - if (PS_PF(CAPTURE, TRAPPED)) - f->payload |= (!trait_at(b, m->coord, m->color).safe) << PF_CAPTURE_TRAPPED; /* Capturable! */ if (!(PS_PF(CAPTURE, LADDER) || PS_PF(CAPTURE, RECAPTURE) || PS_PF(CAPTURE, ATARIDEF) || PS_PF(CAPTURE, KO))) { + if (PS_PF(CAPTURE, 1STONE)) + f->payload |= trait_at(b, m->coord, m->color).cap1 << PF_CAPTURE_1STONE; + if (PS_PF(CAPTURE, TRAPPED)) + f->payload |= (!trait_at(b, m->coord, m->color).safe) << PF_CAPTURE_TRAPPED; (f++, p->n++); return f; } @@ -240,13 +240,12 @@ pattern_match_aescape(struct pattern_config *pc, pattern_spec ps, #ifdef BOARD_TRAITS if (!trait_at(b, m->coord, stone_other(m->color)).cap) return f; - /* Opponent can capture something and this move is safe - * for us! */ - if (PS_PF(AESCAPE, 1STONE)) - f->payload |= trait_at(b, m->coord, stone_other(m->color)).cap1 << PF_AESCAPE_1STONE; - if (PS_PF(CAPTURE, TRAPPED)) - f->payload |= (!trait_at(b, m->coord, m->color).safe) << PF_AESCAPE_TRAPPED; + /* Opponent can capture something! */ if (!PS_PF(AESCAPE, LADDER)) { + if (PS_PF(AESCAPE, 1STONE)) + f->payload |= trait_at(b, m->coord, stone_other(m->color)).cap1 << PF_AESCAPE_1STONE; + if (PS_PF(CAPTURE, TRAPPED)) + f->payload |= (!trait_at(b, m->coord, m->color).safe) << PF_AESCAPE_TRAPPED; (f++, p->n++); return f; } -- 2.11.4.GIT