diff --git a/src/ROGUE_V11.idb b/src/ROGUE_V11.idb index d1ba23a1..6a1698f3 100644 Binary files a/src/ROGUE_V11.idb and b/src/ROGUE_V11.idb differ diff --git a/src/RogueVersions/Rogue_PC_1_48/curses_output.cpp b/src/RogueVersions/Rogue_PC_1_48/curses_output.cpp index 260515b8..0076ea36 100644 --- a/src/RogueVersions/Rogue_PC_1_48/curses_output.cpp +++ b/src/RogueVersions/Rogue_PC_1_48/curses_output.cpp @@ -129,7 +129,7 @@ struct PdCursesOutput : public OutputInterface virtual void raise_curtain(); virtual void move(short y, short x); - virtual char curch(); + virtual unsigned char curch(); virtual int lines() const; virtual int columns() const; @@ -580,9 +580,9 @@ void PdCursesOutput::move(short y, short x) Render(); } -char PdCursesOutput::curch() +unsigned char PdCursesOutput::curch() { - return (char)::inch(); + return ::inch() & 0xff; } int PdCursesOutput::add_text(unsigned char c) diff --git a/src/RogueVersions/Rogue_PC_Core/level.cpp b/src/RogueVersions/Rogue_PC_Core/level.cpp index d7061325..711ec18b 100644 --- a/src/RogueVersions/Rogue_PC_Core/level.cpp +++ b/src/RogueVersions/Rogue_PC_Core/level.cpp @@ -204,7 +204,8 @@ void Level::show_map(bool reveal_interior) if (!reveal_interior && ch == DOOR) { game->screen().move(y, x); - if (game->screen().curch() != DOOR) + auto church = game->screen().curch(); + if (church != DOOR) game->screen().standout(); } if (ch != ' ') diff --git a/src/RogueVersions/Rogue_PC_Core/output_interface.h b/src/RogueVersions/Rogue_PC_Core/output_interface.h index 860e24c5..d13dc75a 100644 --- a/src/RogueVersions/Rogue_PC_Core/output_interface.h +++ b/src/RogueVersions/Rogue_PC_Core/output_interface.h @@ -55,7 +55,7 @@ struct OutputInterface virtual void raise_curtain() = 0; virtual void move(short y, short x) = 0; - virtual char curch() = 0; + virtual unsigned char curch() = 0; virtual int lines() const = 0; virtual int columns() const = 0; diff --git a/src/RogueVersions/Rogue_PC_Core/output_shim.h b/src/RogueVersions/Rogue_PC_Core/output_shim.h index 03aa93cc..5ef55501 100644 --- a/src/RogueVersions/Rogue_PC_Core/output_shim.h +++ b/src/RogueVersions/Rogue_PC_Core/output_shim.h @@ -70,7 +70,7 @@ struct OutputShim void move(short y, short x); - char curch(); + unsigned char curch(); int lines() const; int columns() const; diff --git a/src/RogueVersions/Rogue_PC_Core/screen_output.cpp b/src/RogueVersions/Rogue_PC_Core/screen_output.cpp index b4ec71fa..ca480be2 100644 --- a/src/RogueVersions/Rogue_PC_Core/screen_output.cpp +++ b/src/RogueVersions/Rogue_PC_Core/screen_output.cpp @@ -132,7 +132,7 @@ struct ScreenOutput : public OutputInterface virtual void raise_curtain(); virtual void move(short y, short x); - virtual char curch(); + virtual unsigned char curch(); virtual int lines() const; virtual int columns() const; @@ -567,7 +567,7 @@ void ScreenOutput::move(short y, short x) ApplyMove(); } -char ScreenOutput::curch() +unsigned char ScreenOutput::curch() { return m_data.buffer[m_row*COLS+m_col] && 0xff; } @@ -761,7 +761,7 @@ void OutputShim::move(short y, short x) m_output_interface->move(y, x); } -char OutputShim::curch() +unsigned char OutputShim::curch() { return m_output_interface->curch(); }