I suspect that the below changes may be required for OGRE 1.2
(It would not compile for me otherwise, but I'm no expert)

FROM:

       // Use the terrain scene manager.
        mSceneMgr = mRoot->getSceneManager( ST_EXTERIOR_CLOSE );

TO:

       // Use the terrain scene manager.
        mSceneMgr = mRoot->'''create'''SceneManager( ST_EXTERIOR_CLOSE );

AND, FROM :

       // CEGUI setup
       mGUIRenderer = new CEGUI::OgreCEGUIRenderer(mWindow, Ogre::RENDER_QUEUE_OVERLAY, false, 3000, ST_EXTERIOR_CLOSE);

TO:

       // CEGUI setup
       mGUIRenderer = new CEGUI::OgreCEGUIRenderer(mWindow, Ogre::RENDER_QUEUE_OVERLAY, false, 3000, mSceneMgr);

Correct me if I'm wrong : )

Rowan :: 19/04/06


Easy Exercise

For those having trouble with the easy exercise (as I and a few others did), I posted my solution here ::

http://www.ogre3d.org/phpBB2/viewtopic.php?t=16109

Nb :: Couple of useful Wiki links there too

Rowan :: 20/04/06


Probably a minor bug

I think in onLeftDragged

    mCurrentObject->setPosition( itr->worldFragment->singleIntersection );

should be

    if (mCurrentObject)
        mCurrentObject->setPosition( itr->worldFragment->singleIntersection );

In case no object has been created yet (mCurrentObject is NULL) and the user clicks and drags the cursor from outside the terrain into it. At least when I tried it, the program crashes.

Sorry for nitpicking.

sortByDistance()

It looks like sortByDistance (in RaySceneQuery) is called setSortByDistance() now.