📄 global.cpp
字号:
}else{
long tmp_ad;
tmp_ad=(long)(*(p_buf_j2+offset)&0x7fff)*bd.k_j_z;
tmp_ad=tmp_ad+(long)(*(p_buf_z2+offset)&0x7fff);
return tmp_ad/2;
}
}
long data_jz3(long offset)
{
if(bd.hq_mode==HQ_NEWCPZ){
long j5,j7,z3,t3;
j5= *(p_buf_j5+offset)&0x7fff;
j7= *(p_buf_j7+offset)&0x7fff;
z3= *(p_buf_z3+offset)&0x7fff;
t3= (j5+j7)/2*bd.k_j_z + z3 ;
return t3;
}
return 0;
}
long data_jz4(long offset)
{
if(bd.hq_mode==HQ_NEWCPZ){
long j6,j8,z4,t4;
j6= *(p_buf_j6+offset)&0x7fff;
j8= *(p_buf_j8+offset)&0x7fff;
z4= *(p_buf_z4+offset)&0x7fff;
t4= (j6+j8)/2*bd.k_j_z + z4 ;
return t4;
}
return 0;
}
// 该函数可取代 data_j1(long)....data_j8(long)
long data_j(int which_j,long offset)
{
if(which_j>=16||which_j<0){ err("data_j()"); return 0L;}
return (long)(*(p_buf_j[which_j]+offset)&0x7fff);
}
long data_j1(long offset)
{
return (long)(*(p_buf_j1+offset)&0x7fff);
}
long data_j2(long offset)
{
return (long)(*(p_buf_j2+offset)&0x7fff);
}
long data_j3(long offset)
{
return (long)(*(p_buf_j3+offset)&0x7fff);
}
long data_j4(long offset)
{
return (long)(*(p_buf_j4+offset)&0x7fff);
}
long data_j5(long offset)
{
return (long)(*(p_buf_j5+offset)&0x7fff);
}
long data_j6(long offset)
{
return (long)(*(p_buf_j6+offset)&0x7fff);
}
long data_j7(long offset)
{
return (long)(*(p_buf_j7+offset)&0x7fff);
}
long data_j8(long offset)
{
return (long)(*(p_buf_j8+offset)&0x7fff);
}
// 该函数可取代 data_z1(long)....data_z4(long)
long data_z(int which_z,long offset)
{
// which_tm:0代表台面1
return (long)(*(p_buf_z[which_z]+offset)&0x7fff);
}
long data_z1(long offset)
{
return (long)(*(p_buf_z1+offset)&0x7fff);
}
long data_z2(long offset)
{
return (long)(*(p_buf_z2+offset)&0x7fff);
}
long data_z3(long offset)
{
return (long)(*(p_buf_z3+offset)&0x7fff);
}
long data_z4(long offset)
{
return (long)(*(p_buf_z4+offset)&0x7fff);
}
CHAR get_key(void)
{
/*
LPMSG lpmsg;
lpmsg=new MSG;
//while(1){
PeekMessage(lpmsg,0,0,0,PM_REMOVE);
if((*lpmsg).message==WM_CHAR)
return (char)((*lpmsg).wParam & (ULONG)0xff);
else{
TranslateMessage(lpmsg);
return 0;
}
//}*/
return 0;
}
void init_kg()
{
k1=k2=k3=k4=0;
for(int i=0;i<8;i++){
kk1[i]=kk2[i]=kk3[i]=kk4[i]=0;
}
for(int i=0;i<KG_SIZE;i++){
kg[i].k1=kg[i].k2=kg[i].k3=kg[i].k4=0;
kg[i].who=0;
kg[i].ofst=0;
}
for(int j=0;j<8;j++){
for(int i=0;i<KG_SIZE;i++){
kkg[j][i].k1=kkg[j][i].k2=kkg[j][i].k3=kkg[j][i].k4=0;
kkg[j][i].who=0;
kkg[j][i].ofst=0;
}
}
k1_l=k1_h=k2_l=k2_h=k3_l=k3_h=k4_l=k4_h=0;
for(int i=0;i<2;i++){
state_1[i]=state_2[i]=state_3[i]=state_4[i]=0;
}
kg_now=0;
}
void clear_input_cehao()
{
for(int i=0;i<MAX_CE;i++){
input_cehao[i]="";
input_clh[i]="";
}
//input_lch="";
}
void mem_reset()
{
if(bd.hq_mode==HQ_CPZ24){
for(int i=0;i<16;i++){
/*
char str[100];
sprintf(str,"%d %p",i,p_buf_j[i]);
err(str);
*/
memset((char*)p_buf_j[i],0,BUF_SIZE*sizeof(*p_buf_j[0]));
}
for(int i=0;i<8;i++){
memset((char*)p_buf_z[i],0,BUF_SIZE*sizeof(*p_buf_z[0]));
}
}else{
memset((char*)p_buf_j1,0,BUF_SIZE*sizeof(*p_buf_j1));
memset((char*)p_buf_j2,0,BUF_SIZE*sizeof(*p_buf_j2));
memset((char*)p_buf_j3,0,BUF_SIZE*sizeof(*p_buf_j3));
memset((char*)p_buf_j4,0,BUF_SIZE*sizeof(*p_buf_j4));
memset((char*)p_buf_j5,0,BUF_SIZE*sizeof(*p_buf_j5));
memset((char*)p_buf_j6,0,BUF_SIZE*sizeof(*p_buf_j6));
memset((char*)p_buf_j7,0,BUF_SIZE*sizeof(*p_buf_j7));
memset((char*)p_buf_j8,0,BUF_SIZE*sizeof(*p_buf_j8));
memset((char*)p_buf_z1,0,BUF_SIZE*sizeof(*p_buf_z1));
memset((char*)p_buf_z2,0,BUF_SIZE*sizeof(*p_buf_z2));
memset((char*)p_buf_z3,0,BUF_SIZE*sizeof(*p_buf_z3));
memset((char*)p_buf_z4,0,BUF_SIZE*sizeof(*p_buf_z4));
memset((char*)kg, 0,KG_SIZE*sizeof(kg_struct));
}
}
void write_log(char *msg)
{
FILE *fd;
LPSYSTEMTIME lpst=new SYSTEMTIME;
if(lpst){
char tmp[20];
GetLocalTime(lpst);
sprintf(tmp,"%04d%02d%02d_%02d%02d%02d ",lpst->wYear,
lpst->wMonth,lpst->wDay,lpst->wHour,lpst->wMinute,lpst->wSecond);
if((fd=fopen(LOGFILE,"ab"))!=NULL){
fwrite(tmp,strlen(tmp),1,fd);
fwrite(msg,strlen(msg),1,fd);
fflush(fd);
fclose(fd);
}
delete lpst;
}
}
bool alloc_mem()
{
p_buf_z1=p_buf_z2=p_buf_z3=p_buf_z4=p_buf_z5=p_buf_z6=p_buf_z7=p_buf_z8=NULL;
p_buf_j1=p_buf_j2=p_buf_j3=p_buf_j4=p_buf_j5=p_buf_j6=p_buf_j7=p_buf_j8=NULL;
p_buf_j9=p_buf_j10=p_buf_j11=p_buf_j12=p_buf_j13=p_buf_j14=p_buf_j15=p_buf_j16=NULL;
if((p_buf_z1=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_z1),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_z2=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_z2),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_z3=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_z3),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_z4=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_z4),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_j1=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_j1),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_j2=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_j2),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_j3=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_j3),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_j4=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_j4),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_j5=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_j5),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_j6=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_j6),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_j7=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_j7),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_j8=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_j8),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
p_buf_z[0]=p_buf_z1; p_buf_z[1]=p_buf_z2;
p_buf_z[2]=p_buf_z3; p_buf_z[3]=p_buf_z4;
p_buf_j[0]=p_buf_j1; p_buf_j[1]=p_buf_j2;
p_buf_j[2]=p_buf_j3; p_buf_j[3]=p_buf_j4;
p_buf_j[4]=p_buf_j5; p_buf_j[5]=p_buf_j6;
p_buf_j[6]=p_buf_j7; p_buf_j[7]=p_buf_j8;
if(bd.hq_mode==HQ_CPZ24||bd.hq_mode==HQ_NEWBDG){
if((p_buf_z5=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_z5),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_z6=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_z6),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_z7=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_z7),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_z8=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_z8),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_j9=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_j9),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_j10=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_j10),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_j11=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_j11),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_j12=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_j12),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_j13=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_j13),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_j14=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_j14),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_j15=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_j15),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
if((p_buf_j16=(PUSHORT)VirtualAlloc(NULL,BUF_SIZE*sizeof(*p_buf_j16),MEM_COMMIT,PAGE_READWRITE))==FALSE) return FALSE;
p_buf_z[4]=p_buf_z5; p_buf_z[5]=p_buf_z6;
p_buf_z[6]=p_buf_z7; p_buf_z[7]=p_buf_z8;
p_buf_j[8]=p_buf_j9; p_buf_j[9]=p_buf_j10;
p_buf_j[10]=p_buf_j11; p_buf_j[11]=p_buf_j12;
p_buf_j[12]=p_buf_j13; p_buf_j[13]=p_buf_j14;
p_buf_j[14]=p_buf_j15; p_buf_j[15]=p_buf_j16;
}
/*
for(int i=0;i<16;i++){
char str[100];
sprintf(str,"%d %p",i,p_buf_j[i]);
err(str);
} */
return TRUE;
}
int get_which_j_down(int wh_tm)
{
int direct=donThread->direct;
if(bd.hq_mode==HQ_NEWBDG){
if(wh_tm==1){
if(direct==R_L) return 1;
else return 2;
}else if(wh_tm==2){
if(direct==R_L) return 3;
else return 4;
}else{
err(" get_which_j_down ");
}
}else{ // HQ_CPZ24
if(wh_tm==1){
if(direct==R_L) return 1;
else return 3;
}else if(wh_tm==2){
if(direct==R_L) return 2;
else return 4;
}else if(wh_tm==3){
if(direct==R_L) return 5;
else return 7;
}else if(wh_tm==4){
if(direct==R_L) return 6;
else return 8;
}else if(wh_tm==5){
if(direct==R_L) return 9;
else return 11;
}else if(wh_tm==6){
if(direct==R_L) return 10;
else return 12;
}else if(wh_tm==7){
if(direct==R_L) return 13;
else return 15;
}else if(wh_tm==8){
if(direct==R_L) return 14;
else return 16;
}else{ err(" get_which_j_down ");}
}
return 0;
}
int get_which_j_up(int wh_tm)
{
int direct=donThread->direct;
if(bd.hq_mode==HQ_NEWBDG){
if(wh_tm==1){
if(direct==R_L) return 2;
else return 1;
}else if(wh_tm==2){
if(direct==R_L) return 4;
else return 3;
}else{
err(" get_which_j_up ");
}
}else{ // HQ_CPZ24
if(wh_tm==1){
if(direct==R_L) return 3;
else return 1;
}else if(wh_tm==2){
if(direct==R_L) return 4;
else return 2;
}else if(wh_tm==3){
if(direct==R_L) return 7;
else return 5;
}else if(wh_tm==4){
if(direct==R_L) return 8;
else return 6;
}else if(wh_tm==5){
if(direct==R_L) return 11;
else return 9;
}else if(wh_tm==6){
if(direct==R_L) return 12;
else return 10;
}else if(wh_tm==7){
if(direct==R_L) return 15;
else return 13;
}else if(wh_tm==8){
if(direct==R_L) return 16;
else return 14;
}else{ err(" get_which_j_up ");}
}
return 0;
}
int get_high_bt(int which_j,int ofst1,int ofst2)
{
if(ofst1<0 || ofst2<0){/*err("ofst1<0 || ofst2<0");*/return 0;}
if(bd.hq_mode==HQ_NEWBDG){
if(which_j<1||which_j>4){ err("get_high_bt");return 0L;}
return data_j(which_j-1,ofst1)-data_j(which_j-1,ofst2);
}else{ // HQ_CPZ24
if(which_j<1||which_j>16){ err("get_high_bt");return 0L;}
return data_j(which_j-1,ofst1)-data_j(which_j-1,ofst2);
}
/*
int tmp=0;
if( which_j==1) tmp=data_j1(ofst1)-data_j1(ofst2);
else if(which_j==2) tmp=data_j2(ofst1)-data_j2(ofst2);
else if(which_j==3) tmp=data_j3(ofst1)-data_j3(ofst2);
else if(which_j==4) tmp=data_j4(ofst1)-data_j4(ofst2);
else if(which_j==5) tmp=data_j5(ofst1)-data_j5(ofst2);
else if(which_j==6) tmp=data_j6(ofst1)-data_j6(ofst2);
else if(which_j==7) tmp=data_j7(ofst1)-data_j7(ofst2);
else if(which_j==8) tmp=data_j8(ofst1)-data_j8(ofst2);
return tmp;*/
}
long __fastcall js_ad(int whtm,int ofst1,int ofst2)
{
// which_tm=0--8
long t=0;
for(int i=ofst1;i<ofst2;i++){
t+=data_jz(whtm,i);
}
if(ofst2>ofst1) t/=(ofst2-ofst1);
return t;
}
long __fastcall js_max(int whtm,int ofst1,int ofst2,int &xx)
{
int max=data_jz(whtm,ofst1);
for(int i=ofst1;i<ofst2;i++){
if(data_jz(whtm,i)>max){
max=data_jz(whtm,i);
xx=i;
}
}
return max;
}
long __fastcall js_min(int whtm,int ofst1,int ofst2,int &xx)
{
int min=data_jz(whtm,ofst1);
for(int i=ofst1;i<ofst2;i++){
if(data_jz(whtm,i)<min){
min=data_jz(whtm,i);
xx=i;
}
}
return min;
}
bool __fastcall find_kg_up_new(int which_j,int from ,int to,short& dlt,long& retp )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -