X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FYoinkApp.cc;h=8690143d16b7356439849753bff0468ec8575a83;hp=a9b8f1328068029f42442cfa16630234db76f3a3;hb=ca0f7bdfba63140dca0bd20586d31980f3938eb2;hpb=33842c860fe18ca8cf087905992885687434320c diff --git a/src/YoinkApp.cc b/src/YoinkApp.cc index a9b8f13..8690143 100644 --- a/src/YoinkApp.cc +++ b/src/YoinkApp.cc @@ -27,6 +27,7 @@ *******************************************************************************/ #include // getenv +#include #include #include @@ -50,34 +51,24 @@ static std::string configFiles() { std::string files; - char* configFile = getenv("YOINKRC"); + // look in the configured data directory last of all char* dataDir = getenv("YOINK_DATADIR"); - - if (configFile) - { - // if a config file from the environment variable is specified, we want - // to load it first so it has precedence - files += configFile; - files += ":"; - } + files += (dataDir ? dataDir : YOINK_DATADIR); + files += "/yoinkrc"; // add the colon-delimited paths from configure + files += ":"; files += YOINK_CONFIGFILES; - if (dataDir) + char* configFile = getenv("YOINKRC"); + if (configFile) { - // if another data directory is set in the environment, look for a - // config file there + // if a config file from the environment variable is specified, we want + // to load it first so it has precedence files += ":"; - files += dataDir; - files += "/yoinkrc"; + files += configFile; } - // look in the configured data directory last of all - files += ":"; - files += (dataDir ? dataDir : YOINK_DATADIR); - files += "/yoinkrc"; - return files; } @@ -99,28 +90,6 @@ static std::string iconFile() } -void YoinkApp::myFunc(Mf::Timer& timer, Mf::Scalar t) -{ - std::cout << "timer: " << t << std::endl; - - //timer.invalidate(); -} - -int YoinkApp::myThread() -{ - Mf::Scalar timer = Mf::Timer::getTicks(); - - for (;;) - { - std::cout << "thread awake: " << Mf::Timer::getTicks() << std::endl; - - timer += 3.0; - Mf::Timer::sleep(timer, true); - } - return 0; -} - - YoinkApp::YoinkApp(int argc, char* argv[]) : Mf::Engine(argc, argv, configFiles(), PACKAGE_STRING, iconFile()), music("NightFusionIntro"), @@ -137,19 +106,14 @@ YoinkApp::YoinkApp(int argc, char* argv[]) : heroine = Character::alloc("RobotTrooper"); heroine->getAnimation().startSequence("Run"); - Mf::Scalar a[6] = {0.0, 1.5, -0.5, 3.0, -1.5, 1.0}; + Mf::Scalar a[6] = {0.0, 1.5, -0.5, 3.0, -2.0, 1.0}; interp.init(a, 2.0, Mf::Interpolator::OSCILLATE); Mf::Scalar b[2] = {1.0, 0.0}; fadeIn.init(b, 1.0); - octree = Mf::loadScene("Test"); + octree = Mf::loadScene("Classic"); heroine->treeNode = octree->insert(heroine); - - //myTimer.init(boost::bind(&YoinkApp::myFunc, this, _1, _2), - //0.0, Mf::Timer::REPEAT); - //Mf::Thread thread = Mf::detachFunction(boost::bind(&YoinkApp::myThread, this)); - //std::cout << "thread " << thread << " detached." << std::endl; } YoinkApp::~YoinkApp() @@ -214,6 +178,10 @@ void YoinkApp::update(Mf::Scalar t, Mf::Scalar dt) camera.setPosition(Mf::Vector3(-heroine->current.position[0], -heroine->current.position[1], -256)); + Mf::Vector3 heroinePosition; + Mf::promoteVector(heroinePosition, heroine->current.position); + Mf::Sound::setListenerPosition(heroinePosition); + interp.update(dt); hud.setBar1Progress(interp.getState(dt)); hud.setBar2Progress(1.0 - interp.getState(dt)); @@ -328,9 +296,33 @@ void YoinkApp::handleEvent(const Mf::Event& event) } +void printUsage() +{ + std::cout << "Usage: "PACKAGE" [-h|--help] [OPTION=VALUE]..." << std::endl + << "The alien-smashing action game." << std::endl + << std::endl + << "Options:" << std::endl + << " -h, --help" << std::endl + << " show this help and exit" << std::endl + << " detail=1|2|3" << std::endl + << " the level of detail of game scenes" << std::endl + << " fullscreen=true|false" << std::endl + << " if true, uses the entire display" << std::endl + << " maxfps=num" << std::endl + << " the maximum number of frames per second" << std::endl + << std::endl + << "See documentation for more options." << std::endl; +} int main(int argc, char* argv[]) { + if (argc > 1 && + (strcmp(argv[1], "-h") == 0 || strcmp(argv[1], "--help") == 0)) + { + printUsage(); + return 0; + } + std::cout << std::endl << PACKAGE_STRING << std::endl << "Compiled " << __TIME__ " " __DATE__ << std::endl << "Send patches and bug reports to <" @@ -341,7 +333,7 @@ int main(int argc, char* argv[]) #elif YOINK_LOGLEVEL >= 3 Mf::setLogLevel(Mf::LOG_INFO); #elif YOINK_LOGLEVEL >= 2 - Mf::setLogLevel(Mf::LOG_WARNING); + Mf::setLogLevel(Mf::LOG_SCRIPT); #elif YOINK_LOGLEVEL >= 1 Mf::setLogLevel(Mf::LOG_ERROR); #elif YOINK_LOGLEVEL