diff options
-rwxr-xr-x | ChangeLog | 9 | ||||
-rw-r--r-- | Levels (renamed from Levels.txt) | 145 | ||||
-rw-r--r-- | Readme | 1 | ||||
-rw-r--r-- | Readme.zh | 1 | ||||
-rwxr-xr-x | VERSION | 2 | ||||
-rw-r--r-- | background.h | 6 | ||||
-rw-r--r-- | effects.h | 6 | ||||
-rw-r--r-- | global.h | 8 | ||||
-rw-r--r-- | hgeft.cpp | 1 | ||||
-rw-r--r-- | hgeft.h | 1 | ||||
-rw-r--r-- | levels.h | 7 | ||||
-rw-r--r-- | libcgh.h | 12 | ||||
-rw-r--r-- | libcghEx.cpp | 6 | ||||
-rw-r--r-- | main.cpp | 13 | ||||
-rw-r--r-- | menus.h | 20 | ||||
-rw-r--r-- | music.h | 2 | ||||
-rw-r--r-- | scorec.h | 6 | ||||
-rw-r--r-- | scoresystem.h | 6 | ||||
-rw-r--r-- | towernbullet.h | 32 |
19 files changed, 188 insertions, 96 deletions
@@ -8,6 +8,15 @@ Random segmentation fault in "Hyper-threading".(seen only once, can not reproduce now...) Pre-Released versions: +0.9.1-1_PR (r88) +%lld seems to work with mingw-w64(also VS2005+)... +So let's remove all %I64d. +Change point bullet behaviour. +Fix a minor multiplier problem. +Mark the source code as C++. +Re-document levels(not done). +Update wiki. + 0.9.1-1_PR (r87) Disable screenshot when you're entering your honourable name. It's not tested so we could only hope that will work... @@ -1,9 +1,27 @@ -BulletLabRemixII Level index +BulletLabRemixII +Level index/specifications/hints +This document is probably NOT suitable for: +Anybody who isn't insterested in this topic +Liberal arts students(?...) + +This document is suitable for: +Nobody(?) +Coders who want to modify this game +Casual persons who won't care anything +Someone who is stuck at a part + + + + + + +======================WARNING, LOTS OF WORDS BELOW!====================== Level 1 2/180 River levels 120 -It's confusing... so much bullets for Level1? However it's fairly easy. Do not seek for death. + Double-directed labyrinth 60 -Still very easy. @@ -11,10 +29,13 @@ Level 2 4/215 Polygon-red 60 -This is not hard... Fake bullets aren't always annoying. + Polygon-white 60 --Make good use of precise mode! -Polygon-white locked 65 --Find a good position, e.g. near by a line. +-Make good use of precise mode + +Polygon-white locked 6 +-Find a good position, e.g. near by a line + Polygon-both 30 -This part doesn't make sense. @@ -22,10 +43,13 @@ Level 3 4/150 Reflective 30 -Just meet them, do not make big movements. They are pretty friendly aren't they? + *4 30 -It's a little difficult... Keep away from the edges! + Rotate ???? 60 -Stay away from the rotating bullets and you'll pass this level. + Wall of blues? 30 -Rather easy. Do not try to earn too may semi-collisions unless you are really skilled. @@ -35,15 +59,16 @@ Level 4 5/243 Orange 30 -Don't make big movements and stay away from the edges. (why?) Those fast bullets are really annoying. - Answer to the question asked in the tip: TH06 Cirno? - In fact many level started as a copy of some spellcards in - TH... + Orange trap 5+5+4+4+3+3+2+2+5 -Do NOT press shift! + Double spinner 60 -An easy part for level 4. + Squash-2 60 -Enjoy it yourself. + Circle-drawing 60 -Just draw the circle. If you have any problem, try BLR 1. @@ -51,161 +76,213 @@ Circle-drawing 60 Level 5 8/338 CChase 30+30 -Don't set player move speed to 1! + Remark: They are not really faster than you... + Vortex of leaves 60 -This is another annoying level, looks awesome and hard. Keep away from those 'laser''s! + Remark: The lasers may have strange collision detection... + Be careful! + Upstream flow 60 -Rather easy. Looks like something in level 3. + High speed threaten 30 -It's JUST threaten! Precision is important. Practice makes perfect. + Crossing threaten 30 -Appears very hard. Choose the correct time to cross those bullets. + Orange trap2 2+2+2+2 -Just another level from level 4. + Fish in the barrel 60 -Where have I seen this... + Remark: Those bullets are comming directly towards you. + the Unbreakable jail 30 -This is fairly hard. Use CLR if you need it. + Remark: When the 'target' got red, it's about to update its + position. Level 6 7/390 Snow WHITE 30 -Incredible fast. Do not treat your CLR as a £100,000,000 cheque. + Remark: They are accelerated! + Photokeratitis 10+10+10+10+10 -This is sickly hard... Treat fast bullets and slow bullets separately. + Remark: It looks like Wriggle Nightbug's spellcard... + Squash-4(?) 60 -Do not be trapped! You only need ONE CLR!... + Avalanche 60 -Do not stay at the screen bottom, it's very dangerous... + Dangerous target 60 -Keep moving! It's a nightmare if you've choose a slow player... + Remark: The target follows you as a yellow bullet does. + Hexagon loops 10+20+7+7+7+19 -Step well back and watch the show. + Remark: This level will misbehave if FPS dropped... + Hyperfluid 60 -Also known as Superfluid. Designed to be a spellcard(?) of someone who has the ability to manipulate ice... In fact, liquid helium is not cold enough. It's still several Kelvin's degrees. I can make it even colder. + Remark: The white bullets are not accelerated, which are different + from the blue ones. The blue bullets share the same direction: 45 deg. + This part was designed as 「my」 「spellcard」 at first... Level 7 12/930+ Mapped levels Spring thunder storm - panic? 60 Thunder storm... -Although it's based on something from level 6, they are completely different! And this one is really easy. -<Color Transform> + Remark: Try to get to the top of the screen... + Rainbow tower - color theory 90 rainbow tower --Basic level. Is it from BLR 1? +-Basic level. + Remark: It's taken from the testbed version of BLRII. Rainbow bullets - nauty photon 60 Lazy level;) -Similar to one part in level1, but a lot harder. Luck is really required. + Remark: The generation of bullets is really strange... If the last position + on the y axis is taken up... sorry that I started to talk about coding again. + Rainbow effect - appearance 60 draw a rainbow (of bullet) -Random bullets. You will remember this part at once when you see the part. If you feel it hard, go to assessment mode. + Remark: The bullets forming the rainbow are invincible. + Rainbow effect - interference 120 as the name tells -This part is REALLY easy... but why? + Rainbow effect - diffraction 120 as the name tells -Pretty hard. Those piles of shit may crash straight into you. The code is pretty ugly too. + Rainbow effect - photon school 60 "particalization"! -Pretty hard. Use CLR if necessary. - It may be easier if you stay near the edges. -<Color Transform> + It may be easier if you stay near the edges. (I don't really know.) + Over the Rainbow - timeless challenge - great circles -Your goal is to reach the red block... And, this one is also pretty hard... If you're not well-skilled and you are working on FPM, try --suicide--! + Remark: This level will never end if you don't reach the red block... + Trypophobia 120 another two classes: Tail & Pile -Very hard. You'll never know where they will go next. However, they won't step on the same place twice. Will this cause trypophobia? + Remark: I seem to forget an important thing: Bullets with effects won't collide + for a short time after they are created... + Photon fusion 90 Use a slightly modified tower8... -Directed bullets+random bullets. Find a formula for it. + Wave of Photon 60 class WOP+Lazy of particalization -Not very hard at the beginning... + Return to void 90 return (void)(...); -VERY HARD!!! I don't know where this came from. CLR is useless but it will give you a short period during which you are invincible. + Remark: There are "no solution" cases... Level -1(Extreme) 7/1020 unknown circles*2 60*2 -Pretty easy as they are only the beginning of nightmare... + Spiky 120 -Hard. Their behavior is not predictable. + Remark: Again, never try to approach lasers! They are harmful to your eyes... + Achromatopsia 120(90+30) -Or we should call this "deuteranopia vs protanopia"? + Remark: Color change may suddenly happen!! + Quad thread 120 -Do you humans really support it? + Remark: I don't... + Supernova(additive blending) 120 -Awesome supernova! I enjoy coding(easy parts)... + yellow explosive 90 -Yellow explosive are poisonous? IDK. + Sink over the horizon 90 -Strange. You might be trapped without noticing it. + Gravity vortex 120 -It has nothing to do with gravity at all. + Incomplete Reflective 120 -Start in peace, end in mess. + Remark: one in four bullets will explode when it hits the wall. Level -2(Assess) 10/? --No CLR --Collision and step to next level Directed bullet -A copy of a spellcard from someone... Towers don't collide you, however they should do so. + Random bullet -Pure random. Are they getting faster? + Constant patterns -Pretty awesome. Doesn't look like anything. + Crossing 1(L+R) -They started spinning!!! + Crossing 2(C) -Used by Moriya Suwako... Round bullets made me dizzy. -Fake sink --Aren't those things from the centre annoying... + +Trappy +-The name is strange... + Remark: The lasers created just over you are not created there on purpose... + However, one third of the bullets could be directed. + Sine wave -Oscilloscope? Find a good place to vibrate with the graph... + Remark: Some positions will cause death instantly! + Density test -Really high density. - And they may block you way! + WTF? There's no way?! Pleaz.. don't be hopeless... + "Pinballs" -Why these pinballs don't collide each other? + --Because I don't know about the physics... + Road Blocks -You'll understand this one day. + --Flappy square?... + Extreme High speed -Copy of one part in level 5. + Laser crosses -Only a show off of the Laser class. + Bonus test: Lunatic Lunar! -May be the legacy of a vintage game... - - - -Level Enter Limits: -Classic: -Level 3: 1 restart(all) -Level 4: 2 restarts -Level 5: 3 restarts -Level 6: 5 restarts -Level 7: 8 restarts -Level -1: 2 restarts -FPM: -Level 3: 10 collisions -Level 4: 40 collisions -Level 5: 75 collisions -Level 6: 125 collisions -Level 7: 200 collisions -Level 8: 50 collisions
\ No newline at end of file @@ -3,7 +3,6 @@ NOTE: This is a pre-release version. That means: -The program may crash. It may even cause data loss. -The levels may be too hard. -There may be strange behavior. --Now menus are partly broken... -The in-game music is included but won't be played. (See FAQ.txt) -The code may not even compile! @@ -3,7 +3,6 @@ This text is encoded in UTF-8. -它可能会崩溃,甚至导致数据丢失。 -关卡太难。 -奇怪的行为。 --现在菜单处于部分报废状态… -无视背景音乐(见FAQ.txt) -代码都可能编译不了! @@ -1 +1 @@ -0.9.1-1_PR (r87)
\ No newline at end of file +0.9.1-1_PR (r88)
\ No newline at end of file diff --git a/background.h b/background.h index d422d16..849438c 100644 --- a/background.h +++ b/background.h @@ -1,6 +1,6 @@ -//Chrisoft Bullet Lab Remix HGE -//Background drawing Implementations -//Copyright Chrisoft 2014 +// Chrisoft Bullet Lab Remix HGE -*- C++ -*- +// Background drawing Implementations +// Copyright Chrisoft 2014 #include <list> const char* BACKGROUND_H_FN="background.h"; @@ -1,6 +1,6 @@ -//Chrisoft Bullet Lab Remix HGE -//Effects Implementations -//Copyright Chrisoft 2014 +// Chrisoft Bullet Lab Remix HGE -*- C++ -*- +// Effects Implementations +// Copyright Chrisoft 2014 //static const char* EFFECTS_H_FN="effects.h"; void SCEffect_Attatch(vector2d Target=vector2d(-100,-100)) @@ -1,6 +1,6 @@ -//Chrisoft Bullet Lab Remix HGE -//Global varibles and implementations -//Copyright Chrisoft 2014 +// Chrisoft Bullet Lab Remix HGE -*- C++ -*- +// Global varibles and implementations +// Copyright Chrisoft 2014 #include <hge.h> #include <hgefont.h> #define MaxRes 80 @@ -333,7 +333,7 @@ static const char* archive[]={ }; #endif //static const char* GLOBAL_H_FN="global.h"; -static const char* BLRVERSION="0.9.1-1_PR (r87)"; +static const char* BLRVERSION="0.9.1-1_PR (r88)"; static const char* BuiltDate=__DATE__; void Throw(char *Filename,char *Info) @@ -1,3 +1,4 @@ +// Freetype2 ext4hge implementations -*- C++ -*- #include "hgeft.h" static const char* HGEFT_SRC_FN="hgeft.cpp"; void hgeTTChar::Free(){if(quad.tex)hge->Texture_Free(quad.tex),quad.tex=0;} @@ -1,3 +1,4 @@ +// Freetype2 ext4hge header -*- C++ -*- /* * Freetype2 extention for hge * by Chris Xiong @@ -1,7 +1,6 @@ -//Chrisoft Bullet Lab Remix HGE -//Level Implementations -//Copyright Chrisoft 2014 -//Now this is being fully rewritten.. +// Chrisoft Bullet Lab Remix HGE -*- C++ -*- +// Level Implementations +// Copyright Chrisoft 2014 /* How to write a classic level/part... Classic parts need only one procedure, like this. @@ -1,9 +1,9 @@ -//Chrisoft Bullet Lab Remix HGE -//Chrisoft Game Helper header -//Copyright Chrisoft 2014 -//libcgh version 0007 -//Last full compatible version 0007 -//^Modify that when big change is made^ +// Chrisoft Bullet Lab Remix HGE -*- C++ -*- +// Chrisoft Game Helper header +// Copyright Chrisoft 2014 +// libcgh version 0007 +// Last full compatible version 0007 +// ^Modify that when big change is made^ #include <hge.h> #include <hgefont.h> #include <hgedistort.h> diff --git a/libcghEx.cpp b/libcghEx.cpp index 78aeb02..9c5f636 100644 --- a/libcghEx.cpp +++ b/libcghEx.cpp @@ -1,6 +1,6 @@ -//Chrisoft Bullet Lab Remix HGE -//Chrisoft Game Helper Extras implementations -//Copyright Chrisoft 2014 +// Chrisoft Bullet Lab Remix HGE -*- C++ -*- +// Chrisoft Game Helper Extras implementations +// Copyright Chrisoft 2014 #include "libcgh.h" #include <cmath> #include <cstring> @@ -1,6 +1,6 @@ -//Chrisoft Bullet Lab Remix HGE -//Main Code -//Copyright Chrisoft 2014 +// Chrisoft Bullet Lab Remix HGE -*- C++ -*- +// Main Code +// Copyright Chrisoft 2014 //Now that we use BSD license, so let's paste it here. //(although it may be awful) /* @@ -352,7 +352,7 @@ void RefreshScore() score+=16*mult; else score+=mult; - if(scminus){if(mult/2>0.1)mult/=2;else mult=0.5;} + if(scminus){if(mult/2>0.1)mult/=2;else mult=0.1;} score+=100*shots*mult; score-=scminus*mult; score+=2000*dsmc*mult; @@ -982,10 +982,9 @@ bool FrameFunc() } fnt->SetColor(SETA(0xFFFFFF,infofade)); fnt->printf(5, 0, HGETEXT_LEFT, "Frames to go: %d",frameleft); -#ifdef WIN32 +#if 0 fnt->printf(5, 25, HGETEXT_LEFT, "Score: %I64d",score); -#endif -#ifndef WIN32 +#else fnt->printf(5, 25, HGETEXT_LEFT, "Score: %lld",score); #endif fnt->printf(5, 50, HGETEXT_LEFT, "Level %d",level); @@ -1,8 +1,8 @@ -//Chrisoft Bullet Lab Remix HGE -//Menu Implementations -//Copyright Chrisoft 2014 +// Chrisoft Bullet Lab Remix HGE -*- C++ -*- +// Menu Implementations +// Copyright Chrisoft 2014 +// The menu rewrite is almost complete... //static const char* MENUS_H_FN="menus.h"; -//The menu rewrite is almost complete... void TriggerSound(int type) { switch(type) @@ -1013,7 +1013,7 @@ public: hge->Gfx_RenderQuad(&UpperGradient); hge->Gfx_RenderQuad(&LowerGradient); MenuFont->printf(xoffset-100,250,HGETEXT_LEFT, -#ifdef WIN32 +#if 0 "You scored %I64d at level %d" #else "You scored %lld at level %d" @@ -1101,7 +1101,7 @@ public: hge->Gfx_RenderQuad(&LowerGradient); if(~CheckHighScore()) MenuFont->printf(xoffset-100,250,HGETEXT_LEFT, -#ifdef WIN32 +#if 0 "New Highscore %I64d!" #else "New Highscore %lld!" @@ -1109,7 +1109,7 @@ public: ,score); else MenuFont->printf(xoffset-100,250,HGETEXT_LEFT, -#ifdef WIN32 +#if 0 "Score %I64d" #else "Score %lld" @@ -1350,7 +1350,7 @@ public: { if(i<=WrapCnt) MenuFont->printf(xoffset,calcy,HGETEXT_LEFT,"%u. %s - " -#ifdef WIN32 +#if 0 "%I64d" #else "%lld" @@ -1438,7 +1438,7 @@ public: { if(dyoffset+430>289.9&&dyoffset+430<540.1) MenuFont->printf(xoffset,dyoffset+430,HGETEXT_LEFT,"Scored " -#ifdef WIN32 +#if 0 "%I64d" #else "%lld" @@ -1453,7 +1453,7 @@ public: { if(dyoffset+430>289.9&&dyoffset+430<540.1) MenuFont->printf(xoffset,dyoffset+430,HGETEXT_LEFT,"Scored " -#ifdef WIN32 +#if 0 "%I64d" #else "%lld" @@ -1,4 +1,4 @@ -//Chrisoft Bullet Lab Remix HGE +//Chrisoft Bullet Lab Remix HGE -*- C++ -*- //In Game Music Implementations //Copyright Chrisoft 2014 HEFFECT Mus; @@ -1,6 +1,6 @@ -//Chrisoft Bullet Lab Remix HGE -//Score Recording Implementations -//Copyright Chrisoft 2014 +// Chrisoft Bullet Lab Remix HGE -*- C++ -*- +// Score Recording Implementations +// Copyright Chrisoft 2014 //static const char* SCOREC_H_FN="scorec.h"; struct TRecord diff --git a/scoresystem.h b/scoresystem.h index 0f7939d..53ac222 100644 --- a/scoresystem.h +++ b/scoresystem.h @@ -1,6 +1,6 @@ -//Chrisoft Bullet Lab Remix HGE -//Multiplier implementations -//Copyright Chrisoft 2014 +// Chrisoft Bullet Lab Remix HGE -*- C++ -*- +// Multiplier implementations +// Copyright Chrisoft 2014 CircleIndicator MultTimer; hgeFont *MultFnt; hgeSprite *MB; diff --git a/towernbullet.h b/towernbullet.h index 3b0ef9c..2ec514c 100644 --- a/towernbullet.h +++ b/towernbullet.h @@ -1,10 +1,6 @@ -//Chrisoft Bullet Lab Remix HGE -//Towers and Bullets Implementations -//Copyright Chrisoft 2014 -//[Perfect Freeze]: code here for BLR2 won't change a lot since 30/08/2013 -//Sorry that I would break that... -//I found the rendering code stupid so I MUST rewrite it RIGHT NOW. -// --Announcement from Chirsno +// Chrisoft Bullet Lab Remix HGE -*- C++ -*- +// Towers and Bullets Implementations +// Copyright Chrisoft 2014 #include "effects.h" //static const char* TOWERNBULLET_H_FN="towernbullet.h"; @@ -293,6 +289,7 @@ void CreateBullet255(double x,double y,double bs,int spno=0) bullet[i].dist=bullet[i].bulletdir.x*bullet[i].bulletdir.x+bullet[i].bulletdir.y*bullet[i].bulletdir.y; bullet[i].dist=sqrt(bullet[i].dist); bullet[i].bulletspeed=bs; + bullet[i].exp1=re.NextInt(0,9)?0:1; } void All2pnt() { @@ -979,7 +976,7 @@ void ProcessBullet255(int i) double dis=GetDist(bullet[i].bulletpos,playerpos+splitData[bullet[i].redattrib]); if (dis<=6||bullet[i].bulletpos.x<=-10||bullet[i].bulletpos.x>=800||bullet[i].bulletpos.y<=-10||bullet[i].bulletpos.y>=600) { - score+=mult*100;mult+=0.0002f; + if(bullet[i].exp1)score+=mult*100;else mult+=0.01; bullet[i].exist=false; bullet[i].bulletpos.x=bullet[i].bulletpos.y=0; bullet[i].bulletdir.x=bullet[i].bulletdir.y=0; @@ -988,10 +985,21 @@ void ProcessBullet255(int i) } else { - bulletspr[grey]->SetColor(0x20FFFFFF); - bulletspr[grey]->SetBlendMode(BLEND_ALPHAADD); - bulletspr[grey]->RenderEx(bullet[i].bulletpos.x+6,bullet[i].bulletpos.y+6,0,0.5,0); - bulletspr[grey]->SetBlendMode(BLEND_ALPHABLEND); + if(bullet[i].exp1) + { + bulletspr[green]->SetColor(0x40FFFFFF); + bulletspr[green]->SetBlendMode(BLEND_ALPHAADD); + bulletspr[green]->RenderEx(bullet[i].bulletpos.x+6,bullet[i].bulletpos.y+6,0,0.5,0); + bulletspr[green]->SetBlendMode(BLEND_ALPHABLEND); + bulletspr[green]->SetColor(0x80FFFFFF); + } + else + { + bulletspr[grey]->SetColor(0x20FFFFFF); + bulletspr[grey]->SetBlendMode(BLEND_ALPHAADD); + bulletspr[grey]->RenderEx(bullet[i].bulletpos.x+6,bullet[i].bulletpos.y+6,0,0.5,0); + bulletspr[grey]->SetBlendMode(BLEND_ALPHABLEND); + } } } int CreateTower1(double x,double y,int timer,double bs,double offset=0,bool eff=false) |