@@ -147,21 +147,29 @@ QVector<QImage> Tileset::Optimized(QList<Tile>* tilemap, Tileset::optimize_flags
147147 for (int im=0 ; im<tilemap->count (); im++)
148148 {
149149 Tile* tmtile= &(*tilemap)[im];
150- QImage tmtile_img= tmtile->RenderImage (this ,true );
150+ QImage tmtile_img= tmtile->RenderImage (this ,false );
151151 bool hflipped=false , vflipped=false ;
152152 int ind_found= -2 ;
153153
154154 // Search the new tilemap by all the possible versions of this tile
155- for (int ipal=0 ; ipal<PALETTE_H; ipal++)
155+ for (int ipal=0 ; ipal<PALETTE_H && ipal>= 0 ; ipal++)
156156 {
157157 if (!(optiflags&Tileset::OptimizeWithPalette))
158158 if (ipal != tmtile->palette_index ) continue ;
159159
160+ if (!isPalettedFormat ()) ipal= -1 ;
161+
160162 hflipped=false , vflipped=false ;
161163 ind_found= new_tileset.indexOf (Tile::TransformImage (tmtile_img,vflipped,hflipped,ipal));
162164 if (ind_found >= 0 ) break ;
163165
164- if (!(optiflags&Tileset::OptimizeWithFlip)) continue ;
166+ if (!(optiflags&Tileset::OptimizeWithFlip))
167+ {
168+ if (isPalettedFormat ())
169+ continue ;
170+ else
171+ break ;
172+ }
165173
166174 hflipped=false , vflipped=true ;
167175 ind_found= new_tileset.indexOf (Tile::TransformImage (tmtile_img,vflipped,hflipped,ipal));
@@ -172,6 +180,9 @@ QVector<QImage> Tileset::Optimized(QList<Tile>* tilemap, Tileset::optimize_flags
172180 hflipped=true , vflipped=true ;
173181 ind_found= new_tileset.indexOf (Tile::TransformImage (tmtile_img,vflipped,hflipped,ipal));
174182 if (ind_found >= 0 ) break ;
183+
184+ if (!isPalettedFormat ())
185+ break ;
175186 }
176187
177188 if (ind_found >= 0 )
@@ -180,7 +191,7 @@ QVector<QImage> Tileset::Optimized(QList<Tile>* tilemap, Tileset::optimize_flags
180191 }
181192 else
182193 {
183- new_tileset+= tmtile_img ;
194+ new_tileset+= tmtile-> RenderImage ( this , isPalettedFormat ()); ;
184195 new_tilemap+= Tile (new_tileset.count ()-1 ,false ,false ,new_tileset.last ().scanLine (0 )[0 ]>>4 );
185196 }
186197
0 commit comments