/* * Copyright 2016 - 2019 gtalent2@gmail.com * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include #include #include using namespace nostalgia::common; using namespace nostalgia::core; using namespace nostalgia::world; ox::Error run(ox::FileSystem *fs) { Context ctx; ctx.rom = fs; oxReturnError(init(&ctx)); //Zone zone; //oxReturnError(zone.init(&ctx, Bounds{0, 0, 40, 40}, "/TileSheets/Charset.ng", "/Palettes/Charset.npal")); //zone.draw(&ctx); oxReturnError(initConsole(&ctx)); puts(&ctx, 10, 9, "DOPENESS!!!"); oxReturnError(run()); oxReturnError(shutdownGfx()); return OxError(0); } int main(int argc, const char **argv) { if (argc > 1) { ox::FileSystem *fs = nullptr; uint8_t *rom = nullptr; auto path = argv[1]; const auto lastDot = ox_lastIndexOf(path, '.'); const auto fsExt = lastDot != -1 ? path + lastDot : ""; if (ox_strcmp(fsExt, ".oxfs") == 0) { rom = loadRom(path); if (!rom) { return 1; } fs = new (ox_alloca(sizeof(ox::FileStore32))) ox::FileSystem32(ox::FileStore32(rom, 32 * ox::units::MB)); #ifdef OX_HAS_PASSTHROUGHFS } else { fs = new (ox_alloca(sizeof(ox::PassThroughFS))) ox::PassThroughFS(path); #endif } auto err = run(fs); oxAssert(err, "Something went wrong..."); unloadRom(rom); return err; } return 2; }