From 3bd383baf6a17e734329e1fc677c7e86283db772 Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Mon, 26 Oct 2015 22:52:36 +0800 Subject: Added support for relative line numbers. Added instructions for, brk and cont. (They are still untested...) Parser code cleanup. Removed garbage output to stderr. Reorganize the repository structure. Updated BLR2 code move it into archive. Added BLR1 files. --- levels.h | 4305 -------------------------------------------------------------- 1 file changed, 4305 deletions(-) delete mode 100644 levels.h (limited to 'levels.h') diff --git a/levels.h b/levels.h deleted file mode 100644 index 58d7505..0000000 --- a/levels.h +++ /dev/null @@ -1,4305 +0,0 @@ -// Chrisoft Bullet Lab Remix HGE -*- C++ -*- -// Level Implementations -// Copyright Chrisoft 2014 -/* -How to write a classic level/part... -Classic parts need only one procedure, like this. - frameleft=...; - if (towercnt==/!=...)return ClearAll(); - DisableAllTower=false;bulcnt=0;memset(bullet,0,sizeof(bullet)); - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip(""); - return; - } - ++frameskips; - if (frameskips<10&&!LOWFPS)return; - frameskips=0; - for (int i=1;i<=towcnt;++i) - if (tower[i].towerspr->GetColor()==0x80FFFFFF) - tower[i].towerspr->SetColor(0x00FFFFFF); - for (int i=1;i<=towcnt;++i) - if ((tower[i].towerspr->GetColor()>>24)<=0x80) - tower[i].towerspr->SetColor(tower[i].towerspr->GetColor()+0x01FFFFFF); - else - { - IfCallLevel=false; - return; - } -*/ -/* -How to write an "advanced" part... -"Advanced" parts usually need two or more parts, ont for initalize and one for things to do every frame. -Write on your own thought... -*/ -bool squashrev; -int posx,posy,fskp,posx2,posy2; -bool doneredir; -int pnt1,pnt2; -//Let's start now! -double towers[16];int tcnt; -double dscroll,roll,tbrk; -bool sout,tendone;bool dmt[16]; -//static const char* LEVEL_H_FN="levels.h"; -void Level1Part0(){++part;} -void Level1Part1() -{ - if(DBGColor!=0xFF888820) - { - for(int i=0;i<3;++i) - DBGColor=ColorTransfer(DBGColor,0xFF888820); - return; - } - CreateTower1(400,300,857,2); - frameleft=AMinute*2;clrtime=1; - tcnt=1;sout=false;dscroll=-0.025f;memset(dmt,true,sizeof(dmt)); - for (int i=0;i=290&&dmt[i]) - { - NewMultpo(tower[2*(i+1)+1].towerpos); - NewMultpo(tower[2*(i+1)].towerpos); - dmt[i]=false; - } - } - if (!sout) - { - if (towers[tcnt-1]<-12)++roll; - for (int i=0;i>24)<=0x80) - tower[i].RendColor=tower[i].RendColor+0x01FFFFFF; - else - { - ++part; - return; - } -} -int labyred; -void Level1Part4() -{ - if (frameleft<=TwentySeconds) - { - if (LOWFPS)labyred+=17;else ++labyred; - if (labyred>=1500)CreateBullet6(re.NextDouble(0,800),re.NextDouble(0,600),2,0,1,12,true),labyred=0; - } - if (frameleft<=TenSeconds&&tower[1].towertimer>857) - for (int i=1;i<=towcnt;++i)tower[i].towertimer=857; -} -BCircle Level2Circle,Level2Circle2; -int fakes[12]; -double L2D; -void Level2Part0() -{ - frameleft=50;L2D=0; - if (towcnt==50) - { - ClearAll(); - return; - } - bulcnt=0;free(bullet);bullet=NULL; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("\ -Level 2-Polygon Mystery\n\ -Place yourself correctly!\ -"); - IfCallLevel=false; - } - if (Current_Position==1) - { - frameleft=0; - return; - } -} -void Level2Part1() -{ - frameleft=AMinute;clrtime=1; - Level2Circle.Init(230,pi/12000,96,vector2d(400,300)); - Level2Circle2.Init(270,-pi/12000,96,vector2d(400,300)); - CreateTower3_fixeddir(400,50,300,3,-2.0f/3.0f*pi); - CreateTower3_fixeddir(400,51,300,3,-1.0f/3.0f*pi); - //======= - CreateTower3_fixeddir(400,550,300,3,2.0f/3.0f*pi); - CreateTower3_fixeddir(400,549,300,3,1.0f/3.0f*pi); - //======= - CreateTower3_fixeddir(616.51,175,300,3,0); - CreateTower3_fixeddir(616.51,176,300,3,-1.0f/3.0f*pi); - //======= - CreateTower3_fixeddir(183.49,175,300,3,-pi); - CreateTower3_fixeddir(183.49,176,300,3,-2.0f/3.0f*pi); - //======= - CreateTower3_fixeddir(616.51,425,300,3,0); - CreateTower3_fixeddir(616.51,424,300,3,1.0f/3.0f*pi); - //======= - CreateTower3_fixeddir(183.49,425,300,3,-pi); - CreateTower3_fixeddir(183.49,424,300,3,2.0f/3.0f*pi); - for (int i=0;i<6;++i)fakes[i]=CreateBullet6(400,300,0,999999999,1,1,false),bullet[fakes[i]].inv=true; - ++part;tbrk=0; -} -void Level2Part2() -{ - Level2Circle.Update(); - Level2Circle2.Update(); - L2D+=hge->Timer_GetDelta(); - double base=Level2Circle.GetRad(); - double r=(Level2Circle.GetRange()+Level2Circle2.GetRange())/2.0f; - for (int i=0;i<6;++i) - bullet[fakes[i]].bulletpos=vector2d(400+r*cos(base+i*pi/3.0f),300+r*sin(base+i*pi/3.0f)); - if (L2D>=1.5) - { - L2D=0;tbrk+=1; - for (int i=0;i<6;++i) - { - CreateBullet6(403+r*cos(base+i*pi/3.0f),303+r*sin(base+i*pi/3.0f),2,0,1,6,true); - clockrot=0; - if(tbrk>=5)NewMultpo(vector2d(403+r*cos(base+i*pi/3.0f),303+r*sin(base+i*pi/3.0f))); - } - if(tbrk>=5)tbrk=0; - } -} -void Level2Part3() -{ - frameleft=AMinute;clrtime=1; - for (int i=0;i<6;++i)bullet[fakes[i]].exist=false; - for (int i=0;i<6;++i)fakes[i]=CreateBullet7(400,300,0,999999999,false),bullet[fakes[i]].inv=true; - whicnt=3;clockrot=deltarot=0;++part;tbrk=0; -} -void Level2Part4() -{ - Level2Circle.Update(); - Level2Circle2.Update(); - L2D+=hge->Timer_GetDelta(); - double base=Level2Circle.GetRad(); - double r=(Level2Circle.GetRange()+Level2Circle2.GetRange())/2.0f; - for (int i=0;i<6;++i) - bullet[fakes[i]].bulletpos=vector2d(400+r*cos(base+i*pi/3.0f),300+r*sin(base+i*pi/3.0f)); - if (L2D>=5) - { - L2D=0;tbrk+=1; - for (int i=0;i<6;++i) - { - CreateBullet7(403+r*cos(base+i*pi/3.0f),303+r*sin(base+i*pi/3.0f),2,0,true); - if(tbrk>=5)NewMultpo(vector2d(403+r*cos(base+i*pi/3.0f),303+r*sin(base+i*pi/3.0f))); - } - if(tbrk>=5)tbrk=0; - } -} -void Level2Part5() -{ - frameleft=TenSeconds/2; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("You've got 5 seconds to choose a fine place..."); - return; - } - ++part;tbrk=0; -} -Laser Lock; -void Level2Part6() -{ - Level2Circle.Update(); - Level2Circle2.Update(); - L2D+=hge->Timer_GetDelta(); - double base=Level2Circle.GetRad(); - double r=(Level2Circle.GetRange()+Level2Circle2.GetRange())/2.0f; - for (int i=0;i<6;++i) - bullet[fakes[i]].bulletpos=vector2d(400+r*cos(base+i*pi/3.0f),300+r*sin(base+i*pi/3.0f)),bullet[fakes[i]].inv=true; - if (L2D>=5) - { - L2D=0;tbrk+=1; - for (int i=0;i<6;++i) - { - CreateBullet7(403+r*cos(base+i*pi/3.0f),303+r*sin(base+i*pi/3.0f),2,0,true); - if(tbrk>=5)NewMultpo(vector2d(403+r*cos(base+i*pi/3.0f),303+r*sin(base+i*pi/3.0f))); - } - if(tbrk>=5)tbrk=0; - } - if (frameleftTimer_GetDelta(); - double base=Level2Circle.GetRad(); - double r=(Level2Circle.GetRange()+Level2Circle2.GetRange())/2.0f; - for (int i=0;i<6;++i) - bullet[fakes[i]].bulletpos=vector2d(400+r*cos(base+i*pi/3.0f),300+r*sin(base+i*pi/3.0f)),bullet[fakes[i]].inv=true; - if (L2D>=5) - { - L2D=0;tbrk+=1; - for (int i=0;i<6;++i) - { - CreateBullet7(403+r*cos(base+i*pi/3.0f),303+r*sin(base+i*pi/3.0f),2,0,true); - if(tbrk>=5)NewMultpo(vector2d(403+r*cos(base+i*pi/3.0f),303+r*sin(base+i*pi/3.0f))); - } - if(tbrk>=5)tbrk=0; - } -} -double L2D1; -void Level2Part8() -{ - frameleft=ThirtySeconds;L2D1=0; - playerLockY=false;clrtime=2; - for (int i=6;i<12;++i)fakes[i]=CreateBullet6(400,300,0,999999999,1,1,false),bullet[fakes[i]].inv=true; - ++part;tbrk=0; -} -void Level2Part9() -{ - Level2Circle.Update(); - Level2Circle2.Update(); - L2D+=hge->Timer_GetDelta(); - L2D1+=hge->Timer_GetDelta(); - double base=Level2Circle.GetRad(); - double base2=Level2Circle2.GetRad(); - double r=(Level2Circle.GetRange()+Level2Circle2.GetRange())/2.0f; - for (int i=0;i<6;++i) - bullet[fakes[i]].bulletpos=vector2d(400+r*cos(base+i*pi/3.0f),300+r*sin(base+i*pi/3.0f)); - for (int i=6;i<12;++i) - bullet[fakes[i]].bulletpos=vector2d(400+r*cos(base2+i*pi/3.0f),300+r*sin(base2+i*pi/3.0f)); - if (L2D1>=2) - { - L2D1=0;tbrk+=1; - for (int i=0;i<6;++i) - { - CreateBullet6(403+r*cos(base2+i*pi/3.0f),303+r*sin(base2+i*pi/3.0f),2,0,1,6,true); - clockrot=0; - if(tbrk>=5)NewMultpo(vector2d(403+r*cos(base2+i*pi/3.0f),303+r*sin(base2+i*pi/3.0f))); - } - } - if (L2D>=5) - { - L2D=0;tbrk+=1; - for (int i=0;i<6;++i) - { - CreateBullet7(403+r*cos(base+i*pi/3.0f),303+r*sin(base+i*pi/3.0f),2,0,true); - if(tbrk>=5)NewMultpo(vector2d(403+r*cos(base+i*pi/3.0f),303+r*sin(base+i*pi/3.0f))); - } - } - if(tbrk>=5)tbrk=0; -} -void Level3Part0() -{ - frameleft=50; - if (towcnt==50) - { - ClearAll(); - return; - } - bulcnt=0;free(bullet);bullet=NULL; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("\ -Level 3-Missing Colour\n\ -A negative omen...\ -"); - IfCallLevel=false; - } - if (Current_Position==1) - { - frameleft=0; - return; - } -} -void Level3Part1() -{ - frameleft=ThirtySeconds;clrtime=0; - if (towcnt!=1&&towcnt!=0)return ClearAll(); - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Meet my new weapon...Is it cool?"); - return; - } - ++frameskips; - if (frameskips<10&&!LOWFPS)return; - frameskips=0; - CreateTower8(400,300,857,3,57,30,false); - for (int i=1;i<=towcnt;++i) - if (tower[i].RendColor==0x80FFFFFF) - tower[i].RendColor=0x00FFFFFF; - for (int i=1;i<=towcnt;++i) - if ((tower[i].RendColor>>24)<=0x80) - tower[i].RendColor=tower[i].RendColor+0x01FFFFFF; - else - { - IfCallLevel=false; - return; - } -} -void Level3Part2() -{ - frameleft=ThirtySeconds;clrtime=0; - if (towcnt!=4&&towcnt!=0)return ClearAll(false); - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("What about quad reflective towers...?"); - All2pnt(); - return; - } - ++frameskips; - if (frameskips<10&&!LOWFPS)return; - frameskips=0; - CreateTower8(30,10,1250,3,57,15,false); - CreateTower8(746,10,1250,3,57,15,false); - CreateTower8(30,556,1250,3,57,15,false); - CreateTower8(746,556,1250,3,57,15,false); - for (int i=1;i<=towcnt;++i) - if (tower[i].RendColor==0x80FFFFFF) - tower[i].RendColor=0x00FFFFFF; - for (int i=1;i<=towcnt;++i) - if ((tower[i].RendColor>>24)<=0x80) - tower[i].RendColor=tower[i].RendColor+0x01FFFFFF; - else - { - IfCallLevel=false; - return; - } -} -TROF fr[6][6]; -int cur; -double elasped; -void Level3Part3() -{ - frameleft=AMinute;clrtime=1; - if (towcnt!=1&&towcnt!=0)return ClearAll(false); - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - All2pnt(); - ShowTip("Precise mode is not so precise as expected..."); - return; - } - ++frameskips; - if (frameskips<10&&!LOWFPS)return; - frameskips=0; - CreateTower8(400,300,999999999,0,999999999,0,false); - for (int i=1;i<=towcnt;++i) - if (tower[i].RendColor==0x80FFFFFF) - tower[i].RendColor=0x00FFFFFF; - for (int i=1;i<=towcnt;++i) - if ((tower[i].RendColor>>24)<=0x80) - tower[i].RendColor=tower[i].RendColor+0x01FFFFFF; - else - { - for (int k=0;k<6;++k) - for (int i=0;i<6;++i) - { - fr[k][i].cnt=10; - fr[k][i].drad=(i+1)*pi/3.0f; - fr[k][i].srad=i*pi/3.0f; - fr[k][i].delay=750; - fr[k][i].stage=-1; - if (k==0)fr[k][i].init(); - } - ++part; - elasped=0;cur=0; - return; - } -} -void Level3Part4() -{ - if (frameleftTimer_GetDelta(); - if (elasped>3) - { - elasped=0;++cur; - if (cur>=6)cur=0; - double sr=re.NextInt(0,9)*pi/30.0f; - for (int i=0;i<6;++i) - { - fr[cur][i].drad=(i+1)*pi/3.0f+sr; - fr[cur][i].srad=i*pi/3.0f+sr; - fr[cur][i].init(); - } - } -} -double l3p5brk; -void Level3Part5() -{ - frameleft=ThirtySeconds;clrtime=2; - if (towcnt!=0)return ClearAll(false); - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - All2pnt();BTarg.TargHide(); - ShowTip("Well, here is a..."); - return; - } - ++part;l3p5brk=0; -} -void Level3Part6() -{ - l3p5brk+=hge->Timer_GetDelta(); - if (l3p5brk>0.2) - { - l3p5brk=0; - for (int i=1;i<=8;++i)bullet[CreateBullet8(i*100-50,20,2,false)].setdir(-pi/2); - } -} -void Level4Part0() -{ - frameleft=50;All2pnt();towcnt=0; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("\ -Level 4-Reunion\n\ -What was the weather like yesterday?...\n\ -"); - IfCallLevel=false; - } - if (Current_Position==1) - { - frameleft=0;bulcnt=0;BTarg.TargHide(); - return; - } -} -void Level4Part1() -{ - frameleft=ThirtySeconds;clrtime=0; - if (towcnt!=1&&towcnt!=0)return ClearAll(); - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Where is this idea from?"); - return; - } - ++frameskips; - if (frameskips<10&&!LOWFPS)return; - frameskips=0; - CreateTower9(400,300,1000,4,750,36,750); - for (int i=1;i<=towcnt;++i) - if (tower[i].RendColor==0x80FFFFFF) - tower[i].RendColor=0x00FFFFFF; - for (int i=1;i<=towcnt;++i) - if ((tower[i].RendColor>>24)<=0x80) - tower[i].RendColor=tower[i].RendColor+0x01FFFFFF; - else - { - IfCallLevel=false; - return; - } -} -int redirs[400];int cred; -void Level4Part2() -{ - frameleft=TenSeconds/2;clrtime=0; - if (towcnt==1) - { - ClearAll(); - return; - } - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("..."); - } - if (Current_Position==1) - { - ++part;memset(redirs,0,sizeof(redirs));cred=-1; - ATarg.TargShow(); - posx=10,posy=10,doneredir=false; - } -} -void Level4Part3() -{ - if (!LOWFPS)++fskp;else fskp+=17; - if (fskp>30) - { - fskp=0; - if (posx<766) - { - posx+=12; - redirs[++cred]=CreateBullet9(posx,posy,0,999999,1,999999); - } - else - { - if (posy<566) - { - posy+=12; - redirs[++cred]=CreateBullet9(posx,posy,0,999999,1,999999); - } - else - if (!doneredir) - for (int i=0;i<=cred;++i) - bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=4,doneredir=true; - } - } -} -void Level4Part4() -{ - frameleft=TenSeconds/2;clrtime=0; - DisableAllTower=false; - if (Current_Position==1) - { - ++part;memset(redirs,0,sizeof(redirs));cred=-1; - posx2=766,posy2=566,doneredir=false; - } -} -void Level4Part5() -{ - if (!LOWFPS)++fskp;else fskp+=17; - if (fskp>30) - { - fskp=0; - if (posx2>10) - { - posx2-=12; - redirs[++cred]=CreateBullet9(posx2,posy2,0,999999,1,999999); - } - else - { - if (posy2>10) - { - posy2-=12; - redirs[++cred]=CreateBullet9(posx2,posy2,0,999999,1,999999); - } - else - if (!doneredir) - for (int i=0;i<=cred;++i) - bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=4,doneredir=true; - } - } -} -void Level4Part6() -{ - frameleft=TenSeconds/10*4;clrtime=0; - DisableAllTower=false; - if (Current_Position==1) - { - ++part;memset(redirs,0,sizeof(redirs));cred=-1; - ATarg.TargShow(); - posx=10,posy=10,doneredir=false; - } -} -void Level4Part7() -{ - if (!LOWFPS)++fskp;else fskp+=17; - if (fskp>30) - { - fskp=0; - if (posx<766) - { - posx+=12; - redirs[++cred]=CreateBullet9(posx,posy,0,999999,1,999999); - } - else - { - if (posy<566) - { - posy+=12; - redirs[++cred]=CreateBullet9(posx,posy,0,999999,1,999999); - } - else - if (!doneredir) - for (int i=0;i<=cred;++i) - bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=4,doneredir=true; - } - } -} -void Level4Part8() -{ - frameleft=TenSeconds/10*4;clrtime=0; - DisableAllTower=false; - if (Current_Position==1) - { - ++part;memset(redirs,0,sizeof(redirs));cred=-1; - posx2=766,posy2=566,doneredir=false; - } -} -void Level4Part9() -{ - if (!LOWFPS)++fskp;else fskp+=17; - if (fskp>30) - { - fskp=0; - if (posx2>10) - { - posx2-=12; - redirs[++cred]=CreateBullet9(posx2,posy2,0,999999,1,999999); - } - else - { - if (posy2>10) - { - posy2-=12; - redirs[++cred]=CreateBullet9(posx2,posy2,0,999999,1,999999); - } - else - if (!doneredir) - for (int i=0;i<=cred;++i) - bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=4,doneredir=true; - } - } -} -void Level4Part10() -{ - frameleft=TenSeconds/10*3;clrtime=0; - DisableAllTower=false; - if (Current_Position==1) - { - ++part;memset(redirs,0,sizeof(redirs));cred=-1; - ATarg.TargShow(); - posx=10,posy=10,doneredir=false; - } -} -void Level4Part11() -{ - if (!LOWFPS)++fskp;else fskp+=17; - if (fskp>15) - { - fskp=0; - if (posx<766) - { - posx+=12; - redirs[++cred]=CreateBullet9(posx,posy,0,999999,1,999999); - } - else - { - if (posy<566) - { - posy+=12; - redirs[++cred]=CreateBullet9(posx,posy,0,999999,1,999999); - } - else - if (!doneredir) - for (int i=0;i<=cred;++i) - bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=4,doneredir=true; - } - } -} -void Level4Part12() -{ - frameleft=TenSeconds/10*3;clrtime=0; - DisableAllTower=false; - if (Current_Position==1) - { - ++part;memset(redirs,0,sizeof(redirs));cred=-1; - posx2=766,posy2=566,doneredir=false; - } -} -void Level4Part13() -{ - if (!LOWFPS)++fskp;else fskp+=17; - if (fskp>15) - { - fskp=0; - if (posx2>10) - { - posx2-=12; - redirs[++cred]=CreateBullet9(posx2,posy2,0,999999,1,999999); - } - else - { - if (posy2>10) - { - posy2-=12; - redirs[++cred]=CreateBullet9(posx2,posy2,0,999999,1,999999); - } - else - if (!doneredir) - for (int i=0;i<=cred;++i) - bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=4,doneredir=true; - } - } -} -void Level4Part14() -{ - frameleft=TenSeconds/10*2;clrtime=0; - DisableAllTower=false; - if (Current_Position==1) - { - ++part;memset(redirs,0,sizeof(redirs));cred=-1; - ATarg.TargShow(); - posx=10,posy=10,doneredir=false; - } -} -void Level4Part15() -{ - if (!LOWFPS)++fskp;else fskp+=17; - if (fskp>15) - { - fskp=0; - if (posx<766) - { - posx+=12; - redirs[++cred]=CreateBullet9(posx,posy,0,999999,1,999999); - } - else - { - if (posy<566) - { - posy+=12; - redirs[++cred]=CreateBullet9(posx,posy,0,999999,1,999999); - } - else - if (!doneredir) - for (int i=0;i<=cred;++i) - bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=4,doneredir=true; - } - } -} -void Level4Part16() -{ - frameleft=TenSeconds/10*2;clrtime=0; - DisableAllTower=false; - if (Current_Position==1) - { - ++part;memset(redirs,0,sizeof(redirs));cred=-1; - posx2=766,posy2=566,doneredir=false; - } -} -void Level4Part17() -{ - if (!LOWFPS)++fskp;else fskp+=17; - if (fskp>15) - { - fskp=0; - if (posx2>10) - { - posx2-=12; - redirs[++cred]=CreateBullet9(posx2,posy2,0,999999,1,999999); - } - else - { - if (posy2>10) - { - posy2-=12; - redirs[++cred]=CreateBullet9(posx2,posy2,0,999999,1,999999); - } - else - if (!doneredir) - for (int i=0;i<=cred;++i) - bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=4,doneredir=true; - } - } -} -void Level4Part18() -{ - frameleft=TenSeconds;clrtime=0; - DisableAllTower=false; - if (Current_Position==1) - { - ++part;memset(redirs,0,sizeof(redirs));cred=-1; - posx=10,posy=10,posx2=766,posy2=566,doneredir=false; - } -} -void Level4Part19() -{ - if (!LOWFPS)++fskp;else fskp+=17; - if (fskp>33) - { - fskp=0; - if (posx2>10) - { - posx2-=24; - redirs[++cred]=CreateBullet9(posx2,posy2,0,999999,1,999999); - } - else - { - if (posy2>10) - { - posy2-=24; - redirs[++cred]=CreateBullet9(posx2,posy2,0,999999,1,999999); - } - else - if (!doneredir) - for (int i=0;i<=cred;++i) - bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=2,doneredir=true; - } - if (posx<766) - { - posx+=24; - redirs[++cred]=CreateBullet9(posx,posy,0,999999,1,999999); - } - else - { - if (posy<566) - { - posy+=24; - redirs[++cred]=CreateBullet9(posx,posy,0,999999,1,999999); - } - } - - } -} -double rot1,dta1,rot2,dta2,spd2,elsp1; -void Level4Part20() -{ - frameleft=AMinute;All2pnt();towcnt=0; - DisableAllTower=false;clrtime=0; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Double Spinner...?"); - } - if (Current_Position==1) - { - BTarg.TargHide();ATarg.TargHide();CreateTower3(400,300,999999999,0,0); - rot1=dta1=rot2=dta2=elsp1=0;spd2=1;++part;IfCallLevel=true; - return; - } -} -void Level4Part21() -{ - elsp1+=hge->Timer_GetDelta(); - if (elsp1<=0.3)return; - elsp1=0; - int times=1;if (LOWFPS)times=17; - for (int i=1;i<=times;++i) - { - dta1+=2*pi/180;dta2-=2*pi/180;spd2=1+4.0f*((AMinute-frameleft)/(double)AMinute); - rot1+=dta1;rot2+=dta2; - } - for (int i=0;i<6;++i)CreateBullet2(400,300,4,rot1+i*pi/3); - for (int i=0;i<6;++i)CreateBullet2(400,300,spd2,rot2+i*pi/3); -} -void Level4Part22() -{ - frameleft=AMinute;clrtime=1; - if (towcnt==1) - { - ClearAll(); - return; - } - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Have problem breathing?\n...so try this!"); - } - if (Current_Position==1) - { - ++part; - pnt1=CreateTower3(10,10,50,20,1); - pnt2=CreateTower3(790,10,50,20,1); - CreateTower9(400,10,2000,2,2000,6,1000); - } -} -void Level4Part23() -{ - if (!LOWFPS) - tower[pnt1].towerpos.x+=0.006,tower[pnt2].towerpos.x-=0.006; - else - tower[pnt1].towerpos.x+=0.006*17,tower[pnt2].towerpos.x-=0.006*17; -} -void Level4Part24() -{ - frameleft=AMinute;clrtime=0; - if (towcnt!=5&&towcnt!=0)return ClearAll(false); - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false;All2pnt(); - Current_Position=2; - ShowTip("Let's meet a more classical circle-drawing part...\n\ -...as the end of this level...\nCan you draw perfectly?"); - return; - } - ++frameskips; - if (frameskips<10&&!LOWFPS)return; - frameskips=0; - CreateTower4(400,300,2000,2.5); - CreateTower1(9,9,2000,3); - CreateTower1(767,11,2000,3); - CreateTower1(9,567,2000,3); - CreateTower1(767,567,2000,3); - for (int i=1;i<=towcnt;++i) - if (tower[i].RendColor==0x80FFFFFF) - tower[i].RendColor=0x00FFFFFF; - for (int i=1;i<=towcnt;++i) - if ((tower[i].RendColor>>24)<=0x80) - tower[i].RendColor=tower[i].RendColor+0x01FFFFFF; - else - { - ++part; - return; - } -} -void Level4Part25() -{ - if(re.NextInt(0,599)==10)NewMultpo(); - for (int i=2;i<=5;++i) - tower[i].towertimer=((frameleft)/(double)AMinute)*1800+200; -} -void Level5Part0() -{ - frameleft=50;All2pnt();towcnt=0; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - LE_Active=true;letex=TLeaf;lescale=0.75; - letr=TextureRect(0,0,108,108);lecolor=0xCCCC3333; - Leaf.Init(); - Current_Position=2; - ShowTip("\ -Level 5-Crazy Autumn\n\ -Autumn is considered as a miserable season for \n\ -thousands of years...\n\ -This autumn, however, is coming too fast...\ -"); - IfCallLevel=false; - } - if (Current_Position==1) - { - frameleft=0; - return; - } -} -void Level5Part1() -{ - frameleft=ThirtySeconds;clrtime=0; - if (towcnt!=2&&towcnt!=0)return ClearAll(false); - DisableAllTower=false; - ++frameskips; - if (frameskips<10&&!LOWFPS)return; - frameskips=0; - CreateTower9(400,300,2000,3,1000,36,750); - CreateTower4(400,50,2000,2.5,0); - for (int i=1;i<=towcnt;++i) - if (tower[i].RendColor==0x80FFFFFF) - tower[i].RendColor=0x00FFFFFF; - for (int i=1;i<=towcnt;++i) - if ((tower[i].RendColor>>24)<=0x80) - tower[i].RendColor=tower[i].RendColor+0x01FFFFFF; - else - { - IfCallLevel=false; - return; - } -} -void Level5Part2() -{ - frameleft=ThirtySeconds;clrtime=0; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false;All2pnt(); - Current_Position=2; - ShowTip("What if your cheaser is faster than you..."); - return; - } - tower[2].bulletspeed=4;IfCallLevel=false; -} -int pos,lsrbrk; -bool rev; -/**********************\ - * Vortex of Leaves * -\**********************/ -void Level5Part3() -{ - frameleft=AMinute;clrtime=2; - if (towcnt!=0)return (void)ClearAll(); - Lasercnt=12; - for (int i=1;i<=12;++i) - { - laser[i].Init(32); - laser[i].SetTexture(SprSheet,0,264,248,8); - laser[i].RenCtr.x=406,laser[i].RenCtr.y=306; - } - ++part; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false;All2pnt(); - Current_Position=2; - ShowTip("Vortex of leaves..."); - return; - } -} -void Level5Part4() -{ - bool shot=false; - if (LOWFPS)lsrbrk+=16; - if (++lsrbrk>=100)lsrbrk=0,shot=true,++pos; - if (pos==32) - { - pos=0;rev=!rev; - for (int i=1;i<=bulcnt;++i) - if (bullet[i].bullettype==2&&bullet[i].bulletspeed<1e-5) - bullet[i].bulletaccel=0.001, - bullet[i].limv=1+1.5*(frameleft/(double)AMinute); - } - for (int i=1;i<=12;++i) - { - double initrad=pi/6.0f*(i-1); - double dist; - for (int j=0;j<32;++j) - { - dist=j*Resd; - double trad; - if (rev)trad=initrad-j*pi/36.0f;else trad=initrad+j*pi/36.0f; - vector2d t,tt,s; - t.x=cos(trad)*dist; - t.y=sin(trad)*dist; - dist=(j+1)*Resd; - if (rev)trad=initrad-(j+1)*pi/36.0f;else trad=initrad+(j+1)*pi/36.0f; - tt.x=cos(trad)*dist;tt.y=sin(trad)*dist; - tt.x-=t.x;tt.y-=t.y;trad=tt.x;tt.x=tt.y;tt.y=-trad; - trad=sqrt(sqr(tt.x)+sqr(tt.y)); - tt.x/=trad;tt.y/=trad; - //pos: 0~8, mult:0~8 - //pos: 24~32, mult: 8~0 - if (pos>=24) - tt.x*=(32-pos)/1.5f,tt.y*=(32-pos)/1.5f; - else - if (pos<=8) - tt.x*=pos/1.5f,tt.y*=pos/1.5f; - else - tt.x*=5.33f,tt.y*=5.33f; - //We only consider collisions when pos is between 9 and 23. - if (pos>9&&pos<23)laser[i].EnableColl=true;else laser[i].EnableColl=false; - s.x=t.x+tt.x;s.y=t.y+tt.y; - if (j==31) - for (int k=31;k8&&pos<23) - laser[i].EnableColl=true; - else - laser[i].EnableColl=false; - } -} -int tbuls[1000];double lv5brk; -void Level5Part5() -{ - frameleft=AMinute;All2pnt();towcnt=0;Lasercnt=0; - memset(tbuls,0,sizeof(tbuls));lv5brk=0;++part; - clrtime=1; -} -void Level5Part6() -{ - lv5brk+=hge->Timer_GetDelta(); - if (lv5brk<=0.3)return; - lv5brk=0; - for (int i=1;i<=9;++i) - for (int j=0;j<1000;++j) - if (!tbuls[j]) - { - tbuls[j]=CreateBullet2(i*80,570,3,0.5*pi); - break; - } - for (int j=0;j<1000;++j) - if (tbuls[j]&&bullet[tbuls[j]].bulletpos.y<150) - { - if (re.NextInt(1,1000)>=800) - { - if (re.NextInt(1,1000)>=500) - CreateBullet6(bullet[tbuls[j]].bulletpos.x,bullet[tbuls[j]].bulletpos.y,3,200,1,18); - else - if (re.NextInt(1,1000)>=850) - CreateBullet9(bullet[tbuls[j]].bulletpos.x,bullet[tbuls[j]].bulletpos.y,3,500,18,300); - } - BulletEffect_Death(bullet[tbuls[j]],ColorToDWORD(blue)); - bullet[tbuls[j]].exist=false; - tbuls[j]=0; - } -} -void Level5Part7() -{ - frameleft=ThirtySeconds;Dis8ref=true;tbrk=0;clrtime=1; - if (towcnt!=33&&towcnt!=0)return ClearAll(false); - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2;All2pnt(); - ShowTip("Threatening effect of high speed bullets"); - return; - } - ++frameskips; - if (frameskips<10&&!LOWFPS)return; - frameskips=0; - for (int i=1;i<=33;++i)CreateTower8(i*24-12,12,500,10,20,30); - for (int i=1;i<=towcnt;++i) - if (tower[i].RendColor==0x80FFFFFF) - tower[i].RendColor=0x00FFFFFF; - for (int i=1;i<=towcnt;++i) - if ((tower[i].RendColor>>24)<=0x80) - tower[i].RendColor=tower[i].RendColor+0x01FFFFFF; - else - { - ++part;tcnt=0; - return; - } -} -void Level5Part8() -{ - tbrk+=hge->Timer_GetDelta(); - if (tbrk<=3)return; - tbrk=0;int tg;++tcnt; - if (re.NextInt(1,1000)>=500)tg=CreateBullet9(200,12,8,300,12,200);else tg=CreateBullet9(600,12,8,300,12,200); - bullet[tg].redir(playerpos); - if (tcnt>4)NewMultpo(),tcnt=0; -} -void Level5Part9() -{ - frameleft=ThirtySeconds;Dis8ref=true;tbrk=0;clrtime=1; - if (towcnt!=66&&towcnt!=0)return ClearAll(false); - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2;All2pnt(); - ShowTip("Do not panic!"); - return; - } - ++frameskips; - if (frameskips<10&&!LOWFPS)return; - frameskips=0; - for (int i=1;i<=33;++i)CreateTower8(i*24-12,12,750,1,1,1),CreateTower8(i*24-12,588,750,1,1,1); - for (int i=1;i<=towcnt;++i) - if (tower[i].RendColor==0x80FFFFFF) - tower[i].RendColor=0x00FFFFFF; - for (int i=1;i<=towcnt;++i) - if ((tower[i].RendColor>>24)<=0x80) - tower[i].RendColor=tower[i].RendColor+0x01FFFFFF; - else - { - ++part;tcnt=0; - return; - } -} -void Level5Part10() -{ - tbrk+=hge->Timer_GetDelta(); - if (tbrk<=3)return; - tbrk=0;++tcnt; - if(tcnt>4)NewMultpo(),tcnt=0; - for (int i=0;i<6;++i) - { - int p=CreateBullet2(playerpos.x+cos(i*pi/3.0f)*6,12+sin(i*pi/3.0f)*6,2,-pi/2); - bullet[p].alterColor=orange; - } -} -void Level5Part11() -{ - frameleft=TenSeconds/10*2;clrtime=0;Dis8ref=false; - if (towcnt==66) - { - ClearAll(); - return; - } - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("They are getting out of control...\n\ -Have you noticed that strange things are happening?..."); - } - if (Current_Position==1) - { - ++part;memset(redirs,0,sizeof(redirs));cred=-1;All2pnt(); - ATarg.TargShow(); - posx=10,posy=10,doneredir=false; - } -} -void Level5Part12() -{ - if (!LOWFPS)++fskp;else fskp+=17; - if (fskp>15) - { - fskp=0; - if (posx<766) - { - posx+=12; - redirs[++cred]=CreateBullet9(posx,posy,0,999999,1,999999); - redirs[++cred]=CreateBullet9((posx-400)*0.95+400,(posy-300)*0.95+300,0,999999,1,999999); - } - else - { - if (posy<566) - { - posy+=12; - redirs[++cred]=CreateBullet9(posx,posy,0,999999,1,999999); - redirs[++cred]=CreateBullet9((posx-400)*0.95+400,(posy-300)*0.95+300,0,999999,1,999999); - } - else - if (!doneredir) - for (int i=0;i<=cred;++i) - bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=4,doneredir=true; - } - } -} -void Level5Part13() -{ - frameleft=TenSeconds/10*2;clrtime=0; - DisableAllTower=false; - if (Current_Position==1) - { - ++part;memset(redirs,0,sizeof(redirs));cred=-1; - posx2=766,posy2=566,doneredir=false; - } -} -void Level5Part14() -{ - if (!LOWFPS)++fskp;else fskp+=17; - if (fskp>15) - { - fskp=0; - if (posx2>10) - { - posx2-=12; - redirs[++cred]=CreateBullet9(posx2,posy2,0,999999,1,999999); - redirs[++cred]=CreateBullet9((posx2-400)*0.95+400,(posy2-300)*0.95+300,0,999999,1,999999); - } - else - { - if (posy2>10) - { - posy2-=12; - redirs[++cred]=CreateBullet9(posx2,posy2,0,999999,1,999999); - redirs[++cred]=CreateBullet9((posx2-400)*0.95+400,(posy2-300)*0.95+300,0,999999,1,999999); - } - else - if (!doneredir) - for (int i=0;i<=cred;++i) - bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=4,doneredir=true; - } - } -} -void Level5Part15() -{ - frameleft=TenSeconds/10*2;clrtime=0; - ++part;memset(redirs,0,sizeof(redirs));cred=-1; - posx=10,posy=10,doneredir=false; -} -void Level5Part16() -{ - if (!LOWFPS)++fskp;else fskp+=17; - if (fskp>15) - { - fskp=0; - if (posx<766) - { - posx+=12; - redirs[++cred]=CreateBullet9(posx,posy,0,999999,1,999999); - redirs[++cred]=CreateBullet9((posx-400)*0.95+400,(posy-300)*0.95+300,0,999999,1,999999); - redirs[++cred]=CreateBullet9((posx-400)*0.9+400,(posy-300)*0.9+300,0,999999,1,999999); - } - else - { - if (posy<566) - { - posy+=12; - redirs[++cred]=CreateBullet9(posx,posy,0,999999,1,999999); - redirs[++cred]=CreateBullet9((posx-400)*0.95+400,(posy-300)*0.95+300,0,999999,1,999999); - redirs[++cred]=CreateBullet9((posx-400)*0.9+400,(posy-300)*0.9+300,0,999999,1,999999); - } - else - if (!doneredir) - for (int i=0;i<=cred;++i) - bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=4,doneredir=true; - } - } -} -void Level5Part17() -{ - frameleft=TenSeconds/2;clrtime=0; - DisableAllTower=false; - if (Current_Position==1) - { - ++part;memset(redirs,0,sizeof(redirs));cred=-1; - posx2=766,posy2=566,doneredir=false; - } -} -void Level5Part18() -{ - if (!LOWFPS)++fskp;else fskp+=17; - if (fskp>15) - { - fskp=0; - if (posx2>10) - { - posx2-=12; - redirs[++cred]=CreateBullet9(posx2,posy2,0,999999,1,999999); - redirs[++cred]=CreateBullet9((posx2-400)*0.95+400,(posy2-300)*0.95+300,0,999999,1,999999); - redirs[++cred]=CreateBullet9((posx2-400)*0.9+400,(posy2-300)*0.9+300,0,999999,1,999999); - } - else - { - if (posy2>10) - { - posy2-=12; - redirs[++cred]=CreateBullet9(posx2,posy2,0,999999,1,999999); - redirs[++cred]=CreateBullet9((posx2-400)*0.95+400,(posy2-300)*0.95+300,0,999999,1,999999); - redirs[++cred]=CreateBullet9((posx2-400)*0.9+400,(posy2-300)*0.9+300,0,999999,1,999999); - } - else - if (!doneredir) - for (int i=0;i<=cred;++i) - bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=4,doneredir=true; - } - } -} -double ntrot,ntbrk; -int ntcnt; -void Level5Part19() -{ - frameleft=AMinute;clrtime=1;ntrot=ntbrk=0;ntcnt=0; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("You are the fish in my barrel."); - } - if (Current_Position==1) - { - ++part;All2pnt(); - ATarg.TargHide();tbrk=0; - } -} -void Level5Part20() -{ - ntbrk+=hge->Timer_GetDelta();tbrk+=hge->Timer_GetDelta(); - if(LOWFPS)ntrot+=16*pi/960.0f;else ntrot+=pi/960.0f; - if(ntbrk<0.01)return; - ntbrk=0;++ntcnt;if (ntcnt>15)ntcnt=0; - int rtatr; - if(frameleft>ThirtySeconds*1.5)rtatr=2; - if(frameleft<=ThirtySeconds*1.5&&frameleft>TenSeconds*4.2)rtatr=0; - if(frameleft<=TenSeconds*4.2&&frameleft>TenSeconds*2.2)rtatr=3; - if(frameleft<=TenSeconds*2.2&&frameleft>TwentySeconds)rtatr=0; - if(frameleft<=TwentySeconds)rtatr=4; - for(int i=0;i5)NewMultpo(vector2d(400+250*sin(ntrot+i*2*pi/rtatr),300+250*cos(ntrot+i*2*pi/rtatr))); - } - if(tbrk>5)tbrk=0; -} -void Level5Part21() -{ - frameleft=ThirtySeconds; - All2pnt();clrtime=1; - Lasercnt=0; - CTarg.Init(18,75,5.0f); - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("This is the UNBREAKABLE jail."); - } - if (Current_Position==1) - { - CreateTower1(30,10,500,2); - CreateTower1(746,10,500,2); - CreateTower1(30,556,500,2); - CreateTower1(746,556,500,2); - ++part; - } -} -void Level5Part22() -{ - int times=1;if (LOWFPS)times=16; - for (int i=1;i<=times;++i) - CTarg.SetRange(CTarg.GetRange()-0.002f); - CTarg.Update(); -} -void Level6Part0() -{ - frameleft=TenSeconds;All2pnt();towcnt=0; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - LE_Active=true;letex=TSflake;lescale=0.2; - letr=TextureRect(0,0,350,350);lecolor=0xCC3366CC; - Leaf.Init(); - Current_Position=2; - ShowTip("\ -Level 6-Peaceful(?) Winter\n\ -Look, there's a question mark in the title...\ -"); - } - if (Current_Position==1) - { - if (!LOWFPS) - DBGColor=ColorTransfer(DBGColor,0xFF60A0FF); - else - for (int i=1;i<=17;++i)DBGColor=ColorTransfer(DBGColor,0xFF60A0FF); - if(DBGColor==0xFF60A0FF)++part; - return; - } -} -void Level6Part1() -{ - //Some component of this level is in towernbullet... - frameleft=ThirtySeconds;clrtime=1; - DisableAllTower=false; - ++frameskips; - if (frameskips<10&&!LOWFPS)return; - frameskips=0; - whicnt=10; - CreateTower7(400,300,750,3,500); - for (int i=1;i<=towcnt;++i) - if (tower[i].RendColor==0x80FFFFFF) - tower[i].RendColor=0x00FFFFFF; - for (int i=1;i<=towcnt;++i) - if ((tower[i].RendColor>>24)<=0x80) - tower[i].RendColor=tower[i].RendColor+0x01FFFFFF; - else - { - IfCallLevel=false; - return; - } -} -int spcnt;double sixrad,sixbrk; -void Level6Part2() -{ - if (towcnt)return ClearAll(false); - All2pnt();frameleft=TenSeconds; - ++part;spcnt=2;sixrad=sixbrk=0; - whicnt=1;DisableAllTower=false; - tbrk=0;clrtime=3; -} -void Level6Part3() -{ - sixbrk+=hge->Timer_GetDelta(); - if (sixrad>2*pi){if(tbrk<1)NewMultpo(vector2d(400,300)),tbrk=100;return;} - if (sixbrk<0.04)return; - sixbrk=0; - sixrad+=pi/25.0f; - for (int i=0;iTimer_GetDelta(); - if (sixrad>2*pi){if(tbrk<1)NewMultpo(vector2d(400,300)),tbrk=100;return;} - if (sixbrk<0.04)return; - sixbrk=0; - sixrad+=pi/25.0f; - for (int i=0;iTimer_GetDelta(); - if (sixrad>2*pi){if(tbrk<1)NewMultpo(vector2d(400,300)),tbrk=100;return;} - if (sixbrk<0.04)return; - sixbrk=0; - sixrad+=pi/25.0f; - for (int i=0;iTimer_GetDelta(); - if (sixrad>2*pi){if(tbrk<1)NewMultpo(vector2d(400,300)),tbrk=100;return;} - if (sixbrk<0.04)return; - sixbrk=0; - sixrad+=pi/25.0f; - for (int i=0;iTimer_GetDelta(); - if (sixrad>2*pi){if(tbrk<1)NewMultpo(vector2d(400,300)),tbrk=100;return;} - if (sixbrk<0.04)return; - sixbrk=0; - sixrad+=pi/25.0f; - for (int i=0;iTimer_GetDelta(); - if(tbrk>=12) - { - for(int i=1;i<=4;++i)NewMultpo(tower[i].towerpos); - tbrk=0; - } - if (!squashrev) - { - if (!LOWFPS) - { - tower[1].towerpos.x+=0.01; - tower[1].towerpos.y+=0.007354; - tower[2].towerpos.x-=0.01; - tower[2].towerpos.y+=0.007354; - tower[3].towerpos.x+=0.01; - tower[3].towerpos.y-=0.007354; - tower[4].towerpos.x-=0.01; - tower[4].towerpos.y-=0.007354; - } - else - { - tower[1].towerpos.x+=0.16; - tower[1].towerpos.y+=0.117664; - tower[2].towerpos.x-=0.16; - tower[2].towerpos.y+=0.117664; - tower[3].towerpos.x+=0.16; - tower[3].towerpos.y-=0.117664; - tower[4].towerpos.x-=0.16; - tower[4].towerpos.y-=0.117664; - } - } - else - { - if (!LOWFPS) - { - tower[1].towerpos.x-=0.01; - tower[1].towerpos.y-=0.007354; - tower[2].towerpos.x+=0.01; - tower[2].towerpos.y-=0.007354; - tower[3].towerpos.x-=0.01; - tower[3].towerpos.y+=0.007354; - tower[4].towerpos.x+=0.01; - tower[4].towerpos.y+=0.007354; - } - else - { - tower[1].towerpos.x-=0.16; - tower[1].towerpos.y-=0.117664; - tower[2].towerpos.x+=0.16; - tower[2].towerpos.y-=0.117664; - tower[3].towerpos.x-=0.16; - tower[3].towerpos.y+=0.117664; - tower[4].towerpos.x+=0.16; - tower[4].towerpos.y+=0.117664; - } - } - if (tower[1].towerpos.x>766||tower[1].towerpos.x<10)squashrev=!squashrev; -} -double avabrk,avacurbrk; -bool dir; -void Level6Part14()//Avalanche -{ - frameleft=AMinute;clrtime=1; - if (towcnt) - { - ClearAll(false); - return; - } - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Avalanche..."); - } - if (Current_Position==1) - { - ++part;All2pnt();avabrk=1.0f;avacurbrk=tbrk=0;dir=false; - } -} -void Level6Part15() -{ - avacurbrk+=hge->Timer_GetDelta(); - tbrk+=hge->Timer_GetDelta(); - avabrk=((double)frameleft/(double)AMinute)*0.04f+0.01f; - if (avacurbrk>avabrk) - { - avacurbrk=0; - int pnt=CreateBullet2(re.NextDouble(10,790),200,-6.25,3*pi/2.0f); - bullet[pnt].limv=re.NextInt(2,8);bullet[pnt].bulletaccel=0.005; - } - if (tbrk>6)NewMultpo(vector2d(re.NextDouble(20,780),re.NextDouble(20,150))),tbrk=0; -} -void Level6Part16() -{ - frameleft=AMinute;clrtime=2; - if (towcnt) - { - ClearAll(false); - return; - } - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("?.."); - } - if (Current_Position==1) - { - ++part;All2pnt();avabrk=1.0f; - avacurbrk=0;dir=false;ATarg.TargShow(); - ATarg.targpos=vector2d(400,300); - whicnt=3;avacurbrk=0; - } -} -void Level6Part17() -{ - avacurbrk+=hge->Timer_GetDelta(); - avabrk=((double)frameleft/(double)AMinute)*0.8f+0.2f; - if (avacurbrk>avabrk) - { - avacurbrk=0; - int pnt; - if (re.NextInt(1,100)<=80) - pnt=CreateBullet7(ATarg.targpos.x,ATarg.targpos.y,3,500); - else - pnt=CreateBullet6(ATarg.targpos.x,ATarg.targpos.y,4,1000); - bullet[pnt].dist=1;bullet[pnt].bulletdir=vector2d(0,0); - if(re.NextInt(0,19)==14)NewMultpo(); - } -} -//begin hexagon -Bullet bheader[100],*beewx[1500]; -static int sxcnt,seq,beecnt; -bool brdir; -double offset; -void Level6Part18() -{ - DisableAllTower=false;clrtime=3; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Hexagon loops"); - } - if (Current_Position==1) - { - sxcnt=-1;beecnt=-1;brdir=false;frameleft=TenSeconds;offset=86; - memset(bheader,0,sizeof(bheader)); - memset(beewx,0,sizeof(beewx)); - avacurbrk=1;avabrk=1;sixbrk=0.1;seq=3; - for (int i=1;i<=5;++i) - { - CreateBullet2(bheader[++sxcnt],offset+2*(i-1)*offset,10,2,-pi/6); - CreateBullet2(bheader[++sxcnt],offset+2*(i-1)*offset,10,2,-5*pi/6); - } - ++part;ATarg.TargHide();All2pnt(); - } -} -void Level6Part19() -{ - avacurbrk+=hge->Timer_GetDelta(); - sixbrk+=hge->Timer_GetDelta(); - if (frameleftbulletaccel=0.001;beewx[i]->limv=1; - beewx[i]->setdir(re.NextDouble(0,pi)); - } - } - for (int i=0;i<=sxcnt;++i)ProcessBullet2(bheader[i]); - if (avacurbrk>avabrk) - { - avacurbrk=0;++seq;seq%=4; - for (int i=0;i<=sxcnt;++i) - { - if (i&1) - { - switch (seq) - { - case 0:bheader[i].setdir(-5*pi/6);break; - case 1:bheader[i].setdir(-pi/2);break; - case 2:bheader[i].setdir(-pi/6);break; - case 3:bheader[i].setdir(-pi/2);break; - } - } - else - { - switch (seq) - { - case 0:bheader[i].setdir(-pi/6);break; - case 1:bheader[i].setdir(-pi/2);break; - case 2:bheader[i].setdir(-5*pi/6);break; - case 3:bheader[i].setdir(-pi/2);break; - } - } - } - } - if (sixbrk>0.2&&!brdir) - { - sixbrk=0; - if (bheader[0].bulletpos.y>610)return; - for (int i=0;i<=sxcnt;++i) - { - beewx[++beecnt]=&bullet[CreateBullet2(bheader[i].bulletpos.x,bheader[i].bulletpos.y,0,pi,true)]; - } - } -} -void Level6Part20() -{ - sxcnt=-1;beecnt=-1;brdir=false;frameleft=TwentySeconds;offset=43; - memset(bheader,0,sizeof(bheader)); - memset(beewx,0,sizeof(beewx)); - avacurbrk=0.5;avabrk=0.5;sixbrk=0.1;seq=3; - for (int i=1;i<=10;++i) - { - CreateBullet2(bheader[++sxcnt],offset+2*(i-1)*offset,10,2,-pi/6); - CreateBullet2(bheader[++sxcnt],offset+2*(i-1)*offset,10,2,-5*pi/6); - } - ++part; -} -void Level6Part21() -{ - avacurbrk+=hge->Timer_GetDelta(); - sixbrk+=hge->Timer_GetDelta(); - if (frameleftbulletaccel=0.001;beewx[i]->limv=1; - beewx[i]->setdir(re.NextDouble(0,pi)); - } - } - for (int i=0;i<=sxcnt;++i)ProcessBullet2(bheader[i]); - if (avacurbrk>avabrk) - { - avacurbrk=0;++seq;seq%=4; - for (int i=0;i<=sxcnt;++i) - { - if (i&1) - { - switch (seq) - { - case 0:bheader[i].setdir(-5*pi/6);break; - case 1:bheader[i].setdir(-pi/2);break; - case 2:bheader[i].setdir(-pi/6);break; - case 3:bheader[i].setdir(-pi/2);break; - } - } - else - { - switch (seq) - { - case 0:bheader[i].setdir(-pi/6);break; - case 1:bheader[i].setdir(-pi/2);break; - case 2:bheader[i].setdir(-5*pi/6);break; - case 3:bheader[i].setdir(-pi/2);break; - } - } - } - } - if (sixbrk>0.2&&!brdir) - { - sixbrk=0; - if (bheader[0].bulletpos.y>610)return; - for (int i=0;i<=sxcnt;++i) - { - beewx[++beecnt]=&bullet[CreateBullet2(bheader[i].bulletpos.x,bheader[i].bulletpos.y,0,pi,true)]; - } - } -} -void Level6Part22() -{ - sxcnt=-1;beecnt=-1;brdir=false;frameleft=TenSeconds/10*7;offset=43; - memset(bheader,0,sizeof(bheader)); - memset(beewx,0,sizeof(beewx)); - avacurbrk=0.25;avabrk=0.25;sixbrk=0.1;seq=3; - for (int i=1;i<=10;++i) - { - CreateBullet2(bheader[++sxcnt],offset+2*(i-1)*offset,10,4,-pi/6); - CreateBullet2(bheader[++sxcnt],offset+2*(i-1)*offset,10,4,-5*pi/6); - } - ++part; -} -void Level6Part23() -{ - avacurbrk+=hge->Timer_GetDelta(); - sixbrk+=hge->Timer_GetDelta(); - if (frameleftbulletaccel=0.001;beewx[i]->limv=1; - beewx[i]->setdir(re.NextDouble(0,pi)); - } - } - for (int i=0;i<=sxcnt;++i)ProcessBullet2(bheader[i]); - if (avacurbrk>avabrk) - { - avacurbrk=0;++seq;seq%=4; - for (int i=0;i<=sxcnt;++i) - { - if (i&1) - { - switch (seq) - { - case 0:bheader[i].setdir(-5*pi/6);break; - case 1:bheader[i].setdir(-pi/2);break; - case 2:bheader[i].setdir(-pi/6);break; - case 3:bheader[i].setdir(-pi/2);break; - } - } - else - { - switch (seq) - { - case 0:bheader[i].setdir(-pi/6);break; - case 1:bheader[i].setdir(-pi/2);break; - case 2:bheader[i].setdir(-5*pi/6);break; - case 3:bheader[i].setdir(-pi/2);break; - } - } - } - } - if (sixbrk>0.1&&!brdir) - { - sixbrk=0; - if (bheader[0].bulletpos.y>610)return; - for (int i=0;i<=sxcnt;++i) - { - beewx[++beecnt]=&bullet[CreateBullet2(bheader[i].bulletpos.x,bheader[i].bulletpos.y,0,pi,true)]; - } - } -} -void Level6Part24() -{ - sxcnt=-1;beecnt=-1;brdir=false;frameleft=TenSeconds/10*7;offset=43; - memset(bheader,0,sizeof(bheader)); - memset(beewx,0,sizeof(beewx)); - avacurbrk=0.25;avabrk=0.25;sixbrk=0.1;seq=3; - for (int i=1;i<=10;++i) - { - CreateBullet2(bheader[++sxcnt],offset+2*(i-1)*offset,590,4,pi/6); - CreateBullet2(bheader[++sxcnt],offset+2*(i-1)*offset,590,4,5*pi/6); - } - ++part; -} -void Level6Part25() -{ - avacurbrk+=hge->Timer_GetDelta(); - sixbrk+=hge->Timer_GetDelta(); - if (frameleftbulletaccel=0.001;beewx[i]->limv=1; - beewx[i]->setdir(re.NextDouble(0,pi)); - } - } - for (int i=0;i<=sxcnt;++i)ProcessBullet2(bheader[i]); - if (avacurbrk>avabrk) - { - avacurbrk=0;++seq;seq%=4; - for (int i=0;i<=sxcnt;++i) - { - if (i&1) - { - switch (seq) - { - case 0:bheader[i].setdir(5*pi/6);break; - case 1:bheader[i].setdir(pi/2);break; - case 2:bheader[i].setdir(pi/6);break; - case 3:bheader[i].setdir(pi/2);break; - } - } - else - { - switch (seq) - { - case 0:bheader[i].setdir(pi/6);break; - case 1:bheader[i].setdir(pi/2);break; - case 2:bheader[i].setdir(5*pi/6);break; - case 3:bheader[i].setdir(pi/2);break; - } - } - } - } - if (sixbrk>0.1&&!brdir) - { - sixbrk=0; - if (bheader[0].bulletpos.y<-10)return; - for (int i=0;i<=sxcnt;++i) - { - beewx[++beecnt]=&bullet[CreateBullet2(bheader[i].bulletpos.x,bheader[i].bulletpos.y,0,pi,true)]; - } - } -} -void Level6Part26() -{ - sxcnt=-1;beecnt=-1;brdir=false;frameleft=TenSeconds/10*7;offset=43; - memset(bheader,0,sizeof(bheader)); - memset(beewx,0,sizeof(beewx)); - avacurbrk=0.25;avabrk=0.25;sixbrk=0.1;seq=3; - for (int i=1;i<=10;++i) - { - CreateBullet2(bheader[++sxcnt],790,offset+2*(i-1)*offset,4,5*pi/3); - CreateBullet2(bheader[++sxcnt],790,offset+2*(i-1)*offset,4,pi/3); - } - ++part; -} -void Level6Part27() -{ - avacurbrk+=hge->Timer_GetDelta(); - sixbrk+=hge->Timer_GetDelta(); - if (frameleftbulletaccel=0.001;beewx[i]->limv=1; - beewx[i]->setdir(re.NextDouble(0,pi)); - } - } - for (int i=0;i<=sxcnt;++i)ProcessBullet2(bheader[i]); - if (avacurbrk>avabrk) - { - avacurbrk=0;++seq;seq%=4; - for (int i=0;i<=sxcnt;++i) - { - if (i&1) - { - switch (seq) - { - case 0:bheader[i].setdir(pi/3);break; - case 1:bheader[i].setdir(0);break; - case 2:bheader[i].setdir(5*pi/3);break; - case 3:bheader[i].setdir(0);break; - } - } - else - { - switch (seq) - { - case 0:bheader[i].setdir(5*pi/3);break; - case 1:bheader[i].setdir(0);break; - case 2:bheader[i].setdir(pi/3);break; - case 3:bheader[i].setdir(0);break; - } - } - } - } - if (sixbrk>0.1&&!brdir) - { - sixbrk=0; - if (bheader[0].bulletpos.x<-10)return; - for (int i=0;i<=sxcnt;++i) - { - beewx[++beecnt]=&bullet[CreateBullet2(bheader[i].bulletpos.x,bheader[i].bulletpos.y,0,pi,true)]; - } - } -} -void Level6Part28() -{ - sxcnt=-1;beecnt=-1;brdir=false;frameleft=TenSeconds+TenSeconds/10*9;offset=43; - memset(bheader,0,sizeof(bheader)); - memset(beewx,0,sizeof(beewx)); - avacurbrk=0.25;avabrk=0.25;sixbrk=0.1;seq=3; - for (int i=1;i<=10;++i) - { - CreateBullet2(bheader[++sxcnt],10,offset+2*(i-1)*offset,4,pi+5*pi/3); - CreateBullet2(bheader[++sxcnt],10,offset+2*(i-1)*offset,4,pi+pi/3); - } - ++part; -} -void Level6Part29() -{ - avacurbrk+=hge->Timer_GetDelta(); - sixbrk+=hge->Timer_GetDelta(); - if (frameleftbulletaccel=0.001;beewx[i]->limv=1; - beewx[i]->setdir(re.NextDouble(0,pi)); - } - } - for (int i=0;i<=sxcnt;++i)ProcessBullet2(bheader[i]); - if (avacurbrk>avabrk) - { - avacurbrk=0;++seq;seq%=4; - for (int i=0;i<=sxcnt;++i) - { - if (i&1) - { - switch (seq) - { - case 0:bheader[i].setdir(pi+pi/3);break; - case 1:bheader[i].setdir(pi);break; - case 2:bheader[i].setdir(pi+5*pi/3);break; - case 3:bheader[i].setdir(pi);break; - } - } - else - { - switch (seq) - { - case 0:bheader[i].setdir(pi+5*pi/3);break; - case 1:bheader[i].setdir(pi);break; - case 2:bheader[i].setdir(pi+pi/3);break; - case 3:bheader[i].setdir(pi);break; - } - } - } - } - if (sixbrk>0.1&&!brdir) - { - sixbrk=0; - if (bheader[0].bulletpos.x>810)return; - for (int i=0;i<=sxcnt;++i) - { - beewx[++beecnt]=&bullet[CreateBullet2(bheader[i].bulletpos.x,bheader[i].bulletpos.y,0,pi,true)]; - } - } -} -void Level6Part30()//Hyperfluid! -{ - frameleft=AMinute;clrtime=2; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Hyperfluid!"); - } - if (Current_Position==1) - { - ++part;All2pnt();avabrk=0.2f;avacurbrk=0;sixbrk=-1;tbrk=0; - } -} -void Level6Part999999999()//well this is not an easter egg! -{ - avabrk=(frameleft/(double)AMinute)*0.15f+0.05f; - avacurbrk+=hge->Timer_GetDelta(); - sixbrk+=hge->Timer_GetDelta(); - tbrk+=hge->Timer_GetDelta(); - if(tbrk>10)tbrk=0,NewMultpo(vector2d(re.NextDouble(40,100),re.NextDouble(30,75))); - if (avacurbrk>avabrk) - { - avacurbrk=0; - for (int i=1;i<=re.NextInt(1,10);++i) - if (re.NextInt(1,1000)>500) - { - int pnt=CreateBullet2(10,re.NextDouble(10,590),0,-3*pi/4); - bullet[pnt].bulletaccel=0.0025;bullet[pnt].limv=6; - } - else - { - int pnt=CreateBullet2(re.NextDouble(10,790),10,0,-3*pi/4); - bullet[pnt].bulletaccel=0.0025;bullet[pnt].limv=6; - } - } - if (sixbrk>0.5) - { - sixbrk=0; - for (int i=1;i<=re.NextInt(1,10);++i) - { - int pnt=CreateBullet2(re.NextDouble(10,790),590,1,pi/2); - bullet[pnt].alterColor=white; - } - } -} -int bgbrk; -double bgdbbrk; -void Level7Part0() -{ - frameleft=50;All2pnt();towcnt=0;bgbrk=0; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - LE_Active=false; - Current_Position=2; - ShowTip("\ -Level 7-Rainbow of Spring\n\ -Will there be a clearer day?\ -"); - frameleft=TenSeconds;++part; - } -} -bool skystp; -void Level7Part1() -{ - ++bgbrk;if (LOWFPS)bgbrk+=16; - if (bgbrk<30)return; - bgbrk=0; - if (!LOWFPS) - DBGColor=ColorTransfer(DBGColor,0xFF0B0916); - else - for (int i=1;i<=17;++i)DBGColor=ColorTransfer(DBGColor,0xFF0B0916); - if (DBGColor==0xFF0B0916) - { - frameleft=AMinute,++part;tbrk=0;clrtime=2; - bgdbbrk=re.NextInt(5,20),bgbrk=0; - avabrk=0.2f;avacurbrk=0;skystp=false; - } -} -void Level7Part2() -{ - if (bgbrk==1||bgbrk==4) - { - int times=5;if (LOWFPS)times*=16; - for (int i=1;i<=times;++i)DBGColor=ColorTransfer(DBGColor,0xFF23459A); - if (DBGColor==0xFF23459A) - { - if(bgbrk==1)bgbrk=2; - if(bgbrk==4)bgbrk=5; - } - } - if (bgbrk==2||bgbrk==5) - { - int times=1;if (LOWFPS)times*=16; - for (int i=1;i<=times;++i)DBGColor=ColorTransfer(DBGColor,0xFF0B0916); - if (DBGColor==0xFF0B0916) - { - if(bgbrk==2)bgbrk=3,bgdbbrk=0.06; - if(bgbrk==5)bgbrk=0,bgdbbrk=re.NextInt(5,20); - } - } - if (bgbrk==3||bgbrk==0) - { - bgdbbrk-=hge->Timer_GetDelta(); - if (bgdbbrk<=0) - { - if (bgbrk==0)bgbrk=1; - if (bgbrk==3)bgbrk=4; - } - } - avabrk=(frameleft/(double)AMinute)*0.15f+0.15f; - avacurbrk+=hge->Timer_GetDelta(); - sixbrk+=hge->Timer_GetDelta(); - tbrk+=hge->Timer_GetDelta(); - if (tbrk>10)tbrk=0,NewMultpo(vector2d(re.NextDouble(200,600),re.NextDouble(500,575))); - if (avacurbrk>avabrk) - { - avacurbrk=0; - for (int i=1;i<=re.NextInt(1,10);++i) - { - if (re.NextInt(1,1000)>=500) - { - int pnt=CreateBullet2(10,re.NextDouble(10,590),0,-3*pi/4); - bullet[pnt].bulletaccel=0.0025;bullet[pnt].limv=6; - } - else - { - int pnt=CreateBullet2(re.NextDouble(10,790),10,0,-3*pi/4); - bullet[pnt].bulletaccel=0.0025;bullet[pnt].limv=6; - } - if (re.NextInt(1,1000)>=500) - { - int pnt=CreateBullet2(780,re.NextDouble(10,590),0,-pi/4); - bullet[pnt].bulletaccel=0.0025;bullet[pnt].limv=6; - } - else - { - int pnt=CreateBullet2(re.NextDouble(10,790),10,0,-pi/4); - bullet[pnt].bulletaccel=0.0025;bullet[pnt].limv=6; - } - } - } -} -void Level7Part3() -{ - frameleft=TenSeconds; - if (!skystp) - { - ++bgbrk;if (LOWFPS)bgbrk+=16; - if (bgbrk<30)return; - bgbrk=0; - if (!LOWFPS) - DBGColor=ColorTransfer(DBGColor,0xFFFFFFFF); - else - for (int i=1;i<=17;++i)DBGColor=ColorTransfer(DBGColor,0xFFFFFFFF); - if (DBGColor==0xFFFFFFFF)skystp=skyactive=true,sky.SkySetFadeIn(),sky.SetSpeed(0.01); - sky.SetTime(9); - } - else - { - ++bgbrk;if (LOWFPS)bgbrk+=16; - if (bgbrk<30)return; - bgbrk=0; - if (!LOWFPS) - DBGColor=ColorTransfer(DBGColor,0x00FFFFFF); - else - for (int i=1;i<=17;++i)DBGColor=ColorTransfer(DBGColor,0x00FFFFFF); - if (DBGColor==0x00FFFFFF) - ++part; - } -} -void Level7Part4() -{ - frameleft=(AMinute+ThirtySeconds);clrtime=3; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Rainbow tower..."); - return; - } - ++frameskips; - if (frameskips<10&&!LOWFPS)return; - frameskips=0; - towcnt=0; - deltadelta=pi/720; - CreateTower6(400,300,600,2,1000,3,72); - ++part;All2pnt(); -} -void Level7Part5() -{ - ++frameskips; - if (tower[1].towertype==6) - { - if (frameskips>TenSeconds/5) - { - frameskips=0; - towcnt=0; - CreateTower9(400,300,600,2,1500,72,1200); - } - } - if (tower[1].towertype==9) - { - if (frameskips>TenSeconds/5) - { - frameskips=0; - towcnt=0; - CreateTower4(400,300,500,1,500); - } - } - if (tower[1].towertype==4) - { - if (frameskips>TenSeconds/5) - { - frameskips=0; - towcnt=0; - CreateTower1(400,300,50,4); - } - } - if (tower[1].towertype==1) - { - if (frameskips>TenSeconds/5) - { - frameskips=0; - towcnt=0; - CreateTower2(400,300,50,4); - } - } - if (tower[1].towertype==2) - { - if (frameskips>TenSeconds/2) - { - frameskips=0; - towcnt=0; - CreateTower8(400,300,500,5,20,50); - } - } - if (tower[1].towertype==8) - { - BTarg.TargHide(); - if (frameskips>TenSeconds/5) - { - frameskips=0; - towcnt=0; - CreateTower5(400,300,50,5); - } - } - if (tower[1].towertype==5) - { - if (frameskips>TenSeconds/5) - { - frameskips=0; - towcnt=0; - CreateTower6(400,300,600,2,1000,3,72); - } - } -} -void Level7Part6() -{ - frameleft=AMinute;clrtime=2;towcnt=0; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Hit Z..."); - } - if (Current_Position==1) - { - ++part;All2pnt();avabrk=1.0f;avacurbrk=0; - } -} -void Level7Part7() -{ - avabrk=frameleft/(double)AMinute*0.5f+0.5f; - avacurbrk+=hge->Timer_GetDelta(); - if (avacurbrk>avabrk) - { - if(re.NextInt(0,4)==0)NewMultpo(); - avacurbrk=0; - bool lasta,lastb; - lasta=re.NextInt(1,1000)<500;lastb=re.NextInt(1,1000)<500; - for (int i=0;i<31;++i) - { - int rf=re.NextInt(0,999); - if ((lasta&&rf<600)||(!lasta&&rf<250)) - { - int pnt=CreateBullet2(-15,i*20,2,pi); - bullet[pnt].alterColor=(TColors)(i%8); - bullet[pnt].limv=2+2*(AMinute-frameleft)/(double)AMinute;bullet[pnt].bulletaccel=0.002; - lasta=true; - }else lasta=false; - rf=re.NextInt(0,999); - if ((lastb&&rf<600)||(!lastb&&rf<250)) - { - int pnt=CreateBullet2(815,i*20-10,2,0); - bullet[pnt].alterColor=(TColors)(i%8); - bullet[pnt].limv=2+2*(AMinute-frameleft)/(double)AMinute;bullet[pnt].bulletaccel=0.002; - lastb=true; - }else lastb=false; - } - } -} -double sntang; -void Level7Part8() -{ - frameleft=AMinute;clrtime=2;towcnt=0; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Rainbow!"); - } - if (Current_Position==1) - { - ++part;All2pnt();avabrk=0.03f;avacurbrk=1.0f;sntang=-pi/2; - } -} -void rainbowCreator(double rl,double rr,double rad,TColors col,double speed,bool invi=false) -{ - double r=re.NextDouble(rr,rl); - int pnt=CreateBullet2(900+cos(rad)*r,700+sin(rad)*r,speed,re.NextDouble(0,pi),true,invi); - bullet[pnt].alterColor=col; -} -void Level7Part9() -{ - if (sntang>-pi) - { - avacurbrk+=hge->Timer_GetDelta(); - if (avacurbrk>avabrk) - { - sntang-=pi/180;avacurbrk=0; - for(int i=0;i<6;++i)rainbowCreator(660,600,sntang,red,0,1); - for(int i=0;i<6;++i)rainbowCreator(610,550,sntang,orange,0,1); - for(int i=0;i<6;++i)rainbowCreator(560,500,sntang,yellow,0,1); - for(int i=0;i<6;++i)rainbowCreator(510,450,sntang,green,0,1); - for(int i=0;i<6;++i)rainbowCreator(460,410,sntang,blue,0,1); - for(int i=0;i<6;++i)rainbowCreator(420,360,sntang,dblue,0,1); - for(int i=0;i<6;++i)rainbowCreator(365,310,sntang,purple,0,1); - } - } - else - { - avabrk=0.25+(frameleft/(double)AMinute)*0.5f; - avacurbrk+=hge->Timer_GetDelta(); - if (avacurbrk>avabrk) - { - avacurbrk=0; - if(re.NextInt(0,19)==7)NewMultpo(); - double spd=((AMinute-frameleft)/(double)AMinute)+1; - for(int i=0;i<((AMinute-frameleft)/(double)AMinute)*20;++i) - sntang=re.NextDouble(-pi,-pi/2), - rainbowCreator(660,600,sntang,red,spd); - for(int i=0;i<((AMinute-frameleft)/(double)AMinute)*20;++i) - sntang=re.NextDouble(-pi,-pi/2), - rainbowCreator(610,550,sntang,orange,spd); - for(int i=0;i<((AMinute-frameleft)/(double)AMinute)*20;++i) - sntang=re.NextDouble(-pi,-pi/2), - rainbowCreator(560,500,sntang,yellow,spd); - for(int i=0;i<((AMinute-frameleft)/(double)AMinute)*20;++i) - sntang=re.NextDouble(-pi,-pi/2), - rainbowCreator(510,450,sntang,green,spd); - for(int i=0;i<((AMinute-frameleft)/(double)AMinute)*20;++i) - sntang=re.NextDouble(-pi,-pi/2), - rainbowCreator(460,410,sntang,blue,spd); - for(int i=0;i<((AMinute-frameleft)/(double)AMinute)*20;++i) - sntang=re.NextDouble(-pi,-pi/2), - rainbowCreator(420,360,sntang,dblue,spd); - for(int i=0;i<((AMinute-frameleft)/(double)AMinute)*20;++i) - sntang=re.NextDouble(-pi,-pi/2), - rainbowCreator(365,310,sntang,purple,spd); - sntang=-pi-0.1; - } - } -} -SimpleThing aa,bb; -void Level7Part10() -{ - frameleft=AMinute*2;clrtime=1;towcnt=0; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Interference(fake)"); - } - if (Current_Position==1) - { - ++part;All2pnt();skyactive=false;DBGColor=0xFF000000; - binter.Init("./Resources/b_inter.png",PicBack::Centered,0x80); - binter.SetFadeIn();aa.Init(vector2d(260,292));bb.Init(vector2d(523,292)); - } -} -void Level7Part11() -{ -//260,292;523,292 - aa.Update(true);bb.Update(false); -} -diffCreator dfc[200]; -void Level7Part12() -{ - frameleft=AMinute*2;clrtime=3;towcnt=0; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false;bulcnt=0; - aa.toPoint();bb.toPoint(); - Current_Position=2; - ShowTip("Diffraction(fake)"); - } - if (Current_Position==1) - { - ++part;memset(dfc,0,sizeof(dfc)); - binter.SetFadeOut();bdiff.Init("./resources/b_diff.png",PicBack::Tiled,0x80); - bdiff.SetFadeIn();bdiff.SetScale(0.5); - avabrk=2.0f;avacurbrk=0; - } -} -void Level7Part13() -{ - avabrk=1.0f+frameleft/(double)AMinute; - avacurbrk+=hge->Timer_GetDelta(); - if(avacurbrk>avabrk&&frameleft>=TenSeconds/5) - { - for(int i=0;i<200;++i) - if (!dfc[i].isActive()) - { - if(re.NextInt(1,100)>=75) - { - if(re.NextInt(1,100)>=50) - { - vector2d pos=vector2d(playerpos.x,re.NextDouble(0,600)); - while (GetDist(pos,playerpos)<100) - pos=vector2d(playerpos.x,re.NextDouble(0,600)); - dfc[i].init(pos); - } - else - { - vector2d pos=vector2d(re.NextDouble(0,800),playerpos.y); - while (GetDist(pos,playerpos)<100) - pos=vector2d(re.NextDouble(0,800),playerpos.y); - dfc[i].init(pos); - } - } - else - { - vector2d pos=vector2d(re.NextDouble(0,800),re.NextDouble(0,600)); - while (GetDist(pos,playerpos)<100) - pos=vector2d(re.NextDouble(0,800),re.NextDouble(0,600)); - dfc[i].init(pos); - if(re.NextInt(0,7)==3)NewMultpo(pos); - } - break; - } - avacurbrk=0; - } - for(int i=0;i<200;++i) - if(dfc[i].isActive())dfc[i].update(); -} -BulletSine bnl[100]; -double ykbrk; -void Level7Part14()//Photon school -{ - memset(bnl,0,sizeof(bnl)); - frameleft=AMinute;clrtime=2; - ykbrk=0.5f;skyactive=true;bdiff.SetFadeOut(); - if((DBGColor=ColorTransfer(DBGColor,0x00000000))==0x0)++part; -} -void Level7Part15() -{ - ykbrk-=hge->Timer_GetDelta(); - if (ykbrk<0&&frameleft>TenSeconds/10*3) - { - ykbrk=(double)frameleft/AMinute*0.75f+0.75f; - for (int i=0;i<100;++i) - if (!bnl[i].active) - { - vector2d a,b; - if (re.NextInt(1,100)>=50) - { - if (re.NextInt(1,100)>=50)a=vector2d(re.NextDouble(10,790),610);else a=vector2d(re.NextDouble(10,790),-10); - } - else - { - if (re.NextInt(1,100)>=50)a=vector2d(-10,re.NextDouble(10,590));else a=vector2d(810,re.NextDouble(10,590)); - } - if (re.NextInt(1,100)>=50) - { - if (re.NextInt(1,100)>=50)b=vector2d(re.NextDouble(10,790),610);else b=vector2d(re.NextDouble(10,790),-10); - } - else - { - if (re.NextInt(1,100)>=50)b=vector2d(-10,re.NextDouble(10,590));else b=vector2d(810,re.NextDouble(10,590)); - } - bnl[i].Init(a,b); - break; - } - } - for (int i=0;i<100;++i) - if (bnl[i].active)bnl[i].Update(); -} -double DTCircle; -BCircle Circles[20]; -int CCnt,state; -void Level7Part16()//Great circles -{ - towcnt=0;clrtime=0; - frameleft=Infinity;All2pnt(); - Circles[0].Init(444,20*pi/50000.0f,6,vector2d(400,300)); - Circles[1].Init(444,-20*pi/50000.0f,6,vector2d(400,300)); - CCnt=1;state=0; - DTCircle=0.0f; - ++part;playerpos.x=400,playerpos.y=300; -} -void Level7Part17()//Great circles-child1 -{ - frameleft=Infinity; - DTCircle+=hge->Timer_GetDelta(); - if (DTCircle>1&&CCnt<3) - { - Circles[2].Init(444,10*pi/50000.0f,12,vector2d(400,300)); - Circles[3].Init(444,-10*pi/50000.0f,12,vector2d(400,300)); - CCnt=3; - } - if (DTCircle>2&&CCnt<5) - { - Circles[4].Init(444,8*pi/50000.0f,18,vector2d(400,300)); - Circles[5].Init(444,-8*pi/50000.0f,18,vector2d(400,300)); - CCnt=5; - } - if (DTCircle>3&&CCnt<7) - { - Circles[6].Init(444,8*pi/50000.0f,27,vector2d(400,300)); - Circles[7].Init(444,-8*pi/50000.0f,27,vector2d(400,300)); - CCnt=7; - } - if (DTCircle>4&&CCnt<9) - { - Circles[8].Init(444,6*pi/50000.0f,45,vector2d(400,300)); - Circles[9].Init(444,-6*pi/50000.0f,45,vector2d(400,300)); - CCnt=9; - } - if (DTCircle>5&&CCnt<11) - { - Circles[10].Init(444,6*pi/50000.0f,60,vector2d(400,300)); - Circles[11].Init(444,-6*pi/50000.0f,60,vector2d(400,300)); - CCnt=11; - } - if (DTCircle>5&&CCnt<13) - { - Circles[12].Init(444,3*pi/50000.0f,96,vector2d(400,300)); - Circles[13].Init(444,-3*pi/50000.0f,96,vector2d(400,300)); - CCnt=13; - } - if (Circles[0].GetRange()>=50) - { - int times=1;if (LOWFPS)times=17; - for (int i=1;i<=times;++i) - Circles[0].SetRange(Circles[0].GetRange()-0.1), - Circles[1].SetRange(Circles[1].GetRange()-0.1); - } - if (Circles[2].GetRange()>=100&&CCnt>=3) - { - int times=1;if (LOWFPS)times=17; - for (int i=1;i<=times;++i) - Circles[2].SetRange(Circles[2].GetRange()-0.1), - Circles[3].SetRange(Circles[3].GetRange()-0.1); - } - if (Circles[4].GetRange()>=150&&CCnt>=5) - { - int times=1;if (LOWFPS)times=17; - for (int i=1;i<=times;++i) - Circles[4].SetRange(Circles[4].GetRange()-0.1), - Circles[5].SetRange(Circles[5].GetRange()-0.1); - } - if (Circles[6].GetRange()>=210&&CCnt>=7) - { - int times=1;if (LOWFPS)times=17; - for (int i=1;i<=times;++i) - Circles[6].SetRange(Circles[6].GetRange()-0.1), - Circles[7].SetRange(Circles[7].GetRange()-0.1); - } - if (Circles[8].GetRange()>=270&&CCnt>=9) - { - int times=1;if (LOWFPS)times=17; - for (int i=1;i<=times;++i) - Circles[8].SetRange(Circles[8].GetRange()-0.1), - Circles[9].SetRange(Circles[9].GetRange()-0.1); - } - if (Circles[10].GetRange()>=320&&CCnt>=11) - { - int times=1;if (LOWFPS)times=17; - for (int i=1;i<=times;++i) - Circles[10].SetRange(Circles[10].GetRange()-0.1), - Circles[11].SetRange(Circles[11].GetRange()-0.1); - } - if (Circles[12].GetRange()>=420&&CCnt>=13) - { - int times=1;if (LOWFPS)times=17; - for (int i=1;i<=times;++i) - Circles[12].SetRange(Circles[12].GetRange()-0.1), - Circles[13].SetRange(Circles[13].GetRange()-0.1); - } - else - { - if (CCnt>=13)++part; - for (int i=1;i<=CCnt;++i) - Circles[i].SetDT(i*pi); - } - for (int i=0;i<=CCnt;++i)Circles[i].Update(); - state=0; - towerspr[red]->RenderStretch(770,0,800,30); - towerspr[green]->RenderStretch(380,280,420,320); -} -void Level7Part18()//Great circles-child2 -{ - if(state) - { - towerspr[green]->RenderStretch(770,0,800,30); - towerspr[red]->RenderStretch(380,280,420,320); - } - else - { - towerspr[red]->RenderStretch(770,0,800,30); - towerspr[green]->RenderStretch(380,280,420,320); - } - hgeRect col; - if (state) - { - col=hgeRect(380,280,420,320); - if (col.TestPoint(playerpos.x,playerpos.y))++part; - } - else - { - col=hgeRect(770,0,800,30); - if (col.TestPoint(playerpos.x,playerpos.y))state=1; - } - frameleft=Infinity; - for (int i=0;i<=CCnt;++i) - { - if (i==0||i==1)Circles[i].SetRange(50+10*sin(Circles[i].GetDT())); - if (i==2||i==3)Circles[i].SetRange(100+10*sin(Circles[i].GetDT())); - if (i==4||i==5)Circles[i].SetRange(150+10*sin(Circles[i].GetDT())); - if (i==6||i==7)Circles[i].SetRange(210+20*sin(Circles[i].GetDT())); - if (i==8||i==9)Circles[i].SetRange(270+20*sin(Circles[i].GetDT())); - if (i==10||i==11)Circles[i].SetRange(320+20*sin(Circles[i].GetDT())); - if (i==12||i==13)Circles[i].SetRange(420+30*sin(Circles[i].GetDT())); - Circles[i].Update(); - } -} -BTail btails[50]; -void Level7Part19() -{ - frameleft=AMinute*2;clrtime=3;towcnt=0; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Warning: Trypophobia caution ahead!"); - } - if (Current_Position==1) - { - ++part;All2pnt();avabrk=1.0f;avacurbrk=1.0f;memset(btails,0,sizeof(btails)); - } -} -void Level7Part20() -{ - avacurbrk+=hge->Timer_GetDelta(); - if(avacurbrk>avabrk) - { - avacurbrk=0;avabrk=(frameleft/(double)(AMinute*2))*0.7+0.3; - for(int i=0;i<50;++i) - if(!btails[i].isActive()) - {btails[i].Create();break;} - if(re.NextInt(0,24)==15)NewMultpo(); - } - for(int i=0;i<50;++i) - if(btails[i].isActive())btails[i].Update(); -} -int sttnt; -void Level7Part21() -{ - frameleft=AMinute+ThirtySeconds;All2pnt();clrtime=1; - if (towcnt!=1&&towcnt!=0)return ClearAll(false); - DisableAllTower=false; - ++frameskips; - if (frameskips<10&&!LOWFPS)return; - frameskips=0; - t8special=true; - sttnt=CreateTower8(400,300,2000,2,75,20); - for (int i=1;i<=towcnt;++i) - if (tower[i].RendColor==0x80FFFFFF) - tower[i].RendColor=0x00FFFFFF; - for (int i=1;i<=towcnt;++i) - if ((tower[i].RendColor>>24)<=0x80) - tower[i].RendColor=tower[i].RendColor+0x01FFFFFF; - else - { - ++part; - return; - } -} -void Level7Part22() -{ - tower[sttnt].towertimer=(frameleft/(double)(AMinute+ThirtySeconds))*1250+750; -} -WOP wop[100]; -void Level7Part23()//Wave of Photon -{ - memset(bnl,0,sizeof(bnl));t8special=false; - frameleft=AMinute;All2pnt();towcnt=0; - ykbrk=0.5f;++part;clrtime=1; -} -void Level7Part24() -{ - ykbrk-=hge->Timer_GetDelta(); - if (ykbrk<0&&frameleft>TenSeconds/10*3) - { - ykbrk=(double)frameleft/AMinute/2.0f+0.2f; - for (int i=0;i<100;++i) - if (!wop[i].active) - { - vector2d a,b; - if (re.NextInt(1,100)>=50) - { - if (re.NextInt(1,100)>=50)a=vector2d(re.NextDouble(10,790),610);else a=vector2d(re.NextDouble(10,790),-10); - } - else - { - if (re.NextInt(1,100)>=50)a=vector2d(-10,re.NextDouble(10,590));else a=vector2d(810,re.NextDouble(10,590)); - } - if (re.NextInt(1,100)>=50) - { - if (re.NextInt(1,100)>=50)b=vector2d(re.NextDouble(10,790),610);else b=vector2d(re.NextDouble(10,790),-10); - } - else - { - if (re.NextInt(1,100)>=50)b=vector2d(-10,re.NextDouble(10,590));else b=vector2d(810,re.NextDouble(10,590)); - } - if (re.NextInt(1,100)>=80) - { - vector2d d=playerpos-a; - b=playerpos; - while(b.x>-5&&b.x<805&&b.y>-5&&b.y<605)b=b+d; - } - wop[i].Init(a,b,1+(AMinute-frameleft)/(double)AMinute,0.02); - break; - } - } - for (int i=0;i<100;++i) - if (wop[i].active)wop[i].Update(); -} -RTV rtv[100]; -void Level7Part25() -{ - frameleft=AMinute+ThirtySeconds; - All2pnt();towcnt=Lasercnt=0; - ++part;memset(rtv,0,sizeof(rtv)); - avabrk=1;avacurbrk=0.7;clrtime=1; -} -void Level7Part26() -{ - avacurbrk+=hge->Timer_GetDelta(); - if(avacurbrk>avabrk&&frameleft>TenSeconds/3) - { - avacurbrk=0;avabrk=frameleft/(double)(AMinute+ThirtySeconds)*1.25+0.75; - for(int i=0;i<100;++i)if(!rtv[i].isActive()) - { - int spinner=6; - if(frameleft=40)rtv[i].Init(1,(re.NextInt(0,1)?1:-1)*pi/123,spinner,(TColors)(re.NextInt(0,7)),re.NextInt(0,11)); - else if(re.NextInt(0,1)) - rtv[i].Init(2,(re.NextInt(0,1)?1:-1)*pi/60,spinner,(TColors)(re.NextInt(0,7)),re.NextInt(0,11)); - else - rtv[i].Init(3,pi/48,spinner,(TColors)(re.NextInt(0,7)),re.NextInt(0,11)); - break; - } - } - for(int i=0;i<100;++i)if(rtv[i].isActive())rtv[i].Update(); -} -//Level-1 stats from here -void Levelm1Part0() -{ - frameleft=50;All2pnt();towcnt=0;bgbrk=0; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - LE_Active=false; - Current_Position=2; - ShowTip("\ -Level -1-Over the Horizon\n\ -Level -1! Getting ready?\ -"); - frameleft=TenSeconds;++part; - } -} -void Levelm1Part1()//3 circles -{ - frameleft=AMinute;clrtime=2;towcnt=0; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("RGB..."); - } - if (Current_Position==1) - { - ++part;All2pnt();avabrk=1.0f;avacurbrk=0;tbrk=0; - } -} -void CircCreator(vector2d p,int cnt,TColors col) -{ - for (int i=0;iTimer_GetDelta(); - tbrk+=hge->Timer_GetDelta(); - avabrk=(frameleft/(double)AMinute)*0.5f+0.5f; - if(tbrk>8)tbrk=0,NewMultpo(vector2d(400,300)); - if(avacurbrk>avabrk) - { - avacurbrk=0; - CircCreator(vector2d(400,250),60,red); - CircCreator(vector2d(350,336.6),60,green); - CircCreator(vector2d(450,336.6),60,blue); - } -} -BCircle scircles[200]; -double rspd[200]; -void Levelm1Part3()//circles -{ - frameleft=AMinute;clrtime=1;towcnt=0; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("??????"); - } - if (Current_Position==1) - { - ++part;All2pnt();avabrk=1.0f;avacurbrk=1.0f;memset(scircles,0,sizeof(scircles)); - } -} -void Levelm1Part4() -{ - avacurbrk+=hge->Timer_GetDelta(); - avabrk=0.1+(frameleft/(double)AMinute)*0.4f; - if(avacurbrk>avabrk) - { - avacurbrk=0; - for(int i=0;i<200;++i) - { - if (scircles[i].GetRange()>510||scircles[i].GetRange()<1e-7) - { - scircles[i].Init(1,(re.NextInt(0,1)?1:-1)*(frameleft1e-7&&scircles[i].GetRange()<510) - { - scircles[i].SetRange(scircles[i].GetRange()+(LOWFPS?17:1)*rspd[i]); - if (rspd[i]>0.002)rspd[i]-=0.0005*(LOWFPS?17:1); - if (rspd[i]<=0.002)rspd[i]=0.002; - scircles[i].Update(); - } - } -} -void Levelm1Part5()//Spiky -{ - frameleft=AMinute+ThirtySeconds; - for(int i=0;i<200;++i) - if (scircles[i].GetRange()>1e-7&&scircles[i].GetRange()<510) - scircles[i].circ2pnt(); - towcnt=0;clrtime=1; - Lasercnt=0; - ++part;avabrk=1;avacurbrk=0.5; -} -void Levelm1Part6()//Spiky-child -{ - avacurbrk+=hge->Timer_GetDelta(); - if (avacurbrk>avabrk) - { - avacurbrk=0;avabrk=frameleft/(double)(AMinute+ThirtySeconds)*0.4+0.1; - for (int i=0;i<1000;++i) - { - if (!noname[i].Exist()) - { - if (frameleftTimer_GetDelta(); - if (avacurbrk>avabrk) - { - avacurbrk=0;avabrk=2; - aca.Reverse();acb.Reverse(); - if(re.NextInt(0,7)==3)NewMultpo(vector2d(re.NextInt(10,790),re.NextInt(500,590))); - } - aca.Update(1);acb.Update(); -} -void Levelm1Part9()//Achromatopsia2 -{ - frameleft=AMinute;clrtime=1; - aca.Init(red,1);acb.Init(green,1); - ++part;avabrk=1.5f;avacurbrk=0;achromab=true; -} -void Levelm1Part10()//Achromatopsia2-child -{ - avacurbrk+=hge->Timer_GetDelta(); - if (avacurbrk>avabrk) - { - avacurbrk=0;avabrk=2; - aca.Reverse();acb.Reverse(); - } - aca.Update();acb.Update(); -} -void Levelm1Part11() -{ - frameleft=AMinute+ThirtySeconds;clrtime=2; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("I've heard that all of you\n\ -support hyper-threading?"); - return; - } - ++frameskips; - if(!PlayerSplit)playerpos=vector2d(200,150),PlayerSplit=true; - if (frameskips<10&&!LOWFPS)return; - frameskips=0; - CreateTower8(400,300,857,3,57,20,false); - for (int i=1;i<=towcnt;++i) - if (tower[i].RendColor==0x80FFFFFF) - { - aca.achroma2pnt();acb.achroma2pnt(); - tower[i].RendColor=0x00FFFFFF; - } - for (int i=1;i<=towcnt;++i) - if ((tower[i].RendColor>>24)<=0x80) - tower[i].RendColor=tower[i].RendColor+0x01FFFFFF; - else - { - IfCallLevel=false; - return; - } -} -void Levelm1Part12() -{ - frameleft=ThirtySeconds;if(tower[towcnt].towertype!=6)towcnt=0; - DisableAllTower=false; - ++frameskips; - if (frameskips<10&&!LOWFPS)return; - frameskips=0; - CreateTower6(400,300,2500,2,2000,3,12); - for (int i=1;i<=towcnt;++i) - if (tower[i].RendColor==0x80FFFFFF) - tower[i].RendColor=0x00FFFFFF; - for (int i=1;i<=towcnt;++i) - if ((tower[i].RendColor>>24)<=0x80) - tower[i].RendColor=tower[i].RendColor+0x01FFFFFF; - else - { - IfCallLevel=false;BTarg.TargHide(); - return; - } -} -int m19lead[10],m19gen[700]; -double m19rad; -int m19step,m19cnt; -bool m19pldir; -void Levelm1Part13()//Gravity Vortex -{ - frameleft=AMinute*2;towcnt=0;PlayerSplit=false; - clrtime=2; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Who's collecting such great power here?"); - return; - } - if (!LOWFPS) - DBGColor=ColorTransfer(DBGColor,0xFF000000); - else - for (int i=1;i<=17;++i)DBGColor=ColorTransfer(DBGColor,0xFF000000); - if (DBGColor==0xFF000000) - { - All2pnt();memset(m19lead,0,sizeof(m19lead)); - memset(m19gen,0,sizeof(m19gen)); - ++part;m19rad=m19step=m19cnt=0; - avabrk=0.05;avacurbrk=0; - for(int i=0;i<8;++i) - { - m19lead[i]=CreateBullet2(400,300,0,0); - bullet[m19lead[i]].bulletpos=vector2d(400+250*cos(m19rad+i*pi/4),300+250*sin(m19rad+i*pi/4)); - bullet[m19lead[i]].alterColor=(TColors)i; - bullet[m19lead[i]].inv=true; - } - m19pldir=false;BTarg.targpos=playerpos; - } -} -void Levelm1Part20update() -{ - if(!m19pldir)BTarg.TargGoto(vector2d(400,300)),playerpos=BTarg.targpos; - if(!m19pldir&&GetDist(playerpos,vector2d(400,300))<0.01)m19pldir=true; - for(int i=0;i1) - { - double r=re.NextDouble(0,75-50*(frameleft/(double)(AMinute*2))),theta=re.NextDouble(-pi,pi); - bullet[m19gen[i]].bulletpos=vector2d(400+r*cos(theta),300+r*sin(theta)); - bullet[m19gen[i]].bulletspeed=0; - } - else - { - if(GetDist(bullet[m19gen[i]].bulletpos,vector2d(400,300))<4) - { - bullet[m19gen[i]].redattrib=2; - bullet[m19gen[i]].setdir(re.NextDouble(-pi,pi)); - bullet[m19gen[i]].bulletaccel=0.0015; - bullet[m19gen[i]].limv=re.NextDouble(1,8-2*(frameleft/(double)(AMinute*2))); - } - } - } - } -} -void Levelm1Part14() -{ - avacurbrk+=hge->Timer_GetDelta(); - m19rad+=pi/(5400.0f+1800.0f*(frameleft/(double)(AMinute*2)))*(1000.0f/hge->Timer_GetFPS()); - for(int i=0;i<8;++i)bullet[m19lead[i]].bulletpos=vector2d(400+250*cos(m19rad+i*pi/4),300+250*sin(m19rad+i*pi/4)); - switch(m19step) - { - case 0: - if(avacurbrk>avabrk) - { - for(int i=0;i<8;++i) - { - m19gen[m19cnt]=CreateBullet2(bullet[m19lead[i]].bulletpos.x,bullet[m19lead[i]].bulletpos.y,0,0); - bullet[m19gen[m19cnt]].redir(vector2d(400,300)); - bullet[m19gen[m19cnt]].alterColor=(TColors)i; - bullet[m19gen[m19cnt]].bulletaccel=0.002; - bullet[m19gen[m19cnt]].limv=3; - bullet[m19gen[m19cnt]].whirem=1000; - bullet[m19gen[m19cnt]].addblend=true; - bullet[m19gen[m19cnt++]].redattrib=re.NextInt(0,3)?0:1; - } - if(m19cnt/8>80-50*(frameleft/(double)(AMinute*2)))m19step=1,avabrk=3,tbrk=0; - avacurbrk=0; - } - Levelm1Part20update(); - break; - case 1: - if(avacurbrk>avabrk) - { - m19step=0;avabrk=0.05;memset(m19gen,0,sizeof(m19gen));m19cnt=0; - } - tbrk+=hge->Timer_GetDelta(); - if(tbrk>0.05) - { - tbrk=0; - for(int i=0;i<8;++i) - { - int pnt=CreateBullet2(bullet[m19lead[i]].bulletpos.x,bullet[m19lead[i]].bulletpos.y,0,0); - bullet[pnt].redir(vector2d(400,300)); - bullet[pnt].alterColor=(TColors)i; - bullet[pnt].bulletdir.x=-bullet[pnt].bulletdir.x; - bullet[pnt].bulletdir.y=-bullet[pnt].bulletdir.y; - bullet[pnt].bulletaccel=0.002;bullet[pnt].limv=2; - bullet[pnt].whirem=2500;bullet[pnt].addblend=true; - } - } - Levelm1Part20update(); - break; - } -} -vector2d snextarg; -int snexcnt,snexstep; -Target snexTarg; -void Levelm1Part15()//"Supernova" -{ - frameleft=AMinute*2;clrtime=1; - ++bgbrk;if (LOWFPS)bgbrk+=16; - if (bgbrk<30)return; - bgbrk=0;towcnt=0; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Super...\n\ -...nova!!"); - return; - } - if (Current_Position==1) - { - snexTarg.Init(0.001,vector2d(400,300)); - All2pnt(); - ++part;avabrk=12.0f;avacurbrk=0;tbrk=0; - snexstep=0;snexcnt=10;snexTarg.TargShow(); - } -} -void snCircCreator(vector2d p,int cnt,TColors col,bool mode) -{ - if(mode) - for (int i=0;iTimer_GetDelta(); - tbrk+=hge->Timer_GetDelta(); - if((AMinute*2-frameleft)0.016&&(AMinute*2-frameleft)>TenSeconds/5) - { - tbrk=0; - snCircCreator(vector2d(400,300),144,(TColors)re.NextInt(0,7),true); - } - } - else - { - if(tbrk>0.5) - { - tbrk=0; - snCircCreator(vector2d(400,300),27,(TColors)re.NextInt(0,7),false); - } - } - switch (snexstep) - { - case 0: - if(avacurbrk>avabrk)snexstep=1,snextarg=playerpos; - break; - case 1: - snexTarg.TargGoto(snextarg); - if(GetDist(snexTarg.targpos,snextarg)<0.01) - { - snexstep=2; - avabrk=(frameleft/(double)(AMinute*2))*0.01666+0.01667; - avacurbrk=0; - snexcnt=40-(frameleft/(double)(AMinute*2))*20; - } - break; - case 2: - if(avacurbrk>avabrk) - { - if(--snexcnt>0) - { - avacurbrk=0; - for(int i=0;i<10;++i) - bullet[CreateBullet2(snexTarg.targpos.x,snexTarg.targpos.y,2,re.NextDouble(-pi,pi),true)].addblend=true; - } - else snexstep=0,avabrk=(frameleft/(double)(AMinute*2))*1+1.5f,avacurbrk=0; - } - break; - } -} -yellowGroup fyg[100]; -//Spinner fygs; -void Levelm1Part17() -{ - frameleft=AMinute+ThirtySeconds;clrtime=2; - All2pnt();towcnt=0;memset(fyg,0,sizeof(fyg)); - ++part;avabrk=1;avacurbrk=0.5;//fygs.Init(3,20); -} -void Levelm1Part18() -{ - avacurbrk+=hge->Timer_GetDelta(); - if(avacurbrk>avabrk) - { - avacurbrk=0; - for(int i=0;i<100;++i) - if(!fyg[i].isActive()) - { - if(frameleft>AMinute) - fyg[i].Init(12,2.5-1.5*(frameleft/(double)(AMinute+ThirtySeconds))); - else - fyg[i].Init(36,2.5-1.5*(frameleft/(double)(AMinute+ThirtySeconds))); - break; - } - CircCreator(vector2d(400,300),36,blue); - } - for(int i=0;i<100;++i)if(fyg[i].isActive())fyg[i].Update(); - //fygs.Update(pi/7200*(0.5+frameleft/(double)(AMinute+ThirtySeconds))); -} -int m17lead[4]; -void Levelm1Part19() -{ - frameleft=AMinute+ThirtySeconds;towcnt=0;clrtime=1; - All2pnt();memset(m17lead,0,sizeof(m17lead)); - ++part;avabrk=0; - m17lead[0]=CreateBullet2(10,10,4,0);bullet[m17lead[0]].redir(vector2d(780,10));bullet[m17lead[0]].alterColor=red; - m17lead[1]=CreateBullet2(780,10,4,0);bullet[m17lead[1]].redir(vector2d(780,580));bullet[m17lead[1]].alterColor=green; - m17lead[2]=CreateBullet2(780,580,4,0);bullet[m17lead[2]].redir(vector2d(10,580));bullet[m17lead[2]].alterColor=dblue; - m17lead[3]=CreateBullet2(10,580,4,0);bullet[m17lead[3]].redir(vector2d(10,10));bullet[m17lead[3]].alterColor=white; - for(int i=0;i<4;++i)bullet[m17lead[i]].inv=true;snexTarg.Init(0.001,vector2d(400,300)); - snexstep=0;snexTarg.TargShow();avabrk=5.0f;avacurbrk=0;tbrk=0; -} -void Levelm1Part20() -{ - snexTarg.TargRender();avacurbrk+=hge->Timer_GetDelta(); - tbrk+=hge->Timer_GetDelta();avabrk+=hge->Timer_GetDelta(); - if(avabrk>10)NewMultpo(),avabrk=0; - switch (snexstep) - { - case 0: - if(avacurbrk>avabrk)snexstep=1,snextarg=playerpos; - break; - case 1: - snexTarg.TargGoto(snextarg); - if(GetDist(snexTarg.targpos,snextarg)<0.01) - { - snexstep=0; - avabrk=(frameleft/(double)(AMinute*2))*3+2; - avacurbrk=0; - } - break; - } - if(bullet[m17lead[0]].bulletpos.x>780.01f)bullet[m17lead[0]].bulletpos=vector2d(780,10),bullet[m17lead[0]].redir(vector2d(780,580)); - if(bullet[m17lead[0]].bulletpos.y>580.01f)bullet[m17lead[0]].bulletpos=vector2d(780,580),bullet[m17lead[0]].redir(vector2d(10,580)); - if(bullet[m17lead[0]].bulletpos.x<9.99f)bullet[m17lead[0]].bulletpos=vector2d(10,580),bullet[m17lead[0]].redir(vector2d(10,10)); - if(bullet[m17lead[0]].bulletpos.y<9.99f)bullet[m17lead[0]].bulletpos=vector2d(10,10),bullet[m17lead[0]].redir(vector2d(780,10)); - - if(bullet[m17lead[1]].bulletpos.x>780.01)bullet[m17lead[1]].bulletpos=vector2d(780,10),bullet[m17lead[1]].redir(vector2d(780,580)); - if(bullet[m17lead[1]].bulletpos.y>580.01f)bullet[m17lead[1]].bulletpos=vector2d(780,580),bullet[m17lead[1]].redir(vector2d(10,580)); - if(bullet[m17lead[1]].bulletpos.x<9.99f)bullet[m17lead[1]].bulletpos=vector2d(10,580),bullet[m17lead[1]].redir(vector2d(10,10)); - if(bullet[m17lead[1]].bulletpos.y<9.99f)bullet[m17lead[1]].bulletpos=vector2d(10,10),bullet[m17lead[1]].redir(vector2d(780,10)); - - if(bullet[m17lead[2]].bulletpos.x>780.01f)bullet[m17lead[2]].bulletpos=vector2d(780,10),bullet[m17lead[2]].redir(vector2d(780,580)); - if(bullet[m17lead[2]].bulletpos.y>580.01f)bullet[m17lead[2]].bulletpos=vector2d(780,580),bullet[m17lead[2]].redir(vector2d(10,580)); - if(bullet[m17lead[2]].bulletpos.x<9.99f)bullet[m17lead[2]].bulletpos=vector2d(10,580),bullet[m17lead[2]].redir(vector2d(10,10)); - if(bullet[m17lead[2]].bulletpos.y<9.99f)bullet[m17lead[2]].bulletpos=vector2d(10,10),bullet[m17lead[2]].redir(vector2d(780,10)); - - if(bullet[m17lead[3]].bulletpos.x>780.01f)bullet[m17lead[3]].bulletpos=vector2d(780,10),bullet[m17lead[3]].redir(vector2d(780,580)); - if(bullet[m17lead[3]].bulletpos.y>580.01f)bullet[m17lead[3]].bulletpos=vector2d(780,580),bullet[m17lead[3]].redir(vector2d(10,580)); - if(bullet[m17lead[3]].bulletpos.x<9.99f)bullet[m17lead[3]].bulletpos=vector2d(10,580),bullet[m17lead[3]].redir(vector2d(10,10)); - if(bullet[m17lead[3]].bulletpos.y<9.99f)bullet[m17lead[3]].bulletpos=vector2d(10,10),bullet[m17lead[3]].redir(vector2d(780,10)); - if(tbrk>0.02+(frameleft/(double)(AMinute+ThirtySeconds))*0.08) - { - for(int i=0;i<4;++i) - { - int pnt=CreateBullet2(bullet[m17lead[i]].bulletpos.x,bullet[m17lead[i]].bulletpos.y,0,0,true); - bullet[pnt].redir(snexTarg.targpos); - bullet[pnt].bulletaccel=0.002;bullet[pnt].limv=3; - bullet[pnt].whirem=1500-(frameleft/(double)(AMinute+ThirtySeconds))*500; - bullet[pnt].alterColor=i==0?red:i==1?green:i==2?dblue:white; - } - tbrk=0; - } -} -void Levelm1Part21() -{ - //some part of this level is in towernbullet... - frameleft=AMinute*1.5;clrtime=1; - if (towcnt!=4&&towcnt!=0)return ClearAll(false); - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Zzz..."); - All2pnt(); - return; - } - ++frameskips; - if (frameskips<10&&!LOWFPS)return; - frameskips=0; - CreateTower8(30,10,1500,3,20,30,false); - CreateTower8(746,10,1500,3,20,30,false); - CreateTower8(30,556,1500,3,20,30,false); - CreateTower8(746,556,1500,3,20,30,false); - for (int i=1;i<=towcnt;++i) - if (tower[i].RendColor==0x80FFFFFF) - tower[i].RendColor=0x00FFFFFF; - for (int i=1;i<=towcnt;++i) - if ((tower[i].RendColor>>24)<=0x80) - tower[i].RendColor=tower[i].RendColor+0x01FFFFFF; - else - { - IfCallLevel=false; - return; - } -} -void Levelm2Part0() -{ - frameleft=10;All2pnt();towcnt=0; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("\ -Level -2-Assessments\n\ -Welcome to assessment mode!\n\ -You won't step to the next level until\n\ -you have a collision.\n\ -Good luck and go for the highest score!\ -"); - } - if (Current_Position==1) - { - if((DBGColor=ColorTransfer(DBGColor,0xFF1B2065))!=0xFF1B2065) - DBGColor=ColorTransfer(DBGColor,0xFF1B2065),frameleft=10; - else{++part;IfShowTip=true;bulcnt=0;return;} - } -} -Tower* dbtows[200]; -double dbroll[10]; -void Levelm2Part1() -{ - frameleft=Infinity;tbrk=0; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Test 1 - Directed bullet"); - return; - } - for(int i=0;i<5;++i) - { - dbroll[i]=-i*120-20; - for(int j=0;j<20;++j) - dbtows[i*20+j]=&tower[CreateTower1(j*40+10,dbroll[i],4000,4)]; - } - ++part; -} -void Levelm2Part2() -{ - frameleft=Infinity; - tbrk+=hge->Timer_GetDelta(); - for(int i=0;i<5;++i) - { - dbroll[i]+=0.05*(1000.0f/hge->Timer_GetFPS()); - if(dbroll[i]>600)dbroll[i]=-20; - for(int j=0;j<20;++j) - { - dbtows[i*20+j]->towerpos=vector2d(j*40+10,dbroll[i]); - if(tbrk>0.033&&dbtows[i*20+j]->towertimer>2000)dbtows[i*20+j]->towertimer-=2; - } - } - if(tbrk>0.033)tbrk=0; -} -void Levelm2Part3() -{ - frameleft=Infinity; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Test 2 - Random bullets"); - All2pnt(); - return; - } - if (towcnt!=1&&towcnt!=0)return ClearAll(false); - ++frameskips; - if (frameskips<10&&!LOWFPS)return; - CreateTower2(400,300,999999999,0); - for (int i=1;i<=towcnt;++i) - if (tower[i].RendColor==0x80FFFFFF) - tower[i].RendColor=0x00FFFFFF; - for (int i=1;i<=towcnt;++i) - if ((tower[i].RendColor>>24)<=0x80) - tower[i].RendColor=tower[i].RendColor+0x01FFFFFF; - else - { - ++part;assetime=tbrk=0; - return; - } -} -int rcnt; -void Levelm2Part4() -{ - frameleft=Infinity; - tbrk-=hge->Timer_GetDelta(); - if(tbrk<0) - { - tbrk=0.5; - if(assetime>=5)tbrk=re.NextDouble(0.25,0.5); - if(assetime>=10)tbrk=re.NextDouble(0.1,0.2); - if(assetime>=20)tbrk=re.NextDouble(0.05,0.08); - if(assetime>=30)tbrk=re.NextDouble(0.02,0.035); - if(assetime>=60)tbrk=0.02;if(assetime>=90)tbrk=0.01; - if(assetime<90)rcnt=1;if(assetime>=90)rcnt=2; - if(assetime>=120)rcnt=4;if(assetime>=150)rcnt=8; - if(assetime>=180)rcnt=16; - double rspeed=re.NextDouble(0.5+3*assetime/180.0f,1+9*assetime/180.0f); - for(int i=0;iTimer_GetDelta(); - if(avacurbrk>avabrk) - { - avacurbrk=0; - avabrk=6-2*assetime/120.0f; - if(avabrk<3)avabrk=1; - es.Init(3+5*assetime/120.0f,10,re.NextInt(-pi,pi)); - } - if(es.isActive())es.Update(); -} - -BCircle asscircles[200]; -void Levelm2Part7() -{ - frameleft=Infinity; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Test 4 - Crossing 1"); - All2pnt(); - return; - } - if (towcnt!=0)return ClearAll(false); - if(Current_Position==1) - { - memset(asscircles,0,sizeof(asscircles)); - ++part;avabrk=0;avacurbrk=0; - } -} -void Levelm2Part8() -{ - frameleft=Infinity; - avacurbrk+=hge->Timer_GetDelta(); - if(avacurbrk>avabrk) - { - shots=1; - for(int i=0;i<200;++i) - if (asscircles[i].GetRange()>800||asscircles[i].GetRange()<1e-7) - { - asscircles[i].Init(1,assetime/120.0f*0.00025,36,vector2d(250,300),blue);break; - } - for(int i=0;i<200;++i) - if (asscircles[i].GetRange()>800||asscircles[i].GetRange()<1e-7) - { - asscircles[i].Init(1,-assetime/120.0f*0.00025,36,vector2d(550,300),blue);break; - } - avacurbrk=0; - avabrk=3-assetime/60; - if(avabrk<0.5)avabrk=0.5; - } - for(int i=0;i<200;++i) - { - if (asscircles[i].GetRange()>1e-7&&asscircles[i].GetRange()<800) - { - asscircles[i].SetRange(asscircles[i].GetRange()+(LOWFPS?17:1)*0.05); - asscircles[i].Update(); - } - } -} -void Levelm2Part9() -{ - frameleft=Infinity; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Test 5 - Crossing 2"); - for(int i=0;i<200;++i) - if (asscircles[i].GetRange()>1e-7&&asscircles[i].GetRange()<800) - asscircles[i].circ2pnt(); - return; - } - if(Current_Position==1) - { - memset(asscircles,0,sizeof(asscircles)); - ++part;avabrk=0;avacurbrk=0; - } -} -void Levelm2Part10() -{ - frameleft=Infinity; - avacurbrk+=hge->Timer_GetDelta(); - if(avacurbrk>avabrk) - { - shots=1; - for(int i=0;i<200;++i) - if (asscircles[i].GetRange()>800||asscircles[i].GetRange()<1e-7) - { - asscircles[i].Init(1,0.0001,36+(24*assetime/120.0f),vector2d(400,300),blue);break; - } - for(int i=0;i<200;++i) - if (asscircles[i].GetRange()>800||asscircles[i].GetRange()<1e-7) - { - asscircles[i].Init(1,-0.0001,36+(24*assetime/120.0f),vector2d(400,300),blue);break; - } - avacurbrk=0; - avabrk=2-assetime/60; - if(avabrk<0.3)avabrk=0.3; - } - for(int i=0;i<200;++i) - { - if (asscircles[i].GetRange()>1e-7&&asscircles[i].GetRange()<800) - { - asscircles[i].SetRange(asscircles[i].GetRange()+(LOWFPS?17:1)*0.05); - asscircles[i].Update(); - } - } -} -double assrad; -SELineLaser trap[100]; -void Levelm2Part11() -{ - frameleft=Infinity; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Test 6 - Trappy"); - for(int i=0;i<200;++i) - if (asscircles[i].GetRange()>1e-7&&asscircles[i].GetRange()<800) - asscircles[i].circ2pnt(); - return; - } - if(Current_Position==1) - { - memset(asscircles,0,sizeof(asscircles)); - ++part;avabrk=0;avacurbrk=0;tbrk=0;memset(trap,0,sizeof(trap)); - } -} -void Levelm2Part12() -{ - frameleft=Infinity; - avacurbrk+=hge->Timer_GetDelta(); - for(int i=0;i<100;++i) - if(trap[i].isActive())trap[i].Update(); - if(avacurbrk>avabrk) - { - bool sh=re.NextInt(0,1); - for(int c=0;c<(assetime>30?(assetime-30)/30:1);++c,sh^=1) - for(int i=0;i<100;++i) - if(!trap[i].isActive()) - { - if(sh)trap[i].Init(re.NextInt(10,590),1); - else trap[i].Init(re.NextInt(10,790),0); - break; - } - avacurbrk=0; - if(assetime<60)avabrk=3-2*assetime/60.0f; - else avabrk=2.5-(assetime-60)/120.0f; - } -} -double asssrd1; -void Levelm2Part13() -{ - frameleft=Infinity; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Test 7 - Sine wave"); - All2pnt(); - return; - } - if (towcnt!=0)return ClearAll(false); - if(Current_Position==1) - { - ++part;tbrk=asssrd1=avacurbrk=0; - } -} -void Levelm2Part14() -{ - frameleft=Infinity; - tbrk+=hge->Timer_GetDelta(); - if(tbrk>0.075) - { - tbrk=0; - asssrd1+=pi/45; - //right - for(int i=0;i<5;++i) - CreateBullet2(810,120*(i+1)+120*sin(asssrd1),2,0,true); - //right2 - if(assetime>15) - { - for(int i=0;i<5;++i) - CreateBullet2(810,120*(i+1)+120*sin(asssrd1+pi/12),2,0,true); - } - //left - if(assetime>30) - { - for(int i=0;i<5;++i) - CreateBullet2(-10,120*(i+1)+120*sin(asssrd1),2,pi,true); - } - //left2 - if(assetime>45) - { - for(int i=0;i<5;++i) - CreateBullet2(-10,120*(i+1)+120*sin(asssrd1+pi/12),2,pi,true); - } - if(assetime>60) - { - avacurbrk-=hge->Timer_GetDelta(); - if(avacurbrk<0) - { - CreateBullet1(0,0,3,0);CreateBullet1(800,0,3,0); - CreateBullet1(0,600,3,0);CreateBullet1(800,600,3,0); - avacurbrk=0.5-0.3*(assetime-60.0f)/60.0f; - if(avacurbrk<0.1)avacurbrk=0.1; - } - } - } -} -int resvpos,rpbcnt; -double delx; -void Levelm2Part15() -{ - frameleft=Infinity; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Test 8 - Density test"); - All2pnt(); - return; - } - if (towcnt!=0)return ClearAll(false); - if(Current_Position==1) - { - ++part;tbrk=asssrd1=avacurbrk=0;resvpos=re.NextInt(0,49);rpbcnt=0; - } -} -void Levelm2Part16() -{ - frameleft=Infinity; - tbrk-=hge->Timer_GetDelta(); - if(tbrk<0) - { - tbrk=0.1-0.05*(assetime/120.0f);if(tbrk<0.05)tbrk=0.05; - if(re.NextInt(0,100)==37&&!rpbcnt) - { - rpbcnt=6;int oldrp=resvpos; - for(resvpos=re.NextInt(0,49);abs(resvpos-oldrp)>20||abs(resvpos-oldrp)<5;resvpos=re.NextInt(0,49)); - delx=re.NextDouble(300,650); - } - for(int i=0;i<50;++i) - { - if(abs(i-resvpos)>2) - { - int pnt=CreateBullet2(810,12*i,1+3*assetime/180.0f,0,true); - if(rpbcnt>0)bullet[pnt].limpos=vector2d(delx,12*i); - } - } - if(rpbcnt)--rpbcnt; - if(resvpos==0)resvpos+=re.NextInt(0,1); - else if(resvpos==49)resvpos+=re.NextInt(-1,0); - else resvpos+=re.NextInt(-1,1); - } -} -CPinBall pinballs[200]; -void Levelm2Part17() -{ - frameleft=Infinity; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Test 9 - Pinball"); - All2pnt(); - return; - } - if (towcnt!=0)return ClearAll(false); - if(Current_Position==1) - { - ++part;tbrk=0;memset(pinballs,0,sizeof(pinballs)); - } -} -void Levelm2Part18() -{ - frameleft=Infinity; - //Always clean up! - for(int i=0;i<200;++i)if(pinballs[i].Getlifetime()>5)pinballs[i].Kill(); - tbrk-=hge->Timer_GetDelta(); - if(tbrk<0) - { - tbrk=1.25-0.5*assetime/120.0f;if(tbrk<0.5)tbrk=0.5; - for(int i=0;i<200;++i) - if(pinballs[i].Getlifetime()==0) - { - int lay=4+4*assetime/120.0f;if(lay>8)lay=9; - lay=re.NextInt(3,lay); - vector2d pos; - while(1) - { - pos=vector2d(re.NextDouble(100,600),re.NextDouble(100,500)); - bool place=(GetDist(pos,playerpos)>=100); - for(int j=0;j<200;++j) - if(pinballs[j].Getlifetime()>0&&j!=i) - if(GetDist(pinballs[j].Position(),pos)0) - { - vector2d pos=pinballs[i].Position(); - if(pos.x790-pinballs[i].Radius()) - pinballs[i].Delta().x=-pinballs[i].Delta().x,++pinballs[i].Getlifetime(),pinballs[i].UpdateDelta(); - if(pos.y590-pinballs[i].Radius()) - pinballs[i].Delta().y=-pinballs[i].Delta().y,++pinballs[i].Getlifetime(),pinballs[i].UpdateDelta(); - for(int j=i+1;j<200;++j) - if(pinballs[j].Getlifetime()>0&&pinballs[j].Getlifetime()<=5) - if(GetDist(pinballs[j].Position(),pinballs[i].Position())Timer_GetDelta(); - if(tbrk<0) - { - tbrk=2-1*(assetime/120.0f);if(tbrk<0.75)tbrk=0.75; - delx=re.NextDouble(350,700); - resvpos=re.NextInt(0,49); - for(int i=0;i<50;++i) - { - int pnt=CreateBullet2(810,12*i,1+2*assetime/180.0f,0,true); - if(abs(i-resvpos)<=3)bullet[pnt].limpos=vector2d(delx,12*i); - } - } -} -void Levelm2Part21() -{ - frameleft=Infinity;Dis8ref=true;tbrk=0; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Test 11 - Extreme speeds"); - All2pnt();towcnt=0; - return; - } - ++frameskips; - if (frameskips<10&&!LOWFPS)return; - frameskips=0; - for (int i=1;i<=33;++i)CreateTower8(i*24-12,12,500,6,20,30); - for (int i=1;i<=towcnt;++i) - if (tower[i].RendColor==0x80FFFFFF) - tower[i].RendColor=0x00FFFFFF; - for (int i=1;i<=towcnt;++i) - if ((tower[i].RendColor>>24)<=0x80) - tower[i].RendColor=tower[i].RendColor+0x01FFFFFF; - else{++part;return;} -} -void Levelm2Part22() -{ - frameleft=Infinity; - double nspd=6+4*assetime/120.0f;if(nspd>10)nspd=10; - for(int i=1;i<=33;++i)tower[i].bulletspeed=nspd; - tbrk-=hge->Timer_GetDelta(); - if (tbrk>0)return; - tbrk=3-2*(assetime/120.0f); - if(tbrk<0.5)tbrk=0.5; - for (int i=0;i<6;++i) - { - int p=CreateBullet2(playerpos.x+cos(i*pi/3.0f)*6,12+sin(i*pi/3.0f)*6,2,-pi/2); - bullet[p].alterColor=orange; - } -} -SimpLL SLL[200]; -void Levelm2Part23() -{ - frameleft=Infinity;Dis8ref=true;tbrk=0; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Test 12 - Messed up"); - All2pnt();towcnt=0; - return; - } - if (towcnt!=0)return ClearAll(false); - ++part;tbrk=avacurbrk=avabrk=0;memset(SLL,0,sizeof(SLL)); -} -void Levelm2Part24() -{ - frameleft=Infinity; - tbrk-=hge->Timer_GetDelta(); - if(tbrk<0) - { - tbrk=3-2.5*(assetime/120.0f); - if(tbrk<0.5)tbrk=0.5; - /*int cnt=12+12*assetime/120.0f; - if(cnt>24)cnt=24; - for(int i=0;iTimer_GetDelta(); - if(avacurbrk>avabrk) - { - avacurbrk=0;avabrk=4-3*assetime/120.0f;if(avabrk<0.5)avabrk=0.5; - vector2d a,b;int cnt=re.NextInt(5,10); - for (int i=0;i=50) - { - if (re.NextInt(1,100)>=50)a=vector2d(re.NextDouble(10,790),610);else a=vector2d(re.NextDouble(10,790),-10); - } - else - { - if (re.NextInt(1,100)>=50)a=vector2d(-10,re.NextDouble(10,590));else a=vector2d(810,re.NextDouble(10,590)); - } - if (re.NextInt(1,100)>=50) - { - if (re.NextInt(1,100)>=50)b=vector2d(re.NextDouble(10,790),610);else b=vector2d(re.NextDouble(10,790),-10); - } - else - { - if (re.NextInt(1,100)>=50)b=vector2d(-10,re.NextDouble(10,590));else b=vector2d(810,re.NextDouble(10,590)); - } - for(int i=0;i<200;++i) - if(!SLL[i].active) - { - SLL[i].InitLine(a,b,0.1,SETA(ColorToDWORD(blue),0x80)); - SLL[i].active=true;SLL[i].stp=0;SLL[i].brk=0;SLL[i].EnableColl=false; - break; - } - } - } - for(int i=0;i<200;++i) - if(SLL[i].active) - { - SLL[i].Process(); - SLL[i].brk+=hge->Timer_GetDelta(); - if(SLL[i].stp==2) - if(SLL[i].brk>0.02) - { - SLL[i].SetWidth(SLL[i].GetWidth()-0.2); - if(SLL[i].GetWidth()<1)SLL[i].EnableColl=false; - if(SLL[i].GetWidth()<0.05)SLL[i].active=false; - SLL[i].brk=0; - } - if(SLL[i].stp==0) - if(SLL[i].brk>0.02) - { - SLL[i].SetWidth(SLL[i].GetWidth()+0.2); - if(SLL[i].GetWidth()>1)SLL[i].EnableColl=true; - if(SLL[i].GetWidth()>4)SLL[i].stp=1; - SLL[i].brk=0; - } - if(SLL[i].stp==1) - if(SLL[i].brk>5){SLL[i].brk=0;SLL[i].stp=2;} - } -} -void Levelm2Part25() -{ - frameleft=Infinity;Dis8ref=true;tbrk=0; - DisableAllTower=false; - if (IfShowTip) - { - IfShowTip=false; - FadeTip=false; - Current_Position=2; - ShowTip("Bonus test - Lunatic Lunar!"); - All2pnt();towcnt=0; - for(int i=0;i<200;++i)if(SLL[i].active)SLL[i].llsrtopnt(10); - return; - } - ++part;tbrk=0;memset(SLL,0,sizeof(SLL));avabrk=1; -} -void Levelm2Part26() -{ - frameleft=Infinity; - tbrk-=hge->Timer_GetDelta(); - if(tbrk<0) - { - tbrk=0.05; - int cnt=1; - if(!re.NextInt(0,19))avabrk=avabrk?0:1; - for(int i=0;i