69 lines
1.6 KiB
C++
69 lines
1.6 KiB
C++
// LightSourceRecord.h
|
|
|
|
#ifndef __FLT_LIGHT_SOURCE_RECORD_H
|
|
#define __FLT_LIGHT_SOURCE_RECORD_H
|
|
|
|
|
|
#include "opcodes.h"
|
|
#include "Record.h"
|
|
#include "RecordVisitor.h"
|
|
|
|
|
|
namespace flt {
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
//
|
|
// LightSourceRecord
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
typedef struct LightSourceTag
|
|
{
|
|
SRecHeader RecHeader;
|
|
char szIdent[8]; // 7 char ASCII ID; 0 terminates
|
|
int32 diReserved_1;
|
|
int32 diIndex; //index into lightpalette
|
|
int32 diReserved_2;
|
|
uint32 dwFlags; //bits from left to right
|
|
//0=enabled
|
|
//1=global
|
|
//2=reserve
|
|
//3=export
|
|
//4=reserved
|
|
//5-31 spare
|
|
int32 diReserved_3;
|
|
float64x3 Coord; // x,y,z coordinate
|
|
float32 sfYaw;
|
|
float32 sfPitch;
|
|
} SLightSource;
|
|
|
|
|
|
class LightSourceRecord : public PrimNodeRecord
|
|
{
|
|
public:
|
|
|
|
LightSourceRecord();
|
|
|
|
virtual Record* clone() const { return new LightSourceRecord(); }
|
|
virtual const char* className() const { return "LightSourceRecord"; }
|
|
virtual int classOpcode() const { return LIGHT_SOURCE_OP; }
|
|
virtual void accept(RecordVisitor& rv) { rv.apply(*this); }
|
|
// virtual void traverse(RecordVisitor& rv);
|
|
|
|
protected:
|
|
|
|
virtual ~LightSourceRecord();
|
|
|
|
virtual void endian();
|
|
};
|
|
|
|
|
|
|
|
}; // end namespace flt
|
|
|
|
#endif
|
|
|