Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jun 29, 2006, 9:48:25 PM (18 years ago)
Author:
patrick
Message:

the ground walking algorithm is almost working again

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/single_player_map/src/lib/graphics/importer/bsp_manager.cc

    r8912 r8922  
    11/*
    22   orxonox - the future of 3D-vertical-scrollers
    3  
     3
    44   Copyright (C) 2006 orx
    5  
     5
    66   This program is free software; you can redistribute it and/or modify
    77   it under the terms of the GNU General Public License as published by
    88   the Free Software Foundation; either version 2, or (at your option)
    99   any later version.
    10  
     10
    1111   ### File Specific:
    1212   main-programmer: bottac@ee.ethz.ch
    13  
     13
    1414   Inspired by:
    1515   Rendering Q3 Maps by Morgan McGuire                  http://graphics.cs.brown.edu/games/quake/quake3.html
    1616   Unofficial Quake 3 Map Specs by Kekoa Proudfoot      http://graphics.stanford.edu/~kekoa/q3/
    17  
     17
    1818   Collision detection adapted from:
    1919   Quake 3 Collision Detection by Nathan Ostgard        http://www.devmaster.net/articles/quake3collision/
     
    6969BspManager::BspManager(const TiXmlElement* root)
    7070{
    71  
    72  
     71
     72
    7373  if( root != NULL)
    7474    this->loadParams(root);
    75  
     75
    7676  CDEngine::getInstance()->setBSPModel(this);
    7777} */
     
    111111  this->root  = this->bspFile->get_root();
    112112  this->alreadyVisible = new bool [this->bspFile->numFaces];
    113  
     113
    114114  CDEngine::getInstance()->setBSPModel(this);
    115115}
     
    986986
    987987  if( box != NULL) {
    988     position = worldEntity->getAbsCoor() +  box->center; // + box->axis[1] * box->halfLength[1];
     988    position = worldEntity->getAbsCoor() +  box->center + box->axis[1] * box->halfLength[1];
    989989    dest     = worldEntity->getAbsCoor() +  box->center - box->axis[1] * box->halfLength[1] * 40.0;
    990990
     
    998998  } else {
    999999    // Init positions and destinations to anything useful!
    1000    
     1000
    10011001  }
    10021002
     
    10491049  bool xCollision = false;
    10501050  bool zCollision = false;
    1051  
     1051
    10521052
    10531053    // 2nd Collision Detection
     
    10701070    //out.z = this->outputFraction;
    10711071
    1072    
     1072
    10731073
    10741074      // 3rd Collision Detection
     
    10781078      this->inputStart =  position2;
    10791079      this->inputEnd =   dest2;
    1080      
     1080
    10811081      this->checkCollisionRayN(this->root,0.0f,1.0f, &position2, &dest2 );
    10821082      //out.x = this->outputFraction;
     
    10921092        zCollision = true;
    10931093      }
    1094    
     1094
    10951095  //end if
    10961096  /*
     
    11021102
    11031103  // Return the normal here: Normal's stored in this->collPlane;
    1104 /*  if( collision) {
    1105     PRINTF(5)("We got a collision!! Are you sure: outputFraction = %f\n", this->outputFraction);
     1104  if( collision) {
    11061105    worldEntity->registerCollision(COLLISION_TYPE_AXIS_Y , this->parent, worldEntity, Vector(testPlane->x, testPlane->y, testPlane->z), out, SolidFlag);
    1107 } */
     1106}
    11081107  if(xCollision) {
    11091108    worldEntity->registerCollision(COLLISION_TYPE_AXIS_X , this->parent, worldEntity, Vector(testPlane->x, testPlane->y, testPlane->z), out, SolidFlag);
Note: See TracChangeset for help on using the changeset viewer.