1
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <X11/Xos.h>
5
6 #ifndef __mem_image_h
7 # include "mem_image.H"
8 #endif
9 #ifndef __game_h
10 # include "game.H"
11 #endif
12
MemImage(const char * filename)13 MemImage::MemImage( const char *filename )
14 : GifImage( filename, 0 )
15 {
16 const char *ext=GetExtensionData( SUBSIZE_EXTENSION );
17
18 if (!ext||sscanf( ext, "%dx%d", &pic_width, &pic_height )!=2) {
19 fprintf( stderr, "%s: no memory hints contained in image\n", filename );
20 exit(-1);
21 }
22 }
23
SetupParams(struct parameter * par,int width,int)24 void MemImage::SetupParams( struct parameter *par, int width, int /*height*/ ) {
25 char bestbuffer[1024];
26 int size,best;
27 int p[3], wx[3], wy[3];
28 int code;
29 const char *ext;
30
31 best=0;
32 for (ext=GetExtensionData(code=SCALEINFO_START); ext; ext=GetExtensionData(++code) ) {
33 if (sscanf(ext,"%d:",&size)==1) {
34 if (size>=width && (best==0 || size<best)) {
35 best=size;
36 strcpy( bestbuffer, ext );
37 }
38 }
39 }
40
41 if (sscanf( bestbuffer, "%d: %dx%d %d %dx%d %d %dx%d %d" , &size,
42 &wx[0], &wy[0], &p[0], &wx[1], &wy[1], &p[1], &wx[2], &wy[2], &p[2] )!=10) {
43 sscanf( "0: 5x4 100 7x4 100 8x5 80", "%d: %dx%d %d %dx%d %d %dx%d %d" , &size,
44 &wx[0], &wy[0], &p[0], &wx[1], &wy[1], &p[1], &wx[2], &wy[2], &p[2] );
45 }
46
47 for (int i=0;i<3;i++) {
48 par->dim[i].dwidth = wx[i];
49 par->dim[i].dheight = wy[i];
50 par->dim[i].dsize = PicWidth()*p[i]/100;
51 par->dim[i].wsizex = PicWidth();
52 par->dim[i].wsizey = PicHeight();
53
54 // printf( "%d, %d, %d, %d, %d\n",
55 // par->dim[i].dwidth, par->dim[i].dheight,
56 // par->dim[i].dsize, par->dim[i].wsizex, par->dim[i].wsizey );
57 }
58 }
59
ShowInfoMsg()60 void MemImage::ShowInfoMsg() {
61
62 const char *ext=GetExtensionData( COMMENT_EXTENSION );
63
64 if (ext) {
65 printf( ext );
66 putchar( '\n' );
67 }
68 }
69