Improvements to some GoldSrc rendermode code, better teleporting behaviour
for scripted_sequences.
This commit is contained in:
parent
1bd7d1a68c
commit
82b1cb68fa
10 changed files with 214 additions and 115 deletions
|
@ -32,23 +32,23 @@ enum
|
|||
|
||||
enum
|
||||
{
|
||||
RFX_NORMAL,
|
||||
RFX_SLOWPULSE,
|
||||
RFX_FASTPULSE,
|
||||
RFX_SLOWWIDEPULSE,
|
||||
RFX_FASTWIDEPULSE,
|
||||
RFX_SLOWFADEAWAY,
|
||||
RFX_FASTFADEAWAY,
|
||||
RFX_SLOWBECOMESOLID,
|
||||
RFX_FASTBECOMESOLID,
|
||||
RFX_SLOWSTROBE,
|
||||
RFX_FASTSTROBE,
|
||||
RFX_FASTERSTROBE,
|
||||
RFX_SLOWFLICKER,
|
||||
RFX_FASTFLICKER,
|
||||
RFX_CONSTANTGLOW,
|
||||
RFX_DISTORT,
|
||||
RFX_HOLOGRAM
|
||||
RFX_NORMAL = 0,
|
||||
RFX_SLOWPULSE = 1,
|
||||
RFX_FASTPULSE = 2,
|
||||
RFX_SLOWWIDEPULSE = 3,
|
||||
RFX_FASTWIDEPULSE = 4,
|
||||
RFX_SLOWFADEAWAY = 5,
|
||||
RFX_FASTFADEAWAY = 6,
|
||||
RFX_SLOWBECOMESOLID = 7,
|
||||
RFX_FASTBECOMESOLID = 8,
|
||||
RFX_SLOWSTROBE = 9,
|
||||
RFX_FASTSTROBE = 10,
|
||||
RFX_FASTERSTROBE = 11,
|
||||
RFX_SLOWFLICKER = 12,
|
||||
RFX_FASTFLICKER = 13,
|
||||
RFX_CONSTANTGLOW = 14,
|
||||
RFX_DISTORT = 15,
|
||||
RFX_HOLOGRAM = 16
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -69,7 +69,6 @@ enumflags
|
|||
#ifdef GS_RENDERFX
|
||||
BASEFL_CHANGED_RENDERCOLOR,
|
||||
BASEFL_CHANGED_RENDERAMT,
|
||||
BASEFL_CHANGED_RENDERFX,
|
||||
BASEFL_CHANGED_RENDERMODE,
|
||||
#else
|
||||
BASEFL_CHANGED_ALPHA,
|
||||
|
|
|
@ -106,7 +106,7 @@ env_render::Trigger(entity act, int state)
|
|||
trigger.SetRenderAmt(m_flRenderAmt);
|
||||
}
|
||||
if (!(spawnflags & SF_NORENDERFX)) {
|
||||
dprint(sprintf("\tFX change from %i to %i\n", trigger.m_iRenderFX, m_iRenderFX));
|
||||
dprint(sprintf("\tFX change from %d to %d\n", trigger.m_iRenderFX, m_iRenderFX));
|
||||
trigger.SetRenderFX(m_iRenderFX);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,6 +43,7 @@ prop_dynamic::Respawn(void)
|
|||
{
|
||||
super::Respawn();
|
||||
SetModel(GetSpawnModel());
|
||||
UpdateBounds();
|
||||
|
||||
if (spawnflags & PRPDYN_NONSOLID)
|
||||
SetSolid(SOLID_NOT);
|
||||
|
@ -56,15 +57,14 @@ prop_dynamic::SpawnKey(string strKey, string strValue)
|
|||
float s = stof(strValue);
|
||||
|
||||
switch (s) {
|
||||
case 0:
|
||||
SetSolid(SOLID_NOT);
|
||||
break;
|
||||
case 2:
|
||||
SetSolid(SOLID_BBOX);
|
||||
break;
|
||||
case 6:
|
||||
SetSolid(SOLID_BSP);
|
||||
break;
|
||||
default:
|
||||
SetSolid(SOLID_NOT);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -207,12 +207,10 @@ scripted_sequence::RunOnEntity(entity targ)
|
|||
f.NewRoute(origin);
|
||||
f.m_flSequenceSpeed = 64;
|
||||
dprint("\tType: SS_WALK\n");
|
||||
return;
|
||||
} else if (m_iMove == SS_RUN) {
|
||||
f.NewRoute(origin);
|
||||
f.m_flSequenceSpeed = 200;
|
||||
dprint("\tType: SS_RUN\n");
|
||||
return;
|
||||
} else if (m_iMove == SS_INSTANTANEOUS) {
|
||||
setorigin(f, this.origin);
|
||||
dprint("\tType: SS_INSTANTANEOUS\n");
|
||||
|
|
|
@ -286,28 +286,9 @@ NSEntity::SetSolid(float newSolid)
|
|||
void
|
||||
NSEntity::UpdateBounds(void)
|
||||
{
|
||||
SetSize(m_vecMins, m_vecMaxs);
|
||||
}
|
||||
|
||||
void
|
||||
NSEntity::SetAngles(vector newAngles)
|
||||
{
|
||||
if (newAngles == angles)
|
||||
return;
|
||||
|
||||
angles = newAngles;
|
||||
SetSendFlags(BASEFL_CHANGED_ANGLES);
|
||||
UpdateBounds();
|
||||
}
|
||||
|
||||
void
|
||||
NSEntity::SetSize(vector newMins, vector newMaxs)
|
||||
{
|
||||
vector newMins, newMaxs;
|
||||
float flScale = 1.0f;
|
||||
|
||||
m_vecMins = newMins;
|
||||
m_vecMaxs = newMaxs;
|
||||
|
||||
/* avoid useless computation */
|
||||
if (angles != [0,0,0]) {
|
||||
/* adjust bbox according to rotation */
|
||||
|
@ -345,6 +326,32 @@ NSEntity::SetSize(vector newMins, vector newMaxs)
|
|||
SetSendFlags(BASEFL_CHANGED_SIZE);
|
||||
}
|
||||
|
||||
void
|
||||
NSEntity::SetAngles(vector newAngles)
|
||||
{
|
||||
if (newAngles == angles)
|
||||
return;
|
||||
|
||||
angles = newAngles;
|
||||
SetSendFlags(BASEFL_CHANGED_ANGLES);
|
||||
}
|
||||
|
||||
void
|
||||
NSEntity::SetSize(vector newMins, vector newMaxs)
|
||||
{
|
||||
float flScale = 1.0f;
|
||||
|
||||
m_vecMins = newMins;
|
||||
m_vecMaxs = newMaxs;
|
||||
|
||||
/* 0.0 is never valid, if you want it to disappear do something else */
|
||||
if (scale != 0.0)
|
||||
flScale = scale;
|
||||
|
||||
setsize(this, newMins * flScale, newMaxs * flScale);
|
||||
SetSendFlags(BASEFL_CHANGED_SIZE);
|
||||
}
|
||||
|
||||
void
|
||||
NSEntity::SetOrigin(vector newOrigin)
|
||||
{
|
||||
|
|
|
@ -294,7 +294,7 @@ void
|
|||
NSMonster::FreeStateMoved(void)
|
||||
{
|
||||
vector new_origin;
|
||||
new_origin = gettaginfo(this, 0);
|
||||
new_origin = gettaginfo(this, 1);
|
||||
SetOrigin(new_origin);
|
||||
FreeState();
|
||||
}
|
||||
|
@ -749,11 +749,9 @@ NSMonster::SendEntity(entity ePEnt, float fChanged)
|
|||
}
|
||||
|
||||
#ifdef GS_RENDERFX
|
||||
if (fChanged & BASEFL_CHANGED_RENDERFX) {
|
||||
WriteByte(MSG_ENTITY, m_iRenderFX);
|
||||
}
|
||||
if (fChanged & BASEFL_CHANGED_RENDERMODE) {
|
||||
WriteByte(MSG_ENTITY, m_iRenderMode);
|
||||
WriteByte(MSG_ENTITY, m_iRenderFX);
|
||||
}
|
||||
|
||||
if (fChanged & BASEFL_CHANGED_RENDERCOLOR) {
|
||||
|
@ -855,11 +853,9 @@ NSMonster::ReceiveEntity(float flNew, float flChanged)
|
|||
}
|
||||
|
||||
#ifdef GS_RENDERFX
|
||||
if (flChanged & BASEFL_CHANGED_RENDERFX) {
|
||||
m_iRenderFX = readbyte();
|
||||
}
|
||||
if (flChanged & BASEFL_CHANGED_RENDERMODE) {
|
||||
m_iRenderMode = readbyte();
|
||||
m_iRenderFX = readbyte();
|
||||
}
|
||||
if (flChanged & BASEFL_CHANGED_RENDERCOLOR) {
|
||||
m_vecRenderColor[0] = readfloat();
|
||||
|
|
|
@ -55,13 +55,13 @@ class NSRenderableEntity:NSEntity
|
|||
virtual void(void) MakeStatic;
|
||||
|
||||
#ifdef GS_RENDERFX
|
||||
int m_iRenderFX;
|
||||
float m_iRenderFX;
|
||||
float m_iRenderMode;
|
||||
float m_flRenderAmt;
|
||||
vector m_vecRenderColor;
|
||||
|
||||
/* set */
|
||||
nonvirtual void(int) SetRenderFX;
|
||||
nonvirtual void(float) SetRenderFX;
|
||||
nonvirtual void(float) SetRenderMode;
|
||||
nonvirtual void(float) SetRenderAmt;
|
||||
nonvirtual void(vector) SetRenderColor;
|
||||
|
@ -70,7 +70,7 @@ class NSRenderableEntity:NSEntity
|
|||
nonvirtual void(void) RenderFXPass;
|
||||
#else
|
||||
/* respawn */
|
||||
int m_oldiRenderFX;
|
||||
float m_oldiRenderFX;
|
||||
float m_oldiRenderMode;
|
||||
float m_oldflRenderAmt;
|
||||
vector m_oldvecRenderColor;
|
||||
|
|
|
@ -162,11 +162,9 @@ NSRenderableEntity::SendEntity(entity ePEnt, float fChanged)
|
|||
}
|
||||
|
||||
#ifdef GS_RENDERFX
|
||||
if (fChanged & BASEFL_CHANGED_RENDERFX) {
|
||||
WriteByte(MSG_ENTITY, m_iRenderFX);
|
||||
}
|
||||
if (fChanged & BASEFL_CHANGED_RENDERMODE) {
|
||||
WriteByte(MSG_ENTITY, m_iRenderMode);
|
||||
WriteByte(MSG_ENTITY, m_iRenderFX);
|
||||
}
|
||||
|
||||
if (fChanged & BASEFL_CHANGED_RENDERCOLOR) {
|
||||
|
@ -211,6 +209,12 @@ NSRenderableEntity::RenderFXPass(void)
|
|||
colormod = m_vecRenderColor;
|
||||
alpha = m_flRenderAmt;
|
||||
|
||||
/* these should be reset! */
|
||||
renderflags = 0;
|
||||
effects = 0;
|
||||
drawflags = 0;
|
||||
abslight = 0;
|
||||
|
||||
switch (m_iRenderMode) {
|
||||
case RM_NORMAL:
|
||||
colormod = [1,1,1];
|
||||
|
@ -226,6 +230,7 @@ NSRenderableEntity::RenderFXPass(void)
|
|||
drawflags = 7;
|
||||
abslight = 128;
|
||||
}
|
||||
|
||||
break;
|
||||
case RM_GLOW:
|
||||
case RM_WORLDGLOW: /* TODO: Figure out what this does differently */
|
||||
|
@ -284,8 +289,49 @@ NSRenderableEntity::RenderFXPass(void)
|
|||
alpha = 0.0f;
|
||||
}
|
||||
|
||||
/* messy hologram imitation */
|
||||
if (m_iRenderFX == RFX_HOLOGRAM) {
|
||||
switch (m_iRenderFX) {
|
||||
case RFX_SLOWPULSE:
|
||||
alpha = sin(cltime * 0.5);
|
||||
break;
|
||||
case RFX_FASTPULSE:
|
||||
alpha = sin(cltime * 2.0);
|
||||
break;
|
||||
case RFX_SLOWWIDEPULSE:
|
||||
alpha = sin(cltime * 0.5);
|
||||
break;
|
||||
case RFX_FASTWIDEPULSE:
|
||||
alpha = sin(cltime * 2.0);
|
||||
break;
|
||||
case RFX_SLOWFADEAWAY:
|
||||
alpha -= clframetime * 0.25;
|
||||
break;
|
||||
case RFX_FASTFADEAWAY:
|
||||
effects = 0;
|
||||
alpha -= clframetime;
|
||||
break;
|
||||
case RFX_SLOWBECOMESOLID:
|
||||
break;
|
||||
case RFX_FASTBECOMESOLID:
|
||||
break;
|
||||
case RFX_SLOWSTROBE:
|
||||
alpha = (cltime & 1) ? 1.0 : 0.0f;
|
||||
break;
|
||||
case RFX_FASTSTROBE:
|
||||
alpha = ((cltime*2.0) & 1) ? 1.0 : 0.0f;
|
||||
break;
|
||||
case RFX_FASTERSTROBE:
|
||||
alpha = ((cltime*4.0) & 1) ? 1.0 : 0.0f;
|
||||
break;
|
||||
case RFX_SLOWFLICKER:
|
||||
break;
|
||||
case RFX_FASTFLICKER:
|
||||
break;
|
||||
case RFX_CONSTANTGLOW:
|
||||
break;
|
||||
case RFX_DISTORT:
|
||||
break;
|
||||
case RFX_HOLOGRAM:
|
||||
/* messy hologram imitation */
|
||||
float dist;
|
||||
float r;
|
||||
|
||||
|
@ -313,6 +359,9 @@ NSRenderableEntity::RenderFXPass(void)
|
|||
effects = EF_ADDITIVE;
|
||||
drawflags = 7;
|
||||
abslight = 128;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/* HACK: This marks this entity as alphatested in platform's defaultwall.glsl */
|
||||
|
@ -388,11 +437,9 @@ NSRenderableEntity::ReceiveEntity(float flNew, float flChanged)
|
|||
}
|
||||
|
||||
#ifdef GS_RENDERFX
|
||||
if (flChanged & BASEFL_CHANGED_RENDERFX) {
|
||||
m_iRenderFX = readbyte();
|
||||
}
|
||||
if (flChanged & BASEFL_CHANGED_RENDERMODE) {
|
||||
m_iRenderMode = readbyte();
|
||||
m_iRenderFX = readbyte();
|
||||
}
|
||||
if (flChanged & BASEFL_CHANGED_RENDERCOLOR) {
|
||||
m_vecRenderColor[0] = readfloat();
|
||||
|
@ -555,13 +602,13 @@ NSRenderableEntity::SetScale(float newScale)
|
|||
|
||||
#ifdef GS_RENDERFX
|
||||
void
|
||||
NSRenderableEntity::SetRenderFX(int newFX)
|
||||
NSRenderableEntity::SetRenderFX(float newFX)
|
||||
{
|
||||
if (newFX == m_iRenderFX)
|
||||
return;
|
||||
|
||||
m_iRenderFX = newFX;
|
||||
SetSendFlags(BASEFL_CHANGED_RENDERFX);
|
||||
SetSendFlags(BASEFL_CHANGED_RENDERMODE);
|
||||
}
|
||||
void
|
||||
NSRenderableEntity::SetRenderMode(float newMode)
|
||||
|
@ -609,8 +656,8 @@ NSRenderableEntity::Save(float handle)
|
|||
#else
|
||||
SaveFloat(handle, "renderamt", m_flRenderAmt);
|
||||
SaveVector(handle, "rendercolor", m_vecRenderColor);
|
||||
SaveInt(handle, "rendermode", m_iRenderMode);
|
||||
SaveInt(handle, "renderfx", m_iRenderFX);
|
||||
SaveFloat(handle, "rendermode", m_iRenderMode);
|
||||
SaveFloat(handle, "renderfx", m_iRenderFX);
|
||||
#endif
|
||||
|
||||
super::Save(handle);
|
||||
|
@ -649,10 +696,10 @@ NSRenderableEntity::Restore(string strKey, string strValue)
|
|||
m_vecRenderColor = stov(strValue) / 255;
|
||||
break;
|
||||
case "rendermode":
|
||||
m_iRenderMode = stoi(strValue);
|
||||
m_iRenderMode = stof(strValue);
|
||||
break;
|
||||
case "renderfx":
|
||||
m_iRenderFX = stoi(strValue);
|
||||
m_iRenderFX = stof(strValue);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
|
@ -736,10 +783,10 @@ NSRenderableEntity::SpawnKey(string strKey, string strValue)
|
|||
m_vecRenderColor = stov(strValue) / 255;
|
||||
break;
|
||||
case "rendermode":
|
||||
m_iRenderMode = stoi(strValue);
|
||||
m_iRenderMode = stof(strValue);
|
||||
break;
|
||||
case "renderfx":
|
||||
m_iRenderFX = stoi(strValue);
|
||||
m_iRenderFX = stof(strValue);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
|
|
|
@ -119,5 +119,6 @@ class NSTalkMonster:NSMonster
|
|||
virtual void(string) SentenceSample;
|
||||
virtual void(string) Sentence;
|
||||
virtual void(void) ProcessWordQue;
|
||||
virtual void(float,float) ReceiveEntity;
|
||||
#endif
|
||||
};
|
||||
|
|
|
@ -605,52 +605,10 @@ NSTalkMonster::SendEntity(entity ePEnt, float fChanged)
|
|||
|
||||
WriteByte(MSG_ENTITY, ENT_TALKMONSTER);
|
||||
|
||||
/* newly popped into the PVS, sadly this is the only hacky way to check
|
||||
* for this right now. convince the engine maintainer to make this more sensible */
|
||||
if (fChanged == 0xFFFFFF) {
|
||||
/* check for defaults. if these are predictable fields, don't even bother
|
||||
* networking them! you're just wasting bandwidth. */
|
||||
if (frame == 0)
|
||||
fChanged &= ~BASEFL_CHANGED_FRAME;
|
||||
if (skin == 0)
|
||||
fChanged &= ~BASEFL_CHANGED_SKIN;
|
||||
if (effects == 0)
|
||||
fChanged &= ~BASEFL_CHANGED_EFFECTS;
|
||||
if (m_iBody == 0)
|
||||
fChanged &= ~BASEFL_CHANGED_BODY;
|
||||
if (scale == 0.0 || scale == 1.0)
|
||||
fChanged &= ~BASEFL_CHANGED_SCALE;
|
||||
if (origin == [0,0,0])
|
||||
fChanged &= ~BASEFL_CHANGED_ORIGIN;
|
||||
if (angles == [0,0,0])
|
||||
fChanged &= ~BASEFL_CHANGED_ANGLES;
|
||||
if (velocity == [0,0,0])
|
||||
fChanged &= ~BASEFL_CHANGED_VELOCITY;
|
||||
if (mins == [0,0,0] && maxs == [0,0,0])
|
||||
fChanged &= ~BASEFL_CHANGED_SIZE;
|
||||
if (solid == SOLID_NOT)
|
||||
fChanged &= ~BASEFL_CHANGED_SOLID;
|
||||
if (movetype == MOVETYPE_NONE)
|
||||
fChanged &= ~BASEFL_CHANGED_MOVETYPE;
|
||||
#ifdef GS_RENDERFX
|
||||
if (m_iRenderMode == RM_NORMAL)
|
||||
fChanged &= ~BASEFL_CHANGED_RENDERMODE;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* don't network triggers unless provoked */
|
||||
/*if (cvar("developer") == 0 && m_iRenderMode == RM_TRIGGER)
|
||||
return (0);*/
|
||||
|
||||
#ifdef GS_RENDERFX
|
||||
/* let's not waste networking power on certain render-modes where they would
|
||||
* not apply anyway. this seems sensible enough. */
|
||||
if (m_iRenderMode == RM_NORMAL || m_iRenderMode == RM_TRIGGER) {
|
||||
fChanged &= ~BASEFL_CHANGED_RENDERCOLOR;
|
||||
fChanged &= ~BASEFL_CHANGED_RENDERAMT;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* broadcast how much data is expected to be read */
|
||||
WriteFloat(MSG_ENTITY, fChanged);
|
||||
|
||||
|
@ -705,11 +663,9 @@ NSTalkMonster::SendEntity(entity ePEnt, float fChanged)
|
|||
}
|
||||
|
||||
#ifdef GS_RENDERFX
|
||||
if (fChanged & BASEFL_CHANGED_RENDERFX) {
|
||||
WriteByte(MSG_ENTITY, m_iRenderFX);
|
||||
}
|
||||
if (fChanged & BASEFL_CHANGED_RENDERMODE) {
|
||||
WriteByte(MSG_ENTITY, m_iRenderMode);
|
||||
WriteByte(MSG_ENTITY, m_iRenderFX);
|
||||
}
|
||||
|
||||
if (fChanged & BASEFL_CHANGED_RENDERCOLOR) {
|
||||
|
@ -830,6 +786,101 @@ NSTalkMonster::predraw(void)
|
|||
return render;
|
||||
}
|
||||
|
||||
/*
|
||||
============
|
||||
NSTalkMonster::ReceiveEntity
|
||||
============
|
||||
*/
|
||||
void
|
||||
NSTalkMonster::ReceiveEntity(float flNew, float flChanged)
|
||||
{
|
||||
if (flChanged & BASEFL_CHANGED_ORIGIN) {
|
||||
origin[0] = readcoord();
|
||||
origin[1] = readcoord();
|
||||
origin[2] = readcoord();
|
||||
}
|
||||
if (flChanged & BASEFL_CHANGED_ANGLES) {
|
||||
angles[0] = readshort() / (32767 / 360);
|
||||
angles[1] = readshort() / (32767 / 360);
|
||||
angles[2] = readshort() / (32767 / 360);
|
||||
}
|
||||
if (flChanged & BASEFL_CHANGED_MODELINDEX) {
|
||||
setmodelindex(this, readshort());
|
||||
}
|
||||
if (flChanged & BASEFL_CHANGED_SOLID) {
|
||||
solid = readbyte();
|
||||
}
|
||||
if (flChanged & BASEFL_CHANGED_MOVETYPE) {
|
||||
movetype = readbyte();
|
||||
|
||||
if (movetype == MOVETYPE_PHYSICS) {
|
||||
movetype = MOVETYPE_NONE;
|
||||
}
|
||||
}
|
||||
if (flChanged & BASEFL_CHANGED_SIZE) {
|
||||
mins[0] = readcoord();
|
||||
mins[1] = readcoord();
|
||||
mins[2] = readcoord();
|
||||
maxs[0] = readcoord();
|
||||
maxs[1] = readcoord();
|
||||
maxs[2] = readcoord();
|
||||
setsize(this, mins, maxs);
|
||||
}
|
||||
if (flChanged & BASEFL_CHANGED_FRAME) {
|
||||
frame = readbyte();
|
||||
frame1time = readfloat();
|
||||
frame2time = frame1time;
|
||||
}
|
||||
if (flChanged & BASEFL_CHANGED_SKIN) {
|
||||
skin = readbyte() - 128;
|
||||
}
|
||||
if (flChanged & BASEFL_CHANGED_EFFECTS) {
|
||||
effects = readfloat();
|
||||
}
|
||||
if (flChanged & BASEFL_CHANGED_BODY) {
|
||||
m_iBody = readbyte();
|
||||
setcustomskin(this, "", sprintf("geomset 1 %i\n", m_iBody));
|
||||
}
|
||||
if (flChanged & BASEFL_CHANGED_SCALE) {
|
||||
scale = readfloat();
|
||||
}
|
||||
if (flChanged & BASEFL_CHANGED_VELOCITY) {
|
||||
velocity[0] = readfloat();
|
||||
velocity[1] = readfloat();
|
||||
velocity[2] = readfloat();
|
||||
}
|
||||
|
||||
#ifdef GS_RENDERFX
|
||||
if (flChanged & BASEFL_CHANGED_RENDERMODE) {
|
||||
m_iRenderMode = readbyte();
|
||||
m_iRenderFX = readbyte();
|
||||
}
|
||||
if (flChanged & BASEFL_CHANGED_RENDERCOLOR) {
|
||||
m_vecRenderColor[0] = readfloat();
|
||||
m_vecRenderColor[1] = readfloat();
|
||||
m_vecRenderColor[2] = readfloat();
|
||||
}
|
||||
if (flChanged & BASEFL_CHANGED_RENDERAMT) {
|
||||
m_flRenderAmt = readfloat();
|
||||
}
|
||||
#else
|
||||
if (flChanged & BASEFL_CHANGED_ALPHA) {
|
||||
alpha = readfloat();
|
||||
}
|
||||
#endif
|
||||
|
||||
if (modelindex) {
|
||||
drawmask = MASK_ENGINE;
|
||||
} else {
|
||||
drawmask = 0;
|
||||
}
|
||||
|
||||
if (scale == 0.0)
|
||||
scale = 1.0f;
|
||||
|
||||
setorigin(this, origin);
|
||||
}
|
||||
|
||||
void
|
||||
NSTalkMonster_ParseSentence(void)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue