diff options
-rwxr-xr-x | CHANGELOG.TXT | 3 | ||||
-rw-r--r-- | levels.h | 8 | ||||
-rw-r--r-- | main.cpp | 14 | ||||
-rw-r--r-- | scoresystem.h | 2 | ||||
-rw-r--r-- | towernbullet.h | 58 |
5 files changed, 68 insertions, 17 deletions
diff --git a/CHANGELOG.TXT b/CHANGELOG.TXT index cc98a75..da257ad 100755 --- a/CHANGELOG.TXT +++ b/CHANGELOG.TXT @@ -17,11 +17,14 @@ New level "Double reflective". Make point bullet additive blending. Allow bullets to pause before being accelerated. Modify "Gravity vortex". +Modify "Achromatopsia". (Thanks to my classmate's advice...) +Report build and version in the log file. Add command line argument support. Use "--help" for usage. Add freetype support to hge. It's still pretty buggy. Add experimental support for cross compiling with mingw-w64. (Mingw-w64 build might be the official build in the future.) Fix blinking HangUpText. +Fix crashes in mingw-64 build. Change numeric characters to monospace. Modify player speed settings. Beewx still messes up memory... fixed now. @@ -3106,8 +3106,8 @@ achromaGroup aca,acb; void Levelm1Part7()//Achromatopsia1 { frameleft=AMinute;for(int i=0;i<1000;++i)if(noname[i].Exist())noname[i].noname2pnt(); - aca.Init(red,0.2);acb.Init(green,0.2); - ++part;avabrk=2.0f;avacurbrk=0; + aca.Init(red,0.075);acb.Init(green,0.075); + ++part;avabrk=2.0f;avacurbrk=0;achromab=false; } void Levelm1Part8()//Achromatopsia1-child { @@ -3117,13 +3117,13 @@ void Levelm1Part8()//Achromatopsia1-child avacurbrk=0;avabrk=2; aca.Reverse();acb.Reverse(); } - aca.Update();acb.Update(); + aca.Update(1);acb.Update(); } void Levelm1Part9()//Achromatopsia2 { frameleft=AMinute; aca.Init(red,1);acb.Init(green,1); - ++part;avabrk=1.5f;avacurbrk=0; + ++part;avabrk=1.5f;avacurbrk=0;achromab=true; } void Levelm1Part10()//Achromatopsia2-child { @@ -832,12 +832,22 @@ int main(int argc,char *argv[]) hge->System_SetState(HGE_LOGFILE, "BLRLOG.txt"); hge->System_Log("%s: Bullet Lab Remix Log File",MAIN_SRC_FN); #ifdef WIN32 +#ifdef MINGW_BUILD + hge->System_Log("%s: Build: MinGW_w64 cross build",MAIN_SRC_FN); +#else + hge->System_Log("%s: Build: Win32 build",MAIN_SRC_FN); +#endif +#else + hge->System_Log("%s: Build: Unix build",MAIN_SRC_FN); +#endif + hge->System_Log("%s: Version: %s",BLRVERSION); +#ifdef WIN32 if (_mkdir("./Resources")!=0||_mkdir("./Resources/Music")!=0) Error("Cannot decompress resources!\nDetailed Information: An error occured while creating folder.\n\nTry restarting the game."); - hge->System_Log("Folders created successfully."); + hge->System_Log("%s: Folders created successfully.",MAIN_SRC_FN); Expand("BLRData.dtp","Resources"); Expand("BLRMusic.dtp","Resources/Music"); - hge->System_Log("Resources decompressed successfully."); + hge->System_Log("%s: Resources decompressed successfully.",MAIN_SRC_FN); #endif hge->System_SetState(HGE_FRAMEFUNC, FrameFunc); hge->System_SetState(HGE_FOCUSLOSTFUNC, Foclost); diff --git a/scoresystem.h b/scoresystem.h index afbeaac..0f7939d 100644 --- a/scoresystem.h +++ b/scoresystem.h @@ -120,7 +120,7 @@ void Mult_FrameFunc() MultTimer.SetValue((double)multbrk/((double)TenSeconds/2.0f)); if (valbrk>30)valbrk=0; MultTimer.Render(playerpos.x+8.4,playerpos.y+8.4); - MB->SetColor(SETA(0x00FFFFFF,GetAlpha())); + MB->SetColor(SETA(0x00FFFFFF,0.8*GetAlpha())); MB->RenderEx(playerpos.x+8.4,playerpos.y-26.4,0,GetHscle(),1.0f); } } diff --git a/towernbullet.h b/towernbullet.h index 59613f2..5d6ad95 100644 --- a/towernbullet.h +++ b/towernbullet.h @@ -2556,6 +2556,7 @@ public: } } }; +bool achromab,achromaB[100]; class achromaGroup { private: @@ -2598,26 +2599,63 @@ public: { if(col==red)col=green; else if(col==green)col=red; - for(int i=0;i<500;++i)if(bullets[i].isActive())bullets[i].Reverse(); + for(int i=0;i<1000;++i)if(bullets[i].isActive())bullets[i].Reverse(); } void achroma2pnt() { - for(int i=0;i<500;++i)if(bullets[i].isActive())CreateBullet255(bullets[i].bulletpos.x,bullets[i].bulletpos.y,10); + for(int i=0;i<1000;++i)if(bullets[i].isActive())CreateBullet255(bullets[i].bulletpos.x,bullets[i].bulletpos.y,10); } - void Update() + void Update(int msk=0) { crbrk-=hge->Timer_GetDelta(); - if(crbrk<=0) + if(achromab) + { + if(crbrk<=0) + { + crbrk=re.NextDouble(0,frameleft/(double)AMinute)*(part==36?0.07:0.02)+0.03; + for(int i=0;i<1000;++i) + if(!bullets[i].isActive()) + { + bullets[i].achromaInit(vector2d(re.NextDouble(10,790),-5),col,llim); + break; + } + } + for(int i=0;i<1000;++i)if(bullets[i].isActive())bullets[i].achromaUpdate(); + } + else { - crbrk=re.NextDouble(0,frameleft/(double)AMinute)*(part==36?0.07:0.02)+0.03; - for(int i=0;i<500;++i) - if(!bullets[i].isActive()) + if(crbrk<=0) { - bullets[i].achromaInit(vector2d(re.NextDouble(10,790),10),col,llim); - break; + crbrk=1; + if(msk) + { + memset(achromaB,0,sizeof(achromaB)); + for(int i=0;i<80;++i)achromaB[i]=re.NextInt(0,1); + } + for(int i=0;i<80;++i) + { + if(achromaB[i]&&col==green) + { + for(int j=0;j<1000;++j) + if(!bullets[j].isActive()) + { + bullets[j].achromaInit(vector2d(i*10,-5),col,llim); + break; + } + } + if(!achromaB[i]&&col==red) + { + for(int j=0;j<500;++j) + if(!bullets[j].isActive()) + { + bullets[j].achromaInit(vector2d(i*10,-5),col,llim); + break; + } + } + } } + for(int i=0;i<500;++i)if(bullets[i].isActive())bullets[i].achromaUpdate(); } - for(int i=0;i<500;++i)if(bullets[i].isActive())bullets[i].achromaUpdate(); } }; class yellowGroup |