www.pudn.com > MyGame.rar > Exp.h


// Exp.h: interface for the CExp class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_EXP_H__FC8610DB_C3EF_4172_8797_F1AE77DFC45D__INCLUDED_) 
#define AFX_EXP_H__FC8610DB_C3EF_4172_8797_F1AE77DFC45D__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
#include "GameObjTimed.h" 
 
class CExp : public CGameObjTimed   
{ 
public: 
	CExp(); 
	virtual ~CExp(); 
 
	int Draw(); 
	static CExp* LightOwner[3]; 
	static void LightOffAll() 
	{ 
		for(int i=0;i<3;++i) 
		{ 
			LightOwner[i]=0; 
			glDisable(GL_LIGHT1+i); 
		} 
	} 
 
	void LightOn() 
	{ 
		int i =0; 
		while(LightOwner[i] && i<3) ++i; 
		if(i!=3)  
		{ 
			LightOwner[i]=this; 
			float lp[4]={p.v[0],p.v[1],p.v[2],1}; 
			glPushMatrix(); 
			glLoadIdentity(); 
			glLightfv(GL_LIGHT1+i,GL_POSITION,lp); 
			glPopMatrix(); 
			glEnable(GL_LIGHT1+i); 
		} 
	} 
 
	void LightOff() 
	{ 
		int i =0; 
		while(LightOwner[i]!=this && i<3) ++i; 
		if(i!=3)  
		{ 
			LightOwner[i]=0; 
			glDisable(GL_LIGHT1+i); 
		} 
	} 
	 
	void Update(int t) 
	{ 
		CGameObjTimed::Update(t); 
		if(!active) LightOff(); 
	} 
}; 
 
#endif // !defined(AFX_EXP_H__FC8610DB_C3EF_4172_8797_F1AE77DFC45D__INCLUDED_)