Use AddLocalProperty in CRenderer.
This gets rid of lots of boiler-plate code in JSI_* functions. This was SVN commit r4380.
This commit is contained in:
parent
714e436e3c
commit
e0b68b7f9f
@ -373,6 +373,15 @@ CRenderer::CRenderer()
|
||||
}
|
||||
|
||||
ONCE( ScriptingInit(); );
|
||||
|
||||
AddLocalProperty(L"fancyWater", &m_Options.m_FancyWater, false);
|
||||
AddLocalProperty(L"horizonHeight", &m->skyManager.m_HorizonHeight, false);
|
||||
AddLocalProperty(L"waterMurkiness", &m->waterManager.m_Murkiness, false);
|
||||
AddLocalProperty(L"waterReflTintStrength", &m->waterManager.m_ReflectionTintStrength, false);
|
||||
AddLocalProperty(L"waterRepeatPeriod", &m->waterManager.m_RepeatPeriod, false);
|
||||
AddLocalProperty(L"waterShininess", &m->waterManager.m_Shininess, false);
|
||||
AddLocalProperty(L"waterSpecularStrength", &m->waterManager.m_SpecularStrength, false);
|
||||
AddLocalProperty(L"waterWaviness", &m->waterManager.m_Waviness, false);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
@ -1726,105 +1735,6 @@ void CRenderer::JSI_SetSky(JSContext* ctx, jsval newval)
|
||||
m->skyManager.SetSkySet(skySet);
|
||||
}
|
||||
|
||||
jsval CRenderer::JSI_GetHorizonHeight(JSContext*)
|
||||
{
|
||||
return ToJSVal(m->skyManager.m_HorizonHeight);
|
||||
}
|
||||
|
||||
void CRenderer::JSI_SetHorizonHeight(JSContext* ctx, jsval newval)
|
||||
{
|
||||
float value;
|
||||
if (!ToPrimitive<float>(ctx, newval, value)) return;
|
||||
m->skyManager.m_HorizonHeight = value;
|
||||
}
|
||||
|
||||
jsval CRenderer::JSI_GetFancyWater(JSContext*)
|
||||
{
|
||||
return ToJSVal(m_Options.m_FancyWater);
|
||||
}
|
||||
|
||||
void CRenderer::JSI_SetFancyWater(JSContext* ctx, jsval newval)
|
||||
{
|
||||
bool fast;
|
||||
|
||||
if (!ToPrimitive(ctx, newval, fast))
|
||||
return;
|
||||
|
||||
m_Options.m_FancyWater = fast;
|
||||
}
|
||||
|
||||
jsval CRenderer::JSI_GetWaterShininess(JSContext*)
|
||||
{
|
||||
return ToJSVal(m->waterManager.m_Shininess);
|
||||
}
|
||||
|
||||
void CRenderer::JSI_SetWaterShininess(JSContext* ctx, jsval newval)
|
||||
{
|
||||
float value;
|
||||
if (!ToPrimitive<float>(ctx, newval, value)) return;
|
||||
m->waterManager.m_Shininess = value;
|
||||
}
|
||||
|
||||
jsval CRenderer::JSI_GetWaterSpecularStrength(JSContext*)
|
||||
{
|
||||
return ToJSVal(m->waterManager.m_SpecularStrength);
|
||||
}
|
||||
|
||||
void CRenderer::JSI_SetWaterSpecularStrength(JSContext* ctx, jsval newval)
|
||||
{
|
||||
float value;
|
||||
if (!ToPrimitive<float>(ctx, newval, value)) return;
|
||||
m->waterManager.m_SpecularStrength = value;
|
||||
}
|
||||
|
||||
jsval CRenderer::JSI_GetWaterMurkiness(JSContext*)
|
||||
{
|
||||
return ToJSVal(m->waterManager.m_Murkiness);
|
||||
}
|
||||
|
||||
void CRenderer::JSI_SetWaterMurkiness(JSContext* ctx, jsval newval)
|
||||
{
|
||||
float value;
|
||||
if (!ToPrimitive<float>(ctx, newval, value)) return;
|
||||
m->waterManager.m_Murkiness = value;
|
||||
}
|
||||
|
||||
jsval CRenderer::JSI_GetWaterWaviness(JSContext*)
|
||||
{
|
||||
return ToJSVal(m->waterManager.m_Waviness);
|
||||
}
|
||||
|
||||
void CRenderer::JSI_SetWaterWaviness(JSContext* ctx, jsval newval)
|
||||
{
|
||||
float value;
|
||||
if (!ToPrimitive<float>(ctx, newval, value)) return;
|
||||
m->waterManager.m_Waviness = value;
|
||||
}
|
||||
|
||||
jsval CRenderer::JSI_GetWaterRepeatPeriod(JSContext*)
|
||||
{
|
||||
return ToJSVal(m->waterManager.m_RepeatPeriod);
|
||||
}
|
||||
|
||||
void CRenderer::JSI_SetWaterRepeatPeriod(JSContext* ctx, jsval newval)
|
||||
{
|
||||
float value;
|
||||
if (!ToPrimitive<float>(ctx, newval, value)) return;
|
||||
m->waterManager.m_RepeatPeriod = value;
|
||||
}
|
||||
|
||||
void CRenderer::JSI_SetWaterReflectionTintStrength(JSContext* ctx, jsval newval)
|
||||
{
|
||||
float value;
|
||||
if (!ToPrimitive<float>(ctx, newval, value)) return;
|
||||
m->waterManager.m_ReflectionTintStrength = value;
|
||||
}
|
||||
|
||||
jsval CRenderer::JSI_GetWaterReflectionTintStrength(JSContext*)
|
||||
{
|
||||
return ToJSVal(m->waterManager.m_ReflectionTintStrength);
|
||||
}
|
||||
|
||||
void CRenderer::ScriptingInit()
|
||||
{
|
||||
AddProperty(L"fastPlayerColor", &CRenderer::JSI_GetFastPlayerColor, &CRenderer::JSI_SetFastPlayerColor);
|
||||
@ -1837,14 +1747,6 @@ void CRenderer::ScriptingInit()
|
||||
AddProperty(L"disableCopyShadow", &CRenderer::m_DisableCopyShadow);
|
||||
AddProperty(L"depthTextureBits", &CRenderer::JSI_GetDepthTextureBits, &CRenderer::JSI_SetDepthTextureBits);
|
||||
AddProperty(L"skySet", &CRenderer::JSI_GetSky, &CRenderer::JSI_SetSky);
|
||||
AddProperty(L"horizonHeight", &CRenderer::JSI_GetHorizonHeight, &CRenderer::JSI_SetHorizonHeight);
|
||||
AddProperty(L"fancyWater", &CRenderer::JSI_GetFancyWater, &CRenderer::JSI_SetFancyWater);
|
||||
AddProperty(L"waterShininess", &CRenderer::JSI_GetWaterShininess, &CRenderer::JSI_SetWaterShininess);
|
||||
AddProperty(L"waterSpecularStrength", &CRenderer::JSI_GetWaterSpecularStrength, &CRenderer::JSI_SetWaterSpecularStrength);
|
||||
AddProperty(L"waterWaviness", &CRenderer::JSI_GetWaterWaviness, &CRenderer::JSI_SetWaterWaviness);
|
||||
AddProperty(L"waterRepeatPeriod", &CRenderer::JSI_GetWaterRepeatPeriod, &CRenderer::JSI_SetWaterRepeatPeriod);
|
||||
AddProperty(L"waterMurkiness", &CRenderer::JSI_GetWaterMurkiness, &CRenderer::JSI_SetWaterMurkiness);
|
||||
AddProperty(L"waterReflTintStrength", &CRenderer::JSI_GetWaterReflectionTintStrength, &CRenderer::JSI_SetWaterReflectionTintStrength);
|
||||
|
||||
CJSObject<CRenderer>::ScriptingInit("Renderer");
|
||||
}
|
||||
|
@ -319,9 +319,8 @@ protected:
|
||||
friend class TerrainRenderer;
|
||||
|
||||
// scripting
|
||||
// TODO: It would be really nice to avoid having to create a function for each of these,
|
||||
// perhaps using some new kind of property for CJSObject which points to an arbitrary value
|
||||
// (since some of these are variables in other objects so member pointers won't work).
|
||||
// TODO: Perhaps we could have a version of AddLocalProperty for function-driven
|
||||
// properties? Then we could hide these function in the private implementation class.
|
||||
static void ScriptingInit();
|
||||
jsval JSI_GetFastPlayerColor(JSContext*);
|
||||
void JSI_SetFastPlayerColor(JSContext* ctx, jsval newval);
|
||||
@ -333,22 +332,6 @@ protected:
|
||||
void JSI_SetDepthTextureBits(JSContext* ctx, jsval newval);
|
||||
jsval JSI_GetSky(JSContext*);
|
||||
void JSI_SetSky(JSContext* ctx, jsval newval);
|
||||
jsval JSI_GetHorizonHeight(JSContext*);
|
||||
void JSI_SetHorizonHeight(JSContext* ctx, jsval newval);
|
||||
jsval JSI_GetFancyWater(JSContext*);
|
||||
void JSI_SetFancyWater(JSContext* ctx, jsval newval);
|
||||
jsval JSI_GetWaterShininess(JSContext*);
|
||||
void JSI_SetWaterShininess(JSContext* ctx, jsval newval);
|
||||
jsval JSI_GetWaterSpecularStrength(JSContext*);
|
||||
void JSI_SetWaterSpecularStrength(JSContext* ctx, jsval newval);
|
||||
jsval JSI_GetWaterReflectionTintStrength(JSContext*);
|
||||
void JSI_SetWaterReflectionTintStrength(JSContext* ctx, jsval newval);
|
||||
jsval JSI_GetWaterWaviness(JSContext*);
|
||||
void JSI_SetWaterWaviness(JSContext* ctx, jsval newval);
|
||||
jsval JSI_GetWaterRepeatPeriod(JSContext*);
|
||||
void JSI_SetWaterRepeatPeriod(JSContext* ctx, jsval newval);
|
||||
jsval JSI_GetWaterMurkiness(JSContext*);
|
||||
void JSI_SetWaterMurkiness(JSContext* ctx, jsval newval);
|
||||
|
||||
// patch rendering stuff
|
||||
void RenderPatches();
|
||||
|
Loading…
Reference in New Issue
Block a user