From bc686910f5bbc06ee9f2c891172fd2ffb48ac445 Mon Sep 17 00:00:00 2001 From: kramm Date: Sat, 27 Oct 2001 18:27:49 +0000 Subject: [PATCH] fixed DEFINETEXT relocating --- src/reloc.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) 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