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

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

?? mouse.h

?? 用c語言實現的導游圖
?? H
字號:
#include <io.h>
#include <bios.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#include <bios.h>
#include <fcntl.h>
#include <mem.h>
#include <math.h>
#include <string.h>
#include <malloc.h>
#include <time.h>
#include<graphics.h>

#define MOUSE_INT 0x33
#define MOUSE_RESET 0x00
#define MOUSE_SHOW 0x01
#define MOUSE_HIDE 0x02
#define MOUSE_BUTT_POS 0x03
#define MOUSE_SET_SENSITIVITY 0x1A
#define MOUSE_MOTION_REL 0x0B
#define MOUSE_LEFT_BUTTON 0x01
#define MOUSE_RIGHT_BUTTON 0x02
#define MOUSE_CENTER_BUTTON 0x04

#define SPRITE_DEAD 0
#define SPRITE_ALIVE 1
#define SCREEN_WIDTH 320
#define SCREEN_HEIGHT 40
#define SCREEN_WIDTH1 320
#define SCREEN_HEIGHT1 200
#define SCREEN_HEIGHT3 70

#define VGA256 0x13
#define TEXT_MODE 0x03

#define SPRITE_WIDTH 16
#define SPRITE_HEIGHT 16
#define SPRITE1_WIDTH 5
#define SPRITE1_HEIGHT 5

#define MAX_SPRITE_FRAMES 8
#define PALETTE_MASK 0x3c6
#define PALETTE_REGISTER_RD 0x3c7
#define PALETTE_REGISTER_WR 0x3c8
#define PALETTE_DATA 0x3c9

typedef struct RGB_color_typ
{
unsigned char red;
unsigned char green;
unsigned char blue;
}RGB_color,*RGB_color_ptr;
unsigned char far *video_buffer=(char far *)0xA0000000L;
typedef struct{
  int mak[2][16];
  int hor;
  int ver;
  }mscurstype;

mscurstype handcurs={-7681,-7681,-7681,-7681,-7681,-8192,-8192,-8192,
		      0,    0,    0,    0,    0,    0,    0,    0,
		      7680,4608,4608,4608,4608,5119,4681,4681,4681,
		      -28671,-28671,-28671,-22767,-32767,-32767,-1,-1,0};

mscurstype arrow={0x3fff,0x1fff,0x0fff,0x07ff,
 0x03ff,0x01ff,0x00ff,0x007f,
 0x003f,0x00ff,0x01ff,0x10ff,
 0x30ff,0xf87f,0xf87f,0xfc3f,
 0x0000,0x4000,0x6000,0x7000,
 0x7800,0x7c00,0x7e00,0x7f00,
 0x7f80,0x7e00,0x7c00,0x4600,
 0x0600,0x0300,0x0300,0x0180,0,0};

mscurstype lin={0xe3e3,0xe3e3,0xe3e3,0xe3e3,
0x8080, 0x8080,0x8080,0xe3e3,
0xc1c1, 0x8080,0x0000,0x2323,
0xe3e3,0xe3e3,0xe3e3, 0xe3e3,
 0x0000,0x0808,0x0808,0x0808,
 0x0808,0x3e3e,0x0808,0x0808,
 0x1c1c,0x2a2a,0x4848,0x0808,
 0x0808,0x0808,0x0808,0x0000,2,0};

mscurstype arrowcurs={16383,8191,4095,2047,1023,511,225,127,63,
		       31,511,4351,12543,-1921,-1921,-961,0,16348,
		       24576,28672,30720,31744,32256,32512,32640,
		       32704,31744,17920,17920,768,384,192,-1,-1};

void Set_Palette_Register(int index,RGB_color_ptr color)
{
outp(PALETTE_MASK,0xff);
outp(PALETTE_REGISTER_WR,index);
outp(PALETTE_DATA,color->red);
outp(PALETTE_DATA,color->green);
outp(PALETTE_DATA,color->blue);
}

int Squeeze_Mouse(int command,int *x,int *y,int *buttons)
{
union REGS inregs,outregs;
	switch(command)
	{case MOUSE_RESET:	{inregs.x.ax=0x00;
				int86(MOUSE_INT,&inregs,&outregs);
				*buttons=outregs.x.bx;
				return(outregs.x.ax);
				}break;
	case MOUSE_SHOW:	{inregs.x.ax=0x01;
				int86(MOUSE_INT,&inregs,&outregs);
				return(1);
				}break;
	case MOUSE_HIDE:	{inregs.x.ax=0x02;
				int86(MOUSE_INT,&inregs,&outregs);
				return(1);
				}break;
	case MOUSE_BUTT_POS: 	{inregs.x.ax=0x03;
				int86(MOUSE_INT,&inregs,&outregs);
				*x=outregs.x.cx;
				*y=outregs.x.dx;
				*buttons=outregs.x.bx;
				return(1);
				}break;
	case MOUSE_MOTION_REL:  {inregs.x.ax=0x03;
				int86(MOUSE_INT,&inregs,&outregs);
				*x=outregs.x.cx;
				*y=outregs.x.dx;
				return(1);
				}break;
	case MOUSE_SET_SENSITIVITY:{
				inregs.x.ax=0x04;
				inregs.x.bx=*buttons;
				inregs.x.cx=*x;
				inregs.x.dx=*y;
				int86(MOUSE_INT,&inregs,&outregs);
				return(1);
				}break;
	default:break;
	}
	return(1);
}

