Hi there! You are currently browsing as a guest. Why not create an account? Then you get less ads, can thank creators, post feedback, keep a list of your favourites, and more!
Quick Reply
Search this Thread
Top Secret Researcher
Original Poster
#1 Old 9th May 2014 at 8:48 AM
Default Update / fresh build of Misu's add-on to Cmo's Pose Player -- feedback sought
Esteemed Colleagues,

Before I submit the .package to MTS, I would appreciate feedback from script modders as to whether the code is in proper condition to submit. This will be my first mod.

Problem addressed:
Misukisu no longer maintains her excellent pose player add-on, and the last-released version crashes if used with an up-to-date (1.67) game and the current pose player. I need this add-on! So, I have tried to rejuvenate it by resolving some dependencies and doing a fresh build.

Code Changes:
Diffs (included in the zip file) are of basically three kinds. The first kind, accounting for nearly all the changes, merely changes the protection of certain derived class members to agree with their base classes. The same few changes were needed in nearly every source module of the add-on. The second kind, only three or four changes, are calls to things whose names have changed slightly. The third kind is the removal (commenting out) of calls to methods which apparently no longer exist. All of that kind are in debugger.cs, and I believe they are innocent of any effect that would be seen by the user, but I do not know whether some formerly-available debugging capability has been affected.

Advice sought & alternatives considered:
Besides asking for general comments on the correctness & completeness of the submission, I have a specific concern about whether I took the right approach to maintaining/restoring compatibility with the Pose Player. The add-on refers to members of Pose Player classes that are -- and always were -- private in the Pose Player. To allow the add-on to build, I made a copy of a decompiled Pose Player, in which I changed the protection of those members to "public" so the add-on could see them. Once having built the add-on against that "special" pose player source, I tested it against the unmodified Pose Player binary. That is, I have relied on the hope that my temporary changes only affected the visibility of those elements in the source, but did not affect anything important in the binary, so that users of the add-on should not also need my "special" pose player image.

The reason I'm looking for guidance is this: I have worked in places where a programmer who did something that awful would be immediately shot and nobody would come to their funeral. But perhaps in this context, and knowing what we know about these scripts, it's acceptable? It seems the alternative would be worse: to publish the add-on together with a "special" add-on-compatible pose player that differs from the normal one only in a software-engineering detail that a user would not care about, and which might prevent them from being able to take future pose player updates directly from Cmo. That is a path which Misu originally avoided.

The attached zip contains:
  • The testable code: RdN_Misu_PosePlayerAddOn.package
  • C# source code diffs, in .rtf file with pretty colors for the important parts
  • C# code diffs, in a plain .txt file which it should be possible to use as input to "patch", mainly for form's sake
  • The add-on as a .dll (before I imported it into the .package)
  • The copy of cmomoney's (unmodified) pose player against which I tested the add-on in the game

Regards,
Ronnie.
Attached files:
File Type: zip  RdN_Misu_PosePlayerAddon_ForReviewAndUpload.zip (524.9 KB, 784 downloads) - View custom content
Description: Package-under-test, dll, and source diffs.
Advertisement
Instructor
#2 Old 9th May 2014 at 9:19 PM
Hmm. Interesting. I have my game upgraded to 1.67 and I have Misu's poseplayer add-on installed. I've not experienced any crashes {{yet}} using it. Is there a specific function you were using that caused the crash? Or all of them? Or just having it installed?
Top Secret Researcher
Original Poster
#3 Old 10th May 2014 at 12:08 AM
Merely having it installed, for me, caused a crash at game-loading time. (By "crash" I mean the game won't run and bounces me back to the Launcher, after a pop-up that says a serious error occurred and I should exit. It doesn't exit completely, nor offer me a choice of running a debugger. It is not as severe of a crash as if I were to remove the Pose Player -- in that case, TS3W.exe would exit entirely.) I do not know what was being called, but given the timing, I'll bet it was merely initializing/registering itself.

For me the behavior depends on the Pose Player version -- I'll attach the test matrix. I did not check all combinations, and in particular, I did not test any game versions except 1.67. Cmo's last change came when the game versions were somewhere in 1.5x, and I can't tell whether anyone tested at that time whether the add-on problems went with the pose player version, the game patch level, or both.
Screenshots
Instructor
#4 Old 10th May 2014 at 11:52 AM
Hmmm. (not to be completely unhelpful...) But you are certain that it is the add-on causing the fatal crash and not some other conflict? Well...duh, I'm going to assume you did some testing to isolate the add-on as being your culprit. But the reason I ask (and it probably has absolutely nothing to do with the issue you are experiencing) is that the behavior appears similar on the surface a behavior I have experienced when one of the files in the save directory has become read-only (or some other process is accessing it) and the game tries to access it. But that may simply be because it uses the same generic un-handled exception message. Like I said, probably completely unrelated and non-helpful. But as previously mentioned... no crashes here and I have the latest pose player, the last add-on version available and upgraded to 1.67... ::shrug::

Quote:
It is not as severe of a crash as if I were to remove the Pose Player -- in that case, TS3W.exe would exit entirely.)

If you remove pose player and leave the add-on installed, I would expect a crash since it is dependent on the existence of the pose player (I think Misu even documented as much).
Field Researcher
#5 Old 15th May 2014 at 11:54 AM
I'm sorry this reply won't be helpful on the 'build an updated version of the mod' front, but I just wanted to chime in to say my game is patched to the latest version and I'm using both the pose player and the add-on. In fact, I only installed them for the first time a few days ago. They work fine for me.
Top Secret Researcher
Original Poster
#6 Old 16th May 2014 at 6:31 AM
Thank you tedw and k2m1too. Can you tell me from where you downloaded the add-on?

(If I've been working from a bad one, but a good one is already out there and tedw recently got it, then great -- I'll get it too, problem solved & I've had a nice learning experience. The other possibility is that we're all working from the same version already; in that case I do have a puzzle, but it probably only affects my own installation & meantime I have a work-around.)
Instructor
#7 Old 17th May 2014 at 1:45 PM
This is the link I last got if from...

http://virtualartisan.blogspot.com/...ion-add-on.html

Also, one weird thing I've discovered over time from using it - if you update poseplayer AFTER you install the add-on, it stops working (even if the add-on does not need updating). I always have to install a fresh, clean copy of the add-on afterwards. Nothing scientific at all about why that might be. Just personal observation. Don't know if that has anything at all to do with your issue.

But..I would also point out... have you tried talking to Misu? I believe she still monitors her blog where the download is, even if she isn't updating it.
Back to top