void Activate(unsigned int aId) { const WeaponTemplate &weapontemplate = Database::weapontemplate.Get(aId); Weapon *weapon = new Weapon(weapontemplate, aId); Database::weapon.Put(aId, weapon); weapon->SetControl(aId); }
void PostActivate(unsigned int aId) { Weapon *weapon = Database::weapon.Get(aId); for (unsigned int aControlId = aId; aControlId != 0; aControlId = Database::backlink.Get(aControlId)) { if (const Controller *controller = Database::controller.Get(aControlId)) { weapon->SetControl(aControlId); weapon->SetPrevFire(controller->mFire[Database::weapontemplate.Get(aId).mChannel]); break; } } weapon->Activate(); }