1. #include "ApplicationManager.h"
  2. #include "IrrlichtEngineManager.h"
  3.  
  4. static const char TERRAIN_HEIGHTMAP[] = "../../media/heightmap.bmp";
  5. static const char TERRAIN_MATERIAL[] = "../../media/terrain.bmp";
  6. static const char TERRAIN_DETAIL[] = "../../media/detail.jpg";
  7. static const float TERRAIN_DETAIL_SCALE = 20.0f;
  8. static const vector3df TERRAIN_SCALE = vector3df(40.0f, 4.0f, 40.0f);
  9. static const float CAMERA_FAR_DISTANCE = 50000.0f;
  10. static const vector3df CAMERA_START_POS = vector3df(0, 10, 0);
  11.  
  12. ApplicationManager::ApplicationManager()
  13. {
  14. InitialiseVariables();
  15. }
  16.  
  17. ApplicationManager::~ApplicationManager()
  18. {
  19.  
  20. }
  21.  
  22. void ApplicationManager::InitialiseVariables()
  23. {
  24. terrain = NULL;
  25. }
  26.  
  27. void ApplicationManager::Startup()
  28. {
  29. ICameraSceneNode* camera = ENGINEMANAGER.GetSceneManager()->addCameraSceneNodeFPS();
  30. camera->setFarValue(CAMERA_FAR_DISTANCE);
  31. camera->setPosition(CAMERA_START_POS);
  32.  
  33. ENGINEMANAGER.GetIrrlichtDevice()->getCursorControl()->setVisible(false);
  34.  
  35. terrain = ENGINEMANAGER.GetSceneManager()->addTerrainSceneNode(TERRAIN_HEIGHTMAP);
  36. terrain->setScale(TERRAIN_SCALE);
  37. terrain->setMaterialFlag(EMF_LIGHTING, false);
  38. terrain->setMaterialTexture(
  39. 0,
  40. ENGINEMANAGER.GetVideoDriver()->getTexture(TERRAIN_MATERIAL));
  41. terrain->setMaterialTexture(
  42. 1,
  43. ENGINEMANAGER.GetVideoDriver()->getTexture(TERRAIN_DETAIL));
  44. terrain->setMaterialType(EMT_DETAIL_MAP);
  45. terrain->scaleTexture(1.0f, TERRAIN_DETAIL_SCALE);
  46. }
  47.  
  48. void ApplicationManager::Shutdown()
  49. {
  50. if (terrain != NULL) terrain->remove();
  51.  
  52. InitialiseVariables();
  53. }