[BACK] Return to client.cpp CVS log [TXT][DIR] Up to Nevrax / code / client

Diff for /code/client/Attic/client.cpp between version 1.9 and 1.10

version 1.9, 2000/11/28 13:21:23 version 1.10, 2000/12/04 10:47:15
Line 32 
Line 32 
 #include "nel/net/unitime.h" #include "nel/net/unitime.h"
  
 #include "nel/3d/driver.h" #include "nel/3d/driver.h"
  #include "nel/3d/camera.h"
  #include "nel/3d/landscape_model.h"
  #include "nel/3d/landscape.h"
  
  #include "move_listener.h"
 #include "language_interface.h" #include "language_interface.h"
 #include "login_interface.h" #include "login_interface.h"
 #include "shards_list_interface.h" #include "shards_list_interface.h"
Line 52 
Line 56 
 #endif #endif
  
  
  CEventListenerAsync asyncListener;
  CMoveListener moveListener;
  
  
 /** /**
  *      login  *      login
  */  */
Line 91 
Line 99 
 } }
  
  
  
  /**
   *      zoneMainProc
   */
  void zoneMainProc(CScene * scene)
  {
          /*
          static CVector cameraRot(CVector::Null);
          static CVector cameraPos(0,-20,0);
          static uint32 framesCount;
  
          // time mgt.
          static float t0= (sint64)CTime::getLocalTime()*0.001f;
          static float t1;
          t1= (sint64)CTime::getLocalTime()*0.001f;
          float        dt= t1-t0;
          dt= 0.02f;
  
          
          // Speed
          const uint8 nspeed = 5;
          static float speedBuf[nspeed]= { 1.66f, // 6km/h
                                                                              3.33f, // 12km/h
                                                                           8.33f, // 30km/h
                                                                           40.0f, // 144km/h
                                                                           200.0f // 700km/h
                                                                          };
          static uint8 idSpeed = 2;
          float speed = speedBuf[idSpeed];
          if(asyncListener.isKeyPush(KeyS))//getPressKeyState(KeyS))
          {
                  idSpeed++;
                  idSpeed %= nspeed;
                  speed = speedBuf[idSpeed];
          }
          
          // Rotation
          float rotSpeed = 80*(float)Pi/180;
          if(asyncListener.isKeyPush(KeyLEFT))        cameraRot.z += rotSpeed*dt;
          if(asyncListener.isKeyPush(KeyRIGHT))        cameraRot.z -= rotSpeed*dt;
          if(asyncListener.isKeyPush(KeyHOME))        cameraRot.x += rotSpeed*dt;
          if(asyncListener.isKeyPush(KeyEND))                cameraRot.x -= rotSpeed*dt;
  
          // Move
          CVector        dir(0,speed*dt,0);
          CMatrix        mat;
          mat.identity();
          mat.rotateZ(cameraRot.z);
          mat.rotateX(cameraRot.x);
          dir= mat.mulVector(dir);
          if(asyncListener.isKeyPush(KeyUP))                cameraPos += dir;
          if(asyncListener.isKeyPush(KeyDOWN))        cameraPos -= dir;
          if(asyncListener.isKeyPush(KeyA))                cameraPos.z += speed*dt;
          if(asyncListener.isKeyPush(KeyQ))                cameraPos.z -= speed*dt;
          if(asyncListener.isKeyPush(KeyR))                
          {
                  cameraPos.set(0,0,0);
                  cameraRot.set(0,0,0);
          }
  
          // Straff
          float straff = 0;
          if(asyncListener.isKeyPush(KeyW))        straff = -speed*dt;
          if(asyncListener.isKeyPush(KeyX))        straff = speed*dt;
          if(straff)
          {
                  CMatrix        m;
                  m.identity();
                  m.rotateZ(cameraRot.z);
                  m.rotateX(cameraRot.x);
                  cameraPos += m*CVector(straff,0,0);
          }
          
  
          // Camera
          CMatrix cam;
          cam.identity();
          cam.setRot(cameraRot, CMatrix::ZXY);
          cam.setPos(cameraPos);
          CSceneUt::Camera->setMatrix(cam);
          */
  
          
          //scene->getDriver()->setupViewMatrix(moveListener.getViewMatrix());
          CSceneUt::Camera->setMatrix(moveListener.getViewMatrix());
          
          
          
          
          // Render.
          scene->clearBuffers(CRGBA(255,251,240));
          scene->render();
          scene->swapBuffers();
  
          //t0 = t1;
  
          //framesCount++;
  }
  
  
  
  
  /**
   * displayZone
   */
  void displayZone(CScene * scene, const char * zonePath)
  {
          // Positioning camera
          CMatrix        camera;
          camera.identity();
          camera.setPos(CVector(0,-20,0));
          CSceneUt::Camera->setMatrix(camera);
  
          // Create a Landscape
          CLandscapeModel        * land;
          land = (CLandscapeModel*)scene->createModel(LandscapeModelId);
          land->Landscape = new CLandscape();
          land->Landscape->init();
  
          // Build a zone.
          CZone zone;
          CIFile file(zonePath);
          zone.serial(file);
          file.close();
          
          // Add it to landscape.
          land->Landscape->addZone(zone);
  
          // Init TileBank.
          CIFile bankFile("C:/Windows/bureau/tileset/bank.bank");
          land->Landscape->TileBank.serial(bankFile);
  
          // Events management
          CEventServer server;
          server.addEmitter(scene->getDriver()->getEventEmitter());
          asyncListener.addToServer(server);
          moveListener.setWithCamera(*CSceneUt::Camera);
          moveListener.setViewport(scene->getViewport());
          moveListener.addToServer(server);
          do
          {
                  server.pump();
                  zoneMainProc(scene);
          }
          while(!asyncListener.isKeyPush(KeyESCAPE));
  
          asyncListener.removeFromServer(server);
          moveListener.removeFromServer(server);
  }
  
  
  
 enum TState enum TState
 { {
         LANGUAGE,         LANGUAGE,
Line 110 
Line 270 
                 uint w = 800;                 uint w = 800;
                 uint h = 600;                 uint h = 600;
                 uint bpp = 32;                 uint bpp = 32;
                 bool windowed = false;//true;                 bool windowed = true; //false;
                 NL3D::CScene scene;                 NL3D::CScene scene;
                 NL3D::CSceneUt::init3d(scene, w, h, bpp, windowed);                  NL3D::CSceneUt::init3d(scene, w, h, scene.getViewport(), bpp, windowed);
  
                 // synchronize time with server                 // synchronize time with server
                 CUniTime::syncUniTimeFromService();                 CUniTime::syncUniTimeFromService();
Line 128 
Line 288 
  
  
                 TState clientState = LANGUAGE;                 TState clientState = LANGUAGE;
                 bool quit = false;                 bool quit = true;//false;
                 while(!quit)                 while(!quit)
                 {                 {
                         switch(clientState)                         switch(clientState)
Line 172 
Line 332 
                         if(quit) break;                         if(quit) break;
                 }                 }
  
                  // display a zone
                  displayZone(&scene,"pipo.zon");
                                  
                 // release scene                 // release scene
                 NL3D::CSceneUt::release3d(scene);                 NL3D::CSceneUt::release3d(scene);


Legend:
Removed from v.1.9 
changed lines
 Added in v.1.10