]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - plugins/entity/modelskinkey.h
Revert partially (auto) "reformat code! now the code is only ugly on the *inside*"
[xonotic/netradiant.git] / plugins / entity / modelskinkey.h
index f1c1cca20b9fb4a920dc7bed54190637cfa4ebae..963640158ade832546e4b4bdfdc03460a54fa9b4 100644 (file)
 #include "entitylib.h"
 #include "traverselib.h"
 
-inline void parseTextureName(CopiedString &name, const char *token)
-{
-    StringOutputStream cleaned(256);
-    cleaned << PathCleaned(token);
-    name = StringRange(cleaned.c_str(), path_get_filename_base_end(cleaned.c_str())); // remove extension
+inline void parseTextureName( CopiedString& name, const char* token ){
+       StringOutputStream cleaned( 256 );
+       cleaned << PathCleaned( token );
+       name = StringRange( cleaned.c_str(), path_get_filename_base_end( cleaned.c_str() ) ); // remove extension
 }
 
-class ModelSkinKey : public ModuleObserver {
-    CopiedString m_name;
-    ModelSkin *m_skin;
-    Callback<void()> m_skinChangedCallback;
-
-    ModelSkinKey(const ModelSkinKey &);
-
-    ModelSkinKey operator=(const ModelSkinKey &);
+class ModelSkinKey : public ModuleObserver
+{
+CopiedString m_name;
+ModelSkin* m_skin;
+Callback<void()> m_skinChangedCallback;
 
-    void construct()
-    {
-        m_skin = &GlobalModelSkinCache().capture(m_name.c_str());
-        m_skin->attach(*this);
-    }
+ModelSkinKey( const ModelSkinKey& );
+ModelSkinKey operator=( const ModelSkinKey& );
 
-    void destroy()
-    {
-        m_skin->detach(*this);
-        GlobalModelSkinCache().release(m_name.c_str());
-    }
+void construct(){
+       m_skin = &GlobalModelSkinCache().capture( m_name.c_str() );
+       m_skin->attach( *this );
+}
+void destroy(){
+       m_skin->detach( *this );
+       GlobalModelSkinCache().release( m_name.c_str() );
+}
 
 public:
-    ModelSkinKey(const Callback<void()> &skinChangedCallback) : m_skinChangedCallback(skinChangedCallback)
-    {
-        construct();
-    }
-
-    ~ModelSkinKey()
-    {
-        destroy();
-    }
-
-    ModelSkin &get() const
-    {
-        return *m_skin;
-    }
-
-    void skinChanged(const char *value)
-    {
-        destroy();
-        parseTextureName(m_name, value);
-        construct();
-    }
-
-    typedef MemberCaller<ModelSkinKey, void(const char *), &ModelSkinKey::skinChanged> SkinChangedCaller;
-
-    void realise()
-    {
-        m_skinChangedCallback();
-    }
-
-    void unrealise()
-    {
-    }
+ModelSkinKey( const Callback<void()>& skinChangedCallback ) : m_skinChangedCallback( skinChangedCallback ){
+       construct();
+}
+~ModelSkinKey(){
+       destroy();
+}
+ModelSkin& get() const {
+       return *m_skin;
+}
+void skinChanged( const char* value ){
+       destroy();
+       parseTextureName( m_name, value );
+       construct();
+}
+typedef MemberCaller<ModelSkinKey, void(const char*), &ModelSkinKey::skinChanged> SkinChangedCaller;
+
+void realise(){
+       m_skinChangedCallback();
+}
+void unrealise(){
+}
 };
 
-class InstanceSkinChanged : public scene::Instantiable::Visitor {
+class InstanceSkinChanged : public scene::Instantiable::Visitor
+{
 public:
-    void visit(scene::Instance &instance) const
-    {
-        //\todo don't do this for instances that are not children of the entity setting the skin
-        SkinnedModel *skinned = InstanceTypeCast<SkinnedModel>::cast(instance);
-        if (skinned != 0) {
-            skinned->skinChanged();
-        }
-    }
+void visit( scene::Instance& instance ) const {
+       //\todo don't do this for instances that are not children of the entity setting the skin
+       SkinnedModel* skinned = InstanceTypeCast<SkinnedModel>::cast( instance );
+       if ( skinned != 0 ) {
+               skinned->skinChanged();
+       }
+}
 };
 
-inline void Node_modelSkinChanged(scene::Node &node)
-{
-    scene::Instantiable *instantiable = Node_getInstantiable(node);
-    ASSERT_NOTNULL(instantiable);
-    instantiable->forEachInstance(InstanceSkinChanged());
+inline void Node_modelSkinChanged( scene::Node& node ){
+       scene::Instantiable* instantiable = Node_getInstantiable( node );
+       ASSERT_NOTNULL( instantiable );
+       instantiable->forEachInstance( InstanceSkinChanged() );
 }
 
 #endif