mirror of
https://github.com/DrBeef/Raze.git
synced 2025-01-31 21:20:39 +00:00
- add a stripped-down GLDEFS parser
This commit is contained in:
parent
43a2437071
commit
0e4eeddb93
2 changed files with 336 additions and 32 deletions
284
source/core/r_data/a_dynlight.h
Normal file
284
source/core/r_data/a_dynlight.h
Normal file
|
@ -0,0 +1,284 @@
|
||||||
|
#pragma once
|
||||||
|
#include "c_cvars.h"
|
||||||
|
//#include "actor.h"
|
||||||
|
#include "cycler.h"
|
||||||
|
//#include "g_levellocals.h"
|
||||||
|
#include "tflags.h"
|
||||||
|
|
||||||
|
struct side_t;
|
||||||
|
struct seg_t;
|
||||||
|
|
||||||
|
class FSerializer;
|
||||||
|
struct FSectionLine;
|
||||||
|
|
||||||
|
enum ELightType
|
||||||
|
{
|
||||||
|
PointLight,
|
||||||
|
PulseLight,
|
||||||
|
FlickerLight,
|
||||||
|
RandomFlickerLight,
|
||||||
|
SectorLight,
|
||||||
|
DummyLight,
|
||||||
|
ColorPulseLight,
|
||||||
|
ColorFlickerLight,
|
||||||
|
RandomColorFlickerLight
|
||||||
|
};
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
LIGHT_RED = 0,
|
||||||
|
LIGHT_GREEN = 1,
|
||||||
|
LIGHT_BLUE = 2,
|
||||||
|
LIGHT_INTENSITY = 3,
|
||||||
|
LIGHT_SECONDARY_INTENSITY = 4,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum LightFlag
|
||||||
|
{
|
||||||
|
LF_SUBTRACTIVE = 1,
|
||||||
|
LF_ADDITIVE = 2,
|
||||||
|
LF_DONTLIGHTSELF = 4,
|
||||||
|
LF_ATTENUATE = 8,
|
||||||
|
LF_NOSHADOWMAP = 16,
|
||||||
|
LF_DONTLIGHTACTORS = 32,
|
||||||
|
LF_SPOT = 64
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef TFlags<LightFlag> LightFlags;
|
||||||
|
DEFINE_TFLAGS_OPERATORS(LightFlags)
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
// Light definitions
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
#if 0
|
||||||
|
class FLightDefaults
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
FLightDefaults(FName name, ELightType type = PointLight)
|
||||||
|
{
|
||||||
|
m_Name = name;
|
||||||
|
m_type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ApplyProperties(FDynamicLight * light) const;
|
||||||
|
FName GetName() const { return m_Name; }
|
||||||
|
void SetParameter(double p) { m_Param = p; }
|
||||||
|
void SetArg(int arg, int val) { m_Args[arg] = val; }
|
||||||
|
int GetArg(int arg) { return m_Args[arg]; }
|
||||||
|
uint8_t GetAttenuate() const { return m_attenuate; }
|
||||||
|
void SetOffset(float* ft) { m_Pos.X = ft[0]; m_Pos.Z = ft[1]; m_Pos.Y = ft[2]; }
|
||||||
|
void SetSubtractive(bool subtract) { if (subtract) m_lightFlags |= LF_SUBTRACTIVE; else m_lightFlags &= ~LF_SUBTRACTIVE; }
|
||||||
|
void SetAdditive(bool add) { if (add) m_lightFlags |= LF_ADDITIVE; else m_lightFlags &= ~LF_ADDITIVE; }
|
||||||
|
void SetDontLightSelf(bool add) { if (add) m_lightFlags |= LF_DONTLIGHTSELF; else m_lightFlags &= ~LF_DONTLIGHTSELF; }
|
||||||
|
void SetAttenuate(bool on) { m_attenuate = on; if (on) m_lightFlags |= LF_ATTENUATE; else m_lightFlags &= ~LF_ATTENUATE; }
|
||||||
|
void SetDontLightActors(bool on) { if (on) m_lightFlags |= LF_DONTLIGHTACTORS; else m_lightFlags &= ~LF_DONTLIGHTACTORS; }
|
||||||
|
void SetNoShadowmap(bool on) { if (on) m_lightFlags |= LF_NOSHADOWMAP; else m_lightFlags &= ~LF_NOSHADOWMAP; }
|
||||||
|
void SetSpot(bool spot) { if (spot) m_lightFlags |= LF_SPOT; else m_lightFlags &= ~LF_SPOT; }
|
||||||
|
void SetSpotInnerAngle(double angle) { m_spotInnerAngle = angle; }
|
||||||
|
void SetSpotOuterAngle(double angle) { m_spotOuterAngle = angle; }
|
||||||
|
void SetSpotPitch(double pitch)
|
||||||
|
{
|
||||||
|
m_pitch = pitch;
|
||||||
|
m_explicitPitch = true;
|
||||||
|
}
|
||||||
|
void UnsetSpotPitch()
|
||||||
|
{
|
||||||
|
m_pitch = 0.;
|
||||||
|
m_explicitPitch = false;
|
||||||
|
}
|
||||||
|
void SetType(ELightType type) { m_type = type; }
|
||||||
|
void CopyFrom(const FLightDefaults &other)
|
||||||
|
{
|
||||||
|
auto n = m_Name;
|
||||||
|
*this = other;
|
||||||
|
m_Name = n;
|
||||||
|
}
|
||||||
|
void SetFlags(LightFlags lf)
|
||||||
|
{
|
||||||
|
m_lightFlags = lf;
|
||||||
|
m_attenuate = !!(m_lightFlags & LF_ATTENUATE);
|
||||||
|
}
|
||||||
|
static void SetAttenuationForLevel(bool);
|
||||||
|
|
||||||
|
void OrderIntensities()
|
||||||
|
{
|
||||||
|
if (m_Args[LIGHT_INTENSITY] > m_Args[LIGHT_SECONDARY_INTENSITY])
|
||||||
|
{
|
||||||
|
std::swap(m_Args[LIGHT_INTENSITY], m_Args[LIGHT_SECONDARY_INTENSITY]);
|
||||||
|
m_swapped = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
FName m_Name = NAME_None;
|
||||||
|
int m_Args[5] = { 0,0,0,0,0 };
|
||||||
|
double m_Param = 0;
|
||||||
|
DVector3 m_Pos = { 0,0,0 };
|
||||||
|
int m_type;
|
||||||
|
int8_t m_attenuate = -1;
|
||||||
|
LightFlags m_lightFlags = 0;
|
||||||
|
bool m_swapped = false;
|
||||||
|
bool m_spot = false;
|
||||||
|
bool m_explicitPitch = false;
|
||||||
|
DAngle m_spotInnerAngle = 10.0;
|
||||||
|
DAngle m_spotOuterAngle = 25.0;
|
||||||
|
DAngle m_pitch = 0.0;
|
||||||
|
|
||||||
|
friend FSerializer &Serialize(FSerializer &arc, const char *key, FLightDefaults &value, FLightDefaults *def);
|
||||||
|
};
|
||||||
|
|
||||||
|
FSerializer &Serialize(FSerializer &arc, const char *key, TDeletingArray<FLightDefaults *> &value, TDeletingArray<FLightDefaults *> *def);
|
||||||
|
#endif
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
// Light associations (intermediate parser data)
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
|
class FLightAssociation
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
//FLightAssociation();
|
||||||
|
FLightAssociation(FName actorName, const char *frameName, FName lightName)
|
||||||
|
: m_ActorName(actorName), m_AssocLight(lightName)
|
||||||
|
{
|
||||||
|
strncpy(m_FrameName, frameName, 8);
|
||||||
|
}
|
||||||
|
|
||||||
|
FName ActorName() { return m_ActorName; }
|
||||||
|
const char *FrameName() { return m_FrameName; }
|
||||||
|
FName Light() { return m_AssocLight; }
|
||||||
|
void ReplaceLightName(FName newName) { m_AssocLight = newName; }
|
||||||
|
protected:
|
||||||
|
char m_FrameName[8];
|
||||||
|
FName m_ActorName, m_AssocLight;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
// Light associations per actor class
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
#if 0
|
||||||
|
class FInternalLightAssociation
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
FInternalLightAssociation(FLightAssociation * asso);
|
||||||
|
int Sprite() const { return m_sprite; }
|
||||||
|
int Frame() const { return m_frame; }
|
||||||
|
const FLightDefaults *Light() const { return m_AssocLight; }
|
||||||
|
protected:
|
||||||
|
int m_sprite;
|
||||||
|
int m_frame;
|
||||||
|
FLightDefaults * m_AssocLight;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
#if 0
|
||||||
|
struct FLightNode
|
||||||
|
{
|
||||||
|
FLightNode ** prevTarget;
|
||||||
|
FLightNode * nextTarget;
|
||||||
|
FLightNode ** prevLight;
|
||||||
|
FLightNode * nextLight;
|
||||||
|
FDynamicLight * lightsource;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
side_t * targLine;
|
||||||
|
subsector_t * targSubsector;
|
||||||
|
void * targ;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
#if 0
|
||||||
|
struct FDynamicLight
|
||||||
|
{
|
||||||
|
friend class FLightDefaults;
|
||||||
|
|
||||||
|
inline DVector3 PosRelative(int portalgroup) const
|
||||||
|
{
|
||||||
|
return Pos + Level->Displacements.getOffset(Sector->PortalGroup, portalgroup);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ShouldLightActor(AActor *check)
|
||||||
|
{
|
||||||
|
return visibletoplayer && IsActive() && (!((*pLightFlags) & LF_DONTLIGHTSELF) || target != check) && !((*pLightFlags) & LF_DONTLIGHTACTORS);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetOffset(const DVector3 &pos)
|
||||||
|
{
|
||||||
|
m_off = pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool IsActive() const { return m_active; }
|
||||||
|
float GetRadius() const { return (IsActive() ? m_currentRadius * 2.f : 0.f); }
|
||||||
|
int GetRed() const { return pArgs[LIGHT_RED]; }
|
||||||
|
int GetGreen() const { return pArgs[LIGHT_GREEN]; }
|
||||||
|
int GetBlue() const { return pArgs[LIGHT_BLUE]; }
|
||||||
|
int GetIntensity() const { return pArgs[LIGHT_INTENSITY]; }
|
||||||
|
int GetSecondaryIntensity() const { return pArgs[LIGHT_SECONDARY_INTENSITY]; }
|
||||||
|
|
||||||
|
bool IsSubtractive() const { return !!((*pLightFlags) & LF_SUBTRACTIVE); }
|
||||||
|
bool IsAdditive() const { return !!((*pLightFlags) & LF_ADDITIVE); }
|
||||||
|
bool IsSpot() const { return !!((*pLightFlags) & LF_SPOT); }
|
||||||
|
bool IsAttenuated() const { return !!((*pLightFlags) & LF_ATTENUATE); }
|
||||||
|
bool DontShadowmap() const { return !!((*pLightFlags) & LF_NOSHADOWMAP); }
|
||||||
|
bool DontLightSelf() const { return !!((*pLightFlags) & (LF_DONTLIGHTSELF|LF_DONTLIGHTACTORS)); } // dontlightactors implies dontlightself.
|
||||||
|
bool DontLightActors() const { return !!((*pLightFlags) & LF_DONTLIGHTACTORS); }
|
||||||
|
void Deactivate() { m_active = false; }
|
||||||
|
void Activate();
|
||||||
|
|
||||||
|
void SetActor(AActor *ac, bool isowned) { target = ac; owned = isowned; }
|
||||||
|
double X() const { return Pos.X; }
|
||||||
|
double Y() const { return Pos.Y; }
|
||||||
|
double Z() const { return Pos.Z; }
|
||||||
|
|
||||||
|
void Tick();
|
||||||
|
void UpdateLocation();
|
||||||
|
void LinkLight();
|
||||||
|
void UnlinkLight();
|
||||||
|
void ReleaseLight();
|
||||||
|
|
||||||
|
private:
|
||||||
|
double DistToSeg(const DVector3 &pos, vertex_t *start, vertex_t *end);
|
||||||
|
void CollectWithinRadius(const DVector3 &pos, FSection *section, float radius);
|
||||||
|
|
||||||
|
public:
|
||||||
|
FCycler m_cycler;
|
||||||
|
DVector3 Pos;
|
||||||
|
DVector3 m_off;
|
||||||
|
|
||||||
|
// This date can either come from the owning actor or from a light definition
|
||||||
|
// To avoid having to copy these around every tic, these are pointers to the source data.
|
||||||
|
const DAngle *pSpotInnerAngle;
|
||||||
|
const DAngle *pSpotOuterAngle;
|
||||||
|
const DAngle *pPitch; // This is to handle pitch overrides through GLDEFS, it can either point to the target's pitch or the light definition.
|
||||||
|
const int *pArgs;
|
||||||
|
const LightFlags *pLightFlags;
|
||||||
|
|
||||||
|
double specialf1;
|
||||||
|
FDynamicLight *next, *prev;
|
||||||
|
sector_t *Sector;
|
||||||
|
FLevelLocals *Level;
|
||||||
|
TObjPtr<AActor *> target;
|
||||||
|
FLightNode * touching_sides;
|
||||||
|
FLightNode * touching_sector;
|
||||||
|
float radius; // The maximum size the light can be with its current settings.
|
||||||
|
float m_currentRadius; // The current light size.
|
||||||
|
int m_tickCount;
|
||||||
|
int m_lastUpdate;
|
||||||
|
int mShadowmapIndex;
|
||||||
|
bool m_active;
|
||||||
|
bool visibletoplayer;
|
||||||
|
bool shadowmapped;
|
||||||
|
uint8_t lighttype;
|
||||||
|
bool owned;
|
||||||
|
bool swapped;
|
||||||
|
bool explicitpitch;
|
||||||
|
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
|
@ -42,13 +42,14 @@
|
||||||
#include "stats.h"
|
#include "stats.h"
|
||||||
#include "v_text.h"
|
#include "v_text.h"
|
||||||
//#include "g_levellocals.h"
|
//#include "g_levellocals.h"
|
||||||
//#include "a_dynlight.h"
|
#include "a_dynlight.h"
|
||||||
#include "v_video.h"
|
#include "v_video.h"
|
||||||
#include "skyboxtexture.h"
|
#include "skyboxtexture.h"
|
||||||
#include "hwrenderer/postprocessing/hw_postprocessshader.h"
|
#include "hwrenderer/postprocessing/hw_postprocessshader.h"
|
||||||
#include "hw_material.h"
|
#include "hw_material.h"
|
||||||
#include "texturemanager.h"
|
#include "texturemanager.h"
|
||||||
|
|
||||||
|
#if 0
|
||||||
void AddLightDefaults(FLightDefaults *defaults, double attnFactor);
|
void AddLightDefaults(FLightDefaults *defaults, double attnFactor);
|
||||||
void AddLightAssociation(const char *actor, const char *frame, const char *light);
|
void AddLightAssociation(const char *actor, const char *frame, const char *light);
|
||||||
void InitializeActorLights(TArray<FLightAssociation> &LightAssociations);
|
void InitializeActorLights(TArray<FLightAssociation> &LightAssociations);
|
||||||
|
@ -56,6 +57,7 @@ void ParseColorization(FScanner& sc);
|
||||||
|
|
||||||
extern TDeletingArray<FLightDefaults *> LightDefaults;
|
extern TDeletingArray<FLightDefaults *> LightDefaults;
|
||||||
extern int AttenuationIsSet;
|
extern int AttenuationIsSet;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@ -63,7 +65,7 @@ extern int AttenuationIsSet;
|
||||||
// ParseVavoomSkybox
|
// ParseVavoomSkybox
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
#if 0
|
||||||
static void ParseVavoomSkybox()
|
static void ParseVavoomSkybox()
|
||||||
{
|
{
|
||||||
int lump = fileSystem.CheckNumForName("SKYBOXES");
|
int lump = fileSystem.CheckNumForName("SKYBOXES");
|
||||||
|
@ -112,7 +114,7 @@ static void ParseVavoomSkybox()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
@ -292,7 +294,7 @@ class GLDefsParser
|
||||||
// The semantics of this are too horrible to comprehend (default detail texture???)
|
// The semantics of this are too horrible to comprehend (default detail texture???)
|
||||||
// so if this ever gets done, the parser will look different.
|
// so if this ever gets done, the parser will look different.
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
#if 0
|
||||||
void ParseDetailTexture()
|
void ParseDetailTexture()
|
||||||
{
|
{
|
||||||
while (!sc.CheckToken('}'))
|
while (!sc.CheckToken('}'))
|
||||||
|
@ -331,7 +333,7 @@ class GLDefsParser
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -374,7 +376,7 @@ class GLDefsParser
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
#if 0
|
||||||
void AddLightAssociation(const char *actor, const char *frame, const char *light)
|
void AddLightAssociation(const char *actor, const char *frame, const char *light)
|
||||||
{
|
{
|
||||||
FLightAssociation *temp;
|
FLightAssociation *temp;
|
||||||
|
@ -396,13 +398,13 @@ class GLDefsParser
|
||||||
|
|
||||||
LightAssociations.Push(assoc);
|
LightAssociations.Push(assoc);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// Note: The different light type parsers really could use some consolidation...
|
// Note: The different light type parsers really could use some consolidation...
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
#if 0
|
||||||
void ParsePointLight()
|
void ParsePointLight()
|
||||||
{
|
{
|
||||||
int type;
|
int type;
|
||||||
|
@ -480,20 +482,22 @@ class GLDefsParser
|
||||||
sc.ScriptError("Unknown tag: %s\n", sc.String);
|
sc.ScriptError("Unknown tag: %s\n", sc.String);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#if 0
|
||||||
AddLightDefaults(defaults, lightSizeFactor);
|
AddLightDefaults(defaults, lightSizeFactor);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sc.ScriptError("Expected '{'.\n");
|
sc.ScriptError("Expected '{'.\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
#if 0
|
||||||
void ParsePulseLight()
|
void ParsePulseLight()
|
||||||
{
|
{
|
||||||
int type;
|
int type;
|
||||||
|
@ -585,14 +589,14 @@ class GLDefsParser
|
||||||
sc.ScriptError("Expected '{'.\n");
|
sc.ScriptError("Expected '{'.\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
#if 0
|
||||||
void ParseFlickerLight()
|
void ParseFlickerLight()
|
||||||
{
|
{
|
||||||
int type;
|
int type;
|
||||||
|
@ -683,14 +687,14 @@ class GLDefsParser
|
||||||
sc.ScriptError("Expected '{'.\n");
|
sc.ScriptError("Expected '{'.\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
#if 0
|
||||||
void ParseFlickerLight2()
|
void ParseFlickerLight2()
|
||||||
{
|
{
|
||||||
int type;
|
int type;
|
||||||
|
@ -786,14 +790,14 @@ class GLDefsParser
|
||||||
sc.ScriptError("Expected '{'.\n");
|
sc.ScriptError("Expected '{'.\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
#if 0
|
||||||
void ParseSectorLight()
|
void ParseSectorLight()
|
||||||
{
|
{
|
||||||
int type;
|
int type;
|
||||||
|
@ -875,13 +879,13 @@ class GLDefsParser
|
||||||
sc.ScriptError("Expected '{'.\n");
|
sc.ScriptError("Expected '{'.\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
#if 0
|
||||||
void ParseFrame(const FString &name)
|
void ParseFrame(const FString &name)
|
||||||
{
|
{
|
||||||
int type, startDepth;
|
int type, startDepth;
|
||||||
|
@ -929,13 +933,13 @@ class GLDefsParser
|
||||||
sc.ScriptError("Expected '{'.\n");
|
sc.ScriptError("Expected '{'.\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
#if 0
|
||||||
void ParseObject()
|
void ParseObject()
|
||||||
{
|
{
|
||||||
int type;
|
int type;
|
||||||
|
@ -977,14 +981,14 @@ class GLDefsParser
|
||||||
sc.ScriptError("Expected '{'.\n");
|
sc.ScriptError("Expected '{'.\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
#if 0
|
||||||
void ParseGldefSkybox()
|
void ParseGldefSkybox()
|
||||||
{
|
{
|
||||||
int facecount=0;
|
int facecount=0;
|
||||||
|
@ -1014,13 +1018,13 @@ class GLDefsParser
|
||||||
sb->SetSize();
|
sb->SetSize();
|
||||||
TexMan.AddGameTexture(MakeGameTexture(sb, s, ETextureType::Override));
|
TexMan.AddGameTexture(MakeGameTexture(sb, s, ETextureType::Override));
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
// Reads glow definitions from GLDEFS
|
// Reads glow definitions from GLDEFS
|
||||||
//
|
//
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
#if 0
|
||||||
void ParseGlow()
|
void ParseGlow()
|
||||||
{
|
{
|
||||||
sc.MustGetStringName("{");
|
sc.MustGetStringName("{");
|
||||||
|
@ -1081,14 +1085,14 @@ class GLDefsParser
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
// Parses a brightmap definition
|
// Parses a brightmap definition
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
#if 0
|
||||||
void ParseBrightmap()
|
void ParseBrightmap()
|
||||||
{
|
{
|
||||||
ETextureType type = ETextureType::Any;
|
ETextureType type = ETextureType::Any;
|
||||||
|
@ -1166,7 +1170,8 @@ class GLDefsParser
|
||||||
}
|
}
|
||||||
tex->SetDisableFullbright(disable_fullbright);
|
tex->SetDisableFullbright(disable_fullbright);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
#if 0
|
||||||
void SetShaderIndex(FGameTexture *tex, unsigned index)
|
void SetShaderIndex(FGameTexture *tex, unsigned index)
|
||||||
{
|
{
|
||||||
auto desc = usershaders[index - FIRST_USER_SHADER];
|
auto desc = usershaders[index - FIRST_USER_SHADER];
|
||||||
|
@ -1176,13 +1181,13 @@ class GLDefsParser
|
||||||
}
|
}
|
||||||
tex->SetShaderIndex(index);
|
tex->SetShaderIndex(index);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
// Parses a material definition
|
// Parses a material definition
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
#if 0
|
||||||
void ParseMaterial()
|
void ParseMaterial()
|
||||||
{
|
{
|
||||||
ETextureType type = ETextureType::Any;
|
ETextureType type = ETextureType::Any;
|
||||||
|
@ -1407,7 +1412,7 @@ class GLDefsParser
|
||||||
}
|
}
|
||||||
tex->SetShaderLayers(mlay);
|
tex->SetShaderLayers(mlay);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -1501,6 +1506,7 @@ class GLDefsParser
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
#if 0 // not ready for this yet
|
||||||
ETextureType type = ETextureType::Any;
|
ETextureType type = ETextureType::Any;
|
||||||
|
|
||||||
if (sc.Compare("texture")) type = ETextureType::Wall;
|
if (sc.Compare("texture")) type = ETextureType::Wall;
|
||||||
|
@ -1650,9 +1656,10 @@ class GLDefsParser
|
||||||
SetShaderIndex(tex, usershaders.Push(desc) + FIRST_USER_SHADER);
|
SetShaderIndex(tex, usershaders.Push(desc) + FIRST_USER_SHADER);
|
||||||
}
|
}
|
||||||
tex->SetShaderLayers(mlay);
|
tex->SetShaderLayers(mlay);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#if 0
|
||||||
void ParseColorization(FScanner& sc)
|
void ParseColorization(FScanner& sc)
|
||||||
{
|
{
|
||||||
TextureManipulation tm = {};
|
TextureManipulation tm = {};
|
||||||
|
@ -1714,7 +1721,7 @@ class GLDefsParser
|
||||||
TexMan.RemoveTextureManipulation(cname);
|
TexMan.RemoveTextureManipulation(cname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
@ -1751,6 +1758,7 @@ public:
|
||||||
newscanner.DoParseDefs();
|
newscanner.DoParseDefs();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#if 0
|
||||||
case LIGHT_POINT:
|
case LIGHT_POINT:
|
||||||
ParsePointLight();
|
ParsePointLight();
|
||||||
break;
|
break;
|
||||||
|
@ -1772,11 +1780,13 @@ public:
|
||||||
case LIGHT_CLEAR:
|
case LIGHT_CLEAR:
|
||||||
// This has been intentionally removed
|
// This has been intentionally removed
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
case TAG_SHADER:
|
case TAG_SHADER:
|
||||||
ParseShader();
|
ParseShader();
|
||||||
break;
|
break;
|
||||||
case TAG_CLEARSHADERS:
|
case TAG_CLEARSHADERS:
|
||||||
break;
|
break;
|
||||||
|
#if 0
|
||||||
case TAG_SKYBOX:
|
case TAG_SKYBOX:
|
||||||
ParseGldefSkybox();
|
ParseGldefSkybox();
|
||||||
break;
|
break;
|
||||||
|
@ -1810,6 +1820,7 @@ public:
|
||||||
case TAG_COLORIZATION:
|
case TAG_COLORIZATION:
|
||||||
ParseColorization(sc);
|
ParseColorization(sc);
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
default:
|
default:
|
||||||
sc.ScriptError("Error parsing defs. Unknown tag: %s.\n", sc.String);
|
sc.ScriptError("Error parsing defs. Unknown tag: %s.\n", sc.String);
|
||||||
break;
|
break;
|
||||||
|
@ -1841,7 +1852,9 @@ void LoadGLDefs(const char *defsLump)
|
||||||
GLDefsParser sc(workingLump, LightAssociations);
|
GLDefsParser sc(workingLump, LightAssociations);
|
||||||
sc.DoParseDefs();
|
sc.DoParseDefs();
|
||||||
}
|
}
|
||||||
|
#if 0
|
||||||
InitializeActorLights(LightAssociations);
|
InitializeActorLights(LightAssociations);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1855,9 +1868,13 @@ void ParseGLDefs()
|
||||||
{
|
{
|
||||||
const char *defsLump = NULL;
|
const char *defsLump = NULL;
|
||||||
|
|
||||||
|
#if 0
|
||||||
LightDefaults.DeleteAndClear();
|
LightDefaults.DeleteAndClear();
|
||||||
AttenuationIsSet = -1;
|
AttenuationIsSet = -1;
|
||||||
|
#endif
|
||||||
//gl_DestroyUserShaders(); function says 'todo'
|
//gl_DestroyUserShaders(); function says 'todo'
|
||||||
|
#if 0
|
||||||
|
// should we really use a system like this anymore with the advent of filter folders?
|
||||||
switch (gameinfo.gametype)
|
switch (gameinfo.gametype)
|
||||||
{
|
{
|
||||||
case GAME_Heretic:
|
case GAME_Heretic:
|
||||||
|
@ -1878,6 +1895,9 @@ void ParseGLDefs()
|
||||||
default: // silence GCC
|
default: // silence GCC
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
#if 0
|
||||||
ParseVavoomSkybox();
|
ParseVavoomSkybox();
|
||||||
|
#endif
|
||||||
LoadGLDefs(defsLump);
|
LoadGLDefs(defsLump);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue