I've just committed a whole bunch of files. Much of the work represented by these commits was done by Greg (vorenhutz). I'm not listing individual files, since that's available on the cvs mailing list and its archives.
The new stuff includes:
- Universe and System used to return std::vectors of UniverseObject*s, but now you can get all objects of type T using FindObjects<T>() (no predicate), and you'll get a std::vector of T*s, so you don't have to do a dynamic_cast on each element of the vector before you use it.
- GG now supports a slightly more natural way of creating XMLElements, and a MUCH more natural way of representing objects in XML text. Check out PopCenter::XMLEncode() for a before-and-after look at the code. The representational difference is this:
Before:
Code:
<PopCenter>
<m_pop value="0"/>
<m_max_pop value="8"/>
<m_growth value="0"/>
<m_race value="-1"/>
</PopCenter>
After:
Code:
<PopCenter>
<m_pop>0</m_pop>
<m_max_pop>8</m_max_pop>
<m_growth>0</m_growth>
<m_race>-1</m_race>
</PopCenter>
You can see the code difference for yourself. Try to use the new style of XMLEncode code in the future.
- The new v0.2 universe generation code is in place, including starlanes. The starlanes are only tentative, since I have asked Aq about changing the starlane aglorithm. Every star is not guaranteed to have at least one starlane, but this code is otherwise compliant with the v0.2 spec.