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

📄 ldrawpal.cpp

📁 ldraw_DOS游戏开发包
💻 CPP
字号:
#include <ldraw.h>
#include <conio.h>
static void waitVR() { while (!inp(0x3da)&0x80); }
extern "C" void cdecl LLoadPalX(void *);
extern "C" void cdecl LSetPalX(void *);
void lloadPal(RGB *pal)
{ 
  waitVR(); 
  LLoadPalX(pal);
}
void lsetPal(RGB *pal)
{ 
  waitVR();
  LSetPalX(pal);
}
void  lsetPal(uchar color,uchar r,uchar g,uchar b)
{ short port=0x03c8;
  outp(port,color); port++; outp(port,r); outp(port,g); outp(port,b);
}
char ldecPal(short count,RGB *pal)
{ int i,j=0;
  for (i=0;i<256;i++)
   { if (pal[i].r>0) pal[i].r-=count;
     if (pal[i].g>0) pal[i].g-=count;
     if (pal[i].b>0) pal[i].b-=count;
   }  
  for (i=0;i<256;i++)
   { if (pal[i].r<0) pal[i].r=0;
     if (pal[i].g<0) pal[i].g=0;
     if (pal[i].b<0) pal[i].b=0;
   }
  for (j=0,i=0;i<256;i++)
    j+=pal[i].r+pal[i].g+pal[i].b;
  if (j) return 1;
  else return 0;
}
char lchgPal(short count,RGB *dp,RGB *sp)
{ int i,j=0; 
  for (i=0;i<256;i++)
   { if (dp[i].r!=sp[i].r) j=1;
     if (dp[i].g!=sp[i].g) j=1;
     if (dp[i].b!=sp[i].b) j=1;
   }
  if (j==0) return 0; 
  for (i=0;i<256;i++)
   { if (dp[i].r<sp[i].r) { dp[i].r+=count; if (dp[i].r>sp[i].r) dp[i].r=sp[i].r; }
     if (dp[i].g<sp[i].g) { dp[i].g+=count; if (dp[i].g>sp[i].g) dp[i].g=sp[i].g; }
     if (dp[i].b<sp[i].b) { dp[i].b+=count; if (dp[i].b>sp[i].b) dp[i].b=sp[i].b; }

     if (dp[i].r>sp[i].r) { dp[i].r-=count; if (dp[i].r<sp[i].r) dp[i].r=sp[i].r; }
     if (dp[i].g>sp[i].g) { dp[i].g-=count; if (dp[i].g<sp[i].g) dp[i].g=sp[i].g; }
     if (dp[i].b>sp[i].b) { dp[i].b-=count; if (dp[i].b<sp[i].b) dp[i].b=sp[i].b; }
   }
  return 1;
}
void  laddPal(short a,RGB *s,RGB *re)
{ short i; short r,g,b;
  for (i=0;i<256;i++) {
    r=s[i].r; g=s[i].g; b=s[i].b; r+=a; g+=a; b+=a;
    if (r<0) r=0; if (r>63) r=63;
    if (g<0) g=0; if (g>63) g=63;
    if (b<0) b=0; if (b>63) b=63;
    re[i].r=r; re[i].g=g; re[i].b=b; 
  }
} 

⌨️ 快捷键说明

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