Fix player being invisible upon loading into game again

When I did #567, I didn't test it. And I should have tested it, because
it made the player invisible. This is because map.resetplayer() also
sets the invis attribute of the player to true as well, and I only undid
it setting game.lifeseq to 10.

So instead, I'll just add a flag to map.resetplayer() that by default
doesn't set game.lifeseq or the player's invis attribute. And I tested
it this time, and it works fine. I tested both respawning after death
and exiting to the menu and loading in the game again.
This commit is contained in:
Misa 2020-12-28 13:16:16 -08:00 committed by Ethan Lee
parent eb7b540346
commit 385f9d244e
4 changed files with 12 additions and 27 deletions

View File

@ -470,7 +470,7 @@ void gamelogic()
game.gravitycontrol = game.savegc; game.gravitycontrol = game.savegc;
graphics.textboxremove(); graphics.textboxremove();
map.resetplayer(); map.resetplayer(true);
} }
} }
} }

View File

@ -802,6 +802,11 @@ void mapclass::showship()
} }
void mapclass::resetplayer() void mapclass::resetplayer()
{
resetplayer(false);
}
void mapclass::resetplayer(const bool player_died)
{ {
bool was_in_tower = towermode; bool was_in_tower = towermode;
if (game.roomx != game.saverx || game.roomy != game.savery) if (game.roomx != game.saverx || game.roomy != game.savery)
@ -821,8 +826,11 @@ void mapclass::resetplayer()
obj.entities[i].yp = game.savey; obj.entities[i].yp = game.savey;
obj.entities[i].dir = game.savedir; obj.entities[i].dir = game.savedir;
obj.entities[i].colour = 0; obj.entities[i].colour = 0;
game.lifeseq = 10; if (player_died)
obj.entities[i].invis = true; {
game.lifeseq = 10;
obj.entities[i].invis = true;
}
if (!game.glitchrunnermode) if (!game.glitchrunnermode)
{ {
obj.entities[i].size = 0; obj.entities[i].size = 0;

View File

@ -69,6 +69,7 @@ public:
void showship(); void showship();
void resetplayer(const bool player_died);
void resetplayer(); void resetplayer();
void warpto(int rx, int ry , int t, int tx, int ty); void warpto(int rx, int ry , int t, int tx, int ty);

View File

@ -2675,7 +2675,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
@ -2701,7 +2700,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
graphics.fademode = 4; graphics.fademode = 4;
@ -2742,7 +2740,6 @@ void scriptclass::startgamemode( int t )
map.cameramode = 0; map.cameramode = 0;
map.colsuperstate = 0; map.colsuperstate = 0;
} }
game.lifeseq = 0;
graphics.fademode = 4; graphics.fademode = 4;
break; break;
case 3: case 3:
@ -2770,7 +2767,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
graphics.fademode = 4; graphics.fademode = 4;
@ -2800,7 +2796,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
graphics.fademode = 4; graphics.fademode = 4;
@ -2830,7 +2825,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
graphics.fademode = 4; graphics.fademode = 4;
@ -2860,7 +2854,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
graphics.fademode = 4; graphics.fademode = 4;
@ -2890,7 +2883,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
graphics.fademode = 4; graphics.fademode = 4;
@ -2926,7 +2918,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
graphics.fademode = 4; graphics.fademode = 4;
@ -2952,7 +2943,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
@ -2982,7 +2972,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
@ -3019,7 +3008,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
music.play(11); music.play(11);
@ -3056,7 +3044,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
@ -3093,7 +3080,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
@ -3130,7 +3116,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
@ -3167,7 +3152,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
@ -3201,7 +3185,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
@ -3235,7 +3218,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
@ -3269,7 +3251,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
@ -3303,7 +3284,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
@ -3328,7 +3308,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
graphics.fademode = 4; graphics.fademode = 4;
@ -3365,7 +3344,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
if(ed.levmusic>0){ if(ed.levmusic>0){
@ -3404,7 +3382,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
@ -3451,7 +3428,6 @@ void scriptclass::startgamemode( int t )
{ {
map.resetplayer(); map.resetplayer();
} }
game.lifeseq = 0;
map.gotoroom(game.saverx, game.savery); map.gotoroom(game.saverx, game.savery);
map.initmapdata(); map.initmapdata();
ed.generatecustomminimap(); ed.generatecustomminimap();