Changeset 9061 in orxonox.OLD for trunk/src/lib
- Timestamp:
- Jul 3, 2006, 6:39:10 PM (18 years ago)
- Location:
- trunk/src/lib
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lib/collision_reaction/cr_defs.h
r8894 r9061 29 29 30 30 //!< the collision axis x collision event 31 #define COLLISION_TYPE_AXIS_X 1 31 #define COLLISION_TYPE_AXIS_X 1 32 #define COLLISION_TZPE_AXIS_X_NEG 2 32 33 //!< the collision axis y collision event 33 #define COLLISION_TYPE_AXIS_Y 2 34 #define COLLISION_TYPE_AXIS_Y 3 35 #define COLLISION_TYPE_AXIS_Y_NEG 4 34 36 //!< the collision axis z collision event 35 #define COLLISION_TYPE_AXIS_Z 4 37 #define COLLISION_TYPE_AXIS_Z 5 38 #define COLLISION_TYPE_AXIS_Z_NEG 6 36 39 //!< the collision is a obb collision 37 40 #define COLLISION_TYPE_OBB 8 -
trunk/src/lib/collision_reaction/cr_object_damage.cc
r9027 r9061 64 64 damage = collision->getEntityB()->getDamage(); 65 65 collision->getEntityA()->hit(damage, collision->getEntityB()); 66 PRINTF(4)("Dealing damage - %f damage to %s \n", damage, collision->getEntityA()->getClassName()); 66 67 } 67 PRINTF(4)("Dealing damage - %f damage to %s \n", damage, collision->getEntityA()->getClassName());68 68 69 69 if( collision->isEntityBCollide()) { 70 70 damage = collision->getEntityA()->getDamage(); 71 71 collision->getEntityB()->hit(damage, collision->getEntityA()); 72 PRINTF(4)("Dealing damage - %f damage to %s \n", damage, collision->getEntityB()->getClassName()); 72 73 } 73 PRINTF(4)("Dealing damage - %f damage to %s \n", damage, collision->getEntityB()->getClassName());74 74 75 75 collision->flushCollisionEvents(); -
trunk/src/lib/collision_reaction/cr_physics_ground_walk.cc
r9027 r9061 95 95 // collision in the x-axis 96 96 case COLLISION_TYPE_AXIS_X: 97 front = collPos. x- box->halfLength[0]; // should be [0]97 front = collPos.len() - box->halfLength[0]; // should be [0] 98 98 99 99 // object is beneath the plane (ground) 100 100 if( front <= 0.0f ) 101 101 { 102 Vector backoff = entity->getAbsDirX() * front; 103 // entity->shiftCoor(backoff); 104 } 105 // object is already in the wall 106 else if( ce->isInWall()) 107 { 108 // entity->setAbsCoor(entity->getLastAbsCoor()); 102 Vector dirX = entity->getAbsDirX(); dirX.y = 0.0f; dirX.normalize(); 103 Vector backoff = dirX * front; 104 105 entity->setAbsCoor(entity->getLastAbsCoor()); 106 // entity->shiftCoor(backoff); 107 } 108 // object is already in the wall 109 else if( ce->isInWall()) 110 { 111 entity->setAbsCoor(entity->getLastAbsCoor()); 112 } 113 break; 114 115 case COLLISION_TYPE_AXIS_X_NEG: 116 front = collPos.len() - box->halfLength[0]; // should be [0] 117 118 // object is beneath the plane (ground) 119 if( front <= 0.0f ) 120 { 121 Vector dirX = entity->getAbsDirX(); dirX.y = 0.0f; dirX.normalize(); 122 Vector backoff = dirX * front * -1.0f; 123 124 entity->setAbsCoor(entity->getLastAbsCoor()); 125 // entity->shiftCoor(backoff); 126 } 127 // object is already in the wall 128 else if( ce->isInWall()) 129 { 130 entity->setAbsCoor(entity->getLastAbsCoor()); 109 131 } 110 132 break; … … 112 134 113 135 // collision in the y-axis 114 case COLLISION_TYPE_AXIS_Y :136 case COLLISION_TYPE_AXIS_Y_NEG: 115 137 // calulate the height above ground 116 138 height = collPos.y - box->halfLength[1]; … … 118 140 119 141 // object is beneath the plane (ground) 120 if( height <= 0.0f ) 121 { 122 entity->shiftCoor(Vector(0.0f, -height, 0.0f)); 142 if(height >= 0.0f && height <= 0.0001f) break ;// Do nothing 143 else if( height < 0.0f ) 144 { 145 entity->shiftCoor(Vector(0.0f, -height + 0.00001, 0.0f)); 123 146 entity->setOnGround(true); 124 147 } … … 140 163 case COLLISION_TYPE_AXIS_Z: 141 164 142 side = collPos. z- box->halfLength[2]; // should be [2]165 side = collPos.len() - box->halfLength[2]; // should be [2] 143 166 144 167 // object is beneath the plane (ground) 145 168 if( side <= 0.0f ) 146 169 { 147 Vector backoff = entity->getAbsDirX() * side; 148 // entity->shiftCoor(backoff); 149 } 150 // object is already in the wall 151 else if( ce->isInWall()) 152 { 153 // entity->setAbsCoor(entity->getLastAbsCoor()); 170 entity->setAbsCoor(entity->getAbsCoor()); 171 Vector dirZ = entity->getAbsDirZ(); dirZ.y = 0.0f; dirZ.normalize(); 172 Vector backoff = dirZ * side; 173 entity->shiftCoor(backoff); 174 } 175 // object is already in the wall 176 else if( ce->isInWall()) 177 { 178 entity->setAbsCoor(entity->getLastAbsCoor()); 179 } 180 break; 181 182 183 // collision in the z-axis 184 case COLLISION_TYPE_AXIS_Z_NEG: 185 186 side = collPos.len() - box->halfLength[2]; // should be [2] 187 188 // object is beneath the plane (ground) 189 if( side <= 0.0f ) 190 { 191 192 Vector dirZ = entity->getAbsDirZ(); dirZ.y = 0.0f; dirZ.normalize(); 193 Vector backoff = dirZ * side*-1.0f; 194 entity->shiftCoor(backoff); 195 } 196 // object is already in the wall 197 else if( ce->isInWall()) 198 { 199 entity->setAbsCoor(entity->getLastAbsCoor()); 154 200 } 155 201 break; -
trunk/src/lib/graphics/importer/bsp_manager.cc
r9003 r9061 972 972 Vector position1 = position; 973 973 Vector position2 = position + Vector(0.0,1.0,0.0); 974 Vector position3 = position; 975 Vector position4 = position + Vector(0.0,1.0,0.0); 974 976 Vector dest = worldEntity->getAbsCoor() - upDir*40.0f; // 975 977 Vector dest1 = position + forwardDir*4.0f; 976 978 Vector dest2 = position2 + forwardDir*4.0; 979 Vector dest3 = position + forwardDir*4.0f; 980 Vector dest4 = position2 + forwardDir*4.0; 977 981 dest = position - Vector(0.0, 40.0,0.0); 978 982 Vector out = dest; … … 986 990 987 991 if( box != NULL) { 988 position = worldEntity->getAbsCoor() + box->center + Vector(0.0, 1.0, 0.0) * box->halfLength[1]; 989 dest = worldEntity->getAbsCoor() + box->center - Vector(0.0, 1.0, 0.0) * (box->halfLength[1] + BSP_Y_OFFSET); 990 991 position1 = worldEntity->getAbsCoor() + box->center - worldEntity->getAbsDirX() * (box->halfLength[0] + BSP_X_OFFSET); 992 dest1 = worldEntity->getAbsCoor() + box->center + worldEntity->getAbsDirX() * (box->halfLength[0] + BSP_X_OFFSET); 993 994 position2 = worldEntity->getAbsCoor() + box->center - worldEntity->getAbsDirZ() * (box->halfLength[2] + BSP_Z_OFFSET); 995 dest2 = worldEntity->getAbsCoor() + box->center + worldEntity->getAbsDirZ() * (box->halfLength[2] + BSP_Z_OFFSET); 996 992 position = worldEntity->getAbsCoor() + box->center; // + Vector(0.0, 1.0, 0.0) * box->halfLength[1] * 1.0f; 993 dest = worldEntity->getAbsCoor() + box->center - Vector(0.0, 1.0, 0.0) * (box->halfLength[1] + BSP_Y_OFFSET) * 100; 994 995 Vector dirX = worldEntity->getAbsDirX(); dirX.y = 0.0f; dirX.normalize(); 996 997 //position1 = worldEntity->getAbsCoor() + box->center - dirX * (box->halfLength[0] + BSP_X_OFFSET); 998 dest1 = worldEntity->getAbsCoor() + box->center + dirX * (box->halfLength[0] + BSP_X_OFFSET); 999 dest2 = worldEntity->getAbsCoor() - box->center + dirX * (box->halfLength[0] + BSP_X_OFFSET); 1000 1001 Vector dirZ = worldEntity->getAbsDirZ(); dirX.y = 0.0f; dirZ.normalize(); 1002 //position2 = worldEntity->getAbsCoor() + box->center - dirZ * (box->halfLength[2] + BSP_Z_OFFSET); 1003 dest3 = worldEntity->getAbsCoor() + box->center + dirZ * (box->halfLength[2] + BSP_Z_OFFSET); 1004 dest4 = worldEntity->getAbsCoor() - box->center + dirZ * (box->halfLength[2] + BSP_Z_OFFSET); 997 1005 } else { 998 1006 // Init positions and destinations to anything useful! … … 1052 1060 bool xCollision = false; 1053 1061 bool zCollision = false; 1062 bool xCollisionNeg = false; 1063 bool zCollisionNeg = false; 1064 1054 1065 1055 1066 … … 1120 1131 // Return the normal here: Normal's stored in this->collPlane; 1121 1132 if( collision) { 1122 worldEntity->registerCollision(COLLISION_TYPE_AXIS_Y , this->parent, worldEntity, Vector(testPlane->x, testPlane->y, testPlane->z), out, SolidFlag);1133 worldEntity->registerCollision(COLLISION_TYPE_AXIS_Y_NEG , this->parent, worldEntity, Vector(testPlane->x, testPlane->y, testPlane->z), out, SolidFlag); 1123 1134 } 1124 1135 if(xCollision) { 1125 1136 worldEntity->registerCollision(COLLISION_TYPE_AXIS_X , this->parent, worldEntity, Vector(testPlane->x, testPlane->y, testPlane->z),dest1 , SolidFlag); 1126 1137 } 1138 1127 1139 if(zCollision) { 1128 1140 worldEntity->registerCollision(COLLISION_TYPE_AXIS_Z , this->parent, worldEntity, Vector(testPlane->x, testPlane->y, testPlane->z), dest2 , SolidFlag); -
trunk/src/lib/graphics/importer/bsp_manager.h
r9003 r9061 28 28 29 29 30 #define BSP_X_OFFSET 20.0f30 #define BSP_X_OFFSET 40.0f 31 31 #define BSP_Y_OFFSET 40.0f 32 #define BSP_Z_OFFSET 20.0f32 #define BSP_Z_OFFSET 40.0f 33 33 34 34 -
trunk/src/lib/graphics/text_engine/font_data.cc
r8765 r9061 279 279 Glyph* tmpGlyph; 280 280 281 if ( tmpGlyph = this->glyphArray[i])281 if ((tmpGlyph = this->glyphArray[i]) != NULL) 282 282 { 283 283 if (tmpGlyph->height*this->renderSize > maxLineHeight) -
trunk/src/lib/script_engine/script.cc
r9003 r9061 24 24 25 25 #include "class_list.h" 26 // uncommet this when the std:string and the const bug is fixed 27 //CREATE_SCRIPTABLE_CLASS(Script, CL_SCRIPT, 28 // addMethod("addObject", ExecutorLua2<Script,std::string,std::string>(&Script::addObject)) 29 // ): 26 CREATE_SCRIPTABLE_CLASS(Script, CL_SCRIPT, 27 addMethod("addObject", ExecutorLua2<Script,const std::string&, const std::string& >(&Script::addObject)) 28 ->addMethod("selectFunction", ExecutorLua2ret<Script, bool, const std::string&, int >(&Script::selectFunction)) 29 ->addMethod("executeFunction", ExecutorLua0ret<Script,bool >(&Script::executeFunction)) 30 ); 30 31 31 32 Script::Script(const TiXmlElement* root) … … 81 82 filedest += "scripts/" + filename; 82 83 84 this->addThisScript(); 85 this->registerStandartClasses(); 86 83 87 if(currentFile.length() != 0) 84 88 { … … 97 101 { 98 102 currentFile = filename; 99 //this->addThisScript();100 103 return true; 101 104 } … … 119 122 void Script::addObject(const std::string& className, const std::string& objectName) 120 123 { 121 // printf("Script %p: I am about to add %s of class %s\n",this,objectName.c_str(),className.c_str());124 //printf("Script %s: I am about to add %s of class %s\n",this->getName(),objectName.c_str(),className.c_str()); 122 125 123 126 BaseObject* scriptClass = ClassList::getObject(className, CL_SCRIPT_CLASS); … … 163 166 } 164 167 165 bool Script::selectFunction( std::string& functionName, int retCount)168 bool Script::selectFunction(const std::string& functionName, int retCount) 166 169 { 167 170 if(returnCount == 0 && currentFunction.length() == 0) //no return values left on the stack and no other function selected … … 356 359 357 360 //success = this->registerClass(std::string("Vector")); 358 361 success = this->registerClass("ScriptTrigger"); 362 359 363 return success; 360 364 } -
trunk/src/lib/script_engine/script.h
r9003 r9061 42 42 /// EXECUTING 43 43 // first select function 44 bool selectFunction( std::string& functionName, int retCount);44 bool selectFunction(const std::string& functionName, int retCount); 45 45 46 46 // push parameters for luafunction
Note: See TracChangeset
for help on using the changeset viewer.