亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mainfrm.cpp

?? 2D即時戰(zhàn)略游戲VC源碼
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
#include "havoc.h"
#include"draw.h"
#include"mymedia.h"
extern "C"{
#include"sfx.h"
#include"lobby.h"
#include"comm.h"
#include"input.h"
//

}

#include"wizard.h"
#define FLOORNUM  6
#define ARMYNUM   2
#define BUILDNUM  2
#define MYARMYNUM 2
#define ENEMYNUM  1
#define EXPNUM    2
#define OTHERSNUM 12
#define BULLETNUM  1
#define TREENUM    3
#define HILLNUM    2 
#define TIMER_ID        1
#define TIMER_RATE      50
BOOL BackgroundEdit(POINT cell);
void ViewTreeInfo(int type);
void DestroyTree(POINT cell);
void CheckResult(void);
//void DoSystemMessage( LPDPMSG_GENERIC lpMsg, DWORD dwMsgSize, DPID idFrom, DPID idTo );
//void DoApplicationMessage( LPGENERICMSG lpMsg, DWORD dwMsgSize, DPID idFrom, DPID idTo );
//void SendGameMessage( LPGENERICMSG lpMsg, DPID idTo );
static void finiGlob(void);

//HRESULT ReceiveMessages( void );
void Flip(void);

HANDLE                  ghThread;               // handle to wizard thread
HINSTANCE                ghinst;             // program instance
HWND                     ghWndMain;          // main window
DWORD                    gdwKeys;            // gameplay keys
WORD ProgramState=SPLASH;

DWORD gwKeys=0;
BOOL gbIsActive=FALSE; 
BOOL bWeActive=FALSE;
BOOL bMud=FALSE;
int animEscnum=0;
HDC FAR panelDC=NULL;
int greenernum=2;
GUID				Guid;
LPVOID				pv;
LPVOID                          glpvReceiveBuffer = NULL;   // buffer to store received messages
DWORD                           gdwReceiveBufferSize = 0;   // size of buffer


LPDIRECTDRAWSURFACE     lpGround; 
LPDIRECTDRAWSURFACE     lpShape; 


LPDIRECTDRAWSURFACE     Floor[FLOORNUM];      // DirectDraw 
LPDIRECTDRAWSURFACE     Build[BUILDNUM];       //offscreen 
LPDIRECTDRAWSURFACE     Myarmy[MYARMYNUM];       
LPDIRECTDRAWSURFACE     Enemy[ENEMYNUM]; 
LPDIRECTDRAWSURFACE     PicExp[EXPNUM]; 
LPDIRECTDRAWSURFACE     Others[OTHERSNUM]; //others
LPDIRECTDRAWSURFACE     PicRect;
LPDIRECTDRAWSURFACE     PicShape;
LPDIRECTDRAWSURFACE     PicBullet[BULLETNUM];
LPDIRECTDRAWSURFACE     RadarBack;//Buffer for Radar
LPDIRECTDRAWSURFACE     lpDDPP;//Operative Plan and Radar surface;
LPDIRECTDRAWSURFACE     PicBlack;
LPDIRECTDRAWSURFACE     PicWhite;
LPDIRECTDRAWSURFACE     Army[ARMYNUM];
LPDIRECTDRAWSURFACE     PicTree[TREENUM];
LPDIRECTDRAWSURFACE     PicHill[HILLNUM];

LPDIRECTDRAWSURFACE     lpIntrbk;

LPDIRECTSOUNDBUFFER   lpDirectSoundBuffer  [MAX_SOUNDS]; // SoundBuffer interface
LPDIRECTSOUND3DBUFFER lpDirectSound3DBuffer[MAX_SOUNDS]; // 3D interface (to same buffer)  
int SoundedNum[MAX_SOUNDS]={0,0,0,0,0,0};                                                    

