penis 
Vars | |
| bulge_accessory | The penis overlay's sprite accessory. |
|---|---|
| bulge_alpha | The alpha the cover is drawn with, for a printed patch. |
| bulge_anatomy | What the anatomy a look draws (the penis's own images, and the shown testicles' behind a cover) is drawn from beyond its sprite, as bulge_anatomy_record() lists it; compared on every pass (bulge_anatomy_unchanged()). Null while the look draws no anatomy. |
| bulge_anatomy_behind | Whether the look draws the anatomy behind its cover. |
| bulge_anatomy_mask | The mask restricting the anatomy drawn over the cloth (exposed or clearance), or null for none. |
| bulge_aroused | The penis's arousal. |
| bulge_body_cut | The underwear's cut. |
| bulge_body_drawn | The underclothes' appearances as last drawn. |
| bulge_bodyshape | The wearer's body shape: digitigrade, custom and taur bodies. |
| bulge_cloth | An adaptive look's palette: the cloth colour. |
| bulge_cover_alpha | The cover's drawn alpha, root times leaf. |
| bulge_cover_filtered | The colour treatment the cover is drawn through (its colour filter or colour matrix, as color_atom_overlay() applies it), or null: no print follows it, and an adaptive cloth is drawn through it too (bulge_cloth_images()). |
| bulge_cover_icon | The cover's drawn sprite; null for underclothes. |
| bulge_cover_over | What the cover draws over its sprite (blood, dirt), as bulge_over_signature() reads it; null for nothing. |
| bulge_cover_state | The cover's drawn state; for underclothes, the wearer's physique. |
| bulge_cover_tint | The cover's drawn tint; for underclothes, the wearer's colour for them. |
| bulge_cover_type | The cover's type (see bulge_cover_unchanged()). |
| bulge_cover_x | The cover's worn offset from the left, as drawn; everything the look draws is moved by it. |
| bulge_cover_y | The cover's worn offset from the bottom, as drawn. |
| bulge_cut_icon | The cut swapped in for it. |
| bulge_deep_shade | The deep shade kind's colour. |
| bulge_highlight | The highlight kind's colour. |
| bulge_key | The look's render key, standing in for the penis's own. |
| bulge_layer | The layer of the garment the look draws over. |
| bulge_length | The penis's length. |
| bulge_light | The light kind's colour. |
| bulge_over | What the cover draws over its sprite, kept to the cloth's pixels and drawn over it: appearances, or null. |
| bulge_patch | The patch a printed look draws: a registered icon. |
| bulge_redrawing | Set while the look re-draws a cover whose cut no longer matches it, so the re-draw cannot recurse. Reset after the re-draw and by bulge_clear(), whenever the look is cleared: on every full resolve, one nested in the re-draw included (which can draw a cover once more), when the penis stops drawing a look, and on removing the penis. |
| bulge_restraint | The underwear under the cover, holding the penis in or letting it out (bulge_restraint()), or null. |
| bulge_shade | The shade kind's colour. |
| bulge_sheet_patch | The precoloured patch a printed look draws past its family's small_cap (the heart boxers). |
| bulge_suffix | The penis overlay's sprite suffix: its shape, sprite size, erection and skin tones. |
| bulge_suit_drawn | The suit slot's appearance as last drawn; a new one is a new render of the suit. |
| bulge_template | The shape an adaptive look draws: a decoded kind map with its white masks. |
| bulge_uncut_icon | The drawn sprite the uniform's cut was made from: a printed skirt's patch is derived from it, not from its cut. |
| bulge_uncut_over | The overlays of the uniform's KEEP_TOGETHER root as built, before the cut also cut what it draws over its sprite (its blood): the look's cloth carries them uncut. Null when the uniform is not drawn cut or holds no such root. |
| bulge_uncut_state | Its state. |
| bulge_uniform_cut | The uniform's cut. |
| bulge_uniform_drawn | The uniform slot's appearance as last drawn. |
| bulge_wearer | The wearer the look was resolved for. |
| shaft_datum | The shaft accessory as picked in prefs. sprite_datum points here when unsheathed. |
| sheath_datum | The sheath accessory, or null for sheathless penises. |
Procs | |
| bulge_anatomy_record | Records what the anatomy a look draws is drawn from beyond its sprite (bulge_anatomy): the penis's colours, alpha, emissive colours and dye, and the shown testicles' overlay with their sprite suffix, the same of theirs, their sprite accessory and the mess drawn on them (dirt_share_key(): the look draws it with them, and a wash or a new splat changes it, which nothing else here sees); and returns the hash of the render keys the penis and those testicles draw with in the open, for the look's key, after DIRT_PRIVATE_KEY when those keys carry it. Those keys (the mutant overlays' icon_render_key()) read nothing else that can change while a look draws: the penis's sprites, the layering and the body shape are in the look's memo (bulge_resolve()), taur, MOD and device sprites draw no look, and the penis draws no mess of its own while a look stands in for it. When the mutant key comes to read more, record it here and compare it in bulge_anatomy_unchanged(). |
| bulge_anatomy_unchanged | Whether the anatomy a look draws is drawn from what it was recorded for (bulge_anatomy_record()), compared by value (a list changed in place counts): once per pass, for a look that draws anatomy, with the shown testicles looked up once here. |
| bulge_clear | Forgets the current look and what it was resolved from, and resets the redraw guard. |
| bulge_cloth_images | The cloth a look draws at front, each image to its LIMB_OVERLAY_* flags: its patch, or its kinds tinted with its
palette, and one emissive blocker. The cloth carries no LIMB_OVERLAY_TEXTURED, so the textures a limb draws its skin
with leave it alone, and is named BULGE_CLOTH_NAME. |
| bulge_cover_unchanged | Whether the cover is the one the look was resolved for, drawn as it was then: the same garment type, and for a worn garment the same drawn sprite, tint, alpha, colour treatment (a matrix or a filter, compared by value), worn offset and what it draws over its sprite (its colour, cut, masks and fit are all in its sprite); for underclothes the same colour and physique, and drawn or not as they were. A look whose cover is unchanged needs nothing else resolved again. |
| bulge_custom_layer | Where a penis layered mode (bulge_layering()) draws, as a layer of the mob's overlays (the greater, the
further back): where Nova's genital get_overlay() puts one set to Custom below or above the underwear. Null for the
normal layering, under whatever covers it. A penis drawn at a layer is covered only by what is drawn in front of it
(bulge_cover()): Custom above the underwear, it is drawn over the underwear and shows no bulge through it. |
| bulge_cut_children | A cut sprite's children (its overlays or its underlays) as they are drawn over the cut, or null when none changes: its emissive blocker, which draws the same sprite, takes the sprite's cut; any other child is cut the same way (the damaged-clothes overlay, a glow), except a uniform's accessories, worn over the garment, and a child drawn off the tile, which the cut would not fit. A child's own children are drawn as they are. |
| bulge_cut_siblings | The overlays of a nested worn appearance's root as they are drawn over its cut sprite, or null when none changes: from the second on (the first is the drawn sprite), what the garment draws over its sprite (its blood), each on the tile cut the same way, its own children cut as bulge_cut_children() cuts the sprite's (a stain's glow, drawn from the stain's sprite, takes the stain's cut). |
| bulge_kind_image | One kind of an adaptive look: its white mask in its palette colour, through the cover's colour filter, if any. |
| bulge_layering | How the penis is layered under what covers it, while it shows a bulge through it: GENITAL_LAYER_NORMAL (hidden by clothes, or Custom and Normal), or Custom below or above the underwear (GENITAL_LAYER_BELOW_UNDIES, GENITAL_LAYER_ABOVE_UNDIES); NONE when it shows none: closed off by a device, in its sheath, never shown, drawn over all clothing, or on a taur or Cerulean body (no legs for the templates). Arousal is checked by the caller. |
| bulge_over_cloth | What the cover draws over its sprite (overlays, from bulge_over_overlays(): blood, dirt), over the look's cloth
too: each such overlay's sprite kept to the cloth's pixels (bulge_clipped_icon()), in its own colour and the alpha of
the cover's root, just above the cloth, as the garment draws its blood over itself. An overlay drawn off the tile
is left out, and so is a glow on it (the cloth's emissive blocker covers that glow beneath the cloth, as before). |
| bulge_over_overlays | The overlays of a worn cover's KEEP_TOGETHER root as the garment built them: the drawn sprite first, then what it draws over that sprite (build_worn_icon()'s separate overlays: blood, dirt), uncut where the cover is drawn cut (bulge_swap_cut() keeps them). Null when the root is the sprite itself, as for every clean garment: one comparison. |
| bulge_print | A printed look's patch: derived from the cover's drawn sprite (the sprite before its cut, for a revealing skirt), as tinted by the garment's colour, drawn at the garment's alpha. A garment tinted by a colour matrix or filter, or whose sprite gives no patch, is drawn adaptive instead. |
| bulge_redraw_cuts | Draws a cover cut away for a look again when its cut is not the one the look wants (uniform_cut and body_cut, for the two slots a cover can be cut in). TRUE when it drew one again: the body update that drawing ends with has resolved the look already. A slot not drawn holds no cut. |
| bulge_remember | Records what a look was resolved from (see bulge_resolve()): the penis, the slots as drawn, the cover and how it is drawn (its drawn appearance's root and leaf, and what it draws over its sprite, as bulge_cover_unchanged() reads them), and the underwear under it (bulge_restraint()). The cover's worn offset, as drawn, is the offset of everything the look draws. |
| bulge_resolve | Resolves the penis's bulge look for a body update; TRUE when it draws one. A look resolved from the same inputs as the last is kept as it is: a body update that changed nothing compares a few vars, and one that drew a slot again without changing the cover or how it is drawn (drawn at all, included) also checks the cover (bulge_cover_unchanged()) and the underwear under it (bulge_restraint()). |
| bulge_shown_testicles | The testicles a look shows behind its cover with the penis: present, hidden by that cover, and not closed off. |
| bulge_swap_cut | Swaps the drawn sprite of a worn appearance for its cut: the appearance itself, or the first child of the KEEP_TOGETHER root build_worn_icon() nests separate overlays under. The sprite's own children are cut with it (bulge_cut_children()), and so is what the garment draws over its sprite beside it in that root (its blood), which would otherwise draw over what the cut reveals (bulge_cut_siblings()). A uniform's root as built, uncut, is kept for the look's cloth, which carries the blood as the garment had it (bulge_over_overlays()). |
| bulge_testicle_images | The testicles' own images at layer, while they are hidden by the cover a look shows the penis behind. |
| bulge_tint | An adaptive look's palette, from the cover's cloth colour in the family's finish; FALSE when the cover has no colour to sample: no cloth is drawn then. |
| bulge_wanted_cut | The cut the wearer's look wants for the cover drawn in slot: that cover's flap or derived cut while the penis
shows hard through it (bulge_cut_for()), else null: none while underwear under the cover holds the penis in
(bulge_held_size()). Decided as bulge_resolve() decides it, without the drawn appearance. |
| can_draw_on_bodypart | A gloryhole occupant's penis is drawn only by their relay, so no body rebuild during the session can show it here. |
| dirt_draws_itself | A penis covered by a bulge look draws the cover's cloth, not itself. |
| icon_render_key | The look's key while it draws, standing in for the penis's own key. A look that draws anatomy carries the hash of the penis's own key and the shown testicles' (bulge_anatomy_record()), so the cache follows their sprites and colours without their keys being built on every pass. |
| set_sheath_style | Resolves and applies a sheath style by accessory name. Null/"None" clears it. |
| set_sheathed | Points sprite_datum at the sheath or the shaft |
Var Details
bulge_accessory 
The penis overlay's sprite accessory.
bulge_alpha 
The alpha the cover is drawn with, for a printed patch.
bulge_anatomy 
What the anatomy a look draws (the penis's own images, and the shown testicles' behind a cover) is drawn from beyond its sprite, as bulge_anatomy_record() lists it; compared on every pass (bulge_anatomy_unchanged()). Null while the look draws no anatomy.
bulge_anatomy_behind 
Whether the look draws the anatomy behind its cover.
bulge_anatomy_mask 
The mask restricting the anatomy drawn over the cloth (exposed or clearance), or null for none.
bulge_aroused 
The penis's arousal.
bulge_body_cut 
The underwear's cut.
bulge_body_drawn 
The underclothes' appearances as last drawn.
bulge_bodyshape 
The wearer's body shape: digitigrade, custom and taur bodies.
bulge_cloth 
An adaptive look's palette: the cloth colour.
bulge_cover_alpha 
The cover's drawn alpha, root times leaf.
bulge_cover_filtered 
The colour treatment the cover is drawn through (its colour filter or colour matrix, as color_atom_overlay() applies it), or null: no print follows it, and an adaptive cloth is drawn through it too (bulge_cloth_images()).
bulge_cover_icon 
The cover's drawn sprite; null for underclothes.
bulge_cover_over 
What the cover draws over its sprite (blood, dirt), as bulge_over_signature() reads it; null for nothing.
bulge_cover_state 
The cover's drawn state; for underclothes, the wearer's physique.
bulge_cover_tint 
The cover's drawn tint; for underclothes, the wearer's colour for them.
bulge_cover_type 
The cover's type (see bulge_cover_unchanged()).
bulge_cover_x 
The cover's worn offset from the left, as drawn; everything the look draws is moved by it.
bulge_cover_y 
The cover's worn offset from the bottom, as drawn.
bulge_cut_icon 
The cut swapped in for it.
bulge_deep_shade 
The deep shade kind's colour.
bulge_highlight 
The highlight kind's colour.
bulge_key 
The look's render key, standing in for the penis's own.
bulge_layer 
The layer of the garment the look draws over.
bulge_length 
The penis's length.
bulge_light 
The light kind's colour.
bulge_over 
What the cover draws over its sprite, kept to the cloth's pixels and drawn over it: appearances, or null.
bulge_patch 
The patch a printed look draws: a registered icon.
bulge_redrawing 
Set while the look re-draws a cover whose cut no longer matches it, so the re-draw cannot recurse. Reset after the re-draw and by bulge_clear(), whenever the look is cleared: on every full resolve, one nested in the re-draw included (which can draw a cover once more), when the penis stops drawing a look, and on removing the penis.
bulge_restraint 
The underwear under the cover, holding the penis in or letting it out (bulge_restraint()), or null.
bulge_shade 
The shade kind's colour.
bulge_sheet_patch 
The precoloured patch a printed look draws past its family's small_cap (the heart boxers).
bulge_suffix 
The penis overlay's sprite suffix: its shape, sprite size, erection and skin tones.
bulge_suit_drawn 
The suit slot's appearance as last drawn; a new one is a new render of the suit.
bulge_template 
The shape an adaptive look draws: a decoded kind map with its white masks.
bulge_uncut_icon 
The drawn sprite the uniform's cut was made from: a printed skirt's patch is derived from it, not from its cut.
bulge_uncut_over 
The overlays of the uniform's KEEP_TOGETHER root as built, before the cut also cut what it draws over its sprite (its blood): the look's cloth carries them uncut. Null when the uniform is not drawn cut or holds no such root.
bulge_uncut_state 
Its state.
bulge_uniform_cut 
The uniform's cut.
bulge_uniform_drawn 
The uniform slot's appearance as last drawn.
bulge_wearer 
The wearer the look was resolved for.
shaft_datum 
The shaft accessory as picked in prefs. sprite_datum points here when unsheathed.
sheath_datum 
The sheath accessory, or null for sheathless penises.
Proc Details
bulge_anatomy_record
Records what the anatomy a look draws is drawn from beyond its sprite (bulge_anatomy): the penis's colours, alpha, emissive colours and dye, and the shown testicles' overlay with their sprite suffix, the same of theirs, their sprite accessory and the mess drawn on them (dirt_share_key(): the look draws it with them, and a wash or a new splat changes it, which nothing else here sees); and returns the hash of the render keys the penis and those testicles draw with in the open, for the look's key, after DIRT_PRIVATE_KEY when those keys carry it. Those keys (the mutant overlays' icon_render_key()) read nothing else that can change while a look draws: the penis's sprites, the layering and the body shape are in the look's memo (bulge_resolve()), taur, MOD and device sprites draw no look, and the penis draws no mess of its own while a look stands in for it. When the mutant key comes to read more, record it here and compare it in bulge_anatomy_unchanged().
bulge_anatomy_unchanged
Whether the anatomy a look draws is drawn from what it was recorded for (bulge_anatomy_record()), compared by value (a list changed in place counts): once per pass, for a look that draws anatomy, with the shown testicles looked up once here.
bulge_clear
Forgets the current look and what it was resolved from, and resets the redraw guard.
bulge_cloth_images
The cloth a look draws at front, each image to its LIMB_OVERLAY_* flags: its patch, or its kinds tinted with its
palette, and one emissive blocker. The cloth carries no LIMB_OVERLAY_TEXTURED, so the textures a limb draws its skin
with leave it alone, and is named BULGE_CLOTH_NAME.
bulge_cover_unchanged
Whether the cover is the one the look was resolved for, drawn as it was then: the same garment type, and for a worn garment the same drawn sprite, tint, alpha, colour treatment (a matrix or a filter, compared by value), worn offset and what it draws over its sprite (its colour, cut, masks and fit are all in its sprite); for underclothes the same colour and physique, and drawn or not as they were. A look whose cover is unchanged needs nothing else resolved again.
bulge_custom_layer
Where a penis layered mode (bulge_layering()) draws, as a layer of the mob's overlays (the greater, the
further back): where Nova's genital get_overlay() puts one set to Custom below or above the underwear. Null for the
normal layering, under whatever covers it. A penis drawn at a layer is covered only by what is drawn in front of it
(bulge_cover()): Custom above the underwear, it is drawn over the underwear and shows no bulge through it.
bulge_cut_children
A cut sprite's children (its overlays or its underlays) as they are drawn over the cut, or null when none changes: its emissive blocker, which draws the same sprite, takes the sprite's cut; any other child is cut the same way (the damaged-clothes overlay, a glow), except a uniform's accessories, worn over the garment, and a child drawn off the tile, which the cut would not fit. A child's own children are drawn as they are.
bulge_cut_siblings
The overlays of a nested worn appearance's root as they are drawn over its cut sprite, or null when none changes: from the second on (the first is the drawn sprite), what the garment draws over its sprite (its blood), each on the tile cut the same way, its own children cut as bulge_cut_children() cuts the sprite's (a stain's glow, drawn from the stain's sprite, takes the stain's cut).
bulge_kind_image
One kind of an adaptive look: its white mask in its palette colour, through the cover's colour filter, if any.
bulge_layering
How the penis is layered under what covers it, while it shows a bulge through it: GENITAL_LAYER_NORMAL (hidden by clothes, or Custom and Normal), or Custom below or above the underwear (GENITAL_LAYER_BELOW_UNDIES, GENITAL_LAYER_ABOVE_UNDIES); NONE when it shows none: closed off by a device, in its sheath, never shown, drawn over all clothing, or on a taur or Cerulean body (no legs for the templates). Arousal is checked by the caller.
bulge_over_cloth
What the cover draws over its sprite (overlays, from bulge_over_overlays(): blood, dirt), over the look's cloth
too: each such overlay's sprite kept to the cloth's pixels (bulge_clipped_icon()), in its own colour and the alpha of
the cover's root, just above the cloth, as the garment draws its blood over itself. An overlay drawn off the tile
is left out, and so is a glow on it (the cloth's emissive blocker covers that glow beneath the cloth, as before).
bulge_over_overlays
The overlays of a worn cover's KEEP_TOGETHER root as the garment built them: the drawn sprite first, then what it draws over that sprite (build_worn_icon()'s separate overlays: blood, dirt), uncut where the cover is drawn cut (bulge_swap_cut() keeps them). Null when the root is the sprite itself, as for every clean garment: one comparison.
bulge_print
A printed look's patch: derived from the cover's drawn sprite (the sprite before its cut, for a revealing skirt), as tinted by the garment's colour, drawn at the garment's alpha. A garment tinted by a colour matrix or filter, or whose sprite gives no patch, is drawn adaptive instead.
bulge_redraw_cuts
Draws a cover cut away for a look again when its cut is not the one the look wants (uniform_cut and body_cut, for the two slots a cover can be cut in). TRUE when it drew one again: the body update that drawing ends with has resolved the look already. A slot not drawn holds no cut.
No try here: a runtime in a render below (an accessory's worn overlay, a limb's) ends only the proc it happens in, and the render around it carries on, so the guard is always reset below. A try would abandon every frame in between and leave the cover undrawn. bulge_clear() resets the guard too, which every full resolve calls (one nested in these draws included, so a nested resolve can draw a cover once more) and so does removing the penis.
bulge_remember
Records what a look was resolved from (see bulge_resolve()): the penis, the slots as drawn, the cover and how it is drawn (its drawn appearance's root and leaf, and what it draws over its sprite, as bulge_cover_unchanged() reads them), and the underwear under it (bulge_restraint()). The cover's worn offset, as drawn, is the offset of everything the look draws.
bulge_resolve
Resolves the penis's bulge look for a body update; TRUE when it draws one. A look resolved from the same inputs as the last is kept as it is: a body update that changed nothing compares a few vars, and one that drew a slot again without changing the cover or how it is drawn (drawn at all, included) also checks the cover (bulge_cover_unchanged()) and the underwear under it (bulge_restraint()).
Underwear always takes precedence over what is worn over it: the look is still drawn on the outermost cover, but underwear under that cover holds the penis in, unless it lets it out itself (bulge_held_size()).
bulge_shown_testicles
The testicles a look shows behind its cover with the penis: present, hidden by that cover, and not closed off.
bulge_swap_cut
Swaps the drawn sprite of a worn appearance for its cut: the appearance itself, or the first child of the KEEP_TOGETHER root build_worn_icon() nests separate overlays under. The sprite's own children are cut with it (bulge_cut_children()), and so is what the garment draws over its sprite beside it in that root (its blood), which would otherwise draw over what the cut reveals (bulge_cut_siblings()). A uniform's root as built, uncut, is kept for the look's cloth, which carries the blood as the garment had it (bulge_over_overlays()).
Arguments:
- standing - the appearance build_worn_icon() or make_appearance() built.
- cut - the cut: a flap (/datum/bulge_print_template) or a loincloth's derived cut (/datum/bulge_sheet_state).
- slot - UNIFORM_LAYER or BODY_LAYER.
- uniform - the uniform drawn, for a uniform: its accessories keep their pixels.
bulge_testicle_images
The testicles' own images at layer, while they are hidden by the cover a look shows the penis behind.
bulge_tint
An adaptive look's palette, from the cover's cloth colour in the family's finish; FALSE when the cover has no colour to sample: no cloth is drawn then.
bulge_wanted_cut
The cut the wearer's look wants for the cover drawn in slot: that cover's flap or derived cut while the penis
shows hard through it (bulge_cut_for()), else null: none while underwear under the cover holds the penis in
(bulge_held_size()). Decided as bulge_resolve() decides it, without the drawn appearance.
can_draw_on_bodypart
A gloryhole occupant's penis is drawn only by their relay, so no body rebuild during the session can show it here.
dirt_draws_itself
A penis covered by a bulge look draws the cover's cloth, not itself.
icon_render_key
The look's key while it draws, standing in for the penis's own key. A look that draws anatomy carries the hash of the penis's own key and the shown testicles' (bulge_anatomy_record()), so the cache follows their sprites and colours without their keys being built on every pass.
set_sheath_style
Resolves and applies a sheath style by accessory name. Null/"None" clears it.
set_sheathed
Points sprite_datum at the sheath or the shaft