Files
firestorm/Gameleap/code/mw4/Code/MW4GameEd2/GUILight.h
T
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
2026-06-24 21:28:16 -05:00

143 lines
3.7 KiB
C++

// GUILight.h: interface for the GUILight class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_GUILIGHT_H__98695BE0_C61E_4358_9A6C_E01EB6FFCDE1__INCLUDED_)
#define AFX_GUILIGHT_H__98695BE0_C61E_4358_9A6C_E01EB6FFCDE1__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "EdGUIObject.h"
namespace gosFX
{
class Light;
};
class GUILight : public EdGUIObject
{
protected:
gosFX::Light *MyLight;
void Copy(GUILight &obj);
void UpdateMat();
void AddToMap();
void RemoveFromMap();
void Clear();
void SetToDefault();
public:
virtual void Build()=0;
RGBColor GetColor();
void SetColor(RGBColor &col);
Scalar GetIntensity();
void SetIntensity(Scalar);
void AssociateTo(gosFX::Light *light);
void AddPanel(CObjPanelDlg *pnl,UndoCommand **cmd);
void Dissociate()
{ MyLight=NULL; InMap=false;}
GUILight(CString name="Light");
void UpdateVisibility(DWORD visflag) { SetHide(visflag&SHOW_LIGHTS?false:true);}
~GUILight();
};
class GUIAmbientLight : public GUILight
{
protected:
void Copy(GUIAmbientLight &obj);
public:
void AddPanel(CObjPanelDlg *pnl,UndoCommand **cmd);
EdGUIObject *Clone();
GUIAmbientLight(CString name="Ambient_Light");
void Build();
~GUIAmbientLight();
CString GetTypeName() {return ("Ambient_Light");}
int GetUnSelIcon() {return ICON_AMBIENTLIGHT; }
int GetSelIcon() {return ICON_AMBIENTLIGHT; }
void Draw(DrawInfo &dinf) {}
void DrawTag(DrawInfo &dinf, unsigned long tag_flags) {}
};
class GUIInfiniteLight : public GUILight
{
protected:
void Copy(GUIInfiniteLight &obj);
public:
void AddPanel(CObjPanelDlg *pnl,UndoCommand **cmd);
EdGUIObject *Clone();
GUIInfiniteLight(CString name="Infinite_Light");
void Build();
~GUIInfiniteLight();
CString GetTypeName() {return ("Infinite_Light");}
int GetUnSelIcon() {return ICON_INFINITELIGHT; }
int GetSelIcon() {return ICON_INFINITELIGHT; }
void Draw(DrawInfo &dinf) {}
void DrawTag(DrawInfo &dinf, unsigned long tag_flags) {}
};
class GUILookUpLight : public GUIInfiniteLight
{
protected:
void Copy(GUILookUpLight &obj) {return;}
public:
void AddPanel(CObjPanelDlg *pnl,UndoCommand **cmd);
EdGUIObject *Clone() { return NULL;}
GUILookUpLight(CString name="LookUp_Light");
void Build() {return;}
~GUILookUpLight();
CString GetTypeName() {return ("LookUp_Light");}
int GetUnSelIcon() {return ICON_LOOKUPLIGHT; }
int GetSelIcon() {return ICON_LOOKUPLIGHT; }
void Draw(DrawInfo &dinf);
};
class GUIPointLight : public GUILight
{
protected:
void Copy(GUIPointLight &obj);
public:
Scalar GetInnerRad();
void SetInnerRad(Scalar);
Scalar GetOuterRad();
void SetOuterRad(Scalar);
void AddPanel(CObjPanelDlg *pnl,UndoCommand **cmd);
void Build();
EdGUIObject *Clone();
GUIPointLight(CString name="Point_Light",Point3D pnt=Point3D(0,0,0));
~GUIPointLight();
CString GetTypeName() {return ("Point_Light");}
int GetUnSelIcon() {return ICON_POINTLIGHT; }
int GetSelIcon() {return ICON_POINTLIGHT; }
void Draw(DrawInfo &dinf);
};
class GUISpotLight : public GUIPointLight
{
protected:
void Copy(GUISpotLight &obj);
public:
Scalar GetSpreadAngle();
void SetSpreadAngle(Scalar);
void AddPanel(CObjPanelDlg *pnl,UndoCommand **cmd);
void Build();
EdGUIObject *Clone();
GUISpotLight(CString name="Spot_Light",Point3D pnt=Point3D(0,0,0));
~GUISpotLight();
CString GetTypeName() {return ("Spot_Light");}
int GetUnSelIcon() {return ICON_SPOTLIGHT; }
int GetSelIcon() {return ICON_SPOTLIGHT; }
void Draw(DrawInfo &dinf);
};
#endif // !defined(AFX_GUILIGHT_H__98695BE0_C61E_4358_9A6C_E01EB6FFCDE1__INCLUDED_)