This commit was generated by cvs2svn to compensate for changes in r2,
[btb/d2x.git] / iff / archive / ifftest.c
1 /*
2 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
3 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
4 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
5 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
6 IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
7 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
8 FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
9 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
10 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.  
11 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
12 */
13
14 #include <conio.h>
15 #include <stdio.h>
16 #include <stdlib.h>
17
18 #include "iff.h"
19 #include "vga.h"
20 #include "palette.h"
21 #include "mem.h"
22
23 //#define ANIM_TEST 1           //if defined, read in anim brush
24
25 rle_span(ubyte *dest,ubyte *src,int len);
26
27
28 ubyte test_span[] = {0,1,2,3,4,4,5,6,7,8,8,8,8,8,9,10,11,11};
29 ubyte new_span[256];
30
31 extern void gr_pal_setblock( int start, int number, unsigned char * pal );
32
33 main(int argc,char **argv)
34 {
35         int ret;
36         grs_bitmap my_bitmap;
37         ubyte my_palette[256*3];
38         grs_bitmap *bm_list[100];
39         int n_bitmaps;
40         char key;
41
42 #if 0
43         {
44                 int new_len,i;
45                 new_len=rle_span(new_span,test_span,sizeof(test_span));
46                 printf("old span (%d): ",sizeof(test_span));
47                 for (i=0;i<sizeof(test_span);i++) printf("%d ",test_span[i]);
48                 printf("\nnew span (%d): ",new_len);
49                 for (i=0;i<new_len;i++) printf("%d ",new_span[i]);
50                 exit(0);
51         }
52 #endif
53
54 #ifdef ANIM_TEST
55         ret = iff_read_animbrush(argv[1],bm_list,100,&n_bitmaps,&my_palette);
56 #else
57         ret = iff_read_bitmap(argv[1],&my_bitmap,BM_LINEAR,&my_palette);
58         bm_list[0] = &my_bitmap;
59         n_bitmaps = 1;
60 #endif
61
62         printf("ret = %d\n",ret);
63         printf("error message = <%s>",iff_errormsg(ret));
64
65         if (ret == IFF_NO_ERROR) {
66                 int i;
67
68                 vga_init();
69                 gr_init();
70                 vga_set_mode(SM_320x200C);
71
72                 for (i=0;i<n_bitmaps;) {
73
74                         if (argc>2) {
75                                 ret = iff_write_bitmap(argv[2],bm_list[i],&my_palette);
76                                 printf("ret = %d\n",ret);
77                         }
78
79                         //gr_pal_setblock(0,256,&my_palette);
80                         gr_palette_load(&my_palette);
81                         //gr_pal_fade_in(grd_curscreen->pal);   //in case palette is blacked
82
83                         gr_ubitmap(0,0,bm_list[i]);
84
85                         key = getch();
86
87                         if (key=='-') {if (i) i--;}
88                         else i++;
89
90                 }
91
92                 gr_close();
93
94                 for (i=0;i<n_bitmaps;i++) {
95                         free(bm_list[i]->bm_data);
96
97                         #ifdef ANIM_TEST
98                                 free(bm_list[i]);
99                         #endif
100
101                 }
102         }
103
104 }
105