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

📄 ldrawmos.cpp

📁 ldraw_DOS游戏开发包
💻 CPP
字号:
#include <ldraw.h>
#include <i86.h>
#include <stdio.h>
#include <i86.h>
#include <mem.h>
#include <stdlib.h>
static char  work=0;
short mouse_event=0, mouse_code, mouse_x, mouse_y, mouse_rb, mouse_sb;
static void clear_click();
static void _loadds far click_handler(int max,int mcx,int mdx)
{ 
#pragma aux click_handler parm [EAX] [ECX] [EDX]
    mouse_event=1;
    mouse_code=max;
    mouse_x=mcx;
    mouse_y=mdx;
    if (mouse_code&8) mouse_rb=1,mouse_sb=mouse_code;
}
static void clear_click()
{ union REGS r;
  r.w.ax=0;
  int386(0x33,&r,&r);
}
char lmInit()
{ union REGS r; struct SREGS sregs;
  if (work==1) return work;
  r.w.ax=0; int386(0x33,&r,&r);
  if (r.w.ax!=0) { work=1; lmPlace(0,0); }
    else work=0;
  if (work) { 
     lmSetX(0,639); lmSetY(0,479); 
     memset(&sregs,0,sizeof(sregs));
     r.w.ax=0x0c;
     r.w.cx=31; //0x0002 + 0x0008;
     r.x.edx=FP_OFF(click_handler);
     sregs.es=FP_SEG(click_handler);
     int386x(0x33, &r, &r, &sregs);  
     atexit(clear_click);
  }
  return work;
}
void lmRead(short *x,short *y,short *b)
{ union REGS r;
  if (work==0) { *x=*y=*b=0; return; }
  r.w.ax=3; int386(0x33,&r,&r);
  *x=r.w.cx; *y=r.w.dx; *b=r.w.bx;
  mouse_x=r.w.cx, mouse_y=r.w.dx; 
  mouse_code=r.w.bx, mouse_sb=mouse_code;
}
void lmPlace(short x,short y)
{ union REGS r;
  if (work==0) return;
  r.w.ax=4; r.w.cx=x; r.w.dx=y;
  int386(0x33,&r,&r);
  mouse_x=x; mouse_y=y;
}
void lmSetX(short min,short max)
{ union REGS r;
  if (work==0) return;
  r.w.ax=7; r.w.cx=min; r.w.dx=max;
  int386(0x33,&r,&r);
}
void lmSetY(short min,short max)
{ union REGS r;
  if (work==0) return;
  r.w.ax=8; r.w.cx=min; r.w.dx=max;
  int386(0x33,&r,&r);
}
void lmSetClick(void *func)
{ union REGS r; struct SREGS sregs;
  memset(&sregs,0,sizeof(sregs));
  r.w.ax=0x0c;
  r.w.cx=0x0002 + 0x0008;
  r.x.edx=FP_OFF(func);
  sregs.es=FP_SEG(func);
  int386x(0x33, &r, &r, &sregs);  
}

⌨️ 快捷键说明

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