//LPDIRECTDRAWPALETTE     lpDDPal;        // DirectDraw palette
BOOL                    bActive;        // is application active?
DWORD						avitimer=0;
WORD wAviID;
DWORD resttime=450;
DWORD NowTime=0;
DWORD treegot=0;
BOOL Finished1=FALSE,Finished2=FALSE,Finished3=FALSE;

DWORD treelost=0;
DWORD treebasicnum=305;
float greenity=((float)treebasicnum)/50.0;
int activenum=0;

int Dir32(POINT fir,POINT sec);



void FillColor(LPDIRECTDRAWSURFACE lpsurf,DWORD color)
{  DDBLTFX ddbltfx;	
 ddbltfx.dwSize = sizeof(ddbltfx);
	    ddbltfx.dwFillColor = color;
	    lpsurf->Blt(
	    NULL,        // Destination
	    NULL, NULL,  // Source rectangle
	    DDBLT_COLORFILL, &ddbltfx);
 
}
void intro::InitIntro()
{

 time=timeGetTime();
 lpIntr=DDLoadBitmap(lpDD,"bmp\\intr0.bmp",0,0);
 lpIntrbk=DDLoadBitmap(lpDD,"bmp\\introbk.bmp",0,0);
 DDSetColorKey(lpIntr,CLR_INVALID);

  //lpDDPal = DDLoadPalette(lpDD, "bmp\\intr0.bmp");

 //if (lpDDPal)
   //     lpIntr->SetPalette(lpDDPal);
 //if(lpIntr==NULL)return initFail(NULL);
 p.x=120;
 p.y=0;
 bplay=TRUE;

}
void intro::FreeIntro()
{if(lpIntr != NULL )
   {
    lpIntr->Release();
    lpIntr = NULL;
   }
 if(lpIntrbk != NULL )
   {
    lpIntrbk->Release();
    lpIntrbk = NULL;
   } 
/*if( lpDDPal != NULL )
        {
            lpDDPal->Release();
            lpDDPal = NULL;
        }*/

bplay=FALSE;
}

BOOL intro::Intro()
{int y;
//int i;
// PALETTEENTRY        pe[256];

 if((timeGetTime()-time)>40)
{time=timeGetTime();

FillColor(lpDDSBack,0);		

 /*if(lpDDPal->GetEntries( 0, 0, 256, pe ) != DD_OK)
        {
          
        }
        
        for(i=1; i<256; i++)
        {           
            pe[i].peRed =0;
            pe[i].peGreen = 0;
            pe[i].peBlue = 0;
        }
            
        if(lpDDPal->SetEntries( 0, 0, 256, pe) != DD_OK)
        {
           
        }		*/
//lpDDSPrimary->SetPalette(lpDDPal);


p.y++;
 if(p.y<=320)
	{y=400-p.y;
	Blt(lpDDSBack,0,0,640,480,lpIntrbk,0,0);
	JFBlt(lpDDSBack,p.x,y,400,p.y,lpIntr,0,0,DDBLTFAST_SRCCOLORKEY);

	}
 /*else if((p.y>320)&&(p.y<=800))
   {
	Blt(lpDDSBack,p.x,80,400,320,lpIntr,0,p.y-300);
	}
 else 
   {Blt(lpDDSBack,p.x,80,400,1120-p.y,lpIntr,0,p.y-300);

   }*/

 }
 if(p.y<=320)
 Flip();
 else if(p.y<400)
       return TRUE;
 else return FALSE;
 
 return TRUE;

}

void ViewInfo(myarmy *m)
{int d=20,s=2;
 int i;
 int x;
 if(m!=NULL)
 {//if(m->family==GREENER)
    //Blt(lpDDPP,13,151,134,145,Others[8],0,0);
  {if(m->type>=ENEMY)
       d=50;
  if(activenum==1)
  {
	  if((m!=tankinfo.tanknum)&&(m->family==TANK))
    {Blt(lpDDPP,13,151,134,145,Others[9],0,0);
     JFBlt(lpDDPP,24,228,52,62,Others[2],0,0,DDBLTFAST_SRCCOLORKEY);
	 tankinfo.tanknum=m;
     tankinfo.blood=m->blood;
	 tankinfo.protect=m->protect;
	 tankinfo.attack=m->attack;
	 tankinfo.speed=m->speed;
     if(tankinfo.tanknum->type==WE)
	 {JFBlt(lpDDPP,23,165,50,50,Army[0],0,0,DDBLTFAST_SRCCOLORKEY);
	  JFBlt(lpDDPP,80,170,60,50,Others[3],0,0,DDBLTFAST_SRCCOLORKEY);
	 }
     else
	  {JFBlt(lpDDPP,23,165,50,50,Army[1],0,0,DDBLTFAST_SRCCOLORKEY); 
        JFBlt(lpDDPP,80,170,60,50,Others[4],0,0,DDBLTFAST_SRCCOLORKEY);
	  }


      x=m->blood/10;
	  if(x>12)x=12;
	  for(i=0;i<x;i++)
	     {	
		  Blt(lpDDPP,78+i*5,235,4,4,PicRect,0,d);

	     }
	   x=m->attack/2;
	  if(x>12)x=12;
	  for(i=0;i<x;i++)
	     {
		  Blt(lpDDPP,78+i*5,250,4,4,PicRect,0,d);
	     }

	   x=m->protect/10;
	  if(x>12)x=12;
	  for(i=0;i<x;i++)
	     {
		  Blt(lpDDPP,78+i*5,263,4,4,PicRect,0,d);
	     }
	   x=(int)m->speed*2;
	  if(x>12)x=12;

	   for(i=0;i<x;i++)
	     {	
		  Blt(lpDDPP,78+i*5,278,4,4,PicRect,0,d);
	     }
	      
    }
else if((m->blood!=tankinfo.blood)&&(m->family==TANK))
         {tankinfo.blood=m->blood;
	    Blt(lpDDPP,78,235,60,4,Others[0],78,235);
   //     Blt(lpDDPP,24,233,52,62,Others[2],52,62);

        x=m->blood/10;
	   if(x>12)x=12;
 	    for(i=0;i<x+1;i++)
	     {	
		  Blt(lpDDPP,78+i*5,235,4,4,PicRect,0,d);
	     }
         }  
    } 	 
 }
 }
else Blt(lpDDPP,12,152,134,145,Others[0],12,152);

}

void Blt(LPDIRECTDRAWSURFACE lpDDSuf,LONG x,LONG y,LONG w,LONG h,LPDIRECTDRAWSURFACE lpDDSrc,LONG sx,LONG sy)
{HRESULT ddrval;
 RECT des,src;
 DDBLTFX ddbltfx;
 ddbltfx.dwSize=sizeof(DDBLTFX);
 des.left=x;des.top=y;des.right=x+w;des.bottom=y+h;
 src.left=sx;src.top=sy;src.right=sx+w;src.bottom=sy+h;
 if((lpDDSuf==NULL)||(lpDDSrc==NULL))return;
 if((des.right<0)||(des.left>640)||(des.top>480)
	 ||(des.bottom<0))
	   return;


 
 
 if((des.left<0)&&(des.right>0))
    {des.right=w+des.left;
     src.left-=des.left;
     des.left=0;
	 
	 
    }
else if((des.right>640)&&(des.left<640))
    { src.right-=des.right-640;
     des.right=640;
	
    }
if((des.top<0)&&(des.bottom>0))
    {des.bottom=h+des.top;
     src.top-=des.top;
     des.top=0;
	 
    }
else if((des.bottom>480)&&(des.top<480))
    {src.bottom-=des.bottom-480;
     des.bottom=640;
	 
    }

while(1)
  {ddrval=lpDDSuf->Blt(&des,lpDDSrc,&src,DDBLT_ALPHASRC,&ddbltfx);
   if(ddrval==DD_OK)
	   return;
   if( ddrval == DDERR_SURFACELOST )
        {if(restoreAll()!=DD_OK)
            return;
       
        }
   if( ddrval != DDERR_WASSTILLDRAWING )
        {
            return;
        }
}

}

