Changeset 10114 in orxonox.OLD for trunk/src/lib
- Timestamp:
- Dec 19, 2006, 11:55:26 PM (18 years ago)
- Location:
- trunk/src/lib
- Files:
-
- 24 edited
- 4 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lib/graphics/importer/md2/md2Model.cc
r9869 r10114 92 92 rebuildInfo(); 93 93 94 //this->debug();94 this->debug(); 95 95 } 96 96 … … 99 99 { 100 100 this->init(); 101 102 this->scaleFactor = model.scaleFactor; 103 101 104 this->rebuildInfo(); 102 105 } … … 104 107 MD2Model& MD2Model::operator=(const MD2Model& md2model) 105 108 { 109 this->init(); 110 this->scaleFactor = md2model.scaleFactor; 106 111 this->data = md2model.data; 107 112 this->rebuildInfo(); … … 141 146 this->data = MD2Data::Pointer(new MD2Data(modelFileName, skinFileName, scale)); 142 147 this->rebuildInfo(); 148 149 // init the animation - do not remove 150 this->tick( 0.01); 151 152 return true; 143 153 } 144 154 … … 268 278 /** 269 279 * @brief draws the model: interface for all other classes out in the world 270 * @todo make it const and virtual271 * FIXME272 280 */ 273 281 void MD2Model::draw() const … … 313 321 glNormal3fv(anorms[this->data->pLightNormals[pCommands[2]]]); 314 322 glVertex3fv(this->verticesList[pCommands[2]]); 323 // printf("vertex: %f, %f, %f\n", this->verticesList[pCommands[2]][0], this->verticesList[pCommands[2]][1], this->verticesList[pCommands[2]][2]); 315 324 } 316 325 glEnd(); … … 325 334 { 326 335 //static sVec3D this->verticesList[MD2_MAX_VERTICES]; /* performance: created only once in a lifetime */ 327 int* pCommands = this->data->pGLCommands;336 // int* pCommands = this->data->pGLCommands; 328 337 /* some face culling stuff */ 329 338 // glPushAttrib(GL_POLYGON_BIT); … … 428 437 PRINT(0)("= Number of Frames: \t%i\n", this->data->header->numFrames); 429 438 PRINT(0)("= Height, Width:\t%i, %i\n", this->data->header->skinHeight, this->data->header->skinWidth); 430 //PRINT(0)("= Pointer to the data object: %p\n", this->data); 439 PRINT(0)("= DATA:\n"); 440 PRINT(0)("= Number of references to data: %i\n", this->data.count()); 431 441 PRINT(0)("===================================================\n\n"); 432 442 } … … 452 462 this->loadModel(modelFileName); 453 463 this->loadSkin(skinFileName); 464 465 PRINTF(0)("model %s, skin %s\n", modelFileName.c_str(), skinFileName.c_str()); 454 466 } 455 467 … … 570 582 delete [] buffer; 571 583 fclose(pFile); 584 585 return true; 572 586 } 573 587 … … 592 606 this->material.setIllum(3); 593 607 this->material.setAmbient(1.0, 1.0, 1.0); 594 } 608 609 return true; 610 } -
trunk/src/lib/graphics/importer/md2/resource_md2.cc
r9869 r10114 20 20 PRINTF(0)("NOT FOUND MD2: %s\n", modelName.c_str()); 21 21 std::string modelFileName = this->Resource::locateFile(modelName); 22 //std::string skinFileName = this->Resource::locateFile(skinName); 22 std::string skinFileName = this->Resource::locateFile(skinName); 23 PRINTF(0)("NEW %s::%s\n", modelName.c_str(), modelFileName.c_str()); 23 24 this->MD2Model::load(modelFileName, skinName, scale); 24 this->Resource::addResource(new ResourceMD2::MD2ResourcePointer(loadString(modelName, skin Name, scale), keepLevel, this->MD2Model::dataPointer()));25 this->Resource::addResource(new ResourceMD2::MD2ResourcePointer(loadString(modelName, skinFileName, scale), keepLevel, this->MD2Model::dataPointer())); 25 26 } 26 27 -
trunk/src/lib/graphics/light.cc
r9869 r10114 26 26 #include "debug.h" 27 27 28 #include "class_id_DEPRECATED.h" 29 30 ObjectListDefinitionID(Light, CL_LIGHT); 28 ObjectListDefinition(Light); 31 29 CREATE_FACTORY(Light); 32 30 -
trunk/src/lib/graphics/render2D/image_plane.cc
r9869 r10114 23 23 #include "p_node.h" 24 24 25 26 #include "class_id_DEPRECATED.h" 27 28 ObjectListDefinitionID(ImagePlane, CL_IMAGE_PLANE); 25 ObjectListDefinition(ImagePlane); 29 26 CREATE_FACTORY(ImagePlane); 30 27 -
trunk/src/lib/graphics/shader_data.cc
r9869 r10114 63 63 { 64 64 PRINTF(2)("Shaders are not supported on your hardware\n"); 65 } 65 return true; 66 } 67 68 return true; 66 69 } 67 70 -
trunk/src/lib/graphics/text_engine/limited_width_text.cc
r9869 r10114 33 33 this->setLineWidth(lineWidth); 34 34 } 35 35 36 36 37 /** -
trunk/src/lib/gui/gl/glmenu/glmenu_imagescreen.cc
r9869 r10114 26 26 #include "debug.h" 27 27 28 #include "class_id_DEPRECATED.h" 29 ObjectListDefinitionID(GLMenuImageScreen, CL_GLMENU_IMAGE_SCREEN); 28 ObjectListDefinition(GLMenuImageScreen); 30 29 CREATE_FACTORY(GLMenuImageScreen); 31 30 -
trunk/src/lib/lang/base_object.cc
r9869 r10114 35 35 } 36 36 37 /** 38 * copyconstructor 39 * @param bo instance to copy 40 */ 41 BaseObject::BaseObject( const BaseObject& bo ) 42 { 43 this->className = "BaseObject"; 44 this->objectName = bo.objectName; 45 this->xmlElem = (bo.xmlElem)? bo.xmlElem->Clone() : NULL; 46 this->registerObject( this, BaseObject::_objectList); 47 } 48 49 37 50 /** 38 51 * @brief standard deconstructor … … 45 58 for (it = this->_classes.begin(); it != this->_classes.end(); ++it) 46 59 { 47 if (ORX_DEBUG >= 5)60 //if (ORX_DEBUG >= 5) 48 61 assert((*it)._objectList->checkIteratorInList((*it)._iterator) || (*it)._objectList->checkObjectInList(this)); 49 62 (*it)._objectList->unregisterObject((*it)._iterator); -
trunk/src/lib/lang/base_object.h
r9869 r10114 30 30 public: 31 31 BaseObject (const std::string& objectName = ""); 32 BaseObject( const BaseObject& bo ); 32 33 33 34 virtual ~BaseObject (); … … 51 52 /** @returns the ClassID of this Object */ 52 53 inline const ClassID& getClassID() const { return _classes.front()._objectList->identity(); } 53 /** @returns the ID of the Topmost object of the ClassStack */54 inline const int& getLeafClassID() const { return _classes.front()._objectList->identity().id(); }55 54 56 55 bool isA(const ObjectListBase& objectList) const; -
trunk/src/lib/lang/object_list.cc
r9869 r10114 25 25 * @return a new NewObejctList 26 26 */ 27 ObjectListBase::ObjectListBase(const std::string& className , int id)27 ObjectListBase::ObjectListBase(const std::string& className) 28 28 : _name(className) 29 29 { … … 36 36 assert(!ObjectListBase::classNameExists(className) && "Classes should only be included once, and no two classes should have the same name (key value)"); 37 37 38 if (id == -1) 39 { 40 id = ObjectListBase::_classesByID->size(); 41 // searching for a free ID 42 while (ObjectListBase::classIDExists(id)) ++id; 43 } 38 int id = ObjectListBase::_classesByID->size(); 39 // searching for a free ID 40 while (ObjectListBase::classIDExists(id)) ++id; 41 44 42 assert(!ObjectListBase::classIDExists(id) && "Classes should only be included once, and no two classes should have the same ID (key value)"); 45 43 … … 330 328 return -1; 331 329 } 330 331 332 /** 333 * replace all ids. list must contain all (and no more) ids 334 * @param str2id list: string -> newId 335 */ 336 void ObjectListBase::replaceIDMap( const std::map< std::string, int >& str2id ) 337 { 338 if ( str2id.size() != _classesByID->size() ) 339 { 340 assert( false && "size of str2id does not match" ); 341 } 342 343 IDMap * map = new IDMap(); 344 345 std::map< std::string, int >::const_iterator it; 346 for ( it = str2id.begin(); it != str2id.end(); it++ ) 347 { 348 assert( _classesByName->find( it->first ) != _classesByName->end() ); 349 (*map)[ it->second ] = (*_classesByName)[it->first]; 350 (*map)[ it->second ]->_id = it->second; 351 } 352 353 delete _classesByID; 354 _classesByID = map; 355 } 356 357 /** 358 * 359 * @return 360 */ 361 std::map< std::string, int > * ObjectListBase::createStrToId( ) 362 { 363 std::map< std::string, int > * res = new std::map< std::string, int >(); 364 365 NameMap::const_iterator it; 366 for ( it = _classesByName->begin(); it != _classesByName->end(); it++ ) 367 { 368 IDMap::const_iterator it2; 369 int id = -1; 370 for ( it2 = _classesByID->begin(); it2 != _classesByID->end(); it2++ ) 371 { 372 if ( it->second == it2->second ) 373 { 374 id = it2->first; 375 break; 376 } 377 } 378 379 assert( id != -1 ); 380 (*res)[ it->first ] = id; 381 } 382 383 return res; 384 } -
trunk/src/lib/lang/object_list.h
r9869 r10114 32 32 * @brief Use this macro to easily define a Class to store its own ObjectListDefinition 33 33 * @param ClassName: the Name of the Class. 34 * @param ID: optional set a Fixed ID.35 */36 #define ObjectListDefinitionID(ClassName, ID) \37 ObjectList<ClassName> ClassName::_objectList(#ClassName, ID)38 39 /**40 * @brief Use this macro to easily define a Class to store its own ObjectListDefinition41 * @param ClassName: the Name of the Class.42 34 */ 43 35 #define ObjectListDefinition(ClassName) \ 44 ObjectList DefinitionID(ClassName, -1)36 ObjectList<ClassName> ClassName::_objectList(#ClassName) 45 37 46 38 class BaseObject; … … 109 101 110 102 protected: 111 ObjectListBase(const std::string& className , int id = -1);103 ObjectListBase(const std::string& className); 112 104 virtual ~ObjectListBase(); 113 105 … … 133 125 static NameMap* _classesByName; //!< A Map of all the classes in existance. 134 126 static std::list<std::string> _classNames; //!< A list of all the registered ClassNames. 127 128 public: 129 static void replaceIDMap( const std::map<std::string, int>& str2id ); 130 static std::map<std::string, int>* createStrToId(); 135 131 }; 136 132 … … 199 195 200 196 public: 201 ObjectList(const std::string& name , int id = -1);197 ObjectList(const std::string& name); 202 198 ~ObjectList(); 203 199 … … 256 252 */ 257 253 template <class T> 258 ObjectList<T>::ObjectList(const std::string& name , int id)259 : ObjectListBase(name , id)254 ObjectList<T>::ObjectList(const std::string& name) 255 : ObjectListBase(name) 260 256 {} 261 257 -
trunk/src/lib/network/Makefile.am
r9656 r10114 43 43 synchronizeable_var/synchronizeable_uint.cc \ 44 44 synchronizeable_var/synchronizeable_ip.cc \ 45 synchronizeable_var/synchronizeable_classid.cc \ 46 synchronizeable_var/synchronizeable_classid_list.cc \ 45 47 \ 46 48 ip.cc … … 94 96 synchronizeable_var/synchronizeable_uint.h \ 95 97 synchronizeable_var/synchronizeable_ip.h \ 98 synchronizeable_var/synchronizeable_classid.h \ 99 synchronizeable_var/synchronizeable_classid_list.h \ 96 100 \ 97 101 ip.h -
trunk/src/lib/network/handshake.cc
r9869 r10114 22 22 #include "debug.h" 23 23 24 #include "synchronizeable_var/synchronizeable_classid_list.h" 25 26 std::map< std::string, int >* Handshake::classIdList = NULL; 24 27 25 28 ObjectListDefinition(Handshake); … … 32 35 this->registerObject(this, Handshake::_objectList); 33 36 37 if ( !Handshake::classIdList ) 38 { 39 //TODO who else? 40 if ( SharedNetworkData::getInstance()->isMasterServer() ) 41 { 42 Handshake::classIdList = ObjectListBase::createStrToId(); 43 } 44 else 45 { 46 Handshake::classIdList = new std::map< std::string, int >(); 47 } 48 } 34 49 35 50 // register all variable handlers … … 52 67 registerVar( new SynchronizeableIP( &this->proxy2, &this->proxy2, "proxy server 2", PERMISSION_MASTER_SERVER ) ); 53 68 registerVar( new SynchronizeableInt( &this->redirectProxy, &this->redirectProxy, "proxy server redirection flag", PERMISSION_MASTER_SERVER ) ); 69 70 registerVar( new SynchronizeableClassIDList( Handshake::classIdList, Handshake::classIdList, "classId List", PERMISSION_MASTER_SERVER ) ); 54 71 55 72 -
trunk/src/lib/network/handshake.h
r9869 r10114 113 113 int errorString_handler; //!< handshake error string handler 114 114 int candel_id; //!< handshake deletion handler 115 int nodeType; //! ,the type of the network node115 int nodeType; //!< the type of the network node 116 116 117 117 int redirectProxy; //!< true if the client should reconnect to a proxy server 118 118 IP proxy1; //!< ip address of the first proxy (0.0.0.0 of not available) 119 119 IP proxy2; //!< ip address of the second proxy (0.0.0.0 of not available) 120 121 static std::map< std::string, int >* classIdList; 122 public: 123 std::map< std::string, int >* getClassIdList(){ return classIdList; } 120 124 }; 121 125 -
trunk/src/lib/network/message_manager.cc
r9869 r10114 242 242 assert( i + messageLength <= length ); 243 243 // make sure there is a message handler for this message type 244 //if ( !( messageHandlerMap.find( (MessageType)messageType ) != messageHandlerMap.end()) ) 245 //{ 246 // PRINTF(0)("messagetype: %d\n", messageType); 247 // this->objectList().debugAll( 0 ); 248 // } 249 244 250 assert( messageHandlerMap.find( (MessageType)messageType ) != messageHandlerMap.end()); 245 251 -
trunk/src/lib/network/network_game_manager.cc
r9869 r10114 111 111 playable.loadMD2Texture( playableTexture ); 112 112 playable.setTeam(team); 113 playable.loadModel( playableModel, 100.0f);113 playable.loadModel( playableModel, playableScale ); 114 114 playable.setOwner( userId ); 115 115 playable.setUniqueID( SharedNetworkData::getInstance()->getNewUniqueID() ); -
trunk/src/lib/network/network_stream.cc
r9869 r10114 128 128 129 129 this->bRedirect = false; 130 this->bSoftRedirect = false; 130 131 131 132 this->currentState = 0; … … 716 717 // init the new message manager 717 718 MessageManager::getInstance()->setUniqueID( it->second.handshake->getMessageManagerId() ); 719 ObjectListBase::replaceIDMap( *(it->second.handshake->getClassIdList()) ); 718 720 } 719 721 … … 966 968 967 969 // if handshake not finished only sync handshake 968 if ( peer->second.handshake && Handshake::staticClassID() != sync.get LeafClassID())970 if ( peer->second.handshake && Handshake::staticClassID() != sync.getClassID() ) 969 971 continue; 970 972 … … 972 974 if ( ( SharedNetworkData::getInstance()->isMasterServer() || 973 975 SharedNetworkData::getInstance()->isProxyServerActive() && peer->second.isClient()) 974 && Handshake::staticClassID() == sync.get LeafClassID() && sync.getUniqueID() != peer->second.userId )976 && Handshake::staticClassID() == sync.getClassID() && sync.getUniqueID() != peer->second.userId ) 975 977 continue; 976 978 977 979 /* list of synchronizeables that will never be synchronized over the network: */ 978 980 // do not sync null parent 979 if ( NullParent::staticClassID() == sync.get LeafClassID())981 if ( NullParent::staticClassID() == sync.getClassID()) 980 982 continue; 981 983 982 984 983 assert( sync.get LeafClassID() != 0);985 assert( sync.getClassID() != 0); 984 986 985 987 assert( offset + INTSIZE <= UDP_PACKET_SIZE ); … … 1188 1190 if( NullParent::staticClassID() == leafClassId || Synchronizeable::staticClassID() == leafClassId || NetworkGameManager::staticClassID() == leafClassId) 1189 1191 { 1190 PRINTF( 1)("Don't create Object with ID %x, ignored!\n", (int)leafClassId);1192 PRINTF(0)("Don't create Object with ID %d, ignored!\n", (int)leafClassId); 1191 1193 offset += syncDataLength; 1192 1194 continue; 1193 1195 } 1194 1196 else 1195 ; /// FIXME CLASS_ID :: b = Factory::fabricate( leafClassId);1196 1197 b = Factory::fabricate( ObjectListBase::retrieveIdentity( leafClassId ) ); 1198 1197 1199 if ( !b ) 1198 1200 { 1199 PRINTF(1)("Could not fabricate Object with classID % x\n", leafClassId);1201 PRINTF(1)("Could not fabricate Object with classID %d\n", leafClassId); 1200 1202 offset += syncDataLength; 1201 1203 continue; … … 1208 1210 sync->setSynchronized(true); 1209 1211 1210 PRINTF( 0)("Fabricated %s with id %d\n", sync->getClassCName(), sync->getUniqueID());1212 PRINTF(1)("Fabricated %s with id %d\n", sync->getClassCName(), sync->getUniqueID()); 1211 1213 } 1212 1214 else 1213 1215 { 1214 PRINTF(1)("Class with ID % xis not a synchronizeable!\n", (int)leafClassId);1216 PRINTF(1)("Class with ID %d is not a synchronizeable!\n", (int)leafClassId); 1215 1217 delete b; 1216 1218 offset += syncDataLength; -
trunk/src/lib/network/peer_info.h
r9656 r10114 36 36 int userId; //!< id of this network node 37 37 int nodeType; //!< type of this network node 38 IP ip; //! >the ip address of this network node38 IP ip; //!< the ip address of this network node 39 39 40 40 NetworkSocket * socket; //!< socket connecting to this node -
trunk/src/lib/network/player_stats.cc
r9869 r10114 30 30 #include "shell_command.h" 31 31 32 #include "class_id_DEPRECATED.h" 33 34 ObjectListDefinition ID(PlayerStats, CL_PLAYER_STATS);32 33 34 ObjectListDefinition(PlayerStats); 35 35 CREATE_FACTORY(PlayerStats); 36 36 -
trunk/src/lib/network/synchronizeable.cc
r9869 r10114 30 30 31 31 #include "converter.h" 32 33 #include "synchronizeable_var/synchronizeable_classid.h" 32 34 33 35 … … 56 58 /* make sure loadClassId is first synced var because this is read by networkStream */ 57 59 assert( syncVarList.size() == 0 ); 58 mLeafClassId = this->registerVarId( new SynchronizeableInt( (int*)&this->getLeafClassID(), (int*)&this->getLeafClassID(), "leafClassId", PERMISSION_MASTER_SERVER) ); 60 assert( this->getClassID() == this->objectList().id() ); 61 62 mLeafClassId = this->registerVarId( new SynchronizeableClassID( this, "leafClassId", PERMISSION_MASTER_SERVER) ); 59 63 60 64 this->registerVar( new SynchronizeableInt( &this->owner, &this->owner, "owner", PERMISSION_MASTER_SERVER ) ); … … 267 271 // PRINTF(0)("sending %s %d\n", (*it)->getName().c_str(), n); 268 272 269 // if( this->isA( CL_PLAYABLE))273 // if( this->isA( Playable::staticClassID() )) 270 274 // { 271 275 // PRINTF(0)("ms: %i, ps: %i, c: %i, sender: %i, reciever: %i, owner: %i, perm: (ow %i, ms %i, s %i, a %i)\n", … … 453 457 //(*it)->debug(); 454 458 455 // if( this->isA( CL_PLAYABLE))459 // if( this->isA(Playable::staticClassID())) 456 460 // { 457 461 // PRINTF(0)("ms: %i, ps: %i, c: %i, sender: %i, reciever: %i, owner: %i, perm: (ow %i, ms %i, s %i, a %i)\n", -
trunk/src/lib/physics/fields/gravity.cc
r9869 r10114 21 21 #include "util/loading/factory.h" 22 22 23 #include "class_id_DEPRECATED.h" 24 ObjectListDefinition ID(Gravity, CL_FIELD_GRAVITY);23 24 ObjectListDefinition(Gravity); 25 25 26 26 CREATE_FACTORY(Gravity); -
trunk/src/lib/physics/fields/point_gravity.cc
r9869 r10114 20 20 21 21 22 #include "class_id_DEPRECATED.h" 23 ObjectListDefinition ID(PointGravity, CL_FIELD_POINT_GRAVITY);22 23 ObjectListDefinition(PointGravity); 24 24 25 25 -
trunk/src/lib/physics/fields/twirl.cc
r9869 r10114 20 20 21 21 22 #include "class_id_DEPRECATED.h" 23 ObjectListDefinition ID(Twirl, CL_FIELD_TWIRL);22 23 ObjectListDefinition(Twirl); 24 24 25 25 -
trunk/src/lib/physics/physics_connection.cc
r9869 r10114 28 28 #include "util/loading/load_param.h" 29 29 30 #include "class_id_DEPRECATED.h" 30 31 31 ObjectListDefinition(PhysicsConnection); 32 32 CREATE_FACTORY(PhysicsConnection);
Note: See TracChangeset
for help on using the changeset viewer.