diff --git a/Engine/source/T3D/assets/ImageAsset.cpp b/Engine/source/T3D/assets/ImageAsset.cpp index 3e29b0bdf..ff4c3ac70 100644 --- a/Engine/source/T3D/assets/ImageAsset.cpp +++ b/Engine/source/T3D/assets/ImageAsset.cpp @@ -90,14 +90,9 @@ ConsoleSetType(TypeImageAssetPtr) //----------------------------------------------------------------------------- -ImageAsset::ImageAsset() +ImageAsset::ImageAsset() : AssetBase(), mImage(nullptr), mUseMips(true), mIsHDRImage(false), mIsValidImage(false) { mImageFileName = StringTable->EmptyString(); - - mImage = NULL; - mUseMips = true; - mIsHDRImage = false; - mIsValidImage = false; } //----------------------------------------------------------------------------- diff --git a/Engine/source/T3D/assets/ImageAsset.h b/Engine/source/T3D/assets/ImageAsset.h index d289ac195..f5b52db07 100644 --- a/Engine/source/T3D/assets/ImageAsset.h +++ b/Engine/source/T3D/assets/ImageAsset.h @@ -47,11 +47,6 @@ class ImageAsset : public AssetBase { typedef AssetBase Parent; - AssetManager* mpOwningAssetManager; - bool mAssetInitialized; - AssetDefinition* mpAssetDefinition; - U32 mAcquireReferenceCount; - StringTableEntry mImageFileName; GFXTexHandle mImage; diff --git a/Engine/source/T3D/assets/LevelAsset.cpp b/Engine/source/T3D/assets/LevelAsset.cpp index 849cdc8d7..34084924a 100644 --- a/Engine/source/T3D/assets/LevelAsset.cpp +++ b/Engine/source/T3D/assets/LevelAsset.cpp @@ -90,10 +90,12 @@ ConsoleSetType(TypeLevelAssetPtr) //----------------------------------------------------------------------------- -LevelAsset::LevelAsset() +LevelAsset::LevelAsset() : AssetBase(), mIsSubLevel(false) { mLevelFile = StringTable->EmptyString(); mPreviewImage = StringTable->EmptyString(); + + mMainLevelAsset = StringTable->EmptyString(); } //----------------------------------------------------------------------------- diff --git a/Engine/source/T3D/assets/ScriptAsset.cpp b/Engine/source/T3D/assets/ScriptAsset.cpp index dbc5e7a2e..10c3be777 100644 --- a/Engine/source/T3D/assets/ScriptAsset.cpp +++ b/Engine/source/T3D/assets/ScriptAsset.cpp @@ -89,7 +89,7 @@ ConsoleSetType(TypeScriptAssetPtr) //----------------------------------------------------------------------------- -ScriptAsset::ScriptAsset() +ScriptAsset::ScriptAsset() : AssetBase(), mIsServerSide(true) { mScriptFilePath = StringTable->EmptyString(); } diff --git a/Engine/source/T3D/components/animation/animationComponent.cpp b/Engine/source/T3D/components/animation/animationComponent.cpp index c8fd645d0..1b4604ce5 100644 --- a/Engine/source/T3D/components/animation/animationComponent.cpp +++ b/Engine/source/T3D/components/animation/animationComponent.cpp @@ -613,6 +613,9 @@ void AnimationComponent::advanceThreads(F32 dt) if (!mOwnerRenderInst) return; + if (mOwnerShapeInstance == nullptr || !getShape()) + return; + for (U32 i = 0; i < MaxScriptThreads; i++) { Thread& st = mAnimationThreads[i]; diff --git a/Engine/source/T3D/components/collision/collisionComponent.cpp b/Engine/source/T3D/components/collision/collisionComponent.cpp index ccdf818f1..3736fbe04 100644 --- a/Engine/source/T3D/components/collision/collisionComponent.cpp +++ b/Engine/source/T3D/components/collision/collisionComponent.cpp @@ -142,10 +142,12 @@ CollisionComponent::CollisionComponent() : Component() StaticShapeObjectType | VehicleObjectType | VehicleBlockerObjectType | DynamicShapeObjectType | StaticObjectType | EntityObjectType | TriggerObjectType); - mPhysicsRep = NULL; - mPhysicsWorld = NULL; + mPhysicsRep = nullptr; + mPhysicsWorld = nullptr; - mTimeoutList = NULL; + mTimeoutList = nullptr; + + mAnimated = false; } CollisionComponent::~CollisionComponent() diff --git a/Engine/source/T3D/components/component.cpp b/Engine/source/T3D/components/component.cpp index ff207d2c1..181c892e5 100644 --- a/Engine/source/T3D/components/component.cpp +++ b/Engine/source/T3D/components/component.cpp @@ -67,6 +67,13 @@ Component::Component() mOriginatingAssetId = StringTable->EmptyString(); mIsServerObject = true; + + componentIdx = 0; + + mHidden = false; + mEnabled = true; + + mDirtyMaskBits = 0; } Component::~Component() @@ -535,7 +542,7 @@ const char * Component::getDescriptionText(const char *desc) if (desc == NULL) return NULL; - char *newDesc; + char *newDesc = ""; // [tom, 1/12/2007] If it isn't a file, just do it the easy way if (!Platform::isFile(desc)) @@ -568,7 +575,7 @@ const char * Component::getDescriptionText(const char *desc) } str.close(); - delete stream; + //delete stream; return newDesc; } diff --git a/Engine/source/T3D/components/game/stateMachine.cpp b/Engine/source/T3D/components/game/stateMachine.cpp index 335b69db3..fd1ef8505 100644 --- a/Engine/source/T3D/components/game/stateMachine.cpp +++ b/Engine/source/T3D/components/game/stateMachine.cpp @@ -30,6 +30,10 @@ StateMachine::StateMachine() mStartingState = ""; mCurCreateState = NULL; + + mStateMachineFile = StringTable->EmptyString(); + + mCurCreateState = nullptr; } StateMachine::~StateMachine() diff --git a/Engine/source/T3D/components/game/stateMachine.h b/Engine/source/T3D/components/game/stateMachine.h index 9ccc540e8..b440ab7fa 100644 --- a/Engine/source/T3D/components/game/stateMachine.h +++ b/Engine/source/T3D/components/game/stateMachine.h @@ -158,6 +158,8 @@ public: { if (index <= mFields.size()) return mFields[index]; + + return StateField(); //return a blank one } Signal< void(StateMachine*, S32 stateIdx) > onStateChanged; diff --git a/Engine/source/T3D/components/physics/playerControllerComponent.cpp b/Engine/source/T3D/components/physics/playerControllerComponent.cpp index 2c6cea6e9..761ac570c 100644 --- a/Engine/source/T3D/components/physics/playerControllerComponent.cpp +++ b/Engine/source/T3D/components/physics/playerControllerComponent.cpp @@ -119,8 +119,11 @@ PlayerControllerComponent::PlayerControllerComponent() : Component() mInputVelocity = Point3F(0, 0, 0); - mPhysicsRep = NULL; - mPhysicsWorld = NULL; + mPhysicsRep = nullptr; + mPhysicsWorld = nullptr; + + mOwnerCollisionInterface = nullptr; + mIntegrationCount = 0; } PlayerControllerComponent::~PlayerControllerComponent() diff --git a/Engine/source/T3D/components/render/meshComponent.cpp b/Engine/source/T3D/components/render/meshComponent.cpp index 10186c873..c87733bf8 100644 --- a/Engine/source/T3D/components/render/meshComponent.cpp +++ b/Engine/source/T3D/components/render/meshComponent.cpp @@ -59,7 +59,7 @@ ImplementEnumType(BatchingMode, ////////////////////////////////////////////////////////////////////////// // Constructor/Destructor ////////////////////////////////////////////////////////////////////////// -MeshComponent::MeshComponent() : Component() +MeshComponent::MeshComponent() : Component(), mShape(nullptr), mRenderMode(Individual) { mFriendlyName = "Mesh Component"; mComponentType = "Render"; diff --git a/Engine/source/T3D/entity.cpp b/Engine/source/T3D/entity.cpp index a7af19b33..62c0b031f 100644 --- a/Engine/source/T3D/entity.cpp +++ b/Engine/source/T3D/entity.cpp @@ -850,7 +850,7 @@ void Entity::setTransform(const MatrixF &mat) } } -void Entity::setTransform(Point3F position, RotationF rotation) +void Entity::setTransform(const Point3F& position, const RotationF& rotation) { MatrixF oldTransform = getTransform(); @@ -922,7 +922,7 @@ void Entity::setRenderTransform(const MatrixF &mat) Parent::setRenderTransform(mat); } -void Entity::setRenderTransform(Point3F position, RotationF rotation) +void Entity::setRenderTransform(const Point3F& position, const RotationF& rotation) { if (isMounted()) { @@ -977,7 +977,7 @@ MatrixF Entity::getTransform() } } -void Entity::setMountOffset(Point3F posOffset) +void Entity::setMountOffset(const Point3F& posOffset) { if (isMounted()) { @@ -987,7 +987,7 @@ void Entity::setMountOffset(Point3F posOffset) } } -void Entity::setMountRotation(EulerF rotOffset) +void Entity::setMountRotation(const EulerF& rotOffset) { if (isMounted()) { @@ -1111,11 +1111,12 @@ bool Entity::castRayRendered(const Point3F &start, const Point3F &end, RayInfo * bool Entity::buildPolyList(PolyListContext context, AbstractPolyList* polyList, const Box3F &box, const SphereF &sphere) { - Vector updaters = getComponents(); + Con::errorf("Build Poly List not yet implemented as a passthrough for Entity"); + /*Vector updaters = getComponents(); for (Vector::iterator it = updaters.begin(); it != updaters.end(); it++) { return (*it)->buildPolyList(context, polyList, box, sphere); - } + }*/ return false; } @@ -1131,7 +1132,7 @@ void Entity::buildConvex(const Box3F& box, Convex* convex) // // Mounting and heirarchy manipulation -void Entity::mountObject(SceneObject* objB, MatrixF txfm) +void Entity::mountObject(SceneObject* objB, const MatrixF& txfm) { Parent::mountObject(objB, -1, txfm); Parent::addObject(objB); @@ -1604,7 +1605,7 @@ void Entity::onCameraScopeQuery(NetConnection* connection, CameraScopeQuery* que } } // -void Entity::setObjectBox(Box3F objBox) +void Entity::setObjectBox(const Box3F& objBox) { mObjBox = objBox; resetWorldBox(); @@ -1705,8 +1706,8 @@ void Entity::setComponentDirty(Component *comp, bool forceUpdate) } } - if (!found) - return; + //if (!found) + // return; //if(mToLoadComponents.empty()) // mStartComponentUpdate = true; diff --git a/Engine/source/T3D/entity.h b/Engine/source/T3D/entity.h index db65f2866..5bf9898ea 100644 --- a/Engine/source/T3D/entity.h +++ b/Engine/source/T3D/entity.h @@ -152,14 +152,14 @@ public: virtual void setTransform(const MatrixF &mat); virtual void setRenderTransform(const MatrixF &mat); - void setTransform(Point3F position, RotationF rotation); + void setTransform(const Point3F& position, const RotationF& rotation); - void setRenderTransform(Point3F position, RotationF rotation); + void setRenderTransform(const Point3F& position, const RotationF& rotation); virtual MatrixF getTransform(); virtual Point3F getPosition() const { return mPos; } - void setRotation(RotationF rotation) { + void setRotation(const RotationF& rotation) { mRot = rotation; setMaskBits(TransformMask); }; @@ -167,8 +167,8 @@ public: static bool _setGameObject(void *object, const char *index, const char *data); - void setMountOffset(Point3F posOffset); - void setMountRotation(EulerF rotOffset); + void setMountOffset(const Point3F& posOffset); + void setMountRotation(const EulerF& rotOffset); //static bool _setEulerRotation( void *object, const char *index, const char *data ); static bool _setPosition(void *object, const char *index, const char *data); @@ -181,7 +181,7 @@ public: virtual void getRenderMountTransform(F32 delta, S32 index, const MatrixF &xfm, MatrixF *outMat); virtual void mountObject(SceneObject *obj, S32 node, const MatrixF &xfm = MatrixF::Identity); - void mountObject(SceneObject* objB, MatrixF txfm); + void mountObject(SceneObject* objB, const MatrixF& txfm); void onMount(SceneObject *obj, S32 node); void onUnmount(SceneObject *obj, S32 node); @@ -218,7 +218,7 @@ public: return mComponents.size(); } - virtual void setObjectBox(Box3F objBox); + virtual void setObjectBox(const Box3F& objBox); void resetWorldBox() { Parent::resetWorldBox(); } void resetObjectBox() { Parent::resetObjectBox(); } diff --git a/Engine/source/T3D/systems/render/meshRenderSystem.cpp b/Engine/source/T3D/systems/render/meshRenderSystem.cpp index 214a63dfe..f777b264b 100644 --- a/Engine/source/T3D/systems/render/meshRenderSystem.cpp +++ b/Engine/source/T3D/systems/render/meshRenderSystem.cpp @@ -11,6 +11,9 @@ Vector MeshRenderSystem::mStaticBuffers(0); void MeshRenderSystem::render(SceneManager *sceneManager, SceneRenderState* state) { + if (sceneManager == nullptr || state == nullptr) + return; + Frustum viewFrustum = state->getCullingFrustum(); MatrixF camTransform = state->getCameraTransform(); @@ -129,7 +132,7 @@ void MeshRenderSystem::render(SceneManager *sceneManager, SceneRenderState* stat // We sort by the material then vertex buffer ri->defaultKey = matInst->getStateHint(); - ri->defaultKey2 = (uintptr_t)ri->vertBuff; // Not 64bit safe! + ri->defaultKey2 = (U32)ri->vertBuff; // Not 64bit safe! // Submit our RenderInst to the RenderPassManager state->getRenderPass()->addInst(ri); diff --git a/Engine/source/gui/editor/inspector/entityGroup.cpp b/Engine/source/gui/editor/inspector/entityGroup.cpp index c833d336d..7b7559833 100644 --- a/Engine/source/gui/editor/inspector/entityGroup.cpp +++ b/Engine/source/gui/editor/inspector/entityGroup.cpp @@ -70,7 +70,8 @@ bool GuiInspectorEntityGroup::inspectGroup() { Entity* target = dynamic_cast(mParent->getInspectObject(0)); - Con::executef(this, "inspectObject", target->getIdString()); + if(target) + Con::executef(this, "inspectObject", target->getIdString()); } return true;