view final_isi/wrapper.c @ 69:c13a2f8c5b10

Rename files and some minor cleanups.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 01 Jun 2012 17:41:15 +0300
parents 53676367d46f
children e76a4e19363d
line wrap: on
line source

#include "wrapper.h"

/** conio stuff **/

void gbsound(int ch,int freq)
{
  if(freq)pwplib_sound_nv(ch,freq<<8,pwplib.setup[SETUP_VOLUME]);
     else pwplib_sound_off(ch);
}

/** fx stuff **/

void fillbuf(char*d,short w16,int lgt)  /* iku */
{
  short*dd=(short*)d;
  for(;lgt;lgt--)*dd++=w16;
}

/** uncrunch **/

/* thedraw uncrunch */

void uncrunch(unsigned char*src,char*dst,int lgt)
{
  char attr=0x07,*nxtlin=dst+160;
  for(;lgt>0;lgt--){
    int c=*src++;
    if(c>=32){dst[0]=c;dst[1]=attr;dst+=2;}else
    if(c<16)attr=(attr&0xf0)|c;else
    if(c<24)attr=(attr&0x8f)|((c-16)<<4);else
    if(c==24){dst=nxtlin;nxtlin+=160;}else
    if(c==25){int i=1+*src++;
       for(;i;i--){dst[0]=32;dst[1]=attr;dst+=2;}lgt--;}else
    if(c==26){int i=1+src[0],t=src[1];src+=2;
      for(;i;i--){dst[0]=t;dst[1]=attr;dst+=2;}lgt-=2;}
    else if(c==27)attr^=0x80;
  }
}

int mul32(int a,int b)
{
  return (a*b)>>16;
}

int attr2dump(char*s0,char*s1,char*d,int lgt,int ander)  /* fisi */
{
  int j;
  char tmp[80*50];d=tmp;lgt=80*50;
  tmp[0]=tmp[1]=tmp[2]=tmp[3]=0;
  for(j = lgt;j;j--)*d++=(*s0++&ander)|*s1++;
  pwplib.videobuf.d=tmp;
  pwplib.dump_rast();
}

void dumpbuf(char*s,char*d,int lgt)  /* iku */
{
  char*tmp=pwplib.videobuf.d;
  pwplib.videobuf.d=s;
  pwplib.dump_rast();
  pwplib.videobuf.d=tmp;
}

int attrdump(char*s,char*d,int howmany)  /* fisi */
{
  dumpbuf(s,d,howmany>>1);
}

int dump16()  /* fisi */
{
  fprintf(stderr,"dump16\n");  /* fisi */
}
int dump216()
{
  fprintf(stderr,"dump216\n");  /* fisi */
}

int dumphybrid(uchar*a,uchar*b,uchar*d)  /* fisi */
{
  char tmp[80*50*2];int y=25;d=tmp;
  
  for(;y;y--){int x=80;
  for(;x;x--)
  {
    if(*a!=253){d[0]=*a;d[1]=a[1];}else
               {int z=(b[0]&0xf0)|(b[80]>>4);
                d[0]=z?220:32;d[1]=z;}
    a+=2;d+=2;b++;
  }b+=80;}

//  pwplib.videobuf.d=tmp;
//  pwplib.dump_ibm();
}

int polytxloop(sint h,char*di,uint x1,sint dx0,sint dx1,char*txr,
               sint dv,sint du)  /* fisi */
{
  int x0=0,u=0,tpv=0;
  for(;h>0;h--){
  {char*d=di+(x0>>8);int c=(x1>>8)&127,tp=(tpv<<4)&0xf000;
                     if(c>0)for(;c;c--){*d++=txr[(tp>>8)&0xff];tp+=du;}}
  x0+=dx0;x1+=dx1;di+=80;tpv+=dv;/*dv*/}
}

void memfill(void *buf, int c, size_t n)
{
}

void txtmode(int mode)
{
}

void picmov(char *a, char *b, int xsize, int xclip, int yclip, int method)
{
}