﻿This is a Minesweeper Arbiter 0.52 distribution.

If you notice a bug or some weird behaviour, please report on http://www.minesweeper.info/forum/viewtopic.php?t=82

List of known bugs and other current info:
http://www.minesweeper.info/forum/viewtopic.php?t=82#p529

The history is contained in 'stats.dat' and 'statszini.dat' files. 'stats.dat' is compatible with earlier versions.

New arbiter.dat options:
- CounterRefresh = interval between counters refreshes, in milliseconds
- HiScorePath = path to autosave records
- HiScorePrefix = prefix for autosaved record files
- SkinAutoSwitch = enable(1)/disable(0) switching to skin written in video file
- ClearCounters = enable(1)/disable(0) counters clearing on f2/smiley
- IRCBlastedCounters = list of counters to copy into clipboard after blast, first one is _excluded_
- TrayIcon = enable(1)/disable(0) minimizing to tray 
You can tune these options through manual editing of arbiter.dat file.
- TextHistorySaveWins = enable(1)/disable(0) dumping stats of won games into texthistory.csv
- TextHistorySaveBlasts = enable(1)/disable(0) dumping stats of blasted games into texthistory.csv
- TextHistorySaveF2s = enable(1)/disable(0) dumping stats of f2ed games into texthistory.csv

Arbiter shouldn't be running when you edit arbiter.dat, or it'll overwrite it with old values on closing.

0.52.3
- fixed a bug in ZiNi implementation

0.52.2
- fixed timer freezing after logout/system lock
- fixed crashes on previewing

0.52
- slightly changed the way boards are stored in memory
- slightly changed the timer mechanism
- videos aren't being corrupted after watching preview anymore (bug introduced in 0.50.1)
- slider on video toolbar is now moveable
- replaced links to rilian's site and mail with minesweeper.info
- fixed crashes on chord-blasts when dumping text history
- pause button now doesn't restart timer after video is finished

0.51
- slightly changed the way boards are stored in memory

0.50.1
- changed timer mechanism
- added <style> pattern for autosave conditions
- added possibility to dump stats of all games into texthistory.csv

0.49.6
- fixed problems with not showing proper time decimals when time exceeds 100
- fixed lags when showing very long videos
- top25 ioe now shows ioe, not correctness
- removed the odd warning when time exceeds 349

0.49.5
- ZiNi and HZiNi for int and exp games are now shown in CSV and HTML output
- '^' operator supported in counters template; it has the same priority as '*' and '/'

0.49.4
- removed debug protocol output after such events as win, blast or restart (because debug protocol lags on some machines)

0.49.3
- fixed incorrect time counter

0.49.2
- fixed incorrect AVF processing (referred to as "1280 bug" in the help file)

0.49.1
- dealt with the vulnerability
- fixed the bugs with incorrect effective clicks counters on replays
- integer for x.00 is now x+1
- made the videos smaller
- removed OBV/s record popups

0.48.5
- fixed preflag recording bug introduced in 0.47.1
- fixed right button release outside of board processing
- fixed middle button release outside of board processing
- fixed expert distribution calc in debug protocol
- fixed tray icon behavior
- no more missing games in statistics
- GUI doesn't show "time zone" settings since the thing isn't working as it should
- statszini.dat corruption can be detected now
- ZiNi counters are now correct while UPKing
- window$(c)(r)(tm)-related 0x1A(r)(c)(tm)-bug(r)(c)(tm) which appeared while loading MBF fixed

0.48.4
- it's now possible to display arbitrary number of digits after decimal point for each counter
  * syntax: CounterName | COUNTER {Number-of-digits}
- bugs concerning zeroes after point in integer counters fixed

0.48.3
- bug with floating point in autosave conditions fixed
- it's now possible to set 1 second interval for beep
- bug which occured while playing old (<0.45) videos with rilian click + left click sequence solved
- you may now disable minimizing to tray

0.48.2
- top time is now sensitive to +1 setting
- 3bv limits are now cumulative
- bugs with floating point fixed

