Typical example, from BeamLaserProjectile.cpp:
Code: Select all
CBeamLaserProjectile::CBeamLaserProjectile(const float3& startPos, const float3& endPos,
float startAlpha, float endAlpha, const float3& color, const float3& color2,
CUnit* owner, float thickness, float corethickness, float flaresize,
const WeaponDef* weaponDef, int ttl, float decay):
CWeaponProjectile((startPos + endPos) * 0.5f, ZeroVector, owner, 0, ZeroVector, weaponDef, 0, false, ttl),
startPos(startPos),
endPos(endPos),
thickness(thickness),
corethickness(corethickness),
flaresize(flaresize),
decay(decay)
{
checkCol=false;
[size=150][b]useAirLos=true;[/b][/size]
SetRadius(pos.distance(endPos));
if (weaponDef) {
midtexx = weaponDef->visuals.texture2->xstart
+ (weaponDef->visuals.texture2->xend
- weaponDef->visuals.texture2->xstart) * 0.5f;
} else {
midtexx=0;
}
corecolstart[0]=(unsigned char)(color2.x*startAlpha);
corecolstart[1]=(unsigned char)(color2.y*startAlpha);
corecolstart[2]=(unsigned char)(color2.z*startAlpha);
corecolstart[3]=1;
corecolend[0]=(unsigned char)(color2.x*endAlpha);
corecolend[1]=(unsigned char)(color2.y*endAlpha);
corecolend[2]=(unsigned char)(color2.z*endAlpha);
corecolend[3]=1;
kocolstart[0]=(unsigned char)(color.x*startAlpha);
kocolstart[1]=(unsigned char)(color.y*startAlpha);
kocolstart[2]=(unsigned char)(color.z*startAlpha);
kocolstart[3]=1;
kocolend[0]=(unsigned char)(color.x*endAlpha);
kocolend[1]=(unsigned char)(color.y*endAlpha);
kocolend[2]=(unsigned char)(color.z*endAlpha);
kocolend[3]=1;
if (cegTag.size() > 0) {
ceg.Load(explGenHandler, cegTag);
}
}