📄 mobj.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 + -