- Timestamp:
- May 4, 2005, 1:57:55 AM (20 years ago)
- Location:
- orxonox/trunk/src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
orxonox/trunk/src/lib/gui/gui/orxonox_gui_gtk.cc
r4031 r4032 50 50 #endif /* HAVE_GTHREAD */ 51 51 gtk_init(&argc, &argv); 52 53 52 #include "rc" 54 53 gtk_rc_parse_string( rc_string ); -
orxonox/trunk/src/orxonox.cc
r4010 r4032 37 37 38 38 #include <string.h> 39 39 40 int verbose = 4; 40 41 … … 46 47 Orxonox::Orxonox () 47 48 { 49 ResourceManager::touchFile("~/.orxonox/orxonox.lock"); 50 48 51 pause = false; 49 52 } … … 61 64 delete ResourceManager::getInstance(); // deletes the Resource Manager 62 65 delete TextEngine::getInstance(); 66 67 ResourceManager::deleteFile("~/.orxonox/orxonox.lock"); 63 68 } 64 69 … … 302 307 303 308 int i; 304 for(i = 0; i < argc; ++i)309 for(i = 1; i < argc; ++i) 305 310 { 306 311 if(! strcmp( "--help", argv[i])) return startHelp(); 307 312 else if(! strcmp( "--benchmark", argv[i])) return startBenchmarks(); 313 314 else PRINTF(2)("Orxonox does not understand the arguments %s\n", argv[i]); 308 315 } 309 316 310 PRINTF(2)("Orxonox does not understand the arguments");311 317 return startOrxonox(argc, argv); 312 318 } … … 316 322 int startHelp() 317 323 { 318 printf("orxonox: starts the orxonox game - rules\n");319 printf("usage: orxonox [arg]\n\n");320 printf("valid options:\n");321 printf(" --benchmark\tstarts the orxonox benchmark\n");322 printf(" --help \tshows this menu\n");324 PRINT(0)("orxonox: starts the orxonox game - rules\n"); 325 PRINT(0)("usage: orxonox [arg]\n\n"); 326 PRINT(0)("valid options:\n"); 327 PRINT(0)(" --benchmark\tstarts the orxonox benchmark\n"); 328 PRINT(0)(" --help \tshows this menu\n"); 323 329 } 324 330 … … 326 332 int startOrxonox(int argc, char** argv) 327 333 { 328 printf(">>> Starting Orxonox <<<\n"); 334 // checking for existence of the configuration-files 335 if (!ResourceManager::isFile("~/.orxonox/orxonox.conf") || ResourceManager::isFile("~/.orxonox/orxonox.lock")) 336 { 337 if (ResourceManager::isFile("~/.orxonox/orxonox.lock")) 338 ResourceManager::deleteFile("~/.orxonox/orxonox.lock"); 339 if (system("./orxonoxGui --gui") == -1) 340 system ("orxonoxGui --gui"); 341 return 0; 342 } 343 344 PRINT(0)(">>> Starting Orxonox <<<\n"); 329 345 Orxonox *orx = Orxonox::getInstance(); 330 346 331 347 if((*orx).init(argc, argv) == -1) 332 348 { 333 printf("! Orxonox initialization failed\n");349 PRINTF(1)("! Orxonox initialization failed\n"); 334 350 return -1; 335 351 } -
orxonox/trunk/src/util/resource_manager.cc
r3983 r4032 510 510 } 511 511 512 stat(tmpDirName, &status); 513 if (status.st_mode & (S_IFDIR 512 if(!stat(tmpDirName, &status)) 513 { 514 if (status.st_mode & (S_IFDIR 514 515 #ifndef __WIN32__ 515 | S_IFLNK516 | S_IFLNK 516 517 #endif 517 )) 518 { 519 delete tmpDirName; 520 return true; 521 } 522 else 523 { 524 delete tmpDirName; 525 return false; 526 } 518 )) 519 { 520 delete tmpDirName; 521 return true; 522 } 523 else 524 { 525 delete tmpDirName; 526 return false; 527 } 528 } 529 else 530 return false; 527 531 } 528 532 … … 534 538 bool ResourceManager::isFile(const char* fileName) 535 539 { 540 char* tmpFileName = ResourceManager::homeDirCheck(fileName); 541 // actually checks the File 536 542 struct stat status; 537 stat(fileName, &status); 538 if (status.st_mode & (S_IFREG 543 if (!stat(tmpFileName, &status)) 544 { 545 if (status.st_mode & (S_IFREG 539 546 #ifndef __WIN32__ 540 | S_IFLNK547 | S_IFLNK 541 548 #endif 542 )) 543 return true; 544 else 545 return false; 546 } 549 )) 550 { 551 delete tmpFileName; 552 return true; 553 } 554 else 555 { 556 delete tmpFileName; 557 return false; 558 } 559 } 560 else 561 { 562 delete tmpFileName; 563 return false; 564 } 565 } 566 567 bool ResourceManager::touchFile(const char* fileName) 568 { 569 char* tmpName = ResourceManager::homeDirCheck(fileName); 570 571 FILE* stream; 572 if( (stream = fopen (tmpName, "w")) == NULL) 573 { 574 PRINTF(1)("could not open %s fro writing\n", fileName); 575 return false; 576 } 577 578 delete tmpName; 579 } 580 581 bool ResourceManager::deleteFile(const char* fileName) 582 { 583 char* tmpName = ResourceManager::homeDirCheck(fileName); 584 unlink(tmpName); 585 delete tmpName; 586 } 587 588 char* ResourceManager::homeDirCheck(const char* name) 589 { 590 char* retName; 591 if (!strncmp(name, "~/", 2)) 592 { 593 char tmpFileName[500]; 594 #ifdef __WIN32__ 595 strcpy(tmpFileName, getenv("USERPROFILE")); 596 #else 597 strcpy(tmpFileName, getenv("HOME")); 598 #endif 599 retName = new char[strlen(tmpFileName)+strlen(name)]; 600 sprintf(retName, "%s%s", tmpFileName, name+1); 601 } 602 else 603 { 604 retName = new char[strlen(name)+1]; 605 strcpy(retName, name); 606 } 607 return retName; 608 } 609 610 547 611 548 612 /** -
orxonox/trunk/src/util/resource_manager.h
r3983 r4032 78 78 // utility functions of this class 79 79 static bool isDir(const char* directory); 80 static bool isFile(const char* directory); 80 static bool isFile(const char* fileName); 81 static bool touchFile(const char* fileName); 82 static bool deleteFile(const char* fileName); 81 83 82 84 private: … … 92 94 Resource* locateResourceByPointer(const void* pointer); 93 95 96 static char* homeDirCheck(const char* name); 94 97 }; 95 98
Note: See TracChangeset
for help on using the changeset viewer.