void JFBlt(LPDIRECTDRAWSURFACE lpDDSuf,LONG x,LONG y,LONG w,LONG h,LPDIRECTDRAWSURFACE lpDDSrc,LONG sx,LONG sy,DWORD flag)
{HRESULT ddrval;
 RECT src;
 src.left=sx;src.top=sy;src.right=sx+w;src.bottom=sy+h;
 if((lpDDSuf==NULL)||(lpDDSrc==NULL))return;
if((x+w<0)||(x>640)||(y>480)
	 ||(y+h<0))
	   return;


if((x<0)&&(x+w>0))

    {src.left-=x;
     x=0;
	 
	 
    }
else if((x+w>640)&&(x<640))
    {
     
	 src.right-=x+w-640;
    }
if((y<0)&&(y+h>0))
    {src.top-=y;
	
	y=0;
	 
    }
else if((y+h>480)&&(y<480))
    {     
	 src.bottom-=y+h-480;
    }


  while(1)
  {ddrval=lpDDSuf->BltFast(x,y,lpDDSrc,&src,flag); 
   if(ddrval==DD_OK)
	   return;
   if( ddrval == DDERR_SURFACELOST )
        {if(restoreAll()!=DD_OK)
            return;
            
        }
   if( ddrval != DDERR_WASSTILLDRAWING )
        {
            return;
        }

  }
}




void InitBuild()
{ build=new Building(57,1,HOUSEA,WE);
   build->Prev=firstbuild;
   firstbuild->Next=build;
   
   
   build->Next=new Building(36,32,HOUSEA,WE);
   build->Next->Prev=build;
   build=build->Next;

   build->Next=new Building(4,7,GREENFACTORY,WE);
   build->Next->Prev=build;
   build=build->Next;

   build->Next=new Building(8,54,HOUSEA,WE);
   build->Next->Prev=build;
   build=build->Next;
   build->Next=NULL;

   
}




void StopSound(int ID)
{IDirectSoundBuffer_Stop(lpDirectSoundBuffer[ID]);

}
///////////
//
//Sound(POINT,int ID)
///////////
void Sound(POINT nowHL,int ID,BOOL bLoop)
{
    
	
//IDirectSoundBuffer_Stop(lpDirectSoundBuffer[ID]);
if((nowHL.x-posite.L>20)||(nowHL.y-posite.H>23))
   
IDirectSound3DBuffer_SetPosition(lpDirectSound3DBuffer[ID],
                                  -P2M(-(nowHL.x-posite.L)*CS+640),
                                  +P2M(-(nowHL.y-posite.H)*CS+480),
                                  D3DVAL(0),
                                  DS3D_DEFERRED);
else if((nowHL.x-posite.L<0)||(nowHL.y-posite.H<0))
     IDirectSound3DBuffer_SetPosition(lpDirectSound3DBuffer[ID],
                                  -P2M((nowHL.x-posite.L)*CS),
                                  +P2M((nowHL.y-posite.H)*CS),
                                  D3DVAL(0),
                                  DS3D_DEFERRED);
else IDirectSound3DBuffer_SetPosition(lpDirectSound3DBuffer[ID],
                                  0.0,
                                  0.0,
                                  D3DVAL(0),
                                  DS3D_DEFERRED);

IDirectSoundBuffer_SetCurrentPosition(lpDirectSoundBuffer[ID], 0);
IDirectSound3DListener_CommitDeferredSettings(glpDirectSound3DListener);
if (DSERR_BUFFERLOST==IDirectSoundBuffer_Play(lpDirectSoundBuffer[ID],
                                                           0,
                                                           0,

                      (bLoop)? DSBPLAY_LOOPING : 0 ))
                           {
                          WaveReload(gSoundEffect[ID]);
                            }


}




/*
 *FUNCTION:   InitPlayerLocalSoundData
 *
 *
 *NOTES:      Takes a ship and initializes ONLY its soundbuffers and sound flags.
 *            It leaves everything else alone.  Good for when going to
 *            full-screen mode, when we need to get rid of the sound buffers
 *            for a bit, but don't want to change the data.
 */
void InitSoundData()
{
int i;
    if (InitSfx(ghWndMain))
    {
        for (i=0; i<MAX_SOUNDS; i++)
        {
            if (FALSE == WaveGetBuffers(gSoundEffect[i],&lpDirectSoundBuffer[i], &lpDirectSound3DBuffer[i]))
            {//if it didn't work, get rid of all the other sound buffers
              //  ShowError(IDS_DSOUND_DUPBUF);
                for (--i; i>=0; i--)
                {
                    IDirectSoundBuffer_Release(lpDirectSoundBuffer  [i]);
                    IDirectSoundBuffer_Release(lpDirectSound3DBuffer[i]);
                    lpDirectSoundBuffer  [i] = NULL;
                    lpDirectSound3DBuffer[i] = NULL;
                }
                return;
            }
        }

        
    }
    else
    {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美绝品在线观看成人午夜影视| 国产亲近乱来精品视频| 日本韩国一区二区三区| 成人av在线网站| 成人美女视频在线看| 久久国产精品免费| 亚洲欧美视频一区| 欧美mv和日韩mv的网站| 日韩欧美在线综合网| 久久欧美一区二区| 2024国产精品视频| 精品精品欲导航| 日韩午夜精品电影| 日韩欧美国产电影| 精品裸体舞一区二区三区| 4438成人网| 日韩视频免费观看高清完整版在线观看 | 美国毛片一区二区三区| 亚洲一区二区三区中文字幕| 国产精品电影一区二区| 亚洲欧洲美洲综合色网| 亚洲欧洲在线观看av| 国产精品欧美久久久久无广告| 久久久久久亚洲综合影院红桃| 欧美精品一区二区不卡| www久久精品| 国产精品日日摸夜夜摸av| 国产精品国产三级国产普通话蜜臀| 中文字幕巨乱亚洲| 亚洲一区在线观看网站| 免费在线成人网| 成人在线视频首页| 欧美精三区欧美精三区| 欧美一区二区私人影院日本| 精品日韩在线观看| 国产精品欧美久久久久无广告 | 91精品国产高清一区二区三区 | 欧美无砖专区一中文字| 欧美v国产在线一区二区三区| 久久久国产午夜精品| 亚洲欧美韩国综合色| 免费观看30秒视频久久| 成人av午夜电影| 欧美人妖巨大在线| 国产欧美精品国产国产专区| 亚洲电影中文字幕在线观看| 国产麻豆日韩欧美久久| 欧美日韩一区久久| 欧美韩国一区二区| 免费在线观看不卡| 色综合久久天天| 久久久国产精品不卡| 亚洲高清免费观看高清完整版在线观看| 国产原创一区二区| 欧美人妖巨大在线| 亚洲欧美综合色| 国产一区二区久久| 欧美高清性hdvideosex| 亚洲图片欧美激情| 国产91精品精华液一区二区三区| 91精品国产品国语在线不卡| 一区二区激情视频| jiyouzz国产精品久久| 久久综合久久99| 久久国产综合精品| 欧美福利电影网| 亚洲成av人片一区二区梦乃| 99精品欧美一区二区三区综合在线| 久久日韩精品一区二区五区| 热久久国产精品| 欧美精品 日韩| 亚洲aⅴ怡春院| 欧美浪妇xxxx高跟鞋交| 亚洲一区二区3| 欧美日韩一二三区| 亚洲www啪成人一区二区麻豆 | 韩国精品久久久| 精品国产sm最大网站免费看 | 亚洲久草在线视频| 在线观看日韩电影| 一区二区三区成人| 欧美在线免费观看亚洲| 亚洲制服欧美中文字幕中文字幕| 色天天综合久久久久综合片| 亚洲一区精品在线| 欧美一区二区三区日韩视频| 另类中文字幕网| 欧美激情一区在线观看| 99久久er热在这里只有精品66| 中文字幕欧美一区| 在线观看欧美精品| 日韩电影免费一区| 久久久99精品免费观看不卡| 国产精品99久久久| 亚洲欧美二区三区| 91蜜桃网址入口| 亚洲已满18点击进入久久| 欧美日韩国产精品自在自线| 蜜桃精品在线观看| 国产亚洲精久久久久久| 91老师国产黑色丝袜在线| 亚洲人成伊人成综合网小说| 欧美在线观看视频一区二区| 日本人妖一区二区| 国产精品欧美综合在线| 在线不卡一区二区| 精品中文字幕一区二区| 国产精品免费久久久久| 欧美一区二区三区婷婷月色| 国产精品一区二区在线播放| 亚洲欧美日韩在线播放| 日韩女优av电影| 91原创在线视频| 麻豆精品视频在线观看免费 | 日韩欧美卡一卡二| 顶级嫩模精品视频在线看| 天堂在线一区二区| 国产视频一区不卡| 欧美丰满嫩嫩电影| www.久久久久久久久| 美女精品一区二区| 一区二区三区在线观看视频| 欧美sm极限捆绑bd| 欧美日韩国产一级二级| 91在线观看美女| 不卡视频一二三四| 国产真实乱对白精彩久久| 日本大胆欧美人术艺术动态| 中文字幕一区二区三区av| wwwwxxxxx欧美| 91.com在线观看| 99精品国产99久久久久久白柏| 日本中文字幕一区| 亚洲图片有声小说| 国产色综合久久| 精品国产91洋老外米糕| 日韩欧美在线影院| 欧美另类变人与禽xxxxx| 99久久er热在这里只有精品15| 国内精品国产三级国产a久久| 亚洲成va人在线观看| 亚洲综合色婷婷| 一区二区三区中文字幕| 中文字幕日韩精品一区| 国产欧美日韩在线观看| 欧美精品一区二区三区蜜桃 | 国产精品日韩成人| 国产精品久久久久久久岛一牛影视| 国产视频在线观看一区二区三区| 欧美精品一区二区三区高清aⅴ| 日韩一区二区视频在线观看| 欧美一级久久久| 日韩精品在线一区二区| 久久免费视频色| 中文字幕不卡在线播放| 国产无一区二区| 国产精品国产a| 一区二区三区免费网站| 亚洲狠狠爱一区二区三区| 亚洲成人免费在线观看| 蜜桃av一区二区三区| 国产精品99久久久久久久女警| 成人美女视频在线看| 欧美日韩一区二区在线观看视频| 欧美亚洲国产一区二区三区va| 欧美高清性hdvideosex| 精品1区2区在线观看| 亚洲三级电影全部在线观看高清| 亚洲va欧美va人人爽午夜| 国内精品国产成人国产三级粉色| 成人免费看视频| 91精品国产欧美一区二区成人| 国产人成亚洲第一网站在线播放| 亚洲欧美电影院| 韩国午夜理伦三级不卡影院| av网站免费线看精品| 欧美一区二区成人6969| 国产精品国产三级国产三级人妇 | 国产免费成人在线视频| 亚洲一区二区三区中文字幕 | 国产精品美女久久久久久久 | 日韩欧美亚洲国产另类| 国产精品久久久久久久久快鸭| 午夜激情一区二区三区| 国产美女精品在线| 欧美另类z0zxhd电影| 亚洲色图欧美偷拍| 国产成人精品一区二| 91精品国产高清一区二区三区| 亚洲欧洲精品一区二区精品久久久 | 欧美色综合久久| 亚洲三级电影全部在线观看高清| 国内精品视频666| 91精品在线免费| 亚洲一区国产视频| 在线免费观看日本欧美| 国产精品色哟哟| 久久国内精品自在自线400部| 欧洲av在线精品| 亚洲欧美日韩在线不卡|