bulge_family 
Bulge families: the set of shapes a garment bulges with. A garment names its family by typepath in its bulge_family var (garment_families.dm).
A family is never instantiated. Its data are vars initialised here and read with initial() from the typepath: nothing is allocated or retained, there is no lookup list, and a read costs about what a datum var read does.
The shapes are named from these vars: "[shapes][half|hard][size][plain|digi]" up to small_cap, in the template sheets (icons/templates, found by templates.dm), and past it one per penis shape, "[shapes][half|hard][size][plain|digi]_[penis shape]", derived at run time from the penis sprites (top_row, hem, contained, curtain and long say how). Those five vars belong to the shapes stem, as a loincloth's worn_icon, worn_icon_state, first_column, last_column, start_x, start_y and drop belong to its drapes stem: what is derived is kept for the round by its name, so the families that share a stem must agree on them (bulge_derivation checks it). Where a family draws another family's shapes by design, it names that family (half_shapes_of, hard_shapes_of, large_shapes_of) instead of repeating them. A garment whose approved look differs from its family's is given a subtype of the family that says how.
Vars | |
| clearance | Skirts whose shaft shows through the cloth have anatomy clearance masks (skirt_clearance.dmi). |
|---|---|
| contained | Sizes past small_cap (BULGE_SIZE_BIT()) at which the cloth still holds the whole penis below top_row: only its head shows, below the hem when half hard and at the tip facing east and west when hard. |
| curtain | Sizes past small_cap at which the hard bulge of the human penis hangs a curtain of cloth from the tip down to the hem, facing east and west (every other penis shape is amended there instead: bulge_derive_large()). |
| drapes | Stem of a loincloth's drape and cut names (both derived at run time: bulge_drape(), bulge_loincloth_cut()). |
| drop | How far a loincloth's flap drops past its hinge: a penis reaching less far than that has the rest hang below it. |
| finish | The finish its adaptive palette is computed with (BULGE_FINISH_*). |
| first_column | The columns (from the left of the tile) of a loincloth's flap facing south: the rows of its drape there. |
| flaps | Skirts that reveal cut a flap off the cover when hard (skirt_flaps.dmi). |
| flat_tip_from | Bulge size from which the loincloth's drape has a flat tip; 0 when it never has. |
| half_cap | Largest bulge size the family has shapes for when half hard; 0 when it never draws. |
| half_shapes_of | The family whose half-hard shapes (up to small_cap) this family draws, when they are that family's by design. |
| hard_cap | Largest bulge size the family has shapes for when hard; 0 when it never draws. |
| hard_shapes_of | The family whose hard shapes (up to small_cap) this family draws by design, with their anatomy clearance and flaps, except at the sizes it has its own of. |
| hem | The last row they cover it to, the garment's hem over the crotch. |
| large_digi_forms | Forms (BULGE_FORM_*) whose shapes past small_cap have digitigrade versions; the others draw the plain ones. |
| large_shapes_of | The family whose shapes past small_cap (one per penis shape) this family draws, by design. |
| lifted_hem | The cut a hard loincloth takes when its drape stays above the hem facing south (a tentacle's stub). |
| loincloth | Loincloths lift their flap when hard: the penis shows under a drape instead of a hard bulge. Every loincloth
names its drapes, so this is the same as drapes being set; it is kept as the plain question. |
| long | Long legs: past small_cap the cloth holds the whole penis below top_row and never bares the head of a half-hard one, which it presses flat along the thigh, facing east and west. |
| own_clearance_sizes | Hard sizes at which such a family has its own anatomy clearance. |
| own_flap_sizes | Hard sizes at which such a family has its own flap. |
| own_shape_sizes | Hard sizes (BULGE_SIZE_BIT()) at which a family that draws another family's hard shapes has its own shape. |
| print_cap | Largest size a printed garment of this family has a printed look for. A bigger bulge is drawn from the family's own shapes up to its caps, and stays at this size where the family has none. |
| printed_patches | Stem of a printed garment's precoloured patches past small_cap (printed_patches.dmi), drawn instead of a print derived from its sprite; null when its prints are derived. |
| shapes | Stem of the names of the family's own shapes, and of a skirt's own anatomy clearance and flaps; null when it has none of its own. |
| small_cap | Largest size drawn from shapes that do not depend on the penis shape; past it, a shape per penis shape. |
| start_x | Where a loincloth's drape starts facing east, the flap's hinge: its column and row. The flap's two columns facing east end there, and its cut facing east and west takes them from that row down. |
| top_row | The first row (from the top of the tile) the family's shapes past small_cap cover the penis from (bulge_shape()). |
| worn_icon | A loincloth's own worn sprite and state: its drape's rows facing south and its cuts are taken from it. |
Var Details
clearance 
Skirts whose shaft shows through the cloth have anatomy clearance masks (skirt_clearance.dmi).
contained 
Sizes past small_cap (BULGE_SIZE_BIT()) at which the cloth still holds the whole penis below top_row: only its head shows, below the hem when half hard and at the tip facing east and west when hard.
curtain 
Sizes past small_cap at which the hard bulge of the human penis hangs a curtain of cloth from the tip down to the hem, facing east and west (every other penis shape is amended there instead: bulge_derive_large()).
drapes 
Stem of a loincloth's drape and cut names (both derived at run time: bulge_drape(), bulge_loincloth_cut()).
drop 
How far a loincloth's flap drops past its hinge: a penis reaching less far than that has the rest hang below it.
finish 
The finish its adaptive palette is computed with (BULGE_FINISH_*).
first_column 
The columns (from the left of the tile) of a loincloth's flap facing south: the rows of its drape there.
flaps 
Skirts that reveal cut a flap off the cover when hard (skirt_flaps.dmi).
flat_tip_from 
Bulge size from which the loincloth's drape has a flat tip; 0 when it never has.
half_cap 
Largest bulge size the family has shapes for when half hard; 0 when it never draws.
half_shapes_of 
The family whose half-hard shapes (up to small_cap) this family draws, when they are that family's by design.
hard_cap 
Largest bulge size the family has shapes for when hard; 0 when it never draws.
hard_shapes_of 
The family whose hard shapes (up to small_cap) this family draws by design, with their anatomy clearance and flaps, except at the sizes it has its own of.
hem 
The last row they cover it to, the garment's hem over the crotch.
large_digi_forms 
Forms (BULGE_FORM_*) whose shapes past small_cap have digitigrade versions; the others draw the plain ones.
large_shapes_of 
The family whose shapes past small_cap (one per penis shape) this family draws, by design.
lifted_hem 
The cut a hard loincloth takes when its drape stays above the hem facing south (a tentacle's stub).
loincloth 
Loincloths lift their flap when hard: the penis shows under a drape instead of a hard bulge. Every loincloth
names its drapes, so this is the same as drapes being set; it is kept as the plain question.
long 
Long legs: past small_cap the cloth holds the whole penis below top_row and never bares the head of a half-hard one, which it presses flat along the thigh, facing east and west.
own_clearance_sizes 
Hard sizes at which such a family has its own anatomy clearance.
own_flap_sizes 
Hard sizes at which such a family has its own flap.
own_shape_sizes 
Hard sizes (BULGE_SIZE_BIT()) at which a family that draws another family's hard shapes has its own shape.
print_cap 
Largest size a printed garment of this family has a printed look for. A bigger bulge is drawn from the family's own shapes up to its caps, and stays at this size where the family has none.
printed_patches 
Stem of a printed garment's precoloured patches past small_cap (printed_patches.dmi), drawn instead of a print derived from its sprite; null when its prints are derived.
shapes 
Stem of the names of the family's own shapes, and of a skirt's own anatomy clearance and flaps; null when it has none of its own.
small_cap 
Largest size drawn from shapes that do not depend on the penis shape; past it, a shape per penis shape.
start_x 
Where a loincloth's drape starts facing east, the flap's hinge: its column and row. The flap's two columns facing east end there, and its cut facing east and west takes them from that row down.
top_row 
The first row (from the top of the tile) the family's shapes past small_cap cover the penis from (bulge_shape()).
worn_icon 
A loincloth's own worn sprite and state: its drape's rows facing south and its cuts are taken from it.