Yes, Crow's code is crap.
I'm already using that approach for sprite dress options.
Just for sure, test if that variable exists first
Basic idea
if (root.genus != undefined)
{
leg.gotoAndStop(root.genus);
pnis.gotoAndStop(root.genus);
}
else
{
leg.gotoAndStop("default");
pnis.gotoAndStop("default");
}
or more sophisticated, if the player segment DefineSprite does not have script in the first frame to stop in default, then make it stop in default first:
leg.gotoAndStop("default");
pnis.gotoAndStop("default");
if (root.genus != undefined)
{
leg.gotoAndStop(root.genus);
pnis.gotoAndStop(root.genus);
}
If the value of root.genus exists but does not match any frame label, then gotoAndStop(root.genus) does nothing and DefineSprite stays in "default" labeled frame.
Also you can do inconsistent variations, for example:
leg.gotoAndStop("default");
pnis.gotoAndStop("default"); // the first two lines are necessary only if these Sprites don't have own scripts.
var localgenus = "default";
if (root.genus != undefined)
{
localgenus = root.genus;
leg.gotoAndStop(root.genus);
}
if (root.gender == "female")
{
localgenus = "female";
}
pnis.gotoAndStop(localgenus);
Which overrides genus to female for pnis DefineSprite dildo frame labeled "female" regardless the genus.