OSDN Git Service

attempted font system added
[proj16/16.git] / src / v2 / source / MAPED / RENDER.C
diff --git a/src/v2/source/MAPED/RENDER.C b/src/v2/source/MAPED/RENDER.C
deleted file mode 100644 (file)
index e106775..0000000
+++ /dev/null
@@ -1,475 +0,0 @@
-/*\r
-Copyright (C) 1998 BJ Eirich (aka vecna)\r
-This program is free software; you can redistribute it and/or\r
-modify it under the terms of the GNU General Public License\r
-as published by the Free Software Foundation; either version 2\r
-of the License, or (at your option) any later version.\r
-This program is distributed in the hope that it will be useful,\r
-but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\r
-See the GNU General Public Lic\r
-See the GNU General Public License for more details.\r
-You should have received a copy of the GNU General Public License\r
-along with this program; if not, write to the Free Software\r
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\r
-*/\r
-\r
-#include <stdio.h>\r
-#include <string.h>\r
-#include <malloc.h>\r
-\r
-#include "config.h"\r
-#include "maped.h"\r
-#include "vdriver.h"\r
-\r
-#include "render.h" // MAXTILES\r
-\r
-// ================================= Data ====================================\r
-\r
-extern char stipple[256];\r
-\r
-int oxw=0, oyw=0;\r
-int xofs=0, yofs=0;\r
-int xtc=0, ytc=0;\r
-\r
-char curlayer=0;\r
-short tileidx[MAXTILES];\r
-char flipped[MAXTILES];\r
-\r
-// ------\r
-\r
-chri chrs[100];\r
-\r
-// ================================= Code ====================================\r
-\r
-void DoCHR(int i) // hee hee!\r
-{\r
-  FILE *f;\r
-  char b;\r
-  int q;\r
-  short numframes;\r
-\r
-//  free(chrs[i].frame);\r
-//  chrs[i].frame=0;\r
-//  return;\r
-\r
-  if (!strlen(chrlist[i].t))\r
-  {\r
-    if (chrs[i].frame) vfree(chrs[i].frame);\r
-    chrs[i].frame=0;\r
-    chrs[i].fx=chrs[i].fy=0;\r
-    chrs[i].hx=chrs[i].hy=0;\r
-    return;\r
-  }\r
-  if (!(f=fopen(chrlist[i].t,"rb")))\r
-  {\r
-    if (chrs[i].frame) vfree(chrs[i].frame);\r
-    chrs[i].frame=0;\r
-    chrs[i].fx=chrs[i].fy=0;\r
-    chrs[i].hx=chrs[i].hy=0;\r
-    return;\r
-  }\r
-  if (chrs[i].frame) vfree(chrs[i].frame);\r
-  fread(&b, 1, 1, f);\r
-  if (b!=2)\r
-  {\r
-    // This should really not work with V1 CHRs, but..\r
-    chrs[i].frame=(char *) malloc(512);\r
-    fseek(f, 0, 0);\r
-    fread(chrs[i].frame, 1, 512, f);\r
-    fclose(f);\r
-    chrs[i].fx=16; chrs[i].fy=32;\r
-    chrs[i].hx=0;  chrs[i].hy=16;\r
-    return;\r
-  }\r
-  chrs[i].fx=0; fread(&chrs[i].fx, 1, 2, f);\r
-  chrs[i].fy=0; fread(&chrs[i].fy, 1, 2, f);\r
-  chrs[i].hx=0; fread(&chrs[i].hx, 1, 2, f);\r
-  chrs[i].hy=0; fread(&chrs[i].hy, 1, 2, f);\r
-  fread(strbuf, 2, 2, f);\r
-  fread(&numframes, 1, 2, f);\r
-  chrs[i].frame=(char *) valloc(chrs[i].fx*chrs[i].fy*numframes,"chr preview",i);\r
-  fread(&q, 1, 4, f);\r
-\r
-  ReadCompressedLayer1(chrs[i].frame, chrs[i].fx*chrs[i].fy*numframes,f);\r
-\r
-  fclose(f);\r
-}\r
-\r
-void DoCHRdealy()\r
-{\r
-  int i;\r
-\r
-  for (i=0; i<100; i++)\r
-    DoCHR(i);\r
-}\r
-\r
-void BlitBackLayer(char l)\r
-{\r
-  int i,j;\r
-  //int a;\r
-  char *img;\r
-  //char *d;\r
-  unsigned short *lay;\r
-  //int v;\r
-  int mapx,mapy;\r
-  int x,y;\r
-  unsigned int tile;\r
-\r
-  if (!layertoggle[l]) return;\r
-\r
-  mapx = layer[l].sizex;\r
-  mapy = layer[l].sizey;\r
-  lay = layers[l];\r
-\r
-  // Adjust view\r
-  oxw  = xwin * layer[l].pmultx / layer[l].pdivx;\r
-  oyw  = ywin * layer[l].pmulty / layer[l].pdivy;\r
-  xofs = 16 - (oxw & 15);\r
-  yofs = 16 - (oyw & 15);\r
-  xtc  = oxw / 16;\r
-  ytc  = oyw / 16;\r
-\r
-  // Draw it, bitch!\r
-  for (i=0; i <= ty; i++)\r
-  {\r
-    for (j=0; j <= tx; j++)\r
-    {\r
-      x = xtc+j;\r
-      y = ytc+i;\r
-\r
-      // write better clipping sometime\r
-      if (y >= 0 || y < mapy || x >=0 || x < mapx)\r
-      {\r
-        // what the HELL @_@\r
-        tile = lay[(y * mapx) + x];\r
-        if (tile >= numtiles) tile = numtiles-1;\r
-        tile = tileidx[tile];\r
-        if (tile >= numtiles) tile = numtiles-1;\r
-\r
-        img = &vsp[tile * 256];\r
-\r
-        x = (j * 16) + xofs;\r
-        y = (i * 16) + yofs;\r
-\r
-        //CopyTile(x, y, img);\r
-        CCopySprite(x, y, 16, 16, img);\r
-      }\r
-    }\r
-  }\r
-\r
-  curlayer++;\r
-}\r
-\r
-//zero\r
-extern char* translucency_table;\r
-void LucentBlitLayer(char l)\r
-{\r
-  int i,j;\r
-  //int a,b;\r
-  char *img;\r
-  //char *d;\r
-  unsigned short *lay;\r
-  //int v;\r
-  int mapx,mapy;\r
-  int x,y;\r
-  unsigned int tile;\r
-\r
-  if (!layertoggle[l]) return;\r
-  if(!translucency_table)\r
-  {\r
-    TransBlitlayer(l);\r
-    return;\r
-  }\r
-\r
-  mapx = layer[l].sizex;\r
-  mapy = layer[l].sizey;\r
-  lay = layers[l];\r
-\r
-  // Adjust view\r
-  oxw  = xwin * layer[l].pmultx / layer[l].pdivx;\r
-  oyw  = ywin * layer[l].pmulty / layer[l].pdivy;\r
-  xofs = 16 - (oxw & 15);\r
-  yofs = 16 - (oyw & 15);\r
-  xtc  = oxw / 16;\r
-  ytc  = oyw / 16;\r
-\r
-  // Draw it, bitch!\r
-  for (i=0; i <= ty; i++)\r
-  {\r
-    for (j=0; j <= tx; j++)\r
-    {\r
-      x = xtc+j;\r
-      y = ytc+i;\r
-\r
-      // write better clipping sometime\r
-      if (y >= 0 || y < mapy || x >=0 || x < mapx)\r
-      {\r
-        // what the HELL @_@\r
-        tile = lay[(y * mapx) + x];\r
-        if (tile >= numtiles) tile = numtiles-1;\r
-        tile = tileidx[tile];\r
-        if (tile >= numtiles) tile = numtiles-1;\r
-\r
-        img = &vsp[tile * 256];\r
-        if (img != vsp)\r
-        {\r
-          x = (j * 16) + xofs;\r
-          y = (i * 16) + yofs;\r
-          CopySpriteLucentClip(x, y, 16, 16, img);\r
-        }\r
-      }\r
-    }\r
-  }\r
-  curlayer++;\r
-}\r
-\r
-\r
-void TransBlitlayer(char l)\r
-{\r
-  int i,j;\r
-  //int a,b;\r
-  char *img;\r
-  //char *d;\r
-  unsigned short *lay;\r
-  //int v;\r
-  int mapx,mapy;\r
-  int x,y;\r
-  unsigned int tile;\r
-\r
-  if (!layertoggle[l]) return;\r
-\r
-  lay = layers[l];\r
-\r
-  mapx = layer[l].sizex;\r
-  mapy = layer[l].sizey;\r
-\r
-  // Adjust view\r
-  oxw  = xwin * layer[l].pmultx / layer[l].pdivx;\r
-  oyw  = ywin * layer[l].pmulty / layer[l].pdivy;\r
-  xofs = 16 - (oxw & 15);\r
-  yofs = 16 - (oyw & 15);\r
-  xtc  = oxw / 16;\r
-  ytc  = oyw / 16;\r
-\r
-  // Draw it, bitch!\r
-  for (i=0; i <= ty; i++)\r
-  {\r
-    for (j=0; j <= tx; j++)\r
-    {\r
-      x = xtc+j;\r
-      y = ytc+i;\r
-\r
-      // write better clipping sometime\r
-      if (y >= 0 || y < mapy || x >=0 || x < mapx)\r
-      {\r
-        // what the HELL @_@\r
-        tile = lay[(y * mapx) + x];\r
-        if (tile >= numtiles) tile = numtiles-1;\r
-        tile = tileidx[tile];\r
-        if (tile >= numtiles) tile = numtiles-1;\r
-\r
-        img = &vsp[tile * 256];\r
-        if (img != vsp)\r
-        {\r
-          x = (j * 16) + xofs;\r
-          y = (i * 16) + yofs;\r
-          //TCopySprite(x, y, 16, 16, img);\r
-          TCCopySprite(x, y, 16, 16, img);\r
-        }\r
-      }\r
-    }\r
-  }\r
-\r
-  curlayer++;\r
-}\r
-\r
-void BlitLayer(char c)\r
-{\r
-  if(layer[c].trans) { LucentBlitLayer(c); return; } //zero\r
-  if (curlayer) TransBlitLayer(c);\r
-  else BlitBackLayer(c);\r
-}\r
-\r
-void DrawObstructions()\r
-{ int i,j;\r
-  int mapx;\r
-\r
-  mapx = layer[0].sizex;\r
-\r
-  oxw=xwin*layer[0].pmultx/layer[0].pdivx;\r
-  oyw=ywin*layer[0].pmulty/layer[0].pdivy;\r
-  xofs=16-(oxw&15);\r
-  yofs=16-(oyw&15);\r
-  xtc=oxw>>4;\r
-  ytc=oyw>>4;\r
-\r
-  for (i=0; i<ty+1; i++)\r
-    for (j=0; j<tx+1; j++)\r
-    {\r
-      if (obstruct[((ytc+i)*mapx)+(xtc+j)])\r
-      {\r
-         TCCopySprite((j*16)+xofs,(i*16)+yofs,16,16,stipple);\r
-         //ColorGrid((j*16)+xofs,(i*16)+yofs,7);\r
-      }\r
-    }\r
-}\r
-\r
-void DrawZones()\r
-{ int i,j;\r
-  char z;\r
-  int mapx;\r
-\r
-  mapx = layer[0].sizex;\r
-  oxw=xwin*layer[0].pmultx/layer[0].pdivx;\r
-  oyw=ywin*layer[0].pmulty/layer[0].pdivy;\r
-  xofs=16-(oxw&15);\r
-  yofs=16-(oyw&15);\r
-  xtc=oxw>>4;\r
-  ytc=oyw>>4;\r
-\r
-  for (i=0; i<ty+1; i++)\r
-    for (j=0; j<tx+1; j++)\r
-    {\r
-      z=zone[((ytc+i)*mapx)+(xtc+j)];\r
-      if (z)\r
-      {\r
-        TCCopySprite((j*16)+xofs,(i*16)+yofs,16,16,stipple);\r
-        //ColorGrid((j*16)+xofs,(i*16)+yofs,z);\r
-      }\r
-    }\r
-}\r
-\r
-void DrawEntities()\r
-{ int m;\r
-\r
-  for (m=0; m<entities; m++)\r
-    if ((entity[m].x>=(xwin/16)) && (entity[m].x<(xwin/16)+22) &&\r
-        (entity[m].y>=(ywin/16)) && (entity[m].y<(ywin/16)+ty+2))\r
-    {\r
-      if (chrs[entity[m].chrindex].frame)\r
-         TCCopySprite((entity[m].x*16)-xwin+16-chrs[entity[m].chrindex].hx,\r
-                      (entity[m].y*16)-ywin+16-chrs[entity[m].chrindex].hy,\r
-                       chrs[entity[m].chrindex].fx,\r
-                       chrs[entity[m].chrindex].fy,\r
-                       chrs[entity[m].chrindex].frame);\r
-      else\r
-      {\r
-         TCCopySprite(\r
-           (entity[m].x*16)-xwin+16,(entity[m].y*16)-ywin+16,16,16,stipple);\r
-        //ColorGrid((entity[m].x*16)-xwin+16,\r
-        //  (entity[m].y*16)-ywin+16, 0);\r
-      }\r
-    }\r
-}\r
-\r
-// aen\r
-void DrawSelection()\r
-{ int i,j;\r
-  int x1,y1,x2,y2;\r
-\r
-  oxw=xwin*layer[el].pmultx/layer[el].pdivx;\r
-  oyw=ywin*layer[el].pmulty/layer[el].pdivy;\r
-  xofs=16-(oxw&15);\r
-  yofs=16-(oyw&15);\r
-  xtc=oxw>>4;\r
-  ytc=oyw>>4;\r
-\r
-  x1=selx1;\r
-  y1=sely1;\r
-  x2=selx2;\r
-  y2=sely2;\r
-\r
-  if (x2<x1) x2^=x1,x1^=x2,x2^=x1;\r
-  if (y2<y1) y2^=y1,y1^=y2,y2^=y1;\r
-\r
-  for (i=0; i<ty+1; i++)\r
-    for (j=0; j<tx+1; j++)\r
-    {\r
-      if (xtc+j >= x1 && xtc+j <= x2\r
-      && ytc+i >= y1 && ytc+i <= y2)\r
-      {\r
-        TCCopySprite((j*16)+xofs, (i*16)+yofs, 16,16, stipple);\r
-        //ColorGrid((j*16)+xofs,(i*16)+yofs,7);\r
-      }\r
-    }\r
-}\r
-\r
-void RenderMap()\r
-{ char *src;\r
-  //char rs[2];\r
-\r
-  curlayer=0;\r
-  src=rstring;\r
-\r
-  /*\r
-  rs[1]=0; // aen\r
-  for (; *src; ++src)\r
-  {\r
-    rs[0]=*src;\r
-    BlitLayer(atoi(rs) -1);\r
-  }\r
-  */\r
-  while (*src)\r
-  {\r
-    switch (*src)\r
-    {\r
-      case '1': BlitLayer(0); break;\r
-      case '2': BlitLayer(1); break;\r
-      case '3': BlitLayer(2); break;\r
-      case '4': BlitLayer(3); break;\r
-      case '5': BlitLayer(4); break;\r
-      case '6': BlitLayer(5); break;\r
-    }\r
-    src++;\r
-  }\r
-\r
-  if (!curlayer) memset(screen+5648,0,84480);\r
-  if (layertoggle[6]) DrawObstructions();\r
-  if (layertoggle[7]) DrawZones();\r
-  if (layertoggle[8]) DrawEntities();\r
-  if (shifted) DrawSelection();\r
-}\r
-\r
-void AnimateTile(char i, int l)\r
-{\r
-  switch (vspanim[i].mode)\r
-  {\r
-    case 0: if (tileidx[l]<vspanim[i].finish) tileidx[l]++;\r
-            else tileidx[l]=vspanim[i].start;\r
-            break;\r
-    case 1: if (tileidx[l]>vspanim[i].start) tileidx[l]--;\r
-            else tileidx[l]=vspanim[i].finish;\r
-            break;\r
-    case 2: tileidx[l]=random(vspanim[i].start,vspanim[i].finish);\r
-            break;\r
-    case 3: if (flipped[l])\r
-            {\r
-              if (tileidx[l]!=vspanim[i].start) tileidx[l]--;\r
-              else { tileidx[l]++; flipped[l]=0; }\r
-            }\r
-            else\r
-            {\r
-              if (tileidx[l]!=vspanim[i].finish) tileidx[l]++;\r
-              else { tileidx[l]--; flipped[l]=1; }\r
-            }\r
-  }\r
-}\r
-\r
-void Animate(char i)\r
-{ static int l;\r
-\r
-  vadelay[i]=0;\r
-  for (l=vspanim[i].start; l<=vspanim[i].finish; l++)\r
-    AnimateTile(i,l);\r
-}\r
-\r
-void CheckTileAnimation()\r
-{ static char i;\r
-\r
-  for (i=0; i<100; i++)\r
-      { if ((vspanim[i].delay) && (vspanim[i].delay<vadelay[i]))\r
-           Animate(i);\r
-        vadelay[i]++; }\r
-}\r
-\r