Michael T. Pope
2015-08-06 10:09:19 UTC
I have been working on the client IGC and the way it sets the active unit and
interacts with the GUI in general. The patch is now fairly intrusive so I
have held it up for some play testing. One important oddity is that when we
move a unit there is the following:
if (!gui.onScreen(tile)) gui.setSelectedTile(tile);
I think this expresses things poorly. I do not think we really want
to select the tile, all that is needed is that this new tile where a
unit has just moved to should be made visible, and setSelectedTile is
a convenient way to do this. (Note: onScreen() does not test the map
as displayed but returns false for a certain amount of visible edge,
so it is impossible to completely move off screen without having
onScreen() fail earlier, which is probably a good thing)
ISTM it would be better to have a GUI routine that wrapped this up.
Perhaps GUI.ensureTileVisible(Tile)? It would also be useful in
IGIH.animate*(). The controller then is expressing the requirement
more clearly, and onScreen would not need to be public. Comment from
the GUI wrangler:-)?
BTW, terrain mode is working again for me following git.5f978b. I
updated the wiki.
Cheers,
Mike Pope
interacts with the GUI in general. The patch is now fairly intrusive so I
have held it up for some play testing. One important oddity is that when we
move a unit there is the following:
if (!gui.onScreen(tile)) gui.setSelectedTile(tile);
I think this expresses things poorly. I do not think we really want
to select the tile, all that is needed is that this new tile where a
unit has just moved to should be made visible, and setSelectedTile is
a convenient way to do this. (Note: onScreen() does not test the map
as displayed but returns false for a certain amount of visible edge,
so it is impossible to completely move off screen without having
onScreen() fail earlier, which is probably a good thing)
ISTM it would be better to have a GUI routine that wrapped this up.
Perhaps GUI.ensureTileVisible(Tile)? It would also be useful in
IGIH.animate*(). The controller then is expressing the requirement
more clearly, and onScreen would not need to be public. Comment from
the GUI wrangler:-)?
BTW, terrain mode is working again for me following git.5f978b. I
updated the wiki.
Cheers,
Mike Pope