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

📄 mobj.cpp

📁 飞虹 vision仿windows开发
💻 CPP
字号:
#include"\SUNSHINE\include\mobj.h"
#include"\SUNSHINE\include\app.h"
#include"\SUNSHINE\include\mapp.h"
#include<stdio.h>
#include<string.h>
#include<io.h>
#include<dos.h>
#include<fcntl.h>
#include<graphics.h>
#include<mem.h>
#include<fstream.h>
#pragma warn -aus
int Write(unsigned char far *p,int x,int y,int color)
 {
  unsigned int i,c1,c2,f=0;
  int i1,i2,rec;
  long l;
  char by[32];
  char let[2];
  char far *p1;
  int k;
  let[1]='\0';
  setcolor(color);
  settextstyle(SMALL_FONT,0,6);
  while((i=*p++)!=0)
	{
	 if(i>0xa1)
	  {
	  if(!f)
		{
		 c1=(i-0xa1)&0x7f;
		 f=1;
		}
	  else
		{
		 c2=(i-0xa1)&0x7f;
		 f=0;
		 rec=c1*94+c2;
		 l=rec*32L;
		 (MApp::HZ).seekg(l,ios::beg);
		 (MApp::HZ).read(by,32);
		 p1= (char far*)(0xa0000000l+80*y+x/8);
		 for(i1=0;i1<16;i1++)
		  for(i2=0;i2<2;i2++)
			 {
				outport(0x3ce,0x0205);
				k = *(p1+80*i1+i2);
				outportb(0x3ce,0x08);
				outportb(0x3cf,by[2*i1+i2]);
				(*(p1+80*i1+i2)) = color;
			 }
		 x=+16;
	  }
	 }
	else
	 {
	  let[0]=i;
	  outtextxy(x,y,let);
	  x+=textwidth(let);
	 }
  }
  return x;
}
#pragma warn +aus
int Write(char far *p,int x,int y,int color)
 {
  unsigned int i,c1,c2,f=0;
  int i1,i2,i3,rec;
  long l;
  char by[32];
  char let[2];
  let[1]='\0';
  setcolor(color);
  settextstyle(SMALL_FONT,0,6);
  while((i=*p++)!=0)
	{
	 if(i>0xa1)
	  {
	  if(!f)
		{
		 c1=(i-0xa1)&0x7f;
		 f=1;
		}
	  else
		{
		 c2=(i-0xa1)&0x7f;
		 f=0;
		 rec=c1*94+c2;
		 l=rec*32L;
		 (MApp::HZ).seekg(l,ios::beg);
		 (MApp::HZ).read(by,32);
		 for(i1=0;i1<16;i1++)
		  for(i2=0;i2<2;i2++)
			for(i3=0;i3<8;i3++)
			 if((by[i1*2+i2]>>(7-i3))&0x01)
			  putpixel(x+i2*8+i3,y+i1,color);
		 x+=16;
	  }
	 }
	else
	 {
	  let[0]=i;
	  outtextxy(x,y,let);
	  x+=textwidth(let);
	 }
  }
  return x;
}
//character the length of the string include chinese

 int Length(char far * p)
  {
  unsigned int len=0;
  unsigned char i;
  char c1[2];
  c1[1]='\0';
  while((i=*p++)!=0)
	{
	 if(i>0xa1)
	  {
		p++;
		len+=16;
	  }
	 else
	  {
		c1[0]=i;
		len+=textwidth(c1);
	  }
	}
  return len;
}

 MObj::MObj(int x,int y,int w,int h,char far *idname)
  {
	X=x;Y=y;W=w;H=h;
	id=new char[strlen(idname)+1];
	strcpy(id,idname);
	Mes=1;
	firstrun=1;
  }
 MObj::~MObj()
  {
	delete id;
  }
 void MObj::TransMes(int l1,void *l2,long l3)
  {
	 Mes=l1;Mp=l2;Lp=l3;  //Message Pointer and Long Pointer
  }

⌨️ 快捷键说明

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