// SPDX-License-Identifier: MIT // Copyright (c) 2026 Incoprea // Two-picture comparison frame // Not compiled or tested in-world // Setup: Add licensed textures before and after. Set FACE. Owner-touch cycles before, after, then original. // Stop / restore: The third touch restores original diffuse settings; remove then. // Notes: A controlled A/B presentation, useful for before/after exhibits. It does not generate captions or infer which image is better. Keep example captions and notecard lines short, preferably ASCII. Character clipping is not UTF-8 byte-budget clipping: multibyte text may reach hover-text or chat limits sooner and be truncated. // License: see LICENSE in this distribution. // Original Incoprea. MIT. Not compiled or tested in-world. integer FACE=0; integer stage; list saved; default { state_entry() { saved=llGetLinkPrimitiveParams(LINK_THIS,[PRIM_TEXTURE,FACE]); } touch_start(integer n) { if(llDetectedKey(0)!=llGetOwner())return; if(stage==2) { llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_TEXTURE,FACE]+saved); stage=0; llOwnerSay("Original restored."); return; } string name="before"; if(stage==1)name="after"; if(llGetInventoryType(name)!=INVENTORY_TEXTURE) { llOwnerSay("Missing texture "+name); return; } llSetTexture(name,FACE); llOwnerSay(name); ++stage; } }