void AnimatedModel::load(const std::string & file) { LuaScript script(file); loadImage(script); loadTexturePack(script); loadAnimation(script); setUp(); }
void Module::enter() { if (!_hasModule) throw Common::Exception("Module::enter(): Lacking a module?!?"); if (!_pc) throw Common::Exception("Module::enter(): Lacking a PC?!?"); _pc->clearVariables(); loadTexturePack(); _console->printf("Entering module \"%s\" with character \"%s\"", _ifo.getName().getString().c_str(), _pc->getName().c_str()); _ingameGUI->updatePartyMember(0, *_pc); try { loadTLK(); loadHAKs(); loadAreas(); } catch (Common::Exception &e) { e.add("Can't initialize module \"%s\"", _ifo.getName().getString().c_str()); throw e; } float entryX, entryY, entryZ, entryDirX, entryDirY; _ifo.getEntryPosition(entryX, entryY, entryZ); _ifo.getEntryDirection(entryDirX, entryDirY); const float entryAngle = -Common::rad2deg(atan2(entryDirX, entryDirY)); _pc->setPosition(entryX, entryY, entryZ); _pc->setOrientation(0.0f, 0.0f, 1.0f, entryAngle); _pc->loadModel(); runScript(kScriptModuleLoad , this, _pc); runScript(kScriptModuleStart, this, _pc); runScript(kScriptEnter , this, _pc); Common::UString startMovie = _ifo.getStartMovie(); if (!startMovie.empty()) playVideo(startMovie); _newArea = _ifo.getEntryArea(); CameraMan.reset(); // Roughly head position CameraMan.setPosition(entryX, entryY, entryZ + 1.8f); CameraMan.setOrientation(90.0f, 0.0f, entryAngle); CameraMan.update(); _running = true; _exit = false; _ingameGUI->show(); }
bool Module::enter() { if (!_hasModule) { warning("Module::enter(): Lacking a module?!?"); return false; } if (!_pc) { warning("Module::enter(): Lacking a PC?!?"); return false; } _pc->clearVariables(); loadTexturePack(); _console->printf("Entering module \"%s\" with character \"%s\"", _ifo.getName().getString().c_str(), _pc->getName().c_str()); _ingameGUI->updatePartyMember(0, *_pc); try { loadHAKs(); loadAreas(); } catch (Common::Exception &e) { e.add("Can't initialize module \"%s\"", _ifo.getName().getString().c_str()); printException(e, "WARNING: "); return false; } runScript(kScriptModuleLoad , this, _pc); runScript(kScriptModuleStart, this, _pc); runScript(kScriptEnter , this, _pc); Common::UString startMovie = _ifo.getStartMovie(); if (!startMovie.empty()) playVideo(startMovie); _exit = false; _newArea = _ifo.getEntryArea(); CameraMan.reset(); float entryX, entryY, entryZ; _ifo.getEntryPosition(entryX, entryY, entryZ); // Roughly head position CameraMan.setPosition(entryX, entryZ + 2.0, entryY); float entryDirX, entryDirY; _ifo.getEntryDirection(entryDirX, entryDirY); CameraMan.setOrientation(entryDirX, entryDirY); return true; }
void Module::showMenu() { _currentArea->removeFocus(); if (_ingameGUI->showMain() == 2) { _exit = true; return; } // In case we changed the texture pack settings, reload it loadTexturePack(); }
int main() { cfguInit(); CFGU_GetSystemModel(&MODEL_3DS); FILE * file; shouldRenderDebug = true; if ((file = fopen("settings.bin", "r"))) { fread(&shouldRenderDebug,sizeof(bool),1,file); fread(&shouldSpeedup,sizeof(bool),1,file); osSetSpeedupEnable(shouldSpeedup); fclose(file); } sf2d_init(); csndInit(); noItem = newItem(ITEM_NULL, 0); currentMenu = MENU_TITLE; currentSelection = 0; quitGame = false; icons = sfil_load_PNG_buffer(icons2_png, SF2D_PLACE_RAM); font = sfil_load_PNG_buffer(Font_png, SF2D_PLACE_RAM); bottombg = sfil_load_PNG_buffer(bottombg_png, SF2D_PLACE_RAM); dirtColor[0] = SWAP_UINT32(sf2d_get_pixel(icons, 16, 0)); dirtColor[1] = SWAP_UINT32(sf2d_get_pixel(icons, 16, 1)); dirtColor[2] = SWAP_UINT32(sf2d_get_pixel(icons, 16, 2)); dirtColor[3] = SWAP_UINT32(sf2d_get_pixel(icons, 16, 3)); dirtColor[4] = SWAP_UINT32(sf2d_get_pixel(icons, 16, 4)); loadSound(&snd_playerHurt, "resources/playerhurt.raw"); loadSound(&snd_playerDeath, "resources/playerdeath.raw"); loadSound(&snd_monsterHurt, "resources/monsterhurt.raw"); loadSound(&snd_test, "resources/test.raw"); loadSound(&snd_pickup, "resources/pickup.raw"); loadSound(&snd_bossdeath, "resources/bossdeath.raw"); loadSound(&snd_craft, "resources/craft.raw"); bakeLights(); int i; for (i = 0; i < 5; ++i) { minimap[i] = sf2d_create_texture(128, 128, TEXFMT_RGBA8, SF2D_PLACE_RAM); sf2d_texture_tile32(minimap[i]); } sf2d_set_vblank_wait(true); sf2d_set_clear_color(0xFF000000); k_up.input = KEY_DUP | KEY_CPAD_UP | KEY_CSTICK_UP; k_down.input = KEY_DDOWN | KEY_CPAD_DOWN | KEY_CSTICK_DOWN; k_left.input = KEY_DLEFT | KEY_CPAD_LEFT | KEY_CSTICK_LEFT; k_right.input = KEY_DRIGHT | KEY_CPAD_RIGHT | KEY_CSTICK_RIGHT; k_attack.input = KEY_A | KEY_B | KEY_L | KEY_ZR; k_menu.input = KEY_X | KEY_Y | KEY_R | KEY_ZL; k_pause.input = KEY_START; k_accept.input = KEY_A; k_decline.input = KEY_B; k_delete.input = KEY_X; k_menuNext.input = KEY_R; k_menuPrev.input = KEY_L; if ((file = fopen("btnSave.bin", "rb"))) { fread(&k_up.input, sizeof(int), 1, file); fread(&k_down.input, sizeof(int), 1, file); fread(&k_left.input, sizeof(int), 1, file); fread(&k_right.input, sizeof(int), 1, file); fread(&k_attack.input, sizeof(int), 1, file); fread(&k_menu.input, sizeof(int), 1, file); fread(&k_pause.input, sizeof(int), 1, file); fread(&k_accept.input, sizeof(int), 1, file); fread(&k_decline.input, sizeof(int), 1, file); fread(&k_delete.input, sizeof(int), 1, file); fread(&k_menuNext.input, sizeof(int), 1, file); fread(&k_menuPrev.input, sizeof(int), 1, file); fclose(file); } if ((file = fopen("lastTP.bin", "r"))) { char fnbuf[256]; fgets(fnbuf, 256, file); // get directory to texturepack loadTexturePack(fnbuf); fclose(file); } tickCount = 0; initRecipes(); defineTables(); while (aptMainLoop()) { ++tickCount; hidScanInput(); tickKeys(hidKeysHeld(), hidKeysDown()); if (quitGame) break; if (initGame > 0) setupGame(initGame == 1 ? true : false); if (currentMenu == 0) { tick(); sf2d_start_frame(GFX_TOP, GFX_LEFT); offsetX = xscr; offsetY = yscr; sf2d_draw_rectangle(0, 0, 400, 240, 0xFF0C0C0C); //RGBA8(12, 12, 12, 255)); //You might think "real" black would be better, but it actually looks better that way renderLightsToStencil(); renderBackground(xscr, yscr); renderEntities(player.x, player.y, &eManager); renderPlayer(); resetStencilStuff(); offsetX = 0; offsetY = 0; if(shouldRenderDebug){ sprintf(fpsstr, " FPS: %.0f, X:%d, Y:%d, E:%d", sf2d_get_fps(), player.x, player.y, eManager.lastSlot[currentLevel]); drawText(fpsstr, 2, 225); } sf2d_end_frame(); sf2d_start_frame(GFX_BOTTOM, GFX_LEFT); if(!shouldRenderMap){ sf2d_draw_texture(bottombg, 0, 0); renderGui(); } else { renderZoomedMap(); } sf2d_end_frame(); } else { tickMenu(currentMenu); renderMenu(currentMenu, xscr, yscr); } sf2d_swapbuffers(); } freeRecipes(); freeLightBakes(); sf2d_free_texture(icons); sf2d_free_texture(minimap[0]); sf2d_free_texture(minimap[1]); sf2d_free_texture(minimap[2]); sf2d_free_texture(minimap[3]); sf2d_free_texture(minimap[4]); freeSounds(); csndExit(); cfguExit(); sf2d_fini(); return 0; }
void Module::load() { loadTexturePack(); loadResources(); loadIFO(); loadArea(); }