ソースを参照

Merge pull request #420 from tdev/camera-datablock-fixes

fixed camera code not checking for invalid/missing datablock
SilentMike 12 年 前
コミット
cec14272b6
1 ファイル変更3 行追加3 行削除
  1. 3 3
      Engine/source/T3D/camera.cpp

+ 3 - 3
Engine/source/T3D/camera.cpp

@@ -903,7 +903,7 @@ void Camera::_setPosition(const Point3F& pos, const Point3F& rot)
    
    
    MatrixF temp;
    MatrixF temp;
 
 
-   if(mDataBlock->cameraCanBank)
+   if(mDataBlock && mDataBlock->cameraCanBank)
    {
    {
       // Take rot.y into account to bank the camera
       // Take rot.y into account to bank the camera
       MatrixF imat;
       MatrixF imat;
@@ -932,7 +932,7 @@ void Camera::setRotation(const Point3F& rot)
 
 
    MatrixF temp;
    MatrixF temp;
 
 
-   if(mDataBlock->cameraCanBank)
+   if(mDataBlock && mDataBlock->cameraCanBank)
    {
    {
       // Take rot.y into account to bank the camera
       // Take rot.y into account to bank the camera
       MatrixF imat;
       MatrixF imat;
@@ -993,7 +993,7 @@ void Camera::writePacketData(GameConnection *connection, BitStream *bstream)
    bstream->setCompressionPoint(pos);
    bstream->setCompressionPoint(pos);
    mathWrite(*bstream, pos);
    mathWrite(*bstream, pos);
    bstream->write(mRot.x);
    bstream->write(mRot.x);
-   if(bstream->writeFlag(mDataBlock->cameraCanBank))
+   if(mDataBlock && bstream->writeFlag(mDataBlock->cameraCanBank))
    {
    {
       // Include mRot.y to allow for camera banking
       // Include mRot.y to allow for camera banking
       bstream->write(mRot.y);
       bstream->write(mRot.y);