0.48.1
- fixed LCLK counter (47)
- f3 now works while replaying
- stats window captions fixed (47)
- added BBBVS counter which is consistent with history, it rounds down instead of rounding to near like BBBVDONE/TIMEREAL
- cut filenames with dot as floating point fixed
- <IOE> template is available for autosaving
- board flickering hopefully fixed
- added counters TIMEINT and TIMEESTINT
- insertion sort replaced with quicksort, raising the speed of stats management
- added option tuning which counters to copy after blast

0.47 final
- zini stats added to Stats->Review pages
- added an option not to reset counters after f2/smiley hit
- daily stats added
- stats->times review 0 seconds bug fixed (47d1)
- upk feature

0.47d8
- rilian clicks while previewing fixed
- infinite loops while generating high density board fixed
- left button release doesn't start timer if it wasn't left click on empty square
- frozen pressed 3x3 area fixed (47d3)
- truncated output of irc addon after blasted games fixed
- time is shown as x.00 not x; x.y0 not x.y
- no-numbers and no-color skins
- zini stats file added
- new basic index: 
  * MISUNFLAGS

0.47d7
- Curtis' BBBVDONE patch applied
- right clicks related counters behaviour slightly changed, see explanation below
- new basic indices supported:
  * MISFLAGS
  * UNFLAGS
  * CLASSICRCLK
  * CLASSICTOTALCLK

0.47d6
- 'Play Video' function doesn't cause history freezing anymore (47d1)
- ISLANDS counter works properly during replay

0.47d5
- 'Preview Replay' function doesn't corrupt video anymore (47d1 bug)
- timer bug on +1 settings fixed
- timestamp now always contains rt+1 for compatibility
- autosaving isn't interrupted if one of conditions met

0.47d4
- no more depressed squares on rilian click

0.47d3
- counters aren't calculated anymore if they're disabled
- top 25 lists are now sensitive to realtime/+1 settings

0.47d2
- pop-up now appears at the center of the board
- negative time and time reset after viewing history or hi-scores fixed (the bug appeared in 0.47d1)
- time sum works properly in recorder timer mode

0.47d1
- timer differences fixed
- incorrect BBBVDONE and OPENINGSDONE fixed
- correctness and other effective clicks related indices aren't shown in legal mode anymore
- "IOE record" is now IOE not correctness
- incorrect effective clicks value for 1st game after level switch fixed
- bugs involving read-only .avf fixed
- "Save replay" option doesn't become disabled after first use
- dead menu options removed
- some links updated
- new basic indices supported:
  * OBV	    - Schu's Optimized Board Value
  * AVGOBV  - average OBV for current level
  * GZINI   - Greedy ZiNi value
  * HZINI   - Human ZiNi value
  * LEVEL   - 1 for beg, 2 for int, 3 for exp, 4 for custom

Arbiter's internals are now working in realtime. If you're +1 fan, turn on the "Recorder style timer" option in Preferences->Game Style.

Beep and restart by timer are working in realtime too. E.g., if beep setting equals '6', Arbiter will beep after 6 seconds, ie on 6.00 for those who use realtime and on 7.00 for +1-ers.

RCLK counter now works slightly different: if you make 'wasted' right click on opened number, but it's just a part of a chord, this click doesn't count as right, only as double. Also, right click counts now as effective iff it changes something on the board, i.e. misflags and unflags are now effective.

If Arbiter is lagging, try to do one of the following:
a) increase counter refresh interval:
 - open arbiter.dat in text editor
 - find the string 'CounterRefresh=4'
 - replace '4' with larger number
b) disable live counters:
 - disable Preferences->Player->Calculate Counters While Playing

If you want to watch videos in your skin (not in skin games were played), open arbiter.dat and replace SkinAutoSwitch=1' with 'SkinAutoSwitch=0'.

For more info on ZiNi see http://www.minesweeper.info/forum/viewtopic.php?t=70

0.47 development was inspired by Kamil Murański. Patch for BBBVDONE counter was written by Curtis Bright. The bugs were reported by Andrew McCauley, Arsen Balishyan, Bertie Seyffert, Curtis Bright, Damien Moore, Daniel Brim, Fritz Löhr, Ian Fraser, Jonian Grazhdani, Manuel Heider, Michael Gottlieb, Michael Rabich, Ronny De Winter, Thomas Kolar, Yuuki Nakagiri (sorry if i forgot someone).