void setcurshape(mscurstype mask)
{ union REGS r;
  struct SREGS s;
  r.x.ax=9;
  r.x.bx=mask.hor;
  r.x.cx=mask.ver;
  r.x.dx=FP_OFF(&mask);
  s.es=FP_SEG(&mask);
  int86x(0x33,&r,&r,&s);
}
void mscurson(mscurstype shape)
{int msvisible;
 union REGS r;
 struct SREGS s;
 setcurshape(shape);
 r.x.ax=1;
 msvisible=1;
 int86x(0x33,&r,&r,&s);
 }
typedef struct pcx_header_typ
	{
	char manufacturer;
	char version;
	char encoding;
	char bits_per_pixel;
	int x,y;
	int width,height;
	int horz_res;
	int vert_res;
	char ega_palette[48];
	char reserved;
	char num_color_planes;
	int bytes_per_line;
	int palette_type;
	char padding[58];
	} pcx_header, *pcx_header_ptr;
typedef struct pcx_picture_typ
	{  pcx_header header;
	RGB_color palette[256];
	char far *buffer;
	} pcx_picture, *pcx_picture_ptr;
void Set_Video_Mode(int mode)
{
	union REGS inregs,outregs;
	inregs.h.ah=0;
	inregs.h.al=(unsigned char)mode;
	int86(0x10,&inregs,&outregs);
}

