瀏覽代碼

Merge pull request #1249 from Azaezel/alpha41/refreshrevamp

hot editing tsstatics crashfix
Brian Roberts 1 年之前
父節點
當前提交
f0e7a27c16

+ 0 - 2
Engine/source/T3D/assets/ImageAsset.cpp

@@ -318,8 +318,6 @@ void ImageAsset::_onResourceChanged(const Torque::Path& path)
       return;
 
    refreshAsset();
-
-   onAssetRefresh();
 }
 
 void ImageAsset::setImageFileName(const char* pScriptFile)

+ 1 - 1
Engine/source/T3D/assets/ImageAsset.h

@@ -151,7 +151,7 @@ public:
    static U32 getAssetById(StringTableEntry assetId, AssetPtr<ImageAsset>* imageAsset);
    static U32 getAssetById(String assetId, AssetPtr<ImageAsset>* imageAsset) { return getAssetById(assetId.c_str(), imageAsset); };
 
-   U32 load();
+   U32 load() override;
 
 protected:
    void            initializeAsset(void) override;

+ 1 - 1
Engine/source/T3D/assets/LevelAsset.h

@@ -111,7 +111,7 @@ public:
    void                    setBakedSceneFile(const char* pBakedSceneFile);
    inline StringTableEntry getBakedSceneFile(void) const { return mBakedSceneFile; };
 
-   SimObjectId load();
+   U32 load() override { return Ok; };
 
 protected:
    static bool setLevelFile(void *obj, const char *index, const char *data) { static_cast<LevelAsset*>(obj)->setLevelFile(data); return false; }

+ 1 - 1
Engine/source/T3D/assets/MaterialAsset.h

@@ -104,7 +104,7 @@ public:
    static void initPersistFields();
    void copyTo(SimObject* object) override;
 
-   U32 load();
+   U32 load() override;
 
    StringTableEntry getMaterialDefinitionName() { return mMatDefinitionName; }
    SimObjectPtr<Material> getMaterialDefinition() { return mMaterialDefinition; }

+ 4 - 3
Engine/source/T3D/assets/ShapeAsset.cpp

@@ -304,8 +304,6 @@ void ShapeAsset::_onResourceChanged(const Torque::Path &path)
       return;
 
    refreshAsset();
-
-   onAssetRefresh();
 }
 
 U32 ShapeAsset::load()
@@ -419,9 +417,10 @@ U32 ShapeAsset::load()
       }
    }
 
+   mLoadedState = Ok;
+
    mChangeSignal.trigger();
 
-   mLoadedState = Ok;
    return mLoadedState;
 }
 
@@ -534,6 +533,8 @@ void ShapeAsset::onAssetRefresh(void)
    // Update.
    if(!Platform::isFullPath(mFileName))
       mFilePath = getOwned() ? expandAssetFilePath(mFileName) : mFilePath;
+
+   load();
 }
 
 void ShapeAsset::SplitSequencePathAndName(String& srcPath, String& srcName)

+ 1 - 1
Engine/source/T3D/assets/ShapeAsset.h

@@ -132,7 +132,7 @@ public:
    /// Declare Console Object.
    DECLARE_CONOBJECT(ShapeAsset);
 
-   U32 load();
+   U32 load() override;
 
    TSShape* getShape() { return mShape; }
 

+ 1 - 1
Engine/source/T3D/assets/SoundAsset.h

@@ -156,7 +156,7 @@ public:
    DECLARE_CONOBJECT(SoundAsset);
 
    static bool _setSoundFile(void* object, const char* index, const char* data);
-   U32 load();
+   U32 load() override;
    inline StringTableEntry getSoundPath(const U32 slotId = 0) const { return mSoundPath[slotId]; };
    SFXProfile* getSfxProfile(const U32 slotId = 0) { return &mSFXProfile[slotId]; }
    SFXPlayList* getSfxPlaylist() { return &mPlaylist; }

+ 1 - 1
Engine/source/T3D/assets/TerrainAsset.h

@@ -82,7 +82,7 @@ public:
 
    inline Resource<TerrainFile> getTerrainResource(void) const { return mTerrainFile; };
 
-   U32 load();
+   U32 load() override;
 
    static bool getAssetByFilename(StringTableEntry fileName, AssetPtr<TerrainAsset>* shapeAsset);
    static StringTableEntry getAssetIdByFilename(StringTableEntry fileName);

+ 1 - 1
Engine/source/T3D/assets/TerrainMaterialAsset.h

@@ -89,7 +89,7 @@ public:
    static void initPersistFields();
    void copyTo(SimObject* object) override;
 
-   U32 load();
+   U32 load() override;
 
    StringTableEntry getMaterialDefinitionName() { return mMatDefinitionName; }
    SimObjectPtr<TerrainMaterial> getMaterialDefinition() { return mMaterialDefinition; }

+ 1 - 10
Engine/source/T3D/tsStatic.cpp

@@ -389,7 +389,7 @@ bool TSStatic::_createShape()
    SAFE_DELETE(mPhysicsRep);
    SAFE_DELETE(mShapeInstance);
    mAmbientThread = NULL;
-   mShape = NULL;
+   //mShape = NULL;
 
    U32 assetStatus = ShapeAsset::getAssetErrCode(mShapeAsset);
    if (assetStatus == AssetBase::Ok || assetStatus == AssetBase::UsingFallback)
@@ -606,15 +606,6 @@ void TSStatic::onRemove()
    Parent::onRemove();
 }
 
-void TSStatic::_onResourceChanged(const Torque::Path& path)
-{
-   if (path != Path(mShapeName))
-      return;
-
-   _createShape();
-   _updateShouldTick();
-}
-
 void TSStatic::onShapeChanged()
 {
    _createShape();

+ 0 - 1
Engine/source/T3D/tsStatic.h

@@ -169,7 +169,6 @@ protected:
 
    void _renderNormals(ObjectRenderInst* ri, SceneRenderState* state, BaseMatInstance* overrideMat);
 
-   void _onResourceChanged(const Torque::Path& path);
    void onShapeChanged();
 
    // ProcessObject

+ 1 - 1
Engine/source/assets/assetBase.h

@@ -91,7 +91,7 @@ public:
       return mErrCodeStrings[errCode];
    };
    U32 getStatus() { return mLoadedState; };
-   U32 load() { return NotLoaded; };
+   virtual U32 load() { return NotLoaded; };
    AssetBase();
    virtual ~AssetBase();