summaryrefslogtreecommitdiff
path: root/includes/bitset.inc
diff options
context:
space:
mode:
Diffstat (limited to 'includes/bitset.inc')
-rw-r--r--includes/bitset.inc142
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