X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Freloc.c;h=1582521c4cb08ba77da0647a5ac83b7d54e409b4;hb=71396ad3942a23746381a313685a9936ab3be556;hp=f3243a322af2f40526f468d470452a8a3c5c6ebd;hpb=fbd703d3379e436d022dacf9b06d9a8b4bb33892;p=swftools.git diff --git a/src/reloc.c b/src/reloc.c index f3243a3..1582521 100644 --- a/src/reloc.c +++ b/src/reloc.c @@ -124,22 +124,25 @@ void map_ids_mem(u8*mem, int length) num ++; case TAGID_DEFINETEXT: { int glyphbits, advancebits; + int id; reader_init (newtag->data, newtag->length); - readu16(); //id + id = readu16(); //id readRECT(); //bounding box readMATRIX(); //matrix resetbits(); glyphbits = readu8(); //glyphbits advancebits = readu8(); //advancebits while(1) { - u16 flags = getbits(8); + u16 flags; + resetbits(); + flags = getbits(8); if(!flags) break; if(flags & 128) // text style record { + resetbits(); if(flags & 8) { // hasfont maponeid(getinputpos()); - resetbits(); - readu16(); + id = readu16(); } if(flags & 4) { // hascolor if(num==1) readRGB(); @@ -158,9 +161,12 @@ void map_ids_mem(u8*mem, int length) readu16(); } } else { // glyph record - getbits(glyphbits); - getbits(advancebits); - break; + int t; + resetbits(); + for(t=0;t