/tg/ Station 13 - Modules - Types — Var Details - Proc Details

penis

Vars

bulge_accessoryThe penis overlay's sprite accessory.
bulge_alphaThe alpha the cover is drawn with, for a printed patch.
bulge_anatomyWhat 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_behindWhether the look draws the anatomy behind its cover.
bulge_anatomy_maskThe mask restricting the anatomy drawn over the cloth (exposed or clearance), or null for none.
bulge_arousedThe penis's arousal.
bulge_body_cutThe underwear's cut.
bulge_body_drawnThe underclothes' appearances as last drawn.
bulge_bodyshapeThe wearer's body shape: digitigrade, custom and taur bodies.
bulge_clothAn adaptive look's palette: the cloth colour.
bulge_cover_alphaThe cover's drawn alpha, root times leaf.
bulge_cover_filteredThe 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_iconThe cover's drawn sprite; null for underclothes.
bulge_cover_overWhat the cover draws over its sprite (blood, dirt), as bulge_over_signature() reads it; null for nothing.
bulge_cover_stateThe cover's drawn state; for underclothes, the wearer's physique.
bulge_cover_tintThe cover's drawn tint; for underclothes, the wearer's colour for them.
bulge_cover_typeThe cover's type (see bulge_cover_unchanged()).
bulge_cover_xThe cover's worn offset from the left, as drawn; everything the look draws is moved by it.
bulge_cover_yThe cover's worn offset from the bottom, as drawn.
bulge_cut_iconThe cut swapped in for it.
bulge_deep_shadeThe deep shade kind's colour.
bulge_highlightThe highlight kind's colour.
bulge_keyThe look's render key, standing in for the penis's own.
bulge_layerThe layer of the garment the look draws over.
bulge_lengthThe penis's length.
bulge_lightThe light kind's colour.
bulge_overWhat the cover draws over its sprite, kept to the cloth's pixels and drawn over it: appearances, or null.
bulge_patchThe patch a printed look draws: a registered icon.
bulge_redrawingSet 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_restraintThe underwear under the cover, holding the penis in or letting it out (bulge_restraint()), or null.
bulge_shadeThe shade kind's colour.
bulge_sheet_patchThe precoloured patch a printed look draws past its family's small_cap (the heart boxers).
bulge_suffixThe penis overlay's sprite suffix: its shape, sprite size, erection and skin tones.
bulge_suit_drawnThe suit slot's appearance as last drawn; a new one is a new render of the suit.
bulge_templateThe shape an adaptive look draws: a decoded kind map with its white masks.
bulge_uncut_iconThe drawn sprite the uniform's cut was made from: a printed skirt's patch is derived from it, not from its cut.
bulge_uncut_overThe 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_stateIts state.
bulge_uniform_cutThe uniform's cut.
bulge_uniform_drawnThe uniform slot's appearance as last drawn.
bulge_wearerThe wearer the look was resolved for.
shaft_datumThe shaft accessory as picked in prefs. sprite_datum points here when unsheathed.
sheath_datumThe sheath accessory, or null for sheathless penises.

Procs

bulge_anatomy_recordRecords 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_unchangedWhether 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_clearForgets the current look and what it was resolved from, and resets the redraw guard.
bulge_cloth_imagesThe 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_unchangedWhether 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_layerWhere 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_childrenA 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_siblingsThe 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_imageOne kind of an adaptive look: its white mask in its palette colour, through the cover's colour filter, if any.
bulge_layeringHow 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_clothWhat 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_overlaysThe 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_printA 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_cutsDraws 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_rememberRecords 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_resolveResolves 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_testiclesThe testicles a look shows behind its cover with the penis: present, hidden by that cover, and not closed off.
bulge_swap_cutSwaps 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_imagesThe testicles' own images at layer, while they are hidden by the cover a look shows the penis behind.
bulge_tintAn 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_cutThe 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_bodypartA gloryhole occupant's penis is drawn only by their relay, so no body rebuild during the session can show it here.
dirt_draws_itselfA penis covered by a bulge look draws the cover's cloth, not itself.
icon_render_keyThe 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_styleResolves and applies a sheath style by accessory name. Null/"None" clears it.
set_sheathedPoints 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:

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