aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar chirs241097@gmail.com <chirs241097@gmail.com@c17bf020-1265-9734-9302-a83f62007ddb> 2014-02-10 15:08:58 +0000
committerGravatar chirs241097@gmail.com <chirs241097@gmail.com@c17bf020-1265-9734-9302-a83f62007ddb> 2014-02-10 15:08:58 +0000
commit2748b33cd1330cc3da99ed62cd17859342079773 (patch)
tree33648bb32ec69cbd3cefed430f6ce25890e7a47f
parentaa24dc151df4249483f9c46e0f11e47296a0e42a (diff)
downloadbullet-lab-remix-2748b33cd1330cc3da99ed62cd17859342079773.tar.xz
M resources/b_inter.png
M trunk/CHANGELOG.TXT M trunk/VERSION.TXT M trunk/background.h M trunk/levels.h M trunk/main.cpp M trunk/menus.h
-rwxr-xr-xCHANGELOG.TXT43
-rwxr-xr-xVERSION.TXT2
-rw-r--r--background.h11
-rw-r--r--levels.h97
-rw-r--r--main.cpp21
-rw-r--r--menus.h2
6 files changed, 132 insertions, 44 deletions
diff --git a/CHANGELOG.TXT b/CHANGELOG.TXT
index ddab0f9..aa76270 100755
--- a/CHANGELOG.TXT
+++ b/CHANGELOG.TXT
@@ -1,12 +1,26 @@
-=================================================================
+===================================================================
Next version:
-Maybe 0.7.0-9_PR?..
+0.7.1-1_PR
Pre-Released versions:
+0.7.1-0_PR (b63)
+New level: Rainbow bullets - nauty photon (in fact it's a lazy
+level! I must have seen the same thing some where else...)
+The last "photon school" level was put to where it should be.
+Rewrite some silly parts of the Changelog.
+I ran out of my AppEngine quota today... So I can't commit that to
+svn as planned...
+
+0.7.0-9_PR (b62)
+Performed a couple of tests, under both full FPS mode and low FPS
+mode.
+New background is used by now.
+
0.7.0-8_PR (b61)
Improved the rendering code. More tests are required...
+That made the rendering more efficient. It also eats less RAM then.
--Okay it's now tested. Another bug in FPS independent bullets
-fixed. No bugs found in the new rendering code.
+fixed. No (big) bugs were found in the new rendering code.
0.7.0-7_PR (b60)
Spring Festival commit...
@@ -19,7 +33,8 @@ Experimental FPS independent bullets.
0.7.0-5_PR (b58)
Fixed another critical bug in laser collision detection
-implementation... Laser is almost perfect now...
+implementation... Laser is almost perfect now...//Still, it's
+inefficient.
0.7.0-4_PR (b57)
Fixed a critical bug in laser implementation and another awful
@@ -64,12 +79,12 @@ The build count is bumped four times a day, you enough!
New level "Wriggle Nightbug-like"?...
0.6.1-1_PR (b46)
-Implemented several unimplemented audio interfaces of hge...
+Implemented several unimplemented audio interfaces of hge (OpenAL).
A Windows build to check compatibility is planned.
0.6.1-0_PR (b45)
Now we have 11 parts in level6...
-A BGM called Canon Techno is composed around here...
+A BGM called Canon Techno is completed around here...
0.6.0-0_PR (b44)
Starting level 6!
@@ -79,9 +94,11 @@ recorded.
0.5.3-2_PR (b43)
Optimizing memory usage... (first step...)[*]
Borrowed "the unbreakable jail" from old code...
-//[*]Note @ 0.6.1-3:
+//[*]Note @ 0.6.1-3 && @ 0.7.0-9:
//1. I found this useless.
//2. This may cause SIGSEGV!
+//3. It's completely removed after b61. Because they are not used
+// any longer
0.5.3-1_PR (b42)
Final(the second last..) level for level 5, fish in a barrel?
@@ -108,7 +125,7 @@ New part for level5. Now I'm working on the regression 0.4.x.
0.5.1-1_PR (b36)
Several fixes including:
-Fading info panel when approaching.
--Sending multiplier layer up.
+-Sending mult. inc. indicator layer up.
0.5.1-0_PR (b35)
First two levels of level5.
@@ -145,7 +162,7 @@ New levels for level3. In fact, it's almost completed now...
0.3.1-2_PR (b26)
Improved bullet clearing method, avoiding hidden bullets
-completely!
+completely!(Just by converting them all to score points...)
0.3.1-1_PR (b25)
A new "big" level for level3.
@@ -168,6 +185,8 @@ This will be released as a official Preview Release version.
-------------------------------------------------------------
BLR will be licensed under WTFPL from now.
(WTF?)
+.............................................................
+No it's now licensed under the BSD license...
0.2.9_PR (b20)
Level 2 is frozen "by heart". (How? By heart?)
@@ -227,7 +246,7 @@ TB130818 (b7)
New Levels such as rainbow towers and squashing levels.
TB130802 (b6)
-Discarding old code, rewrite of most of the code.
+Discarding old code, rewrite of part of the code.
TB130718 (b5)
Bullet creation effects, sync code back to BLR1.
@@ -242,7 +261,9 @@ TB130703 (b2)
Completing Orange Towers.
TB130620 (b1)
-Completing Deep Blue Towers.
+Completing Deep Blue Towers.//Well, "Dark Blue" right? Or more formally, "Navy".
+//However, they are all not the real color. I used #0000FF, which is just "Blue",
+//it just seems dark.
TB130610 (b0)
Creation of Testbed version.
diff --git a/VERSION.TXT b/VERSION.TXT
index 35d2849..f1f6bdf 100755
--- a/VERSION.TXT
+++ b/VERSION.TXT
@@ -1 +1 @@
-0.7.0-8_PR (b61) \ No newline at end of file
+0.7.1-0_PR (b63) \ No newline at end of file
diff --git a/background.h b/background.h
index 718b42c..62c8424 100644
--- a/background.h
+++ b/background.h
@@ -216,7 +216,7 @@ private:
public:
bool Init()
{
- skyitem=hge->Texture_Load("e_skyitem.png");
+ skyitem=hge->Texture_Load("./Resources/e_skyitem.png");
if(!skyitem) return false;
sky=new hgeSprite(0, 0, 0, ScreenWidth, ScreenHeight);
sea=new hgeDistortionMesh(SeaDisize, SeaDisize);
@@ -457,13 +457,16 @@ public:
}
};
TDSky sky;
+bool skyactive;
DWORD ColorTransfer(DWORD a,DWORD t)
{
- int r=GETR(a),g=GETG(a),b=GETB(a);
- int tr=GETR(t),tg=GETG(t),tb=GETB(t);
+ int r=GETR(a),g=GETG(a),b=GETB(a),sa=GETA(a);
+ int tr=GETR(t),tg=GETG(t),tb=GETB(t),ta=GETA(t);
+ if (sa<ta)++sa;if (sa>ta)--sa;
if (r<tr)++r;if (r>tr)--r;
if (g<tg)++g;if (g>tg)--g;
if (b<tb)++b;if (b>tb)--b;
- a=SETR(a,r);a=SETG(a,g);a=SETB(a,b);
+ a=SETR(a,r);a=SETG(a,g);a=SETB(a,b);a=SETA(a,sa);
+ return a;
}
diff --git a/levels.h b/levels.h
index 26dcd63..d6358aa 100644
--- a/levels.h
+++ b/levels.h
@@ -422,7 +422,7 @@ void Level3Part1()
tower[i].RendColor=tower[i].RendColor+0x01FFFFFF;
else
{
- ++part;
+ IfCallLevel=false;
return;
}
}
@@ -457,7 +457,7 @@ void Level3Part2()
tower[i].RendColor=tower[i].RendColor+0x01FFFFFF;
else
{
- ++part;
+ IfCallLevel=false;
return;
}
}
@@ -2360,7 +2360,6 @@ void Level6Part999999999()//well this isnot an easter egg!
{
int pnt=CreateBullet2(rand()%780+10,590,1,pi/2);
bullet[pnt].alterColor=white;
- //!!TODO: Restore this later
}
}
}
@@ -2385,6 +2384,7 @@ Will there be a clearer day?\
}
}
//change the color to dark grey. lightning.
+bool skystp;
void Level7Part1()
{
++bgbrk;if (LOWFPS)bgbrk+=16;
@@ -2398,7 +2398,7 @@ void Level7Part1()
{
frameleft=AMinute,++part;
bgdbbrk=rand()%15+5,bgbrk=0;
- avabrk=0.2f;avacurbrk=0;
+ avabrk=0.2f;avacurbrk=0;skystp=false;
}
}
void Level7Part2()
@@ -2419,7 +2419,7 @@ void Level7Part2()
for (int i=1;i<=times;++i)DBGColor=ColorTransfer(DBGColor,0xFF0B0916);
if (DBGColor==0xFF0B0916)
{
- if(bgbrk==2)bgbrk=3,bgdbbrk=0.1;
+ if(bgbrk==2)bgbrk=3,bgdbbrk=0.075;
if(bgbrk==5)bgbrk=0,bgdbbrk=rand()%15+5;
}
}
@@ -2463,9 +2463,36 @@ void Level7Part2()
}
}
}
+//Add a background transform here...
void Level7Part3()
{
- DBGColor=0xFF0B0916;
+ frameleft=TenSeconds;
+ if (!skystp)
+ {
+ ++bgbrk;if (LOWFPS)bgbrk+=16;
+ if (bgbrk<30)return;
+ bgbrk=0;
+ if (!LOWFPS)
+ DBGColor=ColorTransfer(DBGColor,0xFFFFFFFF);
+ else
+ for (int i=1;i<=17;++i)DBGColor=ColorTransfer(DBGColor,0xFFFFFFFF);
+ if (DBGColor==0xFFFFFFFF)skystp=skyactive=true,sky.SkySetFadeIn(),sky.SetSpeed(0);
+ }
+ else
+ {
+ ++bgbrk;if (LOWFPS)bgbrk+=16;
+ if (bgbrk<30)return;
+ bgbrk=0;
+ if (!LOWFPS)
+ DBGColor=ColorTransfer(DBGColor,0x00FFFFFF);
+ else
+ for (int i=1;i<=17;++i)DBGColor=ColorTransfer(DBGColor,0x00FFFFFF);
+ if (DBGColor==0x00FFFFFF)
+ ++part;
+ }
+}
+void Level7Part4()
+{
frameleft=(AMinute+ThirtySeconds);clrtime=5;
DisableAllTower=false;
if (IfShowTip)
@@ -2484,7 +2511,7 @@ void Level7Part3()
CreateTower6(400,300,600,2,1000,3,72);
++part;All2pnt();
}
-void Level7Part4()
+void Level7Part5()
{
++frameskips;
if (tower[1].towertype==6)
@@ -2551,20 +2578,66 @@ void Level7Part4()
}
}
}
+void Level7Part6()
+{
+ frameleft=AMinute;clrtime=2;
+ DisableAllTower=false;
+ if (IfShowTip)
+ {
+ IfShowTip=false;
+ FadeTip=false;
+ Current_Position=2;
+ ShowTip("Hit Z...");
+ }
+ if (Current_Position==1)
+ {
+ ++part;All2pnt();avabrk=1.0f;avacurbrk=0;
+ }
+}
+void Level7Part7()
+{
+ avabrk=frameleft/(double)AMinute*0.6f+0.4f;
+ avacurbrk+=hge->Timer_GetDelta();
+ if (avacurbrk>avabrk)
+ {
+ avacurbrk=0;
+ bool lasta,lastb;
+ lasta=rand()%1000<500;lastb=rand()%1000<500;
+ for (int i=0;i<31;++i)
+ {
+ int rf=rand()%1000;
+ if ((lasta&&rf<600)||(!lasta&&rf<250))
+ {
+ int pnt=CreateBullet2(-15,i*20,2,pi);
+ bullet[pnt].alterColor=(TColors)(i%8);
+ bullet[pnt].limv=2+2*(AMinute-frameleft)/(double)AMinute;bullet[pnt].bulletaccel=0.002;
+ lasta=true;
+ }else lasta=false;
+ rf=rand()%1000;
+ if ((lastb&&rf<600)||(!lastb&&rf<250))
+ {
+ int pnt=CreateBullet2(815,i*20-10,2,0);
+ bullet[pnt].alterColor=(TColors)(i%8);
+ bullet[pnt].limv=2+2*(AMinute-frameleft)/(double)AMinute;bullet[pnt].bulletaccel=0.002;
+ lastb=true;
+ }else lastb=false;
+ }
+ }
+}
BulletSine bnl[100];
double ykbrk;
-void Level7Part5()//This should be another part.
+void Level7Part8()//This should be another part.
{
memset(bnl,0,sizeof(bnl));
frameleft=AMinute;
- ykbrk=1.1f;++part;
+ ykbrk=0.5f;++part;
}
-void Level7Part6()
+void Level7Part9()
{
ykbrk-=hge->Timer_GetDelta();
- if (ykbrk<0)
+ if (ykbrk<0&&frameleft>TenSeconds/10*3)
{
- ykbrk=(double)frameleft/AMinute+0.1;
+ ykbrk=(double)frameleft/AMinute+0.5f;
for (int i=0;i<100;++i)
if (!bnl[i].active)
{
diff --git a/main.cpp b/main.cpp
index 81a9d55..76f0d26 100644
--- a/main.cpp
+++ b/main.cpp
@@ -175,17 +175,14 @@ void ProcessPlayer()
{
if (hge->Input_GetKeyStateEx(HGEK_Z)==HGEKST_HIT&&clrrange==0/*&&clrtime+clrbns*/&&!diffkey)
{
- //Player_Clear_Expand();--clrtime;++clrusg;
clrmaxrange=0;clrind=0;
}
if (hge->Input_GetKeyStateEx(HGEK_X)==HGEKST_HIT&&clrrange==0/*&&clrtime+clrbns*/&&diffkey)
{
- //Player_Clear_Expand();--clrtime;++clrusg;
clrmaxrange=0;clrind=0;
}
if (hge->Input_GetKeyStateEx(HGEK_Z)==HGEKST_KEEP&&clrrange==0/*&&clrtime+clrbns*/&&!diffkey)
{
- //Player_Clear_Expand();--clrtime;++clrusg;
if (clrmaxrange<=400)
{
if (LOWFPS)clrmaxrange+=1.6;else clrmaxrange+=0.1;
@@ -195,7 +192,6 @@ void ProcessPlayer()
}
if (hge->Input_GetKeyStateEx(HGEK_X)==HGEKST_KEEP&&clrrange==0/*&&clrtime+clrbns*/&&diffkey)
{
- //Player_Clear_Expand();--clrtime;++clrusg;
if (clrmaxrange<=400)
{
if (LOWFPS)clrmaxrange+=1.6;else clrmaxrange+=0.1;
@@ -234,17 +230,14 @@ void ProcessPlayer()
{
if (hge->Input_GetKeyStateEx(HGEK_Z)==HGEKST_HIT&&clrrad-pi/2<1e-7&&clrtime+clrbns&&!diffkey)
{
- //Player_Clear_Rotate();--clrtime;++clrusg;
clrmaxrange=0;clrind=0;
}
if (hge->Input_GetKeyStateEx(HGEK_X)==HGEKST_HIT&&clrrad-pi/2<1e-7&&clrtime+clrbns&&diffkey)
{
- //Player_Clear_Rotate();--clrtime;++clrusg;
clrmaxrange=0;clrind=0;
}
if (hge->Input_GetKeyStateEx(HGEK_Z)==HGEKST_KEEP&&clrrange==0&&clrtime+clrbns&&!diffkey)
{
- //Player_Clear_Expand();--clrtime;++clrusg;
if (clrmaxrange<=400)
{
if (LOWFPS)clrmaxrange+=1.6;else clrmaxrange+=0.1;
@@ -254,7 +247,6 @@ void ProcessPlayer()
}
if (hge->Input_GetKeyStateEx(HGEK_X)==HGEKST_KEEP&&clrrange==0&&clrtime+clrbns&&diffkey)
{
- //Player_Clear_Expand();--clrtime;++clrusg;
if (clrmaxrange<=400)
{
if (LOWFPS)clrmaxrange+=1.6;else clrmaxrange+=0.1;
@@ -408,6 +400,7 @@ void CallLevels()
if (level==7&&part==4)Level7Part4();
if (level==7&&part==5)Level7Part5();
if (level==7&&part==6)Level7Part6();
+ if (level==7&&part==7)Level7Part7();
/*if (level==1&&part==3)Level1Part3();
if (level==1&&part==4)Level1Part4();
if (level==1&&part==5)Level1Part5();
@@ -534,12 +527,9 @@ bool FrameFunc()
//Super Spliter!*****Super Spliter!*****Super Spliter!*****Super Spliter!*****Super Spliter!**
//******Super Spliter!*****Super Spliter!*****Super Spliter!*****Super Spliter!***************
hge->Gfx_BeginScene();
- for(int i=0;i<4;i++)
- {
- quad.v[i].z=0.5f;
- quad.v[i].col=DBGColor;
- }
- hge->Gfx_Clear(DBGColor);
+ for(int i=0;i<4;i++)quad.v[i].col=DBGColor;
+ hge->Gfx_Clear(SETA(DBGColor,0xFF));
+ if (skyactive)sky.Update(),sky.Render();
hge->Gfx_RenderQuad(&quad);
if (Current_Position==0||Current_Position==3||Current_Position==8||
Current_Position==9||Current_Position==10||Current_Position==13||Current_Position==14)
@@ -555,7 +545,7 @@ bool FrameFunc()
//If we are at the main scene or tip scene(which towers and bullets should still appear..)
//Render towers, bullets and player.
if (Leaves.IsActive())Leaves.Update();
- //Sky.Update();
+
if (LE_Active||Head){if (!Head)Tail=Head=new Leaf_Anim(),Head->init(990);Head->Process();}
shots=0;
dsmc=0;
@@ -778,6 +768,7 @@ int main()
TSflake=hge->Texture_Load("./Resources/e_sflake.png");
TexTitle=hge->Texture_Load("./Resources/title.png");
TexCredits=hge->Texture_Load("./Resources/credits.png");
+ sky.Init();
snd=hge->Effect_Load("./Resources/tap.ogg");
titlespr=new hgeSprite(TexTitle,0,0,640,320);
playerspr=new hgeSprite(SprSheet,0,24,24,24);
diff --git a/menus.h b/menus.h
index f5aa36c..6fb523c 100644
--- a/menus.h
+++ b/menus.h
@@ -93,7 +93,7 @@ void StartGUI_FrameFnk()
playerpos.x=400,playerpos.y=400,playerrot=0;
frameleft=ThirtySeconds;infofade=0xFF;Dis8ref=false;
level=1,part=1;frms=0,averfps=0.0;bsscale=1;
- towcnt=bulcnt=0;whrcnt=12;
+ towcnt=bulcnt=0;whrcnt=12;skyactive=false;
score=0;Mult_Init();//Music_Init("./Resources/Music/CanonTechno.ogg");
lpst=4625568;lped=9234584;//Music_Play();
coll=semicoll=clrusg=0;playerLockX=playerLockY=false;