aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xCHANGELOG.TXT9
-rw-r--r--hge/power.cpp2
-rw-r--r--hge/system.cpp2
-rw-r--r--levels.h36
-rw-r--r--main.cpp1
-rw-r--r--towernbullet.h50
6 files changed, 82 insertions, 18 deletions
diff --git a/CHANGELOG.TXT b/CHANGELOG.TXT
index 38a59f8..2d2b426 100755
--- a/CHANGELOG.TXT
+++ b/CHANGELOG.TXT
@@ -6,8 +6,11 @@ Add missing tips.
Pre-Released versions:
0.8.1-0_PR (b76)
-New level "Sink" (temporary name).
+There're only one level left before another public PR version!...
+===Real changelog starts from here===
+New level "Sink over the horizon".
New level "Gravity vortex".
+New level "Double reflective".
Make point bullet additive blending.
Allow bullets to pause before being accelerated.
@@ -16,6 +19,7 @@ New level Supernova.
New level (still unnamed).
Support additive blending bullets(for Supernova).
Add some additional tips.
+Move levels to level -1.
Fix blinking of HGE::Gfx_SetTransform in OpenGL.
Fix includes like " #include "../../include/..." " that would
cause errors.
@@ -27,6 +31,7 @@ Modify the corresponding score bullet.
New level Achromatopsia.
New level hyper-threading.
Tower8 partly rewritten, dropping tdir.
+Fix a small problem in level 2.
Move levels to level -1. <-typo fixed
Modify the semi-coll threshold of laser.
SCEffect_Attatch now take a optional parameter.
@@ -54,7 +59,7 @@ always love to use).
This indicates all "normal" levels are completed.
Multiplier system was fully adopted into BLR.
Implement a RandomEngine, replacing all rand().
-Rewrite Leaf_Anim using std::list.
+Rewrite Leaf_Anim using std::list, won't cause crashes now.
Fixed: Trypophobia stops if too many CLR's are used.
Fixed the problem in All2pnt().
Fixed blinking target.
diff --git a/hge/power.cpp b/hge/power.cpp
index 603d794..eabeeaa 100644
--- a/hge/power.cpp
+++ b/hge/power.cpp
@@ -5,7 +5,7 @@
**
** Core functions implementation: power status
*/
-
+//DO NOT USE THIS, USE "acpi".
#include "hge_impl.h"
diff --git a/hge/system.cpp b/hge/system.cpp
index e6fa158..915ffe1 100644
--- a/hge/system.cpp
+++ b/hge/system.cpp
@@ -111,7 +111,7 @@ bool CALL HGE_Impl::System_Initiate()
}
#else
- system("uname -s -v -m > os.out");
+ system("uname -svm > os.out");
char osv[100];FILE* a=fopen("os.out","r");fgets(osv,50,a);fclose(a);
osv[strlen(osv)-1]='\0';
System_Log("%s: OS: %s",SYSTEM_SRC_FN,osv);
diff --git a/levels.h b/levels.h
index d20b1e7..f685732 100644
--- a/levels.h
+++ b/levels.h
@@ -3288,7 +3288,7 @@ void Levelm1Part14()
}
yellowGroup fyg[100];
Spinner fygs;
-void Levelm1Part15()//?
+void Levelm1Part15()
{
frameleft=AMinute+ThirtySeconds;
All2pnt();towcnt=0;memset(fyg,0,sizeof(fyg));
@@ -3455,3 +3455,37 @@ void Levelm1Part20()
break;
}
}
+void Levelm1Part21()
+{
+ //some part of this level is in towernbullet...
+ frameleft=AMinute*1.5;
+ 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;
+ }
+}
diff --git a/main.cpp b/main.cpp
index 171262d..e6fdfe6 100644
--- a/main.cpp
+++ b/main.cpp
@@ -516,6 +516,7 @@ void CallLevels()
if (level==-1&&part==18)Levelm1Part18();
if (level==-1&&part==19)Levelm1Part19();
if (level==-1&&part==20)Levelm1Part20();
+ if (level==-1&&part==21)Levelm1Part21();
if (level==1&&part==5)level=2,part=0;
if (level==2&&part==10)level=3,part=0;
if (level==3&&part==7)level=4,part=0;
diff --git a/towernbullet.h b/towernbullet.h
index 18667a6..ea51289 100644
--- a/towernbullet.h
+++ b/towernbullet.h
@@ -775,23 +775,46 @@ void ProcessBullet8(int i)
if(bullet[i].bulletpos.x<=-10||bullet[i].bulletpos.x>=800||bullet[i].bulletpos.y<=-10||bullet[i].bulletpos.y>=600)
{
int cnt=re.NextInt(2,5);if (Dis8ref)cnt=0;
- for (int ii=1;ii<=cnt;++ii)
+ if(bullet[i].redattrib)
{
- int pnt=CreateBullet2(bullet[i].bulletpos.x,bullet[i].bulletpos.y,bullet[i].bulletspeed,re.NextDouble(-pi,pi));
- if (t8special)
+ if(re.NextInt(0,3))//more possibility to reflect
{
- bullet[pnt].alterColor=(TColors)(re.NextInt(0,7));
- bullet[pnt].alterColor2=(TColors)(re.NextInt(0,7));
- if(re.NextInt(0,3)==3)bullet[pnt].redir(vector2d(400,300));
- if(re.NextInt(0,1))++ii;
+ if(bullet[i].bulletpos.x<=-10||bullet[i].bulletpos.x>=800)bullet[i].bulletdir.x=-bullet[i].bulletdir.x;
+ if(bullet[i].bulletpos.y<=-10||bullet[i].bulletpos.y>=600)bullet[i].bulletdir.y=-bullet[i].bulletdir.y;
+ }
+ else//vanish or reflect?...
+ {
+ cnt=4-4*(frameleft/(double)(AMinute*1.5));
+ for (int ii=1;ii<=cnt;++ii)
+ CreateBullet2(bullet[i].bulletpos.x,bullet[i].bulletpos.y,2,re.NextDouble(-pi,pi));
+ bullet[i].exist=false;
+ bullet[i].bulletpos.x=bullet[i].bulletpos.y=0;
+ bullet[i].bulletdir.x=bullet[i].bulletdir.y=0;
+ bullet[i].dist=0;
+ bullet[i].bullettype=0;
+ return;
}
}
- bullet[i].exist=false;
- bullet[i].bulletpos.x=bullet[i].bulletpos.y=0;
- bullet[i].bulletdir.x=bullet[i].bulletdir.y=0;
- bullet[i].dist=0;
- bullet[i].bullettype=0;
- return;
+ else
+ {
+ for (int ii=1;ii<=cnt;++ii)
+ {
+ int pnt=CreateBullet2(bullet[i].bulletpos.x,bullet[i].bulletpos.y,bullet[i].bulletspeed,re.NextDouble(-pi,pi));
+ if (t8special)
+ {
+ bullet[pnt].alterColor=(TColors)(re.NextInt(0,7));
+ bullet[pnt].alterColor2=(TColors)(re.NextInt(0,7));
+ if(re.NextInt(0,3)==3)bullet[pnt].redir(vector2d(400,300));
+ if(re.NextInt(0,1))++ii;
+ }
+ }
+ bullet[i].exist=false;
+ bullet[i].bulletpos.x=bullet[i].bulletpos.y=0;
+ bullet[i].bulletdir.x=bullet[i].bulletdir.y=0;
+ bullet[i].dist=0;
+ bullet[i].bullettype=0;
+ return;
+ }
}
if(PlayerSplit)
{
@@ -1472,6 +1495,7 @@ void ProcessTower8()
if (!t8special)
{
int pnt=CreateBullet8(tower[i].towerpos.x,tower[i].towerpos.y,tower[i].bulletspeed,tower[i].effect);
+ if(level==-1&&part==21)bullet[pnt].redattrib=1;else bullet[pnt].redattrib=0;
if (Dis8ref)
{
if (tower[i].towerpos.y<300)