Talk:DBPF/Source Code

From SimsWiki
< Talk:DBPF
Revision as of 22:36, 1 January 2007 by Albmont (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Me again :-) I will ask something about this code.

When you read the Index, this sequence of operations is used:

  $indexData[$i]['typeID'] = $this->revhex($this->strhex(fread($handle, 4)));
  $indexData[$i]['groupID'] = $this->revhex($this->strhex(fread($handle, 4)));
  $indexData[$i]['instanceID'] = $this->revhex($this->strhex(fread($handle, 4)));

  if ($this->indexMajorVersion == "7") && ($this->indexMinorVersion == "1")) {
    $indexData[$i]['instanceID2'] = $this->revhex($this->strhex(fread($handle, 4)));
  }
  $indexData[$i]['offset'] = $this->read_UL4($handle);
  $indexData[$i]['filesize'] = $this->read_UL4($handle);
  $indexData[$i]['compressed'] = false;
  $indexData[$i]['truesize'] = 0;

and then, when you read the DIR resource, almost exactly the same sequence is done:

  $typeID = $this->revhex($this->strhex(fread($handle, 4)));
  $groupID = $this->revhex($this->strhex(fread($handle, 4)));
  $instanceID = $this->revhex($this->strhex(fread($handle, 4)));
  if (($this->indexMajorVersion == "7") && ($this->indexMinorVersion == "1")) {
    $instanceID2 = $this->revhex($this->strhex(fread($handle, 4)));
  }
  $filesize_nc = $this->read_UL4($handle);

and finally you check if the file is compressed by comparing the fields.

So, if I created a routine to read the whole sequence (except that the DIR does not read the offset), and then checked if the file is compressed using an overloaded "==" operator, would it be wrong? I think it might improve the readability of the code. Albmont 15:36, 1 January 2007 (EST)

Personal tools
Namespaces

Variants
Actions
Navigation
game select
Toolbox