source: abuse/trunk/src/imlib/include.cpp @ 57

Last change on this file since 57 was 56, checked in by Sam Hocevar, 14 years ago
  • Add licensing terms to most C / C++ files (Ref #5).
File size: 1.7 KB
Line 
1/*
2 *  Abuse - dark 2D side-scrolling platform game
3 *  Copyright (c) 1995 Crack dot Com
4 *
5 *  This software was released into the Public Domain. As with most public
6 *  domain software, no warranty is made or implied by Crack dot Com or
7 *  Jonathan Clark.
8 */
9
10#include "config.h"
11
12#include "include.hpp"
13#include "ctype.h"
14
15void write_include(image *im, palette *pal, char *filename, char *name)
16{
17  char tmp_name[200];
18  strcpy(tmp_name,name);
19  unsigned int j;
20  int append=0,i;
21  for (j=0;j<strlen(name);j++)
22    if (toupper(tmp_name[j])<'A' || toupper(tmp_name[j])>'Z')
23      tmp_name[j]='_';
24
25  FILE *fp=fopen(filename,"rb");  // see if the file already exsist
26  if (fp)
27  {
28    fclose(fp);
29    fp=fopen(filename,"ab");  // if so, append to the end and don't write the palette
30    append=1;
31  }
32  else fp=fopen(filename,"wb");
33
34  if (!fp)
35    set_error(imWRITE_ERROR);
36  else
37  {
38    fprintf(fp,"/* File produced by Satan Paint (c) 1994 Jonathan Clark */\n\n");
39    if (!append)
40    {
41      fprintf(fp,"unsigned char %s_palette[256*3] = {\n    ",tmp_name);
42      unsigned char *p=(unsigned char *)pal->addr();
43      for (i=0;i<768;i++,p++)
44      {
45        fprintf(fp,"%d",(int)*p);
46        if (i==767)
47        fprintf(fp,"};\n\n");
48        else
49        if (i%15==14)
50        fprintf(fp,",\n    ");
51        else fprintf(fp,", ");
52      }
53    }
54    fprintf(fp,"unsigned char %s[%d*%d]={\n    ",tmp_name,
55            im->width(),im->height());
56    int x,y,max=im->width()*im->height()-1;
57    for (y=0,i=0;y<im->height();y++)
58      for (x=0;x<im->width();x++,i++)
59      {
60        fprintf(fp,"%d",(int)im->pixel(x,y));
61        if (i==max)
62          fprintf(fp,"};\n\n");
63        else
64          if (i%15==14)
65            fprintf(fp,",\n    ");
66          else fprintf(fp,", ");
67      }
68  }
69  fclose(fp);
70}
71
Note: See TracBrowser for help on using the repository browser.