ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/oup/current/Tools/BinEdit.pas
(Generate patch)

Comparing oup/current/Tools/BinEdit.pas (file contents):
Revision 111 by alloc, Wed Feb 21 03:28:48 2007 UTC vs.
Revision 113 by alloc, Sun Feb 25 17:20:22 2007 UTC

# Line 139 | Line 139 | end;
139   procedure TForm_BinEdit.LoadDat(_fileid: Integer);
140   var
141    mem:  TMemoryStream;
142  Data: TByteData;
142   begin
143    if ConID <> -1 then
144    begin
# Line 182 | Line 181 | function TForm_BinEdit.GetValue(datatype
181   var
182    Data: TByteData;
183    i:    Word;
184 +  tempi: Integer;
185    floatformat: TFormatSettings;
186   begin
187    floatformat.DecimalSeparator := '.';
# Line 217 | Line 217 | begin
217      10:
218        Result := IntToBin(hex.Data[offset]);
219      11:
220 <      Result := '0x' + IntToHex(ConManager.Connection[ConID].GetRawInfo(fileid, offset).RawAddr, 8);
220 >    begin
221 >      tempi := ConManager.Connection[ConID].GetRawInfo(fileid, offset).RawAddr;
222 >      if tempi >= 0 then
223 >        Result := '0x' + IntToHex(tempi, 8)
224 >      else
225 >        Result := 'unused';
226 >    end;
227      12:
228 <      Result := FormatNumber(hex.Data[offset + 1] + hex.Data[offset + 2] * 256 +
229 <        hex.Data[offset + 3] * 256 * 256, 5, '0');
228 >      if hex.Data[offset] = 1 then
229 >        Result := FormatNumber(hex.Data[offset + 1] + hex.Data[offset + 2] * 256 +
230 >          hex.Data[offset + 3] * 256 * 256, 5, '0')
231 >      else
232 >        Result := 'no link';
233      13:
234        Result := IntToStr(hex.Data[offset]);
235      14:
# Line 307 | Line 316 | begin
316              begin
317                if Pos('#', SubName) > 0 then
318                begin
319 <                Data.Offset  := HexToLong(MidStr(SubName, Pos('#', SubName) + 1, 8));
320 <                Data.Value   :=
319 >                Data.Offset  := StrToInt('$'+MidStr(SubName, Pos('#', SubName) + 1, 8));
320 >                Data.Value   := '$' +
321                    MidStr(SubName, PosEx('#', SubName, Pos('#', SubName) + 1) + 1, 8);
322                  Data.Caption := MidStr(SubName, 1, Pos('#', SubName) - 1);
323                  Data.Description := SubDesc;
# Line 748 | Line 757 | begin
757      end
758      else
759      begin
760 <      if nodedata.DataType = 11 then
760 >      if (nodedata.DataType = 11) and (nodedata.Value <> 'unused') then
761        begin
762          if ConManager.Connection[ConID].GetRawInfo(fileid, nodedata.offset).RawSize > 0 then
763            Form_Main.open_child('rawedit', ConID, fileid);
764        end;
765 <      if nodedata.DataType = 12 then
765 >      if (nodedata.DataType = 12) and (nodedata.Value <> 'no link') then
766        begin
767          if (StrToInt(nodedata.Value) < ConManager.Connection[ConID].GetFileCount) and
768            (StrToInt(nodedata.Value) > 0) and
# Line 793 | Line 802 | begin
802    else
803    begin
804      hex.SelStart := Data.Offset;
805 <    hex.SelEnd   := Data.Offset + HexToLong(Data.Value) - 1;
805 >    hex.SelEnd   := Data.Offset + StrToInt(Data.Value) - 1;
806    end;
807   end;
808  
# Line 824 | Line 833 | begin
833          if Data.DataType > 0 then
834            CellText := Data.Value //GetValue(data.DataType, data.Offset)
835          else if Length(Data.Value) > 0 then
836 <          CellText := IntToStr(HexToLong(Data.Value)) + ' Bytes';
836 >          CellText := IntToStr(StrToInt(Data.Value)) + ' Bytes';
837        4:
838          CellText := Data.Description;
839      end;

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)