Tidy up boydancer state machine.
This commit is contained in:
parent
7653d7d09f
commit
9e201febd1
2 changed files with 51 additions and 75 deletions
|
|
@ -1,3 +1,3 @@
|
|||
[default]
|
||||
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r925 \cu(Sat 29 Jul 18:00:28 CEST 2023)\c-";
|
||||
SWWM_SHORTVER="\cw1.3pre r925 \cu(2023-07-29 18:00:28)\c-";
|
||||
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r926 \cu(Sat 29 Jul 18:14:49 CEST 2023)\c-";
|
||||
SWWM_SHORTVER="\cw1.3pre r926 \cu(2023-07-29 18:14:49)\c-";
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ Class SWWMBrutalHandler : StaticEventHandler
|
|||
ui int timer;
|
||||
ui Font fnt;
|
||||
ui TextureID boydance[10], boykiss;
|
||||
ui int boyframe, boystate, boyloop1, boyloop2, boytimer;
|
||||
ui int boyframe, boystate, boyloop1, boyloop2, boytimer, boyseq[12];
|
||||
bool detected;
|
||||
String which, whichshort;
|
||||
|
||||
|
|
@ -83,118 +83,94 @@ Class SWWMBrutalHandler : StaticEventHandler
|
|||
{
|
||||
for ( int i=0; i<10; i++ )
|
||||
boydance[i] = TexMan.CheckForTexture(String.Format("graphics/BDScreen/BOYKISS%d.png",i));
|
||||
// map frames to states
|
||||
boyseq[0] = 0;
|
||||
boyseq[1] = 1;
|
||||
boyseq[2] = 2;
|
||||
boyseq[3] = 3;
|
||||
boyseq[4] = 4;
|
||||
boyseq[5] = 5;
|
||||
boyseq[6] = 3;
|
||||
boyseq[7] = 2;
|
||||
boyseq[8] = 6;
|
||||
boyseq[9] = 7;
|
||||
boyseq[10] = 8;
|
||||
boyseq[11] = 9;
|
||||
S_ChangeMusic("music/thepenis.it",force:true);
|
||||
}
|
||||
else if ( timer == 2100 ) ThrowAbortException("This manual abort is for your own safety");
|
||||
timer++;
|
||||
if ( timer >= 105 )
|
||||
{
|
||||
boyframe = boyseq[boystate];
|
||||
boytimer++;
|
||||
if ( boytimer%BOYTICRATE ) return;
|
||||
// funni state machine
|
||||
switch ( boystate )
|
||||
{
|
||||
case 0: // up
|
||||
boyframe = 0;
|
||||
if ( !(boytimer%BOYTICRATE) )
|
||||
boystate = 1;
|
||||
boystate = 1;
|
||||
break;
|
||||
case 1: // down
|
||||
boyframe = 1;
|
||||
if ( !(boytimer%BOYTICRATE) )
|
||||
if ( boyloop1 >= 2 )
|
||||
{
|
||||
if ( boyloop1 >= 2 )
|
||||
{
|
||||
boyloop1 = 0;
|
||||
boystate = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
boyloop1++;
|
||||
boystate = 0;
|
||||
}
|
||||
boyloop1 = 0;
|
||||
boystate = 2;
|
||||
break;
|
||||
}
|
||||
boyloop1++;
|
||||
boystate = 0;
|
||||
break;
|
||||
case 2: // turn A
|
||||
boyframe = 2;
|
||||
if ( !(boytimer%BOYTICRATE) )
|
||||
boystate = 3;
|
||||
boystate = 3;
|
||||
break;
|
||||
case 3: // turn B
|
||||
boyframe = 3;
|
||||
if ( !(boytimer%BOYTICRATE) )
|
||||
boystate = 4;
|
||||
boystate = 4;
|
||||
break;
|
||||
case 4: // down
|
||||
boyframe = 4;
|
||||
if ( !(boytimer%BOYTICRATE) )
|
||||
boystate = 5;
|
||||
boystate = 5;
|
||||
break;
|
||||
case 5: // up
|
||||
boyframe = 5;
|
||||
if ( !(boytimer%BOYTICRATE) )
|
||||
if ( boyloop1 >= 2 )
|
||||
{
|
||||
if ( boyloop1 >= 2 )
|
||||
{
|
||||
boyloop1 = 0;
|
||||
boystate = 6;
|
||||
}
|
||||
else
|
||||
{
|
||||
boyloop1++;
|
||||
boystate = 4;
|
||||
}
|
||||
boyloop1 = 0;
|
||||
boystate = 6;
|
||||
break;
|
||||
}
|
||||
boyloop1++;
|
||||
boystate = 4;
|
||||
break;
|
||||
case 6: // turn B
|
||||
boyframe = 3;
|
||||
if ( !(boytimer%BOYTICRATE) )
|
||||
boystate = 7;
|
||||
boystate = 7;
|
||||
break;
|
||||
case 7: // turn A
|
||||
boyframe = 2;
|
||||
if ( !(boytimer%BOYTICRATE) )
|
||||
if ( boyloop2 >= 2 )
|
||||
{
|
||||
if ( boyloop2 >= 2 )
|
||||
{
|
||||
boyloop2 = 0;
|
||||
boystate = 8;
|
||||
}
|
||||
else
|
||||
{
|
||||
boyloop2++;
|
||||
boystate = 0;
|
||||
}
|
||||
boyloop2 = 0;
|
||||
boystate = 8;
|
||||
break;
|
||||
}
|
||||
boyloop2++;
|
||||
boystate = 0;
|
||||
break;
|
||||
case 8: // spin left
|
||||
boyframe = 6;
|
||||
if ( !(boytimer%BOYTICRATE) )
|
||||
boystate = 9;
|
||||
boystate = 9;
|
||||
break;
|
||||
case 9: // spin back
|
||||
boyframe = 7;
|
||||
if ( !(boytimer%BOYTICRATE) )
|
||||
boystate = 10;
|
||||
boystate = 10;
|
||||
break;
|
||||
case 10: // spin right
|
||||
boyframe = 8;
|
||||
if ( !(boytimer%BOYTICRATE) )
|
||||
boystate = 11;
|
||||
boystate = 11;
|
||||
break;
|
||||
case 11: // spin front
|
||||
boyframe = 9;
|
||||
if ( !(boytimer%BOYTICRATE) )
|
||||
if ( boyloop1 >= 2 )
|
||||
{
|
||||
if ( boyloop1 >= 2 )
|
||||
{
|
||||
boyloop1 = 0;
|
||||
boystate = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
boyloop1++;
|
||||
boystate = 8;
|
||||
}
|
||||
boyloop1 = 0;
|
||||
boystate = 0;
|
||||
break;
|
||||
}
|
||||
boyloop1++;
|
||||
boystate = 8;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue