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

Comparing oup/current/Global/DatStructureLoader.pas (file contents):
Revision 112 by alloc, Thu Feb 22 00:37:39 2007 UTC vs.
Revision 113 by alloc, Sun Feb 25 17:20:22 2007 UTC

# Line 68 | Line 68 | begin
68        Result := 4;
69      100..300:
70        Result := datatype - 100;
71 +    500..614:
72 +      Result := 4;
73      1000..9999:
74        Result := datatype - 1000;
75      10000..65535:
# Line 128 | Line 130 | end;
130  
131   function LoadStructureDefinition(ConnectionID, FileID: Integer): TStructDef;
132   var
131  i:      Integer;
133    current_type: Byte; //0: Global, 1: Undynamic, 2: Dynamic
134    current_base, current_package, current_package_size: Integer;
135    packages: Integer;
# Line 177 | Line 178 | begin
178                3:
179                begin
180                  current_type := 1;
181 <                current_base := HexToLong(fields[2]);
181 >                current_base := StrToInt(fields[2]);
182                  SetLength(Result.Subs, Length(Result.Subs) + 1);
183                  Result.Subs[High(Result.Subs)].SubName :=
184                    MidStr(fields[0], 2, Length(fields[0]) - 1);
# Line 186 | Line 187 | begin
187                6:
188                begin
189                  current_type    := 2;
190 <                current_base    := HexToLong(fields[2]);
190 >                current_base    := StrToInt(fields[2]);
191                  current_package := 0;
192                  current_package_size := StrToInt(fields[5]);
193                  if fields[4][1] <> '$' then
194                  begin
195                    case StrToInt(fields[4]) of
196                      1:
197 <                      packages := Data[HexToLong(fields[3])];
197 >                      packages := Data[StrToInt(fields[3])];
198                      2:
199 <                      packages := Data[HexToLong(fields[3])] + Data[HexToLong(fields[3]) + 1] * 256;
199 >                      packages := Data[StrToInt(fields[3])] + Data[StrToInt(fields[3]) + 1] * 256;
200                      4:
201 <                      packages := Data[HexToLong(fields[3])] + Data[HexToLong(fields[3]) + 1] *
202 <                        256 + Data[HexToLong(fields[3]) + 2] * 256 * 256 + Data[HexToLong(fields[3]) + 3] * 256 * 256 * 256;
201 >                      packages := Data[StrToInt(fields[3])] + Data[StrToInt(fields[3]) + 1] *
202 >                        256 + Data[StrToInt(fields[3]) + 2] * 256 * 256 + Data[StrToInt(fields[3]) + 3] * 256 * 256 * 256;
203                    end;
204                  end
205                  else
206                  begin
207 <                  packages := HexToLong(fields[4]);
207 >                  packages := StrToInt(fields[4]);
208                  end;
209                  SetLength(Result.Subs, Length(Result.Subs) + packages);
210                  for current_package := 0 to packages - 1 do
# Line 237 | Line 238 | begin
238                    structentry.description := '';
239                  if current_type in [0, 1] then
240                  begin
241 <                  structentry.offset := HexToLong(fields[1]) + current_base;
241 >                  structentry.offset := StrToInt(fields[1]) + current_base;
242                    if Length(Result.Subs) = 0 then
243                    begin
244                      SetLength(Result.Global, Length(Result.Global) + 1);
# Line 256 | Line 257 | begin
257                    for current_package := 0 to packages - 1 do
258                    begin
259                      structentry.offset :=
260 <                      current_base + current_package * current_package_size + HexToLong(fields[1]);
260 >                      current_base + current_package * current_package_size + StrToInt(fields[1]);
261                      with Result.Subs[High(Result.Subs) - packages + current_package + 1] do
262                      begin
263                        SetLength(Entries, Length(Entries) + 1);

Diff Legend

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