diff --git a/_release/Games/TunnelRun/Highs/Highs.Hsr b/_release/Games/TunnelRun/Highs/Highs.Hsr new file mode 100644 index 0000000..46c17a1 Binary files /dev/null and b/_release/Games/TunnelRun/Highs/Highs.Hsr differ diff --git a/_release/Games/TunnelRun/Media/BMod.3DS b/_release/Games/TunnelRun/Media/BMod.3DS new file mode 100644 index 0000000..a1b13b7 Binary files /dev/null and b/_release/Games/TunnelRun/Media/BMod.3DS differ diff --git a/_release/Games/TunnelRun/Media/asteroid.3ds b/_release/Games/TunnelRun/Media/asteroid.3ds new file mode 100644 index 0000000..2981bff Binary files /dev/null and b/_release/Games/TunnelRun/Media/asteroid.3ds differ diff --git a/_release/Games/TunnelRun/Media/blockade.3DS b/_release/Games/TunnelRun/Media/blockade.3DS new file mode 100644 index 0000000..da3234e Binary files /dev/null and b/_release/Games/TunnelRun/Media/blockade.3DS differ diff --git a/_release/Games/TunnelRun/Media/boom.wav b/_release/Games/TunnelRun/Media/boom.wav new file mode 100644 index 0000000..cac3204 Binary files /dev/null and b/_release/Games/TunnelRun/Media/boom.wav differ diff --git a/_release/Games/TunnelRun/Media/claw.3DS b/_release/Games/TunnelRun/Media/claw.3DS new file mode 100644 index 0000000..ac94fc5 Binary files /dev/null and b/_release/Games/TunnelRun/Media/claw.3DS differ diff --git a/_release/Games/TunnelRun/Media/energybar.bmp b/_release/Games/TunnelRun/Media/energybar.bmp new file mode 100644 index 0000000..ed469a1 Binary files /dev/null and b/_release/Games/TunnelRun/Media/energybar.bmp differ diff --git a/_release/Games/TunnelRun/Media/floor1.bmp b/_release/Games/TunnelRun/Media/floor1.bmp new file mode 100644 index 0000000..a3cc7cc Binary files /dev/null and b/_release/Games/TunnelRun/Media/floor1.bmp differ diff --git a/_release/Games/TunnelRun/Media/go.bmp b/_release/Games/TunnelRun/Media/go.bmp new file mode 100644 index 0000000..267abcb Binary files /dev/null and b/_release/Games/TunnelRun/Media/go.bmp differ diff --git a/_release/Games/TunnelRun/Media/hfighter.3ds b/_release/Games/TunnelRun/Media/hfighter.3ds new file mode 100644 index 0000000..b0e099e Binary files /dev/null and b/_release/Games/TunnelRun/Media/hfighter.3ds differ diff --git a/_release/Games/TunnelRun/Media/lives.bmp b/_release/Games/TunnelRun/Media/lives.bmp new file mode 100644 index 0000000..d708f05 Binary files /dev/null and b/_release/Games/TunnelRun/Media/lives.bmp differ diff --git a/_release/Games/TunnelRun/Media/missile1.3ds b/_release/Games/TunnelRun/Media/missile1.3ds new file mode 100644 index 0000000..ef0dd4e Binary files /dev/null and b/_release/Games/TunnelRun/Media/missile1.3ds differ diff --git a/_release/Games/TunnelRun/Media/mouse.bmp b/_release/Games/TunnelRun/Media/mouse.bmp new file mode 100644 index 0000000..6e13c65 Binary files /dev/null and b/_release/Games/TunnelRun/Media/mouse.bmp differ diff --git a/_release/Games/TunnelRun/Media/shoot.wav b/_release/Games/TunnelRun/Media/shoot.wav new file mode 100644 index 0000000..0bea437 Binary files /dev/null and b/_release/Games/TunnelRun/Media/shoot.wav differ diff --git a/_release/Games/TunnelRun/Media/shot1.bmp b/_release/Games/TunnelRun/Media/shot1.bmp new file mode 100644 index 0000000..80eb7a0 Binary files /dev/null and b/_release/Games/TunnelRun/Media/shot1.bmp differ diff --git a/_release/Games/TunnelRun/Media/smoke1.bmp b/_release/Games/TunnelRun/Media/smoke1.bmp new file mode 100644 index 0000000..af252be Binary files /dev/null and b/_release/Games/TunnelRun/Media/smoke1.bmp differ diff --git a/_release/Games/TunnelRun/Media/smoke2.bmp b/_release/Games/TunnelRun/Media/smoke2.bmp new file mode 100644 index 0000000..e492dac Binary files /dev/null and b/_release/Games/TunnelRun/Media/smoke2.bmp differ diff --git a/_release/Games/TunnelRun/Media/smoke3.bmp b/_release/Games/TunnelRun/Media/smoke3.bmp new file mode 100644 index 0000000..0cf3aa2 Binary files /dev/null and b/_release/Games/TunnelRun/Media/smoke3.bmp differ diff --git a/_release/Games/TunnelRun/Media/smoke4.bmp b/_release/Games/TunnelRun/Media/smoke4.bmp new file mode 100644 index 0000000..db4e64d Binary files /dev/null and b/_release/Games/TunnelRun/Media/smoke4.bmp differ diff --git a/_release/Games/TunnelRun/Media/stone04.bmp b/_release/Games/TunnelRun/Media/stone04.bmp new file mode 100644 index 0000000..563f0a2 Binary files /dev/null and b/_release/Games/TunnelRun/Media/stone04.bmp differ diff --git a/_release/Games/TunnelRun/Media/target.bmp b/_release/Games/TunnelRun/Media/target.bmp new file mode 100644 index 0000000..0b79b1c Binary files /dev/null and b/_release/Games/TunnelRun/Media/target.bmp differ diff --git a/_release/Games/TunnelRun/Media/tex0.bmp b/_release/Games/TunnelRun/Media/tex0.bmp new file mode 100644 index 0000000..df49f4e Binary files /dev/null and b/_release/Games/TunnelRun/Media/tex0.bmp differ diff --git a/_release/Games/TunnelRun/Media/tex1.bmp b/_release/Games/TunnelRun/Media/tex1.bmp new file mode 100644 index 0000000..736eaaf Binary files /dev/null and b/_release/Games/TunnelRun/Media/tex1.bmp differ diff --git a/_release/Games/TunnelRun/Media/tex2.bmp b/_release/Games/TunnelRun/Media/tex2.bmp new file mode 100644 index 0000000..ecceb62 Binary files /dev/null and b/_release/Games/TunnelRun/Media/tex2.bmp differ diff --git a/_release/Games/TunnelRun/Media/title.BMP b/_release/Games/TunnelRun/Media/title.BMP new file mode 100644 index 0000000..df93121 Binary files /dev/null and b/_release/Games/TunnelRun/Media/title.BMP differ diff --git a/_release/Games/TunnelRun/functions.bb b/_release/Games/TunnelRun/functions.bb new file mode 100644 index 0000000..1e30bc5 --- /dev/null +++ b/_release/Games/TunnelRun/functions.bb @@ -0,0 +1,484 @@ +; +; +; Game Functions + +; +; EFX functions smoke first +; + +Function Update_Smoke() + For a.smoke=Each smoke + TranslateEntity a\ent,0,0,-EFX_SPEED + ScaleSprite a\ent,a\size,a\size + EntityAlpha a\ent,a\alpha + a\size=a\size+a\disp + a\alpha=a\alpha-a\reduct + a\rot=a\rot+1 + RotateSprite a\ent,a\rot + If a\alpha<.1 Or EntityZ(a\ent)CameraZpos Then + TranslateEntity a\piv,0,0,a\speed*a\dir + Else + FreeEntity a\ent + FreeEntity a\piv + Delete a + End If + End Select + + Next +End Function + +Function Control_Asteroid(a.Obj,typ) + Select a\typ + Case 3 + EntityColor a\ent,a\col,255-a\col,0 + a\col=a\col-a\cd + If a\col<140 Or a\col>250 Then a\cd=-a\cd + End Select + If EntityZ(a\piv)>CameraZpos Then + TurnEntity a\piv,2,0,0.5 + TranslateEntity a\piv,-a\dx,-a\dy,a\speed*a\dir + Else + FreeEntity a\ent + FreeEntity a\piv + Delete a + End If +End Function + +;Delete all objects +Function Delete_Objects() + For a.Obj=Each Obj + If a\ent FreeEntity a\ent + If a\piv FreeEntity a\piv + Delete a + Next +End Function + +; +; Shooting funcitons +; +Function Add_Shot.shot(ent,typ,dir,firer.play) + If firer<>Null Then + If firer\rate>0 Then Return + End If + a.shot=New shot + a\typ=typ + a\firer=firer + Select typ + Case 1 + If firer<>Null Then + a\firer\rate=6 + End If + a\speed=8 + a\dx=0 + a\dy=0 + a\dz=dir + a\life=125 + a\ent=CopyEntity(shot1_spr,ent) + If firer<>Null Then + PositionEntity a\ent,a\firer\ox,0,10 + a\firer\ox=-a\firer\ox + End If + EntityParent a\ent,0 + EntityRadius a\ent,8 + EntityType a\ent,TYPE_SHOT1 + EmitSound Shoot1_wave,a\ent + End Select + Return a +End Function + +; +;Update all players shots +Function Update_Shots() + For a.shot=Each shot + a\life=a\life-1 + Select a\typ + Case 1 + TranslateEntity a\ent,a\dx,a\dy,a\dz*a\speed + a\ang=a\ang+5 + RotateSprite a\ent,a\ang + End Select + If a\life<100 Then + EntityAlpha a\ent,a\life/10 + End If + If a\life<1 Then + FreeEntity a\ent + Delete a + Else + If CountCollisions(a\ent)>0 + For b=1 To CountCollisions(a\ent) + ent=CollisionEntity(a\ent,b) + x#=EntityX(ent) + y#=EntityY(ent) + z#=EntityZ(ent) + Set_Flash() + For c=1 To 2 + add_color_smoke(275,x+Rnd(-2,2),y+Rnd(-2,2),z,255,10,0) + add_color_smoke(170,x+Rnd(-2,2),y+Rnd(-2,2),z,255,200,0) + ent2=add_white_smoke(140,x+Rnd(-2,2),y+Rnd(-2,2),z) + Next + PositionEntity ent,EntityX(ent),EntityY(ent),-1000 + EmitSound Explode_wave,ent2 + Next + FreeEntity a\ent + If a\firer<>Null Then + a\firer\score=a\firer\score+150 + End If + Delete a + End If + End If + Next +End Function + +;Delete all shots +Function Free_Shots() + For a.shot=Each shot + If a\ent FreeEntity a\ent + Delete a + Next +End Function +; +; Player functions +; typ = 1 Mouse controled player +; 2 ana Joy Controlled player +; 3 dig Joy controlled player +; 4 keyboard controlled player +; 5 CPU Controlled player +; 6 internet player ** TO DO ** +; +Function Add_Player.play(typ,r,g,b,split,id,n$) + a.play=New play + a\dead=False + a\con=typ + a\id=id + a\name=n + a\lives=G_StartLives + a\tlx=0 + a\tly=0 + a\score=0 + a\ox=15 + a\brx=GraphicsWidth() + a\bry=GraphicsHeight() + a\piv=CreatePivot() + EntityRadius a\piv,40 + EntityType a\piv,TYPE_PLAYER + a\ent=CopyEntity(player_mesh,a\piv) + EntityColor a\ent,r,g,b + a\shield=100 + a\shield_ent=CopyEntity(shield_mesh,a\piv) + ; + a\cam=CreateCamera() + CameraRange a\cam,1,24000 + CameraFogRange a\cam,12000,24000 + CameraFogMode a\cam,1 + PositionEntity a\cam,0,0,CameraZpos + EntityType a\cam,TYPE_CAM + EntityRadius a\cam,40 + If split=True Then + Select id + Case 0 + CameraViewport a\cam,0,0,GraphicsWidth(),GraphicsHeight()/2 + a\tlx=0 + a\tly=0 + a\brx=GraphicsWidth() + a\bry=GraphicsHeight()/2 + Case 1 + CameraViewport a\cam,0,GraphicsHeight()/2,GraphicsWidth(),GraphicsHeight()/2 + a\tlx=0 + a\tly=GraphicsHeight()/2 + a\brx=GraphicsWidth() + a\bry=GraphicsHeight() + End Select + End If + ; + Return a +End Function + +; +;Main players update +Function Update_Players() + For a.play=Each play + + ; + ; + If a\rate>0 Then a\rate=a\rate-1 + score(a\id)=a\score + EntityAlpha a\shield_ent,a\glow + If a\dead=False + If a\glow>0 Then a\glow=a\glow-.05 + PositionEntity a\piv,EntityX(a\piv),EntityY(a\piv),0 + PositionEntity a\cam,EntityX(a\cam),EntityY(a\cam),CameraZpos + If Cheater=False Then ;Cheat Mode + cnt=CountCollisions(a\piv) + If cnt>0 Then + For b=1 To cnt + te=CollisionEntity(a\piv,cnt) + add_color_Smoke(25,CollisionX(a\piv,b),CollisionY(a\piv,b),CollisionZ(a\piv,b),255,Rnd(100,200),Rnd(100,200)) + If te<>Tunnel_Mesh Then + a\shield=a\shield-10 + Else + a\shield=a\shield-.5 + End If + a\glow=1 + Next + End If + End If + ; + ; Do Camera Code + ; + dx#=EntityX(a\piv,True)-EntityX(a\cam,True) + dy#=EntityY(a\piv,True)-(EntityY(a\cam,True)-30) + TranslateEntity a\cam,dx*.05,dy*.05,0 + ; + If a\shield<20 And a\shield>0 Then + add_color_Smoke(15,EntityX(a\piv)+Rnd(-1,1),EntityY(a\piv),EntityZ(a\piv),255,Rnd(50,140),Rnd(50,140)) + End If + If a\shield<100 And a\shield>0 Then + a\shield=a\shield+.01 + End If + If a\shield<0 Then + a\dead=True + a\lives=a\lives-1 + End If + + If a\dead=True Then + PositionEntity a\piv,0,0,CameraZpos-100 + a\waiting=(CameraZpos-100) + a\shield=100 + End If + Else ;If dead the do dead routene + If a\waiting<0 Then + ResetEntity a\piv + PositionEntity a\piv,EntityX(a\piv),EntityY(a\piv),a\waiting + a\waiting=a\waiting+1 + ResetEntity a\piv + Update_PLCam(a) + RotateEntity a\piv,0,0,0 + Else + a\dead=False + End If + End If + If a\lives=0 Then + score(a\id)=a\score + Cls + Num_Players=Num_Players-1 + Select a\id + Case 0 + Go1_timer=300 + Case 1 + Go2_timer=300 + End Select + Free_Player(a) + End If + Next +End Function + +Function Resize_Last_Player() + For a.play=Each play + CameraViewport a\cam,0,0,GraphicsWidth(),GraphicsHeight() + a\tlx=0 + a\tly=0 + a\brx=GraphicsWidth() + a\bry=GraphicsHeight() + cont=a\con + Next + Return cont +End Function + +Function Free_Player(a.play) + If a\shield_ent FreeEntity a\shield_ent + If a\ent FreeEntity a\ent + If a\piv FreeEntity a\piv + If a\cam FreeEntity a\cam + Delete a +End Function + +; +;Manual update of players camera +Function Update_PLCam(a.play) + ; + ; Do Camera Code + ; + dx#=EntityX(a\piv,True)-EntityX(a\cam,True) + dy#=EntityY(a\piv,True)-(EntityY(a\cam,True)-30) + TranslateEntity a\cam,dx*.05,dy*.05,0 +End Function + +;Delete all players in memory +Function delete_Players() + For a.play=Each play + If a\shield_ent FreeEntity a\shield_ent + If a\ent FreeEntity a\ent + If a\piv FreeEntity a\piv + If a\cam FreeEntity a\cam + Delete a + Next +End Function + +;View Update (players) +Function Update_Players_Views() + For a.play=Each play + Color 255,255,255 + Text a\tlx,a\tly,a\score + If a\shield<40 Then + Color 255,255,0 + End If + If a\shield<20 Then + Color 255,0,0 + End If + Rect a\tlx,a\tly+16,a\shield,10 + Color 255,255,255 + Text a\brx-100,a\bry-16,a\name + Text a\brx-176,a\tly,"Lives:" + For x=0 To a\lives-1 + DrawImage Lives_image,a\brx-80+(x*16),a\tly + Next + Next +End Function + +;Find a player from id +Function Get_Player_id.play(id) + For a.play=Each play + If a\id=id Then Return a + Next + Return Null +End Function + +; +;Update explosion Flash +Function Update_Flash() + AmbientLight Flash_Cnt,Flash_Cnt,Flash_Cnt + If Flash_Cnt>G_Brightness Then Flash_Cnt=Flash_Cnt-5 +End Function + +Function Set_Flash() + Flash_Cnt=255 +End Function +; +; +; +; +; +; \ No newline at end of file diff --git a/_release/Games/TunnelRun/globs.bb b/_release/Games/TunnelRun/globs.bb new file mode 100644 index 0000000..c8f3701 --- /dev/null +++ b/_release/Games/TunnelRun/globs.bb @@ -0,0 +1,102 @@ +; Tunnel Run +; (c)2001 David Bird +; dave@birdie72.freeserve.co.uk +; + +; +; Globals here +; + +;meshes +Global Tunnel_mesh +Global Background +Global Aster_mesh +Global player_mesh +Global shield_mesh +Global missile1_mesh +Global Bad01_mesh +Global claw_anim_mesh + +;textures +Global Tunnel_tex +Global Shield_tex +Global tex0 +Global tex1 + +;Sprites +Global shot1_spr +Dim smoke_spr(4) +Global Target_spr + + +;images +Global TitleScreen1 +Global MousePointer +Global Lives_image +Global Gover_image + +;Sounds +Global shoot1_wave +Global Explode_wave + + +;Misc globals +Global Tunnel_Texture_Coord#=0 +Global Shield_tex_pos#=0 +Global Scroll_Speed#=0.002 +Global EFX_SPEED=34 +Global CameraZpos=-300 +Global Num_Players=0 +Global Dead_BandX#=.2 +Global Dead_BandY#=.2 +Global Flash_Cnt=128 +Global Go1_Timer=0 +Global Go2_timer=0 +Global cntr +Global Exited=False +Global t_r1,t_r2,ta_r1,ta_r2 +Global t_g1,t_g2,ta_g1,ta_g2 +Global t_b1,t_b2,ta_b1,ta_b2 +Global G_Brightness=100 +Global G_StartLives=5 +Global G_CurrentGFX=1 +Global Max_GFXModes=0 +Global G_Diff=3 + +;Options entities +Global optcamera +Global opttunnel +Global optbackground +Global optlight +; +Global g_width +Global g_height + +;redefinable keys +Dim keys(6) +keys(1)=203 ; Left Key +keys(2)=205 ; Right Key +keys(3)=200 ; Down Key +keys(4)=208 ; Up Key +keys(5)=57 ; Fire Key +keys(6)=58 ; fire 2 key + +;High Score Table +Dim hn$(11),hs(11),score(2) +Restore highs +For a=1 To 11 + Read hn$(a),hs(a) +Next +Global player1type=1 +Global player2type=3 +Global gametype=1 +Global Control=1 + +Dim GM_TYPE$(10) +Dim CN_TYPE$(10) +Dim MENU$(10) + +Restore dats +For a=1 To 2 : Read GM_TYPE(a):Next +For a=1 To 6 : Read CN_TYPE(a):Next +For a=1 To 7 : Read MENU(a):Next \ No newline at end of file diff --git a/_release/Games/TunnelRun/tr.bb b/_release/Games/TunnelRun/tr.bb new file mode 100644 index 0000000..791c1b7 --- /dev/null +++ b/_release/Games/TunnelRun/tr.bb @@ -0,0 +1,896 @@ +; Tunnel Run +; (c)2001 David Bird +; dave@birdie72.freeserve.co.uk +; www.birdie72.freeserve.co.uk +; Main Program + +; +Global Cheater=False + +Graphics3D 640,480 +SetBuffer BackBuffer() +Include "globs.bb" +Include "functions.bb" + +ChangeDir "Media" +; +;Set Up collision Constants here. +; +Const TYPE_CAM=1 +Const TYPE_PLAYER=2 +Const TYPE_SHOT1=3 +Const TYPE_TUNNEL=50 +Const TYPE_ASTER=51 +Const TYPE_ASTERPOLY=52 +Const TYPE_CLAW=53 + + +; +; +Load_Media() +Get_GFX_Modes() +Load_Highscores() +Set_GFXMode() +Resize_Images(GraphicsWidth(),GraphicsHeight()) + +; +Goto MainMenu +End + +.Game_Start_Loop +; +FlushMouse + +Create_Tunnel() +lit=CreateLight() +TurnEntity lit,45,0,0 + +; +Select Gametype + Case 1 ;One Player Game + this.play=Add_Player(player1type,255,255,255,False,0,"Player1") + Num_Players=1 + Case 2 ;Two Player Game + this.play=Add_Player(player1type,255,255,255,True,0,"") + other.play=Add_Player(player2type,255,255,0,True,1,"") + Num_Players=2 + If Player2type>=5 Then Num_Players=2 +End Select + +Exited=False +Go1_timer=0 +Go2_timer=0 +Game_Counter=0 + +dummy=CreatePivot() +Listen=CreateListener(dummy,.001,10,5) +While Exited=False +Game_Counter=Game_Counter+1 + Cls + TurnEntity lit,1,1,0 + Update_Flash() + Do_Tunnel_Scroll(Tunnel_tex,1) + Do_Tunnel_Scroll(tex0,-2) + Update_Shield_Texture() + Do_Control() + + Update_Players() + Update_Shots() + Update_Objects() + Update_Smoke() + Change_Tunnel_Colors() + If (Game_Counter Mod 100)=0 Then Alter_Tunnel_Colors() +; + If cnt=0 Then + cnt=10+(10*(3-G_Diff)) + Add_Object(Rnd(-300,300),Rnd(-300,300),9000,-1,Rnd(10,70),Rnd(50,150),Rand(1,3)) +; Add_Object(ppop,0,10000,-1,50,4,1000) + ppop=ppop+20 + End If + ; + If KeyHit(1) Then Num_Players=0:Exited=True + ; + cnt=cnt-1 +; + UpdateWorld + RenderWorld + + lastplayer=Do_GameOver_Overlay() + If lastplayer>=5 Then ppp=100 + If ppp>0 Then + ppp=ppp-1 + If ppp=2 Then Exited=True + End If + Update_Players_Views() + Flip +Wend + FreeEntity dummy + ;Check High Scores + Select gametype + Case 1 ;One player Game + Check_Highs(score(0),1) + Case 2 ;two player Game + If player1type<=4 Then + Check_Highs(score(0),1) + End If + If player2type<=4 Then + Check_Highs(score(1),2) + End If + End Select + FreeEntity lit + FreeEntity Tunnel_Mesh + FreeEntity Background + Free_Smoke() + Free_Shots() + Delete_Objects() + Delete_Players() + FlushMouse + VWait 50 +Goto MainMenu +; +; +Function Do_GameOver_Overlay() + If Go1_Timer>0 Then + Go1_Timer=Go1_timer-1 + If Go1_Timer>2 Then + If Num_Players=1 Then pos=0 Else pos=GraphicsHeight()/4 + If Go2_Timer>2 Then pos=0 + DrawImage gover_image,0,pos + Else + If Num_Players=0 Then + Exited=True + Else + lastplayer=Resize_Last_Player() + End If + End If + End If + If Go2_Timer>0 Then + Go2_Timer=Go2_timer-1 + If Go2_Timer>2 Then + If Num_Players=1 Then pos=GraphicsHeight()/2 Else pos=GraphicsHeight()/4 + If Go1_Timer>2 Then pos=GraphicsHeight()/2 + DrawImage gover_image,0,pos + Else + If Num_Players=0 Then + Exited=True + Else + lastplayer=Resize_Last_Player() + End If + End If + End If + Return lastplayer +End Function +; +; +Function Update_Shield_Texture() + shield_tex_pos=shield_tex_pos+.01 + If shield_tex_pos>1 Then shield_tex_pos=shield_tex_pos-1 + PositionTexture shield_tex,shield_tex_pos,shield_tex_pos +End Function +; Create Scrolling tunnel No entity movement done +; at all. Texture scrolling screates the effect +; Makes controling bad guys a whole lot easier.. +; +Function Create_Tunnel() + Tunnel_mesh=CreateCylinder(12) + FlipMesh Tunnel_mesh + ScaleMesh Tunnel_mesh,500,12000,500 + RotateEntity Tunnel_mesh,90,0,0 + EntityTexture Tunnel_mesh,Tunnel_tex,0,0 + EntityType tunnel_mesh,TYPE_TUNNEL + PositionEntity tunnel_mesh,0,0,11400 + EntityColor tunnel_mesh,255,100,0 + t_r1=255:ta_r1=t_r1 + t_g1=100:ta_g1=t_g1 + t_b1=0:ta_b1=t_b1 + + BackGround=CreateCylinder(12) + FlipMesh BackGround + ScaleMesh BackGround,510,12000,510 + RotateEntity BackGround,90,0,0 + EntityTexture BackGround,tex0,0,0 + PositionEntity BackGround,0,0,11400 + EntityColor BackGround,0,255,255 + t_r2=0:ta_r2=t_r2 + t_g2=255:ta_g2=t_g2 + t_b2=255:ta_b2=t_b2 +End Function + +Function Change_Tunnel_Colors() + If t_r1>ta_r1 Then t_r1=t_r1-1 + If t_g1>ta_g1 Then t_g1=t_g1-1 + If t_b1>ta_b1 Then t_b1=t_b1-1 + If t_r2>ta_r2 Then t_r2=t_r2-1 + If t_g2>ta_g2 Then t_g2=t_g2-1 + If t_b2>ta_b2 Then t_b2=t_b2-1 + + If t_r10 Then FreeTexture tunnel_tex:tunnel_tex=0 + If tex0<>0 Then FreeTexture tex0:tex0=0 + If Shield_tex<>0 Then FreeTexture Shield_Tex:Shield_Tex=0 + If Rock_Tex<>0 Then FreeTexture Rock_Tex:Rock_Tex=0 + If temptex<>0 Then FreeTexture temptex:temptex=0 + + ; + ; Global Meshes + ; + If Aster_mesh<>0 Then FreeEntity Aster_mesh:Aster_Mesh=0 + If player_mesh<>0 Then FreeEntity player_mesh:player_mesh=0 + If shield_mesh<>0 Then FreeEntity shield_mesh:shield_mesh=0 + If missile1_mesh<>0 Then FreeEntity missile1_mesh:missile1_mesh=0 + ; + If Bad01_mesh<>0 Then FreeEntity bad01_mesh:Bad01_mesh=0 + If Claw_Anim_Mesh<>0 Then FreeEntity Claw_Anim_Mesh:Claw_Anim_Mesh=0 + ; + ; + ; Sprites + ; + If shot1_spr<>0 Then FreeEntity shot1_spr:shot1_spr=0 + ; + For a=1 To 4 + If smoke_spr(a)<>0 Then FreeEntity smoke_spr(a):smoke_spr(a)=0 + Next + If target_spr<>0 Then FreeEntity target_spr:Target_Spr=0 + ; + ; 2DImages + If Titlescreen1<>0 Then FreeImage Titlescreen1:Titlescreen1=0 + If Mousepointe<>0 Then FreeImage MousePointer:MousePointer=0 + If Lives_Image<>0 Then FreeImage Lives_image:Lives_image=0 + If Gover_Image<>0 Then FreeImage Gover_Image:Gover_Image=0 + ; + ;Sounds + If Shoot1_wave<>0 Then FreeSound Shoot1_wave:Shoot1_wave=0 + If Explode_Wave<>0 Then FreeSound Explode_Wave:Explode_Wave=0 +End Function + + +; +; Trick scrolling +; Move the texture +Function Do_Tunnel_Scroll(texture,div#) + Tunnel_Texture_Coord=Tunnel_Texture_Coord+Scroll_speed + If Tunnel_Texture_Coord>1 Then Tunnel_Texture_Coord=Tunnel_Texture_Coord-1 + PositionTexture texture,Tunnel_Texture_Coord/div,Tunnel_Texture_Coord +End Function + +; +; Control an entity +; +; Player functions +; typ = 1 Mouse controled player +; 2 ana Joy Controlled player +; 3 dig Joy controlled player +; 4 keyboard controlled player +; 5 CPU Controlled player +; 6 internet player ** TO DO ** +Function Do_Control() + For a.play=Each play + If a\dead=False Then + Select a\con + Case 1 ;Mouse Controlled + Do_MouseMove(a) + Case 2 ;analog controlled + Do_JoyMove(a) + Case 3 ;directional joy controlled + Do_JoyDirMove(a) + Case 4 ;keyboard controlled + Do_KeyMove(a) + Case 5 ;CPU Controlled + CPU_Move(a) + Case 6 ;Internet controlled + End Select + End If + Next +End Function + +Function Do_MouseMove(a.play) + dx#=MouseXSpeed()/2 + dy#=MouseYSpeed()/2 + If dx>0 Then a\roll=a\roll-4 + If dx<0 Then a\roll=a\roll+4 + If dy>0 Then a\pich=a\pich-4 + If dy<0 Then a\pich=a\pich+4 + If a\pich<>0 Then a\pich=a\pich*.85 + If a\roll<>0 Then a\roll=a\roll*.85 + RotateEntity a\piv,a\pich,0,a\roll + TranslateEntity a\piv,dx,dy,0 + MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 + If MouseDown(1) Then Add_Shot(a\piv,1,10,a) +End Function + +Function Do_JoyMove(a.play) + dx#=JoyX() + dy#=JoyY() + If dx>-Dead_BandX And dx-Dead_BandY And dy0 Then a\roll=a\roll-4 + If dx<0 Then a\roll=a\roll+4 + If dy>0 Then a\pich=a\pich-4 + If dy<0 Then a\pich=a\pich+4 + If a\pich<>0 Then a\pich=a\pich*.85 + If a\roll<>0 Then a\roll=a\roll*.85 + RotateEntity a\piv,a\pich,0,a\roll + TranslateEntity a\piv,dx,dy,0 + If JoyDown(1) Then Add_Shot(a\piv,1,10,a) +End Function + +Function Do_JoyDirMove(a.play) + dx#=JoyXDir()*5 + dy#=JoyYDir()*5 + If dx>0 Then a\roll=a\roll-4 + If dx<0 Then a\roll=a\roll+4 + If dy>0 Then a\pich=a\pich-4 + If dy<0 Then a\pich=a\pich+4 + If a\pich<>0 Then a\pich=a\pich*.85 + If a\roll<>0 Then a\roll=a\roll*.85 + RotateEntity a\piv,a\pich,0,a\roll + TranslateEntity a\piv,dx,dy,0 + If JoyDown(1) Then Add_Shot(a\piv,1,10,a) +End Function + +Function Do_KeyMove(a.play) + If KeyDown(Keys(1)) Then dx#=-5 + If KeyDown(Keys(2)) Then dx#=5 + If KeyDown(Keys(3)) Then dy#=-5 + If KeyDown(Keys(4)) Then dy#=5 + If dx>0 Then a\roll=a\roll-4 + If dx<0 Then a\roll=a\roll+4 + If dy>0 Then a\pich=a\pich-4 + If dy<0 Then a\pich=a\pich+4 + If a\pich<>0 Then a\pich=a\pich*.85 + If a\roll<>0 Then a\roll=a\roll*.85 + RotateEntity a\piv,a\pich,0,a\roll + TranslateEntity a\piv,dx,dy,0 + If KeyDown(keys(5)) Then Add_Shot(a\piv,1,10,a) +End Function + +Function CPU_Move(a.play) + b.Obj=Find_Closest_Target() + If b<>Null Then + dx#=(EntityX(b\piv)-EntityX(a\piv))/60 + dy#=(EntityY(b\piv)-EntityY(a\piv))/60 + If dx>0 Then a\roll=a\roll-2 + If dx<0 Then a\roll=a\roll+2 + If dy>0 Then a\pich=a\pich-2 + If dy<0 Then a\pich=a\pich+2 + If a\pich<>0 Then a\pich=a\pich*.85 + If a\roll<>0 Then a\roll=a\roll*.85 + RotateEntity a\piv,a\pich,0,a\roll + TranslateEntity a\piv,dx,dy,0 + ent=LinePick(EntityX(a\piv),EntityY(a\piv),EntityZ(a\piv)+50,0,0,5000) + If dx>-2.5 And dx<2.5 Then + If dy>-2.5 And dy<2.5 Then + Add_Shot(a\piv,1,10,a) + End If + End If + End If +End Function + +Function Find_Obj_From_Ent.Obj(ent) + For a.obj=Each obj + If a\piv=ent Or a\ent=ent Then Return a + Next + Return Null +End Function + +Function Find_Closest_Target.Obj() + z#=1000000 + minz#=100 + For a.Obj=Each Obj + If EntityZ(a\piv,True)>0 Then + If EntityZ(a\piv,True)minz Then target.Obj=a:z=EntityZ(a\piv,True) + End If + Next + Return target +End Function +; +Type play + Field name$ + Field rate + Field ox# + Field cam + Field con + Field piv + Field ent + Field shield_ent + Field glow# + Field dead + Field pich# + Field roll# + Field shield# + Field score + Field waiting + Field id + ; + Field tlx + Field tly + Field brx + Field bry + Field lives +End Type + +; +; +; +Type shot + Field typ + Field ent + Field life# + Field dx# + Field dy# + Field dz# + Field speed# + Field ang# + Field firer.play + Field target.Obj +End Type + +; +; Object +; +; 1-3 are asteroids +Type Obj + Field typ + Field piv + Field ent + Field val + Field col + Field cd + Field speed# + Field dx# + Field dy# + Field ds# + Field fx + Field fy + Field dir + Field st + Field cnt +End Type + +; +; Smoke Effect +; +Type smoke + Field alpha# + Field reduct# + Field ent + Field size# + Field rot# + Field disp# +End Type + +.MainMenu +SetBuffer BackBuffer() +Cls +FlushMouse:FlushKeys + +Game_Start=False +Exit_Game=False +Options=False + +While Not Game_Start=True + cntr=cntr+1 + If MouseXSpeed()+MouseYSpeed()<>0 Then cntr=0 + + Cls + DrawImage TitleScreen1,0,0 + + sel=0 + If cntr<500 Then + Draw_Menu(True,0,0) + sel=Draw_Menu(False,-2,-2) + If MouseHit(1) Then + Select sel + Case 1 + If gametype=1 Then gametype=2 Else gametype=1 + Case 2 + player1type=player1type+1 + If player1type>6 Then player1type=1 + If player2type=player1type Then player1type=player1type+1 + Case 3 + player2type=player2type+1 + If player2type>6 Then player2type=1 + If player2type=player1type Then player2type=player2type+1 + Case 4 + Game_Start=True + Options=True + Case 5 + Case 6 + If player1type<>6 And player2type<>6 Then + Game_Start=True + End If + Case 7 + Exit_Game=True + Game_Start=True + End Select + End If + Else + If cntr>1000 Then cntr=0 + Draw_Highs(True,0,0) + Draw_Highs(False,-2,-2) + End If + DrawImage MousePointer,MouseX(),MouseY() + Flip +Wend +cntr=0 +If Options=True Then Goto Options +If Exit_Game=True Then Goto Exit_Game_Sub +If Game_Start=True Then Goto Game_Start_Loop +RuntimeError "Game Ended Abnormally" +EndGraphics +End + + +; +; Exit Game / Save Highs etc +; Do Credits +.Exit_Game_Sub +Save_Highscores() +ChangeDir ".." +EndGraphics +End +; +; +;Save Highscores and options +Function Load_Highscores() + p=0 + file=ReadFile("../Highs/Highs.Hsr") + For a=1 To 10 + Hn$(a)=ReadLine$(file) + Hs(a)=ReadInt(file) + Next + G_Brightness=ReadInt(file) + G_StartLives=ReadInt(file) + G_Diff=ReadInt(file) + G_CurrentGFX=ReadInt(file) +End Function + +Function Save_Highscores() + p=0 + file=WriteFile("../Highs/Highs.Hsr") + For a=1 To 10 + WriteLine file,Hn$(a) + WriteInt file,Hs(a) + Next + WriteInt file,G_Brightness + WriteInt file,G_StartLives + WriteInt file,G_Diff + WriteInt file,G_CurrentGFX +End Function + +Function Draw_Menu(col,ox,oy) + sel=0 + For a=1 To 7 + b$="" + If col=True Then Color 0,0,0 Else Color 255,255,255 + p=0 + Select a + Case 1 + b$=Menu$(a)+GM_TYPE(gametype) + Case 2 + b$=Menu$(a)+CN_TYPE(player1type) + Case 3 + If gametype=2 Then + b$=Menu$(a)+CN_TYPE(player2type) + End If + Default + b$=Menu(a) + End Select + c#=(Float(a)*32)/2 + w=Len(b$)*8 + y=GraphicsHeight()/2 + y=((y-c)+a*32)-oy + x=(GraphicsWidth()/2)-ox-(w/2) + h=16 + If RectsOverlap(x,y,w,h,MouseX(),MouseY(),1,1) Then sel=a:p=1 + If p<>0 And col=False Then Color Rnd(255),Rnd(255),Rnd(255) + Text x,y,b$ + Next + Return sel +End Function + + +; +;Draw High's +Function Draw_Highs(col,ox,oy) + For a=1 To 10 + If col=True Then Color 0,0,0 Else Color 255,255,255 + b$=a+" "+hn$(a)+" "+hs(a) + c#=(Float(a)*32)/2 + w=Len(b$)*8 + y=GraphicsHeight()/2 + y=((y-c)+a*32)-oy + x=(GraphicsWidth()/2)-ox-(w/2) + h=16 + Text x,y,b$ + Next +End Function + +Function Check_Highs(score,id) + If score>hs(10) Then ; Got a high Score + ps=0 + For a=10 To 1 Step -1 + If score>hs(a) Then + ps=a + hs(a+1)=hs(a) + hn(a+1)=hn(a) + End If + Next + If ps<>0 Then + hs(ps)=score + SetBuffer FrontBuffer() + Cls + DrawImage TitleScreen1,0,0 + Color 0,0,0 + Text 0,GraphicsHeight()/2,"Well Done Player "+id+". Your On the High Score Table",0,1 + Color 255,255,255 + Text 2,2+GraphicsHeight()/2,"Well Done Player "+id+". Your On the High Score Table",0,1 + Locate GraphicsWidth/2,GraphicsHeight()/2+16 + hn(ps)=Input$("Enter Your Name ?") + SetBuffer BackBuffer() + cntr=1000 + End If + End If +End Function + +.dats +;Game Type +Data "One Player Game" +Data "Two Player Game" + +;Control Type +Data "Mouse Control" +Data "Analog Joystick" +Data "Digital Joystick" +Data "Keyboard (Not Recommended)" +Data "CPU" +Data "Network Game(Not Availible)" + +;Menus +Data "Game Type:" +Data "Player One Control:" +Data "Player Two Control:" +Data "Options" +Data "" +Data "START GAME" +Data "QUIT GAME" + +.highs +Data "David Bird",100000 +Data "Made With",90000 +Data "The Great",80000 +Data "Blitz Basic3D",70000 +Data "(c)2001 David Bird",60000 +Data "Donna Bird",50000 +Data "Jessica Bird",40000 +Data "Rebecca Bird",30000 +Data "Daniel Bird",20000 +Data "David Bird",10000 +Data "",0 + +.Options +Create_Tunnel() +OptTunnel=CopyEntity(Tunnel_Mesh):FreeEntity Tunnel_Mesh +OptBackground=CopyEntity(Background):FreeEntity Background + +Optlight=CreateLight() +TurnEntity OptLight,45,0,0 +OptCamera=CreateCamera() +CameraRange Optcamera,1,25000 + +While Not KeyDown(1) + + + AmbientLight G_Brightness,G_Brightness,G_Brightness + UpdateWorld + RenderWorld + G_Brightness=Draw_slider("Brightness",50,50,300,16,G_Brightness,255,5,50) + G_StartLives=Draw_slider("Number of Lives",50,75,300,16,G_StartLives,5,1,150) + If G_StartLives<1 Then G_StartLives=1 + G_Diff=Draw_slider("Difficulty",50,100,300,16,G_Diff,3,1,150) + G_CurrentGFX=Draw_GFX_Selector(G_CurrentGFX,50,130) + DrawImage MousePointer,MouseX(),MouseY() + + Text GraphicsWidth()/2,GraphicsHeight()-16,"Press Escape to Return to Main Menu",1,0 + Flip +Wend + +If OptLight<>0 Then FreeEntity OptLight:OptLight=0 +If OptTunnel<>0 Then FreeEntity OptTunnel:OptTunnel=0 +If OptBackground<>0 Then FreeEntity OptBackground:OptBackground=0 +If OptCamera<>0 Then FreeEntity OptCamera:OptCamera=0 +Goto MainMenu + +Function Draw_slider(txt$,x,y,Ln#,hg,pos#,scale#,Stp,dely) + sel=0 + Rect x,y,ln,hg,0 + Rect x+ln,y,16,hg,0:Text x+ln+8,y+(hg/2)-1,"-",1,1 + If RectsOverlap(x+ln,y,16,16,MouseX(),MouseY(),1,1) Then sel=1 + Rect x+ln+16,y,16,hg,0:Text x+ln+24,y+(hg/2)-1,"+",1,1 + If RectsOverlap(x+ln+16,y+(hg/2)-1,16,16,MouseX(),MouseY(),1,1) Then sel=2 + ps=(ln/scale)*pos + Rect ps+x,y,2,hg,1 + Text x+ln+38,y,txt+" "+Int(Pos) + newval=pos + If MouseDown(1) And sel<>0 Then + Delay dely + If sel=1 And newval>0 Then newval=newval-stp + If sel=2 And newvalscale Then newval=scale + Return newval +End Function + +Function Draw_GFX_Selector(current,x,y) + Rect x-4,y-4,150,24,0 + sel=0 + Rect x+150,y-4,16,24,0:Text x+158,y+6,"-",1,1 + If RectsOverlap(x+150,y-4,16,24,MouseX(),MouseY(),1,1) Then sel=1 + Rect x+166,y-4,16,24,0:Text x+172,y+6,"+",1,1 + If RectsOverlap(x+166,y-4,16,24,MouseX(),MouseY(),1,1) Then sel=2 + Rect x+182,y-4,24,24,0:Text x+194,y+6,"GO",1,1 + If RectsOverlap(x+182,y-4,24,24,MouseX(),MouseY(),1,1) Then sel=3 + + p.GfxMode=First GfxMode + For r=1 To current + p=After p + Next + Text x,y,p\t$ + + If MouseDown(1) And sel<>0 Then + Delay 100 + If sel=1 And current>1 Then current=current-1 + If sel=2 And current0 Then FreeEntity OptLight:OptLight=0 + If OptTunnel<>0 Then FreeEntity OptTunnel:OptTunnel=0 + If OptBackground<>0 Then FreeEntity OptBackground:OptBackground=0 + If OptCamera<>0 Then FreeEntity OptCamera:OptCamera=0 + Set_GFXMode() + Create_Tunnel() + OptTunnel=CopyEntity(Tunnel_Mesh):FreeEntity Tunnel_Mesh + OptBackground=CopyEntity(Background):FreeEntity Background + + Optlight=CreateLight() + TurnEntity OptLight,45,0,0 + OptCamera=CreateCamera() + CameraRange Optcamera,1,25000 + End If + End If + Return current +End Function + +Type GfxMode + Field width,height,depth + Field t$ +End Type + +Function Get_GFX_Modes() + cnt=0 + For k=1 To CountGfxModes() + If GfxMode3D(k) + t.GfxMode=New GfxMode + t\width=GfxModeWidth(k) + t\height=GfxModeHeight(k) + t\depth=GfxModeDepth(k) + t\t$=t\width+","+t\height+","+t\Depth + cnt=cnt+1 + EndIf + Next + Max_GFXModes=cnt-1 +End Function + +Function Set_GFXMode() + m.GfxMode=First GfxMode + For r=1 To G_CurrentGFX + m=After m + Next + Free_Media() + ClearCollisions + Graphics3D m\width,m\height,m\depth,1 + SetBuffer BackBuffer() + Load_Media() + Text GraphicsWidth()/2,GraphicsHeight()/2,"Please Wait Initialising Graphics",1,1 + Flip + Resize_Images(GraphicsWidth(),GraphicsHeight()) + ;Do Collision Table Here + Collisions TYPE_CAM,TYPE_TUNNEL,2,2 + Collisions TYPE_PLAYER,TYPE_TUNNEL,2,2 + Collisions TYPE_ASTER,TYPE_PLAYER,1,2 + + Collisions TYPE_PLAYER,TYPE_ASTER,1,2 + + Collisions TYPE_SHOT1,TYPE_ASTER,1,1 + Collisions TYPE_PLAYER,TYPE_PLAYER,1,1 + Collisions TYPE_PLAYER,TYPE_CLAW,2,2 + +End Function \ No newline at end of file diff --git a/_release/Games/bb3d_asteroids/EdzUpAsteroids.bb b/_release/Games/bb3d_asteroids/EdzUpAsteroids.bb new file mode 100644 index 0000000..5542e5f --- /dev/null +++ b/_release/Games/bb3d_asteroids/EdzUpAsteroids.bb @@ -0,0 +1,888 @@ +;EdzUp Asteroids +;Written by EdzUp of Stonegoat Software + +Graphics3D 640,480,16 +SetBuffer BackBuffer() + +SeedRnd MilliSecs() ;setup random numbers + +Global ArialLarge=LoadFont("arial",72,1,0,0) +Global ArialMid=LoadFont("arial",48,1,0,0) +Global Arial=LoadFont("arial",14,0,0,0) + +Global Explode = LoadSound("Explode.wav") ;Asteroid Explosion +Global ShipExplode = LoadSound("Explode1.wav") ;ship Explosion +Global UFOSound = LoadSound("ufo.wav") ;UFO Engine sound +Global Lazer = LoadSound("Lasergun.wav") ;Lazer Sound +Global PlayerHit = LoadSound("hit.wav") ;Player ship hit + +Global as#=0 + +Global UfoSoundChannel=-1 ;ufo sound channel ;) +SetFont Arial + +Type AsteroidInfo + Field x,y,z ;Asteroid position in 3d world + Field Model ;handle to Asteroid model + Field speed ;speed asteroid moving +End Type + +Type Shots + Field x,y,z ;position in 3d world + Field Model ;Shot Model + Field Timer ;Shot Timer + Field Speed +End Type + +Type UFOShots + Field x,y,z ;position in 3d world + Field Model ;Shot Model + Field Timer ;Shot Timer + Field Speed +End Type + +Type UFOInfo + Field x,y,z ;position in 3d world + Field Model ;UFO Model +End Type + +Type Fragment ;Explosion Fragment + Field x,y,z ;position in 3d world + Field speed + Field timer + Field model +End Type + +Type Explode + Field Model ;Entity attached to it + Field Size ;current size + Field mode ;1 it increases in size + Field timer ;explosion timer +End Type + +;************ TRACERS FLAME CODE ************** +Global flam = LoadSprite("flame2.bmp") +ScaleSprite flam,50,50 +HideEntity flam + +Global flam2 = LoadSprite("flame3.bmp") ;UFO Shot +ScaleSprite flam2,50,50 +HideEntity flam2 + +;********************************************** +Global B3DLogo = LoadImage("b3dlogo.png") +MidHandle B3DLogo +Global TitleTex = LoadImage("Title.png") +MidHandle TitleTex +;enemy UFO Mesh +Global UFOMesh=LoadMesh("UFO.3ds") +ScaleMesh UFOMesh,50,50,50 +HideEntity UFOMesh + +;Load Asteroid Model (Large) +Global LargeAsteroidMesh=LoadMesh("asteroid.3ds") +ScaleMesh LargeAsteroidMesh,60,60,60 +HideEntity LargeAsteroidMesh + +;Load Asteroid Model (medium) +Global MediumAsteroidMesh=LoadMesh("asteroid.3ds") +ScaleMesh MediumAsteroidMesh,30,30,30 +HideEntity MediumAsteroidMesh + +;Load Asteroid Model (small) +Global SmallAsteroidMesh=LoadMesh("asteroid.3ds") +ScaleMesh SmallAsteroidMesh,15,15,15 +HideEntity SmallAsteroidMesh + +;Load Player Model +Global PlayerMesh=LoadMesh("hfighter.3ds") +ScaleMesh PlayerMesh,1,1,1 +HideEntity PlayerMesh + +;create backdrop +Global Stary=CreateBrush() +BrushColor Stary,155,155,155 +StarTex=LoadTexture("Stars.bmp") +ScaleTexture startex,.1,.1 +BrushTexture Stary,StarTex +Global BackdropSphere=CreateSphere() +EntityTexture BackDropsphere,startex +HideEntity BackdropSphere + +ScaleMesh BackdropSphere,-30000,-30000,-30000 ;negative value so player can be put inside + ;and still see the texture ;) + +;setup entity types +Const PLAYER_TYPE =1 +Const CAMERA_TYPE =2 +Const UFOSHOT_TYPE =3 +Const PLAYERSHOT_TYPE =5 +Const UFO_TYPE =6 +Const ASTEROID_TYPE =10 +;setup collision system +;1 is player +;3 UFO Shots +;5 player shots +;6 is UFO's +;10 are asteroids +Collisions PLAYER_TYPE, ASTEROID_TYPE,1,2 +Collisions CAMERA_TYPE, UFOSHOT_TYPE,1,2 +Collisions PLAYERSHOT_TYPE, ASTEROID_TYPE,1,2 +Collisions UFOSHOT_TYPE, PLAYER_TYPE,1,2 +Collisions PLAYER_TYPE, UFOSHOT_TYPE,1,2 +Collisions PLAYER_TYPE, UFO_TYPE,1,2 +Collisions PLAYERSHOT_TYPE, UFO_TYPE,1,2 + +Light=CreateLight(1) + +Global Pivot=CreatePivot() +EntityType Pivot,PLAYER_TYPE +EntityRadius pivot,7 + +;create camera +Global camera=CreateCamera(pivot) ;Or nothing will be drawn +CameraRange camera,1,45000 ;were in space ;) +;CameraFogRange camera,44500,45000 +;CameraFogColor camera,0,0,0 +EntityType camera,PLAYER_TYPE +EntityRadius camera,7 + +Global Backing=CopyEntity(BackDropsphere) +Global PlayShip=CopyEntity(PlayerMesh,0) + +EntityType PlayShip,1 +EntityRadius playship,150 +PositionEntity PlayShip,EntityX#(pivot),EntityY#(pivot),EntityZ#(pivot) +RotateEntity PlayShip,EntityPitch#(pivot),EntityYaw#(pivot),EntityRoll#(pivot) +MoveEntity PlayShip,0,0,-3.5 + +.restart + +;declare a few globals +Global UFOCount=0 ;number of UFO's in local area +Global PlayerScore=0 +Global HighScore=10000 +Global PlayerLives=3 +Global PX,PY,PZ ;player position +Global FX,FY,FZ ;player facing +Global AsteroidCount=5 ;number of asteroids in this level +Global Level=1 ;level player is on +Global ExtraLife=10000 ;Extra Life at 10000 points +Global Damage=100 ;how many damage points player has +Global Speed=0 ;current players ship speed +Global Actual=0 ;Actual speed +Global Roll#=0 ;Ships Rolling +Global Hits=0 ;Shots hit +Global Fired=0 ;Shots fired +Global Accuracy=0 ;Accuracy + +Global Asteroids=0 ;Current Asteroid number + +Global TextTimer=0 ;Text Timer for messages +Global BonusTextTimer=0;Timer for Bonuses +Global BonusText$="" ;message +Global BonusTime=0 ;Timer for Bonus (0 means its run out ;) ) +Global Bonus=0 ;Bonus Active +Global GodMode=0 ;1 if godmode active + +Global ShotTime=0 ;Shot Timer +Global MaxTime=10 ;Max Shot Timer +Global UFOShotTime=0 ;UFO Firing Timer +Global OldDamage=0 ;Old damage for God Mode + + +Global Endgame=0 ;1 if player has been killed (and all his lives have run out) + +CameraClsColor camera,0,0,0 ;set camera refresh color to black + +AmbientLight 255,255,255 + +Title() +CreateLevel(1) +texttimer=100 +Repeat + If GodMode=1 Then OldDamage=Damage + Cls + mxs=MouseXSpeed() ;get mouse speed + mys=MouseYSpeed() + MoveMouse 320,240 ;reset mouse to center of screen (so mousex speed doesnt stop) + + TurnEntity Pivot,mys,-mxs,0 + If KeyDown(200)=1 Then Speed=Speed+2 ;up + If KeyDown(208)=1 Then Speed=Speed-2 ;down + If KeyDown(203)=1 Then Roll#=Roll#-0.5;left + If KeyDown(205)=1 Then Roll#=Roll#+0.5;right + If Speed<0 Then Speed=0 + If Speed>100 Then Speed=100 + If Actual>Speed Then Actual=Actual-1 + If Actual0 Then ShotTime=ShotTime-1 + Roll=0 + UpdateLevel() + updateExplosions() + UFOAppear=Rnd(100000) + If UFOAppear<50 + PlaceUFO() + EndIf + If Damage<1 + PlaySound shipexplode + ClearLevel() + CreateLevel(Level) + PositionEntity camera,0,0,0 + texttimer=100 + Damage=100 + PlayerLives=PlayerLives-1 + EndIf + If PlayerLives<0 And texttime<1 + Repeat + Until MouseDown(1)=0 And MouseDown(2)=0 + ClearLevel() + Goto restart + EndIf + If PlayerLives<0 + Endgame=1 + texttime=200 + EndIf + If Asteroids<1 + EndOfLevelAnim() + AccuracyBonus() + ClearLevel() + Level=Level+1 + CreateLevel(Level) + PositionEntity camera,0,0,0 + texttimer=100 + EndIf + PositionEntity PlayShip,EntityX#(pivot),EntityY#(pivot),EntityZ#(pivot) + RotateEntity PlayShip,EntityPitch#(pivot),EntityYaw#(pivot),EntityRoll#(pivot) + MoveEntity PlayShip,0,0,-4.5 + UpdateWorld + RenderWorld + If Texttimer>0 + SetFont ariallarge + Color 255,255,255 + If endgame=0 Then Text 320,240,"LEVEL "+Level,1,1 + If endgame=1 Then Text 320,240,"GAME OVER",1,1 + SetFont arial + TextTimer=TextTimer-1 + EndIf + If BonusTexttimer>0 + SetFont arialMid + Color 255,255,255 + Text 320,420,BonusText$,1,1 + SetFont arial + BonusTextTimer=BonusTextTimer-1 + EndIf + BonusTime=BonusTime-5 + If BonusTime<1 + MaxTime=10 + GodMode=0 + BonusTime=-2 + EndIf + If PlayerScore>=HighScore + HighScore=PlayerScore + SetFont arial + Text 320,60,"YOU HAVE A HIGH SCORE",1,1 + EndIf + If PlayerScore>ExtraLife + BonusText$="Extra Life" + BonusTextTimer=100 + PlayerLives=PlayerLives+1 + ExtraLife=ExtraLife*2 + EndIf + ShowStats() + Flip + TestCollisions() + If GodMode=1 Then Damage=OldDamage +Until KeyDown(1)=1 +End + +Function AccuracyBonus() + a=0 + If (Hits>Fired/4)*3 Then a=75 + If Hits=Fired Then a=100 + Select a + Case 100:BonusText$="Accuracy Bonus" + BonusTextTimer=100 + PlayerScore=PlayerScore+1000 + Case 75 :BonusText$="Accuracy Bonus" + BonusTextTimer=100 + PlayerScore=PlayerScore+500 + End Select + Hits=0 + Fired=0 + Accuracy=-1 +End Function + +Function PlaceUFO() + UFO.UFOInfo = New UFOInfo + UFO\x=Rnd(-10000,10000) + UFO\y=Rnd(-10000,10000) + UFO\z=-10000 + UFO\Model=CopyEntity(UFOMesh,0) + EntityType UFO\Model,6 ;Set UFO Type to 6 + EntityRadius UFO\Model,150 + PositionEntity UFO\Model,UFO\x,UFO\y,UFO\z + UFOCount=UFOCount+1 +End Function + +Function explosion(entity) + Boom.Explode = New explode + Boom\Model = CopyEntity(flam) + PositionEntity boom\Model,EntityX#(entity),EntityY#(entity),EntityZ#(entity) + PointEntity Boom\Model,pivot + Boom\Size=5 + Boom\Mode=1 + Boom\Timer=0 + + Fragments=Rnd(20)+10 + For a=0 To Fragments + Frag.Fragment = New Fragment + + Frag\Model = CopyEntity(Flam) + PositionEntity Frag\Model,EntityX#(entity),EntityY#(entity),EntityZ#(entity) + TurnEntity Frag\Model,Rnd(360),Rnd(360),Rnd(360) + Frag\Speed = (Rnd(5)+1)*5 + Frag\Timer = 0 + Next +End Function + +Function UpdateExplosions() + For Boom.Explode=Each explode + If Boom<>Null + If Boom\mode=1 + Boom\Size=5+(Boom\Timer) + Else + Boom\Size=5+(25-(Boom\Timer-25)) + EndIf + ScaleSprite Boom\Model,Boom\size*25,Boom\size*25 + Boom\Timer=Boom\Timer+1 + If Boom\Timer>25 Then Boom\Mode=0 + If Boom\Timer>50 + FreeEntity Boom\Model + Delete Boom + EndIf + EndIf + Next + + For Frag.Fragment = Each fragment + If Frag<>Null + MoveEntity Frag\Model,0,0,Frag\Speed + Frag\Timer = Frag\Timer + 1 + If Frag\Timer>50 + FreeEntity Frag\Model + Delete Frag + EndIf + EndIf + Next +End Function + +Function UFOFire(entity) + ;ufo firing function + PlaySound Lazer + UFOShot.UFOShots = New UFOShots ;create another Shot + UFOShot\Model = CopyEntity(flam2) + EntityType UFOShot\Model,3 + UFOShot\Speed=50 + PositionEntity UFOShot\Model,EntityX#(entity),EntityY#(entity),EntityZ#(entity) + TurnEntity UFOShot\Model,EntityPitch#(entity),EntityYaw#(entity),EntityRoll#(entity) + PointEntity UFOShot\Model,Pivot ;make shot face player (so shot moves towards player) +End Function + +Function EndOfLevelAnim() + ;remember old cam position + ox#=EntityX#(pivot) + oy#=EntityY#(pivot) + oz#=EntityZ#(pivot) + ofx#=EntityPitch#(pivot) + ofy#=EntityYaw#(pivot) + ofz#=EntityRoll#(pivot) + + ;create a player ship + Ship=CopyEntity(PlayerMesh,0) + PositionEntity Ship,0,0,0 + PositionEntity pivot,250,120,250 ;position camera to get a good view ;) + PointEntity pivot,ship ;point camera (attached to pivot) at ship + ScaleEntity ship,3,3,3 ;scale ship so it looks better + timer=50 + xm=0 + ;move ship + Repeat + MoveEntity ship,0,0,1 + UpdateWorld + RenderWorld + Flip + timer=timer-1 + If KeyDown(1)=1 Then End + Until timer<1 + timer=25 + ScaleEntity ship,3,3,12 ;scale ship to make it look like its jumping + ;move ship forwards + Repeat + MoveEntity ship,0,0,-50 + UpdateWorld + RenderWorld + Flip + timer=timer-1 + If KeyDown(1)=1 Then End + Until timer<1 + jumpstar=CopyEntity(flam2) + PositionEntity jumpstar,EntityX#(ship),EntityY#(ship),EntityZ#(ship) + FreeEntity ship + For a=1 To 10 + ScaleSprite jumpstar,50*a,50*a + UpdateWorld + RenderWorld + Flip + Next + For a=10 To 1 Step -1 + ScaleSprite jumpstar,50*a,50*a + UpdateWorld + RenderWorld + Flip + Next + FreeEntity jumpstar + UpdateWorld + RenderWorld + Flip + ;restore camera position (attached to the pivot) + PositionEntity pivot,ox#,oy#,oz# + RotateEntity pivot,ofx#,ofy#,ofz# +End Function + +Function FireShot(entity) + PlaySound Lazer + Shot.Shots = New Shots ;create another Shot + Shot\Model = CopyEntity(flam) ;copy Tracers Sprite Entity ;) + EntityType Shot\Model,5 + PositionEntity Shot\Model,EntityX#(Pivot),EntityY#(Pivot),EntityZ#(Pivot) + TurnEntity Shot\Model,EntityPitch#(Pivot),EntityYaw#(Pivot),EntityRoll#(Pivot) + Shot\Speed = 50+(Actual+5) + ShotTime=MaxTime + Fired=Fired+1 +End Function + +Function NewAsteroid(Entity,speed) + ;when something hits an asteroid this function creates new asteroids + If speed=5 Then count=Rnd(3,5) + If speed=10 Then count=Rnd(2,4) + Asteroids=Asteroids+count + For a=1 To count + Asteroid.AsteroidInfo=New AsteroidInfo + Asteroid\x=EntityX#(entity) + Asteroid\y=EntityY#(entity) + Asteroid\z=EntityZ#(entity) + If speed=5 Then Asteroid\Speed=10 + If speed=10 Then Asteroid\Speed=20 + If speed=5 Then Asteroid\Model=CopyEntity(MediumAsteroidMesh,0) + If speed=10 Then Asteroid\Model=CopyEntity(SmallAsteroidMesh,0) + If speed=5 Then EntityRadius Asteroid\Model,200 + If speed=10 Then EntityRadius Asteroid\Model,150 + If speed=5 Or speed=10 + PositionEntity Asteroid\Model,Asteroid\x,Asteroid\y,Asteroid\z + RotateEntity Asteroid\Model,Rnd(360),Rnd(360),Rnd(360) + EntityType Asteroid\Model,10 + Else + FreeEntity Asteroid\Model + Delete Asteroid + Asteroids=Asteroids-1 + EndIf + Next + FreeEntity entity + Asteroids=Asteroids-1 +End Function + +Function TestCollisions() + ;function to check collisions + For Asteroid.AsteroidInfo=Each AsteroidInfo + If Asteroid<>Null + ;if player has collided with asteroid + If EntityCollided(Asteroid\Model,1) + Actual=0 + If speed>0 + damage=damage-(speed/2) + Else + damage=damage-5 + EndIf + Speed=0 + EndIf + If EntityCollided(Asteroid\Model,5) ;if asteroid and player shot collides + Hits=Hits+1 + PlaySound Explode + Explosion(Asteroid\Model) + If asteroid\Speed=5 Or asteroid\speed=10 Then NewAsteroid(Asteroid\Model,Asteroid\Speed) + If asteroid\speed=5 Then PlayerScore=PlayerScore+10 + If asteroid\speed=10 Then PlayerScore=PlayerScore+20 + If asteroid\Speed=20 + PlayerScore=PlayerScore+50 + FreeEntity Asteroid\Model + Asteroids=Asteroids-1 + EndIf + Delete Asteroid + EndIf + EndIf + Next + + For UFO.UFOInfo = Each UFOInfo + If UFO<>Null + If EntityCollided(Ufo\Model,1) + Actual=0 + Speed=0 + EndIf + If EntityCollided(Ufo\Model,5) + Hits=Hits+1 + PlaySound ShipExplode + Explosion(UFO\Model) + PlayerScore=PlayerScore+200 + Bonus=Rnd(50) + If Bonus<10 + BonusTextTimer=100 + Bonus=Rnd(7) + If Bonus<0 Then Bonus=0 + If Bonus>5 Then Bonus=5 + If Bonus=0 + BonusText$="Rapid Fire" + MaxTime=1 + BonusTime=10000 + EndIf + If Bonus=1 + BonusText$="Extra Life" + PlayerLives=PlayerLives+1 + BonusTime=0 + EndIf + If Bonus=2 + BonusText$="Full Repair" + Damage=100 + OldDamage=100 + BonusTime=0 + EndIf + If Bonus=3 + BonusText$="Extra Score" + PlayerScore=PlayerScore+1000 + BonusTime=0 + EndIf + If Bonus=4 + BonusText$="Level Skip" + Asteroids=0 + BonusTime=0 + EndIf + If Bonus=5 + BonusText$="God Mode" + GodMode=1 + BonusTime=10000 + OldDamage=Damage + EndIf + EndIf + UFOCount=UFOCount-1 + FreeEntity UFO\Model + Delete UFO + EndIf + EndIf + Next + + ;ufo shots collide with player (type 1) damageing them + For UFOShot.UFOShots = Each UFOShots + If UFOShot<>Null + If EntityCollided(UFOShot\Model,1) ;if shot hits pivot + PlaySound PlayerHit + Damage=Damage-10 + FreeEntity UFOShot\Model + Delete UFOShot + EndIf + If UFOShot<>Null + If EntityCollided(UFOShot\Model,2) ;if shot hits cam + PlaySound PlayerHit + Damage=Damage-10 + FreeEntity UFOShot\Model + Delete UFOShot + EndIf + EndIf + EndIf + Next + + For Shot.Shots = Each Shots + If Shot<>Null + del=0 + If EntityCollided(Shot\Model,10) + del=1 + EndIf + If EntityCollided(Shot\Model,6) + del=1 + EndIf + If del=1 + FreeEntity Shot\Model + Delete Shot + EndIf + EndIf + Next +End Function + +Function ShowStats() + ;player information + Color 255,255,255 + SetFont Arialmid + Text 320,20,PlayerScore,1,1 + SetFont arial + If PlayerLives>-1 + Text 10,10,"LIVES "+PlayerLives,0,0 + Else + Text 10,10,"LIVES 0" + EndIf + If BonusTime>0 + Rect 519,9,102,22,0 + Color 255,0,0 + Rect 520,10,BonusTime/100,20,1 + Color 255,255,255 + Text 570,20,"BONUS",1,1 + EndIf + If UFOCount>0 + Color 255,0,0 + Text 320,280,"-UFO ALERT-",1,1 + EndIf + Color 255,255,255 + Rect 9,449,102,22,0 + Color 0,255,0 + Rect 10,450,Damage,20,1 + Color 255,0,0 + Text 60,460,"DAMAGE",1,1 + Color 255,255,255 + Rect 519,449,102,22,0 + Color 0,255,0 + If speed>0 Then Rect 520,450,Speed,10,1 + Color 0,0,255 + If Actual>0 Then Rect 520,460,Actual,10,1 + Color 255,0,0 + Text 570,460,"THRUST",1,1 + Color 255,255,255 + Line 310,240,315,240 + Line 325,240,330,240 + Line 320,230,320,235 + Line 320,245,320,250 +End Function + +Function Title() + Repeat + Until MouseDown(1)=0 And MouseDown(2)=0 + CreateLevel(20) + While MouseDown(1)=0 And MouseDown(2)=0 + Cls + PositionEntity backing,0,0,0 + UpdateLevel() + di=0 + If KeyDown(1)=1 Then End + UpdateWorld + RenderWorld + SetFont ArialLarge + DrawImage TitleTex,320,260 + Color 0,0,0 + Rect 120,30,400,180 + DrawImage B3dLogo,320,120 + SetFont Arial + Color 255,255,255 + Text 320,10,"Hi Score : "+HighScore,1,1 + Text 320,300,"Coded by EdzUp of Stonegoat Software",1,1 + Text 320,320,"Controls are as follows:",1 + Text 320,340,"Mouse - Move around",1 + Text 320,360,"Cursor Up - Speed Up",1 + Text 320,380,"Cursor Down - Slow Down",1 + Text 320,400,"Mouse Left Button - Fire weapons",1 + Text 320,460,"Click mouse to start game",1,1 + Flip + Wend + Repeat + Until MouseDown(1)=0 And MouseDown(2)=0 + ClearLevel() +End Function + +Function ClearLevel() + Hits=0 + Fired=0 + Accuracy=0 + UFOCount=0 + ;clear out old level info + ;Free up all the entities and types allocated (so level can restart afresh) + For Asteroid.AsteroidInfo = Each AsteroidInfo + If Asteroid<>Null + FreeEntity Asteroid\Model + Delete Asteroid + EndIf + Next + For Shot.Shots = Each shots + If Shot<>Null + FreeEntity shot\model + Delete shot + EndIf + Next + For UFOShot.UFOShots = Each UFOshots + If UFOShot<>Null + FreeEntity UFOShot\model + Delete UFOShot + EndIf + Next + For Frag.Fragment = Each Fragment + If Frag<>Null + FreeEntity frag\model + Delete Frag + EndIf + Next + For UFO.UFOinfo = Each UFOInfo + If UFO<>Null + FreeEntity UFO\Model + Delete UFO + EndIf + Next + For Boom.Explode = Each Explode + If Boom<>Null + FreeEntity Boom\Model + Delete Boom + EndIf + Next +End Function + +Function fade(model,val#) + vl#=val + as#=((vl#+0.001)-9000)/1000 + ax=-1 + For asteroid.asteroidinfo = Each asteroidinfo + ax=ax+1 + If ax=model Then EntityAlpha asteroid\model,1-as# + Next +End Function + +Function UpdateLevel() + si=-1 + For Asteroid.AsteroidInfo = Each AsteroidInfo + si=si+1 + MoveEntity Asteroid\Model,0,0,Asteroid\Speed + x#=EntityX#(asteroid\Model) + y#=EntityY#(asteroid\Model) + z#=EntityZ#(asteroid\Model) + min=0 + max=0 + If x#<0 Then min=x# + If y#<0 And y#0 Then max=x# + If y#>0 And y#>max Then max=y# + If z#>0 And z#>max Then max=z# + If max>Abs(min) + a=max + fade(si,a) +; If a>9000 Then EntityAlpha Asteroid\Model,.9 +; If a>9100 Then EntityAlpha Asteroid\Model,.8 +; If a>9200 Then EntityAlpha Asteroid\Model,.7 +; If a>9300 Then EntityAlpha Asteroid\Model,.6 +; If a>9400 Then EntityAlpha Asteroid\Model,.5 +; If a>9500 Then EntityAlpha Asteroid\Model,.4 +; If a>9600 Then EntityAlpha Asteroid\Model,.3 +; If a>9700 Then EntityAlpha Asteroid\Model,.2 +; If a>9800 Then EntityAlpha Asteroid\Model,.1 +; If a>9900 Then EntityAlpha Asteroid\Model,.0 + Else + a=Abs(min) + fade(si,a) +; If a>9000 Then EntityAlpha Asteroid\Model,.9 +; If a>9100 Then EntityAlpha Asteroid\Model,.8 +; If a>9200 Then EntityAlpha Asteroid\Model,.7 +; If a>9300 Then EntityAlpha Asteroid\Model,.6 +; If a>9400 Then EntityAlpha Asteroid\Model,.5 +; If a>9500 Then EntityAlpha Asteroid\Model,.4 +; If a>9600 Then EntityAlpha Asteroid\Model,.3 +; If a>9700 Then EntityAlpha Asteroid\Model,.2 +; If a>9800 Then EntityAlpha Asteroid\Model,.1 +; If a>9900 Then EntityAlpha Asteroid\Model,.0 + EndIf + If EntityX#(Asteroid\Model)>10000 + PositionEntity Asteroid\Model,-10000,EntityY#(Asteroid\Model),EntityZ#(Asteroid\Model) + EndIf + If EntityX#(Asteroid\Model)<-10000 + PositionEntity Asteroid\Model,10000,EntityY#(Asteroid\Model),EntityZ#(Asteroid\Model) + EndIf + If EntityY#(Asteroid\Model)>10000 + PositionEntity Asteroid\Model,EntityX#(Asteroid\Model),-10000,EntityZ#(Asteroid\Model) + EndIf + If EntityY#(Asteroid\Model)<-10000 + PositionEntity Asteroid\Model,EntityX#(Asteroid\Model),10000,EntityZ#(Asteroid\Model) + EndIf + If EntityZ#(Asteroid\Model)>10000 + PositionEntity Asteroid\Model,EntityX#(Asteroid\Model),EntityY#(Asteroid\Model),-10000 + EndIf + If EntityZ#(Asteroid\Model)<-10000 + PositionEntity Asteroid\Model,EntityX#(Asteroid\Model),EntityY#(Asteroid\Model),10000 + EndIf + Next + For Shot.Shots=Each Shots + If Shot<>Null + MoveEntity Shot\Model,0,0,Shot\Speed + Shot\Timer=Shot\Timer+50 + del=0 + If Shot\Timer>10000 + + FreeEntity Shot\Model + Del=1 + EndIf + If del=1 Then Delete Shot + EndIf + Next + For UFOShot.UFOShots=Each UFOShots + If UFOShot<>Null + MoveEntity UFOShot\Model,0,0,UFOShot\Speed + UFOShot\Timer=UFOShot\Timer+10 + del=0 + If UFOShot\Timer>40000 + + FreeEntity UFOShot\Model + Del=1 + EndIf + If del=1 Then Delete UFOShot + EndIf + Next + For UFO.UFOInfo = Each UFOInfo + If UFO<>Null + If UFOSoundChannel=-1 Then UFOSoundChannel=PlaySound(UFOSound) + If UFOSoundChannel<>-1 And ChannelPlaying(UFOSoundChannel)=0 + UFOSoundChannel=PlaySound(UFOSound) + EndIf + MoveEntity UFO\Model,0,0,20 + + UFOFire=Rnd(1000) + If UFOFire<20 + UFOFire(UFO\Model) + EndIf + If EntityZ#(UFO\Model)>10000 + UFOCount=UFOCount-1 + FreeEntity UFO\Model + Delete UFO + EndIf + EndIf + Next +End Function + +Function CreateLevel(Lev) + AsteroidCount=1+(Lev-1) + If AsteroidCount>20 Then AsteroidCount=20 + Asteroids=AsteroidCount + For a=1 To AsteroidCount + Asteroid.AsteroidInfo = New AsteroidInfo + Asteroid\Model=CopyEntity(LargeAsteroidMesh,0) ;create asteroid + EntityRadius Asteroid\Model,450 + Repeat + Asteroid\x=Rnd(-10000,10000) ;position asteroid + Asteroid\y=Rnd(-10000,10000) + Asteroid\z=Rnd(-10000,10000) + ok=0 + If Asteroid\x>EntityX(Camera)-1000 And asteroid\xEntityY(Camera)-1000 And asteroid\yEntityZ(Camera)-1000 And asteroid\z + WORD major; + WORD minor; + DWORD flags; +} + +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} + +template AnimationKey { + <10DD46A8-775B-11cf-8F52-0040333594A3> + DWORD keyType; + DWORD nKeys; + array TimedFloatKeys keys[nKeys]; +} + +template Animation { + <3D82AB4F-62DA-11cf-AB39-0020AF71E433> + [...] +} + + template AnimationSet { + <3D82AB50-62DA-11cf-AB39-0020AF71E433> + [Animation] +} + + +Header { + 1; + 0; + 1; +} + +Frame Root{ + Frame nose { + Mesh mesh-nose { + 9; + 0.041754;-0.520870;-1.752230;, + 0.000000;-0.562624;-3.122230;, + 0.059049;-0.562624;-1.752230;, + 0.000000;-0.503575;-1.752230;, + -0.041754;-0.520870;-1.752230;, + -0.059049;-0.562624;-1.752230;, + -0.041754;-0.604378;-1.752230;, + 0.000000;-0.621673;-1.752230;, + 0.041754;-0.604378;-1.752230;; + + 14; + 3; 2,1,0;, + 3; 0,1,3;, + 3; 3,1,4;, + 3; 4,1,5;, + 3; 5,1,6;, + 3; 6,1,7;, + 3; 7,1,8;, + 3; 8,1,2;, + 3; 7,8,2;, + 3; 6,7,2;, + 3; 5,6,2;, + 3; 4,5,2;, + 3; 3,4,2;, + 3; 0,3,2;; + MeshMaterialList { + 1; + 14; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material black { + 0.002000;0.002000;0.002000;1.000000;; + 157.360000; + 0.518400;0.518400;0.518400;; + 0.000000;0.000000;0.000000;; + } + } + } + } + + Frame tail { + Mesh mesh-tail { + 33; + 0.000000;0.213764;1.482750;, + -0.032500;0.252982;1.470040;, + 0.000000;0.118882;1.047140;, + -0.032500;0.154050;1.029530;, + 0.000000;0.421446;1.956740;, + -0.032500;0.464976;1.935990;, + 0.000000;1.018140;2.607660;, + -0.032500;1.053370;2.599290;, + -0.010391;0.997356;3.080420;, + -0.032500;1.034190;3.122230;, + -0.010391;0.918696;3.071680;, + -0.032500;0.906996;3.108080;, + 0.000000;0.886856;2.949130;, + -0.032500;0.864596;2.980890;, + 0.000000;-0.498015;2.082350;, + -0.032500;-0.510208;2.117780;, + 0.000000;-0.372648;1.045000;, + -0.032500;-0.383009;1.043660;, + 0.000000;-0.039866;0.824648;, + -0.032500;-0.043814;0.817535;, + 0.000000;0.082848;0.582730;, + -0.032500;0.097518;0.534872;, + -0.065000;0.213764;1.482750;, + -0.065000;0.118882;1.047140;, + -0.065000;0.421446;1.956740;, + -0.065000;1.018140;2.607660;, + -0.054609;0.997356;3.080420;, + -0.054609;0.918696;3.071680;, + -0.065000;0.886856;2.949130;, + -0.065000;-0.498015;2.082350;, + -0.065000;-0.372648;1.045000;, + -0.065000;-0.039866;0.824648;, + -0.065000;0.082848;0.582730;; + + 62; + 3; 2,1,0;, + 3; 2,3,1;, + 3; 0,5,4;, + 3; 0,1,5;, + 3; 4,7,6;, + 3; 4,5,7;, + 3; 6,9,8;, + 3; 6,7,9;, + 3; 8,11,10;, + 3; 8,9,11;, + 3; 10,13,12;, + 3; 10,11,13;, + 3; 12,15,14;, + 3; 12,13,15;, + 3; 14,17,16;, + 3; 14,15,17;, + 3; 16,19,18;, + 3; 16,17,19;, + 3; 18,21,20;, + 3; 18,19,21;, + 3; 20,3,2;, + 3; 20,21,3;, + 3; 3,22,1;, + 3; 3,23,22;, + 3; 1,24,5;, + 3; 1,22,24;, + 3; 5,25,7;, + 3; 5,24,25;, + 3; 7,26,9;, + 3; 7,25,26;, + 3; 9,27,11;, + 3; 9,26,27;, + 3; 11,28,13;, + 3; 11,27,28;, + 3; 13,29,15;, + 3; 13,28,29;, + 3; 15,30,17;, + 3; 15,29,30;, + 3; 17,31,19;, + 3; 17,30,31;, + 3; 19,32,21;, + 3; 19,31,32;, + 3; 21,23,3;, + 3; 21,32,23;, + 3; 18,20,2;, + 3; 6,8,10;, + 3; 6,10,12;, + 3; 6,12,14;, + 3; 4,6,14;, + 3; 4,14,16;, + 3; 0,4,16;, + 3; 2,0,16;, + 3; 2,16,18;, + 3; 31,23,32;, + 3; 25,27,26;, + 3; 25,28,27;, + 3; 25,29,28;, + 3; 24,29,25;, + 3; 24,30,29;, + 3; 22,30,24;, + 3; 23,30,22;, + 3; 23,31,30;; + MeshMaterialList { + 1; + 62; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material yellow { + 1.000000;0.666700;0.000000;1.000000;; + 65.890000; + 1.000000;0.666700;0.000000;; + 0.000000;0.000000;0.000000;; + } + } + } + } + + Frame canopy { + Mesh mesh-canopy { + 66; + 0.010706;-0.185322;-0.856592;, + -0.103198;-0.199881;-0.865683;, + 0.010706;-0.374417;-1.067540;, + -0.199762;-0.241341;-0.891574;, + -0.264283;-0.303390;-0.930325;, + -0.286940;-0.376582;-0.976025;, + 0.010706;-0.371075;0.221225;, + 0.308352;-0.376582;-0.976025;, + 0.285695;-0.303390;-0.930325;, + 0.221174;-0.241341;-0.891574;, + 0.124610;-0.199881;-0.865683;, + 0.010706;0.007898;-0.488197;, + -0.199762;-0.020965;-0.501343;, + -0.378188;-0.103159;-0.538779;, + -0.497408;-0.226172;-0.594807;, + -0.539273;-0.371275;-0.660897;, + 0.560685;-0.371275;-0.660897;, + 0.518820;-0.226172;-0.594807;, + 0.399599;-0.103159;-0.538779;, + 0.221174;-0.020965;-0.501343;, + 0.010706;0.164967;-0.133933;, + -0.264283;0.124289;-0.141836;, + -0.497408;0.008448;-0.164342;, + -0.653177;-0.164920;-0.198023;, + -0.707876;-0.369421;-0.237754;, + 0.729288;-0.369421;-0.237754;, + 0.674589;-0.164920;-0.198023;, + 0.518820;0.008448;-0.164342;, + 0.285695;0.124289;-0.141836;, + 0.010706;0.214816;0.221225;, + -0.286940;0.169963;0.221225;, + -0.539273;0.042233;0.221225;, + -0.707876;-0.148928;0.221225;, + -0.767081;-0.374417;0.221225;, + 0.788493;-0.374417;0.221225;, + 0.729288;-0.148928;0.221225;, + 0.560684;0.042233;0.221225;, + 0.308352;0.169963;0.221225;, + 0.010706;0.169963;0.545616;, + -0.264283;0.128524;0.545616;, + -0.497408;0.010518;0.545616;, + -0.653177;-0.166092;0.545616;, + -0.707876;-0.374417;0.545616;, + 0.729288;-0.374417;0.545616;, + 0.674589;-0.166092;0.545616;, + 0.518820;0.010518;0.545616;, + 0.285695;0.128524;0.545616;, + 0.010706;0.042233;0.809822;, + -0.199762;0.010518;0.809822;, + -0.378188;-0.079801;0.809822;, + -0.497408;-0.214972;0.809822;, + -0.539273;-0.374417;0.809822;, + 0.560685;-0.374417;0.809822;, + 0.518820;-0.214972;0.809822;, + 0.399599;-0.079801;0.809822;, + 0.221174;0.010518;0.809822;, + 0.010706;-0.148928;1.006310;, + -0.103198;-0.166092;1.006310;, + -0.199762;-0.214972;1.006310;, + -0.264283;-0.288126;1.006310;, + -0.286940;-0.374417;1.006310;, + 0.308352;-0.374417;1.006310;, + 0.285695;-0.288126;1.006310;, + 0.221174;-0.214972;1.006310;, + 0.124610;-0.166092;1.006310;, + 0.010706;-0.374417;1.095110;; + + 128; + 3; 2,1,0;, + 3; 2,3,1;, + 3; 2,4,3;, + 3; 2,5,4;, + 3; 2,6,5;, + 3; 2,7,6;, + 3; 2,8,7;, + 3; 2,9,8;, + 3; 2,10,9;, + 3; 2,0,10;, + 3; 0,12,11;, + 3; 0,1,12;, + 3; 1,13,12;, + 3; 1,3,13;, + 3; 3,14,13;, + 3; 3,4,14;, + 3; 4,15,14;, + 3; 4,5,15;, + 3; 5,6,15;, + 3; 6,7,16;, + 3; 7,17,16;, + 3; 7,8,17;, + 3; 8,18,17;, + 3; 8,9,18;, + 3; 9,19,18;, + 3; 9,10,19;, + 3; 10,11,19;, + 3; 10,0,11;, + 3; 11,21,20;, + 3; 11,12,21;, + 3; 12,22,21;, + 3; 12,13,22;, + 3; 13,23,22;, + 3; 13,14,23;, + 3; 14,24,23;, + 3; 14,15,24;, + 3; 15,6,24;, + 3; 6,16,25;, + 3; 16,26,25;, + 3; 16,17,26;, + 3; 17,27,26;, + 3; 17,18,27;, + 3; 18,28,27;, + 3; 18,19,28;, + 3; 19,20,28;, + 3; 19,11,20;, + 3; 20,30,29;, + 3; 20,21,30;, + 3; 21,31,30;, + 3; 21,22,31;, + 3; 22,32,31;, + 3; 22,23,32;, + 3; 23,33,32;, + 3; 23,24,33;, + 3; 24,6,33;, + 3; 6,25,34;, + 3; 25,35,34;, + 3; 25,26,35;, + 3; 26,36,35;, + 3; 26,27,36;, + 3; 27,37,36;, + 3; 27,28,37;, + 3; 28,29,37;, + 3; 28,20,29;, + 3; 29,39,38;, + 3; 29,30,39;, + 3; 30,40,39;, + 3; 30,31,40;, + 3; 31,41,40;, + 3; 31,32,41;, + 3; 32,42,41;, + 3; 32,33,42;, + 3; 33,6,42;, + 3; 6,34,43;, + 3; 34,44,43;, + 3; 34,35,44;, + 3; 35,45,44;, + 3; 35,36,45;, + 3; 36,46,45;, + 3; 36,37,46;, + 3; 37,38,46;, + 3; 37,29,38;, + 3; 38,48,47;, + 3; 38,39,48;, + 3; 39,49,48;, + 3; 39,40,49;, + 3; 40,50,49;, + 3; 40,41,50;, + 3; 41,51,50;, + 3; 41,42,51;, + 3; 42,6,51;, + 3; 6,43,52;, + 3; 43,53,52;, + 3; 43,44,53;, + 3; 44,54,53;, + 3; 44,45,54;, + 3; 45,55,54;, + 3; 45,46,55;, + 3; 46,47,55;, + 3; 46,38,47;, + 3; 47,57,56;, + 3; 47,48,57;, + 3; 48,58,57;, + 3; 48,49,58;, + 3; 49,59,58;, + 3; 49,50,59;, + 3; 50,60,59;, + 3; 50,51,60;, + 3; 51,6,60;, + 3; 6,52,61;, + 3; 52,62,61;, + 3; 52,53,62;, + 3; 53,63,62;, + 3; 53,54,63;, + 3; 54,64,63;, + 3; 54,55,64;, + 3; 55,56,64;, + 3; 55,47,56;, + 3; 65,56,57;, + 3; 65,57,58;, + 3; 65,58,59;, + 3; 65,59,60;, + 3; 65,60,6;, + 3; 65,6,61;, + 3; 65,61,62;, + 3; 65,62,63;, + 3; 65,63,64;, + 3; 65,64,56;; + MeshMaterialList { + 1; + 128; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material glassblutint { + 0.555100;0.800000;0.773000;1.000000;; + 60.000000; + 0.796900;0.971400;0.922300;; + 0.000000;0.000000;0.000000;; + } + } + } + } + + Frame body { + Mesh mesh-body { + 107; + 0.715357;-0.568358;2.126190;, + 0.890442;-0.660896;2.077020;, + 0.000000;-0.811893;1.696410;, + 0.511693;-0.489908;2.167880;, + 0.183646;-0.469152;2.178910;, + -0.183646;-0.469151;2.178910;, + -0.511693;-0.489908;2.167880;, + -0.715357;-0.568358;2.126190;, + -0.890442;-0.660896;2.077020;, + -0.715357;-0.746046;2.027840;, + -0.511693;-0.811971;1.986150;, + -0.276926;-0.916878;2.133810;, + 0.000000;-0.990874;2.182100;, + 0.276926;-0.916878;2.133810;, + 0.511693;-0.811971;1.986150;, + 0.715357;-0.746046;2.027840;, + 0.997806;-0.548760;1.513930;, + 1.242020;-0.647951;1.513930;, + 0.713727;-0.420280;1.513930;, + 0.545099;-0.383980;1.513930;, + -0.545099;-0.383980;1.513930;, + -0.713727;-0.420280;1.513930;, + -0.997807;-0.548760;1.513930;, + -1.242020;-0.647951;1.513930;, + -0.997806;-0.753226;1.513930;, + -0.713727;-0.868523;1.513930;, + -0.386266;-0.945561;1.513930;, + 0.000000;-0.972613;1.513930;, + 0.386267;-0.945561;1.513930;, + 0.713727;-0.868522;1.513930;, + 0.997806;-0.753226;1.513930;, + 1.148420;-0.547978;1.058770;, + 1.429490;-0.642328;1.058770;, + 0.821459;-0.376247;1.058770;, + 0.784223;-0.335284;1.058770;, + -0.784223;-0.335284;1.058770;, + -0.821459;-0.376247;1.058770;, + -1.148420;-0.547978;1.058770;, + -1.429490;-0.642328;1.058770;, + -1.148420;-0.765969;1.058770;, + -0.821459;-0.896073;1.058770;, + -0.444570;-0.983007;1.058770;, + 0.000000;-1.013530;1.058770;, + 0.444571;-0.983007;1.058770;, + 0.821460;-0.896073;1.058770;, + 1.148420;-0.765969;1.058770;, + 1.181870;-0.547978;0.276791;, + 1.471130;-0.642328;0.276791;, + 0.845385;-0.376248;0.276791;, + 0.807064;-0.335284;0.276791;, + -0.807064;-0.335285;0.276791;, + -0.845385;-0.376248;0.276791;, + -1.181870;-0.547978;0.276791;, + -1.471130;-0.642328;0.276791;, + -1.181870;-0.787173;0.276791;, + -0.845385;-0.926581;0.276791;, + -0.457519;-1.013370;0.276791;, + 0.000000;-1.053370;0.276791;, + 0.457519;-1.013370;0.276791;, + 0.845386;-0.926581;0.276791;, + 1.181870;-0.787172;0.276791;, + 1.058540;-0.547978;-0.751299;, + 1.317620;-0.642328;-0.751299;, + 0.757171;-0.376248;-0.751299;, + 0.578279;-0.335284;-0.751299;, + -0.578279;-0.335284;-0.751299;, + -0.757171;-0.376248;-0.751299;, + -1.058540;-0.547978;-0.751299;, + -1.317620;-0.642328;-0.751299;, + -1.058540;-0.765969;-0.751299;, + -0.757171;-0.896074;-0.751299;, + -0.409778;-0.983007;-0.751299;, + 0.000000;-1.013530;-0.751299;, + 0.409778;-0.983007;-0.751299;, + 0.757171;-0.896074;-0.751299;, + 1.058540;-0.765969;-0.751299;, + 0.748330;-0.528800;-1.267420;, + 0.931484;-0.629639;-1.267420;, + 0.535277;-0.415035;-1.267420;, + 0.285482;-0.380320;-1.267420;, + -0.285482;-0.380320;-1.267420;, + -0.535277;-0.415035;-1.267420;, + -0.748330;-0.528800;-1.267420;, + -0.931484;-0.629639;-1.267420;, + -0.748330;-0.731895;-1.267420;, + -0.535277;-0.842154;-1.267420;, + -0.289690;-0.915826;-1.267420;, + 0.000000;-0.941696;-1.267420;, + 0.289690;-0.915826;-1.267420;, + 0.535278;-0.842154;-1.267420;, + 0.748330;-0.731895;-1.267420;, + 0.397797;-0.544818;-1.693180;, + 0.495159;-0.639093;-1.693180;, + 0.284543;-0.464896;-1.693180;, + 0.122916;-0.443751;-1.693180;, + -0.122916;-0.443751;-1.693180;, + -0.284543;-0.464896;-1.693180;, + -0.397798;-0.544818;-1.693180;, + -0.495159;-0.639093;-1.693180;, + -0.397798;-0.689003;-1.693180;, + -0.284543;-0.756164;-1.693180;, + -0.153994;-0.801040;-1.693180;, + 0.000000;-0.816798;-1.693180;, + 0.153994;-0.801040;-1.693180;, + 0.284543;-0.756164;-1.693180;, + 0.397798;-0.689003;-1.693180;, + 0.000000;-0.542308;-2.091320;; + + 210; + 3; 2,1,0;, + 3; 2,0,3;, + 3; 2,3,4;, + 3; 2,4,5;, + 3; 2,5,6;, + 3; 2,6,7;, + 3; 2,7,8;, + 3; 2,8,9;, + 3; 2,9,10;, + 3; 2,10,11;, + 3; 2,11,12;, + 3; 2,12,13;, + 3; 2,13,14;, + 3; 2,14,15;, + 3; 2,15,1;, + 3; 1,16,0;, + 3; 1,17,16;, + 3; 0,18,3;, + 3; 0,16,18;, + 3; 3,19,4;, + 3; 3,18,19;, + 3; 4,20,5;, + 3; 4,19,20;, + 3; 5,21,6;, + 3; 5,20,21;, + 3; 6,22,7;, + 3; 6,21,22;, + 3; 7,23,8;, + 3; 7,22,23;, + 3; 8,24,9;, + 3; 8,23,24;, + 3; 9,25,10;, + 3; 9,24,25;, + 3; 10,26,11;, + 3; 10,25,26;, + 3; 11,27,12;, + 3; 11,26,27;, + 3; 12,28,13;, + 3; 12,27,28;, + 3; 13,29,14;, + 3; 13,28,29;, + 3; 14,30,15;, + 3; 14,29,30;, + 3; 15,17,1;, + 3; 15,30,17;, + 3; 17,31,16;, + 3; 17,32,31;, + 3; 16,33,18;, + 3; 16,31,33;, + 3; 18,34,19;, + 3; 18,33,34;, + 3; 19,35,20;, + 3; 19,34,35;, + 3; 20,36,21;, + 3; 20,35,36;, + 3; 21,37,22;, + 3; 21,36,37;, + 3; 22,38,23;, + 3; 22,37,38;, + 3; 23,39,24;, + 3; 23,38,39;, + 3; 24,40,25;, + 3; 24,39,40;, + 3; 25,41,26;, + 3; 25,40,41;, + 3; 26,42,27;, + 3; 26,41,42;, + 3; 27,43,28;, + 3; 27,42,43;, + 3; 28,44,29;, + 3; 28,43,44;, + 3; 29,45,30;, + 3; 29,44,45;, + 3; 30,32,17;, + 3; 30,45,32;, + 3; 32,46,31;, + 3; 32,47,46;, + 3; 31,48,33;, + 3; 31,46,48;, + 3; 33,49,34;, + 3; 33,48,49;, + 3; 34,50,35;, + 3; 34,49,50;, + 3; 35,51,36;, + 3; 35,50,51;, + 3; 36,52,37;, + 3; 36,51,52;, + 3; 37,53,38;, + 3; 37,52,53;, + 3; 38,54,39;, + 3; 38,53,54;, + 3; 39,55,40;, + 3; 39,54,55;, + 3; 40,56,41;, + 3; 40,55,56;, + 3; 41,57,42;, + 3; 41,56,57;, + 3; 42,58,43;, + 3; 42,57,58;, + 3; 43,59,44;, + 3; 43,58,59;, + 3; 44,60,45;, + 3; 44,59,60;, + 3; 45,47,32;, + 3; 45,60,47;, + 3; 47,61,46;, + 3; 47,62,61;, + 3; 46,63,48;, + 3; 46,61,63;, + 3; 48,64,49;, + 3; 48,63,64;, + 3; 49,65,50;, + 3; 49,64,65;, + 3; 50,66,51;, + 3; 50,65,66;, + 3; 51,67,52;, + 3; 51,66,67;, + 3; 52,68,53;, + 3; 52,67,68;, + 3; 53,69,54;, + 3; 53,68,69;, + 3; 54,70,55;, + 3; 54,69,70;, + 3; 55,71,56;, + 3; 55,70,71;, + 3; 56,72,57;, + 3; 56,71,72;, + 3; 57,73,58;, + 3; 57,72,73;, + 3; 58,74,59;, + 3; 58,73,74;, + 3; 59,75,60;, + 3; 59,74,75;, + 3; 60,62,47;, + 3; 60,75,62;, + 3; 62,76,61;, + 3; 62,77,76;, + 3; 61,78,63;, + 3; 61,76,78;, + 3; 63,79,64;, + 3; 63,78,79;, + 3; 64,80,65;, + 3; 64,79,80;, + 3; 65,81,66;, + 3; 65,80,81;, + 3; 66,82,67;, + 3; 66,81,82;, + 3; 67,83,68;, + 3; 67,82,83;, + 3; 68,84,69;, + 3; 68,83,84;, + 3; 69,85,70;, + 3; 69,84,85;, + 3; 70,86,71;, + 3; 70,85,86;, + 3; 71,87,72;, + 3; 71,86,87;, + 3; 72,88,73;, + 3; 72,87,88;, + 3; 73,89,74;, + 3; 73,88,89;, + 3; 74,90,75;, + 3; 74,89,90;, + 3; 75,77,62;, + 3; 75,90,77;, + 3; 77,91,76;, + 3; 77,92,91;, + 3; 76,93,78;, + 3; 76,91,93;, + 3; 78,94,79;, + 3; 78,93,94;, + 3; 79,95,80;, + 3; 79,94,95;, + 3; 80,96,81;, + 3; 80,95,96;, + 3; 81,97,82;, + 3; 81,96,97;, + 3; 82,98,83;, + 3; 82,97,98;, + 3; 83,99,84;, + 3; 83,98,99;, + 3; 84,100,85;, + 3; 84,99,100;, + 3; 85,101,86;, + 3; 85,100,101;, + 3; 86,102,87;, + 3; 86,101,102;, + 3; 87,103,88;, + 3; 87,102,103;, + 3; 88,104,89;, + 3; 88,103,104;, + 3; 89,105,90;, + 3; 89,104,105;, + 3; 90,92,77;, + 3; 90,105,92;, + 3; 92,106,91;, + 3; 91,106,93;, + 3; 93,106,94;, + 3; 94,106,95;, + 3; 95,106,96;, + 3; 96,106,97;, + 3; 97,106,98;, + 3; 98,106,99;, + 3; 99,106,100;, + 3; 100,106,101;, + 3; 101,106,102;, + 3; 102,106,103;, + 3; 103,106,104;, + 3; 104,106,105;, + 3; 105,106,92;; + MeshMaterialList { + 1; + 210; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material blue_pure { + 0.000000;1.000000;1.000000;1.000000;; + 65.890000; + 0.000000;0.000000;0.500000;; + 0.000000;0.000000;0.000000;; + } + } + } + } + +} + diff --git a/_release/Games/wing_ring/media/bust.bmp b/_release/Games/wing_ring/media/bust.bmp new file mode 100644 index 0000000..2209ff3 Binary files /dev/null and b/_release/Games/wing_ring/media/bust.bmp differ diff --git a/_release/Games/wing_ring/media/camel.x b/_release/Games/wing_ring/media/camel.x new file mode 100644 index 0000000..1c9e3f6 --- /dev/null +++ b/_release/Games/wing_ring/media/camel.x @@ -0,0 +1,999 @@ +xof 0302txt 0064 +// DV7810 Copyright Viewpoint Datalabs Intl., Inc. +// www.viewpoint.com, 800-643-8303, 801-229-3333 +// for Microsoft Corporation DirectX format only +// see license agreement for description of rights + +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} + +template AnimationKey { + <10DD46A8-775B-11cf-8F52-0040333594A3> + DWORD keyType; + DWORD nKeys; + array TimedFloatKeys keys[nKeys]; +} + +template Animation { + <3D82AB4F-62DA-11cf-AB39-0020AF71E433> + [...] +} + + template AnimationSet { + <3D82AB50-62DA-11cf-AB39-0020AF71E433> + [Animation] +} + + +Header { + 1; + 0; + 1; +} + +Frame Root{ + Frame quads1 { + Mesh mesh-quads1 { + 275; + -0.190442;-1.160147;-0.108200;, + -0.219983;-0.941477;-0.108046;, + -0.219983;-0.941572;-0.044017;, + -0.190442;-1.160242;-0.044171;, + -0.106851;-1.160209;-0.044446;, + -0.131377;-0.941541;-0.044293;, + -0.131377;-0.941464;-0.107990;, + -0.106851;-1.160134;-0.108144;, + -1.412447;-1.352512;-0.185414;, + -1.416893;-1.256237;-0.182206;, + -1.416895;-1.256256;-0.046371;, + -1.412451;-1.352512;-0.042954;, + -0.099692;-0.837430;-0.032984;, + -0.094134;-0.744496;-0.033868;, + -0.094134;-0.744421;-0.111337;, + -0.099692;-0.837355;-0.118975;, + -1.381276;-1.114842;-0.041459;, + -1.444997;-0.816579;-0.041416;, + -1.445009;-0.816539;-0.107838;, + -1.381286;-1.114817;-0.107881;, + -1.446179;-1.151632;-0.107726;, + -1.533264;-0.873968;-0.107683;, + -1.533260;-0.873981;-0.041423;, + -1.446175;-1.151639;-0.041466;, + -1.033131;-1.352548;0.029192;, + -1.030218;-1.257257;0.033513;, + -1.030195;-1.257204;0.176297;, + -1.033106;-1.352548;0.180543;, + -0.091692;-1.157979;0.049234;, + -0.120014;-0.932020;0.048166;, + -0.119945;-0.931947;0.110194;, + -0.091627;-1.157904;0.109455;, + -0.075640;-1.352554;0.036872;, + -0.073494;-1.288708;0.036650;, + -0.073339;-1.288633;0.166565;, + -0.075484;-1.352554;0.170684;, + -0.223739;-0.837367;-0.119051;, + -0.194255;-0.744433;-0.111406;, + -0.194255;-0.744527;-0.033533;, + -0.223739;-0.837461;-0.032612;, + -1.049895;-1.137028;0.041997;, + -1.141524;-0.854364;0.041726;, + -1.141524;-0.854310;0.108773;, + -1.049895;-1.136986;0.109045;, + -1.052034;-0.813102;0.108861;, + -1.008649;-0.628081;0.138425;, + -1.008622;-0.628250;0.036351;, + -1.052032;-0.813275;0.042146;, + -0.180458;-1.352554;-0.167231;, + -0.174331;-1.282108;-0.167208;, + -0.174392;-1.282164;-0.044272;, + -0.180519;-1.352554;-0.044295;, + 0.030028;-1.352554;-0.044824;, + 0.036155;-1.295139;-0.044801;, + 0.036204;-1.295092;-0.167100;, + 0.030077;-1.352554;-0.167123;, + -1.076934;-1.219030;0.034891;, + -1.076934;-1.218995;0.116018;, + -1.351628;-1.193240;-0.034920;, + -1.351632;-1.193213;-0.113962;, + -1.457464;-1.214496;-0.113778;, + -1.457464;-1.214504;-0.034928;, + -0.979980;-1.104792;0.109132;, + -0.979980;-1.104927;0.042417;, + -1.592616;-0.713963;-0.146075;, + -1.592609;-0.713982;-0.044033;, + -1.214428;-0.696775;0.035708;, + -1.228289;-0.415008;0.032668;, + -1.228287;-0.414950;0.181412;, + -1.214436;-0.696721;0.138290;, + -0.115880;-1.238503;0.036973;, + -0.115793;-1.238428;0.121885;, + -1.451689;-0.352581;-0.193321;, + -1.451695;-0.352602;-0.048784;, + -1.393136;-0.625008;-0.044023;, + -1.393163;-0.624945;-0.146313;, + -0.962976;-1.193446;0.116124;, + -0.962974;-1.193552;0.035399;, + -0.007511;-1.168057;0.109489;, + -0.029941;-0.942097;0.110229;, + -0.030293;-0.942140;0.047844;, + -0.007840;-1.168097;0.048921;, + 0.126988;-1.352554;0.036176;, + 0.129133;-1.298827;0.035975;, + -0.130258;-0.839525;0.031630;, + -0.130162;-0.839450;0.126532;, + -1.206744;-1.352519;-0.042940;, + -1.228175;-1.284179;-0.046358;, + -1.228166;-1.284120;-0.182523;, + -1.206735;-1.352519;-0.185748;, + -0.116252;-0.750140;0.035866;, + -0.116186;-0.750057;0.122141;, + -0.002236;-1.248580;0.121932;, + -0.002680;-1.248622;0.036532;, + 0.129929;-1.298785;0.166638;, + -0.947538;-0.299145;0.181607;, + -0.947538;-0.299320;0.033600;, + -0.112640;-1.245544;-0.044530;, + -0.112617;-1.245498;-0.108228;, + 0.127784;-1.352554;0.170759;, + -0.820780;-1.352548;0.030140;, + -0.932758;-1.352548;0.213595;, + -0.820703;-1.352548;0.180741;, + -1.210533;-0.442558;-0.048770;, + -1.210514;-0.442490;-0.193658;, + -1.311681;-1.352515;-0.227509;, + 0.021147;-1.352554;0.202717;, + -0.829814;-1.296049;0.176484;, + -0.829887;-1.296217;0.034407;, + -0.004156;-0.849600;0.126585;, + -0.004648;-0.849643;0.031136;, + -0.071730;-1.352554;-0.201394;, + -0.211356;-1.232511;-0.108284;, + -0.211385;-1.232569;-0.044255;, + -0.018728;-0.750028;0.122189;, + -0.019100;-0.750109;0.035418;, + -0.376709;0.444408;0.086721;, + -0.413566;0.583783;0.076196;, + -0.413566;0.581430;-0.085728;, + -0.376709;0.442367;-0.096253;, + 0.902359;0.507559;0.012957;, + 0.861274;0.541857;0.018129;, + 0.861280;0.541219;-0.020240;, + 0.902364;0.507064;-0.014405;, + 0.669060;0.226027;0.045973;, + 0.455380;-0.078969;0.057917;, + 0.424875;0.003954;0.058843;, + 0.646293;0.280402;0.046708;, + -0.065603;-1.288814;-0.201371;, + -0.512278;0.647456;0.059329;, + -0.777716;0.563709;0.059650;, + -0.777716;0.561707;-0.067350;, + -0.512278;0.645032;-0.068695;, + 0.646761;0.279285;-0.046508;, + 0.425501;0.002249;-0.058609;, + 0.455790;-0.080082;-0.056843;, + 0.669364;0.225297;-0.045107;, + 0.716340;0.540917;0.021465;, + 0.716677;0.540322;-0.024004;, + 1.109756;0.482052;0.010901;, + 1.109761;0.481719;-0.012086;, + 0.694243;0.376160;0.098199;, + 0.737981;0.329862;0.111175;, + -1.508604;-0.072603;-0.010835;, + -1.436331;0.020694;-0.010835;, + -1.436331;0.036457;-0.010785;, + -1.524076;-0.069585;-0.010785;, + 1.111766;0.372418;-0.061381;, + 0.904369;0.344206;-0.084876;, + 0.880581;0.309415;0.000874;, + 1.112160;0.350935;0.000614;, + -0.061809;-1.243231;0.142212;, + -0.051639;-1.162708;0.123871;, + -0.184278;-0.321776;-0.323905;, + -0.499008;-0.220514;-0.435453;, + -0.499008;-0.369842;0.004787;, + -0.191618;-0.433734;0.003571;, + -1.382466;-0.041402;0.001291;, + -1.068192;-0.171694;0.002223;, + 0.904357;0.345136;0.086154;, + 1.111754;0.373043;0.062487;, + 0.023293;-1.293437;0.197665;, + -0.499008;-0.216173;0.444079;, + -0.184278;-0.317867;0.330559;, + -0.077158;-0.936751;0.125043;, + -0.448620;0.345401;-0.196800;, + -0.460542;0.083128;-0.382972;, + -0.118349;0.225515;-0.116208;, + -0.174223;-0.941474;-0.125840;, + -0.159677;-0.837363;-0.143072;, + -1.524377;-0.069526;0.011076;, + -1.436331;0.036763;0.011076;, + -1.436331;0.020907;0.011455;, + -1.508814;-0.072562;0.011455;, + -0.935526;-1.275552;0.207478;, + -0.118349;0.230391;0.113207;, + -0.460542;0.089780;0.384449;, + -0.448620;0.351251;0.191671;, + -1.324446;-1.269894;-0.222342;, + -0.819700;0.316816;0.151825;, + -0.819700;0.311745;-0.155874;, + -0.147272;-1.160142;-0.125994;, + -0.070260;-0.844254;0.149250;, + -0.049745;-0.389363;0.002177;, + -1.382466;-0.004291;0.130208;, + -1.382466;0.049437;0.132291;, + -0.843545;0.105449;-0.272897;, + -1.068192;0.106899;-0.176255;, + -1.068192;-0.059102;-0.200281;, + -0.843545;-0.110120;-0.310299;, + -1.068192;0.259597;-0.090610;, + -1.257046;0.161238;-0.067610;, + -0.843545;-0.106356;0.317322;, + -0.843545;0.111216;0.274722;, + 0.113189;0.086949;0.047476;, + -0.118349;-0.019865;0.227122;, + 0.807497;0.256278;0.001063;, + 0.785109;0.279977;0.068075;, + 0.845001;0.347673;0.098958;, + -0.142548;-0.744429;-0.133047;, + 0.862419;0.439021;0.090877;, + 0.903504;0.414479;0.084603;, + 0.736716;0.504898;-0.105530;, + 0.861643;0.506714;-0.108345;, + 0.903521;0.413052;-0.084403;, + 0.862437;0.437180;-0.090677;, + 0.845324;0.346512;-0.097105;, + 0.861628;0.508331;0.107444;, + 0.735865;0.506404;0.104072;, + 0.785741;0.279306;-0.066176;, + -0.160364;-1.239219;-0.126077;, + -1.068192;0.111915;0.177150;, + -1.068192;0.264008;0.088285;, + 1.110901;0.419581;0.063487;, + -1.333551;-0.396621;-0.236029;, + -1.257404;-0.028465;-0.196203;, + -1.382670;-0.005339;-0.148691;, + -0.843545;-0.239602;0.003799;, + -0.069858;-0.750020;0.142794;, + 0.397114;0.079414;-0.023103;, + 0.113189;0.084364;-0.048693;, + 0.113189;-0.048676;-0.123469;, + 1.110919;0.418624;-0.063287;, + 0.113189;-0.045736;0.123886;, + 0.396561;0.080913;0.022561;, + -1.083900;-0.414985;0.213895;, + -1.117216;-0.664289;0.160692;, + -1.382466;0.047830;-0.131850;, + -1.382466;0.096739;-0.052000;, + -1.436331;0.044387;0.000025;, + -1.494915;-0.670356;-0.176226;, + 0.469874;-0.118363;0.000593;, + 0.679874;0.200194;0.000478;, + -1.257046;0.070346;-0.171416;, + 0.625574;0.329885;-0.018329;, + 0.625162;0.330869;0.017913;, + -1.414392;-1.133597;-0.127305;, + -1.405624;-1.204070;-0.137077;, + -1.023096;-1.206922;0.133734;, + -1.016866;-1.121774;0.123686;, + -1.490033;-0.845836;-0.127263;, + 0.695096;0.375259;-0.099570;, + 0.738952;0.328836;-0.110976;, + 0.780571;0.427372;-0.112852;, + 0.113189;-0.190621;-0.119750;, + -0.118349;-0.025411;-0.226086;, + -0.106985;-0.270358;-0.256973;, + -0.009658;-0.278939;-0.196053;, + 0.384033;0.114970;-0.000524;, + 0.113189;0.145667;-0.001142;, + 0.779603;0.429086;0.113051;, + 0.113189;-0.188702;0.121935;, + -1.099245;-0.834839;0.123415;, + -1.257046;0.212101;-0.001599;, + -1.257046;0.163863;0.065893;, + -1.382466;0.098152;0.050695;, + 0.645349;0.374924;-0.000804;, + -1.068192;0.359339;-0.002155;, + -1.257046;0.073331;0.171968;, + -0.118349;0.341139;-0.002773;, + 0.113189;-0.256622;0.001211;, + -0.009658;-0.275791;0.200449;, + -1.257046;-0.026516;0.199374;, + -0.987491;-0.079552;0.204752;, + -1.531860;-0.068066;0.000025;, + -1.501417;-0.074005;0.000325;, + -1.436331;0.013371;0.000325;, + 1.110110;0.462772;0.053898;, + 1.156622;0.378088;0.000011;, + 1.110125;0.461930;-0.054536;, + 0.902713;0.478833;0.056216;, + -0.106985;-0.266738;0.262444;, + 0.902726;0.477578;-0.057013;, + -1.382466;0.109967;-0.001222;, + -1.577341;-0.382836;0.000210;; + + 304; + 4; 3,2,1,0;, + 4; 7,6,5,4;, + 4; 11,10,9,8;, + 4; 15,14,13,12;, + 4; 19,18,17,16;, + 4; 23,22,21,20;, + 4; 27,26,25,24;, + 4; 31,30,29,28;, + 4; 35,34,33,32;, + 4; 39,38,37,36;, + 4; 43,42,41,40;, + 4; 2,39,36,1;, + 4; 47,46,45,44;, + 4; 51,50,49,48;, + 4; 55,54,53,52;, + 4; 57,43,40,56;, + 4; 59,19,16,58;, + 4; 61,23,20,60;, + 4; 63,47,44,62;, + 4; 22,65,64,21;, + 4; 69,68,67,66;, + 4; 6,15,12,5;, + 4; 52,53,50,51;, + 4; 71,31,28,70;, + 4; 65,73,72,64;, + 4; 18,75,74,17;, + 4; 77,63,62,76;, + 4; 81,80,79,78;, + 4; 4,5,2,3;, + 4; 42,69,66,41;, + 4; 32,33,83,82;, + 4; 30,85,84,29;, + 4; 89,88,87,86;, + 4; 85,91,90,84;, + 4; 5,12,39,2;, + 4; 93,81,78,92;, + 4; 83,93,92,94;, + 4; 46,96,95,45;, + 4; 98,7,4,97;, + 4; 28,29,80,81;, + 4; 82,83,94,99;, + 4; 16,17,22,23;, + 4; 102,101,24,100;, + 4; 75,104,103,74;, + 4; 86,11,105,89;, + 4; 99,106,32,82;, + 4; 108,77,76,107;, + 4; 100,108,107,102;, + 4; 80,110,109,79;, + 4; 88,59,58,87;, + 4; 51,48,111,52;, + 4; 113,3,0,112;, + 4; 54,98,97,53;, + 4; 12,13,38,39;, + 4; 110,115,114,109;, + 4; 97,4,3,113;, + 4; 34,71,70,33;, + 4; 119,118,117,116;, + 4; 123,122,121,120;, + 4; 40,41,47,63;, + 4; 127,126,125,124;, + 4; 66,67,96,46;, + 4; 26,57,56,25;, + 4; 50,113,112,49;, + 4; 48,49,128,111;, + 4; 10,61,60,9;, + 4; 132,131,130,129;, + 4; 111,128,54,55;, + 4; 136,135,134,133;, + 4; 122,138,137,121;, + 4; 140,123,120,139;, + 4; 127,124,142,141;, + 4; 17,74,65,22;, + 4; 118,132,129,117;, + 4; 84,90,115,110;, + 4; 146,145,144,143;, + 4; 70,28,81,93;, + 4; 29,84,110,80;, + 4; 41,66,46,47;, + 4; 150,149,148,147;, + 4; 92,78,152,151;, + 4; 156,155,154,153;, + 4; 103,158,157,73;, + 4; 160,159,149,150;, + 4; 99,94,161,106;, + 4; 163,162,155,156;, + 4; 78,79,164,152;, + 4; 167,166,165,119;, + 4; 1,36,169,168;, + 4; 152,164,30,31;, + 4; 168,169,15,6;, + 4; 173,172,171,170;, + 4; 101,174,26,27;, + 4; 86,87,10,11;, + 4; 177,176,175,116;, + 4; 8,9,178,105;, + 4; 129,130,179,177;, + 4; 38,156,153,37;, + 4; 165,180,131,132;, + 4; 56,40,63,77;, + 4; 0,1,168,181;, + 4; 106,161,34,35;, + 4; 151,152,31,71;, + 4; 181,168,6,7;, + 4; 74,103,73,65;, + 4; 164,182,85,30;, + 4; 25,77,108,24;, + 4; 90,156,183,115;, + 4; 185,171,172,184;, + 4; 189,188,187,186;, + 4; 187,191,190,186;, + 4; 102,107,174,101;, + 4; 176,193,192,162;, + 4; 79,109,182,164;, + 4; 175,176,195,194;, + 4; 154,189,186,166;, + 4; 149,198,197,196;, + 4; 36,37,199,169;, + 4; 201,200,198,159;, + 4; 203,202,138,122;, + 4; 148,206,205,204;, + 4; 58,16,23,61;, + 4; 121,137,208,207;, + 4; 169,199,14,15;, + 4; 13,183,156,38;, + 4; 149,196,209,206;, + 4; 49,112,210,128;, + 4; 179,212,211,193;, + 4; 213,201,159,160;, + 4; 161,151,71,34;, + 4; 72,216,215,214;, + 4; 33,70,93,83;, + 4; 217,188,189,155;, + 4; 105,178,88,89;, + 4; 109,114,218,182;, + 4; 134,221,220,219;, + 4; 147,148,204,222;, + 4; 224,194,223,126;, + 4; 226,225,68,69;, + 4; 45,225,226,44;, + 4; 73,157,216,72;, + 4; 145,229,228,227;, + 4; 64,72,214,230;, + 4; 232,231,135,136;, + 4; 124,125,231,232;, + 4; 215,216,227,233;, + 4; 133,134,219,234;, + 4; 235,224,126,127;, + 4; 94,92,151,161;, + 4; 237,236,19,59;, + 4; 182,218,91,85;, + 4; 210,181,7,98;, + 4; 76,62,239,238;, + 4; 112,0,181,210;, + 4; 21,64,230,240;, + 4; 162,192,217,155;, + 4; 243,242,241,202;, + 4; 247,246,245,244;, + 4; 219,220,249,248;, + 4; 208,141,142,250;, + 4; 126,223,251,125;, + 4; 62,44,252,239;, + 4; 248,249,194,224;, + 4; 252,226,69,42;, + 4; 135,244,221,134;, + 4; 53,97,113,50;, + 4; 128,210,98,54;, + 4; 255,185,254,253;, + 4; 239,252,42,43;, + 4; 177,179,193,176;, + 4; 202,241,256,138;, + 4; 166,186,180,165;, + 4; 221,245,167,220;, + 4; 137,256,141,208;, + 4; 142,124,197,198;, + 4; 195,176,162,163;, + 4; 91,163,156,90;, + 4; 153,154,166,245;, + 4; 228,253,191,227;, + 4; 254,258,212,257;, + 4; 220,167,259,249;, + 4; 194,249,259,175;, + 4; 68,184,157,67;, + 4; 188,215,233,187;, + 4; 87,58,61,10;, + 4; 260,183,247,244;, + 4; 251,261,183,260;, + 4; 14,247,183,13;, + 4; 263,211,262,225;, + 4; 223,195,261,251;, + 4; 199,246,247,14;, + 4; 236,240,18,19;, + 4; 170,171,229,264;, + 4; 264,229,145,146;, + 4; 216,144,145,227;, + 4; 20,21,240,236;, + 4; 196,232,136,209;, + 4; 197,124,232,196;, + 4; 238,239,43,57;, + 4; 67,157,158,96;, + 4; 206,242,243,205;, + 4; 234,219,248,256;, + 4; 240,230,75,18;, + 4; 143,144,266,265;, + 4; 250,142,198,200;, + 4; 265,266,172,173;, + 4; 231,260,244,135;, + 4; 125,251,260,231;, + 4; 60,20,236,237;, + 4; 213,160,268,267;, + 4; 268,147,222,269;, + 4; 256,248,224,235;, + 4; 139,120,270,267;, + 4; 268,269,140,139;, + 4; 114,261,271,218;, + 4; 190,191,253,257;, + 4; 269,272,123,140;, + 4; 180,186,190,257;, + 4; 233,227,191,187;, + 4; 171,185,255,273;, + 4; 120,121,207,270;, + 4; 272,203,122,123;, + 4; 267,270,201,213;, + 4; 222,204,272,269;, + 4; 115,183,261,114;, + 4; 95,263,225,45;, + 4; 104,188,158,103;, + 4; 192,263,158,217;, + 4; 184,172,266,157;, + 4; 9,60,237,178;, + 4; 157,266,144,216;, + 4; 193,211,263,192;, + 4; 178,237,59,88;, + 4; 174,238,57,26;, + 4; 258,262,211,212;, + 4; 230,214,104,75;, + 4; 228,229,273,253;, + 4; 258,185,184,262;, + 4; 68,225,262,184;, + 4; 107,76,238,174;, + 4; 130,257,212,179;, + 4; 214,215,188,104;, + 3; 171,273,229;, + 3; 254,185,258;, + 3; 255,253,273;, + 3; 11,8,105;, + 3; 24,101,27;, + 3; 254,257,253;, + 3; 188,217,158;, + 3; 180,257,131;, + 3; 131,257,130;, + 3; 155,189,154;, + 3; 165,132,118;, + 3; 177,117,129;, + 3; 165,118,119;, + 3; 177,116,117;, + 3; 166,167,245;, + 3; 167,119,259;, + 3; 116,175,259;, + 3; 116,259,119;, + 3; 32,106,35;, + 3; 195,163,271;, + 3; 245,246,153;, + 3; 195,271,261;, + 3; 52,111,55;, + 3; 194,195,223;, + 3; 244,245,221;, + 3; 127,141,235;, + 3; 133,209,136;, + 3; 209,133,242;, + 3; 133,241,242;, + 3; 241,133,234;, + 3; 256,241,234;, + 3; 256,235,141;, + 3; 242,206,209;, + 3; 138,256,137;, + 3; 250,207,208;, + 3; 207,250,200;, + 3; 243,203,205;, + 3; 203,243,202;, + 3; 149,159,198;, + 3; 207,201,270;, + 3; 201,207,200;, + 3; 149,206,148;, + 3; 203,204,205;, + 3; 204,203,272;, + 3; 150,268,160;, + 3; 147,268,150;, + 3; 267,268,139;, + 3; 263,96,158;, + 3; 96,263,95;, + 3; 44,226,252;, + 3; 77,25,56;, + 3; 24,108,100;, + 3; 246,37,153;, + 3; 37,246,199;, + 3; 163,218,271;, + 3; 218,163,91;, + 3; 170,274,173;, + 3; 173,274,265;, + 3; 265,274,143;, + 3; 143,274,146;, + 3; 264,274,170;, + 3; 146,274,264;; + MeshMaterialList { + 1; + 304; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material yellowbrt { + 1.000000;0.783700;0.000000;1.000000;; + 60.000000; + 0.300000;0.300000;0.300000;; + 0.000000;0.000000;0.000000;; + } + } + } + } + +} diff --git a/_release/Games/wing_ring/media/clouds.bmp b/_release/Games/wing_ring/media/clouds.bmp new file mode 100644 index 0000000..e4f98d5 Binary files /dev/null and b/_release/Games/wing_ring/media/clouds.bmp differ diff --git a/_release/Games/wing_ring/media/clouds_night.bmp b/_release/Games/wing_ring/media/clouds_night.bmp new file mode 100644 index 0000000..8166664 Binary files /dev/null and b/_release/Games/wing_ring/media/clouds_night.bmp differ diff --git a/_release/Games/wing_ring/media/explode.wav b/_release/Games/wing_ring/media/explode.wav new file mode 100644 index 0000000..94cd4cf Binary files /dev/null and b/_release/Games/wing_ring/media/explode.wav differ diff --git a/_release/Games/wing_ring/media/green_spark.bmp b/_release/Games/wing_ring/media/green_spark.bmp new file mode 100644 index 0000000..233eb2c Binary files /dev/null and b/_release/Games/wing_ring/media/green_spark.bmp differ diff --git a/_release/Games/wing_ring/media/green_ufo.x b/_release/Games/wing_ring/media/green_ufo.x new file mode 100644 index 0000000..a5e512b --- /dev/null +++ b/_release/Games/wing_ring/media/green_ufo.x @@ -0,0 +1,1214 @@ +xof 0302txt 0064 +// DV8190 Copyright Viewpoint Datalabs Intl., Inc. +// www.viewpoint.com, 800-643-8303, 801-229-3333 +// for Microsoft Corporation DirectX format only +// see license agreement for description of rights + +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} + +template AnimationKey { + <10DD46A8-775B-11cf-8F52-0040333594A3> + DWORD keyType; + DWORD nKeys; + array TimedFloatKeys keys[nKeys]; +} + +template Animation { + <3D82AB4F-62DA-11cf-AB39-0020AF71E433> + [...] +} + + template AnimationSet { + <3D82AB50-62DA-11cf-AB39-0020AF71E433> + [Animation] +} + + +Header { + 1; + 0; + 1; +} + +Frame Root{ + Frame nose { + Mesh mesh-nose { + 9; + 0.041754;-0.520870;-1.752230;, + 0.000000;-0.562624;-3.122230;, + 0.059049;-0.562624;-1.752230;, + 0.000000;-0.503575;-1.752230;, + -0.041754;-0.520870;-1.752230;, + -0.059049;-0.562624;-1.752230;, + -0.041754;-0.604378;-1.752230;, + 0.000000;-0.621673;-1.752230;, + 0.041754;-0.604378;-1.752230;; + + 14; + 3; 2,1,0;, + 3; 0,1,3;, + 3; 3,1,4;, + 3; 4,1,5;, + 3; 5,1,6;, + 3; 6,1,7;, + 3; 7,1,8;, + 3; 8,1,2;, + 3; 7,8,2;, + 3; 6,7,2;, + 3; 5,6,2;, + 3; 4,5,2;, + 3; 3,4,2;, + 3; 0,3,2;; + MeshMaterialList { + 1; + 14; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material black { + 0.002000;0.002000;0.002000;1.000000;; + 157.360000; + 0.518400;0.518400;0.518400;; + 0.000000;0.000000;0.000000;; + } + } + } + } + + Frame tail { + Mesh mesh-tail { + 33; + 0.000000;0.213764;1.482750;, + -0.032500;0.252982;1.470040;, + 0.000000;0.118882;1.047140;, + -0.032500;0.154050;1.029530;, + 0.000000;0.421446;1.956740;, + -0.032500;0.464976;1.935990;, + 0.000000;1.018140;2.607660;, + -0.032500;1.053370;2.599290;, + -0.010391;0.997356;3.080420;, + -0.032500;1.034190;3.122230;, + -0.010391;0.918696;3.071680;, + -0.032500;0.906996;3.108080;, + 0.000000;0.886856;2.949130;, + -0.032500;0.864596;2.980890;, + 0.000000;-0.498015;2.082350;, + -0.032500;-0.510208;2.117780;, + 0.000000;-0.372648;1.045000;, + -0.032500;-0.383009;1.043660;, + 0.000000;-0.039866;0.824648;, + -0.032500;-0.043814;0.817535;, + 0.000000;0.082848;0.582730;, + -0.032500;0.097518;0.534872;, + -0.065000;0.213764;1.482750;, + -0.065000;0.118882;1.047140;, + -0.065000;0.421446;1.956740;, + -0.065000;1.018140;2.607660;, + -0.054609;0.997356;3.080420;, + -0.054609;0.918696;3.071680;, + -0.065000;0.886856;2.949130;, + -0.065000;-0.498015;2.082350;, + -0.065000;-0.372648;1.045000;, + -0.065000;-0.039866;0.824648;, + -0.065000;0.082848;0.582730;; + + 62; + 3; 2,1,0;, + 3; 2,3,1;, + 3; 0,5,4;, + 3; 0,1,5;, + 3; 4,7,6;, + 3; 4,5,7;, + 3; 6,9,8;, + 3; 6,7,9;, + 3; 8,11,10;, + 3; 8,9,11;, + 3; 10,13,12;, + 3; 10,11,13;, + 3; 12,15,14;, + 3; 12,13,15;, + 3; 14,17,16;, + 3; 14,15,17;, + 3; 16,19,18;, + 3; 16,17,19;, + 3; 18,21,20;, + 3; 18,19,21;, + 3; 20,3,2;, + 3; 20,21,3;, + 3; 3,22,1;, + 3; 3,23,22;, + 3; 1,24,5;, + 3; 1,22,24;, + 3; 5,25,7;, + 3; 5,24,25;, + 3; 7,26,9;, + 3; 7,25,26;, + 3; 9,27,11;, + 3; 9,26,27;, + 3; 11,28,13;, + 3; 11,27,28;, + 3; 13,29,15;, + 3; 13,28,29;, + 3; 15,30,17;, + 3; 15,29,30;, + 3; 17,31,19;, + 3; 17,30,31;, + 3; 19,32,21;, + 3; 19,31,32;, + 3; 21,23,3;, + 3; 21,32,23;, + 3; 18,20,2;, + 3; 6,8,10;, + 3; 6,10,12;, + 3; 6,12,14;, + 3; 4,6,14;, + 3; 4,14,16;, + 3; 0,4,16;, + 3; 2,0,16;, + 3; 2,16,18;, + 3; 31,23,32;, + 3; 25,27,26;, + 3; 25,28,27;, + 3; 25,29,28;, + 3; 24,29,25;, + 3; 24,30,29;, + 3; 22,30,24;, + 3; 23,30,22;, + 3; 23,31,30;; + MeshMaterialList { + 1; + 62; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material yellow { + 1.000000;0.666700;0.000000;1.000000;; + 65.890000; + 1.000000;0.666700;0.000000;; + 0.000000;0.000000;0.000000;; + } + } + } + } + + Frame canopy { + Mesh mesh-canopy { + 66; + 0.010706;-0.185322;-0.856592;, + -0.103198;-0.199881;-0.865683;, + 0.010706;-0.374417;-1.067540;, + -0.199762;-0.241341;-0.891574;, + -0.264283;-0.303390;-0.930325;, + -0.286940;-0.376582;-0.976025;, + 0.010706;-0.371075;0.221225;, + 0.308352;-0.376582;-0.976025;, + 0.285695;-0.303390;-0.930325;, + 0.221174;-0.241341;-0.891574;, + 0.124610;-0.199881;-0.865683;, + 0.010706;0.007898;-0.488197;, + -0.199762;-0.020965;-0.501343;, + -0.378188;-0.103159;-0.538779;, + -0.497408;-0.226172;-0.594807;, + -0.539273;-0.371275;-0.660897;, + 0.560685;-0.371275;-0.660897;, + 0.518820;-0.226172;-0.594807;, + 0.399599;-0.103159;-0.538779;, + 0.221174;-0.020965;-0.501343;, + 0.010706;0.164967;-0.133933;, + -0.264283;0.124289;-0.141836;, + -0.497408;0.008448;-0.164342;, + -0.653177;-0.164920;-0.198023;, + -0.707876;-0.369421;-0.237754;, + 0.729288;-0.369421;-0.237754;, + 0.674589;-0.164920;-0.198023;, + 0.518820;0.008448;-0.164342;, + 0.285695;0.124289;-0.141836;, + 0.010706;0.214816;0.221225;, + -0.286940;0.169963;0.221225;, + -0.539273;0.042233;0.221225;, + -0.707876;-0.148928;0.221225;, + -0.767081;-0.374417;0.221225;, + 0.788493;-0.374417;0.221225;, + 0.729288;-0.148928;0.221225;, + 0.560684;0.042233;0.221225;, + 0.308352;0.169963;0.221225;, + 0.010706;0.169963;0.545616;, + -0.264283;0.128524;0.545616;, + -0.497408;0.010518;0.545616;, + -0.653177;-0.166092;0.545616;, + -0.707876;-0.374417;0.545616;, + 0.729288;-0.374417;0.545616;, + 0.674589;-0.166092;0.545616;, + 0.518820;0.010518;0.545616;, + 0.285695;0.128524;0.545616;, + 0.010706;0.042233;0.809822;, + -0.199762;0.010518;0.809822;, + -0.378188;-0.079801;0.809822;, + -0.497408;-0.214972;0.809822;, + -0.539273;-0.374417;0.809822;, + 0.560685;-0.374417;0.809822;, + 0.518820;-0.214972;0.809822;, + 0.399599;-0.079801;0.809822;, + 0.221174;0.010518;0.809822;, + 0.010706;-0.148928;1.006310;, + -0.103198;-0.166092;1.006310;, + -0.199762;-0.214972;1.006310;, + -0.264283;-0.288126;1.006310;, + -0.286940;-0.374417;1.006310;, + 0.308352;-0.374417;1.006310;, + 0.285695;-0.288126;1.006310;, + 0.221174;-0.214972;1.006310;, + 0.124610;-0.166092;1.006310;, + 0.010706;-0.374417;1.095110;; + + 128; + 3; 2,1,0;, + 3; 2,3,1;, + 3; 2,4,3;, + 3; 2,5,4;, + 3; 2,6,5;, + 3; 2,7,6;, + 3; 2,8,7;, + 3; 2,9,8;, + 3; 2,10,9;, + 3; 2,0,10;, + 3; 0,12,11;, + 3; 0,1,12;, + 3; 1,13,12;, + 3; 1,3,13;, + 3; 3,14,13;, + 3; 3,4,14;, + 3; 4,15,14;, + 3; 4,5,15;, + 3; 5,6,15;, + 3; 6,7,16;, + 3; 7,17,16;, + 3; 7,8,17;, + 3; 8,18,17;, + 3; 8,9,18;, + 3; 9,19,18;, + 3; 9,10,19;, + 3; 10,11,19;, + 3; 10,0,11;, + 3; 11,21,20;, + 3; 11,12,21;, + 3; 12,22,21;, + 3; 12,13,22;, + 3; 13,23,22;, + 3; 13,14,23;, + 3; 14,24,23;, + 3; 14,15,24;, + 3; 15,6,24;, + 3; 6,16,25;, + 3; 16,26,25;, + 3; 16,17,26;, + 3; 17,27,26;, + 3; 17,18,27;, + 3; 18,28,27;, + 3; 18,19,28;, + 3; 19,20,28;, + 3; 19,11,20;, + 3; 20,30,29;, + 3; 20,21,30;, + 3; 21,31,30;, + 3; 21,22,31;, + 3; 22,32,31;, + 3; 22,23,32;, + 3; 23,33,32;, + 3; 23,24,33;, + 3; 24,6,33;, + 3; 6,25,34;, + 3; 25,35,34;, + 3; 25,26,35;, + 3; 26,36,35;, + 3; 26,27,36;, + 3; 27,37,36;, + 3; 27,28,37;, + 3; 28,29,37;, + 3; 28,20,29;, + 3; 29,39,38;, + 3; 29,30,39;, + 3; 30,40,39;, + 3; 30,31,40;, + 3; 31,41,40;, + 3; 31,32,41;, + 3; 32,42,41;, + 3; 32,33,42;, + 3; 33,6,42;, + 3; 6,34,43;, + 3; 34,44,43;, + 3; 34,35,44;, + 3; 35,45,44;, + 3; 35,36,45;, + 3; 36,46,45;, + 3; 36,37,46;, + 3; 37,38,46;, + 3; 37,29,38;, + 3; 38,48,47;, + 3; 38,39,48;, + 3; 39,49,48;, + 3; 39,40,49;, + 3; 40,50,49;, + 3; 40,41,50;, + 3; 41,51,50;, + 3; 41,42,51;, + 3; 42,6,51;, + 3; 6,43,52;, + 3; 43,53,52;, + 3; 43,44,53;, + 3; 44,54,53;, + 3; 44,45,54;, + 3; 45,55,54;, + 3; 45,46,55;, + 3; 46,47,55;, + 3; 46,38,47;, + 3; 47,57,56;, + 3; 47,48,57;, + 3; 48,58,57;, + 3; 48,49,58;, + 3; 49,59,58;, + 3; 49,50,59;, + 3; 50,60,59;, + 3; 50,51,60;, + 3; 51,6,60;, + 3; 6,52,61;, + 3; 52,62,61;, + 3; 52,53,62;, + 3; 53,63,62;, + 3; 53,54,63;, + 3; 54,64,63;, + 3; 54,55,64;, + 3; 55,56,64;, + 3; 55,47,56;, + 3; 65,56,57;, + 3; 65,57,58;, + 3; 65,58,59;, + 3; 65,59,60;, + 3; 65,60,6;, + 3; 65,6,61;, + 3; 65,61,62;, + 3; 65,62,63;, + 3; 65,63,64;, + 3; 65,64,56;; + MeshMaterialList { + 1; + 128; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material glassblutint { + 0.555100;0.800000;0.773000;1.000000;; + 60.000000; + 0.796900;0.971400;0.922300;; + 0.000000;0.000000;0.000000;; + } + } + } + } + + Frame body { + Mesh mesh-body { + 107; + 0.715357;-0.568358;2.126190;, + 0.890442;-0.660896;2.077020;, + 0.000000;-0.811893;1.696410;, + 0.511693;-0.489908;2.167880;, + 0.183646;-0.469152;2.178910;, + -0.183646;-0.469151;2.178910;, + -0.511693;-0.489908;2.167880;, + -0.715357;-0.568358;2.126190;, + -0.890442;-0.660896;2.077020;, + -0.715357;-0.746046;2.027840;, + -0.511693;-0.811971;1.986150;, + -0.276926;-0.916878;2.133810;, + 0.000000;-0.990874;2.182100;, + 0.276926;-0.916878;2.133810;, + 0.511693;-0.811971;1.986150;, + 0.715357;-0.746046;2.027840;, + 0.997806;-0.548760;1.513930;, + 1.242020;-0.647951;1.513930;, + 0.713727;-0.420280;1.513930;, + 0.545099;-0.383980;1.513930;, + -0.545099;-0.383980;1.513930;, + -0.713727;-0.420280;1.513930;, + -0.997807;-0.548760;1.513930;, + -1.242020;-0.647951;1.513930;, + -0.997806;-0.753226;1.513930;, + -0.713727;-0.868523;1.513930;, + -0.386266;-0.945561;1.513930;, + 0.000000;-0.972613;1.513930;, + 0.386267;-0.945561;1.513930;, + 0.713727;-0.868522;1.513930;, + 0.997806;-0.753226;1.513930;, + 1.148420;-0.547978;1.058770;, + 1.429490;-0.642328;1.058770;, + 0.821459;-0.376247;1.058770;, + 0.784223;-0.335284;1.058770;, + -0.784223;-0.335284;1.058770;, + -0.821459;-0.376247;1.058770;, + -1.148420;-0.547978;1.058770;, + -1.429490;-0.642328;1.058770;, + -1.148420;-0.765969;1.058770;, + -0.821459;-0.896073;1.058770;, + -0.444570;-0.983007;1.058770;, + 0.000000;-1.013530;1.058770;, + 0.444571;-0.983007;1.058770;, + 0.821460;-0.896073;1.058770;, + 1.148420;-0.765969;1.058770;, + 1.181870;-0.547978;0.276791;, + 1.471130;-0.642328;0.276791;, + 0.845385;-0.376248;0.276791;, + 0.807064;-0.335284;0.276791;, + -0.807064;-0.335285;0.276791;, + -0.845385;-0.376248;0.276791;, + -1.181870;-0.547978;0.276791;, + -1.471130;-0.642328;0.276791;, + -1.181870;-0.787173;0.276791;, + -0.845385;-0.926581;0.276791;, + -0.457519;-1.013370;0.276791;, + 0.000000;-1.053370;0.276791;, + 0.457519;-1.013370;0.276791;, + 0.845386;-0.926581;0.276791;, + 1.181870;-0.787172;0.276791;, + 1.058540;-0.547978;-0.751299;, + 1.317620;-0.642328;-0.751299;, + 0.757171;-0.376248;-0.751299;, + 0.578279;-0.335284;-0.751299;, + -0.578279;-0.335284;-0.751299;, + -0.757171;-0.376248;-0.751299;, + -1.058540;-0.547978;-0.751299;, + -1.317620;-0.642328;-0.751299;, + -1.058540;-0.765969;-0.751299;, + -0.757171;-0.896074;-0.751299;, + -0.409778;-0.983007;-0.751299;, + 0.000000;-1.013530;-0.751299;, + 0.409778;-0.983007;-0.751299;, + 0.757171;-0.896074;-0.751299;, + 1.058540;-0.765969;-0.751299;, + 0.748330;-0.528800;-1.267420;, + 0.931484;-0.629639;-1.267420;, + 0.535277;-0.415035;-1.267420;, + 0.285482;-0.380320;-1.267420;, + -0.285482;-0.380320;-1.267420;, + -0.535277;-0.415035;-1.267420;, + -0.748330;-0.528800;-1.267420;, + -0.931484;-0.629639;-1.267420;, + -0.748330;-0.731895;-1.267420;, + -0.535277;-0.842154;-1.267420;, + -0.289690;-0.915826;-1.267420;, + 0.000000;-0.941696;-1.267420;, + 0.289690;-0.915826;-1.267420;, + 0.535278;-0.842154;-1.267420;, + 0.748330;-0.731895;-1.267420;, + 0.397797;-0.544818;-1.693180;, + 0.495159;-0.639093;-1.693180;, + 0.284543;-0.464896;-1.693180;, + 0.122916;-0.443751;-1.693180;, + -0.122916;-0.443751;-1.693180;, + -0.284543;-0.464896;-1.693180;, + -0.397798;-0.544818;-1.693180;, + -0.495159;-0.639093;-1.693180;, + -0.397798;-0.689003;-1.693180;, + -0.284543;-0.756164;-1.693180;, + -0.153994;-0.801040;-1.693180;, + 0.000000;-0.816798;-1.693180;, + 0.153994;-0.801040;-1.693180;, + 0.284543;-0.756164;-1.693180;, + 0.397798;-0.689003;-1.693180;, + 0.000000;-0.542308;-2.091320;; + + 210; + 3; 2,1,0;, + 3; 2,0,3;, + 3; 2,3,4;, + 3; 2,4,5;, + 3; 2,5,6;, + 3; 2,6,7;, + 3; 2,7,8;, + 3; 2,8,9;, + 3; 2,9,10;, + 3; 2,10,11;, + 3; 2,11,12;, + 3; 2,12,13;, + 3; 2,13,14;, + 3; 2,14,15;, + 3; 2,15,1;, + 3; 1,16,0;, + 3; 1,17,16;, + 3; 0,18,3;, + 3; 0,16,18;, + 3; 3,19,4;, + 3; 3,18,19;, + 3; 4,20,5;, + 3; 4,19,20;, + 3; 5,21,6;, + 3; 5,20,21;, + 3; 6,22,7;, + 3; 6,21,22;, + 3; 7,23,8;, + 3; 7,22,23;, + 3; 8,24,9;, + 3; 8,23,24;, + 3; 9,25,10;, + 3; 9,24,25;, + 3; 10,26,11;, + 3; 10,25,26;, + 3; 11,27,12;, + 3; 11,26,27;, + 3; 12,28,13;, + 3; 12,27,28;, + 3; 13,29,14;, + 3; 13,28,29;, + 3; 14,30,15;, + 3; 14,29,30;, + 3; 15,17,1;, + 3; 15,30,17;, + 3; 17,31,16;, + 3; 17,32,31;, + 3; 16,33,18;, + 3; 16,31,33;, + 3; 18,34,19;, + 3; 18,33,34;, + 3; 19,35,20;, + 3; 19,34,35;, + 3; 20,36,21;, + 3; 20,35,36;, + 3; 21,37,22;, + 3; 21,36,37;, + 3; 22,38,23;, + 3; 22,37,38;, + 3; 23,39,24;, + 3; 23,38,39;, + 3; 24,40,25;, + 3; 24,39,40;, + 3; 25,41,26;, + 3; 25,40,41;, + 3; 26,42,27;, + 3; 26,41,42;, + 3; 27,43,28;, + 3; 27,42,43;, + 3; 28,44,29;, + 3; 28,43,44;, + 3; 29,45,30;, + 3; 29,44,45;, + 3; 30,32,17;, + 3; 30,45,32;, + 3; 32,46,31;, + 3; 32,47,46;, + 3; 31,48,33;, + 3; 31,46,48;, + 3; 33,49,34;, + 3; 33,48,49;, + 3; 34,50,35;, + 3; 34,49,50;, + 3; 35,51,36;, + 3; 35,50,51;, + 3; 36,52,37;, + 3; 36,51,52;, + 3; 37,53,38;, + 3; 37,52,53;, + 3; 38,54,39;, + 3; 38,53,54;, + 3; 39,55,40;, + 3; 39,54,55;, + 3; 40,56,41;, + 3; 40,55,56;, + 3; 41,57,42;, + 3; 41,56,57;, + 3; 42,58,43;, + 3; 42,57,58;, + 3; 43,59,44;, + 3; 43,58,59;, + 3; 44,60,45;, + 3; 44,59,60;, + 3; 45,47,32;, + 3; 45,60,47;, + 3; 47,61,46;, + 3; 47,62,61;, + 3; 46,63,48;, + 3; 46,61,63;, + 3; 48,64,49;, + 3; 48,63,64;, + 3; 49,65,50;, + 3; 49,64,65;, + 3; 50,66,51;, + 3; 50,65,66;, + 3; 51,67,52;, + 3; 51,66,67;, + 3; 52,68,53;, + 3; 52,67,68;, + 3; 53,69,54;, + 3; 53,68,69;, + 3; 54,70,55;, + 3; 54,69,70;, + 3; 55,71,56;, + 3; 55,70,71;, + 3; 56,72,57;, + 3; 56,71,72;, + 3; 57,73,58;, + 3; 57,72,73;, + 3; 58,74,59;, + 3; 58,73,74;, + 3; 59,75,60;, + 3; 59,74,75;, + 3; 60,62,47;, + 3; 60,75,62;, + 3; 62,76,61;, + 3; 62,77,76;, + 3; 61,78,63;, + 3; 61,76,78;, + 3; 63,79,64;, + 3; 63,78,79;, + 3; 64,80,65;, + 3; 64,79,80;, + 3; 65,81,66;, + 3; 65,80,81;, + 3; 66,82,67;, + 3; 66,81,82;, + 3; 67,83,68;, + 3; 67,82,83;, + 3; 68,84,69;, + 3; 68,83,84;, + 3; 69,85,70;, + 3; 69,84,85;, + 3; 70,86,71;, + 3; 70,85,86;, + 3; 71,87,72;, + 3; 71,86,87;, + 3; 72,88,73;, + 3; 72,87,88;, + 3; 73,89,74;, + 3; 73,88,89;, + 3; 74,90,75;, + 3; 74,89,90;, + 3; 75,77,62;, + 3; 75,90,77;, + 3; 77,91,76;, + 3; 77,92,91;, + 3; 76,93,78;, + 3; 76,91,93;, + 3; 78,94,79;, + 3; 78,93,94;, + 3; 79,95,80;, + 3; 79,94,95;, + 3; 80,96,81;, + 3; 80,95,96;, + 3; 81,97,82;, + 3; 81,96,97;, + 3; 82,98,83;, + 3; 82,97,98;, + 3; 83,99,84;, + 3; 83,98,99;, + 3; 84,100,85;, + 3; 84,99,100;, + 3; 85,101,86;, + 3; 85,100,101;, + 3; 86,102,87;, + 3; 86,101,102;, + 3; 87,103,88;, + 3; 87,102,103;, + 3; 88,104,89;, + 3; 88,103,104;, + 3; 89,105,90;, + 3; 89,104,105;, + 3; 90,92,77;, + 3; 90,105,92;, + 3; 92,106,91;, + 3; 91,106,93;, + 3; 93,106,94;, + 3; 94,106,95;, + 3; 95,106,96;, + 3; 96,106,97;, + 3; 97,106,98;, + 3; 98,106,99;, + 3; 99,106,100;, + 3; 100,106,101;, + 3; 101,106,102;, + 3; 102,106,103;, + 3; 103,106,104;, + 3; 104,106,105;, + 3; 105,106,92;; + MeshMaterialList { + 1; + 210; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material blue_pure { + 0.000000;1.000000;0.000000;1.000000;; + 65.890000; + 0.000000;0.000000;0.500000;; + 0.000000;0.000000;0.000000;; + } + } + } + } + +} + diff --git a/_release/Games/wing_ring/media/high_scores.sav b/_release/Games/wing_ring/media/high_scores.sav new file mode 100644 index 0000000..fc3ceb3 --- /dev/null +++ b/_release/Games/wing_ring/media/high_scores.sav @@ -0,0 +1,20 @@ +Si +100000 +Cox +90000 +Yog +80000 +Yaff +70000 +Jevs +60000 +Dot +50000 +Dave +40000 +Vic +30000 +Sadie +20000 +Sophie +10000 diff --git a/_release/Games/wing_ring/media/lights.bmp b/_release/Games/wing_ring/media/lights.bmp new file mode 100644 index 0000000..1d3d684 Binary files /dev/null and b/_release/Games/wing_ring/media/lights.bmp differ diff --git a/_release/Games/wing_ring/media/logo.bmp b/_release/Games/wing_ring/media/logo.bmp new file mode 100644 index 0000000..ff0df9b Binary files /dev/null and b/_release/Games/wing_ring/media/logo.bmp differ diff --git a/_release/Games/wing_ring/media/moon.bmp b/_release/Games/wing_ring/media/moon.bmp new file mode 100644 index 0000000..6a3bb98 Binary files /dev/null and b/_release/Games/wing_ring/media/moon.bmp differ diff --git a/_release/Games/wing_ring/media/mother.x b/_release/Games/wing_ring/media/mother.x new file mode 100644 index 0000000..2fc2079 --- /dev/null +++ b/_release/Games/wing_ring/media/mother.x @@ -0,0 +1,1170 @@ +xof 0302txt 0064 +// DV8177 Copyright Viewpoint Datalabs Intl., Inc. +// www.viewpoint.com, 800-643-8303, 801-229-3333 +// for Microsoft Corporation DirectX format only +// see license agreement for description of rights + +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} + +template AnimationKey { + <10DD46A8-775B-11cf-8F52-0040333594A3> + DWORD keyType; + DWORD nKeys; + array TimedFloatKeys keys[nKeys]; +} + +template Animation { + <3D82AB4F-62DA-11cf-AB39-0020AF71E433> + [...] +} + + template AnimationSet { + <3D82AB50-62DA-11cf-AB39-0020AF71E433> + [Animation] +} + + +Header { + 1; + 0; + 1; +} + +Frame Root{ + Frame windshield { + Mesh mesh-windshield { + 8; + -125.834999;8.332460;662.137024;, + -160.455994;50.339401;545.010010;, + 125.957001;8.332460;662.137024;, + 160.578003;50.339401;545.010010;, + -199.828995;22.283899;545.010010;, + 199.951004;22.463499;545.010010;, + -233.809998;39.018902;427.885986;, + 233.932007;39.221001;427.885986;; + + 6; + 3; 2,1,0;, + 3; 2,3,1;, + 3; 0,1,4;, + 3; 2,5,3;, + 3; 1,6,4;, + 3; 3,5,7;; + MeshMaterialList { + 1; + 6; + 0, + 0, + 0, + 0, + 0, + 0;; + Material dkred { + 0.228600;0.000000;0.000000;1.000000;; + 60.000000; + 0.249000;0.000000;0.000000;; + 0.000000;0.000000;0.000000;; + } + } + } + } + + Frame fin { + Mesh mesh-fin { + 8; + 0.060884;-258.617004;684.684998;, + -19.084499;-258.617004;684.684998;, + 0.060884;-134.143005;581.221008;, + -19.084499;-134.143005;581.221008;, + 0.060885;-258.617004;624.914001;, + -19.084499;-258.617004;624.914001;, + 0.060885;-177.498993;465.921997;, + -19.084499;-177.498993;465.921997;; + + 12; + 3; 2,1,0;, + 3; 2,3,1;, + 3; 0,5,4;, + 3; 0,1,5;, + 3; 4,7,6;, + 3; 4,5,7;, + 3; 6,3,2;, + 3; 6,7,3;, + 3; 4,6,2;, + 3; 4,2,0;, + 3; 5,3,7;, + 3; 5,1,3;; + MeshMaterialList { + 1; + 12; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material black { + 0.002000;0.002000;0.002000;1.000000;; + 157.360000; + 0.518400;0.518400;0.518400;; + 0.000000;0.000000;0.000000;; + } + } + } + } + + Frame tail { + Mesh mesh-tail { + 12; + 0.060887;-291.752014;-409.976990;, + -19.084499;-291.752014;-409.976990;, + 0.060887;-189.044006;-213.516998;, + -19.084499;-189.044006;-213.516998;, + 0.060896;-291.095001;-646.255981;, + -19.084499;-291.095001;-646.255981;, + 0.060896;208.248001;-646.255981;, + -19.084499;208.248001;-646.255981;, + 0.060886;207.505997;-409.912994;, + -19.084499;207.505997;-409.912994;, + 0.060886;25.296499;-212.686005;, + -19.084499;25.296499;-212.686005;; + + 20; + 3; 2,1,0;, + 3; 2,3,1;, + 3; 0,5,4;, + 3; 0,1,5;, + 3; 4,7,6;, + 3; 4,5,7;, + 3; 6,9,8;, + 3; 6,7,9;, + 3; 8,11,10;, + 3; 8,9,11;, + 3; 10,3,2;, + 3; 10,11,3;, + 3; 4,6,8;, + 3; 0,4,8;, + 3; 0,8,10;, + 3; 2,0,10;, + 3; 5,9,7;, + 3; 1,9,5;, + 3; 1,11,9;, + 3; 3,11,1;; + MeshMaterialList { + 1; + 20; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material flred { + 1.000000;0.000000;0.000000;1.000000;; + 10.000000; + 0.500000;0.500000;0.500000;; + 0.000000;0.000000;0.000000;; + } + } + } + } + + Frame thruster { + Mesh mesh-thruster { + 36; + -242.128998;29.220400;-671.594971;, + 242.250000;29.220400;-671.594971;, + -242.128998;-157.485001;-671.594971;, + 242.250000;-157.485001;-671.594971;, + 168.541000;-114.185997;-705.609985;, + 168.541000;-14.079200;-705.609985;, + -168.419006;-114.185997;-705.609985;, + -168.419006;-14.079200;-705.609985;, + 210.660004;-140.714005;-748.177002;, + -210.539001;-140.714005;-748.177002;, + 210.660004;12.449200;-748.177002;, + -210.539001;12.449200;-748.177002;, + 181.612000;-125.398003;-748.179016;, + -181.490005;-125.398003;-748.179016;, + 181.612000;-2.867270;-748.179016;, + -181.490005;-2.867270;-748.179016;, + 253.119995;-125.075996;-669.807007;, + 348.848999;-112.598000;-772.465027;, + 253.119995;-112.598000;-772.465027;, + 348.848999;-125.075996;-669.807007;, + 348.848999;-57.676498;-711.005005;, + 253.119995;-57.676498;-711.005005;, + 348.848999;-4.906020;-770.968994;, + 253.119995;-4.906020;-770.968994;, + 348.848999;7.536940;-669.807007;, + 253.119995;7.536940;-669.807007;, + -253.119003;-112.598000;-772.465027;, + -348.846008;-112.598000;-772.465027;, + -253.119003;-125.075996;-669.807007;, + -348.846008;-125.075996;-669.807007;, + -253.119003;-57.676498;-711.005005;, + -348.846008;-57.676498;-711.005005;, + -253.119003;-4.906020;-770.968994;, + -348.846008;-4.906020;-770.968994;, + -253.119003;7.536940;-669.807007;, + -348.846008;7.536940;-669.807007;; + + 60; + 3; 2,1,0;, + 3; 1,2,3;, + 3; 6,5,4;, + 3; 5,6,7;, + 3; 2,8,3;, + 3; 8,2,9;, + 3; 3,10,1;, + 3; 10,3,8;, + 3; 1,11,0;, + 3; 11,1,10;, + 3; 0,9,2;, + 3; 9,0,11;, + 3; 9,12,8;, + 3; 12,9,13;, + 3; 8,14,10;, + 3; 14,8,12;, + 3; 10,15,11;, + 3; 15,10,14;, + 3; 11,13,9;, + 3; 13,11,15;, + 3; 13,4,12;, + 3; 4,13,6;, + 3; 12,5,14;, + 3; 5,12,4;, + 3; 14,7,15;, + 3; 7,14,5;, + 3; 15,6,13;, + 3; 6,15,7;, + 3; 18,17,16;, + 3; 17,19,16;, + 3; 21,20,18;, + 3; 20,17,18;, + 3; 23,22,21;, + 3; 22,20,21;, + 3; 25,24,23;, + 3; 24,22,23;, + 3; 16,19,25;, + 3; 19,24,25;, + 3; 25,23,21;, + 3; 16,25,21;, + 3; 21,18,16;, + 3; 22,24,20;, + 3; 24,19,20;, + 3; 17,20,19;, + 3; 28,27,26;, + 3; 28,29,27;, + 3; 26,31,30;, + 3; 26,27,31;, + 3; 30,33,32;, + 3; 30,31,33;, + 3; 32,35,34;, + 3; 32,33,35;, + 3; 34,29,28;, + 3; 34,35,29;, + 3; 30,32,34;, + 3; 30,34,28;, + 3; 28,26,30;, + 3; 31,35,33;, + 3; 31,29,35;, + 3; 29,31,27;; + MeshMaterialList { + 1; + 60; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material black { + 0.002000;0.002000;0.002000;1.000000;; + 157.360000; + 0.518400;0.518400;0.518400;; + 0.000000;0.000000;0.000000;; + } + } + } + } + + Frame engine01 { + Mesh mesh-engine01 { + 50; + 198.457993;-60.735699;-271.768005;, + 245.589996;11.303600;-676.312012;, + 227.348007;11.303600;-279.237000;, + 215.751007;-60.735802;-676.312012;, + 281.808014;41.143299;-676.312012;, + 262.411011;41.143299;-288.299988;, + 353.847992;11.303600;-676.312012;, + 322.036987;11.303600;-305.795990;, + 383.686005;-60.735802;-676.312012;, + 350.924988;-60.735802;-313.264008;, + 353.847992;-132.774994;-676.312012;, + 322.036987;-132.774994;-305.795990;, + 281.808014;-162.615005;-676.312012;, + 262.411011;-162.615005;-288.299988;, + 245.589996;-132.774994;-676.312012;, + 227.348007;-132.774994;-279.237000;, + 221.091003;-60.735699;-239.779999;, + 239.125000;1.907130;-243.800003;, + 262.140991;27.854900;-250.511993;, + 311.134003;1.907130;-265.399994;, + 338.414001;-60.735802;-276.026001;, + 311.134003;-123.378998;-265.399994;, + 262.140991;-149.326004;-250.511993;, + 239.125000;-123.378998;-243.800003;, + 259.851013;-60.735699;-206.669998;, + -227.347000;11.303600;-279.237000;, + -245.589005;11.303600;-676.312012;, + -198.457001;-60.735699;-271.768005;, + -215.750000;-60.735802;-676.312012;, + -262.411011;41.143299;-288.299988;, + -281.808014;41.143299;-676.312012;, + -322.035004;11.303600;-305.795990;, + -353.845001;11.303600;-676.312012;, + -350.924988;-60.735802;-313.264008;, + -383.686005;-60.735802;-676.312012;, + -322.035004;-132.774994;-305.795990;, + -353.845001;-132.774994;-676.312012;, + -262.411011;-162.615005;-288.299988;, + -281.808014;-162.615005;-676.312012;, + -227.347000;-132.774994;-279.237000;, + -245.589005;-132.774994;-676.312012;, + -221.089996;-60.735699;-239.779999;, + -239.123993;1.907130;-243.800003;, + -262.140991;27.854900;-250.511993;, + -311.131012;1.907130;-265.399994;, + -338.414001;-60.735802;-276.026001;, + -311.131012;-123.378998;-265.399994;, + -262.140991;-149.326004;-250.511993;, + -239.123993;-123.378998;-243.800003;, + -259.850006;-60.735699;-206.669998;; + + 92; + 3; 2,1,0;, + 3; 1,3,0;, + 3; 5,4,2;, + 3; 4,1,2;, + 3; 7,6,5;, + 3; 6,4,5;, + 3; 9,8,7;, + 3; 8,6,7;, + 3; 11,10,9;, + 3; 10,8,9;, + 3; 13,12,11;, + 3; 12,10,11;, + 3; 15,14,13;, + 3; 14,12,13;, + 3; 0,3,15;, + 3; 3,14,15;, + 3; 14,3,12;, + 3; 12,3,10;, + 3; 10,3,8;, + 3; 8,3,6;, + 3; 3,1,6;, + 3; 6,1,4;, + 3; 0,16,2;, + 3; 17,2,16;, + 3; 2,17,5;, + 3; 18,5,17;, + 3; 5,18,7;, + 3; 19,7,18;, + 3; 7,19,9;, + 3; 20,9,19;, + 3; 9,20,11;, + 3; 21,11,20;, + 3; 11,21,13;, + 3; 22,13,21;, + 3; 13,22,15;, + 3; 23,15,22;, + 3; 15,23,0;, + 3; 16,0,23;, + 3; 23,24,16;, + 3; 22,24,23;, + 3; 21,24,22;, + 3; 20,24,21;, + 3; 19,24,20;, + 3; 16,24,17;, + 3; 17,24,18;, + 3; 18,24,19;, + 3; 27,26,25;, + 3; 27,28,26;, + 3; 25,30,29;, + 3; 25,26,30;, + 3; 29,32,31;, + 3; 29,30,32;, + 3; 31,34,33;, + 3; 31,32,34;, + 3; 33,36,35;, + 3; 33,34,36;, + 3; 35,38,37;, + 3; 35,36,38;, + 3; 37,40,39;, + 3; 37,38,40;, + 3; 39,28,27;, + 3; 39,40,28;, + 3; 38,28,40;, + 3; 36,28,38;, + 3; 34,28,36;, + 3; 32,28,34;, + 3; 32,26,28;, + 3; 30,26,32;, + 3; 25,41,27;, + 3; 41,25,42;, + 3; 29,42,25;, + 3; 42,29,43;, + 3; 31,43,29;, + 3; 43,31,44;, + 3; 33,44,31;, + 3; 44,33,45;, + 3; 35,45,33;, + 3; 45,35,46;, + 3; 37,46,35;, + 3; 46,37,47;, + 3; 39,47,37;, + 3; 47,39,48;, + 3; 27,48,39;, + 3; 48,27,41;, + 3; 41,49,48;, + 3; 48,49,47;, + 3; 47,49,46;, + 3; 46,49,45;, + 3; 45,49,44;, + 3; 42,49,41;, + 3; 43,49,42;, + 3; 44,49,43;; + MeshMaterialList { + 1; + 92; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material orange { + 1.000000;0.166700;0.000000;1.000000;; + 65.890000; + 1.000000;0.166700;0.000000;; + 0.000000;0.000000;0.000000;; + } + } + } + } + + Frame body { + Mesh mesh-body { + 101; + -75.020599;-38.435600;761.901001;, + -125.834999;8.332210;662.137024;, + 75.142403;-38.435600;761.901001;, + 125.957001;8.332210;662.137024;, + -93.436897;-44.457699;761.901001;, + -156.714996;-11.611600;662.137024;, + -99.046799;-53.423100;761.901001;, + -166.121994;-28.665199;662.137024;, + -99.046799;-63.113899;761.901001;, + -166.121994;-60.759102;662.137024;, + -99.046799;-71.056801;761.901001;, + -166.121994;-87.064400;662.137024;, + -88.428001;-81.252800;761.901001;, + -148.315994;-120.832001;662.137024;, + -50.685299;-89.829399;761.901001;, + -85.030098;-149.235992;662.137024;, + 50.807098;-89.829399;761.901001;, + 85.151901;-149.235992;662.137024;, + 88.549797;-81.107903;761.901001;, + 148.438004;-120.351997;662.137024;, + 99.168602;-70.863098;761.901001;, + 166.244003;-86.422997;662.137024;, + 99.168602;-63.197102;761.901001;, + 166.244003;-61.034500;662.137024;, + 99.168602;-53.000702;761.901001;, + 166.244003;-27.266001;662.137024;, + 93.558701;-44.419102;761.901001;, + 156.837006;-11.484000;662.137024;, + -199.828995;22.283899;545.010010;, + -222.416000;-14.240000;545.010010;, + -233.009995;-59.387100;545.010010;, + -233.009995;-96.391296;545.010010;, + -204.255005;-143.891998;545.010010;, + -108.430000;-183.848999;545.010010;, + 108.552002;-183.848999;545.010010;, + 204.376999;-143.216995;545.010010;, + 233.132004;-95.488701;545.010010;, + 233.132004;-59.774502;545.010010;, + 222.537994;-12.271900;545.010010;, + 199.951004;22.463301;545.010010;, + -160.455994;50.339401;545.010010;, + -187.744003;70.591599;427.885986;, + 160.578003;50.339401;545.010010;, + 187.865997;70.591599;427.885986;, + -233.809998;39.018700;427.885986;, + -260.238007;-7.985420;427.885986;, + -272.631989;-58.792198;427.885986;, + -272.631989;-100.434998;427.885986;, + -238.988998;-153.891006;427.885986;, + -126.874001;-198.856995;427.885986;, + 126.996002;-198.856995;427.885986;, + 239.110001;-153.130997;427.885986;, + 272.753998;-99.419701;427.885986;, + 272.753998;-59.228199;427.885986;, + 260.359985;-5.770600;427.885986;, + 233.932007;39.221001;427.885986;, + -200.891006;79.478897;310.759003;, + 201.013000;79.478897;310.759003;, + -250.181000;45.823399;310.759003;, + -278.459015;-4.281480;310.759003;, + -291.720001;-58.439899;310.759003;, + -291.720001;-102.830002;310.759003;, + -255.723007;-159.811996;310.759003;, + -135.759003;-207.744003;310.759003;, + 135.880997;-207.744003;310.759003;, + 255.845001;-159.001999;310.759003;, + 291.842010;-101.747002;310.759003;, + 291.842010;-58.904701;310.759003;, + 278.579010;-1.920650;310.759003;, + 250.302994;46.039001;310.759003;, + -210.938004;79.478897;-673.848022;, + 211.059998;79.478897;-673.848022;, + -262.691986;45.823399;-673.848022;, + -278.457001;-102.830002;-673.848022;, + -248.617004;-159.811996;-673.848022;, + -142.550003;-207.744003;-673.848022;, + 142.671997;-207.744003;-673.848022;, + 248.738998;-159.001999;-673.848022;, + 278.579010;-101.748001;-673.848022;, + 262.813995;46.038700;-673.848022;, + 0.060919;-63.030102;772.465027;, + -199.828995;22.283899;545.010010;, + -125.834999;8.332210;662.137024;, + -125.834999;8.332210;662.137024;, + -160.455994;50.339401;545.010010;, + -153.102005;66.184097;-577.116028;, + -136.692001;116.665001;-235.598007;, + -153.102005;66.184097;-194.209000;, + -136.692001;116.665001;-577.481018;, + -102.503998;116.665001;-184.315002;, + -114.810997;66.184097;-136.772995;, + -51.221500;116.665001;-150.126999;, + -57.375198;66.184097;-98.482101;, + 51.343300;116.665001;-150.126999;, + 57.497200;66.184097;-98.482101;, + 102.625999;116.665001;-184.315002;, + 114.933998;66.184097;-136.772995;, + 136.813995;116.665001;-235.598007;, + 153.223999;66.184097;-194.209000;, + 136.813995;116.665001;-577.481018;, + 153.223999;66.184097;-577.116028;; + + 184; + 3; 2,1,0;, + 3; 2,3,1;, + 3; 0,5,4;, + 3; 0,1,5;, + 3; 4,7,6;, + 3; 4,5,7;, + 3; 6,9,8;, + 3; 6,7,9;, + 3; 8,11,10;, + 3; 8,9,11;, + 3; 10,13,12;, + 3; 10,11,13;, + 3; 12,15,14;, + 3; 12,13,15;, + 3; 14,17,16;, + 3; 14,15,17;, + 3; 16,19,18;, + 3; 16,17,19;, + 3; 18,21,20;, + 3; 18,19,21;, + 3; 20,23,22;, + 3; 20,21,23;, + 3; 22,25,24;, + 3; 22,23,25;, + 3; 24,27,26;, + 3; 24,25,27;, + 3; 26,3,2;, + 3; 26,27,3;, + 3; 29,5,28;, + 3; 5,29,7;, + 3; 28,5,1;, + 3; 7,30,9;, + 3; 7,29,30;, + 3; 9,31,11;, + 3; 9,30,31;, + 3; 11,32,13;, + 3; 11,31,32;, + 3; 13,33,15;, + 3; 13,32,33;, + 3; 15,34,17;, + 3; 15,33,34;, + 3; 17,35,19;, + 3; 17,34,35;, + 3; 19,36,21;, + 3; 19,35,36;, + 3; 21,37,23;, + 3; 21,36,37;, + 3; 23,38,25;, + 3; 23,37,38;, + 3; 25,39,27;, + 3; 25,38,39;, + 3; 3,27,39;, + 3; 42,41,40;, + 3; 42,43,41;, + 3; 40,41,44;, + 3; 29,44,45;, + 3; 29,28,44;, + 3; 29,46,30;, + 3; 29,45,46;, + 3; 30,47,31;, + 3; 30,46,47;, + 3; 31,48,32;, + 3; 31,47,48;, + 3; 32,49,33;, + 3; 32,48,49;, + 3; 33,50,34;, + 3; 33,49,50;, + 3; 34,51,35;, + 3; 34,50,51;, + 3; 35,52,36;, + 3; 35,51,52;, + 3; 36,53,37;, + 3; 36,52,53;, + 3; 37,54,38;, + 3; 37,53,54;, + 3; 38,55,39;, + 3; 38,54,55;, + 3; 42,55,43;, + 3; 43,56,41;, + 3; 43,57,56;, + 3; 41,58,44;, + 3; 41,56,58;, + 3; 44,59,45;, + 3; 44,58,59;, + 3; 45,60,46;, + 3; 45,59,60;, + 3; 46,61,47;, + 3; 46,60,61;, + 3; 47,62,48;, + 3; 47,61,62;, + 3; 48,63,49;, + 3; 48,62,63;, + 3; 49,64,50;, + 3; 49,63,64;, + 3; 50,65,51;, + 3; 50,64,65;, + 3; 51,66,52;, + 3; 51,65,66;, + 3; 52,67,53;, + 3; 52,66,67;, + 3; 53,68,54;, + 3; 53,67,68;, + 3; 54,69,55;, + 3; 54,68,69;, + 3; 55,57,43;, + 3; 55,69,57;, + 3; 57,70,56;, + 3; 57,71,70;, + 3; 56,72,58;, + 3; 56,70,72;, + 3; 58,72,59;, + 3; 59,73,60;, + 3; 59,72,73;, + 3; 60,73,61;, + 3; 61,74,62;, + 3; 61,73,74;, + 3; 62,75,63;, + 3; 62,74,75;, + 3; 63,76,64;, + 3; 63,75,76;, + 3; 64,77,65;, + 3; 64,76,77;, + 3; 65,78,66;, + 3; 65,77,78;, + 3; 66,78,67;, + 3; 67,79,68;, + 3; 67,78,79;, + 3; 68,79,69;, + 3; 69,71,57;, + 3; 69,79,71;, + 3; 71,72,70;, + 3; 71,73,72;, + 3; 71,74,73;, + 3; 71,75,74;, + 3; 71,76,75;, + 3; 71,77,76;, + 3; 71,78,77;, + 3; 71,79,78;, + 3; 0,80,2;, + 3; 4,80,0;, + 3; 6,80,4;, + 3; 8,80,6;, + 3; 10,80,8;, + 3; 12,80,10;, + 3; 14,80,12;, + 3; 16,80,14;, + 3; 18,80,16;, + 3; 20,80,18;, + 3; 22,80,20;, + 3; 24,80,22;, + 3; 26,80,24;, + 3; 2,80,26;, + 3; 1,81,28;, + 3; 81,1,82;, + 3; 40,83,1;, + 3; 83,40,84;, + 3; 87,86,85;, + 3; 86,88,85;, + 3; 90,89,87;, + 3; 89,86,87;, + 3; 92,91,90;, + 3; 91,89,90;, + 3; 94,93,92;, + 3; 93,91,92;, + 3; 96,95,94;, + 3; 95,93,94;, + 3; 98,97,96;, + 3; 97,95,96;, + 3; 100,99,98;, + 3; 99,97,98;, + 3; 85,88,100;, + 3; 88,99,100;, + 3; 85,100,98;, + 3; 87,85,98;, + 3; 87,98,96;, + 3; 90,87,96;, + 3; 90,96,94;, + 3; 90,94,92;, + 3; 99,88,97;, + 3; 88,86,97;, + 3; 97,86,95;, + 3; 86,89,95;, + 3; 95,89,93;, + 3; 93,89,91;; + MeshMaterialList { + 1; + 184; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material dkorange { + 0.714300;0.021700;0.000000;1.000000;; + 65.890000; + 0.485700;0.017500;0.000000;; + 0.000000;0.000000;0.000000;; + } + } + } + } + +} + diff --git a/_release/Games/wing_ring/media/orange_spark.bmp b/_release/Games/wing_ring/media/orange_spark.bmp new file mode 100644 index 0000000..deb8224 Binary files /dev/null and b/_release/Games/wing_ring/media/orange_spark.bmp differ diff --git a/_release/Games/wing_ring/media/orange_ufo.x b/_release/Games/wing_ring/media/orange_ufo.x new file mode 100644 index 0000000..8e398ea --- /dev/null +++ b/_release/Games/wing_ring/media/orange_ufo.x @@ -0,0 +1,1214 @@ +xof 0302txt 0064 +// DV8190 Copyright Viewpoint Datalabs Intl., Inc. +// www.viewpoint.com, 800-643-8303, 801-229-3333 +// for Microsoft Corporation DirectX format only +// see license agreement for description of rights + +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} + +template AnimationKey { + <10DD46A8-775B-11cf-8F52-0040333594A3> + DWORD keyType; + DWORD nKeys; + array TimedFloatKeys keys[nKeys]; +} + +template Animation { + <3D82AB4F-62DA-11cf-AB39-0020AF71E433> + [...] +} + + template AnimationSet { + <3D82AB50-62DA-11cf-AB39-0020AF71E433> + [Animation] +} + + +Header { + 1; + 0; + 1; +} + +Frame Root{ + Frame nose { + Mesh mesh-nose { + 9; + 0.041754;-0.520870;-1.752230;, + 0.000000;-0.562624;-3.122230;, + 0.059049;-0.562624;-1.752230;, + 0.000000;-0.503575;-1.752230;, + -0.041754;-0.520870;-1.752230;, + -0.059049;-0.562624;-1.752230;, + -0.041754;-0.604378;-1.752230;, + 0.000000;-0.621673;-1.752230;, + 0.041754;-0.604378;-1.752230;; + + 14; + 3; 2,1,0;, + 3; 0,1,3;, + 3; 3,1,4;, + 3; 4,1,5;, + 3; 5,1,6;, + 3; 6,1,7;, + 3; 7,1,8;, + 3; 8,1,2;, + 3; 7,8,2;, + 3; 6,7,2;, + 3; 5,6,2;, + 3; 4,5,2;, + 3; 3,4,2;, + 3; 0,3,2;; + MeshMaterialList { + 1; + 14; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material black { + 0.002000;0.002000;0.002000;1.000000;; + 157.360000; + 0.518400;0.518400;0.518400;; + 0.000000;0.000000;0.000000;; + } + } + } + } + + Frame tail { + Mesh mesh-tail { + 33; + 0.000000;0.213764;1.482750;, + -0.032500;0.252982;1.470040;, + 0.000000;0.118882;1.047140;, + -0.032500;0.154050;1.029530;, + 0.000000;0.421446;1.956740;, + -0.032500;0.464976;1.935990;, + 0.000000;1.018140;2.607660;, + -0.032500;1.053370;2.599290;, + -0.010391;0.997356;3.080420;, + -0.032500;1.034190;3.122230;, + -0.010391;0.918696;3.071680;, + -0.032500;0.906996;3.108080;, + 0.000000;0.886856;2.949130;, + -0.032500;0.864596;2.980890;, + 0.000000;-0.498015;2.082350;, + -0.032500;-0.510208;2.117780;, + 0.000000;-0.372648;1.045000;, + -0.032500;-0.383009;1.043660;, + 0.000000;-0.039866;0.824648;, + -0.032500;-0.043814;0.817535;, + 0.000000;0.082848;0.582730;, + -0.032500;0.097518;0.534872;, + -0.065000;0.213764;1.482750;, + -0.065000;0.118882;1.047140;, + -0.065000;0.421446;1.956740;, + -0.065000;1.018140;2.607660;, + -0.054609;0.997356;3.080420;, + -0.054609;0.918696;3.071680;, + -0.065000;0.886856;2.949130;, + -0.065000;-0.498015;2.082350;, + -0.065000;-0.372648;1.045000;, + -0.065000;-0.039866;0.824648;, + -0.065000;0.082848;0.582730;; + + 62; + 3; 2,1,0;, + 3; 2,3,1;, + 3; 0,5,4;, + 3; 0,1,5;, + 3; 4,7,6;, + 3; 4,5,7;, + 3; 6,9,8;, + 3; 6,7,9;, + 3; 8,11,10;, + 3; 8,9,11;, + 3; 10,13,12;, + 3; 10,11,13;, + 3; 12,15,14;, + 3; 12,13,15;, + 3; 14,17,16;, + 3; 14,15,17;, + 3; 16,19,18;, + 3; 16,17,19;, + 3; 18,21,20;, + 3; 18,19,21;, + 3; 20,3,2;, + 3; 20,21,3;, + 3; 3,22,1;, + 3; 3,23,22;, + 3; 1,24,5;, + 3; 1,22,24;, + 3; 5,25,7;, + 3; 5,24,25;, + 3; 7,26,9;, + 3; 7,25,26;, + 3; 9,27,11;, + 3; 9,26,27;, + 3; 11,28,13;, + 3; 11,27,28;, + 3; 13,29,15;, + 3; 13,28,29;, + 3; 15,30,17;, + 3; 15,29,30;, + 3; 17,31,19;, + 3; 17,30,31;, + 3; 19,32,21;, + 3; 19,31,32;, + 3; 21,23,3;, + 3; 21,32,23;, + 3; 18,20,2;, + 3; 6,8,10;, + 3; 6,10,12;, + 3; 6,12,14;, + 3; 4,6,14;, + 3; 4,14,16;, + 3; 0,4,16;, + 3; 2,0,16;, + 3; 2,16,18;, + 3; 31,23,32;, + 3; 25,27,26;, + 3; 25,28,27;, + 3; 25,29,28;, + 3; 24,29,25;, + 3; 24,30,29;, + 3; 22,30,24;, + 3; 23,30,22;, + 3; 23,31,30;; + MeshMaterialList { + 1; + 62; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material yellow { + 1.000000;0.666700;0.000000;1.000000;; + 65.890000; + 1.000000;0.666700;0.000000;; + 0.000000;0.000000;0.000000;; + } + } + } + } + + Frame canopy { + Mesh mesh-canopy { + 66; + 0.010706;-0.185322;-0.856592;, + -0.103198;-0.199881;-0.865683;, + 0.010706;-0.374417;-1.067540;, + -0.199762;-0.241341;-0.891574;, + -0.264283;-0.303390;-0.930325;, + -0.286940;-0.376582;-0.976025;, + 0.010706;-0.371075;0.221225;, + 0.308352;-0.376582;-0.976025;, + 0.285695;-0.303390;-0.930325;, + 0.221174;-0.241341;-0.891574;, + 0.124610;-0.199881;-0.865683;, + 0.010706;0.007898;-0.488197;, + -0.199762;-0.020965;-0.501343;, + -0.378188;-0.103159;-0.538779;, + -0.497408;-0.226172;-0.594807;, + -0.539273;-0.371275;-0.660897;, + 0.560685;-0.371275;-0.660897;, + 0.518820;-0.226172;-0.594807;, + 0.399599;-0.103159;-0.538779;, + 0.221174;-0.020965;-0.501343;, + 0.010706;0.164967;-0.133933;, + -0.264283;0.124289;-0.141836;, + -0.497408;0.008448;-0.164342;, + -0.653177;-0.164920;-0.198023;, + -0.707876;-0.369421;-0.237754;, + 0.729288;-0.369421;-0.237754;, + 0.674589;-0.164920;-0.198023;, + 0.518820;0.008448;-0.164342;, + 0.285695;0.124289;-0.141836;, + 0.010706;0.214816;0.221225;, + -0.286940;0.169963;0.221225;, + -0.539273;0.042233;0.221225;, + -0.707876;-0.148928;0.221225;, + -0.767081;-0.374417;0.221225;, + 0.788493;-0.374417;0.221225;, + 0.729288;-0.148928;0.221225;, + 0.560684;0.042233;0.221225;, + 0.308352;0.169963;0.221225;, + 0.010706;0.169963;0.545616;, + -0.264283;0.128524;0.545616;, + -0.497408;0.010518;0.545616;, + -0.653177;-0.166092;0.545616;, + -0.707876;-0.374417;0.545616;, + 0.729288;-0.374417;0.545616;, + 0.674589;-0.166092;0.545616;, + 0.518820;0.010518;0.545616;, + 0.285695;0.128524;0.545616;, + 0.010706;0.042233;0.809822;, + -0.199762;0.010518;0.809822;, + -0.378188;-0.079801;0.809822;, + -0.497408;-0.214972;0.809822;, + -0.539273;-0.374417;0.809822;, + 0.560685;-0.374417;0.809822;, + 0.518820;-0.214972;0.809822;, + 0.399599;-0.079801;0.809822;, + 0.221174;0.010518;0.809822;, + 0.010706;-0.148928;1.006310;, + -0.103198;-0.166092;1.006310;, + -0.199762;-0.214972;1.006310;, + -0.264283;-0.288126;1.006310;, + -0.286940;-0.374417;1.006310;, + 0.308352;-0.374417;1.006310;, + 0.285695;-0.288126;1.006310;, + 0.221174;-0.214972;1.006310;, + 0.124610;-0.166092;1.006310;, + 0.010706;-0.374417;1.095110;; + + 128; + 3; 2,1,0;, + 3; 2,3,1;, + 3; 2,4,3;, + 3; 2,5,4;, + 3; 2,6,5;, + 3; 2,7,6;, + 3; 2,8,7;, + 3; 2,9,8;, + 3; 2,10,9;, + 3; 2,0,10;, + 3; 0,12,11;, + 3; 0,1,12;, + 3; 1,13,12;, + 3; 1,3,13;, + 3; 3,14,13;, + 3; 3,4,14;, + 3; 4,15,14;, + 3; 4,5,15;, + 3; 5,6,15;, + 3; 6,7,16;, + 3; 7,17,16;, + 3; 7,8,17;, + 3; 8,18,17;, + 3; 8,9,18;, + 3; 9,19,18;, + 3; 9,10,19;, + 3; 10,11,19;, + 3; 10,0,11;, + 3; 11,21,20;, + 3; 11,12,21;, + 3; 12,22,21;, + 3; 12,13,22;, + 3; 13,23,22;, + 3; 13,14,23;, + 3; 14,24,23;, + 3; 14,15,24;, + 3; 15,6,24;, + 3; 6,16,25;, + 3; 16,26,25;, + 3; 16,17,26;, + 3; 17,27,26;, + 3; 17,18,27;, + 3; 18,28,27;, + 3; 18,19,28;, + 3; 19,20,28;, + 3; 19,11,20;, + 3; 20,30,29;, + 3; 20,21,30;, + 3; 21,31,30;, + 3; 21,22,31;, + 3; 22,32,31;, + 3; 22,23,32;, + 3; 23,33,32;, + 3; 23,24,33;, + 3; 24,6,33;, + 3; 6,25,34;, + 3; 25,35,34;, + 3; 25,26,35;, + 3; 26,36,35;, + 3; 26,27,36;, + 3; 27,37,36;, + 3; 27,28,37;, + 3; 28,29,37;, + 3; 28,20,29;, + 3; 29,39,38;, + 3; 29,30,39;, + 3; 30,40,39;, + 3; 30,31,40;, + 3; 31,41,40;, + 3; 31,32,41;, + 3; 32,42,41;, + 3; 32,33,42;, + 3; 33,6,42;, + 3; 6,34,43;, + 3; 34,44,43;, + 3; 34,35,44;, + 3; 35,45,44;, + 3; 35,36,45;, + 3; 36,46,45;, + 3; 36,37,46;, + 3; 37,38,46;, + 3; 37,29,38;, + 3; 38,48,47;, + 3; 38,39,48;, + 3; 39,49,48;, + 3; 39,40,49;, + 3; 40,50,49;, + 3; 40,41,50;, + 3; 41,51,50;, + 3; 41,42,51;, + 3; 42,6,51;, + 3; 6,43,52;, + 3; 43,53,52;, + 3; 43,44,53;, + 3; 44,54,53;, + 3; 44,45,54;, + 3; 45,55,54;, + 3; 45,46,55;, + 3; 46,47,55;, + 3; 46,38,47;, + 3; 47,57,56;, + 3; 47,48,57;, + 3; 48,58,57;, + 3; 48,49,58;, + 3; 49,59,58;, + 3; 49,50,59;, + 3; 50,60,59;, + 3; 50,51,60;, + 3; 51,6,60;, + 3; 6,52,61;, + 3; 52,62,61;, + 3; 52,53,62;, + 3; 53,63,62;, + 3; 53,54,63;, + 3; 54,64,63;, + 3; 54,55,64;, + 3; 55,56,64;, + 3; 55,47,56;, + 3; 65,56,57;, + 3; 65,57,58;, + 3; 65,58,59;, + 3; 65,59,60;, + 3; 65,60,6;, + 3; 65,6,61;, + 3; 65,61,62;, + 3; 65,62,63;, + 3; 65,63,64;, + 3; 65,64,56;; + MeshMaterialList { + 1; + 128; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material glassblutint { + 0.555100;0.800000;0.773000;1.000000;; + 60.000000; + 0.796900;0.971400;0.922300;; + 0.000000;0.000000;0.000000;; + } + } + } + } + + Frame body { + Mesh mesh-body { + 107; + 0.715357;-0.568358;2.126190;, + 0.890442;-0.660896;2.077020;, + 0.000000;-0.811893;1.696410;, + 0.511693;-0.489908;2.167880;, + 0.183646;-0.469152;2.178910;, + -0.183646;-0.469151;2.178910;, + -0.511693;-0.489908;2.167880;, + -0.715357;-0.568358;2.126190;, + -0.890442;-0.660896;2.077020;, + -0.715357;-0.746046;2.027840;, + -0.511693;-0.811971;1.986150;, + -0.276926;-0.916878;2.133810;, + 0.000000;-0.990874;2.182100;, + 0.276926;-0.916878;2.133810;, + 0.511693;-0.811971;1.986150;, + 0.715357;-0.746046;2.027840;, + 0.997806;-0.548760;1.513930;, + 1.242020;-0.647951;1.513930;, + 0.713727;-0.420280;1.513930;, + 0.545099;-0.383980;1.513930;, + -0.545099;-0.383980;1.513930;, + -0.713727;-0.420280;1.513930;, + -0.997807;-0.548760;1.513930;, + -1.242020;-0.647951;1.513930;, + -0.997806;-0.753226;1.513930;, + -0.713727;-0.868523;1.513930;, + -0.386266;-0.945561;1.513930;, + 0.000000;-0.972613;1.513930;, + 0.386267;-0.945561;1.513930;, + 0.713727;-0.868522;1.513930;, + 0.997806;-0.753226;1.513930;, + 1.148420;-0.547978;1.058770;, + 1.429490;-0.642328;1.058770;, + 0.821459;-0.376247;1.058770;, + 0.784223;-0.335284;1.058770;, + -0.784223;-0.335284;1.058770;, + -0.821459;-0.376247;1.058770;, + -1.148420;-0.547978;1.058770;, + -1.429490;-0.642328;1.058770;, + -1.148420;-0.765969;1.058770;, + -0.821459;-0.896073;1.058770;, + -0.444570;-0.983007;1.058770;, + 0.000000;-1.013530;1.058770;, + 0.444571;-0.983007;1.058770;, + 0.821460;-0.896073;1.058770;, + 1.148420;-0.765969;1.058770;, + 1.181870;-0.547978;0.276791;, + 1.471130;-0.642328;0.276791;, + 0.845385;-0.376248;0.276791;, + 0.807064;-0.335284;0.276791;, + -0.807064;-0.335285;0.276791;, + -0.845385;-0.376248;0.276791;, + -1.181870;-0.547978;0.276791;, + -1.471130;-0.642328;0.276791;, + -1.181870;-0.787173;0.276791;, + -0.845385;-0.926581;0.276791;, + -0.457519;-1.013370;0.276791;, + 0.000000;-1.053370;0.276791;, + 0.457519;-1.013370;0.276791;, + 0.845386;-0.926581;0.276791;, + 1.181870;-0.787172;0.276791;, + 1.058540;-0.547978;-0.751299;, + 1.317620;-0.642328;-0.751299;, + 0.757171;-0.376248;-0.751299;, + 0.578279;-0.335284;-0.751299;, + -0.578279;-0.335284;-0.751299;, + -0.757171;-0.376248;-0.751299;, + -1.058540;-0.547978;-0.751299;, + -1.317620;-0.642328;-0.751299;, + -1.058540;-0.765969;-0.751299;, + -0.757171;-0.896074;-0.751299;, + -0.409778;-0.983007;-0.751299;, + 0.000000;-1.013530;-0.751299;, + 0.409778;-0.983007;-0.751299;, + 0.757171;-0.896074;-0.751299;, + 1.058540;-0.765969;-0.751299;, + 0.748330;-0.528800;-1.267420;, + 0.931484;-0.629639;-1.267420;, + 0.535277;-0.415035;-1.267420;, + 0.285482;-0.380320;-1.267420;, + -0.285482;-0.380320;-1.267420;, + -0.535277;-0.415035;-1.267420;, + -0.748330;-0.528800;-1.267420;, + -0.931484;-0.629639;-1.267420;, + -0.748330;-0.731895;-1.267420;, + -0.535277;-0.842154;-1.267420;, + -0.289690;-0.915826;-1.267420;, + 0.000000;-0.941696;-1.267420;, + 0.289690;-0.915826;-1.267420;, + 0.535278;-0.842154;-1.267420;, + 0.748330;-0.731895;-1.267420;, + 0.397797;-0.544818;-1.693180;, + 0.495159;-0.639093;-1.693180;, + 0.284543;-0.464896;-1.693180;, + 0.122916;-0.443751;-1.693180;, + -0.122916;-0.443751;-1.693180;, + -0.284543;-0.464896;-1.693180;, + -0.397798;-0.544818;-1.693180;, + -0.495159;-0.639093;-1.693180;, + -0.397798;-0.689003;-1.693180;, + -0.284543;-0.756164;-1.693180;, + -0.153994;-0.801040;-1.693180;, + 0.000000;-0.816798;-1.693180;, + 0.153994;-0.801040;-1.693180;, + 0.284543;-0.756164;-1.693180;, + 0.397798;-0.689003;-1.693180;, + 0.000000;-0.542308;-2.091320;; + + 210; + 3; 2,1,0;, + 3; 2,0,3;, + 3; 2,3,4;, + 3; 2,4,5;, + 3; 2,5,6;, + 3; 2,6,7;, + 3; 2,7,8;, + 3; 2,8,9;, + 3; 2,9,10;, + 3; 2,10,11;, + 3; 2,11,12;, + 3; 2,12,13;, + 3; 2,13,14;, + 3; 2,14,15;, + 3; 2,15,1;, + 3; 1,16,0;, + 3; 1,17,16;, + 3; 0,18,3;, + 3; 0,16,18;, + 3; 3,19,4;, + 3; 3,18,19;, + 3; 4,20,5;, + 3; 4,19,20;, + 3; 5,21,6;, + 3; 5,20,21;, + 3; 6,22,7;, + 3; 6,21,22;, + 3; 7,23,8;, + 3; 7,22,23;, + 3; 8,24,9;, + 3; 8,23,24;, + 3; 9,25,10;, + 3; 9,24,25;, + 3; 10,26,11;, + 3; 10,25,26;, + 3; 11,27,12;, + 3; 11,26,27;, + 3; 12,28,13;, + 3; 12,27,28;, + 3; 13,29,14;, + 3; 13,28,29;, + 3; 14,30,15;, + 3; 14,29,30;, + 3; 15,17,1;, + 3; 15,30,17;, + 3; 17,31,16;, + 3; 17,32,31;, + 3; 16,33,18;, + 3; 16,31,33;, + 3; 18,34,19;, + 3; 18,33,34;, + 3; 19,35,20;, + 3; 19,34,35;, + 3; 20,36,21;, + 3; 20,35,36;, + 3; 21,37,22;, + 3; 21,36,37;, + 3; 22,38,23;, + 3; 22,37,38;, + 3; 23,39,24;, + 3; 23,38,39;, + 3; 24,40,25;, + 3; 24,39,40;, + 3; 25,41,26;, + 3; 25,40,41;, + 3; 26,42,27;, + 3; 26,41,42;, + 3; 27,43,28;, + 3; 27,42,43;, + 3; 28,44,29;, + 3; 28,43,44;, + 3; 29,45,30;, + 3; 29,44,45;, + 3; 30,32,17;, + 3; 30,45,32;, + 3; 32,46,31;, + 3; 32,47,46;, + 3; 31,48,33;, + 3; 31,46,48;, + 3; 33,49,34;, + 3; 33,48,49;, + 3; 34,50,35;, + 3; 34,49,50;, + 3; 35,51,36;, + 3; 35,50,51;, + 3; 36,52,37;, + 3; 36,51,52;, + 3; 37,53,38;, + 3; 37,52,53;, + 3; 38,54,39;, + 3; 38,53,54;, + 3; 39,55,40;, + 3; 39,54,55;, + 3; 40,56,41;, + 3; 40,55,56;, + 3; 41,57,42;, + 3; 41,56,57;, + 3; 42,58,43;, + 3; 42,57,58;, + 3; 43,59,44;, + 3; 43,58,59;, + 3; 44,60,45;, + 3; 44,59,60;, + 3; 45,47,32;, + 3; 45,60,47;, + 3; 47,61,46;, + 3; 47,62,61;, + 3; 46,63,48;, + 3; 46,61,63;, + 3; 48,64,49;, + 3; 48,63,64;, + 3; 49,65,50;, + 3; 49,64,65;, + 3; 50,66,51;, + 3; 50,65,66;, + 3; 51,67,52;, + 3; 51,66,67;, + 3; 52,68,53;, + 3; 52,67,68;, + 3; 53,69,54;, + 3; 53,68,69;, + 3; 54,70,55;, + 3; 54,69,70;, + 3; 55,71,56;, + 3; 55,70,71;, + 3; 56,72,57;, + 3; 56,71,72;, + 3; 57,73,58;, + 3; 57,72,73;, + 3; 58,74,59;, + 3; 58,73,74;, + 3; 59,75,60;, + 3; 59,74,75;, + 3; 60,62,47;, + 3; 60,75,62;, + 3; 62,76,61;, + 3; 62,77,76;, + 3; 61,78,63;, + 3; 61,76,78;, + 3; 63,79,64;, + 3; 63,78,79;, + 3; 64,80,65;, + 3; 64,79,80;, + 3; 65,81,66;, + 3; 65,80,81;, + 3; 66,82,67;, + 3; 66,81,82;, + 3; 67,83,68;, + 3; 67,82,83;, + 3; 68,84,69;, + 3; 68,83,84;, + 3; 69,85,70;, + 3; 69,84,85;, + 3; 70,86,71;, + 3; 70,85,86;, + 3; 71,87,72;, + 3; 71,86,87;, + 3; 72,88,73;, + 3; 72,87,88;, + 3; 73,89,74;, + 3; 73,88,89;, + 3; 74,90,75;, + 3; 74,89,90;, + 3; 75,77,62;, + 3; 75,90,77;, + 3; 77,91,76;, + 3; 77,92,91;, + 3; 76,93,78;, + 3; 76,91,93;, + 3; 78,94,79;, + 3; 78,93,94;, + 3; 79,95,80;, + 3; 79,94,95;, + 3; 80,96,81;, + 3; 80,95,96;, + 3; 81,97,82;, + 3; 81,96,97;, + 3; 82,98,83;, + 3; 82,97,98;, + 3; 83,99,84;, + 3; 83,98,99;, + 3; 84,100,85;, + 3; 84,99,100;, + 3; 85,101,86;, + 3; 85,100,101;, + 3; 86,102,87;, + 3; 86,101,102;, + 3; 87,103,88;, + 3; 87,102,103;, + 3; 88,104,89;, + 3; 88,103,104;, + 3; 89,105,90;, + 3; 89,104,105;, + 3; 90,92,77;, + 3; 90,105,92;, + 3; 92,106,91;, + 3; 91,106,93;, + 3; 93,106,94;, + 3; 94,106,95;, + 3; 95,106,96;, + 3; 96,106,97;, + 3; 97,106,98;, + 3; 98,106,99;, + 3; 99,106,100;, + 3; 100,106,101;, + 3; 101,106,102;, + 3; 102,106,103;, + 3; 103,106,104;, + 3; 104,106,105;, + 3; 105,106,92;; + MeshMaterialList { + 1; + 210; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material blue_pure { + 1.000000;0.400000;0.000000;1.000000;; + 65.890000; + 0.000000;0.000000;0.500000;; + 0.000000;0.000000;0.000000;; + } + } + } + } + +} + diff --git a/_release/Games/wing_ring/media/pink_spark.bmp b/_release/Games/wing_ring/media/pink_spark.bmp new file mode 100644 index 0000000..2ab122d Binary files /dev/null and b/_release/Games/wing_ring/media/pink_spark.bmp differ diff --git a/_release/Games/wing_ring/media/pink_ufo.x b/_release/Games/wing_ring/media/pink_ufo.x new file mode 100644 index 0000000..3f825e7 --- /dev/null +++ b/_release/Games/wing_ring/media/pink_ufo.x @@ -0,0 +1,1214 @@ +xof 0302txt 0064 +// DV8190 Copyright Viewpoint Datalabs Intl., Inc. +// www.viewpoint.com, 800-643-8303, 801-229-3333 +// for Microsoft Corporation DirectX format only +// see license agreement for description of rights + +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} + +template AnimationKey { + <10DD46A8-775B-11cf-8F52-0040333594A3> + DWORD keyType; + DWORD nKeys; + array TimedFloatKeys keys[nKeys]; +} + +template Animation { + <3D82AB4F-62DA-11cf-AB39-0020AF71E433> + [...] +} + + template AnimationSet { + <3D82AB50-62DA-11cf-AB39-0020AF71E433> + [Animation] +} + + +Header { + 1; + 0; + 1; +} + +Frame Root{ + Frame nose { + Mesh mesh-nose { + 9; + 0.041754;-0.520870;-1.752230;, + 0.000000;-0.562624;-3.122230;, + 0.059049;-0.562624;-1.752230;, + 0.000000;-0.503575;-1.752230;, + -0.041754;-0.520870;-1.752230;, + -0.059049;-0.562624;-1.752230;, + -0.041754;-0.604378;-1.752230;, + 0.000000;-0.621673;-1.752230;, + 0.041754;-0.604378;-1.752230;; + + 14; + 3; 2,1,0;, + 3; 0,1,3;, + 3; 3,1,4;, + 3; 4,1,5;, + 3; 5,1,6;, + 3; 6,1,7;, + 3; 7,1,8;, + 3; 8,1,2;, + 3; 7,8,2;, + 3; 6,7,2;, + 3; 5,6,2;, + 3; 4,5,2;, + 3; 3,4,2;, + 3; 0,3,2;; + MeshMaterialList { + 1; + 14; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material black { + 0.002000;0.002000;0.002000;1.000000;; + 157.360000; + 0.518400;0.518400;0.518400;; + 0.000000;0.000000;0.000000;; + } + } + } + } + + Frame tail { + Mesh mesh-tail { + 33; + 0.000000;0.213764;1.482750;, + -0.032500;0.252982;1.470040;, + 0.000000;0.118882;1.047140;, + -0.032500;0.154050;1.029530;, + 0.000000;0.421446;1.956740;, + -0.032500;0.464976;1.935990;, + 0.000000;1.018140;2.607660;, + -0.032500;1.053370;2.599290;, + -0.010391;0.997356;3.080420;, + -0.032500;1.034190;3.122230;, + -0.010391;0.918696;3.071680;, + -0.032500;0.906996;3.108080;, + 0.000000;0.886856;2.949130;, + -0.032500;0.864596;2.980890;, + 0.000000;-0.498015;2.082350;, + -0.032500;-0.510208;2.117780;, + 0.000000;-0.372648;1.045000;, + -0.032500;-0.383009;1.043660;, + 0.000000;-0.039866;0.824648;, + -0.032500;-0.043814;0.817535;, + 0.000000;0.082848;0.582730;, + -0.032500;0.097518;0.534872;, + -0.065000;0.213764;1.482750;, + -0.065000;0.118882;1.047140;, + -0.065000;0.421446;1.956740;, + -0.065000;1.018140;2.607660;, + -0.054609;0.997356;3.080420;, + -0.054609;0.918696;3.071680;, + -0.065000;0.886856;2.949130;, + -0.065000;-0.498015;2.082350;, + -0.065000;-0.372648;1.045000;, + -0.065000;-0.039866;0.824648;, + -0.065000;0.082848;0.582730;; + + 62; + 3; 2,1,0;, + 3; 2,3,1;, + 3; 0,5,4;, + 3; 0,1,5;, + 3; 4,7,6;, + 3; 4,5,7;, + 3; 6,9,8;, + 3; 6,7,9;, + 3; 8,11,10;, + 3; 8,9,11;, + 3; 10,13,12;, + 3; 10,11,13;, + 3; 12,15,14;, + 3; 12,13,15;, + 3; 14,17,16;, + 3; 14,15,17;, + 3; 16,19,18;, + 3; 16,17,19;, + 3; 18,21,20;, + 3; 18,19,21;, + 3; 20,3,2;, + 3; 20,21,3;, + 3; 3,22,1;, + 3; 3,23,22;, + 3; 1,24,5;, + 3; 1,22,24;, + 3; 5,25,7;, + 3; 5,24,25;, + 3; 7,26,9;, + 3; 7,25,26;, + 3; 9,27,11;, + 3; 9,26,27;, + 3; 11,28,13;, + 3; 11,27,28;, + 3; 13,29,15;, + 3; 13,28,29;, + 3; 15,30,17;, + 3; 15,29,30;, + 3; 17,31,19;, + 3; 17,30,31;, + 3; 19,32,21;, + 3; 19,31,32;, + 3; 21,23,3;, + 3; 21,32,23;, + 3; 18,20,2;, + 3; 6,8,10;, + 3; 6,10,12;, + 3; 6,12,14;, + 3; 4,6,14;, + 3; 4,14,16;, + 3; 0,4,16;, + 3; 2,0,16;, + 3; 2,16,18;, + 3; 31,23,32;, + 3; 25,27,26;, + 3; 25,28,27;, + 3; 25,29,28;, + 3; 24,29,25;, + 3; 24,30,29;, + 3; 22,30,24;, + 3; 23,30,22;, + 3; 23,31,30;; + MeshMaterialList { + 1; + 62; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material yellow { + 1.000000;0.666700;0.000000;1.000000;; + 65.890000; + 1.000000;0.666700;0.000000;; + 0.000000;0.000000;0.000000;; + } + } + } + } + + Frame canopy { + Mesh mesh-canopy { + 66; + 0.010706;-0.185322;-0.856592;, + -0.103198;-0.199881;-0.865683;, + 0.010706;-0.374417;-1.067540;, + -0.199762;-0.241341;-0.891574;, + -0.264283;-0.303390;-0.930325;, + -0.286940;-0.376582;-0.976025;, + 0.010706;-0.371075;0.221225;, + 0.308352;-0.376582;-0.976025;, + 0.285695;-0.303390;-0.930325;, + 0.221174;-0.241341;-0.891574;, + 0.124610;-0.199881;-0.865683;, + 0.010706;0.007898;-0.488197;, + -0.199762;-0.020965;-0.501343;, + -0.378188;-0.103159;-0.538779;, + -0.497408;-0.226172;-0.594807;, + -0.539273;-0.371275;-0.660897;, + 0.560685;-0.371275;-0.660897;, + 0.518820;-0.226172;-0.594807;, + 0.399599;-0.103159;-0.538779;, + 0.221174;-0.020965;-0.501343;, + 0.010706;0.164967;-0.133933;, + -0.264283;0.124289;-0.141836;, + -0.497408;0.008448;-0.164342;, + -0.653177;-0.164920;-0.198023;, + -0.707876;-0.369421;-0.237754;, + 0.729288;-0.369421;-0.237754;, + 0.674589;-0.164920;-0.198023;, + 0.518820;0.008448;-0.164342;, + 0.285695;0.124289;-0.141836;, + 0.010706;0.214816;0.221225;, + -0.286940;0.169963;0.221225;, + -0.539273;0.042233;0.221225;, + -0.707876;-0.148928;0.221225;, + -0.767081;-0.374417;0.221225;, + 0.788493;-0.374417;0.221225;, + 0.729288;-0.148928;0.221225;, + 0.560684;0.042233;0.221225;, + 0.308352;0.169963;0.221225;, + 0.010706;0.169963;0.545616;, + -0.264283;0.128524;0.545616;, + -0.497408;0.010518;0.545616;, + -0.653177;-0.166092;0.545616;, + -0.707876;-0.374417;0.545616;, + 0.729288;-0.374417;0.545616;, + 0.674589;-0.166092;0.545616;, + 0.518820;0.010518;0.545616;, + 0.285695;0.128524;0.545616;, + 0.010706;0.042233;0.809822;, + -0.199762;0.010518;0.809822;, + -0.378188;-0.079801;0.809822;, + -0.497408;-0.214972;0.809822;, + -0.539273;-0.374417;0.809822;, + 0.560685;-0.374417;0.809822;, + 0.518820;-0.214972;0.809822;, + 0.399599;-0.079801;0.809822;, + 0.221174;0.010518;0.809822;, + 0.010706;-0.148928;1.006310;, + -0.103198;-0.166092;1.006310;, + -0.199762;-0.214972;1.006310;, + -0.264283;-0.288126;1.006310;, + -0.286940;-0.374417;1.006310;, + 0.308352;-0.374417;1.006310;, + 0.285695;-0.288126;1.006310;, + 0.221174;-0.214972;1.006310;, + 0.124610;-0.166092;1.006310;, + 0.010706;-0.374417;1.095110;; + + 128; + 3; 2,1,0;, + 3; 2,3,1;, + 3; 2,4,3;, + 3; 2,5,4;, + 3; 2,6,5;, + 3; 2,7,6;, + 3; 2,8,7;, + 3; 2,9,8;, + 3; 2,10,9;, + 3; 2,0,10;, + 3; 0,12,11;, + 3; 0,1,12;, + 3; 1,13,12;, + 3; 1,3,13;, + 3; 3,14,13;, + 3; 3,4,14;, + 3; 4,15,14;, + 3; 4,5,15;, + 3; 5,6,15;, + 3; 6,7,16;, + 3; 7,17,16;, + 3; 7,8,17;, + 3; 8,18,17;, + 3; 8,9,18;, + 3; 9,19,18;, + 3; 9,10,19;, + 3; 10,11,19;, + 3; 10,0,11;, + 3; 11,21,20;, + 3; 11,12,21;, + 3; 12,22,21;, + 3; 12,13,22;, + 3; 13,23,22;, + 3; 13,14,23;, + 3; 14,24,23;, + 3; 14,15,24;, + 3; 15,6,24;, + 3; 6,16,25;, + 3; 16,26,25;, + 3; 16,17,26;, + 3; 17,27,26;, + 3; 17,18,27;, + 3; 18,28,27;, + 3; 18,19,28;, + 3; 19,20,28;, + 3; 19,11,20;, + 3; 20,30,29;, + 3; 20,21,30;, + 3; 21,31,30;, + 3; 21,22,31;, + 3; 22,32,31;, + 3; 22,23,32;, + 3; 23,33,32;, + 3; 23,24,33;, + 3; 24,6,33;, + 3; 6,25,34;, + 3; 25,35,34;, + 3; 25,26,35;, + 3; 26,36,35;, + 3; 26,27,36;, + 3; 27,37,36;, + 3; 27,28,37;, + 3; 28,29,37;, + 3; 28,20,29;, + 3; 29,39,38;, + 3; 29,30,39;, + 3; 30,40,39;, + 3; 30,31,40;, + 3; 31,41,40;, + 3; 31,32,41;, + 3; 32,42,41;, + 3; 32,33,42;, + 3; 33,6,42;, + 3; 6,34,43;, + 3; 34,44,43;, + 3; 34,35,44;, + 3; 35,45,44;, + 3; 35,36,45;, + 3; 36,46,45;, + 3; 36,37,46;, + 3; 37,38,46;, + 3; 37,29,38;, + 3; 38,48,47;, + 3; 38,39,48;, + 3; 39,49,48;, + 3; 39,40,49;, + 3; 40,50,49;, + 3; 40,41,50;, + 3; 41,51,50;, + 3; 41,42,51;, + 3; 42,6,51;, + 3; 6,43,52;, + 3; 43,53,52;, + 3; 43,44,53;, + 3; 44,54,53;, + 3; 44,45,54;, + 3; 45,55,54;, + 3; 45,46,55;, + 3; 46,47,55;, + 3; 46,38,47;, + 3; 47,57,56;, + 3; 47,48,57;, + 3; 48,58,57;, + 3; 48,49,58;, + 3; 49,59,58;, + 3; 49,50,59;, + 3; 50,60,59;, + 3; 50,51,60;, + 3; 51,6,60;, + 3; 6,52,61;, + 3; 52,62,61;, + 3; 52,53,62;, + 3; 53,63,62;, + 3; 53,54,63;, + 3; 54,64,63;, + 3; 54,55,64;, + 3; 55,56,64;, + 3; 55,47,56;, + 3; 65,56,57;, + 3; 65,57,58;, + 3; 65,58,59;, + 3; 65,59,60;, + 3; 65,60,6;, + 3; 65,6,61;, + 3; 65,61,62;, + 3; 65,62,63;, + 3; 65,63,64;, + 3; 65,64,56;; + MeshMaterialList { + 1; + 128; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material glassblutint { + 0.555100;0.800000;0.773000;1.000000;; + 60.000000; + 0.796900;0.971400;0.922300;; + 0.000000;0.000000;0.000000;; + } + } + } + } + + Frame body { + Mesh mesh-body { + 107; + 0.715357;-0.568358;2.126190;, + 0.890442;-0.660896;2.077020;, + 0.000000;-0.811893;1.696410;, + 0.511693;-0.489908;2.167880;, + 0.183646;-0.469152;2.178910;, + -0.183646;-0.469151;2.178910;, + -0.511693;-0.489908;2.167880;, + -0.715357;-0.568358;2.126190;, + -0.890442;-0.660896;2.077020;, + -0.715357;-0.746046;2.027840;, + -0.511693;-0.811971;1.986150;, + -0.276926;-0.916878;2.133810;, + 0.000000;-0.990874;2.182100;, + 0.276926;-0.916878;2.133810;, + 0.511693;-0.811971;1.986150;, + 0.715357;-0.746046;2.027840;, + 0.997806;-0.548760;1.513930;, + 1.242020;-0.647951;1.513930;, + 0.713727;-0.420280;1.513930;, + 0.545099;-0.383980;1.513930;, + -0.545099;-0.383980;1.513930;, + -0.713727;-0.420280;1.513930;, + -0.997807;-0.548760;1.513930;, + -1.242020;-0.647951;1.513930;, + -0.997806;-0.753226;1.513930;, + -0.713727;-0.868523;1.513930;, + -0.386266;-0.945561;1.513930;, + 0.000000;-0.972613;1.513930;, + 0.386267;-0.945561;1.513930;, + 0.713727;-0.868522;1.513930;, + 0.997806;-0.753226;1.513930;, + 1.148420;-0.547978;1.058770;, + 1.429490;-0.642328;1.058770;, + 0.821459;-0.376247;1.058770;, + 0.784223;-0.335284;1.058770;, + -0.784223;-0.335284;1.058770;, + -0.821459;-0.376247;1.058770;, + -1.148420;-0.547978;1.058770;, + -1.429490;-0.642328;1.058770;, + -1.148420;-0.765969;1.058770;, + -0.821459;-0.896073;1.058770;, + -0.444570;-0.983007;1.058770;, + 0.000000;-1.013530;1.058770;, + 0.444571;-0.983007;1.058770;, + 0.821460;-0.896073;1.058770;, + 1.148420;-0.765969;1.058770;, + 1.181870;-0.547978;0.276791;, + 1.471130;-0.642328;0.276791;, + 0.845385;-0.376248;0.276791;, + 0.807064;-0.335284;0.276791;, + -0.807064;-0.335285;0.276791;, + -0.845385;-0.376248;0.276791;, + -1.181870;-0.547978;0.276791;, + -1.471130;-0.642328;0.276791;, + -1.181870;-0.787173;0.276791;, + -0.845385;-0.926581;0.276791;, + -0.457519;-1.013370;0.276791;, + 0.000000;-1.053370;0.276791;, + 0.457519;-1.013370;0.276791;, + 0.845386;-0.926581;0.276791;, + 1.181870;-0.787172;0.276791;, + 1.058540;-0.547978;-0.751299;, + 1.317620;-0.642328;-0.751299;, + 0.757171;-0.376248;-0.751299;, + 0.578279;-0.335284;-0.751299;, + -0.578279;-0.335284;-0.751299;, + -0.757171;-0.376248;-0.751299;, + -1.058540;-0.547978;-0.751299;, + -1.317620;-0.642328;-0.751299;, + -1.058540;-0.765969;-0.751299;, + -0.757171;-0.896074;-0.751299;, + -0.409778;-0.983007;-0.751299;, + 0.000000;-1.013530;-0.751299;, + 0.409778;-0.983007;-0.751299;, + 0.757171;-0.896074;-0.751299;, + 1.058540;-0.765969;-0.751299;, + 0.748330;-0.528800;-1.267420;, + 0.931484;-0.629639;-1.267420;, + 0.535277;-0.415035;-1.267420;, + 0.285482;-0.380320;-1.267420;, + -0.285482;-0.380320;-1.267420;, + -0.535277;-0.415035;-1.267420;, + -0.748330;-0.528800;-1.267420;, + -0.931484;-0.629639;-1.267420;, + -0.748330;-0.731895;-1.267420;, + -0.535277;-0.842154;-1.267420;, + -0.289690;-0.915826;-1.267420;, + 0.000000;-0.941696;-1.267420;, + 0.289690;-0.915826;-1.267420;, + 0.535278;-0.842154;-1.267420;, + 0.748330;-0.731895;-1.267420;, + 0.397797;-0.544818;-1.693180;, + 0.495159;-0.639093;-1.693180;, + 0.284543;-0.464896;-1.693180;, + 0.122916;-0.443751;-1.693180;, + -0.122916;-0.443751;-1.693180;, + -0.284543;-0.464896;-1.693180;, + -0.397798;-0.544818;-1.693180;, + -0.495159;-0.639093;-1.693180;, + -0.397798;-0.689003;-1.693180;, + -0.284543;-0.756164;-1.693180;, + -0.153994;-0.801040;-1.693180;, + 0.000000;-0.816798;-1.693180;, + 0.153994;-0.801040;-1.693180;, + 0.284543;-0.756164;-1.693180;, + 0.397798;-0.689003;-1.693180;, + 0.000000;-0.542308;-2.091320;; + + 210; + 3; 2,1,0;, + 3; 2,0,3;, + 3; 2,3,4;, + 3; 2,4,5;, + 3; 2,5,6;, + 3; 2,6,7;, + 3; 2,7,8;, + 3; 2,8,9;, + 3; 2,9,10;, + 3; 2,10,11;, + 3; 2,11,12;, + 3; 2,12,13;, + 3; 2,13,14;, + 3; 2,14,15;, + 3; 2,15,1;, + 3; 1,16,0;, + 3; 1,17,16;, + 3; 0,18,3;, + 3; 0,16,18;, + 3; 3,19,4;, + 3; 3,18,19;, + 3; 4,20,5;, + 3; 4,19,20;, + 3; 5,21,6;, + 3; 5,20,21;, + 3; 6,22,7;, + 3; 6,21,22;, + 3; 7,23,8;, + 3; 7,22,23;, + 3; 8,24,9;, + 3; 8,23,24;, + 3; 9,25,10;, + 3; 9,24,25;, + 3; 10,26,11;, + 3; 10,25,26;, + 3; 11,27,12;, + 3; 11,26,27;, + 3; 12,28,13;, + 3; 12,27,28;, + 3; 13,29,14;, + 3; 13,28,29;, + 3; 14,30,15;, + 3; 14,29,30;, + 3; 15,17,1;, + 3; 15,30,17;, + 3; 17,31,16;, + 3; 17,32,31;, + 3; 16,33,18;, + 3; 16,31,33;, + 3; 18,34,19;, + 3; 18,33,34;, + 3; 19,35,20;, + 3; 19,34,35;, + 3; 20,36,21;, + 3; 20,35,36;, + 3; 21,37,22;, + 3; 21,36,37;, + 3; 22,38,23;, + 3; 22,37,38;, + 3; 23,39,24;, + 3; 23,38,39;, + 3; 24,40,25;, + 3; 24,39,40;, + 3; 25,41,26;, + 3; 25,40,41;, + 3; 26,42,27;, + 3; 26,41,42;, + 3; 27,43,28;, + 3; 27,42,43;, + 3; 28,44,29;, + 3; 28,43,44;, + 3; 29,45,30;, + 3; 29,44,45;, + 3; 30,32,17;, + 3; 30,45,32;, + 3; 32,46,31;, + 3; 32,47,46;, + 3; 31,48,33;, + 3; 31,46,48;, + 3; 33,49,34;, + 3; 33,48,49;, + 3; 34,50,35;, + 3; 34,49,50;, + 3; 35,51,36;, + 3; 35,50,51;, + 3; 36,52,37;, + 3; 36,51,52;, + 3; 37,53,38;, + 3; 37,52,53;, + 3; 38,54,39;, + 3; 38,53,54;, + 3; 39,55,40;, + 3; 39,54,55;, + 3; 40,56,41;, + 3; 40,55,56;, + 3; 41,57,42;, + 3; 41,56,57;, + 3; 42,58,43;, + 3; 42,57,58;, + 3; 43,59,44;, + 3; 43,58,59;, + 3; 44,60,45;, + 3; 44,59,60;, + 3; 45,47,32;, + 3; 45,60,47;, + 3; 47,61,46;, + 3; 47,62,61;, + 3; 46,63,48;, + 3; 46,61,63;, + 3; 48,64,49;, + 3; 48,63,64;, + 3; 49,65,50;, + 3; 49,64,65;, + 3; 50,66,51;, + 3; 50,65,66;, + 3; 51,67,52;, + 3; 51,66,67;, + 3; 52,68,53;, + 3; 52,67,68;, + 3; 53,69,54;, + 3; 53,68,69;, + 3; 54,70,55;, + 3; 54,69,70;, + 3; 55,71,56;, + 3; 55,70,71;, + 3; 56,72,57;, + 3; 56,71,72;, + 3; 57,73,58;, + 3; 57,72,73;, + 3; 58,74,59;, + 3; 58,73,74;, + 3; 59,75,60;, + 3; 59,74,75;, + 3; 60,62,47;, + 3; 60,75,62;, + 3; 62,76,61;, + 3; 62,77,76;, + 3; 61,78,63;, + 3; 61,76,78;, + 3; 63,79,64;, + 3; 63,78,79;, + 3; 64,80,65;, + 3; 64,79,80;, + 3; 65,81,66;, + 3; 65,80,81;, + 3; 66,82,67;, + 3; 66,81,82;, + 3; 67,83,68;, + 3; 67,82,83;, + 3; 68,84,69;, + 3; 68,83,84;, + 3; 69,85,70;, + 3; 69,84,85;, + 3; 70,86,71;, + 3; 70,85,86;, + 3; 71,87,72;, + 3; 71,86,87;, + 3; 72,88,73;, + 3; 72,87,88;, + 3; 73,89,74;, + 3; 73,88,89;, + 3; 74,90,75;, + 3; 74,89,90;, + 3; 75,77,62;, + 3; 75,90,77;, + 3; 77,91,76;, + 3; 77,92,91;, + 3; 76,93,78;, + 3; 76,91,93;, + 3; 78,94,79;, + 3; 78,93,94;, + 3; 79,95,80;, + 3; 79,94,95;, + 3; 80,96,81;, + 3; 80,95,96;, + 3; 81,97,82;, + 3; 81,96,97;, + 3; 82,98,83;, + 3; 82,97,98;, + 3; 83,99,84;, + 3; 83,98,99;, + 3; 84,100,85;, + 3; 84,99,100;, + 3; 85,101,86;, + 3; 85,100,101;, + 3; 86,102,87;, + 3; 86,101,102;, + 3; 87,103,88;, + 3; 87,102,103;, + 3; 88,104,89;, + 3; 88,103,104;, + 3; 89,105,90;, + 3; 89,104,105;, + 3; 90,92,77;, + 3; 90,105,92;, + 3; 92,106,91;, + 3; 91,106,93;, + 3; 93,106,94;, + 3; 94,106,95;, + 3; 95,106,96;, + 3; 96,106,97;, + 3; 97,106,98;, + 3; 98,106,99;, + 3; 99,106,100;, + 3; 100,106,101;, + 3; 101,106,102;, + 3; 102,106,103;, + 3; 103,106,104;, + 3; 104,106,105;, + 3; 105,106,92;; + MeshMaterialList { + 1; + 210; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material blue_pure { + 1.000000;0.000000;1.000000;1.000000;; + 65.890000; + 0.000000;0.000000;0.500000;; + 0.000000;0.000000;0.000000;; + } + } + } + } + +} + diff --git a/_release/Games/wing_ring/media/plane.x b/_release/Games/wing_ring/media/plane.x new file mode 100644 index 0000000..747420a --- /dev/null +++ b/_release/Games/wing_ring/media/plane.x @@ -0,0 +1,1418 @@ +xof 0302txt 0064 +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template Coords2d { + + FLOAT u; + FLOAT v; +} + +template Matrix4x4 { + + array FLOAT matrix[16]; +} + +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template TextureFilename { + + STRING filename; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template MeshTextureCoords { + + DWORD nTextureCoords; + array Coords2d textureCoords[nTextureCoords]; +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template MeshNormals { + + DWORD nNormals; + array Vector normals[nNormals]; + DWORD nFaceNormals; + array MeshFace faceNormals[nFaceNormals]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template FrameTransformMatrix { + + Matrix4x4 frameMatrix; +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} +template FloatKeys { + <10DD46A9-775B-11cf-8F52-0040333594A3> + DWORD nValues; + array FLOAT values[nValues]; +} + +template TimedFloatKeys { + + DWORD time; + FloatKeys tfkeys; +} + +template AnimationKey { + <10DD46A8-775B-11cf-8F52-0040333594A3> + DWORD keyType; + DWORD nKeys; + array TimedFloatKeys keys[nKeys]; +} + +template AnimationOptions { + + DWORD openclosed; + DWORD positionquality; +} + +template Animation { + <3D82AB4F-62DA-11cf-AB39-0020AF71E433> + [...] +} + +template AnimationSet { + <3D82AB50-62DA-11cf-AB39-0020AF71E433> + [Animation] +} + +Header { + 1; + 0; + 1; +} + +Frame frm-F15 { + FrameTransformMatrix { +0.304800,0.000000,0.000000,0.000000, +0.000000,0.304800,0.000000,0.000000, +0.000000,0.000000,0.304800,0.000000, +0.000000,0.000000,0.000000,1.000000;; + } + Mesh F15 { + 1; + 0.0;0.0;0.0;; + 1; + 3;0,0,0;; + MeshNormals { + 1; + 1.0;1.0;1.0;; + 1; + 3;0,0,0;, + } + } +Frame frm-inlet { + FrameTransformMatrix { +1.000000,0.000000,0.000000,0.000000, +0.000000,1.000000,0.000000,0.000000, +0.000000,0.000000,1.000000,0.000000, +0.000000,0.000000,0.000000,1.000000;; + } +Mesh inlet { + 8; + 12.099869;4.325709;1.999057;, + 12.006177;3.856717;4.842721;, + 5.348263;-0.657312;5.100330;, + 5.348336;-0.598691;2.338355;, + 5.348531;-0.657312;-5.092522;, + 5.348459;-0.598691;-2.334954;, + 12.006431;3.856717;-4.812514;, + 12.099973;4.325709;-1.990891;; + + 4; + 3;5,6,7;, + 3;5,4,6;, + 3;1,2,3;, + 3;0,1,3;; + + MeshMaterialList { + 1; + 4; + 0, + 0, + 0, + 0; +Material { + 0.101961;0.101961;0.101961;1.000000;; + 50.000000; + 1.000000;1.000000;1.000000;; + 0.0; 0.0; 0.0;; + } +} + MeshNormals { + 8; + 0.575179;-0.813591;-0.081684;, + 0.568144;-0.821086;-0.049648;, + 0.568144;-0.821086;-0.049648;, + 0.568144;-0.821086;-0.049648;, + 0.568075;-0.821106;0.049995;, + 0.575076;-0.813594;0.082318;, + 0.575076;-0.813594;0.082318;, + 0.575076;-0.813594;0.082318;; + + 4; + 3;5,6,7;, + 3;5,4,6;, + 3;1,2,3;, + 3;0,1,3;; + } + MeshTextureCoords { + 8; + 0.000000;0.000000;, + 0.000000;0.000000;, + 0.000000;0.000000;, + 0.000000;0.000000;, + 0.000000;0.000000;, + 0.000000;0.000000;, + 0.000000;0.000000;, + 0.000000;0.000000;; + } +} +} +Frame frm-exh { + FrameTransformMatrix { +1.000000,0.000000,0.000000,0.000000, +0.000000,1.000000,0.000000,0.000000, +0.000000,0.000000,1.000000,0.000000, +0.000000,0.000000,0.000000,1.000000;; + } +Mesh exh { + 12; + -31.288088;3.752404;4.088579;, + -31.288019;2.664631;1.407307;, + -31.288019;0.489086;1.407307;, + -31.288088;-0.598691;4.088579;, + -31.288147;0.489086;6.266569;, + -31.288147;2.664631;6.266569;, + -31.287876;3.752404;-4.078512;, + -31.287817;2.664631;-6.258661;, + -31.287817;0.489086;-6.258661;, + -31.287876;-0.598691;-4.078512;, + -31.287945;0.489086;-1.428058;, + -31.287945;2.664631;-1.428058;; + + 8; + 3;9,10,11;, + 3;8,9,11;, + 3;7,8,11;, + 3;6,7,11;, + 3;3,4,5;, + 3;2,3,5;, + 3;1,2,5;, + 3;0,1,5;; + + MeshMaterialList { + 1; + 8; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0; +Material { + 0.066667;0.066667;0.066667;1.000000;; + 50.000000; + 1.000000;1.000000;1.000000;; + 0.0; 0.0; 0.0;; + } +} + MeshNormals { + 12; + -1.000000;0.000001;-0.000026;, + -1.000000;0.000000;-0.000026;, + -1.000000;-0.000000;-0.000026;, + -1.000000;-0.000000;-0.000027;, + -1.000000;-0.000000;-0.000027;, + -1.000000;-0.000000;-0.000027;, + -1.000000;-0.000001;-0.000026;, + -1.000000;-0.000000;-0.000026;, + -1.000000;0.000000;-0.000026;, + -1.000000;0.000000;-0.000026;, + -1.000000;0.000000;-0.000026;, + -1.000000;0.000000;-0.000026;; + + 8; + 3;9,10,11;, + 3;8,9,11;, + 3;7,8,11;, + 3;6,7,11;, + 3;3,4,5;, + 3;2,3,5;, + 3;1,2,5;, + 3;0,1,5;; + } + MeshTextureCoords { + 12; + 0.000000;0.000000;, + 0.000000;0.000000;, + 0.000000;0.000000;, + 0.000000;0.000000;, + 0.000000;0.000000;, + 0.000000;0.000000;, + 0.000000;0.000000;, + 0.000000;0.000000;, + 0.000000;0.000000;, + 0.000000;0.000000;, + 0.000000;0.000000;, + 0.000000;0.000000;; + } +} +} +Frame frm-stabs { + FrameTransformMatrix { +1.000000,0.000000,0.000000,0.000000, +0.000000,1.000000,0.000000,0.000000, +0.000000,0.000000,1.000000,0.000000, +0.000000,0.000000,0.000000,1.000000;; + } +Mesh stabs { + 16; + -30.949583;1.561756;-14.594022;, + -33.958309;1.561756;-12.779712;, + -24.446716;1.010774;-9.248965;, + -23.013073;1.469888;-5.917173;, + -25.427813;1.469888;-8.865252;, + -22.834187;1.056797;-5.985610;, + -32.449238;1.469888;-5.725188;, + -25.248926;1.056797;-8.938843;, + -22.834503;1.056797;5.983074;, + -25.249395;1.056797;8.937515;, + -24.447203;1.010774;9.247679;, + -30.950354;1.561756;14.592395;, + -33.958981;1.561756;12.777925;, + -32.449539;1.469888;5.722142;, + -25.428278;1.469888;8.863914;, + -23.013384;1.469888;5.914624;; + + 24; + 3;13,14,15;, + 3;13,12,14;, + 3;12,11,14;, + 3;11,10,14;, + 3;11,9,10;, + 3;11,12,9;, + 3;12,13,9;, + 3;9,14,10;, + 3;8,13,15;, + 3;14,8,15;, + 3;14,9,8;, + 3;9,13,8;, + 3;5,6,7;, + 3;5,7,4;, + 3;3,5,4;, + 3;3,6,5;, + 3;2,4,7;, + 3;7,6,1;, + 3;7,1,0;, + 3;2,7,0;, + 3;4,2,0;, + 3;4,0,1;, + 3;4,1,6;, + 3;3,4,6;; + + MeshMaterialList { + 1; + 24; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0; +Material { + 0.700000;0.700000;0.700000;1.000000;; + 50.000000; + 1.000000;1.000000;1.000000;; + 0.0; 0.0; 0.0;; + TextureFilename { + "F15.bmp"; + } + } +} + MeshNormals { + 16; + -0.048329;-0.998424;-0.026057;, + -0.048356;-0.998629;-0.007447;, + 0.360047;-0.010274;0.932877;, + 0.707569;0.404772;-0.579226;, + 0.707033;0.406814;-0.578450;, + -0.047173;-0.998616;0.013346;, + -0.047173;-0.998616;0.013346;, + -0.047173;-0.998616;0.013346;, + 0.020148;-0.154942;-0.987718;, + -0.055144;-0.998089;0.024229;, + 0.185769;0.958905;0.164976;, + 0.083677;0.990231;0.065898;, + 0.030237;0.998078;0.016769;, + 0.028332;0.998104;0.020440;, + 0.028332;0.998104;0.020440;, + 0.028332;0.998104;0.020440;; + + 24; + 3;13,14,15;, + 3;13,12,14;, + 3;12,11,14;, + 3;11,10,14;, + 3;11,9,10;, + 3;11,12,9;, + 3;12,13,9;, + 3;9,14,10;, + 3;8,13,15;, + 3;14,8,15;, + 3;14,9,8;, + 3;9,13,8;, + 3;5,6,7;, + 3;5,7,4;, + 3;3,5,4;, + 3;3,6,5;, + 3;2,4,7;, + 3;7,6,1;, + 3;7,1,0;, + 3;2,7,0;, + 3;4,2,0;, + 3;4,0,1;, + 3;4,1,6;, + 3;3,4,6;; + } + MeshTextureCoords { + 16; + 0.981473;0.307085;, + 0.961903;0.347441;, + 0.923819;0.219860;, + 0.887881;0.200630;, + 0.919680;0.233020;, + 0.888619;0.198231;, + 0.885810;0.327200;, + 0.920474;0.230620;, + 0.759520;0.198235;, + 0.727652;0.230627;, + 0.724307;0.219867;, + 0.666656;0.307095;, + 0.686228;0.347450;, + 0.762334;0.327204;, + 0.728446;0.233026;, + 0.760258;0.200635;; + } +} +} +Frame frm-wings { + FrameTransformMatrix { +1.000000,0.000000,0.000000,0.000000, +0.000000,1.000000,0.000000,0.000000, +0.000000,0.000000,1.000000,0.000000, +0.000000,0.000000,0.000000,1.000000;; + } +Mesh wings { + 12; + -19.649853;2.700476;-13.333821;, + -20.801315;2.700476;-19.689148;, + -16.234100;2.700476;-22.228523;, + -0.259331;2.700476;-6.195732;, + -7.363438;3.209225;-6.026974;, + -19.640211;2.700476;-5.735341;, + -19.640511;2.700476;5.732968;, + -19.650555;2.700476;13.332788;, + -20.802351;2.700476;19.688053;, + -7.363756;3.209225;6.025248;, + -16.235271;2.700476;22.227669;, + -0.259657;2.700476;6.194380;; + + 16; + 3;9,10,11;, + 3;9,8,10;, + 3;9,7,8;, + 3;9,6,7;, + 3;8,7,11;, + 3;7,6,11;, + 3;10,8,11;, + 3;6,9,11;, + 3;3,4,5;, + 3;3,1,2;, + 3;3,5,0;, + 3;3,0,1;, + 3;0,5,4;, + 3;1,0,4;, + 3;2,1,4;, + 3;3,2,4;; + + MeshMaterialList { + 1; + 16; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0; +Material { + 0.700000;0.700000;0.700000;1.000000;; + 50.000000; + 1.000000;1.000000;1.000000;; + 0.0; 0.0; 0.0;; + TextureFilename { + "F15.bmp"; + } + } +} + MeshNormals { + 12; + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.000000;-1.000000;0.000000;, + 0.023748;-0.000001;0.999718;, + 0.023748;-0.000001;0.999718;, + 0.023748;-0.000001;0.999718;, + -0.031059;0.999304;0.005664;, + -0.027217;0.999431;0.008293;, + -0.003207;0.999258;0.025291;, + 0.029957;0.997804;0.045802;, + 0.029957;0.997804;0.045802;, + 0.029957;0.997804;0.045802;; + + 16; + 3;9,10,11;, + 3;9,8,10;, + 3;9,7,8;, + 3;9,6,7;, + 3;8,7,11;, + 3;7,6,11;, + 3;10,8,11;, + 3;6,9,11;, + 3;3,4,5;, + 3;3,1,2;, + 3;3,5,0;, + 3;3,0,1;, + 3;0,5,4;, + 3;1,0,4;, + 3;2,1,4;, + 3;3,2,4;; + } + MeshTextureCoords { + 12; + 0.868300;0.575271;, + 0.935157;0.587735;, + 0.961871;0.538297;, + 0.793208;0.365379;, + 0.791432;0.442277;, + 0.788364;0.575166;, + 0.667719;0.575169;, + 0.587769;0.575278;, + 0.520912;0.587746;, + 0.664644;0.442281;, + 0.494196;0.538310;, + 0.662865;0.365383;; + } +} +} +Frame frm-tail { + FrameTransformMatrix { +1.000000,0.000000,0.000000,0.000000, +0.000000,1.000000,0.000000,0.000000, +0.000000,0.000000,1.000000,0.000000, +0.000000,0.000000,0.000000,1.000000;; + } +Mesh tail { + 12; + -20.247875;2.824921;6.227153;, + -20.247543;2.824921;-6.383383;, + -19.187201;2.824921;-6.083104;, + -26.212044;13.845823;-6.083289;, + -20.247559;2.824921;-5.782882;, + -29.046829;13.845823;-6.083364;, + -28.689201;2.608375;-6.083354;, + -28.689518;2.608375;5.926680;, + -29.043865;13.845823;5.926671;, + -20.247860;2.824921;5.626651;, + -26.212360;13.845823;5.926745;, + -19.187515;2.824921;5.926930;; + + 16; + 3;9,10,11;, + 3;9,8,10;, + 3;9,7,8;, + 3;4,5,6;, + 3;4,3,5;, + 3;4,2,3;, + 3;2,4,1;, + 3;4,6,1;, + 3;11,0,9;, + 3;0,7,9;, + 3;0,11,10;, + 3;0,10,8;, + 3;0,8,7;, + 3;1,6,5;, + 3;1,5,3;, + 3;1,3,2;; + + MeshMaterialList { + 1; + 16; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0; +Material { + 0.700000;0.700000;0.700000;1.000000;; + 50.000000; + 1.000000;1.000000;1.000000;; + 0.0; 0.0; 0.0;; + TextureFilename { + "F15.bmp"; + } + } +} + MeshNormals { + 12; + 0.008549;-0.999945;0.000000;, + 0.008549;-0.999945;0.000000;, + 0.160938;0.112678;0.976102;, + 0.065540;0.059996;0.993358;, + 0.008419;0.026162;0.997936;, + 0.008419;0.026162;0.997936;, + 0.008419;0.026162;0.997936;, + 0.008471;0.026168;-0.997935;, + 0.065592;0.059999;-0.993355;, + 0.160990;0.112680;-0.976094;, + 0.160990;0.112680;-0.976094;, + 0.160990;0.112680;-0.976094;; + + 16; + 3;9,10,11;, + 3;9,8,10;, + 3;9,7,8;, + 3;4,5,6;, + 3;4,3,5;, + 3;4,2,3;, + 3;2,4,1;, + 3;4,6,1;, + 3;11,0,9;, + 3;0,7,9;, + 3;0,11,10;, + 3;0,10,8;, + 3;0,8,7;, + 3;1,6,5;, + 3;1,5,3;, + 3;1,3,2;; + } + MeshTextureCoords { + 12; + 0.603468;0.331857;, + 0.603472;0.331857;, + 0.615234;0.331857;, + 0.537306;0.222638;, + 0.603472;0.331857;, + 0.505859;0.222638;, + 0.509827;0.334003;, + 0.509823;0.334003;, + 0.505892;0.222638;, + 0.603468;0.331857;, + 0.537303;0.222638;, + 0.615231;0.331857;; + } +} +} +Frame frm-body { + FrameTransformMatrix { +1.000000,0.000000,0.000000,0.000000, +0.000000,1.000000,0.000000,0.000000, +0.000000,0.000000,1.000000,0.000000, +0.000000,0.000000,0.000000,1.000000;; + } +Mesh body { + 67; + -31.288147;0.489086;6.266569;, + -31.288147;2.664631;6.266569;, + -31.288088;3.752404;4.088579;, + -31.288088;-0.598691;4.088579;, + 1.343117;-0.598691;4.089247;, + 1.343060;-0.246948;6.267254;, + 1.343117;4.237772;4.089247;, + 1.343060;3.270481;6.267254;, + 5.348263;-0.657312;5.100330;, + 5.348263;3.798095;5.100330;, + 12.006177;3.856717;4.842721;, + 1.343164;4.589515;2.301732;, + 12.509463;3.891699;1.825549;, + 24.062218;2.770975;1.352867;, + 24.062235;3.511497;0.673576;, + 20.005505;1.338041;1.805621;, + 20.005529;0.324635;0.899897;, + 24.062218;1.456305;1.352867;, + 24.062235;0.551352;0.673576;, + 18.273159;4.137193;0.946547;, + 20.005529;4.024816;0.899897;, + 15.674583;3.743519;1.825632;, + 20.005505;3.222172;1.805621;, + 18.273211;4.137193;-0.958287;, + 24.062252;0.117535;-0.005716;, + 24.062271;0.551352;-0.685008;, + 20.005575;4.024816;-0.911546;, + 20.005552;4.335424;-0.005823;, + 24.062252;3.759983;-0.005716;, + 24.062271;3.511497;-0.685008;, + 24.062288;1.456305;-1.364299;, + 24.062288;2.770975;-1.364299;, + 31.115095;1.458217;-0.005530;, + 12.509560;3.891699;-1.837592;, + 15.674681;3.743519;-1.837509;, + 20.005600;3.222172;-1.817266;, + 20.005552;-0.217635;-0.005823;, + 20.005575;0.324635;-0.911546;, + 20.005600;1.338041;-1.817266;, + 12.006431;3.856717;-4.812514;, + 5.348397;-0.305569;-0.007117;, + 5.348397;4.961547;-0.007117;, + 5.348531;3.798095;-5.092522;, + 5.348531;-0.657312;-5.092522;, + 1.343164;-0.305569;2.301732;, + -31.288019;0.489086;1.407307;, + -31.288019;2.664631;1.407307;, + -31.287981;2.410154;-0.010377;, + 1.343225;4.433934;-0.009706;, + 1.343286;-0.305569;-2.321147;, + -31.287945;0.489086;-1.428058;, + -31.287945;2.664631;-1.428058;, + 1.343286;4.589515;-2.321147;, + 1.343332;4.237772;-4.077841;, + -31.287876;3.752404;-4.078512;, + -31.287817;2.664631;-6.258661;, + 1.343390;3.270481;-6.257977;, + 1.343332;-0.598691;-4.077841;, + -31.287876;-0.598691;-4.078512;, + -31.287817;0.489086;-6.258661;, + 1.343390;-0.246948;-6.257977;, + 6.675673;0.301560;2.020957;, + 12.099869;4.325709;1.999057;, + 5.348336;-0.598691;2.338355;, + 5.348459;-0.598691;-2.334954;, + 12.099973;4.325709;-1.990891;, + 6.675779;0.301560;-2.013079;; + + 112; + 3;64,65,66;, + 3;61,62,63;, + 3;58,59,60;, + 3;57,58,60;, + 3;59,55,56;, + 3;60,59,56;, + 3;56,55,54;, + 3;56,54,53;, + 3;54,51,52;, + 3;53,54,52;, + 3;49,50,58;, + 3;49,58,57;, + 3;52,47,48;, + 3;52,51,47;, + 3;50,45,46;, + 3;47,51,50;, + 3;46,47,50;, + 3;49,44,45;, + 3;50,49,45;, + 3;49,57,64;, + 3;49,64,66;, + 3;57,60,43;, + 3;57,43,64;, + 3;56,42,43;, + 3;60,56,43;, + 3;53,52,42;, + 3;56,53,42;, + 3;52,48,41;, + 3;44,40,61;, + 3;44,49,40;, + 3;49,66,40;, + 3;52,66,65;, + 3;43,42,39;, + 3;52,65,39;, + 3;42,52,39;, + 3;37,66,38;, + 3;37,36,66;, + 3;36,40,66;, + 3;35,38,66;, + 3;34,35,66;, + 3;33,34,66;, + 3;52,33,66;, + 3;52,41,33;, + 3;30,31,32;, + 3;38,35,31;, + 3;30,38,31;, + 3;31,29,32;, + 3;29,28,32;, + 3;26,27,28;, + 3;29,26,28;, + 3;29,31,35;, + 3;29,35,26;, + 3;24,25,32;, + 3;25,30,32;, + 3;25,37,38;, + 3;25,38,30;, + 3;24,36,37;, + 3;25,24,37;, + 3;34,26,35;, + 3;34,23,26;, + 3;23,27,26;, + 3;20,21,22;, + 3;20,19,21;, + 3;20,27,19;, + 3;17,18,32;, + 3;18,24,32;, + 3;16,36,24;, + 3;18,16,24;, + 3;18,17,15;, + 3;18,15,16;, + 3;28,14,32;, + 3;14,13,32;, + 3;14,20,22;, + 3;14,22,13;, + 3;28,27,20;, + 3;14,28,20;, + 3;13,17,32;, + 3;22,15,17;, + 3;13,22,17;, + 3;16,61,36;, + 3;16,15,61;, + 3;61,40,36;, + 3;41,11,12;, + 3;11,61,15;, + 3;12,11,15;, + 3;21,12,15;, + 3;22,21,15;, + 3;11,9,10;, + 3;11,10,62;, + 3;9,8,10;, + 3;61,11,62;, + 3;48,11,41;, + 3;6,7,9;, + 3;6,9,11;, + 3;5,8,9;, + 3;7,5,9;, + 3;4,63,8;, + 3;5,4,8;, + 3;44,61,63;, + 3;4,44,63;, + 3;11,48,47;, + 3;46,11,47;, + 3;44,4,3;, + 3;45,44,3;, + 3;2,6,11;, + 3;2,11,46;, + 3;7,6,2;, + 3;1,7,2;, + 3;5,7,1;, + 3;0,5,1;, + 3;3,4,5;, + 3;3,5,0;; + + MeshMaterialList { + 1; + 112; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0; +Material { + 0.700000;0.700000;0.700000;1.000000;; + 50.000000; + 1.000000;1.000000;1.000000;; + 0.0; 0.0; 0.0;; + TextureFilename { + "F15.bmp"; + } + } +} + MeshNormals { + 67; + 0.047075;0.000000;0.996657;, + -0.017003;0.928665;0.347934;, + -0.010898;0.978693;0.175277;, + -0.011098;-0.998656;-0.023379;, + -0.033104;-0.997230;-0.009175;, + 0.167455;0.000000;0.985559;, + 0.005349;0.939238;0.337250;, + 0.005349;0.939238;0.337250;, + 0.133253;0.000000;0.988653;, + 0.006257;0.977145;0.184873;, + 0.006257;0.977145;0.184873;, + 0.008478;0.985331;0.108603;, + 0.008478;0.985331;0.108603;, + 0.461460;0.423657;0.494396;, + 0.464114;0.632302;0.189247;, + 0.104891;-0.403381;0.871611;, + 0.071590;-0.875708;0.381020;, + 0.416604;-0.282418;0.548977;, + 0.416604;-0.282418;0.548977;, + 0.074308;0.730120;0.612471;, + 0.087646;0.563876;0.766799;, + 0.087646;0.563876;0.766799;, + 0.087646;0.563876;0.766799;, + 0.074748;0.736399;-0.609340;, + 0.403703;-0.480165;-0.405431;, + 0.403703;-0.480165;-0.405431;, + 0.137875;0.947058;-0.162214;, + 0.137875;0.947058;-0.162214;, + 0.464124;0.632302;-0.189223;, + 0.456495;0.399804;-0.503528;, + 0.438882;0.029109;-0.626997;, + 0.438882;0.029109;-0.626997;, + 0.438882;0.029109;-0.626997;, + 0.038215;-0.014151;-0.916892;, + 0.061834;0.113540;-0.888177;, + 0.074699;-0.151223;-0.903219;, + 0.052525;-0.763756;-0.492402;, + 0.066129;-0.544772;-0.804142;, + 0.066129;-0.544772;-0.804142;, + 0.135160;0.000000;-0.988467;, + 0.037426;-0.926501;0.177956;, + -0.047516;0.997879;-0.015825;, + 0.168194;0.000000;-0.985425;, + -0.028244;-0.987539;-0.106790;, + -0.006539;-0.995195;-0.046083;, + -1.000000;0.000000;-0.000026;, + -1.000000;0.000000;-0.000026;, + -0.056831;0.997469;-0.015851;, + -0.056831;0.997469;-0.015851;, + -0.009502;-0.992719;0.083129;, + -0.009502;-0.992719;0.083129;, + -0.029561;0.980514;0.018215;, + -0.029561;0.980514;0.018215;, + -0.009189;0.948237;-0.299771;, + -0.017008;0.928789;-0.347632;, + 0.047055;0.000000;-0.996664;, + 0.047055;0.000000;-0.996664;, + -0.020374;-0.988455;-0.089120;, + -0.017970;-0.953461;-0.240045;, + -0.017970;-0.953461;-0.240045;, + -0.017970;-0.953461;-0.240045;, + 0.582784;-0.784385;0.212373;, + 0.582784;-0.784385;0.212373;, + 0.582784;-0.784385;0.212373;, + 0.583151;-0.784880;-0.209518;, + 0.583151;-0.784880;-0.209518;, + 0.583151;-0.784880;-0.209518;; + + 112; + 3;64,65,66;, + 3;61,62,63;, + 3;58,59,60;, + 3;57,58,60;, + 3;59,55,56;, + 3;60,59,56;, + 3;56,55,54;, + 3;56,54,53;, + 3;54,51,52;, + 3;53,54,52;, + 3;49,50,58;, + 3;49,58,57;, + 3;52,47,48;, + 3;52,51,47;, + 3;50,45,46;, + 3;47,51,50;, + 3;46,47,50;, + 3;49,44,45;, + 3;50,49,45;, + 3;49,57,64;, + 3;49,64,66;, + 3;57,60,43;, + 3;57,43,64;, + 3;56,42,43;, + 3;60,56,43;, + 3;53,52,42;, + 3;56,53,42;, + 3;52,48,41;, + 3;44,40,61;, + 3;44,49,40;, + 3;49,66,40;, + 3;52,66,65;, + 3;43,42,39;, + 3;52,65,39;, + 3;42,52,39;, + 3;37,66,38;, + 3;37,36,66;, + 3;36,40,66;, + 3;35,38,66;, + 3;34,35,66;, + 3;33,34,66;, + 3;52,33,66;, + 3;52,41,33;, + 3;30,31,32;, + 3;38,35,31;, + 3;30,38,31;, + 3;31,29,32;, + 3;29,28,32;, + 3;26,27,28;, + 3;29,26,28;, + 3;29,31,35;, + 3;29,35,26;, + 3;24,25,32;, + 3;25,30,32;, + 3;25,37,38;, + 3;25,38,30;, + 3;24,36,37;, + 3;25,24,37;, + 3;34,26,35;, + 3;34,23,26;, + 3;23,27,26;, + 3;20,21,22;, + 3;20,19,21;, + 3;20,27,19;, + 3;17,18,32;, + 3;18,24,32;, + 3;16,36,24;, + 3;18,16,24;, + 3;18,17,15;, + 3;18,15,16;, + 3;28,14,32;, + 3;14,13,32;, + 3;14,20,22;, + 3;14,22,13;, + 3;28,27,20;, + 3;14,28,20;, + 3;13,17,32;, + 3;22,15,17;, + 3;13,22,17;, + 3;16,61,36;, + 3;16,15,61;, + 3;61,40,36;, + 3;41,11,12;, + 3;11,61,15;, + 3;12,11,15;, + 3;21,12,15;, + 3;22,21,15;, + 3;11,9,10;, + 3;11,10,62;, + 3;9,8,10;, + 3;61,11,62;, + 3;48,11,41;, + 3;6,7,9;, + 3;6,9,11;, + 3;5,8,9;, + 3;7,5,9;, + 3;4,63,8;, + 3;5,4,8;, + 3;44,61,63;, + 3;4,44,63;, + 3;11,48,47;, + 3;46,11,47;, + 3;44,4,3;, + 3;45,44,3;, + 3;2,6,11;, + 3;2,11,46;, + 3;7,6,2;, + 3;1,7,2;, + 3;5,7,1;, + 3;0,5,1;, + 3;3,4,5;, + 3;3,5,0;; + } + MeshTextureCoords { + 67; + 0.259766;0.182881;, + 0.259766;0.151876;, + 0.259766;0.136373;, + 0.259766;0.198383;, + 0.645820;0.198383;, + 0.645819;0.193370;, + 0.645820;0.129456;, + 0.645819;0.143241;, + 0.693204;0.199219;, + 0.693204;0.135722;, + 0.771973;0.134886;, + 0.645821;0.124443;, + 0.777927;0.134388;, + 0.914606;0.150360;, + 0.914606;0.139806;, + 0.866611;0.170782;, + 0.866612;0.185224;, + 0.914606;0.169096;, + 0.914606;0.181993;, + 0.846116;0.130889;, + 0.866612;0.132491;, + 0.815373;0.136500;, + 0.866611;0.143930;, + 0.846117;0.130889;, + 0.914606;0.188176;, + 0.914606;0.181993;, + 0.866612;0.132491;, + 0.866612;0.128064;, + 0.914606;0.136265;, + 0.914606;0.139806;, + 0.914606;0.169096;, + 0.914606;0.150360;, + 0.998047;0.169069;, + 0.777928;0.134388;, + 0.815374;0.136500;, + 0.866612;0.143930;, + 0.866612;0.192953;, + 0.866612;0.185224;, + 0.866612;0.170782;, + 0.771976;0.134886;, + 0.693206;0.194206;, + 0.693206;0.119141;, + 0.693207;0.135722;, + 0.693207;0.199219;, + 0.645821;0.194206;, + 0.259767;0.182881;, + 0.259767;0.151876;, + 0.259768;0.155502;, + 0.645821;0.126660;, + 0.645822;0.194206;, + 0.259768;0.182881;, + 0.259768;0.151876;, + 0.645822;0.124443;, + 0.645823;0.129456;, + 0.259769;0.136373;, + 0.259770;0.151876;, + 0.645823;0.143241;, + 0.645823;0.198383;, + 0.259769;0.198383;, + 0.259770;0.182881;, + 0.645823;0.193370;, + 0.708909;0.185553;, + 0.773081;0.128202;, + 0.693205;0.198383;, + 0.693207;0.198383;, + 0.773082;0.128202;, + 0.708910;0.185553;; + } +} +} +Frame frm-gf15 { + FrameTransformMatrix { +1.000000,0.000000,0.000000,0.000000, +0.000000,1.000000,0.000000,0.000000, +0.000000,0.000000,1.000000,0.000000, +0.000000,0.000000,0.000000,1.000000;; + } +Mesh gf15 { + 14; + 12.509463;3.891699;1.825549;, + 12.509480;5.667232;1.184501;, + 15.674583;3.743519;1.825632;, + 18.273159;4.137193;0.946547;, + 15.674601;5.519052;1.184584;, + 18.273211;4.137193;-0.958287;, + 20.005552;4.335424;-0.005823;, + 5.348397;4.961547;-0.007117;, + 12.509511;6.471146;-0.006020;, + 15.674632;6.322966;-0.005936;, + 12.509560;3.891699;-1.837592;, + 12.509542;5.667232;-1.196544;, + 15.674663;5.519052;-1.196460;, + 15.674681;3.743519;-1.837509;; + + 18; + 3;11,12,13;, + 3;10,11,13;, + 3;11,8,9;, + 3;11,9,12;, + 3;8,11,7;, + 3;11,10,7;, + 3;6,12,9;, + 3;6,5,12;, + 3;5,13,12;, + 3;4,6,9;, + 3;4,3,6;, + 3;4,2,3;, + 3;0,1,7;, + 3;1,8,7;, + 3;1,4,9;, + 3;8,1,9;, + 3;0,2,4;, + 3;1,0,4;; + + MeshMaterialList { + 1; + 18; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0; +Material { + 0.700000;0.700000;0.700000;1.000000;; + 50.000000; + 1.000000;1.000000;1.000000;; + 0.0; 0.0; 0.0;; + TextureFilename { + "F15.bmp"; + } + } +} + MeshNormals { + 14; + -0.098758;0.535580;0.819888;, + -0.098758;0.535580;0.819888;, + 0.210281;0.442490;0.862729;, + 0.284795;0.552650;0.769439;, + 0.230009;0.679810;0.672817;, + 0.295838;0.565511;-0.757415;, + 0.241047;0.692671;-0.660795;, + -0.099667;0.681530;-0.707046;, + 0.011740;0.753551;-0.633381;, + 0.011740;0.753551;-0.633381;, + -0.010777;0.430077;-0.887132;, + 0.089669;0.514404;-0.833780;, + 0.089669;0.514404;-0.833780;, + 0.089669;0.514404;-0.833780;; + + 18; + 3;11,12,13;, + 3;10,11,13;, + 3;11,8,9;, + 3;11,9,12;, + 3;8,11,7;, + 3;11,10,7;, + 3;6,12,9;, + 3;6,5,12;, + 3;5,13,12;, + 3;4,6,9;, + 3;4,3,6;, + 3;4,2,3;, + 3;0,1,7;, + 3;1,8,7;, + 3;1,4,9;, + 3;8,1,9;, + 3;0,2,4;, + 3;1,0,4;; + } + MeshTextureCoords { + 14; + 0.721378;0.070816;, + 0.721379;0.045833;, + 0.763977;0.072901;, + 0.798950;0.067362;, + 0.763977;0.047918;, + 0.798951;0.067362;, + 0.822266;0.064573;, + 0.625000;0.055762;, + 0.721379;0.034521;, + 0.763977;0.036606;, + 0.721380;0.070816;, + 0.721379;0.045833;, + 0.763978;0.047918;, + 0.763978;0.072901;; + } +} +} +} diff --git a/_release/Games/wing_ring/media/ring.bmp b/_release/Games/wing_ring/media/ring.bmp new file mode 100644 index 0000000..5346436 Binary files /dev/null and b/_release/Games/wing_ring/media/ring.bmp differ diff --git a/_release/Games/wing_ring/media/sand.bmp b/_release/Games/wing_ring/media/sand.bmp new file mode 100644 index 0000000..f1547da Binary files /dev/null and b/_release/Games/wing_ring/media/sand.bmp differ diff --git a/_release/Games/wing_ring/media/sphinx.x b/_release/Games/wing_ring/media/sphinx.x new file mode 100644 index 0000000..3c5df1f --- /dev/null +++ b/_release/Games/wing_ring/media/sphinx.x @@ -0,0 +1,1143 @@ +xof 0302txt 0064 +// DV8159 Copyright Viewpoint Datalabs Intl., Inc. +// www.viewpoint.com, 800-643-8303, 801-229-3333 +// for Microsoft Corporation DirectX format only +// see license agreement for description of rights + +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} + +template AnimationKey { + <10DD46A8-775B-11cf-8F52-0040333594A3> + DWORD keyType; + DWORD nKeys; + array TimedFloatKeys keys[nKeys]; +} + +template Animation { + <3D82AB4F-62DA-11cf-AB39-0020AF71E433> + [...] +} + + template AnimationSet { + <3D82AB50-62DA-11cf-AB39-0020AF71E433> + [Animation] +} + + +Header { + 1; + 0; + 1; +} + +Frame Root{ + Frame sphinx { + Mesh mesh-sphinx { + 276; + 64.783600;41.056801;-75.515297;, + 41.571301;80.251297;-75.408401;, + 29.968700;62.476601;-76.384499;, + 29.934200;69.542099;-79.824203;, + 26.151699;70.348099;-76.564003;, + 21.822500;49.385601;-84.522499;, + 17.420099;36.392601;-87.683197;, + 20.365200;43.460098;-76.770798;, + 51.176701;-71.173798;-247.462006;, + 73.077003;-71.173798;-239.973999;, + 64.612503;-60.309502;-208.000000;, + 37.740799;-60.309502;-212.667999;, + 28.628599;-89.402100;-233.970993;, + 22.018801;-90.989601;-223.503998;, + 77.676399;-89.403801;-243.447998;, + 52.862499;-89.403801;-251.039993;, + 56.199402;11.912100;-75.813103;, + 23.448200;12.620500;-76.575500;, + 61.715401;1.771190;-82.135597;, + 4.308310;62.162498;-110.511002;, + 10.782700;52.581299;-113.024002;, + 11.257200;60.479301;-108.619003;, + 18.497900;48.921398;-107.005997;, + 19.231199;60.955002;-100.671997;, + 16.833900;60.291100;-105.583000;, + 3.224080;72.660103;-109.413002;, + 3.456420;88.563103;-100.815002;, + 3.224080;77.831398;-112.371002;, + 9.944010;42.935101;-113.594002;, + 11.113700;44.659100;-112.515999;, + 2.997860;54.962399;-113.480003;, + 6.572370;45.478600;-116.957001;, + 26.990499;88.185303;-76.222900;, + 57.904900;1.770560;-32.442299;, + 61.707401;-6.554780;-100.963997;, + 63.979900;-11.954700;-107.571999;, + 57.904301;-6.554890;0.466371;, + 57.809399;-89.394096;231.856995;, + 96.023499;-89.393600;114.227997;, + 54.537899;-89.403801;73.191498;, + 38.080601;-89.393600;243.729004;, + 76.449303;-89.403801;-86.124702;, + 74.320602;-65.899696;-129.778000;, + 7.259100;29.194401;-98.825600;, + 0.000000;13.904900;-99.878098;, + 16.275400;13.115000;-89.391899;, + 5.301070;62.679100;-109.054001;, + 8.991900;69.844101;-109.130997;, + 5.197770;64.777397;-109.053001;, + 12.692800;69.646400;-107.286003;, + -11.257200;60.479301;-108.619003;, + -5.301070;62.679100;-109.054001;, + -8.991900;69.844101;-109.130997;, + -12.692800;69.646400;-107.286003;, + -5.197770;64.777397;-109.053001;, + -20.365200;43.460098;-76.770798;, + -23.448200;12.620500;-76.575500;, + -16.275400;13.115000;-89.391899;, + -17.420099;36.392601;-87.683197;, + -7.259100;29.194401;-98.825600;, + -64.612503;-60.309502;-208.000000;, + -74.320602;-65.899696;-129.778000;, + -73.077003;-71.173798;-239.973999;, + -77.676399;-89.403801;-243.447998;, + -76.449303;-89.403801;-86.124702;, + -22.018801;-90.989601;-223.503998;, + -38.080601;-89.393600;243.729004;, + -54.537899;-89.403801;73.191498;, + -96.023499;-89.393600;114.227997;, + -57.809399;-89.394096;231.856995;, + -57.904301;-6.554890;0.466371;, + -63.979900;-11.954700;-107.571999;, + -61.707401;-6.554780;-100.963997;, + -56.199402;11.912100;-75.813103;, + -57.904900;1.770560;-32.442299;, + -61.715401;1.771190;-82.135597;, + -41.571301;80.251297;-75.408401;, + -26.151699;70.348099;-76.564003;, + -26.990499;88.185303;-76.222900;, + -9.944010;42.935101;-113.594002;, + -6.572370;45.478600;-116.957001;, + -2.997860;54.962399;-113.480003;, + -11.113700;44.659100;-112.515999;, + -3.224080;77.831398;-112.371002;, + -3.456420;88.563103;-100.815002;, + -3.224080;72.660103;-109.413002;, + -16.833900;60.291100;-105.583000;, + -19.231199;60.955002;-100.671997;, + -18.497900;48.921398;-107.005997;, + -10.782700;52.581299;-113.024002;, + -4.308310;62.162498;-110.511002;, + -52.862499;-89.403801;-251.039993;, + -28.628599;-89.402100;-233.970993;, + -51.176701;-71.173798;-247.462006;, + -37.740799;-60.309502;-212.667999;, + -21.822500;49.385601;-84.522499;, + -29.968700;62.476601;-76.384499;, + -29.934200;69.542099;-79.824203;, + -64.783600;41.056801;-75.515297;, + 54.537899;-89.403801;50.012501;, + -54.537899;-89.403801;50.012501;, + 0.000000;46.383499;-118.857002;, + 0.000000;90.989601;-103.429001;, + 50.758400;-66.146896;77.432899;, + 49.498501;-42.261398;46.664700;, + 71.863998;-43.280499;-121.953003;, + 29.276100;-71.173798;-245.673004;, + 29.276100;-89.403801;-249.356003;, + 29.276100;-76.221100;-232.498001;, + 22.499300;-73.135300;-222.197998;, + 30.660900;-66.050797;-137.401001;, + 31.826700;-89.403801;-143.789993;, + -29.275999;-43.159401;-129.811996;, + -30.660900;-66.050797;-137.401001;, + -31.826700;-89.403801;-143.789993;, + 29.275999;-43.159401;-129.811996;, + 35.002998;-48.257301;251.039993;, + 45.319500;-51.636398;238.337006;, + 99.998901;-89.386703;209.432999;, + 97.066002;-45.886002;215.106003;, + 92.113602;-54.067402;111.629997;, + 90.143501;-89.398697;70.056801;, + 90.141296;-66.099197;76.808800;, + 66.253403;-41.363300;-114.181000;, + 67.256699;-43.159401;3.638570;, + 62.146198;-41.363300;0.466371;, + 25.287100;49.794701;-76.834999;, + 64.633499;33.507301;-75.408401;, + 60.048901;27.448000;-75.408401;, + 27.626200;51.391399;-76.854103;, + 5.985170;41.231400;-116.492996;, + 6.188310;39.063702;-115.317001;, + 12.134000;41.812801;-111.209999;, + 5.511190;43.376598;-115.882004;, + 0.000000;43.514500;-117.133003;, + 0.000000;40.787102;-117.973000;, + 15.769500;37.827702;-107.739998;, + 7.817830;32.369499;-114.861000;, + 0.000000;31.142599;-116.941002;, + 0.000000;27.617001;-102.531998;, + 49.498501;-57.006599;120.031998;, + 84.360703;-22.878099;124.517998;, + 83.121002;-26.728399;194.921005;, + 38.529499;-25.855900;215.279007;, + 45.877201;-22.525101;133.869003;, + 27.811501;-19.172701;225.026001;, + 27.518101;-16.374001;116.683998;, + -35.002998;-48.257301;251.039993;, + -27.811501;-19.172701;225.026001;, + -27.518101;-16.374001;116.683998;, + 27.518101;-9.283290;43.316299;, + 25.205200;-6.554840;-108.101997;, + 26.128500;-11.954700;-114.718002;, + 0.000000;-6.554840;-108.912003;, + -26.128500;-11.954700;-114.718002;, + 62.398602;-53.163700;-127.496002;, + 41.172001;-53.222198;-131.192993;, + 27.051701;-41.363300;-121.334999;, + -27.051701;-41.363300;-121.334999;, + 22.454500;1.783410;-103.432999;, + 0.000000;1.789160;-108.912003;, + 34.699501;1.770400;-13.239800;, + 23.489100;11.844700;-19.756399;, + 49.276699;11.844900;-34.592300;, + -23.489100;11.844700;-19.756399;, + -26.210899;27.174700;-18.855499;, + 26.210899;27.174700;-18.855499;, + 0.000000;90.677803;-77.399902;, + 20.007500;89.403198;-49.726398;, + 0.001682;89.371201;-43.396099;, + 26.556299;41.051498;-11.996200;, + -26.556299;41.051498;-11.996200;, + -0.002853;80.104599;-28.374800;, + -26.534201;33.279099;-11.871700;, + 26.534201;33.279099;-11.871700;, + 56.197800;41.051701;-31.168200;, + 56.252201;33.374699;-31.049601;, + 54.638302;27.447500;-31.869101;, + 36.412300;80.168800;-41.180000;, + 13.979900;89.961700;-78.021698;, + 10.813000;87.678001;-99.164497;, + 18.286501;87.561996;-95.577904;, + 23.465900;87.701103;-86.979897;, + 22.660601;56.930000;-85.958702;, + 26.037201;60.042000;-80.994102;, + 23.018000;63.945599;-86.990196;, + 15.860100;66.513100;-103.723000;, + 4.985720;69.241203;-109.828003;, + -3.151830;59.137699;-113.539001;, + 3.151830;59.137699;-113.539001;, + 14.486700;39.303600;-110.494003;, + 6.913060;35.732101;-116.069000;, + 0.000000;38.785702;-116.398003;, + 0.000000;34.784599;-117.866997;, + 21.539101;59.374001;-94.485901;, + 20.322500;47.473598;-99.440598;, + 21.268900;65.567902;-96.575798;, + 18.533800;70.239304;-103.315002;, + 4.219060;56.590599;-113.260002;, + 2.988480;64.016701;-111.092003;, + -2.988480;64.016701;-111.092003;, + 9.370620;72.188499;-111.081001;, + 18.252701;68.656502;-104.777000;, + 14.373700;72.167000;-109.199997;, + 19.434401;63.606800;-100.512001;, + 11.092800;73.619301;-107.652000;, + 23.785299;69.344200;-83.959801;, + 25.723700;69.033600;-84.023201;, + -4.985720;69.241203;-109.828003;, + -36.412300;80.168800;-41.180000;, + -20.007500;89.403198;-49.726398;, + -34.699501;1.770400;-13.239800;, + -27.518101;-9.283290;43.316299;, + 71.288803;-89.403801;3.638570;, + -49.498501;-42.261398;46.664700;, + -50.758400;-66.146896;77.432899;, + -71.863998;-43.280499;-121.953003;, + -29.276100;-89.403801;-249.356003;, + -29.276100;-71.173798;-245.673004;, + -29.276100;-76.221100;-232.498001;, + -22.499300;-73.135300;-222.197998;, + -45.319500;-51.636398;238.337006;, + -92.113602;-54.067402;111.629997;, + -97.066002;-45.886002;215.106003;, + -99.998901;-89.386703;209.432999;, + -90.141296;-66.099197;76.808800;, + -90.143501;-89.398697;70.056801;, + -66.253403;-41.363300;-114.181000;, + -62.146198;-41.363300;0.466371;, + -67.256699;-43.159401;3.638570;, + -64.633499;33.507301;-75.408401;, + -25.287100;49.794701;-76.834999;, + -60.048901;27.448000;-75.408401;, + -27.626200;51.391399;-76.854103;, + -5.511190;43.376598;-115.882004;, + -5.985170;41.231400;-116.492996;, + -7.817830;32.369499;-114.861000;, + -15.769500;37.827702;-107.739998;, + -49.498501;-57.006599;120.031998;, + -45.877201;-22.525101;133.869003;, + -38.529499;-25.855900;215.279007;, + -83.121002;-26.728399;194.921005;, + -84.360703;-22.878099;124.517998;, + -25.205200;-6.554840;-108.101997;, + -62.398602;-53.163700;-127.496002;, + -41.172001;-53.222198;-131.192993;, + -22.454500;1.783410;-103.432999;, + -49.276699;11.844900;-34.592300;, + -56.252201;33.374699;-31.049601;, + -56.197800;41.051701;-31.168200;, + -54.638302;27.447500;-31.869101;, + -13.979900;89.961700;-78.021698;, + -18.286501;87.561996;-95.577904;, + -10.813000;87.678001;-99.164497;, + -23.465900;87.701103;-86.979897;, + -23.018000;63.945599;-86.990196;, + -26.037201;60.042000;-80.994102;, + -22.660601;56.930000;-85.958702;, + -15.860100;66.513100;-103.723000;, + -6.913060;35.732101;-116.069000;, + -14.486700;39.303600;-110.494003;, + -6.188310;39.063702;-115.317001;, + -20.322500;47.473598;-99.440598;, + -21.539101;59.374001;-94.485901;, + -12.134000;41.812801;-111.209999;, + -18.533800;70.239304;-103.315002;, + -21.268900;65.567902;-96.575798;, + -4.219060;56.590599;-113.260002;, + -9.370620;72.188499;-111.081001;, + -14.373700;72.167000;-109.199997;, + -18.252701;68.656502;-104.777000;, + -19.434401;63.606800;-100.512001;, + -11.092800;73.619301;-107.652000;, + -23.785299;69.344200;-83.959801;, + -25.723700;69.033600;-84.023201;, + -71.288803;-89.403801;3.638570;; + + 375; + 3; 2,1,0;, + 3; 4,2,3;, + 3; 7,6,5;, + 3; 10,9,8;, + 3; 8,11,10;, + 4; 15,14,13,12;, + 3; 18,17,16;, + 3; 21,20,19;, + 3; 24,23,22;, + 3; 27,26,25;, + 3; 30,29,28;, + 3; 28,31,30;, + 3; 1,4,32;, + 3; 16,33,18;, + 3; 36,35,34;, + 4; 40,39,38,37;, + 3; 14,41,13;, + 3; 10,42,9;, + 3; 45,44,43;, + 4; 7,17,45,6;, + 3; 48,47,46;, + 4; 21,46,47,49;, + 4; 53,52,51,50;, + 3; 51,52,54;, + 4; 58,57,56,55;, + 3; 59,44,57;, + 3; 62,61,60;, + 3; 65,64,63;, + 4; 69,68,67,66;, + 3; 72,71,70;, + 3; 75,74,73;, + 3; 78,77,76;, + 3; 81,80,79;, + 3; 79,82,81;, + 3; 85,84,83;, + 3; 88,87,86;, + 3; 90,89,50;, + 3; 73,56,75;, + 4; 92,65,63,91;, + 3; 60,94,93;, + 3; 93,62,60;, + 3; 95,58,55;, + 3; 97,96,77;, + 3; 98,76,96;, + 4; 40,66,67,39;, + 4; 39,67,100,99;, + 3; 30,101,81;, + 3; 27,83,102;, + 4; 104,103,39,99;, + 3; 41,42,105;, + 4; 42,41,14,9;, + 4; 9,14,15,8;, + 4; 8,15,107,106;, + 4; 108,106,107,12;, + 4; 108,12,13,109;, + 4; 13,111,110,109;, + 6; 115,110,111,114,113,112;, + 4; 117,116,40,37;, + 4; 120,119,118,38;, + 4; 103,122,121,39;, + 4; 125,124,105,123;, + 4; 0,127,7,126;, + 4; 128,16,17,7;, + 3; 2,0,129;, + 3; 1,2,4;, + 3; 129,0,126;, + 4; 28,132,131,130;, + 4; 135,134,133,130;, + 4; 43,137,136,6;, + 4; 139,138,137,43;, + 4; 103,140,120,122;, + 4; 144,143,142,141;, + 4; 37,118,119,117;, + 4; 143,117,119,142;, + 4; 146,145,143,144;, + 4; 147,66,40,116;, + 4; 146,149,148,145;, + 5; 104,150,146,140,103;, + 3; 11,108,109;, + 3; 106,108,11;, + 3; 15,12,107;, + 3; 8,106,11;, + 4; 35,152,151,34;, + 3; 152,154,153;, + 3; 155,42,10;, + 4; 11,109,110,156;, + 3; 41,111,13;, + 3; 115,156,110;, + 4; 115,157,123,105;, + 4; 36,125,123,35;, + 4; 152,35,123,157;, + 4; 152,157,158,154;, + 3; 159,17,18;, + 3; 160,159,153;, + 3; 33,161,36;, + 4; 33,36,34,18;, + 3; 151,153,159;, + 4; 159,160,44,45;, + 3; 163,162,33;, + 3; 162,161,33;, + 3; 45,17,159;, + 4; 162,166,165,164;, + 3; 169,168,167;, + 3; 172,171,170;, + 4; 166,174,173,165;, + 4; 176,175,170,174;, + 4; 177,166,162,163;, + 4; 178,168,169,172;, + 4; 178,172,170,175;, + 4; 178,175,0,1;, + 4; 128,127,176,177;, + 4; 16,128,177,163;, + 3; 179,167,168;, + 4; 32,168,178,1;, + 4; 0,175,176,127;, + 3; 27,102,26;, + 4; 26,102,167,179;, + 3; 181,180,179;, + 3; 32,182,179;, + 3; 181,179,182;, + 3; 185,184,183;, + 3; 24,186,23;, + 3; 48,187,47;, + 3; 43,6,45;, + 4; 189,30,81,188;, + 4; 137,191,190,136;, + 4; 191,193,192,131;, + 4; 137,138,193,191;, + 4; 192,135,130,131;, + 3; 133,28,130;, + 4; 134,101,31,133;, + 3; 133,31,28;, + 4; 5,195,194,183;, + 3; 5,126,7;, + 4; 5,6,136,195;, + 4; 195,136,190,22;, + 3; 29,132,28;, + 4; 22,20,21,24;, + 3; 21,186,24;, + 3; 186,21,49;, + 3; 197,182,196;, + 4; 29,30,198,20;, + 3; 198,189,199;, + 3; 21,19,46;, + 3; 19,198,199;, + 4; 199,189,188,200;, + 3; 48,199,187;, + 3; 47,187,201;, + 4; 49,203,202,186;, + 3; 186,202,204;, + 3; 204,23,186;, + 3; 196,204,202;, + 3; 202,197,196;, + 3; 202,203,205;, + 3; 205,197,202;, + 3; 201,25,205;, + 4; 32,4,206,182;, + 4; 180,181,197,205;, + 3; 181,182,197;, + 4; 194,196,185,183;, + 3; 207,184,185;, + 3; 184,129,5;, + 3; 129,184,2;, + 3; 207,3,184;, + 3; 2,184,3;, + 3; 207,185,206;, + 4; 206,185,196,182;, + 4; 180,205,25,26;, + 4; 3,207,206,4;, + 3; 183,184,5;, + 6; 200,208,85,25,187,199;, + 3; 203,201,205;, + 4; 194,23,204,196;, + 4; 47,201,203,49;, + 4; 48,46,19,199;, + 3; 20,198,19;, + 3; 30,189,198;, + 3; 31,101,30;, + 4; 194,195,22,23;, + 3; 22,132,29;, + 3; 132,22,190;, + 3; 129,126,5;, + 4; 190,191,131,132;, + 3; 44,139,43;, + 3; 26,179,180;, + 4; 25,85,83,27;, + 3; 128,7,127;, + 3; 177,176,174;, + 3; 174,166,177;, + 4; 174,170,171,173;, + 4; 169,210,209,172;, + 3; 163,33,16;, + 4; 162,164,211,161;, + 4; 111,41,64,114;, + 3; 159,34,151;, + 3; 159,18,34;, + 4; 161,211,212,150;, + 3; 36,150,104;, + 3; 104,125,36;, + 4; 157,115,112,158;, + 3; 125,104,124;, + 4; 104,99,213,124;, + 3; 155,105,42;, + 4; 155,156,115,105;, + 4; 156,155,10,11;, + 3; 36,161,150;, + 4; 150,212,149,146;, + 3; 121,38,39;, + 4; 116,145,148,147;, + 4; 140,144,141,120;, + 4; 145,116,117,143;, + 3; 37,38,118;, + 3; 119,141,142;, + 3; 119,120,141;, + 4; 120,38,121,122;, + 3; 144,140,146;, + 3; 201,187,25;, + 3; 29,20,22;, + 3; 32,179,168;, + 4; 105,124,213,41;, + 4; 100,67,215,214;, + 3; 216,61,64;, + 4; 62,63,64,61;, + 4; 93,91,63,62;, + 4; 218,217,91,93;, + 4; 92,217,218,219;, + 4; 220,65,92,219;, + 4; 220,113,114,65;, + 4; 69,66,147,221;, + 4; 68,224,223,222;, + 4; 67,226,225,215;, + 4; 216,229,228,227;, + 4; 231,55,230,98;, + 4; 55,56,73,232;, + 3; 233,98,96;, + 3; 77,96,76;, + 3; 231,98,233;, + 4; 235,234,134,135;, + 4; 58,237,236,59;, + 4; 59,236,138,139;, + 4; 225,222,238,215;, + 4; 242,241,240,239;, + 4; 221,223,224,69;, + 4; 241,223,221,240;, + 4; 239,240,148,149;, + 5; 215,238,149,212,214;, + 3; 220,219,94;, + 3; 94,219,218;, + 3; 217,92,91;, + 3; 94,218,93;, + 4; 72,243,154,71;, + 3; 60,61,244;, + 4; 245,113,220,94;, + 3; 65,114,64;, + 3; 113,245,112;, + 4; 216,227,158,112;, + 4; 71,227,228,70;, + 4; 158,227,71,154;, + 3; 75,56,246;, + 3; 153,246,160;, + 3; 70,211,74;, + 4; 75,72,70,74;, + 3; 246,153,243;, + 4; 57,44,160,246;, + 3; 74,164,247;, + 3; 74,211,164;, + 3; 246,56,57;, + 4; 173,171,249,248;, + 4; 247,164,165,250;, + 3; 210,169,167;, + 4; 249,171,172,209;, + 4; 76,98,249,209;, + 4; 250,248,230,232;, + 4; 247,250,232,73;, + 4; 76,209,210,78;, + 4; 230,248,249,98;, + 3; 167,251,210;, + 3; 84,102,83;, + 4; 251,167,102,84;, + 3; 251,253,252;, + 3; 251,254,78;, + 3; 254,251,252;, + 3; 257,256,255;, + 3; 87,258,86;, + 3; 52,208,54;, + 3; 57,58,59;, + 4; 237,260,259,236;, + 4; 259,193,138,236;, + 4; 261,235,135,192;, + 3; 235,79,234;, + 4; 234,80,101,134;, + 3; 79,80,234;, + 4; 257,263,262,95;, + 3; 55,231,95;, + 4; 262,237,58,95;, + 4; 88,260,237,262;, + 3; 79,264,82;, + 4; 86,50,89,88;, + 3; 86,258,50;, + 3; 53,50,258;, + 3; 266,254,265;, + 4; 89,267,81,82;, + 3; 200,188,267;, + 3; 51,90,50;, + 3; 200,267,90;, + 3; 208,200,54;, + 3; 268,208,52;, + 4; 258,270,269,53;, + 3; 271,270,258;, + 3; 258,87,271;, + 3; 270,271,266;, + 3; 266,265,270;, + 3; 272,269,270;, + 3; 270,265,272;, + 3; 272,85,268;, + 4; 254,273,77,78;, + 4; 272,265,252,253;, + 3; 265,254,252;, + 4; 257,255,266,263;, + 3; 255,256,274;, + 3; 95,233,256;, + 3; 96,256,233;, + 3; 256,97,274;, + 3; 97,256,96;, + 3; 273,255,274;, + 4; 254,266,255,273;, + 4; 84,85,272,253;, + 4; 77,273,274,97;, + 3; 95,256,257;, + 3; 272,268,269;, + 4; 266,271,87,263;, + 4; 53,269,268,52;, + 4; 200,90,51,54;, + 3; 90,267,89;, + 3; 267,188,81;, + 3; 81,101,80;, + 4; 87,88,262,263;, + 3; 82,264,88;, + 3; 260,88,264;, + 3; 95,231,233;, + 4; 261,264,79,235;, + 4; 261,192,193,259;, + 4; 264,261,259,260;, + 3; 59,139,44;, + 3; 253,251,84;, + 3; 230,55,232;, + 3; 173,248,250;, + 3; 250,165,173;, + 3; 73,74,247;, + 3; 243,72,246;, + 3; 72,75,246;, + 3; 214,212,70;, + 3; 70,228,214;, + 3; 229,214,228;, + 4; 229,275,100,214;, + 3; 61,216,244;, + 4; 216,112,245,244;, + 4; 94,60,244,245;, + 3; 212,211,70;, + 3; 67,68,226;, + 4; 222,242,239,238;, + 4; 240,221,147,148;, + 3; 224,68,69;, + 3; 241,242,223;, + 3; 242,222,223;, + 4; 225,226,68,222;, + 3; 149,238,239;, + 3; 85,208,268;, + 3; 88,89,82;, + 3; 210,251,78;, + 4; 64,275,229,216;, + 3; 154,243,153;, + 3; 153,151,152;, + 4; 213,99,100,275;, + 4; 275,64,41,213;; + MeshMaterialList { + 1; + 375; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material tan { + 0.661200;0.522100;0.218600;1.000000;; + 60.000000; + 0.502000;0.411800;0.215200;; + 0.000000;0.000000;0.000000;; + } + } + } + } + +} + diff --git a/_release/Games/wing_ring/media/stat_lib.x b/_release/Games/wing_ring/media/stat_lib.x new file mode 100644 index 0000000..69c135d --- /dev/null +++ b/_release/Games/wing_ring/media/stat_lib.x @@ -0,0 +1,1094 @@ +xof 0302txt 0064 +// DV8162 Copyright Viewpoint Datalabs Intl., Inc. +// www.viewpoint.com, 800-643-8303, 801-229-3333 +// for Microsoft Corporation DirectX format only +// see license agreement for description of rights + +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} + +template AnimationKey { + <10DD46A8-775B-11cf-8F52-0040333594A3> + DWORD keyType; + DWORD nKeys; + array TimedFloatKeys keys[nKeys]; +} + +template Animation { + <3D82AB4F-62DA-11cf-AB39-0020AF71E433> + [...] +} + + template AnimationSet { + <3D82AB50-62DA-11cf-AB39-0020AF71E433> + [Animation] +} + + +Header { + 1; + 0; + 1; +} + +Frame Root{ + Frame base { + Mesh mesh-base { + 24; + -8.969610;-36.714401;-8.901990;, + 8.901930;-36.714401;-8.969900;, + 8.106940;-18.503000;-8.168560;, + -8.168500;-18.503000;-8.106920;, + 8.969790;-36.714401;8.901810;, + -8.901930;-36.714401;8.969900;, + -8.106610;-18.503000;8.168540;, + 8.168680;-18.503000;8.106750;, + -7.292660;-12.815000;-7.237690;, + 7.237740;-12.815000;-7.292760;, + 7.292990;-12.815000;7.237350;, + -7.237720;-12.815000;7.292740;, + 8.306000;-17.744600;-8.369130;, + -8.369250;-17.744600;-8.306150;, + -8.305800;-17.744600;8.369250;, + 8.369270;-17.744600;8.305820;, + 8.306000;-14.205400;-8.369130;, + -8.369250;-14.205400;-8.306150;, + -8.305800;-14.205400;8.369250;, + 8.369270;-14.205400;8.305820;, + 7.237740;-14.205400;-7.292760;, + -7.292660;-14.205400;-7.237690;, + -7.237720;-14.205400;7.292740;, + 7.292990;-14.205400;7.237350;; + + 22; + 4; 3,2,1,0;, + 4; 7,6,5,4;, + 4; 11,10,9,8;, + 4; 0,1,4,5;, + 4; 2,7,4,1;, + 4; 6,3,0,5;, + 4; 3,13,12,2;, + 4; 6,14,13,3;, + 4; 7,15,14,6;, + 4; 2,12,15,7;, + 4; 13,17,16,12;, + 4; 14,18,17,13;, + 4; 15,19,18,14;, + 4; 12,16,19,15;, + 4; 17,21,20,16;, + 4; 18,22,21,17;, + 4; 19,23,22,18;, + 4; 16,20,23,19;, + 4; 21,8,9,20;, + 4; 22,11,8,21;, + 4; 23,10,11,22;, + 4; 20,9,10,23;; + MeshMaterialList { + 1; + 22; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material grey { + 0.183700;0.183700;0.183700;1.000000;; + 65.890000; + 0.500000;0.500000;0.500000;; + 0.000000;0.000000;0.000000;; + } + } + } + } + + Frame liberty { + Mesh mesh-liberty { + 253; + 7.386149;12.694600;-4.430130;, + 7.581450;12.827700;-5.100864;, + 8.126892;12.521000;-5.278753;, + 7.829488;13.337500;-5.070011;, + 8.198672;12.236700;-3.973608;, + 6.978719;12.454600;-2.922076;, + 7.487089;11.927400;-2.437971;, + 5.616855;12.569000;-1.319151;, + 7.167607;10.649900;-3.724968;, + 6.999793;11.195000;-5.072934;, + 5.180251;10.982800;-0.790511;, + 6.797462;10.725400;-2.767496;, + 7.681995;10.824000;-4.151626;, + 7.369202;11.068800;-5.177232;, + -8.080472;34.257702;-4.530112;, + -6.922904;33.888100;-4.266104;, + -6.379644;32.625599;-4.228291;, + -7.340135;31.925400;-4.053804;, + -7.556860;29.670099;-5.243852;, + -6.898810;29.660400;-5.510281;, + -7.165168;29.666000;-6.168340;, + -7.823278;29.675699;-5.901992;, + -3.510264;18.105000;1.048751;, + -4.065827;21.002199;-1.763503;, + -2.814145;22.638901;-1.227781;, + -2.669801;19.579700;0.736019;, + -0.764618;23.168400;-0.843389;, + -1.391626;24.400900;0.213467;, + 1.350172;24.400900;0.224522;, + 0.731394;23.168400;-0.837355;, + 2.207004;24.517900;-0.332741;, + 2.809694;20.251600;0.504339;, + 0.170387;23.948099;-4.699458;, + 0.280348;24.733000;-4.059292;, + 0.167592;25.287100;-4.326006;, + -0.171802;25.287100;-4.327319;, + -0.286972;24.733000;-4.061430;, + -0.171418;23.948099;-4.700831;, + -1.278086;20.885900;-0.317442;, + -1.039063;21.606199;-0.642736;, + 1.075749;21.606001;-0.633989;, + 1.240812;20.885900;-0.306961;, + 3.238738;18.050100;1.170719;, + 0.432373;13.103400;0.454935;, + 2.706559;19.890400;0.786731;, + 0.857858;20.316700;-2.757467;, + 0.585263;22.267900;-2.957880;, + -0.600873;22.267900;-2.962720;, + -0.672941;21.013000;-2.777103;, + 3.128820;13.445800;-0.751137;, + -5.349465;11.883400;0.064919;, + -3.876092;15.703200;-1.214597;, + -7.451393;31.823299;-5.039089;, + -5.709434;27.172400;-5.112842;, + -6.268509;32.649300;-5.284616;, + -2.958282;20.495399;0.559558;, + 1.127636;23.160400;-1.446090;, + 1.312494;23.288900;-1.873263;, + 1.702968;24.251699;-2.267332;, + 2.273943;24.500200;-2.370208;, + 2.340691;24.813299;-1.385011;, + -2.243748;24.517900;-0.351020;, + -1.155954;23.160400;-1.455614;, + 0.987058;27.950399;-4.654851;, + 1.350305;27.978201;-1.431577;, + -1.378343;27.978201;-1.442705;, + -0.988235;27.950399;-4.662848;, + -1.702826;27.312500;-0.283907;, + 1.665205;27.312500;-0.270097;, + -1.142481;26.974100;-4.130617;, + 1.136320;26.974100;-4.121294;, + -0.893509;26.527901;-4.632804;, + 0.891455;26.527901;-4.625368;, + 4.113303;13.475500;-2.345572;, + 2.359498;17.475901;-5.677266;, + 2.953989;12.174500;-5.135915;, + 2.503825;25.177500;-0.197254;, + 2.429759;25.630199;-1.906391;, + 2.722388;26.018499;-1.488800;, + 2.318723;25.269800;-2.493714;, + 1.658153;23.719500;-2.641621;, + 1.851534;25.916401;-3.708356;, + 1.988600;26.410500;-3.153162;, + 1.487931;25.403700;-3.415551;, + 1.750794;24.956600;-2.543305;, + 0.689931;26.053600;-4.031443;, + -0.696565;26.053600;-4.037278;, + 2.201540;27.254601;-3.365684;, + 1.611348;25.291100;0.773307;, + -1.657806;25.291100;0.760039;, + -2.453971;25.630199;-1.926188;, + -2.368810;24.813299;-1.404180;, + -2.294549;24.500200;-2.388762;, + -2.338217;25.269800;-2.512874;, + -1.724272;24.251699;-2.281473;, + -1.860967;25.916401;-3.723181;, + -2.002576;26.410500;-3.169714;, + -1.769636;24.956600;-2.557771;, + -1.499723;25.403700;-3.427920;, + -1.676279;23.719500;-2.655374;, + -1.337095;23.288900;-1.883954;, + -1.228167;22.826700;-2.629736;, + -2.218001;27.254601;-3.384307;, + -2.444040;25.228001;-0.172583;, + -2.754626;26.018499;-1.511372;, + 1.209724;22.826700;-2.619919;, + 1.227917;23.616301;-3.559278;, + 0.577355;22.476601;-4.093345;, + 0.442258;22.166901;-3.859862;, + 0.959141;22.442900;-2.333202;, + 0.355710;23.730499;-4.418196;, + -0.359188;23.730499;-4.421429;, + -0.583422;22.476601;-4.097985;, + -0.450299;22.166901;-3.863731;, + 1.436418;20.561899;-2.107504;, + 1.650095;24.907900;-3.006229;, + 1.431526;21.478001;-1.326222;, + 1.154338;24.725700;-3.674181;, + 0.951455;25.346901;-4.115671;, + -1.238603;23.616301;-3.569461;, + -0.979877;22.442900;-2.341318;, + -1.613880;21.240999;-2.270301;, + -1.665088;24.907900;-3.019608;, + -1.705444;21.715799;-1.342418;, + -1.164123;24.725700;-3.683747;, + -0.957503;25.346901;-4.123619;, + 0.262241;11.535600;0.697245;, + 3.345840;11.610100;-0.766646;, + -0.142888;13.990100;-5.801316;, + -0.298260;14.308700;-6.586463;, + 4.198720;11.607600;-2.324004;, + 5.079579;7.065040;-0.183424;, + 4.777841;13.287200;-0.518783;, + -3.716834;10.696300;-0.419465;, + -2.186922;12.648100;-5.900135;, + -2.561620;11.648500;-5.001533;, + -4.831226;11.610200;-2.449965;, + -3.690645;10.711100;-2.367628;, + 0.150159;19.574200;-3.335293;, + 0.003526;16.991699;-5.660766;, + 3.769048;18.908300;-2.549001;, + 2.635772;19.736500;-2.089879;, + -3.603055;17.834200;-4.059553;, + -2.349490;17.233200;-5.921615;, + -1.365171;19.269501;-4.183790;, + -2.068916;19.421600;-4.032992;, + 2.502946;20.627399;-0.852351;, + 4.938235;19.288700;-1.455908;, + 5.030872;19.473200;0.074446;, + -2.297797;21.354099;-0.406527;, + 4.636312;18.236500;-2.431162;, + 4.365554;-1.675160;-0.549980;, + 3.127941;-2.421060;-4.401118;, + 4.517611;-12.853300;-3.470550;, + 5.685911;-12.902000;1.821023;, + 0.101966;-1.589330;-5.102440;, + 0.002320;-12.880200;-4.178607;, + -2.509024;-5.970280;-3.425438;, + -2.922873;-12.614000;-3.346255;, + -5.465871;-8.656130;-1.328432;, + -6.240715;-12.877600;1.771093;, + -4.107102;-10.187700;3.354987;, + -3.106872;-12.928800;3.810470;, + 0.001233;-8.579190;5.548041;, + 0.037886;-12.928800;4.903155;, + 4.200247;-3.266850;2.098117;, + 2.736350;-12.928800;3.465597;, + 5.644452;-0.388376;-0.865061;, + 4.447802;-2.045080;-4.670786;, + -0.185858;-0.268496;-6.008376;, + -3.604824;-5.894510;-3.345344;, + -7.242657;-8.711720;-1.337727;, + -5.138875;-9.971650;5.130098;, + -0.078146;-0.066286;2.284463;, + 2.736062;0.741521;1.035692;, + -2.499689;5.352410;-4.159314;, + -4.861047;4.051100;-1.838457;, + -4.402977;-0.259835;1.608488;, + 6.847442;16.546700;-2.130934;, + 4.419275;10.310900;-1.170688;, + 5.499489;9.308500;-4.949465;, + 7.927118;15.544200;-5.910172;, + 8.682991;15.293400;-5.627588;, + 6.255143;9.057620;-4.667253;, + 5.175239;10.060100;-0.888382;, + 7.603176;16.296000;-1.848522;, + -8.097300;36.798302;-6.264102;, + -7.504333;36.789600;-6.550485;, + -7.036401;39.498901;-4.828165;, + -6.250183;36.831200;-6.247745;, + -6.010842;36.826099;-5.542222;, + -6.260786;36.828800;-4.841097;, + -7.519112;36.786201;-4.560911;, + -8.107732;36.795898;-4.857635;, + -8.347223;36.800999;-5.562967;, + -7.716670;36.258701;-6.157719;, + -7.253207;36.251801;-6.345276;, + -6.792843;36.244202;-6.150444;, + -6.605096;36.240299;-5.686840;, + -6.800189;36.242401;-5.226277;, + -7.263512;36.249199;-5.038889;, + -7.724186;36.256802;-5.233713;, + -7.911452;36.260700;-5.697455;, + -8.444446;36.271599;-6.897464;, + -7.244975;36.253899;-7.383000;, + -6.053226;36.234299;-6.878430;, + -5.567502;36.224201;-5.678597;, + -6.072532;36.229500;-4.486722;, + -7.272086;36.247101;-4.000826;, + -8.463721;36.266800;-4.505956;, + -8.949346;36.276901;-5.705658;, + -8.454870;35.602100;-6.898900;, + -7.255418;35.584499;-7.384426;, + -6.063660;35.564899;-6.879856;, + -5.577946;35.554699;-5.680033;, + -6.082976;35.560101;-4.488148;, + -7.282530;35.577702;-4.002262;, + -8.474155;35.597401;-4.507381;, + -8.959780;35.607498;-5.707094;, + -7.921515;35.063900;-5.969411;, + -6.995498;35.050499;-6.344301;, + -6.620590;35.042801;-5.418185;, + -7.546706;35.056198;-5.043266;, + -6.978050;33.885799;-5.187613;, + -8.198936;33.085098;-5.067764;, + -7.550670;34.750702;-5.172945;, + -6.647817;35.112598;-5.700406;, + -6.406287;33.752800;-4.410859;, + -6.481755;33.791000;-5.279227;, + -4.461921;27.534599;-4.843091;, + -4.834083;27.608000;-3.213121;, + -4.125010;21.084900;-2.099444;, + -3.232388;21.272301;-4.412937;, + -2.606191;22.799700;-2.778256;, + -6.534464;27.223900;-4.130226;, + -4.542669;20.563999;-3.410300;, + -6.014786;27.350300;-2.997606;, + -5.156948;19.514799;-3.684465;, + -7.779938;33.334400;-5.952213;, + -8.024225;34.952999;-6.072511;, + 7.066906;13.167500;-5.911649;, + 6.547878;11.954600;-5.839925;, + 5.694806;18.313700;-1.571191;, + 5.631140;18.284700;0.671653;, + 8.181039;12.531200;-3.505760;, + 7.390062;12.891100;-3.588315;, + 7.272167;10.983200;-0.876272;, + 7.298742;12.230300;-1.037832;, + 7.579129;10.819300;-2.691861;, + 6.597891;13.289500;-0.077452;, + 6.034107;13.214300;2.385769;, + 6.247351;7.245660;-0.252205;, + 4.896956;12.991900;1.410443;; + + 319; + 3; 2,1,0;, + 3; 4,0,3;, + 3; 7,6,5;, + 4; 0,9,8,5;, + 4; 5,11,10,7;, + 3; 8,11,5;, + 3; 4,6,12;, + 4; 12,13,2,4;, + 3; 16,15,14;, + 3; 17,16,14;, + 4; 21,20,19,18;, + 4; 25,24,23,22;, + 4; 29,28,27,26;, + 3; 31,30,28;, + 3; 34,33,32;, + 3; 37,36,35;, + 4; 35,34,32,37;, + 4; 41,40,39,38;, + 3; 22,43,42;, + 4; 44,25,22,42;, + 4; 44,41,38,25;, + 4; 48,47,46,45;, + 3; 49,42,43;, + 3; 43,22,50;, + 3; 50,22,51;, + 3; 54,53,52;, + 3; 26,27,55;, + 3; 57,31,56;, + 3; 58,31,57;, + 3; 59,31,58;, + 3; 60,31,59;, + 3; 30,31,60;, + 3; 29,56,31;, + 3; 31,28,29;, + 3; 27,61,55;, + 3; 55,62,26;, + 4; 26,39,40,29;, + 4; 66,65,64,63;, + 4; 68,64,65,67;, + 4; 70,69,66,63;, + 4; 70,72,71,69;, + 3; 75,74,73;, + 3; 77,76,60;, + 3; 68,76,78;, + 4; 59,79,77,60;, + 3; 57,80,58;, + 4; 82,77,79,81;, + 4; 81,79,84,83;, + 4; 79,59,58,84;, + 4; 85,72,81,83;, + 4; 71,72,85,86;, + 3; 87,63,64;, + 4; 70,63,87,82;, + 4; 82,81,72,70;, + 4; 89,27,28,88;, + 4; 76,88,28,30;, + 3; 88,76,68;, + 3; 76,77,78;, + 4; 67,89,88,68;, + 4; 87,78,77,82;, + 4; 78,87,64,68;, + 3; 76,30,60;, + 4; 93,92,91,90;, + 3; 94,55,92;, + 4; 90,96,95,93;, + 4; 93,95,98,97;, + 4; 92,93,97,94;, + 3; 101,100,99;, + 4; 71,86,98,95;, + 3; 65,66,102;, + 4; 66,69,96,102;, + 4; 95,96,69,71;, + 4; 89,103,61,27;, + 3; 103,90,91;, + 3; 103,67,104;, + 3; 107,106,105;, + 5; 109,46,108,107,105;, + 3; 107,110,106;, + 4; 57,56,109,105;, + 4; 107,112,111,110;, + 4; 108,113,112,107;, + 4; 109,114,45,46;, + 4; 84,58,80,115;, + 3; 84,115,83;, + 4; 29,40,116,56;, + 4; 56,116,114,109;, + 4; 106,117,115,80;, + 4; 113,108,46,47;, + 3; 33,117,106;, + 3; 32,33,110;, + 4; 32,110,111,37;, + 3; 33,106,110;, + 4; 118,117,33,34;, + 4; 118,83,115,117;, + 3; 118,85,83;, + 3; 85,118,34;, + 4; 85,34,35,86;, + 3; 112,101,119;, + 5; 101,112,113,47,120;, + 3; 111,112,119;, + 4; 62,100,101,120;, + 4; 121,120,47,48;, + 4; 94,97,122,99;, + 3; 98,122,97;, + 4; 39,26,62,123;, + 4; 62,120,121,123;, + 4; 124,119,99,122;, + 3; 36,119,124;, + 3; 37,111,36;, + 3; 111,119,36;, + 4; 124,125,35,36;, + 4; 98,125,124,122;, + 3; 98,86,125;, + 3; 86,35,125;, + 3; 67,103,89;, + 3; 104,90,103;, + 4; 104,102,96,90;, + 4; 102,104,67,65;, + 3; 91,61,103;, + 4; 127,49,43,126;, + 3; 129,74,128;, + 3; 73,130,75;, + 5; 130,73,132,10,131;, + 4; 126,43,50,133;, + 4; 128,135,134,129;, + 4; 135,137,136,134;, + 4; 136,137,133,50;, + 3; 139,138,74;, + 3; 74,141,140;, + 4; 145,144,143,142;, + 3; 143,144,139;, + 4; 116,146,141,114;, + 4; 138,45,114,141;, + 4; 146,116,40,41;, + 4; 146,148,147,141;, + 3; 74,138,141;, + 3; 44,146,41;, + 3; 139,144,138;, + 3; 121,144,145;, + 3; 121,48,138;, + 3; 38,39,123;, + 3; 144,121,138;, + 3; 38,149,25;, + 3; 149,38,123;, + 3; 74,129,139;, + 3; 150,73,74;, + 3; 139,129,143;, + 3; 134,136,51;, + 3; 134,143,129;, + 3; 51,136,50;, + 4; 154,153,152,151;, + 4; 153,156,155,152;, + 4; 156,158,157,155;, + 4; 158,160,159,157;, + 4; 160,162,161,159;, + 4; 162,164,163,161;, + 4; 164,166,165,163;, + 4; 166,154,151,165;, + 4; 151,152,168,167;, + 4; 152,155,169,168;, + 4; 155,157,170,169;, + 4; 157,159,171,170;, + 4; 159,161,172,171;, + 4; 161,163,173,172;, + 3; 163,165,173;, + 3; 165,151,174;, + 4; 168,75,130,167;, + 4; 168,169,128,75;, + 3; 169,170,175;, + 4; 170,171,176,175;, + 3; 171,172,177;, + 3; 172,173,177;, + 4; 173,174,127,126;, + 4; 174,167,130,127;, + 8; 162,160,158,156,153,154,166,164;, + 4; 181,180,179,178;, + 4; 185,184,183,182;, + 4; 183,184,179,180;, + 4; 185,182,181,178;, + 4; 178,179,184,185;, + 4; 182,183,180,181;, + 3; 188,187,186;, + 3; 188,189,187;, + 3; 188,190,189;, + 3; 188,191,190;, + 3; 188,192,191;, + 3; 188,193,192;, + 3; 188,194,193;, + 3; 188,186,194;, + 4; 186,187,196,195;, + 4; 187,189,197,196;, + 4; 189,190,198,197;, + 4; 190,191,199,198;, + 4; 191,192,200,199;, + 4; 192,193,201,200;, + 4; 193,194,202,201;, + 4; 194,186,195,202;, + 4; 195,196,204,203;, + 4; 196,197,205,204;, + 4; 197,198,206,205;, + 4; 198,199,207,206;, + 4; 199,200,208,207;, + 4; 200,201,209,208;, + 4; 201,202,210,209;, + 4; 202,195,203,210;, + 4; 203,204,212,211;, + 4; 204,205,213,212;, + 4; 205,206,214,213;, + 4; 206,207,215,214;, + 4; 207,208,216,215;, + 4; 208,209,217,216;, + 4; 209,210,218,217;, + 4; 210,203,211,218;, + 4; 211,212,220,219;, + 3; 212,213,220;, + 4; 213,214,221,220;, + 3; 214,215,221;, + 4; 215,216,222,221;, + 3; 216,217,222;, + 4; 217,218,219,222;, + 3; 218,211,219;, + 4; 219,21,18,222;, + 4; 222,18,19,221;, + 4; 221,19,20,220;, + 4; 220,20,21,219;, + 3; 224,223,52;, + 4; 224,52,17,14;, + 3; 225,223,224;, + 3; 15,223,225;, + 3; 227,226,15;, + 4; 228,54,52,223;, + 4; 228,227,16,54;, + 3; 223,15,226;, + 3; 227,228,226;, + 3; 16,227,15;, + 3; 223,226,228;, + 4; 16,230,229,54;, + 3; 54,229,53;, + 3; 231,23,24;, + 3; 24,229,230;, + 4; 229,233,232,53;, + 4; 53,232,235,234;, + 3; 234,235,236;, + 4; 236,231,24,230;, + 4; 236,230,16,17;, + 3; 229,24,233;, + 3; 232,237,235;, + 4; 235,237,23,231;, + 3; 235,231,236;, + 4; 234,236,17,52;, + 3; 52,53,234;, + 3; 238,224,14;, + 3; 239,238,14;, + 3; 225,239,14;, + 4; 224,238,239,225;, + 4; 241,9,1,240;, + 4; 242,150,140,147;, + 3; 140,141,147;, + 3; 146,44,148;, + 4; 147,148,243,242;, + 4; 13,241,240,2;, + 4; 13,12,8,9;, + 3; 1,9,0;, + 3; 0,4,2;, + 3; 4,3,244;, + 3; 0,5,245;, + 4; 5,6,244,245;, + 3; 3,245,244;, + 3; 244,6,4;, + 3; 245,3,0;, + 3; 6,247,246;, + 4; 8,12,248,11;, + 3; 6,248,12;, + 4; 150,242,249,132;, + 4; 247,249,250,246;, + 3; 7,10,132;, + 4; 246,251,131,10;, + 3; 6,246,248;, + 4; 242,243,250,249;, + 3; 11,248,10;, + 4; 131,251,250,252;, + 3; 1,2,240;, + 3; 241,13,9;, + 3; 248,246,10;, + 3; 6,7,247;, + 4; 247,7,132,249;, + 3; 250,251,246;, + 4; 131,252,49,127;, + 3; 127,130,131;, + 3; 105,106,80;, + 3; 57,105,80;, + 3; 99,119,101;, + 3; 225,14,15;, + 4; 94,99,100,62;, + 3; 62,55,94;, + 3; 91,55,61;, + 3; 92,55,91;, + 4; 51,142,143,134;, + 3; 151,167,174;, + 3; 165,174,173;, + 4; 173,126,133,177;, + 3; 177,176,171;, + 4; 177,133,137,176;, + 4; 176,137,135,175;, + 4; 175,135,128,169;, + 3; 74,75,128;, + 3; 48,45,138;, + 3; 74,140,150;, + 3; 132,73,150;, + 4; 243,148,44,42;, + 4; 252,250,243,42;, + 4; 51,22,23,237;, + 3; 25,149,24;, + 4; 149,123,233,24;, + 4; 121,145,232,233;, + 4; 145,142,237,232;, + 3; 142,51,237;, + 3; 121,233,123;, + 3; 252,42,49;; + MeshMaterialList { + 1; + 319; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material bluteal { + 0.077600;0.257100;0.204100;1.000000;; + 25.000000; + 0.146700;0.146900;0.096500;; + 0.000000;0.000000;0.000000;; + } + } + } + } + +} + diff --git a/_release/Games/wing_ring/media/tune1.mid b/_release/Games/wing_ring/media/tune1.mid new file mode 100644 index 0000000..0a8bda1 Binary files /dev/null and b/_release/Games/wing_ring/media/tune1.mid differ diff --git a/_release/Games/wing_ring/media/tune2.mid b/_release/Games/wing_ring/media/tune2.mid new file mode 100644 index 0000000..0e25c1e Binary files /dev/null and b/_release/Games/wing_ring/media/tune2.mid differ diff --git a/_release/Games/wing_ring/media/yellow_spark.bmp b/_release/Games/wing_ring/media/yellow_spark.bmp new file mode 100644 index 0000000..30b9751 Binary files /dev/null and b/_release/Games/wing_ring/media/yellow_spark.bmp differ diff --git a/_release/Games/wing_ring/media/yellow_ufo.X b/_release/Games/wing_ring/media/yellow_ufo.X new file mode 100644 index 0000000..866bf34 --- /dev/null +++ b/_release/Games/wing_ring/media/yellow_ufo.X @@ -0,0 +1,1214 @@ +xof 0302txt 0064 +// DV8190 Copyright Viewpoint Datalabs Intl., Inc. +// www.viewpoint.com, 800-643-8303, 801-229-3333 +// for Microsoft Corporation DirectX format only +// see license agreement for description of rights + +template Header { + <3D82AB43-62DA-11cf-AB39-0020AF71E433> + WORD major; + WORD minor; + DWORD flags; +} + +template ColorRGBA { + <35FF44E0-6C7C-11cf-8F52-0040333594A3> + FLOAT red; + FLOAT green; + FLOAT blue; + FLOAT alpha; +} + +template ColorRGB { + + FLOAT red; + FLOAT green; + FLOAT blue; +} + +template Material { + <3D82AB4D-62DA-11cf-AB39-0020AF71E433> + ColorRGBA faceColor; + FLOAT power; + ColorRGB specularColor; + ColorRGB emissiveColor; + [...] +} + +template Vector { + <3D82AB5E-62DA-11cf-AB39-0020AF71E433> + FLOAT x; + FLOAT y; + FLOAT z; +} + +template MeshFace { + <3D82AB5F-62DA-11cf-AB39-0020AF71E433> + DWORD nFaceVertexIndices; + array DWORD faceVertexIndices[nFaceVertexIndices]; +} + +template Mesh { + <3D82AB44-62DA-11cf-AB39-0020AF71E433> + DWORD nVertices; + array Vector vertices[nVertices]; + DWORD nFaces; + array MeshFace faces[nFaces]; + [...] +} + +template MeshMaterialList { + + DWORD nMaterials; + DWORD nFaceIndexes; + array DWORD faceIndexes[nFaceIndexes]; + [Material] +} + +template Frame { + <3D82AB46-62DA-11cf-AB39-0020AF71E433> + [...] +} + +template AnimationKey { + <10DD46A8-775B-11cf-8F52-0040333594A3> + DWORD keyType; + DWORD nKeys; + array TimedFloatKeys keys[nKeys]; +} + +template Animation { + <3D82AB4F-62DA-11cf-AB39-0020AF71E433> + [...] +} + + template AnimationSet { + <3D82AB50-62DA-11cf-AB39-0020AF71E433> + [Animation] +} + + +Header { + 1; + 0; + 1; +} + +Frame Root{ + Frame nose { + Mesh mesh-nose { + 9; + 0.041754;-0.520870;-1.752230;, + 0.000000;-0.562624;-3.122230;, + 0.059049;-0.562624;-1.752230;, + 0.000000;-0.503575;-1.752230;, + -0.041754;-0.520870;-1.752230;, + -0.059049;-0.562624;-1.752230;, + -0.041754;-0.604378;-1.752230;, + 0.000000;-0.621673;-1.752230;, + 0.041754;-0.604378;-1.752230;; + + 14; + 3; 2,1,0;, + 3; 0,1,3;, + 3; 3,1,4;, + 3; 4,1,5;, + 3; 5,1,6;, + 3; 6,1,7;, + 3; 7,1,8;, + 3; 8,1,2;, + 3; 7,8,2;, + 3; 6,7,2;, + 3; 5,6,2;, + 3; 4,5,2;, + 3; 3,4,2;, + 3; 0,3,2;; + MeshMaterialList { + 1; + 14; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material black { + 0.002000;0.002000;0.002000;1.000000;; + 157.360000; + 0.518400;0.518400;0.518400;; + 0.000000;0.000000;0.000000;; + } + } + } + } + + Frame tail { + Mesh mesh-tail { + 33; + 0.000000;0.213764;1.482750;, + -0.032500;0.252982;1.470040;, + 0.000000;0.118882;1.047140;, + -0.032500;0.154050;1.029530;, + 0.000000;0.421446;1.956740;, + -0.032500;0.464976;1.935990;, + 0.000000;1.018140;2.607660;, + -0.032500;1.053370;2.599290;, + -0.010391;0.997356;3.080420;, + -0.032500;1.034190;3.122230;, + -0.010391;0.918696;3.071680;, + -0.032500;0.906996;3.108080;, + 0.000000;0.886856;2.949130;, + -0.032500;0.864596;2.980890;, + 0.000000;-0.498015;2.082350;, + -0.032500;-0.510208;2.117780;, + 0.000000;-0.372648;1.045000;, + -0.032500;-0.383009;1.043660;, + 0.000000;-0.039866;0.824648;, + -0.032500;-0.043814;0.817535;, + 0.000000;0.082848;0.582730;, + -0.032500;0.097518;0.534872;, + -0.065000;0.213764;1.482750;, + -0.065000;0.118882;1.047140;, + -0.065000;0.421446;1.956740;, + -0.065000;1.018140;2.607660;, + -0.054609;0.997356;3.080420;, + -0.054609;0.918696;3.071680;, + -0.065000;0.886856;2.949130;, + -0.065000;-0.498015;2.082350;, + -0.065000;-0.372648;1.045000;, + -0.065000;-0.039866;0.824648;, + -0.065000;0.082848;0.582730;; + + 62; + 3; 2,1,0;, + 3; 2,3,1;, + 3; 0,5,4;, + 3; 0,1,5;, + 3; 4,7,6;, + 3; 4,5,7;, + 3; 6,9,8;, + 3; 6,7,9;, + 3; 8,11,10;, + 3; 8,9,11;, + 3; 10,13,12;, + 3; 10,11,13;, + 3; 12,15,14;, + 3; 12,13,15;, + 3; 14,17,16;, + 3; 14,15,17;, + 3; 16,19,18;, + 3; 16,17,19;, + 3; 18,21,20;, + 3; 18,19,21;, + 3; 20,3,2;, + 3; 20,21,3;, + 3; 3,22,1;, + 3; 3,23,22;, + 3; 1,24,5;, + 3; 1,22,24;, + 3; 5,25,7;, + 3; 5,24,25;, + 3; 7,26,9;, + 3; 7,25,26;, + 3; 9,27,11;, + 3; 9,26,27;, + 3; 11,28,13;, + 3; 11,27,28;, + 3; 13,29,15;, + 3; 13,28,29;, + 3; 15,30,17;, + 3; 15,29,30;, + 3; 17,31,19;, + 3; 17,30,31;, + 3; 19,32,21;, + 3; 19,31,32;, + 3; 21,23,3;, + 3; 21,32,23;, + 3; 18,20,2;, + 3; 6,8,10;, + 3; 6,10,12;, + 3; 6,12,14;, + 3; 4,6,14;, + 3; 4,14,16;, + 3; 0,4,16;, + 3; 2,0,16;, + 3; 2,16,18;, + 3; 31,23,32;, + 3; 25,27,26;, + 3; 25,28,27;, + 3; 25,29,28;, + 3; 24,29,25;, + 3; 24,30,29;, + 3; 22,30,24;, + 3; 23,30,22;, + 3; 23,31,30;; + MeshMaterialList { + 1; + 62; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material yellow { + 1.000000;0.666700;0.000000;1.000000;; + 65.890000; + 1.000000;0.666700;0.000000;; + 0.000000;0.000000;0.000000;; + } + } + } + } + + Frame canopy { + Mesh mesh-canopy { + 66; + 0.010706;-0.185322;-0.856592;, + -0.103198;-0.199881;-0.865683;, + 0.010706;-0.374417;-1.067540;, + -0.199762;-0.241341;-0.891574;, + -0.264283;-0.303390;-0.930325;, + -0.286940;-0.376582;-0.976025;, + 0.010706;-0.371075;0.221225;, + 0.308352;-0.376582;-0.976025;, + 0.285695;-0.303390;-0.930325;, + 0.221174;-0.241341;-0.891574;, + 0.124610;-0.199881;-0.865683;, + 0.010706;0.007898;-0.488197;, + -0.199762;-0.020965;-0.501343;, + -0.378188;-0.103159;-0.538779;, + -0.497408;-0.226172;-0.594807;, + -0.539273;-0.371275;-0.660897;, + 0.560685;-0.371275;-0.660897;, + 0.518820;-0.226172;-0.594807;, + 0.399599;-0.103159;-0.538779;, + 0.221174;-0.020965;-0.501343;, + 0.010706;0.164967;-0.133933;, + -0.264283;0.124289;-0.141836;, + -0.497408;0.008448;-0.164342;, + -0.653177;-0.164920;-0.198023;, + -0.707876;-0.369421;-0.237754;, + 0.729288;-0.369421;-0.237754;, + 0.674589;-0.164920;-0.198023;, + 0.518820;0.008448;-0.164342;, + 0.285695;0.124289;-0.141836;, + 0.010706;0.214816;0.221225;, + -0.286940;0.169963;0.221225;, + -0.539273;0.042233;0.221225;, + -0.707876;-0.148928;0.221225;, + -0.767081;-0.374417;0.221225;, + 0.788493;-0.374417;0.221225;, + 0.729288;-0.148928;0.221225;, + 0.560684;0.042233;0.221225;, + 0.308352;0.169963;0.221225;, + 0.010706;0.169963;0.545616;, + -0.264283;0.128524;0.545616;, + -0.497408;0.010518;0.545616;, + -0.653177;-0.166092;0.545616;, + -0.707876;-0.374417;0.545616;, + 0.729288;-0.374417;0.545616;, + 0.674589;-0.166092;0.545616;, + 0.518820;0.010518;0.545616;, + 0.285695;0.128524;0.545616;, + 0.010706;0.042233;0.809822;, + -0.199762;0.010518;0.809822;, + -0.378188;-0.079801;0.809822;, + -0.497408;-0.214972;0.809822;, + -0.539273;-0.374417;0.809822;, + 0.560685;-0.374417;0.809822;, + 0.518820;-0.214972;0.809822;, + 0.399599;-0.079801;0.809822;, + 0.221174;0.010518;0.809822;, + 0.010706;-0.148928;1.006310;, + -0.103198;-0.166092;1.006310;, + -0.199762;-0.214972;1.006310;, + -0.264283;-0.288126;1.006310;, + -0.286940;-0.374417;1.006310;, + 0.308352;-0.374417;1.006310;, + 0.285695;-0.288126;1.006310;, + 0.221174;-0.214972;1.006310;, + 0.124610;-0.166092;1.006310;, + 0.010706;-0.374417;1.095110;; + + 128; + 3; 2,1,0;, + 3; 2,3,1;, + 3; 2,4,3;, + 3; 2,5,4;, + 3; 2,6,5;, + 3; 2,7,6;, + 3; 2,8,7;, + 3; 2,9,8;, + 3; 2,10,9;, + 3; 2,0,10;, + 3; 0,12,11;, + 3; 0,1,12;, + 3; 1,13,12;, + 3; 1,3,13;, + 3; 3,14,13;, + 3; 3,4,14;, + 3; 4,15,14;, + 3; 4,5,15;, + 3; 5,6,15;, + 3; 6,7,16;, + 3; 7,17,16;, + 3; 7,8,17;, + 3; 8,18,17;, + 3; 8,9,18;, + 3; 9,19,18;, + 3; 9,10,19;, + 3; 10,11,19;, + 3; 10,0,11;, + 3; 11,21,20;, + 3; 11,12,21;, + 3; 12,22,21;, + 3; 12,13,22;, + 3; 13,23,22;, + 3; 13,14,23;, + 3; 14,24,23;, + 3; 14,15,24;, + 3; 15,6,24;, + 3; 6,16,25;, + 3; 16,26,25;, + 3; 16,17,26;, + 3; 17,27,26;, + 3; 17,18,27;, + 3; 18,28,27;, + 3; 18,19,28;, + 3; 19,20,28;, + 3; 19,11,20;, + 3; 20,30,29;, + 3; 20,21,30;, + 3; 21,31,30;, + 3; 21,22,31;, + 3; 22,32,31;, + 3; 22,23,32;, + 3; 23,33,32;, + 3; 23,24,33;, + 3; 24,6,33;, + 3; 6,25,34;, + 3; 25,35,34;, + 3; 25,26,35;, + 3; 26,36,35;, + 3; 26,27,36;, + 3; 27,37,36;, + 3; 27,28,37;, + 3; 28,29,37;, + 3; 28,20,29;, + 3; 29,39,38;, + 3; 29,30,39;, + 3; 30,40,39;, + 3; 30,31,40;, + 3; 31,41,40;, + 3; 31,32,41;, + 3; 32,42,41;, + 3; 32,33,42;, + 3; 33,6,42;, + 3; 6,34,43;, + 3; 34,44,43;, + 3; 34,35,44;, + 3; 35,45,44;, + 3; 35,36,45;, + 3; 36,46,45;, + 3; 36,37,46;, + 3; 37,38,46;, + 3; 37,29,38;, + 3; 38,48,47;, + 3; 38,39,48;, + 3; 39,49,48;, + 3; 39,40,49;, + 3; 40,50,49;, + 3; 40,41,50;, + 3; 41,51,50;, + 3; 41,42,51;, + 3; 42,6,51;, + 3; 6,43,52;, + 3; 43,53,52;, + 3; 43,44,53;, + 3; 44,54,53;, + 3; 44,45,54;, + 3; 45,55,54;, + 3; 45,46,55;, + 3; 46,47,55;, + 3; 46,38,47;, + 3; 47,57,56;, + 3; 47,48,57;, + 3; 48,58,57;, + 3; 48,49,58;, + 3; 49,59,58;, + 3; 49,50,59;, + 3; 50,60,59;, + 3; 50,51,60;, + 3; 51,6,60;, + 3; 6,52,61;, + 3; 52,62,61;, + 3; 52,53,62;, + 3; 53,63,62;, + 3; 53,54,63;, + 3; 54,64,63;, + 3; 54,55,64;, + 3; 55,56,64;, + 3; 55,47,56;, + 3; 65,56,57;, + 3; 65,57,58;, + 3; 65,58,59;, + 3; 65,59,60;, + 3; 65,60,6;, + 3; 65,6,61;, + 3; 65,61,62;, + 3; 65,62,63;, + 3; 65,63,64;, + 3; 65,64,56;; + MeshMaterialList { + 1; + 128; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material glassblutint { + 0.555100;0.800000;0.773000;1.000000;; + 60.000000; + 0.796900;0.971400;0.922300;; + 0.000000;0.000000;0.000000;; + } + } + } + } + + Frame body { + Mesh mesh-body { + 107; + 0.715357;-0.568358;2.126190;, + 0.890442;-0.660896;2.077020;, + 0.000000;-0.811893;1.696410;, + 0.511693;-0.489908;2.167880;, + 0.183646;-0.469152;2.178910;, + -0.183646;-0.469151;2.178910;, + -0.511693;-0.489908;2.167880;, + -0.715357;-0.568358;2.126190;, + -0.890442;-0.660896;2.077020;, + -0.715357;-0.746046;2.027840;, + -0.511693;-0.811971;1.986150;, + -0.276926;-0.916878;2.133810;, + 0.000000;-0.990874;2.182100;, + 0.276926;-0.916878;2.133810;, + 0.511693;-0.811971;1.986150;, + 0.715357;-0.746046;2.027840;, + 0.997806;-0.548760;1.513930;, + 1.242020;-0.647951;1.513930;, + 0.713727;-0.420280;1.513930;, + 0.545099;-0.383980;1.513930;, + -0.545099;-0.383980;1.513930;, + -0.713727;-0.420280;1.513930;, + -0.997807;-0.548760;1.513930;, + -1.242020;-0.647951;1.513930;, + -0.997806;-0.753226;1.513930;, + -0.713727;-0.868523;1.513930;, + -0.386266;-0.945561;1.513930;, + 0.000000;-0.972613;1.513930;, + 0.386267;-0.945561;1.513930;, + 0.713727;-0.868522;1.513930;, + 0.997806;-0.753226;1.513930;, + 1.148420;-0.547978;1.058770;, + 1.429490;-0.642328;1.058770;, + 0.821459;-0.376247;1.058770;, + 0.784223;-0.335284;1.058770;, + -0.784223;-0.335284;1.058770;, + -0.821459;-0.376247;1.058770;, + -1.148420;-0.547978;1.058770;, + -1.429490;-0.642328;1.058770;, + -1.148420;-0.765969;1.058770;, + -0.821459;-0.896073;1.058770;, + -0.444570;-0.983007;1.058770;, + 0.000000;-1.013530;1.058770;, + 0.444571;-0.983007;1.058770;, + 0.821460;-0.896073;1.058770;, + 1.148420;-0.765969;1.058770;, + 1.181870;-0.547978;0.276791;, + 1.471130;-0.642328;0.276791;, + 0.845385;-0.376248;0.276791;, + 0.807064;-0.335284;0.276791;, + -0.807064;-0.335285;0.276791;, + -0.845385;-0.376248;0.276791;, + -1.181870;-0.547978;0.276791;, + -1.471130;-0.642328;0.276791;, + -1.181870;-0.787173;0.276791;, + -0.845385;-0.926581;0.276791;, + -0.457519;-1.013370;0.276791;, + 0.000000;-1.053370;0.276791;, + 0.457519;-1.013370;0.276791;, + 0.845386;-0.926581;0.276791;, + 1.181870;-0.787172;0.276791;, + 1.058540;-0.547978;-0.751299;, + 1.317620;-0.642328;-0.751299;, + 0.757171;-0.376248;-0.751299;, + 0.578279;-0.335284;-0.751299;, + -0.578279;-0.335284;-0.751299;, + -0.757171;-0.376248;-0.751299;, + -1.058540;-0.547978;-0.751299;, + -1.317620;-0.642328;-0.751299;, + -1.058540;-0.765969;-0.751299;, + -0.757171;-0.896074;-0.751299;, + -0.409778;-0.983007;-0.751299;, + 0.000000;-1.013530;-0.751299;, + 0.409778;-0.983007;-0.751299;, + 0.757171;-0.896074;-0.751299;, + 1.058540;-0.765969;-0.751299;, + 0.748330;-0.528800;-1.267420;, + 0.931484;-0.629639;-1.267420;, + 0.535277;-0.415035;-1.267420;, + 0.285482;-0.380320;-1.267420;, + -0.285482;-0.380320;-1.267420;, + -0.535277;-0.415035;-1.267420;, + -0.748330;-0.528800;-1.267420;, + -0.931484;-0.629639;-1.267420;, + -0.748330;-0.731895;-1.267420;, + -0.535277;-0.842154;-1.267420;, + -0.289690;-0.915826;-1.267420;, + 0.000000;-0.941696;-1.267420;, + 0.289690;-0.915826;-1.267420;, + 0.535278;-0.842154;-1.267420;, + 0.748330;-0.731895;-1.267420;, + 0.397797;-0.544818;-1.693180;, + 0.495159;-0.639093;-1.693180;, + 0.284543;-0.464896;-1.693180;, + 0.122916;-0.443751;-1.693180;, + -0.122916;-0.443751;-1.693180;, + -0.284543;-0.464896;-1.693180;, + -0.397798;-0.544818;-1.693180;, + -0.495159;-0.639093;-1.693180;, + -0.397798;-0.689003;-1.693180;, + -0.284543;-0.756164;-1.693180;, + -0.153994;-0.801040;-1.693180;, + 0.000000;-0.816798;-1.693180;, + 0.153994;-0.801040;-1.693180;, + 0.284543;-0.756164;-1.693180;, + 0.397798;-0.689003;-1.693180;, + 0.000000;-0.542308;-2.091320;; + + 210; + 3; 2,1,0;, + 3; 2,0,3;, + 3; 2,3,4;, + 3; 2,4,5;, + 3; 2,5,6;, + 3; 2,6,7;, + 3; 2,7,8;, + 3; 2,8,9;, + 3; 2,9,10;, + 3; 2,10,11;, + 3; 2,11,12;, + 3; 2,12,13;, + 3; 2,13,14;, + 3; 2,14,15;, + 3; 2,15,1;, + 3; 1,16,0;, + 3; 1,17,16;, + 3; 0,18,3;, + 3; 0,16,18;, + 3; 3,19,4;, + 3; 3,18,19;, + 3; 4,20,5;, + 3; 4,19,20;, + 3; 5,21,6;, + 3; 5,20,21;, + 3; 6,22,7;, + 3; 6,21,22;, + 3; 7,23,8;, + 3; 7,22,23;, + 3; 8,24,9;, + 3; 8,23,24;, + 3; 9,25,10;, + 3; 9,24,25;, + 3; 10,26,11;, + 3; 10,25,26;, + 3; 11,27,12;, + 3; 11,26,27;, + 3; 12,28,13;, + 3; 12,27,28;, + 3; 13,29,14;, + 3; 13,28,29;, + 3; 14,30,15;, + 3; 14,29,30;, + 3; 15,17,1;, + 3; 15,30,17;, + 3; 17,31,16;, + 3; 17,32,31;, + 3; 16,33,18;, + 3; 16,31,33;, + 3; 18,34,19;, + 3; 18,33,34;, + 3; 19,35,20;, + 3; 19,34,35;, + 3; 20,36,21;, + 3; 20,35,36;, + 3; 21,37,22;, + 3; 21,36,37;, + 3; 22,38,23;, + 3; 22,37,38;, + 3; 23,39,24;, + 3; 23,38,39;, + 3; 24,40,25;, + 3; 24,39,40;, + 3; 25,41,26;, + 3; 25,40,41;, + 3; 26,42,27;, + 3; 26,41,42;, + 3; 27,43,28;, + 3; 27,42,43;, + 3; 28,44,29;, + 3; 28,43,44;, + 3; 29,45,30;, + 3; 29,44,45;, + 3; 30,32,17;, + 3; 30,45,32;, + 3; 32,46,31;, + 3; 32,47,46;, + 3; 31,48,33;, + 3; 31,46,48;, + 3; 33,49,34;, + 3; 33,48,49;, + 3; 34,50,35;, + 3; 34,49,50;, + 3; 35,51,36;, + 3; 35,50,51;, + 3; 36,52,37;, + 3; 36,51,52;, + 3; 37,53,38;, + 3; 37,52,53;, + 3; 38,54,39;, + 3; 38,53,54;, + 3; 39,55,40;, + 3; 39,54,55;, + 3; 40,56,41;, + 3; 40,55,56;, + 3; 41,57,42;, + 3; 41,56,57;, + 3; 42,58,43;, + 3; 42,57,58;, + 3; 43,59,44;, + 3; 43,58,59;, + 3; 44,60,45;, + 3; 44,59,60;, + 3; 45,47,32;, + 3; 45,60,47;, + 3; 47,61,46;, + 3; 47,62,61;, + 3; 46,63,48;, + 3; 46,61,63;, + 3; 48,64,49;, + 3; 48,63,64;, + 3; 49,65,50;, + 3; 49,64,65;, + 3; 50,66,51;, + 3; 50,65,66;, + 3; 51,67,52;, + 3; 51,66,67;, + 3; 52,68,53;, + 3; 52,67,68;, + 3; 53,69,54;, + 3; 53,68,69;, + 3; 54,70,55;, + 3; 54,69,70;, + 3; 55,71,56;, + 3; 55,70,71;, + 3; 56,72,57;, + 3; 56,71,72;, + 3; 57,73,58;, + 3; 57,72,73;, + 3; 58,74,59;, + 3; 58,73,74;, + 3; 59,75,60;, + 3; 59,74,75;, + 3; 60,62,47;, + 3; 60,75,62;, + 3; 62,76,61;, + 3; 62,77,76;, + 3; 61,78,63;, + 3; 61,76,78;, + 3; 63,79,64;, + 3; 63,78,79;, + 3; 64,80,65;, + 3; 64,79,80;, + 3; 65,81,66;, + 3; 65,80,81;, + 3; 66,82,67;, + 3; 66,81,82;, + 3; 67,83,68;, + 3; 67,82,83;, + 3; 68,84,69;, + 3; 68,83,84;, + 3; 69,85,70;, + 3; 69,84,85;, + 3; 70,86,71;, + 3; 70,85,86;, + 3; 71,87,72;, + 3; 71,86,87;, + 3; 72,88,73;, + 3; 72,87,88;, + 3; 73,89,74;, + 3; 73,88,89;, + 3; 74,90,75;, + 3; 74,89,90;, + 3; 75,77,62;, + 3; 75,90,77;, + 3; 77,91,76;, + 3; 77,92,91;, + 3; 76,93,78;, + 3; 76,91,93;, + 3; 78,94,79;, + 3; 78,93,94;, + 3; 79,95,80;, + 3; 79,94,95;, + 3; 80,96,81;, + 3; 80,95,96;, + 3; 81,97,82;, + 3; 81,96,97;, + 3; 82,98,83;, + 3; 82,97,98;, + 3; 83,99,84;, + 3; 83,98,99;, + 3; 84,100,85;, + 3; 84,99,100;, + 3; 85,101,86;, + 3; 85,100,101;, + 3; 86,102,87;, + 3; 86,101,102;, + 3; 87,103,88;, + 3; 87,102,103;, + 3; 88,104,89;, + 3; 88,103,104;, + 3; 89,105,90;, + 3; 89,104,105;, + 3; 90,92,77;, + 3; 90,105,92;, + 3; 92,106,91;, + 3; 91,106,93;, + 3; 93,106,94;, + 3; 94,106,95;, + 3; 95,106,96;, + 3; 96,106,97;, + 3; 97,106,98;, + 3; 98,106,99;, + 3; 99,106,100;, + 3; 100,106,101;, + 3; 101,106,102;, + 3; 102,106,103;, + 3; 103,106,104;, + 3; 104,106,105;, + 3; 105,106,92;; + MeshMaterialList { + 1; + 210; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material blue_pure { + 1.000000;1.000000;0.000000;1.000000;; + 65.890000; + 0.000000;0.000000;0.500000;; + 0.000000;0.000000;0.000000;; + } + } + } + } + +} + diff --git a/_release/Games/wing_ring/menus.bb b/_release/Games/wing_ring/menus.bb new file mode 100644 index 0000000..a12915c --- /dev/null +++ b/_release/Games/wing_ring/menus.bb @@ -0,0 +1,419 @@ +;-------------------- +; Init menus function +;-------------------- + +Function InitMenus() + + ; Load logo/get info + + logo=LoadImage("media\logo.bmp") ; Load background 'block' + logo_width=ImageWidth(logo) + logo_height=ImageHeight(logo) + Dim greyscale(logo_width,logo_height) + + SetBuffer ImageBuffer(logo) + LockBuffer() + For x=0 To ImageWidth(logo) + For y=0 To ImageHeight(logo) + pix=ReadPixelFast(x,y) + red=(pix Shr 16) And 255 + green=(pix Shr 8) And 255 + blue=pix And 255 + grey=(red+green+blue)/3.0 + greyscale(x,y)=grey + Next + Next + UnlockBuffer() + SetBuffer BackBuffer() + + ; Random starting background colour + randy=Int(Rnd(4)) + Select randy + Case 0 : col=15 : cr=255 : cg=0 : cb=0 + Case 1 : col=3 : cr=255 : cg=255 : cb=0 + Case 2 : col=6 : cr=0 : cg=255 : cb=0 + Case 3 : col=9 : cr=0 : cg=255 : cb=255 + Case 4 : col=12 : cr=255 : cg=0 : cb=255 + End Select + + ; Get graphics mode info + + count_gfx_modes=CountGfxModes() + + For g=1 To count_gfx_modes + If GfxMode3D(g)=True Then gm3d=gm3d+1 + Next + + Dim gfx_modes(gm3d,2) : gm3d=0 + + For g=1 To count_gfx_modes + If GfxMode3D(g)=True + gg=gg+1 + gfx_modes(gg,0)=GfxModeWidth(g) + gfx_modes(gg,1)=GfxModeHeight(g) + gfx_modes(gg,2)=GfxModeDepth(g) + If gfx_modes(gg,0)=width And gfx_modes(gg,1)=height And gfx_modes(gg,2)=GraphicsDepth() Then gfx_mode_option=gg + EndIf + Next + + ; Load high score data + load_file=ReadFile("media\high_scores.sav") + For s=1 To 10 + names$(s)=ReadLine(load_file) + scores(s)=ReadLine(load_file) + Next + CloseFile load_file + + ; Play music + music=PlayMusic("media\tune1.mid") + +End Function + + +; ------------------- +; Background function +; ------------------- + +Function Background() + + ; A bit of 'waiting code' inbetween colour changes + If col=1 Or col=4 Or col=7 Or col=10 Or col=13 + sr=0 + sg=0 + sb=0 + ct=ct+1 + EndIf + If ct>500 Then ct=0 : col=col+1 + + ; Update current red, green, blue values with red, green, blue step values + cr=cr+sr + cg=cg+sg + cb=cb+sb + + ; Various colour stages + + If cr=>255 And cg=>0 And cb=<0 And col=15 Then col=1 : cr=255 : cg=0 : cb=0 + If col=2 Then col=3 : dr=255 : dg=255 : db=0 : sr=(dr-cr)/fade : sg=(dg-cg)/fade : sb=(db-cb)/fade + + If cr>=255 And cg>=255 And cb<=0 And col=3 Then col=4 : cr=255 : cg=255 : cb=0 + If col=5 Then col=6 : dr=0 : dg=255 : db=0 : sr=(dr-cr)/fade : sg=(dg-cg)/fade : sb=(db-cb)/fade + + If cr<=0 And cg>=255 And cb<=0 And col=6 Then col=7 : cr=0 : cg=255 : cb=0 + If col=8 Then col=9 : dr=0 : dg=255 : db=255 : sr=(dr-cr)/fade : sg=(dg-cg)/fade : sb=(db-cb)/fade + + If cr<=0 And cg>=255 And cb>=255 And col=9 Then col=10 : cr=0 : cg=255 : cb=255 + If col=11 Then col=12 : dr=255 : dg=0 : db=255 : sr=(dr-cr)/fade : sg=(dg-cg)/fade : sb=(db-cb)/fade + + If cr>=255 And cg<=0 And cb>=255 And col=12 Then col=13 : cr=255 : cg=0 : cb=255 + If col=14 Then col=15 : dr=255 : dg=0 : db=0 : sr=(dr-cr)/fade : sg=(dg-cg)/fade : sb=(db-cb)/fade + + ; Draw block each frame! + SetBuffer ImageBuffer(logo) + LockBuffer() + For x=0 To ImageWidth(logo) + For y=0 To ImageHeight(logo) + red=greyscale(x,y)*(cr/255.0) + green=greyscale(x,y)*(cg/255.0) + blue=greyscale(x,y)*(cb/255.0) + pix=(red Shl 16) Or (green Shl 8) Or blue + WritePixelFast x,y,pix + Next + Next + UnlockBuffer() + SetBuffer BackBuffer() + + ; Tile the block + TileBlock logo,0,tile_y + tile_y=tile_y+1 + If tile_y>119 Then tile_y=tile_y-120 + +End Function + + +; ---------------- +; Credits function +; ---------------- + +Function Credits() + + ; Shadow text + Color 0,0,0 + Text (width/2)+1,(y_space*1)+1,"Wing Ring V1.0",1 + Text (width/2)+1,(y_space*3)+1,"Credits",1 + Text (width/2)+1,(y_space*5)+1,"Programmed by Si",1 + Text (width/2)+1,(y_space*6)+1,"si@si-design.co.uk",1 + Text (width/2)+1,(y_space*9)+1,"In Blitz3D",1 + If option=1 Then Text (width/2)+1,(y_space*7)+1,"> www.si-design.co.uk <",1 Else Text (width/2)+1,(y_space*7)+1,"www.si-design.co.uk",1 + If option=2 Then Text (width/2)+1,(y_space*10)+1,"> www.blitzbasic.com <",1 Else Text (width/2)+1,(y_space*10)+1,"www.blitzbasic.com",1 + If option=3 Then Text (width/2)+1,(y_space*11)+1,"> www.blitz3d.co.uk <",1 Else Text (width/2)+1,(y_space*11)+1,"www.blitz3d.co.uk",1 + If option=4 Then Text (width/2)+1,(y_space*13)+1,"> 1 Player <",1 Else Text (width/2)+1,(y_space*13)+1,"1 Player",1 + If option=5 Then Text (width/2)+1,(y_space*14)+1,"> 2 Player <",1 Else Text (width/2)+1,(y_space*14)+1,"2 Player",1 + If option=6 Then Text (width/2)+1,(y_space*15)+1,"> High Scores <",1 Else Text (width/2)+1,(y_space*15)+1,"High Scores",1 + If option=7 Then Text (width/2)+1,(y_space*16)+1,"> Options <",1 Else Text (width/2)+1,(y_space*16)+1,"Options",1 + + ; White text + Color 255,255,255 + Text (width/2)+0,(y_space*1)+0,"Wing Ring V1.0",1 + Text (width/2)+0,(y_space*3)+0,"Credits",1 + Text (width/2)+0,(y_space*5)+0,"Programmed by Si",1 + Text (width/2)+0,(y_space*6)+0,"si@si-design.co.uk",1 + Text (width/2)+0,(y_space*9)+0,"In Blitz3D",1 + If option=1 Then Text (width/2)+0,(y_space*7)+0,"> www.si-design.co.uk <",1 Else Text (width/2)+0,(y_space*7)+0,"www.si-design.co.uk",1 + If option=2 Then Text (width/2)+0,(y_space*10)+0,"> www.blitzbasic.com <",1 Else Text (width/2)+0,(y_space*10)+0,"www.blitzbasic.com",1 + If option=3 Then Text (width/2)+0,(y_space*11)+0,"> www.blitz3d.co.uk <",1 Else Text (width/2)+0,(y_space*11)+0,"www.blitz3d.co.uk",1 + If option=4 Then Text (width/2)+0,(y_space*13)+0,"> 1 Player <",1 Else Text (width/2)+0,(y_space*13)+0,"1 Player",1 + If option=5 Then Text (width/2)+0,(y_space*14)+0,"> 2 Player <",1 Else Text (width/2)+0,(y_space*14)+0,"2 Player",1 + If option=6 Then Text (width/2)+0,(y_space*15)+0,"> High Scores <",1 Else Text (width/2)+0,(y_space*15)+0,"High Scores",1 + If option=7 Then Text (width/2)+0,(y_space*16)+0,"> Options <",1 Else Text (width/2)+0,(y_space*16)+0,"Options",1 + + ; Up/down option + If KeyHit(200)=1 Then option=option-1 + If KeyHit(208)=1 Then option=option+1 + If option>7 Then option=1 + If option<1 Then option=7 + + ; Enter option + If KeyHit(28)=True + If option=1 Then ExecFile "http://www.si-design.co.uk/index.htm?referrer=wing_ring" + If option=2 Then ExecFile "http://www.blitzbasic.com" + If option=3 Then ExecFile "http://www.blitz3d.co.uk/index.htm?referrer=wing_ring" + If option>3 Then screen=option + EndIf + +End Function + + +; ------------------- +; Highscores function +; ------------------- + +Function HighScores() + + ; Shadow text + Color 0,0,0 + Text (width/2)+1,(y_space*1)+1,"Wing Ring V1.0",1 + Text (width/2)+1,(y_space*3)+1,"High Scores",1 + If option=1 And rank=1 Then Text x_nos-17,(y_space*5)+1,"> 1." Else Text x_nos+1,(y_space*5)+1,"1." + If option=1 And rank=2 Then Text x_nos-17,(y_space*6)+1,"> 2." Else Text x_nos+1,(y_space*6)+1,"2." + If option=1 And rank=3 Then Text x_nos-17,(y_space*7)+1,"> 3." Else Text x_nos+1,(y_space*7)+1,"3." + If option=1 And rank=4 Then Text x_nos-17,(y_space*8)+1,"> 4." Else Text x_nos+1,(y_space*8)+1,"4." + If option=1 And rank=5 Then Text x_nos-17,(y_space*9)+1,"> 5." Else Text x_nos+1,(y_space*9)+1,"5." + If option=1 And rank=6 Then Text x_nos-17,(y_space*10)+1,"> 6." Else Text x_nos+1,(y_space*10)+1,"6." + If option=1 And rank=7 Then Text x_nos-17,(y_space*11)+1,"> 7." Else Text x_nos+1,(y_space*11)+1,"7." + If option=1 And rank=8 Then Text x_nos-17,(y_space*12)+1,"> 8." Else Text x_nos+1,(y_space*12)+1,"8." + If option=1 And rank=9 Then Text x_nos-17,(y_space*13)+1,"> 9." Else Text x_nos+1,(y_space*13)+1,"9." + If option=1 And rank=10 Then Text x_nos-17,(y_space*14)+1,"> 10." Else Text x_nos+1,(y_space*14)+1,"10." + Text x_names+1,(y_space*5)+1,names$(1) + Text x_names+1,(y_space*6)+1,names$(2) + Text x_names+1,(y_space*7)+1,names$(3) + Text x_names+1,(y_space*8)+1,names$(4) + Text x_names+1,(y_space*9)+1,names$(5) + Text x_names+1,(y_space*10)+1,names$(6) + Text x_names+1,(y_space*11)+1,names$(7) + Text x_names+1,(y_space*12)+1,names$(8) + Text x_names+1,(y_space*13)+1,names$(9) + Text x_names+1,(y_space*14)+1,names$(10) + If option=1 And rank=1 Then Text x_scores+1,(y_space*5)+1,scores(1)+" <" Else Text x_scores+1,(y_space*5)+1,scores(1) + If option=1 And rank=2 Then Text x_scores+1,(y_space*6)+1,scores(2)+" <" Else Text x_scores+1,(y_space*6)+1,scores(2) + If option=1 And rank=3 Then Text x_scores+1,(y_space*7)+1,scores(3)+" <" Else Text x_scores+1,(y_space*7)+1,scores(3) + If option=1 And rank=4 Then Text x_scores+1,(y_space*8)+1,scores(4)+" <" Else Text x_scores+1,(y_space*8)+1,scores(4) + If option=1 And rank=5 Then Text x_scores+1,(y_space*9)+1,scores(5)+" <" Else Text x_scores+1,(y_space*9)+1,scores(5) + If option=1 And rank=6 Then Text x_scores+1,(y_space*10)+1,scores(6)+" <" Else Text x_scores+1,(y_space*10)+1,scores(6) + If option=1 And rank=7 Then Text x_scores+1,(y_space*11)+1,scores(7)+" <" Else Text x_scores+1,(y_space*11)+1,scores(7) + If option=1 And rank=8 Then Text x_scores+1,(y_space*12)+1,scores(8)+" <" Else Text x_scores+1,(y_space*12)+1,scores(8) + If option=1 And rank=9 Then Text x_scores+1,(y_space*13)+1,scores(9)+" <" Else Text x_scores+1,(y_space*13)+1,scores(9) + If option=1 And rank=10 Then Text x_scores+1,(y_space*14)+1,scores(10)+" <" Else Text x_scores+1,(y_space*14)+1,scores(10) + If option=0 Then Text (width/2)+1,(y_space*16)+1,"> Back <",1 Else Text (width/2)+1,(y_space*16)+1,"Back",1 + + ; White text + Color 255,255,255 + Text (width/2)+0,(y_space*1)+0,"Wing Ring V1.0",1 + Text (width/2)+0,(y_space*3)+0,"High Scores",1 + If option=1 And rank=1 Then Text x_nos-18,(y_space*5)+0,"> 1." Else Text x_nos+0,(y_space*5)+0,"1." + If option=1 And rank=2 Then Text x_nos-18,(y_space*6)+0,"> 2." Else Text x_nos+0,(y_space*6)+0,"2." + If option=1 And rank=3 Then Text x_nos-18,(y_space*7)+0,"> 3." Else Text x_nos+0,(y_space*7)+0,"3." + If option=1 And rank=4 Then Text x_nos-18,(y_space*8)+0,"> 4." Else Text x_nos+0,(y_space*8)+0,"4." + If option=1 And rank=5 Then Text x_nos-18,(y_space*9)+0,"> 5." Else Text x_nos+0,(y_space*9)+0,"5." + If option=1 And rank=6 Then Text x_nos-18,(y_space*10)+0,"> 6." Else Text x_nos+0,(y_space*10)+0,"6." + If option=1 And rank=7 Then Text x_nos-18,(y_space*11)+0,"> 7." Else Text x_nos+0,(y_space*11)+0,"7." + If option=1 And rank=8 Then Text x_nos-18,(y_space*12)+0,"> 8." Else Text x_nos+0,(y_space*12)+0,"8." + If option=1 And rank=9 Then Text x_nos-18,(y_space*13)+0,"> 9." Else Text x_nos+0,(y_space*13)+0,"9." + If option=1 And rank=10 Then Text x_nos-18,(y_space*14)+0,"> 10." Else Text x_nos+0,(y_space*14)+0,"10." + Text x_names+0,(y_space*5)+0,names$(1) + Text x_names+0,(y_space*6)+0,names$(2) + Text x_names+0,(y_space*7)+0,names$(3) + Text x_names+0,(y_space*8)+0,names$(4) + Text x_names+0,(y_space*9)+0,names$(5) + Text x_names+0,(y_space*10)+0,names$(6) + Text x_names+0,(y_space*11)+0,names$(7) + Text x_names+0,(y_space*12)+0,names$(8) + Text x_names+0,(y_space*13)+0,names$(9) + Text x_names+0,(y_space*14)+0,names$(10) + If option=1 And rank=1 Then Text x_scores+0,(y_space*5)+0,scores(1)+" <" Else Text x_scores+0,(y_space*5)+0,scores(1) + If option=1 And rank=2 Then Text x_scores+0,(y_space*6)+0,scores(2)+" <" Else Text x_scores+0,(y_space*6)+0,scores(2) + If option=1 And rank=3 Then Text x_scores+0,(y_space*7)+0,scores(3)+" <" Else Text x_scores+0,(y_space*7)+0,scores(3) + If option=1 And rank=4 Then Text x_scores+0,(y_space*8)+0,scores(4)+" <" Else Text x_scores+0,(y_space*8)+0,scores(4) + If option=1 And rank=5 Then Text x_scores+0,(y_space*9)+0,scores(5)+" <" Else Text x_scores+0,(y_space*9)+0,scores(5) + If option=1 And rank=6 Then Text x_scores+0,(y_space*10)+0,scores(6)+" <" Else Text x_scores+0,(y_space*10)+0,scores(6) + If option=1 And rank=7 Then Text x_scores+0,(y_space*11)+0,scores(7)+" <" Else Text x_scores+0,(y_space*11)+0,scores(7) + If option=1 And rank=8 Then Text x_scores+0,(y_space*12)+0,scores(8)+" <" Else Text x_scores+0,(y_space*12)+0,scores(8) + If option=1 And rank=9 Then Text x_scores+0,(y_space*13)+0,scores(9)+" <" Else Text x_scores+0,(y_space*13)+0,scores(9) + If option=1 And rank=10 Then Text x_scores+0,(y_space*14)+0,scores(10)+" <" Else Text x_scores+0,(y_space*14)+0,scores(10) + If option=0 Then Text (width/2)+0,(y_space*16)+0,"> Back <",1 Else Text (width/2)+0,(y_space*16)+0,"Back",1 + + ; Input routine + + If rank>=1 And rank<=10 + gk=GetKey() + + If Len(names$(rank))<=4 Or gk=8 ; If size of string is less than six characters long or backspace key is pressed + + Select gk + Case 0 ; Nothing! Just stops no key press (0) being used with the default option which results in ||| being shown + Case 13 ; Stops return key being used + Case 28 ; Stops up cursor key being used + Case 29 ; Stops down cursor key being used + Case 8 : If Len(names$(rank))>0 Then names$(rank)=Left$(names$(rank),Len(names$(rank))-1) + Default : names$(rank)=names$(rank)+Chr$(gk) + End Select + + EndIf + + EndIf + + ; Up/down option + If KeyHit(200)=1 Then option=option-1 + If KeyHit(208)=1 Then option=option+1 + + ; Choice of options depending on whether high score is yet to be entered or not + If rank<1 Or rank>10 + If option>0 Then option=0 + If option<0 Then option=0 + Else + If option>1 Then option=0 + If option<0 Then option=1 + EndIf + + ; Enter option + + If KeyHit(28)=True + + If option=0 Then screen=option : option=6 ; Back + + ; Save scores + If option=1 + save_file=WriteFile("high_scores.sav") + For s=1 To 10 + WriteLine save_file,names$(s) + WriteLine save_file,scores(s) + Next + CloseFile save_file + rank=11 + EndIf + + EndIf + +End Function + + +; ---------------- +; Options function +; ---------------- + +Function Options() + + kh=KeyHit(28) + + ; Shadow text + + Color 0,0,0 + + Text (width/2)+1,(y_space*1)+1,"Wing Ring V1.0",1 + Text (width/2)+1,(y_space*3)+1,"Options",1 + Text (width/2)+1,(y_space*5)+1,"Graphics Mode:",1 + Text (width/2)+1,(y_space*8)+1,"Windowed:",1 + + If option=1 + Text (width/2)+1,(y_space*6)+1,">"+gfx_modes(gfx_mode_option,0)+"x"+gfx_modes(gfx_mode_option,1)+"x"+gfx_modes(gfx_mode_option,2)+"<",1 + Else + Text (width/2)+1,(y_space*6)+1,gfx_modes(gfx_mode_option,0)+"x"+gfx_modes(gfx_mode_option,1)+"x"+gfx_modes(gfx_mode_option,2),1 + EndIf + + If option=2 + If Windowed3D()=False + Text (width/2)+1,(y_space*9)+1,"> Unavailable <",1 + Else + If mode_option=1 Then Text (width/2)+1,(y_space*9)+1,"> No <",1 + If mode_option=2 Then Text (width/2)+1,(y_space*9)+1,"> Yes <",1 + EndIf + Else + If Windowed3D()=False + Text (width/2)+1,(y_space*9)+1,"Unavailable",1 + Else + If mode_option=1 Then Text (width/2)+1,(y_space*9)+1,"No",1 + If mode_option=2 Then Text (width/2)+1,(y_space*9)+1,"Yes",1 + EndIf + EndIf + + If option=0 Then Text (width/2)+1,(y_space*16)+1,"> Back <",1 Else Text (width/2)+1,(y_space*16)+1,"Back",1 + + ; White text + + Color 255,255,255 + + Text (width/2)+0,(y_space*1)+0,"Wing Ring V1.0",1 + Text (width/2)+0,(y_space*3)+0,"Options",1 + Text (width/2)+0,(y_space*5)+0,"Graphics Mode:",1 + Text (width/2)+0,(y_space*8)+0,"Windowed:",1 + + If option=1 + Text (width/2)+0,(y_space*6)+0,">"+gfx_modes(gfx_mode_option,0)+"x"+gfx_modes(gfx_mode_option,1)+"x"+gfx_modes(gfx_mode_option,2)+"<",1 + Else + Text (width/2)+0,(y_space*6)+0,gfx_modes(gfx_mode_option,0)+"x"+gfx_modes(gfx_mode_option,1)+"x"+gfx_modes(gfx_mode_option,2),1 + EndIf + + If option=2 + If Windowed3D()=False + Text (width/2)+0,(y_space*9)+0,"> Unavailable <",1 + Else + If mode_option=1 Then Text (width/2)+0,(y_space*9)+0,"> No <",1 + If mode_option=2 Then Text (width/2)+0,(y_space*9)+0,"> Yes <",1 + EndIf + Else + If Windowed3D()=False + Text (width/2)+0,(y_space*9)+0,"Unavailable",1 + Else + If mode_option=1 Then Text (width/2)+0,(y_space*9)+0,"No",1 + If mode_option=2 Then Text (width/2)+0,(y_space*9)+0,"Yes",1 + EndIf + EndIf + + If option=0 Then Text (width/2)+0,(y_space*16)+0,"> Back <",1 Else Text (width/2)+0,(y_space*16)+0,"Back",1 + + ; Up/down option + If KeyHit(200)=1 Then option=option-1 + If KeyHit(208)=1 Then option=option+1 + If option>2 Then option=0 + If option<0 Then option=2 + + ; Enter option + If kh=True And option=1 Then gfx_mode_option=gfx_mode_option+1 : If gfx_mode_option=>count_gfx_modes Then gfx_mode_option=1 + If kh=True And option=2 And Windowed3D()=True ; Only allow user to toggle windowed mode option if windowed 3d mode is available + If mode_option=1 Then mode_option=2 Else mode_option=1 + EndIf + If kh=True And option=0 + screen=option + w=gfx_modes(gfx_mode_option,0) + h=gfx_modes(gfx_mode_option,1) + d=gfx_modes(gfx_mode_option,2) + If width<>w Or height<>h Or depth<>d Or mode_option<>mode + width=w : height=h : depth=d : mode=mode_option + Graphics3D width,height,depth,mode + logo=LoadImage("logo.bmp") + y_space#=height/18 + x_space=width/71 : x_nos=((width/4)-((9*3)/2)) : x_names=((width/2)-((9*5)/2)) : x_scores=((width/1.33)-((9*5)/2)) + LoadMedia() : CreateEntities() : InitCollisions() + EndIf + EndIf + +End Function \ No newline at end of file diff --git a/_release/Games/wing_ring/player2.bb b/_release/Games/wing_ring/player2.bb new file mode 100644 index 0000000..fda7379 --- /dev/null +++ b/_release/Games/wing_ring/player2.bb @@ -0,0 +1,229 @@ +; Exact replicas of player 1 functions but for player 2 + +; ----------- +; Game Input2 +; ----------- + +Function GameInput2() + + ; Move up/down + If JoyYDir()=-1 Then plane2_dy=plane2_dy+2 : cam2_dy=cam2_dy+2 + If JoyYDir()=1 Then plane2_dy=plane2_dy-2 : cam2_dy=cam2_dy-2 + + ; Turn left/right + If JoyXDir()=-1 Then plane2_day=plane2_day+2 : cam2_day=cam2_day+2 + If JoyXDir()=1 Then plane2_day=plane2_day-2 : cam2_day=cam2_day-2 + + ; Move forward - normal + If JoyDown(3)=True And blue_bonus2_status=False + plane2_dx=plane2_dx-Sin(plane2_ay)*8 + plane2_dz=plane2_dz+Cos(plane2_ay)*8 + cam2_dx=cam2_dx-Sin(cam2_ay)*8 + cam2_dz=cam2_dz+Cos(cam2_ay)*8 + EndIf + + ; Move forward - blue bonus - extra speed + If JoyDown(3)=True And blue_bonus2_status=True + plane2_dx=plane2_dx-Sin(plane2_ay)*16 + plane2_dz=plane2_dz+Cos(plane2_ay)*16 + cam2_dx=cam2_dx-Sin(cam2_ay)*16 + cam2_dz=cam2_dz+Cos(cam2_ay)*16 + EndIf + + ; Fire bullet - normal + If JoyHit(1)=True And rapid_fire_status2=False + p2.plane2_bullet=New plane2_bullet + p2\entity=CopyEntity(bullet,plane2) + EntityType p2\entity,type_plane2_bullet + EntityParent p2\entity,0 + TurnEntity p2\entity,0,270,0 + MoveEntity p2\entity,0,0,10 + p2\alpha=1 + EndIf + + ; Fire bullet - yellow bonus - rapid fire + yellow_bonus2_pause=yellow_bonus2_pause+1 + If JoyDown(1)=True And yellow_bonus2_status=True And yellow_bonus2_pause>=3 + yellow_bonus2_pause=0 + p2.plane2_bullet=New plane2_bullet + p2\entity=CopyEntity(bullet,plane2) + EntityType p2\entity,type_plane2_bullet + EntityParent p2\entity,0 + TurnEntity p2\entity,0,270,0 + MoveEntity p2\entity,0,0,10 + p2\alpha=1 + EndIf + +End Function + + +; ---------------------- +; Update plane2 function +; ---------------------- + +Function UpdatePlane2() + + ; Prevent plane2 and main cam from going too low/high + If plane2_dy<2 Then plane2_dy=2 + If plane2_dy>1000 Then plane2_dy=1000 + If cam2_dy<2 Then cam2_dy=2 + If cam2_dy>1000 Then cam2_dy=1000 + + ; Update plane2 position/angle values + plane2_x=plane2_x+((plane2_dx-plane2_x)/curve_plane) + plane2_y=plane2_y+((plane2_dy-plane2_y)/curve_plane) + plane2_z=plane2_z+((plane2_dz-plane2_z)/curve_plane) + plane2_ay=plane2_ay+((plane2_day-plane2_ay)/curve_plane) + + PositionEntity plane2,plane2_x,plane2_y,plane2_z + RotateEntity plane2,0,plane2_ay+90,0 + + ; Update camera2 position values + cam2_x=cam2_x+((cam2_dx-cam2_x)/curve_cam) + cam2_y=cam2_y+((cam2_dy-cam2_y)/curve_cam) + cam2_z=cam2_z+((cam2_dz-cam2_z)/curve_cam) + cam2_ay=cam2_ay+((cam2_day-cam2_ay)/curve_cam) + + PositionEntity main_cam2,plane2_x+Sin(cam2_ay)*50,cam2_y,plane2_z-Cos(cam2_ay)*50 + RotateEntity main_cam2,0,cam2_ay,0 + + PositionEntity top_cam2,plane2_x,plane2_y#+75,plane2_z + RotateEntity top_cam2,90,plane2_ay,0 + + ; Update plane2 bullets + For p2.plane2_bullet=Each plane2_bullet + MoveEntity p2\entity,0,0,100 + If EntityDistance(p2\entity,plane2)>5000 Then FreeEntity p2\entity : Delete p2 + Next + + ; Check to see if plane2 is inside bank zone and if so bank pot + temp_pivot=CreatePivot() + PositionEntity temp_pivot,red_ring_x,plane2_y,red_ring_z + If EntityDistance(temp_pivot,plane2)<=625 And pot2>0 Then bank2=bank2+pot2 : pot2=0 + FreeEntity temp_pivot + +End Function + + +; ----------------------- +; Update Camels2 function +; ----------------------- + +Function UpdateCamels2() + + For c.camel=Each camel + + ; Turn camels, fade them + TurnEntity c\entity,0,2,0 + EntityAlpha c\entity,c\alpha : c\alpha=c\alpha-0.0005 + + ; Use EntityDistance command to check for collision between camel and plane + If EntityDistance(c\entity,plane2)<=40 + plane2_bonus=c\colour + c\alpha=0 + EndIf + + ; Delete camel if invisible + If c\alpha<=0 Then FreeEntity c\entity : Delete c + + Next + + ; Orange bonus - shield + + ; Time + If orange_bonus2_time>300 Then EntityAlpha shield2,0.5 Else EntityAlpha shield2,orange_bonus2_time/600.0 + If orange_bonus2_time>0 Then orange_bonus2_time=orange_bonus2_time-1 + + ; Activate + If plane2_bonus=1 + orange_bonus2_status=True + orange_bonus2_time=orange_bonus2_time+600 + EntityType plane2,type_none + plane2_bonus=0 + EndIf + + ; Deactivate + If orange_bonus2_time=0 And orange_bonus2_status=True + orange_bonus2_status=False + EntityType plane2,type_plane2 + EndIf + + ; Yellow bonus - rapid fire + If yellow_bonus2_time>0 Then yellow_bonus2_time=yellow_bonus2_time-1 ; time + If plane2_bonus=2 Then yellow_bonus2_status=True : yellow_bonus2_time=yellow_bonus2_time+600 : plane2_bonus=0 ; activate + If yellow_bonus2_time=0 And yellow_bonus2_status=True Then yellow_bonus2_status=False ; deactivate + + ; Green bonus - homing missiles + If green_bonus2_time>0 Then green_bonus2_time=green_bonus2_time-1 ; time + If plane2_bonus=3 Then green_bonus2_status=True : green_bonus2_time=green_bonus2_time+600 : plane2_bonus=0 ; activate + If green_bonus2_time=0 And green_bonus2_status=True Then green_bonus2_status=False ; deactivate + + ; Turquoise bonus - extra speed + If blue_bonus2_time>0 Then blue_bonus2_time=blue_bonus2_time-1 ; time + If plane2_bonus=4 Then blue_bonus2_status=True : blue_bonus2_time=blue_bonus2_time+600 : plane2_bonus=0 ; activate + If blue_bonus2_time=0 And blue_bonus2_status=True Then blue_bonus2_status=False ; deactivate + + ; Pink bonus - UFO to rings + If pink_bonus2_time>0 Then pink_bonus2_time=pink_bonus2_time-1 ; time + If plane2_bonus=5 Then pink_bonus2_status=True : pink_bonus2_time=pink_bonus2_time+600 : plane2_bonus=0 ; activate + If pink_bonus2_time=0 And pink_bonus2_status=True Then pink_bonus2_status=False ; deactivate + +End Function + + +; -------------------------- +; Check Collisions2 function +; -------------------------- + +Function CheckCollisions2() + + ; Ufo and plane2 bullet + For u.ufo=Each ufo + entity_col=EntityCollided(u\entity,type_plane2_bullet) + If entity_col<>0 + DeleteBullet2(entity_col) + pot2=pot2+Points(u) + CreateShadow(u) ; Create a new shadow that will reflect explosion sparks after old ufo + shadow have been nuked + ExplodeUfo(u,2) + EndIf + Next + + ; Ufo bullet and plane2 + If orange_bonus2_status=False + For ub.ufo_bullet=Each ufo_bullet + If EntityCollided(ub\entity,type_plane2)<>0 + If pot2>0 + pot2=0 + FreeEntity ub\entity + Delete ub + po.points=New points + po\entity=CopyEntity(points_bust,plane2) + ShowEntity po\entity + EntityParent po\entity,0 + po\alpha=1 + Else + game_over2=True + ExplodePlane(plane2) + EndIf + EndIf + Next + EndIf + + ; Plane2 and statue + If EntityCollided(plane2,type_statue)<>0 Then game_over2=True : ExplodePlane(plane2) + +End Function + + +; ----------------------- +; Delete Bullet2 function +; ----------------------- + +Function DeleteBullet2(entity_col) + + ; Delete bullet that hits ufo + For p2.plane2_bullet=Each plane2_bullet + If p2\entity=entity_col Then FreeEntity p2\entity : Delete p2 : Exit + Next + +End Function \ No newline at end of file diff --git a/_release/Games/wing_ring/readme.bb b/_release/Games/wing_ring/readme.bb new file mode 100644 index 0000000..826a342 --- /dev/null +++ b/_release/Games/wing_ring/readme.bb @@ -0,0 +1,37 @@ +; The aim of the game is to gain as many points as possible. + + +; Controls +; -------- + +; Player 1 - Keyboard. A = Forward. S = Shoot. Cursor keys = Move. +; Player 2 - Joypad. + + +; Points +; ------ + +; Points go in the pot. +; Bank the pot by flying within the radius of the centre red ring. +; Get shot and the pot is emptied. +; If the pot is already empty then you die. + +; Orange ufo = 200 points +; Yellow ufo = 400 points +; Green ufo = 600 points +; Turquoise ufo = 800 points +; Pink ufo = 1000 points + +; Pink ring = x2 +; Turquoise ring = x4 +; Green ring = x6 +; Yellow ring = x8 +; Orange ring = x10 + +; Same colour ufo + same colour ring = bonus camel. + +; Orange camel = shield +; Yellow camel = rapid fire +; Green camel = chain explosions +; Turquoise camel = extra speed +; Pink camel = ufos to rings \ No newline at end of file diff --git a/_release/Games/wing_ring/readme.txt b/_release/Games/wing_ring/readme.txt new file mode 100644 index 0000000..8197dfc --- /dev/null +++ b/_release/Games/wing_ring/readme.txt @@ -0,0 +1,37 @@ +The aim of the game is to gain as many points as possible. + + +Controls +-------- + +Player 1 - Keyboard. A = Forward. S = Shoot. Cursor keys = Move. +Player 2 - Joypad. + + +Points +------ + +* Points go in the pot. +* Bank the pot by flying within the radius of the centre red ring. +* Get shot and the pot is emptied. +* If the pot is already empty then you die. + +Orange ufo = 200 points +Yellow ufo = 400 points +Green ufo = 600 points +Turquoise ufo = 800 points +Pink ufo = 1000 points + +Pink ring = x2 +Turquoise ring = x4 +Green ring = x6 +Yellow ring = x8 +Orange ring = x10 + +* Same colour ufo + same colour ring = bonus camel. + +Orange camel = shield +Yellow camel = rapid fire +Green camel = chain explosions +Turquoise camel = extra speed +Pink camel = ufos to rings \ No newline at end of file diff --git a/_release/Games/wing_ring/scenery.bb b/_release/Games/wing_ring/scenery.bb new file mode 100644 index 0000000..f32711f --- /dev/null +++ b/_release/Games/wing_ring/scenery.bb @@ -0,0 +1,107 @@ +; -------------- +; Egypt function +; -------------- + +Function Egypt() + + plane1_y#=250 + plane1_dy#=250 + cam1_y#=250 + cam1_dy#=250 + + plane2_y#=250 + plane2_dy#=250 + cam2_y#=250 + cam2_dy#=250 + + statue=sphinx + solar=sun + solar_y=500 + solar_z=1000 + solar_scale=300 + solar_scale_shake=10 + + ; Hide USA scenery + HideEntity liberty + HideEntity moon + TextureBlend lights_multi_tex,0 + + ; Show Egypt scenery + AmbientLight 127,127,127 + ShowEntity sphinx + + EntityTexture ground,sand_tex + EntityColor ground,168,133,55 + + EntityTexture sky,sky_tex + + If no_players=1 Then ShowEntity sky : ShowEntity sun : Else HideEntity sky : HideEntity sun + + CameraClsColor main_cam1,96,160,248 + CameraFogColor main_cam1,96,160,248 + If no_players=1 Then CameraFogMode main_cam1,False Else CameraFogMode main_cam1,True + CameraClsColor top_cam1,96,160,248 + + If no_players=2 + CameraClsColor main_cam2,96,160,248 + CameraFogColor main_cam2,96,160,248 + CameraClsColor top_cam2,96,160,248 + EndIf + +End Function + + +; ------------ +; USA function +; ------------ + +Function USA() + + plane1_y#=750 + plane1_dy#=750 + cam1_y#=750 + cam1_dy#=750 + + plane2_y#=750 + plane2_dy#=750 + cam2_y#=750 + cam2_dy#=750 + + statue=liberty + solar=moon + solar_y=1000 + solar_z=2000 + solar_scale=300 + solar_scale_shake=0 + + ; Hide Egypt scenery + HideEntity sphinx + HideEntity sun + + ; Show USA scenery + AmbientLight 63,63,63 + ShowEntity liberty + + EntityTexture ground,lights_tex,0,0 + EntityColor ground,255,255,255 + + ; Multi-texture + EntityTexture ground,lights_multi_tex,0,1 + TextureBlend lights_multi_tex,2 + + EntityTexture sky,night_sky_tex + + If no_players=1 Then ShowEntity sky : ShowEntity moon : Else HideEntity sky : HideEntity moon + + CameraClsColor main_cam1,0,0,0 + CameraFogColor main_cam1,0,0,0 + CameraFogMode main_cam1,True + CameraClsColor top_cam1,0,0,0 + + If no_players=2 + CameraClsColor main_cam2,0,0,0 + CameraFogColor main_cam2,0,0,0 + CameraClsColor top_cam2,0,0,0 + EndIf + +End Function \ No newline at end of file diff --git a/_release/Games/wing_ring/wing_ring.bb b/_release/Games/wing_ring/wing_ring.bb new file mode 100644 index 0000000..51c659e --- /dev/null +++ b/_release/Games/wing_ring/wing_ring.bb @@ -0,0 +1,1847 @@ +; ------------------------------------ +; Name: Wing Ring +; Version: V1.0 +; Author: Simon Harrison +; Email: si@si-design.co.uk +; Website: http://www.si-design.co.uk +; Date: 18/09/01 +; ------------------------------------ + +; Player 1 - Keyboard. A = Forward. S = Shoot. Cursor keys = Move. +; Player 2 - Joypad. + + +AppTitle "Wing Ring V1.0" + +Global width=640,height=480,depth=16,mode=1 +Graphics3D width,height,depth,mode +SetBuffer BackBuffer() + +SeedRnd MilliSecs() + + +; -------------- +; Menu variables +; -------------- + +; Menu background +Global logo,logo_width,logo_height,tile_y ; Logo-related variables +Global cr#,cg#,cb# ; Current red, green, blue values +Global dr#,dg#,db# ; Destination red, green, blue values +Global sr#,sg#,sb# ; Step red, green, blue values +Global col,ct,fade=100 ; Current colour, time, fade + +; Menu text spacing +Global y_space#=height/18,option=4,screen +Global x_space=width/71,x_nos=((width/4)-((9*3)/2)),x_names=((width/2)-((9*5)/2)),x_scores=((width/1.33)-((9*5)/2)) + +; Graphics modes +Global count_gfx_modes=CountGfxModes(),gfx_mode_option,mode_option=1 + +; Arrays +Dim greyscale(0,0) +Dim gfx_modes(0,2) +Dim names$(11),scores(11) : scores(11)=0 + +; High score rank +Global rank + + +; ---------------------- +; General game variables +; ---------------------- + +; Game-timing stuff +Const fps=60 +Global elapsed,time,tween#,period=1000/fps + +; Collision types +Const type_none=0,type_plane1=1,type_plane1_bullet=2,type_plane2=3,type_plane2_bullet=4,type_ufo=5,type_ufo_bullet=6,type_statue=7 + +; No of players +Global no_players + +; Score values +Global pot1,bank1 ; Player 1 +Global pot2,bank2 ; Player 2 + +; Game over values +Global game_over1=False,game_over1_delay ; Player 1 +Global game_over2,game_over2_delay ; Player 2 + + +; ----------------------------- +; Lighting and camera variables +; ----------------------------- + +; Light and camera entities +Global light +Global main_cam1,top_cam1 ; Player 1 +Global main_cam2,top_cam2 ; Player 2 + +; Camera 1 position values +Global cam1_x#,cam1_y#=1000,cam1_z#,cam1_ay#=180 ; Current values +Global cam1_dx#,cam1_dy#=1000,cam1_dz#,cam1_day#=180 ; Destination values + +; Camera 2 position values +Global cam2_x#,cam2_y#=1000,cam2_z#,cam2_ay#=180 ; Current values +Global cam2_dx#,cam2_dy#=1000,cam2_dz#,cam2_day#=180 ; Destination values + + +; ----------------- +; Scenery variables +; ----------------- + +; Scenery entities +Global sphinx,liberty,ground,ring,sky,sun,moon + +; Senery textures +Global sand_tex,lights_tex,lights_multi_tex,sky_tex,night_sky_tex + +; Pointers to scenery entities (sort of) +Global statue,solar,solar_y,solar_z,solar_scale,solar_scale_shake + +; Scenery value +Global scenery + +; Ring values +Global red_ring_x#=0,red_ring_z#=0,red_ring_radius#=625 +Global orange_ring_x#=0,orange_ring_z#=2773.4375,orange_ring_radius#=1406.25 +Global yellow_ring_x#=2578.125,yellow_ring_z#=898.4375,yellow_ring_radius#=1250 +Global green_ring_x#=-2578.125,green_ring_z#=898.4375,green_ring_radius#=1093.75 +Global blue_ring_x#=1601.5625,blue_ring_z#=-2187.5,blue_ring_radius#=937.5 +Global pink_ring_x#=-1601.5625,pink_ring_z#=-2187.5,pink_ring_radius#=781.25 + + +; --------------- +; Plane variables +; --------------- + +; Plane entities +Global plane1,shield1 ; Player 1 +Global plane2,shield2 ; Player 2 + +; Player 1 position values +Global plane1_x#,plane1_y#=1000,plane1_z#,plane1_ay#=180 ; Current values +Global plane1_dx#,plane1_dy#=1000,plane1_dz#,plane1_day#=180 ; Destination values + +; Player 2 position values +Global plane2_x#,plane2_y#=1000,plane2_z#,plane2_ay#=180 ; Current values +Global plane2_dx#,plane2_dy#=1000,plane2_dz#,plane2_day#=180 ; Destination values + +; Plane + camera curve values +Global curve_plane#=10,curve_cam#=15 + + +; --------------- +; Enemy variables +; --------------- + +; Enemy entities +Global mother_pivot,mother +Global orange_ufo,blue_ufo,green_ufo,pink_ufo,yellow_ufo +Global orange_shadow,blue_shadow,green_shadow,pink_shadow,yellow_shadow + +; New ufos +Global mother_timer=MilliSecs(),ufo_count,new_ufo,no_ufos,max_ufos=15 + +; Ufo trail +Global trail_timer=MilliSecs(),trail_timer_reset=False + + +; ------------------- +; Explosion variables +; ------------------- + +; Explosion entities +Global bullet,orange_spark,blue_spark,green_spark,pink_spark,yellow_spark,debris + +; Points entities +Global points_200,points_200x2,points_200x4,points_200x6,points_200x8,points_200x10 +Global points_400,points_400x2,points_400x4,points_400x6,points_400x8,points_400x10 +Global points_600,points_600x2,points_600x4,points_600x6,points_600x8,points_600x10 +Global points_800,points_800x2,points_800x4,points_800x6,points_800x8,points_800x10 +Global points_1000,points_1000x2,points_1000x4,points_1000x6,points_1000x8,points_1000x10 +Global points_bust + +; Intensity of explosions +Global plane_intensity=100,ufo_intensity=50 + + +; ---------------------- +; Bonus camels variables +; ---------------------- + +; Camel entities +Global orange_camel,yellow_camel,green_camel,blue_camel,pink_camel + +; Player 1 bonus values +Global plane1_bonus ; Variable containing value of bonus collected +Global orange_bonus1_time,orange_bonus1_status +Global yellow_bonus1_time,yellow_bonus1_status,yellow_bonus1_pause +Global green_bonus1_time,green_bonus1_status +Global blue_bonus1_time,blue_bonus1_status +Global pink_bonus1_time,pink_bonus1_status + +; Player 2 bonus values +Global plane2_bonus ; Variable containing value of bonus collected +Global orange_bonus2_time,orange_bonus2_status +Global yellow_bonus2_time,yellow_bonus2_status,yellow_bonus2_pause +Global green_bonus2_time,green_bonus2_status +Global blue_bonus2_time,blue_bonus2_status +Global pink_bonus2_time,pink_bonus2_status + + +; ------------------------------- +; Fonts + music + sound variables +; ------------------------------- + +; Fonts +Global small_font,large_font + +; Music +Global music + +; Sounds +Global explode + + +; ----- +; Types +; ----- + +Type plane1_bullet + Field entity,alpha# +End Type + +Type plane2_bullet + Field entity,alpha# +End Type + +Type ufo + Field entity,shadow,colour,target,x#,y#,z#,dx#,dy#,dz#,count +End Type + +Type trail + Field entity,alpha#,count +End Type + +Type ufo_bullet + Field entity,alpha# +End Type + +Type bullet_trail + Field entity,alpha# +End Type + +Type shadow + Field entity,scale#,alpha# +End Type + +Type spark + Field entity,alpha#,y_speed# +End Type + +Type points + Field entity,scale#,alpha# +End Type + +Type camel + Field entity,colour,alpha# +End Type + + +; ------------- +; Pre-main loop +; ------------- + +Include "menus.bb" +Include "scenery.bb" +Include "player2.bb" + +InitMenus() +LoadMedia() +CreateEntities() +InitCollisions() + + +; --------- +; Main loop +; --------- + +While Not KeyHit(1) + + Background() + + ; Screen functions + Select screen + Case 4 : no_players=1 : Game() + Case 5 : no_players=2 : Game() + Case 6 : HighScores() + Case 7 : Options() + Default : Credits() + End Select + + Flip + +Wend + +End ; End of program. + + +; ------------- +; Game Function +; ------------- + +Function Game() + + ; Use random scenery + scenery=1-scenery + If scenery=1 Then Egypt() + If scenery=0 Then USA() + + StartGame() + + While KeyHit(1)<>True And (game_over1_delay<=120 Or game_over2_delay<=120) + + Repeat + elapsed=MilliSecs()-time + Until elapsed + + tween#=Float(elapsed)/Float(period) + + While tween>=1 + tween=tween-1 + time=time+period + If tween<1 Then CaptureWorld + UpdateGame() + UpdateWorld + Wend + + RenderWorld ;tween + Render2D() + Flip + + Wend + + EndGame() + + If screen<>6 Then screen=0 + +End Function + + +; -------------------- +; Update game function +; -------------------- + +Function UpdateGame() + + If game_over1=False + GameInput1() + UpdatePlane1() + UpdateCamels1() + CheckCollisions1() + Else + game_over1_delay=game_over1_delay+1 + EndIf + + ; 2 player only + If no_players=2 + If game_over2=False + GameInput2() + UpdatePlane2() + UpdateCamels2() + CheckCollisions2() + Else + game_over2_delay=game_over2_delay+1 + EndIf + EndIf + + UpdateMother() + UpdateUFO() + UpdateExplosions() + UpdateExtras() + +End Function + + +; ------------------- +; Start game function +; ------------------- + +Function StartGame() + + no_ufos=0 + ufo_count=0 + + game_over2_delay=1000 ; Make sure it's game over for player 2 if we are having a one-player game! + + game_over1=False + game_over1_delay=0 + + plane1_x#=0 + plane1_z#=0 + plane1_ay#=180 + + plane1_dx#=0 + plane1_dz#=0 + plane1_day#=180 + + cam1_x#=0 + cam1_z#=0 + cam1_ay#=180 + + cam1_dx#=0 + cam1_dz#=0 + cam1_day#=180 + + pot1=0 + bank1=0 + + orange_bonus1_time=0 + yellow_bonus1_time=0 + green_bonus1_time=0 + blue_bonus1_time=0 + pink_bonus1_time=0 + + CameraViewport main_cam1,0,0,width,height + + ShowEntity plane1 : PositionEntity plane1,0,plane1_y#,0 : ResetEntity plane1 + HideEntity plane2 + HideEntity main_cam2 + HideEntity top_cam2 + + If no_players=2 + + game_over2=False + game_over2_delay=0 + + plane2_x#=0 + plane2_z#=0 + plane2_ay#=180 + + plane2_dx#=0 + plane2_dz#=0 + plane2_day#=180 + + cam2_x#=0 + cam2_z#=0 + cam2_ay#=180 + + cam2_dx#=0 + cam2_dz#=0 + cam2_day#=180 + + pot2=0 + bank2=0 + + orange_bonus2_time=0 + yellow_bonus2_time=0 + green_bonus2_time=0 + blue_bonus2_time=0 + pink_bonus2_time=0 + + ; Resize the already active player 1 camera viewport for 2-player game + CameraViewport main_cam1,0,0,width,(height/2) + + ShowEntity main_cam2 + ShowEntity top_cam2 + ShowEntity plane2 : PositionEntity plane2,0,plane2_y#,0 : ResetEntity plane2 + + EndIf + + SetFont large_font + StopChannel music + music=PlayMusic("tune2.mid") + + time=MilliSecs()-period + +End Function + + +; ----------------- +; End game function +; ----------------- + +Function EndGame() + + For p1.plane1_bullet=Each plane1_bullet + FreeEntity p1\entity + Delete p1 + Next + + For p2.plane2_bullet=Each plane2_bullet + FreeEntity p2\entity + Delete p2 + Next + + For u.ufo=Each ufo + FreeEntity u\entity + FreeEntity u\shadow + Delete u + Next + + For t.trail=Each trail + FreeEntity t\entity + Delete t + Next + + For ub.ufo_bullet=Each ufo_bullet + FreeEntity ub\entity + Delete ub + Next + + For b.bullet_trail=Each bullet_trail + FreeEntity b\entity + Delete b + Next + + For s.shadow=Each shadow + FreeEntity s\entity + Delete s + Next + + For sp.spark=Each spark + FreeEntity sp\entity + Delete sp + Next + + For po.points=Each points + FreeEntity po\entity + Delete po + Next + + For c.camel=Each camel + FreeEntity c\entity + Delete c + Next + + SetFont small_font + StopChannel music + music=PlayMusic("tune1.mid") + + FlushKeys + +End Function + + +; ------------------- +; Load media function +; ------------------- + +Function LoadMedia() + + ChangeDir "media" + explode=LoadSound("explode.wav") + small_font=LoadFont("courier",16) + large_font=LoadFont("arial black",(width+height)/23.3) + +End Function + + +; ------------------------ +; Create entities function +; ------------------------ + +Function CreateEntities() + + ; Create light + light=CreateLight() + RotateEntity light,45,0,0 + + ; Create main cam 1 + main_cam1=CreateCamera() + CameraRange main_cam1,1,9995 + CameraFogRange main_cam1,5000,9995 + CameraFogMode main_cam1,False + + ; Create top cam 1 + top_cam1=CreateCamera() + CameraClsColor top_cam1,96,160,248 + CameraViewport top_cam1,(width+height)/140,(width+height)/140,(width+height)/8.75,(width+height)/8.75 + CameraRange top_cam1,1,1100 + MoveEntity top_cam1,0,50,0 + TurnEntity top_cam1,90,0,0 + + ; Create main cam 2 + main_cam2=CreateCamera() + CameraViewport main_cam2,0,(height/2),width,(height/2) + CameraRange main_cam2,1,9995 + CameraFogRange main_cam2,5000,9995 + CameraFogMode main_cam2,1 + HideEntity main_cam2 + + ; Create top cam 2 + top_cam2=CreateCamera() + CameraClsColor top_cam2,96,160,248 + CameraViewport top_cam2,(width+height)/140,(height/2)+((width+height)/140),(width+height)/8.75,(width+height)/8.75 + CameraRange top_cam2,1,1100 + MoveEntity top_cam2,0,50,0 + TurnEntity top_cam2,90,0,0 + HideEntity top_cam2 + + ; Create ground mesh + ground=CreatePlane() + + ; Load sand texture + sand_tex=LoadTexture("sand.bmp") + ScaleTexture sand_tex,100,100 + + ; Load lights texture + lights_tex=LoadTexture("lights.bmp") + ScaleTexture lights_tex,1000,1000 + + ; Load lights texture again for multi-texturing purposes + lights_multi_tex=LoadTexture("lights.bmp") + ScaleTexture lights_multi_tex,1000,1000 + + ; Create ring patterns mesh + ring=CreateMesh() + ring_surf=CreateSurface(ring) + AddVertex(ring_surf,-5000,1,-5000,0,0) + AddVertex(ring_surf,-5000,1,5000,0,1) + AddVertex(ring_surf,5000,1,5000,1,1) + AddVertex(ring_surf,5000,1,-5000,1,0) + AddTriangle(ring_surf,0,1,2) + AddTriangle(ring_surf,0,2,3) + ring_tex=LoadTexture("ring.bmp",3) + EntityTexture ring,ring_tex + EntityFX ring,1 + + ; Create sky mesh + sky=CreateSphere() + ScaleMesh sky,5000,2750,5000 + FlipMesh sky + EntityFX sky,1 + EntityOrder sky,1 + + ; Load sky texture + sky_tex=LoadTexture("clouds.bmp") + + ; Load night sky texture + night_sky_tex=LoadTexture("clouds_night.bmp") + + ; Load Sphinx mesh + sphinx=LoadMesh("sphinx.x") + EntityShininess sphinx,0.5 + EntityType sphinx,type_statue + PositionEntity sphinx,0,90,0 + + ; Load Statue of Liberty mesh + liberty=LoadMesh("stat_lib.x") + ScaleMesh liberty,10,10,10 + EntityType liberty,type_statue + PositionEntity liberty,0,365,0 + + ; Load plane 1 mesh + plane1=LoadMesh("plane.x") + EntityShininess plane1,1 + EntityRadius plane1,2 + EntityType plane1,type_plane1 + PositionEntity plane1,0,250,0 + ResetEntity plane1 + + ; Create plane 2 mesh - create before shield1 so that shield1 is not copied too + plane2=CopyEntity(plane1) + EntityType plane2,type_plane2 + + ; Create plane 1 shield mesh + shield1=CreateSphere(16,plane1) + ScaleEntity shield1,10,10,10 + EntityColor shield1,0,0,255 + EntityShininess shield1,1 + + ; Create plane 2 shield mesh + shield2=CopyEntity(shield1,plane2) + EntityColor shield2,255,0,0 + + ; Create debris mesh + debris=CreateMesh() + debris_surf=CreateSurface(debris) + AddVertex(debris_surf,Sin(240)*5,Cos(240)*5,0) + AddVertex(debris_surf,Sin(0)*5,Cos(0)*5,0) + AddVertex(debris_surf,Sin(120)*5,Cos(120)*5,0) + AddVertex(debris_surf,Sin(240)*5,Cos(240)*5,0.001) + AddVertex(debris_surf,Sin(0)*5,Cos(0)*5,0.001) + AddVertex(debris_surf,Sin(120)*5,Cos(120)*5,0.001) + AddTriangle(debris_surf,0,1,2) + AddTriangle(debris_surf,3,5,4) + HideEntity debris + + ; Create mother pivot + mesh + mother_pivot=CreatePivot() + PositionEntity mother_pivot,0,1040,0 + mother=LoadMesh("mother.x",mother_pivot) + ScaleMesh mother,0.1,0.1,0.1 + MoveEntity mother,4880,0,0 + + ; Load orange ufo mesh + orange_ufo=LoadMesh("orange_ufo.x") + ScaleMesh orange_ufo,20,20,20 + EntityShininess orange_ufo,1 + EntityRadius orange_ufo,50 + EntityType orange_ufo,type_ufo + HideEntity orange_ufo + + ; Load yellow ufo mesh + yellow_ufo=LoadMesh("yellow_ufo.x") + ScaleMesh yellow_ufo,20,20,20 + EntityShininess yellow_ufo,1 + EntityRadius yellow_ufo,50 + EntityType yellow_ufo,type_ufo + HideEntity yellow_ufo + + ; Load green ufo mesh + green_ufo=LoadMesh("green_ufo.x") + ScaleMesh green_ufo,20,20,20 + EntityShininess green_ufo,1 + EntityRadius green_ufo,50 + EntityType green_ufo,type_ufo + HideEntity green_ufo + + ; Load blue ufo mesh + blue_ufo=LoadMesh("blue_ufo.x") + ScaleMesh blue_ufo,20,20,20 + EntityShininess blue_ufo,1 + EntityRadius blue_ufo,50 + EntityType blue_ufo,type_ufo + HideEntity blue_ufo + + ; Load pink ufo mesh + pink_ufo=LoadMesh("pink_ufo.x") + ScaleMesh pink_ufo,20,20,20 + EntityShininess pink_ufo,1 + EntityRadius pink_ufo,50 + EntityType pink_ufo,type_ufo + HideEntity pink_ufo + + ; Create orange shadow mesh + orange_shadow=CreateMesh() + orange_shadow_surf=CreateSurface(orange_shadow) + AddVertex(orange_shadow_surf,-50,0,-50,0,0) + AddVertex(orange_shadow_surf,-50,0,50,0,1) + AddVertex(orange_shadow_surf,50,0,50,1,1) + AddVertex(orange_shadow_surf,50,0,-50,1,0) + AddTriangle(orange_shadow_surf,0,1,2) + AddTriangle(orange_shadow_surf,0,2,3) + orange_spark_tex=LoadTexture("orange_spark.bmp") + EntityTexture orange_shadow,orange_spark_tex + EntityBlend orange_shadow,3 + HideEntity orange_shadow + + ; Create yellow shadow mesh + yellow_shadow=CopyEntity(orange_shadow) + yellow_spark_tex=LoadTexture("yellow_spark.bmp") + EntityTexture yellow_shadow,yellow_spark_tex + HideEntity yellow_shadow + + ; Create green shadow mesh + green_shadow=CopyEntity(orange_shadow) + green_spark_tex=LoadTexture("green_spark.bmp") + EntityTexture green_shadow,green_spark_tex + HideEntity green_shadow + + ; Create blue shadow mesh + blue_shadow=CopyEntity(orange_shadow) + blue_spark_tex=LoadTexture("blue_spark.bmp") + EntityTexture blue_shadow,blue_spark_tex + HideEntity blue_shadow + + ; Create pink shadow mesh + pink_shadow=CopyEntity(orange_shadow) + pink_spark_tex=LoadTexture("pink_spark.bmp") + EntityTexture pink_shadow,pink_spark_tex + HideEntity pink_shadow + + ; Create orange camel mesh + orange_camel=LoadMesh("camel.x") + ScaleMesh orange_camel,30,30,30 + PaintMesh orange_camel,CreateBrush() + EntityColor orange_camel,255,102,0 + HideEntity orange_camel + + ; Create yellow camel mesh + yellow_camel=CopyEntity(orange_camel) + EntityColor yellow_camel,255,255,0 + HideEntity yellow_camel + + ; Create green camel mesh + green_camel=CopyEntity(orange_camel) + EntityColor green_camel,0,255,0 + HideEntity green_camel + + ; Create blue camel mesh + blue_camel=CopyEntity(orange_camel) + EntityColor blue_camel,0,255,255 + HideEntity blue_camel + + ; Create pink camel mesh + pink_camel=CopyEntity(orange_camel) + EntityColor pink_camel,255,0,255 + HideEntity pink_camel + + ; Load sun sprite + sun=LoadSprite("big_spark.bmp") + + ; Load moon sprite + moon=LoadSprite("moon.bmp",3) + + ; Load bullet sprite + bullet=LoadSprite("orange_spark.bmp") + ScaleSprite bullet,10,10 + EntityRadius bullet,5 + EntityType bullet,type_plane1_bullet + HideEntity bullet + + ; Load orange spark sprite - acts as ufo bullet and ufo explosion spark + orange_spark=LoadSprite("orange_spark.bmp") + ScaleSprite orange_spark,10,10 + HideEntity orange_spark + + ; Load yellow spark sprite - acts as ufo bullet and ufo explosion spark + yellow_spark=LoadSprite("yellow_spark.bmp") + ScaleSprite yellow_spark,10,10 + HideEntity yellow_spark + + ; Load green spark sprite - acts as ufo bullet and ufo explosion spark + green_spark=LoadSprite("green_spark.bmp") + ScaleSprite green_spark,10,10 + HideEntity green_spark + + ; Load blue spark sprite - acts as ufo bullet and ufo explosion spark + blue_spark=LoadSprite("blue_spark.bmp") + ScaleSprite blue_spark,10,10 + HideEntity blue_spark + + ; Load pink spark sprite - acts as ufo bullet and ufo explosion spark + pink_spark=LoadSprite("pink_spark.bmp") + ScaleSprite pink_spark,10,10 + HideEntity pink_spark + + ; Load 200 points sprite + points_200=LoadSprite("200.bmp",3) + EntityBlend points_200,1 + HideEntity points_200 + + ; Create 200x2 points sprite + points_200x2=LoadSprite("200x2.bmp",3) + EntityBlend points_200x2,1 + HideEntity points_200x2 + + ; Create 200x4 points sprite + points_200x4=LoadSprite("200x4.bmp",3) + EntityBlend points_200x4,1 + HideEntity points_200x4 + + ; Create 200x6 points sprite + points_200x6=LoadSprite("200x6.bmp",3) + EntityBlend points_200x6,1 + HideEntity points_200x6 + + ; Create 200x8 points sprite + points_200x8=LoadSprite("200x8.bmp",3) + EntityBlend points_200x8,1 + HideEntity points_200x8 + + ; Create 200x10 points sprite + points_200x10=LoadSprite("200x10.bmp",3) + EntityBlend points_200x10,1 + HideEntity points_200x10 + + ; Create 400 points sprite + points_400=LoadSprite("400.bmp",3) + EntityBlend points_400,1 + HideEntity points_400 + + ; Create 400x2 points sprite + points_400x2=LoadSprite("400x2.bmp",3) + EntityBlend points_400x2,1 + HideEntity points_400x2 + + ; Create 400x4 points sprite + points_400x4=LoadSprite("400x4.bmp",3) + EntityBlend points_400x4,1 + HideEntity points_400x4 + + ; Create 400x6 points sprite + points_400x6=LoadSprite("400x6.bmp",3) + EntityBlend points_400x6,1 + HideEntity points_400x6 + + ; Create 400x8 points sprite + points_400x8=LoadSprite("400x8.bmp",3) + EntityBlend points_400x8,1 + HideEntity points_400x8 + + ; Create 400x10 points sprite + points_400x10=LoadSprite("400x10.bmp",3) + EntityBlend points_400x10,1 + HideEntity points_400x10 + + ; Create 600 points sprite + points_600=LoadSprite("600.bmp",3) + EntityBlend points_600,1 + HideEntity points_600 + + ; Create 600x2 points sprite + points_600x2=LoadSprite("600x2.bmp",3) + EntityBlend points_600x2,1 + HideEntity points_600x2 + + ; Create 600x4 points sprite + points_600x4=LoadSprite("600x4.bmp",3) + EntityBlend points_600x4,1 + HideEntity points_600x4 + + ; Create 600x6 points sprite + points_600x6=LoadSprite("600x6.bmp",3) + EntityBlend points_600x6,1 + HideEntity points_600x6 + + ; Create 600x8 points sprite + points_600x8=LoadSprite("600x8.bmp",3) + EntityBlend points_600x8,1 + HideEntity points_600x8 + + ; Create 600x10 points sprite + points_600x10=LoadSprite("600x10.bmp",3) + EntityBlend points_600x10,1 + HideEntity points_600x10 + + ; Create 800 points sprite + points_800=LoadSprite("800.bmp",3) + EntityBlend points_800,1 + HideEntity points_800 + + ; Create 800x2 points sprite + points_800x2=LoadSprite("800x2.bmp",3) + EntityBlend points_800x2,1 + HideEntity points_800x2 + + ; Create 800x4 points sprite + points_800x4=LoadSprite("800x4.bmp",3) + EntityBlend points_800x4,1 + HideEntity points_800x4 + + ; Create 800x6 points sprite + points_800x6=LoadSprite("800x6.bmp",3) + EntityBlend points_800x6,1 + HideEntity points_800x6 + + ; Create 800x8 points sprite + points_800x8=LoadSprite("800x8.bmp",3) + EntityBlend points_800x8,1 + HideEntity points_800x8 + + ; Create 800x10 points sprite + points_800x10=LoadSprite("800x10.bmp",3) + EntityBlend points_800x10,1 + HideEntity points_800x10 + + ; Create 1000 points sprite + points_1000=LoadSprite("1000.bmp",3) + EntityBlend points_1000,1 + HideEntity points_1000 + + ; Create 1000x2 points sprite + points_1000x2=LoadSprite("1000x2.bmp",3) + EntityBlend points_1000x2,1 + HideEntity points_1000x2 + + ; Create 1000x4 points sprite + points_1000x4=LoadSprite("1000x4.bmp",3) + EntityBlend points_1000x4,1 + HideEntity points_1000x4 + + ; Create 1000x6 points sprite + points_1000x6=LoadSprite("1000x6.bmp",3) + EntityBlend points_1000x6,1 + HideEntity points_1000x6 + + ; Create 1000x8 points sprite + points_1000x8=LoadSprite("1000x8.bmp",3) + EntityBlend points_1000x8,1 + HideEntity points_1000x8 + + ; Create 1000x10 points sprite + points_1000x10=LoadSprite("1000x10.bmp",3) + EntityBlend points_1000x10,1 + HideEntity points_1000x10 + + ; Create bust points sprite + points_bust=LoadSprite("bust.bmp",3) + EntityBlend points_bust,1 + HideEntity points_bust + +End Function + + +; ------------------------ +; Init collisions function +; ------------------------ + +Function InitCollisions() + + Collisions type_plane1_bullet,type_ufo,1,1 + Collisions type_ufo_bullet,type_plane1,1,1 + Collisions type_plane1,type_statue,2,1 + + Collisions type_plane2_bullet,type_ufo,1,1 + Collisions type_ufo_bullet,type_plane2,1,1 + Collisions type_plane2,type_statue,2,1 + + Collisions type_spark,type_ufo,1,1 + +End Function + + +; -------------------- +; Game input1 function +; -------------------- + +Function GameInput1() + + ; Move up/down + If KeyDown(200)=True Then plane1_dy=plane1_dy+2 : cam1_dy=cam1_dy+2 + If KeyDown(208)=True Then plane1_dy=plane1_dy-2 : cam1_dy=cam1_dy-2 + + ; Turn left/right + If KeyDown(203)=True Then plane1_day=plane1_day+2 : cam1_day=cam1_day+2 + If KeyDown(205)=True Then plane1_day=plane1_day-2 : cam1_day=cam1_day-2 + + ; Move forward - normal + If KeyDown(30)=True And blue_bonus1_status=False + plane1_dx=plane1_dx-Sin(plane1_ay)*8 + plane1_dz=plane1_dz+Cos(plane1_ay)*8 + cam1_dx=cam1_dx-Sin(cam1_ay)*8 + cam1_dz=cam1_dz+Cos(cam1_ay)*8 + EndIf + + ; Move forward - blue bonus - extra speed + If KeyDown(30)=True And blue_bonus1_status=True + plane1_dx=plane1_dx-Sin(plane1_ay)*16 + plane1_dz=plane1_dz+Cos(plane1_ay)*16 + cam1_dx=cam1_dx-Sin(cam1_ay)*16 + cam1_dz=cam1_dz+Cos(cam1_ay)*16 + EndIf + + ; Fire bullet - normal + If KeyHit(31)=True And yellow_bonus1_status=False + p1.plane1_bullet=New plane1_bullet + p1\entity=CopyEntity(bullet,plane1) + EntityParent p1\entity,0 + TurnEntity p1\entity,0,270,0 + MoveEntity p1\entity,0,0,10 + p1\alpha=1 + EndIf + + ; Fire bullet - yellow bonus - rapid fire + yellow_bonus1_pause=yellow_bonus1_pause+1 + If KeyDown(31)=True And yellow_bonus1_status=True And yellow_bonus1_pause>=3 + yellow_bonus1_pause=0 + p1.plane1_bullet=New plane1_bullet + p1\entity=CopyEntity(bullet,plane1) + EntityParent p1\entity,0 + TurnEntity p1\entity,0,270,0 + MoveEntity p1\entity,0,0,10 + p1\alpha=1 + EndIf + +End Function + + +; ---------------------- +; Update plane1 function +; ---------------------- + +Function UpdatePlane1() + + ; Prevent plane1 and main cam from going too low/high + If plane1_dy<2 Then plane1_dy=2 + If plane1_dy>1000 Then plane1_dy=1000 + If cam1_dy<2 Then cam1_dy=2 + If cam1_dy>1000 Then cam1_dy=1000 + + ; Update plane1 position/angle values + plane1_x=CurveValue#(plane1_x,plane1_dx,curve_plane) + plane1_y=CurveValue#(plane1_y,plane1_dy,curve_plane) + plane1_z=CurveValue#(plane1_z,plane1_dz,curve_plane) + plane1_ay=CurveValue#(plane1_ay,plane1_day,curve_plane) + + PositionEntity plane1,plane1_x,plane1_y,plane1_z + RotateEntity plane1,0,plane1_ay+90,0 + + ; Update camera1 position values + cam1_x=CurveValue#(cam1_x,cam1_dx,curve_cam) + cam1_y=CurveValue#(cam1_y,cam1_dy,curve_cam) + cam1_z=CurveValue#(cam1_z,cam1_dz,curve_cam) + cam1_ay=CurveValue#(cam1_ay,cam1_day,curve_cam) + + PositionEntity main_cam1,plane1_x+Sin(cam1_ay)*50,cam1_y,plane1_z-Cos(cam1_ay)*50 + RotateEntity main_cam1,0,cam1_ay,0 + + PositionEntity top_cam1,plane1_x,plane1_y#+75,plane1_z + RotateEntity top_cam1,90,plane1_ay,0 + + ; Update plane1 bullets + For p1.plane1_bullet=Each plane1_bullet + MoveEntity p1\entity,0,0,100 + If EntityDistance(p1\entity,plane1)>5000 Then FreeEntity p1\entity : Delete p1 + Next + + ; Check to see if plane1 is inside bank zone and if so bank pot + temp_pivot=CreatePivot() + PositionEntity temp_pivot,red_ring_x,plane1_y,red_ring_z + If EntityDistance(temp_pivot,plane1)<=625 And pot1>0 Then bank1=bank1+pot1 : pot1=0 + FreeEntity temp_pivot + +End Function + + +; ----------------------- +; Update camels1 function +; ----------------------- + +Function UpdateCamels1() + + For c.camel=Each camel + + ; Turn camels, fade them + TurnEntity c\entity,0,2,0 + EntityAlpha c\entity,c\alpha : c\alpha=c\alpha-0.0005 + + ; Use EntityDistance command to check for collision between camel and plane + If EntityDistance(c\entity,plane1)<=40 + plane1_bonus=c\colour + c\alpha=0 + EndIf + + ; Delete camel if invisible + If c\alpha<=0 Then FreeEntity c\entity : Delete c + + Next + + ; Orange bonus - shield + + ; Time + If orange_bonus1_time>300 Then EntityAlpha shield1,0.5 Else EntityAlpha shield1,orange_bonus1_time/600.0 + If orange_bonus1_time>0 Then orange_bonus1_time=orange_bonus1_time-1 + + ; Activate + If plane1_bonus=1 + orange_bonus1_status=True + orange_bonus1_time=orange_bonus1_time+600 + EntityType plane1,type_none + plane1_bonus=0 + EndIf + + ; Deactivate + If orange_bonus1_time=0 And orange_bonus1_status=True + orange_bonus1_status=False + EntityType plane1,type_plane1 + EndIf + + ; Yellow bonus - rapid fire + If yellow_bonus1_time>0 Then yellow_bonus1_time=yellow_bonus1_time-1 ; time + If plane1_bonus=2 Then yellow_bonus1_status=True : yellow_bonus1_time=yellow_bonus1_time+600 : plane1_bonus=0 ; activate + If yellow_bonus1_time=0 And yellow_bonus1_status=True Then yellow_bonus1_status=False ; deactivate + + ; Green bonus - homing missiles + If green_bonus1_time>0 Then green_bonus1_time=green_bonus1_time-1 ; time + If plane1_bonus=3 Then green_bonus1_status=True : green_bonus1_time=green_bonus1_time+600 : plane1_bonus=0 ; activate + If green_bonus1_time=0 And green_bonus1_status=True Then green_bonus1_status=False ; deactivate + + ; blue bonus - extra speed + If blue_bonus1_time>0 Then blue_bonus1_time=blue_bonus1_time-1 ; time + If plane1_bonus=4 Then blue_bonus1_status=True : blue_bonus1_time=blue_bonus1_time+600 : plane1_bonus=0 ; activate + If blue_bonus1_time=0 And blue_bonus1_status=True Then blue_bonus1_status=False ; deactivate + + ; Pink bonus - UFO to rings + If pink_bonus1_time>0 Then pink_bonus1_time=pink_bonus1_time-1 ; time + If plane1_bonus=5 Then pink_bonus1_status=True : pink_bonus1_time=pink_bonus1_time+600 : plane1_bonus=0 ; activate + If pink_bonus1_time=0 And pink_bonus1_status=True Then pink_bonus1_status=False ; deactivate + +End Function + + +; -------------------------- +; Check collisions1 function +; -------------------------- + +Function CheckCollisions1() + + ; Ufo and plane1 bullet + For u.ufo=Each ufo + entity_col=EntityCollided(u\entity,type_plane1_bullet) + If entity_col<>0 + DeleteBullet1(entity_col) + pot1=pot1+Points(u) + CreateShadow(u) ; Create a new shadow that will reflect explosion sparks after old ufo + shadow have been nuked + ExplodeUFO(u,1) + EndIf + Next + + ; Ufo bullet and plane1 + If orange_bonus1_status=False + For ub.ufo_bullet=Each ufo_bullet + If EntityCollided(ub\entity,type_plane1)<>0 + If pot1>0 + pot1=0 + FreeEntity ub\entity + Delete ub + po.points=New points + po\entity=CopyEntity(points_bust,plane1) + ShowEntity po\entity + EntityParent po\entity,0 + po\alpha=1 + Else + game_over1=True + ExplodePlane(plane1) + If no_players=1 + HighScore() + EndIf + EndIf + EndIf + Next + EndIf + + ; Plane1 and statue + If EntityCollided(plane1,type_statue)<>0 Then game_over1=True : ExplodePlane(plane1) : If no_players=1 Then HighScore() + +End Function + + +; ---------------------- +; Update mother function +; ---------------------- + +Function UpdateMother() + + If MilliSecs()-mother_timer=>1000 + If no_ufos=6 And ufo_count<=9 Then new_ufo=2 : mother_timer=MilliSecs() + If ufo_count>=10 And ufo_count<=12 Then new_ufo=3 : mother_timer=MilliSecs() + If ufo_count>=13 And ufo_count<=14 Then new_ufo=4 : mother_timer=MilliSecs() + If ufo_count=15 Then new_ufo=5 : ufo_count=0 : mother_timer=MilliSecs() + EndIf + EndIf + + TurnEntity mother_pivot,0,0.1,0 + +End Function + + +; ------------------- +; Update ufo function +; ------------------- + +Function UpdateUFO() + + If new_ufo<>0 Then CreateUFO(new_ufo) : new_ufo=0 + + For u.ufo=Each ufo + MoveUFO(u) + UFOFire(u) + If MilliSecs()-trail_timer=>500 And u\colour=5 Then CreateTrail(u) : reset_trail_timer=True + Next + + If reset_trail_timer=True Then trail_timer=MilliSecs() : reset_trail_timer=False + UFOBullets() + +End Function + + +; -------------------------- +; Update explosions function +; -------------------------- + +Function UpdateExplosions() + + ; Explosion sparks + For sp.spark=Each spark + If sp\alpha>0 And EntityY(sp\entity)>-10 + EntityAlpha sp\entity,sp\alpha + MoveEntity sp\entity,0,0,4 + TranslateEntity sp\entity,0,sp\y_speed,0 + sp\alpha=sp\alpha-0.01 + sp\y_speed=sp\y_speed-0.1 + Else + FreeEntity sp\entity + Delete sp + EndIf + Next + + ; Shadows that reflect the sparks + For s.shadow=Each shadow + ScaleEntity s\entity,s\scale,1,s\scale + EntityAlpha s\entity,s\alpha + s\scale=s\scale+0.1 + s\alpha=s\alpha-0.01 + If s\alpha=<0 Then HideEntity s\entity : FreeEntity s\entity : Delete s + Next + + ; Points sprites eg. "200x2" + For po.points=Each points + ScaleSprite po\entity,po\scale,po\scale + EntityAlpha po\entity,po\alpha + po\scale=po\scale+10 + po\alpha=po\alpha-0.04 + If po\alpha=<0 Then HideEntity po\entity : FreeEntity po\entity : Delete po + Next + +End Function + + +; ---------------------- +; Update extras function +; ---------------------- + +Function UpdateExtras() + + If no_players=1 + PositionEntity sky,EntityX(main_cam1),0,EntityZ(main_cam1) + PositionEntity solar,EntityX(main_cam1),EntityY(main_cam1)+solar_y,EntityZ(main_cam1)-solar_z + ScaleSprite solar,Rnd(solar_scale,solar_scale+solar_scale_shake),Rnd(solar_scale,solar_scale+solar_scale_shake) + EndIf + +End Function + + +; ------------------ +; Render 2D function +; ------------------ + +Function Render2D() + + If no_players=1 + + Color 255,0,0 + Text (width+height)/140,height-((width+height)/14.5),"Pot: "+pot1+" " + + Color 255,255,255 + Text (width+height)/140,height-((width+height)/24.75),"Bank: "+bank1+" " + + If orange_bonus1_time>0 + Color 255,102,0 + Text width-((width+height)/22.4),0,(orange_bonus1_time/60)+1 + time_y=time_y+(width+height)/31.98 + EndIf + + If yellow_bonus1_time>0 + Color 255,255,0 + Text width-((width+height)/22.4),time_y,(yellow_bonus1_time/60)+1 + time_y=time_y+(width+height)/31.98 + EndIf + + If green_bonus1_time>0 + Color 0,255,0 + Text width-((width+height)/22.4),time_y,(green_bonus1_time/60)+1 + time_y=time_y+(width+height)/31.98 + EndIf + + If blue_bonus1_time>0 + Color 0,255,255 + Text width-((width+height)/22.4),time_y,(blue_bonus1_time/60)+1 + time_y=time_y+(width+height)/31.98 + EndIf + + If pink_bonus1_time>0 + Color 255,0,255 + Text width-((width+height)/22.4),time_y,(pink_bonus1_time/60)+1 + time_y=time_y+(width+height)/31.98 + EndIf + + EndIf + + If no_players=2 + + Color 255,0,0 + Text (width+height)/140,(height/2)-((width+height)/14.5),"Pot: "+pot1+" " + Text (width+height)/140,height-((width+height)/14.5),"Pot: "+pot2+" " + + Color 255,255,255 + Text (width+height)/140,(height/2)-((width+height)/24.75),"Bank: "+bank1+" " + Text (width+height)/140,height-((width+height)/24.75),"Bank: "+bank2+" " + + ; Player 1 bonus times + + If orange_bonus1_time>0 + Color 255,102,0 + Text width-((width+height)/22.4),time_y,(orange_bonus1_time/60)+1 + time_y=time_y+(width+height)/31.98 + EndIf + + If yellow_bonus1_time>0 + Color 255,255,0 + Text width-((width+height)/22.4),time_y,(yellow_bonus1_time/60)+1 + time_y=time_y+(width+height)/31.98 + EndIf + + If green_bonus1_time>0 + Color 0,255,0 + Text width-((width+height)/22.4),time_y,(green_bonus1_time/60)+1 + time_y=time_y+(width+height)/31.98 + EndIf + + If blue_bonus1_time>0 + Color 0,255,255 + Text width-((width+height)/22.4),time_y,(blue_bonus1_time/60)+1 + time_y=time_y+(width+height)/31.98 + EndIf + + If pink_bonus1_time>0 + Color 255,0,255 + Text width-((width+height)/22.4),time_y,(pink_bonus1_time/60)+1 + time_y=time_y+(width+height)/31.98 + EndIf + + ; Player 2 bonus times + + time_y=height/2 + If orange_bonus2_time>0 + Color 255,102,0 + Text width-((width+height)/22.4),time_y,(orange_bonus2_time/60)+1 + time_y=time_y+(width+height)/31.98 + EndIf + + If yellow_bonus2_time>0 + Color 255,255,0 + Text width-((width+height)/22.4),time_y,(yellow_bonus2_time/60)+1 + time_y=time_y+(width+height)/31.98 + EndIf + + If green_bonus2_time>0 + Color 0,255,0 + Text width-((width+height)/22.4),time_y,(green_bonus2_time/60)+1 + time_y=time_y+(width+height)/31.98 + EndIf + + If blue_bonus2_time>0 + Color 0,255,255 + Text width-((width+height)/22.4),time_y,(blue_bonus2_time/60)+1 + time_y=time_y+(width+height)/31.98 + EndIf + + If pink_bonus2_time>0 + Color 255,0,255 + Text width-((width+height)/22.4),time_y,(pink_bonus2_time/60)+1 + time_y=time_y+(width+height)/31.98 + EndIf + + EndIf + +End Function + + +; ----------------------- +; Delete bullet1 function +; ----------------------- + +Function DeleteBullet1(entity_col) + + ; Delete bullet that hits ufo + For p1.plane1_bullet=Each plane1_bullet + If p1\entity=entity_col Then FreeEntity p1\entity : Delete p1 : Exit + Next + +End Function + + +; ---------------------- +; Explode plane function +; ---------------------- + +Function ExplodePlane(plane) + + ; Create a new set of sparks + For t=1 To plane_intensity + sp.spark=New spark + sp\y_speed=0 + sp\alpha=2 + sp\entity=CopyEntity(debris,plane) + EntityParent sp\entity,0 + RotateEntity sp\entity,Rnd(360),Rnd(360),Rnd(360) + ShowEntity sp\entity + Next + + ; Hide plane + HideEntity plane + + ; "BOOM!" + PlaySound explode + +End Function + + +; ------------------- +; Create ufo function +; ------------------- + +Function CreateUfo(new_ufo) + + u.ufo=New ufo + + Select new_ufo + Case 1 : u\entity=CopyEntity(orange_ufo,mother) : u\shadow=CopyEntity(orange_shadow) : u\colour=1 + Case 2 : u\entity=CopyEntity(yellow_ufo,mother) : u\shadow=CopyEntity(yellow_shadow) : u\colour=2 + Case 3 : u\entity=CopyEntity(green_ufo,mother) : u\shadow=CopyEntity(green_shadow) : u\colour=3 + Case 4 : u\entity=CopyEntity(blue_ufo,mother) : u\shadow=CopyEntity(blue_shadow) : u\colour=4 + Case 5 : u\entity=CopyEntity(pink_ufo,mother) : u\shadow=CopyEntity(pink_shadow) : u\colour=5 + End Select + + EntityParent u\entity,0 + MoveEntity u\entity,0,0,-100 + + If no_players=1 Then u\target=plane1 + + If no_players=2 + If game_over1<>True And game_over2<>True + d1#=EntityDistance(u\entity,plane1) + d2#=EntityDistance(u\entity,plane2) + If d1#<=d2# Then u\target=plane1 Else u\target=plane2 + Else + If game_over1=True Then u\target=plane2 + If game_over2=True Then u\target=plane1 + EndIf + EndIf + + u\x=EntityX(u\entity) + u\y=EntityY(u\entity) + u\z=EntityZ(u\entity) + u\count=179 + no_ufos=no_ufos+1 + +End Function + + +; --------------------- +; Create trail function +; --------------------- + +Function CreateTrail(u.ufo) + + ; New pink ufo trail + t.trail=New trail + t\entity=CopyEntity(u\entity) + EntityType t\entity,type_none + t\alpha=1 + +End Function + + +; ----------------- +; Move ufo function +; ----------------- + +Function MoveUFO(u.ufo) + + ; Move UFO towards destination values + + u\count=u\count+1 + u\x=u\x+((u\dx-u\x)/100.0) + u\y=u\y+((u\dy-u\y)/100.0) + u\z=u\z+((u\dz-u\z)/100.0) + + PositionEntity u\entity,u\x,u\y,u\z + PointEntity u\entity,u\target + TurnEntity u\entity,0,180,0 + RotateEntity u\entity,EntityPitch(u\entity)/2,EntityYaw(u\entity),0 + + ; Reset ufo destination values every 180 updates (3 seconds) + + If u\count>=180 + u\count=0 + + If pink_bonus1_status=False + + ; Normal + If u\target=plane1 + u\dx=plane1_x+Rnd(-1500,1500) + u\dz=plane1_z+Rnd(-1500,1500) + If plane1_y>=150 Then u\dy=plane1_y+Rnd(-100,100) Else u\dy=plane1_y+Rnd(50,150) + Else + u\dx=plane2_x+Rnd(-1500,1500) + u\dz=plane2_z+Rnd(-1500,1500) + If plane2_y>=150 Then u\dy=plane2_y+Rnd(-100,100) Else u\dy=plane2_y+Rnd(50,150) + EndIf + + Else + + ; Pink bonus + Select u\colour + Case 1 + u\dx=orange_ring_x+Rnd(-orange_ring_radius,orange_ring_radius) + u\dz=orange_ring_z+Rnd(-orange_ring_radius,orange_ring_radius) + Case 2 + u\dx=yellow_ring_x+Rnd(-yellow_ring_radius,yellow_ring_radius) + u\dz=yellow_ring_z+Rnd(-yellow_ring_radius,yellow_ring_radius) + Case 3 + u\dx=green_ring_x+Rnd(-green_ring_radius,green_ring_radius) + u\dz=green_ring_z+Rnd(-green_ring_radius,green_ring_radius) + Case 4 + u\dx=blue_ring_x+Rnd(-blue_ring_radius,blue_ring_radius) + u\dz=blue_ring_z+Rnd(-blue_ring_radius,blue_ring_radius) + Case 5 + u\dx=pink_ring_x+Rnd(-pink_ring_radius,pink_ring_radius) + u\dz=pink_ring_z+Rnd(-pink_ring_radius,pink_ring_radius) + End Select + + EndIf + + EndIf + + ; Position shadow + PositionEntity u\shadow,u\x,1,u\z + +End Function + + +; ----------------- +; Ufo fire function +; ----------------- + +Function UFOFire(u.ufo) + + ; Random ufo fire + + If Int(Rnd(0,900))=450 + ub.ufo_bullet=New ufo_bullet + + Select u\colour + Case 1 : ub\entity=CopyEntity(orange_spark,u\entity) + Case 2 : ub\entity=CopyEntity(yellow_spark,u\entity) + Case 3 : ub\entity=CopyEntity(green_spark,u\entity) + Case 4 : ub\entity=CopyEntity(blue_spark,u\entity) + Case 5 : ub\entity=CopyEntity(pink_spark,u\entity) + End Select + + piv=CreatePivot(u\target) + PointEntity ub\entity,piv + TurnEntity ub\entity,0,180,0 + FreeEntity piv + + EntityParent ub\entity,0 + EntityType ub\entity,type_ufo_bullet + EntityRadius ub\entity,5 + ShowEntity ub\entity + EndIf + +End Function + + +; -------------------- +; Ufo bullets function +; -------------------- + +Function UFOBullets() + + ; Update ufo trail + For t.trail=Each trail + EntityAlpha t\entity,t\alpha + t\alpha=t\alpha-0.01 + If t\alpha<=0 + FreeEntity t\entity + Delete t + EndIf + Next + + ; Update ufo bullets + For ub.ufo_bullet=Each ufo_bullet + b.bullet_trail=New bullet_trail : b\entity=CopyEntity(ub\entity) : EntityType b\entity,0 : b\alpha=1 + MoveEntity ub\entity,0,0,-20 + If EntityDistance(ub\entity,plane1)>5000 Or EntityY(ub\entity)<=-10 Then FreeEntity ub\entity : Delete ub + Next + + ; Update ufo bullets trail + For b.bullet_trail=Each bullet_trail + b\alpha=b\alpha-0.1 + EntityAlpha b\entity,b\alpha + If b\alpha<=0 Then FreeEntity b\entity : Delete b + Next + +End Function + + +; -------------------- +; Explode ufo function +; -------------------- + +Function ExplodeUFO(u.ufo,player) + + ; Create a new set of sparks + + For t=1 To ufo_intensity + sp.spark=New spark + sp\y_speed=0 + sp\alpha=2 + If u\colour=1 Then sp\entity=CopyEntity(orange_spark,u\entity) + If u\colour=2 Then sp\entity=CopyEntity(yellow_spark,u\entity) + If u\colour=3 Then sp\entity=CopyEntity(green_spark,u\entity) + If u\colour=4 Then sp\entity=CopyEntity(blue_spark,u\entity) + If u\colour=5 Then sp\entity=CopyEntity(pink_spark,u\entity) + EntityParent sp\entity,0 + RotateEntity sp\entity,Rnd(360),Rnd(360),Rnd(360) + + If green_bonus1_status=True And player=1 + EntityRadius sp\entity,500 + EntityType sp\entity,type_plane1_bullet + EndIf + + If green_bonus2_status=True And player=2 + EntityRadius sp\entity,500 + EntityType sp\entity,type_plane2_bullet + EndIf + Next + + ; Get rid of ufo + HideEntity u\entity + FreeEntity u\entity + Delete u + no_ufos=no_ufos-1 + + ; "BOOM!" + PlaySound explode + +End Function + + +; ---------------------- +; Create shadow function +; ---------------------- + +Function CreateShadow(u.ufo) + + s.shadow=New shadow + s\entity=CopyEntity(u\shadow) + s\scale=1 + s\alpha=1 + + HideEntity u\shadow + FreeEntity u\shadow + +End Function + + +; --------------- +; Points function +; --------------- + +Function Points(u.ufo) + + Select u\colour + Case 1 : single=200 + Case 2 : single=400 + Case 3 : single=600 + Case 4 : single=800 + Case 5 : single=1000 + End Select + + temp_pivot=CreatePivot() + multi=1 + PositionEntity temp_pivot,red_ring_x,u\y,red_ring_z : If EntityDistance(temp_pivot,u\entity)<=red_ring_radius Then multi=0 + PositionEntity temp_pivot,orange_ring_x,u\y,orange_ring_z : If EntityDistance(temp_pivot,u\entity)<=orange_ring_radius Then multi=2 + PositionEntity temp_pivot,yellow_ring_x,u\y,yellow_ring_z : If EntityDistance(temp_pivot,u\entity)<=yellow_ring_radius Then multi=4 + PositionEntity temp_pivot,green_ring_x,u\y,green_ring_z : If EntityDistance(temp_pivot,u\entity)<=green_ring_radius Then multi=6 + PositionEntity temp_pivot,blue_ring_x,u\y,blue_ring_z : If EntityDistance(temp_pivot,u\entity)<=blue_ring_radius Then multi=8 + PositionEntity temp_pivot,pink_ring_x,u\y,pink_ring_z : If EntityDistance(temp_pivot,u\entity)<=pink_ring_radius Then multi=10 + + points=single*multi + + If multi=0 Then points=0 : po.points=New points : po\entity=CopyEntity(points_bust,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=200 And multi=1 Then po.points=New points : po\entity=CopyEntity(points_200,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=200 And multi=2 Then po.points=New points : po\entity=CopyEntity(points_200x2,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 : c.camel=New camel : c\entity=CopyEntity(orange_camel,u\entity) : EntityParent c\entity,0 : c\colour=1 : c\alpha=1 + If single=200 And multi=4 Then po.points=New points : po\entity=CopyEntity(points_200x4,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=200 And multi=6 Then po.points=New points : po\entity=CopyEntity(points_200x6,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=200 And multi=8 Then po.points=New points : po\entity=CopyEntity(points_200x8,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=200 And multi=10 Then po.points=New points : po\entity=CopyEntity(points_200x10,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=400 And multi=1 Then po.points=New points : po\entity=CopyEntity(points_400,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=400 And multi=2 Then po.points=New points : po\entity=CopyEntity(points_400x2,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=400 And multi=4 Then po.points=New points : po\entity=CopyEntity(points_400x4,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 : c.camel=New camel : c\entity=CopyEntity(yellow_camel,u\entity) : EntityParent c\entity,0 : c\colour=2 : c\alpha=1 + If single=400 And multi=6 Then po.points=New points : po\entity=CopyEntity(points_400x6,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=400 And multi=8 Then po.points=New points : po\entity=CopyEntity(points_400x8,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=400 And multi=10 Then po.points=New points : po\entity=CopyEntity(points_400x10,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=600 And multi=1 Then po.points=New points : po\entity=CopyEntity(points_600,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=600 And multi=2 Then po.points=New points : po\entity=CopyEntity(points_600x2,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=600 And multi=4 Then po.points=New points : po\entity=CopyEntity(points_600x4,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=600 And multi=6 Then po.points=New points : po\entity=CopyEntity(points_600x6,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 : c.camel=New camel : c\entity=CopyEntity(green_camel,u\entity) : EntityParent c\entity,0 : c\colour=3 : c\alpha=1 + If single=600 And multi=8 Then po.points=New points : po\entity=CopyEntity(points_600x8,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=600 And multi=10 Then po.points=New points : po\entity=CopyEntity(points_600x10,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=800 And multi=1 Then po.points=New points : po\entity=CopyEntity(points_800,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=800 And multi=2 Then po.points=New points : po\entity=CopyEntity(points_800x2,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=800 And multi=4 Then po.points=New points : po\entity=CopyEntity(points_800x4,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=800 And multi=6 Then po.points=New points : po\entity=CopyEntity(points_800x6,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=800 And multi=8 Then po.points=New points : po\entity=CopyEntity(points_800x8,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 : c.camel=New camel : c\entity=CopyEntity(blue_camel,u\entity) : EntityParent c\entity,0 : c\colour=4 : c\alpha=1 + If single=800 And multi=10 Then po.points=New points : po\entity=CopyEntity(points_800x10,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=1000 And multi=1 Then po.points=New points : po\entity=CopyEntity(points_1000,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=1000 And multi=2 Then po.points=New points : po\entity=CopyEntity(points_1000x2,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=1000 And multi=4 Then po.points=New points : po\entity=CopyEntity(points_1000x4,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=1000 And multi=6 Then po.points=New points : po\entity=CopyEntity(points_1000x6,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=1000 And multi=8 Then po.points=New points : po\entity=CopyEntity(points_1000x8,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 + If single=1000 And multi=10 Then po.points=New points : po\entity=CopyEntity(points_1000x10,u\entity) : ShowEntity po\entity : EntityParent po\entity,0 : po\alpha=2 : c.camel=New camel : c\entity=CopyEntity(pink_camel,u\entity) : EntityParent c\entity,0 : c\colour=5 : c\alpha=1 + + FreeEntity temp_pivot + + Return points + +End Function + + +; ------------------- +; High score function +; ------------------- + +Function HighScore() + + ; Load high score data + load_file=ReadFile("high_scores.sav") + For s=1 To 10 + names$(s)=ReadLine(load_file) + scores(s)=ReadLine(load_file) + Next + CloseFile load_file + + ; Insert high score + + player_name$="" + + rank=1 + While bank1