Okay, so, I've had a good night's sleep for the first time in days and will be starting my playthrough shortly.
Additionally, Splint has given me permission to go into the raws and figure out what the fuck happened with the birds. As far as I can tell, this is what the fuck happened with the birds (problem area highlighted for convenience):
[CREATURE:BIRD_PENGUIN_GIANT]
[COPY_TAGS_FROM:BIRD_PENGUIN]
[APPLY_CREATURE_VARIATION:GIANT]
[CV_REMOVE_TAG:CHANGE_BODY_SIZE_PERC]
[APPLY_CURRENT_CREATURE_VARIATION]
[GO_TO_END]
[CHANGE_BODY_SIZE_PERC:5702] this also resizes the eggs
[GO_TO_START]
[NAME:giant penguin:giant penguins:giant penguin]
[CASTE_NAME:giant penguin:giant penguins:giant penguin]
[GENERAL_CHILD_NAME:giant penguin chick:giant penguin chicks]
[DESCRIPTION:A huge monster, shaped like a penguin.]
[POPULATION_NUMBER:15:30]
[CLUSTER_NUMBER:5:10]
[CREATURE_TILE:'P']
[COLOR:0:0:1]
[PET_EXOTIC]
[PETVALUE:500]
[MOUNT_EXOTIC]
[PREFSTRING:enormous size]
[PREFSTRING:coloration]
[PREFSTRING:waddling gait]
[PREFSTRING:way of flying through the water]
[APPLY_CREATURE_VARIATION:STANDARD_WALKING_GAITS:9000:8900:8825:8775:9500:9900] 1 kph
[APPLY_CREATURE_VARIATION:STANDARD_SWIMMING_GAITS:900:750:600:439:1900:2900] 20 kph
[APPLY_CREATURE_VARIATION:STANDARD_CRAWLING_GAITS:9000:8900:8825:8775:9500:9900] 1 kph
Peregrine falcons were sponsored by the generous contributions of the Bay 12 community.
Demon
PMantix
MAShapiro
John Tait from Harrow, Middlesex: "Hunting food for vermin"
CREATURE:BIRD_FALCON_PEREGRINE
[DESCRIPTION:A small bird of prey that is capable of great speed. They dive on unsuspecting vermin.]
[NAME:peregrine falcon:peregrine falcons:peregrine falcon]
[GENERAL_CHILD_NAME:peregrine falcon chick:peregrine falcon chicks]
[CREATURE_TILE:'p'][COLOR:6:0:0]
[POPULATION_NUMBER:15:30]
[NATURAL]
[LARGE_ROAMING]
[PETVALUE:25]
[BENIGN]
[PET]
[FLIER]
[BONECARN]
[DIVE_HUNTS_VERMIN]
[CHILD:1]
[ALL_ACTIVE]
[MUNDANE]
everywhere but oceans, glaciers and tropical rainforests
[BIOME:ANY_WETLAND]
[BIOME:ANY_TEMPERATE_FOREST]
[BIOME:FOREST_TROPICAL_CONIFER]
[BIOME:FOREST_TROPICAL_DRY_BROADLEAF]
[BIOME:FOREST_TAIGA]
[BIOME:ANY_SHRUBLAND]
[BIOME:ANY_SAVANNA]
[BIOME:ANY_GRASSLAND]
[BIOME:ANY_DESERT]
[BIOME:MOUNTAIN]
[BIOME:TUNDRA]
[HOMEOTHERM:10067]
[APPLY_CREATURE_VARIATION:STANDARD_FLYING_GAITS:900:300:200:100:1900:2900] 87+ kph (110), need to work on base speed for fliers
dive ~320
[APPLY_CREATURE_VARIATION:STANDARD_WALKING_GAITS:9000:8900:8825:8775:9500:9900] 1 kph
[APPLY_CREATURE_VARIATION:STANDARD_SWIMMING_GAITS:9000:8900:8825:8775:9500:9900] 1 kph
[APPLY_CREATURE_VARIATION:STANDARD_CRAWLING_GAITS:9000:8900:8825:8775:9500:9900] 1 kph
[APPLY_CREATURE_VARIATION:STANDARD_CLIMBING_GAITS:2990:2257:1525:731:4300:6100] 12 kph
[STANCE_CLIMBER][NATURAL_SKILL:CLIMBING:15]
[SWIMS_INNATE]
[PREFSTRING:ability to dive through the air]
[BODY:HUMANOID_ARMLESS_NECK:2WINGS:2EYES:2LUNGS:HEART:GUTS:ORGANS:GIZZARD:HUMANOID_JOINTS:THROAT:NECK:SPINE:BRAIN:SKULL:4TOES:BEAK:TONGUE:RIBCAGE]
[BODY_DETAIL_PLAN:STANDARD_MATERIALS]
[REMOVE_MATERIAL:HAIR]
[USE_MATERIAL_TEMPLATE:FEATHER:FEATHER_TEMPLATE]
[BODY_DETAIL_PLAN:STANDARD_TISSUES]
[REMOVE_TISSUE:HAIR]
[USE_TISSUE_TEMPLATE:FEATHER:FEATHER_TEMPLATE]
[BODY_DETAIL_PLAN:VERTEBRATE_TISSUE_LAYERS:SKIN:FAT:MUSCLE:BONE:CARTILAGE]
[BODY_DETAIL_PLAN:BODY_FEATHER_TISSUE_LAYERS:FEATHER]
[USE_MATERIAL_TEMPLATE:TALON:NAIL_TEMPLATE]
[USE_TISSUE_TEMPLATE:TALON:TALON_TEMPLATE]
[TISSUE_LAYER:BY_CATEGORY:TOE:TALON:FRONT]
[BODY_DETAIL_PLAN:EGG_MATERIALS]
[SELECT_TISSUE_LAYER:HEART:BY_CATEGORY:HEART]
[PLUS_TISSUE_LAYER:SKIN:BY_CATEGORY:THROAT]
[TL_MAJOR_ARTERIES]
[BODY_DETAIL_PLAN:STANDARD_HEAD_POSITIONS]
[BODY_DETAIL_PLAN:HUMANOID_RIBCAGE_POSITIONS]
[USE_MATERIAL_TEMPLATE:SINEW:SINEW_TEMPLATE]
[TENDONS:LOCAL_CREATURE_MAT:SINEW:200]
[LIGAMENTS:LOCAL_CREATURE_MAT:SINEW:200]
[HAS_NERVES]
[USE_MATERIAL_TEMPLATE:BLOOD:BLOOD_TEMPLATE]
[BLOOD:LOCAL_CREATURE_MAT:BLOOD:LIQUID]
[CREATURE_CLASS:GENERAL_POISON]
[GETS_WOUND_INFECTIONS]
[GETS_INFECTIONS_FROM_ROT]
[USE_MATERIAL_TEMPLATE:PUS:PUS_TEMPLATE]
[PUS:LOCAL_CREATURE_MAT:PUS:LIQUID]
[BODY_APPEARANCE_MODIFIER:LENGTH:90:95:98:100:102:105:110]
[BODY_APPEARANCE_MODIFIER:HEIGHT:90:95:98:100:102:105:110]
[BODY_APPEARANCE_MODIFIER:BROADNESS:90:95:98:100:102:105:110]
[MAXAGE:12:15]
[ATTACK:BITE:BODYPART:BY_CATEGORY:BEAK]
[ATTACK_SKILL:BITE]
[ATTACK_VERB:bite:bites]
[ATTACK_CONTACT_PERC:100]
[ATTACK_PENETRATION_PERC:100]
[ATTACK_FLAG_EDGE]
[ATTACK_PREPARE_AND_RECOVER:3:3]
[ATTACK_PRIORITY:MAIN]
[ATTACK_FLAG_CANLATCH]
[ATTACK:SCRATCH:CHILD_TISSUE_LAYER_GROUP:BY_TYPE:STANCE:BY_CATEGORY:ALL:TALON]
[ATTACK_SKILL:STANCE_STRIKE]
[ATTACK_VERB:snatch at:snatches at]
[ATTACK_CONTACT_PERC:100]
[ATTACK_PENETRATION_PERC:100]
[ATTACK_FLAG_EDGE]
[ATTACK_PREPARE_AND_RECOVER:3:3]
[ATTACK_PRIORITY:MAIN]
[ATTACK_FLAG_WITH]
[ATTACK_FLAG_BAD_MULTIATTACK]
[CASTE:FEMALE]
[CASTE_NAME:peregrine falcon:peregrine falcons:peregrine falcon]
[FEMALE]
[LAYS_EGGS]
[EGG_MATERIAL:LOCAL_CREATURE_MAT:EGGSHELL:SOLID]
[EGG_MATERIAL:LOCAL_CREATURE_MAT:EGG_WHITE:LIQUID]
[EGG_MATERIAL:LOCAL_CREATURE_MAT:EGG_YOLK:LIQUID]
[EGG_SIZE:46]
[CLUTCH_SIZE:3:4]
[BODY_SIZE:0:0:44]
[BODY_SIZE:1:0:550]
[BODY_SIZE:2:0:1100]
[CASTE:MALE]
[CASTE_NAME:tiercel peregrine:tiercel peregrines:tiercel peregrine]
[MALE]
[BODY_SIZE:0:0:44]
[BODY_SIZE:1:0:300]
[BODY_SIZE:2:0:600]
[SELECT_CASTE:ALL]
[SET_TL_GROUP:BY_CATEGORY:ALL:FEATHER]
[TL_COLOR_MODIFIER:BROWN:1]
[TLCM_NOUN:feathers:PLURAL]
[SET_TL_GROUP:BY_CATEGORY:ALL:SKIN]
[TL_COLOR_MODIFIER:BROWN:1:BURNT_UMBER:1:CINNAMON:1:COPPER:1:DARK_BROWN:1:DARK_PEACH:1:DARK_TAN:1:ECRU:1:PALE_BROWN:1:PALE_CHESTNUT:1:PALE_PINK:1:PEACH:1:PINK:1:RAW_UMBER:1:SEPIA:1:TAN:1:TAUPE_PALE:1:TAUPE_SANDY:1]
[TLCM_NOUN:skin:SINGULAR]
[SET_TL_GROUP:BY_CATEGORY:EYE:EYE]
[TL_COLOR_MODIFIER:BLACK:1]
[TLCM_NOUN:eyes:PLURAL]
As far as I can tell, this is the only area affected. So far as I can tell, the square brackets around CREATURE:BIRD_FALCON_PEREGRINE were removed, in an attempt to remove peregrines from the game. Which, in a sense, worked, since a new creature entry wasn't declared. However, since the peregrine's tags weren't removed, this caused them to simply be appended onto the end* of the previous creature definition -- BIRD_PENGUIN_GIANT, in this case.
So, I'm sure all/most/some/none of you are wondering: "But Mr Frog-sama, what the sweet holy fuckballs does this mean?"
To which I answer: I have no fucking clue. I don't have a firm enough grasp of how castes, among other things, work to say exactly what the implications of this are or what properties our horrible frankenbird may have. All I can say is that this thing has four castes, fractal bodies for both falcon castes, and is probably tameable.
(In a twist of fate, since the peregrine's names and sizes are declared on a caste-specific level, both the giant penguin- and peregrine-derived castes retain their native names and body sizes.)
Oh, and in case you thought I was exaggerating about the fractal bodies:
So that's two upper bodies and three lower bodies. Yeah. It gets even worse as you go down:
For those keeping count, that is four fucking heads on this thing, with six wings if you count the penguin's flippers. We have accidentally modded cherubim. Hallelujah!
E: Wrong word
E2: Gonna hold off on playing till at least this evening, actually. Something came up.
What happened is pretty simple actually.
If you take a look at the Peregrine raws, you will notice a CASTE_NAME isn't stated.
In the Giant Penguin raws, a CASTE_NAME is stated.
Now there are two priorities to know :
1) CASTE_NAME takes priority over NAME when naming a creature.
2) Last tag takes priority over previously similar tags if there is possible conflict. (for example if you first state a creature blood is red, then state it is blue, it will be blue in the end)
> If there is no conflict, the tag is added to the tag pool.
Here is what happened :
1) [CASTE_NAME:giant penguin:giant penguins:giant penguin] took precedence in naming.
2) The repetition of [BODY] tags generated multiple instances of the same organ. DF looked at Giant Penguin Body raws, stuck everything together, then looked at Peregrine Body Raws and stuck everything on the previous body.
What made this a further mess is the fact that a limb is defined to be stuck to an Upper or Lower body. Usually on a creature you should only find one UPPER_BODY. Here, we had two upper and lower body declarations. I won't go into detail, but you imagine the mess.
So remember kids, bracket removal is bad. Always replace your brackets with parentheses !