From: spog Date: Mon, 29 May 2006 12:22:34 +0000 (+0000) Subject: cleaned up duplicated doom3 light_radius default value X-Git-Tag: xonotic-v0.7.0~16^2~12^2~222 X-Git-Url: https://de.git.xonotic.org/?a=commitdiff_plain;h=4a43142e7fcc8e7a567384a3e58dd9b4c6801342;p=xonotic%2Fnetradiant.git cleaned up duplicated doom3 light_radius default value git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@72 8a3a26a2-13c4-0310-b231-cf6edde360e5 --- diff --git a/CHANGES b/CHANGES index f25ae8f0..86e6dd46 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,10 @@ This is the changelog for developers, != changelog for the end user that we distribute with the binaries. (see changelog) +29/05/2006 +SPoG +- Changed default doom3 light_radius to be taken from the entity-definition. + 13/05/2006 LordHavoc - Added -fPIC for Linux builds to support x86_64. diff --git a/plugins/entity/light.cpp b/plugins/entity/light.cpp index 3a4c003a..537da2c1 100644 --- a/plugins/entity/light.cpp +++ b/plugins/entity/light.cpp @@ -537,25 +537,30 @@ public: typedef MemberCaller1 FlagsChangedCaller; }; -const Vector3 c_defaultDoom3LightRadius = Vector3(300, 300, 300); class Doom3LightRadius { public: + Vector3 m_defaultRadius; Vector3 m_radius; Vector3 m_radiusTransformed; Vector3 m_center; Callback m_changed; bool m_useCenterKey; - Doom3LightRadius() : m_radius(c_defaultDoom3LightRadius), m_center(0, 0, 0), m_useCenterKey(false) + Doom3LightRadius(const char* defaultRadius) : m_defaultRadius(300, 300, 300), m_center(0, 0, 0), m_useCenterKey(false) { + if(!string_parse_vector3(defaultRadius, m_defaultRadius)) + { + globalErrorStream() << "Doom3LightRadius: failed to parse default light radius\n"; + } + m_radius = m_defaultRadius; } void lightRadiusChanged(const char* value) { if(!string_parse_vector3(value, m_radius)) { - m_radius = c_defaultDoom3LightRadius; + m_radius = m_defaultRadius; } m_radiusTransformed = m_radius; m_changed(); @@ -1043,6 +1048,7 @@ public: m_named(m_entity), m_nameKeys(m_entity), m_funcStaticOrigin(m_traverse, m_originKey.m_origin), + m_doom3Radius(EntityClass_valueForKey(m_entity.getEntityClass(), "light_radius")), m_radii_wire(m_radii, m_aabb_light.origin), m_radii_fill(m_radii, m_aabb_light.origin), m_radii_box(m_aabb_light.origin), @@ -1066,6 +1072,7 @@ public: m_named(m_entity), m_nameKeys(m_entity), m_funcStaticOrigin(m_traverse, m_originKey.m_origin), + m_doom3Radius(EntityClass_valueForKey(m_entity.getEntityClass(), "light_radius")), m_radii_wire(m_radii, m_aabb_light.origin), m_radii_fill(m_radii, m_aabb_light.origin), m_radii_box(m_aabb_light.origin), @@ -1330,7 +1337,7 @@ public: write_rotation(m_rotationKey.m_rotation, &m_entity); m_doom3Radius.m_radius = m_doom3Radius.m_radiusTransformed; - if(m_doom3Radius.m_radius == c_defaultDoom3LightRadius) + if(m_doom3Radius.m_radius == m_doom3Radius.m_defaultRadius) { m_entity.setKeyValue("light_radius", ""); } diff --git a/radiant/entity.cpp b/radiant/entity.cpp index 122ebf97..a68827e6 100644 --- a/radiant/entity.cpp +++ b/radiant/entity.cpp @@ -178,23 +178,27 @@ void Entity_connectSelected() } } -const float Doom3Light_defaultRadius = 300; - AABB Doom3Light_getBounds(const AABB& workzone) { AABB aabb(workzone); + Vector3 defaultRadius(300, 300, 300); + if(!string_parse_vector3(EntityClass_valueForKey(*GlobalEntityClassManager().findOrInsert("light", false), "light_radius"), defaultRadius)) + { + globalErrorStream() << "Doom3Light_getBounds: failed to parse default light radius\n"; + } + if(aabb.extents[0] == 0) { - aabb.extents[0] = Doom3Light_defaultRadius; + aabb.extents[0] = defaultRadius[0]; } if(aabb.extents[1] == 0) { - aabb.extents[1] = Doom3Light_defaultRadius; + aabb.extents[1] = defaultRadius[1]; } if(aabb.extents[2] == 0) { - aabb.extents[2] = Doom3Light_defaultRadius; + aabb.extents[2] = defaultRadius[2]; } if(aabb_valid(aabb))