Changeset 8

Show
Ignore:
Timestamp:
01/11/09 01:00:01 (3 years ago)
Author:
nktug
Message:

Change load xml file name
Fixed some bug like reset the pointer gameloader

Location:
trunk
Files:
2 added
2 removed
7 modified

Legend:

Unmodified
Added
Removed
  • trunk/include/dreamforge/GameObjectManager.hh

    r5 r8  
    5454                        // MANIPULATORS 
    5555                        void addObject(ObjectPtr obj); 
    56                         void deleteObject(); 
     56      void deleteObject(ObjectPtr obj); 
     57       
    5758                        void cleanAll(void); 
    5859                        void updateObject( float timeT ); 
  • trunk/src/LevelEditor.cc

    r7 r8  
    1414#include "dreamforge/GameObjectManager.hh" 
    1515#include "dreamforge/GameSaveFile.hh" 
    16 #include "dreamforge/XmlParser.hh" 
     16#include "dreamforge/GameLoadFile.hh" 
    1717 
    1818#if (OGRE_PLATFORM  == OGRE_PLATFORM_LINUX) 
     
    130130        CObjectManager::getInstance()->cleanAll(); 
    131131   
    132         boost::shared_ptr<XmlParser> gameLoader (new XmlParser()); 
     132        boost::shared_ptr<CGameLoadFile> gameLoader (new CGameLoadFile()); 
    133133  gameLoader->loadParser(loadfile);  
     134  gameLoader.reset(); 
    134135} 
    135136 
     
    247248        { 
    248249                        node->setPosition(node->getPosition().x,  
    249                                         i->worldFragment->singleIntersection.y + 5,  
     250                                        i->worldFragment->singleIntersection.y,  
    250251                                        node->getPosition().z); 
    251252        } 
     
    270271        // Above the camera, facing down 
    271272        plane.normal = -Ogre::Vector3::UNIT_Y; 
    272 /* 
    273         Ogre::Entity *ent = mSceneMgr->createEntity("head", "ogrehead.mesh"); 
    274         // Add entity to the root scene node 
    275         Ogre::SceneNode* headNode = mSceneMgr->getRootSceneNode()->createChildSceneNode(); 
    276         headNode->attachObject(ent); 
    277         headNode->yaw(Ogre::Degree(-180)); 
    278         headNode->setPosition(500,600,600); 
    279         headNode->showBoundingBox(false); 
    280  */ 
    281   ObjectPtr tObj = CObjectFactory::getInstance()->createObject("NPC"); 
    282   tObj->setObjectName("toto"); 
    283   tObj->setObjectMeshFile("ninja.mesh"); 
    284   tObj->initNodeObject(); 
    285   tObj->getSceneNode()->yaw(Ogre::Degree(-180)); 
    286   tObj->getSceneNode()->setPosition(500,600,600); 
    287   tObj->getSceneNode()->showBoundingBox(false); 
    288   tObj->init(); 
    289    
    290         clamToTerrain(tObj->getSceneNode());   
    291    
    292   CObjectManager::getInstance()->addObject(tObj); 
    293273         
    294274} 
     
    329309        mCamera = mSceneMgr->createCamera("PlayerCam 1"); 
    330310 
    331         mCamera->setPosition(Ogre::Vector3(1479,709,1389)); 
    332         mCamera->lookAt(Ogre::Vector3(100,0,100)); 
     311        mCamera->setPosition(Ogre::Vector3(17519,913,16033)); 
     312        mCamera->lookAt(Ogre::Vector3(16073,0,16600)); 
    333313        mCamera->setAutoAspectRatio(true); 
    334314        mCamera->setNearClipDistance(1); 
     
    432412} 
    433413 
    434  
     414//------------------------------------------------------------------------------------------------  
     415//                            UPDATE 
    435416//------------------------------------------------------------------------------------------------  
    436417void LevelEdWidget::update() 
     
    517498    } 
    518499  } 
     500   
     501  if(evt->key() == Qt::Key_Delete) 
     502  { 
     503    if(mEditionMode && mCurentObject.use_count()) 
     504    { 
     505      CObjectManager::getInstance()->deleteObject(mCurentObject); 
     506      mCurentObject.reset(); 
     507    } 
     508  } 
    519509} 
    520510 
     
    537527  objProperties->nodeYVal->setValue ( mCurentObject->getSceneNode()->getPosition().y ); 
    538528  objProperties->nodeZVal->setValue ( mCurentObject->getSceneNode()->getPosition().z ); 
    539    
     529  /* 
    540530  objProperties->snodeXVal->setValue ( mCurentObject->getSceneNode()->getScale().x ); 
    541531  objProperties->snodeYVal->setValue ( mCurentObject->getSceneNode()->getScale().y ); 
    542532  objProperties->snodeZVal->setValue ( mCurentObject->getSceneNode()->getScale().z ); 
    543  
     533*/ 
    544534} 
    545535 
     
    562552 
    563553//------------------------------------------------------------------------------------------------  
    564 void LevelEdWidget::mouveObjectFromRay(QMouseEvent* evt, Ogre::SceneNode* node) 
     554void LevelEdWidget::moveObjectFromRay(QMouseEvent* evt, Ogre::SceneNode* node) 
    565555{ 
    566556  Ogre::Ray mouseRay = mCamera->getCameraToViewportRay((double)evt->pos().x()/(double)width(), (double)evt->pos().y()/(double)height()); 
     
    573563  if (itr != result.end() && itr->worldFragment) 
    574564  {  
    575     node->setPosition(itr->worldFragment->singleIntersection.x, itr->worldFragment->singleIntersection.y + 5, itr->worldFragment->singleIntersection.z); 
     565    node->setPosition(itr->worldFragment->singleIntersection.x, itr->worldFragment->singleIntersection.y, itr->worldFragment->singleIntersection.z); 
    576566  }    
    577567} 
     
    669659      iObj->initNodeObject(); 
    670660 
    671       /*Ogre::Ray mouseRay = mCamera->getCameraToViewportRay((double)evt->pos().x()/(double)width(), (double)evt->pos().y()/(double)height()); 
    672       Ogre::RaySceneQuery* mRaySceneQuery = mSceneMgr->createRayQuery(Ogre::Ray());; 
    673       mRaySceneQuery->setRay(mouseRay); 
    674       //mRaySceneQuery->setSortByDistance(true); 
    675       Ogre::RaySceneQueryResult &result = mRaySceneQuery->execute(); 
    676       Ogre::RaySceneQueryResult::iterator itr = result.begin(); 
    677  
    678       if (itr != result.end() && itr->worldFragment) 
    679       {  
    680         iObj->getSceneNode()->setPosition(itr->worldFragment->singleIntersection.x, itr->worldFragment->singleIntersection.y + 5, itr->worldFragment->singleIntersection.z); 
    681       }*/ 
    682       this->mouveObjectFromRay(evt, iObj->getSceneNode());  
     661      this->moveObjectFromRay(evt, iObj->getSceneNode());  
    683662     
    684663      iObj->getSceneNode()->showBoundingBox(false); 
     
    755734    if (mouseLeftPressed && mCurentObject.use_count()) // If we have left click and we have an object selected 
    756735    {    
    757       /*Ogre::Ray mouseRay = mCamera->getCameraToViewportRay((double)evt->pos().x()/(double)width(), (double)evt->pos().y()/(double)height()); 
    758  
    759       Ogre::RaySceneQuery* mRaySceneQuery = mSceneMgr->createRayQuery(Ogre::Ray());; 
    760       mRaySceneQuery->setRay(mouseRay); 
    761        
    762       //mRaySceneQuery->setSortByDistance(true); 
    763       Ogre::RaySceneQueryResult &result = mRaySceneQuery->execute(); 
    764       Ogre::RaySceneQueryResult::iterator itr = result.begin(); 
    765  
    766       if (itr != result.end() && itr->worldFragment) 
    767       { 
    768           mCurentObject->getSceneNode()->setPosition(itr->worldFragment->singleIntersection.x,itr->worldFragment->singleIntersection.y + 10, itr->worldFragment->singleIntersection.z); 
    769       }*/ 
    770       this->mouveObjectFromRay(evt, mCurentObject->getSceneNode());  
     736      this->moveObjectFromRay(evt, mCurentObject->getSceneNode());  
    771737    } 
    772738  } 
     
    774740  if(mInsertMode)// && mTempObject) 
    775741  { 
    776     /*Ogre::Ray mRay = mCamera->getCameraToViewportRay((double)evt->pos().x()/(double)width(), (double)evt->pos().y()/(double)height()); 
    777  
    778                 Ogre::RaySceneQuery* mRayScQuery = mSceneMgr->createRayQuery(Ogre::Ray());; 
    779                 mRayScQuery->setRay(mRay); 
    780                  
    781                 //mRaySceneQuery->setSortByDistance(true); 
    782                 Ogre::RaySceneQueryResult &reslt = mRayScQuery->execute(); 
    783                 Ogre::RaySceneQueryResult::iterator it = reslt.begin(); 
    784  
    785                 if (it != reslt.end() && it->worldFragment) 
    786                 { 
    787                                 mTempObject->setPosition(it->worldFragment->singleIntersection.x,it->worldFragment->singleIntersection.y + 10, it->worldFragment->singleIntersection.z); 
    788                 }*/ 
    789     this->mouveObjectFromRay(evt, mTempObject); 
     742    this->moveObjectFromRay(evt, mTempObject); 
    790743  } 
    791744         
     
    795748void LevelEdWidget::wheelEvent(QWheelEvent* evt) 
    796749{ 
    797         mDirection.z = -evt->delta()/2; 
     750        mDirection.z = -evt->delta();///2; 
    798751        update(); 
    799752        mDirection.z = 0; 
  • trunk/src/LevelEditor.hh

    r7 r8  
    7272  void getSelectedObjectInfo(void); 
    7373  void resetSelectedObjectInfo(void); 
    74         void mouveObjectFromRay(QMouseEvent* evt, Ogre::SceneNode* node); 
     74        void moveObjectFromRay(QMouseEvent* evt, Ogre::SceneNode* node); 
    7575   
    7676        void keyPressEvent(QKeyEvent* evt); 
     
    9797        QPoint mousePos; 
    9898        float angleX, angleY; 
    99         //float rotX, rotY; 
     99        float moveScale; 
    100100        /////////////////////// 
    101101  std::string mName; 
  • trunk/src/Properties.cc

    r7 r8  
    113113  snodeZVal = new QDoubleSpinBox; 
    114114 
    115   snodeXVal->setSingleStep ( 0.1 ); 
     115  snodeXVal->setSingleStep ( 10.0 ); 
    116116  snodeXVal->setMaximum  ( 99999.99 ); 
    117   snodeYVal->setSingleStep ( 0.1 ); 
     117  snodeYVal->setSingleStep ( 10.0 ); 
    118118  snodeYVal->setMaximum  ( 99999.99 ); 
    119   snodeZVal->setSingleStep ( 0.1 ); 
     119  snodeZVal->setSingleStep ( 10.0 ); 
    120120  snodeZVal->setMaximum  ( 99999.99 );   
    121121   
     
    141141  rnodeZVal = new QDoubleSpinBox; 
    142142 
    143   rnodeXVal->setSingleStep ( 10.0 ); 
     143  rnodeXVal->setSingleStep ( 20.0 ); 
    144144  rnodeXVal->setMaximum  ( 360.0 ); 
    145145  rnodeXVal->setMinimum  ( -360.0 );   
    146   rnodeYVal->setSingleStep ( 10.0 ); 
     146  rnodeYVal->setSingleStep ( 20.0 ); 
    147147  rnodeYVal->setMaximum  ( 360.0 ); 
    148148  rnodeYVal->setMinimum  ( -360.0 );   
    149   rnodeZVal->setSingleStep ( 10.0 ); 
     149  rnodeZVal->setSingleStep ( 20.0 ); 
    150150  rnodeZVal->setMaximum  ( 360.0 );   
    151151  rnodeZVal->setMinimum  ( -360.0 );  
  • trunk/src/SConscript

    r7 r8  
    1515        'dreamforge/objects/Object.cc', 
    1616  'dreamforge/GameSaveFile.cc', 
    17   'dreamforge/XmlParser.cc',       
     17  'dreamforge/GameLoadFile.cc',    
    1818  'dreamforge/GameObjectManager.cc', 
    1919  'dreamforge/GameEngine.cc', 
  • trunk/src/dreamforge/GameObjectManager.cc

    r7 r8  
    6868 
    6969//------------------------------------------------------------------------------------------------ 
     70void CObjectManager::deleteObject(ObjectPtr obj) 
     71{ 
     72  mObjectMap::const_iterator it = mObjectList.find(obj->getSceneNode()->getName()); 
     73        if(mObjectList.end() != it) 
     74        { 
     75                obj->destroy(); 
     76    mObjectList.erase(it); 
     77        }        
     78} 
     79 
     80//------------------------------------------------------------------------------------------------ 
    7081void CObjectManager::cleanAll(void) 
    7182{ 
     
    131142    } 
    132143        } 
    133          
     144  // Log here the object not found 
     145        return obj;      
    134146} 
    135147 
  • trunk/src/dreamforge/GameSaveFile.cc

    r7 r8  
    7171void CSaveFile::writeEnd( void ) 
    7272{ 
    73   mContentText << "<scene>" << std::endl;  
     73  mContentText << "</scene>" << std::endl;  
    7474} 
    7575