1. Is it possible to duplicate the RGB slider control so that I may have 2 or more definable channels for different color patternings? Say, cockmeat1, cockmeat2 etc.
Yes. Take a look at the AS3 scripting; you'll notice the following function call:
loader.registerForHueShift("Canine Cock", newpenis.cockmeat);
You'd need to draw some new elements (or split the existing artwork into 2+ separate sprites) and then assign names to the shape instances such as "cockmeat", "shaft", veins" or whatever. You'd then expand the existing function call to include several similar calls. While doing so, you'd need to assign a user-friendly name for each HSL-shiftable element.
loader.registerForHueShift("Canine Cock", newpenis.cockmeat);
loader.registerForHueShift("Cock Shaft", newpenis.shaft);
loader.registerForHueShift("Bulging Venis", newpenis.veins);
loader.registerForHueShift("Mysterious Spiky Bits", newpenis.blahblahblah);
All in one mod, possible/feasible?
Using the current approach?
No. Using a revised approach?
Yes.
We can add many new penis types to the end of the list. Let's imagine that #7 is the Dragon cock. The roadblock for us is that the game is constantly saving its state. When the user switches to Dragon via the selector button, that choice is written to the local SOL file.
If the user immediately shuts down the game and reopens it, then the game will attempt to activate penis #7. Penis #7 doesn't exist in the base game, of course. The code will throw an IndexOutOfBounds exception, the normal game-loop will misbehave, and the game will become unplayable. It is fairly difficult to recover from this error.
-------------------
We can work around this problem by overriding the SOL-writing behavior. Whenever the game attempts to generate a charcode which contains an invalid setting (such as Penis=7), we'd splice in the maximum safe value (Penis=3) instead. Or maybe just the default (Penis=0) for simplicity.
The obvious problem here is that you'd be unable to ever Save a character with a non-human penis (more accurately: you'd be able to save, but they'd always revert to human-penis when loaded). You'll be able to activate a non-human penis via advanced DialogueActions scripting (by loading an
unsafe charcode which mentions "Penis=7") but doing so would carry the risk of crashing the game as described above. Also, you won't know whether Penis=7 will actually refer to the dragon penis; a subsequent version of your all-in-one modpack might rearrange the numbering scheme and therefore fuck up any pre-existing dialogues. That's kinda shitty and unreliable.
-------------------
Therefore, I'll plan to proxy out and replace some the penis-loading code. If a non-standard penis is active then we'll use an arbitrary value (such as 0) when generating the charcode, and then append a new text field (such as "CustomPenis:Dragon"). If the new code notices the new field while loading a charcode, then it will ignore the actual Penis field in favor of the CustomPenis field. If the charcode specifies a type which doesn't exist (e.g. "CustomPenis:Fish") then it will just fail and spit out a warning message, without actually throwing an exception.
For now, I'd suggest that you proceed with whatever you're currently doing (e.g. tracing dragon shapes or whatever). When you've reached a comfortable stopping point, send me up-to-date copies of each FLA file. I'll try to merge them together and splice in the new AS3 code. Once that's done, I'll send it back to you and we can (hopefully) use it as the basis for any further modding work.
With 4 mods it would probably start to be pretty big for a mod, I think I need to optimize them better. Or, conversely...do I continue my individual mods....make the user figure out how they want to use them?
I'll look into it. We can hopefully come up with a "compile switch" which allows you to maintain a single FLA source file and then publish
either an all-in-one (which is suitable for $INIT$ loading) or a specific standalone mod (which would be more convenient for character-folder setups)
without making any significant changes to the scripting.
Would I have to make three different versions of each release for each penisType it is replacing?
I don't think that you need to even think of these as "replacements"
unless you want to alter the artwork. If you're just trying to add HSL shifting capability then a few calls to
loader.registerForHueShift(...) would suffice. You wouldn't even need to "rip"
@Konashion's penis sprites or include them into your FLA file. It would be a few additional lines of ActionScript code, which you could include in your all-in-one file and/or distribute as a separate Loader mod.
I'd suggest incorporating the whole thing into one SWF file. By default, the SWF would apply HSL shifting capability to both of the human penis types. If someone doesn't want to see any HSL changes for Penis B, then they could simply abstain from using the "Penis B" HSL slider. If some
other modder replaces the Penis#2 with something else (e.g. fish dick) then the "Penis B" HSL slider would simply become irrelevant (kinda like how the RGB slider for the strap-on becomes irrelevant after someone loads your Horse or Canine mods).