Ok, it's up at RapidShare:
http://rapidshare.com/files/425915069/View_Puppets__v_1_.civ5mod and also submitted here in the Download section (waiting for moderator approval). I'll let people mess with it for a while before I put it on the big Mod Browser just in case there's something seriously wrong with it.
I'm a legend? News to me.
Let's just say that your 10,000+ posts here freaked me out a little when I first saw who I was trifling with!
Did you ever work out how to fix the happiness issue?
Well, it actually turned out to be really trivial. Instead of keeping the city as a non-puppet throughout, I simply make it a non-puppet just before calling UI.DoSelectCityAtPlot, then immediately set it back. I didn't expect it to be that simple, but it worked! It lets you into the city screen, and everything there seems to work just fine even though the city you're viewing is still a puppet. I don't have to even store which city I'm looking at to reverse it later!
The slightly trickier part was when I decided to let you cycle through the puppets. But it works much the same way. Here I centralize all the Game.DoControl calls that switch to NEXTCITY/PREVCITY. Before calling it, I temporarily un-puppet ALL the player's puppet city, keeping a list, call the DoControl, which lets it select the next city even if it's a puppet, and immediately set them all back to being puppets! It's surprising that it works so well given that it's pretty straightforward. I hope I didn't miss some horrible side effect of doing this somehow? I was a bit surprised you didn't do it that way in the first place?
My one dilemma is that I want to support cycling through multiple puppets, but I also realize that much of the time you'll only want to cycle through the cities that you have control over. I've rigged up holding the SHIFT key to toggle betwenn the two cycling modes, and it works well enough. But I struggled with which way it should default to. I ultimately chose to make it include puppets by default. I figure if I go the other way, people will assume that it doesn't work on puppets and might never discover the SHIFT key. But the way it is, it may just really annoy them if they don't pay attention to the note in the description. I might have to flip this, depending on feedback. If this gets used enough, I'll put in some sort of config file where this would be more clearly visible as an option.
I also thought I'd put in an option to allow full (or some of partial?) control over puppets, for those who do want to use this like Afforess' original version.
The downside of preventing any changes to the city is that the mod is really quite intrusive in terms of the number of separate edits required in the CityView.lua file. I have to intercept a whole bunch of different event handlers. So it will be a pain to merge this file with other mods unless you start with mine as the base.
It's not perfect in the way it disables everything in terms of visual feedback, but I figured it's good enough...
I'll start my own thread here on this I once it gets approved... Sorry for the threadjack.