mirror of
https://gitlab.com/hashborgir/d2tools.git
synced 2025-10-13 08:24:24 -05:00
Refactored items to proper classes
This commit is contained in:
@@ -12,6 +12,7 @@ require_once './_pdo.php';
|
||||
|
||||
require_once './src/D2Functions.php';
|
||||
require_once './src/D2BitReader.php';
|
||||
require_once './src/D2ByteReader.php';
|
||||
//require_once './src/D2Item.php';
|
||||
|
||||
|
||||
@@ -39,35 +40,41 @@ $filePath = "D:\Diablo II\MODS\ironman-dev\save\Sorc.d2s";
|
||||
$fp = fopen($filePath, 'r+b');
|
||||
$data = file_get_contents($filePath);
|
||||
|
||||
$i_TotalOffset = strpos($data, "JM");
|
||||
fseek($fp, $i_TotalOffset + 2);
|
||||
$i_Total = unpack('S*', (fread($fp, 2)))[1];
|
||||
|
||||
|
||||
$i_offset = strpos($data, "JM");
|
||||
|
||||
fseek($fp, $i_offset + 2);
|
||||
$i_total = unpack('S*', (fread($fp, 2)))[1];
|
||||
|
||||
$items = null;
|
||||
|
||||
$offset = $i_offset + 4; // JM00
|
||||
|
||||
$first_item_offset = strposX($data, "JM", 2);
|
||||
$second_item_offset = strposX($data, "JM", 3);
|
||||
|
||||
$item_size = $second_item_offset - $first_item_offset;
|
||||
|
||||
for ($i = 2; $i <= $i_total; $i++) {
|
||||
fseek($fp, strposX($data, 'JM', $i));
|
||||
$_items[] = unpack('C*', fread($fp, 21));
|
||||
$i_Offsets = [];
|
||||
for($i=0; $i <= $i_Total; $i++){
|
||||
$i_Offsets[] = strposX($data, "JM", $i+2);
|
||||
}
|
||||
|
||||
foreach ($_items as $_item) {
|
||||
$item = null;
|
||||
foreach ($_item as $i_bytes) {
|
||||
$item .= strrev(str_pad(decbin($i_bytes), 8, 0, STR_PAD_LEFT));
|
||||
// $item .= (str_pad(dechex($i_bytes), 2, 0, STR_PAD_LEFT));
|
||||
}
|
||||
$items[] = $item;
|
||||
foreach($i_Offsets as $k=>$v){
|
||||
$itemOffsets[$v] = $i_Offsets[$k+1] - $i_Offsets[$k];
|
||||
}
|
||||
array_pop($itemOffsets);
|
||||
|
||||
|
||||
//$items = null;
|
||||
//
|
||||
//$offset = $i_offset + 4; // JM00
|
||||
//
|
||||
//$first_item_offset = strposX($data, "JM", 2);
|
||||
//$second_item_offset = strposX($data, "JM", 3);
|
||||
//
|
||||
//$item_size = $second_item_offset - $first_item_offset;
|
||||
//
|
||||
//for ($i = 2; $i <= $i_total; $i++) {
|
||||
// fseek($fp, strposX($data, 'JM', $i));
|
||||
// $_items[] = unpack('C*', fread($fp, 21));
|
||||
//}
|
||||
//
|
||||
//foreach ($_items as $_item) {
|
||||
// $item = null;
|
||||
// foreach ($_item as $i_bytes) {
|
||||
// $item .= strrev(str_pad(decbin($i_bytes), 8, 0, STR_PAD_LEFT));
|
||||
// }
|
||||
// $items[] = $item;
|
||||
//}
|
||||
|
||||
// ddump($items);
|
||||
|
||||
|
Reference in New Issue
Block a user