Cleanup of doom.cpp (#1767)
This commit is contained in:
parent
7aad72f96d
commit
51d8b9acca
4 changed files with 27 additions and 46 deletions
|
|
@ -346,7 +346,7 @@ void CheckCursMove()
|
|||
CheckPanelInfo();
|
||||
return;
|
||||
}
|
||||
if (doomflag) {
|
||||
if (DoomFlag) {
|
||||
return;
|
||||
}
|
||||
if (invflag && MouseX > RIGHT_PANEL && MouseY <= SPANEL_HEIGHT) {
|
||||
|
|
|
|||
|
|
@ -883,7 +883,7 @@ static bool LeftMouseDown(int wParam)
|
|||
if (PauseMode == 2) {
|
||||
return false;
|
||||
}
|
||||
if (doomflag) {
|
||||
if (DoomFlag) {
|
||||
doom_close();
|
||||
return false;
|
||||
}
|
||||
|
|
@ -955,7 +955,7 @@ static void LeftMouseUp(int wParam)
|
|||
static void RightMouseDown()
|
||||
{
|
||||
if (!gmenu_is_active() && sgnTimeoutCurs == CURSOR_NONE && PauseMode != 2 && !plr[myplr]._pInvincible) {
|
||||
if (doomflag) {
|
||||
if (DoomFlag) {
|
||||
doom_close();
|
||||
} else if (stextflag == STORE_NONE) {
|
||||
if (spselflag) {
|
||||
|
|
@ -1033,7 +1033,7 @@ bool PressEscKey()
|
|||
{
|
||||
bool rv = false;
|
||||
|
||||
if (doomflag) {
|
||||
if (DoomFlag) {
|
||||
doom_close();
|
||||
rv = true;
|
||||
}
|
||||
|
|
@ -1298,7 +1298,7 @@ static void PressChar(int32_t vkey)
|
|||
if (PauseMode == 2) {
|
||||
return;
|
||||
}
|
||||
if (doomflag) {
|
||||
if (DoomFlag) {
|
||||
doom_close();
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,29 +9,26 @@
|
|||
|
||||
namespace devilution {
|
||||
|
||||
int doom_quest_time;
|
||||
int doom_stars_drawn;
|
||||
BYTE *pDoomCel;
|
||||
bool doomflag;
|
||||
int DoomQuestTime;
|
||||
std::unique_ptr<uint8_t[]> DoomCel;
|
||||
bool DoomFlag;
|
||||
int DoomQuestState;
|
||||
|
||||
/*
|
||||
void doom_reset_state()
|
||||
{
|
||||
if (DoomQuestState <= 0) {
|
||||
DoomQuestState = 0;
|
||||
}
|
||||
DoomQuestState = std::max(DoomQuestState, 0);
|
||||
}
|
||||
|
||||
void doom_play_movie()
|
||||
{
|
||||
if (DoomQuestState < 36001) {
|
||||
if (DoomQuestState >= 36001)
|
||||
return;
|
||||
DoomQuestState++;
|
||||
if (DoomQuestState == 36001) {
|
||||
PlayInGameMovie("gendata\\doom.smk");
|
||||
DoomQuestState++;
|
||||
}
|
||||
}
|
||||
if (DoomQuestState == 36001) {
|
||||
PlayInGameMovie("gendata\\doom.smk");
|
||||
DoomQuestState++;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
|
|
@ -44,57 +41,41 @@ int doom_get_frame_from_time()
|
|||
return DoomQuestState / 1200;
|
||||
}
|
||||
|
||||
void doom_cleanup()
|
||||
{
|
||||
if (pDoomCel != nullptr) {
|
||||
MemFreeDbg(pDoomCel);
|
||||
pDoomCel = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
static bool doom_alloc_cel()
|
||||
{
|
||||
doom_cleanup();
|
||||
pDoomCel = DiabloAllocPtr(0x39000);
|
||||
return pDoomCel != nullptr;
|
||||
}
|
||||
|
||||
static bool doom_load_graphics()
|
||||
{
|
||||
bool ret;
|
||||
|
||||
ret = false;
|
||||
strcpy(tempstr, "Items\\Map\\MapZtown.CEL");
|
||||
if (LoadFileWithMem(tempstr, pDoomCel) != 0)
|
||||
if (LoadFileWithMem(tempstr, DoomCel.get()) != 0)
|
||||
ret = true;
|
||||
return ret;
|
||||
}
|
||||
|
||||
void doom_init()
|
||||
{
|
||||
if (doom_alloc_cel()) {
|
||||
doom_quest_time = doom_get_frame_from_time() == 31 ? 31 : 0;
|
||||
if (doom_load_graphics()) {
|
||||
doomflag = true;
|
||||
} else {
|
||||
doom_close();
|
||||
}
|
||||
DoomCel = std::make_unique<uint8_t[]>(0x39000);
|
||||
DoomQuestTime = doom_get_frame_from_time() == 31 ? 31 : 0;
|
||||
if (doom_load_graphics()) {
|
||||
DoomFlag = true;
|
||||
} else {
|
||||
doom_close();
|
||||
}
|
||||
}
|
||||
|
||||
void doom_close()
|
||||
{
|
||||
doomflag = false;
|
||||
doom_cleanup();
|
||||
DoomFlag = false;
|
||||
DoomCel = nullptr;
|
||||
}
|
||||
|
||||
void doom_draw(const CelOutputBuffer &out)
|
||||
{
|
||||
if (!doomflag) {
|
||||
if (!DoomFlag) {
|
||||
return;
|
||||
}
|
||||
|
||||
CelDrawTo(out, PANEL_X, PANEL_Y - 1, pDoomCel, 1, 640);
|
||||
CelDrawTo(out, PANEL_X, PANEL_Y - 1, DoomCel.get(), 1, 640);
|
||||
}
|
||||
|
||||
} // namespace devilution
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
namespace devilution {
|
||||
|
||||
extern bool doomflag;
|
||||
extern bool DoomFlag;
|
||||
extern int DoomQuestState;
|
||||
|
||||
int doom_get_frame_from_time();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue