X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-live.git;a=blobdiff_plain;f=pctb%2Fstructure.h;h=0ad92a618e62386844f2ac50ebf652ac981ce754;hp=b246c87ba2acf20579998ea13532116fbc644bc7;hb=8afdc8c88ffd4cfb9b28945c877884968bd08a96;hpb=2ca58afcdf02d87e31115110ecd6c83ecc5dabc7 diff --git a/pctb/structure.h b/pctb/structure.h index b246c87..0ad92a6 100644 --- a/pctb/structure.h +++ b/pctb/structure.h @@ -1,3 +1,31 @@ +/* + * Image canonicalisation function for use by callers feeding + * images into structure.c's routines. + */ +/* + * This is part of ypp-sc-tools, a set of third-party tools for assisting + * players of Yohoho Puzzle Pirates. + * + * Copyright (C) 2009 Ian Jackson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Yohoho and Puzzle Pirates are probably trademarks of Three Rings and + * are used without permission. This program is not endorsed or + * sponsored by Three Rings. + */ + #ifndef STRUCTURE_H #define STRUCTURE_H @@ -32,16 +60,16 @@ CanonImage *alloc_canon_image(int w, int h); const CanonColourInfo *cci; \ unsigned long rgb; \ COMPUTE_RGB; \ - for (cci=canoncolourinfos; cci->c; cci++) \ + for (cci=canoncolourinfos; cci->c; cci++) { \ if (cci->rgb == rgb) { \ (im)->d[y*(w) + x]= cci->c; \ break; \ } \ + } \ } \ if (DEBUGP(rect)) { \ fprintf(debug, "%4d ",y); \ - int r= fwrite(im->d + y*w, 1,w, debug); \ - eassert(r==w); \ + fwrite(im->d + y*w, 1,w, debug); \ fputc('\n',debug); \ } \ } \ @@ -49,4 +77,13 @@ CanonImage *alloc_canon_image(int w, int h); }while(0) +#define CANONIMG_ALSO_STORERGB(ri) \ + do{ \ + unsigned char *rip= RI_PIXEL((ri),x,y); \ + rip[0]= rgb >> 16; \ + rip[1]= rgb >> 8; \ + rip[2]= rgb; \ + }while(0) + + #endif /*STRUCTURE_H*/