diff options
-rwxr-xr-x | CHANGELOG.TXT | 9 | ||||
-rw-r--r-- | hge/power.cpp | 2 | ||||
-rw-r--r-- | hge/system.cpp | 2 | ||||
-rw-r--r-- | levels.h | 36 | ||||
-rw-r--r-- | main.cpp | 1 | ||||
-rw-r--r-- | towernbullet.h | 50 |
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); @@ -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; + } +} @@ -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) |