void PCX_Load_Screen(char *filename, pcx_picture_ptr image,int enable_palette)
{
FILE *fp;
int num_bytes,index;
unsigned int count;
unsigned char data;
char far *temp_buffer;
fp = fopen(filename,"rb");
temp_buffer = (char far *)image;
for (index=0; index<128; index++)
    {
    temp_buffer[index] = getc(fp);
    }
count=0;
while(count<=(unsigned int)SCREEN_WIDTH1 * SCREEN_HEIGHT1)
	 {	 data = getc(fp);
     if (data>=192 && data<=255)
	{num_bytes = data-192;
	data  = getc(fp);
	while(num_bytes-->0)
	     {
 video_buffer[count++]=data;
	     }
	}
     else
	{
	/*image->buffer[count++] = data; */
	  video_buffer[count++]=data;
	}
     }
fseek(fp,-768L,SEEK_END);
for (index=0; index<256; index++)
    {    image->palette[index].red   = (getc(fp) >> 2);
	 image->palette[index].green = (getc(fp) >> 2);
	 image->palette[index].blue  = (getc(fp) >> 2);
    }
fclose(fp);
if (enable_palette)
   {   for (index=0; index<256; index++)
       {   Set_Palette_Register(index,(RGB_color_ptr)&image->palette[index]);
	}
   }
}
typedef struct sprite_type
{int x,y;
int x_old,y_old;
int width,height;
int anim_clock;
int anim_speed;
int motion_clock;
int motion_speed;
char far *frames[MAX_SPRITE_FRAMES];
int curr_frame;
int num_frames;
int state;
char far *background;
void far *extra_data;
}sprite,*sprite_ptr;
void Sprite_Init_Size(sprite_ptr sprite,int x,int y,int ac,int as,int mc,int ms,int height,int width,int frame)
{int index;
sprite->x            = x;
sprite->y            = y;
sprite->x_old        = x;
sprite->y_old        = y;
sprite->width        = width;
sprite->height       = height;
sprite->anim_clock   = ac;
sprite->anim_speed   = as;
sprite->motion_clock = mc;
sprite->motion_speed = ms;
sprite->curr_frame   = 0;
sprite->state        = SPRITE_DEAD;
sprite->num_frames   = 0;
sprite->background   = (char far *)malloc(width * height+1);
for (index=0; index<frame; index++)
    sprite->frames[index] = NULL;
}
void PCX_Grab_Bitmap_Size_Screen(pcx_picture_ptr image, sprite_ptr sprite,
	 int sprite_frame,int grab_x, int grab_y,int height,int width)
{int x_off,y_off, x,y, index;
char far *sprite_data;
sprite->frames[sprite_frame] = (char far *)malloc(width * height);
sprite_data = sprite->frames[sprite_frame];
x_off = (width) * grab_x;
y_off = (height) * grab_y ;
y_off = y_off * 320;
for (y=0; y<height; y++)
    {    for (x=0; x<width; x++)
	{sprite_data[y*width + x] = video_buffer[y_off + x_off + x+1];
	}
	y_off+=320;
  }
sprite->num_frames++;
}
void Fill_Screen(int value)
{_fmemset(video_buffer,(char)value,SCREEN_WIDTH*SCREEN_HEIGHT1+1);
}
void Fill_Screen_Size(int value,int x0,int y0,int x1,int y1)
{int x,y;
long i=0,height,width;
height=y1-y0+1;
width=x1-x0+1;
x=x0;
while(i<height*width)
{	y=y0+i/width;
	i=i+width;
	_fmemset(video_buffer+x+y*SCREEN_WIDTH,(char)value,width);
}
}
void Behind_Sprite_Size(sprite_ptr sprite,int height,int width)
{char far *work_back;
int work_offset=0,offset,y;
work_back = sprite->background;
offset = (sprite->y << 8) + (sprite->y << 6) + sprite->x;
for (y=0; y<height; y++)
    {    _fmemmove((void far *)&work_back[work_offset],
	     (void far *)&video_buffer[offset],
	     width);
	offset+= SCREEN_WIDTH;
	work_offset += width;
	    }
}
void Draw_Sprite_Size(sprite_ptr sprite,int height,int width)
{char far *work_sprite;
int work_offset=0,offset,x,y;
work_sprite = sprite->frames[sprite->curr_frame];
offset = ((sprite->y) << 8) + ((sprite->y) << 6) + sprite->x;
for (y=0; y<height; y++)
    {    for (x=0; x<width; x++)
	{ if(work_sprite[work_offset+x])
/*data==(unsigned char)work_sprite[work_offset+x];
// if(data)
//	     video_buffer[offset+x] =data; */
   video_buffer[offset+x]=work_sprite[work_offset+x];
	}
    offset      += SCREEN_WIDTH;
    work_offset += width;
    }
}
void Erase_Sprite_Size(sprite_ptr sprite,int height,int width)
{char far *work_back;
int work_offset=0,offset,y;
work_back = sprite->background;
offset = (sprite->y << 8) + (sprite->y << 6) + sprite->x;
for (y=0; y<height; y++)
    {    _fmemmove((void far *)&video_buffer[offset],
	     (void far *)&work_back[work_offset],
	     width);
    offset      += SCREEN_WIDTH;
    work_offset += width;
    }
}
void Sprite_Delete_Size(sprite_ptr sprite,int frame)
{int index;
farfree(sprite->background);
for (index=0; index<frame; index++)
    farfree(sprite->frames[index]);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲麻豆国产自偷在线| 一区二区三区蜜桃网| 欧美日韩免费观看一区二区三区| 福利视频网站一区二区三区| 久久成人免费电影| 国产精品一区二区免费不卡 | 国产·精品毛片| 国产suv一区二区三区88区| 国产成人亚洲综合a∨婷婷 | 亚洲精品中文在线影院| 夜夜爽夜夜爽精品视频| 视频一区欧美精品| 久久激情综合网| 成人综合婷婷国产精品久久免费| 99久久久久久99| 欧美午夜免费电影| 日韩欧美精品在线| 欧美国产丝袜视频| 亚洲一区av在线| 久久国产精品第一页| 大美女一区二区三区| 欧美亚洲一区二区在线观看| 欧美一区二区久久| 欧美激情一二三区| 亚洲综合免费观看高清完整版| 日韩国产精品久久| 国产福利一区在线| 欧美亚洲国产一区二区三区va| 91精品国产综合久久蜜臀| 久久理论电影网| 一区二区三区国产精华| 激情五月激情综合网| 在线亚洲+欧美+日本专区| 欧美xxxx在线观看| 亚洲夂夂婷婷色拍ww47| 激情综合网av| 在线免费不卡视频| 国产欧美一区二区三区沐欲| 性久久久久久久久久久久| 国产69精品久久久久毛片| 91麻豆精品国产91久久久久| 久久久天堂av| 日韩成人一级片| 一本色道久久综合亚洲91| 精品国产三级电影在线观看| 亚洲永久精品大片| 成人网在线播放| 欧美成人国产一区二区| 亚洲午夜电影网| av色综合久久天堂av综合| 日韩视频一区二区三区在线播放| 亚洲人成7777| 成人理论电影网| 久久老女人爱爱| 激情深爱一区二区| 欧美一区二区视频免费观看| 亚洲综合区在线| 91亚洲精华国产精华精华液| 欧美激情一区三区| 国产精品1024| 久久夜色精品国产噜噜av| 日韩精品乱码av一区二区| 91在线国内视频| 国产精品日产欧美久久久久| 国产经典欧美精品| 国产喷白浆一区二区三区| 精品无码三级在线观看视频| 日韩欧美一区二区三区在线| 香蕉影视欧美成人| 欧美精品第1页| 天天操天天色综合| 欧美三级在线播放| 天天色图综合网| 在线播放/欧美激情| 视频在线在亚洲| 91精品国产麻豆| 麻豆国产一区二区| 精品久久久久一区| 国产精品一二二区| 国产精品麻豆视频| 色www精品视频在线观看| 亚洲亚洲人成综合网络| 欧美精品日日鲁夜夜添| 日本成人在线一区| 久久久久久久久伊人| 成人黄色av电影| 一区二区国产视频| 欧美一卡二卡三卡| 激情久久五月天| 亚洲欧美综合在线精品| 欧美亚洲尤物久久| 激情小说欧美图片| 中文字幕日韩一区| 欧美综合一区二区| 九九视频精品免费| 国产精品久线在线观看| 欧美婷婷六月丁香综合色| 日韩va欧美va亚洲va久久| 久久久蜜桃精品| 一本色道久久综合亚洲aⅴ蜜桃| 天天综合天天综合色| 国产欧美日韩视频一区二区| 91玉足脚交白嫩脚丫在线播放| 五月天亚洲精品| 精品国产91乱码一区二区三区| 波多野结衣的一区二区三区| 亚洲超碰精品一区二区| 久久精品亚洲精品国产欧美| 色天使色偷偷av一区二区| 国产自产高清不卡| 一区二区成人在线视频| 欧美精品一区二区久久久| 日本精品免费观看高清观看| 麻豆精品新av中文字幕| 一区二区三区欧美日韩| 久久久久一区二区三区四区| 欧美色网一区二区| 成人小视频在线观看| 免费在线观看成人| 亚洲欧美日韩人成在线播放| 亚洲精品一区二区三区蜜桃下载| 一本色道综合亚洲| 成人福利视频在线| 麻豆freexxxx性91精品| 亚洲午夜三级在线| 日韩一区在线播放| 国产视频一区在线观看| 日韩精品最新网址| 制服.丝袜.亚洲.另类.中文| 日本道在线观看一区二区| 国产成人av影院| 久久97超碰国产精品超碰| 亚洲国产精品久久人人爱| 亚洲欧洲在线观看av| 国产欧美日韩久久| 精品国产免费久久| 精品裸体舞一区二区三区| 欧美日韩国产综合一区二区 | 国内精品久久久久影院色| 日韩影院免费视频| 亚洲成av人**亚洲成av**| 亚洲尤物视频在线| 亚洲超丰满肉感bbw| 欧美三级日韩三级| 成人精品一区二区三区中文字幕| 九九国产精品视频| 琪琪久久久久日韩精品| 美女在线观看视频一区二区| 天天做天天摸天天爽国产一区| 亚洲精品免费看| 亚洲一区二区在线免费看| 一区二区三区日韩在线观看| 亚洲色欲色欲www在线观看| 亚洲美女视频在线观看| 伊人夜夜躁av伊人久久| 亚洲美女在线一区| 亚洲国产另类av| 日韩成人av影视| 麻豆精品精品国产自在97香蕉| 久久国产精品一区二区| 国产高清精品网站| 91伊人久久大香线蕉| 欧美亚洲另类激情小说| 91精品午夜视频| 久久久三级国产网站| 国产精品久久久99| 亚洲国产一区二区视频| 性做久久久久久免费观看欧美| 美国十次了思思久久精品导航| 国产一区二区在线观看免费| 成人三级伦理片| 欧美视频一区二区在线观看| 日韩一区二区三区免费看 | 在线一区二区三区四区| 欧美日韩国产另类不卡| 精品国产第一区二区三区观看体验| 久久久www成人免费无遮挡大片 | 精品裸体舞一区二区三区| 欧美国产日韩一二三区| 亚洲综合色噜噜狠狠| 久久激情五月激情| 一本久久精品一区二区| 日韩三级伦理片妻子的秘密按摩| 欧美国产视频在线| 日韩av网站在线观看| 成人免费高清视频在线观看| 欧美色大人视频| 久久久九九九九| 日韩国产一区二| 99热精品国产| 日韩欧美的一区二区| 亚洲精品日产精品乱码不卡| 全部av―极品视觉盛宴亚洲| 成人免费av网站| 欧美一区二区三区系列电影| 成人欧美一区二区三区| 精品一区二区三区在线播放| 在线日韩av片| 中文久久乱码一区二区| 久久精品久久综合|