Changeset 6
- Timestamp:
- 01/08/09 00:19:15 (3 years ago)
- Location:
- trunk
- Files:
-
- 4 modified
-
config/objects.txt (modified) (1 diff)
-
src/LevelEditor.cc (modified) (5 diffs)
-
src/LevelEditor.hh (modified) (2 diffs)
-
src/dreamforge/objects/Avatar.cc (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/config/objects.txt
r4 r6 1 1 Batiments 2 2 Empire 3 TudorHouse tudorhouse.mesh Ogre3D houseuse for test3 TudorHouse tudorhouse.mesh BLD Ogre3D house mesh use for test 4 4 Faune 5 5 Imperial 6 OgreHead ogrehead.mesh Ogre3Dmesh use for test7 Ninja ninja.mesh Ogre3Dmesh use for test6 OgreHead ogrehead.mesh MSTR Ogre3D head mesh use for test 7 Ninja ninja.mesh PJ Ogre3D ninja mesh use for test -
trunk/src/LevelEditor.cc
r5 r6 43 43 angleY = 0.0; // when I upgraded to Qt4.2, they were left undefined. 44 44 45 //mCurentObject = 0; 45 mName = ""; 46 mFile = ""; 47 mType = ""; 46 48 closestObject = 0;// Trace the curent selected object. 47 49 mTempEnt = 0; … … 112 114 //QListWidgetItem* item = mObjectList->currentItem(); 113 115 QModelIndex item = objProperties->objectView->currentIndex(); 114 QModelIndex itemTmp = item.sibling( item.row(), item.column()+1); 116 QModelIndex item1 = item.sibling( item.row(), item.column()+1); 117 QModelIndex item2 = item.sibling( item.row(), item.column()+2); 115 118 116 if(!item Tmp.data().toString().isEmpty())119 if(!item1.data().toString().isEmpty()) 117 120 { 118 121 QString name = item.data().toString(); 119 QString meshfile = itemTmp.data().toString(); 122 QString meshfile = item1.data().toString(); 123 QString type = item2.data().toString(); 120 124 121 this->createTempObject(name.toStdString() , meshfile.toStdString() );125 this->createTempObject(name.toStdString() , meshfile.toStdString(), type.toStdString()); 122 126 } 123 127 … … 365 369 366 370 //------------------------------------------------------------------------------------------------ 367 void LevelEdWidget::createTempObject(std::string& name, std::string& file) 368 { 371 void LevelEdWidget::createTempObject(std::string& name, std::string& file, std::string& type) 372 { 373 mName = name; 374 mFile = file; 375 mType = type; 376 369 377 this->changeInsertionMode(true); 370 378 … … 616 624 { 617 625 // Next time handle multi insertion object 626 ObjectPtr iObj = CObjectFactory::getInstance()->createObject(mType); 627 iObj->setObjectName(mName); 628 iObj->setObjectMeshFile(mFile); 629 iObj->initNodeObject(); 630 631 Ogre::Ray mouseRay = mCamera->getCameraToViewportRay((double)evt->pos().x()/(double)width(), (double)evt->pos().y()/(double)height()); 632 Ogre::RaySceneQuery* mRaySceneQuery = mSceneMgr->createRayQuery(Ogre::Ray());; 633 mRaySceneQuery->setRay(mouseRay); 634 //mRaySceneQuery->setSortByDistance(true); 635 Ogre::RaySceneQueryResult &result = mRaySceneQuery->execute(); 636 Ogre::RaySceneQueryResult::iterator itr = result.begin(); 637 638 if (itr != result.end() && itr->worldFragment) 639 { 640 iObj->getSceneNode()->setPosition(itr->worldFragment->singleIntersection.x, itr->worldFragment->singleIntersection.y + 5, itr->worldFragment->singleIntersection.z); 641 } 642 iObj->getSceneNode()->showBoundingBox(false); 643 iObj->init(); 644 645 CObjectManager::getInstance()->addObject(iObj); 618 646 } 619 647 } // end LeftButton clic … … 640 668 if(mouseLeftPressed && mInsertMode) 641 669 { 642 670 643 671 } 644 672 -
trunk/src/LevelEditor.hh
r5 r6 29 29 ~LevelEdWidget(); 30 30 31 void createTempObject(std::string& name, std::string& file );31 void createTempObject(std::string& name, std::string& file, std::string& type); 32 32 void changeInsertionMode(bool val); 33 33 … … 95 95 //float rotX, rotY; 96 96 /////////////////////// 97 std::string mName; 98 std::string mFile; 99 std::string mType; 97 100 98 101 bool mouseLeftPressed; -
trunk/src/dreamforge/objects/Avatar.cc
r3 r6 35 35 : mIsDead(false)//,CGameObject() 36 36 { 37 37 mAnimation = 0; 38 38 } 39 39 … … 41 41 CAvatar::~CAvatar() 42 42 { 43 delete mAnimation; 44 mAnimation = 0; 43 if(mAnimation) 44 { 45 delete mAnimation; 46 mAnimation = 0; 47 } 45 48 } 46 49 … … 48 51 void CAvatar::init( void ) 49 52 { 50 mAnimation = new AnimatedObject; 51 52 // getAnimationState("Idle1") 53 mAnimation->setInitAnimState(CGameObject::getEntity()->getAnimationState("Idle1")); 54 mAnimation->setAnimLoop(true); 53 if(mEntity->hasSkeleton()) 54 { 55 mAnimation = new AnimatedObject; 56 57 //Temporatry choose an animation in the list 58 Ogre::AnimationStateIterator animIter = mEntity->getAllAnimationStates()->getAnimationStateIterator(); 59 60 // getAnimationState("Idle1") 61 mAnimation->setInitAnimState(mEntity->getAnimationState(animIter.getNext()->getAnimationName())); 62 mAnimation->setAnimLoop(true); 63 } 55 64 56 65 /* … … 78 87 void CAvatar::update(float timeT) 79 88 { 80 mAnimation->update(timeT); 89 if(mAnimation) 90 { 91 mAnimation->update(timeT); 92 } 81 93 } 82 94 … … 189 201 void CAvatar::move(Ogre::Vector3 tempVector) 190 202 { 191 mAnimation->changeAnimState(CGameObject::getEntity()->getAnimationState("Walk")); 192 mAnimation->setAnimLoop(true); 193 ////StaticObject::translateObject(0,0,-mMoveSpeed); 194 //StaticObject::translateObject(tempVector); 203 if(mAnimation) 204 { 205 mAnimation->changeAnimState(CGameObject::getEntity()->getAnimationState("Walk")); 206 mAnimation->setAnimLoop(true); 207 ////StaticObject::translateObject(0,0,-mMoveSpeed); 208 //StaticObject::translateObject(tempVector); 209 } 195 210 } 196 211 … … 198 213 void CAvatar::turn(Ogre::Degree &angle) 199 214 { 200 mAnimation->changeAnimState(CGameObject::getEntity()->getAnimationState("Walk")); 201 mAnimation->setAnimLoop(true); 202 ////StaticObject::translateObject(0,0,+mMoveSpeed); 203 //StaticObject::turnObject(angle); 204 } 205 206 215 if(mAnimation) 216 { 217 mAnimation->changeAnimState(CGameObject::getEntity()->getAnimationState("Walk")); 218 mAnimation->setAnimLoop(true); 219 ////StaticObject::translateObject(0,0,+mMoveSpeed); 220 //StaticObject::turnObject(angle); 221 } 222 } 223 224
