The first problem was with the ScrollView skin, which had a full-sized client area. Since the scrollbar starts out visible, MyGUI expects the client area to be smaller to accomodate for the scrollbar width. As a result, the starting canvas size becomes bigger than the view size.
Another bug was with the MWList code: reducing the canvas size for the scrollbar is not needed, since MyGUI is already doing that, and attempting to do it manually interferes with the view offset.
I've always felt that having the version/revision text at the bottom
center in the main menu was a bit out of place. A more common place for
this kind of thing is in one of the corners. I chose bottom right.
Aditionally I right aligned it and changed the v and r in version and
revision to capital letters.
Comments?
The confirmation buttons for quitting or starting a new game were
driving me crazy by not being ok left and cancel right, as e.g. vanilla
is.
Then I noticed the text isn't the same as in vanilla either. It should
be yes/no, not ok/cancel.
To make it even more authentic I also centered the buttons. Had to
remove autosized buttons for this. I think it looks fine still.
Comments?
The progress is not particularly accurate. It simply uses the current / total number of records written/read as indication. Cell records are currently the largest by far, but there is a good chance that could be optimized using a change tracking system.
Checking for emptiness using size() might be inefficient, because
it can take linear time, while empty() is guaranteed to take only
constant time.
For non-primitive types, postfix ++ operators are inefficient
compared to prefix ++ operators, because post-increment usually
involves keeping a copy of the previous value around.