1
0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-06-28 23:48:30 +02:00

Also lock statedelay

This commit is contained in:
AllyTally 2022-12-06 19:35:06 -04:00 committed by Misa Elizabeth Kai
parent 4b66920865
commit 86604c5748
6 changed files with 127 additions and 122 deletions

View File

@ -3337,7 +3337,7 @@ bool entityclass::updateentities( int i )
if(!game.intimetrial && !game.nodeathmode) if(!game.intimetrial && !game.nodeathmode)
{ {
game.setstate(2000); game.setstate(2000);
game.statedelay = 0; game.setstatedelay(0);
} }
game.activetele = true; game.activetele = true;
@ -4750,7 +4750,7 @@ void entityclass::entitycollisioncheck(void)
{ {
game.state = activetrigger; game.state = activetrigger;
} }
game.statedelay = 0; game.setstatedelay(0);
} }
} }

View File

@ -336,7 +336,7 @@ void Game::init(void)
stat_trinkets = 0; stat_trinkets = 0;
state = 1; state = 1;
statedelay = 0; setstatedelay(0);
statelocked = false; statelocked = false;
//updatestate(); //updatestate();
@ -370,6 +370,7 @@ void Game::init(void)
disableaudiopause = false; disableaudiopause = false;
disabletemporaryaudiopause = true; disabletemporaryaudiopause = true;
inputdelay = false; inputdelay = false;
} }
void Game::lifesequence(void) void Game::lifesequence(void)
@ -741,6 +742,14 @@ void Game::incstate()
} }
} }
void Game::setstatedelay(int delay)
{
if (!statelocked)
{
statedelay = delay;
}
}
void Game::lockstate() void Game::lockstate()
{ {
statelocked = true; statelocked = true;
@ -754,8 +763,8 @@ void Game::unlockstate()
void Game::updatestate(void) void Game::updatestate(void)
{ {
statedelay--; statedelay--;
if(statedelay<=0){ if(statedelay <= 0){
statedelay=0; statedelay = 0;
glitchrunkludge=false; glitchrunkludge=false;
} }
if (statedelay <= 0) if (statedelay <= 0)
@ -1062,9 +1071,8 @@ void Game::updatestate(void)
setstate(0); setstate(0);
break; break;
case 31: case 31:
//state = 55; statedelay = 50; //state = 55; setstatedelay(50);
setstate(0); setstate(0, 0);
statedelay = 0;
if (!obj.flags[6]) if (!obj.flags[6])
{ {
obj.flags[6] = true; obj.flags[6] = true;
@ -1072,8 +1080,7 @@ void Game::updatestate(void)
obj.flags[5] = true; obj.flags[5] = true;
startscript = true; startscript = true;
newscript="communicationstation"; newscript="communicationstation";
setstate(0); setstate(0, 0);
statedelay = 0;
} }
obj.removetrigger(31); obj.removetrigger(31);
break; break;
@ -1388,7 +1395,7 @@ void Game::updatestate(void)
graphics.addline("this message?"); graphics.addline("this message?");
graphics.textboxtimer(60); graphics.textboxtimer(60);
incstate(); incstate();
statedelay = 100; setstatedelay(100);
break; break;
case 51: case 51:
music.playef(15); music.playef(15);
@ -1396,7 +1403,7 @@ void Game::updatestate(void)
graphics.addline("there? Are you ok?"); graphics.addline("there? Are you ok?");
graphics.textboxtimer(60); graphics.textboxtimer(60);
incstate(); incstate();
statedelay = 100; setstatedelay(100);
break; break;
case 52: case 52:
music.playef(15); music.playef(15);
@ -1404,14 +1411,14 @@ void Game::updatestate(void)
graphics.addline("and need assistance!"); graphics.addline("and need assistance!");
graphics.textboxtimer(60); graphics.textboxtimer(60);
incstate(); incstate();
statedelay = 100; setstatedelay(100);
break; break;
case 53: case 53:
music.playef(15); music.playef(15);
graphics.createtextbox("Hello? Anyone out there?", 40, 15, 255, 134, 255); graphics.createtextbox("Hello? Anyone out there?", 40, 15, 255, 134, 255);
graphics.textboxtimer(60); graphics.textboxtimer(60);
incstate(); incstate();
statedelay = 100; setstatedelay(100);
break; break;
case 54: case 54:
music.playef(15); music.playef(15);
@ -1419,21 +1426,21 @@ void Game::updatestate(void)
graphics.addline("D.S.S. Souleye! Please respond!"); graphics.addline("D.S.S. Souleye! Please respond!");
graphics.textboxtimer(60); graphics.textboxtimer(60);
incstate(); incstate();
statedelay = 100; setstatedelay(100);
break; break;
case 55: case 55:
music.playef(15); music.playef(15);
graphics.createtextbox("Please... Anyone...", 45, 14, 255, 134, 255); graphics.createtextbox("Please... Anyone...", 45, 14, 255, 134, 255);
graphics.textboxtimer(60); graphics.textboxtimer(60);
incstate(); incstate();
statedelay = 100; setstatedelay(100);
break; break;
case 56: case 56:
music.playef(15); music.playef(15);
graphics.createtextbox("Please be alright, everyone...", 25, 18, 255, 134, 255); graphics.createtextbox("Please be alright, everyone...", 25, 18, 255, 134, 255);
graphics.textboxtimer(60); graphics.textboxtimer(60);
setstate(50); setstate(50);
statedelay = 100; setstatedelay(100);
break; break;
@ -1880,7 +1887,7 @@ void Game::updatestate(void)
hascontrol = false; hascontrol = false;
completestop = true; completestop = true;
incstate(); incstate();
statedelay = 15; setstatedelay(15);
break; break;
case 1001: case 1001:
//Found a trinket! //Found a trinket!
@ -1929,7 +1936,7 @@ void Game::updatestate(void)
hascontrol = false; hascontrol = false;
completestop = true; completestop = true;
incstate(); incstate();
statedelay = 15; setstatedelay(15);
break; break;
#if !defined(NO_CUSTOM_LEVELS) #if !defined(NO_CUSTOM_LEVELS)
case 1011: case 1011:
@ -2037,7 +2044,7 @@ void Game::updatestate(void)
music.play(5); music.play(5);
//Activating a teleporter (appear) //Activating a teleporter (appear)
incstate(); incstate();
statedelay = 15; setstatedelay(15);
flashlight = 5; flashlight = 5;
screenshake = 90; screenshake = 90;
music.playef(9); music.playef(9);
@ -2045,7 +2052,7 @@ void Game::updatestate(void)
case 2501: case 2501:
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 0; setstatedelay(0);
flashlight = 5; flashlight = 5;
screenshake = 0; screenshake = 0;
//we're done here! //we're done here!
@ -2055,7 +2062,7 @@ void Game::updatestate(void)
{ {
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 5; setstatedelay(5);
int i = obj.getplayer(); int i = obj.getplayer();
if (INBOUNDS_VEC(i, obj.entities)) if (INBOUNDS_VEC(i, obj.entities))
@ -2143,7 +2150,7 @@ void Game::updatestate(void)
case 2509: case 2509:
{ {
incstate(); incstate();
statedelay = 15; setstatedelay(15);
int i = obj.getplayer(); int i = obj.getplayer();
if (INBOUNDS_VEC(i, obj.entities)) if (INBOUNDS_VEC(i, obj.entities))
{ {
@ -2180,7 +2187,7 @@ void Game::updatestate(void)
case 3000: case 3000:
//Activating a teleporter (long version for level complete) //Activating a teleporter (long version for level complete)
incstate(); incstate();
statedelay = 30; setstatedelay(30);
flashlight = 5; flashlight = 5;
screenshake = 90; screenshake = 90;
music.playef(9); music.playef(9);
@ -2188,28 +2195,28 @@ void Game::updatestate(void)
case 3001: case 3001:
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 15; setstatedelay(15);
flashlight = 5; flashlight = 5;
music.playef(9); music.playef(9);
break; break;
case 3002: case 3002:
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 15; setstatedelay(15);
flashlight = 5; flashlight = 5;
music.playef(9); music.playef(9);
break; break;
case 3003: case 3003:
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 15; setstatedelay(15);
flashlight = 5; flashlight = 5;
music.playef(9); music.playef(9);
break; break;
case 3004: case 3004:
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 0; setstatedelay(0);
flashlight = 5; flashlight = 5;
screenshake = 0; screenshake = 0;
//we're done here! //we're done here!
@ -2219,7 +2226,7 @@ void Game::updatestate(void)
{ {
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 50; setstatedelay(50);
switch(companion) switch(companion)
{ {
case 6: case 6:
@ -2270,25 +2277,25 @@ void Game::updatestate(void)
lastsaved = 4; lastsaved = 4;
music.play(0); music.play(0);
incstate(); incstate();
statedelay = 75; setstatedelay(75);
levelcomplete_textbox(); levelcomplete_textbox();
break; break;
case 3007: case 3007:
incstate(); incstate();
statedelay = 45; setstatedelay(45);
crewmate_textbox(175, 174, 174); crewmate_textbox(175, 174, 174);
break; break;
case 3008: case 3008:
incstate(); incstate();
statedelay = 45; setstatedelay(45);
remaining_textbox(); remaining_textbox();
break; break;
case 3009: case 3009:
incstate(); incstate();
statedelay = 0; setstatedelay(0);
actionprompt_textbox(); actionprompt_textbox();
break; break;
@ -2296,13 +2303,12 @@ void Game::updatestate(void)
if (jumppressed) if (jumppressed)
{ {
incstate(); incstate();
statedelay = 30; setstatedelay(30);
graphics.textboxremove(); graphics.textboxremove();
} }
break; break;
case 3011: case 3011:
setstate(3070); setstate(3070, 0);
statedelay = 0;
break; break;
case 3020: case 3020:
@ -2311,26 +2317,26 @@ void Game::updatestate(void)
lastsaved = 2; lastsaved = 2;
music.play(0); music.play(0);
incstate(); incstate();
statedelay = 75; setstatedelay(75);
levelcomplete_textbox(); levelcomplete_textbox();
break; break;
case 3021: case 3021:
incstate(); incstate();
statedelay = 45; setstatedelay(45);
crewmate_textbox(174, 175, 174); crewmate_textbox(174, 175, 174);
break; break;
case 3022: case 3022:
incstate(); incstate();
statedelay = 45; setstatedelay(45);
remaining_textbox(); remaining_textbox();
break; break;
case 3023: case 3023:
incstate(); incstate();
statedelay = 0; setstatedelay(0);
actionprompt_textbox(); actionprompt_textbox();
break; break;
@ -2338,13 +2344,12 @@ void Game::updatestate(void)
if (jumppressed) if (jumppressed)
{ {
incstate(); incstate();
statedelay = 30; setstatedelay(30);
graphics.textboxremove(); graphics.textboxremove();
} }
break; break;
case 3025: case 3025:
setstate(3070); setstate(3070, 0);
statedelay = 0;
break; break;
case 3040: case 3040:
@ -2353,25 +2358,25 @@ void Game::updatestate(void)
lastsaved = 5; lastsaved = 5;
music.play(0); music.play(0);
incstate(); incstate();
statedelay = 75; setstatedelay(75);
levelcomplete_textbox(); levelcomplete_textbox();
break; break;
case 3041: case 3041:
incstate(); incstate();
statedelay = 45; setstatedelay(45);
crewmate_textbox(174, 174, 175); crewmate_textbox(174, 174, 175);
break; break;
case 3042: case 3042:
incstate(); incstate();
statedelay = 45; setstatedelay(45);
remaining_textbox(); remaining_textbox();
break; break;
case 3043: case 3043:
incstate(); incstate();
statedelay = 0; setstatedelay(0);
actionprompt_textbox(); actionprompt_textbox();
break; break;
@ -2379,13 +2384,12 @@ void Game::updatestate(void)
if (jumppressed) if (jumppressed)
{ {
incstate(); incstate();
statedelay = 30; setstatedelay(30);
graphics.textboxremove(); graphics.textboxremove();
} }
break; break;
case 3045: case 3045:
setstate(3070); setstate(3070, 0);
statedelay = 0;
break; break;
case 3050: case 3050:
@ -2394,26 +2398,26 @@ void Game::updatestate(void)
lastsaved = 1; lastsaved = 1;
music.play(0); music.play(0);
incstate(); incstate();
statedelay = 75; setstatedelay(75);
levelcomplete_textbox(); levelcomplete_textbox();
break; break;
case 3051: case 3051:
incstate(); incstate();
statedelay = 45; setstatedelay(45);
crewmate_textbox(175, 175, 174); crewmate_textbox(175, 175, 174);
break; break;
case 3052: case 3052:
incstate(); incstate();
statedelay = 45; setstatedelay(45);
remaining_textbox(); remaining_textbox();
break; break;
case 3053: case 3053:
incstate(); incstate();
statedelay = 0; setstatedelay(0);
actionprompt_textbox(); actionprompt_textbox();
break; break;
@ -2421,7 +2425,7 @@ void Game::updatestate(void)
if (jumppressed) if (jumppressed)
{ {
incstate(); incstate();
statedelay = 30; setstatedelay(30);
graphics.textboxremove(); graphics.textboxremove();
teleportscript = ""; teleportscript = "";
} }
@ -2429,7 +2433,7 @@ void Game::updatestate(void)
case 3055: case 3055:
graphics.fademode = FADE_START_FADEOUT; graphics.fademode = FADE_START_FADEOUT;
incstate(); incstate();
statedelay = 10; setstatedelay(10);
break; break;
case 3056: case 3056:
if (graphics.fademode == FADE_FULLY_BLACK) if (graphics.fademode == FADE_FULLY_BLACK)
@ -2461,25 +2465,25 @@ void Game::updatestate(void)
lastsaved = 3; lastsaved = 3;
music.play(0); music.play(0);
incstate(); incstate();
statedelay = 75; setstatedelay(75);
levelcomplete_textbox(); levelcomplete_textbox();
break; break;
case 3061: case 3061:
incstate(); incstate();
statedelay = 45; setstatedelay(45);
crewmate_textbox(175, 174, 175); crewmate_textbox(175, 174, 175);
break; break;
case 3062: case 3062:
incstate(); incstate();
statedelay = 45; setstatedelay(45);
remaining_textbox(); remaining_textbox();
break; break;
case 3063: case 3063:
incstate(); incstate();
statedelay = 0; setstatedelay(0);
actionprompt_textbox(); actionprompt_textbox();
break; break;
@ -2487,13 +2491,12 @@ void Game::updatestate(void)
if (jumppressed) if (jumppressed)
{ {
incstate(); incstate();
statedelay = 30; setstatedelay(30);
graphics.textboxremove(); graphics.textboxremove();
} }
break; break;
case 3065: case 3065:
setstate(3070); setstate(3070, 0);
statedelay = 0;
break; break;
@ -2654,7 +2657,7 @@ void Game::updatestate(void)
case 3500: case 3500:
music.fadeout(); music.fadeout();
incstate(); incstate();
statedelay = 120; setstatedelay(120);
break; break;
case 3501: case 3501:
//Game complete! //Game complete!
@ -2662,7 +2665,7 @@ void Game::updatestate(void)
unlocknum(5); unlocknum(5);
crewstats[0] = true; crewstats[0] = true;
incstate(); incstate();
statedelay = 75; setstatedelay(75);
music.play(7); music.play(7);
graphics.createtextboxflipme("", -1, 12, 164, 165, 255); graphics.createtextboxflipme("", -1, 12, 164, 165, 255);
@ -2685,7 +2688,7 @@ void Game::updatestate(void)
case 3503: case 3503:
{ {
incstate(); incstate();
statedelay = 45; setstatedelay(45);
std::string tempstring = help.number_words(trinkets()); std::string tempstring = help.number_words(trinkets());
graphics.createtextboxflipme("Trinkets Found:", 48, 84, 0,0,0); graphics.createtextboxflipme("Trinkets Found:", 48, 84, 0,0,0);
@ -2704,7 +2707,7 @@ void Game::updatestate(void)
} }
case 3505: case 3505:
incstate(); incstate();
statedelay = 45; setstatedelay(45);
graphics.createtextboxflipme(" Total Flips:", 64, 123, 0,0,0); graphics.createtextboxflipme(" Total Flips:", 64, 123, 0,0,0);
graphics.createtextboxflipme(help.String(totalflips), 180, 123, 0, 0, 0); graphics.createtextboxflipme(help.String(totalflips), 180, 123, 0, 0, 0);
@ -2728,7 +2731,7 @@ void Game::updatestate(void)
} }
case 3508: case 3508:
incstate(); incstate();
statedelay = 0; setstatedelay(0);
actionprompt_textbox(); actionprompt_textbox();
break; break;
@ -2736,7 +2739,7 @@ void Game::updatestate(void)
if (jumppressed) if (jumppressed)
{ {
incstate(); incstate();
statedelay = 30; setstatedelay(30);
graphics.textboxremove(); graphics.textboxremove();
} }
break; break;
@ -2787,12 +2790,11 @@ void Game::updatestate(void)
{ {
unlockAchievement("vvvvvvmaster"); //bloody hell unlockAchievement("vvvvvvmaster"); //bloody hell
unlocknum(20); unlocknum(20);
setstate(3520); setstate(3520, 0);
statedelay = 0;
} }
else else
{ {
statedelay = 120; setstatedelay(120);
incstate(); incstate();
} }
break; break;
@ -2806,7 +2808,7 @@ void Game::updatestate(void)
} }
incstate(); incstate();
statedelay = 30; setstatedelay(30);
flashlight = 5; flashlight = 5;
screenshake = 90; screenshake = 90;
music.playef(9); music.playef(9);
@ -2815,21 +2817,21 @@ void Game::updatestate(void)
case 3512: case 3512:
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 15; setstatedelay(15);
flashlight = 5; flashlight = 5;
music.playef(9); music.playef(9);
break; break;
case 3513: case 3513:
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 15; setstatedelay(15);
flashlight = 5; flashlight = 5;
music.playef(9); music.playef(9);
break; break;
case 3514: case 3514:
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 15; setstatedelay(15);
flashlight = 5; flashlight = 5;
music.playef(9); music.playef(9);
break; break;
@ -2837,7 +2839,7 @@ void Game::updatestate(void)
{ {
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 0; setstatedelay(0);
flashlight = 5; flashlight = 5;
screenshake = 0; screenshake = 0;
@ -2850,7 +2852,7 @@ void Game::updatestate(void)
//we're done here! //we're done here!
music.playef(10); music.playef(10);
statedelay = 60; setstatedelay(60);
break; break;
} }
case 3516: case 3516:
@ -2861,13 +2863,13 @@ void Game::updatestate(void)
if (graphics.fademode == FADE_FULLY_BLACK) if (graphics.fademode == FADE_FULLY_BLACK)
{ {
incstate(); incstate();
statedelay = 30; setstatedelay(30);
} }
break; break;
case 3518: case 3518:
graphics.fademode = FADE_START_FADEIN; graphics.fademode = FADE_START_FADEIN;
setstate(0); setstate(0);
statedelay = 30; setstatedelay(30);
map.finalmode = false; map.finalmode = false;
map.final_colormode = false; map.final_colormode = false;
@ -2950,7 +2952,7 @@ void Game::updatestate(void)
case 4010: case 4010:
//Activating a teleporter (default appear) //Activating a teleporter (default appear)
incstate(); incstate();
statedelay = 15; setstatedelay(15);
flashlight = 5; flashlight = 5;
screenshake = 90; screenshake = 90;
music.playef(9); music.playef(9);
@ -2958,7 +2960,7 @@ void Game::updatestate(void)
case 4011: case 4011:
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 0; setstatedelay(0);
flashlight = 5; flashlight = 5;
screenshake = 0; screenshake = 0;
music.playef(10); music.playef(10);
@ -2967,7 +2969,7 @@ void Game::updatestate(void)
{ {
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 5; setstatedelay(5);
int i = obj.getplayer(); int i = obj.getplayer();
int j = obj.getteleporter(); int j = obj.getteleporter();
@ -3046,7 +3048,7 @@ void Game::updatestate(void)
case 4018: case 4018:
{ {
incstate(); incstate();
statedelay = 15; setstatedelay(15);
int i = obj.getplayer(); int i = obj.getplayer();
if (INBOUNDS_VEC(i, obj.entities)) if (INBOUNDS_VEC(i, obj.entities))
{ {
@ -3081,7 +3083,7 @@ void Game::updatestate(void)
case 4020: case 4020:
//Activating a teleporter (default appear) //Activating a teleporter (default appear)
incstate(); incstate();
statedelay = 15; setstatedelay(15);
flashlight = 5; flashlight = 5;
screenshake = 90; screenshake = 90;
music.playef(9); music.playef(9);
@ -3089,7 +3091,7 @@ void Game::updatestate(void)
case 4021: case 4021:
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 0; setstatedelay(0);
flashlight = 5; flashlight = 5;
screenshake = 0; screenshake = 0;
music.playef(10); music.playef(10);
@ -3098,7 +3100,7 @@ void Game::updatestate(void)
{ {
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 5; setstatedelay(5);
int i = obj.getplayer(); int i = obj.getplayer();
int j = obj.getteleporter(); int j = obj.getteleporter();
@ -3177,7 +3179,7 @@ void Game::updatestate(void)
case 4028: case 4028:
{ {
incstate(); incstate();
statedelay = 15; setstatedelay(15);
int i = obj.getplayer(); int i = obj.getplayer();
if (INBOUNDS_VEC(i, obj.entities)) if (INBOUNDS_VEC(i, obj.entities))
{ {
@ -3194,7 +3196,7 @@ void Game::updatestate(void)
case 4030: case 4030:
//Activating a teleporter (default appear) //Activating a teleporter (default appear)
incstate(); incstate();
statedelay = 15; setstatedelay(15);
flashlight = 5; flashlight = 5;
screenshake = 90; screenshake = 90;
music.playef(9); music.playef(9);
@ -3202,7 +3204,7 @@ void Game::updatestate(void)
case 4031: case 4031:
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 0; setstatedelay(0);
flashlight = 5; flashlight = 5;
screenshake = 0; screenshake = 0;
music.playef(10); music.playef(10);
@ -3211,7 +3213,7 @@ void Game::updatestate(void)
{ {
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 5; setstatedelay(5);
int i = obj.getplayer(); int i = obj.getplayer();
int j = obj.getteleporter(); int j = obj.getteleporter();
@ -3290,7 +3292,7 @@ void Game::updatestate(void)
case 4038: case 4038:
{ {
incstate(); incstate();
statedelay = 15; setstatedelay(15);
int i = obj.getplayer(); int i = obj.getplayer();
if (INBOUNDS_VEC(i, obj.entities)) if (INBOUNDS_VEC(i, obj.entities))
{ {
@ -3307,7 +3309,7 @@ void Game::updatestate(void)
case 4040: case 4040:
//Activating a teleporter (default appear) //Activating a teleporter (default appear)
incstate(); incstate();
statedelay = 15; setstatedelay(15);
flashlight = 5; flashlight = 5;
screenshake = 90; screenshake = 90;
music.playef(9); music.playef(9);
@ -3315,7 +3317,7 @@ void Game::updatestate(void)
case 4041: case 4041:
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 0; setstatedelay(0);
flashlight = 5; flashlight = 5;
screenshake = 0; screenshake = 0;
music.playef(10); music.playef(10);
@ -3324,7 +3326,7 @@ void Game::updatestate(void)
{ {
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 5; setstatedelay(5);
int i = obj.getplayer(); int i = obj.getplayer();
int j = obj.getteleporter(); int j = obj.getteleporter();
@ -3408,7 +3410,7 @@ void Game::updatestate(void)
case 4048: case 4048:
{ {
incstate(); incstate();
statedelay = 15; setstatedelay(15);
int i = obj.getplayer(); int i = obj.getplayer();
if (INBOUNDS_VEC(i, obj.entities)) if (INBOUNDS_VEC(i, obj.entities))
{ {
@ -3425,7 +3427,7 @@ void Game::updatestate(void)
case 4050: case 4050:
//Activating a teleporter (default appear) //Activating a teleporter (default appear)
incstate(); incstate();
statedelay = 15; setstatedelay(15);
flashlight = 5; flashlight = 5;
screenshake = 90; screenshake = 90;
music.playef(9); music.playef(9);
@ -3433,7 +3435,7 @@ void Game::updatestate(void)
case 4051: case 4051:
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 0; setstatedelay(0);
flashlight = 5; flashlight = 5;
screenshake = 0; screenshake = 0;
music.playef(10); music.playef(10);
@ -3442,7 +3444,7 @@ void Game::updatestate(void)
{ {
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 5; setstatedelay(5);
int i = obj.getplayer(); int i = obj.getplayer();
int j = obj.getteleporter(); int j = obj.getteleporter();
@ -3526,7 +3528,7 @@ void Game::updatestate(void)
case 4058: case 4058:
{ {
incstate(); incstate();
statedelay = 15; setstatedelay(15);
int i = obj.getplayer(); int i = obj.getplayer();
if (INBOUNDS_VEC(i, obj.entities)) if (INBOUNDS_VEC(i, obj.entities))
{ {
@ -3543,7 +3545,7 @@ void Game::updatestate(void)
case 4060: case 4060:
//Activating a teleporter (default appear) //Activating a teleporter (default appear)
incstate(); incstate();
statedelay = 15; setstatedelay(15);
flashlight = 5; flashlight = 5;
screenshake = 90; screenshake = 90;
music.playef(9); music.playef(9);
@ -3551,7 +3553,7 @@ void Game::updatestate(void)
case 4061: case 4061:
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 0; setstatedelay(0);
flashlight = 5; flashlight = 5;
screenshake = 0; screenshake = 0;
music.playef(10); music.playef(10);
@ -3560,7 +3562,7 @@ void Game::updatestate(void)
{ {
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 5; setstatedelay(5);
int i = obj.getplayer(); int i = obj.getplayer();
int j = obj.getteleporter(); int j = obj.getteleporter();
@ -3641,7 +3643,7 @@ void Game::updatestate(void)
case 4068: case 4068:
{ {
incstate(); incstate();
statedelay = 15; setstatedelay(15);
int i = obj.getplayer(); int i = obj.getplayer();
if (INBOUNDS_VEC(i, obj.entities)) if (INBOUNDS_VEC(i, obj.entities))
{ {
@ -3659,7 +3661,7 @@ void Game::updatestate(void)
case 4070: case 4070:
//Activating a teleporter (special for final script, player has colour changed to match rescued crewmate) //Activating a teleporter (special for final script, player has colour changed to match rescued crewmate)
incstate(); incstate();
statedelay = 15; setstatedelay(15);
flashlight = 5; flashlight = 5;
screenshake = 90; screenshake = 90;
music.playef(9); music.playef(9);
@ -3667,7 +3669,7 @@ void Game::updatestate(void)
case 4071: case 4071:
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 0; setstatedelay(0);
flashlight = 5; flashlight = 5;
screenshake = 0; screenshake = 0;
music.playef(10); music.playef(10);
@ -3676,7 +3678,7 @@ void Game::updatestate(void)
{ {
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 5; setstatedelay(5);
int i = obj.getplayer(); int i = obj.getplayer();
int j = obj.getteleporter(); int j = obj.getteleporter();
@ -3755,7 +3757,7 @@ void Game::updatestate(void)
case 4078: case 4078:
{ {
incstate(); incstate();
statedelay = 15; setstatedelay(15);
int i = obj.getplayer(); int i = obj.getplayer();
if (INBOUNDS_VEC(i, obj.entities)) if (INBOUNDS_VEC(i, obj.entities))
{ {
@ -3772,7 +3774,7 @@ void Game::updatestate(void)
case 4080: case 4080:
//Activating a teleporter (default appear) //Activating a teleporter (default appear)
incstate(); incstate();
statedelay = 15; setstatedelay(15);
flashlight = 5; flashlight = 5;
screenshake = 90; screenshake = 90;
music.playef(9); music.playef(9);
@ -3780,7 +3782,7 @@ void Game::updatestate(void)
case 4081: case 4081:
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 0; setstatedelay(0);
flashlight = 5; flashlight = 5;
screenshake = 0; screenshake = 0;
music.playef(10); music.playef(10);
@ -3789,7 +3791,7 @@ void Game::updatestate(void)
{ {
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 5; setstatedelay(5);
int i = obj.getplayer(); int i = obj.getplayer();
int j = obj.getteleporter(); int j = obj.getteleporter();
@ -3868,7 +3870,7 @@ void Game::updatestate(void)
case 4088: case 4088:
{ {
incstate(); incstate();
statedelay = 15; setstatedelay(15);
int i = obj.getplayer(); int i = obj.getplayer();
if (INBOUNDS_VEC(i, obj.entities)) if (INBOUNDS_VEC(i, obj.entities))
{ {
@ -3885,7 +3887,7 @@ void Game::updatestate(void)
case 4090: case 4090:
//Activating a teleporter (default appear) //Activating a teleporter (default appear)
incstate(); incstate();
statedelay = 15; setstatedelay(15);
flashlight = 5; flashlight = 5;
screenshake = 90; screenshake = 90;
music.playef(9); music.playef(9);
@ -3893,7 +3895,7 @@ void Game::updatestate(void)
case 4091: case 4091:
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 0; setstatedelay(0);
flashlight = 5; flashlight = 5;
screenshake = 0; screenshake = 0;
music.playef(10); music.playef(10);
@ -3902,7 +3904,7 @@ void Game::updatestate(void)
{ {
//Activating a teleporter 2 //Activating a teleporter 2
incstate(); incstate();
statedelay = 5; setstatedelay(5);
int i = obj.getplayer(); int i = obj.getplayer();
int j = obj.getteleporter(); int j = obj.getteleporter();
@ -3981,7 +3983,7 @@ void Game::updatestate(void)
case 4098: case 4098:
{ {
incstate(); incstate();
statedelay = 15; setstatedelay(15);
int i = obj.getplayer(); int i = obj.getplayer();
if (INBOUNDS_VEC(i, obj.entities)) if (INBOUNDS_VEC(i, obj.entities))
{ {

View File

@ -165,6 +165,8 @@ public:
void incstate(); void incstate();
void setstatedelay(int delay);
void lockstate(); void lockstate();
void unlockstate(); void unlockstate();

View File

@ -2168,7 +2168,7 @@ void gameinput(void)
} }
//which teleporter script do we use? it depends on the companion! //which teleporter script do we use? it depends on the companion!
game.setstate(4000); game.setstate(4000);
game.statedelay = 0; game.setstatedelay(0);
} }
else if (game.companion == 0) else if (game.companion == 0)
{ {
@ -2201,7 +2201,7 @@ void gameinput(void)
} }
//which teleporter script do we use? it depends on the companion! //which teleporter script do we use? it depends on the companion!
game.setstate(3000); game.setstate(3000);
game.statedelay = 0; game.setstatedelay(0);
} }
} }
} }
@ -2458,7 +2458,7 @@ void mapinput(void)
if (game.menupage >= 20 && game.menupage <= 21) if (game.menupage >= 20 && game.menupage <= 21)
{ {
game.setstate(96); game.setstate(96);
game.statedelay = 0; game.setstatedelay(0);
} }
else else
{ {
@ -2467,7 +2467,7 @@ void mapinput(void)
graphics.textboxes.clear(); graphics.textboxes.clear();
game.setstate(80); game.setstate(80);
game.statedelay = 0; game.setstatedelay(0);
} }
} }
@ -2867,7 +2867,7 @@ void teleporterinput(void)
} }
//which teleporter script do we use? it depends on the companion! //which teleporter script do we use? it depends on the companion!
game.setstate(4000); game.setstate(4000);
game.statedelay = 0; game.setstatedelay(0);
} }
} }
} }

View File

@ -2290,6 +2290,6 @@ void mapclass::twoframedelayfix(void)
game.newscript = obj.blocks[block_idx].script; game.newscript = obj.blocks[block_idx].script;
obj.removetrigger(activetrigger); obj.removetrigger(activetrigger);
game.setstate(0); game.setstate(0);
game.statedelay = 0; game.setstatedelay(0);
script.load(game.newscript); script.load(game.newscript);
} }

View File

@ -1117,6 +1117,7 @@ void scriptclass::run(void)
} }
else if (words[0] == "gamestate") else if (words[0] == "gamestate")
{ {
// Allow the gamestate command bypass statelock, at least for now
game.state = ss_toi(words[1]); game.state = ss_toi(words[1]);
game.statedelay = 0; game.statedelay = 0;
} }