diff options
Diffstat (limited to 'includes/bitset.inc')
-rw-r--r-- | includes/bitset.inc | 142 |
1 files changed, 1 insertions, 141 deletions
diff --git a/includes/bitset.inc b/includes/bitset.inc index 5106d80..8e3f5b2 100644 --- a/includes/bitset.inc +++ b/includes/bitset.inc @@ -1,145 +1,5 @@ <?php -function parseBitset($bitset, $birthData) { - $bin = str_repeat("0", 48 - strlen(decbin($bitset))) . decbin($bitset); - - $sharedMemory = bindec(substr($bin, 24, 2)); - $little = bindec(substr($bin, 27, 2)); - $food = bindec(substr($bin, 16, 2)); - $nonverbal = substr($bin, 15, 1) !== "0"; - $lessFrequent = substr($bin, 14, 1) !== "0"; - $sexuallyActive = substr($bin, 13, 1) !== "0"; - $leader = substr($bin, 11, 1) !== "0"; - $sexualFeatures = substr($bin, 12, 1) !== "0"; - $persecutor = substr($bin, 10, 1) !== "0"; - $protector = substr($bin, 29, 1) !== "0"; - $fictive = substr($bin, 30, 1) !== "0"; - $robot = substr($bin, 45, 1) !== "0"; - $plush = substr($bin, 46, 1) !== "0"; - $polyamorous1 = substr($bin, 18, 1) !== "0"; - $polyamorous2 = substr($bin, 19, 1) !== "0"; - $species1 = substr($bin, 33, 4); - $species2 = substr($bin, 37, 4); - $alignment1 = substr($bin, 41, 4); - $alignment2 = substr($bin, 20, 4); - - $species1 = match ($species1) { - "0001" => "earth", - "0010" => "unicorn", - "0011" => "pegasus", - "0100" => "alicorn", - "0101" => "batpony", - "0110" => "crystal", - "0111" => "changeling", - default => null, - }; - - $species2 = match ($species2) { - "0001" => "earth", - "0010" => "unicorn", - "0011" => "pegasus", - "0100" => "alicorn", - "0101" => "batpony", - "0110" => "crystal", - "0111" => "changeling", - default => null, - }; - - $alignment1 = match ($alignment1) { - "0000" => "aroace", - "0001" => "hetero", - "0010" => "homo", - "0011" => "bi", - "0100" => "pan", - default => null, - }; - - $alignment2 = match ($alignment2) { - "0000" => "aroace", - "0001" => "hetero", - "0010" => "homo", - "0011" => "bi", - "0100" => "pan", - default => null, - }; - - $little = 0; - - if (isset($birthData["age"]) && $birthData["age"] !== 0) { - $age = $birthData["age"]; - } else if (isset($birthData["year"]) && $birthData["year"] > 1900) { - $age = (int)date('Y') - $birthData["year"] + (strtotime(date('Y') . "-" . $birthData["date"]) <= time() ? 0 : -1); - } else { - $age = -2; - } - - if ($age <= 10 && $age > 0) { - $little = 2; - } - - if ($age < 16 && $age > 10) { - $little = 3; - } - - return [ - 'shared_memory' => $sharedMemory, - 'median' => false, - 'protector' => $protector, - 'fictive' => $fictive, - 'little' => $little, - 'not_talking' => false, - 'sexual_features' => $sexualFeatures, - 'host' => false, - 'robot' => $robot, - 'magic' => 0, - 'sensitivity' => 0, - 'food' => $food, - 'plush' => $plush, - 'nonverbal' => $nonverbal, - 'less_frequent' => $lessFrequent, - 'age_spells' => false, - 'age_regressor' => false, - 'leader' => $leader, - 'persecutor' => $persecutor, - 'sexually_active' => $sexuallyActive, - 'polyamorous' => [ - 'romantic' => $polyamorous1, - 'sexual' => $polyamorous2 - ], - 'alignment' => [ - 'romantic' => $alignment1, - 'sexual' => $alignment2 - ], - 'species' => array_filter([ - $species1, - $species2 - ], function ($i) { - return isset($i); - }) - ]; -} - function parseMetadata ($metadata) { - if (isset($metadata)) { - if ($metadata["bitset"]) { - $m = parseBitset($metadata["bitset"], $metadata["birth"] ?? []); - $m["sexfriends"] = $metadata["sexfriends"] ?? []; - $m["marefriends"] = $metadata["marefriends"] ?? []; - $m["bitset"] = $metadata["bitset"] ?? 0; - $m["sisters"] = $metadata["sisters"] ?? []; - $m["regression"] = $metadata["regression"] ?? null; - $m["caretakers"] = $metadata["caretakers"] ?? []; - $m["median"] = $metadata["median"] ?? null; - $m["birth"] = $metadata["birth"] ?? null; - $m["heat"] = $metadata["heat"] ?? null; - $m["code"] = $metadata["code"] ?? null; - $m["interest"] = $metadata["interest"] ?? null; - } else { - $m = $metadata; - } - - return $m; - } else { - return $metadata; - } + return $metadata; }
\ No newline at end of file |