diff --git a/source/renderer/Renderer.cpp b/source/renderer/Renderer.cpp index 1aa6267b05..7ad3f8ead2 100644 --- a/source/renderer/Renderer.cpp +++ b/source/renderer/Renderer.cpp @@ -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(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(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(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(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(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(ctx, newval, value)) return; - m->waterManager.m_RepeatPeriod = value; -} - -void CRenderer::JSI_SetWaterReflectionTintStrength(JSContext* ctx, jsval newval) -{ - float value; - if (!ToPrimitive(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::ScriptingInit("Renderer"); } diff --git a/source/renderer/Renderer.h b/source/renderer/Renderer.h index d46abe2c61..ae73391eb0 100644 --- a/source/renderer/Renderer.h +++ b/source/renderer/Renderer.h @@ -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();