Esempio n. 1
0
void StarMesh::InitShape()
{
	
	CreateVertices();
	CreateIndices();
	CreateNormals();
	CreateTextureCoords();
}
CMistyFog::CMistyFog(int index, CWorldEffect *owner, bool buddy) :
	CWorldEffect(owner),
		
	mSize(0.05f*2.0f),
	mMinSize(0.05f*3.0f),
	mMaxSize(0.15f*2.0f),
	mAlpha(1.0f),
	mAlphaFade(false),
	mBuddy(buddy)
{
	char			name[1024];
	unsigned char	*pos;
	int				x, y;

	if (mBuddy)
	{
		mRendering = false;

//		mImage = ((CMistyFog *)owner)->GetImage();
		mData = ((CMistyFog *)owner)->GetData();
		mWidth = ((CMistyFog *)owner)->GetWidth();
		mHeight = ((CMistyFog *)owner)->GetHeight();
	}
	else
	{
		sprintf(name, "gfx/world/fog%d.tga", index);

		R_LoadImage( name, &mData, &mWidth, &mHeight );
		if (!mData)
		{
			ri.Error (ERR_DROP, "Could not load %s", name);
		}

		pos = mData;
		for(y=0;y<mHeight;y++)
		{
			for(x=0;x<mWidth;x++)
			{
				pos[3] = pos[0];
				pos += 4;
			}
		}

//		mImage = R_CreateImage(name, mData, mWidth, mHeight, false, true, false, GL_REPEAT);

		mRendering = true;
		AddSlave(new CMistyFog(index, this, true));
	}

	mSpeed = 90.0 + FloatRand() * 20.0;

	CreateTextureCoords();
}
void CMistyFog::ParmUpdate(CWorldEffect *effect, int which)
{
	CWorldEffect::ParmUpdate(effect, which);

	switch(which)
	{
		case MISTYFOG_RENDERING:
			if (effect == mOwner || effect == mSlave)
			{
				mAlpha = 0.0;
				mAlphaDirection = 0.025f;
				mAlphaFade = true;
				CreateTextureCoords();
				mRendering = true;
			}
			break;
	}
}