Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- my $buffer;
- sub read_item
- {
- my $buffer;
- read(FALL, $buffer, 24);
- my $name = $buffer;
- $name =~ s/\x00//g;
- read(FALL, $buffer, 4);
- my $weight = unpack("L", $buffer);
- read(FALL, $buffer, 2);
- my $hitpoints = unpack("S", $buffer);
- read(FALL, $buffer, 4);
- my $capacity = unpack("L", $buffer);
- read(FALL, $buffer, 4);
- my $price = unpack("L", $buffer);
- read(FALL, $buffer, 2);
- my $enchant = unpack("S", $buffer);
- read(FALL, $buffer, 3);
- my @bytes = unpack("C*", $buffer);
- my $unknown = join(", ", @bytes);
- read(FALL, $buffer, 1);
- my $jbits = unpack("B*", $buffer);
- my @bits = split(//, $jbits);
- my $blunt = $bits[3];
- my $liquid = $bits[4];
- my $onehanded = $bits[5];
- my $ingredient = $bits[7];
- read(FALL, $buffer, 2);
- my @bytes = unpack("C*", $buffer);
- my $worldid;
- my $playerid;
- my $worldtex;
- my $playertex;
- if ($bytes[0]>127) {
- $worldid = $bytes[0]-128;
- $worldtex = 2*$bytes[1]+1;
- } else {
- $worldid = $bytes[0];
- $worldtex = 2*$bytes[1];
- }
- read(FALL, $buffer, 2);
- my @bytes = unpack("C*", $buffer);
- if ($bytes[0]>127) {
- $playerid = $bytes[0]-128;
- $playertex = 2*$bytes[1]+1;
- } else {
- $playerid = $bytes[0];
- $playertex = 2*$bytes[1];
- }
- return "$name, $weight, $hitpoints, $capacity, $price, $enchant, $unknown, $blunt, $liquid, $onehanded, $ingredient, $worldid, $worldtex, $playerid, $playertex\n";
- }
- my $fall = "FALL.EXE";
- open(FALL, "<$fall") or die "cannot open FALL.EXE";
- binmode(FALL);
- seek(FALL, 0x1b682a, 0);
- print "id, name, weight, hit points, target/capacity, base price, enchant points, unknown 1/unknown 2, unknown 3/variants, effect/slot, blunt weapon, liquid, one handed, ingredient, world image, world texture, player image, player texture\n";
- foreach my $i (1..288) {
- print "$i, ";
- print read_item;
- }
- close(FALL);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement