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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mainfrm.cpp

?? 2D即時戰略游戲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
    {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久久久免费精品国产| 亚洲欧洲日韩在线| 亚洲女同ⅹxx女同tv| 日韩电影在线免费观看| 成a人片国产精品| 精品日韩在线观看| 亚洲二区在线观看| 97精品国产露脸对白| 久久在线免费观看| 三级久久三级久久久| 91女神在线视频| 久久久亚洲精品石原莉奈| 丝袜亚洲另类欧美综合| 91精品福利视频| 欧美激情在线一区二区| 免播放器亚洲一区| 欧美男女性生活在线直播观看| 亚洲欧洲日产国产综合网| 国产在线精品免费av| 欧美精品xxxxbbbb| 亚洲成a人片在线不卡一二三区 | 在线观看亚洲精品| 椎名由奈av一区二区三区| 国产精品一区在线观看你懂的| 69堂亚洲精品首页| 日韩电影在线观看网站| 欧美日韩一区视频| 亚洲电影第三页| 欧美专区日韩专区| 亚洲一区二区三区国产| 色天使久久综合网天天| 亚洲精品久久久蜜桃| 91麻豆产精品久久久久久 | 99久久99精品久久久久久| 国产欧美视频在线观看| 成人一区二区三区| 中文字幕免费一区| 91在线porny国产在线看| ...中文天堂在线一区| 91最新地址在线播放| 一区在线播放视频| 色综合久久天天综合网| 亚洲精品一卡二卡| 欧美人与禽zozo性伦| 欧美aⅴ一区二区三区视频| 欧美一卡二卡三卡| 国产呦精品一区二区三区网站| 欧美精品一区二区在线观看| 国模套图日韩精品一区二区| 国产人成一区二区三区影院| 国产aⅴ综合色| 国产精品成人网| 在线亚洲一区二区| 男男gaygay亚洲| 国产亚洲欧美中文| 99精品在线免费| 天天色天天操综合| 欧美精品一区二区三区蜜桃视频| 国产suv精品一区二区883| 最新欧美精品一区二区三区| 欧美三级电影在线看| 美腿丝袜在线亚洲一区| 国产亚洲精品精华液| 一本久久精品一区二区| 日韩国产在线观看一区| 国产午夜精品一区二区三区视频 | 国产精品免费久久久久| 在线观看成人小视频| 久久99精品国产麻豆不卡| 国产精品久久久久久久久免费丝袜 | 99久久久无码国产精品| 午夜精品成人在线视频| 国产校园另类小说区| 欧美亚洲尤物久久| 国产一区二区视频在线播放| 亚洲男人的天堂在线观看| 欧美一区二区视频免费观看| 99久久精品国产网站| 免费成人小视频| 亚洲女性喷水在线观看一区| 精品久久久久久综合日本欧美| 91色porny| 国产精品一区二区在线观看不卡| 一区二区三区四区五区视频在线观看| 日韩你懂的电影在线观看| 91丨九色丨国产丨porny| 捆绑调教一区二区三区| 一区二区久久久久久| 日本一区二区三区四区在线视频| 5858s免费视频成人| a4yy欧美一区二区三区| 久久精品国产999大香线蕉| 亚洲永久精品大片| 国产精品嫩草久久久久| 2014亚洲片线观看视频免费| 欧美日韩一级视频| 一本色道久久综合亚洲精品按摩| 国产精品资源站在线| 久久国内精品视频| 三级欧美在线一区| 亚洲高清一区二区三区| 一区二区三区在线观看动漫| 国产精品天美传媒| 久久久久久久久久久久电影| 欧美一区午夜视频在线观看| 在线亚洲+欧美+日本专区| av亚洲精华国产精华精| 国产成人亚洲综合a∨婷婷图片| 久99久精品视频免费观看| 全国精品久久少妇| 午夜精品一区在线观看| 亚洲va欧美va国产va天堂影院| 亚洲欧美另类小说| 亚洲欧洲美洲综合色网| 亚洲欧美综合另类在线卡通| 欧美韩国一区二区| 日本一区二区三级电影在线观看 | 亚洲欧美日韩小说| 亚洲免费高清视频在线| 亚洲黄色av一区| 亚洲伊人色欲综合网| 亚洲一区二区三区小说| 亚洲精品成a人| 亚洲综合精品久久| 午夜精品福利一区二区蜜股av| 午夜精品久久久久久久| 蜜桃久久久久久| 国产精品1区二区.| 99久久99久久精品免费观看 | 欧美一级淫片007| 欧美成人video| 欧美激情一区二区三区在线| 亚洲天堂网中文字| 午夜av一区二区三区| 日本欧美一区二区在线观看| 精品无人码麻豆乱码1区2区| 国产91精品一区二区| 91丝袜美腿高跟国产极品老师| 91在线观看视频| 欧美人成免费网站| 精品国产一二三区| 国产精品免费视频网站| 亚洲国产精品自拍| 韩国中文字幕2020精品| www.欧美精品一二区| 欧美性三三影院| 久久精品一区二区三区不卡牛牛 | 99久久99久久久精品齐齐 | 在线精品国精品国产尤物884a| 91精品免费观看| 欧美国产成人在线| 丝袜亚洲另类欧美综合| 成人自拍视频在线| 国产日韩精品一区二区浪潮av| 最新成人av在线| 亚洲免费伊人电影| 麻豆91免费观看| 9l国产精品久久久久麻豆| 欧美午夜精品一区| 国产三级一区二区| 亚洲国产日韩在线一区模特| 国产精品亚洲人在线观看| 精品视频全国免费看| 国产欧美在线观看一区| 日本vs亚洲vs韩国一区三区二区| 成人激情文学综合网| 777奇米成人网| 亚洲激情图片一区| 国产91清纯白嫩初高中在线观看| 在线成人av网站| 亚洲女厕所小便bbb| 国产成人8x视频一区二区| 日韩精品一区二区三区中文精品| 亚洲视频1区2区| 国产电影一区在线| 欧美成人一区二区三区在线观看| 亚洲蜜桃精久久久久久久| 丁香一区二区三区| 久久久噜噜噜久久中文字幕色伊伊 | 日韩一区二区在线观看| 日韩一区欧美小说| 粉嫩嫩av羞羞动漫久久久| 久久一留热品黄| 日本欧美久久久久免费播放网| 欧美图区在线视频| 一区二区三区高清| 一本到高清视频免费精品| 亚洲国产电影在线观看| 国产综合色视频| 精品国产伦一区二区三区观看方式| 性做久久久久久免费观看 | 成人一道本在线| 欧美国产精品中文字幕| 国产风韵犹存在线视精品| 国产亚洲欧美激情| 国产很黄免费观看久久| 国产午夜精品福利| 国产v日产∨综合v精品视频| 国产午夜亚洲精品午夜鲁丝片| 国产精品自拍网站|