⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ldrawmo2.cpp

📁 ldraw_DOS游戏开发包
💻 CPP
字号:
#include <ldraw.h>
#include <stdio.h>
#define CLOSED 0
#define OPEN   1
#define MAX_SIZE (640L*480+4)
static char defImg[264]={
16,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,15,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,15,15,15,0,0,0,0,0,0,0,0,0,0,
0,0,0,15,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,15,15,15,
15,15,0,0,0,0,0,0,0,0,0,0,0,15,15,15,15,15,15,0,0,0,
0,0,0,0,0,0,0,15,15,15,15,15,15,15,0,0,0,0,0,0,0,0,
0,15,15,15,15,15,15,15,15,0,0,0,0,0,0,0,0,15,15,15,15,15,
0,0,0,0,0,0,0,0,0,0,0,15,15,0,15,15,0,0,0,0,0,0,
0,0,0,0,0,15,0,0,0,15,15,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,15,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,15,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
short lmlen=16, lmwid=16;
long  lmtimedelay=60000L;
static char *MouseImg=defImg,MouseVFlag=CLOSED,*SaveImg=NULL;
static short sx=-20,sy=-20,canwork=1,timeinit=0;
static void Save();
static void Rest();
static TGDC sdc;
short  LMouseNoWork=0;
void lmGetSaveXY(short *x,short *y) { *x=sx; *y=sy; }
void lmInitTimer()
{ if (timeinit) return;
  lt_install_timer();
  lt_install_int_ex(lmDraw,lmtimedelay);
  timeinit=1;
}
void lmCloseTimer()
{ lt_remove_int(lmDraw);
  timeinit=0;
}
char lmIfTimer()
{ return timeinit;
}
void lmImage(char *img)
{ short len,wid,status=MouseVFlag;
  if (status==OPEN) lmClose();
  canwork=0; 
  if (img==NULL) img=defImg; 
  len=*(short*)img; img+=2; wid=*(short*)img; img-=2;
  lmlen=len; lmwid=wid; 
  MouseImg=img;
  canwork=1;
  if (status==OPEN) lmOpen();
}
void lmOpen() 
{ if (MouseVFlag==OPEN) return;
  canwork=0;
  MouseVFlag=OPEN; 
  if (DrawBuf==VideoBuf)
   { Save(); 
   }
  canwork=1;
}
void lmClose() 
{ if (MouseVFlag==CLOSED) return;
  canwork=0;
  MouseVFlag=CLOSED;
  if (DrawBuf==VideoBuf)
   { Rest(); sx=sy=-lmlen-lmwid;   
   } 
  canwork=1;
}
void lmDraw()
{ short x,y,b;
  if (canwork==0) { LMouseNoWork++; return; }
  x=mouse_x; y=mouse_y;
  if (MouseVFlag==CLOSED) return;
  if (DrawBuf!=VideoBuf) { lputImage(x,y,MouseImg); return; }
  if (x==sx&&y==sy) return;
  Rest(); sx=x; sy=y;
  Save();
  lSaveDC(&sdc); lActiveDC(NULL);
  lputImage(x,y,MouseImg);
  lActiveDC(&sdc);
}
static void Save()
{ canwork=0;
  if (SaveImg==NULL) SaveImg=new char[MAX_SIZE];
  lSaveDC(&sdc); lActiveDC(NULL);
  lgetImage(sx,sy,sx+lmlen-1,sy+lmwid-1,SaveImg);
  lActiveDC(&sdc);
  canwork=1;
}
static void Rest()
{ canwork=0;
  if (SaveImg==NULL) SaveImg=new char[MAX_SIZE];
  lSaveDC(&sdc); lActiveDC(NULL);
  lputBlock(sx,sy,SaveImg);
  lActiveDC(&sdc);
  canwork=1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -