- (*(int *)si->value == AUTO ? TRUE :
- *(int *)si->value == TRUE ? FALSE : AUTO) :
- (*(int *)si->value == TRUE ? AUTO :
- *(int *)si->value == AUTO ? FALSE : TRUE));
+ (*(int *)si->value == STATE_AUTO ? STATE_TRUE :
+ *(int *)si->value == STATE_TRUE ? STATE_FALSE : STATE_AUTO) :
+ (*(int *)si->value == STATE_TRUE ? STATE_AUTO :
+ *(int *)si->value == STATE_AUTO ? STATE_FALSE : STATE_TRUE));
+ }
+ else if (si->type & TYPE_YES_NO_ASK)
+ {
+ *(int *)si->value =
+ (dx == -1 ?
+ (*(int *)si->value == STATE_ASK ? STATE_TRUE :
+ *(int *)si->value == STATE_TRUE ? STATE_FALSE : STATE_ASK) :
+ (*(int *)si->value == STATE_TRUE ? STATE_ASK :
+ *(int *)si->value == STATE_ASK ? STATE_FALSE : STATE_TRUE));