/** * @file doom.cpp * * Implementation of the map of the stars quest. */ #include "doom.h" #include "control.h" namespace devilution { int DoomQuestTime; std::unique_ptr DoomCel; bool DoomFlag; int DoomQuestState; /* void doom_reset_state() { DoomQuestState = std::max(DoomQuestState, 0); } void doom_play_movie() { if (DoomQuestState >= 36001) return; DoomQuestState++; if (DoomQuestState == 36001) { PlayInGameMovie("gendata\\doom.smk"); DoomQuestState++; } } */ int doom_get_frame_from_time() { if (DoomQuestState == 36001) { return 31; } return DoomQuestState / 1200; } static bool doom_load_graphics() { bool ret; ret = false; strcpy(tempstr, "Items\\Map\\MapZtown.CEL"); if (LoadFileWithMem(tempstr, DoomCel.get()) != 0) ret = true; return ret; } void doom_init() { DoomCel = std::make_unique(0x39000); DoomQuestTime = doom_get_frame_from_time() == 31 ? 31 : 0; if (doom_load_graphics()) { DoomFlag = true; } else { doom_close(); } } void doom_close() { DoomFlag = false; DoomCel = nullptr; } void doom_draw(const CelOutputBuffer &out) { if (!DoomFlag) { return; } CelDrawTo(out, PANEL_X, PANEL_Y - 1, DoomCel.get(), 1, 640); } } // namespace devilution