From 609780609172b7a7580a49f385087aa10bc1454d Mon Sep 17 00:00:00 2001 From: "chirs241097@gmail.com" Date: Sun, 6 Jul 2014 13:59:07 +0000 Subject: Fix bug that cause you unable to charge if you try to use clr directly after your clr's used up. Add Multpo's for Level 3/4/5/6, and level 7 partically. Fix stupid bug in Level4Part2 and other similiar parts. Fix several bugs in level 5/6. Reduce given-away score in level "Sine Wave". It wassssSssss too long! Fix typo... Blinking HangUpText *should* be fixed now... --- ChangeLog | 16 ++++++- Readme | 12 +++-- VERSION | 2 +- global.h | 2 +- levels.h | 137 ++++++++++++++++++++++++++++++++++----------------------- libcghEx.cpp | 2 +- main.cpp | 118 ++++++++++++++++++++++++------------------------- menus.h | 2 +- towernbullet.h | 2 +- 9 files changed, 168 insertions(+), 125 deletions(-) diff --git a/ChangeLog b/ChangeLog index d8de95f..dfb2054 100755 --- a/ChangeLog +++ b/ChangeLog @@ -2,16 +2,18 @@ Next version: The final release is just there!! Todo's: -*Adjust difficulty!* +*Adjust difficulty!*//almost done? *Add multpo's.* +*Distribute CLRs.* Bug fixes. Tests. Wishlist? Known bugs: -HangUpText blinking still exists... +Blue bullets appearing in Vortex of leaves. Wishlist: +Add spawning effect for Multpo. Make more data stored in .blrscore. In-game music bring back. ~~Now Playing(Music Room)~~ @@ -19,6 +21,16 @@ In-game music bring back. of next BLR.) Pre-Released versions: +0.9.6-0 (r96) +Fix bug that cause you unable to charge if you try to use clr directly +after your clr's used up. +Add Multpo's for Level 3/4/5/6, and level 7 partically. +Fix stupid bug in Level4Part2 and other similiar parts. +Fix several bugs in level 5/6. +Reduce given-away score in level "Sine Wave". It wassssSssss too long! +Fix typo... +Blinking HangUpText *should* be fixed now... + 0.9.5-0 (r95) Change configuration and score file names. Files with their names begin with "." may be annoying in Windows though... diff --git a/Readme b/Readme index 0066d82..8bc493f 100644 --- a/Readme +++ b/Readme @@ -99,15 +99,19 @@ Others' comments... Requirements & Recommends Basic environment: -CPU: Atom 1.6GHz will even work. -RAM: 1GiB -GPU&VRAM: Not worse than Intel HD Graphics. -OS: Windows XP+ & DirectX 9 / Linux kernel 2.6+ & OpenGL 1.2+ +CPU: 1GHz. +RAM: 256MiB +GPU&VRAM: With DirectX 9+/OpenGL 1.2+ support. +OS*: Windows XP+ & DirectX 9 / Linux kernel 2.6+ & OpenGL 1.2+ Recommended environment: CPU: Lots of cores. GPU&VRAM: Very fast graphic rendering. Sound: Ability to run OpenAL software version. +*: According to Micro$oft and MinGW, this game should also run in Windows +98(SE)/ME**, but who's still using that? +**: The source code is just there. You can even port it to MS-DOS... + MORE Recommends... -SERIOUSLY, NO Trypophobia! -CheatEngine(skip levels, obtain more Clear Range's, and more...) diff --git a/VERSION b/VERSION index f8a919d..3df9a6c 100755 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.9.5-0 (r95) \ No newline at end of file +0.9.6-0 (r96) \ No newline at end of file diff --git a/global.h b/global.h index 1acc1e0..a535013 100644 --- a/global.h +++ b/global.h @@ -341,7 +341,7 @@ static const char* archive[]={ }; #endif //static const char* GLOBAL_H_FN="global.h"; -static const char* BLRVERSION="0.9.5-0 (r95)"; +static const char* BLRVERSION="0.9.6-0 (r96)"; static const char *months="JanFebMarAprMayJunJulAugSepOctNovDec"; char *parseDate(const char *date) { diff --git a/levels.h b/levels.h index 2c45ecd..383598b 100644 --- a/levels.h +++ b/levels.h @@ -628,7 +628,7 @@ void Level4Part3() } else if (!doneredir) - for (int i=0;i8&&pos<23) laser[i].EnableColl=true; @@ -1206,7 +1208,7 @@ void Level5Part6() 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]],blue); + BulletEffect_Death(bullet[tbuls[j]],ColorToDWORD(blue)); bullet[tbuls[j]].exist=false; tbuls[j]=0; } @@ -1214,13 +1216,13 @@ void Level5Part6() void Level5Part7() { frameleft=ThirtySeconds;Dis8ref=true;tbrk=0; - if (towcnt!=33&&towcnt!=0)return ClearAll(); + if (towcnt!=33&&towcnt!=0)return ClearAll(false); DisableAllTower=false; if (IfShowTip) { IfShowTip=false; FadeTip=false; - Current_Position=2; + Current_Position=2;All2pnt(); ShowTip("Threatening effect of high speed bullets"); return; } @@ -1236,7 +1238,7 @@ void Level5Part7() tower[i].RendColor=tower[i].RendColor+0x01FFFFFF; else { - ++part;All2pnt(); + ++part;tcnt=0; return; } } @@ -1244,20 +1246,21 @@ void Level5Part8() { tbrk+=hge->Timer_GetDelta(); if (tbrk<=3)return; - tbrk=0;int tg; + 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; - if (towcnt!=66&&towcnt!=0)return ClearAll(); + if (towcnt!=66&&towcnt!=0)return ClearAll(false); DisableAllTower=false; if (IfShowTip) { IfShowTip=false; FadeTip=false; - Current_Position=2; + Current_Position=2;All2pnt(); ShowTip("Do not panic!"); return; } @@ -1273,7 +1276,7 @@ void Level5Part9() tower[i].RendColor=tower[i].RendColor+0x01FFFFFF; else { - ++part;All2pnt(); + ++part;tcnt=0; return; } } @@ -1281,7 +1284,8 @@ void Level5Part10() { tbrk+=hge->Timer_GetDelta(); if (tbrk<=3)return; - tbrk=0; + 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); @@ -1466,12 +1470,12 @@ void Level5Part19() if (Current_Position==1) { ++part;All2pnt(); - ATarg.TargHide(); + ATarg.TargHide();tbrk=0; } } void Level5Part20() { - ntbrk+=hge->Timer_GetDelta(); + 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; @@ -1491,7 +1495,9 @@ void Level5Part20() bullet[a].redattrib=1;bullet[a].redir(vector2d(400,300)); bullet[a].bulletdir.x=-bullet[a].bulletdir.x; bullet[a].bulletdir.y=-bullet[a].bulletdir.y; + if(tbrk>5)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() { @@ -1566,11 +1572,12 @@ void Level6Part2() All2pnt();frameleft=TenSeconds; ++part;spcnt=2;sixrad=sixbrk=0; whicnt=1;DisableAllTower=false; + tbrk=0; } void Level6Part3() { sixbrk+=hge->Timer_GetDelta(); - if (sixrad>2*pi)return; + 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; @@ -1585,11 +1592,12 @@ void Level6Part4() frameleft=TenSeconds;whrcnt=9; ++part;spcnt=3;sixrad=sixbrk=0; whicnt=1;DisableAllTower=false; + tbrk=0; } void Level6Part5() { sixbrk+=hge->Timer_GetDelta(); - if (sixrad>2*pi)return; + 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; @@ -1601,14 +1609,14 @@ void Level6Part5() } void Level6Part6() { - frameleft=TenSeconds; + frameleft=TenSeconds;tbrk=0; ++part;spcnt=4;sixrad=sixbrk=0; whicnt=1;DisableAllTower=false; } void Level6Part7() { sixbrk+=hge->Timer_GetDelta(); - if (sixrad>2*pi)return; + 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; @@ -1623,11 +1631,12 @@ void Level6Part8() frameleft=TenSeconds;whrcnt=6; ++part;spcnt=5;sixrad=sixbrk=0; whicnt=1;DisableAllTower=false; + tbrk=0; } void Level6Part9() { sixbrk+=hge->Timer_GetDelta(); - if (sixrad>2*pi)return; + 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; @@ -1642,11 +1651,12 @@ void Level6Part10() frameleft=TenSeconds;whrcnt=6; ++part;spcnt=6;sixrad=sixbrk=0; whicnt=1;DisableAllTower=false; + tbrk=0; } void Level6Part11() { sixbrk+=hge->Timer_GetDelta(); - if (sixrad>2*pi)return; + 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; @@ -1675,6 +1685,7 @@ void Level6Part12() if (Current_Position==1) { ++part;squashrev=false;All2pnt(); + tbrk=0; CreateTower3(10,10,400,2,1); CreateTower3(766,10,400,2,1); CreateTower3(10,566,400,2,1); @@ -1687,6 +1698,12 @@ void Level6Part12() } void Level6Part13() { + tbrk+=hge->Timer_GetDelta(); + if(tbrk>=12) + { + for(int i=1;i<=4;++i)NewMultpo(tower[i].towerpos); + tbrk=0; + } if (!squashrev) { if (!LOWFPS) @@ -1702,14 +1719,14 @@ void Level6Part13() } else { - tower[1].towerpos.x+=0.1; - tower[1].towerpos.y+=0.07354; - tower[2].towerpos.x-=0.1; - tower[2].towerpos.y+=0.07354; - tower[3].towerpos.x+=0.1; - tower[3].towerpos.y-=0.07354; - tower[4].towerpos.x-=0.1; - tower[4].towerpos.y-=0.07354; + 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 @@ -1727,14 +1744,14 @@ void Level6Part13() } else { - tower[1].towerpos.x-=0.1; - tower[1].towerpos.y-=0.07354; - tower[2].towerpos.x+=0.1; - tower[2].towerpos.y-=0.07354; - tower[3].towerpos.x-=0.1; - tower[3].towerpos.y+=0.07354; - tower[4].towerpos.x+=0.1; - tower[4].towerpos.y+=0.07354; + 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; @@ -1759,12 +1776,13 @@ void Level6Part14()//Avalanche } if (Current_Position==1) { - ++part;All2pnt();avabrk=1.0f;avacurbrk=0;dir=false; + ++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) { @@ -1772,6 +1790,7 @@ void Level6Part15() 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() { @@ -1810,6 +1829,7 @@ void Level6Part17() 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 @@ -2225,14 +2245,16 @@ void Level6Part30()//Hyperfluid! } if (Current_Position==1) { - ++part;All2pnt();avabrk=0.2f;avacurbrk=0;sixbrk=-1; + ++part;All2pnt();avabrk=0.2f;avacurbrk=0;sixbrk=-1;tbrk=0; } } -void Level6Part999999999()//well this isnot an easter egg! +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; @@ -2289,7 +2311,7 @@ void Level7Part1() for (int i=1;i<=17;++i)DBGColor=ColorTransfer(DBGColor,0xFF0B0916); if (DBGColor==0xFF0B0916) { - frameleft=AMinute,++part; + frameleft=AMinute,++part;tbrk=0; bgdbbrk=re.NextInt(5,20),bgbrk=0; avabrk=0.2f;avacurbrk=0;skystp=false; } @@ -2328,6 +2350,8 @@ void Level7Part2() 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; @@ -2494,6 +2518,7 @@ void Level7Part7() 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; @@ -2565,6 +2590,7 @@ void Level7Part9() 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), @@ -2668,6 +2694,7 @@ void Level7Part13() 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; } @@ -3858,36 +3885,36 @@ void Levelm2Part14() 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); - asssrd1+=pi/45; //right2 - if(assetime>30) + 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>60) + if(assetime>30) { for(int i=0;i<5;++i) CreateBullet2(-10,120*(i+1)+120*sin(asssrd1),2,pi,true); } //left2 - if(assetime>90) + 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>120) + 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-120.0f)/60.0f; + avacurbrk=0.5-0.3*(assetime-60.0f)/60.0f; if(avacurbrk<0.1)avacurbrk=0.1; } } diff --git a/libcghEx.cpp b/libcghEx.cpp index 9c5f636..3c19f14 100644 --- a/libcghEx.cpp +++ b/libcghEx.cpp @@ -68,7 +68,7 @@ void CircleIndicator::Render(double x,double y){circle->Render(x,y);} void LinearProgresser::Init(double _a,double _b,double _Lim){a=_a,b=_b,Limit=_Lim;} void LinearProgresser::Launch(){Elapsed=0;val=a;} -void LinearProgresser::Update(double DT){if (Elapsed>=Limit)return (void)(val=b,Elapsed=Limit);Elapsed+=DT;val=(b-a)*(Elapsed/Limit)+a;} +void LinearProgresser::Update(double DT){if (Elapsed+DT>=Limit)return (void)(val=b,Elapsed=Limit);Elapsed+=DT;val=(b-a)*(Elapsed/Limit)+a;} double LinearProgresser::GetValue(){return val;} double LinearProgresser::GetA(){return a;} double LinearProgresser::GetB(){return b;} diff --git a/main.cpp b/main.cpp index 9f78873..27a07f8 100644 --- a/main.cpp +++ b/main.cpp @@ -214,73 +214,73 @@ void ProcessPlayer() if (playerpos.y>10)playerpos.y-=realspd; if (hge->Input_GetKeyState(HGEK_DOWN)&&!playerLockY) if ((playerpos.y<570&&!PlayerSplit)||(playerpos.y<270&&PlayerSplit))playerpos.y+=realspd; - if(mode!=2) + if(mode==2)return; + if (!clrmode) { - if (!clrmode) + if (hge->Input_GetKeyStateEx(diffkey?HGEK_X:HGEK_Z)==HGEKST_HIT&&clrmaxrange==0) + {clrind=0;charge=1;} + if (hge->Input_GetKeyStateEx(diffkey?HGEK_X:HGEK_Z)==HGEKST_KEEP&&charge) { - if (hge->Input_GetKeyStateEx(diffkey?HGEK_X:HGEK_Z)==HGEKST_HIT&&clrmaxrange==0) - {clrind=0;charge=1;} - if (hge->Input_GetKeyStateEx(diffkey?HGEK_X:HGEK_Z)==HGEKST_KEEP&&charge) - { - if (clrmaxrange<=400) - {if (LOWFPS)clrmaxrange+=1.6;else clrmaxrange+=0.1;} - if (!LOWFPS)clrind+=0.001*pi;else clrind+=0.016*pi; - clrcircle->RenderEx(playerpos.x+7.2,playerpos.y+7.2,clrind,2*clrmaxrange/193.0f); - if(PlayerSplit)for(int i=1;i<4;++i) - clrcircle->RenderEx(playerpos.x+splitData[i].x+7.2,playerpos.y+splitData[i].y+7.2,clrind,2*clrmaxrange/193.0f); - } - if (hge->Input_GetKeyStateEx(diffkey?HGEK_X:HGEK_Z)==HGEKST_RELEASE&&charge) - { - charge=0; - if (clrmaxrange<=50) - {if (clrtime+clrbns>0){--clrtime;clrmaxrange=350;Player_Clear_Expand();++clrusg;}} - else - {Player_Clear_Expand();++clrusg;} - } - if (clrrange!=0) - { - Player_Clear_Expand(); - clrcircle->RenderEx(playerpos.x+7.2,playerpos.y+7.2,clrind,2*(clrmaxrange-clrrange)/193.0f); - if(PlayerSplit)for(int i=1;i<4;++i) - clrcircle->RenderEx(playerpos.x+splitData[i].x+7.2,playerpos.y+splitData[i].y+7.2,clrind,2*(clrmaxrange-clrrange)/193.0f); - clrind+=(LOWFPS?0.016*pi:0.001*pi); - } - if (clrrange>=clrmaxrange)clrrange=clrmaxrange=0; + if (clrmaxrange<=400) + {if (LOWFPS)clrmaxrange+=1.6;else clrmaxrange+=0.1;} + if (!LOWFPS)clrind+=0.001*pi;else clrind+=0.016*pi; + clrcircle->RenderEx(playerpos.x+7.2,playerpos.y+7.2,clrind,2*clrmaxrange/193.0f); + if(PlayerSplit)for(int i=1;i<4;++i) + clrcircle->RenderEx(playerpos.x+splitData[i].x+7.2,playerpos.y+splitData[i].y+7.2,clrind,2*clrmaxrange/193.0f); } - else + if (hge->Input_GetKeyStateEx(diffkey?HGEK_X:HGEK_Z)==HGEKST_RELEASE&&charge) { - if (hge->Input_GetKeyStateEx(diffkey?HGEK_X:HGEK_Z)==HGEKST_HIT&&clrmaxrange==0) - {clrind=0;charge=1;} - if (hge->Input_GetKeyStateEx(diffkey?HGEK_X:HGEK_Z)==HGEKST_KEEP&&charge) - { - if (clrmaxrange<=400) - {if (LOWFPS)clrmaxrange+=1.6;else clrmaxrange+=0.1;} - if (!LOWFPS)clrind+=0.001*pi;else clrind+=0.016*pi; - clrcircle->RenderEx(playerpos.x+7.2,playerpos.y+7.2,clrind,2*clrmaxrange/193.0f); - if(PlayerSplit)for(int i=1;i<4;++i) - clrcircle->RenderEx(playerpos.x+splitData[i].x+7.2,playerpos.y+splitData[i].y+7.2,clrind,2*clrmaxrange/193.0f); - } - if (hge->Input_GetKeyStateEx(diffkey?HGEK_X:HGEK_Z)==HGEKST_RELEASE&&charge) + charge=0; + if (clrmaxrange<=50) { - charge=0; - if (clrmaxrange<=50) - { - if(clrtime+clrbns>0) - { - Player_Clear_Rotate();if(clrmaxrange<50)--clrtime,clrmaxrange=350;++clrusg; - } - }else{Player_Clear_Rotate();++clrusg;} + if (clrtime+clrbns>0) + {--clrtime;clrmaxrange=350;Player_Clear_Expand();++clrusg;} + else clrmaxrange=0; } - if (clrrad-pi/2>1e-7) + else{Player_Clear_Expand();++clrusg;} + } + if (clrrange!=0) + { + Player_Clear_Expand(); + clrcircle->RenderEx(playerpos.x+7.2,playerpos.y+7.2,clrind,2*(clrmaxrange-clrrange)/193.0f); + if(PlayerSplit)for(int i=1;i<4;++i) + clrcircle->RenderEx(playerpos.x+splitData[i].x+7.2,playerpos.y+splitData[i].y+7.2,clrind,2*(clrmaxrange-clrrange)/193.0f); + clrind+=(LOWFPS?0.016*pi:0.001*pi); + } + if (clrrange>=clrmaxrange)clrrange=clrmaxrange=0; + } + else + { + if (hge->Input_GetKeyStateEx(diffkey?HGEK_X:HGEK_Z)==HGEKST_HIT&&clrmaxrange==0) + {clrind=0;charge=1;} + if (hge->Input_GetKeyStateEx(diffkey?HGEK_X:HGEK_Z)==HGEKST_KEEP&&charge) + { + if (clrmaxrange<=400) + {if (LOWFPS)clrmaxrange+=1.6;else clrmaxrange+=0.1;} + if (!LOWFPS)clrind+=0.001*pi;else clrind+=0.016*pi; + clrcircle->RenderEx(playerpos.x+7.2,playerpos.y+7.2,clrind,2*clrmaxrange/193.0f); + if(PlayerSplit)for(int i=1;i<4;++i) + clrcircle->RenderEx(playerpos.x+splitData[i].x+7.2,playerpos.y+splitData[i].y+7.2,clrind,2*clrmaxrange/193.0f); + } + if (hge->Input_GetKeyStateEx(diffkey?HGEK_X:HGEK_Z)==HGEKST_RELEASE&&charge) + { + charge=0; + if (clrmaxrange<=50) { - Player_Clear_Rotate(); - clrcircle->RenderEx(playerpos.x+7.2,playerpos.y+7.2,clrind,2*clrmaxrange/193.0f*(5*pi/2.0f-clrrad)/(2*pi)); - if(PlayerSplit)for(int i=1;i<4;++i) - clrcircle->RenderEx(playerpos.x+splitData[i].x+7.2,playerpos.y+splitData[i].y+7.2,clrind,2*clrmaxrange/193.0f*(5*pi/2.0f-clrrad)/(2*pi)); - clrind+=(LOWFPS?0.016*pi:0.001*pi); - } - if (5*pi/2-clrrad<1e-7)clrrad=pi/2,clrmaxrange=0; + if(clrtime+clrbns>0) + {--clrtime;clrmaxrange=350;Player_Clear_Rotate();++clrusg;} + else clrmaxrange=0; + }else{Player_Clear_Rotate();++clrusg;} + } + if (clrrad-pi/2>1e-7) + { + Player_Clear_Rotate(); + clrcircle->RenderEx(playerpos.x+7.2,playerpos.y+7.2,clrind,2*clrmaxrange/193.0f*(5*pi/2.0f-clrrad)/(2*pi)); + if(PlayerSplit)for(int i=1;i<4;++i) + clrcircle->RenderEx(playerpos.x+splitData[i].x+7.2,playerpos.y+splitData[i].y+7.2,clrind,2*clrmaxrange/193.0f*(5*pi/2.0f-clrrad)/(2*pi)); + clrind+=(LOWFPS?0.016*pi:0.001*pi); } + if (5*pi/2-clrrad<1e-7)clrrad=pi/2,clrmaxrange=0; } } void RefreshScore() diff --git a/menus.h b/menus.h index cca8132..70d6998 100644 --- a/menus.h +++ b/menus.h @@ -1110,7 +1110,7 @@ public: if(mode==1) MenuFont->printf(xoffset-100,310,HGETEXT_LEFT,"Restarts %d",restarts); else - MenuFont->printf(xoffset-100,310,HGETEXT_LEFT,"Restarts %d",coll); + MenuFont->printf(xoffset-100,310,HGETEXT_LEFT,"Collisions %d",coll); MenuFont->printf(xoffset-100,340,HGETEXT_LEFT,"Semi-collisions %d",semicoll); MenuFont->printf(xoffset-100,370,HGETEXT_LEFT,"CLR Usage %d",clrusg); MenuFont->printf(xoffset-100,400,HGETEXT_LEFT,"Average FPS: %.02f",averfps); diff --git a/towernbullet.h b/towernbullet.h index a79fb61..dc78aea 100644 --- a/towernbullet.h +++ b/towernbullet.h @@ -1886,7 +1886,7 @@ public: } if (elasp>2) { - stage=1; + stage=1;NewMultpo(vector2d(400,300)); drange=GetDist(bullet[Bul[ccnt-1]].bulletpos,vector2d(400,300)); dtrad=(drad-srad);while (dtrad>pi/6.0f)dtrad-=pi/6.0f;dtrad/=delay; dtrad2=(2*pi-drad+srad);while (dtrad2>pi/6.0f)dtrad2-=pi/6.0f;dtrad2/=delay; -- cgit v1.2.3