*******************************************************************************/
#include <cstdlib> // getenv
+#include <cstring>
#include <iostream>
#include <string>
{
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;
}
}
-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"),
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()
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));
}
+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 <"
#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