Changeset 6275 in orxonox.OLD for branches/network/src/world_entities
- Timestamp:
- Dec 24, 2005, 2:15:49 PM (19 years ago)
- Location:
- branches/network/src/world_entities
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/network/src/world_entities/skybox.cc
r6273 r6275 218 218 setIsOutOfSync( false ); 219 219 220 int flsize = Converter::byteArrayToFloat( data, &size ); 221 Converter::byteArrayToString( data+flsize, textureName, length-flsize ); 222 223 PRINT(0)("GOT DATA: size=%f texture=%s\n", size, textureName); 220 /*int flsize = Converter::byteArrayToFloat( data, &size ); 221 Converter::byteArrayToString( data+flsize, textureName, length-flsize );*/ 222 223 SYNCHELP_READ_BEGIN(); 224 SYNCHELP_READ_FLOAT(size); 225 SYNCHELP_READ_STRING( textureName, 1024 ); 226 227 //PRINT(0)("GOT DATA: size=%f texture=%s\n", size, textureName); 224 228 225 229 this->setSize( size ); … … 228 232 } 229 233 234 235 230 236 int SkyBox::readBytes( byte * data, int maxLength, int * reciever ) 231 237 { 232 238 if ( isOutOfSync() && !requestedSync() && this->getHostID()!=this->getOwner() ) 233 239 { 234 PRINTF(0)("Requesting sync! %d\n", this->getUniqueID());240 //PRINTF(0)("Requesting sync! %d\n", this->getUniqueID()); 235 241 (NetworkGameManager::getInstance())->sync( this->getUniqueID(), this->getOwner() ); 236 242 setRequestedSync( true ); … … 240 246 if ( rec > 0 ) 241 247 { 242 PRINTF(0)("Serving client %d which requested sync %d size=%f texture=%s\n", rec, this->getUniqueID(), this->size, this->textureName);248 //PRINTF(0)("Serving client %d which requested sync %d size=%f texture=%s\n", rec, this->getUniqueID(), this->size, this->textureName); 243 249 *reciever = rec; 244 250 245 int flsize = Converter::floatToByteArray( this->size, data, maxLength ); 246 247 if ( flsize <= 0 ) 248 { 249 PRINTF(1)("Byte array is too small (%d) to store float\n", maxLength ); 250 return 0; 251 } 252 253 if ( strlen(textureName)+INTSIZE+flsize > maxLength ) 254 { 255 PRINTF(1)("Byte array is too small (%d) to store data\n", maxLength ); 256 return 0; 257 } 258 259 return flsize + Converter::stringToByteArray( textureName, data+flsize, strlen(textureName), maxLength-flsize ); 260 251 SYNCHELP_WRITE_BEGIN(); 252 SYNCHELP_WRITE_FLOAT(this->size); 253 SYNCHELP_WRITE_STRING(this->textureName); 254 255 return SYNCHELP_WRITE_N; 261 256 } 262 257 -
branches/network/src/world_entities/terrain.cc
r6142 r6275 24 24 #include "resource_manager.h" 25 25 #include "model.h" 26 #include "network_game_manager.h" 27 26 28 27 29 #include "glincl.h" … … 57 59 { 58 60 this->loadModel(fileName); 61 strncpy( terrainFile, fileName, 1024 ); 59 62 } 60 63 else … … 98 101 this->ssp = NULL; 99 102 this->vegetation = NULL; 103 strncpy( this->vegetationFile, "", 1024 ); 104 strncpy( this->terrainFile, "", 1024 ); 100 105 } 101 106 … … 111 116 void Terrain::loadVegetation(const char* vegetationFile) 112 117 { 118 PRINTF(0)("loadVegetation: %s\n", vegetationFile); 113 119 if (this->vegetation) 114 120 ResourceManager::getInstance()->unload(this->vegetation, RP_LEVEL); … … 116 122 { 117 123 PRINTF(4)("fetching %s\n", vegetationFile); 118 this->vegetation = (Model*)ResourceManager::getInstance()->load(vegetationFile, OBJ, RP_CAMPAIGN); 124 this->vegetation = (Model*)ResourceManager::getInstance()->load(vegetationFile, OBJ, RP_CAMPAIGN); 125 strncpy( this->vegetationFile, vegetationFile, 1024); 119 126 } 120 127 else … … 315 322 } 316 323 } 324 325 void Terrain::writeBytes( const byte * data, int length, int sender ) 326 { 327 setRequestedSync( false ); 328 setIsOutOfSync( false ); 329 330 int n = Converter::byteArrayToString( data, vegetationFile, length ); 331 Converter::byteArrayToString( data+n, terrainFile, length-n ); 332 333 //PRINT(0)("GOT DATA: size=%f texture=%s\n", size, textureName); 334 335 if ( strcmp(vegetationFile, "") ) 336 this->loadVegetation( vegetationFile ); 337 if ( strcmp(terrainFile, "") ) 338 this->loadModel( terrainFile ); 339 340 } 341 342 int Terrain::readBytes( byte * data, int maxLength, int * reciever ) 343 { 344 if ( isOutOfSync() && !requestedSync() && this->getHostID()!=this->getOwner() ) 345 { 346 //PRINTF(0)("Requesting sync! %d\n", this->getUniqueID()); 347 (NetworkGameManager::getInstance())->sync( this->getUniqueID(), this->getOwner() ); 348 setRequestedSync( true ); 349 } 350 351 int rec = this->getRequestSync(); 352 if ( rec > 0 ) 353 { 354 //PRINTF(0)("Serving client %d which requested sync %d size=%f texture=%s\n", rec, this->getUniqueID(), this->size, this->textureName); 355 *reciever = rec; 356 357 if ( strlen(vegetationFile)+INTSIZE > maxLength ) 358 { 359 PRINTF(1)("Byte array is too small (%d) to store data\n", maxLength ); 360 return 0; 361 } 362 363 int n = Converter::stringToByteArray( vegetationFile, data, strlen(vegetationFile), maxLength ); 364 365 return n + Converter::stringToByteArray( terrainFile, data+n, strlen(terrainFile), maxLength-n ); 366 367 } 368 369 *reciever = 0; 370 return 0; 371 } 372 373 void Terrain::writeDebug( ) const 374 { 375 } 376 377 void Terrain::readDebug( ) const 378 { 379 } -
branches/network/src/world_entities/terrain.h
r5500 r6275 30 30 virtual ~Terrain(); 31 31 32 virtual void writeBytes(const byte* data, int length, int sender); 33 virtual int readBytes(byte* data, int maxLength, int * reciever); 34 virtual void writeDebug() const; 35 virtual void readDebug() const; 36 32 37 void init(); 33 38 void loadParams(const TiXmlElement* root); … … 44 49 Model* vegetation; 45 50 int objectList; 51 char vegetationFile[1024]; 52 char terrainFile[1024]; 46 53 }; 47 54
Note: See TracChangeset
for help on using the changeset viewer.