This commit is contained in:
mothbeanie 2024-02-16 13:10:33 +09:00 committed by GitHub
commit eb94a003bd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 50 additions and 5 deletions

View File

@ -5887,6 +5887,10 @@ void Game::customloadquick(const std::string& savfile)
{ {
map.customshowmm = help.Int(pText); map.customshowmm = help.Int(pText);
} }
else if (SDL_strcmp(pKey, "mapreveal") == 0)
{
map.revealmap = help.Int(pText);
}
else if (SDL_strcmp(pKey, "disabletemporaryaudiopause") == 0) else if (SDL_strcmp(pKey, "disabletemporaryaudiopause") == 0)
{ {
disabletemporaryaudiopause = help.Int(pText); disabletemporaryaudiopause = help.Int(pText);
@ -6326,6 +6330,8 @@ bool Game::customsavequick(const std::string& savfile)
xml::update_tag(msgs, "showminimap", (int) map.customshowmm); xml::update_tag(msgs, "showminimap", (int) map.customshowmm);
xml::update_tag(msgs, "mapreveal", (int) map.revealmap);
xml::update_tag(msgs, "disabletemporaryaudiopause", (int) disabletemporaryaudiopause); xml::update_tag(msgs, "disabletemporaryaudiopause", (int) disabletemporaryaudiopause);
xml::update_tag(msgs, "showtrinkets", (int) map.showtrinkets); xml::update_tag(msgs, "showtrinkets", (int) map.showtrinkets);

View File

@ -55,6 +55,7 @@ mapclass::mapclass(void)
custommmxoff=0; custommmyoff=0; custommmxsize=0; custommmysize=0; custommmxoff=0; custommmyoff=0; custommmxsize=0; custommmysize=0;
customzoom=0; customzoom=0;
customshowmm=true; customshowmm=true;
revealmap = true;
rcol = 0; rcol = 0;
@ -198,6 +199,12 @@ void mapclass::resetmap(void)
SDL_memset(explored, 0, sizeof(explored)); SDL_memset(explored, 0, sizeof(explored));
} }
void mapclass::fullmap(void)
{
//mark the whole map as explored
SDL_memset(explored, 1, sizeof(explored));
}
void mapclass::updateroomnames(void) void mapclass::updateroomnames(void)
{ {
if (roomnameset) if (roomnameset)
@ -1304,12 +1311,15 @@ static void copy_short_to_int(int* dest, const short* src, const size_t size)
void mapclass::loadlevel(int rx, int ry) void mapclass::loadlevel(int rx, int ry)
{ {
int t; int t;
if (!finalmode) if (revealmap)
{ {
setexplored(rx - 100, ry - 100, true); if (!finalmode)
if (rx == 109 && !custommode)
{ {
exploretower(); setexplored(rx - 100, ry - 100, true);
if (rx == 109 && !custommode)
{
exploretower();
}
} }
} }

View File

@ -58,6 +58,8 @@ public:
void resetmap(void); void resetmap(void);
void fullmap(void);
void updateroomnames(void); void updateroomnames(void);
void initmapdata(void); void initmapdata(void);
@ -125,6 +127,8 @@ public:
bool isexplored(const int rx, const int ry); bool isexplored(const int rx, const int ry);
void setexplored(const int rx, const int ry, const bool status); void setexplored(const int rx, const int ry, const bool status);
bool revealmap;
int background; int background;
int rcol; int rcol;
int tileset; int tileset;

View File

@ -1328,6 +1328,28 @@ void scriptclass::run(void)
map.setexplored(19, 7, false); map.setexplored(19, 7, false);
map.setexplored(19, 8, false); map.setexplored(19, 8, false);
} }
else if (words[0] == "mapexplored")
{
if (words[1] == "none")
{
map.resetmap();
}
else if (words[1] == "all")
{
map.fullmap();
}
}
else if (words[0] == "mapreveal")
{
if (words[1] == "on")
{
map.revealmap = true;
}
else if (words[1] == "off")
{
map.revealmap = false;
}
}
else if (words[0] == "showteleporters") else if (words[0] == "showteleporters")
{ {
map.showteleporters = true; map.showteleporters = true;
@ -2818,6 +2840,7 @@ void scriptclass::startgamemode(const enum StartMode mode)
map.custommode = true; map.custommode = true;
map.custommodeforreal = false; map.custommodeforreal = false;
map.customshowmm = true; map.customshowmm = true;
map.revealmap = true;
if (cl.levmusic > 0) if (cl.levmusic > 0)
{ {
@ -2844,6 +2867,7 @@ void scriptclass::startgamemode(const enum StartMode mode)
cl.findstartpoint(); cl.findstartpoint();
map.customshowmm = true; map.customshowmm = true;
map.revealmap = true;
music.fadeout(); music.fadeout();
game.customstart(); game.customstart();
@ -3215,7 +3239,8 @@ void scriptclass::hardreset(void)
map.cameraseekframe = 0; map.cameraseekframe = 0;
map.resumedelay = 0; map.resumedelay = 0;
graphics.towerbg.scrolldir = 0; graphics.towerbg.scrolldir = 0;
map.customshowmm=true; map.customshowmm = true;
map.revealmap = true;
SDL_memset(map.roomdeaths, 0, sizeof(map.roomdeaths)); SDL_memset(map.roomdeaths, 0, sizeof(map.roomdeaths));
SDL_memset(map.roomdeathsfinal, 0, sizeof(map.roomdeathsfinal)); SDL_memset(map.roomdeathsfinal, 0, sizeof(map.roomdeathsfinal));