improve scmap color coding to tile function Figure out some specific bitmask values of Data::StarCraft::Tileset ->tileavg->{walk} (besides for &1 for obvious walkability, and ignoring anything above the random pick of 10). Ramps (height transfers) are always &16 at some point, so mark those with green because they're usually very significant control points. &2 and 4 seem to indicate ground level. Not highlighted yet because tile color usually gives a good clue already. Maybe a special mode later. &8 appears to be high level, but never for ground, but only sole objects like statues (blocking vision?). Don't know what to do with those exactly, but set a bright red color for now to identify them.
complete tile drawing support in Data::StarCraft::Tileset Read minitile data (including full bitmaps) and palette. Several new methods to get tile information: - tile gives general details, including an image of one pixel per minitile. - tileavg aggregates all minitile data to just one total per tile, including the average color of all minitiles. - sprite gives the full bitmap of any tile. Replaces manual guesswork in Data::StarCraft::Map and conversion in scmap.
capture and graphplay scripts take command line options Fix the need to modify code for changing run mode. Debug mode can be triggered by --verbose (-v). Map capturing can be enabled by --map (-m). Common --version and --help are handled as a bonus (short documentation setup written for capture).
simplify paths produced by graphplay Only keep first and last entries for identical values. In other words, horizontal lines will not have each pixel specified, but only the two corners. This already results in significantly smaller files (test case went from 1.8MB to 1.5MB, and to just 130kB for unit graphs!). The same thing should be done for sloped lines, but this is not as obviously simple.
graphplay to draw SVG graphs of gameplay statistics Parses game stats output of capture script, and draws progression of minerals, gas, and units over time per player. SVG is simple enough to write manually (template at *DATA), but produces essentially the same as SVG::TT::Graph::TimeSeries would (except much faster and easier to understand/modify).