aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xCHANGELOG.TXT2
-rw-r--r--levels.h25
-rw-r--r--main.cpp4
3 files changed, 25 insertions, 6 deletions
diff --git a/CHANGELOG.TXT b/CHANGELOG.TXT
index a796421..f6841fd 100755
--- a/CHANGELOG.TXT
+++ b/CHANGELOG.TXT
@@ -14,8 +14,10 @@ New level "Gravity vortex".
New level "Double reflective".
Make point bullet additive blending.
Allow bullets to pause before being accelerated.
+Modify "Gravity vortex".
Add command line argument support. Use "--help" for usage.
Add freetype support to hge. It's still pretty buggy.
+Change numeric characters to monospace.
Modify player speed settings.
Beewx still messes up memory... fixed now.
diff --git a/levels.h b/levels.h
index db758ba..c304ab7 100644
--- a/levels.h
+++ b/levels.h
@@ -3380,6 +3380,7 @@ void Levelm1Part18()
Bullet *m19lead[10],*m19gen[700];
double m19rad;
int m19step,m19cnt;
+bool m19pldir;
void Levelm1Part19()
{
frameleft=AMinute*2;towcnt=0;
@@ -3394,9 +3395,12 @@ void Levelm1Part19()
m19lead[i]->alterColor=(TColors)i;
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;i<m19cnt;++i)
{
if(m19gen[i]->redattrib)
@@ -3414,7 +3418,7 @@ void Levelm1Part20update()
m19gen[i]->redattrib=2;
m19gen[i]->setdir(re.NextDouble(-pi,pi));
m19gen[i]->bulletaccel=0.0015;
- m19gen[i]->limv=re.NextDouble(2,6);
+ m19gen[i]->limv=re.NextDouble(1,8-2*(frameleft/(double)(AMinute*2)));
}
}
}
@@ -3441,7 +3445,7 @@ void Levelm1Part20()
m19gen[m19cnt]->addblend=true;
m19gen[m19cnt++]->redattrib=re.NextInt(0,3)?0:1;
}
- if(m19cnt/8>80-50*(frameleft/(double)(AMinute*2)))m19step=1,avabrk=3;
+ if(m19cnt/8>80-50*(frameleft/(double)(AMinute*2)))m19step=1,avabrk=3,tbrk=0;
avacurbrk=0;
}
Levelm1Part20update();
@@ -3451,6 +3455,21 @@ void Levelm1Part20()
{
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(m19lead[i]->bulletpos.x,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;
}
@@ -3466,7 +3485,7 @@ void Levelm1Part21()
IfShowTip=false;
FadeTip=false;
Current_Position=2;
- ShowTip("Zzz");
+ ShowTip("Zzz...");
All2pnt();
return;
}
diff --git a/main.cpp b/main.cpp
index 08dbdee..3df15e5 100644
--- a/main.cpp
+++ b/main.cpp
@@ -362,11 +362,9 @@ void RefreshScore()
void CallLevels()
{
//Use this to call level procedures.
- //Don't use this to call the first level!
- //if (level<6)clrtime=0;
if ((mode==4||mode<=2)&&coll!=0){DeathGUI_Init();return;}
if (!IfCallLevel) return;
- //Check Complete
+ //Check Complete here
if (level==1&&part==0)Level1Part0();
if (level==1&&part==1)Level1Part1();
if (level==1&&part==2)Level1Part2();