X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMain.cc;h=9ae5156047f6205ea41d5bed190796cd7c795bb7;hp=fb442d33ceb8cc2181be21559be625472d3ea090;hb=eceb970628068ae621ef9523a669a2b66a82fd8a;hpb=bd62b2e6a6e5f1af5a635df3ff1a07f363d9ffe0 diff --git a/src/Main.cc b/src/Main.cc index fb442d3..9ae5156 100644 --- a/src/Main.cc +++ b/src/Main.cc @@ -9,12 +9,16 @@ * **************************************************************************/ -#include // atexit, getenv +#include "config.h" + +#include // atexit #include #include #include #include -#include // access + +#include +#include #include #include @@ -26,8 +30,6 @@ #include "GameLayer.hh" #include "Main.hh" #include "TitleLayer.hh" - -#include "../config.h" #include "version.h" @@ -105,11 +107,10 @@ std::string Main::getSearchPath() // 2. YOINK_DATADIR (configure) std::string path; - - char* dataDir = getenv("YOINK_DATADIR"); - if (dataDir) + std::string datadir = stlplus::env_vector()["YOINK_DATADIR"]; + if (!datadir.empty()) { - path += dataDir; + path += datadir; path += ":"; } path += YOINK_DATADIR; @@ -125,19 +126,18 @@ std::string Main::getConfigPath() // 3. $HOME/.yoinkrc // 4. YOINKRC (environment) - std::string path("yoinkrc"); - moof::resource::find(path); + std::string path = moof::resource::find_file("yoinkrc"); #if !defined(_WIN32) path += ":/etc/yoinkrc"; #endif path += ":$HOME/.yoinkrc"; - char* configFile = getenv("YOINKRC"); - if (configFile) + std::string rc_file = stlplus::env_vector()["YOINKRC"]; + if (!rc_file.empty()) { path += ":"; - path += configFile; + path += rc_file; } return path; @@ -194,72 +194,66 @@ void Main::printUsage() void Main::printInfo(int argc, char* argv[]) { - std::string assets; - std::string datadir; - std::string config; + stlplus::env_vector environment; + std::string assets; assets.assign(YOINK_DATADIR); - int accessible = access(assets.c_str(), R_OK); - if (accessible != 0) assets += " (no access)"; + if (!stlplus::file_readable(assets)) assets += " (no access)"; - char* temp = getenv("YOINK_DATADIR"); - if (temp) + std::string datadir = environment["YOINK_DATADIR"]; + if (!datadir.empty()) { - datadir = temp; - accessible = access(temp, R_OK); - if (accessible != 0) datadir += " (no access)"; + if (!stlplus::folder_readable(datadir)) datadir += " (no access)"; } - temp = getenv("YOINKRC"); - if (temp) + std::string rc_file = environment["YOINKRC"]; + if (!rc_file.empty()) { - config = temp; - accessible = access(temp, R_OK); - if (accessible != 0) config += " (no access)"; + if (!stlplus::file_readable(rc_file)) rc_file += " (no access)"; } std::cout << " Executable: " << argv[0] << std::endl #ifdef YOINK_GITHEAD << " Commit: "YOINK_GITHEAD << std::endl #endif - << " Version: "VERSION << std::endl + << " Version: " << PACKAGE_VERSION << std::endl << " Built: " << COMPILE_TIME << std::endl - << " Compiler: "COMPILER_STRING << std::endl + << " Compiler: " << COMPILER_STRING << std::endl << " Assets: " << assets << std::endl << "Build options: " -#ifndef HAVE_CLOCK_GETTIME +#if !USE_CLOCK_GETTIME << "-" #endif << "clock_gettime " -#ifdef NDEBUG +#if !DEBUG << "-" #endif << "debug " -#ifndef USE_DOUBLE_PRECISION +#if !USE_DOUBLE_PRECISION << "-" #endif << "double-precision " -#ifndef USE_GTK +#if !USE_GTK << "-" #endif << "gtk " -#ifndef USE_HOTLOADING +#if !USE_HOTLOADING << "-" #endif << "hotloading " -#ifndef PROFILING_ENABLED +#if !PROFILING_ENABLED << "-" #endif << "profile " -#ifndef USE_QT4 +#if !USE_QT4 << "-" #endif << "qt4 " -#ifndef USE_THREADS +#if !USE_THREADS << "-" #endif << "threads" << std::endl - << " YOINKRC: " << config << std::endl + << " YOINKRC: " << rc_file << std::endl << "YOINK_DATADIR: " << datadir << std::endl; } @@ -278,179 +272,14 @@ void goodbye() } -#include - -#include - -class MyAsset -{ -public: - MyAsset(const std::string& path) - { - moof::log_info("MyAsset loading:", path); - - char buffer[1024]; - - std::ifstream stream(path.c_str()); - stream.getline(buffer, sizeof(buffer)); - str = buffer; - stream.close(); - - cool(); - } - - void cool() - { - moof::log_info("MyAsset COOL:", str); - } - - void groovy() - { - moof::log_info("MyAsset GROOVY!!!!", str); - } - - std::string str; -}; - -typedef moof::resource_handle MyAsset_handle; - -class AnotherAsset -{ -public: - AnotherAsset(const std::string& path, double d = 5.0) - { - moof::log_info("AnotherAsset loading:", path); - dude = d; - } - - - void cool() - { - moof::log_info("AnotherAsset cool", dude); - } - - void groovy() - { - moof::log_info("AnotherAsset GROOVY!!!!", dude); - } - - double dude; -}; - - int main(int argc, char* argv[]) { - moof::resource::register_type("mine"); - - //moof::resource::add_type("k"); - - //{ - //moof::resource_ptr myAsset = moof::resource::load(assetName, - //"prefix", "mine"); - - //MyAsset_handle aCopy = myAsset; - - //MyAsset_handle copy2 = moof::resource::load(assetName, "asdfas", "mine"); - - ////if (myAsset->check()) myAsset->get()->cool(); - //myAsset->get()->cool(); - ////myAsset->get()->groovy(); - - //aCopy.get()->cool(); - //copy2.get()->cool(); - - //log_info("rsrc ptr:", moof::resource::load(assetName, "", "mine")); - //} - //log_info("rsrc ptr:", moof::resource::load(assetName, "", "k")); - //moof::resource::load(assetName, "", "mine")->get()->cool(); + moof::backend backend; - ////if (myAsset) myAsset.get()->cool(); - ////else moof::log_error("asset not obtained..."); - - MyAsset_handle myAsset = moof::resource::load("/home/chaz/meh.mine"); - MyAsset* asset = myAsset.get(); - if (asset) asset->cool(); - else moof::log_warning("no asset obtained!!"); - - moof::timer reloadTimer( - boost::bind(&moof::resource::reload_as_needed), - SCALAR(2.0), - moof::timer::repeat); - - //for (;;) - //{ - //myAsset.get()->cool(); - //moof::resource::reload_as_needed(); - //sleep(1); - //} - - //return 0; - - moof::resolver_task task("4950", "lappy"); - task.run(); - - int i = task.wait(); - moof::log_warning("task ended with code:", i); - - std::vector::const_iterator it; - for (it = task.addresses().begin(); it != task.addresses().end(); ++it) - { - moof::socket::address addr = *it; - - moof::log_info("address:", addr, "(", addr.type(), ")"); - } - - //ASSERT(5 == 8 && "uh oh that's not right"); - - - std::vector hi; - for (int a = 0; a < 4000; a++) - { - hi.push_back(a); - } - - moof::log_info("array size:", hi.size()); - moof::packet packet; - packet << hi; - - //for (it = task.addresses().begin(); it != task.addresses().end(); ++it) - //{ - //moof::socket sock(*it); - moof::socket sock(moof::socket::address::broadcast("4950")); - //moof::socket sock("4950", "lappy", SOCK_DGRAM); - sock.set(SO_BROADCAST, 1); - sock.connect(); - - //if (sock.isConnected()) - //{ - moof::packet pack; - pack << "hello world"; - sock.write(pack); - //sock.write(pack, sock.address()); - moof::log_info("sent", pack.size(), "bytes"); - - const char* data = pack.bytes(); - for (unsigned i = 0; i < pack.size(); ++i) - { - moof::log_warning("meh:", data[i]); - } - - char data2[56]; - pack.read(data2, 13); - for (int i = 0; i < 13; ++i) - { - moof::log_warning("meh:", data2[i]); - } - //} - //else - //{ - //moof::log_error("NOT CONNECTED"); - //} - //} - - - //return 0; - + // FIXME: This is temporary. + moof::timer reloadTimer(boost::bind(&moof::resource::reload_as_needed), + SCALAR(2.0), + moof::timer::repeat); if (argc > 1) { @@ -480,10 +309,14 @@ int main(int argc, char* argv[]) try { - std::string iconPath(PACKAGE".png"); - moof::resource::find(iconPath); - moof::image icon(iconPath); - icon.set_as_icon(); + //std::string iconPath(PACKAGE".png"); + //iconPath = moof::resource::find_file(iconPath); + //moof::image icon(iconPath); + //icon.set_as_icon(); + moof::image_handle icon(PACKAGE, "png"); + if (icon) icon->set_as_icon(); + else moof::log_error("no icon loaded"); + icon.unload(); class moof::video::attributes attributes(settings); moof::video video(PACKAGE_STRING, attributes);