--- oup/current/Tools/TxmpReplace.pas 2007/05/24 17:48:18 192 +++ oup/current/Tools/TxmpReplace.pas 2007/05/26 14:24:55 193 @@ -56,7 +56,7 @@ begin OniImage_Old.LoadFromTXMP(ConnectionID, fileid); old_size := OniImage_Old.GetImageSize(True); - OniImage_Old.DrawOnCanvas(image_txmppreview.Canvas, 0); + OniImage_Old.DrawOnCanvas(image_txmppreview.Canvas, 2); check_fading.Checked := OniImage_Old.HasMipMaps; // check_transparency.Checked := (depthbyte and $04) > 0; @@ -73,7 +73,7 @@ begin if opend.Execute then begin OniImage_New.LoadFromFile(opend.FileName); - OniImage_New.DrawOnCanvas(image_bmppreview.Canvas, 0); + OniImage_New.DrawOnCanvas(image_bmppreview.Canvas, 1); group_options.Enabled := True; end; end; @@ -88,6 +88,7 @@ var oldfading: Byte; datbyte: Word; mem: TMemoryStream; + new_storetype: Byte; begin if filelist.ItemIndex >= 0 then begin @@ -114,6 +115,21 @@ begin mem := TMemoryStream.Create; + case OniImage_New.Format of + ifA1R5G5B5: new_storetype := 2; + ifA4R4G4B4: new_storetype := 0; + ifA8R8G8B8: + begin + new_storetype := 8; + OniImage_New.Format := ifX8R8G8B8; + end; + ifX8R8G8B8: new_storetype := 8; + ifDXT1: new_storetype := 9; + else + OniImage_New.Format := ifX8R8G8B8; + new_storetype := 8; + end; + OniImage_New.SaveDataToStream(check_fading.Checked, TStream(mem)); newsize := mem.Size; @@ -121,8 +137,7 @@ begin if (newsize > old_size) and (ConManager.Connection[ConnectionID].Backend = DB_ONI) then new_rawaddr := ConManager.Connection[ConnectionID].AppendRawFile( - not (ConManager.Connection[ConnectionID].DataOS = DOS_WIN), - mem.Size, mem) + not (ConManager.Connection[ConnectionID].DataOS = DOS_WIN), mem) else begin new_rawaddr := old_rawaddr; @@ -141,21 +156,7 @@ begin ConManager.Connection[ConnectionID].UpdateDatFilePart(fileid, $8C, 2, @datbyte); datbyte := OniImage_New.Height[1]; ConManager.Connection[ConnectionID].UpdateDatFilePart(fileid, $8E, 2, @datbyte); - case OniImage_New.Format of - ifA1R5G5B5: datbyte := 2; - ifA4R4G4B4: datbyte := 0; - ifA8R8G8B8: - begin - datbyte := 8; - OniImage_New.Format := ifX8R8G8B8; - end; - ifX8R8G8B8: datbyte := 8; - ifDXT1: datbyte := 9; - else - OniImage_New.Format := ifX8R8G8B8; - datbyte := 8; - end; - ConManager.Connection[ConnectionID].UpdateDatFilePart(fileid, $90, 1, @datbyte); + ConManager.Connection[ConnectionID].UpdateDatFilePart(fileid, $90, 1, @new_storetype); if not (ConManager.Connection[ConnectionID].DataOS = DOS_WIN) then ConManager.Connection[ConnectionID].UpdateDatFilePart(fileid, $A0, 4, @new_rawaddr) else