Example #1
0
DROID_TEMPLATE::DROID_TEMPLATE(LineView line)
	: BASE_STATS(REF_TEMPLATE_START + line.line())
	//, aName
	//, asParts
	, buildPoints(0)
	, powerPoints(0)
	, storeCount(0)
	, numWeaps(line.i(11, 0, DROID_MAXWEAPS))
	//, asWeaps
	, droidType(line.e(9, map_DROID_TYPE))
	, multiPlayerID(line.u32(1))
	, psNext(NULL)
	, prefab(false)
	, stored(false)
	// Ignored columns: 6 - but used later to decide whether the template is for human players.
{
	std::string name = line.s(0);
	sstrcpy(aName, name.c_str());

	asParts[COMP_UNKNOWN]    = 0;  // Is this one useful for anything at all?
	asParts[COMP_BODY]       = line.stats( 2, asBodyStats,       numBodyStats)       - asBodyStats;
	asParts[COMP_BRAIN]      = line.stats( 3, asBrainStats,      numBrainStats)      - asBrainStats;
	asParts[COMP_CONSTRUCT]  = line.stats( 4, asConstructStats,  numConstructStats)  - asConstructStats;
	asParts[COMP_ECM]        = line.stats( 5, asECMStats,        numECMStats)        - asECMStats;
	asParts[COMP_PROPULSION] = line.stats( 7, asPropulsionStats, numPropulsionStats) - asPropulsionStats;
	asParts[COMP_REPAIRUNIT] = line.stats( 8, asRepairStats,     numRepairStats)     - asRepairStats;
	asParts[COMP_SENSOR]     = line.stats(10, asSensorStats,     numSensorStats)     - asSensorStats;

	std::fill_n(asWeaps, DROID_MAXWEAPS, 0);
}