aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar chirs241097@gmail.com <chirs241097@gmail.com@c17bf020-1265-9734-9302-a83f62007ddb> 2014-07-06 13:59:07 +0000
committerGravatar chirs241097@gmail.com <chirs241097@gmail.com@c17bf020-1265-9734-9302-a83f62007ddb> 2014-07-06 13:59:07 +0000
commit609780609172b7a7580a49f385087aa10bc1454d (patch)
treeda782147f6c210fad34d423cce4b31a5daac181b
parent8bbaaee3319d5490ac0d68c28d309b180ec07f28 (diff)
downloadbullet-lab-remix-609780609172b7a7580a49f385087aa10bc1454d.tar.xz
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...
-rwxr-xr-xChangeLog16
-rw-r--r--Readme12
-rwxr-xr-xVERSION2
-rw-r--r--global.h2
-rw-r--r--levels.h137
-rw-r--r--libcghEx.cpp2
-rw-r--r--main.cpp118
-rw-r--r--menus.h2
-rw-r--r--towernbullet.h2
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;i<cred;++i)
+ for (int i=0;i<=cred;++i)
bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=4,doneredir=true;
}
}
@@ -663,7 +663,7 @@ void Level4Part5()
}
else
if (!doneredir)
- for (int i=0;i<cred;++i)
+ for (int i=0;i<=cred;++i)
bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=4,doneredir=true;
}
}
@@ -699,7 +699,7 @@ void Level4Part7()
}
else
if (!doneredir)
- for (int i=0;i<cred;++i)
+ for (int i=0;i<=cred;++i)
bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=4,doneredir=true;
}
}
@@ -734,7 +734,7 @@ void Level4Part9()
}
else
if (!doneredir)
- for (int i=0;i<cred;++i)
+ for (int i=0;i<=cred;++i)
bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=4,doneredir=true;
}
}
@@ -770,7 +770,7 @@ void Level4Part11()
}
else
if (!doneredir)
- for (int i=0;i<cred;++i)
+ for (int i=0;i<=cred;++i)
bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=4,doneredir=true;
}
}
@@ -805,7 +805,7 @@ void Level4Part13()
}
else
if (!doneredir)
- for (int i=0;i<cred;++i)
+ for (int i=0;i<=cred;++i)
bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=4,doneredir=true;
}
}
@@ -841,7 +841,7 @@ void Level4Part15()
}
else
if (!doneredir)
- for (int i=0;i<cred;++i)
+ for (int i=0;i<=cred;++i)
bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=4,doneredir=true;
}
}
@@ -876,14 +876,14 @@ void Level4Part17()
}
else
if (!doneredir)
- for (int i=0;i<cred;++i)
+ for (int i=0;i<=cred;++i)
bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=4,doneredir=true;
}
}
}
void Level4Part18()
{
- frameleft=TenSeconds/2;clrtime=0;
+ frameleft=TenSeconds;clrtime=0;
DisableAllTower=false;
if (Current_Position==1)
{
@@ -911,7 +911,7 @@ void Level4Part19()
}
else
if (!doneredir)
- for (int i=0;i<cred;++i)
+ for (int i=0;i<=cred;++i)
bullet[redirs[i]].redir(ATarg.targpos),bullet[redirs[i]].bulletspeed=2,doneredir=true;
}
if (posx<766)
@@ -940,7 +940,7 @@ void Level4Part20()
IfShowTip=false;
FadeTip=false;
Current_Position=2;
- ShowTip("Double Kill, right?");
+ ShowTip("Double Spinner...?");
}
if (Current_Position==1)
{
@@ -1030,6 +1030,7 @@ void Level4Part24()
}
void Level4Part25()
{
+ if(re.NextInt(0,599)==10)NewMultpo();
for (int i=2;i<=5;++i)
tower[i].towertimer=((frameleft)/(double)AMinute)*1800+200;
}
@@ -1129,7 +1130,7 @@ void Level5Part4()
{
pos=0;rev=!rev;
for (int i=1;i<=bulcnt;++i)
- if (bullet[i].bulletspeed<1e-5)
+ if (bullet[i].bullettype==2&&bullet[i].bulletspeed<1e-5)
bullet[i].bulletaccel=0.001,
bullet[i].limv=1+1.5*(frameleft/(double)AMinute);
}
@@ -1170,6 +1171,7 @@ void Level5Part4()
laser[i].Setdata(j,t,s,0xEEFF8800);
trad=initrad+j*pi/36.0f;
if (shot&&j==pos)bullet[CreateBullet2(400+t.x,300+t.y,0.0f,re.NextDouble(0,pi),1)].alterColor=orange;
+ if (shot&&j==pos&&re.NextInt(0,249)==99)NewMultpo(vector2d(400+t.x,300+t.y));
}
if (pos>8&&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;