rem: spawn_gas_cloud (ElementPtr) PELEMENT ElementPtr;
add: spawn_gas_cloud (PELEMENT ElementPtr)
context: spawn_gas_cloud (ElementPtr)PELEMENT ElementPtr;{#define GAS_SPEED 16#define GAS_HITS 100#define GAS_OFFSET 2#define NUM_GAS_CLOUDS 16	SIZE dx, dy;	STARSHIPPTR StarShipPtr;	MISSILE_BLOCK MissileBlock;	GetElementStarShip (ElementPtr, &StarShipPtr);	MissileBlock.cx = ElementPtr->next.location.x;	MissileBlock.cy = ElementPtr->next.location.y;	MissileBlock.farray = StarShipPtr->RaceDescPtr->ship_data.special;	MissileBlock.index = 0;	MissileBlock.sender =			(ElementPtr->state_flags & (GOOD_GUY | BAD_GUY))			| IGNORE_SIMILAR;	MissileBlock.pixoffs = 20;	MissileBlock.speed = GAS_SPEED;	MissileBlock.hit_points = GAS_HITS;	MissileBlock.damage = GAS_DAMAGE;	MissileBlock.life =			GetFrameCount (MissileBlock.farray[0]) * (GAS_RATE + 1) - 1;	MissileBlock.preprocess_func = gas_cloud_preprocess;	MissileBlock.blast_offs = GAS_OFFSET;	GetCurrentVelocityComponents (&ElementPtr->velocity, &dx, &dy);	for (MissileBlock.face = 0;			MissileBlock.face < ANGLE_TO_FACING (FULL_CIRCLE);			MissileBlock.face +=			(ANGLE_TO_FACING (FULL_CIRCLE) / NUM_GAS_CLOUDS))	{		HELEMENT hGasCloud;		hGasCloud = initialize_missile (&MissileBlock);		if (hGasCloud)		{			ELEMENTPTR GasCloudPtr;			LockElement (hGasCloud, &GasCloudPtr);			SetElementStarShip (GasCloudPtr, StarShipPtr);			GasCloudPtr->hTarget = 0;			GasCloudPtr->turn_wait = GAS_RATE - 1;			GasCloudPtr->collision_func = gas_cloud_collision;			DeltaVelocityComponents (&GasCloudPtr->velocity, dx, dy);			UnlockElement (hGasCloud);			PutElement (hGasCloud);		}	}}