In config.xml, it's possible to edit the blinds list to have negative values. While the game does sanity checks on the starting blind, manual changes (when you opt not to use auto-doubling) aren't subject to the same check.
In some ways negative blinds act like you would expect, and in some ways they don't. The players who put up blinds have their totals increased, and the winner of such a pot loses money (unless something bad happens). If you set a blind of, say, -99, then a player's buttons will show "Raise $0", "Call $-198", and "Fold", where clicking the raise button yields no response and locks out any further action--all you can do is wait for timeout and fold automatically.
If a pot with negative money goes to showdown, it's evaluated correctly and the "winner" loses chips. Strangely enough, a player whose negative win shoots them past 0, rather than to 0, is NOT eliminated! If, however, the hand ends with all but one player folding (as logically it should--the only strategically sound action in such a hand is for everyone to fold, with the net effect that the small blind takes chips from the big blind) then the game chokes. In an internet game, all players are immediately kicked off the server. In a local game, the client abruptly closes with the following message sent to console:
| Code: |
Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.
terminate called after throwing an instance of 'LocalException'
what(): src/engine/local_engine/localboard.cpp (134): Error 10020
./pokerth.sh: line 9: 3644 Aborted $dirname/$appname $*
|
Full mathematical support of negative blinds is clearly not going to be a high priority, but at least what you have right now is a bug and the fix seems rather simple (sanitize the blinds list beyond the initial value).